.nav{gap:24px;flex-wrap:wrap}.nav nav{flex-wrap:wrap}.title-row h1{font-size:clamp(30px,4vw,52px)}.gnss-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.gnss-filters small{display:block;color:var(--muted);font-size:12px;margin-top:6px}.gnss-filters input{width:100%;color-scheme:dark}#day{font-size:26px;white-space:nowrap}#gnss-map{height:560px;background:#111d28;isolation:isolate}.gnss-legend{display:flex;flex-wrap:wrap;gap:16px;padding:14px 18px;font-size:14px;border-top:1px solid var(--line);color:var(--muted)}.gnss-legend span{display:inline-flex;align-items:center;gap:7px}.swatch{width:12px;height:12px;display:inline-block;border-radius:2px}.swatch.low{background:#5cae9b}.swatch.medium{background:#ffbb68}.swatch.high{background:#ff7485}.gnss-detail{margin-top:20px}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:12px}.detail-grid small{display:block;color:var(--muted)}.detail-grid strong{font-size:22px}.gnss-detail p{margin-top:12px}.cell-button{font-family:'IBM Plex Mono',monospace;font-size:13px;padding:7px 9px}.leaflet-container{font-family:Inter,Arial,sans-serif}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#122232;color:#f0f5fa}.map-panel .data-note{margin:0;padding:12px 18px}.source-grid{margin-bottom:16px}.badge.delayed{background:#382a18;color:#ffbb68}.table-wrap th,.table-wrap td{font-size:14px}#map-count{white-space:normal;text-align:right}@media(max-width:850px){.gnss-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#gnss-map{height:440px}}@media(max-width:500px){.gnss-filters{grid-template-columns:1fr}#gnss-map{height:360px}.nav{padding:18px}.nav nav{gap:14px}.detail-grid{gap:12px}.title-row{align-items:flex-start}}

