.firewall-map-panel { margin:24px 0; padding:23px; }
.firewall-map-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.firewall-map-heading h2 { margin:5px 0 8px; font-size:19px; }
.firewall-map-heading p:not(.eyebrow) { margin:0; color:var(--muted,#758089); font-size:11px; }
.firewall-map-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:22px 0 17px; }
.firewall-map-metrics>div { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 15px; border:1px solid #e3e8e2; border-radius:7px; background:#f7f9f5; }
.firewall-map-metrics span { color:#71837a; font-size:11px; }
.firewall-map-metrics strong { color:#405e52; font-family:Georgia,serif; font-size:24px; font-weight:500; }
.firewall-map-canvas { position:relative; overflow:hidden; border:1px solid #dce4df; border-radius:9px; background:#edf2f0; }
.firewall-world { display:block; width:100%; height:auto; }
.firewall-map-graticule { fill:none; stroke:#bacdc3; stroke-width:.6; stroke-dasharray:3 5; opacity:.55; }
.firewall-map-empty { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:24px; text-align:center; background:#edf2f044; }
.firewall-map-empty strong { padding:7px 13px; background:#fafcf6dd; color:#586f61; border:1px solid #d9e2d6; border-radius:5px; font-size:13px; }
.firewall-map-empty span { padding:4px 9px; border-radius:4px; color:#687c70; background:#fafcf6d9; font-size:11px; }
.firewall-map-point { cursor:pointer; outline:none; }
.firewall-map-point .map-halo { opacity:.22; }
.firewall-map-point .map-core { stroke:#fff9; stroke-width:1.3; }
.firewall-map-point.low circle { fill:#bb9751; }
.firewall-map-point.medium circle { fill:#ce783f; }
.firewall-map-point.high circle { fill:#a63f35; }
.firewall-map-point:focus .map-core,.firewall-map-point.selected .map-core { stroke:#233e46; stroke-width:3; }
.firewall-map-point:focus .map-halo,.firewall-map-point.selected .map-halo { opacity:.4; stroke:#fff; stroke-width:2; }
.firewall-map-legend { display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; margin-top:14px; color:#7c877d; font-size:10px; }
.firewall-map-legend>span { display:inline-flex; align-items:center; gap:7px; }
.firewall-legend-dot { display:inline-block; border-radius:50%; border:1px solid #fff8; }
.firewall-legend-dot.low { width:8px; height:8px; background:#bb9751; }
.firewall-legend-dot.medium { width:12px; height:12px; background:#ce783f; }
.firewall-legend-dot.high { width:16px; height:16px; background:#a63f35; }
.firewall-map-legend small { flex-basis:100%; font-size:10px; color:#849086; }
.firewall-map-selection { min-height:22px; margin:14px 0 4px; color:#516c5e; font-size:12px; }
.firewall-map-note,.firewall-map-credit { color:#8b968d; font-size:10px; line-height:1.7; margin:5px 0; }
.firewall-map-note:empty { display:none; }
.firewall-map-warning { color:#936b33; background:#fcf5e5; padding:8px 12px; border-radius:5px; font-size:11px; }
.firewall-map-table { margin-top:18px; border-top:1px solid #e6ebe4; padding-top:12px; }
.firewall-map-table summary { cursor:pointer; color:#607568; font-size:12px; margin-bottom:10px; }
.firewall-map-table .table-scroll { max-height:260px; overflow:auto; border:1px solid #e3e8df; border-radius:6px; }
.firewall-map-table th,.firewall-map-table td { padding:9px 12px; font-size:11px; }
.firewall-map-table tbody th { background:transparent; font-weight:500; color:#596e60; }
.firewall-map-table tr.selected { background:#eef3e6; }
.firewall-map-credit { margin-top:14px; }
@media(max-width:760px) { .firewall-map-panel{padding:17px;} .firewall-map-heading{gap:10px;} .firewall-map-heading h2{font-size:17px;} .firewall-map-metrics{gap:7px;} .firewall-map-metrics>div{padding:9px 10px;display:grid;gap:0;} .firewall-map-metrics strong{font-size:23px;} .firewall-map-empty{gap:4px;padding:12px;} .firewall-map-empty strong{font-size:11px;} .firewall-map-empty span{font-size:9px;} .firewall-map-legend{gap:8px 13px;} }
@media(forced-colors:active) { .firewall-map-point .map-core{stroke:CanvasText;fill:Highlight;} .firewall-map-point:focus .map-core,.firewall-map-point.selected .map-core{stroke-width:5;} }
.firewall-map-heading>.status-tag{flex-shrink:0;white-space:nowrap}
