/* ============================================================
   Oddsmith design tokens — "Broadcast" direction (locked)
   Source of truth: extracted verbatim from the signed-off prototypes.
   Ship this file as-is in packages/om-ui (imported by console + site).
   Dark is the default (:root); light mode = .om-light on the shell root.
   ============================================================ */

/* Fonts (Google Fonts; self-host in production)
   Chakra Petch — display/headers, ALWAYS italic 700 for page titles & wordmark
                  (weights used: 500, 600, 700, italic 600, italic 700)
   Barlow       — body copy (400, 500, 600)
   IBM Plex Mono— EVERY number, id, clock, chip, badge, trace (400, 500, 700)
   @import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:ital,wght@0,500;0,600;0,700;1,600;1,700&family=Barlow:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;700&display=swap');
*/

:root{--bg:oklch(0.155 0.02 305);--bg2:oklch(0.13 0.018 305);--panel:oklch(0.19 0.025 305);--panel2:oklch(0.235 0.03 305);--panel3:oklch(0.28 0.032 305);--rowhover:oklch(0.225 0.028 305);--line:oklch(0.34 0.03 305);--chipbg:oklch(0.31 0.03 305 / 0.6);--hatch:oklch(0.36 0.03 305 / 0.5);--scan:oklch(0.15 0.02 305 / 0.38);--dash:oklch(0.54 0.02 305);--ink:oklch(0.96 0.008 90);--dim:oklch(0.75 0.018 305);--faint:oklch(0.64 0.02 305);--accent:oklch(0.92 0.2 115);--accent2:oklch(0.96 0.16 115);--accent-ink:oklch(0.92 0.2 115);--accent-ink2:oklch(0.96 0.16 115);--on-accent:oklch(0.16 0.02 305);--accent-line:oklch(0.92 0.2 115 / 0.55);--accent-tint:oklch(0.92 0.2 115 / 0.1);--safe:oklch(0.72 0.13 155);--safe-ink:oklch(0.78 0.13 155);--safe-line:oklch(0.72 0.13 155 / 0.5);--warn:oklch(0.84 0.15 80);--warn-ink:oklch(0.85 0.14 80);--warn-tint:oklch(0.84 0.15 80 / 0.1);--warn-line:oklch(0.84 0.15 80 / 0.5);--danger:oklch(0.64 0.21 20);--danger-ink:oklch(0.72 0.19 22);--danger-tint:oklch(0.64 0.21 20 / 0.12);--danger-line:oklch(0.64 0.21 20 / 0.55);}

.om-light{--bg:oklch(0.96 0.005 300);--bg2:oklch(0.925 0.008 300);--panel:oklch(0.99 0.002 300);--panel2:oklch(0.935 0.01 300);--panel3:oklch(0.9 0.012 300);--rowhover:oklch(0.955 0.008 300);--line:oklch(0.85 0.012 300);--chipbg:oklch(0.88 0.012 300 / 0.7);--hatch:oklch(0.8 0.01 300 / 0.26);--scan:oklch(0.94 0.006 300 / 0.3);--dash:oklch(0.62 0.012 300);--ink:oklch(0.21 0.02 305);--dim:oklch(0.43 0.015 305);--faint:oklch(0.51 0.012 305);--accent:oklch(0.9 0.2 115);--accent2:oklch(0.84 0.19 115);--accent-ink:oklch(0.45 0.12 125);--accent-ink2:oklch(0.37 0.12 125);--on-accent:oklch(0.18 0.02 305);--accent-line:oklch(0.55 0.12 122 / 0.55);--accent-tint:oklch(0.75 0.16 118 / 0.16);--safe:oklch(0.6 0.13 155);--safe-ink:oklch(0.45 0.12 155);--safe-line:oklch(0.55 0.13 155 / 0.5);--warn:oklch(0.78 0.15 78);--warn-ink:oklch(0.5 0.12 70);--warn-tint:oklch(0.78 0.14 78 / 0.14);--warn-line:oklch(0.62 0.13 75 / 0.55);--danger:oklch(0.55 0.2 25);--danger-ink:oklch(0.5 0.19 25);--danger-tint:oklch(0.55 0.2 25 / 0.1);--danger-line:oklch(0.55 0.2 25 / 0.5);}

/* Token semantics
   --accent (volt)  brand, live, primary actions ONLY — never a status color
   --accent-ink/-ink2  accent used AS TEXT (darkened in light mode for contrast — never
                       put raw --accent text on --panel in light mode)
   --on-accent      text sitting ON an --accent fill
   safe/warn/danger book-safety signal ONLY; every colored state also carries its word
   --hatch + --dash NOT MEASURED treatment: repeating 45deg hatch + 1px dashed border —
                    an unmeasured value is never rendered as OK and never faked
   --scan           scanline texture, hero panels only */

/* Base resets (body of every page) */
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Barlow',sans-serif;line-height:1.45;}
a{color:var(--accent-ink);text-decoration:none;}
a:hover{color:var(--accent-ink2);text-decoration:underline;}

/* Type scale (rem; root font-size = 16px × user textScale preference)
   0.625   10px  column headers, micro labels (mono, letter-spacing 0.1–0.14em)
   0.6563  10.5px footnote/laws lines (mono)
   0.6875  11px  chips, ids, table numbers (mono)
   0.71875/0.75  11.5/12px  spine, toolbar chips, secondary copy
   0.7813  12.5px sidebar items, row detail
   0.8125–0.8438 13–13.5px row titles, body
   0.9375  15px  wordmark
   1.0625–1.1875 17–19px  panel headlines
   1.625   26px  page title (Chakra Petch italic 700, letter-spacing 0.03em)
   2–3.5   32–56px verdict/hero numbers (mono or Chakra) — phone clamps: 5.5rem→2.75, 3.5→2.25, 3→2, 2.5→1.5, 2→1.375, 1.75→1.25, 1.625→1.1875 */

/* Spacing: 2/4/6/8/10/12/14/16/18 px. Content pad: 18px desktop · 16px tablet · 12px phone.
   Radius: 0 everywhere — the language is square. "Rounding" is done with cut corners: */
.om-cut{clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px);}

/* Signature patterns */
.om-notmeasured{background:repeating-linear-gradient(45deg,transparent 0 5px,var(--hatch) 5px 6px);border:1px dashed var(--dash);color:var(--dim);}
.om-scanlines{background-image:repeating-linear-gradient(0deg,var(--scan) 0 1px,transparent 1px 4px);}
@keyframes omPulse{0%,100%{opacity:1;}50%{opacity:0.3;}}
.om-pulse{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:omPulse 2s infinite;}

/* Status chip recipe (mono 0.625–0.6875rem, weight 700, 1px border, padding 1px 6px / 3px 9px):
   IN EFFECT   color:--safe-ink  border:--safe-line
   ACCEPTED · NOT IN EFFECT  --warn-ink/--warn-line
   REFUSED · ATTEMPT KEPT    --danger-ink/--danger-line
   terminal (RESOLVED/MERGED/…) --dim/--line; terminal rows may sit at 62% opacity
   active filter chip: background:--accent color:--on-accent + .om-cut */

/* Focus & motion (applies at all widths) */
:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){.om-pulse{animation:none;}}

/* Touch floor: every interactive control ≥44px min-height at widths ≤1179px. */
