:root{--bg:#0b1016;--card:#131b24;--line:#223041;--fg:#dde6ef;--mut:#8aa0b5;--acc:#3fd0a0;--bad:#ff6b6b;--warn:#f5b942}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--acc)}main{max-width:1150px;margin:0 auto;padding:16px}
.top{display:flex;gap:20px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line)}.brand{font-weight:700;color:var(--fg);text-decoration:none;font-size:18px}
.top nav a{margin-right:14px;text-decoration:none}.by{margin-left:auto;font-size:12px;color:var(--mut);border:1px solid var(--line);padding:2px 8px;border-radius:10px}
.banner{background:#2a2410;color:var(--warn);text-align:center;padding:8px;font-weight:600}.banner.warn{background:#2a1515;color:var(--bad)}
h1{margin:8px 0 0}.sub,.hint,.note{color:var(--mut);font-size:13px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:16px 0}.kpi{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px}
.kpi b{display:block;font-size:26px;color:var(--acc)}.kpi span{color:var(--mut);font-size:13px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:10px}
.card h2{font-size:15px;margin:0 0 8px}.rows{margin:0;padding-left:20px}.rows li span{display:inline-block;min-width:60%}.rows b{float:right}
.bars{display:flex;align-items:flex-end;gap:2px;height:120px}.bars i{flex:1;background:var(--acc);min-height:1px;opacity:.8}
.filters{display:flex;gap:16px;margin-bottom:8px}select{background:var(--bg);color:var(--fg);border:1px solid var(--line);padding:3px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:6px;border-bottom:1px solid var(--line)}tr.click{cursor:pointer}tr.click:hover{background:#18232f}
.facts{display:grid;grid-template-columns:180px 1fr;gap:4px 12px;margin:0}.facts dt{color:var(--mut)}.facts dd{margin:0}
.ctl{border-left:4px solid var(--line);padding:4px 12px;margin:10px 0}.ctl h3{font-size:15px;margin:4px 0}.ctl.hit{border-color:var(--acc)}.ctl.miss{border-color:var(--bad)}
.hit .mark{color:var(--acc)}.miss .mark{color:var(--bad)}code{background:#0e151d;padding:1px 4px;border-radius:3px;word-break:break-all}
.events{padding-left:20px}.events .t{color:var(--mut);margin-right:8px}
footer{max-width:1150px;margin:20px auto;padding:0 16px 30px;color:var(--mut);font-size:13px}
.mapwrap{display:grid;grid-template-columns:1fr 220px;gap:14px;align-items:start}
.map{position:relative;width:100%;aspect-ratio:2/1;background:#0e151d;border-radius:6px;overflow:hidden}
.map img,.map .overlay{position:absolute;inset:0;width:100%;height:100%}
.overlay .dot{fill:#ff6b6b;fill-opacity:.75;stroke:#ffb3b3;stroke-width:.6}
.overlay .target{fill:var(--acc);stroke:#fff;stroke-width:1}
.overlay .target-label{fill:var(--acc);font-size:13px;font-weight:600}
.overlay .arc-base{fill:none;stroke:#ff8a5c;stroke-width:1;stroke-opacity:.3}
.overlay .arc{fill:none;stroke:#ffc29c;stroke-width:2;stroke-linecap:round;stroke-dasharray:12 100;stroke-dashoffset:112;animation:arc 3s linear infinite}
@keyframes arc{to{stroke-dashoffset:0}}
.legend h3{font-size:13px;margin:0 0 6px;color:var(--mut)}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
body{overflow-x:hidden}
@media (max-width:720px){.top{flex-wrap:wrap;gap:10px}.filters{flex-wrap:wrap}h1{font-size:24px}.mapwrap{grid-template-columns:1fr}.overlay .target-label{font-size:20px}}
@media (prefers-reduced-motion:reduce){.overlay .arc{display:none}}
