/* ============================================================
   Design tokens — single source of truth.
   方向：Modern Minimal (Linear / Vercel 风)
   修改这里，所有页面同步生效。
   ============================================================ */

:root {
  /* —— 色彩 —— */
  --bg:            oklch(99% 0.002 240);
  --bg-elevated:   oklch(100% 0 0);
  --surface:       oklch(100% 0 0);
  --surface-2:     oklch(97.5% 0.003 250);
  --surface-3:     oklch(95% 0.005 250);

  --border:        oklch(92% 0.005 250);
  --border-strong: oklch(86% 0.008 250);

  --fg:            oklch(18% 0.012 250);
  --fg-2:          oklch(38% 0.012 250);
  --muted:         oklch(54% 0.012 250);
  --muted-2:       oklch(70% 0.008 250);

  --accent:        oklch(58% 0.18 255);
  --accent-hover:  oklch(54% 0.20 255);
  --accent-fg:     oklch(99% 0.002 240);
  --accent-soft:   oklch(96% 0.025 255);
  --accent-ring:   oklch(58% 0.18 255 / 0.18);

  --success:       oklch(62% 0.16 145);
  --success-soft:  oklch(95% 0.04 145);
  --warn:          oklch(72% 0.14 75);
  --warn-soft:     oklch(96% 0.05 75);
  --danger:        oklch(60% 0.20 25);
  --danger-soft:   oklch(96% 0.04 25);

  /* —— 字体 —— */
  --font-display: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'PingFang SC', 'Helvetica Neue', system-ui, sans-serif;
  --font-body:    -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'PingFang SC', 'Helvetica Neue', system-ui, sans-serif;
  --font-mono:    ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace;

  /* —— 圆角 —— */
  --r-xs: 4px;
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-xl: 20px;
  --r-full: 9999px;

  /* —— 间距 —— */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-8: 32px;
  --s-10: 40px;
  --s-12: 48px;
  --s-16: 64px;
  --s-20: 80px;
  --s-24: 96px;
  --s-32: 128px;

  /* —— 阴影 —— */
  --shadow-xs: 0 1px 2px oklch(18% 0.012 250 / 0.04);
  --shadow-sm: 0 2px 8px oklch(18% 0.012 250 / 0.05);
  --shadow-md: 0 8px 24px oklch(18% 0.012 250 / 0.08);
  --shadow-lg: 0 16px 48px oklch(18% 0.012 250 / 0.10);

  /* —— 缓动 & 时长 —— */
  --ease-out:    cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --d-fast: 140ms;
  --d-base: 220ms;
  --d-slow: 380ms;

  /* —— 布局 —— */
  --container:        1200px;
  --container-narrow: 960px;
  --nav-h: 60px;
  --sidebar-w: 280px;
}

/* —— 深色主题（生成区与可选） —— */
[data-theme='dark'] {
  --bg:            oklch(15% 0.012 250);
  --bg-elevated:   oklch(18% 0.012 250);
  --surface:       oklch(19% 0.012 250);
  --surface-2:     oklch(22% 0.012 250);
  --surface-3:     oklch(25% 0.012 250);

  --border:        oklch(26% 0.012 250);
  --border-strong: oklch(32% 0.012 250);

  --fg:            oklch(96% 0.005 250);
  --fg-2:          oklch(82% 0.008 250);
  --muted:         oklch(62% 0.012 250);
  --muted-2:       oklch(48% 0.010 250);

  --accent:        oklch(68% 0.18 255);
  --accent-hover:  oklch(72% 0.19 255);
  --accent-fg:     oklch(15% 0.012 250);
  --accent-soft:   oklch(28% 0.06 255);
  --accent-ring:   oklch(68% 0.18 255 / 0.25);

  --success-soft:  oklch(28% 0.06 145);
  --warn-soft:     oklch(28% 0.06 75);
  --danger-soft:   oklch(28% 0.06 25);

  --shadow-xs: 0 1px 2px oklch(0% 0 0 / 0.30);
  --shadow-sm: 0 2px 8px oklch(0% 0 0 / 0.36);
  --shadow-md: 0 8px 24px oklch(0% 0 0 / 0.42);
  --shadow-lg: 0 16px 48px oklch(0% 0 0 / 0.50);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
