/* v1.21.30 real-forecast copy / long-data visual reality closure. */
/* v1.21.22 visual-system cleanup: route composition only; shared primitives remain upstream. */
/* v1.21.12 final responsive closure: in-page forecast navigation keeps 44px touch geometry. */
/* v1.21.7 — Forecast Pages Visual Rebuild.
 * Single route-family owner for Tomorrow / 7-day / Weekend / Rain-time.
 * Provider/cache/router/SEO logic is intentionally outside this file.
 */
.forecast-landing-page{min-width:0;padding-bottom:var(--space-10)}
.forecast-landing-page>.container{min-width:0}
.forecast-landing-page .weather-context-bar{margin-top:12px;border-radius:12px;box-shadow:none}
.forecast-landing-page :is(#so-voi-hom-nay,#theo-gio,#chi-tiet-ngay-mai,#nhieu-ngay,#so-sanh-cuoi-tuan,#forecast-faq-title,#forecast-related-title,#rain-key-title,#rain-timeline-title,#rain-time-explain-title,#rain-related-title,#radar-mua){scroll-margin-top:var(--dbtt-anchor-offset)}

/* Hero: answer first, supporting metrics second. */
.forecast-landing-page .forecast-landing-hero{gap:12px;margin-bottom:18px;padding:5px 0 26px;border-bottom:1px solid var(--line);background:transparent;box-shadow:none}
.forecast-landing-page .forecast-landing-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:920px;margin:0;color:var(--muted);font-size:12px}
.forecast-landing-page .forecast-landing-kicker .eyebrow{margin:0;color:var(--primary-dark)}
.forecast-landing-page .forecast-landing-kicker time,.forecast-landing-page .forecast-landing-kicker>span:last-child{font-variant-numeric:tabular-nums}
.forecast-landing-page .forecast-landing-hero h1{max-width:920px;font-size:clamp(36px,4.2vw,48px);line-height:1.07;letter-spacing:-.025em}
.forecast-landing-page .forecast-landing-lead,.forecast-landing-page .forecast-landing-hero>p{max-width:790px;margin:0;color:var(--text-2);font-size:15px;line-height:1.62}
.forecast-landing-page .forecast-landing-meta{display:flex;flex-wrap:wrap;gap:5px 16px;margin-top:2px;color:var(--muted);font-size:11px}
.forecast-landing-page .forecast-landing-meta a{color:var(--link);text-decoration:underline;text-underline-offset:2px}

