/* dist/v2-theme.css — SmartAccess Flow v2 theme (BUILD_SPEC §2.8). Every rule is scoped under html[data-v2];
   ?v2=off never sets that attribute, so this file is inert there. Dark rules: html[data-v2][data-theme=dark]. */

/* ---------- 1. Tokens ---------- */
html[data-v2]{
  --muted:#66717f;                       /* AA fix for v1's #798593, only when v2 is on */
  --v2-surface:#ffffff;--v2-surface-2:#f0f4f7;--v2-surface-3:#e6ecf1;
  --v2-nav-2:#1e3047;--v2-nav-line:#314058;
  --v2-line-strong:#cfd8e0;--v2-ink-2:#3f4f63;
  --v2-ok:#2e8d77;--v2-warn:#d5a342;--v2-warn-ink:#8a6414;--v2-hot:#e67d56;--v2-alert:#d43f3f;
  --v2-ok-soft:#eaf6f0;--v2-warn-soft:#fdf3df;--v2-hot-soft:#fbe9e2;--v2-ghost:#9b7bd6;--v2-partner:#5b6fb5;
  --v2-focus:#4aa998;--v2-stage:#101d2b;--v2-stage-edge:#223447;--v2-map-bg:#edf2f5;
  --v2-shadow-1:0 1px 2px #10203014;--v2-shadow-2:0 12px 40px #10203026;--v2-glow:0 0 0 1px #168e8055,0 0 18px #168e8033;
  --v2-d-fast:150ms;--v2-d-base:220ms;--v2-d-slow:400ms;--v2-d-cine:700ms;
  --v2-e-out:cubic-bezier(.16,1,.3,1);--v2-e-spring:linear(0,.35 18%,1.06 48%,.98 72%,1);--v2-stagger:40ms;--v2-r:12px;
  --v2-z-map-under:0;--v2-z-map-over:2;--v2-z-map-dom:3;--v2-z-full:35;--v2-z-feed:40;--v2-z-tip:60;--v2-z-palette:70;--v2-z-keys:75;--v2-z-story:80;
}
html[data-v2][data-theme=dark]{
  color-scheme:dark;
  --bg:#0b1220;--nav:#0a1020;--line:#223048;--ink:#e6edf5;--muted:#8b9bb0;
  --teal:#2bb5a0;--mint:#43dec1;--blue:#5b9cf6;--coral:#ff7a59;--amber:#f2b84b;
  --v2-surface:#111a2b;--v2-surface-2:#172338;--v2-surface-3:#1e2c45;
  --v2-nav-2:#131d33;--v2-nav-line:#22304a;
  --v2-line-strong:#2f4160;--v2-ink-2:#b7c4d6;
  --v2-ok:#4ad6a6;--v2-warn:#f2b84b;--v2-warn-ink:#f2b84b;--v2-hot:#ff7a59;--v2-alert:#ff5c4d;
  --v2-ok-soft:#12352f;--v2-warn-soft:#3a2e12;--v2-hot-soft:#3d1f1a;--v2-ghost:#b49af0;--v2-partner:#8fa3e6;
  --v2-focus:#7ee8d0;--v2-stage:#101d2b;--v2-stage-edge:#1b2a44;--v2-map-bg:#0d1626;
  --v2-shadow-1:0 1px 2px #0008,0 0 0 1px #ffffff08;--v2-shadow-2:0 12px 40px #000a;--v2-glow:0 0 0 1px #43dec155,0 0 18px #43dec133;
}
:root[data-motion=off] *{transition:none!important;animation:none!important}

