:root {
  --nova-bg: #f7f8fa;
  --nova-surface: #ffffff;
  --nova-surface-2: #f1f5f9;
  --nova-border: #e6e9ef;
  --nova-border-strong: #cbd5e1;
  --nova-text: #0f172a;
  --nova-text-muted: #5f6f84;
  --nova-text-faint: #637287;
  --nova-primary: #5f62e8;
  --nova-primary-strong: #4f46e5;
  --nova-primary-tint: rgba(99, 102, 241, .12);
  --nova-on-primary: #ffffff;
  --nova-accent: #06b6d4;
  --nova-success: #059669;
  --nova-success-tint: rgba(16, 185, 129, .14);
  --nova-warning: #b45309;
  --nova-warning-tint: rgba(245, 158, 11, .16);
  --nova-danger: #e11d48;
  --nova-danger-tint: rgba(244, 63, 94, .14);
  --nova-info: #0284c7;
  --nova-info-tint: rgba(14, 165, 233, .14);
  --nova-radius-sm: 8px;
  --nova-radius: 12px;
  --nova-radius-pill: 999px;
  --nova-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);
  --nova-shadow: 0 4px 14px rgba(15, 23, 42, .08);
  --nova-shadow-lg: 0 14px 38px rgba(15, 23, 42, .16);
  --nova-sidebar-w: 232px;
  --nova-row-pad: .72rem .9rem;
  --nova-control-h: 40px;
  --nova-font: "PingFang SC", "Microsoft YaHei", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --nova-num: "Inter", "PingFang SC", system-ui, sans-serif;
  --nova-dur: .2s;
  --nova-ease: cubic-bezier(.2, .6, .2, 1);
}

[data-theme="dark"] {
  --nova-bg: #0b0f1a;
  --nova-surface: #131a2a;
  --nova-surface-2: #1b2335;
  --nova-border: #243049;
  --nova-border-strong: #334155;
  --nova-text: #e6edf7;
  --nova-text-muted: #93a3bb;
  --nova-text-faint: #8494ad;
  --nova-primary: #818cf8;
  --nova-primary-strong: #a5b4fc;
  --nova-primary-tint: rgba(129, 140, 248, .16);
  --nova-on-primary: #0b0f1a;
  --nova-success: #34d399;
  --nova-success-tint: rgba(16, 185, 129, .18);
  --nova-warning: #fbbf24;
  --nova-warning-tint: rgba(245, 158, 11, .2);
  --nova-danger: #fb7185;
  --nova-danger-tint: rgba(244, 63, 94, .2);
  --nova-info: #38bdf8;
  --nova-info-tint: rgba(14, 165, 233, .2);
  --nova-shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);
  --nova-shadow: 0 4px 14px rgba(0, 0, 0, .45);
  --nova-shadow-lg: 0 14px 38px rgba(0, 0, 0, .55);
}

[data-density="compact"] {
  --nova-row-pad: .42rem .6rem;
  --nova-control-h: 34px;
}

* { box-sizing: border-box; }

body {
  background: var(--nova-bg);
  color: var(--nova-text);
  font-family: var(--nova-font);
  font-size: 14px;
  margin: 0;
}

a { color: var(--nova-primary-strong); }

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