/* ============================================================================
   add light 加点光 · 品牌色板 · 单一事实源（SSOT）
   ----------------------------------------------------------------------------
   ★ 本文件是全部色值的唯一来源（见 docs/add light 品牌视觉识别（VI）手册·施工规范.md §一、§8.2）
     各页面 <link> 引入本文件，**不得再各自复制 :root**。

   ★ 三处合法例外（都是"平台不允许外链样式表"或"语法不允许变量"）：
       ① 微信图文     → scripts/blog_to_wechat.py 从本文件派生为**内联十六进制**
       ② 小程序 WXSS  → scripts/make_vi_assets.py 从本文件派生 palette.wxss
       ③ <meta name="theme-color"> 与注释 → 语法上无法用 var()，按本文件取值书写

★ 第四处例外 · 部署副本（与上面三处的性质不同，是"同一份文件的多份拷贝"）：
    页面写的是站点内绝对路径 `/assets/vi/palette.css`，线上按**各站自己的
    root** 解析。故每个引用了它的站点根下都必须真的有一份：
      addlight.club        root /opt/addlight-brand      ← 本文件即在这一处
      h5 / m.addlight.club root /opt/addlight-skeleton   ← 由脚本复制过去
      /demo/（alias）       → /opt/addlight-skeleton      ← 与 h5 **同一份副本**
    ★ h5 / m 的 root 在 2026-09-18 前是 /opt/addlight-reserved，那是一处错配；
      改指 skeleton 后，色板副本随之一并落在 /opt/addlight-skeleton，h5 与
      /demo/ 从此共用一份——**少一处副本就少一个会漂移的地方**。
       副本由 make_vi_assets.py 的 sync_palette_copies() **原样复制**（字节一致，
       不加任何注释头），漂移由 apply_vi_site.py --check 的 check_palette_reach()
       逐字节比对守住。**改色值只改本文件**，改完重跑：
           python3 scripts/make_vi_assets.py
           python3 scripts/apply_vi_site.py --check
       缺失副本的后果不是报错而是"颜色全错"：var() 全部落空 → 页面变浏览器
       默认白底黑字，且页面**照常返回 200**（实测确认过）。

   ★ 着色规则（唯一一条）
     "它上面有字，或者它本身就是字吗？是，就必须来自 B 组或 D 组。"
     —— C 组（--accent / --gold）只用于图形、边框与深底。

   ★ 深色模式是**可选启用**的：默认不自动生效（不跟系统偏好翻转），
     需在 <html> 上显式加 data-theme="dark"。理由见手册 §1.6。
   ========================================================================== */

