:root {
  --ink-900:#0F172A; --ink-800:#1E293B; --ink-700:#334155; --ink-600:#475569;
  --bronze-700:#92400E; --bronze-600:#B45309; --bronze-500:#D97706;
  --bronze-400:#F59E0B; --bronze-100:#FEF3C7;
  --n-900:#1C1917; --n-700:#44403C; --n-500:#78716C;
  --n-300:#D6D3D1; --n-100:#F5F5F4; --n-50:#FAFAF9; --n-0:#FFFFFF;

  --success:#15803D; --success-bg:#DCFCE7;
  --warning:#B45309; --warning-bg:#FEF3C7;
  --danger:#B91C1C;  --danger-bg:#FEE2E2;
  --info:#1D4ED8;    --info-bg:#DBEAFE;

  --text-primary:var(--n-900);
  --text-secondary:var(--n-700);
  --text-muted:var(--n-500);
  --surface:var(--n-0);
  --surface-alt:var(--n-50);
  --border:var(--n-300);

  --font-sans:'Inter Variable','Inter',system-ui,-apple-system,sans-serif;

  --fs-display:2.25rem; --fs-h1:1.875rem; --fs-h2:1.5rem; --fs-h3:1.25rem;
  --fs-body-l:1.125rem; --fs-body:1rem; --fs-body-s:0.875rem; --fs-caption:0.8125rem;
  --lh-tight:1.2; --lh-snug:1.3; --lh-body:1.5; --lh-relaxed:1.55;

  --sp-1:0.25rem; --sp-2:0.5rem; --sp-3:0.75rem; --sp-4:1rem;
  --sp-6:1.5rem; --sp-8:2rem; --sp-12:3rem; --sp-16:4rem;

  --radius:6px; --radius-card:10px; --radius-input:4px; --radius-pill:999px;

  --target-customer:48px; --target-driver:56px; --target-office:32px;

  --dur-fast:150ms; --dur-base:200ms; --ease:cubic-bezier(0.16,1,0.3,1);
  --shadow-float:0 8px 24px rgb(0 0 0 / 0.10), 0 2px 6px rgb(0 0 0 / 0.06);
}

[data-theme="dark"] {
  --text-primary:var(--n-50);
  --text-secondary:var(--n-300);
  --text-muted:var(--n-500);
  --surface:var(--ink-900);
  --surface-alt:var(--ink-800);
  --border:var(--ink-700);

  /* The semantic colours restated. The light-mode values are dark inks chosen
     for contrast against white and fail the other way round — #15803D on
     #0F172A is about 2.4:1, under the AA floor and nowhere near the AAA the
     driver panel targets. These tints clear 7:1 on --surface. Backgrounds swap
     with them: a light tint behind dark text becomes a dark tint behind light. */
  --success:#4ADE80; --success-bg:#052E16;
  --warning:#FCD34D; --warning-bg:#451A03;
  --danger:#FCA5A5;  --danger-bg:#450A0A;
  --info:#93C5FD;    --info-bg:#172554;

  /* The one accent that reads on ink. --bronze-600 is a brand colour for white
     backgrounds; on --ink-900 it is 3.3:1, which fails as a focus ring on a
     screen used in a dark car park. */
  --accent:var(--bronze-400);
}

:root { --accent:var(--bronze-600); }

.tabular { font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
