/* tokens.css — 全站设计系统单一事实源（T45，苏总 2026-09-06 拍板「全站 UI 标准」）。
   本文件只声明变量，不写任何选择器规则；base.css / weekly.css / tools.css /
   methodology.css 一律消费 var(--*)，禁止再写硬编码色值（新增颜色请回这里加 token）。
   引入顺序固定：tokens.css 在前，base.css 在后，页面专用 css 最后。

   ── 双层风险色（T45 关键设计决定，勿合并）────────────────────────────────
   苏总给的四色 #E5484D/#F76B15/#F5A623/#30A46C 是「色块级」饱和度：做灯条分段、
   圆点、SVG 图表填充很正，但当文字用在白底上对比度只有 3.9 / 3.0 / 2.0 / 3.2，
   全部达不到 WCAG AA 正文 4.5:1（黄色尤其只有 2.0，几乎看不清）。
   因此拆两层，各司其职，谁都不将就：
     --risk-*        色块层：灯条 seg / .dot / SVG rect / 环图 stroke（拍板色，原样）
     --risk-*-ink    文字层：徽章文字、强调数字、告警句（同色系压深，白底 ≥5.3:1）
     --risk-*-weak   浅底层：徽章底色（配 -ink 文字 ≥4.8:1）
   同理主色：--brand 是填充色（白字 4.41:1 差一点点），--brand-deep 才是文字/链接/
   按钮底色（白底文字 6.36:1、其上白字 6.36:1）。用错层 = 可读性回归，评审会挂。 */

