:root{--map-void:#0c0e10;--map-base:#12151a;--map-surface:#1a1f26;--map-elevated:#232932;--map-raised:#2d3540;--map-interactive:#37404e;--map-accent:#ffd597;--map-blue:#4fc3f7;--map-red:#ff3d5a;--map-green:#4de082;--map-amber:#ff9d00;--map-gold:#ffd54f;--map-text:#e2e2e5;--map-text-mid:#b0b4bb;--map-text-dim:#6c717a;--map-text-ghost:#383d46;--map-border:#b48c5a2e;--map-border-mid:#b48c5a1a;--map-panel:#12151adb;--map-panel-border:#b48c5a38;--map-font:"Segoe UI", system-ui, -apple-system, sans-serif;--map-mono:"SFMono-Regular", ui-monospace, "Cascadia Mono", Menlo, monospace;--background:var(--map-void);--foreground:var(--map-text);--card:var(--map-panel);--card-foreground:var(--map-text);--popover:var(--map-base);--popover-foreground:var(--map-text);--primary:var(--map-accent);--primary-hover:#ffdca8;--primary-foreground:#1a1205;--secondary:var(--map-interactive);--secondary-foreground:var(--map-text);--muted:var(--map-raised);--muted-foreground:var(--map-text-dim);--accent:var(--map-accent);--accent-foreground:#1a1205;--destructive:var(--map-red);--destructive-foreground:#fff;--border:var(--map-border);--input:var(--map-border-mid);--input-background:var(--map-surface);--ring:var(--map-accent);--ok:var(--map-green);--warn:var(--map-amber);--info:var(--map-blue);--radius:6px;--radius-lg:8px;--font-sans:var(--map-font);--font-mono:var(--map-mono)}:root[data-theme=high-contrast]{--map-void:#000;--map-base:#050505;--map-surface:#0b0c0a;--map-elevated:#111411;--map-raised:#1b211b;--map-interactive:#263226;--map-accent:#c6ff4a;--map-blue:#00f0ff;--map-red:#ff3b30;--map-green:#00e676;--map-amber:#ffb800;--map-gold:#c6ff4a;--map-text:#f4fff0;--map-text-mid:#c7d4c1;--map-text-dim:#889383;--map-text-ghost:#414b3d;--map-border:#c6ff4a47;--map-border-mid:#c6ff4a24;--map-panel:#050505e6;--map-panel-border:#c6ff4a57;--primary-hover:#d7ff78}.ui-button{border-radius:var(--radius);font-family:var(--font-sans);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;font-weight:700;line-height:1;transition:background .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.ui-button:disabled{cursor:not-allowed;opacity:.45}.ui-button-default{background:var(--secondary);color:var(--secondary-foreground);border-color:var(--border)}.ui-button-default:hover:not(:disabled){background:var(--muted)}.ui-button-primary{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.ui-button-primary:hover:not(:disabled){background:var(--primary-hover)}.ui-button-secondary{background:var(--muted);color:var(--foreground);border-color:var(--border)}.ui-button-secondary:hover:not(:disabled){background:var(--secondary)}.ui-button-ghost{color:var(--foreground);border-color:var(--border);background:0 0}.ui-button-ghost:hover:not(:disabled){background:var(--muted)}.ui-button-danger{background:var(--destructive);color:var(--destructive-foreground);border-color:var(--destructive)}.ui-button-icon{background:var(--secondary);color:var(--muted-foreground);border-color:var(--border);aspect-ratio:1}.ui-button-sm{min-height:28px;padding:0 10px;font-size:11.5px}.ui-button-md{min-height:34px;padding:0 14px;font-size:12.5px}.ui-button-lg{min-height:40px;padding:0 18px;font-size:13.5px}.ui-input{border:1px solid var(--input);border-radius:var(--radius);background:var(--input-background);width:100%;min-height:34px;color:var(--foreground);font-family:var(--font-sans);padding:7px 10px;font-size:12.5px}.ui-input:focus{border-color:var(--ring);outline:none}.ui-input:disabled{opacity:.6;cursor:not-allowed}.ui-input::placeholder{color:var(--muted-foreground)}.ui-textarea{resize:vertical;min-height:72px;line-height:1.4}.ui-select{cursor:pointer}.ui-checkbox{width:16px;height:16px;accent-color:var(--ok);cursor:pointer;margin:0}.ui-checkbox:disabled{opacity:.55;cursor:not-allowed}.ui-label{color:var(--muted-foreground);flex-direction:column;gap:5px;font-size:11.5px;display:flex}.ui-card{background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--radius-lg)}.ui-card-header{padding:16px 18px 0}.ui-card-title{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:13px}.ui-card-content{padding:16px 18px}*{box-sizing:border-box}html,body,#root{background:var(--map-void);width:100%;height:100%;color:var(--map-text);font-family:var(--map-font);margin:0;overflow:hidden}.app-shell{background:var(--map-void);grid-template-rows:46px 1fr;grid-template-columns:216px 1fr;display:grid;position:fixed;inset:0}.titlebar{background:var(--map-base);border-bottom:1px solid var(--map-border);grid-area:1/1/auto/3;align-items:center;gap:10px;padding:0 18px;font-size:13px;display:flex}.titlebar-app{letter-spacing:.06em;font-weight:800}.titlebar-sep{color:var(--map-text-ghost)}.titlebar-view{color:var(--map-text-mid)}.titlebar-theatre{color:var(--map-text-dim);font-size:12px}.titlebar-spacer{flex:1}.titlebar-status{letter-spacing:.12em;color:var(--map-text-dim);align-items:center;gap:7px;font-size:11px;display:flex}.titlebar-status .status-dot{background:var(--map-text-ghost);border-radius:50%;width:8px;height:8px}.titlebar-status.live{color:var(--map-green)}.titlebar-status.live .status-dot{background:var(--map-green);box-shadow:0 0 8px var(--map-green);animation:1.4s ease-in-out infinite willow-pulse}@keyframes willow-pulse{0%,to{opacity:1}50%{opacity:.4}}.sidebar{background:var(--map-base);border-right:1px solid var(--map-border);flex-direction:column;grid-area:2/1;gap:6px;padding:12px 10px;display:flex}.sidebar-brand{align-items:center;gap:9px;padding:6px 8px 12px;display:flex}.brand-mark{color:var(--map-accent);flex:0 0 16px;width:16px;height:16px}.brand-name{letter-spacing:.18em;font-size:14px;font-weight:800}.nav-items{flex-direction:column;flex:1;gap:4px;display:flex}.nav-item{color:var(--map-text-mid);cursor:pointer;text-align:left;font-family:var(--map-font);background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:11px;padding:9px 10px;transition:background .15s,color .15s,border-color .15s;display:flex}.nav-item:hover{background:var(--map-surface);color:var(--map-text)}.nav-item.active{background:var(--map-elevated);border-color:var(--map-panel-border);color:var(--map-text)}.nav-icon{stroke-width:1.8px;flex:0 0 20px;width:20px;height:20px}.button-icon{stroke-width:2.2px;flex:none;width:1em;height:1em}.alert-title-icon{width:14px;height:14px;color:var(--map-amber);flex:0 0 14px}.nav-text{flex-direction:column;line-height:1.2;display:flex}.nav-label{font-size:13px;font-weight:600}.nav-hint{color:var(--map-text-dim);font-size:10px}.nav-item.active .nav-label{color:var(--map-accent)}.sidebar-foot{color:var(--map-text-ghost);border-top:1px solid var(--map-border-mid);padding:8px;font-size:10px}.view-area{grid-area:2/2;position:relative;overflow:hidden}.view-overlay{background:var(--map-void);z-index:10;position:absolute;inset:0;overflow-y:auto}.willow-app{z-index:0;position:absolute;inset:0}.willow-globe{position:absolute;inset:0}.willow-hud{pointer-events:none;grid-template-rows:auto auto 1fr auto;grid-template-columns:320px 1fr 380px;gap:16px;padding:16px;display:grid;position:absolute;inset:0}.willow-hud>*{pointer-events:auto}.constellation-filter{z-index:6;pointer-events:auto;background:var(--map-panel);border:1px solid var(--map-panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;min-width:150px;padding:10px 12px;position:absolute;bottom:96px;left:16px;box-shadow:0 8px 28px #00000073}.constellation-filter .cf-title{letter-spacing:.14em;text-transform:uppercase;color:var(--map-text-dim);margin-bottom:8px;font-size:11px;font-weight:700}.constellation-filter .cf-row{cursor:pointer;color:var(--map-text);align-items:center;gap:8px;padding:3px 0;font-size:12.5px;display:flex}.constellation-filter .cf-row input{accent-color:var(--map-accent);cursor:pointer}.constellation-filter .cf-swatch{border:1px solid #ffffff59;border-radius:50%;flex:0 0 10px;width:10px;height:10px}.constellation-filter .cf-label{flex:1}.constellation-filter .cf-count{color:var(--map-text-dim);font-variant-numeric:tabular-nums}.panel{background:var(--map-panel);border:1px solid var(--map-panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;padding:14px 16px;box-shadow:0 8px 28px #00000073}.panel-title{letter-spacing:.14em;text-transform:uppercase;color:var(--map-text-dim);margin:0 0 10px;font-size:11px;font-weight:700}.scenario-picker{grid-area:1/1/auto/4;justify-self:center;align-items:center;gap:12px;padding:10px 16px;display:flex}.scenario-picker .panel-title{margin:0}.scenario-list{gap:8px;display:flex}.scenario-chip{background:var(--map-surface);border:1px solid var(--map-border);border-bottom:2px solid var(--map-raised);color:var(--map-text);cursor:pointer;border-radius:7px;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 12px;transition:border-color .15s,background .15s;display:flex}.scenario-chip:hover:not(:disabled){background:var(--map-elevated)}.scenario-chip.active{border-color:var(--map-accent);border-bottom-color:var(--map-accent);background:var(--map-elevated)}.scenario-chip:disabled{opacity:.5;cursor:not-allowed}.scenario-chip-title{font-size:12.5px;font-weight:700}.scenario-chip-adv{color:var(--map-text-dim);font-size:10.5px}.status-strip{background:var(--map-panel);border:1px solid var(--map-panel-border);border-left:3px solid var(--accent,var(--map-green));pointer-events:auto;border-radius:8px;grid-area:2/1/auto/4;justify-self:center;align-items:center;gap:10px;max-width:760px;padding:7px 16px;font-size:12.5px;display:flex}.status-strip .strip-dot{background:var(--accent,var(--map-green));width:9px;height:9px;box-shadow:0 0 8px var(--accent,var(--map-green));border-radius:50%;flex-shrink:0}.strip-phase{letter-spacing:.04em;color:var(--accent,var(--map-text));white-space:nowrap;font-weight:700}.strip-sep{color:var(--map-text-ghost)}.strip-headline{color:var(--map-text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.asset-callout-anchor{pointer-events:none;z-index:20;will-change:transform;width:0;height:0;position:absolute;top:0;left:0}.asset-pin{border:2px solid var(--map-green);background:#4de08240;border-radius:50%;width:12px;height:12px;position:absolute;top:-6px;left:-6px;box-shadow:0 0 10px #4de08299}.asset-pin.spoofed{border-color:var(--map-red);background:#ff3d5a40;box-shadow:0 0 10px #ff3d5ab3}.asset-callout{background:var(--map-panel);border:1px solid var(--map-panel-border);border-top:2px solid var(--map-green);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:9px;width:224px;padding:9px 11px;position:absolute;top:0;left:18px;transform:translateY(-50%);box-shadow:0 8px 24px #00000080}.asset-callout.spoofed{border-top-color:var(--map-red)}.ac-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.ac-name{letter-spacing:.02em;font-size:12.5px;font-weight:800}.ac-trust{letter-spacing:.06em;color:var(--map-green);white-space:nowrap;background:#4de0821f;border-radius:4px;padding:2px 6px;font-size:9.5px;font-weight:700}.ac-trust.bad{color:var(--map-red);background:#ff3d5a24}.ac-row{justify-content:space-between;gap:8px;padding:1px 0;font-size:11px;display:flex}.ac-row.ac-dim{color:var(--map-text-dim);justify-content:flex-start;font-style:italic}.ac-k{color:var(--map-text-dim)}.ac-v{font-family:var(--map-mono);color:var(--map-text)}.ac-v.bad{color:var(--map-red);font-weight:700}.ac-sources{border-top:1px solid var(--map-border-mid);flex-direction:column;gap:3px;margin-top:7px;padding-top:7px;display:flex}.ac-src{grid-template-columns:12px 1fr auto;align-items:center;gap:7px;font-size:10.5px;display:grid}.ac-src-dot{background:var(--map-text-dim);border-radius:50%;width:8px;height:8px}.ac-src-dot.gps-l1{background:var(--map-amber)}.ac-src-dot.navic{background:var(--map-blue)}.ac-src-dot.ins{background:var(--map-green)}.ac-src-dot.isr{background:var(--map-gold)}.ac-src-label{color:var(--map-text-mid)}.ac-src-dev{font-family:var(--map-mono);text-align:right}.ac-src-dev .ok{color:var(--map-text-dim)}.ac-src-dev .warn{color:var(--map-red);font-weight:700}.ac-primary{color:var(--map-amber);font-style:italic}.col-left{flex-direction:column;grid-area:3/1;align-self:start;gap:16px;max-height:calc(100vh - 260px);display:flex;overflow-y:auto}.status-row{border-bottom:1px solid var(--map-border-mid);align-items:center;gap:10px;padding:7px 0;display:flex}.status-row:last-child{border-bottom:none}.status-light{border-radius:50%;flex:none;width:12px;height:12px;box-shadow:0 0 10px 1px}.status-name{flex:none;width:84px;font-size:13px;font-weight:700}.status-detail{color:var(--map-text-mid);font-size:11.5px;line-height:1.3}.metric{margin:12px 0}.metric:first-of-type{margin-top:4px}.metric-label{color:var(--map-text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.metric-value{font-family:var(--map-mono);margin-top:2px;font-size:22px;font-weight:700}.metric-value small{color:var(--map-text-dim);font-size:12px;font-weight:400}.bar{background:var(--map-elevated);border-radius:4px;height:7px;margin-top:7px;overflow:hidden}.bar-fill{border-radius:4px;height:100%;transition:width .5s,background .5s}.col-right{flex-direction:column;grid-area:3/3;align-self:start;gap:16px;max-height:calc(100vh - 260px);display:flex;overflow-y:auto}.coa{text-align:left;background:var(--map-surface);border:1px solid var(--map-border);border-left:3px solid var(--map-interactive);width:100%;color:var(--map-text);cursor:pointer;border-radius:8px;margin-bottom:9px;padding:10px 12px;transition:border-color .15s,background .15s,transform .1s;display:block}.coa:hover{background:var(--map-elevated);border-left-color:var(--map-accent)}.coa.selected{border-color:var(--map-accent);border-left-color:var(--map-accent);background:var(--map-elevated)}.coa-title{font-size:13.5px;font-weight:700}.coa-doctrine{color:var(--map-text-mid);margin-top:2px;font-size:11.5px}.coa-trade{font-family:var(--map-mono);color:var(--map-text-dim);gap:12px;margin-top:7px;font-size:11px;display:flex}.coa-trade b{color:var(--map-text)}.coa-effect{color:var(--map-accent);border-top:1px dashed var(--map-border);margin-top:8px;padding-top:7px;font-size:12px;line-height:1.4}.impact-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.impact-col{border:1px solid var(--map-border);border-radius:8px;padding:10px}.impact-col.with{background:#4de0820f;border-color:#4de08266}.impact-col.without{background:#ff3d5a0f;border-color:#ff3d5a66}.impact-col h4{text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-size:11px}.impact-col.with h4{color:var(--map-green)}.impact-col.without h4{color:var(--map-red)}.impact-metric{margin:8px 0}.impact-metric .k{color:var(--map-text-dim);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}.impact-metric .v{font-family:var(--map-mono);font-size:16px;font-weight:700}.impact-outcome{color:var(--map-text-mid);margin-top:10px;font-size:12px;line-height:1.45}.impact-outcome b{color:var(--map-text)}.sim-controls{grid-area:4/1/auto/4;justify-self:center;align-items:center;gap:14px;min-width:620px;padding:10px 18px;display:flex}.sim-controls button{font-family:var(--map-font);background:var(--map-interactive);color:var(--map-text);border:1px solid var(--map-border);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:7px 14px;font-size:13px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.sim-controls button:hover:not(:disabled){background:var(--map-raised)}.sim-controls button:disabled{opacity:.4;cursor:not-allowed}.sim-controls button.primary{background:var(--map-accent);color:#1a1205;border-color:var(--map-accent);min-width:116px}.sim-controls button.active{background:var(--map-accent);color:#1a1205;border-color:var(--map-accent)}.sim-clock{font-family:var(--map-mono);white-space:nowrap;font-size:15px;font-weight:700}.sim-clock small{color:var(--map-text-dim);font-weight:400}.sim-timeline{background:var(--map-elevated);border-radius:4px;flex:1;min-width:120px;height:7px;overflow:hidden}.sim-timeline-fill{background:var(--map-accent);border-radius:4px;height:100%;transition:width .2s linear}.sim-speed{gap:4px;display:flex}.speed-btn{padding:5px 9px!important;font-size:12px!important}.speed-btn.active{color:var(--map-accent);background:var(--map-raised)!important;border-color:var(--map-accent)!important}.feed-empty{color:var(--map-text-mid);margin:0;font-size:12.5px;line-height:1.4}.feed-empty b{color:var(--map-accent)}.feed-rows{flex-direction:column;gap:2px;max-height:230px;display:flex;overflow-y:auto}.feed-row{font-family:var(--map-mono);color:var(--map-text-mid);border-radius:4px;flex-direction:column;gap:3px;padding:4px 6px;font-size:11px;display:flex}.feed-row:nth-child(odd){background:#ffffff05}.feed-row.flagged{color:var(--map-text);background:#ff3d5a1f}.feed-row.jammed{background:#ff82001a}.feed-row-header{grid-template-columns:46px 110px 1fr;align-items:baseline;gap:6px;display:grid}.feed-obs-row{flex-wrap:wrap;align-items:center;gap:6px;min-height:14px;padding-left:52px;display:flex}.feed-t{color:var(--map-text-dim)}.feed-src{color:var(--map-text);flex-wrap:wrap;align-items:center;gap:4px;font-weight:700;display:flex}.feed-pos{color:var(--map-text-mid)}.feed-dev{color:var(--map-text-dim)}.feed-dev.warn{color:var(--map-red);font-weight:700}.feed-attack-badge{letter-spacing:.04em;border-radius:3px;padding:0 4px;font-size:9px;font-weight:800;display:inline-block}.feed-attack-spoofing{color:#ff6b8a;background:#ff3d5a40}.feed-attack-jamming{color:#ffaa40;background:#ff820047}.feed-attack-meaconing{color:#c97ee0;background:#b450dc40}.feed-agc-badge{color:#ffc840;background:#ffc80038;border-radius:3px;padding:0 4px;font-size:9px;font-weight:800;display:inline-block}.feed-stale-badge{color:var(--map-text-dim);background:#78787833;border-radius:3px;padding:0 4px;font-size:9px;font-weight:700;display:inline-block}.feed-timing-badge{color:#c97ee0;font-size:10px}.feed-cn0{align-items:center;gap:3px;font-size:10px;display:inline-flex}.feed-cn0.cn0-nom{color:#6bcf7f}.feed-cn0.cn0-spoof{color:#ff6b8a}.feed-cn0.cn0-jam{color:#ffaa40}.feed-cn0.cn0-meac{color:#c97ee0}.cn0-bar{align-items:center;gap:1px;display:inline-flex}.cn0-seg{background:#ffffff1f;border-radius:1px;width:3px;height:8px;display:inline-block}.cn0-seg.on{background:currentColor}.cn0-val{font-weight:700}.cn0-std{color:var(--map-text-dim);font-size:9px}.feed-pdop{color:var(--map-text-dim);font-size:10px}.feed-pdop.warn{color:var(--map-amber,#ffaa40)}.feed-ins-vel{color:#8cf;font-size:10px}.feed-sigma{color:var(--map-text-dim);font-size:10px}.feed-sigma-drift{color:var(--map-amber,#ffaa40);margin-left:2px}.col-right::-webkit-scrollbar{width:8px}.feed-rows::-webkit-scrollbar{width:8px}.col-right::-webkit-scrollbar-thumb{background:var(--map-raised);border-radius:4px}.feed-rows::-webkit-scrollbar-thumb{background:var(--map-raised);border-radius:4px}.settings-view{max-width:880px;color:var(--map-text);margin:0 auto;padding:28px 32px 60px}.settings-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.settings-head h2{margin:0 0 4px;font-size:22px}.settings-sub{color:var(--map-text-mid);max-width:560px;margin:0;font-size:13px}.settings-reset{font-family:var(--map-font);background:var(--map-interactive);color:var(--map-text);border:1px solid var(--map-border);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.settings-reset:hover{background:var(--map-raised)}.settings-section{background:var(--map-panel);border:1px solid var(--map-panel-border);border-radius:12px;margin-bottom:18px;padding:18px 20px}.settings-card-content{padding:0}.settings-section-title{color:var(--map-accent);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:14px}.settings-note{color:var(--map-text-mid);margin:0 0 14px;font-size:12.5px;line-height:1.5}.settings-hint{color:var(--map-text-dim);margin:12px 0 0;font-size:11.5px}.settings-hint code,.about-view code{font-family:var(--map-mono);background:var(--map-elevated);border-radius:3px;padding:1px 5px;font-size:11px}.harness-table{flex-direction:column;gap:2px;display:flex}.harness-row{border-radius:6px;grid-template-columns:1.6fr .5fr 1.3fr 1.3fr;align-items:center;gap:14px;padding:10px 8px;display:grid}.harness-row:not(.harness-head):nth-child(2n){background:#ffffff05}.harness-head{text-transform:uppercase;letter-spacing:.06em;color:var(--map-text-dim);border-bottom:1px solid var(--map-border-mid);font-size:11px}.harness-name{flex-direction:column;line-height:1.25;display:flex}.harness-name b{font-size:13.5px}.harness-kind{color:var(--map-text-dim);font-size:10.5px}.harness-field{align-items:center;gap:10px;display:flex}.harness-field input[type=range],.threshold-control input[type=range]{accent-color:var(--map-accent);cursor:pointer;flex:1}.field-val{font-family:var(--map-mono);text-align:right;min-width:38px;color:var(--map-text);font-size:12px}.field-val.wide{min-width:60px}.harness-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--map-green);cursor:pointer}.harness-row input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.threshold-control{align-items:center;gap:14px;display:flex}.about-view p{color:var(--map-text);margin:0 0 12px;font-size:13.5px;line-height:1.6}.about-list{color:var(--map-text-mid);margin:6px 0 0;padding-left:20px;font-size:13px;line-height:1.7}.view-overlay::-webkit-scrollbar{width:10px}.view-overlay::-webkit-scrollbar-thumb{background:var(--map-raised);border-radius:5px}.builder-view{display:flex;position:absolute;inset:0}.builder-globe{flex:1;min-width:0;position:relative}.builder-hint{background:var(--map-panel);border:1px solid var(--map-panel-border);color:var(--map-text-mid);pointer-events:none;border-radius:7px;padding:6px 14px;font-size:12px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.builder-hint b{color:var(--map-accent)}.builder-panel{background:var(--map-base);border-left:1px solid var(--map-border);flex-shrink:0;width:380px;padding:16px 18px 40px;overflow-y:auto}.builder-title{margin:0 0 14px;font-size:18px}.b-sec{border-bottom:1px solid var(--map-border-mid);margin-bottom:18px;padding-bottom:16px}.b-sec-title{text-transform:uppercase;letter-spacing:.06em;color:var(--map-accent);margin:0 0 9px;font-size:12px}.b-empty{color:var(--map-text-dim);margin:0;font-size:12px}.b-note{color:var(--map-text-dim);margin:0 0 10px;font-size:11.5px}.palette{flex-direction:column;gap:10px;display:flex}.palette-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.palette-label{text-transform:uppercase;letter-spacing:.08em;width:100%;color:var(--map-text-dim);font-size:10px}.palette-label.blue{color:var(--map-blue)}.palette-label.red{color:var(--map-red)}.palette-btn{min-height:28px}.palette-btn.active{border-color:var(--map-blue)}.palette-btn.red.active{border-color:var(--map-red)}.b-assets{flex-direction:column;gap:4px;display:flex}.b-asset{cursor:pointer;border:1px solid #0000;border-radius:6px;grid-template-columns:1fr auto auto auto;align-items:center;gap:6px;padding:4px;display:grid}.b-asset:hover{background:#ffffff08}.b-asset.selected{border-color:var(--map-accent);background:var(--map-elevated)}.b-asset.monitored{background:#ffd59712}.b-asset-label{background:var(--map-surface);border:1px solid var(--map-border-mid);color:var(--map-text);font-size:12px;font-family:var(--map-font);border-radius:4px;min-width:0;padding:4px 7px}.b-side,.b-mon,.b-del{border:1px solid var(--map-border);background:var(--map-surface);color:var(--map-text-mid);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:4px 7px;font-size:11px;font-weight:700;display:inline-flex}.b-side.blue{color:var(--map-blue)}.b-side.red{color:var(--map-red)}.b-side:disabled{opacity:.5;cursor:not-allowed}.b-mon.on{color:var(--map-accent);border-color:var(--map-accent)}.b-del:hover{color:var(--map-red);border-color:var(--map-red)}.icon-only{aspect-ratio:1;padding-inline:6px}.b-field{flex-direction:column;gap:3px;margin-bottom:9px;display:flex}.b-field>span{color:var(--map-text-dim);font-size:11px}.b-field input,.b-field textarea,.b-select{background:var(--map-surface);border:1px solid var(--map-border-mid);color:var(--map-text);font-size:12.5px;font-family:var(--map-font);resize:vertical;border-radius:5px;padding:6px 9px}.b-label{color:var(--map-text-dim);font-size:11px}.b-select{appearance:none;cursor:pointer;resize:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding-right:28px}.b-select:focus,.b-field input:focus,.b-field textarea:focus{border-color:var(--map-accent);outline:none}.b-spoof{color:var(--map-text-mid);grid-template-columns:120px 1fr 44px;align-items:center;gap:10px;margin-bottom:6px;font-size:11.5px;display:grid}.b-spoof input[type=range]{accent-color:var(--map-accent)}.b-spoof-val{font-family:var(--map-mono);text-align:right;color:var(--map-text)}.b-action{font-family:var(--map-font);border:1px solid var(--map-border);background:var(--map-interactive);color:var(--map-text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:8px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.b-action:hover{background:var(--map-raised)}.b-action.primary{background:var(--map-accent);color:#1a1205;border-color:var(--map-accent)}.b-action.ghost{background:0 0;width:100%;margin-top:4px}.b-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.b-status{border-radius:6px;margin-top:12px;padding:8px 11px;font-size:12px}.b-status.error{color:var(--map-red);background:#ff3d5a24}.b-status.ok{color:var(--map-green);background:#4de0821f}.builder-panel::-webkit-scrollbar{width:9px}.builder-panel::-webkit-scrollbar-thumb{background:var(--map-raised);border-radius:5px}.boot-screen{background:var(--map-void);color:var(--map-text-dim);font-family:var(--map-font);place-items:center;display:grid;position:fixed;inset:0}.login-screen{background:radial-gradient(1200px 600px at 50% -10%, #4fc3f714, transparent), var(--map-void);font-family:var(--map-font);place-items:center;display:grid;position:fixed;inset:0}.login-card{background:var(--map-panel);border:1px solid var(--map-panel-border);border-radius:14px;flex-direction:column;gap:12px;width:340px;padding:28px 26px;display:flex;box-shadow:0 20px 60px #0000008c}.login-brand{letter-spacing:.14em;color:var(--map-text);align-items:center;gap:8px;font-size:16px;font-weight:800;display:flex}.login-brand .brand-mark{color:var(--map-accent)}.login-sub{color:var(--map-text-dim);margin:0 0 6px;font-size:12px}.login-field{flex-direction:column;gap:4px;display:flex}.login-field>span{color:var(--map-text-dim);font-size:11px}.login-field input{background:var(--map-surface);border:1px solid var(--map-border-mid);color:var(--map-text);font-size:13px;font-family:var(--map-font);border-radius:6px;padding:9px 11px}.login-field input:focus{border-color:var(--map-accent);outline:none}.login-err{color:var(--map-red);background:#ff3d5a24;border-radius:6px;padding:7px 10px;font-size:12px}.login-btn{background:var(--map-accent);color:#1a1205;font-size:13.5px;font-weight:700;font-family:var(--map-font);cursor:pointer;border:none;border-radius:7px;margin-top:4px;padding:10px}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-hint{color:var(--map-text-dim);text-align:center;margin:6px 0 0;font-size:11px}.login-hint code{font-family:var(--map-mono);background:var(--map-elevated);border-radius:3px;padding:1px 5px}.titlebar-user{border-left:1px solid var(--map-border);align-items:center;gap:10px;margin-left:14px;padding-left:14px;display:flex}.tb-user-name{color:var(--map-text-mid);font-size:12px}.tb-logout{font-family:var(--map-font);background:var(--map-surface);color:var(--map-text);border:1px solid var(--map-border);cursor:pointer;border-radius:5px;padding:4px 10px;font-size:11.5px}.tb-logout:hover{background:var(--map-elevated)}.users-table{flex-direction:column;gap:2px;display:flex}.users-row{border-radius:6px;grid-template-columns:1fr 60px 60px 60px 60px 36px;align-items:center;gap:8px;padding:7px 8px;font-size:12.5px;display:grid}.users-row:not(.users-head):nth-child(2n){background:#ffffff05}.users-head{text-transform:uppercase;letter-spacing:.05em;color:var(--map-text-dim);border-bottom:1px solid var(--map-border-mid);font-size:10.5px}.users-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--map-green);cursor:pointer;justify-self:center}.users-row input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.user-name{font-weight:600}.user-you{color:var(--map-text-dim);font-style:italic;font-weight:400}.user-create{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.user-create input{background:var(--map-surface);border:1px solid var(--map-border-mid);color:var(--map-text);font-size:12.5px;font-family:var(--map-font);border-radius:5px;padding:7px 10px}.user-cb{color:var(--map-text-mid);align-items:center;gap:5px;font-size:12px;display:flex}.user-cb input{accent-color:var(--map-green);cursor:pointer}.harness-cat{flex-direction:column;gap:2px;display:flex;overflow-x:auto}.hc-row{border-radius:6px;grid-template-columns:30px minmax(120px,1.3fr) 130px 70px minmax(120px,1.1fr) minmax(110px,1fr) 30px;align-items:center;gap:10px;min-width:640px;padding:6px;display:grid}.hc-row:not(.hc-head):nth-child(2n){background:#ffffff05}.hc-row.off{opacity:.5}.hc-head{text-transform:uppercase;letter-spacing:.05em;color:var(--map-text-dim);border-bottom:1px solid var(--map-border-mid);font-size:10px}.hc-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--map-green);cursor:pointer;justify-self:center}.hc-label{background:var(--map-surface);border:1px solid var(--map-border-mid);color:var(--map-text);font-size:12px;font-family:var(--map-font);border-radius:4px;min-width:0;padding:5px 8px}.hc-row select{background:var(--map-surface);border:1px solid var(--map-border-mid);color:var(--map-text);font-size:11.5px;font-family:var(--map-font);border-radius:4px;padding:5px 6px}.hc-slider{align-items:center;gap:8px;display:flex}.hc-slider input[type=range]{accent-color:var(--map-accent);cursor:pointer;flex:1;min-width:50px}.hc-num{color:var(--map-text-mid);align-items:center;gap:5px;font-size:12px;display:flex}.hc-num input{background:var(--map-surface);border:1px solid var(--map-border-mid);width:64px;color:var(--map-text);font-size:12px;font-family:var(--map-font);border-radius:4px;padding:6px 8px}.user-create select{background:var(--map-surface);border:1px solid var(--map-border-mid);color:var(--map-text);font-size:12.5px;font-family:var(--map-font);border-radius:5px;padding:7px 9px}.alert-feed-float{z-index:120;pointer-events:all;width:360px;position:fixed;bottom:24px;right:24px}.alert-feed{background:var(--map-base);border:1px solid var(--map-border);border-radius:8px;overflow:hidden;box-shadow:0 8px 32px #0009}.alert-feed-header{background:var(--map-surface);border-bottom:1px solid var(--map-border-mid);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.alert-feed-title{letter-spacing:.12em;color:var(--map-text);align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.alert-badge{background:var(--map-red);color:#fff;border-radius:10px;padding:1px 7px;font-size:10px;font-weight:700}.alert-clear-btn{border:1px solid var(--map-border);color:var(--map-text-mid);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-size:11px}.alert-clear-btn:hover{border-color:var(--map-text-mid)}.alert-feed-list{max-height:280px;overflow-y:auto}.alert-empty{color:var(--map-text-dim);text-align:center;padding:16px;font-size:12px}.alert-item{border-bottom:1px solid var(--map-border-mid);padding:9px 12px 9px 14px}.alert-item:last-child{border-bottom:none}.alert-item-top{align-items:center;gap:8px;margin-bottom:3px;display:flex}.alert-severity{letter-spacing:.1em;font-size:10px;font-weight:800}.alert-rule-name{color:var(--map-text);flex:1;font-size:11px}.alert-time{color:var(--map-text-dim);font-variant-numeric:tabular-nums;font-size:10px}.alert-message{color:var(--map-text-mid);font-size:11.5px;line-height:1.45}.alert-deviation{color:var(--map-amber);font-variant-numeric:tabular-nums;margin-top:3px;font-size:11px}.rules-view{box-sizing:border-box;height:100%;padding:24px 28px;overflow-y:auto}.rules-header{margin-bottom:24px}.rules-header h2{color:var(--map-text);margin:0 0 6px;font-size:18px;font-weight:700}.rules-sub{color:var(--map-text-mid);margin:0 0 14px;font-size:12.5px}.rules-loading{color:var(--map-text-dim);font-size:13px}.rules-list{flex-direction:column;gap:10px;display:flex}.rule-card{background:var(--map-surface);border:1px solid var(--map-border);border-radius:7px;padding:13px 16px}.rule-card.rule-disabled{opacity:.5}.rule-card-top{align-items:center;gap:10px;margin-bottom:6px;display:flex}.rule-toggle{cursor:pointer;flex:1;align-items:center;gap:8px;display:flex}.rule-toggle input{accent-color:var(--map-accent)}.rule-name{color:var(--map-text);font-size:13px;font-weight:600}.rule-severity-badge{letter-spacing:.1em;border:1px solid;border-radius:4px;padding:2px 7px;font-size:10px;font-weight:700}.rule-builtin-badge{background:var(--map-elevated);color:var(--map-text-dim);letter-spacing:.08em;border-radius:4px;padding:2px 6px;font-size:9px}.rule-meta{gap:10px;margin-bottom:6px;display:flex}.rule-type-label{color:var(--map-text-mid);font-size:11.5px}.rule-harness{background:var(--map-elevated);color:var(--map-blue);border-radius:4px;padding:1px 7px;font-size:11px}.rule-params{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.rule-param{background:var(--map-elevated);border-radius:5px;gap:6px;padding:3px 9px;font-size:11px;display:flex}.rule-param-key{color:var(--map-text-dim)}.rule-param-val{color:var(--map-accent);font-variant-numeric:tabular-nums;font-weight:600}.rule-actions{gap:8px;display:flex}.modal-overlay{z-index:300;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:var(--map-surface);border:1px solid var(--map-border);border-radius:10px;flex-direction:column;gap:14px;width:100%;min-width:380px;max-width:480px;padding:24px 28px;display:flex}.modal-panel h3{color:var(--map-text);margin:0;font-size:16px}.modal-confirm{max-width:340px}.modal-confirm p{color:var(--map-text-mid);margin:0;font-size:13px}.modal-error{border:1px solid var(--map-red);color:var(--map-red);background:#ff3d5a1f;border-radius:5px;padding:8px 12px;font-size:12px}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.field-label{color:var(--map-text-mid);flex-direction:column;gap:5px;font-size:12px;display:flex}.field-hint{color:var(--map-text-dim);margin-left:6px;font-size:10.5px}.field-input{background:var(--map-base);border:1px solid var(--map-border);color:var(--map-text);font-size:12.5px;font-family:var(--map-font);border-radius:5px;padding:8px 10px}.field-input:focus{border-color:var(--map-accent);outline:none}.btn-primary{background:var(--map-accent);color:#1a1200;cursor:pointer;border:none;border-radius:5px;padding:7px 16px;font-size:12.5px;font-weight:700}.btn-primary:hover{opacity:.88}.btn-primary.btn-danger{background:var(--map-red);color:#fff}.btn-ghost{border:1px solid var(--map-border);color:var(--map-text-mid);cursor:pointer;background:0 0;border-radius:5px;padding:7px 14px;font-size:12.5px}.btn-ghost:hover{border-color:var(--map-text-mid);color:var(--map-text)}.btn-ghost.btn-danger:hover{border-color:var(--map-red);color:var(--map-red)}.gps-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gps-head .panel-title{margin-bottom:8px}.gps-status{font-family:var(--map-mono);letter-spacing:.08em;white-space:nowrap;border:1px solid;border-radius:5px;padding:2px 7px;font-size:10px;font-weight:700}.gps-status.sm{padding:1px 5px;font-size:9px}.gps-st-nom{color:var(--map-green)}.gps-st-spoof{color:var(--map-red)}.gps-st-meac{color:#c97ee0}.gps-st-jam{color:var(--map-amber)}.gps-st-stale{color:var(--map-text-dim)}.gps-fix{font-family:var(--map-mono);align-items:baseline;gap:8px;margin:8px 0 12px;display:flex}.gps-fix-label{color:var(--map-text-dim);letter-spacing:.1em;font-size:10px}.gps-fix-val{color:var(--map-text);font-size:14px;font-weight:600}.gps-tick{color:var(--map-text-dim);margin-left:auto;font-size:11px}.gps-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.gps-metric{background:var(--map-surface);border:1px solid var(--map-border);border-radius:7px;flex-direction:column;gap:2px;padding:6px 9px;display:flex}.gps-metric.warn{border-color:var(--map-red)}.gps-metric-label{letter-spacing:.1em;text-transform:uppercase;color:var(--map-text-dim);font-size:9px}.gps-metric-value{font-family:var(--map-mono);color:var(--map-text);font-size:15px;font-weight:600}.gps-metric.warn .gps-metric-value{color:var(--map-red)}.gps-metric-unit{color:var(--map-text-dim);font-size:11px;font-weight:400}.gps-view-top{grid-template-columns:minmax(280px,1fr) minmax(220px,.8fr);gap:16px;margin-bottom:20px;display:grid}.gps-spark-panel .panel-title{margin-bottom:6px}.gps-spark{align-items:flex-end;gap:2px;width:100%;height:56px;display:flex}.gps-spark-bar{opacity:.85;border-radius:1px 1px 0 0;flex:1;min-width:2px}.gps-spark-empty{color:var(--map-text-dim)}.gps-table-wrap{max-height:52vh;overflow:auto}.gps-table{border-collapse:collapse;width:100%;font-family:var(--map-mono);font-size:12px}.gps-table th{background:var(--map-panel);color:var(--map-text-dim);text-align:left;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--map-border);padding:6px 8px;font-size:10px;font-weight:700;position:sticky;top:0}.gps-table td{border-bottom:1px solid var(--map-border);color:var(--map-text-mid);padding:5px 8px}.gps-table td.warn{color:var(--map-red);font-weight:700}.gps-table tbody tr:hover{background:var(--map-surface)}.sv-tables{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.sv-panel .gps-head{margin-bottom:8px}.sv-count{font-family:var(--map-mono);font-size:12px;font-weight:700}.sv-table td,.sv-table th{white-space:nowrap}.sv-elbar-cell{width:64px}.sv-elbar{background:var(--map-surface);vertical-align:middle;border-radius:3px;width:56px;height:6px;display:inline-block;overflow:hidden}.sv-elbar-fill{border-radius:3px;height:100%;display:block}.sat-group{border:1px solid var(--map-border);border-radius:8px;margin-top:8px}.sat-group>summary{cursor:pointer;font-family:var(--map-mono);letter-spacing:.04em;color:var(--map-text-mid);padding:8px 12px;font-size:12px;font-weight:700;list-style:none}.sat-group>summary::-webkit-details-marker{display:none}.sat-group[open]>summary{border-bottom:1px solid var(--map-border);color:var(--map-text)}.sat-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px 14px;padding:10px 12px;display:grid}.sat-cat-row{align-items:center;gap:8px;padding:3px 0;font-size:12px;display:flex}.sat-cat-row.off{opacity:.5}.sat-cat-prn{font-family:var(--map-mono);color:var(--map-text);min-width:64px}.sat-cat-label{color:var(--map-text-dim)}.nav-collapse-btn{color:var(--map-text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;margin-left:auto;padding:4px;display:inline-flex}.nav-collapse-btn:hover{background:var(--map-surface);color:var(--map-text)}.nav-collapse-btn .nav-icon{width:16px;height:16px}.app-shell.nav-collapsed{grid-template-columns:56px 1fr}.app-shell.nav-collapsed .brand-name,.app-shell.nav-collapsed .nav-text,.app-shell.nav-collapsed .sidebar-foot{display:none}.app-shell.nav-collapsed .sidebar-brand{justify-content:center;gap:0;padding:6px 0 12px}.app-shell.nav-collapsed .nav-collapse-btn{margin-left:0}.app-shell.nav-collapsed .nav-item{justify-content:center;gap:0;padding:9px 0}.sys-block{flex-direction:column;gap:8px;display:flex}.sys-badge{font-family:var(--map-mono);letter-spacing:.08em;border:1px solid;border-radius:6px;align-self:flex-start;padding:4px 9px;font-size:11px;font-weight:700}.sys-badge.ok{color:var(--map-green)}.sys-badge.alert{color:var(--map-red)}.sys-line{color:var(--map-text-mid);font-size:13px}.sys-line b{color:var(--map-text);font-weight:700}.sys-dev{color:var(--map-red);font-weight:700}.sys-sub{color:var(--map-text-dim);font-size:12px;font-family:var(--map-mono)}.sat-bulk{gap:8px;padding:8px 12px 0;display:flex}.sat-bulk button{border:1px solid var(--map-border);background:var(--map-surface);color:var(--map-text-mid);cursor:pointer;border-radius:6px;padding:3px 10px;font-size:11px}.sat-bulk button:hover{border-color:var(--map-accent);color:var(--map-text)}.tb-controls{border-left:1px solid var(--map-border);align-items:center;gap:10px;margin-left:14px;padding-left:14px;display:flex}.tb-scenario{background:var(--map-surface);color:var(--map-text);border:1px solid var(--map-border);font-family:var(--map-font);cursor:pointer;border-radius:7px;max-width:220px;padding:5px 8px;font-size:12.5px}.tb-scenario:disabled{opacity:.6;cursor:not-allowed}.tb-clock{font-family:var(--map-mono);color:var(--map-text-dim);font-variant-numeric:tabular-nums;font-size:12px}.tb-progress{background:var(--map-surface);border-radius:2px;width:120px;height:4px;overflow:hidden}.tb-progress-bar{background:var(--map-accent);height:100%;transition:width .3s linear;display:block}.sat-toggle-btn{border:1px solid var(--map-panel-border);background:var(--map-panel);color:var(--map-text-mid);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:8px;grid-area:4/1;place-self:end start;align-items:center;gap:7px;padding:7px 12px;font-size:12.5px;display:inline-flex}.sat-toggle-btn.on{color:var(--map-accent);border-color:var(--map-accent)}.sat-toggle-btn:hover{color:var(--map-text)}.deg-rail .gps-head{margin-bottom:8px}.deg-list{flex-direction:column;gap:4px;display:flex}.deg-row{background:var(--map-surface);border-radius:7px;align-items:center;gap:8px;padding:5px 8px;font-size:12.5px;display:flex}.deg-dot{background:var(--map-green);border-radius:50%;flex:0 0 8px;width:8px;height:8px}.deg-row.warn .deg-dot{background:var(--map-amber)}.deg-row.alert .deg-dot{background:var(--map-red);box-shadow:0 0 8px var(--map-red)}.deg-name{color:var(--map-text);flex:1}.deg-meta{font-family:var(--map-mono);color:var(--map-text-dim);font-size:11px}.deg-row.warn .deg-meta,.deg-row.alert .deg-meta{color:var(--map-red)}.deg-foot{color:var(--map-text-dim);margin-top:8px;font-size:11px}.coverage-view{grid-template-columns:1fr 380px;display:grid;position:absolute;inset:0}.coverage-globe{position:relative}.coverage-hint{background:var(--map-panel);border:1px solid var(--map-panel-border);color:var(--map-text-mid);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:8px;padding:8px 14px;font-size:13px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.coverage-panel{background:var(--map-void);border-left:1px solid var(--map-border);padding:18px 20px;overflow-y:auto}.cov-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.cov-total{font-family:var(--map-mono);color:var(--map-text);font-size:18px;font-weight:700}.cov-conf{font-family:var(--map-mono);border:1px solid;border-radius:6px;padding:3px 9px;font-size:12px;font-weight:700}.cov-conf.conf-high{color:var(--map-green)}.cov-conf.conf-medium{color:var(--map-amber)}.cov-conf.conf-low{color:var(--map-red)}.cov-bars{flex-direction:column;gap:6px;margin-top:10px;display:flex}.cov-bar-row{align-items:center;gap:8px;font-size:12.5px;display:flex}.cov-swatch{border-radius:50%;flex:0 0 10px;width:10px;height:10px;display:inline-block}.cov-bar-label{width:64px;color:var(--map-text-mid)}.cov-bar-track{background:var(--map-surface);border-radius:4px;flex:1;height:7px;overflow:hidden}.cov-bar-fill{border-radius:4px;height:100%;display:block}.cov-bar-n{text-align:right;width:24px;font-family:var(--map-mono);color:var(--map-text)}.sim-table .sim-stale{opacity:.5}.tb-attack{position:relative}.tb-attack-btn{align-items:center;gap:6px;display:inline-flex}.tb-attack-backdrop{z-index:40;position:fixed;inset:0}.tb-attack-pop{z-index:41;background:var(--map-panel);border:1px solid var(--map-panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;min-width:230px;padding:10px 12px;position:absolute;top:110%;left:0;box-shadow:0 12px 32px #00000080}.tb-attack-row{color:var(--map-text);cursor:pointer;align-items:center;gap:8px;padding:4px 2px;font-size:12.5px;display:flex}.tb-attack-row input{accent-color:var(--map-accent)}.tb-attack-sep{background:var(--map-border);height:1px;margin:6px 0}.tb-attack-hint{color:var(--map-text-dim);margin:8px 0 0;font-size:10.5px}.val-summary{font-family:var(--map-mono);border:1px solid;border-radius:8px;margin:8px 0 4px;padding:6px 12px;font-size:13px;font-weight:700;display:inline-block}.val-summary.ok{color:var(--map-green)}.val-summary.bad{color:var(--map-red)}
