/* ============================================================
   深色模式 · 由 scripts/build_dark_theme.py 生成，请勿手改
   ------------------------------------------------------------
   本文件提供：
     1. 浅色 token 定义（值 == 原硬编码值，所以浅色模式零改动）
     2. 深色 token 覆盖（媒体查询版 + data-theme 版，内容一致）

   触发方式
     跟随系统：@media (prefers-color-scheme: dark)
     手动指定：<html data-theme="dark"> / data-theme="light"

   校验：python scripts/check_dark_mode.py
         python scripts/verify_light_unchanged.py --all
   ============================================================ */

/* ---------- 浅色 token（= 原值）---------- */
:root{
  /* ★ 显式声明浅色配色。
     不写这一条时，系统处于深色模式会让浏览器把「原生控件」按深色渲染：
     滚动条、input/textarea 的边框与光标、select 下拉、日期选择器。
     于是用户在系统深色下把页面切到浅色，正文变白了，但输入框和滚动条
     还是深色 —— 观感就是"没完全变浅"，甚至以为切换没生效。
     深色块里已声明 color-scheme:dark 覆盖它，两条互为镜像。 */
  color-scheme:light;

  --c-2:#e4534b;
  --c-3:#e8a317;
  --c-4:#2e8b57;
  --card:#ffffff;
  --surface-8:#fdf2f1;
  --c-11:#061a2c;
  --c-12:#093049;
  --c-13:#0f4468;
  --c-15:#061624;
  --surface-17:#fbfdfe;
  --surface-18:#ebf3f9;
  --surface-19:#fcfdfe;
  --surface-20:#fffcf3;
  --surface-23:#e1f5ee;
  --c-27:#05182a;
  --surface-32:#edf3f8;
  --surface-33:#dce8f2;
  --surface-35:#fdf3df;
  --c-37:#1867a8;
  --c-38:#c8452f;
  --c-39:#6b7f8e;
  --c-40:#1a6bae;
  --c-41:#6b4fa0;
  --c-42:#0e7c86;
  --surface-43:#eaf4ee;
  --c-45:#0d3e63;
  --surface-46:#fdf5f4;
  --surface-49:#eef7f1;
  --surface-52:#d9e6f1;
  --surface-55:#d6e4f0;
  --surface-64:#f3faf6;
  --surface-65:#e0f2e7;
  --surface-68:#fffbf0;
  --surface-69:#fdf0d5;
  --c-70:#d99a2b;
  --surface-73:#f1eef9;
  --surface-75:#f1f4f7;
  --ink-1:#0c447c;
  --on-dark:#ffffff;
  --ink-7:#2b1d00;
  --ink-10:#7e2820;
  --ink-14:#3a2500;
  --fg-16:#a9b6c1;
  --ink-21:#6b5217;
  --ink-22:#0f6e56;
  --fg-28:#93c8ea;
  --fg-29:#7fc1ee;
  --fg-31:#b8830c;
  --fg-34:#7fa3c0;
  --ink-36:#8a5300;
  --ink-44:#4a3808;
  --ink-47:#9b3a2f;
  --ink-48:#6b3a33;
  --ink-50:#1f6b45;
  --ink-51:#2a5540;
  --fg-53:#8fafc8;
  --fg-54:#5f7284;
  --fg-56:#8798a6;
  --ink-57:#256b45;
  --ink-58:#1a6bae;
  --ink-59:#0e7c86;
  --ink-60:#6b4fa0;
  --fg-61:#7a8b99;
  --ink-62:#7a3b33;
  --fg-66:#5e8a72;
  --ink-71:#5c4208;
  --ink-72:#7a5c14;
  --ink-74:#5b4189;
  --fg-76:#8494a1;
  --line-9:#f0c9c5;
  --line-24:#9fe1cb;
  --line-25:#e6ecf1;
  --line-26:#f2f6f9;
  --card-line:#ffffff;
  --line-63:#c8e4d4;
  --line-67:#f0ddb0;

  /* 三级表面：底 < 卡片 < 悬浮 */
  --card-soft:#FBFDFE;
  --card-raised:#fff;

  /* 玻璃条与细线（rgba 无法用 hex token 表达） */
  --glass:rgba(255,255,255,.96);
  --glass-badge:rgba(255,255,255,.85);

  /* 按用途拆分的别名（浅色 = 原值） */
  --navy-text:#093049;
  --navy-line:#093049;
  --navy2-text:#0D3E63;
  --blue-text:#1A6BAE;
  --blue-line:#1A6BAE;
  --green-text:#2E8B57;
  --red-text:#C8452F;
  --yellow-text:#E8A317;
  --yellow-line:#E8A317;
  --navy-fill:#093049;
  --navy-fill-hover:#0D3E63;
  --chip-ok-bg:#EAF4EE;
  --chip-ok-ink:#256B45;
  --chip-urg-bg:#FDF3DF;
  --chip-urg-ink:#8A5300;
}

