/* ============================================================
   Hallmark · macrostructure: Workbench · tone: editorial-crafted
   theme: custom — "Midnight Dossier" (深夜作战档案)
   theme_axes: dark-paper (L≈15%) / serif-display (roman) / warm-orange accent
   genre: atmospheric · designed-as-app · design-system: design.md
   pre-emit critique: P5 H5 E4 S5 R5 V5
   ============================================================

   锁定的设计系统。所有颜色与字体必须经由 var() 引用本文件中的 token，
   禁止在渲染过程中内联 OKLCH / hex / rgb 值（slop-test gate 48）。

   本文件同时定义旧版兼容 token（--primary / --accent / --text-* / --bg-* /
   --divider / --type-* / --glass-*），因为既有 JS 生成的内容与内联样式
   依赖这些名称。JS 不重写，只换皮。 */

:root {
  /* ============ 色板（OKLCH，锚定暖橙 hue ≈ 40°） ============ */
  --color-paper:     oklch(0.155 0.014 40);   /* 基底：深夜暖炭，非纯黑 */
  --color-paper-2:   oklch(0.195 0.016 40);   /* 抬升面：卡片 */
  --color-paper-3:   oklch(0.235 0.018 40);   /* 再抬升：悬停 / 输入 */
  --color-paper-4:   oklch(0.275 0.020 40);   /* 最高面：浮层 / 模态 */
  --color-ink:       oklch(0.935 0.010 80);   /* 主文字：暖白，非纯白 */
  --color-ink-2:     oklch(0.785 0.018 62);   /* 次级文字 */
  --color-muted:     oklch(0.625 0.020 55);   /* 弱化文字 / 占位 */
  --color-rule:      oklch(0.315 0.018 45);   /* 发丝线 */
  --color-rule-2:    oklch(0.255 0.015 45);   /* 更弱的分隔 */
  --color-accent:    oklch(0.665 0.155 45);   /* 信号橙 —— 唯一强调色 */
  --color-accent-2:  oklch(0.590 0.170 42);   /* 强调 hover / active */
  --color-accent-3:  oklch(0.760 0.120 70);   /* 暖金 —— 数字/高亮 */
  --color-danger:    oklch(0.620 0.185 28);   /* 危险 / 删除 */
  --color-success:   oklch(0.720 0.120 158);  /* 成功 */
  --color-warning:   oklch(0.780 0.125 82);   /* 警示 / 待审核 */
  --color-focus:     oklch(0.720 0.150 55);   /* 焦点环 ≥3:1 */

  /* 题型三色（延续既有语义） */
  --color-type-a:    oklch(0.665 0.155 45);   /* A 题 · 橙 */
  --color-type-b:    oklch(0.760 0.120 70);   /* B 题 · 金 */
  --color-type-c:    oklch(0.720 0.120 158);  /* C 题 · 青绿 */

  /* ============ 派生 token（style.css 统一引用，换肤只改这里） ============ */
  --color-accent-ink:  oklch(0.15 0.03 40);   /* accent 实底上的前景文字 */
  --color-accent-soft: oklch(0.665 0.155 45 / 0.10);  /* accent 10% 底 */
  --color-accent-softer: oklch(0.665 0.155 45 / 0.06);
  --color-danger-soft:  oklch(0.620 0.185 28 / 0.08);
  --color-danger-ink:   oklch(0.15 0.03 40);
  --color-code-bg:      oklch(0.115 0.012 40);   /* 代码块 / 示例块底色 */
  --color-overlay:      oklch(0.06 0.01 40 / 0.62);  /* 模态遮罩 */
  --color-nav-bg:       oklch(0.19 0.016 40 / 0.96); /* 底部导航底色 */
  --color-ambient-a:    oklch(0.24 0.05 40 / 0.55);  /* 背景氛围 1 */
  --color-ambient-b:    oklch(0.21 0.04 40 / 0.45);  /* 背景氛围 2 */
  --color-grid-line:    transparent;                /* 背景网格/扫描线（默认无） */
  --color-selection:    oklch(0.665 0.155 45 / 0.35);

  /* 边框宽度（cyber 版可加粗） */
  --border-w: 1px;

  /* ============ 旧版兼容 token（JS 与既有内联样式引用） ============ */
  --bg-primary:      var(--color-paper);
  --bg-card:         var(--color-paper-2);
  --bg-card-light:   var(--color-paper-3);
  --divider:         var(--color-rule-2);
  --text-primary:    var(--color-ink);
  --text-secondary:  var(--color-ink-2);
  --text-muted:      var(--color-muted);
  --primary:         var(--color-accent);
  --primary-glow:    var(--color-accent-2);
  --accent:          var(--color-accent-3);
  --accent-glow:     oklch(0.800 0.100 75);
  --danger:          var(--color-danger);
  --success:         var(--color-success);
  --warning:         var(--color-warning);
  --type-a:          var(--color-type-a);
  --type-b:          var(--color-type-b);
  --type-c:          var(--color-type-c);
  /* 玻璃拟态变量仅作兼容保留；新设计不再使用 backdrop-filter 玻璃层 */
  --glass-bg:        var(--color-paper-2);
  --glass-border:    var(--color-rule);
  --glass-shadow:    0 0 0 1px transparent;

  /* ============ 字体（2 + 1 规则：衬线显示 + 无衬线正文 + 等宽 outlier） ============ */
  --font-display: "Noto Serif SC", "Songti SC", "STSong", "SimSun", ui-serif, serif;
  --font-body:    "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Segoe UI", ui-sans-serif, sans-serif;
  --font-mono:    "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", ui-monospace, monospace;

  /* ============ 间距（4pt 语义刻度） ============ */
  --space-3xs: 0.25rem;  /*  4px */
  --space-2xs: 0.5rem;   /*  8px */
  --space-xs:  0.75rem;  /* 12px */
  --space-sm:  1rem;     /* 16px */
  --space-md:  1.5rem;   /* 24px */
  --space-lg:  2rem;     /* 32px */
  --space-xl:  3rem;     /* 48px */
  --space-2xl: 4.5rem;   /* 72px */
  --space-3xl: 7rem;     /* 112px */

  /* ============ 字号（1.25 大三度，16px 起） ============ */
  --text-xs:     0.75rem;
  --text-sm:     0.875rem;
  --text-base:   1rem;
  --text-md:     1.125rem;
  --text-lg:     1.375rem;
  --text-xl:     1.75rem;
  --text-2xl:    2.25rem;
  --text-3xl:    2.8125rem;
  --text-4xl:    3.5156rem;
  /* 移动端应用的显示级：克制，适配 320px */
  --text-display: clamp(1.75rem, 2.2rem + 1.2vw, 2.5rem);
  --text-display-s: clamp(1.5rem, 1.75rem + 1vw, 2rem);

  /* ============ 动效（三个命名缓动，禁默认 ease） ============ */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-instant: 100ms;
  --dur-short:   200ms;
  --dur-med:     300ms;
  --dur-long:    500ms;

  /* ============ 圆角 ============ */
  --radius-sm:  6px;
  --radius-md:  10px;
  --radius-lg:  14px;
  --radius-pill: 999px;

  /* ============ 阴影（暗色下以亮度抬升为主，阴影收紧） ============ */
  --shadow-card:   0 1px 2px oklch(0.08 0.01 40 / 0.5);
  --shadow-raised: 0 8px 24px oklch(0.06 0.01 40 / 0.6);
  --shadow-modal:  0 -12px 32px oklch(0.06 0.01 40 / 0.7);
}