/* Severity heatmap: a restrained aviation operations surface. */
.map-toolbar h2{font-size:24px;letter-spacing:-.025em}.heat-controls{display:flex;align-items:center;flex-wrap:wrap;gap:18px;padding:14px 18px;background:#0c1926;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}.heat-label{margin-right:auto;color:#9eb5c9;font-size:12px;letter-spacing:.1em}.heat-controls label{display:flex;align-items:center;gap:10px;color:#e4eef6}.heat-controls input[type=checkbox]{width:17px;height:17px;accent-color:#27b6ad}.heat-controls input[type=range]{width:110px;accent-color:#27b6ad;padding:0}.heat-controls output{min-width:36px;font-variant-numeric:tabular-nums}.heat-legend{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(220px,1fr);gap:30px;padding:20px;background:#0c1926;border-top:1px solid var(--line)}.heat-scale-heading{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:14px;margin-bottom:12px}.heat-scale-heading span,.heat-legend p{color:#9eb5c9}.heat-ramp{height:12px;border-radius:4px;background:linear-gradient(90deg,#27b6ad 0%,#f4ce62 20%,#f69a43 40%,#f15b48 60%,#d92c50 80%,#8f1647 100%)}.heat-ticks{display:flex;justify-content:space-between;font-size:13px;margin-top:7px;font-variant-numeric:tabular-nums}.heat-levels{display:flex;justify-content:space-between;gap:12px;margin-top:12px;font-size:14px;color:#d4e0ec}.heat-legend p{font-size:14px;line-height:1.65;margin:0;align-self:center}.leaflet-tooltip{background:#0c1926;color:#edf5fb;border:1px solid #35506a;box-shadow:0 4px 18px #0004;font-size:14px;padding:10px 14px;line-height:1.6}.swatch.low{background:#27b6ad}.swatch.medium{background:#f4ce62}.swatch.high{background:#f15b48}@media(max-width:650px){.heat-legend{grid-template-columns:1fr;gap:18px}.heat-label{width:100%}.heat-controls{gap:14px}.map-toolbar{gap:12px;flex-wrap:wrap}.heat-scale-heading{flex-direction:column;gap:4px}}

#observation-register[hidden]{display:none!important}

[hidden]{display:none!important}.airport-panel{margin:20px 0}.airport-panel form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.airport-panel form>div{flex:1;min-width:200px}.airport-panel label{display:block;font-size:14px;margin-bottom:8px}.airport-panel input{width:100%;min-height:44px}.airport-panel p{font-size:14px;line-height:1.7;margin-top:12px}.airport-source{display:inline-block;margin-top:10px;font-size:12px}.airport-results{display:grid;gap:7px;margin-top:12px}.airport-results button{text-align:left;white-space:normal;font-size:14px;line-height:1.5}.analysis-legend{padding:20px;background:#0c1926;border-top:1px solid var(--line)}.analysis-chips{display:flex;flex-wrap:wrap;gap:14px}.analysis-chips span{display:flex;align-items:center;gap:7px;font-size:14px}.analysis-chips i{width:16px;height:12px;border-radius:2px}.analysis-legend p{font-size:14px;line-height:1.7;color:#b3c4d5;margin-top:12px}.heat-controls select{min-width:150px}select:disabled{opacity:.5}.leaflet-tooltip{max-width:320px;white-space:normal}.airport-panel button{min-height:44px}

.gnss-cell-popup .leaflet-popup-content{margin:20px;width:min(300px,calc(100vw - 90px))!important}.cell-popup{font-size:14px;line-height:1.5}.cell-popup .popup-kicker{font-size:12px;letter-spacing:.1em;color:#9eb5c9;margin:0 0 6px}.cell-popup h3{font-size:19px;line-height:1.35;margin:0;color:#f0f5fa}.cell-popup .popup-date{color:#b3c4d5;margin:8px 0 14px}.cell-popup dl{margin:0}.cell-popup dl>div{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #304354;padding:7px 0}.cell-popup dt{color:#b3c4d5}.cell-popup dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.cell-popup .popup-context{padding:10px;background:#1c3548;border-radius:5px;margin:12px 0}.cell-popup .popup-note{font-size:12px;color:#b3c4d5;margin:10px 0 0}.gnss-cell-popup a.leaflet-popup-close-button{color:#d9e6f0;width:30px;height:30px;font-size:24px}

/* Airport canvas must never intercept heatmap hover/click events. */
.leaflet-airport-focus-pane,.leaflet-airport-focus-pane *{pointer-events:none!important}

/* Weather overlays: RainViewer radar/cloud, NOAA SIGMET/AIRMET, Open-Meteo point conditions. */
.weather-controls{border-top:0;background:#0b1622}
.weather-controls .wx-heading{color:#9eb5c9;font-size:12px;letter-spacing:.1em;font-weight:600}
.weather-controls #wx-center{margin-left:auto;font-size:13px}
.weather-controls #wx-play{min-width:88px;font-size:13px}
.weather-controls #wx-play[aria-pressed=true]{background:#183d4b;border-color:#3d7d92;color:#81e7f7}
.weather-controls #wx-frame{min-width:180px}
.weather-controls input[type=checkbox]{accent-color:#49d3ef}
.wx-legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:12px 18px;background:#0c1926;border-top:1px solid var(--line);font-size:13px;color:#c5d1dd}
.wx-legend span{display:inline-flex;align-items:center;gap:7px}
.wx-swatch{width:14px;height:10px;border-radius:2px;display:inline-block;border:1px solid #ffffff33}
.wx-legend .wx-credit{color:#8ea3b6;font-size:12px;margin-left:auto}
#weather-info{padding:12px 18px}
.wx-popup{font-size:14px;line-height:1.55}
.wx-popup .popup-kicker{font-size:12px;letter-spacing:.1em;color:#9eb5c9;margin:0 0 6px}
.wx-popup h3{font-size:17px;margin:0 0 6px;color:#f0f5fa}
.wx-popup dl{margin:8px 0 0}
.wx-popup dl>div{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #304354;padding:6px 0}
.wx-popup dt{color:#b3c4d5}
.wx-popup dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.wx-popup .popup-note{font-size:12px;color:#b3c4d5;margin:10px 0 0}
.wx-popup pre{white-space:pre-wrap;word-break:break-word;font-size:12px;color:#c0ced9;margin:8px 0 0;max-height:150px;overflow:auto}
.wx-readings{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:6px}
@media(max-width:650px){.wx-legend .wx-credit{margin-left:0;width:100%}.weather-controls #wx-center{margin-left:0}}

/* Two-column workspace: interference map + weather/advisory detail aside. */
.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel);margin:20px 0 22px}
.map-workspace .map-panel{min-width:0}
.weather-aside{border-left:1px solid var(--line);display:flex;flex-direction:column;min-width:0;background:#0b1622}
.wx-aside-head{padding:16px 18px 12px;border-bottom:1px solid var(--line)}
.wx-aside-head h2{font-size:18px;letter-spacing:-.01em}
.weather-panel{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:14px;min-height:280px}
.wx-aside-foot{padding:10px 18px 14px;margin:0;font-size:11.5px;color:#7f96a9;border-top:1px solid var(--line)}
.wx-empty{display:flex;flex-direction:column;gap:10px;color:#9db0c2;text-align:center;margin:auto 0;padding:18px 6px}
.wx-empty-icon{font-size:34px;color:#2f6f80;line-height:1}
.wx-empty p{font-size:14px;line-height:1.6}
.wx-empty .wx-sub{font-size:12.5px;color:#7f96a9}
.wx-card{background:#0d1a28;border:1px solid #22344a;border-radius:8px;padding:14px 15px}
.wx-card.wx-jam{border-color:#37506b;background:linear-gradient(180deg,#122236,#0d1a28)}
.wx-kicker{font-size:11px;letter-spacing:.12em;font-weight:600;color:#8ea6bd;margin:0 0 10px}
.wx-coords{font:500 13px 'IBM Plex Mono',monospace;color:#c7d6e5;margin:0 0 10px}
.wx-jam-row{display:flex;align-items:center;gap:12px}
.wx-jam-row strong{font:500 30px/1 'IBM Plex Mono',monospace;letter-spacing:-.03em;color:#f0f5fa}
.wx-sub{font-size:12.5px;color:#93a6b8;margin:9px 0 0;line-height:1.55}
.wx-badge{display:inline-block;padding:3px 9px;border-radius:5px;font-size:12px;font-weight:600;letter-spacing:.02em}
.wx-badge.wx-low{background:#123a35;color:#5fd3c2}
.wx-badge.wx-medium{background:#3a3018;color:#f4ce62}
.wx-badge.wx-high{background:#3f1f28;color:#ff8497}
.wx-now{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.wx-temp{font:500 38px/1 'IBM Plex Mono',monospace;letter-spacing:-.04em;color:#7fe3f2}
.wx-cond{font-size:15px;color:#dbe7f2}
.wx-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#22344a;border:1px solid #22344a;border-radius:7px;overflow:hidden}
.wx-grid>div{background:#0d1a28;padding:11px 12px;display:flex;flex-direction:column;gap:3px}
.wx-grid small{font-size:11px;color:#8ea6bd}
.wx-grid b{font:500 17px 'IBM Plex Mono',monospace;color:#eaf2fa}
.wx-note{font-size:11px;color:#7f96a9;margin:11px 0 0;line-height:1.5}
.wx-adv{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0;border-top:1px solid #1d2d40;font-size:13px;color:#d3deea}
.wx-adv:first-of-type{border-top:0}
.wx-adv small{color:#8ea6bd;font-size:12px}
.wx-card.wx-loading .wx-sub{color:#8ea6bd}
@media(max-width:960px){.map-workspace{grid-template-columns:1fr}.weather-aside{border-left:0;border-top:1px solid var(--line)}.weather-panel{min-height:0}}

/* SIGMET / AIRMET focus card in the weather aside */
.wx-card.wx-adv-focus{background:linear-gradient(180deg,#141f2c,#0d1a28)}
.wx-hazard{font:500 20px/1.1 Inter,Arial,sans-serif;letter-spacing:-.01em;color:#f0f5fa}
.wx-raw{white-space:pre-wrap;word-break:break-word;font:12px/1.5 'IBM Plex Mono',monospace;color:#c3d1de;margin:11px 0 0;max-height:180px;overflow:auto;background:#0a1420;border:1px solid #1d2d40;border-radius:6px;padding:9px 10px}
