/* One compact regional information system; warnings retain their own severity colors. */
.home-safety-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding: .7rem 1rem; margin: .6rem auto; border: 1px solid var(--red-100); border-left: 4px solid var(--red); border-radius: .7rem; color: var(--red-d); background: var(--red-50); }
.home-safety-strip[hidden] { display: none; }
.home-safety-strip strong { font-size: .9rem; }
.home-safety-strip time { display: block; font-size: .65rem; margin-top: .2rem; }
.home-safety-strip nav { display: flex; flex-wrap: wrap; gap: .4rem; }
.home-safety-strip nav a { padding: .5rem .65rem; background: var(--paper); border: 1px solid var(--red-100); border-radius: .5rem; font-size: .75rem; font-weight: 700; }
.regional-navigation { position: sticky; top: var(--header-height); z-index: 15; margin: 0 0 .9rem; border: 1px solid var(--line); border-radius: .75rem; overflow: hidden; background: var(--paper); box-shadow: 0 3px 8px #174c390a; }
.regional-navigation.is-stuck { border-top-left-radius: 0; border-top-right-radius: 0; }
main:has(.regional-navigation) { --below-header: calc(var(--header-height) + var(--regional-nav-height, 88px) + 12px); --anchor-below-header: var(--below-header); }
main:has(.regional-navigation) [id] { scroll-margin-top: var(--below-header); }
.regional-nav { display: grid; grid-template-columns: repeat(3, minmax(min-content, 1fr)) minmax(0, 1.65fr); border-bottom: 1px solid var(--line); background: var(--surface); }
.regional-nav a { position: relative; display: grid; align-content: center; min-width: 0; min-height: 44px; padding: .7rem .3rem; color: var(--ink-2); font-size: .88rem; font-weight: 700; text-align: center; line-height: 1.35; }
.regional-nav a + a { border-left: 1px solid var(--line); }
.regional-nav a.is-current { background: linear-gradient(120deg, var(--control-active-start), var(--control-active-end)); color: var(--control-active-ink); }
.regional-nav a.is-current::after { content: ""; position: absolute; z-index: 1; bottom: -1px; left: calc(50% - 6px); border: 6px solid transparent; border-bottom-color: var(--paper); }
.regional-subnav { display: flex; padding: 0 .6rem; gap: .6rem; }
.regional-subnav a { flex: 1; min-width: 0; display: grid; align-items: center; min-height: 44px; padding: .5rem .2rem; color: var(--ink-2); text-align: center; font-size: .85rem; line-height: 1.35; border-bottom: 3px solid transparent; }
.regional-subnav a.is-current { border-bottom-color: var(--blue-d); color: var(--blue-d); font-weight: 800; background: linear-gradient(0deg, var(--blue-50), transparent); }
.regional-navigation a:hover { color: var(--blue-d); background-color: var(--blue-50); }
.regional-navigation a:focus-visible { outline: 2px solid var(--blue-d); outline-offset: -3px; }
main > .regional-navigation { width: var(--wrap); margin: .7rem auto 1rem; }
/* Desktop is a compact category selector followed by its page links.
   Keep the two-row, full-width touch targets unchanged below this breakpoint. */
@media (min-width: 1100px) {
  .regional-navigation { display: flex; align-items: center; gap: 1rem; padding: .5rem .6rem; }
  .regional-nav { display: flex; flex: 0 1 auto; flex-wrap: wrap; gap: .2rem; padding: .2rem; border: 1px solid var(--line); border-radius: .65rem; }
  .regional-nav a { flex: 0 1 auto; padding: .5rem .85rem; border-radius: .45rem; }
  .regional-nav a + a { border-left: 0; }
  .regional-nav a.is-current::after { display: none; }
  .regional-subnav { flex: 1 1 0; flex-wrap: wrap; align-items: center; gap: .25rem; padding: 0 0 0 1rem; border-left: 1px solid var(--line); }
  .regional-subnav a { flex: 0 1 auto; padding: .5rem .85rem; border-radius: .45rem; border-bottom-width: 2px; }
  .regional-subnav a.is-current { background: var(--blue-50); }
}
.page-jumps { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: .6rem 0; font-size: .78rem; }
.page-jumps a { color: var(--blue-d); text-decoration: underline; text-underline-offset: .2em; padding: .3rem 0; }
.regional-guide .guide-hero__copy .page-jumps a { flex: none; }
.safety-page { width: var(--wrap); margin: .7rem auto 3rem; }
.regional-heading h1 { font-size: clamp(1.45rem, 3vw, 2rem); line-height: 1.35; margin: .25rem 0; }
.regional-heading > p:last-child { color: var(--ink-2); font-size: .85rem; margin: .4rem 0 1rem; }
.safety-cities { display: flex; gap: .35rem; flex-wrap: wrap; margin-bottom: 1rem; }
.safety-cities a { flex: 1; padding: .65rem .5rem; text-align: center; font-size: .82rem; font-weight: 700; border: 1px solid var(--line); border-radius: .65rem; background: var(--paper); }
.safety-cities [aria-current] { background: linear-gradient(120deg, var(--control-active-start), var(--control-active-end)); border-color: var(--control-active-border); color: var(--control-active-ink); }
.safety-shortcuts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin-bottom: 1.1rem; }
.safety-shortcuts > a { display: flex; align-items: center; gap: .65rem; border: 1px solid var(--line); background: var(--paper); padding: .9rem; border-radius: .9rem; min-width: 0; }
.safety-shortcuts .ui-icon { flex: 0 0 1.4rem; color: var(--blue); }
.safety-shortcuts strong, .safety-shortcuts small { display: block; }
.safety-shortcuts strong { font-size: .88rem; }
.safety-shortcuts small { font-size: .68rem; color: var(--ink-2); margin-top: .25rem; }
.safety-shortcuts > a > span:last-child { margin-left: auto; color: var(--blue); }
.safety-shortcuts a:hover { border-color: var(--blue); background: var(--blue-50); }
.safety-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, 1fr); gap: 1.1rem; align-items: start; }
.safety-main, .safety-side { min-width: 0; display: grid; gap: 1rem; }
.safety-primary { min-width: 0; display: grid; gap: .6rem; }
.safety-evacuation [hidden] { display: none !important; }
.safety-city-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.safety-city-grid > :only-child { grid-column: 1 / -1; }
.safety-city-grid .safety-city-source { min-width: 0; border: 1px solid var(--line); border-radius: .6rem; padding: .65rem; }
.safety-city-source header { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.safety-city-source .safety-level { display: block; font-size: .72rem; padding: .25rem .4rem; border-radius: .25rem; background: var(--red-50); color: var(--red-d); }
.safety-city-source .safety-level--4 { background: #800080; color: #fff; }
.safety-city-source .safety-level--5 { background: #171717; color: #fff; }
.safety-city-source .safety-level--3 { background: #b50020; color: #fff; }
.safety-action { font-size: .75rem; line-height: 1.5; margin: .4rem 0; }
.safety-city-details { border-top: 1px solid var(--line); font-size: .78rem; }
.safety-city-details summary { padding: .65rem 0; cursor: pointer; color: var(--blue-d); font-weight: 700; }
.safety-city-details summary:focus-visible { outline: 2px solid var(--blue); }
.safety-city-details ul { padding: 0; margin: 0; list-style: none; }
.safety-city-details li { padding: .55rem 0; border-top: 1px solid var(--line); }
.safety-city-details li strong { display: block; font-size: .8rem; overflow-wrap: anywhere; }
.safety-city-details li span, .safety-city-details li time { display: block; font-size: .7rem; color: var(--ink-2); margin-top: .2rem; }
.safety-feed .safety-timeline a { padding: .2rem 0; }
.safety-feed .safety-timeline strong { font-size: .82rem; }
.safety-feed.safety-feed--strip { padding: .55rem .8rem; border-left: 3px solid var(--blue); border-radius: .5rem; order: 0; }
.safety-feed--strip .safety-section-heading { margin-bottom: .2rem; }
.safety-feed--strip .safety-section-heading h2 { font-size: .72rem; color: var(--ink-2); }
.safety-feed--strip .safety-section-heading > a { font-size: .68rem; }
.safety-feed--strip .safety-timeline a { display: flex; align-items: baseline; gap: .4rem .75rem; flex-wrap: wrap; }
.safety-feed--strip .safety-timeline__meta { margin: 0; font-size: .65rem; }
.safety-feed--strip .safety-timeline strong { flex: 1 1 12rem; font-size: .8rem; line-height: 1.5; }
.safety-feed--strip .safety-empty { margin: .25rem 0; }
.safety-radar { min-width: 0; }
.safety-radar .rain-legend__items { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: .45rem; }
.safety-warnings, .safety-feed, .safety-panel { min-width: 0; border: 1px solid var(--line); background: var(--paper); border-radius: 1rem; padding: 1rem; }
.safety-section-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; align-items: baseline; margin-bottom: .5rem; }
.safety-section-heading h2, .safety-panel h2 { font-size: 1.05rem; line-height: 1.4; margin: 0; }
.safety-section-heading > a { font-size: .75rem; color: var(--blue-d); font-weight: 700; }
.safety-source, .safety-panel > p, .safety-empty { margin: .5rem 0; font-size: .75rem; line-height: 1.65; color: var(--ink-2); }
.safety-timeline { padding: 0; margin: 0; list-style: none; }
.safety-timeline li + li { border-top: 1px solid var(--line); }
.safety-timeline a { display: block; padding: .8rem 0; }
.safety-timeline a:hover strong { text-decoration: underline; }
.safety-timeline__meta { display: flex; flex-wrap: wrap; gap: .45rem; font-size: .7rem; color: var(--ink-2); margin-bottom: .3rem; }
.safety-timeline__meta time { font-variant-numeric: tabular-nums; }
.safety-timeline strong { font-size: .9rem; line-height: 1.65; overflow-wrap: anywhere; }
.safety-city-source { padding: .7rem 0; border-top: 1px solid var(--line); }
.safety-city-source h3 { font-size: .85rem; margin: 0 0 .4rem; }
.safety-city-source a, .safety-external-links a { display: block; padding: .4rem 0; color: var(--blue-d); font-size: .8rem; }
.safety-external-links { margin-top: .4rem; }
.safety-external-links a + a { border-top: 1px solid var(--line); }
.safety-panel { scroll-margin-top: var(--below-header); }
.regional-guide .guide-hero { display: block; margin-bottom: 1rem; }
.regional-guide .guide-hero__copy h1 { font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.35; }
.regional-guide .guide-hero__copy nav { margin-top: .6rem; }
.regional-guide .guide-status { margin-top: .6rem; padding: .55rem .8rem; border-radius: .6rem; }
.regional-guide .guide-status strong, .regional-guide .guide-status p { display: inline; font-size: .75rem; margin: 0 .5rem 0 0; }
.regional-guide #warnings { margin: 0 0 1rem; }
.weather-forecast-title { font-size: 1rem; margin: 0 0 .65rem; }
.weather-context-preview { display: none; min-width: 0; }
@media (min-width: 1100px) {
  .home-weather__layout { grid-template-columns: minmax(0, 1fr) 21rem; }
  .weather-forecast-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: .75rem; align-items: start; }
  .weather-forecast-layout > .weather-detail__days { min-width: 0; }
  .weather-context-preview { display: block; }
}
.weather-detail > .weather-week { margin-top: .75rem; }
.weather-alert-details { margin: .6rem 0; border: 1px solid var(--line); border-radius: .65rem; background: var(--paper); padding: .6rem .8rem; }
.weather-alert-details > summary { color: var(--ink); font-weight: 700; font-size: .85rem; cursor: pointer; }
.weather-alert-details:has(.weather-alert[data-warning-level="4"]) > summary,
.weather-alert-details:has(.weather-alert[data-warning-level="5"]) > summary { color: var(--red-d); }
.regional-guide .guide-map, .regional-guide .guide-rivers { margin-bottom: 1.5rem; }
.home-weather__utility nav a { min-height: 2.5rem; display: inline-flex; align-items: center; }
.home-weather__week-link { display: block; grid-column: 1 / -1; min-width: 0; margin-top: .7rem; color: inherit; border-radius: var(--r-s); }
.home-weather__side { align-content: start; }
.home-weather > .home-weather__utility { margin-top: .6rem; }
.home-weather__week-link .weather-week__detail { color: var(--blue-d); font-size: .7rem; font-weight: 700; }
.home-weather__week-link:hover .weather-week { border-color: var(--blue); }
.home-weather__week-link:focus-visible { outline: 2px solid var(--blue-d); outline-offset: 3px; }
@media (max-width: 760px) {
  .regional-nav a { font-size: .78rem; padding: .65rem .2rem; }
  .regional-subnav { padding: 0 .35rem; gap: .25rem; }
  .regional-subnav a { font-size: .78rem; }
  .safety-layout { grid-template-columns: 1fr; }
  .safety-main, .safety-side { display: contents; }
  .safety-primary { order: 1; }
  .safety-warnings { order: 4; }
  .safety-radar { order: 2; }
  .safety-layout .regional-refresh { order: 3; }
  .safety-feed { order: 4; }
  .safety-side > .safety-panel { order: 5; }
  .safety-shortcuts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; }
  .safety-shortcuts > a { padding: .7rem .6rem; gap: .4rem; }
  .safety-shortcuts strong { font-size: .8rem; }
  .safety-shortcuts small { font-size: .66rem; }
  .safety-shortcuts > a > span:last-child { display: none; }
  .safety-cities { gap: .25rem; }
  .safety-cities a { padding: .6rem .2rem; font-size: .72rem; }
  .safety-city-grid { gap: .35rem; }
  .safety-city-grid .safety-city-source { padding: .5rem; }
  .safety-city-source .safety-level { font-size: .65rem; }
  .safety-city-source .safety-source { font-size: .65rem; }
  .safety-warnings, .safety-feed, .safety-panel { padding: .85rem; }
  .regional-guide .guide-hero__copy nav { display: flex; }
  .regional-guide .guide-hero__copy nav a { flex: 1; }
}
.regional-refresh { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem .75rem; padding: .5rem 0; }
.regional-refresh p { margin: 0; color: var(--ink-3); font-size: .72rem; }
.regional-refresh .btn { min-height: 40px; padding: .4rem .9rem; font-size: .75rem; }
.regional-refresh > a:not([hidden]) { flex-basis: 100%; color: var(--blue); font-size: .8rem; text-decoration: underline; }
.regional-refresh > [hidden] { display: none; }
