:root{--font-ui:"Manrope", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--accent:#2dd4bf;--accent-soft:#2dd4bf24;--warm:#fbbf24;--danger:#fb7185;--radius:18px;--gutter:16px}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070b12;--panel:#090e17db;--card:#090e17e0;--sheet:#090e17f7;--panel-solid:#0c121d;--border:#ffffff14;--text:#e6edf5;--muted:#8a97a8;--faint:#ffffff0f;--shadow:0 18px 50px #00000073}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef3f8;--panel:#ffffffeb;--card:#fffffff7;--sheet:#fffffffc;--panel-solid:#fff;--border:#0f172a17;--text:#0f172a;--muted:#5b6878;--faint:#0f172a0d;--shadow:0 18px 50px #0f172a29;--accent:#0d9488;--accent-soft:#0d94881f}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit}.app,.app>.map{position:fixed;inset:0}.map-loading{color:var(--muted);letter-spacing:.08em;place-items:center;font-size:13px;display:grid}.panel{z-index:2;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px)saturate(150%);backdrop-filter:blur(18px)saturate(150%);position:absolute}.layer-panel{top:max(var(--gutter), env(safe-area-inset-top));left:var(--gutter);width:300px;max-height:calc(100% - 120px);overflow:auto}.panel-head{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.brand-mark{background:url(/favicon.svg) 50%/contain no-repeat;border-radius:10px;flex:none;width:34px;height:34px;box-shadow:0 0 0 1px #ffffff14}.brand-text{flex:1;line-height:1.2;display:grid}.brand-text strong{letter-spacing:-.02em;font-size:17px;font-weight:800}.brand-text span{color:var(--muted);font-size:12px}.chevron{border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:8px;height:8px;transition:transform .2s;transform:rotate(45deg)}.is-open .chevron{transform:rotate(-135deg)}.panel-body{padding:10px 16px 16px}.panel-tabs{border-bottom:1px solid var(--border);padding:0 16px;display:flex}.panel-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:8px 0 9px;font-size:13px;font-weight:700}.panel-tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--text)}.section-title{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px;font-size:10.5px;font-weight:700}.panel-search{padding:0 16px 12px}.search{position:relative}.search-icon{fill:none;width:16px;height:16px;stroke:var(--muted);stroke-width:2px;stroke-linecap:round;pointer-events:none;position:absolute;top:19px;left:12px;transform:translateY(-50%)}.search input{border:1px solid var(--border);background:var(--faint);width:100%;color:var(--text);font:inherit;border-radius:12px;outline:none;padding:10px 12px 10px 36px;font-size:13.5px}.search input::placeholder{color:var(--muted)}.search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-results{border:1px solid var(--border);background:var(--panel-solid);border-radius:12px;max-height:300px;margin:6px 0 0;padding:4px;list-style:none;overflow:auto}.search-results li{cursor:pointer;border-radius:9px;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;padding:8px 10px;display:grid}.search-results li[aria-selected=true]{background:var(--accent-soft)}.search-label{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.search-detail{color:var(--muted);grid-column:2;font-size:11.5px}.search-results .search-empty{cursor:default;color:var(--muted);font-size:12.5px;display:block}.toggle{border-top:1px solid var(--faint);cursor:pointer;align-items:center;gap:12px;padding:10px 0;display:flex;position:relative}.toggle.is-disabled{cursor:not-allowed;opacity:.6}.toggle-text{flex:1;gap:2px;display:grid}.toggle-label{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.toggle-hint{color:var(--muted);font-size:11.5px}.toggle input{opacity:0;pointer-events:none;position:absolute}.switch{background:var(--faint);width:38px;height:22px;box-shadow:inset 0 0 0 1px var(--border);border-radius:999px;flex:none;transition:background .2s;position:relative}.switch:after{content:"";background:var(--muted);border-radius:50%;width:16px;height:16px;transition:transform .2s,background .2s;position:absolute;top:3px;left:3px}.toggle input:checked+.switch{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.toggle input:checked+.switch:after{background:var(--accent);transform:translate(16px)}.toggle input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:2px}.count,.soon{font-family:var(--font-mono);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:500}.count{background:var(--accent-soft);color:var(--accent)}.soon{color:var(--warm);background:#fbbf2424}.legend{padding:0 0 10px}.legend-bar{border-radius:999px;height:6px}.legend-scale{font-family:var(--font-mono);color:var(--muted);justify-content:space-between;margin-top:5px;font-size:10px;display:flex}.segmented{background:var(--faint);border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;margin-top:8px;padding:4px;display:grid}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:7px 0;font-size:13px;font-weight:600}.segmented button[aria-checked=true]{background:var(--panel-solid);color:var(--text);box-shadow:0 1px 4px #0003}.kind-legend{color:var(--muted);grid-template-columns:1fr 1fr;gap:6px 10px;margin:0 0 10px;padding:0;font-size:11.5px;list-style:none;display:grid}.kind-legend li{align-items:center;gap:6px;display:flex}.kind-dot{border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 0 1.5px #ffffffb3}.lang-switch{grid-template-columns:repeat(5,1fr)}.lang-switch button{font-size:12px}.install{margin-top:8px}.install-row{gap:6px;display:flex}.install-button{border:1px solid var(--accent);background:var(--accent-soft);cursor:pointer;text-align:left;border-radius:12px;flex:1;align-items:center;gap:10px;padding:8px 10px;display:flex}.install-button svg{fill:none;width:18px;height:18px;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none}.install-button span{line-height:1.25;display:grid}.install-button strong{color:var(--accent);font-size:13px;font-weight:700}.install-button small{color:var(--muted);font-size:11px}.install-dismiss{background:var(--faint);width:30px;color:var(--muted);cursor:pointer;border:0;border-radius:10px;flex:none;font-size:18px}.install-steps{background:var(--faint);color:var(--text);border-radius:10px;margin:6px 0 0;padding:8px 10px;font-size:12px;line-height:1.5}.install-link{color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-top:12px;padding:0;font-size:12.5px;font-weight:700;display:inline-flex}.install-link svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.credit{border-top:1px solid var(--faint);align-items:center;gap:10px;margin-top:14px;padding-top:12px;display:flex}.credit-mark{background:linear-gradient(135deg, var(--accent), #0b1626 140%);color:#fff;letter-spacing:.02em;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font-size:11px;font-weight:800;display:grid}.credit-text{line-height:1.3;display:grid}.credit-text small{color:var(--muted);font-size:10.5px}.credit-text>small:first-child{letter-spacing:.12em;text-transform:uppercase;font-weight:700}.credit-text>a{color:var(--text);font-size:13px;font-weight:700;text-decoration:none}.credit-text a:hover{color:var(--accent)}.credit-text small a{color:var(--accent);text-decoration:none}.group-chips{grid-template-columns:1fr 1fr;gap:6px;margin:0 0 10px;display:grid}.group-chips button{border:1px solid var(--border);color:var(--muted);text-align:left;cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:7px;padding:7px 9px;font-size:12px;font-weight:600;display:flex}.group-chips button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.chip-dots{flex:none;display:inline-flex}.chip-dots span{width:9px;height:9px;box-shadow:0 0 0 1.5px var(--panel-solid);border-radius:50%;margin-left:-3px}.chip-dots span:first-child{margin-left:0}.group-chips button[aria-pressed=false] .chip-dots{opacity:.4}.info-card{background:var(--card);top:max(var(--gutter), env(safe-area-inset-top));right:var(--gutter);width:320px;padding:18px;animation:.25s ease-out slide-in}@keyframes slide-in{0%{opacity:0;transform:translateY(8px)}}.flight-head{justify-content:space-between;align-items:flex-start;display:flex}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-size:10.5px;font-weight:700}.callsign{font-family:var(--font-mono);letter-spacing:-.01em;margin:2px 0;font-size:26px;font-weight:600}.meta{font-family:var(--font-mono);color:var(--muted);margin:0;font-size:12px}.icon-button{background:var(--faint);cursor:pointer;border:0;border-radius:10px;width:32px;height:32px;font-size:20px;line-height:1}.stats{grid-template-columns:1fr 1fr;gap:8px;margin:16px 0 0;display:grid}.stats>div{background:var(--faint);border-radius:12px;padding:10px 12px}.stats dt{color:var(--muted);font-size:11px}.stats dd.coords{font-size:13px}.stats dd{font-family:var(--font-mono);margin:3px 0 0;font-size:17px;font-weight:600}.stats span{font-family:var(--font-mono);color:var(--muted);font-size:11px}.vertical{color:var(--muted);margin:12px 0;font-size:13px}.link{color:var(--accent);font-size:13px;font-weight:600;text-decoration:none}.link:hover{text-decoration:underline}.card-title{letter-spacing:-.02em;margin:2px 0;font-size:21px;font-weight:800;line-height:1.2}.distance{color:var(--accent);margin:6px 0 0;font-size:12.5px;font-weight:600}.card-source{margin-top:12px;display:inline-block}.wiki-summary{margin:12px 0 0}.wiki-summary img{float:right;object-fit:cover;border-radius:10px;width:84px;height:84px;margin:2px 0 6px 10px}.wiki-summary blockquote{color:var(--text);-webkit-line-clamp:5;-webkit-box-orient:vertical;margin:0;font-size:12.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.wiki-summary figcaption{clear:both;color:var(--muted);padding-top:4px;font-size:10.5px}.card-links{flex-wrap:wrap;gap:8px 16px;margin-top:14px;display:flex}.card-note{background:var(--faint);color:var(--muted);border-radius:12px;margin:14px 0 0;padding:10px 12px;font-size:12px;line-height:1.5}.status-bar{left:50%;bottom:max(var(--gutter), env(safe-area-inset-bottom));white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:9px 16px;font-size:12px;display:flex;transform:translate(-50%)}.live-dot{background:var(--muted);border-radius:50%;width:8px;height:8px}.live-dot.is-live{background:var(--accent);animation:2s infinite pulse}.live-dot.is-error{background:var(--danger)}@keyframes pulse{0%{box-shadow:0 0 #2dd4bf99}70%{box-shadow:0 0 0 8px #2dd4bf00}}.status-label{letter-spacing:.12em;font-size:11px;font-weight:700}.status-muted{color:var(--muted)}.divider{background:var(--border);width:1px;height:14px}.weather{font-size:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;margin:-2px -6px;padding:2px 6px;display:inline-flex}.weather:hover{background:var(--faint)}.weather-now{font-family:var(--font-mono);align-items:baseline;gap:8px;margin:2px 0;font-size:30px;font-weight:600;display:flex}.weather-now small{font-family:var(--font-ui);color:var(--muted);font-size:14px;font-weight:600}.hourly{grid-template-columns:repeat(8,1fr);gap:4px;margin:0;padding:0;list-style:none;display:grid}.hourly li{background:var(--faint);border-radius:10px;justify-items:center;gap:2px;padding:6px 0;font-size:13px;display:grid}.hourly strong{font-family:var(--font-mono);font-size:12.5px}.hourly-time{font-family:var(--font-mono);color:var(--muted);font-size:10px}.hourly-rain{color:#38bdf8;min-height:12px;font-size:9.5px}.weather strong{font-family:var(--font-mono);font-weight:600}.clock{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}.maplibregl-ctrl-group{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--border);overflow:hidden;background:var(--panel)!important;box-shadow:var(--shadow)!important;border-radius:12px!important}.maplibregl-ctrl-group button+button{border-top-color:var(--border)!important}:root[data-theme=dark] .maplibregl-ctrl-group .maplibregl-ctrl-icon{filter:invert()}.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left{margin-bottom:max(0px, env(safe-area-inset-bottom))}.maplibregl-ctrl-attrib{font-family:var(--font-ui)}.topbar{top:max(var(--gutter), env(safe-area-inset-top));left:var(--gutter);right:var(--gutter);align-items:flex-start;gap:8px;padding:7px 8px;display:flex}.topbar .brand-mark{border-radius:8px;width:28px;height:28px;margin-top:4px}.topbar-search{flex:1;min-width:0}.layers-button{border:1px solid var(--border);background:var(--faint);cursor:pointer;border-radius:11px;flex:none;place-items:center;width:36px;height:36px;padding:0;display:grid}.layers-button svg{fill:none;width:19px;height:19px;stroke:var(--text);stroke-width:1.8px;stroke-linejoin:round}.sheet-backdrop,.layers-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05080f59;animation:.2s ease-out fade-in}.sheet-backdrop{z-index:3;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.sheet{z-index:4;left:var(--gutter);right:var(--gutter);padding-bottom:env(safe-area-inset-bottom);border-radius:var(--radius) var(--radius) 0 0;background:var(--sheet);border-bottom:0;flex-direction:column;display:flex;bottom:0;overflow:hidden}.sheet.is-settled{transition:height .25s cubic-bezier(.2,.8,.2,1)}.sheet-header{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:none;justify-items:center;gap:7px;padding:7px 12px 10px;display:grid}.sheet-handle{background:var(--muted);opacity:.45;border-radius:999px;width:38px;height:4px}.status-inline{white-space:nowrap;align-items:center;gap:8px;font-size:11.5px;display:flex}.status-inline .status-label{font-size:10px}.sheet-body{scrollbar-width:thin;overscroll-behavior:contain;flex:1;padding:0 12px 12px;overflow-y:auto}.sheet.is-peek .sheet-body{visibility:hidden;overflow:hidden}.tabs{z-index:1;background:var(--panel-solid);box-shadow:inset 0 0 0 1px var(--border);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:8px;padding:4px;display:grid;position:sticky;top:0}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:7px 0;font-size:12.5px;font-weight:600}.tabs button[aria-selected=true]{background:var(--accent-soft);color:var(--accent)}.sheet-hint-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.locate-chip{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:5px;padding:5px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.locate-chip svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:14px;height:14px}.sheet-hint{color:var(--muted);margin:0;font-size:11.5px;line-height:1.4}.place-list{margin:0;padding:0;list-style:none}.place-list button{border:0;border-bottom:1px solid var(--faint);text-align:left;cursor:pointer;background:0 0;grid-template-columns:auto 1fr auto;align-items:center;column-gap:10px;width:100%;padding:9px 2px;display:grid}.place-list .kind-dot{grid-row:1/span 2}.place-name{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.place-meta{color:var(--muted);grid-column:2;font-size:11px}.place-distance{font-family:var(--font-mono);color:var(--accent);grid-area:1/3/span 2;font-size:12px}.empty-state{text-align:center;justify-items:center;gap:6px;padding:18px 8px;display:grid}.empty-state svg{fill:none;width:40px;height:40px;stroke:var(--muted);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.empty-state strong{font-size:14px}.empty-state p{max-width:300px;color:var(--muted);margin:0;font-size:12.5px;line-height:1.5}.card-embedded{padding:2px 0 6px}.layers-overlay{z-index:5;align-items:flex-end;display:flex;position:fixed;inset:0}.layers-sheet{width:100%;max-height:85%;padding-bottom:env(safe-area-inset-bottom);border-radius:var(--radius) var(--radius) 0 0;background:var(--sheet);flex-direction:column;animation:.2s ease-out sheet-up;display:flex;position:relative}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}}.layers-sheet-head{justify-content:space-between;align-items:center;padding:12px 14px 0;display:flex}.layers-sheet-body{scrollbar-width:thin;padding:0 14px 14px;overflow-y:auto}@media (width<=719px){:root{--gutter:10px;--radius:14px}.search input{padding:7px 10px 7px 32px;font-size:16px}.search-icon{width:14px;height:14px;top:18px;left:10px}.install-button{padding:6px 10px}.install-button small{display:none}.section-title{margin:10px 0 4px}.toggle{padding:7px 0}.toggle-label{font-size:13px}.toggle-hint{display:none}.legend{padding-bottom:6px}.kind-legend{gap:3px 8px;margin-bottom:6px;font-size:11px}.credit{margin-top:10px;padding-top:10px}.switch{width:32px;height:18px}.switch:after{width:12px;height:12px}.toggle input:checked+.switch:after{transform:translate(14px)}.segmented button{padding:5px 0}.callsign{font-size:19px}.card-title{font-size:17px}.icon-button{width:28px;height:28px;font-size:17px}.stats{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.stats>div{border-radius:10px;padding:6px 8px}.stats dt{font-size:10px}.stats dd{font-size:13.5px}.stats span{font-size:10px}.vertical{margin:8px 0;font-size:12px}.card-links{margin-top:10px}.card-note{margin-top:10px;padding:8px 10px;font-size:11px}.status-inline .day,.status-inline .weather-text{display:none}.maplibregl-ctrl-group button{width:26px;height:26px}.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left{margin-bottom:calc(var(--sheet-h,64px) + 4px)}}@media (width<=380px){.stats{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