/* ---------- 深色 token：跟随系统 ---------- */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    /* 表面：底 < 卡片 < 悬浮，保留明度差否则层次全糊 */
    --bg:#101619;
    --bg2:#151C21;
    --bg3:#1B242A;
    --card-soft:#1D272D;
    --card-raised:#212D34;

    --line:#26333A;
    --line2:#33434C;

    --ink:#E6EDF2;
    --ink2:#A7B7C2;
    --ink3:#7C8D99;

    --c-2:#e4534b;
    --c-3:#e8a317;
    --c-4:#2e8b57;
    --card:#192328;
    --surface-8:#281211;
    --c-11:#061a2c;
    --c-12:#093049;
    --c-13:#0f4468;
    --c-15:#061624;
    --surface-17:#101F27;
    --surface-18:#111F29;
    --surface-19:#101B26;
    --surface-20:#272110;
    --surface-23:#112921;
    --c-27:#05182a;
    --surface-32:#111E29;
    --surface-33:#12202C;
    --surface-35:#292111;
    --c-37:#1867a8;
    --c-38:#c8452f;
    --c-39:#6b7f8e;
    --c-40:#1a6bae;
    --c-41:#6b4fa0;
    --c-42:#0e7c86;
    --surface-43:#14261B;
    --c-45:#0d3e63;
    --surface-46:#281310;
    --surface-49:#122719;
    --surface-52:#12202C;
    --surface-55:#12202D;
    --surface-64:#10271A;
    --surface-65:#112A1B;
    --surface-68:#272110;
    --surface-69:#292111;
    --c-70:#d99a2b;
    --surface-73:#181129;
    --surface-75:#151D24;
    --ink-1:#90B8DF;
    --on-dark:#ffffff;
    --ink-7:#2b1d00;
    --ink-10:#DF9790;
    --ink-14:#3a2500;
    --fg-16:#a9b6c1;
    --ink-21:#DFC790;
    --ink-22:#90DFCB;
    --fg-28:#93c8ea;
    --fg-29:#7fc1ee;
    --fg-31:#E0C485;
    --fg-34:#7fa3c0;
    --ink-36:#DFC090;
    --ink-44:#DFC990;
    --ink-47:#DE9991;
    --ink-48:#D1A59E;
    --ink-50:#90DFB8;
    --ink-51:#9FD0B8;
    --fg-53:#8fafc8;
    --fg-54:#A6B3BF;
    --fg-56:#A7B4BE;
    --ink-57:#95DAB5;
    --ink-58:#90BBDF;
    --ink-59:#90D8DF;
    --ink-60:#B09FD0;
    --fg-61:#A8B3BD;
    --ink-62:#D5A19A;
    --fg-66:#A4C1B1;
    --ink-71:#DFC790;
    --ink-72:#DFC890;
    --ink-74:#B19ED1;
    --fg-76:#A8B4BD;
    --line-9:#4F2420;
    --line-24:#204E3F;
    --line-25:#243441;
    --line-26:#1F3343;
    --card-line:#2F2F2F;
    --line-63:#234733;
    --line-67:#4B3E1F;

    --glass:rgba(20,27,31,.94);
    --glass-badge:rgba(25,35,40,.88);

    --navy-text:#CFE0EE;
    --navy-line:#7391A6;
    --navy2-text:#CFE0EE;
    --blue-text:#7FB8E8;
    --blue-line:#3E7096;
    --green-text:#7FC79F;
    --red-text:#EE9184;
    --yellow-text:#F0B94E;
    --yellow-line:#8A6A20;
    --navy-fill:#2674A6;
    --navy-fill-hover:#2E82B8;
    --chip-ok-bg:#1B3A2E;
    --chip-ok-ink:#7FC79F;
    --chip-urg-bg:#3A2E14;
    --chip-urg-ink:#F0B94E;

    /* 填充色：深色下压暗降饱和，避免实心色块"发光"抢视线 */
    --red:#B04432;
    --yellow:#976E1B;
    --green:#2D784E;

    --sh:0 2px 4px rgba(0,0,0,.3), 0 14px 40px rgba(0,0,0,.42);
    --sh-lg:0 4px 8px rgba(0,0,0,.34), 0 24px 64px rgba(0,0,0,.52);
    color-scheme:dark;
  }
}

