/* ══════════════════════════════════════════════════════════
   qiuyiwu.com 设计系统 · Token 层（单一真源）
   继承自 assets/v3-tokens.css 的实测对比度色板，补齐字号阶与间距阶。

   规矩：
   1. 任何色值、字号、间距、圆角、阴影、动效时长，只在这里定义一次。
      页面里出现字面量 = bug。
   2. 每个前景色都标注对 --v-bg 的实测对比度（WCAG 2.1 相对亮度公式）。
      改色值必须同时改注释里的数字，并且真的复算一遍。
   3. 中文一律不使用斜体（仅拉丁文/数字可斜）——见 base.css。
   ══════════════════════════════════════════════════════════ */

:root {
  /* ── 底色 ───────────────────────────────────────────── */
  --v-bg:  #FBFAF6;   /* 页面纸底 */
  --v-bg2: #F3EFE6;   /* 次级底：嵌入块、侧栏 */
  --v-bg3: #EAE4D6;   /* 三级底：hover、chip */
  --v-card:#FFFFFF;   /* 实心卡面 */

  /* ── 前景（括号内为对 --v-bg 的实测对比度）───────────── */
  --v-ink:  #221E1A;  /* 15.85:1  主文字 · 标题 */
  --v-ink2: #403A34;  /* 10.74:1  次级正文 */
  --v-ink3: #5E574F;  /*  6.81:1  辅助说明 */
  --v-ink4: #6E665C;  /*  5.41:1  最弱级 · 微标签
                             ⚠️ 原 #8B837A 实测仅 3.57:1，低于 AA 4.5:1，
                             而它正用在 9–10.5px 的微标签上。已加深到 5.41:1。 */

  /* ── 描边 ───────────────────────────────────────────── */
  --v-line:  #CFC7B6; /* 常规分隔线（非文字，不适用 4.5:1） */
  --v-line2: #B8AF9C; /* 强描边：次级按钮、pill */

  /* ── 强调 ───────────────────────────────────────────── */
  --v-accent:       #8E4231;  /*  6.76:1  朱砂 · 强调与主按钮 */
  --v-accent-hover: #77341F;  /*  8.76:1  主按钮 hover */
  --v-accent-2:     #A65D4E;  /*  4.68:1  次强调 ⚠️ 刚过 AA，仅大字/图形，不做小字 */
  --v-accent-soft:  rgba(142,66,49,.09);

  /* 压在 accent 底上的前景色。必须随主题翻转：
     亮色 #FFF on #8E4231 = 7.06:1 ✓
     暗色 #FFF on #E08A72 = 2.61:1 ✗ ——所以暗色下改用深墨（6.30:1）。
     主按钮一律写 color:var(--v-on-accent)，别写死 #fff。 */
  --v-on-accent: #FFFFFF;

  /* ── 状态 ───────────────────────────────────────────── */
  --v-live: #2F6B3D;  /*  6.11:1  在线 / 运行中 */

  /* ── 场景色（演讲档案五类听众；与 recap.css 同值）───── */
  --scene-ent:#b5485b; --scene-gov:#3a6ea5; --scene-uni:#2e8b73;
  --scene-edu:#c2691f; --scene-startup:#7a5cc8;

  /* ── 字体族 ─────────────────────────────────────────
     不再依赖 styles.css：这里自带完整字体栈。
     ⚠️ 中文实际由系统字体 PingFang SC / Songti SC 兜底，
        Noto 系走 Google Fonts，大陆不可靠。自托管子集是待办。 */
  --v-font-cn:      'Noto Sans SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
  --v-font-cn-serif:'Noto Serif SC', 'Songti SC', 'STSong', serif;
  --v-font-sans:    'Inter Tight', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --v-font-serif:   'Source Serif 4', Georgia, 'Times New Roman', serif;
  --v-font-mono:    'JetBrains Mono', 'SF Mono', Menlo, monospace;

  /* ── 字号阶（流体；老系统完全没有这一层）───────────── */
  --fs-display: clamp(2.2rem, 4.6vw, 3.4rem);  /* Hero 主标题，每页至多一处 */
  --fs-h1:      clamp(1.9rem, 3.4vw, 2.6rem);  /* 内页页面标题 */
  --fs-h2:      2rem;                          /* 区块标题 .ds-sec-title */
  --fs-h3:      1.24rem;                       /* 卡片标题 */
  --fs-h4:      1.06rem;                       /* 小标题 / 分组名 */
  --fs-lede:    16.5px;                        /* 导语 */
  --fs-body:    15.5px;                        /* 正文 */
  --fs-sm:      13.5px;                        /* 卡片描述 */
  --fs-xs:      12.5px;                        /* 注解 */
  --fs-micro:   10.5px;                        /* mono 微标签 */

  /* ── 行高 ───────────────────────────────────────────── */
  --lh-tight: 1.26;   /* 大标题 */
  --lh-title: 1.45;   /* 卡片标题 */
  --lh-body:  1.75;   /* 正文 */
  --lh-loose: 1.82;   /* 长段落导语 */

  /* ── 间距阶（4 的倍数；老系统喊了 8 的倍数但从未落地，
         这次按真实用得到的档位定，别定一个执行不了的）──── */
  --sp-1:  4px;
  --sp-2:  8px;
  --sp-3:  12px;
  --sp-4:  16px;
  --sp-5:  20px;
  --sp-6:  24px;
  --sp-8:  32px;
  --sp-10: 40px;
  --sp-14: 56px;
  --sp-21: 84px;   /* 区块上下留白 */

  /* ── 容器 ───────────────────────────────────────────── */
  --v-max:    1180px;
  --v-gutter: 32px;
  --v-read:   660px;   /* 导语 / 长文行宽 */

  /* ── 圆角 ───────────────────────────────────────────── */
  --r-sm:  11px;
  --r-md:  13px;
  --r-lg:  18px;
  --r-xl:  22px;
  --r-pill:9999px;

  /* ── 阴影 ───────────────────────────────────────────── */
  --v-shadow:    0 2px 3px rgba(50,40,30,.04), 0 12px 32px rgba(50,40,30,.07);
  --v-shadow-lg: 0 4px 8px rgba(50,40,30,.06), 0 20px 56px rgba(50,40,30,.11);

  /* ── 动效 ───────────────────────────────────────────── */
  --t-fast: .15s;
  --t-base: .18s;
  --t-slow: .28s;
}

