.threat-graph-page{padding-block:var(--space-lg)}.threat-graph-hero{margin-bottom:var(--space-lg)}.threat-graph-hero .threat-graph-nav{align-items:center;gap:var(--space-md);display:flex}.threat-graph-title{font-size:var(--text-h1);color:var(--color-text-primary);margin:0}.threat-graph-lineage-link{white-space:nowrap;margin-left:auto}.threat-graph-discover{margin-bottom:var(--space-md)}.threat-graph-discover code{background:var(--color-bg-tertiary);padding:var(--space-xxs) var(--space-xs);border-radius:var(--radius-xs);font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-text-primary)}.threat-graph-discover-body{margin-bottom:var(--space-sm)}.threat-graph-discover-field{gap:var(--space-xs);font-size:var(--text-label);color:var(--color-text-secondary);flex-direction:column;display:flex}.threat-graph-discover-input{height:auto;min-height:6rem;font-family:var(--font-mono);font-size:var(--text-caption);resize:vertical}.threat-graph-source-select{width:100%;font-family:var(--font-mono);font-size:var(--text-caption)}.threat-graph-discover-actions{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.threat-graph-discover-spacer{flex:1;min-width:0}.threat-graph-discover-probes{margin-top:var(--space-md);overflow-x:auto}.threat-graph-probes-table{border-collapse:collapse;width:100%;font-size:var(--text-body-sm)}.threat-graph-probes-table th,.threat-graph-probes-table td{padding:var(--space-xs) var(--space-sm);text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text-primary);vertical-align:middle}.threat-graph-probes-table th{font-size:var(--text-caption);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);color:var(--color-text-muted);background:var(--color-bg-tertiary)}.threat-graph-probes-table code{font-family:var(--font-mono);font-size:var(--text-caption);background:var(--color-bg-tertiary);padding:var(--space-xxs) var(--space-xs);border-radius:var(--radius-xs)}.threat-graph-toolbar{justify-content:space-between;align-items:center;gap:var(--space-md);margin:var(--space-md) 0;flex-wrap:wrap;display:flex}.threat-graph-legend{gap:var(--space-xs);flex-wrap:wrap;display:flex}.threat-graph-legend .badge[data-kind=evm_contract],.threat-graph-inspector .badge[data-kind=evm_contract]{background:rgba(var(--color-evm-rgb), .12);border-color:var(--color-evm);color:var(--color-evm)}.threat-graph-legend .badge[data-kind=svm_program],.threat-graph-inspector .badge[data-kind=svm_program]{background:rgba(var(--color-svm-rgb), .12);border-color:var(--color-svm);color:var(--color-svm)}.threat-graph-legend .badge[data-kind=zk_verifier],.threat-graph-inspector .badge[data-kind=zk_verifier]{background:rgba(var(--color-zk-rgb), .12);border-color:var(--color-zk);color:var(--color-zk)}.threat-graph-legend .badge[data-kind=bridge],.threat-graph-inspector .badge[data-kind=bridge]{background:rgba(var(--color-warning-rgb), .12);border-color:var(--color-warning);color:var(--color-warning)}.threat-graph-legend .badge[data-kind=asset],.threat-graph-inspector .badge[data-kind=asset]{background:rgba(var(--color-secondary-rgb), .12);border-color:var(--color-secondary);color:var(--color-secondary)}.threat-graph-inspector .badge[data-edge=admin_controls]{background:rgba(var(--color-error-rgb), .12);border-color:var(--color-error);color:var(--color-error)}.threat-graph-inspector .badge[data-edge=bridge_to]{background:rgba(var(--color-secondary-rgb), .12);border-color:var(--color-secondary);color:var(--color-secondary)}.threat-graph-inspector .badge[data-edge=proxies]{background:rgba(var(--color-evm-rgb), .12);border-color:var(--color-evm);color:var(--color-evm)}.threat-graph-inspector .badge[data-edge=settles_to]{background:rgba(var(--color-zk-rgb), .12);border-color:var(--color-zk);color:var(--color-zk)}.threat-graph-actions{gap:var(--space-sm);display:flex}.threat-graph-main{gap:var(--space-md);grid-template-columns:minmax(0,2.2fr) minmax(16rem,1fr);display:grid}@media (width<=900px){.threat-graph-main{grid-template-columns:1fr}}.threat-graph-canvas{padding:var(--space-sm)}#graph-svg{width:100%;height:auto;display:block}.node-group{cursor:pointer;transition:opacity var(--transition-base)}.graph-empty-text{fill:var(--color-text-muted);font-size:var(--text-body-sm);font-family:var(--font-sans)}.node-group.dim{opacity:.25}.node-group:focus-visible .graph-node-circle{stroke:var(--color-accent);stroke-width:3px}.graph-node-circle{fill:var(--color-text-muted);stroke:var(--color-bg-primary);stroke-width:1.5px;transition:fill var(--transition-fast)}.node-group[data-kind=evm_contract] .graph-node-circle{fill:var(--color-evm)}.node-group[data-kind=svm_program] .graph-node-circle{fill:var(--color-svm)}.node-group[data-kind=zk_verifier] .graph-node-circle{fill:var(--color-zk)}.node-group[data-kind=bridge] .graph-node-circle{fill:var(--color-warning)}.node-group[data-kind=asset] .graph-node-circle{fill:var(--color-secondary)}.graph-node-label{font-size:var(--text-micro);font-family:var(--font-sans);fill:var(--color-text-primary)}.graph-edge{stroke:var(--color-text-muted);stroke-width:1.6px;stroke-opacity:.6;transition:stroke-width var(--transition-fast), stroke-opacity var(--transition-fast)}.graph-edge[data-kind=admin_controls]{stroke:var(--color-error)}.graph-edge[data-kind=bridge_to]{stroke:var(--color-secondary)}.graph-edge[data-kind=proxies]{stroke:var(--color-evm)}.graph-edge[data-kind=settles_to]{stroke:var(--color-zk)}.graph-edge.active{stroke-opacity:1;stroke-width:2.6px}.edges-layer:has(.graph-edge.active) .graph-edge:not(.active){stroke-opacity:.15;stroke-width:1.2px}.threat-graph-inspector{min-height:14rem}.threat-graph-muted{color:var(--color-text-muted);font-size:var(--text-body-sm)}.threat-graph-attrs{column-gap:var(--space-md);row-gap:var(--space-xs);margin:var(--space-sm) 0;font-size:var(--text-body-sm);grid-template-columns:auto 1fr;display:grid}.threat-graph-attrs dt{font-weight:var(--font-weight-semibold);color:var(--color-text-muted)}.threat-graph-attrs dd{word-break:break-all;color:var(--color-text-primary);margin:0}.threat-graph-attrs code,.threat-graph-neighbours code{background:var(--color-bg-tertiary);padding:var(--space-xxs) var(--space-xs);border-radius:var(--radius-xs);font-size:var(--text-caption);font-family:var(--font-mono)}.threat-graph-neighbours{gap:var(--space-xs);font-size:var(--text-body-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.threat-graph-neighbours li{align-items:center;gap:var(--space-xs);color:var(--color-text-primary);flex-wrap:wrap;display:flex}.threat-graph-footnote{margin-top:var(--space-md)}.threat-graph-footnote p{font-size:var(--text-body-sm);color:var(--color-text-secondary);margin:0}.threat-graph-blast{margin-top:var(--space-md);gap:var(--space-md);flex-direction:column;display:flex}.threat-graph-blast-body{gap:var(--space-md);grid-template-columns:minmax(18rem,1fr) auto;align-items:end;display:grid}.threat-graph-blast-field{gap:var(--space-xs);font-size:var(--text-label);color:var(--color-text-secondary);flex-direction:column;display:flex}.threat-graph-blast-result{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);gap:var(--space-md);background:var(--color-bg-tertiary);flex-direction:column;display:flex}.threat-graph-blast-kpi{gap:var(--space-sm) var(--space-md);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));margin:0;display:grid}.threat-graph-blast-kpi>div{font-variant-numeric:tabular-nums;flex-direction:column;display:flex}.threat-graph-blast-kpi .wide{grid-column:1/-1}.threat-graph-blast-kpi dt{font-size:var(--text-caption);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal)}.threat-graph-blast-kpi dd{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);word-break:break-all;margin:0}.threat-graph-blast-details summary{cursor:pointer;font-size:var(--text-body-sm);color:var(--color-text-secondary)}.threat-graph-blast-node-list{margin:var(--space-sm) 0 0;gap:var(--space-xs);flex-direction:column;padding:0;list-style:none;display:flex}.threat-graph-blast-node-list li{align-items:center;gap:var(--space-sm);font-size:var(--text-body-sm);flex-wrap:wrap;display:flex}.threat-graph-mono{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-text-primary)}@media (width<=720px){.threat-graph-blast-body{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.node-group,.graph-node-circle,.graph-edge{transition:none}}
