
:root {
  --font-body: "Inter", "Segoe UI", "Microsoft YaHei UI", system-ui, sans-serif;
  --font-display: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;
  --color-ink: oklch(30% .065 260);
  --color-muted: oklch(48% .045 255);
  --color-paper: oklch(98% .006 250);
  --color-rule: oklch(50% .06 255 / .24);
  --color-accent: oklch(48% .16 258);
  --color-accent-ink: oklch(98% .006 250);
  --color-focus: oklch(55% .17 258);
  --color-glass: oklch(98% .006 250 / .88);
  --color-field: oklch(99% .004 250 / .96);
  --color-hover: oklch(94% .025 250 / .94);
  --color-shadow: oklch(28% .035 250 / .07);
  --color-shine: oklch(99% .004 250 / .65);
  --color-error: oklch(45% .16 20);
  --color-success: oklch(42% .09 160);
  --color-waiting: oklch(90% .07 245);
  --space-3xs: 4px; --space-2xs: 8px; --space-xs: 12px;
  --space-sm: 16px; --space-md: 24px; --space-lg: 40px; --space-xl: 64px;
  --text-xs: 13px; --text-sm: 14px; --text-base: 16px;
  --text-ui: 15px; --text-lg: 20px; --text-xl: 26px; --text-2xl: 32px;
  --radius-card: 16px; --radius-input: 12px; --radius-pill: 999px;
  --ease-out: cubic-bezier(.16,1,.3,1);
  --ease-in: cubic-bezier(.7,0,.84,0);
  --ease-in-out: cubic-bezier(.65,0,.35,1);
  --dur-micro: 120ms; --dur-short: 200ms; --dur-long: 360ms;
  --shadow-card: 0 6px 20px var(--color-shadow);
  --z-dropdown: 100; --z-sticky: 200; --z-modal: 400; --z-toast: 500;
}
:is(html[data-theme="dark"],body[data-theme="dark"],body.dark) {
  --color-ink: oklch(94% .015 250);
  --color-muted: oklch(77% .025 250);
  --color-paper: oklch(23% .035 250);
  --color-rule: oklch(82% .035 250 / .2);
  --color-accent: oklch(72% .12 250);
  --color-accent-ink: oklch(20% .035 250);
  --color-focus: oklch(78% .11 250);
  --color-glass: oklch(24% .035 250 / .94);
  --color-field: oklch(29% .035 250 / .98);
  --color-hover: oklch(33% .045 250 / .98);
  --color-shadow: oklch(12% .02 250 / .18);
  --color-shine: oklch(95% .01 250 / .1);
  --color-error: oklch(80% .09 20);
  --color-success: oklch(80% .08 160);
  --color-waiting: oklch(58% .09 250);
}
