.pilot-tabs{display:flex;gap:10px;overflow:auto;padding:18px 0}.pilot-tabs button,.runway-live button,#pilot-refresh{padding:12px 18px;border:1px solid #55747d;border-radius:16px;background:#173641;color:#e3f4f7;font:inherit;cursor:pointer}.pilot-tabs [aria-pressed=true]{background:#e3b767;color:#10262e}.live-runway-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.runway-live{padding:24px;margin:16px 0;border-radius:24px}.pilot-card-head{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap}.pilot-card-head h3{font-size:24px;margin:0}.pilot-card-head small{font-size:14px;font-weight:400}.runway-live p,#pilot-status{font-size:14px;line-height:1.7;color:#b7cbd2}.pilot-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.pilot-metrics div{background:#ffffff07;padding:14px;border-radius:16px}.pilot-metrics span{display:block;font-size:14px;color:#b6c9d0}.pilot-metrics strong{display:block;font-size:22px;margin-top:8px}.risk-GO{color:#8de4be}.risk-RISK{color:#ffce76}.risk-NOFLY{color:#ff9297}.risk-NODATA{color:#adbfc8}.outlook{display:flex;gap:5px;overflow:auto;margin:20px 0}.outlook span{border-bottom:5px solid currentColor;padding:5px 0;font-size:12px;min-width:36px}.pilot-scroll{overflow:auto;max-height:550px}.pilot-scroll table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}.pilot-scroll th,.pilot-scroll td{padding:14px;white-space:nowrap;border-bottom:1px solid #ffffff18}.pilot-scroll th{position:sticky;top:0;background:#15333e}.runway-live pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.7}.pilot-live-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.runway-live h4{margin:28px 0 12px}.vector-hud p{padding:20px}.pilot-section-note{color:#b8ccd2;line-height:1.6}button:focus-visible{outline:3px solid #e3b767;outline-offset:4px}@media(max-width:700px){.live-runway-grid{grid-template-columns:1fr}.pilot-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.runway-live{padding:18px}.pilot-metrics strong{font-size:20px}.pilot-tabs{position:sticky;top:0;z-index:5;background:#0b222de8;backdrop-filter:blur(18px)}.pilot-tabs button{white-space:nowrap}}
/* Forecast, model risk matrix and convective profile */
.seven-days{display:grid;grid-template-columns:repeat(7,minmax(255px,1fr));gap:12px;overflow-x:auto;padding:4px 2px 18px;scroll-snap-type:x proximity}.forecast-day{padding:18px;border:1px solid #7fadb044;border-radius:20px;background:#0c2b38b8;scroll-snap-align:start}.forecast-day h4{margin:0 0 15px;color:#e7c58f;font-size:18px}.forecast-runway{padding:12px 0;border-top:1px solid #ffffff24}.forecast-runway strong,.forecast-runway small{display:block}.forecast-runway small{margin-top:8px;color:#bad1d7;line-height:1.5}.weather-bar{display:grid;grid-template-columns:80px minmax(50px,1fr) 36px;gap:6px;align-items:center;margin:9px 0;font-size:12px}.weather-bar span{line-height:1.2}.weather-bar>div{height:8px;border-radius:9px;background:#ffffff24;overflow:hidden}.weather-bar i{display:block;height:100%;background:linear-gradient(90deg,#60c8dc,#e7c58f);border-radius:9px}.weather-bar strong{text-align:right}.risk-map-scroll{overflow-x:auto;padding:8px 0 20px}.risk-map{min-width:840px}.risk-row{display:grid;grid-template-columns:165px repeat(12,minmax(48px,1fr));gap:5px;align-items:center;margin:5px 0}.risk-row>strong{font-size:13px}.risk-hours span{text-align:center;font-size:12px;color:#cbdde2}.risk-cell{display:block;min-height:38px;border:1px solid #ffffff44;border-radius:8px}.risk-cell.risk-GO{background:#257961}.risk-cell.risk-RISK{background:#aa742e}.risk-cell.risk-NOFLY{background:#a84d53}.risk-cell.risk-NODATA{background:#50636a}.risk-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:13px}.runway-live a{color:#f2c788}.weather-picker{display:block;color:#d5edf0}.weather-picker select{display:block;max-width:360px;width:100%;margin-top:9px;padding:12px;background:#123541;border:1px solid #7ea4ad;border-radius:12px;color:#fff;font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:700px){.seven-days{margin-right:-18px;padding-right:18px}.forecast-day{min-width:255px}.risk-legend{gap:8px 15px}}
.official-airgram{margin:28px 0;padding:18px;border:1px solid #7bbcc78c;border-radius:20px;background:#092b3ac7}.official-airgram h4{margin:0 0 8px}.official-airgram img{display:block;width:100%;height:auto;max-width:880px;margin:16px auto 0;border-radius:12px;background:#f2f7f7}.official-airgram a{display:inline-block;margin-top:4px}.official-airgram p{max-width:740px}

.pilot-live-head h2{font-size:clamp(26px,3.1vw,44px);line-height:1.14}.official-airgram small{display:block;color:#c6dce3;margin:7px 0}.official-airgram img{min-height:240px;object-fit:contain}
/* Seven destinations stay visible as a compact two-column menu on phones. */
@media(max-width:700px){.pilot-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;overflow:visible;padding:10px 0;position:relative;top:auto;background:transparent;backdrop-filter:none}.pilot-tabs button{min-width:0;white-space:normal;text-align:center;font-size:clamp(11px,3vw,14px);line-height:1.2;min-height:44px;padding:9px 6px;border-radius:12px}.pilot-tabs button:last-child:nth-child(odd){grid-column:1/-1}.weather-section{min-width:0}.pilot-live-head{align-items:flex-start}.pilot-live-head #pilot-refresh{flex:none}}
@media(min-width:701px) and (max-width:1100px){.pilot-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;overflow:visible}.pilot-tabs button{min-width:0;white-space:normal;padding:10px 6px;line-height:1.25}}

.hours-banner{border:1px solid #a5e7f2aa;background:linear-gradient(105deg,#0b6683,#17506b 62%,#0f394d);border-radius:16px;padding:15px 0;color:#fff;line-height:1.4;font-size:clamp(16px,1.8vw,20px);font-weight:750;letter-spacing:.012em;box-shadow:0 10px 30px #051f3280, inset 0 1px #e8ffff56;overflow:hidden;white-space:nowrap}
.slot-feed-state{padding:12px 16px;border:1px solid #7ab7c486;border-radius:12px;background:#16425575}
.slot-notices{margin:16px 0;padding:14px;border:1px solid #a0cbd4a8;border-radius:14px;background:#123b4abb}
.slot-notices>strong{display:block;margin-bottom:7px}.slot-notices p{margin:7px 0}.slot-notice-CLOSED,.slot-notice-PAUSED{color:#ffd0c2!important}.slot-notice-OPEN{color:#c3f5e2!important}
.hours-banner:not(:has(.hours-track)){padding-inline:18px;white-space:normal}
.hours-track{display:flex;width:max-content;animation:hours-drift 38s linear infinite;will-change:transform}
.hours-copy{flex:none;padding-right:5rem}
.hours-banner:hover .hours-track,.hours-banner:focus-within .hours-track{animation-play-state:paused}
@keyframes hours-drift{to{transform:translateX(-50%)}}
@media(max-width:700px){.hours-banner{font-size:16px;padding-block:13px}.hours-track{animation-duration:32s}}
@media(prefers-reduced-motion:reduce){.hours-banner{white-space:normal;padding-inline:18px}.hours-track{animation:none;display:block;width:auto}.hours-copy{white-space:normal;padding:0}.hours-copy+ .hours-copy{display:none}}

/* Flight data: values remain legible on narrow screens and model gaps stay explicit. */
.wind-readout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.wind-readout>div{min-width:0;padding:16px 18px;background:linear-gradient(135deg,#3b83a522,#9ad9ec10);border:1px solid #8ecad73f;border-radius:17px}
.wind-readout span{display:block;color:#a9cbd6;font-size:13px;letter-spacing:.04em;text-transform:uppercase}
.wind-readout strong{display:block;margin-top:4px;font-size:clamp(30px,3.6vw,46px);font-variant-numeric:tabular-nums;line-height:1.12;color:#f1fafb}
.wind-readout small{font-size:14px;font-weight:500;color:#bfd7de}
.seven-days{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:18px;padding:8px 0}
.forecast-day{min-width:0;padding:22px;background:linear-gradient(155deg,#1d4654d9,#0c2938e6);border-color:#79b1c877}
.forecast-day h4{font-size:24px;margin:0}
.forecast-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.forecast-heading span{font-size:28px;line-height:1}
.forecast-meta{margin:0 0 17px;color:#b9d4db;font-size:13px;line-height:1.5}
.forecast-runway{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2fr);gap:7px 16px;align-items:center;padding:15px 0}
.forecast-runway>strong{font-size:16px}
.forecast-runway>.forecast-wind{font-weight:700;font-size:20px;color:#f6fbff;font-variant-numeric:tabular-nums}
.forecast-runway>.forecast-detail{grid-column:1/-1;color:#b9d4db;font-size:13px}
.forecast-runway .weather-bar{grid-column:1/-1;grid-template-columns:110px minmax(80px,1fr) 45px;font-size:13px;margin:4px 0}
.forecast-footnote{font-size:13px;line-height:1.55;color:#b8d0d8;margin-top:18px}
.risk-cell{display:grid;place-items:center;font-size:14px;font-variant-numeric:tabular-nums;color:#f7fbff}
.risk-cell b{font-weight:700}
body[data-theme="light"] .wind-readout strong,body[data-theme="light"] .forecast-runway>.forecast-wind{color:#173948}
body[data-theme="light"] .forecast-day{background:#f5fbff}
body[data-theme="light"] .forecast-meta,body[data-theme="light"] .forecast-detail,body[data-theme="light"] .forecast-footnote{color:#486778}
@media(max-width:850px){.seven-days{grid-template-columns:1fr}.forecast-day{min-width:0}.forecast-runway{grid-template-columns:minmax(105px,1fr) minmax(0,2fr)}}
@media(max-width:420px){.wind-readout{gap:8px}.wind-readout>div{padding:13px}.wind-readout strong{font-size:31px}.forecast-runway>.forecast-wind{font-size:18px}}

/* Keep numeric readings legible independently of theme status-text colors. */
body .risk-map .risk-cell{min-height:48px;color:#fff;border:1px solid #ffffff66;font-size:17px;font-weight:800}
body .risk-map .risk-cell b{color:#fff;opacity:1;text-shadow:0 1px 1px #0006}
body .risk-map .risk-cell.risk-GO{background:#176044}
body .risk-map .risk-cell.risk-RISK{background:#795214}
body .risk-map .risk-cell.risk-NOFLY{background:#873740}
body .risk-map .risk-cell.risk-NODATA{background:#374e5a}
body[data-theme="light"] .wind-readout span,body[data-theme="light"] .wind-readout small{color:#456574}
body[data-theme="light"] .risk-hours span{color:#294b5c;font-weight:700}
.thermal-source-note{padding:12px 16px;border-left:3px solid #59bed4;background:#599fc518}

body .risk-map .risk-cell small{color:#fff;font-size:12px;font-weight:600;opacity:1}

/* Runway identity has a blue glass treatment independent of flight-status colors. */
.runway-live .runway-nameplate,.forecast-runway .runway-nameplate{--pist-ink:#b9efff;display:flex;flex-direction:column;align-items:flex-start;gap:7px;max-width:100%;margin:0;padding:16px 20px;border:1px solid #b5e8ff66;border-radius:17px;background:linear-gradient(125deg,#519db33b,#17385380);box-shadow:inset 0 1px #ffffff38,0 8px 26px #00182430;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:clamp(26px,2.3vw,34px);font-weight:800;letter-spacing:-.025em;line-height:1.12;color:var(--pist-ink);text-shadow:0 2px 10px #00142660}
.runway-nameplate[data-pist="1965"]{--pist-ink:#c3dfff}.runway-nameplate[data-pist="1900"]{--pist-ink:#ccd4ff}.runway-nameplate[data-pist="1800"]{--pist-ink:#b1e7ff}.runway-nameplate[data-pist="1700"]{--pist-ink:#aeeff2}.runway-nameplate[data-pist="1200"]{--pist-ink:#c7eaff}
.runway-live .runway-nameplate small,.forecast-runway .runway-nameplate small{display:block;font-size:15px;line-height:1.4;font-weight:650;letter-spacing:.01em;color:#c7e0ec;text-shadow:none}
.pilot-card-head{align-items:flex-start}.pilot-card-head>span{padding:10px 0;font-weight:650}.forecast-runway .runway-nameplate{padding:10px 12px;font-size:20px;gap:5px;align-self:start}.forecast-runway .runway-nameplate small{font-size:12px}
body[data-theme="light"] .runway-nameplate{--pist-ink:#124e74;background:linear-gradient(125deg,#ffffffed,#bce5f37a);border-color:#78acc680;box-shadow:inset 0 1px #fff,0 7px 22px #215a7612;color:var(--pist-ink);text-shadow:none}
body[data-theme="light"] .runway-nameplate[data-pist="1965"]{--pist-ink:#244c7a}body[data-theme="light"] .runway-nameplate[data-pist="1900"]{--pist-ink:#42467e}body[data-theme="light"] .runway-nameplate[data-pist="1700"]{--pist-ink:#126273}body[data-theme="light"] .runway-nameplate small{color:#365e74}
@media(max-width:540px){.runway-live .runway-nameplate{font-size:28px;padding:14px 16px}.pilot-card-head{gap:8px}.forecast-runway .runway-nameplate{font-size:18px;padding:10px}.forecast-runway .runway-nameplate small{font-size:11px}}

.windy-embed{aspect-ratio:16/9;min-height:300px;border-radius:16px;overflow:hidden;margin:12px 0}
.windy-embed iframe{width:100%;height:100%;border:0;display:block}
.cam-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:12px}
.cam-card{margin:0;padding:12px}
.cam-card iframe,.cam-card img{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;display:block;object-fit:cover;background:rgba(8,28,38,.25)}
.cam-card figcaption{font-weight:600;margin-bottom:8px}
