/* ─────────────────────────────────────────────────────────────────────────
 * tokens.v2.css — UI v2 Design System (cnb#143 Stage 2)
 *
 * 在 styles.css 之前加载,只导出**新增 namespace 不冲突的 vars**:
 *   - Tailwind 色阶 (blue-50..900 / emerald / amber / rose / gray)
 *   - 5 学科色 (--subj-*)
 *   - v2 字体栈 (--ui-font-sans / serif / mono) — Inter + 思源 + JetBrains Mono
 *   - v2 字号 (--ui-text-*)
 *   - v2 间距 (--ui-sp-*)
 *   - v2 圆角 (--ui-r-*)
 *   - v2 motion (--ui-t-*)
 *
 * 不动现有 styles.css 的 semantic vars (--accent / --bg / --text / --surface
 * / --border / --shadow-*) — 旧 page 视觉不变。
 *
 * 旧 page 渐进迁移用法:
 *   .my-card { background: var(--blue-50); font-family: var(--ui-font-sans); }
 * ───────────────────────────────────────────────────────────────────────── */
:root {
  /* ── Tailwind 色阶 ── */
  --blue-50: #eff6ff;   --blue-100: #dbeafe;  --blue-500: #3b82f6;
  --blue-600: #2563eb;  --blue-700: #1d4ed8;
  --emerald-50: #ecfdf5;  --emerald-500: #10b981;  --emerald-600: #059669;
  --amber-50: #fffbeb;    --amber-500: #f59e0b;    --amber-600: #d97706;
  --rose-50: #fff1f2;     --rose-500: #f43f5e;     --rose-600: #e11d48;
  --gray-50: #f9fafb;   --gray-100: #f3f4f6;  --gray-200: #e5e7eb;
  --gray-300: #d1d5db;  --gray-400: #9ca3af;  --gray-500: #6b7280;
  --gray-600: #4b5563;  --gray-700: #374151;  --gray-800: #1f2937;
  --gray-900: #111827;  --gray-950: #030712;

  /* ── 5 学科色 (Khan/Brilliant 风) ── */
  --subj-physics:     #8b5cf6;
  --subj-chemistry:   #f43f5e;
  --subj-biology:     #10b981;
  --subj-mathematics: #3b82f6;
  --subj-economics:   #f97316;

  /* ── v2 字体栈 ── */
  --ui-font-sans:  "Inter", "Noto Sans SC", -apple-system, BlinkMacSystemFont,
                   "Segoe UI", Roboto, "Helvetica Neue", system-ui, sans-serif;
  --ui-font-serif: "Noto Serif SC", Georgia, "Cambria", "Songti SC", serif;
  --ui-font-mono:  "JetBrains Mono", "SF Mono", Consolas, Menlo, monospace;

  /* ── v2 字号 9 档 ── */
  --ui-text-xs: 12px;    --ui-text-sm: 14px;    --ui-text-base: 16px;
  --ui-text-lg: 18px;    --ui-text-xl: 20px;    --ui-text-2xl: 24px;
  --ui-text-3xl: 30px;   --ui-text-4xl: 36px;   --ui-text-5xl: 48px;

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

  /* ── v2 圆角 ── */
  --ui-r-sm: 8px;   --ui-r-md: 12px;  --ui-r-lg: 16px;
  --ui-r-xl: 24px;  --ui-r-2xl: 32px; --ui-r-full: 9999px;

  /* ── v2 motion ── */
  --ui-t-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --ui-t-norm: 250ms cubic-bezier(0.4, 0, 0.2, 1);
  --ui-t-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── 全局 base typography 升级(影响所有 page,不破坏布局)── */
html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
body {
  font-family: var(--ui-font-sans);
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
}
.reader-content, .reader-prose, [data-prose="true"] {
  font-family: var(--ui-font-serif);
  font-feature-settings: "kern" 1, "liga" 1;
  line-height: 1.75;
}
code, kbd, samp, pre, .mono, [class*="-num"], [class*="-code"] {
  font-family: var(--ui-font-mono);
}

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