html[data-theme="dark"] {
  --v-bg:  #211F1D;
  --v-bg2: #2A2825;
  --v-bg3: #343029;
  --v-card:#2A2825;

  --v-ink:  #F7F3EA;  /* 14.83:1 */
  --v-ink2: #DED7CB;  /* 11.49:1 */
  --v-ink3: #B5ADA1;  /*  7.40:1 */
  --v-ink4: #9A9187;  /*  5.30:1  同样提亮过，与亮色保持同一档可读性 */

  --v-line:  #453F37;
  --v-line2: #5A5248;

  --v-accent:       #E08A72;  /*  6.30:1 */
  --v-accent-hover: #EFA491;  /*  8.13:1 */
  --v-accent-2:     #D2775E;  /*  5.12:1 */
  --v-accent-soft:  rgba(224,138,114,.13);

  /* 暗色下 accent 是浅色 → 压在它上面的前景必须翻成深墨 */
  --v-on-accent: #211F1D;  /*  6.30:1 on --v-accent */

  --v-live: #6BBE80;  /*  7.28:1 */

  --v-shadow:    0 2px 3px rgba(0,0,0,.18), 0 12px 32px rgba(0,0,0,.24);
  --v-shadow-lg: 0 4px 8px rgba(0,0,0,.22), 0 20px 56px rgba(0,0,0,.3);
}
