/* signal-tokens 1.6.0 body-sha256:b1f99bac9f6a6d5f171205724c49d461988243d981c628e944e6c08e860b2bfe */
/* GENERATED from tokens.json by build_tokens.py - do not edit by hand. */
:root {
  /* Brand - theme-invariant */
  --signal-navy: #0D1B3D;
  --signal-red: #E63946;
  --white: #FFFFFF;
  --success: #22C55E;
  --warning: #F59E0B;
  /* Registered domain colors - data meaning only, see tokens.json */
  --schedule-unit-a: #2563EB;
  --schedule-unit-b: #7C3AED;
  --schedule-unit-c: #16A34A;
  --schedule-unit-d: #0891B2;
  --watchdesk-ems: #1976D2;
  --call-fire: #D8303D;
  --call-fire-ink: #FFFFFF;
  --call-ems: #1976D2;
  --call-ems-ink: #FFFFFF;
  --call-other: #0D1B3D;
  --call-other-ink: #FFFFFF;
  /* Type */
  --font-sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --weight-body: 400;
  --weight-label: 500;
  --weight-section: 600;
  --weight-heading: 700;
  --leading-tight: 1.2;
  --leading-body: 1.45;
  --leading-prose: 1.6;
  --text-meta: 0.75rem;
  --text-secondary: 0.875rem;
  --text-body: 1rem;
  --text-h3: 1.25rem;
  --text-h2: 1.5rem;
  --text-h1: 2rem;
  /* Space (key = px / 4), radius, size, motion, breakpoints (for JS; CSS media
     queries cannot read custom properties) */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --radius-chip: 4px;
  --radius-control: 8px;
  --radius-panel: 12px;
  --radius-pill: 999px;
  --size-target-min: 44px;
  --size-target-truck: 56px;
  --size-target-station: 64px;
  --size-rail-height: 56px;
  --size-mark-header-min: 32px;
  --size-mark-header-max: 42px;
  --size-mark-tile-min: 34px;
  --size-mark-tile-max: 48px;
  --size-mark-hero-min: 96px;
  --size-mark-hero-max: 140px;
  --motion-fast: 120ms;
  --motion-base: 200ms;
  --motion-slow: 320ms;
  --motion-max: 400ms;
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
  --bp-phone-max: 430px;
  --bp-tablet-min: 768px;
  --bp-desk-min: 1024px;
  --bp-wide-min: 1440px;
  /* Legacy off-scale values - migration debt, see tokens.json legacy */
  --space-5: 20px;
  --space-10: 40px;
  --radius-card: 14px;
  --radius-btn: 10px;
  /* Light theme (default when the OS states no preference) */
  --bg: #EEF1F4;
  --surface: #F8FAFC;
  --raise: #FFFFFF;
  --border: #DEE3E9;
  --border-control: #7E8692;
  --text: #15223F;
  --text-muted: #59616E;
  --accent: #B3212C;
  --accent-fill: #B3212C;
  --accent-fill-hover: #961B25;
  --on-accent: #FFFFFF;
  --selected-fill: #0D1B3D;
  --on-selected: #FFFFFF;
  --success-fill: #15803D;
  --success-ink: #136B34;
  --warning-ink: #8A5200;
  --danger-ink: #B3212C;
  --navy-ink: #0D1B3D;
  --focus-ring: #B3212C;
  --rail: #0D1B3D;
  --on-rail: #FFFFFF;
  --on-rail-muted: #CACDD4;
  --rail-keyline: #E63946;
  --scrim: rgba(13, 27, 61, 0.45);
  --row-hover: #E9EDF1;
  --success-tint: #E5F4EA;
  --warning-tint: #FCF1DC;
  --danger-tint: #FBE9EA;
  --info-tint: #E7ECF5;
  --focus-ring-on-rail: #FFFFFF;
  --shadow-panel: 0 1px 2px rgba(13, 27, 61, 0.06);
  --shadow-overlay: 0 1px 2px rgba(13, 27, 61, 0.08), 0 12px 32px -8px rgba(13, 27, 61, 0.22);
  color-scheme: light;
}

/* Legacy aliases - migration debt, delete per product when unused. Declared
   on every theme scope: a var() resolves where it is declared, so an alias
   set only on :root would carry the light value into a .theme-dark subtree. */
:root, .theme-dark, .theme-light, .theme-signal-red, .theme-signal-navy, .theme-learn {
  --bg-muted: var(--bg);
  --surface-raised: var(--raise);
  --ink: var(--text);
  --muted: var(--text-muted);
  --text-dim: var(--text-muted);
  --line: var(--border);
  --border-strong: var(--border-control);
  --danger: var(--accent);
  --slate: var(--text-muted);
  --ash: var(--border);
}

