/* steel.css — Clean Steel for the GOOD-CATCH reporter (docs/DESIGN.md; tokens from lib/brand/steel.css —
   when they disagree, docs/design/clean-steel-sidebyside.html wins). Replaces theme.css (steel XOR theme —
   never both; DESIGN.md). Hand-authored (NOT generated) because it carries a COMPAT block, same as
   safety-portal / cm-portal / devhub-portal. Two parts:
   1. The brand Steel tokens, PAIRED light/dark, verbatim values (html[data-theme="dark"|"light"]).
   2. A GOOD-CATCH COMPAT block INSIDE each: the theme.css variable names app.css uses throughout
      (--paper/--surface/--grid/--core/--core-soft/--cm/--cm-soft/--keyo-soft), re-grounded per theme so
      app.css re-tokens without forking a single value name (app.css uses theme.css's names directly — it
      never rolled a local override layer, so the aliases live here). Names app.css does NOT use
      (--super/--op/--faint/--mono/--danger) are omitted — no dead aliases carried.
   FULL STEEL (David, 2026-08-08) — THE GREEN IS GONE. It used to live here as a "theme-independent
   constant safety accent", and from that one token it reached the title, every option chip, the worker's
   own chat bubbles, both primary buttons, every focus ring and the success mark — so the light default
   page simply read GREEN rather than Clean Steel. Safety identity rides the NAME and the LOGO, never a
   colour. --green/--green-d are DELETED, not merely unused: a dead token invites the next pass to "honor"
   it. Accents are the fleet's — maroon structural, amber caution, the semantic ok/red.
   NOTE: theme.css's .btn-primary/.btn-admin hierarchy is NOT carried — grep confirmed both are dead
   references in this portal (its buttons are .btn.send/.submit/.attach/.ghost), unlike safety's, which used
   them. Carrying a dead recipe would be a silent style surface with no consumer. */

:root, html[data-theme="dark"]{
  /* — Steel core (lib/brand/steel.css, dark) — */
  --bg:#2a2a2e; --panel:#323237; --sechead:#2e2e33; --line:#46464d; --hair:#3b3b41;
  --maroon:#6f1d27; --ink:#dcdad5; --muted:#a09e97; --dim:#7b796f;
  --ok:#5aa47b; --red:#c44a41; --amber:#cf9245;
  --btnline:#6e6e75; --hover:#383840;
  --shadow:0 1px 2px rgba(0,0,0,.25), 0 3px 10px rgba(0,0,0,.18);

  /* — GOOD-CATCH COMPAT: theme.css names → dark Steel values — */
  --paper:var(--bg); --surface:var(--panel); --grid:#35353a;
  --core:var(--amber);        --core-soft:#3a2f1c;
  --cm:#5C97BC;                --cm-soft:#25313a;
  --keyo-soft:#2e2e33;         /* KEYO's bubble tint — a neutral Steel surface now, no longer a green wash */
}
html[data-theme="light"]{
  /* — Steel core (lib/brand/steel.css, light) — */
  --bg:#EEF1F4; --panel:#FBFCFD; --sechead:#F3F5F8; --line:#D4DAE0; --hair:#E4E8ED;
  --maroon:#6f1d27; --ink:#1C2530; --muted:#5A6675; --dim:#8A93A0;
  --ok:#2E8B57; --red:#B23B3B; --amber:#C77F22;
  --btnline:#B8C0C9; --hover:#EDF0F3;
  --shadow:0 1px 2px rgba(20,30,45,.06), 0 2px 8px rgba(20,30,45,.05);

  /* — GOOD-CATCH COMPAT: theme.css names → light Steel values — */
  --paper:var(--bg); --surface:var(--panel); --grid:#E4E8ED;
  --core:var(--amber);        --core-soft:#FBEFDC;
  --cm:#3E6E8E;                --cm-soft:#E4EDF3;
  --keyo-soft:#F3F5F8;         /* KEYO's bubble tint — a neutral Steel surface now, no longer a green wash */
}

:root{
  --sans:-apple-system,"SF Pro Text","Segoe UI",Roboto,sans-serif;
  --steel-cond:"Arial Narrow",sans-serif;
  --steel-mono:"SF Mono",Consolas,monospace;
  --radius:10px;
}

/* the two display voices (available if the portal ever adopts them; harmless if unused) */
.cond{font-family:var(--steel-cond);letter-spacing:.1em;text-transform:uppercase;font-weight:800;}
.mono{font-family:var(--steel-mono);font-variant-numeric:tabular-nums;}
