/* theme.css: design tokens of the RaceIntake dashboard look (dark navy).
   The ONLY file with colour literals; every other rule uses var(--…). Load the IBM Plex fonts separately (§5.4). */
:root {
  color-scheme: dark;

  /* Surfaces, darkest to lightest: sidebar < page < control well < recessed band < card < hover < raised < group band < chip */
  --sidebar-bg:#070C16;
  --bg-page:#0A101C; --bg-control:#0C1422; --bg-subtle:#0D1524; --bg-card:#111A2B; --row-hover:#152036;
  --bg-raised:#16223A; --bg-group:#17223A; --bg-chip:#1C2841;
  --border:#1F2B42; --border-row:#19233A; --border-control:#3A4A68; --border-control-hover:#4F6288;
  --backdrop:rgb(2 6 15 / 0.66); --shadow:rgb(2 6 15 / 0.45); --edge-hi:#FFFFFF0A;

  /* Text */
  --text:#E8EEF7; --text-strong-secondary:#C2CDDD; --text-secondary:#A3B1C6; --text-muted:#8C9BB2;

  /* Accent (azure): links, focus ring, primary button, selection, "done" */
  --accent:#22B5DC; --accent-hover:#4FCBEA; --accent-tint:#22B5DC24;
  --accent-surface:#14364B;   /* pressed segmented button */
  --accent-wash:#10304A;      /* pressed "All" tile */

  /* Status tones, one hue each. strong = dots, rails, tracks · -bg = pill fill, pressed-tile wash
     · -tint = pill ring, pressed-tile halo · -fg = pill text */
  --st-neutral:#94A3B8; --st-neutral-bg:#1E293D; --st-neutral-tint:#94A3B84D; --st-neutral-fg:#C3CEDF;
  --st-active:#6B9BFF;  --st-active-bg:#16264A;  --st-active-tint:#6B9BFF59;  --st-active-fg:#A9C3FF;
  --st-ready:#A78BFA;   --st-ready-bg:#251F48;   --st-ready-tint:#A78BFA59;   --st-ready-fg:#CBBBFF;
  --st-warn:#F2B33D;    --st-warn-bg:#2E2410;    --st-warn-tint:#F2B33D52;    --st-warn-fg:#F7CC74;
  --st-ok:#34D399;      --st-ok-bg:#0F2E2A;      --st-ok-tint:#34D39952;      --st-ok-fg:#6EE7B7;
  --st-fail:#F87171;    --st-fail-bg:#351820;    --st-fail-tint:#F8717159;    --st-fail-fg:#FFA4A4;

  /* Pipeline track + timeline */
  --track-done:var(--accent); --track-active:#4C7DFF; --track-warn:var(--st-warn); --track-fail:var(--st-fail);
  --track-todo:#2C3954; --timeline-todo-ring:#45556F;

  /* Message tones: notices, error cards, note rows, edited/missing fields */
  --info-bg:#10203F; --info-border:#28457F; --info-text:#9EBBFF; --info-strong:#D3E0FF; --info-control-border:#3F66BF;
  --warn-bg:#271F0E; --warn-border:#6B5220; --warn-text:#F5C76A; --warn-control-bg:#1C170C;
  --warn-note-text:#D6BC85;   /* repeated warnings ("No template", "Not set"): readable, not shouty */
  --error-bg:#2C141B; --error-border:#7D2E3A; --error-text:#FFA4A4; --error-row-tint:#22131C;
  --ok-text:#5EE3A8;

  /* Sidebar + Services box */
  --sidebar-active:#13203A; --sidebar-text:#A9B6CB; --sidebar-text-active:#F2F6FC; --sidebar-icon-active:#4FCBEA;
  --sidebar-heading:#7586A0; --sidebar-divider:#1A253A;
  --sidebar-badge-text:#C9D3E3; --sidebar-badge-warn-bg:#3A2C10; --sidebar-badge-warn-text:#F7CC74;
  --svc-text:#C9D3E3; --svc-text-dim:#8D9BB2;
  --svc-dot-ok:#34D399; --svc-dot-busy:#6B9BFF; --svc-dot-warn:#E0A93B; --svc-text-warn:#F7CC74;
  --svc-dot-error:#F87171; --svc-text-error:#FFA4A4;

  /* Type */
  --font-sans:"IBM Plex Sans", system-ui, sans-serif; --font-mono:"IBM Plex Mono", ui-monospace, monospace;
  --fs-title:28px; --fs-panel-title:20px; --fs-card-title:15px;
  --fs-body:14px; --fs-meta:13px; --fs-small:12px; --fs-tiny:11px;

  /* Shape, size, spacing */
  --r-control:8px; --r-inner:10px; --r-card:12px; --r-pill:999px; --r-chip:6px;
  --h-control:40px; --h-control-table:36px; --h-row:52px; --h-row-compact:44px; --h-thead:40px; --h-group:36px;
  --pad-top:28px; --pad-x:32px; --gap-section:20px; --w-sidebar:232px; --w-panel:400px;
}
body.compact { --h-row: var(--h-row-compact); }   /* optional density toggle */
