/* ============================================================
 * Design System Tokens
 * 双主题: dark / light — Linear App 风格
 * ============================================================ */

/* ============================================================
 * 共享结构 token（跨主题不变）
 * ============================================================ */
:root {
  /* spacing — 8pt grid */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-7: 32px;
  --sp-8: 40px;
  --sp-9: 48px;
  --sp-10: 64px;

  /* font sizes */
  --fs-xs: 10px;
  --fs-sm: 11px;
  --fs-md: 12px;
  --fs-base: 13px;
  --fs-lg: 15px;
  --fs-xl: 17px;
  --fs-2xl: 20px;
  --fs-3xl: 24px;
  --fs-4xl: 28px;

  /* font stacks */
  --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, 'Cascadia Code', Consolas, Menlo, monospace;
  --sans: 'Inter', system-ui, -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --display: 'Space Grotesk', 'Inter', system-ui, sans-serif;

  /* border radius */
  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 8px;
  --r-pill: 999px;

  /* transitions */
  /* 统一缓动曲线: 快起慢收的 ease-out, 比浏览器默认 ease 更"奶油"(Apple 手感) */
  --ease-standard: cubic-bezier(.32, .72, 0, 1);
  --t-fast: .12s var(--ease-standard);
  --t-base: .2s var(--ease-standard);

  /* z-index */
  --z-base: 0;
  --z-dropdown: 10;
  --z-sticky: 20;
  --z-overlay: 30;
  --z-modal: 40;
  --z-toast: 50;
}

/* ============================================================
 * Dark (default) — Linear 近纯黑底 + 红色强调色
 * ============================================================ */
[data-theme="dark"] {
  --bg-0: #0A0A0B;
  --bg-1: #111113;
  --bg-2: #19191C;
  --bg-3: #222225;
  --bg-4: #2C2C30;
  --line: #2E2E32;
  --line-soft: #1F1F23;

  --ink-0: #EDEDEF;
  --ink-1: #A0A0A6;
  /* ink-2/ink-3 调亮至 WCAG AA 4.5:1 (原 #6E6E76=3.73 / #4A4A52=2.15 不达标), 仍保留层级 */
  --ink-2: #8C8C94;
  --ink-3: #80808A;

  --accent: #E5484D;
  --accent-dim: #C13B3F;
  --accent-glow: rgba(229, 72, 77, .15);
  --accent-subtle: rgba(229, 72, 77, .08);
  --accent-subtle-border: rgba(229, 72, 77, .25);
  --on-accent: #FFFFFF;

  --success: #46A758;
  --success-subtle: rgba(70, 167, 88, .08);
  --success-subtle-border: rgba(70, 167, 88, .25);
  --warn: #F5A623;
  --warn-dim: #C4841D;
  --warn-subtle: rgba(245, 166, 35, .08);
  --warn-subtle-border: rgba(245, 166, 35, .25);
  --error: #E5484D;
  --error-dim: #AA2429;
  --error-subtle: rgba(229, 72, 77, .08);
  --error-subtle-border: rgba(229, 72, 77, .25);
  --info: #3E9DE6;
  --info-dim: #2B7EC2;
  --info-subtle: rgba(62, 157, 230, .08);
  --info-subtle-border: rgba(62, 157, 230, .25);

  --sh-sm: 0 1px 2px rgba(0,0,0,.5);
  --sh-md: 0 4px 12px rgba(0,0,0,.6);
  --sh-lg: 0 8px 24px rgba(0,0,0,.6);

  --glass-bg: rgba(17, 17, 19, .85);
  --glass-blur: blur(12px);
  --glass-border: rgba(255, 255, 255, .05);

  color-scheme: dark;
}

/* ============================================================
 * Light — 纯白底 + 红色强调色
 * ============================================================ */
[data-theme="light"] {
  --bg-0: #FFFFFF;
  --bg-1: #F8F8F9;
  --bg-2: #F0F0F2;
  --bg-3: #E8E8EB;
  --bg-4: #DDDDE0;
  --line: #E0E0E3;
  --line-soft: #EBEBEE;

  --ink-0: #1A1A1E;
  --ink-1: #6B6B76;
  /* ink-2/ink-3 调暗至白底 AA 4.5:1 (原 #9B9BA6/#C0C0C8 在白底对比不足) */
  --ink-2: #6E6E78;
  --ink-3: #72727B;

  --accent: #DC3545;
  --accent-dim: #B52A37;
  --accent-glow: rgba(220, 53, 69, .10);
  --accent-subtle: rgba(220, 53, 69, .06);
  --accent-subtle-border: rgba(220, 53, 69, .20);
  --on-accent: #FFFFFF;

  --success: #2D8A3E;
  --success-subtle: rgba(45, 138, 62, .06);
  --success-subtle-border: rgba(45, 138, 62, .20);
  --warn: #D4850C;
  --warn-dim: #A66A0A;
  --warn-subtle: rgba(212, 133, 12, .06);
  --warn-subtle-border: rgba(212, 133, 12, .20);
  --error: #DC3545;
  --error-dim: #9C1E2A;
  --error-subtle: rgba(220, 53, 69, .06);
  --error-subtle-border: rgba(220, 53, 69, .20);
  --info: #2B7EC2;
  --info-dim: #1A5F9E;
  --info-subtle: rgba(43, 126, 194, .06);
  --info-subtle-border: rgba(43, 126, 194, .20);

  --sh-sm: 0 1px 2px rgba(0,0,0,.05);
  --sh-md: 0 4px 12px rgba(0,0,0,.08);
  --sh-lg: 0 8px 24px rgba(0,0,0,.12);

  --glass-bg: rgba(255, 255, 255, .85);
  --glass-blur: blur(12px);
  --glass-border: rgba(0, 0, 0, .06);

  color-scheme: light;
}

/* ============================================================
 * Legacy aliases — page-*.css 迁移到新 token 后可删
 * ============================================================ */
body {
  --pad: var(--sp-4);

  --c-bg: var(--bg-0);
  --c-surface: var(--bg-2);
  --c-surface-elev: var(--bg-3);
  --c-surface-deep: var(--bg-4);
  --c-border: var(--line);
  --c-border-subtle: var(--line-soft);

  --c-text: var(--ink-0);
  --c-text-muted: var(--ink-1);
  --c-text-dim: var(--ink-2);
  --c-text-faint: var(--ink-3);
  --c-text-mute2: var(--ink-0);

  --c-accent: var(--accent);
  --c-accent-hover: var(--accent-dim);
  --c-accent-soft: var(--bg-3);
  --c-accent-fg: var(--on-accent);

  --c-info: var(--info);
  --c-info-bg: var(--info-subtle);
  --c-success: var(--success);
  --c-success-bg: var(--success-subtle);
  --c-warn: var(--warn);
  --c-warn-strong: var(--warn-dim);
  --c-warn-bg: var(--warn-subtle);
  --c-warn-bg-strong: var(--warn-subtle);
  --c-danger: var(--error);
  --c-danger-bg: var(--error-subtle);
  --c-danger-border: var(--error-dim);
  --c-code: var(--warn);
  --c-loc: var(--info);

  --ff-sans: var(--sans);
  --ff-mono: var(--mono);

  --color-surface-soft: var(--bg-2);
  --color-surface-hover: var(--bg-3);
}
