/* ============================================================
   设计令牌层 —— 全平台唯一的颜色 / 间距 / 字号 / 圆角来源
   任何模块禁止硬编码颜色，一律取用本文件的变量
   ============================================================ */
:root{
  /* 品牌色 */
  --brand-50:#eaf2ff;  --brand-100:#d3e4ff; --brand-200:#a9cbff;
  --brand-400:#5b96f5; --brand-500:#2f78e8; --brand-600:#1668dc; --brand-700:#0f52b0;

  /* 语义色 */
  --ok-50:#e8f7ee;  --ok-400:#4ec27f; --ok-600:#18a058; --ok-700:#0e7a41;
  --warn-50:#fdf3e3; --warn-400:#f5c26b; --warn-600:#e08e0b; --warn-700:#a96a08;
  --bad-50:#fdeceb;  --bad-400:#f28b9c; --bad-600:#d03050; --bad-700:#9c1f37;
  --info-50:#e9f2fd; --info-600:#2080f0;

  /* 中性 */
  --gray-50:#f6f8fb; --gray-100:#eef1f6; --gray-200:#e3e8ef; --gray-300:#cbd5e1;
  --gray-400:#94a3b8; --gray-500:#64748b; --gray-600:#475569; --gray-700:#334155;
  --gray-800:#1f2937;

  /* 表面与文字 */
  --bg:#f2f5f9;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --surface-3:#eef2f7;
  --border:#e3e8ef;
  --border-strong:#cbd5e1;
  --text:#1f2937;
  --text-2:#64748b;
  --text-3:#94a3b8;
  --text-inv:#ffffff;

  /* 间距 */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px;
  --sp-6:24px; --sp-8:32px; --sp-10:40px;

  /* 字号 */
  --fs-xs:11px; --fs-sm:12px; --fs-md:13px; --fs-lg:14px;
  --fs-xl:16px; --fs-2xl:20px; --fs-3xl:26px;

  /* 圆角 */
  --r-sm:4px; --r-md:6px; --r-lg:10px; --r-xl:14px; --r-full:999px;

  /* 阴影（统一，禁止自造） */
  --sh-1:0 1px 2px rgba(15,23,42,.06);
  --sh-2:0 2px 8px rgba(15,23,42,.08);
  --sh-3:0 8px 28px rgba(15,23,42,.14);

  /* 布局尺寸 */
  --sidebar-w:236px; --sidebar-w-mini:64px; --topbar-h:56px;

  /* 动效 */
  --ease:cubic-bezier(.4,0,.2,1);
  --dur:.18s;
}

/* 亮色为默认；深色仅作为可选外壳主题 */
[data-theme="dark"]{
  --bg:#0f172a; --surface:#172033; --surface-2:#1c2942; --surface-3:#22304b;
  --border:#2a3a56; --border-strong:#3b4f74;
  --text:#e6edf7; --text-2:#a3b2c9; --text-3:#74839c; --text-inv:#0f172a;
  --gray-50:#1c2942; --gray-100:#22304b; --gray-200:#2a3a56;
  --brand-50:#1b3055; --brand-100:#1e3a66;
  --ok-50:#123324; --warn-50:#3d2c11; --bad-50:#3d1620; --info-50:#152c47;
  --sh-1:0 1px 2px rgba(0,0,0,.3);
  --sh-2:0 2px 8px rgba(0,0,0,.36);
  --sh-3:0 8px 28px rgba(0,0,0,.5);
}

/* 状态色语义映射（模块只用这三个，不直接碰 hex） */
.s-ok{ color:var(--ok-600); }
.s-warn{ color:var(--warn-600); }
.s-bad{ color:var(--bad-600); }
.s-info{ color:var(--info-600); }
.s-mute{ color:var(--text-3); }
