/* Retu 品牌 token · dark · v4 · 2026-09-15 · 手册 P18 为唯一色源
 * 由 brand/palette.py 生成,不要手改这个文件 —— 改 palette.py 再跑一遍。
 * 唯一色源:《Retu 品牌设计与应用手册 · 柱阵 R 九号方案》P18 三角色色板。
 * 每个值要么是手册原值,要么是档间插值,要么是唯一那一个★补档 —— palette.py 里有断言。
 * ★补档 = 主色·蓝第四档「浅蓝」,2026-09-15 经委托人放行、仅供深色主题;
 *   它由手册三档的 LCh 走向推出(L* 续步、C* / h 锁死),规则可重算,见 derive_blue_pale()。
 * 只含自定义属性定义,不含任何选择器规则(建站那一路只引用变量名)。
 * 槽位名沿用 10-设计系统-tokens.md,一个都没改。
 *
 * 2026-09-22 只改了下面那一行选择器,一个值都没动。
 * 原来是 `:root` + 页头用 link.media 整份启停,那样**深浅只能整页二选一**:
 * 浅色页里根本没有深色这套值,想开一块深色区只能手写 hex,违反「手册 P18 为唯一色源」。
 * 改成 `[data-theme="dark"]` 之后两份 token 常驻、由属性决胜负,于是
 * `<section data-theme="dark">` 能在浅色页里开出一整块深色区 —— 而且站上所有
 * 主题差异(figures-r*.css 的不透明度档、c-grid 的 alpha、投影)本来就写成
 * `[data-theme="dark"] 后代`,天然跟着嵌套生效,不必复制第二份值。
 * 配套:七页两个 link 都改成 media="all",theme-boot.js / main.js 不再切 media。
 */
