/* ════════════════════════════════════════════════════════════════
   Vitro demo 五主题令牌 ·「学习档案 Learning Dossier」
   单一真相来源（Single Source of Truth）
   ════════════════════════════════════════════════════════════════
   来源与分叉声明（2026-10-03，issue #28 换肤批）：全套取自
   heron/docs/主题令牌/tokens.css（SharpTutor 五主题 v2，各色值均带
   WCAG 对比度实测背书，使用规则随原注释在档），复制入仓后独立演化
   ——两项目密度与消费面不同，禁止跨仓引用。

   本文件相对 heron v2 的分叉适配（其余逐字沿用）：
   1. 字体：MiSans / JetBrains Mono 外部字体裁除（零依赖纪律——国内
      访问 Pages 已要吃 wasm ~672KB 传输，不再引任何外部资源），换
      系统栈；
   2. glass 虹彩光斑：由独立模糊 div 改写为 --win-bg 多层背景
      （demo 无氛围 DOM 层；radial-gradient 柔边 + fixed attachment
      等价，随主题一键生效、零额外元素）；
   3. 各主题块显式声明 color-scheme（昼三主题 light / 夜两主题 dark
      ——原生控件跟随主题，demo 侧 style.css 不再管）；
   4. --editor-*（Monaco 衍生）、--node-* / --viz-flash / --scene /
      --grid（可视化画布）当前 demo 未消费——为 issue #28 键族层
      （算法可视化侧栏画红黑树用 node 色、画布用 scene/grid）预留，
      保留不删。

   demo 侧映射约定（style.css 消费，令牌外禁颜色字面量；色卡圆点为
   合理豁免，同 heron 豁免⑥）：
   - 警告/进行中（W 警告、pill.busy、stdin 边框、隔离区）= --num
    （六色板每主题已实测 ≥4.5:1，暖橙语义吻合）；
   - freed 内存块灰 = --delimiter（danger 描边保留）；
   - 主按钮 = --accent-grad + --on-accent；次级按钮 = --accent-fill
     + --on-accent（heron 规则 7：不另外发明底色）；
   - 层次语义：页面底 --page / 结构面板 --pane / 输入底 --field /
     代码面 --editor-bg / 浮层 --glass（预混实底）+ --float-shadow；
   - 内存三段（memory.regions）：global = --accent、heap = --ok、
     stack = --num（全体系内实测色，各主题自动和谐）。

   主题（id 即 data-theme 取值，与 SET_THEME 协议口径一致）：
     ice   昼 · 明亮实验室（默认昼）
     rose  昼 · 奶油手账
     paper 昼 · 牛皮档案
     glass 夜 · 深夜书房（默认夜；渐变 + 玻璃 + 光斑）
     soft  夜 · 绒面深蓝（纯平减法：无渐变、小半径、收阴影）
   旧值迁移：localStorage "light"→ice、"dark"→glass（head 预置脚本
   与 app.js setTheme 双处落地，2026-10-03 换肤批起生效）。
   ════════════════════════════════════════════════════════════════ */

:root {
  --mono: ui-monospace, "Cascadia Code", Consolas, "Microsoft YaHei UI", monospace;
  --font-ui: -apple-system, "Segoe UI", "Microsoft YaHei UI", sans-serif;

  /* ── 动效规格（全主题共享；WPF 侧以 KeySpline 等价映射）── */
  --t-inst: 80ms;   /* 状态直切（按压/开关） */
  --t-fast: 140ms;  /* 悬停/小型元素 */
  --t-base: 220ms;  /* 卡片/面板 */
  --t-slow: 360ms;  /* 视图切换 */
  --t-page: 520ms;  /* 整窗编排 */
  --ease-out:    cubic-bezier(.16, 1, .3, 1);      /* 减速入场 */
  --ease-settle: cubic-bezier(.22, 1.2, .36, 1);   /* 轻回弹落定（亲和感） */
  --ease-inout:  cubic-bezier(.65, 0, .35, 1);     /* 双向切换 */
  --stagger: 40ms; /* 级联步进 */
}

