/* ==========================================================================
   设计令牌 (Design Tokens)
   美学方向：工业实用主义 / 暖灰纸感 / 焦橙强调 / 发丝描边
   所有令牌均通过 CSS 自定义属性实现，明暗双主题共用同一套语义变量。
   ========================================================================== */

:root {
  color-scheme: light;

  /* ---------- 基础色板：暖灰纸感 ---------- */
  --paper-0: #ffffff;
  --paper-1: #f4f1ea;
  --paper-2: #ede9e0;
  --paper-3: #e4dfd3;

  --ink-900: #17150f;
  --ink-700: #5c5648;
  /* v1.7.33：由 #6e6757 加深 —— 原值在最暗的浅色底（--bg-sunken #e4dfd3）上仅 4.22:1，
     差一点没过 AA；日历格、表头槽、行号槽都正是这个底。现值 4.77:1（same底）/ 5.9（--bg-base）。
     与 --ink-700 的差距因此收窄，但正文与辅助文字的区分仍靠字号/字重/使用位置，不靠这一档灰度。 */
  --ink-500: #665f52;
  /* v1.7.26：由 #a8a196 加深 —— 原值在最浅底（#ffffff）上仅 2.56:1、
     在内嵌底（#ede9e0）上 2.11:1，未达 §7「色彩对比度满足 WCAG AA」。
     现值为非文本元素（分隔符、箭头、图标、滚动条）提供 ≥3:1（WCAG 1.4.11），
     需要承载正文语义的场合一律改用 --text-muted（≥4.5:1）。 */
  --ink-300: #847e70;

  --brand-700: #9a3412;
  --brand-600: #c2410c;
  --brand-100: #fdece3;

  /* v1.7.33：三个状态色各加深一档，使其在最不利的浅色底（--bg-base / *-soft 合成底）
     上达到 AA 的 4.5:1 —— 原值分别为 4.43 / 4.45 / 4.05。深色主题的对应值本已达标，未动。 */
  --green-600: #2b7756;
  --amber-600: #ae4e08;
  --red-600: #b42318;
  --blue-600: #1f5793;

  /* ---------- 语义颜色：背景 ---------- */
  --bg-base: var(--paper-1);
  --bg-surface: var(--paper-0);
  --bg-inset: var(--paper-2);
  --bg-sunken: var(--paper-3);
  --bg-hover: rgba(23, 21, 15, 0.045);
  --bg-active: var(--brand-100);
  --bg-scrim: rgba(18, 17, 16, 0.42);

  /* ---------- 语义颜色：文字 ---------- */
  --text-strong: var(--ink-900);
  --text-body: var(--ink-700);
  --text-muted: var(--ink-500);
  --text-faint: var(--ink-300);
  --text-invert: #f5f2ea;

  /* ---------- 语义颜色：描边 ---------- */
  --hairline: #dcd6c9;
  --hairline-strong: #c7c0b0;

  /* ---------- 语义颜色：强调 ---------- */
  --accent: var(--brand-600);
  --accent-hover: var(--brand-700);
  --accent-soft: var(--brand-100);
  --accent-ring: rgba(194, 65, 12, 0.32);
  --accent-contrast: #ffffff;

  /* ---------- 语义颜色：状态 ---------- */
  --ok: var(--green-600);
  --ok-soft: rgba(43, 119, 86, 0.1);
  --warn: var(--amber-600);
  --warn-soft: rgba(174, 78, 8, 0.12);
  --danger: var(--red-600);
  --danger-soft: rgba(180, 35, 24, 0.1);
  --info: var(--blue-600);
  --info-soft: rgba(31, 87, 147, 0.1);

  /* ---------- 字体 ---------- */
  --font-sans: "DIN Next", Bahnschrift, "思源黑体", "Source Han Sans SC",
    "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, "Segoe UI",
    sans-serif;
  --font-mono: "Cascadia Mono", Consolas, "SFMono-Regular", Menlo,
    "DejaVu Sans Mono", "Courier New", monospace;

  --fs-display: 30px;
  --fs-h1: 28px;
  --fs-h2: 20px;
  --fs-h3: 15px;
  --fs-body: 14px;
  --fs-sm: 13px;
  --fs-xs: 12px;
  --fs-2xs: 11px;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;

  --lh-tight: 1.25;
  --lh-normal: 1.55;
  --lh-loose: 1.75;

  --tracking-label: 0.12em;
  --tracking-tight: -0.01em;

  /* ---------- 间距刻度 ---------- */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-16: 64px;

  /* ---------- 圆角 ---------- */
  --r-xs: 3px;
  --r-sm: 5px;
  --r-md: 8px;
  --r-lg: 12px;
  --r-pill: 999px;

  /* ---------- 阴影：双层柔和，配合发丝描边使用 ---------- */
  --shadow-1: 0 1px 1px rgba(23, 21, 15, 0.04),
    0 1px 2px rgba(23, 21, 15, 0.06);
  --shadow-2: 0 1px 2px rgba(23, 21, 15, 0.05),
    0 10px 28px -14px rgba(23, 21, 15, 0.24);
  --shadow-3: 0 2px 4px rgba(23, 21, 15, 0.06),
    0 24px 56px -24px rgba(23, 21, 15, 0.32);

  /* ---------- 纹理 ---------- */
  --grid-line: rgba(23, 21, 15, 0.07);
  --grid-size: 40px;

  /* ---------- 动效 ---------- */
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 320ms;
  --ease-out: cubic-bezier(0.22, 0.85, 0.24, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

  /* ---------- 布局尺寸 ---------- */
  --sidebar-w: 264px;
  --sidebar-w-collapsed: 64px;
  --topbar-h: 56px;
  --tabstrip-h: 40px;
  --content-max: 1280px;
}

/* ==========================================================================
   深色主题：暖调炭黑，保持同样的层级与对比度
   ========================================================================== */
:root[data-theme="dark"] {
  color-scheme: dark;

  --bg-base: #121110;
  --bg-surface: #1b1917;
  --bg-inset: #2b2723;
  --bg-sunken: #0d0c0b;
  --bg-hover: rgba(245, 242, 234, 0.06);
  --bg-active: rgba(232, 112, 31, 0.16);
  --bg-scrim: rgba(0, 0, 0, 0.6);

  --text-strong: #f5f2ea;
  --text-body: #d3ccbf;
  --text-muted: #a8a196;
  /* v1.7.26：由 #6f6960 提亮 —— 原值在表面色上 3.23:1、内嵌色上 2.73:1。 */
  --text-faint: #8a8377;
  --text-invert: #17150f;

  --hairline: #2e2a26;
  --hairline-strong: #3d3833;

  --accent: #e8701f;
  --accent-hover: #f7903f;
  --accent-soft: rgba(232, 112, 31, 0.14);
  --accent-ring: rgba(232, 112, 31, 0.42);
  --accent-contrast: #17150f;

  --ok: #4caf86;
  --ok-soft: rgba(76, 175, 134, 0.14);
  --warn: #e0962f;
  --warn-soft: rgba(224, 150, 47, 0.14);
  --danger: #e2604f;
  --danger-soft: rgba(226, 96, 79, 0.14);
  --info: #6aa9e0;
  --info-soft: rgba(106, 169, 224, 0.14);

  --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.5);
  --shadow-2: 0 1px 2px rgba(0, 0, 0, 0.5), 0 12px 32px -16px rgba(0, 0, 0, 0.8);
  --shadow-3: 0 2px 6px rgba(0, 0, 0, 0.55),
    0 28px 64px -28px rgba(0, 0, 0, 0.9);

  --grid-line: rgba(245, 242, 234, 0.055);
}

/* ---------- 用户偏好：更高对比度（v1.7.27） ---------- */
/* 系统开了「对比度更高」时，正文与描边整体抬一档：
   --text-muted 收到接近 body 的深度、--text-faint 抬到原 muted 的水平、
   发丝线加深到能被看见。整套语义变量不变，组件无需改动。 */
@media (prefers-contrast: more) {
  :root {
    --text-muted: #454034;
    --text-faint: #6e6757;
    --hairline: #b3ab9b;
    --hairline-strong: #8f8674;
    --bg-hover: rgba(23, 21, 15, 0.09);
    --bg-active: #f7d9c8;
    --accent-ring: rgba(194, 65, 12, 0.55);
  }

  :root[data-theme="dark"] {
    --text-muted: #d8d1c4;
    --text-faint: #a8a196;
    --hairline: #55504a;
    --hairline-strong: #6f6960;
    --bg-hover: rgba(245, 242, 234, 0.12);
    --accent-ring: rgba(232, 112, 31, 0.6);
  }
}
