:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f5f8ff;color-scheme:dark;background:#071527;--border: #2b4669;--muted: #afc8e3;--cyan: #65e9ff}*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,p{margin:0}button{font:inherit;cursor:pointer}button:disabled,button[aria-disabled=true]{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #ffe06f;outline-offset:3px}[hidden]{display:none!important}svg{width:19px;height:19px;flex:none;vertical-align:middle}header,main{width:min(1480px,100%);margin:auto;padding-inline:24px}header{display:flex;align-items:center;justify-content:space-between;padding-block:14px}.brand{display:flex;align-items:center;gap:12px}.brand>span{color:var(--cyan);font-size:31px;line-height:1}h1{font-size:31px;letter-spacing:-.05em}.brand p{color:#bbd8f6;font-weight:650;font-size:14px;border-left:1px solid var(--border);padding-left:12px}.icon-button{display:grid;place-items:center;min-width:40px;height:40px;border:1px solid var(--border);background:#142845;color:#e9f5ff;border-radius:6px}.icon-button:hover{border-color:var(--cyan)}.metrics{display:grid;grid-template-columns:1fr 1.33fr 1fr;background:#112440;border:1px solid var(--border);border-radius:8px;margin-bottom:12px}.metrics>div{display:flex;align-items:center;gap:9px;padding:12px 16px;min-width:0}.metrics>div+div{border-left:1px solid var(--border)}.metrics svg{color:var(--cyan)}.metrics span{font-size:12px;font-weight:750}.metrics strong{margin-left:auto;color:var(--cyan);font-size:clamp(16px,2vw,28px);font-variant-numeric:tabular-nums;white-space:nowrap}.metrics small{color:var(--muted);white-space:nowrap;font-size:11px}.stage{display:grid;grid-template-rows:auto 1fr auto;position:relative;overflow:hidden;min-height:clamp(455px,calc(100svh - 260px),780px);border-radius:10px;border:1px solid #54aee4;background:radial-gradient(ellipse at 50% 35%,#8be6ff,#54c6f7 64%,#43a9e8)}.stage-header{z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:9px;padding:14px 17px 0;color:#0c2544;pointer-events:none}.stage-header h2{font-size:clamp(17px,2.35vw,29px);line-height:1.05;letter-spacing:-.035em}#park-count,#shot-count{display:block;margin-top:5px;font-size:12px;font-weight:760}.shots{text-align:right}#shot-pips{display:inline-flex;gap:5px;margin-top:7px}#shot-pips i{display:block;width:13px;height:7px;border-radius:3px;background:#1a507c}#shot-pips .full{background:#fdd258;border:1px solid #5b4609}#map{position:absolute;inset:22px 0 47px}.city-canvas,#targets{position:absolute;inset:0;width:100%;height:100%}#targets{pointer-events:none}.loading #targets{visibility:hidden}.service{position:absolute;transform:translate(-50%,-5%);pointer-events:auto;z-index:1;font-size:clamp(9px,1.02vw,13px);font-weight:800;line-height:1.1;padding:4px 6px;border:1px solid #d8eeff;border-bottom:3px solid var(--service);border-radius:5px;color:#fbfdff;background:#102644f2;white-space:nowrap}.service:hover,.service:focus-visible{z-index:3;border-color:#ffe06f}.service.aimed{background:#ffdb55;color:#142037;border-color:#573b00;z-index:4}.service.fallen{opacity:0;pointer-events:none}.stage-footer{grid-row:3;z-index:3;display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 14px 14px}#status{font-size:13px;font-weight:800;color:#092744}.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:1px solid #103858;border-radius:6px;padding:8px 14px;background:#102847;color:#f5fbff;font-weight:800;box-shadow:0 3px #1e709e66}.primary:hover:not(:disabled){background:#1e4776}.primary:disabled{opacity:.68;box-shadow:none}.controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.attack{display:grid;grid-template-columns:25px minmax(0,1fr) 22px;align-items:center;text-align:left;gap:8px;min-height:65px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:#112440;color:#f1f7ff}.attack[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 -3px var(--accent);background:#1a3255}.attack:hover{border-color:var(--accent)}.attack>svg{color:var(--accent)}.attack strong,.attack small{display:block}.attack strong{font-size:14px}.attack small{margin-top:4px;font-size:11px;line-height:1.2;color:var(--muted)}kbd{border:1px solid #496582;border-radius:4px;text-align:center;padding:3px 2px;font-size:11px}#map-fallback{position:absolute;top:57px;left:14px;right:14px;color:#122c47;font-size:12px;text-align:center}.fallback .city-canvas{display:none}.fallback #targets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;max-width:550px;margin:auto;padding:57px 12px 0;align-content:center}.fallback .service{position:static;transform:none;min-height:38px;white-space:normal}.fallback .service.fallen{opacity:.32}dialog{width:min(510px,calc(100% - 28px));max-height:calc(100svh - 24px);border:1px solid #50739a;padding:18px;border-radius:10px;background:#142947;color:#f5f9ff}dialog::backdrop{background:#061121cf}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}dialog p,dialog li,dialog label{line-height:1.55;font-size:14px}dialog p+p,dialog h3{margin-top:10px}dialog ul{padding-left:19px}dialog li+li{margin-top:7px}dialog a{color:var(--cyan)}dl>div{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--border);padding:11px 0;font-size:14px}dd{margin:0;color:var(--cyan);font-weight:800}.sr-only{position:absolute;clip-path:inset(50%);overflow:hidden;width:1px;height:1px;white-space:nowrap}@media(max-width:720px){header,main{padding-inline:10px}header{padding-block:9px}.metrics>div{flex-wrap:wrap;gap:2px 6px;padding:7px}.metrics svg{display:none}.metrics span{width:100%;font-size:10px}.metrics strong{margin-left:0}.metrics small{font-size:9px}.stage{min-height:clamp(355px,60svh,490px)}.controls{grid-template-columns:repeat(2,minmax(0,1fr))}.attack{min-height:57px}}@media(max-width:440px){.stage{min-height:360px}.stage-header{padding:9px 10px 0}.stage-footer{gap:6px;padding:5px 8px 9px;flex-wrap:wrap}#status{flex-basis:100%;text-align:center;font-size:11px}#map{inset:17px 0 57px}.service{font-size:8px;padding:2px 3px;border-bottom-width:2px}.service:after{content:"";position:absolute;inset:-5px -2px}.attack{grid-template-columns:19px minmax(0,1fr) 17px;gap:5px;padding:6px}.attack strong{font-size:12px}.attack small{font-size:10px}.attack svg{width:16px}}.utilities{display:flex;gap:7px}.primary:not(:disabled){background:#ffda60;color:#122641;border-color:#644f1c}.primary:hover:not(:disabled){background:#ffea9b}.attack>svg{width:22px;height:22px}@media(max-width:520px){.attack>svg{width:16px;height:16px}}.stage{background:radial-gradient(ellipse at 50% 26%,#70e4ff,#28b9fa 56%,#1689ef)}#map:not(.fallback) .service:not(.aimed):not(:focus-visible){width:1px;height:1px;padding:0;border:0;clip-path:inset(50%);pointer-events:none}#map:not(.fallback) .service.aimed,#map:not(.fallback) .service:focus-visible{font-size:12px}.fallback #targets{grid-template-columns:repeat(8,minmax(0,1fr));max-height:100%;overflow:auto;align-content:start}.fallback .service{font-size:10px}@media(max-width:520px){.fallback #targets{grid-template-columns:repeat(4,minmax(0,1fr))}}.sla-receipt{padding:12px 14px 0;margin:0 0 16px;border:1px solid var(--border);border-radius:6px;background:#10213a}.sla-receipt h3{margin:0 0 9px;font-size:15px}.sla-receipt dl{margin:0}.sla-receipt dt{color:var(--muted)}.sla-receipt dd{color:#f5f8ff;font-variant-numeric:tabular-nums;white-space:nowrap}.sla-total{align-items:baseline}.sla-total dt{color:#f5f8ff;font-weight:800}.sla-total dd{color:#ffda60;font-size:22px}.sla-opening dt{color:#f5f8ff;font-weight:800}.sla-receipt dl>div{padding-block:6px}.operator-label{position:absolute;transform:translate(-50%);pointer-events:none;padding:2px 5px;border-radius:4px;background:#102644;color:#fff;font-size:clamp(9px,1vw,12px);font-weight:750}.fallback .operator-label{display:none}#map:not(.fallback) .service.aimed:not(:focus-visible){pointer-events:none}
