:root {
  /* Color tokens (dark theme primary) */
  --bg: #0b1220;
  --bg-elev: #0a1426;
  --panel: #131b2e;
  --panel-2: #182241;
  --panel-hover: #1d2949;
  --border: #243049;
  --border-strong: #324063;
  --text: #e6edf7;
  --text-soft: #cbd5e1;
  --muted: #94a3b8;
  --muted-2: #64748b;
  --accent: #38bdf8;
  --accent-strong: #0ea5e9;
  --accent-dark: #0284c7;
  --accent-soft: rgba(56, 189, 248, 0.12);
  --success: #22c55e;
  --warning: #f59e0b;
  --danger: #ef4444;

  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;

  /* Radius */
  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 10px;
  --r-xl: 14px;
  --r-pill: 999px;

  /* Shadow */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.25);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.35);
  --shadow-lg: 0 18px 40px rgba(0, 0, 0, 0.45);

  /* Typography */
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Inter", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "SF Mono", "JetBrains Mono", Monaco, Consolas, "Courier New", monospace;
  --fs-12: 12px;
  --fs-13: 13px;
  --fs-14: 14px;
  --fs-15: 15px;
  --fs-16: 16px;
  --fs-18: 18px;
  --fs-20: 20px;
  --fs-24: 24px;

  /* Sidebar */
  --sidebar-w: 280px;
  --topbar-h: 56px;

  /* Transition */
  --t-fast: 0.12s ease;
  --t-base: 0.2s ease;
}

body {
  font-family: var(--font-sans);
  background: var(--bg);
  color: var(--text);
  font-size: var(--fs-14);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