[data-theme="dark"] {
  /* ---- 中性 · 石墨(P18:承载全部信息层级,不承担识别) ---- */
  --c-canvas: #141F26;  /* 手册原值 · 页面底 = 手册深底档 */
  --c-surface: #1B2A33;  /* 手册原值 · 卡面 = 手册墨档(对底 1.14,层级由 1px 描边补足,见 DARK_ONLY) */
  --c-surface-subtle: #18242C;  /* 档间插值 · 深底→墨 50%,分区带 */
  --c-surface-sunken: #141F26;  /* 手册原值 · 凹陷面 = 页面底本身(手册没有比深底更深的档,不朝黑外推) */
  --c-border: #1B2A33;  /* 手册原值 · 装饰性描边 = 手册墨档 */
  --c-border-strong: #61747C;  /* 档间插值 · 强描边 on 卡面/页面底(含法定风险警示条边框):手册原档 #5C6F78 实测 2.81 < 3.0,最小偏离 8% */
  --c-divider: #1B2A33;  /* 手册原值 · 分隔线 = 手册墨档 */
  --c-grid: #18262E;  /* 档间插值 · 深底→墨 60%,纯装饰网格 */
  --c-text: #F4F6F6;  /* 手册原值 · 正文主色 = 手册浅底档,深底上 15.44 */
  --c-text-2: #E2E6E7;  /* 手册原值 · 次级文字 = 手册分隔档,深底上 13.33 */
  --c-text-3: #9BAAB0;  /* 手册原值 · 三级文字 = 手册次要档,深底上 7.00 */
  --c-text-disabled: #5C6F78;  /* 手册原值 · 禁用态 = 手册正文档(1.4.3 豁免) */

  /* ---- 品牌主色 · 蓝(P18:版面上唯一可以大面积承担品牌识别的颜色) ---- */
  --c-primary-50: #0E3456;  /* 档间插值 · 深底上的主色弱底:朝手册深底走到刚好托得住 primary-700 文字 4.5(解出 63%) */
  --c-primary-100: #0E3557;  /* 档间插值 · 标准蓝→深底 62% */
  --c-primary-500: #1C7BD0;  /* 手册原值 · 图形/图标档(门槛 3.0,不承载文字),深底上 3.82 */
  --c-primary-600: #4091E8;  /* 档间插值 · 主色实底 on 页面底与卡面(3.0)且 墨字 on 它(4.5):手册原档 #1C7BD0 实测 3.36 < 3.0/4.5,最小偏离 66% */
  --c-primary-700: #539CF5;  /* ★补档(非手册,委托人放行) · 链接/焦点环/主按钮悬停底:深底 5.94、卡面 5.22、墨字 5.22,一次落档,回收旧版 20% 插值 */
  --c-primary-800: #539CF5;  /* ★补档(非手册,委托人放行) · 按下态:家族内已无更亮档,更暗则墨字不达标 ⇒ 与 700 同值,状态差由组件规格的 translateY(1px) 承载 */

  /* ---- 辅助色 · 青(P18:只作点缀与次级层级,用量不超过主色) ---- */
  --c-accent-50: #113543;  /* 档间插值 · 深底上的强调弱底:走到刚好托得住 accent-700 文字 4.5(解出 78%) */
  --c-accent-500: #12A6C4;  /* 手册原值 · 强调图形档,深底 5.80 / 卡面 5.10,都 ≥ 3.0 */
  --c-accent-700: #12A6C4;  /* 手册原值 · 强调文字档,深底 5.80 / 卡面 5.10,都 ≥ 4.5 */

  /* ---- 「谁做的」标记 · 颜色辅助档(硬载体是形状/填充) ---- */
  --c-agent: #1C7BD0;  /* 手册原值 · 智能体执行 = 亮蓝,深底上 3.82 ≥ 3.0 */
  --c-human: #9BAAB0;  /* 手册原值 · 人执行/治理/签字 = 中性次要档,深底上 7.00 ≥ 3.0 */

  /* ---- 界面状态色(成功/警告/危险)—— 手册只立法了危险档,其余属产品层 ---- */
  --c-success-700: #20A265;
  --c-success-600: #1A8151;
  --c-success-50: #152B2B;
  --c-warning-700: #C4800A;
  --c-warning-600: #9C6508;
  --c-warning-50: #242722;
  --c-danger-700: #C77B74;
  /* 手册原值 #B0453B 是照着浅底定的,搬到深底上只有 2.74:1,闭合边框看不见(check-contrast 长期红)。
     本行只在深色版把明度抬到刚过 3.0(色相 5.1° 不动、饱和度不动,3.115:1;白字在其上仍 4.92)。
     浅色版保持手册原值不动。同一份文件里 --sem-error 早就为深底换成了 700,这里补的是漏掉的那一处。 */
  --c-danger-600: #BE4B40;
  --c-danger-50: #272429;

  /* ---- 实底上的字(逐个实测定的,不是一律白)---- */
  --c-on-primary: #1B2A33;
  --c-on-accent: #1B2A33;
  --c-on-success: #FFFFFF;
  --c-on-warning: #FFFFFF;
  --c-on-danger: #FFFFFF;

  /* ==== 语义 · 涨跌与错误 ————— 这一组**不是品牌色** =====================
     手册 P25 原文:「涨跌两色按客户所在市场的惯例执行,由各产品线在产品规范中定义,
     不在品牌层统一指定。」「红色在任何情况下都不作为品牌色使用。」
     「亏损态、错误态与失败提示统一取 #B0453B,仅在界面状态中出现,不进入品牌色板。」
     「品牌蓝与辅助青在任何界面中都不表示涨跌、盈亏或成败。」

     ⇒ 这四个变量只允许出现在**报价 / 行情 / 表单校验**这类界面状态里,
       不得用于版面装饰、不得与 --c-primary-* / --c-accent-* 互换。
     ⇒ 委托人 2026-09-15 拍板:**绿涨红跌**(国际惯例)。
     ⇒ 绿色手册未给,由本文件定义(色相 152°,与辅助青 194° 拉开 42°,不会被读成品牌青)。
     ⚠️ 红绿在色觉障碍下必然靠拢 —— 涨跌**必须同时是形状差**,颜色失效时语义仍成立。 */
  --sem-up: #20A265;        /* 涨 */
  --sem-down: #C77B74;      /* 跌 */
  --sem-error: #C77B74;     /* 亏损态 / 错误态 / 失败提示(手册 P25 指定) */
  --shape-up: "▲";           /* 涨 = 向上实心三角 —— 硬载体 */
  --shape-down: "▽";         /* 跌 = 向下空心三角 —— 硬载体,实/空再加一道 */

  /* ---- 本文件只定义「颜色 + 品牌层特有」槽位 ----
     字阶 / 间距 / 圆角 / 图标 / 栅格 / 断点 / 动效一律不在这里定义,
     它们归 10-设计系统-tokens.md,重复定义会同名不同值地静默分叉。 */

  /* ---- P18 用量规则(取值管不住用量,由版面执行)----
     三者在同一版面上的面积次序恒为:中性、主色、辅助色。
     辅助青:只作点缀与次级层级,用量不超过主色。 */

  /* ---- 「谁做的」标记:形状是硬载体,颜色只是辅助 ----
     实测蓝阶内部任意两档都凑不出 3:1 的互相区分度(几何上做不到,
     推导见 对比度校验-双主题.py 的 NOTE),
     所以判据是:端头形状 + 填充与否承载语义,颜色掉了语义仍然成立。 */
  --r-agent: 999px;          /* 智能体 = 圆端(胶囊) */
  --r-human: 2px;            /* 人 / 治理 / 签字 = 方端 */
  --fill-agent: currentColor;/* 智能体 = 实填 */
  --fill-human: none;        /* 人 = 仅描边(限额是边界,不是面积) */

  /* ---- 标志承托面(手册 P24)----
     照片底与图案底一律加承托面,标志不直接压在图像之上;四角直角,不加描边与投影。 */
  --logo-plate: #F4F6F8;

  /* ---- 纵深:深色下投影不可见,改用「描边 + 内高光 + 选择性辉光」 ----
     卡面(手册墨档)对页面底(手册深底档)只有 1.14 —— 手册只给了两档深石墨,
     层级差不够,由 1px 描边补足。这是手册材料的边界,不是配色失误。 */
  --sh-0: none;
  --sh-1: 0 0 0 1px rgba(155, 170, 176, 0.16), inset 0 1px 0 rgba(226, 230, 231, 0.05);
  --sh-2: 0 0 0 1px rgba(155, 170, 176, 0.20), inset 0 1px 0 rgba(226, 230, 231, 0.07),
          0 6px 18px rgba(0, 0, 0, 0.45);
  --sh-3: 0 0 0 1px rgba(155, 170, 176, 0.26), inset 0 1px 0 rgba(226, 230, 231, 0.09),
          0 18px 46px rgba(0, 0, 0, 0.60);
  --glow-primary: 0 0 0 1px rgba(28, 123, 208, 0.55), 0 0 22px rgba(4, 89, 168, 0.40);
  --glow-accent:  0 0 0 1px rgba(18, 166, 196, 0.50), 0 0 22px rgba(6, 133, 170, 0.30);
  --focus-ring-color: var(--c-primary-700);

}
