/* A continuous photographic scene: no boundary between landscape and forecast. */
:root{--page-gutter:28px;--ink:#f4f9ff;--muted:#c2d6e4;--line:rgba(213,235,249,.2);--blue:#a7daf3;--paper:#18394d;--bg:#122f43;--glass:rgba(15,43,63,.72);--soft:rgba(211,236,255,.07);--solid:#18394d;--shadow:0 22px 65px rgba(0,15,28,.2);--landscape:url('../images/landscape-day.webp')}
html[data-ambient="dusk"]{--landscape:url('../images/landscape-dusk.webp');--bg:#182c42;--glass:rgba(21,40,62,.74)}
html[data-ambient="night"]{--landscape:url('../images/landscape-night.webp');--bg:#0d2034;--glass:rgba(11,28,49,.76)}
html[data-theme="light"]{--ink:#18364a;--muted:#496779;--line:rgba(31,79,106,.18);--blue:#1c668f;--paper:#ecf5fa;--bg:#dceaf1;--glass:rgba(235,245,251,.82);--soft:rgba(255,255,255,.35);--solid:#edf6fa;--shadow:0 20px 55px rgba(18,53,73,.14)}
body{position:relative;isolation:isolate;background:var(--bg);min-height:100vh;color:var(--ink)}
body::before{content:"";position:absolute;z-index:-1;inset:0 0 auto;height:1450px;pointer-events:none;background-image:linear-gradient(180deg,rgba(8,30,48,.42) 0,rgba(8,30,48,.42) 24%,rgba(18,47,67,.5) 47%,var(--bg) 93%),var(--landscape);background-position:center top;background-size:cover;background-repeat:no-repeat}
html[data-ambient="night"] body::before{background-image:linear-gradient(180deg,rgba(5,17,32,.12),rgba(13,32,52,.25) 42%,var(--bg) 93%),var(--landscape)}
html[data-ambient="dusk"] body::before{background-image:linear-gradient(180deg,rgba(11,23,43,.25),rgba(24,44,66,.25) 42%,var(--bg) 93%),var(--landscape)}
html[data-theme="light"] body::before{background-image:linear-gradient(180deg,rgba(8,30,48,.4),rgba(8,30,48,.14) 34%,rgba(220,234,241,.3) 60%,var(--bg) 93%),var(--landscape)}
button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid #f0bf80;outline-offset:4px}
.topbar{max-width:1360px;min-height:104px;height:auto;padding:22px 28px;display:grid;grid-template-columns:auto minmax(250px,1fr) auto;gap:34px;position:relative;z-index:10}
.brand{font-family:Georgia,'Times New Roman',serif;font-size:42px;font-weight:400;gap:0;letter-spacing:-2px;color:#fff;text-shadow:0 2px 20px #0b22334d}.brand-mark{color:#bbdfef;font-weight:400}
.top-actions{display:flex;align-items:center;gap:12px}.ghost,.round,.weather-refresh,.map-reopen{color:#f4f9ff;background:rgba(13,42,63,.38);border-color:rgba(224,242,255,.32);backdrop-filter:blur(12px);box-shadow:none}
.ghost{font-size:12px;padding:11px 13px;white-space:nowrap}.round{width:42px;height:42px}
.appearance-switch{display:flex;padding:3px;border:1px solid rgba(224,242,255,.28);border-radius:999px;background:rgba(13,42,63,.38);backdrop-filter:blur(12px)}
.appearance-switch button{border:0;border-radius:999px;background:transparent;color:#e4eff7;font-size:11px;padding:8px 9px;cursor:pointer}.appearance-switch button[aria-pressed="true"]{background:rgba(227,244,255,.19);color:#fff}
.search,body.forecast-mode .search{margin:0;max-width:600px;width:100%;border-radius:999px;padding:5px;background:rgba(13,42,63,.42);border-color:rgba(224,242,255,.35);box-shadow:none;backdrop-filter:blur(15px)}
.search input{color:#fff;font-size:14px;padding:10px 14px}.search input::placeholder{color:#e2edf5;opacity:.86}.search button{border-radius:999px;padding:0 17px;font-size:12px;background:rgba(226,243,255,.17);color:#fff}.search:focus-within{border-color:#f0bf80}
.search-results{top:57px;background:var(--solid);border-color:var(--line);box-shadow:var(--shadow);backdrop-filter:none}.search-results .result{background:transparent;color:var(--ink);border-radius:10px;padding:12px 14px}.search-results .result:hover,.search-results .result:focus-visible{background:var(--soft)}
.hero{max-width:1320px;margin:auto;text-align:left;padding:37px 28px 38px;color:#fff;text-shadow:0 2px 24px rgba(4,25,42,.4)}
.eyebrow{color:var(--blue);font-weight:650;letter-spacing:.16em;font-size:10px}.hero .eyebrow{color:#d5edf9;margin-bottom:14px}.hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(42px,5.5vw,70px);letter-spacing:-.045em;line-height:1.05;margin:0 0 18px;max-width:800px}.lead{margin:0;color:#e8f2f8;font-size:15px;line-height:1.6;max-width:620px}
body.forecast-mode .hero{display:none}
.explore-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:0;max-width:1264px;padding:0;margin:0 auto 55px;align-items:stretch;border:1px solid var(--line);border-radius:26px;background:var(--glass);box-shadow:var(--shadow);backdrop-filter:blur(14px);overflow:hidden}
.map-card-primary,.places-card{border:0;background:transparent;box-shadow:none;backdrop-filter:none;border-radius:0;padding:26px;margin:0;min-width:0}.map-card-primary::before{display:none}
.explore-side{border-left:1px solid var(--line);padding:8px 0}.places-card{position:static;padding:24px}.places-help{font-size:12px;line-height:1.7}.section-title h2{font-size:23px;font-weight:500}.source-pill{display:inline-flex;background:var(--soft);color:var(--muted);border:1px solid var(--line);font-size:10px;line-height:1.5}
.map-navigation-head{grid-template-columns:auto 1fr;gap:15px;margin-bottom:10px;padding-top:0}.map-heading{text-align:left}.map-heading h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:31px;letter-spacing:-.025em}.map-heading>p:not(.eyebrow){max-width:none;font-size:12px;line-height:1.6;margin-top:8px}.map-navigation-head>.source-pill{display:none}.map-back{position:static;background:var(--soft);color:var(--ink);box-shadow:none;padding:9px 13px;font-weight:500}.map-back[hidden]{display:none}.map-back:hover{background:var(--soft)}
.map-stage{min-height:490px;border:0;border-radius:18px;box-shadow:none;background:transparent}.map-glow{display:none}.france-map{padding:14px 26px 45px;max-height:none}.department-big-map{padding:20px 15px 45px}
.dept-shape{fill:rgba(137,191,219,.4);stroke:rgba(227,244,255,.6);stroke-width:1}.dept-shape:hover,.dept-shape:focus{fill:#acd5e8;filter:drop-shadow(0 5px 8px #071f3466)}.dept-shape.selected,.commune-shape.selected{fill:#edba7c}.dept-label{fill:#f4f9ff;font-weight:600}.dept-label.selected{fill:#253e50}.commune-shape{fill:rgba(137,191,219,.4);stroke:rgba(227,244,255,.6)}.commune-shape:hover,.commune-shape:focus-visible{fill:#acd5e8}.commune-label{fill:#fff;stroke:#24445b;stroke-width:2px}
html[data-theme="light"] .dept-shape,html[data-theme="light"] .commune-shape{fill:#9fc8dc;stroke:#edf6fb}html[data-theme="light"] .dept-label{fill:#244c64}html[data-theme="light"] .dept-shape.selected,html[data-theme="light"] .commune-shape.selected{fill:#eab372}
.map-hint{background:var(--soft);border-color:var(--line);box-shadow:none;left:12px;bottom:10px;color:var(--muted);font-size:11px}.map-tooltip{background:#143047;color:#fff}
.department-shortcuts{display:block;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:20px 24px 24px;margin:0}.department-shortcuts h3{font-size:22px;font-weight:500}.department-shortcuts>div:first-child>p:not(.eyebrow){font-size:12px;line-height:1.7}.department-cities{grid-template-columns:1fr;margin-top:16px;gap:8px}.city-chip{background:var(--soft);color:var(--ink);border-color:var(--line);padding:11px 13px}.city-chip:hover{background:var(--soft);border-color:var(--blue)}
.favorite-chip,.compare-card{background:var(--soft);border-color:var(--line);color:var(--ink)}.favorite-chip button{background:var(--soft);color:var(--muted)}.favorite-chip .favorite-primary[aria-pressed="true"]{background:var(--soft)}.comparison{grid-template-columns:1fr}.comparison-empty{border-color:var(--line);padding:24px 16px;line-height:1.7}.compare-card{min-height:100px}.compare-card h3{font-weight:500}.compare-weather strong{font-weight:500}
.map-reopen-bar{max-width:1320px;margin:12px auto 18px;padding:0 28px}.map-reopen{font-size:12px;font-weight:500;padding:9px 14px}.map-reopen:hover,.weather-refresh:hover:not(:disabled){background:rgba(211,236,255,.17);border-color:rgba(224,242,255,.5)}
.weather-shell{max-width:1320px;background:transparent;border:0;box-shadow:none;backdrop-filter:none;border-radius:0;padding:0 28px;margin:0 auto 55px}
.place-head{color:#fff;text-shadow:0 2px 20px rgba(4,25,42,.4);align-items:flex-start}.place-head .eyebrow{color:#d5edf9}.place-head h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(34px,4.5vw,58px);font-weight:400;line-height:1.15;letter-spacing:-.035em}.place-head p:not(.eyebrow){color:#d8e9f4;font-size:12px;line-height:1.7;max-width:880px;margin-top:10px}.place-actions{padding-top:5px}.weather-refresh{padding:10px 15px;border-radius:999px}.weather-refresh-status{color:#dfedf7}.weather-refresh-status.refresh-partial{color:#ffd39e}
.observations,.observations.observation-old{margin:25px 0 0;padding:0;border:0;border-radius:0;background:transparent;color:#fff;text-shadow:0 1px 4px rgba(5,25,42,.85);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:40px}.observations>.section-title,.observations>.observation-reading,.observations>.observation-details{grid-column:1}.observations>.section-title{justify-content:flex-start;gap:18px}.observations .eyebrow{color:#d5edf9}.observations h3{font-weight:500;font-size:17px}.observation-badge,.observation-fresh .observation-badge{background:rgba(22,70,66,.66);border:1px solid #a6e1c64d;color:#e0f8eb;font-size:10px;font-weight:500}.observation-old .observation-badge{background:rgba(90,59,28,.72);border-color:#e6bb794d;color:#ffdaa7}
.observation-reading{gap:30px;margin-top:12px;align-items:center}.observed-temperature{font-family:Georgia,'Times New Roman',serif;color:#fff;font-size:clamp(60px,7.5vw,98px);font-weight:400;line-height:1.1;letter-spacing:-.045em}.observation-station{color:#f2f8fc;font-weight:500;font-size:13px;line-height:1.5}.observation-time,.observation-note{color:#dae9f3;font-size:11px;line-height:1.7}.observation-note{max-width:950px;margin-top:12px}
.observations .observation-details{display:flex;flex-wrap:wrap;gap:14px 30px;margin-top:15px}.observations .observation-metric{padding:0 25px 0 0;background:transparent;border:0;border-right:1px solid rgba(224,242,255,.28);border-radius:0;gap:4px;min-width:120px}.observations .observation-metric:last-child{border-right:0}.observation-metric>span,.observation-metric>small{color:#dcebf5;font-size:11px}.observation-metric>strong{color:#fff;font-size:21px;font-weight:500}.observations>.observation-note{grid-column:1/-1}.observation-nearby{grid-column:2;grid-row:1/span 3;align-self:center;border-top:0;border-left:1px solid rgba(224,242,255,.25);margin-top:0;padding:15px 0 15px 30px}.observation-nearby h4{color:#e1eef6;font-size:12px;font-weight:500;margin:0 0 12px}
.confidence{color:#f3f8fc;margin:24px 0 18px;gap:12px 30px}.confidence p{color:#d8e9f4;max-width:820px}.confidence strong{font-weight:500}.confidence.stale{background:rgba(90,59,28,.6);border-color:#e6bb794d}.confidence.stale p{color:#ffe6c6}
.forecast-section{margin-top:18px;padding:25px;border:1px solid var(--line);border-radius:24px;background:var(--glass);box-shadow:var(--shadow);backdrop-filter:blur(14px);color:var(--ink)}.forecast-section>.section-title h3{font-size:25px;font-weight:500;letter-spacing:-.025em}
.forecast-chart-card{padding:12px 0 0;border:0;background:transparent;border-radius:0;margin-top:18px}.chart-legend{padding:0;gap:10px 22px;font-size:11px}.chart-legend i{background:#f1b777}.chart-legend span:nth-child(2) i{background:#83c8ec}.chart-legend .chart-night-legend i{background:#51699c6b;border-color:#aeb9d83d}.chart-hint{font-size:10px}.chart-grid{stroke:var(--line)}.chart-axis,.chart-day-label{fill:var(--muted)}.chart-day-line{stroke:var(--line)}.chart-night-band{fill:#556ba7;opacity:.2}.chart-temperature{stroke:#f1b777;stroke-width:3}.chart-point{fill:var(--solid);stroke:#f1b777}.chart-rain{fill:#83c8ec}.chart-hit:hover,.chart-hit:focus,.chart-selected{fill:#f1b77740;stroke:#f1b777}
.forecast-chart-detail{margin:12px 0 0;padding:17px 20px;background:var(--soft);border-color:var(--line);border-radius:14px;color:var(--ink)}.forecast-detail-heading>span{background:var(--soft);color:var(--muted);border:1px solid var(--line)}.forecast-detail-weather>strong{font-weight:500}.forecast-detail-metrics span,.forecast-detail-note{color:var(--muted)}.forecast-detail-metrics strong{font-weight:500}.forecast-tooltip{background:var(--solid);color:var(--ink);border-color:var(--line);box-shadow:0 15px 45px #051a354d;padding:20px;width:350px}.forecast-import-status.import-warning{color:#ffd39e}html[data-theme="light"] .forecast-import-status.import-warning{color:#7c4c19}
.hourly-toolbar button{background:var(--soft);border-color:var(--line);color:var(--ink);border-radius:999px;font-size:11px}.hourly-toolbar button:hover:not(:disabled){background:var(--soft);border-color:var(--blue)}
.hourly{gap:0;grid-auto-columns:118px;border:1px solid var(--line);border-radius:15px;padding-bottom:0;scrollbar-color:#8cb6cd var(--soft)}.hour{min-width:118px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);padding:15px 10px}.hour strong{font-weight:500}.hour-night{background:rgba(90,100,156,.2);color:var(--ink)}.hour-night .hour-date,.hour-night .hour-period,.hour-night small,.hour-date,.hour-period{color:var(--muted)}.hour .hour-rain,.hour-night .hour-rain{color:var(--blue)}.hour-selected{background:var(--soft);box-shadow:inset 0 -3px 0 #f1b777}.hour:hover,.hour:focus-visible{outline:2px solid #f1b777;outline-offset:-2px}
.period-summary{background:var(--soft);border-color:var(--line);margin-top:22px}.period-summary>summary{color:var(--ink)}.period-summary>summary::before{color:var(--blue)}.period-summary>summary:hover{background:var(--soft)}.period-summary summary small{color:var(--muted)}.period-table thead th{background:var(--soft);color:var(--muted)}.period-table tbody th,.period-table tbody td{border-color:var(--line)}.period-night{background:rgba(90,100,156,.18)}.period-evening{background:rgba(233,174,112,.08)}.period-table .period-min strong{color:#a4d7f1}.period-table .period-max strong{color:#f5c087}.period-table .period-partial{color:#f5c087}html[data-theme="light"] .period-table .period-min strong{color:#24678f}html[data-theme="light"] .period-table .period-max strong,html[data-theme="light"] .period-table .period-partial{color:#945222}
footer{max-width:1320px;padding:0 28px;margin:0 auto 28px;gap:12px;color:var(--muted);font-size:10px;line-height:1.6}
@media(min-width:1500px){body::before{height:1550px}}
@media(max-width:1100px){.topbar{gap:20px;grid-template-columns:auto 1fr}.top-actions{grid-column:2;justify-self:end;grid-row:2}.search,body.forecast-mode .search{max-width:none}.brand{grid-row:1/3}.topbar{padding-top:18px;padding-bottom:18px}.hero{padding-top:25px}.explore-grid{margin-left:28px;margin-right:28px;grid-template-columns:minmax(0,1fr) 285px}.map-card-primary{padding:22px}.map-stage{min-height:460px}.map-heading h2{font-size:28px}.places-card,.department-shortcuts{padding:22px}.forecast-detail-metrics{gap:12px}}
@media(max-width:800px){.observations,.observations.observation-old{display:block}.observation-nearby{border-left:0;border-top:1px solid rgba(224,242,255,.25);margin-top:20px;padding:17px 0 0}.explore-grid{grid-template-columns:1fr}.explore-side{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;padding:0}.department-shortcuts{border-bottom:0;border-right:1px solid var(--line)}.explore-side:has(.department-shortcuts[hidden]){grid-template-columns:1fr}.map-stage{min-height:490px}.map-heading h2{font-size:31px}.forecast-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.confidence{flex-direction:column;gap:7px}.chart-hint{margin-left:0;width:100%}}
@media(max-width:600px){body::before{height:1200px;background-position:58% top}.topbar{padding:17px 18px 14px;grid-template-columns:auto 1fr;gap:13px 8px}.brand{font-size:35px;grid-row:1}.top-actions{grid-column:2;grid-row:1;gap:7px;align-items:flex-end;flex-direction:column}.ghost{padding:5px 9px;font-size:11px}.appearance-switch{padding:2px}.appearance-switch button{font-size:10px;padding:5px 8px}.search,body.forecast-mode .search{grid-column:1/-1;grid-row:2;padding:4px}.search input{font-size:13px;padding:9px 10px}.search button{padding:0 13px;font-size:11px}.search-results{top:50px}.hero{padding:28px 20px 30px}.hero h1{font-size:46px;line-height:1.05;margin-bottom:16px}.hero .eyebrow{font-size:9px}.lead{font-size:12px;max-width:310px}.explore-grid{margin:0 14px 35px;border-radius:21px}.map-card-primary{padding:20px 15px 12px}.map-navigation-head{display:grid;padding-top:0;gap:10px}.map-heading h2{font-size:27px}.map-heading>p:not(.eyebrow){display:block;font-size:11px}.map-stage{min-height:365px}.france-map{padding:8px 2px 42px}.department-big-map{padding:10px 0 45px}.map-hint{left:0;right:0;bottom:6px;padding:8px;font-size:10px;line-height:1.4;white-space:normal}.dept-label{font-size:9px}.commune-label{font-size:9px}.explore-side{display:block}.department-shortcuts{border-right:0;border-bottom:1px solid var(--line);padding:20px}.department-cities{grid-template-columns:repeat(2,minmax(0,1fr))}.places-card{padding:22px 20px}.map-reopen-bar{padding:0 20px;margin:9px auto 20px}.map-reopen{font-size:11px;padding:8px 12px}.weather-shell{margin:0 auto 35px;padding:0 20px}.place-head{gap:15px}.place-head h2{font-size:36px}.place-head p:not(.eyebrow){font-size:11px;margin-top:8px}.place-actions{margin-left:0;padding:0;gap:8px}.weather-refresh{font-size:11px;padding:9px 14px}.round{width:36px;height:36px;font-size:19px}.observations{margin-top:23px}.observations>.section-title{align-items:center;flex-wrap:wrap;gap:12px}.observations h3{font-size:16px}.observation-reading{flex-direction:column;align-items:flex-start;gap:10px;margin-top:14px}.observed-temperature{font-size:76px}.observation-station{font-size:12px}.observation-metric{min-width:105px;padding-right:15px}.observations .observation-details{gap:14px 18px}.observation-metric>strong{font-size:20px}.observation-note{font-size:10px}.confidence{margin:22px 0 17px}.confidence p{font-size:10px}.confidence strong{font-size:11px}.forecast-section{margin:0 -6px;padding:20px 14px;border-radius:21px}.forecast-section>.section-title h3{font-size:22px;line-height:1.3}.forecast-section>.section-title{gap:12px}.chart-legend{font-size:10px;gap:8px 14px}.chart-hint{font-size:9px}.forecast-chart-card{margin-top:16px}.forecast-chart-detail{padding:14px}.forecast-detail-heading{flex-wrap:wrap}.forecast-detail-heading>strong{font-size:13px}.forecast-detail-weather{gap:12px}.forecast-detail-weather>span{font-size:12px}.forecast-detail-metrics strong{font-size:14px}.forecast-tooltip{padding:17px;width:330px}.forecast-horizon,.forecast-import-status{font-size:10px}.hourly-toolbar{gap:8px;align-items:flex-end}.hourly-days{gap:5px}.hourly-toolbar button{padding:7px 9px;font-size:10px}.hourly-arrows button{padding:0;font-size:17px;width:30px;height:30px}.hourly{grid-auto-columns:108px}.hour{min-width:108px;padding:13px 8px}.period-summary summary strong{font-size:12px}.period-summary summary small{font-size:10px}footer{padding:0 20px;flex-direction:column;gap:4px;font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.dept-shape,.commune-shape{transition:none}}

/* Compact first view; search opens as an overlay without moving the weather. */
.topbar{grid-template-columns:auto 1fr;min-height:70px;padding:12px 28px;gap:20px}.brand{font-size:34px;grid-row:1}.top-actions{grid-column:2;grid-row:1;justify-self:end;gap:10px;flex-direction:row;align-items:center}
.topbar .map-reopen-bar{max-width:none;margin:0;padding:0}.topbar .map-reopen{font-size:11px;padding:9px 12px}
.search-control{position:relative}.search-toggle{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(224,242,255,.32);border-radius:50%;background:rgba(13,42,63,.38);color:#fff;cursor:pointer;backdrop-filter:blur(12px)}.search-toggle svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.search-toggle:hover,.search-toggle[aria-expanded="true"]{background:rgba(211,236,255,.2)}
#searchForm{position:absolute;right:0;top:calc(100% + 12px);width:min(520px,calc(100vw - 40px));max-width:none;margin:0;background:rgba(16,44,65,.96);box-shadow:var(--shadow)}#searchForm[hidden]{display:none}#searchForm .search-results{top:calc(100% + 8px)}
.hero{padding-top:26px;padding-bottom:30px}.weather-shell{padding-top:6px}.place-head .eyebrow{display:none}.place-head h2{font-size:clamp(30px,3.4vw,46px);line-height:1.12}.place-head p:not(.eyebrow){font-size:11px;line-height:1.5;margin-top:5px}.place-actions{padding-top:2px}.weather-refresh{font-size:11px;padding:8px 12px}.round{width:36px;height:36px;font-size:20px}
.observations,.observations.observation-old{margin-top:12px;column-gap:30px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.observations:not(:has(.observation-nearby:not([hidden]))){grid-template-columns:1fr}.observations>.section-title{gap:12px}.observations>.section-title .eyebrow{margin:0;font-size:9px}.observation-badge{padding:5px 9px}.observation-reading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;margin-top:6px;align-items:center}.observed-temperature{font-size:72px;line-height:1.05}.observation-station{font-size:11px;line-height:1.5}.observation-time{font-size:10px;line-height:1.5}.observation-reading>.observation-details{margin-top:0}.observation-reading:has(.observation-metric:nth-child(2))>.observation-details{grid-column:1/-1}
.observations .observation-metric{min-width:80px;padding-right:15px;gap:3px}.observations .observation-metric>span,.observations .observation-metric>small{font-size:10px}.observations .observation-metric>strong{font-size:18px}.observation-nearby{grid-row:1/span 2;padding:8px 0 8px 24px}.observation-nearby h4{font-size:11px;margin-bottom:8px}.observation-nearby .observation-station{font-size:11px;line-height:1.5}.observation-nearby .observation-time{font-size:10px;line-height:1.5}.observations .observation-nearby .observation-details{margin-top:8px;gap:10px 18px}
.observation-notes{grid-column:1/-1;margin-top:7px;color:#dcebf5;font-size:10px;line-height:1.5}.observation-notes>summary{cursor:pointer;width:fit-content}.observation-notes .observation-note{font-size:10px;margin:7px 0 0;line-height:1.6}
.forecast-section{margin-top:14px;padding:16px 20px}.forecast-section>.section-title h3{font-size:22px;line-height:1.25}.forecast-section>.section-title .eyebrow{margin-bottom:5px;font-size:9px}.forecast-chart-card{margin-top:10px;padding-top:6px}.forecast-chart{margin-top:6px}.chart-legend{gap:8px 18px;font-size:10px}.chart-hint{font-size:9px}.forecast-import-status{margin:8px 3px 12px}.forecast-section .confidence{margin:18px 0 4px;color:var(--ink)}.forecast-section .confidence p{color:var(--muted)}.forecast-section .confidence.stale p{color:#ffe6c6}html[data-theme="light"] .forecast-section .confidence.stale p{color:#70471f}
@media(max-width:1000px){.observation-reading{grid-template-columns:auto minmax(0,1fr);gap:10px 18px}.observation-reading>.observation-details{grid-column:1/-1}.observed-temperature{font-size:64px}.observations .observation-nearby .observation-details{gap:10px 14px}.chart-hint{margin-left:0;width:100%}}
@media(max-width:800px){.topbar{padding:12px 20px}.top-actions{flex-wrap:wrap;max-width:calc(100vw - 190px)}.observations,.observations.observation-old{display:block}.observation-nearby{margin-top:12px;padding:12px 0 0}.observations .observation-nearby .observation-details{margin-top:8px}.observation-notes{margin-top:8px}.observation-reading>.observation-details{margin-top:3px}.forecast-section{margin-top:12px}}
@media(max-width:600px){.topbar{min-height:68px;padding:10px 16px;gap:8px;align-items:start}.brand{font-size:30px;padding-top:5px}.top-actions{max-width:215px;gap:5px;justify-content:flex-end;flex-wrap:wrap}.topbar .map-reopen{padding:7px 9px;font-size:10px}.ghost{font-size:10px;padding:7px 9px}.appearance-switch{padding:2px}.appearance-switch button{font-size:9px;padding:5px 7px}.search-toggle{width:32px;height:32px}.search-toggle svg{width:16px;height:16px}.search-control{position:static}#searchForm{left:14px;right:14px;top:calc(100% + 2px);width:auto;padding:4px}#searchForm input{font-size:14px}.hero{padding-top:22px}.weather-shell{padding-top:3px}.place-head{gap:8px}.place-head h2{font-size:30px}.place-actions{margin-left:auto;padding-top:0}.weather-refresh{font-size:10px;padding:7px 10px}.round{width:32px;height:32px;font-size:18px}.place-head p:not(.eyebrow){font-size:10px;margin-top:4px}.observations,.observations.observation-old{margin-top:10px}.observations>.section-title{gap:8px}.observations>.section-title .eyebrow{font-size:8px}.observation-badge{font-size:9px;padding:4px 7px}.observation-reading{margin-top:8px;gap:7px 14px}.observed-temperature{font-size:58px}.observation-station{font-size:10px;line-height:1.4}.observation-time{font-size:9px;line-height:1.5}.observations .observation-details{gap:8px 18px}.observations .observation-metric{min-width:78px;padding-right:14px}.observations .observation-metric>strong{font-size:17px}.observation-nearby h4{font-size:10px;margin-bottom:6px}.observation-nearby .observation-station{font-size:10px;line-height:1.4}.observation-nearby .observation-time{font-size:9px}.forecast-section{padding:14px 12px}.forecast-section>.section-title h3{font-size:20px}.forecast-section>.section-title{gap:8px}.forecast-chart-card{padding:6px 0 0;margin-top:9px}.chart-legend{font-size:9px;gap:6px 10px}.chart-hint{font-size:8px}.forecast-chart{margin-top:5px}.observation-notes{font-size:9px}.forecast-section .confidence{margin-top:14px}}

/* The landscape stays open; the forecast sits at the foot of the first view. */
.forecast-tooltip{position:fixed;z-index:50;max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);overflow:auto;padding:16px 18px;width:340px}
.forecast-tooltip .forecast-detail-heading{margin-bottom:10px}.forecast-tooltip .forecast-detail-weather{margin-bottom:12px}.forecast-tooltip .forecast-detail-note{margin-top:10px}
.forecast-continuation{margin-top:18px}.forecast-continuation .forecast-horizon{margin-top:0}
@media(min-width:901px){
 body.forecast-mode::before{height:max(100svh,850px)}
 .weather-first-view{height:calc(100svh - 86px);min-height:0;display:flex;flex-direction:column;gap:20px}
 .weather-scene{flex:1;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(213,235,249,.45) transparent}
 .weather-scene .place-head h2{font-size:clamp(36px,3.8vw,54px);max-width:900px}
 .weather-scene .observations,.weather-scene .observations.observation-old{display:block;width:min(480px,50%);margin-top:18px}
 .weather-scene .observations>.section-title{margin-bottom:0}
 .weather-scene .observation-reading{grid-template-columns:auto minmax(0,1fr);gap:6px 25px;margin-top:8px}
 .weather-scene .observed-temperature{font-size:82px}
 .weather-scene .observation-reading>div:not(.observation-details){grid-column:1/-1;grid-row:2}
 .weather-scene .observation-reading>.observation-details{grid-column:2;grid-row:1;margin:0}
 .weather-scene .observation-reading:has(.observation-metric:nth-child(3))>.observation-details{grid-column:1/-1;grid-row:3;margin-top:6px}
 .weather-scene .observation-nearby{border-left:0;border-top:1px solid rgba(224,242,255,.23);margin-top:12px;padding:12px 0 0}
 .weather-scene .observation-nearby h4{font-size:10px;letter-spacing:.04em;margin-bottom:5px}
 .weather-scene .observation-nearby .observation-station{font-size:10px}
 .weather-scene .observation-nearby .observation-time{font-size:9px}
 .weather-scene .observation-nearby .observation-details{margin-top:8px;gap:10px 20px}
 .weather-scene .observation-notes{margin-top:10px}
 .forecast-overview{flex:none;margin:0;padding:14px 20px 10px;background:rgba(16,43,62,.46);backdrop-filter:blur(7px);border-radius:21px}
 html[data-ambient="night"] .forecast-overview{background:rgba(11,28,49,.48)}
 html[data-theme="light"] .forecast-overview{background:rgba(235,245,251,.65)}
 .forecast-overview>.section-title h3{font-size:20px}
 .forecast-overview .forecast-chart-card{margin-top:8px;padding-top:4px}
 .forecast-overview .forecast-chart{margin-top:6px}
 .forecast-overview .chart-hint{width:auto;margin-left:auto}
 .forecast-overview .chart-legend{gap:8px 18px}
}
@media(min-width:901px) and (max-height:760px){
 .weather-first-view{gap:12px}
 .weather-scene .place-head h2{font-size:36px}
 .weather-scene .observations,.weather-scene .observations.observation-old{margin-top:10px}
 .weather-scene .observed-temperature{font-size:66px}
 .weather-scene .observation-nearby{margin-top:8px;padding-top:8px}
 .weather-scene .observation-notes{margin-top:6px}
 .forecast-overview{padding-top:11px;padding-bottom:6px}
}

/* Shared edges stay aligned at every viewport width, including browser zoom. */
.topbar,.hero,.weather-shell,footer{max-width:1320px;padding-inline:var(--page-gutter)}
.brand{align-items:baseline;line-height:1;white-space:nowrap;font-variant-numeric:lining-nums}
.brand-mark{font-family:inherit;font-size:inherit;line-height:inherit}
@media(max-width:800px){:root{--page-gutter:20px}}

/* Browser zoom reduces the available height: place the readings side by side. */
@media(min-width:901px) and (max-height:680px){
 .weather-scene .observations,.weather-scene .observations.observation-old{display:grid;width:min(100%,960px);grid-template-columns:minmax(0,1fr) minmax(0,.85fr);column-gap:28px;row-gap:6px}
 .weather-scene .observations>.section-title{grid-column:1;grid-row:1}
 .weather-scene .observation-reading{grid-column:1;grid-row:2;margin-top:0}
 .weather-scene .observation-nearby{grid-column:2;grid-row:2;align-self:start;margin:0;padding:0 0 0 22px;border-top:0;border-left:1px solid rgba(224,242,255,.23)}
 .weather-scene .observation-notes{grid-column:2;grid-row:1;margin:0;align-self:center;padding-left:22px}
 .weather-scene .observations:not(:has(.observation-nearby:not([hidden]))){grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}
 .weather-scene .observations:not(:has(.observation-nearby:not([hidden]))) .observation-notes{align-self:start;grid-row:2}
 .forecast-overview .chart-hint{display:none}
}

footer a{color:inherit;text-decoration:none}footer a:hover{text-decoration:underline;text-underline-offset:3px}
