/* =============================================================================
 * tokens.css — 设计令牌
 *
 * 两个世界：
 *   [data-theme="greenbar"]  绿条栏列表纸（默认，明色）
 *   [data-theme="cyan"]      蓝晒负片（暗色）
 *
 * ⚠ 关键约定：`color` 必须声明在**主题根**上。
 * 如果把 color 声明在 body 而只在其内部重定义 --ink 变量，后代继承到的是
 * body 计算好的颜色值，重定义变量不会生效——暗色模式下会出现黑底黑字。
 * 因此这里用 `[data-theme]{ color: var(--ink) }` 保证任何主题作用域都重新声明。
 * ========================================================================== */

:root {
  --mono: ui-monospace, "Cascadia Mono", "Cascadia Code", Consolas, "SF Mono", Menlo, "DejaVu Sans Mono", monospace;
  --cjk: "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", system-ui, -apple-system, "Segoe UI", sans-serif;

  --step: 0px;                 /* 字号缩放，由打印头的 A− / A+ 写入 */
  --fs-base: calc(13px + var(--step));
  --fs-data: calc(12.5px + var(--step));
  /* 11px 是功能文字的下限：按钮、标签、表头、表格单元格都不低于它 */
  --fs-label: calc(11px + var(--step));
  --fs-head: calc(11.5px + var(--step));
}

/* ------------------------------------------------------------ 绿条栏（明） */
:root,
[data-theme="greenbar"] {
  color-scheme: light;
  --paper: #F4F5F0;
  --band: #E7ECDD;
  --band-edge: #D3DAC6;
  --desk: #DCDED6;
  --edge: #B9BFB2;

  --ink: #171A1B;
  --ink-soft: #5D6467;
  /* 比"看起来够灰"更深一档：这个色会压在 --band 的绿条上，
     那一对必须自己过 AA，而 #636B6E on #E7ECDD 只有 4.52:1，余量为零。 */
  --ink-faint: #525A5C;

  --rule: #C4CBBE;
  --rule-soft: #DEE2D7;

  --warn: #8A5B12;
  --danger: #A32E20;
  --ok: #3F6B23;

  --pen1: #1B1E20;
  --pen2: #B0392B;
  --pen3: #2C5AA0;
  --pen4: #6E7F2E;
  --pen5: #B07A16;
  --pen6: #8A4E9E;

  --btn-bg: transparent;
  --btn-bg-hover: #E7ECDD;
  --btn-primary-bg: #171A1B;
  --btn-primary-fg: #F4F5F0;

  /* 引导的盖版：一层半透明墨，只在校样上盖住非目标区域 */
  --scrim: rgba(23, 26, 27, 0.46);
}

/* ------------------------------------------------------------ 蓝晒（暗） */
[data-theme="cyan"] {
  color-scheme: dark;
  --paper: #12305C;
  --band: #0E2A52;
  --band-edge: #1D3F6E;
  --desk: #0A1E3C;
  --edge: #08182F;

  --ink: #EDF1F5;
  --ink-soft: #B7C9DE;
  --ink-faint: #9DB2D0;

  --rule: #3A659F;
  --rule-soft: #24406E;

  --warn: #EFC273;
  --danger: #F08A7A;
  --ok: #C6D98A;

  --pen1: #FFFFFF;
  --pen2: #F08A7A;
  --pen3: #8FC0FF;
  --pen4: #C6D98A;
  --pen5: #EFC273;
  --pen6: #E39BC4;

  --btn-bg: transparent;
  --btn-bg-hover: #1D3F6E;
  --btn-primary-bg: #EDF1F5;
  --btn-primary-fg: #12305C;

  --scrim: rgba(4, 13, 28, 0.62);
}

/* 任何主题作用域都必须重新声明 color —— 见文件头说明 */
[data-theme] {
  color: var(--ink);
  background: var(--paper);
  caret-color: var(--pen3);          /* 输入光标属于这个世界，不用浏览器默认的黑色 */
}

/* 深色下的滚动条与选区跟随世界，不用系统默认的亮色 */
[data-theme="cyan"] ::-webkit-scrollbar-thumb { background: #2E5490; }
[data-theme="cyan"] ::selection { background: #2E5490; color: #FFFFFF; }
[data-theme="greenbar"] ::selection { background: #E7ECDD; color: #171A1B; }

/* 基函数的线型区分：颜色之外的第二条通道，色觉障碍下仍可分辨 */
:root {
  --dash-2: none;
  --dash-3: 7px 3px;
  --dash-4: 2px 3px;
  --dash-5: 9px 3px 2px 3px;
  --dash-6: 4px 3px 1px 3px;
}