/* ---------- 深色 token：手动切换（内容须与上面一致）---------- */
:root[data-theme="dark"]{
  --bg:#101619;
  --bg2:#151C21;
  --bg3:#1B242A;
  --card-soft:#1D272D;
  --card-raised:#212D34;

  --line:#26333A;
  --line2:#33434C;

  --ink:#E6EDF2;
  --ink2:#A7B7C2;
  --ink3:#7C8D99;

  --c-2:#e4534b;
  --c-3:#e8a317;
  --c-4:#2e8b57;
  --card:#192328;
  --surface-8:#281211;
  --c-11:#061a2c;
  --c-12:#093049;
  --c-13:#0f4468;
  --c-15:#061624;
  --surface-17:#101F27;
  --surface-18:#111F29;
  --surface-19:#101B26;
  --surface-20:#272110;
  --surface-23:#112921;
  --c-27:#05182a;
  --surface-32:#111E29;
  --surface-33:#12202C;
  --surface-35:#292111;
  --c-37:#1867a8;
  --c-38:#c8452f;
  --c-39:#6b7f8e;
  --c-40:#1a6bae;
  --c-41:#6b4fa0;
  --c-42:#0e7c86;
  --surface-43:#14261B;
  --c-45:#0d3e63;
  --surface-46:#281310;
  --surface-49:#122719;
  --surface-52:#12202C;
  --surface-55:#12202D;
  --surface-64:#10271A;
  --surface-65:#112A1B;
  --surface-68:#272110;
  --surface-69:#292111;
  --c-70:#d99a2b;
  --surface-73:#181129;
  --surface-75:#151D24;
  --ink-1:#90B8DF;
  --on-dark:#ffffff;
  --ink-7:#2b1d00;
  --ink-10:#DF9790;
  --ink-14:#3a2500;
  --fg-16:#a9b6c1;
  --ink-21:#DFC790;
  --ink-22:#90DFCB;
  --fg-28:#93c8ea;
  --fg-29:#7fc1ee;
  --fg-31:#E0C485;
  --fg-34:#7fa3c0;
  --ink-36:#DFC090;
  --ink-44:#DFC990;
  --ink-47:#DE9991;
  --ink-48:#D1A59E;
  --ink-50:#90DFB8;
  --ink-51:#9FD0B8;
  --fg-53:#8fafc8;
  --fg-54:#A6B3BF;
  --fg-56:#A7B4BE;
  --ink-57:#95DAB5;
  --ink-58:#90BBDF;
  --ink-59:#90D8DF;
  --ink-60:#B09FD0;
  --fg-61:#A8B3BD;
  --ink-62:#D5A19A;
  --fg-66:#A4C1B1;
  --ink-71:#DFC790;
  --ink-72:#DFC890;
  --ink-74:#B19ED1;
  --fg-76:#A8B4BD;
  --line-9:#4F2420;
  --line-24:#204E3F;
  --line-25:#243441;
  --line-26:#1F3343;
  --card-line:#2F2F2F;
  --line-63:#234733;
  --line-67:#4B3E1F;

  --glass:rgba(20,27,31,.94);
  --glass-badge:rgba(25,35,40,.88);

  --navy-text:#CFE0EE;
  --navy-line:#7391A6;
  --navy2-text:#CFE0EE;
  --blue-text:#7FB8E8;
  --blue-line:#3E7096;
  --green-text:#7FC79F;
  --red-text:#EE9184;
  --yellow-text:#F0B94E;
  --yellow-line:#8A6A20;
  --navy-fill:#2674A6;
  --navy-fill-hover:#2E82B8;
  --chip-ok-bg:#1B3A2E;
  --chip-ok-ink:#7FC79F;
  --chip-urg-bg:#3A2E14;
  --chip-urg-ink:#F0B94E;

  /* 填充色：深色下压暗降饱和，避免实心色块"发光"抢视线 */
  --red:#B04432;
  --yellow:#976E1B;
  --green:#2D784E;

  --sh:0 2px 4px rgba(0,0,0,.3), 0 14px 40px rgba(0,0,0,.42);
  --sh-lg:0 4px 8px rgba(0,0,0,.34), 0 24px 64px rgba(0,0,0,.52);
  color-scheme:dark;
}

