@font-face{font-family:Chivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./chivo-latin-wght-normal-CPi3f958.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Chivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./chivo-latin-ext-wght-normal-CuxPzFD0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chivo Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./chivo-mono-latin-wght-normal-DXNvimoL.woff2) format("woff2-variations")}:root{color-scheme:light;--bg: #edf0f3;--surface: #edf0f3;--surface-2: #e3e7ec;--text: #0b1018;--text-muted: #354050;--border: #cdd3db;--control-border: #545f70;--accent: #2152e0;--accent-fg: #ffffff;--danger: #b42318;--focus: #2152e0;--selected-bg: #d6dff5;--note-bg: #fde68a;--note-fg: #4a2f00;--risk-critical-bg: #4c1d95;--risk-critical-fg: #ffffff;--risk-high-bg: #b45309;--risk-high-fg: #ffffff;--risk-medium-bg: #fde68a;--risk-medium-fg: #5b3a00;--risk-low-bg: #ccfbf1;--risk-low-fg: #115e59;--risk-critical-mark: #6d28d9;--risk-high-mark: #c2410c;--risk-medium-mark: #a16207;--risk-low-mark: #0f766e;--mark-fg: #ffffff;--outstanding-bg: #f1f5f9;--outstanding-fg: #334155;--outstanding-border: #64748b;--mitigated-bg: #15803d;--mitigated-fg: #ffffff;--partial-fg: #166534;--partial-border: #15803d;--open-fg: #9f1239;--open-border: #be123c;--flow-ingress: #d9480f;--flow-egress: #7048e8;--flow-east-west: #1864ab;--flow-management: #5c677d;--flow-hybrid: #0b7285;--mark-fence: #9a6700;--mark-ring: #0e7490;--mark-sign: #15803d;--mark-tag: #a21caf;--mark-wall: #b4491a;--label-bg: rgb(237 240 243 / .9);--scrollbar: #a9b2be;--fs-1: .75rem;--fs-2: .8125rem;--fs-3: .875rem;--fs-4: 1rem;--control-height: 2rem;--font: "Chivo Variable", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: "Chivo Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace}:root[data-theme=dark]{color-scheme:dark;--bg: #06080c;--surface: #06080c;--surface-2: #0f131b;--text: #e6ecf5;--text-muted: #a9b4c5;--border: #252d3a;--control-border: #7f8a9d;--accent: #4c7dff;--accent-fg: #04070f;--danger: #fda29b;--focus: #4c7dff;--selected-bg: #101c3d;--note-bg: #3a2f08;--note-fg: #fde68a;--risk-critical-bg: #4c1d95;--risk-critical-fg: #ede9fe;--risk-high-bg: #c2410c;--risk-high-fg: #ffffff;--risk-medium-bg: #ca8a04;--risk-medium-fg: #1c1300;--risk-low-bg: #134e4a;--risk-low-fg: #ccfbf1;--risk-critical-mark: #a78bfa;--risk-high-mark: #f4694a;--risk-medium-mark: #facc15;--risk-low-mark: #2dd4bf;--mark-fg: #06080c;--outstanding-bg: #252b36;--outstanding-fg: #d1d5db;--outstanding-border: #94a3b8;--mitigated-bg: #166534;--mitigated-fg: #dcfce7;--partial-fg: #86efac;--partial-border: #22c55e;--open-fg: #fda4af;--open-border: #fb7185;--flow-ingress: #ff922b;--flow-egress: #b197fc;--flow-east-west: #74c0fc;--flow-management: #adb5bd;--flow-hybrid: #3bc9db;--mark-fence: #e3b341;--mark-ring: #22d3ee;--mark-sign: #4ade80;--mark-tag: #e879f9;--mark-wall: #f4694a;--label-bg: rgb(6 8 12 / .88);--scrollbar: #2b3443}*,*:before,*:after{box-sizing:border-box}:root{scrollbar-color:var(--scrollbar) transparent;accent-color:var(--accent)}html,body{margin:0;padding:0}body{font-family:var(--font);font-size:.9375rem;line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--text);color:var(--bg)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,h2,h3,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}a{color:var(--accent)}button,select,input{font:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.muted{color:var(--text-muted)}.id{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600;font-size:.92em}.num{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.btn{min-height:var(--control-height);padding:0 12px;border:1px solid var(--control-border);border-radius:0;background:var(--surface);font-weight:550;font-size:var(--fs-3);cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{color:var(--text-muted);border-color:var(--border);cursor:default}.btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn-square{width:var(--control-height);padding:0;display:inline-grid;place-items:center}.btn-danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 55%,transparent)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 9%,transparent)}select{height:var(--control-height);border:1px solid var(--control-border);border-radius:0;background:var(--surface);padding:0 8px;max-width:100%}.link{border:0;padding:0;background:none;color:var(--accent);text-align:left;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.link:hover{text-decoration-thickness:2px}.link[aria-current=true]{font-weight:700}.segmented{display:inline-flex;border:1px solid var(--control-border);background:var(--surface-2);padding:2px;gap:2px;height:var(--control-height)}.segmented button{border:0;background:transparent;padding:0 12px;color:var(--text-muted);font-weight:550;font-size:var(--fs-3);cursor:pointer}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-fg);font-weight:650}.segmented button:disabled{opacity:.5;cursor:default}.chip{display:inline-block;padding:1px 7px;font-size:var(--fs-1);font-weight:650;line-height:1.5;white-space:nowrap;border:1px solid transparent}.risk-critical{background:var(--risk-critical-bg);color:var(--risk-critical-fg)}.risk-high{background:var(--risk-high-bg);color:var(--risk-high-fg)}.risk-medium{background:var(--risk-medium-bg);color:var(--risk-medium-fg)}.risk-low{background:var(--risk-low-bg);color:var(--risk-low-fg)}.status-outstanding{background:var(--outstanding-bg);color:var(--outstanding-fg);border-color:var(--outstanding-border)}.status-partial{color:var(--partial-fg);border-color:var(--partial-border);border-style:dashed}.status-mitigated,.status-prevented{background:var(--mitigated-bg);color:var(--mitigated-fg)}.status-open{color:var(--open-fg);border-color:var(--open-border)}.app{display:flex;flex-direction:column;height:100dvh;min-width:0}.header{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding:10px 14px}.header-main{display:flex;align-items:baseline;gap:4px 16px;flex-wrap:wrap;min-width:0}.header-title{font-size:1.3125rem;font-weight:750;letter-spacing:-.015em;line-height:1.2}.header-summary{color:var(--text-muted);font-size:var(--fs-3)}.header-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.header-rule{width:1px;height:20px;background:var(--border)}.confirm{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.confirm-text{font-size:var(--fs-3);font-weight:600}.model-note{margin:0 10px 8px;padding:4px 10px;background:var(--note-bg);color:var(--note-fg);font-size:var(--fs-2);font-weight:550}.layout{flex:1;min-height:0;display:grid;grid-template-columns:272px minmax(0,1fr) 356px;grid-template-rows:minmax(0,1fr);grid-template-areas:"left centre right";gap:10px;padding:0 10px}.panel{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:0;overflow:auto}.panel-left{grid-area:left;padding:12px 14px}.panel-right{grid-area:right;padding:12px 14px}.centre{grid-area:centre;min-width:0;min-height:0;overflow:hidden auto;display:flex;flex-direction:column;gap:10px}.panel-scene{flex:none;height:clamp(420px,62vh,680px);overflow:hidden;position:relative}.panel-scene:has(.list-view){height:auto;overflow:visible}.panel-tabs{flex:none;overflow:visible}.panel-title{font-size:1.0625rem;font-weight:750;letter-spacing:-.01em;margin-bottom:8px}.panel-toggle{display:none}.footer{padding:6px 14px 8px;font-size:var(--fs-1);color:var(--text-muted)}@media (max-width: 1340px){.layout{grid-template-columns:248px minmax(0,1fr) 320px}}.panel-intro,.help{color:var(--text-muted);font-size:var(--fs-2);line-height:1.4}.setup{display:grid;gap:12px}.field{display:grid;gap:3px}.field label,.group legend{font-size:var(--fs-2);font-weight:700}.field select{width:100%}.group{border:0;border-top:1px solid var(--border);margin:0;padding:8px 0 0;display:grid;gap:9px}.group legend{padding:0 8px 0 0}.check{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start}.check input,.measures input{width:16px;height:16px;margin:3px 0 0}.check label{font-weight:600;font-size:var(--fs-3)}.check.is-locked label{color:var(--text-muted)}.scene{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.scene-canvas{position:relative;flex:1;min-height:0;order:2}.scene.is-hovering .scene-canvas{cursor:pointer}.scene-toolbar{order:1;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;padding:6px;border-bottom:1px solid var(--border)}.scene-toolbar .btn{min-height:28px;font-size:var(--fs-2)}.scene-label,.scene-zone-label,.scene-flowmark{pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font)}.scene-label{display:flex;align-items:center;gap:4px;width:max-content;max-width:100px;padding:1px 4px;background:var(--label-bg);border:1px solid var(--border);color:var(--text);font-size:10.5px;font-weight:600;line-height:1.15;text-align:center}.scene-label.is-top{max-width:132px}.scene-label.is-selected,.scene-label.is-focus{border-color:var(--accent);outline:1px solid var(--accent)}.scene-label.is-selected{background:var(--accent);color:var(--accent-fg)}.is-dim{opacity:.3}.scene-zone-label{width:max-content;padding:0 3px;font-size:10.5px;font-weight:700;letter-spacing:.01em;color:var(--text-muted);line-height:1.2;max-width:150px}.scene-zone-label.is-outer{transform:translateY(-100%)}.scene-zone-label.is-selected{color:var(--accent)}.scene-badge,.scene-step{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10.5px;font-weight:750;font-variant-numeric:tabular-nums;line-height:1;flex:none}.scene-badge{color:var(--mark-fg)}.scene-badge.risk-critical{background:var(--risk-critical-mark)}.scene-badge.risk-high{background:var(--risk-high-mark)}.scene-badge.risk-medium{background:var(--risk-medium-mark)}.scene-badge.risk-low{background:var(--risk-low-mark)}.scene-step{background:var(--text);color:var(--bg);border-radius:50%;min-width:18px;height:18px;padding:0 4px}.scene-flowmark{display:flex;gap:3px}.scene-flowmark .scene-badge{min-width:13px;height:13px;font-size:9px;padding:0 2px;border-radius:50%}.scene-tip{position:absolute;top:0;left:0;z-index:70;max-width:240px;padding:6px 9px;background:var(--text);color:var(--bg);font-size:var(--fs-2);line-height:1.35;pointer-events:none;display:grid}.scene-tip[hidden]{display:none}.scene-legend{order:3;display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;padding:4px 8px;border-top:1px solid var(--border);font-size:var(--fs-1)}.legend-toggle{border:0;background:none;padding:2px 0;font-weight:700;cursor:pointer}.legend-toggle:after{content:" +"}.legend-toggle[aria-expanded=true]:after{content:" −"}.legend-list{display:flex;flex-wrap:wrap;gap:0 8px}.legend-item{border:1px solid transparent;background:none;padding:1px 4px 1px 2px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.legend-item:hover{border-color:var(--control-border)}.legend-item[aria-pressed=true]{border-color:var(--accent);background:var(--selected-bg);font-weight:700}.legend-flow{display:inline-flex;align-items:center;gap:5px;color:var(--text-muted)}.legend-mark{width:12px;height:12px;flex:none}.mark-fence{border:2px solid var(--mark-fence);background:color-mix(in srgb,var(--mark-fence) 25%,transparent)}.mark-ring{border:2px solid var(--mark-ring);border-radius:50%}.mark-sign{background:linear-gradient(var(--mark-sign),var(--mark-sign)) 3px 1px / 9px 6px no-repeat,linear-gradient(var(--text),var(--text)) 3px 0 / 2px 12px no-repeat}.mark-tag{background:var(--mark-tag);transform:rotate(45deg) scale(.75)}.mark-wall{background:var(--mark-wall);height:8px}.legend-line{width:18px;height:0;border-top:3px dashed}.flow-ingress{border-color:var(--flow-ingress)}.flow-egress{border-color:var(--flow-egress)}.flow-east-west{border-color:var(--flow-east-west)}.flow-management{border-color:var(--flow-management)}.flow-hybrid{border-color:var(--flow-hybrid)}.tabs{display:flex;flex-direction:column;min-height:0;min-width:0;flex:1}.tablist{display:flex;gap:2px;border-bottom:1px solid var(--border);padding:0 8px;overflow-x:auto;flex:none}.tablist [role=tab]{border:0;border-bottom:3px solid transparent;background:none;padding:8px 10px 6px;font-weight:600;font-size:var(--fs-3);color:var(--text-muted);cursor:pointer;white-space:nowrap}.tablist [role=tab][aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.tablist [role=tab]:focus-visible{outline-offset:-2px}.tabpanel{padding:10px 12px 14px}.tabpanel:focus-visible{outline-offset:-2px}.tab-head{display:flex;justify-content:space-between;align-items:center;gap:6px 16px;flex-wrap:wrap;margin-bottom:8px}.summary{font-weight:600;font-size:var(--fs-3)}.filters{display:flex;gap:12px;font-size:var(--fs-2);font-weight:600;color:var(--text-muted)}.table-wrap{border:1px solid var(--border);overflow-x:auto;margin-bottom:12px}.table{width:100%;border-collapse:collapse;font-size:var(--fs-2)}.table th,.table td{padding:6px 9px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.table tbody tr:last-child>*{border-bottom:0}.table thead th{font-size:var(--fs-1);color:var(--text-muted);font-weight:700;white-space:nowrap;background:var(--surface-2)}.table tbody th{font-weight:600;min-width:150px}.table tbody tr:hover{background:var(--surface-2)}.table tr.is-selected,.table tr.is-selected:hover{background:var(--selected-bg);box-shadow:inset 3px 0 0 var(--accent)}.table td.wide{min-width:150px}.matrix th[scope=row]{white-space:nowrap}.matrix .matrix-col{vertical-align:bottom;text-align:left;padding:8px 4px;width:44px}.matrix .matrix-col span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}.matrix-cell{text-align:center!important;vertical-align:middle!important}.square{display:inline-block;width:13px;height:13px;background:var(--accent);vertical-align:middle}.expander{display:inline-flex;align-items:baseline;gap:6px}.caret{display:inline-block;width:0;height:0;border-left:5px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .1s;flex:none}[aria-expanded=true]>.caret{transform:rotate(90deg)}.table tr.expanded,.table tr.expanded:hover{background:var(--surface-2)}.expanded-body{max-width:760px;padding:0 0 6px 11px}.bullets{list-style:square;padding-left:18px}.sources{font-size:var(--fs-2);display:grid;gap:2px}.sources .id{white-space:nowrap}.sources a{overflow-wrap:anywhere}.paths{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.path{border:1px solid var(--border);padding:10px 12px;display:grid;gap:6px;align-content:start;font-size:var(--fs-3)}.path.is-selected{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.path h3{font-size:var(--fs-4);display:flex;gap:8px;justify-content:space-between;align-items:flex-start}.steps{display:grid;gap:8px;margin-top:2px}.steps li{display:grid;grid-template-columns:22px 1fr;gap:8px}.step-n{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--text);color:var(--bg);font-size:var(--fs-1);font-weight:750;margin-top:1px}.step-meta{display:flex;gap:4px 8px;flex-wrap:wrap;align-items:center;font-size:var(--fs-2)}.status-line{font-size:var(--fs-2);font-weight:600}.details,.details-empty{display:grid;gap:6px;font-size:var(--fs-3)}.details-empty{color:var(--text-muted);gap:10px}.details-close{justify-self:end;min-height:26px;font-size:var(--fs-2)}.kicker{font-size:var(--fs-2);color:var(--text-muted);font-weight:600}.details h2{font-size:1.1875rem;font-weight:750;letter-spacing:-.015em;line-height:1.25}.details h3,.expanded-body h3{font-size:var(--fs-2);font-weight:700;color:var(--text-muted);margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}.expanded-body h3:first-child{border-top:0;margin-top:0}.chips{display:flex;gap:6px;flex-wrap:wrap}.notes{display:grid;gap:4px;border-left:3px solid var(--accent);padding-left:9px;font-size:var(--fs-2)}.link-list{display:grid;gap:5px}.link-list li{display:flex;gap:4px 8px;flex-wrap:wrap;align-items:baseline}.inline-list{display:flex;flex-wrap:wrap;gap:2px 14px}ol.inline-list{counter-reset:n}ol.inline-list li{counter-increment:n}ol.inline-list li:before{content:counter(n) ". ";color:var(--text-muted);font-variant-numeric:tabular-nums}.measures,.detections{display:grid;gap:10px}.measures li{display:grid;grid-template-columns:18px 1fr;gap:8px}.measures label{font-weight:600}.measures .sources{margin-top:2px}.facts{display:grid;grid-template-columns:max-content 1fr;gap:3px 12px;font-size:var(--fs-2);margin-top:4px}.facts dt{color:var(--text-muted);font-weight:600}.list-view{padding:12px 14px;display:grid;gap:8px}.list-view h2{font-size:1.125rem;font-weight:750;margin-top:6px}.list-view h3{font-size:var(--fs-3);margin-bottom:4px}.notice{padding:6px 10px;border:1px solid var(--control-border);font-weight:600;font-size:var(--fs-3)}@media (max-width: 900px){.app{height:auto;min-height:100dvh}.header{padding:10px}.header-title{font-size:1.125rem}.layout{display:flex;flex-direction:column;gap:8px;padding:0 8px}.panel{overflow:visible}.centre{display:contents}.panel-scene{order:1;height:380px;overflow:hidden}.panel-left{order:2;padding:0}.panel-right{order:3;padding:0}.panel-tabs{order:4}.panel-title{margin:0}.panel-title-text{display:none}.panel-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:0 12px;border:0;background:none;font-weight:750;text-align:left;cursor:pointer}.panel-toggle-sub{flex:1;min-width:0;font-size:var(--fs-2);font-weight:500;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-toggle .caret{margin-left:auto}.panel-body{padding:4px 12px 12px}.panel[data-open=false] .panel-body{display:none}.scene-toolbar .btn{padding:0 8px;font-size:var(--fs-2)}.scene-label{font-size:9.5px;max-width:78px}.scene-zone-label{font-size:9px}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
