:root{--bg:#05080d;--panel:rgba(8,16,24,.88);--line:#12324a;--cyan:#38e1ff;--green:#4dff9a;--red:#ff3b3b;--orange:#ff9a2e;--yellow:#ffe14d;--mag:#ff4dff;--txt:#bfe8ff;--muted:#5f8299}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--txt);font-family:'JetBrains Mono',monospace;font-size:13px}
body::after{content:"";pointer-events:none;position:fixed;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);z-index:50}
header{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#071420,#0b1f2e 50%,#071420)}
.brand{font-family:Orbitron;font-weight:900;letter-spacing:3px;color:var(--cyan);font-size:18px;text-shadow:0 0 12px rgba(56,225,255,.6)}.brand small{color:var(--muted);font-size:11px;letter-spacing:2px}
.blink{color:var(--red);animation:bl 1.2s infinite}@keyframes bl{50%{opacity:.2}}
.status{display:flex;gap:16px;color:var(--green);font-weight:600}#statusText.busy{color:var(--orange)}
main{display:grid;grid-template-columns:290px 1fr 330px;height:calc(100% - 78px)}
.panel{background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(4px)}
aside{overflow-y:auto;padding:10px 12px}
h2{font-family:Orbitron;font-size:11px;letter-spacing:3px;color:var(--cyan);border-bottom:1px solid var(--line);padding-bottom:4px;margin:14px 0 8px}
label{display:block;margin:10px 0;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:1px}label b{float:right;color:var(--txt)}
select,input[type=range]{width:100%;margin-top:5px}select{background:#0a1824;color:var(--txt);border:1px solid var(--line);padding:6px;font-family:inherit}
input[type=range]{accent-color:var(--cyan)}.toggle{display:flex;align-items:center;gap:8px;color:var(--txt)}.toggle input{accent-color:var(--green);width:18px;height:18px}
.desc{color:var(--muted);font-size:11px;line-height:1.4;margin:4px 0}
button.run{width:100%;padding:12px;margin-top:8px;font-family:Orbitron;font-weight:900;letter-spacing:2px;color:#03121b;background:linear-gradient(90deg,var(--cyan),var(--green));border:0;cursor:pointer;box-shadow:0 0 18px rgba(56,225,255,.45)}
button.run:disabled{filter:grayscale(1) brightness(.6);cursor:wait}
.busy{display:flex;align-items:center;gap:10px;margin-top:10px;color:var(--orange)}.hidden{display:none!important}
.radar{width:34px;height:34px;border-radius:50%;border:1px solid var(--green);background:conic-gradient(rgba(77,255,154,.7),transparent 30%);animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.mc{margin-top:10px;font-size:11px;line-height:1.6}.mc .k{color:var(--muted)}.mc .v{color:var(--yellow);float:right}
.legend div{margin:4px 0;font-size:11px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.red{background:var(--red);box-shadow:0 0 8px var(--red)}
.trail{width:22px;height:3px;display:inline-block;border-radius:2px}.trail.orange{background:linear-gradient(90deg,transparent,var(--orange))}.trail.grey{background:linear-gradient(90deg,transparent,#8a9aa8)}.trail.yellow{background:linear-gradient(90deg,transparent,var(--yellow))}.trail.magenta{background:linear-gradient(90deg,transparent,var(--mag))}
.flash{width:10px;height:10px;border-radius:50%;border:2px solid #dff;display:inline-block}.boom{width:12px;height:12px;border-radius:50%;background:radial-gradient(#fff,var(--orange),var(--red));display:inline-block}
.rings span{display:inline-flex;align-items:center;gap:4px;margin-right:8px}.rings i{width:10px;height:10px;border-radius:50%;border:2px solid;display:inline-block}
.center{position:relative;overflow:hidden}#map,#fx{position:absolute;inset:0}#fx{pointer-events:none;z-index:5}
.dayBadge{position:absolute;top:12px;left:12px;z-index:6;background:var(--panel);border:1px solid var(--line);padding:6px 14px;font-family:Orbitron;display:flex;align-items:baseline;gap:8px}
.dayBadge span{color:var(--muted);font-size:11px;letter-spacing:3px}.dayBadge b{font-size:30px;color:var(--yellow);text-shadow:0 0 14px rgba(255,225,77,.6)}.dayBadge small{color:var(--muted)}
.timeline{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);width:min(640px,92%);z-index:6;display:flex;gap:10px;align-items:center;padding:8px 12px}
.timeline button{background:var(--cyan);border:0;width:36px;height:30px;font-size:15px;cursor:pointer}.timeline button:disabled{opacity:.4}.timeline input{flex:1;margin:0}.timeline select{width:70px;margin:0}
table.counters{width:100%;border-collapse:collapse;font-size:12px}.counters th{color:var(--muted);font-size:9px;letter-spacing:1px;text-align:right}.counters td{text-align:right;padding:3px 2px;font-weight:600}.counters td:first-child{text-align:left;color:var(--txt)}
.counters .k{color:var(--green)}.counters .l{color:var(--red)}
.chart{height:150px;position:relative}
.log{font-size:11px;line-height:1.5;max-height:240px;overflow-y:auto}.log div{border-left:2px solid var(--line);padding-left:6px;margin-bottom:3px;animation:fade .5s}
.log .destroyed{border-color:var(--red)}.log .depleted{border-color:var(--orange)}.log .reinforce{border-color:var(--green)}.log .counterstrike{border-color:var(--cyan)}.log .summary{border-color:var(--yellow)}.log .d{color:var(--yellow)}.muted{color:var(--muted)}
@keyframes fade{from{opacity:0;transform:translateX(8px)}}
.tmk{font-size:16px;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(77,255,154,.18);border:2px solid var(--green);cursor:pointer;transition:background .6s,border-color .6s,transform .3s}
.tmk.hit{transform:scale(1.35)}
.lmk{width:14px;height:14px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(255,59,59,.7);animation:pulse 1.6s infinite}@keyframes pulse{70%{box-shadow:0 0 0 14px rgba(255,59,59,0)}100%{box-shadow:0 0 0 0 rgba(255,59,59,0)}}
.gaplabel{font-family:Orbitron;font-size:10px;letter-spacing:2px;color:var(--yellow);text-shadow:0 0 6px #000;white-space:nowrap}
.front{font-size:20px;filter:drop-shadow(0 0 6px red)}
.maplibregl-popup-content{background:#0a1824;color:var(--txt);border:1px solid var(--line);font-family:inherit;font-size:11px}.maplibregl-popup-tip{border-top-color:#0a1824!important}
footer{height:28px;line-height:28px;font-size:10px;color:var(--muted);text-align:center;border-top:1px solid var(--line);background:#04070b;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 10px}footer a{color:var(--cyan)}
@media (max-width:1000px){main{grid-template-columns:1fr;height:auto}.center{height:62vh}aside{max-height:none}footer{white-space:normal;height:auto;line-height:1.4;padding:6px}}
