:root{--bg:#1a1d24;--panel:#222630;--line:#323847;--fg:#e8eaf0;--mute:#8d95a8;--acc:#ffc400;--ok:#3ecf8e;--bad:#ff5d5d}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
#bar{position:fixed;z-index:1000;top:0;left:0;right:0;height:52px;padding:0 12px;padding-top:env(safe-area-inset-top);display:flex;align-items:center;gap:12px;background:var(--bg);border-bottom:1px solid var(--line)}
.brand{white-space:nowrap}.brand b{color:var(--acc)}
#searchForm{flex:1;max-width:520px}
#search{width:100%;padding:8px 12px;border-radius:8px;border:1px solid var(--line);background:#12151a;color:var(--fg);font-size:15px}
#status{font-size:12px;color:var(--mute);white-space:nowrap}
#map{position:fixed;top:52px;left:0;right:0;bottom:0;background:#0f1115}
.leaflet-container{background:#0f1115;font:inherit}
#hint{position:fixed;z-index:900;top:64px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.7);padding:4px 12px;border-radius:14px;font-size:12px;display:none}
.plane{width:28px;height:28px;margin:-14px 0 0 -14px}
.plane svg{width:100%;height:100%;filter:drop-shadow(0 0 2px #000)}
.plane path{fill:var(--acc);stroke:#000;stroke-width:.8}
.plane.sel path{fill:#fff;stroke:var(--acc);stroke-width:1.4}
.plane.gnd path{fill:#8d95a8}
.plane .tag{position:absolute;left:24px;top:-2px;font-size:10px;color:#fff;text-shadow:0 0 3px #000,0 0 3px #000;white-space:nowrap;pointer-events:none}
.apt{background:#9aa3b8;border:1px solid #000;border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px}
.aptl{color:#c7cddd;font-size:10px;text-shadow:0 0 3px #000;margin:-3px 0 0 8px;white-space:nowrap}
#panel{position:fixed;z-index:1000;top:52px;right:0;bottom:0;width:340px;max-width:100%;overflow:auto;background:var(--panel);border-left:1px solid var(--line);padding:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom))}
#close{position:absolute;right:8px;top:6px;background:none;border:0;color:var(--mute);font-size:26px;cursor:pointer}
#acInfo h2{margin:0;font-size:22px;color:var(--acc)}
#acInfo .sub{color:var(--mute);margin-bottom:8px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:10px 0}
.grid div span{display:block;color:var(--mute);font-size:11px;text-transform:uppercase}
#atc{border-top:1px solid var(--line);margin-top:10px;padding-top:6px}
#atc h3{margin:6px 0}
#phase{font-weight:400;color:var(--acc);font-size:12px;margin-left:6px}
.freq{font-size:26px;font-weight:600;letter-spacing:.5px}
.freq small{font-size:12px;color:var(--mute);font-weight:400}
.conf{font-size:12px;color:var(--mute)}
#chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.chip{padding:5px 10px;border-radius:14px;border:1px solid var(--line);background:#12151a;color:var(--fg);font-size:12px;cursor:pointer}
.chip.on{border-color:var(--acc);color:var(--acc)}
.chip.bad{opacity:.45;text-decoration:line-through}
#player{display:flex;align-items:center;gap:10px;margin:8px 0}
#play{padding:9px 16px;border-radius:8px;border:0;background:var(--acc);color:#000;font-weight:600;font-size:15px;cursor:pointer}
#playState{font-size:12px;color:var(--mute)}
#playState.ok{color:var(--ok)}#playState.bad{color:var(--bad)}
.follow{display:block;margin:8px 0;font-size:13px}
.custom{display:flex;gap:6px;margin:8px 0}
.custom input{flex:1;padding:6px 8px;border-radius:6px;border:1px solid var(--line);background:#12151a;color:var(--fg)}
.custom button{padding:6px 10px;border-radius:6px;border:1px solid var(--line);background:#12151a;color:var(--fg);cursor:pointer}
a{color:#7db3ff}
.fine{font-size:11px;color:var(--mute)}
@media(max-width:640px){
  #panel{top:auto;height:58vh;width:100%;border-left:0;border-top:1px solid var(--line);border-radius:14px 14px 0 0}
  .brand{display:none}
}