.forecast-landing-primary{display:grid;grid-template-columns:minmax(270px,.76fr) minmax(0,1.24fr);gap:0;align-items:stretch;overflow:hidden;margin-top:8px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.forecast-landing-condition{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;min-width:0;padding:20px;border:0;border-right:1px solid var(--line);background:var(--surface-soft)}
.forecast-landing-condition .weather-icon{width:56px;height:56px}
.forecast-landing-condition>div{display:grid;gap:3px;min-width:0}
.forecast-landing-condition strong{color:var(--heading);font-size:20px;line-height:1.2}
.forecast-landing-condition span{color:var(--text-2);font-size:12px;line-height:1.4}
.forecast-landing-stats,.forecast-landing-week-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;overflow:hidden;margin-top:8px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.forecast-landing-primary .forecast-landing-stats{margin:0;border:0;border-radius:0}
.forecast-landing-stats>span,.forecast-landing-week-highlights>span{display:grid;align-content:start;gap:4px;min-width:0;min-height:102px;padding:16px 20px;border-right:1px solid var(--line)}
.forecast-landing-stats>span:last-child,.forecast-landing-week-highlights>span:last-child{border-right:0}
.forecast-landing-stats small,.forecast-landing-week-highlights small{color:var(--muted);font-size:11px;font-weight:600;line-height:1.35}
.forecast-landing-stats strong,.forecast-landing-week-highlights strong{max-width:100%;color:var(--heading);font-size:clamp(20px,2.3vw,24px);line-height:1.12;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.forecast-landing-stats em,.forecast-landing-week-highlights em{margin-top:auto;color:var(--text-2);font-size:11px;font-style:normal;line-height:1.4}
.forecast-weekend-highlights strong{font-size:20px}

/* In-page task navigation mirrors the metric family and remains purely progressive. */
.forecast-jump-nav{display:flex;align-items:center;gap:16px;margin:8px 0 0;padding:0 2px 11px;border-bottom:1px solid var(--line)}
.forecast-jump-label{flex:0 0 auto;color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.forecast-jump-links{display:flex;min-width:0;gap:4px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}
.forecast-jump-links::-webkit-scrollbar{display:none}
.forecast-jump-links a{display:inline-flex;min-height:var(--touch);align-items:center;padding:0 10px;border-radius:var(--radius-md);color:var(--text-2);font-size:12px;font-weight:600;white-space:nowrap}
.forecast-jump-links a:hover,.forecast-jump-links a:focus-visible{background:var(--primary-soft);color:var(--primary-dark)}

/* Shared section rhythm. */
.forecast-landing-compare,.forecast-tomorrow-hourly,.tomorrow-details,.forecast-weekend-compare,.forecast-faq-section,.forecast-related-section,.rain-time-key-moments,.rain-time-timeline,.rain-time-page .tool-faq-section{margin-top:var(--space-8)}
.forecast-landing-page .section-heading{margin-bottom:var(--space-4)}
.forecast-landing-page .section-heading .eyebrow{margin-bottom:4px;color:var(--primary-dark)}
.forecast-landing-page .section-heading h2{font-size:clamp(23px,2.35vw,30px)}
.forecast-landing-page .section-subtle{max-width:420px;color:var(--muted);font-size:12px;line-height:1.45}

/* Tomorrow comparison is one board, not three decorative cards. */
.forecast-compare-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.forecast-compare-grid>div{display:grid;align-content:start;gap:5px;min-width:0;min-height:108px;padding:16px 20px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent}
.forecast-compare-grid>div:last-child{border-right:0}
.forecast-compare-grid span{color:var(--muted);font-size:11px;font-weight:600}
.forecast-compare-grid small{color:var(--text-2);font-size:12px;line-height:1.4}
.forecast-compare-grid strong{margin-top:auto;color:var(--heading);font-size:15px;line-height:1.35;font-variant-numeric:tabular-nums}

/* Tomorrow hourly: horizontal data workspace with deliberate edge treatment. */
.forecast-tomorrow-hourly .hourly-scroll{grid-auto-columns:116px;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:none;overscroll-behavior-inline:contain;scrollbar-width:thin}
.forecast-tomorrow-hourly .hour-card{min-width:116px;min-height:148px;padding:12px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
.forecast-tomorrow-hourly .hour-card:last-child{border-right:0}
.forecast-tomorrow-hourly .hour-card.is-rainy{background:var(--surface-soft);box-shadow:inset 0 3px 0 var(--rain)}
.forecast-tomorrow-hourly .hour-card time{font-size:11px}
.forecast-tomorrow-hourly .hour-condition{font-size:11px}

/* Day facts are one compact board. */
.forecast-day-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.forecast-day-facts>span{display:grid;align-content:start;gap:5px;min-width:0;min-height:96px;padding:16px 17px;border:0;border-right:1px solid var(--line)}
.forecast-day-facts>span:last-child{border-right:0}
.forecast-day-facts small{color:var(--muted);font-size:11px;font-weight:600}
.forecast-day-facts strong{max-width:100%;color:var(--heading);font-size:clamp(18px,2vw,20px);line-height:1.18;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.forecast-day-facts em{color:var(--text-2);font-size:11px;font-style:normal}

/* Seven-day route: a scan-first table, with selected detail remaining inside the same surface. */
.forecast-landing-7-day .daily-section{margin-top:var(--space-8)}
.forecast-landing-7-day .daily-section-heading{margin-bottom:12px}
.forecast-landing-7-day .daily-list-head{grid-template-columns:minmax(150px,1.18fr) minmax(150px,1.15fr) minmax(105px,.72fr) minmax(120px,.72fr) 24px;padding:9px 16px;border-color:var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface-soft)}
.forecast-landing-7-day .detailed-daily-list{overflow:hidden;border:1px solid var(--border);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--surface);box-shadow:none}
.forecast-landing-7-day .daily-row,.forecast-landing-7-day .daily-day-trigger{grid-template-columns:minmax(150px,1.18fr) minmax(150px,1.15fr) minmax(105px,.72fr) minmax(120px,.72fr) 24px;min-height:68px;padding:11px 16px;border-bottom:1px solid var(--line);background:var(--surface)}
.forecast-landing-7-day .daily-row:last-of-type{border-bottom:0}
.forecast-landing-7-day .daily-row:hover{background:var(--surface-hover)}
.forecast-landing-7-day .daily-day-trigger:focus-visible{position:relative;z-index:2;outline:2px solid var(--primary);outline-offset:-2px}
.forecast-landing-7-day .daily-day-trigger.is-selected{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}
.forecast-landing-7-day .daily-detail-panel{padding:20px;border-top:1px solid var(--border);background:var(--surface-soft)}
.forecast-landing-7-day .daily-detail-overview{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:18px;align-items:stretch}
.forecast-landing-7-day .daily-detail-temp-summary{display:grid;align-content:center;gap:5px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.forecast-landing-7-day .daily-detail-temp-summary strong{font-size:26px}
.forecast-landing-7-day .daily-detail-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:0}
.forecast-landing-7-day .daily-detail-metrics>div{border-color:var(--border);border-radius:var(--radius-md);box-shadow:none}
.forecast-landing-7-day .daily-detail-sunrail{margin-top:12px;border-color:var(--line)}
.forecast-landing-7-day .daily-detail-chart-block{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}

/* Weekend: compare two days with equal geometry and quiet inner metrics. */
.forecast-weekend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
.forecast-weekend-day{display:grid;align-content:start;min-width:0;height:100%;padding:19px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:none}
.forecast-weekend-day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.forecast-weekend-day-head>div{display:grid;gap:3px;min-width:0}
.forecast-weekend-day-head strong{color:var(--heading);font-size:19px}
.forecast-weekend-day-head time{color:var(--muted);font-size:11px}
.forecast-weekend-day-head .weather-icon{width:48px;height:48px;flex:0 0 48px}
.forecast-weekend-day>p{margin:13px 0;color:var(--text-2);font-size:13px;line-height:1.5}
.forecast-weekend-day .forecast-day-facts{grid-template-columns:repeat(2,minmax(0,1fr));border-radius:12px}
.forecast-weekend-day .forecast-day-facts>span{min-height:78px;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.forecast-weekend-day .forecast-day-facts>span:nth-child(2n){border-right:0}
.forecast-weekend-day .forecast-day-facts>span:nth-last-child(-n+2){border-bottom:0}
.forecast-weekend-day .forecast-day-facts strong{font-size:17px}
.forecast-weekend-day .forecast-landing-meta{margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.forecast-weekend-day .forecast-landing-meta strong{color:var(--primary-dark)}

/* Rain-time: immediate answer in hero, evidence below, timeline as the primary workspace. */
.rain-time-page .rain-time-answer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;overflow:hidden;margin-top:8px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.rain-time-page .rain-time-answer>.data-summary-card{display:grid;align-content:start;gap:4px;min-width:0;min-height:106px;padding:16px 17px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent}
.rain-time-page .rain-time-answer>.data-summary-card:last-child{border-right:0}
.rain-time-page .rain-time-answer small{color:var(--muted);font-size:11px;font-weight:600}
.rain-time-page .rain-time-answer strong{max-width:100%;color:var(--heading);font-size:clamp(18px,2vw,20px);line-height:1.18;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.rain-time-page .rain-time-answer em{margin-top:auto;color:var(--text-2);font-size:11px;font-style:normal;line-height:1.4}
.rain-time-page .rain-time-answer>.is-missing{background:var(--surface-soft)}
.rain-time-moment-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.rain-time-moment-list>div{position:relative;min-width:0;min-height:112px;padding:16px 20px;border-right:1px solid var(--line)}
.rain-time-moment-list>div:last-child{border-right:0}
.rain-time-moment-list p{display:grid;gap:4px;margin:0}
.rain-time-moment-list small{color:var(--muted);font-size:11px;font-weight:600}
.rain-time-moment-list strong{color:var(--heading);font-size:15px;line-height:1.3}
.rain-time-moment-list p>span{color:var(--text-2);font-size:12px;line-height:1.5}
.rain-time-moment-marker{display:none}
.rain-time-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:none;overscroll-behavior-inline:contain;scrollbar-width:thin}
.rain-time-hour-list{grid-auto-columns:114px}
.rain-time-hour{min-width:114px;min-height:150px;padding:12px;border-right:1px solid var(--line);background:transparent}
.rain-time-hour:last-child{border-right:0}
.rain-time-hour.is-current{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}
.rain-time-hour.is-heavy{box-shadow:inset 0 3px 0 var(--rain)}
.rain-time-hour.is-current.is-heavy{box-shadow:inset 3px 0 0 var(--primary),inset 0 3px 0 var(--rain)}
.rain-time-hour time{color:var(--muted);font-size:11px;font-weight:600}
.rain-time-hour-icon{width:30px;height:30px}
.rain-time-hour>strong{color:var(--heading);font-size:20px}
.rain-time-hour>small{color:var(--text-2);font-size:11px}
.rain-time-hour-state{margin-top:auto;color:var(--muted);font-size:11px;line-height:1.35}
.rain-time-hour.is-wet .rain-time-hour-state,.rain-time-hour.is-heavy .rain-time-hour-state{color:var(--primary-dark);font-weight:600}
.rain-time-page .tool-explanation{padding:20px 22px;border:1px solid var(--border);border-left:3px solid var(--primary-line);border-radius:12px;background:var(--surface-soft)}

/* Continuation / SEO surfaces remain subordinate to forecast data. */
.forecast-faq-section{max-width:900px}
.forecast-related-section{padding-top:20px;border-top:1px solid var(--line)}
.forecast-related-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.forecast-related-nav>a{min-height:60px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}
.forecast-related-nav>a:hover{border-color:var(--primary-line);background:var(--surface-hover)}
.forecast-landing-next-step,.rain-time-followups{margin-top:var(--space-7)}
.forecast-landing-next-step{padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
.rain-time-followups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rain-time-followups>.product-next-step{margin:0;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:none}

@media(max-width:1024px){
  .rain-time-page .rain-time-answer{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rain-time-page .rain-time-answer>.data-summary-card:nth-child(2){border-right:0}
  .rain-time-page .rain-time-answer>.data-summary-card:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .forecast-related-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .forecast-landing-primary{grid-template-columns:1fr}
  .forecast-landing-condition{border-right:0;border-bottom:1px solid var(--line)}
}
@media(max-width:820px){
  .forecast-landing-page .forecast-landing-hero h1{font-size:clamp(32px,6.5vw,42px)}
  .forecast-landing-page .forecast-landing-kicker{align-items:flex-start;flex-direction:column;gap:3px}
  .forecast-jump-nav{align-items:flex-start;flex-direction:column;gap:5px}
  .forecast-jump-links{width:100%}
  .forecast-landing-compare,.forecast-tomorrow-hourly,.tomorrow-details,.forecast-weekend-compare,.forecast-faq-section,.forecast-related-section,.forecast-landing-7-day .daily-section,.rain-time-key-moments,.rain-time-timeline,.rain-time-page .tool-faq-section{margin-top:var(--space-7)}
  .forecast-compare-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .forecast-compare-grid>div{min-height:96px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .forecast-compare-grid>div:nth-child(2){border-right:0}
  .forecast-compare-grid>div:last-child{grid-column:1/-1;min-height:88px;border-right:0;border-bottom:0}
  .forecast-landing-stats,.forecast-landing-week-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}
  .forecast-landing-stats>span,.forecast-landing-week-highlights>span{grid-template-columns:minmax(0,1fr) auto;column-gap:14px;min-height:74px;padding:var(--space-3) 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .forecast-landing-stats>span:nth-child(2),.forecast-landing-week-highlights>span:nth-child(2){border-right:0}
  .forecast-landing-stats>span:last-child,.forecast-landing-week-highlights>span:last-child{grid-column:1/-1;border-right:0;border-bottom:0}
  .forecast-landing-stats small,.forecast-landing-week-highlights small{grid-column:1}
  .forecast-landing-stats strong,.forecast-landing-week-highlights strong{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:20px;text-align:right}
  .forecast-landing-stats em,.forecast-landing-week-highlights em{grid-column:1;margin:0}
  .forecast-day-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .forecast-day-facts>span{border-bottom:1px solid var(--line)}
  .forecast-day-facts>span:nth-child(2n){border-right:0}
  .forecast-day-facts>span:nth-last-child(-n+2){border-bottom:0}
  .forecast-weekend-grid{grid-template-columns:1fr}
  .forecast-landing-7-day .daily-list-head{display:none}
  .forecast-landing-7-day .detailed-daily-list{border-radius:var(--radius-lg)}
  .forecast-landing-7-day .daily-detail-overview{grid-template-columns:1fr}
  .forecast-landing-7-day .daily-detail-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .forecast-landing-7-day .daily-row,.forecast-landing-7-day .daily-day-trigger{grid-template-columns:minmax(120px,1fr) minmax(100px,.9fr) minmax(95px,.72fr) 22px;padding:11px 13px}
  .forecast-landing-7-day .daily-rain{display:none}
  .rain-time-moment-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rain-time-moment-list>div{min-height:106px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .rain-time-moment-list>div:nth-child(2){border-right:0}
  .rain-time-moment-list>div:last-child{grid-column:1/-1;min-height:96px;border-right:0;border-bottom:0}
  .rain-time-followups{grid-template-columns:1fr}
  .forecast-related-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .forecast-landing-page .forecast-landing-hero{padding-bottom:22px}
  .forecast-landing-page .forecast-landing-lead,.forecast-landing-page .forecast-landing-hero>p{font-size:14px}
  .forecast-landing-page .section-heading{align-items:flex-start;flex-direction:column}
  .forecast-landing-page .section-subtle{text-align:left}
  .forecast-tomorrow-hourly .hourly-scroll,.rain-time-scroll{margin-right:calc(var(--page-pad)*-1);border-right:0;border-radius:var(--radius-lg) 0 0 var(--radius-lg)}
}
@media(max-width:430px){
  .forecast-compare-grid,.forecast-landing-stats,.forecast-landing-week-highlights,.rain-time-moment-list{grid-template-columns:1fr}
  .forecast-compare-grid>div,.forecast-compare-grid>div:nth-child(2),.forecast-compare-grid>div:last-child,.forecast-landing-stats>span,.forecast-landing-stats>span:nth-child(2),.forecast-landing-stats>span:last-child,.forecast-landing-week-highlights>span,.forecast-landing-week-highlights>span:nth-child(2),.forecast-landing-week-highlights>span:last-child,.rain-time-moment-list>div,.rain-time-moment-list>div:nth-child(2),.rain-time-moment-list>div:last-child{grid-column:auto;min-height:0;border-right:0;border-bottom:1px solid var(--line)}
  .forecast-compare-grid>div:last-child,.forecast-landing-stats>span:last-child,.forecast-landing-week-highlights>span:last-child,.rain-time-moment-list>div:last-child{border-bottom:0}
  .forecast-related-nav{grid-template-columns:1fr}
  .forecast-landing-page .forecast-landing-hero h1{font-size:31px}
  .forecast-landing-condition{padding:var(--space-4)}
  .forecast-landing-condition .weather-icon{width:48px;height:48px}
  .forecast-landing-condition strong{font-size:18px}
  .forecast-jump-links a{min-height:var(--touch);padding-inline:9px}
  .forecast-day-facts{grid-template-columns:1fr}
  .forecast-day-facts>span,.forecast-day-facts>span:nth-child(2n){min-height:62px;border-right:0;border-bottom:1px solid var(--line)}
  .forecast-day-facts>span:last-child{border-bottom:0}
  .forecast-weekend-day{padding:var(--space-4)}
  .forecast-weekend-day .forecast-day-facts{grid-template-columns:1fr}
  .forecast-weekend-day .forecast-day-facts>span,.forecast-weekend-day .forecast-day-facts>span:nth-child(2n){min-height:60px;border-right:0;border-bottom:1px solid var(--line)}
  .forecast-weekend-day .forecast-day-facts>span:last-child{border-bottom:0}
  .forecast-landing-7-day .daily-detail-panel{padding:var(--space-4)}
  .forecast-landing-7-day .daily-detail-metrics{grid-template-columns:1fr}
  .forecast-landing-7-day .daily-row,.forecast-landing-7-day .daily-day-trigger{grid-template-columns:minmax(0,1fr) auto 18px;gap:8px;min-height:72px;padding:10px 11px}
  .forecast-landing-7-day .daily-condition{grid-column:1/2}
  .forecast-landing-7-day .daily-temp{grid-column:2/3;grid-row:1/3;align-self:center}
  .forecast-landing-7-day .daily-row-action{grid-column:3/4;grid-row:1/3;align-self:center}
  .rain-time-page .rain-time-answer{grid-template-columns:1fr}
  .rain-time-page .rain-time-answer>.data-summary-card,.rain-time-page .rain-time-answer>.data-summary-card:nth-child(2){min-height:0;border-right:0;border-bottom:1px solid var(--line)}
  .rain-time-page .rain-time-answer>.data-summary-card:last-child{border-bottom:0}
  .rain-time-page .rain-time-answer>.data-summary-card:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .rain-time-hour-list,.forecast-tomorrow-hourly .hourly-scroll{grid-auto-columns:106px}
  .rain-time-hour,.forecast-tomorrow-hourly .hour-card{min-width:106px}
  .rain-time-page .tool-explanation{padding:16px 17px}
}
@media(max-width:360px){
  .forecast-landing-page .forecast-landing-hero h1{font-size:29px}
  .forecast-landing-condition{grid-template-columns:44px minmax(0,1fr);gap:11px;padding:var(--space-3)}
  .forecast-landing-condition .weather-icon{width:44px;height:44px}
  .forecast-landing-stats>span,.forecast-landing-week-highlights>span{padding-inline:12px}
  .forecast-weekend-day{padding:var(--space-3)}
}

/* v1.21.25 completeness hooks. */
.tool-rain-time-page,.tool-comparison-page{min-width:0}.rain-time-page .tool-hero{max-width:var(--content-wide)}.rain-time-page .tool-answer-metrics{margin-top:var(--space-2)}.rain-time-page .tool-next-step{min-width:0}


/* v1.21.30 — extreme forecast values / long-answer closure. */
.forecast-landing-stats>span,.forecast-landing-week-highlights>span,.rain-time-page .rain-time-answer>.data-summary-card,.rain-time-moment-list>div{min-width:0}.forecast-landing-stats :is(strong,em),.forecast-landing-week-highlights :is(strong,em),.rain-time-page .rain-time-answer :is(strong,em),.rain-time-moment-list :is(strong,span){max-width:100%;overflow-wrap:anywhere}.forecast-landing-stats strong,.forecast-landing-week-highlights strong,.rain-time-page .rain-time-answer strong{font-variant-numeric:tabular-nums}.rain-time-hour :is(strong,small),.forecast-compare-grid :is(strong,small){overflow-wrap:anywhere}
@media(max-width:430px){.forecast-landing-stats strong,.forecast-landing-week-highlights strong{font-size:19px;text-align:left}.rain-time-page .rain-time-answer strong{font-size:18px}}
