/* WeatherNext V17 - frontend refinement only. All numeric values remain source-owned.
   V5 page structure and Map V15 GIS/engine contracts are intentionally unchanged. */
:root{--wn-deep:#07364d;--wn-aqua:#087fa2;--wn-panel:#fff;--wn-line:#dceaf1;--wn-text:#193a4e}
html{scroll-padding-top:68px}
body{background:#e9f3f7;color:var(--wn-text)}
.site-shell{background:linear-gradient(180deg,#f8fcfe 0,#edf7fb 540px,#f6fafc 100%)}
.site-header{box-shadow:0 3px 18px rgba(13,51,71,.07);border-color:#dceaf0}
.site-header .brand{letter-spacing:-.7px;font-weight:850;color:#123c53}
.site-header .brand img{object-fit:contain;filter:drop-shadow(0 2px 4px #16456618)}
.site-header .nav-links a{transition:color .18s ease}
.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:20px!important;box-shadow:0 12px 34px #174e6924;border:1px solid #fff3;animation:wn-hero-light 21s ease-in-out infinite alternate}
@keyframes wn-hero-light{from{background-position:48% center}to{background-position:52% center}}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#06283a45,transparent 74%)}
.hero-main{position:relative;z-index:2}
.hero .hero-kicker{color:#c8f3fa!important;font-size:10px;letter-spacing:.15em;font-weight:780}
.hero .hero-time{color:#e8f4fa!important}
.hero .area-select #area-picker{min-height:38px;border-radius:11px;background:#f7fcff;box-shadow:0 3px 12px #001d3229;color:#13506b;padding:7px 12px}
.hero .hero-number{margin:6px 0 1px;align-items:center}
.hero .hero-number>span:first-child{font-variant-numeric:tabular-nums;letter-spacing:-.055em;text-shadow:0 2px 16px #01273533}
.hero .hero-summary{font-weight:700;text-shadow:0 1px 6px #042a4788}
/* Thermal mood is descriptive, NOT a safety or heat-index badge. */
.hero .thermal-description{display:inline-flex!important;align-items:center;justify-content:flex-start;width:max-content;max-width:100%;min-height:34px;padding:6px 12px!important;margin:5px 0 4px;border:1px solid #ffffff6b;border-radius:999px!important;background:#fdf2d7ee!important;color:#7a4a10!important;font-size:12px!important;font-weight:750;line-height:1.25;box-shadow:0 4px 15px #031d2a24;backdrop-filter:blur(8px)}
.hero .thermal-description[data-level=very-hot]{background:#ffdfc9f2!important;color:#842e18!important}
.hero .thermal-description[data-level=hot]{background:#ffe9ceec!important;color:#894820!important}
.hero .thermal-description[data-level=mild]{background:#e8f8f2ed!important;color:#166450!important}
.hero .thermal-description[data-level=unknown]{background:#e3eef3f0!important;color:#2b5c6e!important}
.hero .hero-metrics{border-radius:14px!important;box-shadow:0 8px 25px #002a3a1f;overflow:hidden;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:0!important}
.hero .hero-metrics>div{min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:5px 6px!important;text-align:center;border-right:1px solid #dffbff33}
.hero .hero-metrics>div:last-child{border-right:0}
.hero .hero-metrics span{font-size:10px!important;line-height:1.3;min-height:25px;display:flex;align-items:center;justify-content:center;text-wrap:balance}
.hero .hero-metrics b{font-size:13px!important;line-height:1.35;font-variant-numeric:tabular-nums}
.hero .hero-reason{background:#e5f5efed!important;border:1px solid #ffffff99;border-radius:13px!important;color:#205f4b!important;box-shadow:0 5px 16px #012d3a24}
.hero .hero-reason b,.hero .hero-reason p{color:#205f4b!important}
.hero .hero-reason button{color:#186b61!important;font-weight:750}
.hero .station-line{font-size:10px;line-height:1.45}
.hero-photo-credit{background:#09293a80;color:#fff!important;border-radius:8px;padding:3px 7px!important;font-size:9px!important}
.dashboard{gap:13px!important;margin-top:15px}
.dashboard .panel,.dashboard .wn-column .panel{border-radius:16px!important;box-shadow:0 5px 20px rgba(19,74,102,.055)!important;border:1px solid var(--wn-line);min-width:0}
.panel-title h2{font-size:19px;font-weight:800;color:#123d54;line-height:1.3}
.panel .subtle-link,.panel .small-note{line-height:1.5}
.today .hour-controls button,.hour-window-controls button{min-height:36px}
.hours{scrollbar-width:thin;scrollbar-color:#a9d4e3 transparent;overscroll-behavior-inline:contain}
.hour-navigation button,.hour-controls button,.hour-window-controls button,.wn-map-controls button{transition:background .2s,border-color .2s,transform .2s}
.hour-navigation button:active,.hour-controls button:active,.hour-window-controls button:active,.wn-map-controls button:active{transform:scale(.97)}
.wn-review-banner{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:1px 1px 10px;padding:3px 1px 4px;font-size:11px;color:#41667a;letter-spacing:.005em}
.wn-review-banner::before{content:"";width:7px;height:7px;border-radius:50%;background:#e2a34f;flex:none;box-shadow:0 0 0 4px #e2a34f22}
.wn-review-banner[data-health=ok]::before{background:#1c9f99;box-shadow:0 0 0 4px #1c9f9925}
.wn-review-banner[data-health=unavailable]::before{background:#b87539;box-shadow:0 0 0 4px #b8753925}
.wn-map-controls{align-items:center;gap:9px}
.wn-map-controls button{border-radius:12px;background:#f6fbfd;border:1px solid #c9e2ed;color:#144f68;font-size:12px;font-weight:700;padding:8px 14px}
.wn-map-controls button:hover{background:#e4f4fa;border-color:#80bdd2}
.wn-map-controls button[aria-pressed=true]{background:#126a89;color:#fff}
.wn-map-host{border:1px solid #164454;border-radius:16px!important;box-shadow:0 5px 25px #092f4430;min-width:0}
.wn-map-status{font-size:11px!important;line-height:1.45!important;display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:8px 11px!important}
.wn-map-status strong{color:#b5f4e5;font-weight:800}
.wn-map-status .wn-map-status-item{display:inline-flex;gap:3px;align-items:center;padding:2px 7px;border-radius:6px;background:#1b5366a8;color:#e1f6fb}
.wn-map-status .wn-map-status-item[data-state=missing]{color:#f8d7be;background:#614534aa}
.wn-map-status .wn-map-status-item[data-state=ok]{color:#d9fcf5}
.wn-map-status .wn-status-sep{color:#87adb8}
.wn-map-secondary{border-radius:12px;border:1px dashed #bdd7e3;line-height:1.6}
.wn-map-fullscreen{height:100vh;height:100dvh;inset:0;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));box-sizing:border-box;overflow:hidden}
.wn-map-fullscreen .wn-map-host{min-height:0;flex:1}
.wn-map-fullscreen .wn-map-host iframe{min-height:0}
.wn-map-fullscreen .wn-map-controls{flex-shrink:0}
body.wn-map-open .wn-bottom-nav{display:none!important}
.wn-bottom-nav a[aria-current=location]{color:#80eff2;font-weight:800}
.wn-bottom-nav a:focus-visible{outline:2px solid #b6faff;outline-offset:-3px}
@media(min-width:1061px){.wn-column{gap:13px!important}.hero{min-height:405px!important}.hero-main{max-width:530px!important}.wn-map-host{height:700px}.wn-map-controls button{min-height:42px}.dashboard .panel,.dashboard .wn-column .panel{padding:16px}.wn-column-aside .decision-option{min-height:62px}.wn-column-aside .convection-panel{min-height:145px}}
@media(min-width:751px) and (max-width:1060px){.dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.dashboard>.panel{min-width:0}.dashboard>.radar,.dashboard>.convection-panel,.dashboard>.source-health,.dashboard>.methods,.dashboard>.deep{grid-column:1/-1}.wn-map-host{height:620px}.hero{min-height:410px}}
@media(max-width:750px){html{scroll-padding-top:60px}body{padding-bottom:calc(69px + env(safe-area-inset-bottom))}.site-header .brand{font-size:20px}.site-header .header-inside{height:56px}.hero{min-height:0!important;padding:22px 16px 16px!important;border-radius:19px!important;background-position:56% center!important;animation:none}.hero::after{background:linear-gradient(180deg,#082b3c13 25%,#082b3c30 100%)}.hero h1{font-size:28px}.hero .hero-number>span:first-child{font-size:clamp(62px,18vw,78px)!important}.hero .hero-number .hero-symbol{font-size:42px}.hero .thermal-description{margin:5px 0 6px;font-size:12px!important}.hero .hero-metrics{margin:8px 0!important;max-width:100%;padding:5px 2px!important}.hero .hero-metrics>div{padding:4px 2px!important}.hero .hero-metrics span{font-size:9px!important;min-height:33px;line-height:1.25}.hero .hero-metrics b{font-size:11px!important}.hero .hero-reason{padding:12px 12px 10px!important}.hero .hero-reason p{font-size:11px!important;line-height:1.45}.hero .hero-reason button{right:10px;top:11px}.hero .station-line{display:block!important;font-size:9px;line-height:1.3}.hero-photo-credit{font-size:8px!important}.dashboard{gap:10px!important;margin-top:10px}.dashboard .panel{padding:14px 11px!important}.panel-title{flex-wrap:wrap;gap:8px}.panel-title h2{font-size:18px}.wn-map-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wn-map-controls button{font-size:11px;padding:9px 5px;min-height:44px}.wn-map-host{height:720px;min-height:690px;border-radius:13px!important}.wn-map-status{font-size:10px!important;gap:4px;padding:7px 8px!important}.wn-map-status .wn-map-status-item{padding:2px 5px}.wn-bottom-nav{padding:6px 7px calc(7px + env(safe-area-inset-bottom));border-top:1px solid #77b9c744}.wn-bottom-nav a{min-height:47px;font-size:10px;letter-spacing:-.015em;border-radius:9px;line-height:1.2}.wn-bottom-nav a[aria-current=location]{background:#23566a}.wn-review-banner{font-size:10px}.wn-map-fullscreen{padding:env(safe-area-inset-top) 5px env(safe-area-inset-bottom)}.wn-map-fullscreen .wn-map-controls{display:flex}.wn-map-fullscreen .wn-map-controls button{min-height:42px}.wn-map-fullscreen .wn-map-host{height:auto;min-height:0}.wn-map-fullscreen .wn-map-status{display:flex}}
@media(max-width:380px){.hero{padding:19px 12px 13px!important}.hero .hero-metrics b{font-size:10px!important}.hero .hero-metrics span{font-size:8px!important}.wn-bottom-nav{padding-inline:1px}.wn-bottom-nav a{font-size:9px;padding:0 3px}.wn-map-status{font-size:9px!important}}
@media(prefers-reduced-motion:reduce){.hero{animation:none!important}.hour-navigation button,.hour-controls button,.hour-window-controls button,.wn-map-controls button{transition:none!important}html{scroll-behavior:auto}}

/* V17 recovery affordance: user-triggered refresh, no unbounded polling. */
.wn-review-banner .wn-data-retry{border:1px solid #b5d8e4;border-radius:8px;background:#fff;color:#0a6e8c;font:inherit;font-size:11px;padding:5px 9px;font-weight:750;min-height:32px}
.wn-review-banner .wn-data-retry[hidden]{display:none!important}
.hero .station-line{padding-bottom:18px!important}
@media(max-width:750px){.hero-photo-credit{bottom:5px!important;right:9px!important;max-width:70%!important;text-align:right;font-size:8px!important}.hero .station-line{padding-bottom:18px!important}}
