.attack-map[data-v-aa2c6d9c]{--bg:#0b1420;--panel:#101c2c;--grid:#16263a;--ink:#d8e4f0;--dim:#6f89a3;--k8s:#4f8fe0;--k8s-dim:#2a557f;--crit:#e0a24f;--line:#223650;--mono:"JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;background:var(--bg);height:100vh;color:var(--ink);font-family:var(--mono);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-position:-1px -1px;background-size:28px 28px;display:flex;position:relative;overflow:hidden}header[data-v-aa2c6d9c]{border-bottom:1px solid var(--line);backdrop-filter:blur(4px);z-index:5;background:#0b1420d9;align-items:center;gap:10px;height:56px;padding:0 18px;display:flex;position:absolute;top:0;left:0;right:0}header .hex[data-v-aa2c6d9c]{background:var(--k8s);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);width:20px;height:20px}header h1[data-v-aa2c6d9c]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0;font-size:14px;font-weight:600}header .sub[data-v-aa2c6d9c]{color:var(--dim);margin-left:4px;font-size:11px}header .legend[data-v-aa2c6d9c]{color:var(--dim);gap:16px;margin-left:auto;font-size:10px;display:flex}header .legend span[data-v-aa2c6d9c]{align-items:center;gap:6px;display:inline-flex}header .dot[data-v-aa2c6d9c]{border-radius:50%;width:8px;height:8px;display:inline-block}.map-canvas[data-v-aa2c6d9c]{flex:1;padding-top:56px;position:relative;overflow:hidden}.map-canvas svg[data-v-aa2c6d9c]{cursor:grab;width:100%;height:100%}.map-canvas svg[data-v-aa2c6d9c]:active{cursor:grabbing}.attack-map[data-v-aa2c6d9c] .link{fill:none;stroke:var(--line);stroke-width:1.4px}.attack-map[data-v-aa2c6d9c] .node circle{stroke-width:1.6px;cursor:pointer}.attack-map[data-v-aa2c6d9c] .node.phase circle{fill:#0d1826;stroke:var(--k8s);r:9}.attack-map[data-v-aa2c6d9c] .node.technique circle{fill:#0d1826;stroke:var(--dim);r:9}.attack-map[data-v-aa2c6d9c] .node.leaf circle{fill:var(--k8s-dim);stroke:var(--k8s);r:4}.attack-map[data-v-aa2c6d9c] .node.leaf.crit circle{fill:#3a2c14;stroke:var(--crit)}.attack-map[data-v-aa2c6d9c] .node text{font-family:var(--mono);fill:var(--ink);paint-order:stroke;stroke:var(--bg);stroke-width:3px;cursor:pointer;font-size:11.5px}.attack-map[data-v-aa2c6d9c] .node text.toggle{stroke:none;font-size:12px;font-weight:700}.attack-map[data-v-aa2c6d9c] .node.phase text{letter-spacing:.03em;text-transform:uppercase;fill:#eaf1fa;font-size:12px;font-weight:700}.attack-map[data-v-aa2c6d9c] .node.leaf text{fill:var(--dim)}.attack-map[data-v-aa2c6d9c] .node.leaf.crit text{fill:var(--crit)}.attack-map[data-v-aa2c6d9c] .node:hover text{fill:#fff}.attack-map[data-v-aa2c6d9c] .node.selected circle{fill:var(--k8s)}.map-panel[data-v-aa2c6d9c]{border-left:1px solid var(--line);background:var(--panel);flex-shrink:0;width:340px;padding:70px 20px 20px;overflow-y:auto}.map-panel[data-v-aa2c6d9c] .empty{color:var(--dim);font-size:12px;line-height:1.6}.map-panel[data-v-aa2c6d9c] .kicker{letter-spacing:.08em;color:var(--k8s);text-transform:uppercase;margin-bottom:6px;font-size:10px}.map-panel[data-v-aa2c6d9c] h2{color:#fff;margin:0 0 12px;font-size:16px;line-height:1.3}.map-panel[data-v-aa2c6d9c] .desc{color:var(--ink);margin-bottom:16px;font-size:12.5px;line-height:1.65}.map-panel[data-v-aa2c6d9c] .block-label{color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin:16px 0 6px;font-size:10px}.map-panel[data-v-aa2c6d9c] code{border:1px solid var(--line);color:#9fd0ff;white-space:pre;background:#0a1320;border-radius:4px;margin-bottom:6px;padding:8px 10px;font-size:11.5px;display:block;overflow-x:auto}.map-panel[data-v-aa2c6d9c] .tools{flex-wrap:wrap;gap:6px;display:flex}.map-panel[data-v-aa2c6d9c] .tools span{border:1px solid var(--k8s-dim);color:#bcd6f2;background:#132540;border-radius:999px;padding:3px 8px;font-size:10.5px}.map-panel[data-v-aa2c6d9c] .sev{border-radius:999px;margin-bottom:10px;padding:2px 8px;font-size:10px;display:inline-block}.map-panel[data-v-aa2c6d9c] .sev.crit{color:var(--crit);border:1px solid var(--crit);background:#3a2c14}.map-panel[data-v-aa2c6d9c] .sev.med{color:var(--k8s);border:1px solid var(--k8s-dim);background:#132540}.map-panel[data-v-aa2c6d9c]::-webkit-scrollbar{width:8px}.map-panel[data-v-aa2c6d9c]::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}html,body{height:100%;margin:0}
