.threat-map{grid-column:1/-1;overflow:hidden}
.threat-map [hidden]{display:none!important}
.threat-map .threat-sample{margin:16px 0;padding:14px 16px;border:1px solid #efd08c;background:#342b19;color:#ffe4a9;font-size:clamp(17px,2.3vw,24px);font-weight:700;line-height:1.6}
.threat-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr);gap:28px;align-items:start}
.threat-visual{min-width:0;position:relative}
.threat-stage{width:100%;aspect-ratio:1;max-height:540px;background:radial-gradient(ellipse at center,#142c26 0%,#091812 68%);border:1px solid #264a3b;border-radius:4px;overflow:hidden;touch-action:pan-y;cursor:grab}
.threat-stage:active{cursor:grabbing}.threat-stage canvas{display:block;width:100%;height:100%}
.threat-stage:focus-visible,.threat-controls button:focus-visible{outline:2px solid #ffe4a9;outline-offset:3px}
.threat-map .threat-legend{font-size:11px;color:#afc5b5;line-height:1.8;margin:12px 0}
.threat-controls{display:flex;flex-wrap:wrap;gap:8px}
.threat-controls button{font:inherit;font-size:12px;background:#10291f;color:#b1f8cb;border:1px solid #407557;padding:8px 12px;cursor:pointer}
.threat-controls button:disabled{opacity:.6;cursor:default}
.threat-summary{min-width:0}.threat-summary h3{font-size:13px;margin:24px 0 8px;color:#b1f8cb}
.threat-map .threat-total{font-size:42px;font-variant-numeric:tabular-nums;color:#b1f8cb;margin:8px 0;line-height:1.3}
.threat-map .threat-period,.threat-map .threat-defense{font-size:12px;line-height:1.9;overflow-wrap:anywhere}
.threat-map table{border-collapse:collapse;width:100%;font-size:12px;table-layout:fixed}
.threat-map th,.threat-map td{border-bottom:1px solid #294336;padding:10px 0;text-align:left;overflow-wrap:anywhere}
.threat-map th{font-weight:400;color:#c3d9ca}.threat-map td:last-child,.threat-map th:last-child{width:55px;text-align:right;font-variant-numeric:tabular-nums}
.threat-map .threat-footnote{font-size:11px;line-height:1.9;color:#afc5b5;margin-top:22px}.threat-map .threat-footnote a{color:#b1f8cb;text-decoration:underline}
.threat-map.is-table-only .threat-layout{grid-template-columns:1fr}.threat-map.is-table-only .threat-visual{display:none}
@media(max-width:900px){.threat-layout{grid-template-columns:1fr}.threat-stage{max-height:none;max-width:520px;margin:auto}}
@media(max-width:480px){.threat-layout{gap:18px}.threat-map .threat-sample{padding:12px}.threat-map .threat-total{font-size:36px}}
@media print{.threat-visual{display:none}.threat-layout{display:block}.threat-map .threat-sample{color:black;background:white}.threat-map table{color:black}}

#main .threat-map .threat-sample{color:inherit;border-color:currentColor;background:color-mix(in srgb,currentColor 8%,#050807)}
#main .threat-map :is(.threat-legend,.threat-total,.threat-footnote,.threat-footnote a,th){color:inherit}
#main .threat-map :is(th,td){border-color:color-mix(in srgb,currentColor 30%,transparent)}
#main .threat-controls button{color:inherit;border-color:currentColor;background:transparent}
