/* ============================================================
   Design tokens — the single source of truth.
   Loaded before every other stylesheet; nothing may redefine
   these meanings locally.

   THE SEMANTIC RULE (a defect if broken, not a taste call):
     delivery   = rust    — a skip going OUT
     collection = green   — a skip coming BACK
     exchange   = amber   — one out, one back
     yard       = graphite marked with yellow
   A dispatcher reads these colours faster than the words.
   JS contexts that cannot read CSS variables (Leaflet canvas,
   iframe srcdocs) mirror these hexes in lib/jobDisplay.ts —
   change them together or not at all.
   ============================================================ */
:root{
  /* Neutrals */
  --ink:#12181D; --graphite:#1B1F24; --graphite-2:#262D34;
  --concrete:#ECEEEC; --paper:#FFFFFF; --line:#DCE1DE; --muted:#5B655F;
  /* The one action accent */
  --yellow:#F5B700; --yellow-ink:#3A2C00;
  /* Job-type semantics (locked) */
  --job-delivery:#B33A2E;   --job-delivery-bg:#FBEAE7;
  --job-collection:#1F8A5F; --job-collection-bg:#E7F4ED;
  --job-exchange:#C9781C;   --job-exchange-bg:#FBF0E1;
  /* Status aliases (same hues, semantic names) */
  --rust:var(--job-delivery);   --rust-bg:var(--job-delivery-bg);
  --green:var(--job-collection);--green-bg:var(--job-collection-bg);
  --amber:var(--job-exchange);  --amber-bg:var(--job-exchange-bg);
  /* Type roles */
  --font-display:'Oswald',sans-serif;      /* headers, uppercase labels */
  --font-body:'Inter',sans-serif;          /* everything readable */
  --font-mono:'IBM Plex Mono',monospace;   /* ids, times, regs, tonnages */
}