:root{
  /* ── A 组 · 表面 ── */
  --bg:#F7F5F1;
  --surface:#FFFFFF;
  --surface2:#F1EDE6;
  --line:rgba(30,27,23,.10);
  --line-2:#CFC9BD;                 /* 次级描边：虚线占位态 */
  --surface3:#E7E3DB;               /* 比 --surface2 再深一档：骨架屏脉动、占位块 */

  /* ── B 组 · 文字（唯一允许承载文字的品牌色组）── */
  --ink:#1E1B17;
  --ink2:#57514A;
  --ink3:#6F6862;
  --accent-text:#865C26;
  --gold-text:#7C6415;
  --brown:#6B4E22;

  /* ── B′ · 深底（墨底）上的文字：一条五级阶梯，不再各自写透明度 ── */
  --on-ink:#F7F5F1;                 /* 1.00 · 墨底正文（= 反白版方块暖白，与 --bg 同值） */
  --on-ink-2:rgba(247,245,241,.78); /* 0.78 · 墨底次级标题 */
  --on-ink-3:rgba(247,245,241,.62); /* 0.62 · 墨底说明文字 */
  --on-ink-4:rgba(247,245,241,.50); /* 0.50 · 墨底三级文字 */
  --on-ink-line:rgba(247,245,241,.34); /* 0.34 · 墨底描边 */

  /* ── C 组 · 品牌识别（图形 / 边框 / 深底；默认不承载文字）── */
  --accent:#9A6B2F;
  --accent-soft:#F3E8D8;
  --gold:#C9A227;

  /* ── 装饰灰（不承载文字）── */
  --ink-4:#8B847A;

  /* ── D 组 · 状态色 ── */
  --red:#A32D2D;        --red-soft:#FCEBEB;      --red-line:#F0C4C4;
  --green:#2F6F4E;      --green-soft:#E6F2EA;    --green-line:#C3E0CF;
  --blue:#185FA5;       --blue-soft:#E6F1FB;     --blue-line:#B5D4F4;
  --amber:#854F0B;      --amber-soft:#FAEEDA;    --amber-line:#EFD9B4;
  --accent-line:#E4D2B4;            /* 与 --accent-soft 配套的柔和面描边 */

  /* ── E 组 · 交互态与遮罩（把已用的透明度写成令牌，不再散落字面量）── */
  --on-accent:#FFFFFF;              /* 压在 --accent / --ink 实底上的文字与图形 */
  --on-gold:#3A2C0A;                /* 压在 --gold 实底上的文字（深棕，与金的明度差最大） */
  --accent-ring:rgba(154,107,47,.10);  /* 输入框聚焦环 */
  --bg-veil:rgba(247,245,241,.90);  /* 顶栏 / 浮层的半透明暖白底（收敛原 .88/.90/.94 三值） */
  --surface-veil:rgba(255,255,255,.96); /* 底部固定操作条 */
  --scrim:rgba(30,27,23,.42);       /* 遮罩：弹层压暗 */
  --scrim-strong:rgba(30,27,23,.62);/* 遮罩：图上压白字（需更暗才读得清） */

  /* ── 版式基线 ── */
  --radius:14px;
  --radius-pill:999px;
  --maxw:1080px;
  --readw:34em;
}

/* ── 深色模式：成对交付，不是自动取反（手册 §1.6）──
   ★ 需显式启用：<html data-theme="dark">。不做 prefers-color-scheme 自动翻转——
     品牌站对外是"一套形象"，自动翻转会让同一个链接在不同访客那里呈现两种观感。
     小程序侧由 app.json 的 darkmode 决定，走派生的 palette.wxss。 */
:root[data-theme="dark"]{
  --bg:#16150F;
  --surface:#201E17;
  --surface2:#2A2721;
  --line:rgba(242,239,233,.14);
  --line-2:#3A3A34;
  --surface3:#332F28;

  --ink:#F2EFE9;
  --ink2:#C4BDB2;
  --ink3:#A79F94;
  --accent-text:#D3A45E;
  --gold-text:#E0C15C;
  --brown:#E0B05E;

  --on-ink:#16150F;
  --on-ink-2:rgba(22,21,15,.78);
  --on-ink-3:rgba(22,21,15,.62);
  --on-ink-4:rgba(22,21,15,.50);
  --on-ink-line:rgba(22,21,15,.34);

  --accent:#D3A45E;
  --accent-soft:#33291A;
  --gold:#E0C15C;

  --ink-4:#8F887D;

  --red:#F08A8A;        --red-soft:#3A2222;      --red-line:#5A2E2E;
  --green:#6FBF8E;      --green-soft:#1E3327;    --green-line:#2C4636;
  --blue:#7FB2E8;       --blue-soft:#1B2A3C;     --blue-line:#2F4460;
  --amber:#E0B05E;      --amber-soft:#33280F;    --amber-line:#5A4416;
  --accent-line:#5A4526;

  --on-accent:#16150F;
  --on-gold:#16150F;
  --accent-ring:rgba(211,164,94,.18);
  --bg-veil:rgba(22,21,15,.90);
  --surface-veil:rgba(32,30,23,.96);
  --scrim:rgba(6,6,4,.60);
  --scrim-strong:rgba(6,6,4,.74);
}
