/* GENERATED by scripts/gen_legacy_theme.py from services/console/styles.css — do not edit by hand.
   UX U4: legacy panels on the light theme + palette bridge. Tokens only (no colour literals). */
/* Legacy variable bridge (all themes): styles.css panels follow the active --nv-* palette. */
:root[data-theme] {
  --bg: var(--nv-bg-0); --panel: var(--nv-bg-1); --panel-2: var(--nv-bg-2);
  --border: var(--nv-border); --border-2: var(--nv-border);
  --text: var(--nv-text-1); --muted: var(--nv-text-2);
  --accent: var(--nv-accent-text); --hud: var(--nv-bg-1);
  --live: var(--nv-label-live); --rep: var(--nv-label-representative); --warn: var(--nv-status-critical);
}

/* alarm text on tinted alarm backgrounds (WCAG 4.5:1) */
:root[data-theme] .hanul-band.HIGH, :root[data-theme] .badge.sit-lv-critical, :root[data-theme] .hanul-alert { color: var(--nv-status-critical-text); }

/* light-theme overrides of legacy colour literals */
:where(:root[data-theme="light"]) .xai-answer-link {
  background: var(--nv-bg-1);
}
:where(:root[data-theme="light"]) body.xai-page {
  background: var(--nv-bg-0);
}
:where(:root[data-theme="light"]) .xai-head {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .xai-error {
  color: var(--nv-status-critical);
}
:where(:root[data-theme="light"]) .xai-card h2 {
  color: var(--nv-text-1);
}
:where(:root[data-theme="light"]) .xai-md code {
  background: var(--nv-bg-2);
  border: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .xai-md pre {
  background: var(--nv-bg-2);
  border: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .xai-claim {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .xai-authority.basis {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .xai-authority.reference {
  color: var(--nv-text-1);
  border: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .xai-authority-trace {
  border: 1px solid var(--nv-border);
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .xai-authority-warning {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .xai-object-id {
  color: var(--nv-text-2);
}
:where(:root[data-theme="light"]) #xai-graph {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) #xai-graph line {
  stroke: var(--nv-text-3);
}
:where(:root[data-theme="light"]) #xai-graph .edge-pill {
  fill: var(--nv-text-inverse);
  stroke: var(--nv-text-3);
}
:where(:root[data-theme="light"]) #xai-graph text.edge-label {
  fill: var(--nv-text-2);
}
:where(:root[data-theme="light"]) #xai-graph text.node-label {
  fill: var(--nv-text-1);
}
:where(:root[data-theme="light"]) #xai-graph text.node-sub {
  fill: var(--nv-text-2);
}
:where(:root[data-theme="light"]) #xai-graph .legend text.lg-label {
  fill: var(--nv-text-2);
}
:where(:root[data-theme="light"]) #xai-graph .xai-node circle {
  fill: var(--nv-accent-strong);
  stroke: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) #xai-graph .xai-node.focus circle {
  fill: var(--nv-accent-strong);
  stroke: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) #xai-graph .xai-node.focus text.node-sub {
  fill: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) #xai-graph .xai-node.active circle {
  fill: var(--nv-status-good);
}
:where(:root[data-theme="light"]) #xai-graph .xai-node.reference circle {
  fill: var(--nv-text-inverse);
  stroke: var(--nv-text-3);
}
:where(:root[data-theme="light"]) .xai-card pre {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .xai-fallback {
  color: var(--nv-text-1);
}
:where(:root[data-theme="light"]) #map {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cesium-container {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .map-marker {
  border: 2px solid var(--nv-border);
}
:where(:root[data-theme="light"]) select,
:where(:root[data-theme="light"]) input,
:where(:root[data-theme="light"]) button {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) button {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .layer-acc-head:hover {
  background: var(--nv-bg-1);
}
:where(:root[data-theme="light"]) .layer-card {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .lp-reported {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) canvas#video {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .log {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .log .md code {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .log .md pre {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .hitl-card button.reject {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .evidence-section .evidence-panel {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .ev-item {
  border-bottom: 1px dashed var(--nv-border);
}
:where(:root[data-theme="light"]) .lic-pd {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .lic-cc0 {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .lic-ccby {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .lic-cite {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .lic-nord {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .equip-popover {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .id-cand {
  border-bottom: 1px dashed var(--nv-border);
}
:where(:root[data-theme="light"]) .eta-legend {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .view-btn {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .view-btn.active {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) #news-cap.on {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .pop-title.ev {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .view-overlay {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .deep-view {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .deep-tab {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .deep-tab.active {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .deep-file-btn {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) #deep-canvas {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .deep-chip {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .deep-heat {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .deep-list {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .deep-det2 .dbar {
  background: var(--nv-bg-1);
}
:where(:root[data-theme="light"]) .deep-ident.sk .skbar {
  background: var(--nv-bg-1);
}
:where(:root[data-theme="light"]) .lk-high {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .lk-medium {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .deep-equip {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .deep-context {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .m-obs-ev.ev-detection .m-obs-tag {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .m-obs-ev.ev-vlm_context .m-obs-tag {
  color: var(--nv-label-simulated);
}
:where(:root[data-theme="light"]) .m-obs-ev.ev-synthesis .m-obs-tag {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .pop-btn.on {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .nc-chip {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .news-cell {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .news-cap {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .caption-bar {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cap-row {
  border-bottom: 1px dashed var(--nv-border);
}
:where(:root[data-theme="light"]) .cap-hist-item {
  border-bottom: 1px dashed var(--nv-border);
}
:where(:root[data-theme="light"]) .cap-kw {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .layer-search {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .layer-legend {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .nfc-conn[data-state="up"] {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .nfc-conn[data-state="mock"] {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .nfc-conn[data-state="down"] {
  color: var(--nv-status-critical);
}
:where(:root[data-theme="light"]) .nfc-err {
  color: var(--nv-status-critical);
}
:where(:root[data-theme="light"]) .drone-track-hud {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .drone-track-hud .gv-status.on {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .fr-badge.warn {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .fr-badge.ok {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .fr-verdict {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .fr-ev-kind {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .layer-status.cnt-err {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .dp-rank {
  background: var(--nv-bg-2);
  color: var(--nv-text-1);
}
:where(:root[data-theme="light"]) .dp-gain {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .cop-kpi .kpi-chip {
  border: 1px solid var(--nv-border);
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cop-kpi .kpi-num {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .cop-kpi .kpi-label {
  color: var(--nv-text-2);
}
:where(:root[data-theme="light"]) .cop-kpi .kpi-label em {
  color: var(--nv-text-3);
}
:where(:root[data-theme="light"]) body.hanul-sit #hanul-briefing::after {
  color: var(--nv-text-3);
}
:where(:root[data-theme="light"]) #hanul-banner {
  background: var(--nv-bg-2);
  border: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) #hanul-banner .hb-main {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) #hanul-banner .hb-sub {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) #hanul-dim {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) #hanul-endcard {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) #hanul-endcard .hb-main {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) #hanul-endcard .hb-sub {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) #hanul-endcard .hb-sub b {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .op-council-row,
:where(:root[data-theme="light"]) .dec-council-row {
  color: var(--nv-text-1);
}
:where(:root[data-theme="light"]) .op-council-row .op-agent,
:where(:root[data-theme="light"]) .dec-council-row .dec-agent {
  color: var(--accent, var(--nv-status-warning));
}
:where(:root[data-theme="light"]) .op-council-row .badge,
:where(:root[data-theme="light"]) .dec-council-row .badge {
  color: var(--nv-text-inverse);
}
:where(:root[data-theme="light"]) .hanul-3d-legend .l3d-h.thr-h {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .hanul-3d-legend .l3d-h.def-h {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .kc-chip.kc-on {
  color: var(--nv-text-inverse);
}
:where(:root[data-theme="light"]) .kc-verdict.ok {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .hanul-gloss {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .dock-tab.active {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .sc-group-head:hover {
  background: var(--nv-bg-1);
}
:where(:root[data-theme="light"]) .sc-g-neon[data-state="up"] {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .sc-g-neon[data-state="mock"] {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .sc-g-neon[data-state="down"] {
  color: var(--nv-status-critical);
}
:where(:root[data-theme="light"]) .sc-turn-btn {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .onto-view {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .onto-elbl {
  stroke: var(--nv-text-inverse);
}
:where(:root[data-theme="light"]) .onto-info .role-rok {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .onto-sources .os-edge {
  border-top: 2px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .onto-sources .os-edge.isa {
  border-top-color: var(--nv-border);
}
:where(:root[data-theme="light"]) .onto-search .osr-ev .role-rok {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .intrusion-badge {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .intro {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .intro-word {
  color: var(--nv-text-1);
}
:where(:root[data-theme="light"]) .intro-skip {
  color: var(--nv-text-2);
}
:where(:root[data-theme="light"]) .conn-on {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .conn-warn {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .conn-off {
  color: var(--nv-text-3);
}
:where(:root[data-theme="light"]) .conn-name {
  color: var(--fg, var(--nv-text-1));
}
:where(:root[data-theme="light"]) .conn-meta {
  color: var(--nv-text-2);
}
:where(:root[data-theme="light"]) .cb-video {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cb-coa-req {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .cb-delib .badge {
  color: var(--nv-text-inverse);
}
:where(:root[data-theme="light"]) .cb-hitl-result.ok {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .cb-instr-row input {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cb-msg.md code {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cb-msg.md pre {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cb-msg.md a {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .cb-evd-row a {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .cb-role.basis {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .cb-badge.tool {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .commander-full {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cf-q-suggest {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cf-q-sug-tag {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .cf-decision {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cf-decision-head .cf-cnt {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .cf-hitl-badge {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .cf-hitl-toast {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cf-hitl-card {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cf-hitl-ok {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .cf-ans {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cf-fd-bubble {
  color: var(--nv-on-accent);
}
:where(:root[data-theme="light"]) .cf-fd-ans {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cf-src-link {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .cf-q-bar input {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cf-yp-map {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cf-yp-tabs {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .cf-row a {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .cf-hitl.ok .cf-hitl-st {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .cf-held {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .cf-lk-high {
  color: var(--nv-status-good);
}
:where(:root[data-theme="light"]) .strike-status .ss-row > span:first-child {
  color: var(--muted, var(--nv-text-2));
}
:where(:root[data-theme="light"]) .strike-status .ss-live {
  color: var(--nv-status-critical);
}
:where(:root[data-theme="light"]) .strike-status .ss-warn {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .mp-legend {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .mp-badge {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .draw-modes .mini-btn.active {
  background: var(--nv-bg-2);
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .draw-readout {
  border: 1px solid var(--nv-border);
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .draw-readout .dr-row {
  border-bottom: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .draw-readout .dr-total {
  color: var(--nv-status-warning);
}
:where(:root[data-theme="light"]) .draw-readout .dr-row.err {
  color: var(--nv-status-critical);
}
:where(:root[data-theme="light"]) .draw-list .dl-row {
  border-bottom: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .draw-list .dl-g {
  color: var(--nv-text-2);
  border: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .draw-list .dl-by {
  color: var(--nv-text-2);
}
:where(:root[data-theme="light"]) .modal-back {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .modal-card {
  background: var(--nv-bg-2);
  border: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .modal-head {
  border-bottom: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .modal-foot {
  border-top: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .mini-btn.primary {
  color: var(--nv-text-1);
}
:where(:root[data-theme="light"]) .nav-popup .pop-sep {
  border-top: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .nav-popup .pop-note {
  color: var(--nv-text-2);
}
:where(:root[data-theme="light"]) .topbar .tb-sub.tb-room {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .topbar .tb-people {
  background: var(--nv-bg-1);
  color: var(--nv-text-1);
}
:where(:root[data-theme="light"]) .topbar .tb-people:hover {
  background: var(--nv-bg-1);
}
:where(:root[data-theme="light"]) .oc-box {
  border: 1px solid var(--nv-border);
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .oc-box::-webkit-scrollbar-thumb {
  background: var(--nv-bg-2);
  border: 2px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .oc-box::-webkit-scrollbar-thumb:hover {
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .oc-tree ul {
  border-left: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .oc-tw {
  color: var(--nv-text-3);
}
:where(:root[data-theme="light"]) .oc-tw.leaf {
  color: var(--nv-text-3);
}
:where(:root[data-theme="light"]) .oc-desc {
  color: var(--nv-text-2);
}
:where(:root[data-theme="light"]) .oc-cnt {
  color: var(--nv-text-3);
}
:where(:root[data-theme="light"]) .oc-user code {
  color: var(--nv-text-2);
}
:where(:root[data-theme="light"]) .oc-tag {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .tb-people-list {
  background: var(--nv-bg-2);
  border: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .tb-people-list .pl-role {
  color: var(--nv-text-3);
}
:where(:root[data-theme="light"]) .tb-invite {
  color: var(--nv-text-1);
}
:where(:root[data-theme="light"]) .ops-tree ul {
  border-left: 1px solid var(--nv-border);
}
:where(:root[data-theme="light"]) .ops-tw {
  color: var(--nv-text-3);
}
:where(:root[data-theme="light"]) .ops-unit-name {
  color: var(--nv-text-1);
}
:where(:root[data-theme="light"]) .ops-unit-desc {
  color: var(--nv-text-2);
}
:where(:root[data-theme="light"]) .ops-unit-cnt {
  color: var(--nv-text-3);
}
:where(:root[data-theme="light"]) .room-card {
  border: 1px solid var(--nv-border);
  background: var(--nv-bg-2);
}
:where(:root[data-theme="light"]) .room-card .rc-name {
  color: var(--nv-accent-strong);
}
:where(:root[data-theme="light"]) .room-card .rc-row {
  color: var(--nv-text-2);
}
:where(:root[data-theme="light"]) .room-card .rc-none {
  color: var(--nv-text-2);
}