/* ============================================================
   rgba 半透明位置：无法用 hex token 表达，逐条覆盖
   ============================================================ */
[data-theme="dark"] header.nav,
[data-theme="dark"] .anchorbar,
[data-theme="dark"] .filterbar{background:var(--glass)}

[data-theme="dark"] .pcard .visual .st{
  background:var(--glass-badge);color:#A7B7C2;
}

[data-theme="dark"] .prose a{color:#7FB8E8}

[data-theme="dark"] .spec tr:nth-child(even){background:rgba(255,255,255,.03)}

[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select{
  background:#192328;color:#E6EDF2;border-color:#33434C;
}

[data-theme="dark"] .prod .thumb img{filter:brightness(.94)}

/* 黄灯上的字：浅色模式是「亮黄底 + 深棕字」，
   深色模式把黄压暗之后深棕字就读不出来了（实测只剩 3.45:1）。
   改为白字，与红/绿灯统一 —— 三色徽标视觉上也更一致。 */
[data-theme="dark"] .lamp.y{color:#fff}

/* 导航区三个控件在深色下都要"看得出是个控件"。
   实测原始状态 vs 页面底 #101619：
     .btn-p（商务合作）底 #093049  → 1.33:1（已由 --navy-fill 修）
     .burger / .theme-toggle 底 #192328 → 1.14:1
     三者描边 --line2 #33434C → 1.78:1
   WCAG 对非文本内容（控件边界）的门槛是 3:1，全部不达标。
   这里给描边提到 #5A6E7A（3.43:1），图标按钮底色提到 #2E3D45（1.62:1，只做层次）。
   只改导航区，不动全局 --line2 —— 那会把全部分隔线都改亮，页面会变硬。 */
[data-theme="dark"] .nav-act .btn-o,
[data-theme="dark"] .burger,
[data-theme="dark"] .theme-toggle{
  background:#2E3D45;border-color:#5A6E7A;
}
[data-theme="dark"] .nav-act .btn-o:hover,
[data-theme="dark"] .burger:hover,
[data-theme="dark"] .theme-toggle:hover{border-color:#7A8D9B;color:#F0F5F8}

/* 首页/业务页那排小竖列的红色光晕：
   硬编码 rgba(200,69,47,.2) 在深底上会形成一圈红光，
   而色块本身已经压暗，光晕不跟着减弱就会显得"还在发光"。 */
[data-theme="dark"] .sig .lamp{
  box-shadow:0 0 0 4px rgba(176,68,50,.16);
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) header.nav,
  :root:not([data-theme="light"]) .anchorbar,
  :root:not([data-theme="light"]) .filterbar{background:rgba(20,27,31,.94)}

  :root:not([data-theme="light"]) .pcard .visual .st{
    background:rgba(25,35,40,.88);color:#A7B7C2;
  }

  :root:not([data-theme="light"]) .prose a{color:#7FB8E8}

  :root:not([data-theme="light"]) .spec tr:nth-child(even){
    background:rgba(255,255,255,.03);
  }

  :root:not([data-theme="light"]) input,
  :root:not([data-theme="light"]) textarea,
  :root:not([data-theme="light"]) select{
    background:#192328;color:#E6EDF2;border-color:#33434C;
  }

  :root:not([data-theme="light"]) .prod .thumb img{filter:brightness(.94)}

  :root:not([data-theme="light"]) .lamp.y{color:#fff}

  :root:not([data-theme="light"]) .nav-act .btn-o,
  :root:not([data-theme="light"]) .burger,
  :root:not([data-theme="light"]) .theme-toggle{
    background:#2E3D45;border-color:#5A6E7A;
  }
  :root:not([data-theme="light"]) .nav-act .btn-o:hover,
  :root:not([data-theme="light"]) .burger:hover,
  :root:not([data-theme="light"]) .theme-toggle:hover{
    border-color:#7A8D9B;color:#F0F5F8;
  }

  :root:not([data-theme="light"]) .sig .lamp{
    box-shadow:0 0 0 4px rgba(176,68,50,.16);
  }
}
