/* System fonts, local icons, no remote assets. */
/* Institutional pages retain the shared typography, layout and colour tokens. */
.institutional-page{max-width:760px;margin-inline:auto}.institutional-page section{margin-top:28px}.institutional-page h2{margin-bottom:14px}.institutional-page p{margin:12px 0;line-height:1.75;overflow-wrap:break-word}.institutional-page a,.source-note a,.footer-inner>.fine a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.footer-inner nav{flex-wrap:wrap;row-gap:12px}.footer-inner nav a:hover{text-decoration:underline}
:root{color-scheme:light;--bg:#f5f7fb;--surface:#fff;--text:#122744;--muted:#52657e;--line:#dee5ef;--blue:#145ccc;--soft:#edf3ff;--navy:#102d58;--hero:#102b54;--shadow:0 12px 30px #18376108}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0b1627;--surface:#11243b;--text:#ebf2fc;--muted:#acbed5;--line:#2b4059;--blue:#93bcff;--soft:#192e4b;--navy:#dce9ff;--hero:#102b54;--shadow:none}}
:root[data-theme=dark]{color-scheme:dark;--bg:#0b1627;--surface:#11243b;--text:#ebf2fc;--muted:#acbed5;--line:#2b4059;--blue:#93bcff;--soft:#192e4b;--navy:#dce9ff;--hero:#102b54;--shadow:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:1rem;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}img{max-width:100%;vertical-align:middle}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2}h1{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.04em}h2{font-size:clamp(1.35rem,2.4vw,1.8rem);letter-spacing:-.025em}h3{font-size:1.25rem}:focus-visible{outline:3px solid #4598ff;outline-offset:4px}input:focus-visible{outline-offset:-4px}::selection{background:#b9d3ff;color:#112744}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip-link{position:fixed;top:-100px;left:16px;background:var(--surface);padding:12px;z-index:100}.skip-link:focus{top:8px}
.container,.header-inner,.footer-inner{width:min(1120px,calc(100% - 48px));margin:auto}.container{padding-bottom:64px;min-height:65vh}.site-header{background:var(--surface);border-bottom:1px solid var(--line)}.header-inner{min-height:88px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;font-size:1.35rem;font-weight:750;letter-spacing:-.04em;white-space:nowrap}.brand img{margin-right:10px;border-radius:11px}.brand span{color:var(--blue)}.header-inner nav{display:flex;align-items:center;gap:32px;margin-left:auto;font-size:.9rem;font-weight:600}.header-inner nav a:hover{color:var(--blue)}.vigilance-link{display:flex;align-items:center;gap:8px}.vigilance-link:before{content:"";width:8px;height:8px;background:#de9814;border-radius:50%}.theme-toggle{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--text);font-size:1.4rem}.eyebrow{font-size:.78rem;font-weight:750;letter-spacing:.14em;color:var(--blue);line-height:1.5}.fine{font-size:.875rem;color:var(--muted);line-height:1.6}.text-link{color:var(--blue);font-size:.9rem;font-weight:650}.text-link:hover{text-decoration:underline}.button{border:0;border-radius:10px;background:#1d65d9;color:white;padding:13px 22px;font-weight:650;font-size:.94rem;display:inline-block}.button:hover{background:#1555b9}
.home-hero{text-align:center;padding:64px 0 40px;max-width:820px;margin:auto}.home-hero h1{font-size:clamp(2.6rem,6vw,4.5rem);letter-spacing:-.055em;line-height:1.07;margin:14px 0 22px}.home-hero h1 span{color:var(--blue)}.hero-intro{font-size:1.08rem;color:var(--muted);line-height:1.65}.search-form{position:relative;max-width:700px;margin:28px auto 0}.search-control{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--surface);padding:6px;border-radius:16px;box-shadow:0 3px 12px #1837610a;transition:border-color .16s ease,box-shadow .16s ease}
/* The shared container carries input focus; the input has no inner frame. */
.search-control:focus-within{border-color:var(--muted);box-shadow:0 0 0 2px color-mix(in srgb,var(--muted) 18%,transparent),0 4px 14px #1837610d}
.search-symbol{display:flex;align-items:center;justify-content:center;flex:0 0 36px;align-self:stretch;font-size:2rem;line-height:1;color:var(--muted);padding:0}
.search-control input{flex:1;min-width:0;width:100%;border:0;border-radius:8px;background:transparent;color:var(--text);height:46px;padding:0 4px;font-size:1rem;box-shadow:none}
.search-control input:focus,.search-control input:focus-visible{outline:none;box-shadow:none}
.search-control input::placeholder{color:var(--muted);opacity:1}
.search-control input:-webkit-autofill,.search-control input:-webkit-autofill:hover,.search-control input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--surface) inset;-webkit-text-fill-color:var(--text);caret-color:var(--text);border:0}
.search-control .button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:46px;padding:0 22px;border-radius:11px;background:#1d65d9;line-height:1.4;transition:background-color .16s ease,box-shadow .16s ease}
.search-control .button:hover{background:#185ac5;box-shadow:0 2px 6px #145ccc24}
.search-control .button:active{background:#124da9;box-shadow:inset 0 1px 3px #102b5433}
.search-control .button:focus-visible{outline:2px solid var(--text);outline-offset:2px}
@media(forced-colors:active){.search-control:focus-within{outline:2px solid Highlight;outline-offset:2px}.search-control .button:focus-visible{outline-color:ButtonText}}
@media(prefers-reduced-motion:reduce){.search-control,.search-control .button{transition:none}}
.suggestions{position:absolute;top:68px;left:0;right:0;z-index:20;list-style:none;text-align:left;background:var(--surface);padding:8px;margin:0;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 28px #102b5420;max-height:340px;overflow:auto}.suggestions[hidden]{display:none}.suggestions a{display:block;padding:12px;border-radius:7px;font-size:.95rem}.suggestions a:hover,.suggestions a:focus{background:var(--soft)}[data-search-status]:not(:empty){padding:6px 0}.geolocation{margin-top:12px}.position-button{padding:8px 14px;background:transparent;border:0;color:var(--blue);font-weight:650}.position-button span{font-size:1.4rem;margin-right:5px}.geolocation .fine{font-size:.8rem}.hero-facts{display:flex;justify-content:center;gap:32px;margin-top:27px;font-size:.875rem;font-weight:550;color:var(--muted)}.hero-facts span:before{content:"";display:inline-block;width:5px;height:5px;vertical-align:middle;background:#6a8abe;border-radius:50%;margin-right:9px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:26px 0 18px}.section-heading .eyebrow{margin-bottom:8px}.section-heading>h2{flex:1}.city-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.city-card{display:flex;align-items:center;justify-content:space-between;gap:6px;border:1px solid var(--line);background:var(--surface);padding:20px 16px;border-radius:14px;transition:transform .18s,border-color .18s}.city-card:hover{border-color:var(--blue);transform:translateY(-3px)}.city-dept{font-size:.72rem;letter-spacing:.08em;color:var(--muted)}.city-card h3{font-size:1.12rem;margin:7px 0;overflow-wrap:anywhere}.city-caption{font-size:.8rem;color:var(--muted)}.city-card img{width:40px;flex-shrink:0}.home-bottom{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}.tomorrow-note{padding:32px 24px}.tomorrow-note h2,.vigilance-card h2{margin:12px 0 16px;font-size:1.8rem}.tomorrow-note>p:not(.eyebrow),.vigilance-card p{color:var(--muted);max-width:400px;margin-bottom:20px}.vigilance-card{display:block;padding:32px;border-radius:18px;background:var(--hero);color:#fff}.vigilance-card .eyebrow{color:#fdca68}.vigilance-card p{color:#c4d3e8}.vigilance-card .text-link{color:#fff}
.page-heading{padding:46px 0 4px}.page-heading h1{margin:12px 0}.page-heading>p:last-child{color:var(--muted)}.results-heading{margin:36px 0 18px}.search-results{display:grid;gap:12px}.result-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;justify-content:space-between;align-items:center;gap:14px}.result-card strong{font-size:1.2rem}.result-card .fine{display:block;margin-top:4px}.breadcrumbs{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:.875rem;margin-top:28px}.breadcrumbs a:hover{text-decoration:underline}.weather-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:24px 0}.weather-heading h1{margin:9px 0 8px;font-size:clamp(1.85rem,3.2vw,2.65rem)}.weather-heading p:last-child{color:var(--muted);text-transform:capitalize}.weather-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin:26px 0 26px;scrollbar-width:thin}.weather-tabs a{flex-shrink:0;white-space:nowrap;padding:13px 20px;color:var(--muted);font-weight:600;font-size:.94rem;border-bottom:3px solid transparent}.weather-tabs a.active{color:var(--blue);border-color:var(--blue)}.weather-tabs a:hover{background:var(--soft)}.weather-overview{display:grid;grid-template-columns:1fr 1fr;gap:22px}.current-card{background:var(--hero);color:white;border-radius:18px;padding:25px 30px 0;overflow:hidden}.card-kicker{font-size:.78rem;letter-spacing:.1em;font-weight:650;color:#bfcee4}.current-main{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.current-temperature{font-size:5.5rem;font-weight:650;letter-spacing:-.07em;line-height:1.1}.current-temperature span{font-size:2rem;vertical-align:top;line-height:2}.current-condition{font-size:1.12rem;font-weight:650;margin-top:6px}.current-feels{color:#c7d5e8;font-size:.94rem;margin-top:5px}.current-time{color:#c7d5e8;font-size:.8rem;margin:20px 0 18px}.current-range{margin:0 -30px;padding:14px 30px;display:flex;gap:22px;border-top:1px solid #ffffff28;font-size:.88rem;color:#c7d5e8}.current-range strong{color:white;margin-left:4px}.current-range>span:last-child{margin-left:auto}.details-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:26px 28px}.details-grid{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:28px 22px}.details-grid div{min-width:0}.details-grid dt{font-size:.875rem;color:var(--muted);margin-bottom:10px}.details-grid dd{margin:0;font-size:1.85rem;font-weight:700;letter-spacing:-.035em}.details-grid dd span{font-size:.88rem;font-weight:500;letter-spacing:0;color:var(--muted)}.tomorrow-summary{display:flex;align-items:center;justify-content:space-between;gap:22px;background:var(--soft);border:1px solid var(--line);padding:22px 24px;margin:22px 0 32px;border-radius:14px}.summary-label h2{font-size:1.15rem;margin-top:5px}.summary-weather{display:flex;align-items:center;gap:14px}.summary-weather p{font-size:.94rem}.summary-weather span{display:block;color:var(--muted);font-size:.875rem;margin-top:4px}.hourly-section{margin:30px 0 36px}.hourly-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface);scrollbar-width:thin}.hourly-grid{display:flex;width:max-content}.hour-card{display:flex;flex-direction:column;align-items:center;width:104px;padding:18px 8px;gap:6px;border-right:1px solid var(--line)}.hour-card time{font-size:.9rem;font-weight:650}.hour-date{font-size:.73rem}.hour-card img{margin:10px 0}.hour-card>strong{font-size:1.4rem}.rain-value{color:var(--blue);font-size:.85rem;font-weight:600}.hourly-section>p{margin-top:10px}.daily-list{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}.daily-row{display:grid;grid-template-columns:1.2fr 2fr 1.2fr 1fr 1fr;gap:20px;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line);font-size:.94rem}.daily-row:last-child{border-bottom:0}.tomorrow-row{background:var(--soft)}.day-name{display:flex;flex-direction:column;gap:3px}.daily-condition{display:flex;gap:16px;align-items:center}.daily-temperatures{display:flex;justify-content:center;gap:22px;font-size:1.18rem;font-variant-numeric:tabular-nums}.low{color:var(--muted)}.daily-rain{display:flex;flex-direction:column;align-items:center;color:var(--blue)}.daily-wind{text-align:right}.long-range-note{margin-top:15px}.source-note{font-size:.8rem;color:var(--muted);border-top:1px solid var(--line);margin-top:30px;padding-top:18px}.source-note p{margin-bottom:6px}.notice{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:20px;margin:22px 0}.notice a{text-decoration:underline;color:var(--blue)}.stale{border-left:4px solid #de9814}.unavailable-panel{text-align:center;padding:70px 24px;background:var(--surface);border:1px solid var(--line);border-radius:18px;margin:30px 0}.unavailable-panel h1,.unavailable-panel h2{margin:18px auto;max-width:660px}.unavailable-panel p{color:var(--muted);margin:16px 0}.vigilance-legend{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0}.vigilance-legend span{padding:8px 12px;border-radius:8px;font-size:.875rem}.vigilance-period{margin-top:32px}.vigilance-period>p{margin:12px 0}.vigilance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.department-card{padding:16px;border-radius:10px;border-left:4px solid currentColor}.department-card h3{font-size:1rem;display:flex;justify-content:space-between;gap:12px}.department-card p{font-size:.875rem;margin-top:8px}.level-1{background:#e6f4ec;color:#155533}.level-2{background:#fff2b5;color:#664b00}.level-3{background:#ffe4c5;color:#7e3300}.level-4{background:#ffdbdf;color:#851021}.site-footer{border-top:1px solid var(--line);background:var(--surface);padding:36px 0}.footer-inner>p{color:var(--muted);font-size:.9rem;margin:10px 0}.footer-inner nav{display:flex;gap:24px;font-size:.875rem;margin:18px 0}.footer-inner>.fine{max-width:840px;font-size:.8rem}
@media(min-width:1600px){.container,.header-inner,.footer-inner{width:min(1280px,calc(100% - 80px))}.home-hero{padding-top:76px}.city-card{padding:24px}.city-card img{width:46px}}
@media(max-width:1024px){.city-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.weather-overview{gap:16px}.details-card{padding:24px 20px}.tomorrow-summary{flex-wrap:wrap}.tomorrow-summary>.text-link{margin-left:auto}.vigilance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.container,.header-inner,.footer-inner{width:calc(100% - 32px)}.header-inner{min-height:72px;gap:12px}.header-inner nav{gap:10px}.header-inner nav a:first-child{display:none}.brand{font-size:1.17rem}.brand img{width:30px;height:30px;margin-right:7px}.theme-toggle{width:36px;height:36px;flex-shrink:0}.header-inner .vigilance-link{font-size:.8rem}.home-hero{padding:38px 0 22px}.home-hero h1{margin:12px 0 18px}.hero-intro{font-size:1rem}.search-form{margin-top:24px}.search-control{flex-wrap:wrap;padding:6px;gap:4px}.search-symbol{flex-basis:30px;font-size:1.75rem}.search-control input{width:calc(100% - 38px);flex:1;font-size:clamp(.8rem,3.45vw,1rem)}.search-control .button{width:100%;margin-top:2px;padding:0 18px;min-height:46px}.suggestions{top:116px}.hero-facts{gap:12px;flex-wrap:wrap;margin-top:22px;font-size:.8rem}.hero-facts span:before{margin-right:5px}.section-heading{align-items:flex-start;flex-direction:column;gap:12px;margin:25px 0 16px}.section-heading .eyebrow{font-size:.72rem}.city-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.city-card{padding:15px 12px;align-items:flex-start}.city-card img{width:30px;margin-top:18px}.city-card h3{font-size:1.02rem}.city-caption{font-size:.76rem}.city-dept{font-size:.7rem}.home-bottom{grid-template-columns:1fr;gap:12px;margin-top:22px}.tomorrow-note{padding:24px 8px}.vigilance-card{padding:26px}.weather-heading{align-items:flex-start;flex-direction:column;margin:20px 0;gap:12px}.weather-heading h1{line-height:1.18}.weather-tabs{margin:20px 0}.weather-tabs a{padding:12px 15px;font-size:.88rem}.weather-overview{grid-template-columns:1fr}.current-card{padding:22px 24px 0}.current-range{margin:0 -24px;padding:14px 24px;gap:14px}.current-temperature{font-size:5rem}.current-icon{width:90px;height:90px}.details-card{padding:24px}.details-grid{gap:22px 16px}.details-grid dd{font-size:1.65rem}.tomorrow-summary{padding:20px;gap:14px;align-items:flex-start}.summary-weather{align-items:flex-start;gap:10px}.summary-weather img{width:40px;flex-shrink:0}.summary-weather p{font-size:.9rem}.summary-weather span{font-size:.8rem}.tomorrow-summary>.text-link{margin-left:0}.hourly-section .section-heading{gap:8px}.hour-card{width:92px}.daily-row{grid-template-columns:minmax(90px,1fr) 42px 65px 60px;gap:8px;padding:15px 12px}.daily-condition .weather-condition-label{position:absolute;top:0;left:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;pointer-events:none}.daily-condition{justify-content:center;gap:0}.daily-condition img{width:34px;height:34px}.daily-temperatures{gap:10px;font-size:1rem}.daily-rain{font-size:.85rem}.daily-rain .fine{font-size:.75rem}.daily-wind{display:none}.day-name{font-size:.85rem}.day-name .fine{font-size:.75rem}.result-card{align-items:flex-start;flex-direction:column}.vigilance-grid{grid-template-columns:1fr}.unavailable-panel{padding:40px 18px}.page-heading{padding-top:30px}.site-footer{padding:28px 0}.footer-inner nav{flex-direction:column;gap:10px}.breadcrumbs{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Phase 2: official observations and native short-term precipitation. */
.vigilance-banner{display:flex;gap:1rem;align-items:flex-start;border-left:5px solid currentColor}.vigilance-banner>span{font-size:1.6rem}.vigilance-banner p{margin:.4rem 0}.nowcast-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1.5rem;margin:1.5rem 0}.nowcast-card h2{font-size:clamp(1.15rem,3vw,1.5rem);margin:.5rem 0}.nowcast-card p,.observation-details p{font-size:.88rem;line-height:1.6}.nowcast-card details,.source-note details,.observation-details{margin-top:.8rem}summary{cursor:pointer;font-weight:600;line-height:1.5}.observation-details summary{font-size:.85rem}.source-note p{overflow-wrap:anywhere}.current-time{overflow-wrap:anywhere}
/* Phase 3: lightweight secondary pages; shared light/dark tokens. */
.environment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:1rem;margin:1.5rem 0}.environment-card{padding:1.3rem;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.environment-card h2{font-size:1.1rem}.environment-card p{line-height:1.6}.environment-value{font-size:1.8rem;font-weight:700}.secondary-links{display:flex;flex-wrap:wrap;gap:1rem;margin:1.5rem 0}.table-scroll{overflow-x:auto;max-width:100%;margin:1.5rem 0}.table-scroll table{width:100%;border-collapse:collapse;white-space:nowrap}.table-scroll th,.table-scroll td{padding:.75rem;text-align:left;border-bottom:1px solid var(--line)}.table-scroll caption{text-align:left;font-weight:600;padding:.7rem 0}.history-form{display:flex;flex-wrap:wrap;gap:1rem;margin:1.5rem 0}.history-form label{display:flex;flex-direction:column;gap:.4rem}.history-form input,.history-form select{padding:.75rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:inherit;max-width:100%}[hidden]{display:none!important}details{margin:1rem 0}summary{cursor:pointer;padding:.5rem 0}
/* Keep descriptions within their accessible definition. */
.details-grid dd>.fine{display:block;font-size:.8rem;font-weight:400;letter-spacing:0;margin-top:.35rem}

.sr-only{position:absolute;top:0;left:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;pointer-events:none}
.city-card img{height:auto;aspect-ratio:1}
.vigilance-symbol{display:inline-block;width:24px;height:24px;flex:none;background-color:currentColor;mask:url("/assets/icons/weather-premium/alert.svg") center / contain no-repeat;-webkit-mask:url("/assets/icons/weather-premium/alert.svg") center / contain no-repeat}

.hour-card,.daily-condition,.current-main>div{position:relative}

.summary-weather img{height:auto;aspect-ratio:1}

.vigilance-banner a{color:inherit}
.vigilance-banner a:focus-visible{outline-color:currentColor}

/* Cached day panels use the existing premium cards and colours. */
.day-selector-section{margin:26px 0 30px;min-width:0}
.daily-list.day-selector{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:4px 3px 10px;border:0;border-radius:0;background:transparent;scrollbar-width:thin;scroll-snap-type:x proximity}
.day-selector .daily-row.day-choice{display:flex;flex-direction:column;align-items:stretch;gap:12px;flex:0 0 150px;width:150px;margin:0;padding:16px;border:2px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);font:inherit;font-size:.9rem;text-align:left;cursor:pointer;scroll-snap-align:start}
.day-choice[aria-selected="true"]{border-color:var(--blue)!important;background:var(--soft)!important;box-shadow:0 3px 12px rgb(20 92 204 / .12)}
.day-choice:hover{border-color:var(--blue)!important}
.day-choice:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.day-selector .day-name{display:flex;flex-direction:column;gap:4px}
.day-selector .daily-condition{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.day-selector .weather-condition-label{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;clip-path:none;white-space:normal;line-height:1.35;min-height:2.7em;color:var(--text)}
.day-selector .daily-temperatures{display:flex;gap:18px}
.day-selector .daily-rain{display:flex;flex-direction:column;gap:3px;font-size:.85rem}
.day-selector .daily-rain .fine{display:inline;font-size:.76rem}
.daily-footnote{margin-top:8px}
.day-panel,.day-panels,.weather-overview>*{min-width:0}
.day-panel:focus-visible{outline:2px solid var(--blue);outline-offset:5px}
.selected-day-title{font-size:1.35rem;margin:0 0 16px;text-transform:capitalize}
.forecast-condition{font-size:1.2rem;font-weight:650;margin:0 0 10px}
.forecast-temperature{display:flex;gap:22px;align-items:center;font-size:2.8rem;line-height:1.2}
.forecast-temperature>span{opacity:.75}
.hour-card{flex:0 0 108px;width:108px;min-width:108px}
.hour-card .hour-condition-label{display:flex;align-items:center;justify-content:center;min-height:2.8em;font-size:.85rem;line-height:1.4;text-align:center;color:var(--text);width:100%;overflow-wrap:break-word}
.hour-card img{margin:6px 0}
.hour-card .rain-value .fine{font-size:.72rem}
.hourly-section .section-heading{align-items:flex-start;flex-wrap:wrap;gap:8px}
.hourly-section h2{max-width:100%;font-size:1.3rem;line-height:1.4}
@media(max-width:720px){
.day-selector .daily-row.day-choice{flex-basis:136px;width:136px;padding:13px;gap:10px}
.daily-list.day-selector{gap:10px}
.day-selector-section{margin:22px 0 24px}
.forecast-temperature{font-size:2.4rem;gap:18px}
.forecast-icon{width:88px;height:88px}
.hour-card{width:108px;min-width:108px}
.hourly-section h2{font-size:1.15rem}
}

/* Solar periods summarize cached hours without replacing the hourly cards. */
.period-summary{margin:20px 0;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);min-width:0}
.period-summary-title{font-size:1rem;margin:0 0 16px;font-weight:650}
.period-grid{display:flex;gap:12px}
.period-block{flex:1;min-width:0;text-align:center;padding:8px 4px}
.period-block h4{font-size:.95rem;margin:0;font-weight:700}
.period-hours{font-size:.78rem;color:var(--muted);margin:3px 0 8px}
.period-block img{display:block;margin:0 auto 8px}
.period-condition{font-size:.95rem;line-height:1.4;overflow-wrap:break-word}
.forecast-card .period-summary{margin:14px -10px 20px}
.forecast-card .period-summary-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.period-notice{font-size:.78rem!important;line-height:1.4}
@media(max-width:420px){.period-summary{padding:14px 10px}.period-grid{gap:6px}.period-block{padding:6px 0}.period-condition{font-size:.875rem}.period-block h4{font-size:.875rem}.period-hours{font-size:.7rem}.forecast-card .period-summary{margin-left:-12px;margin-right:-12px}}
