/* ============================================================
   设计令牌层（唯一来源）· 《双端设计与维护规范》§1
   ------------------------------------------------------------
   2026-09-18 v4：以 design/oa-shell.html（单据处理台 v4）为基准重写。
   oa-shell 令牌名为准；--primary/--line 等旧名为 ds-* 组件层
   与存量页面的兼容别名，新代码一律使用新名（accent/border…）。
   ------------------------------------------------------------ */
:root {
  /* ---------- 画布与表面 ---------- */
  --bg: #F6F7F9;               /* 页面底 */
  --surface: #FFFFFF;          /* 卡片/表面 */
  --soft: #F9FAFB;             /* 弱底（表头、行 hover） */
  --side-bg: #FBFBFC;          /* 侧栏底 */

  /* ---------- 线条 ---------- */
  --border: #E5E7EB;
  --border-strong: #D1D5DB;

  /* ---------- 文本 ---------- */
  --text-1: #1F2937;
  --text-2: #4B5563;
  --text-3: #6B7280;
  --on-accent: #FFFFFF;

  /* ---------- 主色 ---------- */
  --accent: #2563EB;
  --accent-hover: #1D4ED8;
  --accent-soft: #EFF6FF;
  --hover: #F0F1F4;            /* 侧栏/行 hover */

  /* ---------- 语义色（状态胶囊唯一来源，五态） ---------- */
  --success: #15803D;      --success-soft: #F0FDF4;
  --warning: #92400E;      --warning-soft: #FFFBEB;
  --danger: #B91C1C;       --danger-soft: #FEF2F2;
  --info: #0369A1;         --info-soft: #F0F9FF;

  /* ---------- 骨架屏 / 浮层 ---------- */
  --sk-1: #EEF0F4;
  --sk-2: #E3E7ED;
  --danger-border: #FECACA;
  --warning-border: #FDE68A; /* 锁定横幅描边（与 --warning-soft 同族） */
  --toast-bg: #17212E;
  --toast-ok: #4ADE80;
  --shadow-pop: 0 8px 24px rgba(15, 23, 42, .12);

  /* ---------- 布局尺寸 ---------- */
  --top-h: 48px;
  --side-w: 248px;
  --list-w: 340px;
  --r-sm: 6px;
  --r-md: 8px;
  --r-lg: 12px;
  --font: "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", sans-serif;
  /* 字体统一（用户决议 2026-09-26）：全局单一字体，层级只用字重/字号划分。
     --font-mono 保留令牌名（.mono/.d-no/q-no 等存量消费方不动），值并入正文字体；
     Consolas 等宽栈废弃——其无中文字形，中文数据回退宋体造成全站字体割裂。 */
  --font-mono: var(--font);

  /* ============================================================
     旧名别名（ds-* 组件层 / 存量页面在用；新代码禁用）
     ============================================================ */
  --primary: #2563EB;
  --primary-deep: #1D4ED8;
  --primary-strong: #1D4ED8;
  --primary-weak: #EFF6FF;
  --blue-line: #BFDBFE;
  --accent-old: #B45309;
  --accent-deep: #92400E;
  --accent-weak: #FEF3E7;
  --surface-2: #F9FAFB;
  --surface-3: #F3F4F6;
  --text-inverse: #FFFFFF;
  --line: #E5E7EB;
  --line-strong: #D1D5DB;
  --success-weak: #EAF6EE;
  --warning-weak: #FBF1E4;
  --danger-weak: #FBEDED;
  --info-weak: #EFF6FF;
  --info-old: #1D4ED8;
  --neutral: #4B5563;
  --neutral-weak: #F3F4F6;
  --sidebar-bg: #FBFBFC;
  --sidebar-bg-2: #FBFBFC;
  --sidebar-text: #4B5563;
  --sidebar-text-strong: #1F2937;
  --sidebar-hover: #F0F1F4;
  --sidebar-active: #EFF6FF;
  --sidebar-line: #E5E7EB;
  --shadow-1: none;
  --shadow-2: 0 8px 24px rgba(15, 23, 42, .12);
  --shadow-3: 0 22px 64px rgba(15, 23, 42, 0.18);
  --shadow-login: 0 4px 20px rgba(15, 23, 42, 0.05);
}
