:root{--gold:#FFD700;--blue:#0088ff;--dblue:#4d8dff;--cyan:#00d4ff;--bg:#080808;--panel:#171717;--card:#1e1e1e;--line:#333;--red:#e63946;--green:#28a745;--ylw:#ffe44d;--orange:#e07a2c;--navy:#0e2c61;--lcd:#7dff9b;--tabh:62px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:#eee;font:16px 'Segoe UI',Roboto,system-ui,sans-serif}
.hidden{display:none!important}
header{position:sticky;top:0;z-index:20;display:flex;gap:10px;align-items:center;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top));background:#0e0e0e;border-bottom:2px solid var(--orange)}
.logo{width:36px;height:36px}
.hd{flex:1;min-width:0}.brand{font-weight:800;letter-spacing:1px;color:var(--gold);font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sub{color:#999;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hr{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
#clock{font:700 .95rem 'Courier New',monospace;color:var(--cyan)}
.pill{font-size:.65rem;padding:2px 7px;border-radius:20px;background:#143d1f;color:#7dff9b}.pill.off{background:#4a1515;color:#ff9b9b}
#installBar{display:flex;gap:8px;align-items:center;background:var(--navy);padding:8px 12px;font-size:.85rem}
#installBar span{flex:1}#installBar button{background:var(--blue);color:#fff;border:0;border-radius:8px;padding:8px 12px;font-weight:700}#installBar .x{background:transparent;padding:6px}
main{padding:12px 12px calc(var(--tabh) + 18px + env(safe-area-inset-bottom));max-width:720px;margin:0 auto}
h2{font-size:1rem;color:var(--dblue);margin:4px 0 10px}
.mini-h{font-size:.8rem;color:var(--dblue);text-transform:uppercase;letter-spacing:1px;margin:18px 0 6px}
label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--ylw);margin:10px 0 4px}
label.cb{display:flex;gap:8px;align-items:center;margin:0;color:#ccc;font-size:.85rem;text-transform:none;font-weight:600}
label.cb input{width:20px;height:20px;margin:0}
input,select{width:100%;padding:12px;border-radius:10px;border:1px solid #444;background:#262626;color:#fff;font:inherit;font-size:1rem}
input:focus,select:focus{outline:2px solid var(--blue)}
.up{text-transform:uppercase}
.callin{color:var(--gold);font-weight:800;font-size:1.6rem;text-transform:uppercase;letter-spacing:1px;padding:10px 12px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.info{font-size:.8rem;color:#9ad;min-height:1.1em;margin-top:4px}
.dupe{color:#ff6b6b;text-transform:none;letter-spacing:0;font-weight:800}
.muted{color:#888;font-weight:400}.small{font-size:.8rem}.note{font-size:.8rem;color:#aaa;margin:8px 0}
.btn{background:#333;color:#fff;border:1px solid #555;padding:12px 10px;border-radius:10px;font-weight:700;font:inherit;font-weight:700;width:100%}
.btn.sm{width:auto;padding:7px 14px}
.pri{display:block;width:100%;background:var(--blue);border:0;color:#fff;padding:16px;border-radius:12px;font-weight:800;font-size:1.1rem;margin-top:14px;font-family:inherit}
.pri:active{transform:scale(.99)}.pri.grey{background:#444}.pri.red{background:#8b1d26}
.vfo{position:relative;background:#020a04;border:2px solid #2b3b2e;border-radius:12px}
.lcd{background:transparent;border:0;color:var(--lcd);font:700 2.3rem/1.1 'Consolas','Roboto Mono','Courier New',monospace;text-align:right;padding:10px 64px 10px 12px;letter-spacing:1px;text-shadow:0 0 8px rgba(125,255,155,.4)}
.lcd:focus{outline:none;color:#fff;background:#0b1a0e}
.unit{position:absolute;right:12px;bottom:14px;color:#4c8a5a;font:700 .9rem monospace}
.chips{display:flex;gap:7px;margin-top:9px}
.chips.scroll{overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.chips.scroll::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;border:1px solid #444;background:#262626;color:#ddd;border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:700;font-family:inherit}
.chip.on{background:var(--navy);border-color:var(--dblue);color:#fff}
.row-opts{display:flex;gap:16px;align-items:center;margin:10px 0 4px}.sp{flex:1}
.qlist .q{display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;align-items:center;background:var(--card);border:1px solid #2a2a2a;border-radius:10px;padding:9px 11px;margin-bottom:7px}
.q .t{font:700 .8rem monospace;color:#9aa}.q .c{color:var(--gold);font-weight:800;font-size:1.05rem}.q .m{font:600 .8rem monospace;color:var(--cyan);text-align:right}
.q .d{grid-column:1/-1;font-size:.78rem;color:#aaa}.q .dup{color:#ff6b6b;font-weight:800}
.slist .s{background:var(--card);border:1px solid #2a2a2a;border-left:4px solid var(--gold);border-radius:10px;padding:10px 11px;margin-bottom:8px}
.s .top{display:flex;gap:8px;align-items:baseline}.s .c{color:var(--gold);font-weight:800;font-size:1.05rem}.s .f{font:700 .95rem monospace;color:var(--cyan)}
.s .md{color:#ccc;font-size:.8rem}.s .tm{margin-left:auto;font:.75rem monospace;color:#888}.s .r{font-size:.82rem;color:#ddd;margin-top:4px}
.s.worked{opacity:.45}.s.worked .c::after{content:' ✓';color:#7dff9b}.s.fresh{border-left-color:#7dff9b}
.badge{display:inline-block;font-size:.66rem;padding:1px 6px;border-radius:4px;font-weight:800;color:#fff;margin-right:4px;background:#555}
.b-WCA{background:#8B4513}.b-MOTA{background:#2E7D32}.b-TOTA{background:#1565C0}.b-LH{background:#B71C1C}.b-IOTA{background:#00838f}.b-POTA{background:#c0392b}.b-SOTA{background:#7f8c8d}.b-WWFF{background:#16a085}.b-WWBOTA{background:#34495e}.b-GMA{background:#6d4c41}
.menu{display:grid;gap:10px}
.mbtn{width:100%;text-align:left;padding:16px;border-radius:12px;border:1px solid #333;background:#1f1f1f;color:#fff;font:inherit;font-weight:700;font-size:1rem}
.mbtn.green{background:#1b5e2b}.mbtn.red{background:#7d1b24}.mbtn.grey{background:#2a2a2a}
nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:#0e0e0e;border-top:1px solid #333;padding-bottom:env(safe-area-inset-bottom);height:calc(var(--tabh) + env(safe-area-inset-bottom))}
nav.tabs button{background:none;border:0;color:#999;font-size:1.3rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit}
nav.tabs button span{font-size:.7rem;font-weight:700}
nav.tabs button.on{color:var(--gold)}
dialog{background:#1a1a1a;color:#eee;border:2px solid var(--gold);border-radius:16px;padding:18px;width:min(560px,94vw);max-height:90vh;overflow:auto}
dialog::backdrop{background:#000c}dialog h3{margin:0 0 8px;color:var(--gold)}
.act{border-top:1px solid #2c2c2c;padding:8px 0}.act label.cb{font-size:.92rem;color:#eee;margin-bottom:6px}
.erow{background:#222;border:1px solid #333;border-radius:10px;padding:10px;margin-bottom:9px}
.erow b{display:block}.erow .fn{font:600 .75rem monospace;color:#aaa;word-break:break-all;margin:4px 0 8px}
.erow .two .btn{padding:10px}
#toast{position:fixed;left:50%;bottom:calc(var(--tabh) + 16px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#000;border:1px solid var(--gold);padding:10px 16px;border-radius:12px;display:none;z-index:99;width:max-content;max-width:92vw;white-space:pre-line;font-size:.9rem}
@media(min-width:760px){.lcd{font-size:2.8rem}}
a{color:#9ad}

.near-btn{width:100%;margin:4px 0 6px}
.near-h{font-size:.78rem;color:#ffb347;margin:8px 0 3px;text-transform:uppercase;letter-spacing:.4px}
.near{display:flex;gap:8px;align-items:baseline;width:100%;text-align:left;background:#1b1b1b;border:1px solid #333;color:#eee;border-radius:8px;padding:8px 10px;margin:3px 0;font:inherit}
.near span{flex:1;color:#aaa;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.near em{font-style:normal;color:#ccc;font-size:.85rem}.near em.ok{color:#7dff9b}
.near.added{border-color:#2e7d32;background:#143d1f}
.osel{width:auto;margin-left:6px;padding:3px 6px;font-size:.85rem}
body.mapmode main{padding:0;max-width:none}
#mapFrame{display:block;width:100%;border:0;background:#0b1220}
