/* Isolated Weather app bundle: one renderer, one controller, one namespace */
:root{--wx-navy:#062238;--wx-ink:#0a2233;--wx-muted:#60727f;--wx-line:rgba(6,34,56,.13);--wx-cream:#fffdf8;--wx-sand:#f7f0dc;--wx-sea:#eaf8fb;--wx-accent:#f3b45d;--wx-blue:#0b8da1;--wx-ok:#0e7a62;--wx-warn:#a46b08}
.weatherFinalSection{padding:clamp(.55rem,1.6vw,.9rem) 0 .32rem;background:linear-gradient(180deg,#f7f3e8 0%,#fffdf8 38%,#eef8fb 100%)}
.weatherFinalApp{color:var(--wx-ink);font-family:Inter,system-ui,sans-serif;max-width:1120px;margin-inline:auto}.weatherFinalApp *{box-sizing:border-box}.weatherFinalApp.is-updating{cursor:progress}.weatherFinalApp.is-updating .weatherNowCard,.weatherFinalApp.is-updating .weatherBoard{box-shadow:0 0 0 2px rgba(243,180,93,.12),0 14px 30px rgba(6,34,56,.055)}
.weatherFinalKicker{display:flex;align-items:center;gap:.42rem;flex-wrap:wrap;margin:0 0 .46rem}.weatherFinalKicker span{border:1px solid var(--wx-line);background:rgba(255,255,255,.82);border-radius:999px;padding:.3rem .52rem;font-size:.64rem;font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:var(--wx-blue)}.weatherFinalKicker b{font-size:.78rem;color:var(--wx-navy);font-weight:950}.weatherFinalKicker small{color:var(--wx-muted);font-size:.68rem;font-weight:800}
.weatherNowCard,.weatherTuneDock,.weatherBoard,.weatherHorizonPanel,.weatherSpotMatrix,.weatherActionRail,.weatherMoveStrip{border:1px solid var(--wx-line);background:rgba(255,255,255,.9);box-shadow:0 12px 26px rgba(6,34,56,.055)}
.weatherNowCard{border-radius:1.45rem;background:linear-gradient(135deg,#fffdf8 0%,#f8edcf 54%,#eaf8fb 100%);padding:.72rem;display:grid;gap:.6rem}.weatherNowTop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.62rem;align-items:start}.weatherNowMain small{display:block;font-size:.66rem;font-weight:950;letter-spacing:.13em;text-transform:uppercase;color:#6d7d88}.weatherNowMain strong{display:block;font-size:clamp(2.7rem,12vw,5.2rem);line-height:.88;font-weight:950;color:var(--wx-navy);letter-spacing:-.085em}.weatherNowMain span{display:inline-flex;margin-top:.36rem;border-radius:999px;padding:.36rem .56rem;background:#e9f9fb;color:#10364b;font-size:.76rem;font-weight:950}.weatherPotentialBadge{min-width:6.8rem;border-radius:1.15rem;background:linear-gradient(145deg,#061f35,#0a334e);color:#fff;padding:.62rem .68rem;text-align:center;box-shadow:0 10px 19px rgba(6,34,56,.15)}.weatherPotentialBadge span,.weatherPotentialBadge em{display:block;font-size:.58rem;line-height:1.12;letter-spacing:.09em;text-transform:uppercase;font-style:normal;color:rgba(255,255,255,.72);font-weight:950}.weatherPotentialBadge b{display:block;font-size:1.62rem;line-height:1;font-weight:950}
.weatherMetricGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.38rem}.weatherMetricGrid div{min-height:3.15rem;border:1px solid var(--wx-line);border-radius:.82rem;background:rgba(255,255,255,.78);padding:.48rem .52rem}.weatherMetricGrid div:nth-child(6){background:#fff7df;border-color:rgba(243,180,93,.38)}.weatherMetricGrid span{display:block;font-size:.58rem;letter-spacing:.09em;text-transform:uppercase;color:#6b7781;font-weight:950}.weatherMetricGrid b{display:block;margin-top:.18rem;font-size:.86rem;line-height:1.18;color:var(--wx-navy);font-weight:950}.weatherRead{margin:0;border:1px solid rgba(243,180,93,.32);border-radius:.82rem;background:#fff7df;color:#18354b;padding:.5rem .6rem;font-size:.82rem;line-height:1.3;font-weight:850}.weatherHeroActions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.38rem}
.weatherFinalApp .btn,.weatherMoveStrip a,.weatherActionRail a{display:inline-flex;align-items:center;justify-content:center;min-height:2.08rem;border:1px solid var(--wx-line);border-radius:999px;padding:.52rem .72rem;text-decoration:none;font-size:.82rem;font-weight:950;color:var(--wx-navy);background:rgba(255,255,255,.84);cursor:pointer}.weatherFinalApp .btn.primary,.weatherActionRail .btn.primary{background:var(--wx-navy);border-color:var(--wx-navy);color:#fff}.weatherFinalApp .btn.secondary,.weatherActionRail .btn.secondary{background:rgba(255,255,255,.82)}
.weatherMoveStrip{margin-top:.62rem;border-radius:1.12rem;padding:.62rem .66rem;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.46rem;background:linear-gradient(135deg,#08263c,#0b4058);color:white}.weatherMoveStrip span{font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.68);font-weight:950}.weatherMoveStrip strong{display:inline-flex;align-items:center;border-radius:999px;background:rgba(255,255,255,.12);padding:.32rem .5rem;font-size:.8rem;white-space:nowrap}.weatherMoveStrip strong[data-move="go"]{background:rgba(243,180,93,.25);color:#fff7df}.weatherMoveStrip strong[data-move="wait"]{background:rgba(255,255,255,.16)}.weatherMoveStrip div{min-width:0}.weatherMoveStrip b{display:block;font-size:.9rem;line-height:1.15}.weatherMoveStrip small{display:block;color:rgba(255,255,255,.78);font-size:.77rem;font-weight:750;line-height:1.25;margin-top:.08rem}.weatherMoveStrip nav{grid-column:1/-1;display:flex;gap:.35rem;overflow:auto;padding-top:.12rem}.weatherMoveStrip a{min-height:1.92rem;font-size:.74rem;padding:.42rem .6rem;background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.18);white-space:nowrap}
.weatherTuneDock{margin-top:.62rem;border-radius:1.18rem;padding:.56rem;display:grid;grid-template-columns:minmax(10rem,1.35fr) repeat(3,minmax(0,1fr));gap:.42rem;align-items:center}.weatherTuneDock label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.42rem;align-items:center}.weatherTuneDock label span{font-size:.6rem;text-transform:uppercase;letter-spacing:.11em;color:#71808a;font-weight:950}.weatherTuneDock select{width:100%;min-height:2.12rem;border:1px solid var(--wx-line);border-radius:999px;background:white;color:var(--wx-navy);padding:.5rem .68rem;font-size:.82rem;font-weight:950}.weatherSegment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.26rem;padding:.22rem;border:1px solid var(--wx-line);border-radius:999px;background:#f7f0dc}.weatherSegment button{min-height:1.86rem;border:0;border-radius:999px;background:transparent;color:#546470;font-size:.75rem;font-weight:950;cursor:pointer}.weatherSegment button.is-active{background:var(--wx-navy);color:#fff;box-shadow:0 6px 12px rgba(6,34,56,.14)}
.weatherBoard{margin-top:.62rem;border-radius:1.18rem;padding:.62rem}.weatherSectionHead{display:flex;align-items:flex-end;justify-content:space-between;gap:.6rem;margin-bottom:.48rem}.weatherSectionHead b{display:block;color:var(--wx-navy);font-size:1rem;line-height:1.12;font-weight:950}.weatherSectionHead small{display:block;margin-top:.12rem;color:#687883;font-size:.76rem;font-weight:780;line-height:1.25}.weatherSectionHead>span{border-radius:999px;background:#fff7df;border:1px solid rgba(243,180,93,.38);padding:.34rem .55rem;font-size:.72rem;font-weight:950;color:#6b4107;white-space:nowrap}.weatherHourlyRail{display:grid;grid-template-columns:repeat(12,minmax(8.7rem,1fr));gap:.42rem;overflow:auto;padding-bottom:.16rem;scroll-snap-type:x proximity}.weatherHourCard,.weatherHourlyRail article{scroll-snap-align:start;border:1px solid var(--wx-line);border-radius:.92rem;background:#fffdf8;padding:.55rem;min-height:6.15rem}.weatherHourCard small,.weatherHourlyRail article small{display:block;color:#71808a;font-size:.66rem;font-weight:950}.weatherHourCard b,.weatherHourlyRail article b{display:block;color:var(--wx-navy);font-size:1rem;margin-top:.14rem}.weatherHourCard span,.weatherHourlyRail article span,.weatherHourCard em,.weatherHourlyRail article em{display:block;color:#5d707c;font-size:.72rem;line-height:1.25;font-style:normal;font-weight:800;margin-top:.16rem}
.weatherHorizonPanel{margin-top:.5rem;border:0;background:transparent;box-shadow:none}.weatherDayGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.weatherDayGrid.week{grid-template-columns:repeat(7,minmax(8rem,1fr));overflow:auto}.weatherDayCard{border:1px solid var(--wx-line);border-radius:1rem;background:#fffdf8;padding:.62rem;display:grid;gap:.38rem}.weatherDayCard.good{border-color:rgba(14,122,98,.26);background:#f2fbf5}.weatherDayCard.mixed{border-color:rgba(243,180,93,.36);background:#fff8e7}.weatherDayCard.weak{background:#fbf5ef}.weatherDayCard header{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.weatherDayCard small{font-size:.68rem;font-weight:950;color:#6c7a84}.weatherDayCard header b{border-radius:999px;background:var(--wx-navy);color:#fff;padding:.22rem .42rem;font-size:.72rem}.weatherDayCard strong{font-size:.88rem;line-height:1.15;color:var(--wx-navy)}.weatherDayCard p{margin:0;font-size:.74rem;line-height:1.25;color:#5f707a;font-weight:800}.weatherDayCard dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem;margin:0}.weatherDayCard div{border-radius:.62rem;background:rgba(255,255,255,.7);padding:.34rem}.weatherDayCard dt{font-size:.56rem;text-transform:uppercase;letter-spacing:.08em;color:#7a8790;font-weight:950}.weatherDayCard dd{margin:0;font-size:.72rem;font-weight:950;color:var(--wx-navy)}
.weatherSpotMatrix{margin-top:.62rem;border-radius:1.18rem;padding:.62rem}.weatherSpotGroup{margin-top:.48rem}.weatherSpotGroup h3{margin:0 0 .32rem;color:#61727e;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:950}.weatherSpotGroup>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.42rem}.weatherSpotCard{appearance:none;text-align:left;border:1px solid var(--wx-line);border-radius:.95rem;background:#fffdf8;padding:.56rem;display:grid;gap:.16rem;color:var(--wx-ink);cursor:pointer}.weatherSpotCard.is-active{border-color:rgba(243,180,93,.55);background:#fff7df;box-shadow:0 0 0 2px rgba(243,180,93,.12)}.weatherSpotCard span{font-size:.82rem;font-weight:950;color:var(--wx-navy)}.weatherSpotCard b{font-size:.95rem;color:var(--wx-blue);font-weight:950}.weatherSpotCard small,.weatherSpotCard em{font-size:.68rem;line-height:1.2;color:#667783;font-style:normal;font-weight:800}.weatherSpotCard em{color:#234256}
.weatherActionRail{margin-top:.5rem;margin-bottom:0;border-radius:1.18rem;padding:.62rem;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:center;background:linear-gradient(135deg,#fffdf8,#fff7df)}.weatherActionRail b{display:block;color:var(--wx-navy);font-size:.98rem;font-weight:950}.weatherActionRail small{display:block;color:#687883;font-size:.76rem;line-height:1.25;font-weight:800;margin-top:.1rem}.weatherActionRail nav{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.weatherActionRail a{white-space:nowrap}
body.weatherAppInteractive .siteFooter{margin-top:.35rem}body.weatherAppInteractive .siteFooter,body.weatherAppInteractive .footerScenicWrap,body.weatherAppInteractive .footerCommandDock{font-size:.92em}body.weatherAppInteractive .bottomQuickNav{transform:translateY(0)}body.weatherAppInteractive .tioFooterV4{margin-top:8px;margin-bottom:88px}body.weatherAppInteractive .tioQuickNavV4{bottom:calc(7px + env(safe-area-inset-bottom))}
@media(max-width:980px){.weatherTuneDock{grid-template-columns:1fr}.weatherMetricGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.weatherDayGrid,.weatherSpotGroup>div{grid-template-columns:repeat(2,minmax(0,1fr))}.weatherDayGrid.week{grid-template-columns:repeat(7,minmax(7.6rem,1fr))}}
@media(max-width:640px){.weatherFinalSection{padding-top:.45rem}.weatherNowCard{padding:.62rem;border-radius:1.25rem}.weatherNowTop{grid-template-columns:1fr;gap:.46rem}.weatherPotentialBadge{display:grid;grid-template-columns:auto auto auto;align-items:center;gap:.32rem;text-align:left;min-width:0;padding:.5rem .58rem}.weatherPotentialBadge b{font-size:1.28rem}.weatherMetricGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.32rem}.weatherMetricGrid div{min-height:2.8rem;padding:.42rem}.weatherHeroActions{grid-template-columns:1fr 1fr}.weatherHeroActions .btn.primary{grid-column:1/-1}.weatherMoveStrip{grid-template-columns:1fr auto;align-items:start}.weatherMoveStrip span{grid-column:1/-1}.weatherMoveStrip div{grid-column:1/-1}.weatherTuneDock,.weatherBoard,.weatherSpotMatrix,.weatherActionRail{padding:.5rem;border-radius:1rem}.weatherSegment button{font-size:.7rem;min-height:1.78rem}.weatherHourlyRail{grid-template-columns:repeat(12,minmax(7.7rem,1fr));gap:.34rem}.weatherDayGrid,.weatherSpotGroup>div{grid-template-columns:1fr}.weatherDayGrid.week{grid-template-columns:repeat(7,minmax(7.4rem,1fr))}.weatherActionRail{grid-template-columns:1fr}.weatherActionRail nav{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch;overflow:visible;flex-wrap:initial;padding-bottom:0}.weatherActionRail nav a:nth-child(3):last-child{grid-column:1/-1}.weatherActionRail a{min-width:0;white-space:normal;text-align:center}.weatherFinalApp .btn,.weatherMoveStrip a,.weatherActionRail a{min-height:1.98rem;font-size:.76rem}.weatherSectionHead{align-items:flex-start}.weatherSectionHead b{font-size:.92rem}.weatherSectionHead small{font-size:.72rem}}

/* Decision-first weather app final styles */
.weatherPotentialBadge{min-width:6.2rem;padding:.56rem .62rem}
.weatherPotentialBadge span{font-size:.54rem;letter-spacing:.075em}
.weatherPotentialBadge em{font-size:.58rem;letter-spacing:.05em;text-transform:none;color:rgba(255,255,255,.82)}
.weatherPotentialBadge b{font-size:1.48rem}
.weatherMoveStrip{grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important;gap:.42rem!important;background:linear-gradient(135deg,#08263c,#07334b)!important}
.weatherMoveStrip .weatherMoveEyebrow{grid-column:1/-1;font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.64);font-weight:950}
.weatherMoveStrip .weatherMoveMain{grid-column:1/2!important;min-width:0}
.weatherMoveStrip .weatherMoveMain b{font-size:clamp(1.1rem,4.8vw,1.55rem);line-height:1.04;letter-spacing:-.035em}
.weatherMoveStrip .weatherMoveMain small{max-width:46rem;font-size:.82rem;line-height:1.28;color:rgba(255,255,255,.82)}
.weatherMoveStrip .weatherMoveState{grid-column:2/3!important;grid-row:2;justify-self:end;font-size:.66rem!important;padding:.28rem .48rem!important;opacity:.9}
.weatherMoveStrip nav{grid-column:1/-1!important;padding-top:.08rem!important}
.weatherFitBand{display:inline-flex!important;align-items:center;justify-content:center;border-radius:999px;background:#eaf8fb!important;color:#0a5263!important;padding:.24rem .46rem!important;font-size:.7rem!important;font-weight:950!important;white-space:nowrap}
.weatherDayCard header b.weatherFitBand,.weatherSpotCard b.weatherFitBand{background:#eaf8fb!important;color:#0a5263!important}
.weatherDayCard strong{font-size:.94rem}
.weatherDayCard p{font-size:.72rem}
.weatherSpotCard b.weatherFitBand{justify-self:start}
.weatherSpotCard span{font-size:.88rem}
.weatherSpotCard small{font-size:.66rem}
.weatherSpotCard em{font-size:.7rem}
@media(max-width:760px){
  .weatherNowCard{padding:.62rem;border-radius:1.24rem;gap:.48rem}
  .weatherNowTop{gap:.48rem}
  .weatherMoveStrip{padding:.58rem .6rem;border-radius:1.02rem}
  .weatherMoveStrip .weatherMoveMain b{font-size:1.18rem}
  .weatherMoveStrip .weatherMoveMain small{font-size:.78rem}
  .weatherMoveStrip .weatherMoveState{font-size:.62rem!important}
  .weatherDayGrid.week{grid-template-columns:repeat(7,minmax(8.2rem,1fr))}
  .weatherDayCard{padding:.54rem;gap:.32rem}
  .weatherSpotCard{padding:.52rem}
}


/* Phase 192 — guided Weather navigation + 7-day mobile layout fix */
.weatherFinalHero:focus{outline:0}.weatherSpotToast{position:fixed;z-index:1200;top:calc(env(safe-area-inset-top,0px) + 4.35rem);left:50%;transform:translate(-50%,-.35rem);max-width:min(88vw,24rem);border:1px solid rgba(243,180,93,.46);border-radius:999px;background:#fff7df;color:var(--wx-navy);box-shadow:0 14px 34px rgba(6,34,56,.18);padding:.42rem .7rem;font-size:.76rem;font-weight:950;line-height:1.1;text-align:center;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease}.weatherSpotToast.is-visible{opacity:1;transform:translate(-50%,0)}.weatherSpotToast[hidden]{display:block;opacity:0}.weatherDayGrid.week{grid-template-columns:repeat(7,minmax(8.8rem,1fr));overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding-bottom:.12rem}.weatherDayGrid.week .weatherDayCard{min-width:0;scroll-snap-align:start}.weatherDayCard strong,.weatherDayCard p,.weatherDayCard dd{overflow-wrap:anywhere}.weatherDayCard dl{min-width:0}.weatherDayCard dl div{min-width:0}
@media(min-width:981px){.weatherDayGrid.week{grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible}}
@media(min-width:641px) and (max-width:980px){.weatherDayGrid.week{grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}}
@media(max-width:640px){.weatherSpotToast{top:calc(env(safe-area-inset-top,0px) + 4.05rem);font-size:.73rem}.weatherDayGrid.week{grid-template-columns:1fr!important;overflow:visible!important;scroll-snap-type:none;gap:.42rem}.weatherDayGrid.week .weatherDayCard{width:100%;min-width:0;display:grid;grid-template-columns:1fr;gap:.3rem;padding:.52rem}.weatherDayGrid.week .weatherDayCard header{align-items:flex-start}.weatherDayGrid.week .weatherDayCard strong{font-size:.9rem;line-height:1.14}.weatherDayGrid.week .weatherDayCard p{font-size:.72rem;line-height:1.22}.weatherDayGrid.week .weatherDayCard dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:.22rem}.weatherDayGrid.week .weatherDayCard dd{font-size:.68rem;white-space:normal}}

/* Phase 193 — weather-page spacing and surf-native action fit */
body.weatherAppInteractive .weatherFinalSection{padding-bottom:.3rem}
body.weatherAppInteractive .weatherActionRail{margin-bottom:0}
@media(max-width:760px){body.weatherAppInteractive .weatherFinalSection{padding-bottom:.22rem}body.weatherAppInteractive .tioFooterV4{margin-top:8px;margin-bottom:82px;padding-left:10px;padding-right:10px}body.weatherAppInteractive .tioFooterV4__dock{padding:10px;gap:7px}body.weatherAppInteractive .tioQuickNavV4{bottom:calc(6px + env(safe-area-inset-bottom))}body.weatherAppInteractive .weatherMoveStrip nav{overflow:visible;flex-wrap:wrap}body.weatherAppInteractive .weatherActionRail nav{display:grid;grid-template-columns:1fr 1fr;gap:.34rem;overflow:visible}body.weatherAppInteractive .weatherActionRail nav a:nth-child(3):last-child{grid-column:1/-1}body.weatherAppInteractive .weatherActionRail a{white-space:normal;min-width:0;line-height:1.08}}

/* Phase 209 — spot guide backlink inside weather compare cards */
.weatherSpotCardWrap{display:grid;gap:.28rem;min-width:0}
.weatherSpotCardWrap .weatherSpotCard{width:100%}
.weatherSpotGuideLink{display:inline-flex;align-items:center;justify-content:center;min-height:1.8rem;border:1px solid rgba(243,180,93,.42);border-radius:999px;background:#fff7df;color:#0b2235;text-decoration:none;font-size:.68rem;font-weight:950;padding:.28rem .5rem;line-height:1.1}
.weatherSpotGuideLink:hover{background:#ffe9b6;border-color:rgba(243,180,93,.75)}

/* Phase 265 — Weather cockpit spot switcher + compact control dock */
.weatherFinalKicker{align-items:center}.weatherRefreshTiny{width:2rem;height:2rem;border:1px solid var(--wx-line);border-radius:999px;background:rgba(255,255,255,.82);color:var(--wx-navy);font-weight:950;cursor:pointer;line-height:1}.weatherHeroControlDock{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(12rem,.9fr);gap:.42rem;align-items:stretch}.weatherSpotSwitch{appearance:none;text-align:left;border:1px solid rgba(6,34,56,.14);border-radius:1rem;background:linear-gradient(135deg,#fffdf8,#f5fbfc);padding:.58rem .68rem;color:var(--wx-navy);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.1rem .48rem;cursor:pointer;min-width:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}.weatherSpotSwitch span{grid-column:1/-1;font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;color:#7a8790;font-weight:950}.weatherSpotSwitch b{font-size:1.04rem;line-height:1.1;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weatherSpotSwitch small{grid-column:1/-1;font-size:.7rem;color:#667783;font-weight:800;line-height:1.16;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weatherSpotSwitch:after{content:'⌄';grid-column:2;grid-row:2;align-self:center;justify-self:end;width:1.72rem;height:1.72rem;display:grid;place-items:center;border:1px solid rgba(243,180,93,.34);border-radius:999px;background:#fff7df;color:#8a5917;font-size:1.1rem;line-height:1}.weatherProfileDock{display:grid;grid-template-columns:1fr 1fr;gap:.38rem}.weatherHeroControlDock .weatherSegment,.weatherProfileDock .weatherSegment{align-self:stretch}.weatherHeroControlDock .weatherSegment button,.weatherProfileDock .weatherSegment button{min-height:2.02rem}.weatherSpotSheet[hidden]{display:none}.weatherSpotSheet{position:fixed;inset:0;z-index:1600;display:grid;align-items:end;pointer-events:none}.weatherSpotSheetBackdrop{position:absolute;inset:0;border:0;background:rgba(4,18,28,.42);backdrop-filter:blur(3px);pointer-events:auto}.weatherSpotSheetPanel{position:relative;z-index:1;width:min(43rem,calc(100vw - 1rem));max-height:min(78vh,42rem);margin:0 auto calc(env(safe-area-inset-bottom,0px) + .55rem);border:1px solid rgba(6,34,56,.14);border-radius:1.35rem;background:linear-gradient(180deg,#fffdf8 0%,#f8f1df 100%);box-shadow:0 -18px 50px rgba(6,34,56,.24);padding:.72rem;display:grid;gap:.55rem;overflow:hidden;pointer-events:auto}.weatherSpotSheetPanel:before{content:'';width:3.2rem;height:.28rem;border-radius:999px;background:rgba(6,34,56,.16);justify-self:center;margin-top:-.2rem}.weatherSpotSheetPanel>header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:start}.weatherSpotSheetPanel>header b{display:block;color:var(--wx-navy);font-size:1.05rem;font-weight:950;line-height:1.1}.weatherSpotSheetPanel>header small{display:block;color:#61727e;font-size:.76rem;font-weight:750;line-height:1.22;margin-top:.14rem}.weatherSpotSheetPanel>header button{border:1px solid rgba(243,180,93,.36);background:#fff7df;color:#6d4308;border-radius:999px;min-height:2rem;padding:.36rem .62rem;font-size:.74rem;font-weight:950;cursor:pointer}.weatherSpotSheetBody{overflow:auto;display:grid;gap:.55rem;padding:.04rem .08rem .12rem;overscroll-behavior:contain}.weatherSpotSheetGroup{display:grid;gap:.34rem}.weatherSpotSheetGroup h3{margin:0;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:#8a5917;font-weight:950}.weatherSpotSheetGroup>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.34rem}.weatherSpotSheetItem{appearance:none;text-align:left;min-width:0;border:1px solid rgba(6,34,56,.13);border-radius:.9rem;background:#fffdf8;color:var(--wx-ink);padding:.5rem .55rem;display:grid;gap:.08rem;cursor:pointer}.weatherSpotSheetItem b{color:var(--wx-navy);font-weight:950;font-size:.85rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weatherSpotSheetItem small{color:#61727e;font-weight:820;font-size:.66rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weatherSpotSheetItem em{font-style:normal;color:#0b8da1;font-weight:900;font-size:.62rem;line-height:1.15}.weatherSpotSheetItem.is-active{border-color:rgba(243,180,93,.64);background:#fff7df;box-shadow:0 0 0 2px rgba(243,180,93,.13)}body.weatherSpotSheetOpen{overflow:hidden}.weatherHeroActions{grid-template-columns:1fr 1fr 1.15fr}.weatherHeroActions .btn{white-space:normal;text-align:center}.weatherNowMain small{display:none}
@media(max-width:760px){.weatherHeroControlDock{grid-template-columns:1fr}.weatherSpotSwitch{padding:.5rem .58rem;border-radius:.92rem}.weatherSpotSwitch b{font-size:.98rem}.weatherSpotSwitch small{font-size:.66rem}.weatherProfileDock{grid-template-columns:1fr;gap:.3rem}.weatherProfileDock .weatherSegment,.weatherHeroControlDock .weatherSegment{padding:.2rem}.weatherHeroControlDock .weatherSegment button,.weatherProfileDock .weatherSegment button{min-height:1.76rem;font-size:.68rem}.weatherMetricGrid{margin-top:.04rem}.weatherHeroActions{grid-template-columns:1fr 1fr}.weatherHeroActions .btn.primary{grid-column:1/-1}.weatherSpotSheetPanel{width:calc(100vw - .7rem);max-height:82vh;border-radius:1.18rem;padding:.6rem;margin-bottom:calc(env(safe-area-inset-bottom,0px) + .4rem)}.weatherSpotSheetGroup>div{grid-template-columns:1fr}.weatherSpotSheetItem{padding:.48rem .52rem}.weatherSpotSheetPanel>header b{font-size:.98rem}.weatherSpotSheetPanel>header small{font-size:.7rem}}
@media(min-width:761px){.weatherSpotSheetPanel{align-self:center;margin-bottom:0}.weatherSpotSheet{align-items:center}.weatherSpotSheetPanel{border-radius:1.45rem}}

/* Phase 266 — Weather spot sheet compact scroll lock + shorter hero rhythm */
.weatherSpotSheetPanel{grid-template-rows:auto minmax(0,1fr);max-height:min(72dvh,38rem);overflow:hidden}
.weatherSpotSheetBody{min-height:0;max-height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;touch-action:pan-y;display:block;padding:.02rem .04rem .22rem}
.weatherSpotSheetTabs{position:sticky;top:0;z-index:2;display:flex;gap:.28rem;overflow-x:auto;padding:.06rem .02rem .4rem;margin:0 0 .18rem;background:linear-gradient(180deg,#fffdf8 0%,rgba(255,253,248,.94) 70%,rgba(255,253,248,0) 100%);scrollbar-width:none}
.weatherSpotSheetTabs::-webkit-scrollbar{display:none}
.weatherSpotSheetTab{appearance:none;flex:0 0 auto;min-height:1.7rem;max-width:7.6rem;border:1px solid rgba(6,34,56,.13);border-radius:.62rem;background:#fffdf8;color:#6a7882;padding:.22rem .46rem;font-size:.6rem;line-height:1.05;font-weight:950;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.weatherSpotSheetTab.is-active{background:var(--wx-navy);border-color:var(--wx-navy);color:#fff}
.weatherSpotSheetGroup{margin-top:.42rem;display:block;scroll-margin-top:2.6rem}
.weatherSpotSheetGroup:first-of-type{margin-top:.04rem}
.weatherSpotSheetGroup h3{margin:0 0 .28rem;font-size:.55rem;letter-spacing:.13em}
.weatherSpotSheetGroup>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.28rem}
.weatherSpotSheetItem{min-height:3.35rem;border-radius:.72rem;padding:.38rem .42rem;align-content:center;gap:.04rem}
.weatherSpotSheetItem b{font-size:.76rem;line-height:1.05;text-align:left}
.weatherSpotSheetItem small{font-size:.56rem;line-height:1.05}
.weatherSpotSheetItem em{display:none}
.weatherSpotSheetItem.is-active{box-shadow:0 0 0 2px rgba(243,180,93,.18)}
.weatherSpotSheetPanel>header{gap:.42rem;align-items:center}
.weatherSpotSheetPanel>header b{font-size:.96rem}
.weatherSpotSheetPanel>header small{font-size:.68rem;line-height:1.16;max-width:27rem}
.weatherSpotSheetPanel>header button{min-height:1.82rem;padding:.3rem .52rem;font-size:.68rem}
.weatherNowCard{gap:.48rem;padding:.62rem;border-radius:1.24rem}
.weatherHeroControlDock{gap:.32rem}
.weatherSpotSwitch{border-radius:.84rem;padding:.46rem .54rem;gap:.06rem .38rem}
.weatherSpotSwitch span{font-size:.52rem;letter-spacing:.11em}
.weatherSpotSwitch b{font-size:.94rem}
.weatherSpotSwitch small{font-size:.6rem;line-height:1.1}
.weatherSpotSwitch:after{width:1.48rem;height:1.48rem;font-size:.92rem}
.weatherHeroControlDock .weatherSegment,.weatherProfileDock .weatherSegment{padding:.16rem;gap:.18rem;border-radius:.74rem}
.weatherHeroControlDock .weatherSegment button,.weatherProfileDock .weatherSegment button{min-height:1.58rem;border-radius:.55rem;font-size:.62rem;padding:.18rem .22rem;line-height:1.04}
.weatherProfileDock{gap:.28rem}
.weatherNowTop{gap:.44rem;align-items:center}
.weatherNowMain strong{font-size:clamp(2.35rem,10.5vw,4.65rem)}
.weatherNowMain span{margin-top:.26rem;padding:.3rem .48rem;font-size:.7rem}
.weatherPotentialBadge{min-width:5.95rem;border-radius:.96rem;padding:.48rem .54rem}
.weatherPotentialBadge b{font-size:1.38rem}
.weatherPotentialBadge span,.weatherPotentialBadge em{font-size:.5rem;letter-spacing:.08em}
.weatherMetricGrid{gap:.28rem}
.weatherMetricGrid div{min-height:2.48rem;border-radius:.7rem;padding:.38rem .42rem}
.weatherMetricGrid span{font-size:.5rem;letter-spacing:.08em}
.weatherMetricGrid b{font-size:.76rem;margin-top:.12rem}
.weatherRead{padding:.42rem .5rem;font-size:.76rem;line-height:1.22;border-radius:.72rem}
.weatherHeroActions{gap:.3rem}
.weatherFinalApp .btn,.weatherMoveStrip a,.weatherActionRail a{min-height:1.86rem;padding:.42rem .58rem;font-size:.74rem;line-height:1.08}
.weatherBoard,.weatherSpotMatrix,.weatherActionRail{margin-top:.48rem;border-radius:1rem;padding:.52rem}
.weatherMoveStrip{margin-top:.48rem;padding:.52rem .56rem;border-radius:.96rem}
@media(max-width:760px){
  .weatherFinalSection{padding-top:.28rem}
  .weatherFinalKicker{margin-bottom:.3rem;gap:.26rem}
  .weatherFinalKicker span{padding:.22rem .42rem;font-size:.56rem}
  .weatherRefreshTiny{width:1.72rem;height:1.72rem;font-size:.72rem}
  .weatherNowCard{padding:.5rem;gap:.38rem;border-radius:1.05rem}
  .weatherHeroControlDock{gap:.26rem}
  .weatherSpotSwitch{display:grid;grid-template-columns:minmax(0,1fr) auto;border-radius:.72rem;padding:.38rem .44rem}
  .weatherSpotSwitch span{font-size:.48rem}
  .weatherSpotSwitch b{font-size:.86rem}
  .weatherSpotSwitch small{display:none}
  .weatherSpotSwitch:after{width:1.32rem;height:1.32rem;font-size:.82rem}
  .weatherProfileDock{grid-template-columns:1fr;gap:.22rem}
  .weatherHeroControlDock .weatherSegment,.weatherProfileDock .weatherSegment{padding:.13rem;gap:.14rem;border-radius:.64rem}
  .weatherHeroControlDock .weatherSegment button,.weatherProfileDock .weatherSegment button{min-height:1.42rem;font-size:.56rem;padding:.12rem .14rem;border-radius:.48rem;letter-spacing:-.01em}
  .weatherNowMain strong{font-size:2.55rem;letter-spacing:-.075em}
  .weatherNowMain span{font-size:.62rem;padding:.25rem .38rem;line-height:1.05}
  .weatherPotentialBadge{min-width:5.18rem;border-radius:.78rem;padding:.36rem .4rem}
  .weatherPotentialBadge b{font-size:1.14rem}
  .weatherPotentialBadge span,.weatherPotentialBadge em{font-size:.44rem}
  .weatherMetricGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.24rem}
  .weatherMetricGrid div{min-height:2.28rem;padding:.32rem .36rem;border-radius:.62rem}
  .weatherMetricGrid b{font-size:.72rem}
  .weatherRead{font-size:.7rem;padding:.36rem .42rem}
  .weatherHeroActions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.22rem}
  .weatherHeroActions .btn.primary{grid-column:auto}
  .weatherHeroActions .btn{min-height:1.78rem;font-size:.66rem;padding:.3rem .3rem;white-space:normal}
  .weatherSpotSheet{align-items:end}
  .weatherSpotSheetPanel{width:calc(100vw - .58rem);max-height:calc(100dvh - 7.9rem);border-radius:1rem 1rem .9rem .9rem;margin-bottom:calc(env(safe-area-inset-bottom,0px) + .32rem);padding:.5rem;grid-template-rows:auto minmax(0,1fr)}
  .weatherSpotSheetPanel:before{width:2.7rem;height:.23rem;margin-top:-.12rem}
  .weatherSpotSheetPanel>header{grid-template-columns:minmax(0,1fr) auto;gap:.34rem}
  .weatherSpotSheetPanel>header b{font-size:.88rem}
  .weatherSpotSheetPanel>header small{font-size:.6rem;display:none}
  .weatherSpotSheetPanel>header button{min-height:1.58rem;padding:.24rem .44rem;font-size:.62rem}
  .weatherSpotSheetBody{min-height:0;overflow-y:auto;padding-bottom:.46rem}
  .weatherSpotSheetTabs{gap:.22rem;padding-bottom:.32rem}
  .weatherSpotSheetTab{min-height:1.48rem;max-width:5.8rem;border-radius:.48rem;padding:.18rem .32rem;font-size:.5rem;letter-spacing:.035em}
  .weatherSpotSheetGroup{margin-top:.32rem;scroll-margin-top:2.2rem}
  .weatherSpotSheetGroup h3{font-size:.5rem;margin-bottom:.22rem}
  .weatherSpotSheetGroup>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:.22rem}
  .weatherSpotSheetItem{min-height:2.72rem;border-radius:.58rem;padding:.28rem .32rem}
  .weatherSpotSheetItem b{font-size:.68rem;line-height:1.02}
  .weatherSpotSheetItem small{font-size:.5rem;line-height:1.03}
  .weatherBoard,.weatherSpotMatrix,.weatherActionRail{margin-top:.4rem;padding:.46rem;border-radius:.9rem}
  .weatherMoveStrip{margin-top:.4rem;padding:.46rem;border-radius:.86rem}
}
@media(max-width:370px){.weatherHeroActions .btn{font-size:.58rem}.weatherHeroControlDock .weatherSegment button,.weatherProfileDock .weatherSegment button{font-size:.5rem}.weatherSpotSheetGroup>div{grid-template-columns:1fr 1fr}.weatherSpotSheetItem{min-height:2.55rem}}

/* Phase 267 — Weather final compression + beach mode */
.weatherBeachToggle{appearance:none;border:1px solid rgba(6,34,56,.13);border-radius:999px;background:#fffdf8;color:var(--wx-navy);font:inherit;font-size:.72rem;font-weight:950;min-height:2.02rem;padding:.36rem .62rem;cursor:pointer;white-space:nowrap;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.weatherBeachToggle.is-active{background:linear-gradient(135deg,#062238,#0b4058);border-color:#062238;color:#fff}
.weatherBeachCard{border:1px solid rgba(6,34,56,.12);border-radius:.98rem;background:linear-gradient(135deg,#f6fbff,#fff7df);padding:.58rem;display:grid;gap:.5rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.44)}
.weatherBeachCard[hidden]{display:none!important}.weatherBeachHead{display:grid;gap:.08rem}.weatherBeachHead span{font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:#0b8da1;font-weight:950}.weatherBeachHead b{font-size:1.02rem;line-height:1.05;color:var(--wx-navy);font-weight:950}.weatherBeachHead small{color:#61727e;font-size:.7rem;line-height:1.2;font-weight:780}.weatherBeachGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.32rem}.weatherBeachGrid div{border:1px solid rgba(6,34,56,.08);border-radius:.68rem;background:rgba(255,255,255,.8);padding:.4rem .44rem;min-width:0}.weatherBeachGrid span{display:block;font-size:.53rem;letter-spacing:.09em;text-transform:uppercase;color:#6f7f8a;font-weight:950}.weatherBeachGrid b{display:block;margin-top:.12rem;color:var(--wx-navy);font-size:.74rem;line-height:1.12;font-weight:950;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.weatherHourlyToggle{appearance:none;border:1px solid rgba(243,180,93,.36);background:#fff7df;color:#6d4308;border-radius:999px;min-height:1.9rem;padding:.34rem .58rem;font:inherit;font-size:.7rem;font-weight:950;cursor:pointer;white-space:nowrap}.weatherBoard--collapsed .weatherSectionHead{margin-bottom:0}.weatherHourlyBody{display:grid;gap:.44rem}.weatherHourlyBody[hidden]{display:none!important}.weatherHourlyModes{display:flex;gap:.28rem;overflow:auto;scrollbar-width:none}.weatherHourlyModes::-webkit-scrollbar{display:none}.weatherHourlyModes button{appearance:none;border:1px solid rgba(6,34,56,.11);background:#fffdf8;color:#61727e;border-radius:999px;min-height:1.72rem;padding:.28rem .54rem;font:inherit;font-size:.66rem;font-weight:950;white-space:nowrap;cursor:pointer}.weatherHourlyModes button.is-active{background:var(--wx-navy);border-color:var(--wx-navy);color:#fff}.weatherBoard--collapsed{background:rgba(255,255,255,.78)}
.weatherFinalApp.is-beach-mode .weatherMetricGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.weatherFinalApp.is-beach-mode .weatherRead{display:none}.weatherFinalApp.is-beach-mode .weatherMoveStrip{margin-top:.48rem}
@media(min-width:861px){.weatherProfileDock{grid-template-columns:auto 1fr 1fr;align-items:stretch}.weatherBeachToggle{min-width:7.8rem}.weatherFinalApp.is-beach-mode .weatherNowCard{grid-template-columns:1.1fr .9fr;align-items:start}.weatherFinalApp.is-beach-mode .weatherBeachCard{grid-column:2;grid-row:2 / span 3}.weatherFinalApp.is-beach-mode .weatherNowTop,.weatherFinalApp.is-beach-mode .weatherMetricGrid,.weatherFinalApp.is-beach-mode .weatherHeroActions{grid-column:1}.weatherFinalApp.is-beach-mode .weatherMetricGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.weatherFinalSection{padding-top:.22rem}.weatherNowCard{padding:.44rem!important;gap:.32rem!important;border-radius:.96rem!important}.weatherFinalKicker{display:none}.weatherHeroControlDock{gap:.22rem!important}.weatherSpotSwitch{padding:.34rem .4rem!important;border-radius:.66rem!important}.weatherSpotSwitch b{font-size:.82rem!important}.weatherSpotSwitch span{font-size:.46rem!important}.weatherSpotSwitch:after{width:1.18rem!important;height:1.18rem!important;font-size:.72rem!important}.weatherProfileDock{grid-template-columns:auto 1fr!important;gap:.2rem!important}.weatherProfileDock .weatherSegment:nth-of-type(2){grid-column:1/-1}.weatherBeachToggle{min-height:1.38rem;border-radius:.5rem;font-size:.54rem;padding:.16rem .32rem}.weatherHeroControlDock .weatherSegment button,.weatherProfileDock .weatherSegment button{min-height:1.32rem!important;font-size:.52rem!important;padding:.1rem .12rem!important}.weatherNowTop{grid-template-columns:minmax(0,1fr) auto!important;gap:.32rem!important}.weatherNowMain strong{font-size:2.25rem!important}.weatherNowMain span{font-size:.58rem!important;margin-top:.22rem!important}.weatherPotentialBadge{min-width:4.8rem!important;padding:.32rem .36rem!important;border-radius:.7rem!important}.weatherPotentialBadge b{font-size:1.02rem!important}.weatherMetricGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.2rem!important}.weatherMetricGrid div{min-height:2.05rem!important;padding:.24rem .28rem!important;border-radius:.54rem!important}.weatherMetricGrid span{font-size:.46rem!important}.weatherMetricGrid b{font-size:.66rem!important;line-height:1.1!important}.weatherRead{font-size:.64rem!important;padding:.3rem .34rem!important;border-radius:.58rem!important}.weatherHeroActions{gap:.18rem!important}.weatherHeroActions .btn{min-height:1.52rem!important;font-size:.58rem!important;padding:.24rem .18rem!important}.weatherBeachCard{padding:.42rem;border-radius:.74rem;gap:.34rem}.weatherBeachHead b{font-size:.88rem}.weatherBeachHead small{font-size:.62rem}.weatherBeachGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.22rem}.weatherBeachGrid div{padding:.3rem .32rem;border-radius:.54rem}.weatherBeachGrid span{font-size:.46rem}.weatherBeachGrid b{font-size:.64rem}.weatherMoveStrip{margin-top:.34rem!important;padding:.4rem!important;border-radius:.76rem!important}.weatherMoveStrip .weatherMoveMain b{font-size:1rem!important}.weatherMoveStrip .weatherMoveMain small{font-size:.68rem!important}.weatherBoard,.weatherSpotMatrix,.weatherActionRail{margin-top:.34rem!important;padding:.4rem!important;border-radius:.78rem!important}.weatherSectionHead{align-items:center!important;margin-bottom:.28rem!important}.weatherSectionHead b{font-size:.84rem!important}.weatherSectionHead small{font-size:.62rem!important;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.weatherSectionHead>span{display:none}.weatherHourlyToggle{min-height:1.46rem;font-size:.56rem;padding:.18rem .36rem}.weatherHourlyModes button{min-height:1.42rem;font-size:.56rem;padding:.18rem .38rem}.weatherHourlyRail{grid-template-columns:repeat(12,minmax(6.6rem,1fr))!important}.weatherHourCard,.weatherHourlyRail article{min-height:4.8rem!important;padding:.38rem!important;border-radius:.68rem!important}.weatherHourCard b,.weatherHourlyRail article b{font-size:.8rem!important}.weatherHourCard span,.weatherHourlyRail article span,.weatherHourCard em,.weatherHourlyRail article em{font-size:.6rem!important}.weatherSpotGroup>div{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.28rem!important}.weatherSpotCard{padding:.42rem!important;border-radius:.72rem!important}.weatherSpotCard span{font-size:.72rem!important}.weatherSpotCard small,.weatherSpotCard em{font-size:.58rem!important}.weatherActionRail nav{grid-template-columns:1fr 1fr!important}.weatherActionRail nav a:first-child{grid-column:1/-1}.weatherFinalApp.is-beach-mode .weatherMetricGrid{display:none}}
@media(max-width:380px){.weatherMetricGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.weatherProfileDock{grid-template-columns:1fr!important}.weatherProfileDock .weatherSegment:nth-of-type(2){grid-column:auto}.weatherBeachToggle{width:100%}.weatherHeroActions{grid-template-columns:1fr 1fr!important}.weatherHeroActions .btn.primary{grid-column:1/-1!important}}

/* Phase 268 — functional compact Weather spot sheet + final Weather density */
.weatherSpotSheetPanel{max-height:min(64dvh,34rem);width:min(38rem,calc(100vw - .9rem));border-radius:1.05rem;padding:.5rem;gap:.42rem}
.weatherSpotSheetPanel>header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.38rem}
.weatherSpotSheetPanel>header b{font-size:.88rem;line-height:1.05}.weatherSpotSheetPanel>header small{display:none}.weatherSpotSheetPanel>header button{min-height:1.56rem;padding:.22rem .48rem;font-size:.62rem}
.weatherSpotSheetBody{display:grid;grid-template-rows:auto minmax(0,1fr);gap:.34rem;overflow:hidden;min-height:0;padding:.02rem}
.weatherSpotSheetTabs{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.22rem;overflow:visible;padding:0;margin:0;background:transparent}
.weatherSpotSheetTab{min-width:0;max-width:none;min-height:1.46rem;border-radius:.44rem;padding:.14rem .22rem;font-size:.5rem;letter-spacing:.025em;text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.weatherSpotSheetGroup{min-height:0;margin:0;overflow:auto;display:block;scroll-margin:0;padding-right:.02rem;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.weatherSpotSheetGroup h3{font-size:.52rem;margin:0 0 .24rem}.weatherSpotSheetGroup>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:.22rem}
.weatherSpotSheetItem{position:relative;min-height:2.35rem;border-radius:.56rem;padding:.24rem .3rem .24rem 1.22rem;gap:.02rem;align-content:center}.weatherSpotSheetItem i{position:absolute;left:.36rem;top:50%;width:.44rem;height:.44rem;margin-top:-.22rem;border-radius:.16rem;background:rgba(6,34,56,.14)}.weatherSpotSheetItem.is-active i{background:var(--wx-navy)}.weatherSpotSheetItem b{font-size:.68rem;line-height:1.02}.weatherSpotSheetItem small{font-size:.48rem;line-height:1.02}.weatherSpotSheetItem em{display:none!important}
.weatherFinalHero{margin-bottom:.4rem}.weatherNowCard{padding:.56rem;border-radius:1.05rem}.weatherNowTop{margin-top:.18rem}.weatherMetricGrid{gap:.28rem}.weatherMetricGrid div{min-height:3rem;padding:.42rem}.weatherRead{padding:.48rem .55rem;font-size:.78rem}.weatherProfileDock{gap:.28rem}.weatherHeroActions{gap:.28rem}.weatherFinalApp .btn{min-width:0;overflow-wrap:anywhere;text-wrap:balance}
@media(max-width:760px){.weatherSpotSheetPanel{max-height:calc(100dvh - 11.4rem);width:calc(100vw - .55rem);border-radius:.92rem;padding:.42rem;margin-bottom:calc(env(safe-area-inset-bottom,0px) + .28rem)}.weatherSpotSheetTabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:.18rem}.weatherSpotSheetTab{min-height:1.34rem;font-size:.45rem;border-radius:.38rem}.weatherSpotSheetGroup>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:.18rem}.weatherSpotSheetItem{min-height:2.16rem;border-radius:.5rem;padding:.22rem .26rem .22rem 1.06rem}.weatherSpotSheetItem i{left:.3rem;width:.38rem;height:.38rem;margin-top:-.19rem}.weatherSpotSheetItem b{font-size:.62rem}.weatherSpotSheetItem small{font-size:.45rem}.weatherSpotSheetPanel:before{height:.2rem;width:2.45rem}.weatherNowMain strong{font-size:clamp(2.15rem,16vw,4.2rem)}.weatherPotentialBadge b{font-size:1.62rem}.weatherMetricGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.weatherMetricGrid div{min-height:2.74rem}.weatherMoveStrip,.weatherBoard,.weatherSpotMatrix,.weatherActionRail{margin-top:.34rem}}
@media(max-width:380px){.weatherSpotSheetTabs{grid-template-columns:repeat(2,minmax(0,1fr))}.weatherSpotSheetPanel{max-height:calc(100dvh - 10rem)}.weatherSpotSheetGroup>div{grid-template-columns:1fr 1fr}}

/* Phase 272 — weather shared visual/font polish */
.weatherFinalApp{--wx-navy:var(--tgz-navy,#08263c);--wx-ink:var(--tgz-ink,#162b3a);--wx-line:var(--tgz-sand,#eadfce);font-family:var(--tgz-font-body,"Inter",system-ui)}
.weatherFinalHero{padding:.72rem!important;border-radius:1.2rem!important}.weatherNowCard{gap:.46rem!important}.weatherHeroControlDock{gap:.36rem!important}.weatherSpotSwitch{min-height:54px;padding:.46rem .56rem!important}.weatherSpotSwitch b{font-size:.96rem!important}.weatherSpotSwitch small{font-size:.64rem!important}.weatherProfileDock{gap:.3rem!important}.weatherSegment{padding:.18rem!important;border-radius:.8rem!important}.weatherSegment button{min-height:1.72rem!important;font-size:.66rem!important;border-radius:.62rem!important;padding:.22rem .32rem!important}.weatherMetricGrid{gap:.3rem!important}.weatherMetricGrid div{min-height:2.55rem!important;padding:.38rem!important}.weatherMetricGrid b{font-size:.9rem!important}.weatherMetricGrid small{font-size:.58rem!important}.weatherHeroActions{gap:.32rem!important}.weatherHeroActions .btn{min-height:1.9rem!important;font-size:.72rem!important;padding:.38rem .5rem!important}.weatherBoard,.weatherSpotMatrix,.weatherActionRail{margin-top:.42rem!important;padding:.5rem!important;border-radius:1rem!important}.weatherSectionHead{margin-bottom:.36rem!important}.weatherSectionHead b{font-size:.9rem!important}.weatherSpotSheetPanel{border-radius:1rem!important;padding:.5rem!important;max-height:min(70dvh,34rem)!important}.weatherSpotSheetPanel>header b{font-size:.92rem!important}.weatherSpotSheetPanel>header small{font-size:.66rem!important}.weatherSpotSheetTabs{gap:.22rem!important;padding-bottom:.3rem!important}.weatherSpotSheetTab{min-height:1.44rem!important;border-radius:.52rem!important;padding:.18rem .34rem!important;font-size:.53rem!important;letter-spacing:.03em!important}.weatherSpotSheetItem{border-radius:.62rem!important;padding:.36rem .42rem!important;min-height:46px!important}.weatherSpotSheetItem b{font-size:.76rem!important}.weatherSpotSheetItem small{font-size:.58rem!important}.weatherSpotSheetItem em{font-size:.56rem!important}.weatherSpotSheetGroup>div{gap:.26rem!important}.weatherSpotSheetGroup h3{font-size:.54rem!important;margin-bottom:.16rem!important}.weatherBeachMode{padding:.5rem!important;border-radius:1rem!important}.weatherHourlyRail article,.weatherHourCard{min-height:auto!important;padding:.45rem!important;border-radius:.76rem!important}
@media(max-width:720px){.weatherFinalSection{padding-top:.32rem!important}.weatherFinalApp{gap:.42rem!important}.weatherFinalHero{padding:.55rem!important}.weatherPotentialBadge{padding:.42rem .48rem!important}.weatherPotentialBadge b{font-size:1.16rem!important}.weatherMoveStrip{padding:.5rem!important}.weatherMoveStrip .weatherMoveMain b{font-size:1.05rem!important}.weatherSpotSheetPanel{width:calc(100vw - .55rem)!important;max-height:68dvh!important;margin-bottom:calc(env(safe-area-inset-bottom,0px) + .32rem)!important}.weatherSpotSheetGroup>div{grid-template-columns:repeat(2,minmax(0,1fr))!important}.weatherSpotSheetItem{min-height:42px!important}.weatherHeroActions{grid-template-columns:repeat(3,minmax(0,1fr))!important}.weatherHeroActions .btn.primary{grid-column:auto!important}.weatherMetricGrid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.weatherMetricGrid div{min-height:2.28rem!important}.weatherMetricGrid small{font-size:.5rem!important}.weatherMetricGrid b{font-size:.74rem!important}.weatherMetricGrid span{font-size:.56rem!important}}
