:root{--bg:#14171a;--panel:#1d2126;--line:#2e343b;--text:#e8eaed;--muted:#9aa3ad;--accent:#ff8a1f;--warn:#d29922}*{box-sizing:border-box}html,body,#root,.app{background:var(--bg);height:100%;color:var(--text);margin:0;font:14px/1.4 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.map{position:absolute;top:0;bottom:0;left:0;right:0}button{font:inherit}a{color:var(--accent)}.search{z-index:5;top:max(10px, env(safe-area-inset-top));max-width:420px;position:absolute;left:10px;right:116px}.search input{background:var(--panel);width:100%;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:16px}.search .results{background:var(--panel);border:1px solid var(--line);border-radius:10px;max-height:50vh;margin-top:6px;overflow:auto}.search .results button{text-align:left;width:100%;color:var(--text);border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;padding:9px 12px;display:block}.search .results button:hover{color:var(--accent)}.layers-btn{z-index:5;top:max(10px, env(safe-area-inset-top));background:var(--panel);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:10px 12px;position:absolute;right:10px}.drawer{z-index:6;top:calc(max(10px, env(safe-area-inset-top)) + 50px);background:var(--panel);border:1px solid var(--line);border-radius:12px;width:310px;max-width:calc(100% - 20px);max-height:calc(100% - 130px);padding:12px;position:absolute;right:10px;overflow:auto}.drawer h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:12px 0 6px;font-size:12px}.drawer h3:first-child{margin-top:0}.drawer label{cursor:pointer;align-items:center;gap:8px;padding:4px 0;display:flex}.drawer small,.fine,small{color:var(--muted)}.sw{border:2px solid;border-radius:3px;flex:none;width:14px;height:14px}.legend{flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12px;display:flex}.dot{border-radius:50%;width:9px;height:9px;display:inline-block}.fine{font-size:12px}.status{z-index:4;left:10px;bottom:max(34px, calc(env(safe-area-inset-bottom) + 24px));background:var(--panel);border:1px solid var(--line);max-width:calc(100% - 80px);color:var(--muted);border-radius:10px;padding:6px 10px;font-size:12px;position:absolute}.pinbar{z-index:5;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:200px;right:10px}.pinbar>button{background:var(--panel);width:44px;height:44px;color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:10px;font-size:18px}.pinbar>button.on{border-color:var(--accent)}.pinmenu{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.pinmenu button{background:var(--bg);color:var(--text);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:8px;padding:8px 10px}.pin{cursor:pointer;filter:drop-shadow(0 1px 2px #000);font-size:22px}.maplibregl-popup-content{background:var(--panel);color:var(--text);overscroll-behavior:contain;border-radius:10px;max-height:min(62vh,520px);padding:12px 14px;overflow:auto}.maplibregl-popup-tip{border-top-color:var(--panel)!important;border-bottom-color:var(--panel)!important}.maplibregl-popup-close-button{color:var(--muted);font-size:18px}.pp h4{margin:0 0 6px;padding-right:14px;font-size:15px}.pp table{border-collapse:collapse;width:100%}.pp td{vertical-align:top;padding:2px 0}.pp td:first-child{color:var(--muted);white-space:nowrap;padding-right:10px}.pp .links{margin-top:6px}.pp .w{color:var(--warn);margin-top:6px;font-size:12px}.pp .disc{color:var(--muted);margin-top:6px;font-size:11px}.pp .sec{margin-top:8px}.pp .scroll,.pp details{margin-top:4px}.pp summary{cursor:pointer;color:var(--accent)}.pinedit input,.pinedit textarea,.pinedit select{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:6px;margin:3px 0;padding:6px}.pinedit .row{gap:6px;margin-top:6px;display:flex}.pinedit button{background:var(--bg);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:6px 10px}.modal{z-index:50;background:#000a;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal .card{background:var(--panel);border:1px solid var(--line);border-radius:14px;max-width:420px;padding:18px}.modal h2{margin:0 0 8px;font-size:18px}.modal button{background:var(--accent);color:#111;cursor:pointer;border:0;border-radius:10px;width:100%;margin-top:8px;padding:12px;font-weight:700}@media (max-width:520px){.drawer{width:auto;left:10px}}.pinbar>button.synced{color:#3fb950;border-color:#3fb950}.pinmenu .acct{border-bottom:1px solid var(--line);word-break:break-all;flex-direction:column;gap:6px;max-width:230px;padding-bottom:6px;display:flex}.pinmenu .warn{color:var(--warn)}.pinmenu button.primary{background:var(--accent);color:#111;border-color:var(--accent);font-weight:700}.pinmenu button.danger{color:#ff7b72}.pinedit .linkbtn{border:1px dashed var(--accent);width:100%;color:var(--accent);background:0 0;margin-top:6px;display:block}.modal .field{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--line);border-radius:10px;margin-top:8px;padding:12px;font-size:16px}.modal .field.code{letter-spacing:.3em;text-align:center;font-size:22px}.modal button:disabled{opacity:.6}.modal button.ghost{color:var(--muted);background:0 0;font-weight:400}.modal .err{color:#ff7b72;margin:8px 0 0}.locate-btn{z-index:5;right:10px;bottom:calc(max(34px, env(safe-area-inset-bottom) + 24px) + 104px);background:var(--panel);width:44px;height:44px;color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;display:flex;position:absolute}.locate-btn.follow,.locate-btn.shown{color:#4aa3ff;border-color:#4aa3ff}.locate-btn.locating svg{color:#4aa3ff;animation:1s ease-in-out infinite mt-pulse}@keyframes mt-pulse{50%{opacity:.3}}.me{width:0;height:0}.me-dot{background:#1e90ff;border:3px solid #fff;border-radius:50%;width:18px;height:18px;position:absolute;top:-9px;left:-9px;box-shadow:0 0 0 1px #0004,0 1px 4px #0008}.me.stale .me-dot{background:#7aa7d6}.me-cone{clip-path:polygon(50% 100%,10% 0,90% 0);background:radial-gradient(circle at 50% 100%,#1e90ffcc 0,#1e90ff55 45%,#0000 70%);width:60px;height:62px;display:none;position:absolute;top:-62px;left:-30px}.me.has-heading .me-cone{display:block}.geo-toast{z-index:7;left:10px;right:66px;bottom:calc(max(34px, env(safe-area-inset-bottom) + 24px) + 44px);background:var(--panel);border:1px solid var(--line);border-radius:12px;max-width:420px;padding:10px 12px;font-size:14px;position:absolute}.geo-toast.problem{border-color:var(--warn)}.geo-toast ol{margin:6px 0 0;padding-left:18px}.geo-toast .row{gap:8px;margin-top:8px;display:flex}.geo-toast button{background:var(--accent);color:#111;cursor:pointer;border:0;border-radius:8px;padding:8px 14px;font-weight:700}.geo-toast button.ghost{color:var(--muted);background:0 0;font-weight:400}.geo-readout{z-index:4;left:50%;top:calc(max(10px, env(safe-area-inset-top)) + 52px);color:#fff;background:#000a;border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 10px;max-width:calc(100% - 20px);padding:6px 30px 6px 10px;font-size:12px;display:flex;position:absolute;transform:translate(-50%)}.geo-readout .x{color:#fff;cursor:pointer;background:0 0;border:0;font-size:18px;position:absolute;top:2px;right:6px}.geo-readout .wake{align-items:center;gap:4px;display:flex}.geo-readout .limit{text-align:center;color:#ccc;flex-basis:100%;font-size:11px}.geo-debug{z-index:60;color:#7cfc00;white-space:pre-wrap;pointer-events:none;background:#000d;max-height:40vh;margin:0;padding:6px;font:11px/1.35 ui-monospace,monospace;position:absolute;bottom:0;left:0;right:0;overflow:auto}.pp .dist{color:#4aa3ff;margin:4px 0}.offline .save{background:var(--accent);color:#111;cursor:pointer;border:0;border-radius:8px;width:100%;margin:6px 0;padding:9px;font-weight:700}.offline .save:disabled{background:var(--line);color:var(--muted)}.offline .bar{background:var(--line);border-radius:4px;height:8px;margin:6px 0 4px;overflow:hidden}.offline .bar div{background:var(--accent);height:100%;transition:width .2s}.offline ul{margin:6px 0;padding:0;list-style:none}.offline li{border-bottom:1px solid var(--line);padding:4px 0}.offline .note{color:#3fb950;margin:4px 0;display:block}.linkish{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.linkish.del{color:#ff7b72;float:right}.toolbar{z-index:5;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:304px;right:10px}.toolbar>button{background:var(--panel);width:44px;height:44px;color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:10px;font-size:18px}.toolbar>button.rec{color:#ff3b30;border-color:#ff3b30;animation:1.5s infinite mt-pulse}.tools-menu{max-width:min(300px,100vw - 80px);max-height:50vh;overflow:auto}.tracklist{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:6px;display:flex}.trk{flex-direction:column;gap:2px;font-size:13px;display:flex}.trk label{align-items:center;gap:6px;display:flex}.tool-banner{z-index:6;left:50%;top:calc(max(10px, env(safe-area-inset-top)) + 150px);background:var(--panel);border:1px solid #ffd33d;border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px 10px;width:max-content;max-width:calc(100% - 20px);padding:8px 10px;font-size:14px;display:flex;position:absolute;transform:translate(-50%)}.tool-banner.rec{border-color:#ff3b30}.tool-banner.nav{top:calc(max(10px, env(safe-area-inset-top)) + 204px);border-color:#4aa3ff}.tool-banner button{background:var(--accent);color:#111;cursor:pointer;border:0;border-radius:8px;padding:6px 12px;font-weight:700}.tool-banner button.ghost{color:var(--muted);border:1px solid var(--line);background:0 0;font-weight:400}.tool-banner small{color:var(--muted);flex-basis:100%}.pinedit .row{flex-wrap:wrap}.pp .rules-link{margin-top:8px;font-size:13px;display:block}.pp.rules td:first-child{width:80px}.pp .cond .wxrow{gap:8px;margin-top:4px;display:flex}.pp .cond .wxrow span{text-align:center;background:var(--bg);border-radius:6px;flex:1;padding:3px 2px;font-size:12px}.pp .cond .src{color:var(--muted);margin-top:4px;font-size:10px;display:block}.tool-banner.wind{top:calc(max(10px, env(safe-area-inset-top)) + 258px);border-color:#ff4d4d}.tool-banner.wind input[type=range]{flex:1;min-width:120px}.landing{max-width:640px;height:100%;padding:max(20px, env(safe-area-inset-top)) 16px 40px;margin:0 auto;overflow:auto}.landing header{align-items:center;gap:12px;display:flex}.landing h1{margin:0;font-size:28px}.landing h2{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:24px 0 8px;font-size:13px}.landing .lead{font-size:16px}.landing .near{background:var(--accent);color:#111;cursor:pointer;border:0;border-radius:12px;width:100%;min-height:48px;font-size:16px;font-weight:700}.landing .states{gap:8px;margin:0;padding:0;list-style:none;display:grid}.landing .states a,.landing .states span{background:var(--panel);border:1px solid var(--line);min-height:56px;color:var(--text);border-radius:12px;flex-direction:column;justify-content:center;gap:2px;padding:10px 14px;text-decoration:none;display:flex}.landing .states a:hover{border-color:var(--accent)}.landing .states b{font-size:16px}.landing .soon{opacity:.6}.landing .w{color:var(--warn)}.drawer .brandline{margin:0 0 8px}
