:root{--bg: #0b0f17;--bg-elev: #121826;--bg-elev2: #1a2333;--border: #243044;--text: #e6edf6;--text-dim: #93a1b5;--accent: #4f8cff;--allow: #2ea043;--deny: #e5484d;--gate: #f5a524;--pci: #e5484d;--pii: #f5a524;--crown: #a371f7;--mono: ui-monospace, "Cascadia Code", "JetBrains Mono", Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:dark}:root[data-theme=light]{--bg: #f6f8fb;--bg-elev: #ffffff;--bg-elev2: #eef2f7;--border: #d3dbe6;--text: #14202e;--text-dim: #5a6b80;--accent: #2563eb;--allow: #1a7f37;--deny: #d1242f;--gate: #bf8700;--pci: #d1242f;--pii: #bf8700;--crown: #8250df;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px}a{color:inherit;text-decoration:none}.app{display:grid;grid-template-columns:232px 1fr;grid-template-rows:56px 1fr;height:100vh}.topbar{grid-column:1 / 3;display:flex;align-items:center;gap:16px;padding:0 20px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.brand{font-weight:700;letter-spacing:.5px;font-size:16px}.brand .spark{color:var(--accent)}.topbar .spacer{flex:1}.topbar .identity-chip{min-width:0;max-width:260px;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tenant{background:var(--bg-elev2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 10px;font-size:13px}.kill{background:transparent;color:var(--deny);border:1px solid var(--deny);border-radius:8px;padding:7px 14px;font-weight:700;cursor:pointer;letter-spacing:.3px}.kill:hover{background:var(--deny);color:#fff}.sidebar{border-right:1px solid var(--border);background:var(--bg-elev);padding:12px 8px;overflow-y:auto}.navlink{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--text-dim);font-weight:500;margin-bottom:2px}.navlink:hover{background:var(--bg-elev2);color:var(--text)}.navlink.active{background:var(--bg-elev2);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.nav-section{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:1px;padding:14px 12px 6px}.main{overflow-y:auto;padding:24px 28px}.page-title{font-size:22px;font-weight:700;margin:0 0 4px}.page-sub{color:var(--text-dim);margin:0 0 22px}.grid{display:grid;gap:16px}.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}@media(max-width:1100px){.cols-3,.cols-4{grid-template-columns:1fr 1fr}.cols-2{grid-template-columns:1fr}}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:18px}.card-link{cursor:pointer;transition:border-color .12s ease,transform .12s ease}.card-link:hover{border-color:var(--accent);transform:translateY(-1px)}.card h3{margin:0 0 12px;font-size:14px}.stat{font-size:30px;font-weight:700}.stat-label{color:var(--text-dim);font-size:12px;text-transform:uppercase;letter-spacing:.6px}.badge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--border)}.badge.allow{color:var(--allow);border-color:var(--allow)}.badge.deny{color:var(--deny);border-color:var(--deny)}.badge.gate{color:var(--gate);border-color:var(--gate)}.badge.tier{color:var(--text-dim);font-family:var(--mono)}.badge.pci{color:var(--pci);border-color:var(--pci)}.badge.pii{color:var(--pii);border-color:var(--pii)}.badge.crown{color:var(--crown);border-color:var(--crown)}.badge.surface{color:var(--accent);border-color:var(--accent);text-transform:uppercase;font-size:11px}.badge.surface.scope-entry{text-transform:none;font-family:var(--mono);white-space:normal;overflow-wrap:anywhere;max-width:100%}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px}th{color:var(--text-dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.6px}tr:last-child td{border-bottom:none}.mono{font-family:var(--mono)}.dim{color:var(--text-dim)}label.field{display:block;margin-bottom:14px}label.field span{display:block;color:var(--text-dim);font-size:12px;margin-bottom:5px}select,input[type=text],input[type=password],input[type=email]{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 10px;font-size:13px;font-family:var(--sans)}.check{display:flex;align-items:center;gap:8px;margin-bottom:9px;color:var(--text-dim)}.check input{accent-color:var(--accent)}.btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px 16px;font-weight:600;cursor:pointer}.btn:hover{filter:brightness(1.08)}.decision-box{border-radius:12px;padding:20px;text-align:center;border:1px solid var(--border)}.decision-box.allow{border-color:var(--allow);background:#2ea04314}.decision-box.deny{border-color:var(--deny);background:#e5484d14}.decision-box.gate{border-color:var(--gate);background:#f5a52414}.decision-box .verdict{font-size:26px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.decision-box .reason{margin-top:6px;font-family:var(--mono);color:var(--text-dim)}.source-tag{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim)}.notice{font-size:12px;color:var(--text-dim);background:var(--bg-elev2);border:1px solid var(--border);border-radius:8px;padding:10px 12px}pre.evidence{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin:4px 0 0;font-size:12px;color:var(--text);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.theme-toggle{background:var(--bg-elev2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:15px;line-height:1;cursor:pointer}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.assistant-btn{background:var(--bg-elev2);color:var(--accent);border:1px solid var(--accent);border-radius:8px;padding:6px 12px;font-weight:600;cursor:pointer}.assistant-btn:hover{background:var(--accent);color:#fff}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:50}.drawer{position:absolute;top:0;right:0;height:100%;width:420px;max-width:92vw;background:var(--bg-elev);border-left:1px solid var(--border);display:flex;flex-direction:column}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.drawer-close{background:transparent;border:none;color:var(--text-dim);font-size:16px;cursor:pointer}.drawer-body{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.msg-role{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);margin-bottom:3px}.msg-text{font-size:13px;line-height:1.5}.msg.you .msg-text{color:var(--text)}.msg.assistant .msg-text{color:var(--text-dim)}.msg.assistant{border-left:2px solid var(--accent);padding-left:10px}.drawer-input{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.drawer-input input{flex:1}.drawer-foot{font-size:11px;color:var(--text-dim);padding:0 16px 12px}.mission-hero{position:relative;overflow:hidden}.mission-track{display:flex;align-items:flex-start;justify-content:space-between;margin-top:8px}.mission-phase{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;text-align:center}.mission-dot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--border);color:var(--text-dim);background:var(--bg-elev);font-weight:700;z-index:2}.mission-phase.done .mission-dot{border-color:var(--allow);color:var(--allow)}.mission-phase.active .mission-dot{border-color:var(--accent);color:var(--accent);animation:mission-pulse 1.4s infinite}.mission-phase-name{font-size:12px;margin-top:6px;color:var(--text-dim)}.mission-phase.done .mission-phase-name,.mission-phase.active .mission-phase-name{color:var(--text)}.mission-line{position:absolute;top:17px;left:50%;width:100%;height:2px;background:var(--border);z-index:1}.mission-line.lit{background:var(--allow)}@keyframes mission-pulse{0%,to{box-shadow:0 0 #4f8cff80}50%{box-shadow:0 0 0 6px #4f8cff00}}.mission-badges{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mission-badge{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:10px;opacity:.5;filter:grayscale(1);transition:all .3s ease}.mission-badge.got{opacity:1;filter:none;border-color:var(--accent);box-shadow:inset 0 0 0 1px #4f8cff33}.mission-badge-icon{font-size:22px;width:30px;text-align:center}.mission-feed{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:12px}.mission-feed-line{display:flex;gap:8px;align-items:baseline;animation:mission-in .3s ease}@keyframes mission-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(max-width:700px){.mission-badges{grid-template-columns:1fr}.mission-phase-name{font-size:10px}}.console-body{font-family:var(--mono);font-size:12px;gap:4px}.console-line{line-height:1.5;word-break:break-word;border-bottom:1px solid var(--bg-elev2);padding-bottom:3px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{width:360px;max-width:92vw}.hamburger{display:none;background:transparent;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:5px 10px;margin-right:4px;cursor:pointer;font-size:15px}.view-select{max-width:130px}.table-scroll{overflow-x:auto}.nav-backdrop{position:fixed;top:56px;right:0;bottom:0;left:0;background:#00000073;z-index:30}.app.force-desktop{min-width:1200px}.app.compact{grid-template-columns:1fr}.app.compact .hamburger{display:inline-flex}.app.compact .topbar{gap:10px}.app.compact .subtitle,.app.compact .principal{display:none}.app.compact .sidebar{position:fixed;top:56px;left:0;bottom:0;width:232px;z-index:31;transform:translate(-110%);transition:transform .18s ease}.app.compact .sidebar.open{transform:translate(0);box-shadow:8px 0 40px #00000080}.app.compact .main{padding:16px 14px}.app.compact .cols-2,.app.compact .cols-3,.app.compact .cols-4{grid-template-columns:1fr}.app.compact .page-title{font-size:19px}input[type=number]{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 10px;font-size:13px;font-family:var(--sans)}.btn:disabled,.assistant-btn:disabled{opacity:.55;cursor:not-allowed;filter:none}a.btn{display:inline-block}.small-btn{padding:3px 8px;font-size:12px;display:inline-block}.danger-btn{color:var(--deny);border-color:var(--deny)}.danger-btn:hover{background:var(--deny);color:#fff}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font:inherit}.page-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:18px}.card-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}.scan-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.scan-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.scan-filters select{width:auto;min-width:140px}.scan-filters input[type=text]{flex:1;min-width:200px;width:auto}.scan-banner{margin-bottom:14px;color:var(--gate);border-color:var(--gate);font-size:13px}.scan-error{margin-bottom:12px;color:var(--deny);border-color:var(--deny)}.scan-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px;font-size:12px;color:var(--text-dim)}.scan-sev-counts{white-space:nowrap}.field-label{font-size:12px;margin:4px 0 8px}.plain-list{margin:0;padding-left:18px;font-size:13px;line-height:1.6}.kv-grid{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:12px}.scan-live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:mission-pulse 1.4s infinite}.progress{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:6px;overflow:hidden}.progress-fill{height:100%;transition:width .6s ease}.progress.indeterminate .progress-fill{animation:progress-slide 1.2s ease-in-out infinite}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(300%)}}.scan-stepper .mission-phase.failed .mission-dot{border-color:var(--deny);color:var(--deny)}.scan-stepper .mission-phase.skipped .mission-dot{border-style:dashed;color:var(--text-dim)}.scan-stepper .mission-phase.failed .mission-phase-name{color:var(--deny)}.scan-step-note{font-size:10px;color:var(--text-dim);margin-top:2px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){.scan-stepper{overflow-x:auto}.scan-stepper .mission-phase{min-width:64px}}.log-pane-wrap{border:1px solid var(--border);border-radius:8px;background:var(--bg)}.log-pane{overflow-y:auto;padding:10px 12px;font-family:var(--mono);font-size:12px;min-height:120px}.log-line{display:flex;gap:10px;align-items:baseline}.log-time{flex:none;font-size:11px}.log-stage{flex:none;color:var(--accent);font-size:11px;min-width:90px}.log-pane-foot{font-size:11px;padding:6px 12px;border-top:1px solid var(--border)}.finding-row{cursor:pointer}.finding-row:hover td,.finding-detail td{background:var(--bg-elev2)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:14px}.seg-opt{padding:6px 12px;font-size:13px;color:var(--text-dim);cursor:pointer;display:flex;gap:6px;align-items:center}.seg-opt input{accent-color:var(--accent)}.seg-opt.on{background:var(--bg-elev2);color:var(--text)}.menu-wrap{position:relative;display:inline-block}.menu-pop{position:absolute;right:0;top:calc(100% + 4px);z-index:20;min-width:170px;display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:0 8px 24px #00000059}.menu-pop button{background:none;border:none;color:var(--text);text-align:left;padding:7px 10px;border-radius:6px;cursor:pointer;font-size:13px}.menu-pop button:hover{background:var(--bg-elev2);color:var(--accent)}.repo-panel{margin-top:8px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.report-frame{width:100%;min-height:600px;border:1px solid var(--border);border-radius:8px;background:#fff;margin-top:12px}@media print{.topbar,.sidebar,.nav-backdrop,.drawer-overlay,.no-print,.kill,.hamburger{display:none!important}.app{display:block;height:auto}.main{overflow:visible;padding:0}body{background:#fff;color:#000}.card{break-inside:avoid;border-color:#ccc;background:#fff}.report-frame{border:none;margin:0}.table-scroll{overflow:visible}}.chain-graph-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;margin-bottom:8px;align-items:center}.chain-card{border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-top:10px;background:var(--bg-elev)}.chain-card.selected{border-color:var(--crown);box-shadow:0 0 0 1px var(--crown) inset}.chain-steps{margin:6px 0 8px;padding-left:22px}.chain-steps li{margin-bottom:8px}.fix-card{border:1px solid var(--border);border-radius:6px;padding:10px;margin-top:8px}.diff-view{max-height:360px;overflow:auto}.diff-view .diff-add{color:var(--allow)}.diff-view .diff-del{color:var(--deny)}.diff-view .diff-hunk{color:var(--crown)}.diff-view .diff-file{color:var(--text-dim)}.scan-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.scan-tabs button{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);padding:8px 12px;cursor:pointer;font:inherit}.scan-tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.activity-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);vertical-align:middle}.activity-dot.hollow{background:transparent;border:1.5px solid var(--text-dim);width:6px;height:6px}.activity-dot.stalled{background:var(--gate)}.activity-dot.spin{background:transparent;border:2px solid var(--border);border-top-color:var(--accent);width:9px;height:9px;animation:activity-spin .9s linear infinite;margin-right:4px}@keyframes activity-spin{to{transform:rotate(360deg)}}.badge.running{color:var(--accent);border-color:var(--accent)}.badge.stalled{color:var(--gate);border-color:var(--gate)}.activity-dur{font-weight:500;opacity:.85}.loading-note{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.loading-note.failed{color:var(--deny);border-color:var(--deny)}.inflight-run{font-size:12px;margin:10px 0}.global-activity{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text);text-decoration:none;padding:5px 10px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elev2);white-space:nowrap}.global-activity:hover{border-color:var(--accent)}.global-activity.warn{border-color:var(--gate)}.global-activity .ga-warn{color:var(--gate);font-weight:600}.stream-dot{color:var(--text-dim)}.stream-dot.live{color:var(--allow)}.stream-dot.connecting,.stream-dot.reconnecting{color:var(--gate);animation:stream-pulse 1.2s ease-in-out infinite}.stream-dot.offline{color:var(--deny)}@keyframes stream-pulse{0%,to{opacity:1}50%{opacity:.3}}.unread-count{margin-left:6px;font-size:10px;font-weight:700;background:var(--accent);color:#fff;border-radius:999px;padding:1px 6px}.kill.busy,.kill:disabled{opacity:.8;cursor:wait}.console-time{color:var(--text-dim);font-size:11px;margin-right:6px}.console-scan{color:var(--accent);font-size:11px;text-decoration:none}.console-scan:hover{text-decoration:underline}.console-new{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:6px;vertical-align:middle}.console-group{border-bottom:1px solid var(--bg-elev2);padding-bottom:6px}.console-group summary{cursor:pointer;font-size:12px;margin-bottom:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:100%;max-width:400px}.toaster{position:fixed;right:16px;bottom:16px;z-index:90;display:flex;flex-direction:column;gap:8px;max-width:min(380px,calc(100vw - 32px))}.toast{display:flex;gap:10px;align-items:flex-start;background:var(--bg-elev);border:1px solid var(--border);border-left-width:3px;border-radius:10px;padding:10px 12px;box-shadow:0 6px 24px #00000040;font-size:13px;animation:mission-in .2s ease-out}.toast-success{border-left-color:var(--allow)}.toast-error{border-left-color:var(--deny)}.toast-warn{border-left-color:var(--gate)}.toast-info{border-left-color:var(--accent)}.toast-glyph{line-height:1.4}.toast-success .toast-glyph{color:var(--allow)}.toast-error .toast-glyph{color:var(--deny)}.toast-warn .toast-glyph{color:var(--gate)}.toast-info .toast-glyph{color:var(--accent)}.toast-body{flex:1;min-width:0}.toast-title{font-weight:600;color:var(--text)}.toast-detail{color:var(--text-dim);font-size:12px;margin-top:2px;word-break:break-word}.toast-link{font-size:12px;color:var(--accent)}.app.compact .global-activity{padding:4px 8px}@media print{.toaster,.modal-overlay,.global-activity{display:none!important}}@media(prefers-reduced-motion:reduce){.activity-dot.spin,.stream-dot.connecting,.stream-dot.reconnecting,.progress.indeterminate .progress-fill,.scan-live-dot{animation:none}}.db-banner{position:sticky;top:-24px;z-index:5;margin:-24px -28px 16px;border-radius:0;border-left:0;border-right:0;border-top:0;color:var(--gate);border-color:var(--gate);font-size:13px}.login-card .db-banner{position:static;margin:0 0 12px;border-radius:8px;border:1px solid var(--gate)}.app.compact .db-banner{top:-16px;margin:-16px -14px 12px}.db-pill{font-size:12px;color:var(--gate);border:1px solid var(--gate);border-radius:999px;padding:3px 10px;white-space:nowrap}.app.compact .db-pill{display:none}@keyframes focus-glow{0%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:0 0 0 0 transparent}}tr.row-focus>td{background:color-mix(in srgb,var(--accent) 10%,transparent)}tr.row-focus>td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.fix-card.focus,.chain-card.focus,.card.focus{border-color:var(--accent);animation:focus-glow 2.5s ease-out 2}.fix-approval{font-size:12px;margin-top:8px;padding:6px 8px;border-radius:6px;border:1px solid var(--border)}.fix-approval.pending{border-color:var(--gate)}.fix-approval.approved{border-color:var(--allow)}.fix-approval.denied{border-color:var(--deny)}.btn-ready{border-color:var(--allow)!important;color:var(--allow)!important;box-shadow:0 0 0 1px var(--allow)}.fix-replacement{border:1px solid var(--border);border-radius:6px;padding:8px;margin-bottom:8px}.fix-replacement textarea{width:100%;font-size:12px}.fix-comment{border-left:2px solid var(--border);padding:4px 0 4px 10px;margin-bottom:8px}.fix-queue-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.fix-queue-tabs button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}:root{--viz-grid: #243044;--viz-axis: #93a1b5;--viz-opened: #3987e5;--viz-closed-verified: #199e70;--viz-closed-other: #9085e9;--viz-closed-all: #6b88b5;--viz-reopened: #d95926;--viz-over: #e6e9ef;--viz-score: #3987e5;--viz-target: #e6edf6;--viz-sev-critical: #e5484d;--viz-sev-high: #f08a4b;--viz-sev-medium: #e9b44c;--viz-sev-low: #f6dc9b;--viz-sev-info: #6b7280}:root[data-theme=light]{--viz-grid: #e3e8ef;--viz-axis: #5a6b80;--viz-opened: #2a78d6;--viz-closed-verified: #1baf7a;--viz-closed-other: #6250d6;--viz-closed-all: #8aa1c4;--viz-reopened: #eb6834;--viz-over: #14202e;--viz-score: #2a78d6;--viz-target: #14202e;--viz-sev-critical: #9b1c1c;--viz-sev-high: #c2410c;--viz-sev-medium: #d97706;--viz-sev-low: #f2b84b;--viz-sev-info: #9ca3af}.viz-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}.viz-filters select,.viz-filters input{width:auto}.viz{position:relative;width:100%;min-width:0;overflow:hidden}.grid>.card{min-width:0}.viz svg{display:block}.viz-grid{stroke:var(--viz-grid);stroke-width:1}.viz-axis{fill:var(--viz-axis);font-size:10px}.viz-axis.strong{fill:var(--text);font-size:12px}.viz-value{fill:var(--text);font-size:11px}.viz-line{stroke-width:2;stroke-linejoin:round}.viz-dot{stroke:var(--bg-elev);stroke-width:2}.viz-target{stroke:var(--viz-target);stroke-width:2}rect.viz-opened{fill:var(--viz-opened)}.viz-key.viz-opened{background:var(--viz-opened)}rect.viz-closed-verified{fill:var(--viz-closed-verified)}.viz-key.viz-closed-verified{background:var(--viz-closed-verified)}rect.viz-closed-other{fill:var(--viz-closed-other)}.viz-key.viz-closed-other{background:var(--viz-closed-other)}rect.viz-closed-all{fill:var(--viz-closed-all)}.viz-key.viz-closed-all{background:var(--viz-closed-all)}rect.viz-reopened{fill:var(--viz-reopened)}.viz-key.viz-reopened{background:var(--viz-reopened)}rect.viz-sev-critical{fill:var(--viz-sev-critical)}.viz-key.viz-sev-critical{background:var(--viz-sev-critical)}rect.viz-sev-high{fill:var(--viz-sev-high)}.viz-key.viz-sev-high{background:var(--viz-sev-high)}rect.viz-sev-medium{fill:var(--viz-sev-medium)}.viz-key.viz-sev-medium{background:var(--viz-sev-medium)}rect.viz-sev-low{fill:var(--viz-sev-low)}.viz-key.viz-sev-low{background:var(--viz-sev-low)}rect.viz-sev-info{fill:var(--viz-sev-info)}.viz-key.viz-sev-info{background:var(--viz-sev-info)}.viz-line.viz-over{stroke:var(--viz-over)}.viz-dot.viz-over{fill:var(--viz-over)}.viz-key.viz-over{background:var(--viz-over)}.viz-line.viz-score{stroke:var(--viz-score)}.viz-dot.viz-score{fill:var(--viz-score)}.viz-key.viz-target{background:var(--viz-target)}.viz-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--text-dim);margin:-4px 0 8px}.viz-key{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.viz-key.line{height:2px;width:14px;vertical-align:3px}.viz-tip{position:absolute;pointer-events:none;z-index:2;min-width:170px;font-size:12px;line-height:1.6;background:var(--bg-elev2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text)}.posture-page{min-width:0}.posture-page .grid>*{min-width:0}@media(max-width:700px){.viz-filters input[type=text]{min-width:0!important;flex:1}.posture-page .cols-2,.posture-page .cols-4{grid-template-columns:1fr}}.vm-timeline{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:4px 0 8px}.vm-step{font-size:12px;padding:3px 9px;border-radius:12px;border:1px solid var(--border);color:var(--text-dim)}.vm-step.done{color:var(--text);border-color:var(--allow)}.vm-step.active{color:var(--text);border-color:var(--accent);background:var(--bg);font-weight:600}.vm-log{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px}
