/* Semantic emergency display tokens. FIELD is also the no-script light default. */
:root{
 color-scheme:light;
 --surface-page:#f3f6fa;--surface:#ffffff;--surface-raised:#edf2f8;--surface-command:#102944;
 --text:#142b45;--text-muted:#475c73;--border:#b4c3d3;--border-control:#6b8098;
 --link:#1259a1;--on-command:#f1f7fa;--primary-fill:#125db4;--on-primary:#ffffff;
 --sos-fill:#b21832;--on-sos:#ffffff;--severity-p0:#a80e29;--critical-bg:#fff0f1;--severity-p1:#684600;--severity-p2:#1259a1;
 --state-pending:#734b08;--state-pending-bg:#fff6e2;--state-offline:#734b08;--state-offline-bg:#fff6e2;
 --state-received:#075747;--state-received-bg:#e8f6ee;--urgency-bg:#fff5d9;
 --focus:#004ac7;--focus-ring:#ffffff;--touch-target:52px;--touch-sos:60px;--shadow:none;
 --map-road:#526e7a;--map-flood:#b7dce6;--map-warning:#805800;
 --ink:var(--text);--red:var(--sos-fill);--teal:var(--primary-fill);--line:var(--border);--white:var(--surface);
}
:root[data-display-mode="NIGHT"],:root[data-display-mode="SURVIVAL"]{
 color-scheme:dark;
 --surface-page:#080e14;--surface:#111c24;--surface-raised:#1a2a35;--surface-command:#0c151c;
 --text:#edf5f7;--text-muted:#b7cbd2;--border:#78939f;--border-control:#8ca7b4;
 --link:#8bd4ff;--on-command:#edf5f7;--primary-fill:#13467b;--on-primary:#f1f7ff;
 --sos-fill:#b21832;--on-sos:#ffffff;--severity-p0:#ffb7be;--critical-bg:#39171f;--severity-p1:#ffd48a;--severity-p2:#aad9ff;
 --state-pending:#ffd48a;--state-pending-bg:#352c18;--state-offline:#ffd48a;--state-offline-bg:#352c18;
 --state-received:#a2dfcb;--state-received-bg:#102e27;--urgency-bg:#352c18;
 --focus:#a8dcff;--focus-ring:#080e14;--map-road:#97b3bf;--map-flood:#174252;--map-warning:#ffd48a;
}
/* The media-query fallback covers absent/failed bootstrap, without overriding a manual mode. */
@media(prefers-color-scheme:dark){:root:not([data-display-mode]){
 color-scheme:dark;
 --surface-page:#080e14;--surface:#111c24;--surface-raised:#1a2a35;--surface-command:#0c151c;
 --text:#edf5f7;--text-muted:#b7cbd2;--border:#78939f;--border-control:#8ca7b4;
 --link:#8bd4ff;--on-command:#edf5f7;--primary-fill:#13467b;--on-primary:#f1f7ff;
 --sos-fill:#b21832;--on-sos:#ffffff;--severity-p0:#ffb7be;--critical-bg:#39171f;--severity-p1:#ffd48a;--severity-p2:#aad9ff;
 --state-pending:#ffd48a;--state-pending-bg:#352c18;--state-offline:#ffd48a;--state-offline-bg:#352c18;
 --state-received:#a2dfcb;--state-received-bg:#102e27;--urgency-bg:#352c18;
 --focus:#a8dcff;--focus-ring:#080e14;--map-road:#97b3bf;--map-flood:#174252;--map-warning:#ffd48a;
}}
:root[data-display-mode="SURVIVAL"]{--surface-page:#060a0b;--surface:#0b1417;--surface-raised:#122126;--text:#f2f8f9;--text-muted:#c5d6d9}
html,body{color:var(--text);background:var(--surface-page)}
a{color:var(--link)}
.topbar{flex-wrap:wrap;background:var(--surface-command);color:var(--on-command)}
.brand{flex:1 1 auto;color:var(--on-command)}
.brand small,.lab{color:var(--on-command)}
.lab{border-color:var(--border-control)}
.display-trigger{min-height:52px;min-width:84px;padding:8px;font-size:13px;background:var(--surface-command);color:var(--on-command);border:2px solid var(--border-control);border-radius:6px}
#display-dialog select,#display-dialog button{width:100%}
#display-description{font-weight:700;margin-top:16px}
.panel,.case-card,.route-card,.metric,.incident,.area-summary,.command-links a,.home-actions a,.nav,.action-dock,.action-dock a,.map-detail-card,.skip-link,dialog{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:none}
.panel,.route-card,.area-summary,.metric,.home-actions a,.command-links a,.map-detail-card,dialog{border-width:2px}
.citizen-nav{background:transparent}
small,.muted,.lab-note,.provenance,.quiet,.case-id,.eyebrow,.privacy-note,.case-data dt,.case-meta dt,.case-timeline li,.route-facts dt,footer{color:var(--text-muted)}
input:not([type=checkbox]):not([type=radio]),textarea,select{background:var(--surface);color:var(--text);border:2px solid var(--border-control)}
input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}
input[type=checkbox],input[type=radio]{accent-color:var(--primary-fill)}
button,.nav a,.case-actions a,.command-links a,.contact-list a,.source-link,summary{min-height:var(--touch-target);min-width:48px}
.secondary,.field-buttons button,.chips label{background:var(--surface-raised);color:var(--text);border:2px solid var(--border-control)}
.chips label{min-height:52px}
.chips label:has(input:checked){background:var(--surface-raised);color:var(--text);border-color:var(--link)}
.primary{background:var(--primary-fill);color:var(--on-primary)}
.danger-button,.sos-button,.home-actions .action-sos,.action-dock .action-sos,.action-dock #primary-sos,.action-dock #quick-save{background:var(--sos-fill);color:var(--on-sos);border:2px solid var(--severity-p0)}
.home-actions .action-sos small{color:var(--on-sos)}
.action-dock{border-top:2px solid var(--border)}
.action-dock .dock-emergency{color:var(--text)}
.notice,.success{background:var(--state-received-bg);color:var(--state-received);border:2px solid var(--state-received)}
.notice.waiting,.case-status,.route-warning,.fallback,.coverage-notice,.freshness{background:var(--state-pending-bg);color:var(--state-pending);border-color:var(--state-pending)}
.coverage-notice{background:transparent}
.case-status .state{color:var(--state-pending)}
.case-status.received{background:var(--state-received-bg);border-color:var(--state-received)}
.case-status.received .state{color:var(--state-received)}
.notice.offline,.error,.fallback.prominent,.offline-case-note,.metric-critical,.command-mode .case-card.unacknowledged,.case-card.unacknowledged,.freshness.STALE{background:var(--state-offline-bg);color:var(--state-offline);border-color:var(--state-offline)}
.board-alert{background:var(--state-offline-bg);color:var(--state-offline);border:3px solid var(--state-offline)}
.dock-status{color:var(--text-muted)}.dock-status.offline{color:var(--state-offline)}.dock-status.waiting{color:var(--state-pending)}
.stale{color:var(--state-pending)}
.badge{background:var(--surface-raised);color:var(--text);border:1px solid var(--border)}
.badge.P0{background:var(--sos-fill);color:var(--on-sos);border-color:var(--severity-p0)}
.badge.P1{background:var(--urgency-bg);color:var(--severity-p1);border-color:var(--severity-p1)}
.badge.P2{background:var(--surface-raised);color:var(--severity-p2);border-color:var(--severity-p2)}
.severity-badge{display:inline-flex;gap:5px;align-items:center;max-width:100%;white-space:normal}
.severity-badge.P0{border-width:3px;border-style:solid;border-radius:3px}
.severity-badge.P1{border-width:3px;border-style:double;border-radius:999px}
.severity-badge.P2{border-width:2px;border-style:dashed;border-radius:8px}
.case-card.P0,.column-heading.P0{border-color:var(--severity-p0)}.column-heading.P0{color:var(--severity-p0)}
.case-card.P1{border-left:6px double var(--severity-p1)}.case-card.P2{border-left:6px dashed var(--severity-p2)}
.timeline-symbol{background:var(--surface);border-color:var(--border-control)}
.case-timeline .done{color:var(--text)}
.route-card.recommended{border-color:var(--link)}
.incident.STALE{background:var(--surface-raised);border-color:var(--border)}
.incident.VERIFIED{border-color:var(--severity-p0)}
.map,#situation-map svg{background:var(--surface);border:2px solid var(--border)}
.map-label{fill:var(--text)}.map-road{stroke:var(--map-road)}.map-hazard{stroke:var(--severity-p0)}.map-flood{fill:var(--map-flood);stroke:var(--link);fill-opacity:1}.map-destination{fill:var(--surface);stroke:var(--text)}
:is(button,a,input,textarea,select,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:3px;box-shadow:0 0 0 3px var(--focus-ring)}
button:hover{filter:none;text-decoration:underline}
/* QR is an explicit emergency sharing action; preserve its scannable white substrate. */
dialog canvas{background:#fff}
:root[data-display-mode="SURVIVAL"] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
:root[data-display-mode="SURVIVAL"] :is(#situation-map,#road-map,#rescue-map){display:none}
@media(max-width:450px){.display-trigger{min-width:80px;padding:6px;font-size:12px}.topbar{gap:8px}.lab{font-size:11px}.home-actions a:first-child{font-size:21px}}
@media(forced-colors:active){.severity-badge,.notice,.case-status,.action-sos{border-color:ButtonText}.display-trigger{color:ButtonText;background:ButtonFace}}

.error,.metric-critical,.board-alert,.command-mode .case-card.unacknowledged{background:var(--critical-bg);color:var(--severity-p0);border-color:var(--severity-p0)}
