:root{--bg: #0a0f1c;--surface: #0f1729;--surface-2: #142039;--surface-3: #1a2847;--border: #22314f;--text: #dce4f2;--muted: #8a99b4;--accent: #a5a8ff;--accent-2: #c4b5fd;--on-accent: #10132a;--brand-tile: #1e2230;--brand-edge: #3a3f52;--track: #1c2a47;--gridline: #1b2742;--edge: #4a5d82;--ok: #33c48d;--info: #5aa2ff;--sev-critical: #ff4d5e;--sev-high: #ff8a3d;--sev-medium: #f2c14e;--sev-low: #38b98a;--sev-none: #55657f;--node-alert: #ff4d5e;--node-host: #4f8cff;--node-user: #9b7bff;--node-process: #2fc3d6;--node-ip: #ff8a3d;--node-domain: #38b98a;--node-file: #f2c14e;--shadow: 0 8px 28px rgba(0, 0, 0, .35);--radius: 10px;color-scheme:dark}:root[data-theme=light]{--bg: #f3f5f9;--surface: #ffffff;--surface-2: #f6f8fc;--surface-3: #ecf0f7;--border: #dbe1ec;--text: #17213a;--muted: #5b6882;--accent: #3b3fd8;--accent-2: #6d28d9;--on-accent: #ffffff;--brand-tile: #111318;--brand-edge: #111318;--track: #e6ebf3;--gridline: #eaeef5;--edge: #9aa7c0;--ok: #138a5e;--info: #2563eb;--sev-critical: #d92d3f;--sev-high: #e5651b;--sev-medium: #c99511;--sev-low: #1f9a6e;--sev-none: #8b97ad;--shadow: 0 8px 24px rgba(23, 33, 58, .12);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:13.5px/1.5 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:20px;font-weight:650;margin:0;letter-spacing:-.01em}h2{font-size:13px;font-weight:600;margin:0;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}h3{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:16px 0 6px}code,.mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.muted{color:var(--muted)}.small{font-size:12px}.wrap{overflow-wrap:anywhere}.push{margin-left:auto}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.rail{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.logo{display:flex;align-items:center;gap:10px;padding:18px 18px 22px;color:var(--text);font-weight:700;font-size:15px}.logo svg{flex:none}.logo:hover{text-decoration:none}.rail nav{display:grid;gap:2px;padding:0 10px}.rail nav a{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:8px;color:var(--muted);font-weight:500}.rail nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.rail nav a.active{background:var(--surface-3);color:var(--text);box-shadow:inset 3px 0 0 var(--accent)}.rail nav a.active svg{color:var(--accent)}.rail-foot{margin-top:auto;padding:16px 18px;display:grid;gap:2px;border-top:1px solid var(--border)}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:10px 24px;height:58px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.global-search{display:flex;align-items:center;gap:8px;flex:1;max-width:460px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:0 10px;color:var(--muted)}.global-search input{border:none;background:none;padding:8px 0;flex:1;color:var(--text)}.global-search input:focus{outline:none}.global-search:focus-within{border-color:var(--accent)}.user{margin-left:auto;display:flex;align-items:center;gap:10px}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff}.user-meta{display:grid;line-height:1.2}.content{padding:24px;max-width:1480px;width:100%}.stack,.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-3-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.page-head p{margin:4px 0 0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.kpis{display:grid;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr))}.kpis-5{grid-template-columns:repeat(5,minmax(0,1fr))}.kpi{display:grid;gap:4px;text-align:left;align-content:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;color:var(--text);font:inherit;position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--accent);opacity:.7}.kpi.clickable{cursor:pointer}.kpi.clickable:hover{border-color:var(--accent)}.kpi:disabled{cursor:default;opacity:1}.kpi-label{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.kpi-value{font-size:28px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}.kpi-sub{font-size:12px;color:var(--muted)}.kpi-danger:before{background:var(--sev-critical);opacity:1}.kpi-danger .kpi-value{color:var(--sev-critical)}.kpi-warn:before{background:var(--sev-medium);opacity:1}.kpi-ring{display:flex;align-items:center;justify-content:space-between}input,select,textarea{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:7px 10px}input:focus,select:focus,button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{font:inherit;font-weight:600;border-radius:7px;padding:7px 14px;cursor:pointer;background:var(--accent);color:var(--on-accent);border:1px solid var(--accent)}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:transparent;color:var(--text);border-color:var(--border)}.btn.secondary:hover{border-color:var(--accent)}.btn.danger{background:var(--sev-critical);border-color:var(--sev-critical)}.btn.small{padding:4px 10px;font-size:12px}.icon-btn{display:grid;place-items:center;width:32px;height:32px;border-radius:7px;cursor:pointer;background:transparent;color:var(--muted);border:1px solid var(--border)}.icon-btn:hover{color:var(--text);border-color:var(--accent)}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}.filters .search{flex:1;min-width:200px}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}.segmented button{font:inherit;background:var(--surface-2);color:var(--muted);border:none;padding:6px 10px;cursor:pointer;border-right:1px solid var(--border);text-transform:capitalize}.segmented button:last-child{border-right:none}.segmented button.on{background:var(--surface-3);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.sev{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:12px;text-transform:capitalize}.sev i{width:8px;height:8px;border-radius:2px;background:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 22%,transparent)}.pill{display:inline-block;padding:1px 9px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;text-transform:capitalize;border:1px solid transparent}.pill-ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.pill-info{color:var(--info);background:color-mix(in srgb,var(--info) 14%,transparent)}.pill-warn{color:var(--sev-medium);background:color-mix(in srgb,var(--sev-medium) 15%,transparent)}.pill-danger{color:var(--sev-critical);background:color-mix(in srgb,var(--sev-critical) 14%,transparent)}.pill-neutral{color:var(--muted);background:var(--surface-3)}.tag{display:inline-block;padding:0 7px;border-radius:5px;font-size:11px;font-weight:600;color:var(--muted);border:1px solid var(--border);background:var(--surface-2);vertical-align:middle}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);font-size:12px}.chip-btn{font:inherit;font-size:11.5px;cursor:pointer;padding:1px 7px;margin:1px 4px 1px 0;border-radius:5px;background:var(--surface-3);color:var(--accent);border:1px solid var(--border)}.chip-btn:hover{border-color:var(--accent)}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:top}.table th{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.table.compact th,.table.compact td{padding:6px 8px}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-2)}.table td.sev-cell{width:4px;padding:0}.table td.actions{white-space:nowrap;display:flex;gap:8px;align-items:center}.table td.clip{max-width:340px;overflow-wrap:anywhere}.scorebar{position:relative;width:120px;height:18px;background:var(--track);border-radius:4px;overflow:hidden}.scorebar span{position:absolute;inset:0 auto 0 0;opacity:.85}.scorebar b{position:relative;display:block;padding-left:6px;font-size:11.5px;line-height:18px}.chart{width:100%;height:auto;display:block}.gridline{stroke:var(--gridline);stroke-width:1}.axis{fill:var(--muted);font-size:10px}.bar-value{fill:var(--text);font-size:10px;font-weight:600}.sev-legend{display:flex;gap:16px;margin-top:8px}.donut{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.donut-center{fill:var(--text);font-size:26px;font-weight:700}.donut-sub{fill:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.legend{list-style:none;margin:0;padding:0;display:grid;gap:4px;flex:1;min-width:140px}.legend-item{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;width:100%;font:inherit;color:var(--text);background:none;border:none;padding:3px 4px;border-radius:5px;text-transform:capitalize;text-align:left;cursor:pointer}.legend-item:disabled{cursor:default}.legend-item:not(:disabled):hover{background:var(--surface-2)}.legend-item i{width:10px;height:10px;border-radius:3px}.hbars{list-style:none;margin:0;padding:0;display:grid;gap:6px}.hbar{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 32px;gap:10px;align-items:center;width:100%;font:inherit;color:var(--text);background:none;border:none;padding:2px 0;text-align:left}.hbar:not(:disabled){cursor:pointer}.hbar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}.hbar-track{height:8px;background:var(--track);border-radius:4px;overflow:hidden}.hbar-fill{display:block;height:100%;border-radius:4px}.hbar-value{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.gauge{width:100%;max-width:220px;display:block;margin:0 auto}.gauge-value{fill:var(--text);font-size:30px;font-weight:700}.gauge-caption{fill:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.ring-text{fill:var(--text);font-size:13px;font-weight:700}.tactics{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:4px}.tactic{min-height:74px;border-radius:6px;padding:8px 6px;display:flex;flex-direction:column;justify-content:space-between;background:var(--surface-2);border:1px solid var(--border)}.tactic.hit{background:color-mix(in srgb,var(--sev-high) calc(var(--alpha) * 70%),var(--surface-2));border-color:color-mix(in srgb,var(--sev-high) 60%,var(--border))}.tactic-name{font-size:10.5px;line-height:1.2;color:var(--muted)}.tactic.hit .tactic-name{color:var(--text);font-weight:600}.tactic-count{font-size:18px;font-weight:700;align-self:flex-end}.technique-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.technique{padding:4px 10px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);font-size:12px}.sources{list-style:none;margin:0;padding:0;display:grid;gap:8px}.sources li{display:flex;align-items:center;gap:8px}.dot{width:9px;height:9px;border-radius:50%;flex:none}.dot-ok{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}.dot-bad{background:var(--sev-critical);box-shadow:0 0 0 3px color-mix(in srgb,var(--sev-critical) 22%,transparent)}.back{font-size:12.5px}.incident-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--sev-none);border-radius:var(--radius);padding:16px 18px}.incident-title{display:flex;gap:12px;align-items:flex-start}.incident-title>svg{color:var(--muted);margin-top:2px}.incident-title .chips{margin-top:6px}.incident-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto}.tab{font:inherit;font-weight:600;color:var(--muted);background:none;border:none;cursor:pointer;padding:10px 14px;border-bottom:2px solid transparent;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab-count{margin-left:6px;font-size:11px;padding:0 6px;border-radius:999px;background:var(--surface-3);color:var(--muted)}.meta{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}.meta dt{color:var(--muted);font-size:12px}.meta dd{margin:0;min-width:0}.meta-pair{display:contents}.big{font-size:26px;font-weight:700;margin:0 0 4px;text-transform:capitalize}.quote{border-left:3px solid var(--accent-2);padding:4px 0 4px 12px;margin:12px 0 0;color:var(--text);overflow-wrap:anywhere}.callout{margin-top:12px;padding:8px 10px;border-radius:7px;font-size:12.5px;background:color-mix(in srgb,var(--sev-medium) 12%,transparent);border:1px solid color-mix(in srgb,var(--sev-medium) 35%,transparent)}.plain-list{margin:0;padding-left:18px;display:grid;gap:4px}.related{list-style:none;margin:0;padding:0;display:grid;gap:12px}.related li{display:grid;gap:6px;padding-bottom:12px;border-bottom:1px solid var(--border)}.graph-wrap{overflow:auto;border-radius:8px;background:radial-gradient(circle at 1px 1px,var(--gridline) 1px,transparent 0) 0 0 / 18px 18px,var(--surface-2);padding:8px}.graph{display:block;height:auto;margin:0 auto}.graph.interactive{width:100%;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.graph.interactive:active{cursor:grabbing}.graph.interactive .node{cursor:move}.graph-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px}.graph-toolbar .chip-btn{min-width:28px}.edge path{fill:none;stroke:var(--edge);stroke-width:1.5}.edge.hot path{stroke:var(--accent);stroke-width:2.4}.edge-label{fill:var(--muted);font-size:10.5px;paint-order:stroke;stroke:var(--surface-2);stroke-width:5px;stroke-linejoin:round}.edge.hot .edge-label,.edge-label.hot{fill:var(--accent);font-weight:600}.graph .edge-label{pointer-events:none}.node{cursor:pointer}.node rect:first-of-type{fill:var(--surface);stroke:var(--border);stroke-width:1.2}.node:hover rect:first-of-type,.node:focus rect:first-of-type{stroke:var(--accent)}.node.selected rect:first-of-type{stroke:var(--accent);stroke-width:2.4;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 50%,transparent))}.node:focus{outline:none}.node-stripe{fill:var(--sev-none)}.node-type{fill:var(--muted);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em}.node-label{fill:var(--text);font-size:12.5px;font-weight:600;font-family:JetBrains Mono,ui-monospace,Menlo,monospace}.node-icon{width:20px;height:20px;display:grid;place-items:center}.node-alert .node-stripe{fill:var(--node-alert)}.node-alert .node-icon{color:var(--node-alert)}.node-host .node-stripe{fill:var(--node-host)}.node-host .node-icon{color:var(--node-host)}.node-user .node-stripe{fill:var(--node-user)}.node-user .node-icon{color:var(--node-user)}.node-process .node-stripe{fill:var(--node-process)}.node-process .node-icon{color:var(--node-process)}.node-ip .node-stripe{fill:var(--node-ip)}.node-ip .node-icon{color:var(--node-ip)}.node-domain .node-stripe{fill:var(--node-domain)}.node-domain .node-icon{color:var(--node-domain)}.node-file .node-stripe{fill:var(--node-file)}.node-file .node-icon{color:var(--node-file)}.graph-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px}.legend-node{display:inline-flex;align-items:center;gap:6px;font-size:12px;text-transform:capitalize}.legend-node.node-alert svg{color:var(--node-alert)}.legend-node.node-host svg{color:var(--node-host)}.legend-node.node-user svg{color:var(--node-user)}.legend-node.node-process svg{color:var(--node-process)}.legend-node.node-ip svg{color:var(--node-ip)}.legend-node.node-domain svg{color:var(--node-domain)}.legend-node.node-file svg{color:var(--node-file)}.timeline{list-style:none;margin:0;padding:0 0 0 8px;position:relative}.timeline:before{content:"";position:absolute;left:13px;top:4px;bottom:4px;width:2px;background:var(--border)}.tl{display:grid;grid-template-columns:24px 190px 1fr;gap:12px;padding:10px 0;position:relative}.tl-dot{width:12px;height:12px;border-radius:50%;margin:4px 0 0;background:var(--sev-none);box-shadow:0 0 0 4px var(--surface);z-index:1}.tl-alert .tl-dot{background:var(--node-alert)}.tl-process .tl-dot{background:var(--node-process)}.tl-network .tl-dot{background:var(--node-ip)}.tl-dns .tl-dot{background:var(--node-domain)}.tl-file .tl-dot{background:var(--node-file)}.tl-time{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;padding-top:1px}.tl-summary{font-weight:600;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.tl-cat{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.tl-detail{color:var(--muted);margin-top:2px;overflow-wrap:anywhere}.tl-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:4px;font-size:12px;color:var(--muted)}.lanes{border:1px solid var(--border);border-radius:8px;padding:10px 14px 12px;background:var(--surface-2);display:grid;gap:6px}.lanes-axis,.lane{display:grid;grid-template-columns:220px 1fr;gap:14px;align-items:center}.lane-name{display:flex;align-items:center;gap:8px;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}.lane-source .lane-name{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;text-transform:none;font-size:12px}.lane-agent .lane-name svg{color:var(--accent-2)}.lane-source .lane-name svg{color:var(--node-process)}.lane-track{position:relative;height:22px;background:var(--track);border-radius:5px}.axis-track{background:none;height:16px;border-bottom:1px solid var(--border)}.axis-tick{position:absolute;top:0;transform:translate(-50%);font-size:10px;color:var(--muted)}.axis-tick:first-child{transform:none}.axis-tick:last-child{transform:translate(-100%)}.span{position:absolute;top:3px;bottom:3px;border:none;padding:0;border-radius:3px;cursor:pointer;min-width:3px}.span:hover,.span-selected{outline:2px solid var(--text);outline-offset:1px;z-index:2}.span-model{background:linear-gradient(90deg,var(--accent),var(--accent-2))}.span-ok{background:var(--node-process)}.span-empty{background:var(--sev-none)}.span-bad{background:var(--sev-critical)}.lanes-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:6px;font-size:12px}.lanes-legend span{display:inline-flex;align-items:center;gap:6px}.lanes-legend i{width:14px;height:8px;border-radius:2px;display:inline-block}.span-detail{border:1px solid var(--accent);border-radius:8px;padding:12px 14px;background:var(--surface);display:grid;gap:10px}.span-detail-head{display:flex;align-items:center;gap:10px}.steplog{border:1px solid var(--border);border-radius:8px;padding:0 12px}.steplog summary{cursor:pointer;padding:10px 0;font-weight:600;color:var(--muted)}.steplog[open] summary{border-bottom:1px solid var(--border);margin-bottom:4px}.table tr.run-break td{border-top:2px solid var(--accent)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0509128c;z-index:20;display:flex;justify-content:flex-end}.drawer{width:min(560px,100%);height:100%;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column}.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}.drawer-head h2{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;color:var(--text);font-size:15px}.drawer-body{padding:16px 18px;overflow-y:auto}.code{background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:12px;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:12px;overflow:auto;max-height:340px;white-space:pre-wrap;overflow-wrap:anywhere}.cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.connector{display:grid;gap:12px;align-content:start}.connector-head{display:flex;gap:12px;align-items:center}.connector-head h2{text-transform:none;letter-spacing:0;color:var(--text);font-size:15px}.connector-head p{margin:2px 0 0}.caps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.caps li{padding:2px 8px;border-radius:5px;background:var(--surface-2);border:1px solid var(--border)}.error{background:color-mix(in srgb,var(--sev-critical) 12%,transparent);color:var(--sev-critical);border:1px solid color-mix(in srgb,var(--sev-critical) 35%,transparent);padding:8px 12px;border-radius:7px;margin:8px 0}.notice{background:color-mix(in srgb,var(--info) 12%,transparent);color:var(--info);padding:8px 12px;border-radius:7px;margin:8px 0}.empty{color:var(--muted);margin:8px 0}.loading{display:flex;align-items:center;gap:10px;color:var(--muted);padding:24px 0}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--track);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.centered{min-height:100vh;display:grid;place-items:center;padding:16px}.signin-bg{background:radial-gradient(1200px 600px at 20% -10%,color-mix(in srgb,var(--accent) 22%,transparent),transparent),var(--bg)}.signin{width:100%;max-width:420px;display:grid;gap:12px;padding:28px;box-shadow:var(--shadow)}.signin-brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--text)}.signin label{font-weight:600;font-size:12.5px}.hint{color:var(--muted);font-size:12px;margin:0}@media(max-width:1200px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.tactics{grid-template-columns:repeat(7,minmax(0,1fr))}}@media(max-width:860px){.app{grid-template-columns:1fr}.rail{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto}.logo span,.rail-foot{display:none}.rail nav{display:flex;padding:0 8px}.rail nav a span{display:none}.grid-2,.grid-3,.grid-3-1,.kpis,.kpis-5{grid-template-columns:1fr}.tactics{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:16px}.topbar{padding:10px 16px}.user-meta{display:none}.tl{grid-template-columns:24px 1fr}.tl-time,.tl-body{grid-column:2}.lanes-axis,.lane{grid-template-columns:1fr;gap:4px}}.run-progress{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.run-progress.compact{font-size:12px}.run-progress .spinner{width:13px;height:13px}.danger-text{color:var(--sev-critical)}.active-runs{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);white-space:nowrap}.active-runs:hover{text-decoration:none;filter:brightness(1.1)}.active-runs .spinner{width:12px;height:12px}.matrix-wrap{display:grid;gap:10px}.matrix{display:grid;grid-template-columns:repeat(14,minmax(96px,1fr));gap:6px;overflow-x:auto;padding-bottom:4px}.matrix-col{display:flex;flex-direction:column;gap:6px;min-width:0}.matrix-head{display:flex;flex-direction:column;gap:2px;min-height:52px;padding:6px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);font-size:11px;font-weight:600;line-height:1.2;color:var(--muted)}.matrix-step{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:10px;opacity:.7}.matrix-col.hit .matrix-head{color:var(--text);border-color:color-mix(in srgb,var(--sev-high) 55%,var(--border));box-shadow:inset 0 3px 0 var(--sev-high)}.matrix.compact-empty .matrix-col:not(.hit) .matrix-head{opacity:.55}.technique-card{display:grid;gap:2px;text-align:left;padding:7px 8px;border-radius:6px;font:inherit;color:var(--text);position:relative;min-height:58px}.technique-card:not(:disabled){cursor:pointer}.technique-card.observed{background:color-mix(in srgb,var(--sev-high) 24%,var(--surface));border:1px solid color-mix(in srgb,var(--sev-high) 70%,transparent)}.technique-card.candidate{background:var(--surface);border:1px dashed color-mix(in srgb,var(--sev-medium) 80%,transparent)}.technique-card:not(:disabled):hover{outline:2px solid var(--accent);outline-offset:1px}.technique-id{font-size:11px;font-weight:700}.technique-name{font-size:11.5px;line-height:1.25;color:var(--text)}.technique-count{position:absolute;top:6px;right:8px;font-size:12px;font-weight:700}.matrix-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;align-items:center}.matrix-legend span{display:inline-flex;align-items:center;gap:6px}.matrix-legend i{width:16px;height:10px;border-radius:3px;display:inline-block}.legend-observed{background:color-mix(in srgb,var(--sev-high) 24%,var(--surface));border:1px solid var(--sev-high)}.legend-candidate{border:1px dashed var(--sev-medium)}.ticket-badge{display:inline-flex;align-items:center;gap:6px;padding:1px 4px 1px 8px;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);font-size:12px}.ticket-badge .chip-btn{margin:0}.ticket-dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}.ticket-dot.ok{background:var(--ok)}.ticket-dot.bad{background:var(--sev-critical)}.ticket-fail{color:var(--sev-critical);font-weight:600}.section-title{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin:4px 0 8px}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.catalog-card{font:inherit;color:var(--text);text-align:left;cursor:pointer;display:grid;gap:4px;padding:12px 14px;border-radius:9px;background:var(--surface-2);border:1px solid var(--border)}.catalog-card:hover{border-color:var(--accent)}.onboarding-form .field{display:grid;gap:5px}.onboarding-form .field>label{font-weight:600;font-size:12.5px}.onboarding-form .field p{margin:0}.onboarding-form .req{color:var(--sev-critical)}.code-input{font-size:12px;line-height:1.45;width:100%;resize:vertical}.check{display:flex;align-items:center;gap:8px;font-size:13px}.form-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hint{padding:8px 10px;border-radius:7px;background:var(--surface-2);border:1px solid var(--border);margin:0}.test-result{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2)}.test-result.ok{border-color:color-mix(in srgb,var(--ok) 55%,var(--border))}.test-result.bad{border-color:color-mix(in srgb,var(--sev-critical) 55%,var(--border))}.secret-list,.grant-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}.secret-list li{display:flex;align-items:center;gap:8px}.grant-list li{display:grid;gap:2px}.chip-btn.danger{color:var(--sev-critical)}.linkish{font:inherit;background:none;border:none;padding:0;cursor:pointer;color:var(--accent)}.page-head .form-actions{flex:none;flex-wrap:nowrap}.row-actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}.containment-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.containment-item{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding:10px 12px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--border)}.containment-item.tone-warn{border-left-color:var(--sev-medium)}.containment-item.tone-ok{border-left-color:var(--ok)}.containment-item.tone-danger{border-left-color:var(--sev-critical)}.containment-main{display:grid;gap:4px;min-width:0}.containment-main p{margin:0;overflow-wrap:anywhere}.containment-title{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.panel,.drawer-body,.incident-head{overflow-wrap:anywhere;word-break:normal}.panel li,.panel p,.panel dd,.table td,.chip,.caps li,.mono{overflow-wrap:anywhere}.table td .row-actions,.table td.actions{overflow-wrap:normal}.chip-btn{white-space:nowrap;overflow-wrap:normal}.ticket-remote{color:var(--muted);white-space:nowrap}.ticket-remote.cat-indeterminate{color:var(--info)}.ticket-remote.cat-done{color:var(--ok)}.callout.not-investigated{display:flex;gap:16px;align-items:center;justify-content:space-between}.callout.not-investigated .btn{flex:none}.segmented button .count{margin-left:4px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.report-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.milestones{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.milestone{display:grid;gap:4px;padding:12px 14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--border)}.milestone.done{border-top-color:var(--ok)}.lessons{list-style:none;margin:0;padding:0;display:grid;gap:10px}.lessons li{padding:10px 12px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border)}.lessons p{margin:4px 0 0}@media(max-width:900px){.milestones{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.rail,.topbar,.tabs,.incident-head,.back,.no-print,.containment-list .row-actions{display:none!important}body,.panel,.milestone{background:#fff!important;color:#111!important;box-shadow:none!important}.panel{border-color:#ccc!important;break-inside:avoid}.muted,.section-title,.kpi-label{color:#555!important}}.owner-input{width:130px}.detections{list-style:none;margin:0;padding:0;display:grid;gap:8px}.detection{padding:10px 12px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--sev-medium)}.detection.status-accepted{border-left-color:var(--ok)}.detection.status-rejected{border-left-color:var(--sev-critical);opacity:.8}.detection-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.detection-head .row-actions{margin-left:auto}.detection p{margin:4px 0 0}.code-block{margin:8px 0 0;padding:10px 12px;border-radius:6px;background:var(--bg, #0b1220);border:1px solid var(--border);font:12px/1.5 JetBrains Mono,ui-monospace,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.health-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.health-item{display:grid;grid-template-columns:12px 140px 1fr;gap:10px;align-items:center;padding:8px 10px;border-radius:7px;background:var(--surface-2);border:1px solid var(--border)}.health-item strong{text-transform:capitalize}.ticket-dot.warn-dot{background:var(--sev-medium)}.posture-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.posture-item{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,260px);gap:12px;align-items:start;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.posture-item .pill{justify-self:start;text-transform:uppercase;font-size:11px}.control-tags{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.patch-steps{margin:12px 0 0;padding-left:20px;display:grid;gap:10px}.patch-steps .code-block{white-space:pre-wrap}@media(max-width:900px){.posture-item{grid-template-columns:1fr}.control-tags{justify-content:flex-start}}.policy-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:10px 0}.policy-row input[type=number]{width:72px;margin:0 6px}.days-input{width:80px}.key-issued .code-block{-webkit-user-select:all;user-select:all}.warn-text{color:var(--sev-medium)}.row-actions.spread{justify-content:space-between;flex-wrap:wrap;gap:10px}.cap-chips{display:flex;flex-wrap:wrap;gap:6px}.cap-chip{font:inherit;font-size:12px;padding:3px 8px;border-radius:999px;cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text, inherit)}.cap-chip.tone-ok{border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.cap-chip.tone-warn{border-color:color-mix(in srgb,var(--sev-medium) 55%,transparent)}.cap-chip.tone-danger{border-color:color-mix(in srgb,var(--sev-critical) 55%,transparent)}.cap-chip.tone-info{border-color:color-mix(in srgb,var(--info) 50%,transparent)}.posture-item.focus{outline:2px solid var(--accent)}.compliance-list .posture-item{grid-template-columns:104px minmax(0,1fr) minmax(0,260px)}.compliance-list .fedramp-item{grid-template-columns:104px minmax(0,1fr)}.posture-item .pill{white-space:nowrap}.signin-form{display:grid;gap:8px;margin-top:10px}.signin-divider{display:flex;align-items:center;gap:10px;margin:18px 0 4px;color:var(--muted);font-size:12px}.signin-divider:before,.signin-divider:after{content:"";flex:1;border-top:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;margin:12px 0}.form-grid label{display:grid;gap:4px;font-size:12.5px;align-content:start}.form-grid input,.form-grid select{width:100%}.copyable{-webkit-user-select:all;user-select:all}.test-results{margin:8px 0}.provider-notes{padding:12px 16px;display:grid;gap:8px}.provider-notes summary{cursor:pointer;font-weight:600}@media(max-width:900px){.form-grid{grid-template-columns:1fr}}.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.result-failed{color:var(--sev-critical)}.int-group{border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}.int-group-response{border-color:color-mix(in srgb,var(--sev-high, #f59e0b) 45%,var(--border))}.int-group-head{width:100%;display:flex;align-items:center;gap:10px;padding:12px 16px;background:none;border:none;color:var(--text);font:inherit;text-align:left;cursor:pointer;min-height:44px}.int-group-head:hover{background:var(--surface-2)}.int-group-title{font-weight:600}.int-group-head .count{color:var(--muted);font-size:12px;padding:1px 8px;border-radius:999px;background:var(--surface-2)}.int-group-health{margin-left:auto;color:var(--muted)}.chev{display:inline-block;transition:transform .15s;color:var(--muted)}.chev-open{transform:rotate(90deg)}.int-group-body{padding:0 16px 12px;border-top:1px solid var(--border)}.int-group-desc{margin:10px 0}.int-rows{list-style:none;margin:0;padding:0}.int-row{border-top:1px solid var(--border)}.int-row:first-child{border-top:none}.int-row-main{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 0}.int-row-name{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:200px;background:none;border:none;padding:0;color:var(--text);font:inherit;text-align:left;cursor:pointer}.int-row-usage{margin-left:auto;white-space:nowrap}.int-row-detail{padding:0 0 12px 23px;display:grid;gap:10px}.dot-off{background:var(--muted)}@media(max-width:720px){.page-head,.page-head .form-actions{flex-wrap:wrap}.int-row-usage{margin-left:0}}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#05091299;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}.dialog{width:min(460px,100%);background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:20px;display:grid;gap:14px}.dialog-danger{border-color:color-mix(in srgb,var(--sev-critical) 45%,var(--border))}.dialog h2{margin:0;font-size:16px;color:var(--text);text-transform:none;letter-spacing:0}.dialog-message{color:var(--muted);font-size:14px;line-height:1.5}.dialog-message code{word-break:break-all}.dialog-field{display:grid;gap:6px;font-size:13px;color:var(--muted)}.dialog-field input,.dialog-field textarea{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:9px 11px;min-height:40px}.dialog-field input:focus,.dialog-field textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.key-reveal{margin:10px 0 8px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;white-space:pre-wrap;word-break:break-all;color:var(--text)}.role-help{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:4px;color:var(--muted)}.role-help strong{color:var(--text);margin-right:6px}.table-scroll{overflow-x:auto}.row-muted td{opacity:.6}.row-detail td{background:var(--surface-2)}.new-tenant{border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:14px;display:grid;gap:12px}.grants{display:grid;gap:10px;padding:6px 2px}.grants .caps li{display:inline-flex;align-items:center;gap:4px}.modes-table td:nth-child(2){white-space:nowrap}.modes-table .segmented button{white-space:nowrap}.acting-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 20px;background:color-mix(in srgb,var(--sev-high) 18%,var(--surface));border-bottom:1px solid color-mix(in srgb,var(--sev-high) 50%,var(--border));color:var(--text);font-size:13.5px}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.kpis.kpis-fit{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.snippet{display:flex;align-items:flex-start;gap:8px}.snippet .key-reveal{flex:1;min-width:0;margin:6px 0;font-size:12px}.snippet .chip-btn{margin-top:10px}.tool-form{border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin:0;display:grid;gap:8px}.tool-form legend{padding:0 4px;font-weight:600}.tool-form label.small{display:grid;gap:4px}.dialog .snippet .key-reveal{max-height:220px;overflow:auto}
