/* Semantic tokens – values come from [data-theme] */
:root {
  --bg: #0f1419;
  --bg-elevated: #151b23;
  --surface: #1a222d;
  --surface-muted: #212b38;
  --surface-overlay: rgba(15, 20, 25, 0.92);
  --border: #2d3a4a;
  --border-subtle: #243040;
  --primary: #4a90d9;
  --primary-hover: #3a7fc8;
  --accent: #6ba3b8;
  --text: #e8edf2;
  --muted: #8b9aab;
  --ok: #5cb87a;
  --warn: #d4a84b;
  --danger: #d97070;
  --primary-rgb: 74, 144, 217;
  --accent-rgb: 107, 163, 184;
  --muted-rgb: 139, 154, 171;
  --radius-md: 8px;
  --radius-lg: 12px;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.28);
  --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.22);
  --header-bg: rgba(21, 27, 35, 0.96);
  --focus-ring: rgba(var(--primary-rgb), 0.28);
  --chart-grid: rgba(var(--muted-rgb), 0.14);
  --heatmap-min: rgba(var(--primary-rgb), 0.08);
  --heatmap-max: rgba(var(--primary-rgb), 0.88);
  --container-max: 1080px;
  --content-padding: clamp(0.75rem, 2.5vw, 1.75rem);
}

/* Slate – neutral professional (default) */
:root,
[data-theme="slate"] {
  --bg: #0f1419;
  --bg-elevated: #151b23;
  --surface: #1a222d;
  --surface-muted: #212b38;
  --surface-overlay: rgba(15, 20, 25, 0.94);
  --border: #2d3a4a;
  --border-subtle: #243040;
  --primary: #4a90d9;
  --primary-hover: #3a7fc8;
  --accent: #6ba3b8;
  --text: #e8edf2;
  --muted: #8b9aab;
  --ok: #5cb87a;
  --primary-rgb: 74, 144, 217;
  --accent-rgb: 107, 163, 184;
  --muted-rgb: 139, 154, 171;
}

/* Graphite – restrained monochrome */
[data-theme="graphite"] {
  --bg: #111113;
  --bg-elevated: #18181b;
  --surface: #1f1f23;
  --surface-muted: #27272b;
  --surface-overlay: rgba(17, 17, 19, 0.94);
  --border: #3f3f46;
  --border-subtle: #303036;
  --primary: #a1a1aa;
  --primary-hover: #d4d4d8;
  --accent: #71717a;
  --text: #f4f4f5;
  --muted: #a1a1aa;
  --ok: #6ee7a8;
  --primary-rgb: 161, 161, 170;
  --accent-rgb: 113, 113, 122;
  --muted-rgb: 161, 161, 170;
}

/* Ocean – deep blue enterprise */
[data-theme="ocean"] {
  --bg: #0a1220;
  --bg-elevated: #0f1a2e;
  --surface: #142238;
  --surface-muted: #1a2d4a;
  --surface-overlay: rgba(10, 18, 32, 0.94);
  --border: #243a5c;
  --border-subtle: #1c2f4a;
  --primary: #3b82c4;
  --primary-hover: #2f6fad;
  --accent: #5b9cb5;
  --text: #e6eef8;
  --muted: #8fa8c4;
  --ok: #4db88a;
  --primary-rgb: 59, 130, 196;
  --accent-rgb: 91, 156, 181;
  --muted-rgb: 143, 168, 196;
}

/* Forest – muted green accent */
[data-theme="forest"] {
  --bg: #0e1412;
  --bg-elevated: #141c19;
  --surface: #1a2420;
  --surface-muted: #22302a;
  --surface-overlay: rgba(14, 20, 18, 0.94);
  --border: #2d4038;
  --border-subtle: #243530;
  --primary: #4a9b7a;
  --primary-hover: #3d8568;
  --accent: #6b9e8a;
  --text: #e8f0ec;
  --muted: #8fa89a;
  --ok: #6bc492;
  --primary-rgb: 74, 155, 122;
  --accent-rgb: 107, 158, 138;
  --muted-rgb: 143, 168, 154;
}

/* Ivory – light professional */
[data-theme="ivory"] {
  --bg: #eef1f5;
  --bg-elevated: #e4e9ef;
  --surface: #ffffff;
  --surface-muted: #f6f8fa;
  --surface-overlay: rgba(238, 241, 245, 0.96);
  --border: #c8d1dc;
  --border-subtle: #dce2ea;
  --primary: #2563a8;
  --primary-hover: #1d528c;
  --accent: #4a7a94;
  --text: #1a2332;
  --muted: #5c6b7e;
  --ok: #2d8a5a;
  --warn: #b8860b;
  --danger: #c44d4d;
  --primary-rgb: 37, 99, 168;
  --accent-rgb: 74, 122, 148;
  --muted-rgb: 92, 107, 126;
  --shadow-sm: 0 1px 2px rgba(26, 35, 50, 0.06);
  --shadow-md: 0 4px 14px rgba(26, 35, 50, 0.08);
  --header-bg: rgba(255, 255, 255, 0.96);
  --chart-grid: rgba(92, 107, 126, 0.18);
}