/* ── ice · 昼 · 明亮实验室 ─────────────────────────────────── */
:root[data-theme="ice"] {
  color-scheme: light;
  --page: #dfe9f5;
  --win-bg: #f2f7fd;
  --radius: 12px;
  --pane: #ffffff;
  --pane-border: 1px solid #dbe5f0;
  --pane-shadow: var(--e1);
  --pane-blur: none;
  --glass: #ffffff;                         /* 浮动层预混实底 */
  --inset-soft: inset 0 0 0 1px #e2e8f0;
  --field: #f1f5fa;
  --hairline: #dde6f0;
  /* 海拔体系：首位 0 模糊硬边 = 纸边（厚度），后两层 = 关键影 + 环境影 */
  --edge-tint: #c7d5e6;
  --sh-key: rgba(30, 58, 95, 0.12);
  --sh-amb: rgba(30, 58, 95, 0.11);
  --e1: 0 1px 0 var(--edge-tint), 0 3px 10px var(--sh-key), 0 16px 40px var(--sh-amb);
  --e2: 0 2px 0 var(--edge-tint), 0 10px 22px var(--sh-key), 0 28px 64px var(--sh-amb);
  --e3: 0 3px 0 var(--edge-tint), 0 18px 44px var(--sh-key), 0 44px 96px var(--sh-amb);
  --t1: #1a2740;   /* 主文字 14.9:1 ✓ */
  --t2: #465872;   /* 次文字 7.2:1 / 输入框 6.6:1 ✓ */
  --t3: #5b6b82;   /* 三级（可丢弃文字） 5.4:1 / 5.0:1 ✓ */
  --accent: #2563eb;        /* 图形/边框/大字 */
  --accent-strong: #1d4ed8; /* 小字文字 6.7:1 ✓ */
  --accent-grad: linear-gradient(135deg, #3f83f8, #2563eb);
  --accent-tint: rgba(37, 99, 235, 0.08);
  --ok: #15803d;  --ok-tint: rgba(21, 128, 61, 0.08);
  --danger: #b91c1c; --danger-tint: rgba(185, 28, 28, 0.07);
  --editor-bg: #fbfdff;
  --term-u: rgba(26, 39, 64, 0.35);
  --code-text: #1a2740;
  /* 代码高亮（编辑底 #fbfdff 实测，标准 4.5）：kw 7.8 · ty 5.3 · fn 7.7 · str 4.9 · num 4.9 · cmt 4.7 ✓ */
  --kw: #4338ca; --ty: #0e7490;
  --fn: #9d174d; --str: #15803d; --num: #b45309; --cmt: #64748b;
  --node-red: #dc2626;  /* 白字 4.8:1 ✓（#28 可视化侧栏预留） */
  --node-black: #1e293b;/* 白字 14.6:1 ✓ */
  --node-rim: rgba(255, 255, 255, 0.8);
  --viz-flash: #b45309;
  --edge: rgba(26, 39, 64, 0.28);
  --grid: rgba(26, 39, 64, 0.06);
  --scene: rgba(255, 255, 255, 0.45);
  --atmo-top: rgba(255,255,255,0.5);
  --atmo-vig: rgba(30,58,95,0.07);
  --float-shadow: var(--e3);
  --btn-fg: #ffffff;
  --accent-fill: #2563eb;
  --on-accent: #ffffff;    /* accent-fill 上的文字 5.2:1 ✓ */
  --chip-1: #2563eb; --chip-2: #0e7490; --chip-3: #7c3aed; --chip-4: #b45309; --chip-5: #15803d;
  /* 编辑器屏幕衍生色（Monaco，#28 预留）：选区/行高亮/行号/缩进参考线/部件/滚动条/分隔符 */
  --editor-selection: #c9d8f5;
  --editor-line-highlight: #e9eff8;
  --editor-line-number: #a8b4c8;
  --editor-indent-guide: #dce4ef;
  --editor-widget: #ffffff;
  --editor-widget-border: #dde6f0;
  --editor-scrollbar: #c3cfdf;
  --delimiter: #8496b0;
}

/* ── rose · 昼 · 奶油手账（新拟物手感 + 纸边海拔）──────────── */
:root[data-theme="rose"] {
  color-scheme: light;
  --page: #eee0e5;
  --win-bg: #fbf5f7;
  --radius: 14px;
  --pane: #fffdfd;                          /* 卡底提亮：纸卡从桌上浮起 */
  --pane-border: 1px solid rgba(142, 82, 92, 0.07);
  --pane-shadow: var(--e1);
  --pane-blur: none;
  --glass: #fffdfd;
  --inset-soft: inset -2px -2px 5px rgba(255, 255, 255, 0.9), inset 3px 3px 6px rgba(142, 82, 92, 0.10);
  /* 新拟物凸起（rose 专属质感层，2026-10-03 换肤批补——与 inset-soft 同光向的
     外凸双影：左上白高光、右下粉暗影；demo 消费面 = 面板内子卡/seg 容器） */
  --neu-raised: -2px -2px 5px rgba(255, 255, 255, 0.9), 3px 3px 6px rgba(142, 82, 92, 0.14);
  --field: #f9f0f3;
  --hairline: rgba(142, 82, 92, 0.08);
  --edge-tint: #e3c3cd;
  --sh-key: rgba(142, 82, 92, 0.14);
  --sh-amb: rgba(142, 82, 92, 0.12);
  --e1: 0 1px 0 var(--edge-tint), 0 3px 10px var(--sh-key), 0 16px 40px var(--sh-amb);
  --e2: 0 2px 0 var(--edge-tint), 0 10px 22px var(--sh-key), 0 28px 64px var(--sh-amb);
  --e3: 0 3px 0 var(--edge-tint), 0 18px 44px var(--sh-key), 0 44px 96px var(--sh-amb);
  --t1: #2e2428;   /* 主文字 14.8:1 ✓ */
  --t2: #6b5760;   /* 次文字 6.6:1 / 输入框 6.0:1 ✓ */
  --t3: #75666e;   /* 三级 5.3:1 / 4.8:1 ✓ */
  --accent: #d4597a;
  --accent-strong: #a83b62; /* 小字文字 6.0:1 ✓ */
  --accent-grad: linear-gradient(135deg, #d4597a, #a83b62);
  --accent-tint: rgba(212, 89, 122, 0.10);
  --ok: #5c6b2f;  --ok-tint: rgba(92, 107, 47, 0.10); /* 橄榄绿：暖底亲和，文字对复合底 5.0:1 ✓ */
  --danger: #a83b52; --danger-tint: rgba(168, 59, 82, 0.08);
  --editor-bg: #fdf7f9;
  --term-u: rgba(46, 36, 40, 0.35);
  --code-text: #2e2428;
  /* 代码高亮（编辑底 #fdf7f9 实测，标准 4.5）：kw 5.5 · ty 4.8 · fn 6.3 · str 4.9 · num 6.0 · cmt 5.1 ✓ */
  --kw: #b03a64; --ty: #1f7a76;
  --fn: #8d4a1f; --str: #2e7a52; --num: #a83b1a; --cmt: #75666e;
  --node-red: #c64040;  /* 白字 5.0:1 ✓ */
  --node-black: #3a3033;/* 白字 12.7:1 ✓ */
  --node-rim: rgba(255, 255, 255, 0.8);
  --viz-flash: #d9a85f;
  --edge: rgba(46, 36, 40, 0.28);
  --grid: rgba(46, 36, 40, 0.05);
  --scene: rgba(255, 251, 247, 0.45);
  --atmo-top: rgba(255,255,255,0.4);
  --atmo-vig: rgba(142,82,92,0.09);
  --float-shadow: var(--e3);
  --btn-fg: #ffffff;
  --accent-fill: #a83b62;
  --on-accent: #ffffff;    /* 6.1:1 ✓ */
  --chip-1: #a83b62; --chip-2: #1f7a76; --chip-3: #8d4a1f; --chip-4: #5c6b2f; --chip-5: #6d4aa8;
  --editor-selection: #f0d9e2;
  --editor-line-highlight: #f2e4ea;
  --editor-line-number: #c9b6be;
  --editor-indent-guide: #e8d8de;
  --editor-widget: #fbf5f7;
  --editor-widget-border: #e8d5dc;
  --editor-scrollbar: #d8c2cc;
  --delimiter: #9d8a92;
}

/* ── paper · 昼 · 牛皮档案（档案感最强的一套）──────────────── */
:root[data-theme="paper"] {
  color-scheme: light;
  --page: #e0d9cc;                          /* 桌底牛皮纸色加深，纸边更明显 */
  --win-bg: #f2eee6;
  --radius: 12px;
  --pane: #fbf8f1;
  --pane-border: 1px solid #dcd5c8;
  --pane-shadow: var(--e1);
  --pane-blur: none;
  --glass: #fbf8f1;
  --inset-soft: inset 0 0 0 1px #e2ddd6;
  --field: #ede9df;
  --hairline: #dcd5c8;
  --edge-tint: #c3b69e;
  --sh-key: rgba(90, 74, 60, 0.14);
  --sh-amb: rgba(90, 74, 60, 0.12);
  --e1: 0 1px 0 var(--edge-tint), 0 3px 10px var(--sh-key), 0 16px 40px var(--sh-amb);
  --e2: 0 2px 0 var(--edge-tint), 0 10px 22px var(--sh-key), 0 28px 64px var(--sh-amb);
  --e3: 0 3px 0 var(--edge-tint), 0 18px 44px var(--sh-key), 0 44px 96px var(--sh-amb);
  --t1: #080a08;   /* 主文字 18.7:1 ✓ */
  --t2: #4a4a45;   /* 次文字 8.4:1 / 输入框 7.4:1 ✓ */
  --t3: #5f5f58;   /* 三级 6.1:1 / 5.3:1 ✓ */
  --accent: #a67d48;        /* 图形/边框/大字（3.4，不作小字） */
  --accent-strong: #7d5a2e; /* 小字文字 5.9:1 / 5.2:1 ✓ */
  --accent-grad: linear-gradient(135deg, #b8894f, #7d5a2e);
  --accent-tint: rgba(166, 125, 72, 0.10);
  --ok: #5c6b2f;  --ok-tint: rgba(92, 107, 47, 0.08); /* 文字对复合底 4.7:1 ✓ */
  --danger: #a8442e; --danger-tint: rgba(168, 68, 46, 0.08);
  --editor-bg: #faf8f4;
  --term-u: rgba(8, 10, 8, 0.35);
  --code-text: #1c1e1c;
  /* 代码高亮（编辑底 #faf8f4 实测，标准 4.5）：kw 7.5 · ty 5.1 · fn 7.4 · str 4.7 · num 4.7 · cmt 6.2 ✓
     cmt 用暖灰，避免冷灰在纸底发脏 */
  --kw: #4338ca; --ty: #0e7490;
  --fn: #9d174d; --str: #15803d; --num: #b45309; --cmt: #615d55;
  --node-red: #c64040;  /* 白字 5.0:1 ✓ / 对画布复合底 4.6:1 ✓ */
  --node-black: #33393b;/* 白字 11.7:1 ✓ / 对画布 10.7:1 ✓ */
  --node-rim: rgba(255, 255, 255, 0.8);
  --viz-flash: #a83b1a;
  --warn-code: #92400e; /* 诊断码色专用：paper 的 num #b45309 对 field 仅 4.14:1，本值 5.85（审阅 P3-3） */
  --edge: rgba(8, 10, 8, 0.28);
  --grid: rgba(8, 10, 8, 0.06);
  --scene: rgba(252, 250, 246, 0.5);
  --atmo-top: rgba(255,253,248,0.5);
  --atmo-vig: rgba(90,74,60,0.08);
  --float-shadow: var(--e3);
  --btn-fg: #ffffff;
  --accent-fill: #7d5a2e;
  --on-accent: #ffffff;    /* 6.2:1 ✓ */
  --chip-1: #7d5a2e; --chip-2: #0e7490; --chip-3: #9d174d; --chip-4: #5c6b2f; --chip-5: #4338ca;
  --editor-selection: #e3e7d8;
  --editor-line-highlight: #f0ede6;
  --editor-line-number: #b9bcb4;
  --editor-indent-guide: #e2ded6;
  --editor-widget: #ffffff;
  --editor-widget-border: #ddd8d0;
  --editor-scrollbar: #cfc9c0;
  --delimiter: #8a9188;
}

/* ── glass · 夜 · 深夜书房（渐变 + 玻璃 + 虹彩光斑）────────── */
:root[data-theme="glass"] {
  color-scheme: dark;
  --page: #060b1d;
  /* 光斑分叉适配：heron 以独立模糊 div 呈现，demo 改写为多层背景
     （radial 柔边 + fixed 钉视口），零额外 DOM；中心亮度已按 heron
     blob 减淡 40% 后的 rgba 取值 */
  --win-bg:
    radial-gradient(42rem 42rem at 12% -8%, rgba(111, 215, 242, 0.16), transparent 62%),
    radial-gradient(36rem 36rem at 96% 10%, rgba(239, 168, 232, 0.11), transparent 62%),
    radial-gradient(30rem 30rem at 55% 110%, rgba(143, 232, 184, 0.10), transparent 62%),
    linear-gradient(135deg, #0b1533 0%, #121e4a 55%, #182860 100%);
  --radius: 14px;
  --pane: rgba(255, 255, 255, 0.065);       /* 复合底 ≈ #27366a（渐变最亮端） */
  --pane-border: 1px solid rgba(255, 255, 255, 0.11);
  --pane-shadow: var(--e1);
  --pane-blur: blur(18px) saturate(140%);
  --glass: rgba(22, 31, 63, 0.88);          /* 预混实底 #161f3f：隔断光斑，文字保底 */
  --inset-soft: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  --field: rgba(255, 255, 255, 0.09);       /* 复合底 ≈ #2d3b6e（渐变最亮端） */
  --hairline: rgba(255, 255, 255, 0.07);
  --edge-tint: rgba(3, 7, 22, 0.85);        /* 深色主题纸边 = 近黑：卡"落在桌上" */
  --sh-key: rgba(3, 7, 22, 0.45);
  --sh-amb: rgba(3, 7, 22, 0.40);
  --e1: 0 1px 0 var(--edge-tint), 0 4px 12px var(--sh-key), 0 18px 44px var(--sh-amb);
  --e2: 0 2px 0 var(--edge-tint), 0 12px 26px var(--sh-key), 0 30px 70px var(--sh-amb);
  --e3: 0 3px 0 var(--edge-tint), 0 20px 50px var(--sh-key), 0 48px 100px var(--sh-amb);
  --t1: #eaf0ff;   /* 主文字 10.1:1 / glass 底 14.1:1 ✓ */
  --t2: #a9b5da;   /* 次文字 5.7:1 / 输入框 5.2:1 ✓ */
  --t3: #a1aede;   /* 三级 5.3:1 / 4.9:1 ✓ */
  --accent: #8b9cf5;        /* 图形/边框/大字 */
  --accent-strong: #a3b2ff; /* 小字文字 5.7:1 ✓ */
  --accent-grad: linear-gradient(135deg, #6fd7f2, #8b9cf5);
  --accent-tint: rgba(139, 156, 245, 0.18);
  --ok: #7fe0b0;  --ok-tint: rgba(127, 224, 176, 0.14);
  --danger: #f28b8b; --danger-tint: rgba(242, 139, 139, 0.12);
  --editor-bg: rgba(8, 13, 32, 0.45);
  --term-u: rgba(169, 181, 218, 0.5);
  --code-text: #e7edff;
  /* 代码高亮（编辑底复合 ≈ #0e1637 实测，标准 4.5）：kw 6.6 · ty 10.9 · fn 11.8 · str 12.2 · num 11.2 · cmt 5.6 ✓
     kw 取珊瑚（暖色相跳出冷底，与 --fn 金黄错开色相） */
  --kw: #f97583; --ty: #7dd9e8;
  --fn: #f2ce8f; --str: #a8e6a8; --num: #f2c879; --cmt: #8290be;
  --node-red: #d24444;  /* 白字 4.5:1 ✓ / 对画布复合底 3.5:1 ✓ */
  --node-black: #4d5e94;/* 白字 6.3:1 ✓ / 对画布 2.5:1 — 不足 3，由 node-rim 白描边提供可见边界 */
  --node-rim: rgba(255, 255, 255, 0.42);
  --viz-flash: #f2c879;
  --edge: rgba(255, 255, 255, 0.24);
  --grid: rgba(255, 255, 255, 0.055);
  --scene: rgba(6, 11, 29, 0.30);           /* 画布复合底 ≈ #131f4c */
  --atmo-top: rgba(255,255,255,0.05);
  --atmo-vig: rgba(4,9,28,0.28);
  --blob-1: rgba(111, 215, 242, 0.30);   /* 虹彩光斑 · 青（原色，供未来 DOM 氛围层复用） */
  --blob-2: rgba(239, 168, 232, 0.20);   /* 虹彩光斑 · 粉 */
  --blob-3: rgba(143, 232, 184, 0.18);   /* 虹彩光斑 · 薄荷 */
  --float-shadow: var(--e3);
  --btn-fg: #0b1533;
  --accent-fill: #8b9cf5;
  --on-accent: #0b1533;    /* accent-fill 上的文字 7.0:1 ✓ */
  --chip-1: #6fd7f2; --chip-2: #f2ce8f; --chip-3: #efa8e8; --chip-4: #8fe8b8; --chip-5: #f97583;
  --editor-selection: #2b4470;
  --editor-line-highlight: #1a2547;
  --editor-line-number: #3f4a6e;
  --editor-indent-guide: #232f52;
  --editor-widget: #182247;
  --editor-widget-border: #2a3a66;
  --editor-scrollbar: #2a3a66;
  --delimiter: #aab6d8;
}

/* ── soft · 夜 · 绒面深蓝（纯平减法：无渐变、小半径、收阴影）── */
:root[data-theme="soft"] {
  color-scheme: dark;
  --page: #090e1d;
  --win-bg: #0d1428;                        /* 与 glass 拉开：纯平无渐变，做减法 */
  --radius: 10px;
  --pane: #131a2e;
  --pane-border: 1px solid rgba(255, 255, 255, 0.06);
  --pane-shadow: var(--e1);
  --pane-blur: none;
  --glass: #141c33;
  --inset-soft: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  --field: #101731;
  --hairline: rgba(255, 255, 255, 0.06);
  --edge-tint: #060b1a;
  --sh-key: rgba(3, 6, 16, 0.50);
  --sh-amb: rgba(3, 6, 16, 0.45);
  --e1: 0 1px 0 var(--edge-tint), 0 2px 8px var(--sh-key), 0 10px 26px var(--sh-amb);
  --e2: 0 2px 0 var(--edge-tint), 0 6px 16px var(--sh-key), 0 18px 40px var(--sh-amb);
  --e3: 0 3px 0 var(--edge-tint), 0 10px 26px var(--sh-key), 0 24px 54px var(--sh-amb);
  --t1: #e6ebf7;   /* 主文字 14.5:1 ✓ */
  --t2: #9aa6c6;   /* 次文字 7.1:1 / 输入框 7.3:1 ✓ */
  --t3: #7d89ad;   /* 三级 5.0:1 / 5.1:1 ✓ */
  --accent: #7a94e6;
  --accent-strong: #93a9ee; /* 小字文字 7.5:1 ✓ */
  --accent-grad: linear-gradient(135deg, #8ba2ef, #5f7ad6);
  --accent-tint: rgba(122, 148, 230, 0.16);
  --ok: #5fc795;  --ok-tint: rgba(95, 199, 149, 0.13);
  --danger: #e08080; --danger-tint: rgba(224, 128, 128, 0.12);
  --editor-bg: #10172b;
  --term-u: rgba(154, 166, 198, 0.45);
  --code-text: #dee5f3;
  /* 代码高亮（编辑底 #10172b 实测，标准 4.5）：kw 6.7 · ty 9.3 · fn 9.9 · str 10.7 · num 8.5 · cmt 4.5 ✓（cmt 压线，勿再调暗） */
  --kw: #f97583; --ty: #6fc9d8;
  --fn: #e0bc7f; --str: #98d89a; --num: #e0a96a; --cmt: #75809f;
  --node-red: #c05050;  /* 白字 4.7:1 ✓ / 对画布复合底 4.1:1 ✓ */
  --node-black: #4a5a92;/* 白字 6.6:1 ✓ / 对画布 2.9:1 — 不足 3，由 node-rim 白描边提供可见边界 */
  --node-rim: rgba(255, 255, 255, 0.35);
  --viz-flash: #e0a96a;
  --edge: rgba(255, 255, 255, 0.17);
  --grid: rgba(255, 255, 255, 0.05);
  --scene: rgba(4, 8, 18, 0.30);            /* 画布复合底 ≈ #0a1021 */
  --atmo-top: rgba(255,255,255,0.03);
  --atmo-vig: rgba(3,7,18,0.30);
  --float-shadow: var(--e3);
  --btn-fg: #0d1428;
  --accent-fill: #5f7ad6;  /* v2 加深：绒面减法；深字对填充底 4.6:1 ✓ */
  --on-accent: #0d1428;    /* 白字仅 4.0，按规则 4 用深字 */
  --chip-1: #7a94e6; --chip-2: #6fc9d8; --chip-3: #e0bc7f; --chip-4: #98d89a; --chip-5: #f97583;
  --editor-selection: #283a63;
  --editor-line-highlight: #161e35;
  --editor-line-number: #37415f;
  --editor-indent-guide: #202a45;
  --editor-widget: #182038;
  --editor-widget-border: #283450;
  --editor-scrollbar: #283450;
  --delimiter: #9dabc9;
}