/* ---------- 2. Layout additions (both themes) ---------- */
html[data-v2] body{background:var(--bg);color:var(--ink)}
html[data-v2] #nav{overflow-y:auto;min-height:0;flex:1 1 auto;scrollbar-width:none;position:relative;padding-bottom:6px}
html[data-v2] #nav::-webkit-scrollbar{display:none}
html[data-v2] #nav[data-v2-more]::after{content:'';position:sticky;bottom:-6px;display:block;flex:0 0 30px;margin-top:-30px;background:linear-gradient(transparent,var(--nav));pointer-events:none}
html[data-v2] .v2-nav-group{margin:16px 10px 8px;font-size:10px;letter-spacing:1.6px;color:#76869b}
html[data-v2] .sidebar-bottom{flex:0 0 auto}
html[data-v2] .top-actions{gap:12px}
html[data-v2] #v2TopActions{display:inline-flex;gap:8px;align-items:center}
html[data-v2] .v2-top{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--v2-surface);color:var(--v2-ink-2);display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;position:relative;padding:0;cursor:pointer;transition:background var(--v2-d-fast),color var(--v2-d-fast),border-color var(--v2-d-fast)}
html[data-v2] .v2-top:hover{background:var(--v2-surface-2);color:var(--ink)}
html[data-v2] .v2-top[aria-pressed=true]{background:var(--v2-ok-soft);color:var(--v2-ok);border-color:var(--teal)}
html[data-v2] .v2-top svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
html[data-v2] .v2-top .v2-top-count{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--coral);color:#fff;font-size:9.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
html[data-v2] .map-stage{isolation:isolate;background:var(--v2-map-bg)}
html[data-v2] .map-stage>#campus{position:relative;z-index:1}
html[data-v2] #v2MapUnder{z-index:var(--v2-z-map-under)}
html[data-v2] #v2MapOver{z-index:var(--v2-z-map-over)}
html[data-v2] .map-overlay-top,html[data-v2] .map-overlay-bottom{z-index:var(--v2-z-map-dom)}
html[data-v2] #campus:focus-visible{outline:3px solid var(--v2-focus);outline-offset:-3px}
html[data-v2] #v2MapKeyExt{display:contents}
html[data-v2] #v2MapKeyExt:empty{display:none}
html[data-v2] .v2-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:-1px}
html[data-v2] .v2-veil{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:0;background:var(--bg);transition:opacity var(--v2-d-base) linear}
html[data-v2] .v2-veil[data-v2-on]{opacity:1}
html[data-v2] .v2-dock{position:fixed;inset:auto 0 0 0;padding:0 18px calc(18px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;pointer-events:none;z-index:var(--v2-z-feed)}
html[data-v2] .v2-dock>*{pointer-events:none;min-width:0}
html[data-v2] .v2-dock>* > *{pointer-events:auto}
html[data-v2] .v2-dock-left{justify-self:start}
html[data-v2] .v2-dock-right{justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
html[data-v2] .v2-tip{position:fixed;left:0;top:0;z-index:var(--v2-z-tip);background:var(--v2-surface);color:var(--ink);border:1px solid var(--v2-line-strong);border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.45;box-shadow:var(--v2-shadow-2);pointer-events:none;max-width:280px;opacity:0;transform:translateY(4px);transition:opacity var(--v2-d-fast),transform var(--v2-d-fast)}
html[data-v2] .v2-tip[data-v2-on]{opacity:1;transform:none}
html[data-v2] .v2-tip[data-v2-pinned]{pointer-events:auto;border-color:var(--teal)}
html[data-v2] .v2-tip strong{color:var(--ink)}
html[data-v2] .v2-tip small{color:var(--muted);font-size:11px}
html[data-v2] .v2-tip .v2-spark{display:block;margin-top:6px}
@media(min-width:1440px){html[data-v2] body.v2-feed-open main{padding-right:380px}}
@media(max-width:960px){html[data-v2] .v2-nav-group{font-size:0;height:1px;margin:8px 6px;background:var(--v2-nav-line)}}
@media(max-width:740px){
  html[data-v2] .v2-nav-group{display:none}
  html[data-v2] #nav{overflow-y:visible;padding-bottom:0}
  html[data-v2] #nav[data-v2-more]::after{display:none}
  html[data-v2] .v2-top:not(#v2ShellMore){display:none}
  html[data-v2] .v2-dock{padding:0 12px calc(12px + env(safe-area-inset-bottom))}
  html[data-v2] .v2-dock-left{display:none}
  html[data-v2] .v2-grid-2,html[data-v2] .v2-grid-3{grid-template-columns:minmax(0,1fr)}
  html[data-v2] .v2-toolbar{padding:10px 14px}
  html[data-v2] .v2-card-body{padding:14px}
  html[data-v2] #workPanel>.v2-honest{padding:10px 12px}
}
@media(pointer:coarse){html[data-v2] .v2-top,html[data-v2] .v2-chip{min-height:44px;min-width:44px}}

/* ---------- 3. Shared components ---------- */
html[data-v2] .v2-badge{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;letter-spacing:1.1px;font-weight:650;text-transform:uppercase;padding:3px 7px;border-radius:4px;border:1px solid var(--line);color:var(--v2-ok);background:var(--v2-ok-soft);white-space:nowrap;line-height:1.2}
html[data-v2] .v2-badge-today{color:var(--v2-ok);background:var(--v2-ok-soft);border-color:transparent}
html[data-v2] .v2-badge-latent{color:var(--v2-warn-ink);background:var(--v2-warn-soft);border-color:transparent}
html[data-v2] .v2-badge-partner{color:var(--v2-partner);background:transparent;border-color:var(--v2-partner)}
html[data-v2] .v2-honest{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;font-size:12px;line-height:1.45;color:var(--muted)}
html[data-v2] .v2-honest-text{flex:1 1 240px;min-width:0}
html[data-v2] #workPanel>.v2-honest,html[data-v2] .v2-honest[data-v2-top]{padding:11px 16px;border:1px dashed var(--v2-line-strong);border-radius:10px;background:var(--v2-surface-2);margin-bottom:14px}
html[data-v2] .v2-card .v2-honest{padding:10px 20px;border-top:1px solid var(--line);background:var(--v2-surface-2)}
html[data-v2] .v2-card>.v2-honest:first-child{border-top:0;border-bottom:1px solid var(--line)}
html[data-v2] .v2-chip-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:11.5px;color:var(--muted);padding:6px 4px 16px;align-items:center}
html[data-v2] .v2-chip-legend span{display:inline-flex;align-items:center;gap:7px}
html[data-v2] .panel.v2-card{margin-bottom:18px;display:flex;flex-direction:column;min-width:0}
html[data-v2] .v2-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
html[data-v2] .v2-card-head h2{font-size:16px}
html[data-v2] .v2-card-head p{font-size:12.5px;margin-top:3px}
html[data-v2] .v2-card-body{padding:18px 20px}
html[data-v2] .v2-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--v2-surface-2);font-size:12.5px}
html[data-v2] .v2-toolbar label{display:inline-flex;align-items:center;gap:6px;color:var(--v2-ink-2)}
html[data-v2] .v2-chip{border:1px solid var(--line);background:var(--v2-surface);border-radius:999px;padding:6px 12px;font-size:12px;color:var(--ink);display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:background var(--v2-d-fast),border-color var(--v2-d-fast),color var(--v2-d-fast)}
html[data-v2] .v2-chip:hover{border-color:var(--v2-line-strong);background:var(--v2-surface-2)}
html[data-v2] .v2-chip.active,html[data-v2] .v2-chip[aria-pressed=true],html[data-v2] .v2-chip[aria-checked=true]{background:var(--teal);border-color:var(--teal);color:#fff}
html[data-v2] .v2-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
html[data-v2] .v2-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
html[data-v2] .v2-kpi{position:relative;background:var(--v2-surface);border:1px solid var(--line);border-radius:var(--v2-r);padding:14px 16px;min-width:0;display:flex;flex-direction:column;gap:4px;box-shadow:var(--v2-shadow-1)}
html[data-v2] .v2-kpi-label{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);font-weight:600}
html[data-v2] .v2-kpi-value{font-family:Manrope,system-ui,sans-serif;font-weight:750;font-size:26px;letter-spacing:-.9px;line-height:1.15;color:var(--ink);font-variant-numeric:tabular-nums}
html[data-v2] .v2-kpi-value em{font-style:normal;font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0;margin-left:3px}
html[data-v2] .v2-kpi-note{font-size:11.5px;color:var(--muted);line-height:1.4}
html[data-v2] .v2-kpi-ring{position:absolute;right:12px;top:12px;width:40px;height:40px}
html[data-v2] .v2-kpi-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
html[data-v2] .v2-kpi-ring .v2-ring-track{fill:none;stroke:var(--v2-surface-3);stroke-width:4}
html[data-v2] .v2-kpi-ring .v2-ring-value{fill:none;stroke:var(--teal);stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset var(--v2-d-slow) var(--v2-e-out)}
html[data-v2] .v2-kpi-ring .v2-ring-text{font-size:9px;font-weight:650;fill:var(--v2-ink-2);transform:rotate(90deg);transform-origin:50% 50%}
html[data-v2] .v2-spark{display:block;width:100%;height:36px;overflow:visible}
html[data-v2] .v2-spark path.v2-spark-line{fill:none;stroke:var(--teal);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
html[data-v2] .v2-spark path.v2-spark-area{fill:var(--teal);opacity:.12}
html[data-v2] .v2-spark circle{fill:var(--teal)}
html[data-v2] .v2-sign{font-family:Manrope,system-ui,sans-serif;font-weight:800;letter-spacing:-.5px;background:var(--v2-stage);color:var(--mint);border:1px solid var(--v2-stage-edge);border-radius:10px;padding:14px 18px;font-size:28px;font-variant-numeric:tabular-nums;line-height:1.1;display:flex;align-items:baseline;gap:10px;box-shadow:var(--v2-glow)}
html[data-v2] .v2-sign small{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:#89a3b9;font-weight:600}
html[data-v2] .v2-range{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:var(--v2-surface-3);accent-color:var(--teal);outline:none;margin:10px 0}
html[data-v2] .v2-range::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--teal);border:2px solid var(--v2-surface);box-shadow:var(--v2-shadow-1);cursor:grab}
html[data-v2] .v2-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--teal);border:2px solid var(--v2-surface);cursor:grab}
html[data-v2] .v2-handle{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--teal);border:2px solid var(--v2-surface);box-shadow:var(--v2-shadow-1);cursor:grab;touch-action:none;transform:translate(-50%,-50%)}
html[data-v2] .v2-handle:active{cursor:grabbing}
html[data-v2] .v2-table{width:100%;border-collapse:collapse;font-size:12.5px}
html[data-v2] .v2-table th{text-align:left;font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);background:var(--v2-surface-2);padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
html[data-v2] .v2-table td{padding:9px 12px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle}
html[data-v2] .v2-table td small{color:var(--muted);display:block;font-size:11px}
html[data-v2] .v2-table tr:last-child td{border-bottom:0}
html[data-v2] .v2-table tr.active td,html[data-v2] .v2-table tr.selected td{background:var(--v2-surface-2)}
html[data-v2] .v2-table .v2-num{text-align:right;font-variant-numeric:tabular-nums}
html[data-v2] .v2-delta{transition:color var(--v2-d-base)}
html[data-v2] .v2-delta.up{animation:v2FlashUp var(--v2-d-slow) var(--v2-e-out) both}
html[data-v2] .v2-delta.down{animation:v2FlashDown var(--v2-d-slow) var(--v2-e-out) both}
html[data-v2] .v2-count{font-variant-numeric:tabular-nums}
html[data-v2] .v2-view-enter>.panel,html[data-v2] .v2-view-enter .work-card,html[data-v2] .v2-view-enter .stat{animation:v2Enter var(--v2-d-base) var(--v2-e-out) both;animation-delay:calc(var(--v2-i,0)*var(--v2-stagger))}
html[data-v2] .v2-view-enter>.v2-honest{animation:v2Enter var(--v2-d-base) var(--v2-e-out) both}
@keyframes v2Enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes v2FlashUp{0%{color:var(--v2-ok)}100%{color:inherit}}
@keyframes v2FlashDown{0%{color:var(--v2-hot)}100%{color:inherit}}
@keyframes v2Pulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(2.2);opacity:0}}
html[data-v2] .v2-muted{color:var(--muted)}
html[data-v2] .v2-ok{color:var(--v2-ok)}
html[data-v2] .v2-warn{color:var(--v2-warn-ink)}
html[data-v2] .v2-hot{color:var(--v2-hot)}
html[data-v2] .v2-stub{padding:22px 20px;color:var(--v2-ink-2);font-size:13px;line-height:1.6}
html[data-v2] .v2-stub h2{font-size:15px;margin-bottom:6px;color:var(--ink)}

