:root{--bg: #04070b;--panel: #0a1118;--line: #14242f;--text: #c9e8d8;--dim: #647f73;--accent: #2aff8a;--cyan: #39d5ff;--amber: #ffb454;--red: #ff5470;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;color-scheme:dark}*{box-sizing:border-box}body{background:radial-gradient(1200px 500px at 50% -10%,rgba(42,255,138,.06),transparent),repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px),var(--bg);color:var(--text);font-family:system-ui,-apple-system,sans-serif;margin:0;min-height:100vh}.statusbar{position:sticky;top:0;z-index:1000;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;max-width:1100px;margin:0 auto;padding:10px 16px;background:#04070beb;border-bottom:1px solid var(--line)}.statusbar h1{font-family:var(--mono);font-size:1rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;text-shadow:0 0 12px rgba(42,255,138,.45)}.statusbar p{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:0}.live-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);align-self:center;animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.live-dot{animation:none}}main,footer{max-width:1100px;margin:0 auto;padding:12px 16px calc(16px + env(safe-area-inset-bottom))}main{display:grid;gap:12px;grid-template-columns:1fr}@media (min-width: 900px){main{grid-template-columns:1.4fr 1fr}main .panel:first-child{grid-row:span 2}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}.panel h2{font-family:var(--mono);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin:0 0 10px;border-bottom:1px solid var(--line);padding-bottom:8px}.panel p{font-size:.86rem;color:var(--dim)}.readout{font-family:var(--mono);font-size:.85rem;color:var(--accent);background:#050c08;border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-bottom:10px;overflow-wrap:anywhere}#map{height:46vh;min-height:300px;border-radius:8px;overflow:hidden;background:#0d141b;border:1px solid var(--line)}#map:focus-within{border-color:var(--accent)}#radar{display:block;width:100%;max-width:520px;height:auto;margin:12px auto 0;border-radius:50%;background:#05070a;filter:drop-shadow(0 0 18px rgba(42,255,138,.18));touch-action:manipulation}label{display:block;margin:10px 0;font-size:.85rem}label span{display:block;margin-bottom:4px;color:var(--dim);font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}input{width:100%;font:inherit;font-size:16px;font-family:var(--mono);color:var(--text);background:#050c08;border:1px solid var(--line);border-radius:6px;padding:10px 12px;min-height:44px}input:focus{outline:none;border-color:var(--accent)}input[type=checkbox]{width:auto;min-height:auto;accent-color:var(--accent)}button{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:#2aff8a12;border:1px solid var(--accent);border-radius:6px;padding:10px 16px;min-height:44px;min-width:44px;margin:4px 8px 4px 0;cursor:pointer;touch-action:manipulation}button:hover{background:#2aff8a29}button:active{background:#2aff8a47}button:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}#keys-status,#locate-status{font-family:var(--mono);font-size:.78rem;color:var(--amber);min-height:1.2em}.disclaimer{background:#160b06;border-bottom:2px solid var(--amber);padding:12px 16px;font-size:.9rem}.disclaimer[hidden]{display:none}.disclaimer h1{font-family:var(--mono);font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);margin:0 0 6px}.disclaimer button{color:var(--amber);border-color:var(--amber);background:#ffb45414}#disclaimer-countdown{font-family:var(--mono);color:var(--amber);margin-left:8px}footer{display:flex;gap:8px;flex-wrap:wrap;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--dim)}@media (max-width: 640px){main,footer{padding-left:10px;padding-right:10px}.panel{padding:10px;border-radius:8px}#map{height:40vh;min-height:260px}button{flex:1 1 auto}.statusbar h1{font-size:.9rem}}
