/* Shared design tokens — loaded by the login page and the dashboard. */
:root {
  color-scheme: dark;
  /* surfaces */
  --bg: #0b0c0e;
  --bg-2: #0f1013;
  --panel: #141518;
  --panel-2: #1a1b1f;
  --panel-3: #212227;
  --line: #24252a;
  --line-2: #2f3036;
  --grid: #2c2c2a;
  --axis: #383835;
  /* ink */
  --ink: #f0efec;
  --ink-2: #c3c2b7;
  --ink-3: #898781;
  --ink-4: #5d5c58;
  /* interaction */
  --accent: #3987e5;
  --accent-ink: #8fc0ff;
  --focus: #8fc0ff;
  /* timing marks (F1 convention) */
  --t-ob: #b4a6ff;      /* overall / class best */
  --t-pb: #2fd06b;      /* personal best */
  --t-n: #6f6e69;       /* neither */
  /* status (reserved meaning) */
  --good: #0ca30c;
  --warn: #fab219;
  --serious: #ec835a;
  --crit: #d03b3b;
  /* flags */
  --flag-green: #0ca30c;
  --flag-yellow: #fab219;
  --flag-red: #d03b3b;
  --flag-blue: #3987e5;
  --flag-white: #f0efec;
  /* driver inputs */
  --thr: #1baf7a;
  --brk: #e66767;
  --clu: #3987e5;
  /* lap series in charts (validated all-pairs on the dark surface) */
  --s-cur: #d95926;
  --s-best: #9085e9;
  --s-last: #898781;
  --s-cmp: #199e70;
  /* team */
  --team: #3987e5;
  --live: #e5484d;

  --font-ui: "Titillium Web", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-num: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --radius: 10px;
  --radius-sm: 6px;
  --shadow: 0 10px 30px rgba(0, 0, 0, .35);
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 14px;
  line-height: 1.35;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
button, input, select { font: inherit; color: inherit; }
a { color: var(--accent-ink); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.num { font-family: var(--font-num); font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}