:root {
  /* ---------- 品牌主色：深靛蓝（专业+冷静，与风险红拉开语义距离） ---------- */
  --brand: #4F6BF6;        /* 填充/描边/焦点环/装饰渐变——不做小字文字色 */
  --brand-weak: #EEF1FE;   /* 浅底：徽章、hero 渐变起点、选中态底 */
  --brand-deep: #3B55C6;   /* 文字/链接/按钮底色（AA 达标层） */
  --brand-ring: rgba(79, 107, 246, .22);  /* 焦点环/选中光晕，统一透明度 */

  /* ---------- 中性色阶（代替纯黑纯灰） ---------- */
  --ink-900: #0F1729;  /* 标题、结论句、大数字 */
  --ink-600: #475569;  /* 正文次级、表格内容 */
  --ink-500: #64748B;  /* 辅助小字（白底 4.76:1 — 12px 灰字的 AA 下限，勿再调浅） */
  --ink-400: #94A3B8;  /* 仅装饰：分隔符、占位符、禁用态，不承载信息 */
  --ink-100: #F1F5F9;  /* 中性浅底块 */
  --bg: #F8FAFC;       /* 页面底 */
  --surface: #FFFFFF;  /* 卡片底 */
  --line: #E2E8F0;     /* 描边/分隔线 */
  --line-soft: #EEF2F6;/* 更轻的行分隔线（表格内） */

  /* ---------- 风险四色 · 色块层（苏总拍板值，仅用于色块，勿当文字色） ---------- */
  --risk-red: #E5484D;
  --risk-orange: #F76B15;
  --risk-yellow: #F5A623;
  --risk-green: #30A46C;

  /* ---------- 风险四色 · 文字层（同色系压深，白底 ≥5.3:1） ---------- */
  --risk-red-ink: #C2181D;
  --risk-orange-ink: #B44708;
  --risk-yellow-ink: #8A5A00;
  --risk-green-ink: #17784C;

  /* ---------- 风险四色 · 浅底层（配 -ink 文字 ≥4.8:1） ---------- */
  --risk-red-weak: #FDECEE;
  --risk-orange-weak: #FDF0E6;
  --risk-yellow-weak: #FDF6E3;
  --risk-green-weak: #E7F6EE;

  /* ---------- 字体系统（T45c，苏总 18:46 拍板「字体配合」） ----------
     数字专用：现代无衬线 + 等宽数字（tnum），大数字有仪表感；正文仍走 body 系统栈。
     使用侧须同时写 font-variant-numeric:tabular-nums（或 font-feature-settings:"tnum"），
     否则 SF Pro/Roboto 默认比例数字，表格会跳。
     T45e Windows 塌方修复（苏总 21:22 审图「上部分排版难看」根因②）：旧栈 SF Pro Display
     之后直接跳 system-ui，Windows Chromium 上 SF Pro/Helvetica 全缺、system-ui 解析
     不确定，大数字落到默认衬线/宋体，宽度跳动+tnum 失效。新栈把 Windows 原生
     Segoe UI Variable Display / Segoe UI 提到第二三位，Roboto（Android/Chrome 标配）
     与 Noto Sans SC（Linux）随后，各平台都有确定落点。 */
  --font-num: "SF Pro Display", "Segoe UI Variable Display", "Segoe UI",
    "Roboto", "Noto Sans SC", system-ui, -apple-system, "Helvetica Neue",
    sans-serif;
  /* 兼容别名：T45 时代写的 var(--num-font) 全部指向新栈，无需逐处改名 */
  --num-font: var(--font-num);

  /* 字号阶梯（桌面值；移动端基准在下方 --fs-*，断点内上调）
     display 48/700（大数字）· h1 32/700 · h2 22/600 · body 15/400 ·
     caption 13/400（--fs-sub）· micro 12/500（--fs-mini，medium 字重） */
  --fs-display: 48px;
  --fs-h1-desk: 32px;
  --fs-h2-desk: 22px;

  /* ---------- 灯卡顶边条（T45c 视觉锚定）：同色系 10% 透明度，仅作卡片顶部识别条 ---------- */
  --strip-red: rgba(229, 72, 77, .10);
  --strip-orange: rgba(247, 107, 21, .10);
  --strip-yellow: rgba(245, 166, 35, .10);
  --strip-green: rgba(48, 164, 106, .10);

  /* ---------- 背景节奏（T45c）：hero 区浅靛 135° 渐变 + 32px 细网格（4%） ---------- */
  --hero-grad-a: #EEF1FE;   /* 渐变起点（= --brand-weak，独立 token 防误改联动） */
  --hero-grad-b: #F8FAFC;   /* 渐变终点（= --bg） */
  --grid-line: rgba(79, 107, 246, .04);  /* hero 细网格线 */
  --line-brand: rgba(79, 107, 246, .12); /* 数据卡 1px 浅靛描边 */

  /* ---------- 圆角 / 阴影 / 间距 ---------- */
  --r-lg: 16px;
  --r-md: 10px;
  --r-sm: 6px;
  --r-pill: 999px;
  --shadow-card: 0 1px 3px rgba(15, 23, 41, .06), 0 8px 24px rgba(15, 23, 41, .06);
  --shadow-hover: 0 2px 6px rgba(15, 23, 41, .08), 0 14px 32px rgba(15, 23, 41, .10);
  --shadow-sm: 0 1px 2px rgba(15, 23, 41, .04);   /* 列表项/小卡的极轻投影 */
  --shadow-bar: 0 -2px 12px rgba(15, 23, 41, .08);/* 页底固定条（向上投影） */
  --hairline: rgba(15, 23, 41, .18);              /* 灯点描边：浅色灯上也能看出边界 */
  --brand-grid: rgba(79, 107, 246, .05);          /* hero 网格线 */
  --brand-wave: rgba(79, 107, 246, .10);          /* hero 雷达波纹 */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-12: 48px;

  /* ---------- 容器宽度（T45 桌面宽屏：375 现状 → 960 过渡 → 1180 宽屏） ---------- */
  --w-page: 1180px;   /* ≥1024px 宽屏主容器 */
  --w-mid: 960px;     /* 720~1024px 过渡 */
  --w-read: 760px;    /* 长文阅读宽（方法论正文等，宽屏下不拉成大长条） */

  /* ---------- 字号阶（桌面在 base.css 的断点内上调，此处为移动端基准） ---------- */
  --fs-hero: 20px;    /* 结论句 / h1（桌面 → 40~48px） */
  --fs-num: 28px;     /* 大数字（桌面 → 44px） */
  --fs-h2: 17px;
  --fs-body: 15px;    /* T45：正文 14 → 15px */
  --fs-sub: 13px;     /* 辅助 */
  --fs-mini: 12px;    /* 角标/脚注 */

  /* ---------- 动效（统一时长，prefers-reduced-motion 在 base.css 统一关闭） ---------- */
  --ease: cubic-bezier(.4, 0, .2, 1);
  --dur: 200ms;
  --dur-view: 250ms;  /* tab 切换内容淡入（T45c） */
}