/* ---------- 4. Dark theme: v1 surfaces that hard-code light colours in styles.css ---------- */
html[data-v2][data-theme=dark] .topbar{background:var(--v2-surface)}
html[data-v2][data-theme=dark] .breadcrumb{color:var(--muted)}
html[data-v2][data-theme=dark] .breadcrumb strong{color:var(--ink)}
html[data-v2][data-theme=dark] .breadcrumb span{color:var(--v2-line-strong)}
html[data-v2][data-theme=dark] .demo-badge{border:1px solid transparent;color:var(--v2-ok);background:var(--v2-ok-soft)}
html[data-v2][data-theme=dark] .eyebrow{color:var(--muted)}
html[data-v2][data-theme=dark] .button{background:var(--v2-surface);border:1px solid var(--v2-line-strong);color:var(--ink)}
html[data-v2][data-theme=dark] .button:hover{filter:brightness(1.12)}
html[data-v2][data-theme=dark] .button.dark{background:var(--v2-nav-2);border-color:var(--v2-nav-line);color:#fff}
html[data-v2][data-theme=dark] .button.teal{background:var(--v2-ok-soft);color:var(--v2-ok);border-color:transparent}
html[data-v2][data-theme=dark] .button.active{background:var(--v2-ok-soft);color:var(--v2-ok);border-color:var(--teal)}
html[data-v2][data-theme=dark] .icon-button{background:var(--v2-surface);border-color:var(--line);color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .topbar .icon-button{color:var(--muted);background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .stat{background:var(--v2-surface)}
html[data-v2][data-theme=dark] .stat-top,html[data-v2][data-theme=dark] .stat-symbol,html[data-v2][data-theme=dark] .stat-bottom{color:var(--muted)}
html[data-v2][data-theme=dark] .stat-value{color:var(--ink)}
html[data-v2][data-theme=dark] .stat-value em{color:var(--muted)}
html[data-v2][data-theme=dark] .stat small,html[data-v2][data-theme=dark] .big-value small{color:var(--v2-ink-2)!important}
html[data-v2][data-theme=dark] .positive{color:var(--v2-ok)}
html[data-v2][data-theme=dark] .mode-tabs{background:var(--v2-surface-3)}
html[data-v2][data-theme=dark] .mode-tabs button{color:var(--muted)}
html[data-v2][data-theme=dark] .mode-tabs button.active{background:var(--v2-surface);color:var(--ink);box-shadow:0 1px 4px #0006}
html[data-v2][data-theme=dark] select,html[data-v2][data-theme=dark] input:not([type=range]):not([type=checkbox]):not([type=radio]),html[data-v2][data-theme=dark] textarea{background:var(--v2-surface);color:var(--ink);border-color:var(--v2-line-strong)}
html[data-v2][data-theme=dark] .panel{background:var(--v2-surface)}
html[data-v2][data-theme=dark] .subtle-badge{border:1px solid var(--line);color:var(--muted)}
html[data-v2][data-theme=dark] .map-stage,html[data-v2][data-theme=dark] .map-panel .map-stage{background:var(--v2-map-bg)}
html[data-v2][data-theme=dark] .live-pill{background:var(--v2-surface);border:1px solid var(--line);color:var(--v2-ok)}
html[data-v2][data-theme=dark] .live-pill.alert{background:var(--v2-hot-soft);border-color:var(--v2-hot);color:var(--v2-hot);box-shadow:none}
html[data-v2][data-theme=dark] .map-tag{background:#111a2bd9;color:var(--muted);border:1px solid var(--line)}
html[data-v2][data-theme=dark] .map-key{background:#111a2be0;border:1px solid var(--line);color:var(--muted)}
html[data-v2][data-theme=dark] .map-key:has(.heat-scale){background:#111a2bf2;box-shadow:0 3px 12px #0006}
html[data-v2][data-theme=dark] .heat-legend-title{color:var(--ink)}
html[data-v2][data-theme=dark] .heat-scale,html[data-v2][data-theme=dark] .heat-key-note{color:var(--muted)}
html[data-v2][data-theme=dark] .north,html[data-v2][data-theme=dark] .timeline-labels,html[data-v2][data-theme=dark] .timeline-speed,html[data-v2][data-theme=dark] .map-actions>span{color:var(--muted)}
html[data-v2][data-theme=dark] .timeline-labels span:nth-child(2){color:var(--v2-ok)}
html[data-v2][data-theme=dark] .online-label{color:var(--v2-ok);background:var(--v2-ok-soft)}
html[data-v2][data-theme=dark] .door-counts span,html[data-v2][data-theme=dark] .door-counts small,html[data-v2][data-theme=dark] .sensor-meta span{color:var(--muted)}
html[data-v2][data-theme=dark] .door-counts strong{color:var(--ink)}
html[data-v2][data-theme=dark] .sensor-meta strong{color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .text-button{color:var(--v2-ok)}
html[data-v2][data-theme=dark] .person-column button:hover,html[data-v2][data-theme=dark] .person-column button.selected{background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .person-column strong,html[data-v2][data-theme=dark] .person-column small,html[data-v2][data-theme=dark] .chart-foot{color:var(--muted)}
html[data-v2][data-theme=dark] .person-column svg [fill="#e2e7ed"]{fill:var(--v2-surface-3)}
html[data-v2][data-theme=dark] .action-count{background:var(--v2-surface-2);color:var(--muted)}
html[data-v2][data-theme=dark] .next-action{border-top:1px solid var(--line);background:var(--v2-surface);color:var(--ink)}
html[data-v2][data-theme=dark] .next-action:hover{background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .next-action-icon{background:var(--v2-ok-soft);color:var(--v2-ok)}
html[data-v2][data-theme=dark] .next-action:nth-child(2) .next-action-icon{background:var(--v2-warn-soft);color:var(--v2-warn)}
html[data-v2][data-theme=dark] .next-action:nth-child(3) .next-action-icon{background:var(--v2-surface-3);color:var(--blue)}
html[data-v2][data-theme=dark] .next-action small,html[data-v2][data-theme=dark] .next-action .arrow,html[data-v2][data-theme=dark] footer{color:var(--muted)}
html[data-v2][data-theme=dark] .findings{background:var(--v2-surface-2);border:1px solid var(--line)}
html[data-v2][data-theme=dark] .finding-card{background:var(--v2-surface);border:1px solid var(--line)}
html[data-v2][data-theme=dark] .tag{background:var(--v2-ok-soft);color:var(--v2-ok)}
html[data-v2][data-theme=dark] .tag.orange{background:var(--v2-warn-soft);color:var(--v2-warn)}
html[data-v2][data-theme=dark] .tag.blue{background:var(--v2-surface-3);color:var(--blue)}
html[data-v2][data-theme=dark] .tag.gray{background:var(--v2-surface-3);color:var(--muted)}
html[data-v2][data-theme=dark] .metric-row{color:var(--muted)}
html[data-v2][data-theme=dark] .metric-row strong{color:var(--ink)}
html[data-v2][data-theme=dark] .data-table th{color:var(--muted);background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .data-table td small{color:var(--muted)}
html[data-v2][data-theme=dark] .progress,html[data-v2][data-theme=dark] .ix-progress,html[data-v2][data-theme=dark] .flow-alert-meter{background:var(--v2-surface-3)}
html[data-v2][data-theme=dark] .form-grid label{color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .form-grid input,html[data-v2][data-theme=dark] .form-grid select{border:1px solid var(--v2-line-strong);background:var(--v2-surface)}
html[data-v2][data-theme=dark] .callout{background:var(--v2-surface-2);border:1px solid var(--line);color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .calendar span,html[data-v2][data-theme=dark] .calendar button{background:var(--v2-surface-2);color:var(--muted)}
html[data-v2][data-theme=dark] .calendar button.window{background:var(--v2-ok-soft);color:var(--v2-ok)}
html[data-v2][data-theme=dark] .check-circle{border-color:var(--v2-line-strong);color:var(--v2-ok);background:var(--v2-ok-soft)}
html[data-v2][data-theme=dark] .parking-bays i{background:var(--v2-surface-3);border:1px solid var(--line)}
html[data-v2][data-theme=dark] .legend-row{color:var(--muted)}
html[data-v2][data-theme=dark] dialog{background:var(--v2-surface);color:var(--ink);border-color:var(--line)}
html[data-v2][data-theme=dark] dialog::backdrop{background:#02060fb0}
html[data-v2][data-theme=dark] .modal-header{background:var(--v2-surface);border-color:var(--line)}
html[data-v2][data-theme=dark] .demo-frame{border:1px solid var(--line);background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .chip{background:var(--v2-surface);color:var(--ink)}
html[data-v2][data-theme=dark] .flow-stage{background:var(--v2-stage);border-color:var(--v2-stage-edge)}
html[data-v2][data-theme=dark] .lidar-stage,html[data-v2][data-theme=dark] .replay-stage{background:var(--v2-stage);border-color:var(--v2-stage-edge)}
html[data-v2][data-theme=dark] .flow-scene-title{color:var(--ink)}
html[data-v2][data-theme=dark] .flow-kpi strong.hot,html[data-v2][data-theme=dark] .flow-metrics strong.hot{color:var(--v2-hot)}
html[data-v2][data-theme=dark] .flow-card .big-value small{color:var(--muted)}
html[data-v2][data-theme=dark] .map-dynamics{background:var(--v2-surface-2);color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .map-dynamics:has(.flow-live-head){background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .flow-controls{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .flow-control-label>span{color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .flow-control-label small,html[data-v2][data-theme=dark] .flow-auto{color:var(--muted)}
html[data-v2][data-theme=dark] .flow-control-buttons button{border:1px solid var(--v2-line-strong);background:var(--v2-surface);color:var(--v2-ink-2);box-shadow:none}
html[data-v2][data-theme=dark] .flow-control-buttons button:last-child{background:var(--v2-ok-soft);border-color:transparent;color:var(--v2-ok)}
html[data-v2][data-theme=dark] .flow-evidence{background:var(--v2-surface-2);color:var(--muted);border-top:1px solid var(--line)}
html[data-v2][data-theme=dark] .flow-live-head{color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .flow-live-head i{box-shadow:0 0 0 3px var(--v2-ok-soft)}
html[data-v2][data-theme=dark] .flow-live-head small,html[data-v2][data-theme=dark] .flow-live-head b,html[data-v2][data-theme=dark] .flow-metrics small,html[data-v2][data-theme=dark] .flow-metrics strong em{color:var(--muted)}
html[data-v2][data-theme=dark] .flow-metrics>div+div{border-left:1px solid var(--line)}
html[data-v2][data-theme=dark] .flow-metrics strong{color:var(--ink)}
html[data-v2][data-theme=dark] .flow-alert{background:var(--v2-surface);border:1px solid var(--line)}
html[data-v2][data-theme=dark] .flow-alert strong{color:var(--ink)}
html[data-v2][data-theme=dark] .flow-alert small,html[data-v2][data-theme=dark] .flow-alert>span:last-child{color:var(--muted)}
html[data-v2][data-theme=dark] .flow-alert-symbol{background:var(--v2-warn-soft);color:var(--v2-warn)}
html[data-v2][data-theme=dark] .flow-alert.critical{background:var(--v2-hot-soft);border-color:var(--v2-hot)}
html[data-v2][data-theme=dark] .critical .flow-alert-symbol{background:var(--v2-surface);color:var(--v2-hot)}
html[data-v2][data-theme=dark] .flow-alert.recover{background:var(--v2-ok-soft);border-color:transparent}
html[data-v2][data-theme=dark] .recover .flow-alert-symbol{background:var(--v2-surface);color:var(--v2-ok)}
html[data-v2][data-theme=dark] .flow-calm{background:var(--v2-ok-soft);border:1px solid transparent;color:var(--v2-ok)}
html[data-v2][data-theme=dark] .flow-calm small,html[data-v2][data-theme=dark] .flow-foot{color:var(--muted)}
html[data-v2][data-theme=dark] .flow-foot .text-button{color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .queue-detail{background:var(--v2-surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
html[data-v2][data-theme=dark] .queue-detail strong,html[data-v2][data-theme=dark] .dyn-head,html[data-v2][data-theme=dark] .ticker em{color:var(--v2-ok)}
html[data-v2][data-theme=dark] .dyn-row span,html[data-v2][data-theme=dark] .dyn-row strong small,html[data-v2][data-theme=dark] .ticker small{color:var(--muted)}
html[data-v2][data-theme=dark] .dyn-row strong{color:var(--ink)}
html[data-v2][data-theme=dark] .ticker li.alert,html[data-v2][data-theme=dark] .ticker li.alert em,html[data-v2][data-theme=dark] .alert-text,html[data-v2][data-theme=dark] .ix-alert{color:var(--v2-hot)}
html[data-v2][data-theme=dark] .dyn-alerts{background:var(--v2-surface-3);color:var(--muted)}
html[data-v2][data-theme=dark] .dyn-alerts.on{background:var(--v2-hot-soft);color:var(--v2-hot)}
html[data-v2][data-theme=dark] .event-row{background:var(--v2-surface);border-color:var(--line);color:var(--ink)}
html[data-v2][data-theme=dark] .event-row .ev-id,html[data-v2][data-theme=dark] .event-row .ev-main small{color:var(--muted)}
html[data-v2][data-theme=dark] .dh-toolbar p,html[data-v2][data-theme=dark] .dh-workspace .panel-heading p,html[data-v2][data-theme=dark] .dh-kpis article>span,html[data-v2][data-theme=dark] .dh-kpis small,html[data-v2][data-theme=dark] .dh-table td small,html[data-v2][data-theme=dark] .dh-note,html[data-v2][data-theme=dark] .dh-due-date>span,html[data-v2][data-theme=dark] .dh-service-progress>div,html[data-v2][data-theme=dark] .dh-details dt,html[data-v2][data-theme=dark] .dh-demand small,html[data-v2][data-theme=dark] .dh-schedule small,html[data-v2][data-theme=dark] .dh-schedule p,html[data-v2][data-theme=dark] .dh-cycle-metrics small,html[data-v2][data-theme=dark] .dh-events h2 span,html[data-v2][data-theme=dark] .dh-empty,html[data-v2][data-theme=dark] .dh-footnote,html[data-v2][data-theme=dark] .dh-chart-key,html[data-v2][data-theme=dark] .dh-bar>small{color:var(--muted)}
html[data-v2][data-theme=dark] .dh-workspace label,html[data-v2][data-theme=dark] .dh-service-progress>div:first-child,html[data-v2][data-theme=dark] .dh-details dd,html[data-v2][data-theme=dark] .dh-test-body>p,html[data-v2][data-theme=dark] .dh-table button>span{color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .dh-workspace select,html[data-v2][data-theme=dark] .dh-workspace input[type=date]{border:1px solid var(--v2-line-strong);background:var(--v2-surface);color:var(--ink)}
html[data-v2][data-theme=dark] .dh-kpis strong,html[data-v2][data-theme=dark] .dh-cycle-metrics strong{color:var(--ink)}
html[data-v2][data-theme=dark] .dh-kpis article:nth-child(2) strong{color:var(--v2-hot)}
html[data-v2][data-theme=dark] .dh-table th,html[data-v2][data-theme=dark] .dh-table td{border-bottom:1px solid var(--line)}
html[data-v2][data-theme=dark] .dh-table thead th{color:var(--muted);background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .dh-table button>strong,html[data-v2][data-theme=dark] .dh-due-date>b{color:var(--v2-ok)}
html[data-v2][data-theme=dark] .dh-table tr.selected{background:var(--v2-surface-3)}
html[data-v2][data-theme=dark] .dh-status{background:var(--v2-surface-3);color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .dh-status.good{color:var(--v2-ok);background:var(--v2-ok-soft)}
html[data-v2][data-theme=dark] .dh-status.warning{color:var(--v2-warn);background:var(--v2-warn-soft)}
html[data-v2][data-theme=dark] .dh-status.critical{color:var(--v2-hot);background:var(--v2-hot-soft)}
html[data-v2][data-theme=dark] .dh-red,html[data-v2][data-theme=dark] .dh-table small.dh-red{color:var(--v2-hot)!important}
html[data-v2][data-theme=dark] .dh-note,html[data-v2][data-theme=dark] .dh-details>div,html[data-v2][data-theme=dark] .dh-demand,html[data-v2][data-theme=dark] .dh-cycle-metrics,html[data-v2][data-theme=dark] .dh-schedule{border-color:var(--line)}
html[data-v2][data-theme=dark] .dh-service-head{background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .dh-service-progress progress,html[data-v2][data-theme=dark] .dh-service-progress progress::-webkit-progress-bar{background:var(--v2-surface-3)}
html[data-v2][data-theme=dark] .dh-active-faults>div{border-left:3px solid var(--v2-hot);background:var(--v2-hot-soft);color:var(--ink)}
html[data-v2][data-theme=dark] .dh-active-faults small{color:var(--v2-hot)}
html[data-v2][data-theme=dark] .dh-schedule{background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .ix-workspace{color:var(--ink)}
html[data-v2][data-theme=dark] .ix-workspace p,html[data-v2][data-theme=dark] .ix-kpis article>span,html[data-v2][data-theme=dark] .ix-kpis article>small,html[data-v2][data-theme=dark] .ix-workspace .ix-note,html[data-v2][data-theme=dark] .ix-table td small,html[data-v2][data-theme=dark] .ix-table th{color:var(--muted)}
html[data-v2][data-theme=dark] .ix-kpis article>strong{color:var(--ink)}
html[data-v2][data-theme=dark] .ix-workspace label,html[data-v2][data-theme=dark] .ix-density-legend,html[data-v2][data-theme=dark] .ix-formula{color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .ix-workspace input:not([type=checkbox]),html[data-v2][data-theme=dark] .ix-workspace select{border:1px solid var(--v2-line-strong);background:var(--v2-surface);color:var(--ink)}
html[data-v2][data-theme=dark] .ix-workspace [aria-invalid=true],html[data-v2][data-theme=dark] input[aria-invalid=true]{border-color:var(--v2-hot)!important;background:var(--v2-hot-soft)!important}
html[data-v2][data-theme=dark] .ix-result{background:var(--v2-ok-soft);border:1px solid transparent;color:var(--v2-ok)}
html[data-v2][data-theme=dark] .ix-formula{background:var(--v2-surface-2);border-left:3px solid var(--blue)}
html[data-v2][data-theme=dark] .ix-table th{background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .ix-table td{border-bottom:1px solid var(--line)}
html[data-v2][data-theme=dark] .ix-table tr.selected{background:var(--v2-surface-3)}
html[data-v2][data-theme=dark] .ix-table button{color:var(--v2-ok)}
html[data-v2][data-theme=dark] .ix-route-delays>span{background:var(--v2-surface-2);border:1px solid var(--line)}
html[data-v2][data-theme=dark] .ix-window-grid article{border:1px solid var(--line);background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .record-controls{border:1px solid var(--line);background:var(--v2-surface-2)}
html[data-v2][data-theme=dark] .record-controls select,html[data-v2][data-theme=dark] .record-controls input{border:1px solid var(--v2-line-strong);background:var(--v2-surface)}
html[data-v2][data-theme=dark] .record-controls>span{color:var(--muted)}
html[data-v2][data-theme=dark] .roster-input{border:1px solid var(--v2-line-strong)}
html[data-v2][data-theme=dark] .heatmap-controls{background:var(--v2-surface-2);border:1px solid var(--line)}
html[data-v2][data-theme=dark] .heatmap-controls>span{color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .forecast-bars>div{color:var(--muted)}
html[data-v2][data-theme=dark] .forecast-bar-track{background:var(--v2-surface-3)}
html[data-v2][data-theme=dark] .pricing-output{background:var(--v2-nav-2)}
html[data-v2][data-theme=dark] .toast{background:var(--v2-surface-3);border-color:var(--v2-line-strong);color:var(--ink)}
html[data-v2][data-theme=dark] .avatar{background:var(--v2-ok-soft);color:var(--v2-ok)}
html[data-v2][data-theme=dark] h1,html[data-v2][data-theme=dark] h2,html[data-v2][data-theme=dark] h3{color:var(--ink)}
html[data-v2][data-theme=dark] .panel-heading p,html[data-v2][data-theme=dark] .work-intro p,html[data-v2][data-theme=dark] .page-heading p{color:var(--muted)}
html[data-v2][data-theme=dark] .usecase-list article,html[data-v2][data-theme=dark] .plan-row,html[data-v2][data-theme=dark] .empty-state{color:var(--ink)}
html[data-v2][data-theme=dark] input[type=range]{accent-color:var(--teal)}
html[data-v2][data-theme=dark] .spark i{background:#2f5a52}
html[data-v2][data-theme=dark] .spark i.fc{background:#33436a}
html[data-v2][data-theme=dark] .spark i.now{background:var(--mint)}
html[data-v2][data-theme=dark] .spark i.fc.now{background:var(--blue)}
html[data-v2][data-theme=dark] .replay-empty{color:var(--muted)}
html[data-v2][data-theme=dark] .v2-chip.active,html[data-v2][data-theme=dark] .v2-chip[aria-pressed=true]{color:#06121c}
html[data-v2][data-theme=dark] .flow-legend,html[data-v2][data-theme=dark] .flow-scene-title{background:#111a2bdd;border-color:var(--v2-stage-edge);color:var(--v2-ink-2)}
html[data-v2][data-theme=dark] .flow-legend i{border-color:#ffffff22}
html[data-v2][data-theme=dark] .flow-kpi{background:var(--v2-surface-2)}
html[data-v2] #pageTitle:focus{outline:none}
html[data-v2] #pageTitle:focus-visible{outline:2px solid var(--v2-focus);outline-offset:4px;border-radius:4px}
