:root[data-flight]{color-scheme:dark;--flight-secondary:#ffffff80;--flight-field:#ffffff09;}
:root[data-flight][data-theme=light]{color-scheme:light;--background:#f5f5f8;--text:#202532;--flight-secondary:#606977;--flight-field:#00000006;--safe:#007b58;--danger:#d92752;--night:#9951b9;}
html[data-flight] main{max-width:1440px;}
html[data-flight] select,html[data-flight] input,html[data-flight] button{font-family:inherit;}
.service-toolbar{display:flex;gap:12px;align-items:center;}
.service-toolbar #search-form{flex:1;max-width:620px;border:0;background:var(--flight-field);}
.service-toolbar #city-input{color:var(--text);}
.service-toolbar #locate,.service-toolbar select{border:0;background:none;color:var(--flight-secondary);min-height:44px;}
.service-toolbar #locate{width:44px;flex-shrink:0;font-size:25px;color:var(--safe);}
.service-toolbar select{font-size:13px;padding:0 6px;margin-left:auto;}
html[data-flight] #status{color:var(--flight-secondary);margin-bottom:0;}
html[data-flight] #status[data-error=true]{color:var(--danger);}
html[data-flight] .search-results{background:var(--background);border-color:var(--flight-field);}
html[data-flight] .search-results button{color:var(--text);}
html[data-flight] .search-results small{color:var(--flight-secondary);}
.flight-current{padding:24px var(--side-padding) 16px;}
.flight-current .hero{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.flight-current h1{font-size:38px;letter-spacing:-.8px;line-height:1.12;font-weight:600;margin:0 0 7px;}
.flight-current .secondary{font-size:13px;line-height:1.5;color:var(--flight-secondary);margin:0;}
.weather-now{display:flex;align-items:center;gap:12px;}
.weather-now>.icon{width:44px;height:44px;}
.now-temperature{font-size:44px;font-weight:500;letter-spacing:-1px;line-height:1;font-family:var(--numeric-font-family);}
.now-caption{color:var(--flight-secondary);font-size:11px;margin-top:7px;text-align:right;}
.assessment{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-top:24px;}
.assessment-main{display:flex;align-items:flex-start;gap:10px;}
.assessment-symbol{display:flex;color:var(--safe);padding-top:2px;}
.assessment-symbol>.icon{width:20px;height:20px;}
.assessment[data-risk=true] .assessment-symbol{color:var(--danger);}
.assessment h2{margin:0 0 5px;font-size:18px;font-weight:600;letter-spacing:-.3px;}
.assessment-main .secondary{display:none;}
.risk-reasons{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:7px;font-size:13px;color:var(--danger);}
.risk-reason{display:flex;align-items:center;gap:6px;line-height:1.5;}
.risk-reason>.icon{width:14px;height:14px;}
.window-note{font-size:12px;line-height:1.5;color:var(--flight-secondary);margin:3px 0 0;max-width:260px;}
.window-note strong{color:var(--safe);font-weight:600;}
.current-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px;margin-top:24px;}
.current-metric{min-width:0;}
.metric-title{display:flex;align-items:center;gap:5px;color:var(--flight-secondary);font-size:12px;}
.metric-title>.icon{width:14px;height:14px;}
.metric-value{font-family:var(--numeric-font-family);font-size:24px;font-weight:650;letter-spacing:var(--numeric-letter-spacing);font-variant-numeric:tabular-nums;line-height:1.2;margin-top:7px;}
.metric-value small{font-family:system-ui;font-size:10px;font-weight:500;letter-spacing:0;color:var(--flight-secondary);margin-left:3px;}
.metric-note{color:var(--flight-secondary);font-size:11px;line-height:1.4;margin-top:4px;}
.current-metric[data-risk=true] .metric-value{color:var(--danger);}
html[data-flight] .day-picker{margin:8px 0 0;padding:0 var(--side-padding) 8px;gap:18px;}
html[data-flight] .day-picker button{position:relative;border:0;border-radius:0;background:none;color:var(--flight-secondary);padding:8px 0;min-height:44px;}
html[data-flight] .day-picker button[aria-current=date]{color:var(--text);}
html[data-flight] .day-picker button[aria-current=date]::after{content:"";height:1px;position:absolute;bottom:2px;left:0;right:0;background:currentColor;}
html[data-flight] .day-heading{padding-top:14px;}
html[data-flight] .day-heading h2{font-size:28px;font-weight:600;letter-spacing:-.45px;line-height:1.2;margin:0;}
html[data-flight] :is(#forecast-orientation,#chart-label-experiment,#wind-experiment,#problem-group-experiment,#forecast-views .summary-variants,#source-info){display:none!important;}
.flight-footer{padding:20px var(--side-padding) 0;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:11px;color:var(--flight-secondary);}
.flight-footer button{min-height:44px;border:0;background:none;color:var(--safe);padding:0;font-size:13px;}
:root[data-flight][data-theme=light] .forecast-views button{color:var(--flight-secondary);}
:root[data-flight][data-theme=light] .forecast-views button[aria-pressed=true]{color:var(--text);}
:root[data-flight][data-theme=light] :is(.day-heading p,.horizontal-chart-title,.horizontal-row-label .header-symbol,.week-problems-heading){color:var(--flight-secondary);}
:root[data-flight][data-theme=light] .horizontal-row-label{border-right:0;box-shadow:none;}
:root[data-flight][data-theme=light] .horizontal-scroll{scrollbar-color:#25304455 transparent;}
@media(min-width:900px){:root[data-flight]{--side-padding:32px;}}
@media(max-width:600px){
 .service-toolbar{gap:6px;}.service-toolbar select{font-size:12px;padding-right:0;}
 .flight-current{padding-top:20px;}
 .flight-current h1{font-size:30px;max-width:230px;}
 .weather-now{gap:8px;}.weather-now>.icon{width:32px;height:32px;}
 .now-temperature{font-size:34px;}.now-caption{font-size:10px;max-width:110px;}
 .assessment{flex-direction:column;gap:8px;margin-top:20px;}
 .assessment h2{font-size:17px;}.window-note{padding-left:30px;max-width:none;margin:0;}
 .current-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 14px;margin-top:20px;}
 .metric-title{font-size:10px;}.metric-title>.icon{width:12px;height:12px;}
 .metric-value{font-size:22px;}.metric-value small{font-size:9px;}.metric-note{font-size:10px;}
}
@media(prefers-reduced-motion:reduce){html[data-flight] *{scroll-behavior:auto!important;}}

:root[data-flight][data-theme=light] .search-button{color:var(--flight-secondary);}
:root[data-flight][data-theme=light] .forecast-views button[aria-pressed=true]{border-bottom-color:var(--flight-secondary);}
:root[data-flight][data-theme=light] .week-problems-days button{color:var(--flight-secondary);}
:root[data-flight][data-theme=light] .week-problems-days button[aria-current=date]{color:var(--text);}
:root[data-flight][data-theme=light] .week-problems-lens{border-color:#25304425;background:#25304406;}
:root[data-flight][data-theme=light] .week-problems-card{background:#25304403;}
:root[data-flight][data-theme=light] .header-symbol{color:var(--flight-secondary);}

.flight-current .hero>div:first-child{min-width:0;flex:1;}
.flight-current h1{overflow-wrap:anywhere;}
@media(max-width:600px){.flight-current .hero{gap:12px;align-items:flex-start;}.weather-now{flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}.now-caption{max-width:105px;}}

/* Accessible forecast text stays below the original charts, with no card shell. */
.forecast-guide{padding:0 var(--side-padding) 24px;color:var(--flight-secondary);font-size:12px;line-height:1.55;}
.forecast-guide summary{cursor:pointer;padding:12px 0;min-height:44px;box-sizing:border-box;}
.forecast-guide h2{font-size:18px;line-height:1.3;color:var(--text);font-weight:600;margin:16px 0 8px;}
.forecast-guide h3{font-size:14px;line-height:1.4;color:var(--text);font-weight:600;margin:18px 0 6px;}
.forecast-guide p{max-width:850px;margin:6px 0 12px;}
.forecast-city-links{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:8px;}
.forecast-guide a{color:inherit;text-underline-offset:3px;}
.forecast-city-links a{display:inline-flex;align-items:center;min-height:32px;}
.forecast-sitemap{display:inline-block;margin-top:12px;}
.forecast-data-scroll{max-width:100%;overflow-x:auto;margin:16px 0;}
.forecast-data-scroll table{border-collapse:collapse;font-size:12px;width:100%;text-align:right;}
.forecast-data-scroll caption{text-align:left;color:var(--text);padding:8px 0;}
.forecast-data-scroll th,.forecast-data-scroll td{padding:7px 10px;white-space:nowrap;}
.forecast-data-scroll th:first-child,.forecast-data-scroll td:first-child{text-align:left;padding-left:0;}
.forecast-data-scroll th{font-weight:600;color:var(--text);}
html[data-flight] .search-results .city-option{display:flex;flex-direction:column;gap:3px;width:100%;box-sizing:border-box;padding:12px 14px;color:var(--text);text-decoration:none;}
html[data-flight] .search-results .city-option:hover,html[data-flight] .search-results .city-option:focus-visible{background:var(--flight-field);}



:root[data-flight][data-theme=light] :is(.header-symbol small,.altitude-wind-unit){color:var(--flight-secondary);}

/* Light appearance owns every visible role, including SVG gradient inputs. */
:root[data-flight][data-theme=light]{
 --label-primary:var(--text);--label-secondary:var(--flight-secondary);
 --chart-axis:#78818f;--chart-muted:#606977;--chart-neutral-line:#717c8b;
 --chart-marker-halo:var(--background);--chart-marker-opacity:1;
}
:root[data-flight][data-theme=light] [stroke="var(--chart-axis,white)"]{stroke-opacity:1;}
:root[data-flight][data-theme=light] .horizontal-event-footer{color:var(--night);}
:root[data-flight][data-theme=light] .horizontal-altitude-hour{color:var(--flight-secondary);}
:root[data-flight][data-theme=light] #city-input::placeholder{color:var(--flight-secondary);opacity:1;}
:root[data-flight][data-theme=light] :is(.week-problems-missing,.week-problems-empty){color:var(--flight-secondary);}

.flight-footer button{flex-shrink:0;white-space:nowrap;}

:root[data-flight][data-theme=light] .horizontal-unsafe-hour{background:color-mix(in srgb,var(--danger) 3%,transparent);}

/* One faint colored wash keeps the light wind plot free of gray overlap. */
:root[data-flight][data-theme=light] .wind-curve-area[data-series=wind]{display:none;}
:root[data-flight][data-theme=light] .wind-curve-area[data-series=gusts]{opacity:.2;}

/* Date changes stay on the same hourly axis inside the 24-hour window. */
.horizontal-date-row{position:relative;z-index:1;height:18px;margin-left:var(--legend-width,0px);width:var(--timeline-width);color:var(--flight-secondary);font:500 10px/14px system-ui;}
.horizontal-date-label{position:absolute;top:0;white-space:nowrap;}
.horizontal-date-line{position:absolute;top:0;bottom:0;width:1px;background:var(--text);opacity:.12;}
