:root{color-scheme:light;--airport-bg:#f3f6f8;--airport-card:#fff;--airport-text:#172a36;--airport-muted:#6f818c;--airport-border:#e1e8ec;--airport-accent:#087f8c;--airport-accent-soft:#e5f5f5;--airport-shadow:0 12px 34px rgba(25, 47, 61, .06)}html[data-theme=dark]{color-scheme:dark;--airport-bg:#101a20;--airport-card:#17242c;--airport-text:#e4edf1;--airport-muted:#9aabb4;--airport-border:#2a3a43;--airport-accent:#57c8cf;--airport-accent-soft:#1c393e;--airport-shadow:0 12px 34px rgba(0, 0, 0, .15)}body{margin:0;background:var(--airport-bg);color:var(--airport-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.airport-layout{min-height:100vh}.airport-page{box-sizing:border-box;width:min(1460px,100%);margin:0 auto;padding:24px clamp(18px,3vw,44px) 0}.airport-header{display:flex;align-items:center;gap:24px;min-height:62px;margin-bottom:32px}.airport-brand{display:inline-flex;align-items:center;gap:9px;color:var(--airport-text);text-decoration:none;font-size:18px;font-weight:750;letter-spacing:-.04em}.airport-brand img{object-fit:contain}.airport-search{position:relative;z-index:20;display:flex;align-items:center;gap:8px;width:min(500px,48vw);margin-left:auto;padding:5px;border:1px solid var(--airport-border);border-radius:12px;background:var(--airport-card)}.airport-search input{width:100%;min-width:0;border:0;outline:0;padding:10px 12px;color:var(--airport-text);background:0 0;font:inherit}.airport-actions a,.airport-search button,.airport-theme-toggle{border:0;border-radius:9px;padding:10px 15px;background:var(--airport-accent);color:#fff;text-decoration:none;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.airport-search-suggestions{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:1000;max-height:300px;overflow:auto;border:1px solid var(--airport-border);border-radius:12px;background:var(--airport-card);box-shadow:0 14px 34px rgba(14,32,43,.2)}.airport-search-suggestions[hidden]{display:none}.airport-search .airport-search-suggestion{display:flex;width:100%;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:0;border-bottom:1px solid var(--airport-border);border-radius:0;background:0 0;color:var(--airport-text);text-align:left;font:inherit;cursor:pointer}.airport-search .airport-search-suggestion:last-child{border-bottom:0}.airport-search .airport-search-suggestion:focus-visible,.airport-search .airport-search-suggestion:hover{background:var(--airport-bg);color:var(--airport-text);outline:0}.airport-suggestion-code{flex:0 0 auto;color:var(--airport-accent);font-size:12px;font-weight:800}.airport-suggestion-name{min-width:0;overflow:hidden;color:var(--airport-muted);font-size:12px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.airport-search-error{width:min(700px,100%);margin:clamp(45px,9vh,100px) auto;padding:clamp(24px,5vw,44px);border:1px solid var(--airport-border);border-radius:18px;background:var(--airport-card);box-shadow:var(--airport-shadow)}.airport-search-error h1{margin:7px 0 10px;font-size:clamp(24px, 4vw, 34px);letter-spacing:-.035em}.airport-search-error p{margin:0;color:var(--airport-muted);font-size:15px;line-height:1.7}.airport-search-error .airport-search{width:100%;margin:24px 0 0}.airport-search-error .search-query{margin-top:12px;color:var(--airport-muted);font-size:12px}.airport-actions{display:flex;align-items:center;gap:9px}.airport-actions a{padding:10px 12px;color:var(--airport-text);background:var(--airport-card);border:1px solid var(--airport-border)}.airport-theme-toggle{display:grid;width:39px;height:39px;place-items:center;padding:0;color:var(--airport-text);background:var(--airport-card);border:1px solid var(--airport-border)}.airport-actions a:hover,.airport-theme-toggle:hover{color:var(--airport-accent);border-color:var(--airport-accent)}.airport-theme-toggle:disabled{cursor:wait;opacity:.55}.airport-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:6px 0 22px}.eyebrow{display:block;color:var(--airport-muted);font-size:10px;font-weight:800;letter-spacing:.13em;line-height:1.5}.airport-title h1{margin:4px 0 0;font-size:clamp(28px, 4vw, 42px);line-height:1.1;letter-spacing:-.045em}.metar-pill{display:inline-flex;align-items:center;gap:12px;border:1px solid var(--airport-border);border-radius:999px;padding:11px 15px;color:var(--airport-accent);background:var(--airport-card);font-size:13px;font-weight:750;text-decoration:none;white-space:nowrap}.airport-detail-grid,.airport-overview-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:18px;margin-bottom:18px}.airport-card{min-width:0;overflow:hidden;border:1px solid var(--airport-border);border-radius:17px;background:var(--airport-card);box-shadow:var(--airport-shadow)}.communications-card,.diagram-card,.history-card,.location-card,.overview-card{padding:22px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.card-heading h2,.jamming-card h2{margin:2px 0 0;font-size:19px;letter-spacing:-.025em}.coordinate-chip,.osm-label,.report-count{border-radius:999px;padding:7px 10px;color:var(--airport-muted);background:var(--airport-bg);font-size:11px;font-weight:650;white-space:nowrap}.location-map{height:246px;border-radius:12px;background:var(--airport-bg)}.location-meta{display:flex;flex-wrap:wrap;gap:14px 22px;padding-top:16px;color:var(--airport-muted);font-size:11px}.location-meta span{display:grid;gap:4px}.location-meta b{color:var(--airport-text);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.comms-icon,.overview-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:var(--airport-accent);background:var(--airport-accent-soft);font-size:18px}.airport-summary,.operational-summary{color:var(--airport-muted);font-size:14px;line-height:1.75}.airport-summary{margin:0;color:var(--airport-text);font-size:15px;line-height:1.8}.airport-location-line{display:block;margin-bottom:7px;color:var(--airport-muted);font-size:13px}.airport-location-line strong{color:var(--airport-text);font-weight:700}.wiki-link{display:inline-block;margin-top:9px;color:var(--airport-accent);font-size:12px;font-weight:750;text-decoration:none}.operational-summary{padding-top:13px;margin:14px 0 0;border-top:1px solid var(--airport-border)}.operational-summary strong{color:var(--airport-text)}.published-approaches{margin-top:13px;padding:12px 13px;border:1px solid var(--airport-border);border-radius:10px;background:var(--airport-bg)}.published-approaches h3{margin:0 0 8px;color:var(--airport-text);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.published-approaches ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin:0;padding:0;list-style:none}.published-approaches li{min-width:0;color:var(--airport-muted);font-size:12px;line-height:1.5}.published-approaches li strong{color:var(--airport-accent)}.approach-warning{color:#bf493d;font-weight:650}.overview-facts{display:grid;gap:8px;margin-top:18px}.overview-facts div{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:38px;padding:8px 11px;border:1px solid var(--airport-border);border-radius:9px;background:var(--airport-bg);font-size:12px}.overview-facts span{color:var(--airport-muted)}.overview-facts strong{color:var(--airport-text);text-align:right;font-size:13px;font-weight:750;font-variant-numeric:tabular-nums}.inline-warning{margin:13px 0 0;padding:11px 12px;border-left:3px solid #d94444;border-radius:0 8px 8px 0;background:rgba(217,68,68,.09);color:#c33131;font-size:11px;line-height:1.55}.airfield-map{height:330px;border-radius:12px;background:var(--airport-bg)}.communications-card,.diagram-card{grid-column:1/-1}.map-legend{display:flex;gap:18px;padding:12px 2px 3px;color:var(--airport-muted);font-size:10px}.map-legend span{display:flex;align-items:center;gap:7px}.map-legend i{width:18px;height:4px;border-radius:4px;background:#f08c55}.map-legend .legend-taxiway{height:3px;background:#36a79f}.runway-list{display:grid;gap:8px;margin-top:12px}.runway-row{display:grid;gap:12px;padding:13px;border:1px solid var(--airport-border);border-radius:10px;background:var(--airport-bg)}.runway-identifiers{display:flex;flex-wrap:wrap;gap:7px}.runway-number{display:inline-grid;min-width:54px;min-height:42px;place-items:center;padding:3px 8px;border:1px solid color-mix(in srgb,var(--airport-accent) 30%,var(--airport-border));border-radius:8px;background:var(--airport-accent-soft);color:var(--airport-accent);font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}.runway-number small{font-size:9px;font-weight:700;line-height:1.1;white-space:nowrap}.runway-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 16px}.runway-details span{display:grid;gap:3px;color:var(--airport-text);font-size:12px;overflow-wrap:anywhere}.runway-details b{color:var(--airport-muted);font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.empty-note{color:var(--airport-muted)}.frequency-list{max-height:260px;overflow:auto}.frequency-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 11px;border:1px solid var(--airport-border);border-radius:9px;background:var(--airport-bg);font-size:13px}.frequency-row+.frequency-row{margin-top:7px}.frequency-row span{color:var(--airport-muted)}.frequency-row strong{color:var(--airport-accent);font-size:14px;font-variant-numeric:tabular-nums}.raw-metar{margin-top:22px;padding:15px;border-radius:12px;background:var(--airport-bg)}.raw-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.meteogram-head h3,.raw-heading h3{margin:0;font-size:13px}.raw-heading span{color:var(--airport-accent);font-size:9px;font-weight:800;letter-spacing:.12em}.raw-metar code{display:block;overflow-wrap:anywhere;color:var(--airport-text);font-family:SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:600;line-height:1.8}.history-card{margin-bottom:18px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.stat-tile{display:grid;align-content:space-between;gap:11px;min-height:78px;padding:12px;border:1px solid var(--airport-border);border-radius:11px;background:linear-gradient(145deg,var(--airport-card),var(--airport-bg));box-shadow:0 3px 12px rgba(25,47,61,.035)}.stat-tile>span{display:flex;align-items:center;gap:8px;color:var(--airport-muted);font-size:11px;font-weight:650}.stat-icon{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.temperature-icon{color:#df7545}.min-temperature-icon{color:#3b82f6}.wind-icon{color:#258fa1}.gust-icon{stroke-dasharray:2 1.5}.stat-tile strong{color:var(--airport-text);font-size:23px;line-height:1;font-weight:750;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.stat-tile small{padding-left:4px;color:var(--airport-muted);font-size:12px;font-weight:600;letter-spacing:0}.category-vfr{border-left:4px solid #2c9b76}.category-mvfr{border-left:4px solid #428bd0}.category-ifr{border-left:4px solid #dd8d35}.category-lifr{border-left:4px solid #d74b56}.archive-loading{display:flex;min-height:220px;align-items:center;justify-content:center;gap:14px;padding:24px;color:var(--airport-muted);font-size:14px;text-align:left}.archive-loading[hidden]{display:none}.archive-spinner{width:30px;height:30px;flex:0 0 30px;border:3px solid var(--airport-border);border-top-color:var(--airport-accent);border-radius:50%;animation:airport-archive-spin .8s linear infinite}@keyframes airport-archive-spin{to{transform:rotate(360deg)}}.archive-error{margin-top:14px;padding:13px 15px;border:1px solid rgba(217,68,68,.28);border-radius:10px;background:rgba(217,68,68,.07);color:#be3030;font-size:13px;line-height:1.6}#archiveContent[hidden],.archive-error[hidden]{display:none}.meteogram-head{display:flex;align-items:center;justify-content:space-between;margin:24px 0 8px}.chart-legend{display:flex;gap:13px;margin-top:7px;color:var(--airport-muted);font-size:10px}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{width:12px;height:3px;border-radius:3px;background:#e47b48}.chart-legend .wind-key{background:#258fa1}.meteogram-head button{border:1px solid var(--airport-border);border-radius:8px;padding:8px 11px;color:var(--airport-accent);background:var(--airport-card);font:inherit;font-size:11px;font-weight:700;cursor:pointer}.chart-wrap{height:285px;padding:8px 0 0}.chart-wrap canvas{display:block;width:100%;height:100%}.chart-legend{flex-wrap:wrap}.chart-legend .gust-key{height:0;border-top:2px dashed #258fa1;background:0 0}.chart-note{margin:8px 0 0;color:var(--airport-muted);font-size:10px}.jamming-card{display:flex;align-items:center;gap:16px;margin-bottom:28px;padding:19px 22px;border:1px solid;border-radius:15px}.jamming-card p{margin:6px 0 0;font-size:12px;line-height:1.65}.jamming-danger{border-color:rgba(217,68,68,.35);background:rgba(217,68,68,.07);color:#be3030}.jamming-normal{border-color:var(--airport-border);background:var(--airport-card)}.jamming-symbol{display:grid;flex:0 0 38px;width:38px;height:38px;place-items:center;border-radius:50%;background:rgba(217,68,68,.13);font-size:20px;font-weight:800}.jamming-normal .jamming-symbol{color:var(--airport-accent);background:var(--airport-accent-soft)}.jamming-card .eyebrow{color:inherit;opacity:.7}.jamming-card h2{font-size:16px}.risk-badge{margin-left:auto;border-radius:999px;padding:7px 10px;background:rgba(217,68,68,.13);font-size:10px;font-weight:800;text-transform:uppercase}.jamming-normal .risk-badge{color:var(--airport-accent);background:var(--airport-accent-soft)}.leaflet-container{font:inherit}@media (prefers-reduced-motion:reduce){.archive-spinner{animation-duration:2s}}@media (max-width:1080px){.airport-detail-grid,.airport-overview-grid{grid-template-columns:1fr 1fr}.airport-header{flex-wrap:wrap;gap:12px}.airport-search{order:3;width:100%;margin-left:0}}@media (max-width:760px){.airport-page{padding:16px 14px 0}.airport-detail-grid,.airport-overview-grid{grid-template-columns:1fr;gap:12px;margin-bottom:12px}.airport-header{margin-bottom:24px}.airport-actions{margin-left:auto}.airport-title{align-items:start}.metar-pill{padding:9px 11px;font-size:11px}.communications-card,.diagram-card,.history-card,.location-card,.overview-card{padding:16px}.location-map{height:210px}.airfield-map{height:290px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-tile{min-height:68px;padding:10px}.stat-tile strong{font-size:22px}.runway-details{gap:9px 12px}}@media (max-width:420px){.airport-brand span{display:none}.airport-title h1{font-size:27px}.coordinate-chip{font-size:9px}.airport-actions a{padding:8px 9px;font-size:11px}.airport-theme-toggle{width:35px;height:35px}.published-approaches ul{grid-template-columns:1fr}.jamming-card{align-items:flex-start;padding:15px}.risk-badge{display:none}}