/* 设计令牌 —— 方向：清爽编辑感 × 靛蓝紫。
   品牌主色取自学习规划师原版（靛蓝 #4f46e5 × 紫罗兰 #8b5cf6），
   用 oklch 表达以获得干净的明度梯度（色相 ≈ 287，介于靛蓝与紫之间）。 */
:root {
  /* 品牌色阶（靛蓝→紫） */
  --brand-50:  oklch(97% 0.018 290);
  --brand-100: oklch(94% 0.040 290);
  --brand-200: oklch(89% 0.070 290);
  --brand-300: oklch(81% 0.110 289);
  --brand-400: oklch(72% 0.150 288);
  --brand-500: oklch(62% 0.190 287);  /* 主品牌色 */
  --brand-600: oklch(55% 0.220 286);  /* ≈ 靛蓝 #4f46e5 */
  --brand-700: oklch(47% 0.200 286);
  --brand-800: oklch(39% 0.160 287);

  /* 中性 / 墨色（带极轻紫调） */
  --ink-900: oklch(24% 0.030 290);
  --ink-700: oklch(40% 0.025 290);
  --ink-500: oklch(55% 0.018 290);
  --ink-400: oklch(66% 0.014 290);
  --ink-300: oklch(79% 0.010 290);

  /* 表面 */
  --bg:        oklch(98.6% 0.008 290);
  --surface:   oklch(100% 0 0);
  --surface-2: oklch(98% 0.010 290);
  --line:      oklch(91% 0.016 290);
  --line-soft: oklch(94% 0.010 290);

  /* 语义色 */
  --good:    oklch(64% 0.15 150);
  --good-bg: oklch(95% 0.05 150);
  --warn:    oklch(64% 0.16 30);
  --warn-bg: oklch(95% 0.05 32);
  --gold:    oklch(80% 0.12 85);

  /* 字号（流式） */
  --text-xs:  0.78rem;
  --text-sm:  0.875rem;
  --text-base: 1rem;
  --text-lg:  1.125rem;
  --text-xl:  clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  --text-2xl: clamp(1.7rem, 1.3rem + 1.6vw, 2.6rem);
  --text-hero: clamp(2.2rem, 1.4rem + 3.4vw, 4rem);

  /* 间距 */
  --space-section: clamp(2.5rem, 1.8rem + 3vw, 5rem);

  /* 圆角 / 阴影 */
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 22px;
  --r-xl: 30px;
  --shadow-sm: 0 1px 2px oklch(40% 0.06 288 / 0.07), 0 2px 8px oklch(40% 0.06 288 / 0.05);
  --shadow-md: 0 8px 24px oklch(45% 0.10 288 / 0.12), 0 2px 6px oklch(45% 0.10 288 / 0.07);
  --shadow-lg: 0 24px 60px oklch(45% 0.12 288 / 0.18), 0 6px 18px oklch(45% 0.10 288 / 0.10);
  --shadow-brand: 0 14px 40px oklch(55% 0.22 286 / 0.32);

  /* 动效 */
  --dur-fast: 140ms;
  --dur: 280ms;
  --dur-slow: 560ms;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.4, 0, 0.2, 1);

  --font-cjk: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
  --font-num: "SF Mono", "JetBrains Mono", "Menlo", ui-monospace, monospace;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-cjk);
  color: var(--ink-900);
  background: var(--bg);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; }
button { font-family: inherit; cursor: pointer; }
:focus-visible { outline: 2.5px solid var(--brand-500); outline-offset: 2px; border-radius: 4px; }

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