:root{--bg:#0c1620;--panel:#0e1a26db;--panel-solid:#0e1a26;--border:#233344;--border-strong:#34495e;--text:#e8eef4;--text-muted:#8aa2b8;--text-dim:#5d7388;--accent:#f5a524;--accent-soft:#f5a52422;--flyable:#4ade80;--marginal:#fbbf24;--unflyable:#f87171;--user:#38bdf8;--font-display:"IBM Plex Sans Condensed", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-display);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;overflow:hidden}#map{z-index:0;background:#1a2738;position:fixed;inset:0}#ui-overlay{pointer-events:none;z-index:10;flex-direction:column;justify-content:flex-end;gap:12px;padding:16px;display:flex;position:fixed;inset:0}#locate-btn{pointer-events:auto;top:max(env(safe-area-inset-top,0px), 16px);border:1px solid var(--border-strong);background:var(--panel);width:44px;height:44px;color:var(--accent);cursor:pointer;-webkit-backdrop-filter:blur(10px);border-radius:4px;place-items:center;font-size:22px;transition:background .15s,color .15s,transform .15s;display:grid;position:fixed;right:16px}#locate-btn:hover{background:var(--accent-soft);color:#fff}#locate-btn:active{transform:scale(.95)}.panel-card{pointer-events:auto;background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px)saturate(160%);border-radius:6px;width:min(100%,720px);margin:0 auto;animation:.6s cubic-bezier(.2,.8,.2,1) both panel-rise;box-shadow:0 -2px 20px #00000073,inset 0 1px #ffffff0a}#rec-panel{padding:6px 18px}#time-panel{padding:12px 18px 14px;animation-delay:80ms}#rec-panel:not(:has(li)){display:none}@keyframes panel-rise{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}#panel-header{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;padding-bottom:10px;display:flex}#time-label{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text);text-transform:uppercase;font-size:13px;font-weight:500}#time-meta{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;font-size:11px}#time-slider{appearance:none;cursor:pointer;background:0 0;width:100%;height:36px;margin:0}#time-slider:focus{outline:none}#time-slider::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) 0%, var(--accent) var(--progress,0%), var(--border-strong) var(--progress,0%), var(--border-strong) 100%);height:2px}#time-slider::-moz-range-track{background:var(--border-strong);height:2px}#time-slider::-moz-range-progress{background:var(--accent);height:2px}#time-slider::-webkit-slider-thumb{appearance:none;background:var(--accent);border:2px solid var(--panel-solid);width:18px;height:18px;box-shadow:0 0 0 1px var(--accent), 0 0 8px var(--accent-soft);cursor:grab;border-radius:50%;margin-top:-8px;transition:transform .1s}#time-slider::-moz-range-thumb{background:var(--accent);border:2px solid var(--panel-solid);cursor:grab;border-radius:50%;width:14px;height:14px}#time-slider:active::-webkit-slider-thumb{cursor:grabbing;transform:scale(1.15)}#recommendations{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}#recommendations li{border-top:1px solid var(--border);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:8px 4px;font-size:14px;display:grid}#recommendations li:first-child{border-top:none}#recommendations .rec-status{border-radius:50%;flex-shrink:0;width:8px;height:8px}#recommendations .rec-status.flyable{background:var(--flyable);box-shadow:0 0 6px var(--flyable)}#recommendations .rec-status.marginal{background:var(--marginal);box-shadow:0 0 6px var(--marginal)}#recommendations .rec-name{letter-spacing:.01em;font-weight:600}#recommendations .rec-meta{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px}#recommendations .rec-distance{font-family:var(--font-mono);color:var(--accent);font-size:12px;font-weight:500}#recommendations .empty{color:var(--text-dim);text-align:center;border-top:none;grid-template-columns:1fr;padding:6px 4px;font-size:12px;font-style:italic}#loading{background:var(--bg);color:var(--accent);font-family:var(--font-mono);letter-spacing:.3em;text-transform:uppercase;z-index:100;place-items:center;font-size:12px;transition:opacity .4s;display:grid;position:fixed;inset:0}#loading.hidden{opacity:0;pointer-events:none}#loading:after{content:"";background:linear-gradient(to right, transparent, var(--accent), transparent);width:80px;height:1px;animation:1.4s ease-in-out infinite scan;position:absolute;bottom:40%}@keyframes scan{0%,to{opacity:0;transform:translate(-40px)}50%{opacity:1;transform:translate(40px)}}.leaflet-container{font-family:var(--font-display);background:#1a2738}.leaflet-control-attribution{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--text-muted)!important;background:#0e1a26b3!important;font-size:10px!important}.leaflet-control-attribution a{color:var(--accent)!important}.leaflet-control-zoom{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-strong)!important;background:var(--panel)!important}.leaflet-control-zoom a{color:var(--text)!important;border-color:var(--border)!important;background:0 0!important}.leaflet-control-zoom a:hover{background:var(--accent-soft)!important;color:var(--accent)!important}.leaflet-control-layers{-webkit-backdrop-filter:blur(10px);font-family:var(--font-display);letter-spacing:.04em;font-size:12px;border:1px solid var(--border-strong)!important;background:var(--panel)!important;color:var(--text)!important;border-radius:4px!important;padding:6px 10px!important}.leaflet-control-layers label{cursor:pointer;align-items:center;gap:6px;margin:0;display:flex}.leaflet-control-layers input[type=checkbox]{accent-color:var(--accent)}.leaflet-control-layers-separator{border-top:1px solid var(--border)!important}.leaflet-popup-content-wrapper{background:var(--panel-solid);color:var(--text);border:1px solid var(--border-strong);font-family:var(--font-display);border-radius:4px;padding:0}.leaflet-popup-content{margin:12px 14px;font-size:13px;line-height:1.45}.leaflet-popup-tip{background:var(--panel-solid);border:1px solid var(--border-strong)}.leaflet-popup-close-button{color:var(--text-muted)!important;padding:6px 8px!important}.site-popup h3{letter-spacing:.01em;margin:0 0 6px;font-size:15px;font-weight:600}.site-popup .popup-status{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:2px;margin-bottom:8px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.site-popup .popup-status.flyable{color:var(--flyable);background:#4ade8029;border:1px solid #4ade8066}.site-popup .popup-status.marginal{color:var(--marginal);background:#fbbf2429;border:1px solid #fbbf2466}.site-popup .popup-status.unflyable{color:var(--unflyable);background:#f8717129;border:1px solid #f8717166}.site-popup dl{font-family:var(--font-mono);grid-template-columns:auto 1fr;gap:3px 12px;margin:8px 0 0;font-size:11px;display:grid}.site-popup dt{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.site-popup dd{color:var(--text);margin:0}.site-popup .reasons{color:var(--text-muted);margin-top:8px;font-size:12px;font-style:italic}.site-marker{width:50px;height:50px}.site-marker svg{filter:drop-shadow(0 2px 5px #00000073);width:100%;height:100%;transition:transform .2s}.site-marker:hover svg{transform:scale(1.12)}.user-marker{background:var(--user);border:3px solid var(--panel-solid);width:18px;height:18px;box-shadow:0 0 0 2px var(--user), 0 0 12px var(--user);border-radius:50%;animation:2.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 0 2px var(--user), 0 0 12px var(--user)}50%{box-shadow:0 0 0 4px #38bdf866, 0 0 20px var(--user)}}@media (width<=480px){#ui-overlay{padding:12px;padding-bottom:max(env(safe-area-inset-bottom,0px), 12px);gap:8px}#rec-panel{padding:4px 14px}#time-panel{padding:10px 14px 12px}#time-label{font-size:12px}#recommendations li{grid-template-columns:auto 1fr auto;font-size:13px}#recommendations .rec-meta{font-size:10px}}