/* Dark - the primary design target. OS preference unless the page pins one of the four themes. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="dark"]):not([data-theme="light"]):not([data-theme="signal-red"]):not([data-theme="signal-navy"]):not([data-theme="learn"]) {
    --bg: #16181C;
    --surface: #1E2127;
    --raise: #262A31;
    --border: #333842;
    --border-control: #737B88;
    --text: #EDEFF3;
    --text-muted: #99A1AD;
    --accent: #FF5555;
    --accent-fill: #D8303D;
    --accent-fill-hover: #C42A36;
    --on-accent: #FFFFFF;
    --selected-fill: #FF5555;
    --on-selected: #16181C;
    --success-fill: #15803D;
    --success-ink: #4ADE80;
    --warning-ink: #FBBF24;
    --danger-ink: #FF5555;
    --navy-ink: #AFC4EC;
    --focus-ring: #FF5555;
    --rail: #0D1B3D;
    --on-rail: #FFFFFF;
    --on-rail-muted: #CACDD4;
    --rail-keyline: #E63946;
    --scrim: rgba(0, 0, 0, 0.6);
    --row-hover: #23262C;
    --success-tint: #1F2D25;
    --warning-tint: #2E2A1F;
    --danger-tint: #33232A;
    --info-tint: #1E2433;
    --focus-ring-on-rail: #FFFFFF;
    --shadow-panel: 0 1px 2px rgba(0, 0, 0, 0.45);
    --shadow-overlay: 0 1px 2px rgba(0, 0, 0, 0.45), 0 12px 32px -8px rgba(0, 0, 0, 0.6);
    color-scheme: dark;
  }
}
/* Explicit toggle / pinned surfaces (kiosk boards, iPad command) */
:root[data-theme="dark"], .theme-dark {
  --bg: #16181C;
  --surface: #1E2127;
  --raise: #262A31;
  --border: #333842;
  --border-control: #737B88;
  --text: #EDEFF3;
  --text-muted: #99A1AD;
  --accent: #FF5555;
  --accent-fill: #D8303D;
  --accent-fill-hover: #C42A36;
  --on-accent: #FFFFFF;
  --selected-fill: #FF5555;
  --on-selected: #16181C;
  --success-fill: #15803D;
  --success-ink: #4ADE80;
  --warning-ink: #FBBF24;
  --danger-ink: #FF5555;
  --navy-ink: #AFC4EC;
  --focus-ring: #FF5555;
  --rail: #0D1B3D;
  --on-rail: #FFFFFF;
  --on-rail-muted: #CACDD4;
  --rail-keyline: #E63946;
  --scrim: rgba(0, 0, 0, 0.6);
  --row-hover: #23262C;
  --success-tint: #1F2D25;
  --warning-tint: #2E2A1F;
  --danger-tint: #33232A;
  --info-tint: #1E2433;
  --focus-ring-on-rail: #FFFFFF;
  --shadow-panel: 0 1px 2px rgba(0, 0, 0, 0.45);
  --shadow-overlay: 0 1px 2px rgba(0, 0, 0, 0.45), 0 12px 32px -8px rgba(0, 0, 0, 0.6);
  color-scheme: dark;
}
:root[data-theme="light"], .theme-light {
  --bg: #EEF1F4;
  --surface: #F8FAFC;
  --raise: #FFFFFF;
  --border: #DEE3E9;
  --border-control: #7E8692;
  --text: #15223F;
  --text-muted: #59616E;
  --accent: #B3212C;
  --accent-fill: #B3212C;
  --accent-fill-hover: #961B25;
  --on-accent: #FFFFFF;
  --selected-fill: #0D1B3D;
  --on-selected: #FFFFFF;
  --success-fill: #15803D;
  --success-ink: #136B34;
  --warning-ink: #8A5200;
  --danger-ink: #B3212C;
  --navy-ink: #0D1B3D;
  --focus-ring: #B3212C;
  --rail: #0D1B3D;
  --on-rail: #FFFFFF;
  --on-rail-muted: #CACDD4;
  --rail-keyline: #E63946;
  --scrim: rgba(13, 27, 61, 0.45);
  --row-hover: #E9EDF1;
  --success-tint: #E5F4EA;
  --warning-tint: #FCF1DC;
  --danger-tint: #FBE9EA;
  --info-tint: #E7ECF5;
  --focus-ring-on-rail: #FFFFFF;
  --shadow-panel: 0 1px 2px rgba(13, 27, 61, 0.06);
  --shadow-overlay: 0 1px 2px rgba(13, 27, 61, 0.08), 0 12px 32px -8px rgba(13, 27, 61, 0.22);
  color-scheme: light;
}
:root[data-theme="signal-red"], .theme-signal-red {
  --bg: #170609;
  --surface: #200A0E;
  --raise: #2A0E13;
  --border: #4A2228;
  --border-control: #9A8084;
  --text: #FFF5F5;
  --text-muted: #C9BDBE;
  --accent: #FF5555;
  --accent-fill: #C6313C;
  --accent-fill-hover: #B3212C;
  --on-accent: #FFFFFF;
  --selected-fill: #FF5555;
  --on-selected: #16181C;
  --success-fill: #15803D;
  --success-ink: #4ADE80;
  --warning-ink: #FDE68A;
  --danger-ink: #FF5555;
  --navy-ink: #AFC4EC;
  --focus-ring: #FF5555;
  --rail: #0D1B3D;
  --on-rail: #FFFFFF;
  --on-rail-muted: #CACDD4;
  --rail-keyline: #E63946;
  --scrim: rgba(0, 0, 0, 0.6);
  --row-hover: #331218;
  --success-tint: #1F2D25;
  --warning-tint: #2E2A1F;
  --danger-tint: #3D1219;
  --info-tint: #241B2C;
  --focus-ring-on-rail: #FFFFFF;
  --shadow-panel: 0 1px 2px rgba(0, 0, 0, 0.45);
  --shadow-overlay: 0 1px 2px rgba(0, 0, 0, 0.45), 0 12px 32px -8px rgba(0, 0, 0, 0.6);
  color-scheme: dark;
}
:root[data-theme="signal-navy"], .theme-signal-navy {
  --bg: #081126;
  --surface: #0E1830;
  --raise: #141F3A;
  --border: #2A3753;
  --border-control: #7C879B;
  --text: #EDEFF3;
  --text-muted: #AFB8C8;
  --accent: #FF5555;
  --accent-fill: #C6313C;
  --accent-fill-hover: #B3212C;
  --on-accent: #FFFFFF;
  --selected-fill: #FF5555;
  --on-selected: #16181C;
  --success-fill: #15803D;
  --success-ink: #4ADE80;
  --warning-ink: #FBBF24;
  --danger-ink: #FF5555;
  --navy-ink: #AFC4EC;
  --focus-ring: #FF5555;
  --rail: #0D1B3D;
  --on-rail: #FFFFFF;
  --on-rail-muted: #CACDD4;
  --rail-keyline: #E63946;
  --scrim: rgba(0, 0, 0, 0.6);
  --row-hover: #1A2643;
  --success-tint: #1F2D25;
  --warning-tint: #2E2A1F;
  --danger-tint: #2E1A26;
  --info-tint: #16264A;
  --focus-ring-on-rail: #FFFFFF;
  --shadow-panel: 0 1px 2px rgba(0, 0, 0, 0.45);
  --shadow-overlay: 0 1px 2px rgba(0, 0, 0, 0.45), 0 12px 32px -8px rgba(0, 0, 0, 0.6);
  color-scheme: dark;
}
:root[data-theme="learn"], .theme-learn {
  --bg: #0E0E10;
  --surface: #17171A;
  --raise: #202024;
  --border: #36363B;
  --border-control: #85858D;
  --text: #F7F7F8;
  --text-muted: #A9A9B1;
  --accent: #FF5555;
  --accent-fill: #D8303D;
  --accent-fill-hover: #C42A36;
  --on-accent: #FFFFFF;
  --selected-fill: #FF5555;
  --on-selected: #0E0E10;
  --success-fill: #15803D;
  --success-ink: #4ADE80;
  --warning-ink: #FBBF24;
  --danger-ink: #FF5555;
  --navy-ink: #AFC4EC;
  --focus-ring: #FF5555;
  --rail: #000000;
  --on-rail: #FFFFFF;
  --on-rail-muted: #CACDD4;
  --rail-keyline: #E63946;
  --scrim: rgba(0, 0, 0, 0.7);
  --row-hover: #1D1D21;
  --success-tint: #16241B;
  --warning-tint: #272114;
  --danger-tint: #301316;
  --info-tint: #1D1D22;
  --focus-ring-on-rail: #FFFFFF;
  --shadow-panel: 0 1px 2px rgba(0, 0, 0, 0.45);
  --shadow-overlay: 0 1px 2px rgba(0, 0, 0, 0.45), 0 12px 32px -8px rgba(0, 0, 0, 0.6);
  color-scheme: dark;
}

