/* ═══════════════════════════════════════════════════════════════
   LinkBoard v2 — 设计 Token（蓝绿商务风）
   参考：个人办公工作台（office-workspace）视觉语言
   ═══════════════════════════════════════════════════════════════ */
* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

:root {
  /* 主色 */
  --primary: #0E9F8A;
  --primary-2: #0B7C6C;
  --primary-bg: #E7F5F2;
  --blue: #2563EB;

  /* 中性 */
  --bg: #F4F7F6;
  --card: #FFFFFF;
  --text: #1F2A2E;
  --text2: #5F7078;
  --text3: #8FA3A8;
  --border: #E4EAE8;
  --hover: #F0F6F4;

  /* 语义 */
  --danger: #E5484D;
  --danger-bg: #FEF3F3;
  --warn: #F59E0B;
  --warn-bg: #FFF8EC;

  /* 形状与阴影 */
  --radius: 12px;
  --radius-sm: 9px;
  --radius-lg: 16px;
  --shadow: 0 1px 2px rgba(15, 40, 60, .05), 0 6px 20px rgba(15, 40, 60, .05);
  --shadow-sm: 0 1px 2px rgba(15, 40, 60, .06);

  /* 字体 */
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", Consolas, "Courier New", monospace;

  /* 尺寸 */
  --maxw: 1280px;
  --sidebar-w: 228px;
  --header-h: 64px;
  --tap: 44px;               /* 移动端最小点击区 */
}

/* 深色模式 */
[data-theme="dark"] {
  --primary: #19B8A0;
  --primary-2: #3FD0B8;
  --primary-bg: rgba(14, 159, 138, .16);
  --blue: #5B8DEF;
  --bg: #0E1517;
  --card: #172023;
  --text: #E3ECEE;
  --text2: #94A7AC;
  --text3: #5E7177;
  --border: #263236;
  --hover: #1D282B;
  --danger: #F0656A;
  --danger-bg: rgba(229, 72, 77, .14);
  --warn: #F5B23D;
  --warn-bg: rgba(245, 158, 11, .13);
  --shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 20px rgba(0, 0, 0, .3);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);
}

html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  font-size: 15px;
  line-height: 1.55;
  min-height: 100vh;
  transition: background .2s, color .2s;
}
button { font-family: inherit; }
input, textarea, select { font-family: inherit; font-size: 16px; }
.hidden { display: none !important; }
a { color: var(--primary-2); text-decoration: none; }
a:hover { text-decoration: underline; }
