:root, [data-theme="dark"] {
  --bg: #0b0e11;
  --surface: #12161b;
  --surface-raised: #191e24;
  --surface-sunken: #07090b;
  --line: #232a32;
  --line-strong: #5c6773;
  --ink: #e9eef3;
  --ink-muted: #9ba6b2;
  --ink-subtle: #7c8793;
  --brand: #c6f432;
  --brand-strong: #d6ff5c;
  --on-brand: #0b0e11;
  --brand-text: #c6f432;
  --gain: #2fd38a;
  --gain-soft: #0f2a1f;
  --loss: #ff5c6c;
  --loss-soft: #33141a;
  --warn: #f5b83d;
  --warn-soft: #2e2410;
  --info: #5aa9ff;
  --info-soft: #10213a;
  --focus-ring: #5aa9ff;
  --chart-1: var(--brand-text);
  --chart-2: var(--info);
  --chart-3: var(--warn);
  --shadow-pop: 0 12px 32px rgba(0,0,0,0.55), 0 0 0 1px #232a32;
  color-scheme: dark;
}
[data-theme="light"] {
  --bg: #f5f6f8;
  --surface: #ffffff;
  --surface-raised: #f0f2f5;
  --surface-sunken: #e9ecf0;
  --line: #e0e4e9;
  --line-strong: #88929e;
  --ink: #0e1216;
  --ink-muted: #4c5763;
  --ink-subtle: #5d6874;
  --brand: #c6f432;
  --brand-strong: #b3e019;
  --on-brand: #0b0e11;
  --brand-text: #4a6b00;
  --gain: #0b7d4f;
  --gain-soft: #e3f6ec;
  --loss: #c8243a;
  --loss-soft: #fde8eb;
  --warn: #8f5a00;
  --warn-soft: #fdf1d9;
  --info: #1d5fb8;
  --info-soft: #e5effc;
  --focus-ring: #1d5fb8;
  --chart-1: var(--brand-text);
  --chart-2: var(--info);
  --chart-3: var(--warn);
  --shadow-pop: 0 12px 32px rgba(14,18,22,0.14), 0 0 0 1px #e0e4e9;
  color-scheme: light;
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --radius-sm: 3px;
  --radius-md: 6px;
  --radius-lg: 10px;
  --radius-pill: 999px;
  --control-sm: 28px;
  --control-md: 34px;
  --row-height: 40px;
  --sidebar-width: 232px;
  --font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
}
.num-xl { font-family: var(--font-mono); font-size: 28px; line-height: 32px; font-weight: 500; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.num-lg { font-family: var(--font-mono); font-size: 18px; line-height: 24px; font-weight: 500; font-variant-numeric: tabular-nums; }
.num-md { font-family: var(--font-mono); font-size: 13px; line-height: 20px; font-weight: 400; font-variant-numeric: tabular-nums; }
.num-sm { font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; font-variant-numeric: tabular-nums; }
.heading-lg { font-family: var(--font-sans); font-size: 20px; line-height: 28px; font-weight: 600; letter-spacing: -0.01em; }
.heading-md { font-family: var(--font-sans); font-size: 15px; line-height: 22px; font-weight: 600; }
.body { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 400; }
.body-sm { font-family: var(--font-sans); font-size: 13px; line-height: 18px; font-weight: 400; }
.label { font-family: var(--font-sans); font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; }
