:root{--bg:#0b1220;--panel:#131c2e;--panel-2:#1a2540;--text:#e6edf7;--text-dim:#8b9bb4;--accent:#16d8ff;--warn:#ffb347;--error:#ff6b6b;--radius:10px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}.topbar{padding:.6rem .9rem;padding-top:calc(.6rem + env(safe-area-inset-top));background:var(--panel);z-index:30;border-bottom:1px solid #223052;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex;position:relative}.brand{letter-spacing:.02em;white-space:nowrap;margin:0;font-size:1.15rem;font-weight:700}.brand span{color:var(--accent)}.topbar-left,.topbar-right{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.flight-select,.custom-flight input,.custom-flight select,.custom-flight button{background:var(--panel-2);color:var(--text);border:1px solid #2b3b63;border-radius:8px;min-height:40px;padding:.5rem .7rem;font-size:.9rem}.flight-select{max-width:15rem}svg.icon{stroke:currentColor;stroke-width:1.6px;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.segmented{background:var(--panel-2);border:1px solid #2b3b63;border-radius:9px;gap:2px;padding:3px;display:inline-flex}.seg-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:.4rem;min-height:32px;padding:.42rem .85rem;font-size:.85rem;font-weight:600;display:flex}.seg-btn:hover{color:var(--text)}.seg-btn:active{background:#24345c}.seg-btn.active{background:var(--accent);color:#04222b}.seg-btn.active:hover{color:#04222b}.menu-wrap{position:relative}.topbar-menu-btn{background:var(--panel-2);color:var(--text);cursor:pointer;border:1px solid #2b3b63;border-radius:8px;align-items:center;gap:.45rem;min-height:40px;padding:.5rem .75rem;font-size:.85rem;font-weight:600;display:flex}.topbar-menu-btn:hover{background:#24345c}.topbar-menu-btn.active{border-color:var(--accent);color:var(--accent)}.topbar-menu-btn--icon{justify-content:center;width:40px;padding:.5rem}.chevron{margin-left:-2px;transition:transform .15s;width:14px!important;height:14px!important}.chevron.open{transform:rotate(180deg)}.menu-panel{z-index:40;background:var(--panel-2);border:1px solid #2b3b63;border-radius:10px;width:300px;max-width:calc(100vw - 1.8rem);padding:.4rem;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #00000080}@media (width<=640px){.menu-panel{left:0;right:auto}}.menu-section{padding:.6rem .6rem .5rem}.menu-section+.menu-section{border-top:1px solid #1e2b4a}.menu-section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);margin:0 0 .5rem;font-size:.68rem;font-weight:700}.menu-row{cursor:pointer;border-radius:7px;align-items:center;gap:.6rem;padding:.45rem .35rem;font-size:.85rem;display:flex}.menu-row:hover{background:#ffffff0a}.menu-row input[type=radio],.menu-row input[type=checkbox]{accent-color:var(--accent);flex:none;width:16px;height:16px}.menu-row-label{flex-direction:column;flex:1;gap:.1rem;display:flex}.menu-row-sub{color:var(--text-dim);font-size:.72rem}.menu-row--disabled{cursor:default;opacity:.5}.menu-row--disabled:hover{background:0 0}.menu-hint{color:var(--text-dim);padding:.3rem .35rem .1rem;font-size:.78rem}.soon-pill{text-transform:uppercase;letter-spacing:.05em;background:var(--panel);color:var(--text-dim);border:1px solid #2b3b63;border-radius:20px;flex:none;padding:.15rem .45rem;font-size:.62rem}.menu-backdrop{z-index:20;position:fixed;inset:0}.custom-flight{background:var(--panel);border-bottom:1px solid #223052;padding:0 .9rem}.custom-flight form{flex-wrap:wrap;align-items:end;gap:.6rem;padding:.4rem 0 .8rem;display:flex}.custom-flight label{color:var(--text-dim);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.custom-flight input{width:8.5rem}.custom-flight button{background:var(--accent);color:#04222b;cursor:pointer;border:none;font-weight:600}#aprs-apikey{width:14rem}.aprs-panel-note{color:var(--text-dim);margin:0 0 .8rem;font-size:.72rem}.aprs-panel-note a{color:var(--accent)}.status{color:var(--text-dim);background:var(--bg);border-bottom:1px solid #1e2b4a;padding:.45rem .9rem;font-size:.85rem}.status[data-kind=warn]{color:var(--warn)}.status[data-kind=error]{color:var(--error)}.status[data-kind=loading]{color:#ff7a1a;font-weight:600}.globe{touch-action:none;background:radial-gradient(#10192e 0%,#070b14 70%);width:100%;height:56vh;min-height:320px;position:relative;overflow:hidden}.view-primary:fullscreen{background:#05080f;align-items:stretch;height:100vh;display:flex}:is(.view-primary:fullscreen .globe,.view-primary:fullscreen .map){border-radius:0;width:100%;height:100%}.globe-tip{background:var(--panel-2);color:var(--text);white-space:nowrap;border:1px solid #2b3b63;border-radius:6px;padding:.3rem .5rem;font-size:.78rem}.globe-attribution{color:#e6edf78c;pointer-events:none;z-index:2;background:#0b12208c;border-radius:4px;padding:.1rem .4rem;font-size:.68rem;position:absolute;bottom:.4rem;left:.5rem}.globe-attribution a{color:inherit;pointer-events:auto}.leaflet-bottom.leaflet-left .leaflet-control-attribution{color:#e6edf78c;background:#0b12208c;border-radius:4px;font-size:.68rem}.position-marker-icon{filter:drop-shadow(0 1px 3px #000000a6);background:0 0;border:none}.view-primary{min-width:0;min-height:0;position:relative}.map-fab{width:38px;height:38px;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1a2540e6;border:1px solid #2b3b63;border-radius:9px;justify-content:center;align-items:center;display:flex}.map-fab:hover{color:var(--accent);background:#24345ceb}.map-fab.active{color:var(--accent);border-color:var(--accent)}.fab-fullscreen{z-index:5;position:absolute;top:.7rem;right:.7rem}.map-toolbar{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1a2540e6;border:1px solid #2b3b63;border-radius:10px;flex-direction:column;gap:4px;padding:4px;display:flex;position:absolute;bottom:.7rem;right:.7rem}.map-toolbar .map-fab{background:0 0;border:none}.map-toolbar .map-fab:hover{background:#ffffff12}.map-toolbar .map-fab.active{color:#ff7a1a;background:#ff7a1a2e}.map-toolbar .map-fab.active:hover{background:#ff7a1a42}.toolbar-divider{background:#2b3b63;height:1px;margin:2px 3px}.signal-panel{z-index:6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#131c2eb3;border:1px solid #2b3b63;border-radius:12px;width:264px;max-width:calc(100% - 4.2rem);position:absolute;top:.7rem;left:.7rem;overflow:hidden;box-shadow:0 14px 30px #00000073}#aprs-info-panel{top:3.2rem;left:auto;right:.7rem}.signal-panel-head{border-bottom:1px solid #1e2b4a;align-items:center;gap:.5rem;padding:.6rem .65rem;display:flex}.live-dot{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px;animation:2s infinite livePing}@keyframes livePing{0%{box-shadow:0 0 #16d8ff8c}70%{box-shadow:0 0 0 6px #16d8ff00}to{box-shadow:0 0 #16d8ff00}}.signal-panel-title-group{flex-direction:column;flex:1;gap:.05rem;min-width:0;display:flex}.signal-panel-title{letter-spacing:.02em;font-size:.78rem;font-weight:700}.signal-panel-time{color:var(--text-dim);font-size:.68rem}.signal-panel-close{width:22px;height:22px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.signal-panel-close:hover{color:var(--text);background:#ffffff0f}.signal-stat-row{align-items:flex-start;gap:.55rem;padding:.5rem .65rem;display:flex}.signal-stat-row+.signal-stat-row{border-top:1px solid #1e2b4a}.signal-stat-icon{background:var(--panel-2);width:26px;height:26px;color:var(--accent);border-radius:7px;flex:none;justify-content:center;align-items:center;display:flex}.signal-stat-body{flex:1;min-width:0}.signal-stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:.66rem}.signal-stat-value{overflow-wrap:anywhere;margin-top:.1rem;font-size:1rem;font-weight:700}.signal-stat-sub{color:var(--text-dim);margin-top:.05rem;font-size:.74rem}.signal-row{justify-content:space-between;gap:.6rem;padding:.4rem .65rem;font-size:.82rem;display:flex}.signal-row+.signal-row{border-top:1px solid #1e2b4a}.signal-row-label{color:var(--text-dim)}.signal-row-value{text-align:right;overflow-wrap:anywhere;font-weight:600}.aprs-attribution{color:var(--text-dim);border-top:1px solid #1e2b4a;padding:.5rem .65rem .6rem;font-size:.7rem}.aprs-attribution a{color:var(--accent)}.signal-expand-btn{width:100%;color:var(--accent);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:.55rem .65rem;font-size:.78rem;font-weight:600;display:flex}.signal-expand-btn:hover{background:#ffffff0a}.signal-receivers{border-top:1px solid #1e2b4a;max-height:220px;overflow-y:auto}.receiver-row{align-items:center;gap:.5rem;padding:.4rem .65rem;font-size:.76rem;display:flex}.receiver-row+.receiver-row{border-top:1px solid #2b3b6366}.receiver-row.best{background:#16d8ff0f}.receiver-call{flex:none;width:66px;font-weight:600}.receiver-dist{color:var(--text-dim);flex:1}.receiver-snr{font-variant-numeric:tabular-nums;color:var(--text-dim);text-align:right;flex:none;width:52px}.receiver-row.best .receiver-snr{color:var(--accent);font-weight:700}.charts-toggle{background:var(--panel);color:var(--text);border-radius:var(--radius);cursor:pointer;border:1px solid #1e2b4a;justify-content:space-between;align-items:center;margin:0 .9rem .6rem;padding:.7rem .9rem;font-size:.85rem;font-weight:600;display:flex}.charts-toggle:hover{border-color:var(--accent)}.charts-toggle[aria-expanded=true]{color:var(--accent)}#charts[hidden]{display:none}.charts{grid-template-columns:1fr;gap:.6rem;padding:0 .9rem .8rem;display:grid}.chart-card{background:var(--panel);border-radius:var(--radius);border:1px solid #1e2b4a;min-width:0;padding:.4rem .5rem .5rem;overflow:hidden}.chart-title{width:100%;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:.2rem .2rem .4rem;font-size:.78rem;display:flex}.chart-title:hover{color:var(--text)}.chart-expand{color:var(--accent);display:inline-flex}.chart-expand svg.icon{width:15px;height:15px}.chart-body{min-height:190px}.chart-empty{color:var(--text-dim);padding:1rem .5rem;font-size:.8rem}.uplot{font-family:inherit}.uplot .u-legend{color:var(--text-dim);font-size:.72rem}.uplot .u-legend .u-marker{border-radius:2px}.chart-overlay[hidden]{display:none}.chart-overlay{z-index:5000;background:var(--bg);padding:.6rem .9rem calc(.9rem + env(safe-area-inset-bottom));padding-top:calc(.6rem + env(safe-area-inset-top));flex-direction:column;display:flex;position:fixed;inset:0}.overlay-bar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.4rem;display:flex}.overlay-title{font-size:.95rem;font-weight:700}.overlay-readout{color:var(--accent);font-variant-numeric:tabular-nums;flex:1;min-width:12rem;font-size:.85rem}.overlay-bar button{background:var(--panel-2);color:var(--text);cursor:pointer;border:1px solid #2b3b63;border-radius:8px;min-height:40px;padding:.45rem .7rem}.overlay-bar button:disabled{opacity:.4;cursor:default}.overlay-hint{color:var(--text-dim);margin:0 0 .3rem;font-size:.75rem;display:none}@media (orientation:portrait) and (width<=700px){.overlay-hint{display:block}}.overlay-chart{flex:1;min-height:0}.map{background:#0a0f1a;width:100%;height:52vh;min-height:300px}@media (height<=500px){.globe,.map{min-height:180px}}#map{background:#0a0f1a}.leaflet-container{font:inherit;background:#0a0f1a}.cards{flex-direction:column;gap:.9rem;padding:.8rem .9rem;display:flex}.cards-loading{color:var(--text-dim);margin:0;padding:1rem .2rem;font-size:.85rem}.card-group-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);align-items:center;gap:.5rem;margin:.1rem 0 .5rem;font-size:.7rem;font-weight:700;display:flex}.card-group-label:after{content:"";background:#1e2b4a;flex:1;height:1px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.card{background:var(--panel);border-radius:var(--radius);border:1px solid #1e2b4a;min-width:0;padding:.65rem .75rem}.card-head{justify-content:space-between;align-items:baseline;gap:.3rem;display:flex}.card-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-size:.72rem}.card-value{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:.2rem;font-size:1.25rem;font-weight:700}.card-sub{color:var(--text-dim);overflow-wrap:anywhere;margin-top:.15rem;font-size:.72rem}.info{flex:none;position:relative}.info summary{cursor:pointer;width:1.1rem;height:1.1rem;color:var(--text-dim);border:1px solid #2b3b63;border-radius:50%;justify-content:center;align-items:center;font-family:Georgia,serif;font-size:.7rem;font-style:italic;list-style:none;display:inline-flex}.info summary::-webkit-details-marker{display:none}.info[open] summary{background:var(--accent);color:#04222b;border-color:var(--accent)}.info p{z-index:1000;background:var(--panel-2);width:min(72vw,20rem);color:var(--text);border:1px solid #2b3b63;border-radius:8px;margin:0;padding:.6rem .7rem;font-size:.8rem;line-height:1.4;position:absolute;top:1.5rem;right:0;box-shadow:0 6px 24px #00000073}.info p.info-flip{left:0;right:auto}.info p.info-flip-up{top:auto;bottom:1.5rem}.foot{padding:.5rem .9rem 1.2rem;padding-bottom:calc(1.2rem + env(safe-area-inset-bottom));color:var(--text-dim);flex-direction:column;gap:.25rem;font-size:.72rem;display:flex}.foot a{color:var(--text-dim)}@media (width>=900px){.map,.globe{height:62vh}.cards{max-width:1200px;margin:0 auto}.card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.charts-toggle{max-width:1200px;margin:0 auto .6rem}.charts{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1200px;margin:0 auto}.foot{max-width:1200px;margin:0 auto}}@media (width>=1280px){.viewgrid{grid-template-columns:1fr 380px;align-items:start;gap:1rem;max-width:1800px;margin:0 auto;padding:0 .9rem;display:grid}.view-primary .globe,.view-primary .map{border-radius:12px;height:calc(100vh - 132px);overflow:hidden}.viewgrid .cards{max-width:none;height:calc(100vh - 132px);margin:0;padding-right:.2rem;overflow-y:auto}.viewgrid .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.charts-toggle,.charts,.foot{max-width:1800px}}.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}
