/* Shared tokens for the Even Buses screens (dispatcher, lab).
   Each state has a fill (dots, chips) and an -ink variant for text that meets
   4.5:1 on the page background. Amber = wait, green = drive normally,
   blue = timed terminal departure, slate = don't hurry, purple = message. */
:root {
  --bg: #f4f3ef;
  --panel: #ffffff;
  --sunk: #f8f7f4;
  --ink: #1a1c1f;
  --muted: #5f636a;
  --line: #e2e0d9;
  --route: #a3a8b0;
  --ok: #1f8a5b;     --ok-ink: #17724a;
  --hold: #d39200;   --hold-ink: #8a5a00;
  --depart: #2f6fd0; --depart-ink: #2559ad;
  --calm: #6b7fa8;   --calm-ink: #4a5d85;
  --msg: #8a4fd6;    --msg-ink: #7038c2;
  --alert: #d1372e;  --alert-ink: #b42318;
  --idle: #8a8f98;
  --pax: #3b6fd4;
  --focus: #2559ad;
  --font: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #131518; --panel: #1b1e22; --sunk: #16191c; --ink: #eceef1; --muted: #a2a8b0; --line: #2d3137;
    --route: #5d636c;
    --ok: #3fbf86; --ok-ink: #5fd39d; --hold: #f0b429; --hold-ink: #ffc94d; --depart: #6f9cff; --depart-ink: #93b4ff;
    --calm: #93a6cc; --calm-ink: #aebde0; --msg: #b48cff; --msg-ink: #c7a8ff; --alert: #ff6b5e; --alert-ink: #ff8a7f;
    --idle: #7c828c; --pax: #6f9cff; --focus: #93b4ff;
  }
}
:root[data-theme="dark"] {
  --bg: #131518; --panel: #1b1e22; --sunk: #16191c; --ink: #eceef1; --muted: #a2a8b0; --line: #2d3137;
  --route: #5d636c;
  --ok: #3fbf86; --ok-ink: #5fd39d; --hold: #f0b429; --hold-ink: #ffc94d; --depart: #6f9cff; --depart-ink: #93b4ff;
  --calm: #93a6cc; --calm-ink: #aebde0; --msg: #b48cff; --msg-ink: #c7a8ff; --alert: #ff6b5e; --alert-ink: #ff8a7f;
  --idle: #7c828c; --pax: #6f9cff; --focus: #93b4ff;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font: 14px/1.45 var(--font);
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
}
::selection { background: color-mix(in srgb, var(--depart) 30%, transparent); }
button, select, input, textarea {
  font: inherit; color: var(--ink); background: var(--panel);
  border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px;
}
button { cursor: pointer; }
button:hover { border-color: color-mix(in srgb, var(--ink) 35%, var(--line)); }
button:disabled { opacity: .5; cursor: not-allowed; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
a { color: var(--depart-ink); text-underline-offset: 3px; }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.muted { color: var(--muted); }
.tag {
  display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 99px; border: 1px solid currentColor; white-space: nowrap;
}
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
* { scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