/* Station scale - only under [data-mode="station"] (docs/RULES.md TYPE-02) */
[data-mode="station"] {
  --text-meta: 1.125rem;
  --text-secondary: 1.375rem;
  --text-body: 1.75rem;
  --text-h3: 2rem;
  --text-h2: 2.5rem;
  --text-h1: 3.5rem;
  --text-station-lg: 4.5rem;
  --text-station-xl: 6rem;
  --text-station-2xl: 9rem;
  --size-target-min: var(--size-target-station);
}
/* Truck scale - only under [data-mode="truck"] (docs/RULES.md TYPE-02) */
[data-mode="truck"] {
  --text-meta: 1rem;
  --text-secondary: 1.125rem;
  --text-body: 1.375rem;
  --text-h3: 1.75rem;
  --text-h2: 2rem;
  --text-h1: 2.5rem;
  --text-station-lg: 3.5rem;
  --text-station-xl: 4.5rem;
  --text-station-2xl: 6rem;
  --size-target-min: var(--size-target-truck);
}
/* Website scale - only under [data-profile="website"] (docs/RULES.md TYPE-02) */
[data-profile="website"] {
  --text-meta: 0.875rem;
  --text-secondary: 1rem;
  --text-body: 1.125rem;
  --text-h3: 1.5rem;
  --text-h2: 2rem;
  --text-h1: 3rem;
  --text-display: 4rem;
}

@media (prefers-reduced-motion: reduce) {
  :root { --motion-fast: 0ms; --motion-base: 0ms; --motion-slow: 0ms; }
}
