.dpwx{--blue:#004694;--red:#b20d20;--gold:#d7a400;--marine:#0869a8;--ink:#111;--muted:#68707a;--line:#d9dde2;font-family:inherit;color:var(--ink)}
.dpwx *{box-sizing:border-box}.dpwx h2,.dpwx h3{margin:0}.dpwx section{margin:22px 0}.dpwx-alert{display:flex;align-items:center;gap:16px;color:#fff;padding:9px 12px;margin:0 0 4px;font-size:14px;overflow:hidden}.dpwx-alert strong{white-space:nowrap;font-size:12px;letter-spacing:.05em}.dpwx-alert-red{background:var(--red)}.dpwx-alert-gold{background:#b48700}.dpwx-alert-blue{background:var(--marine)}.dpwx-alert-window{overflow:hidden;flex:1}.dpwx-alert-track{display:flex;width:max-content;gap:32px;animation:dpwx-scroll 32s linear infinite}.dpwx-alert:hover .dpwx-alert-track{animation-play-state:paused}.dpwx-alert-item{border:0;background:transparent;color:#fff;padding:0;cursor:pointer;white-space:nowrap;text-decoration:underline;text-underline-offset:2px}@keyframes dpwx-scroll{to{transform:translateX(-50%)}}
.dpwx-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.dpwx-section-head h2,.dpwx-regional>h2,.dpwx-marine h2,.dpwx-story>h2{font-size:24px}.dpwx-map-controls{display:flex;gap:6px;flex-wrap:wrap}.dpwx-map-controls button,.dpwx-city-search button{border:1px solid var(--line);background:#fff;padding:8px 10px;border-radius:4px;cursor:pointer}.dpwx-map-controls button.active,.dpwx-city-search button{background:var(--blue);color:#fff;border-color:var(--blue)}#dpwx-map{height:520px;border:1px solid var(--line);background:#e9eef2}.dpwx-map-foot{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:12px;margin-top:5px}
.dpwx-live{display:flex;align-items:stretch;background:#101820;color:#fff;min-height:52px;margin-top:10px!important}.dpwx-live-label{background:var(--blue);display:flex;align-items:center;justify-content:center;padding:8px 18px;font-size:13px;font-weight:700;letter-spacing:.03em;white-space:nowrap;min-width:210px;transition:opacity .25s}#dpwx-city-rotator{display:flex;align-items:center;padding:10px 18px;font-size:17px;transition:opacity .25s}.dpwx-city-line{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.dpwx-city-line .temp{font-size:23px;font-weight:700}
.dpwx-hq{display:grid;grid-template-columns:2fr 1fr;gap:18px}.dpwx-hq-main,.dpwx-city-search,.dpwx-region-card,.dpwx-marine-card{border:1px solid var(--line);padding:18px;background:#fff}.dpwx-eyebrow{color:var(--blue);font-weight:700;font-size:12px;letter-spacing:.08em}.dpwx-hq h2{font-size:30px;margin:3px 0 10px}.dpwx-current{display:flex;gap:18px;align-items:center;padding:10px 0 16px;border-bottom:1px solid var(--line)}.dpwx-current-temp{font-size:54px;font-weight:700;line-height:1}.dpwx-current-text{font-size:18px;margin-bottom:8px}.dpwx-current-grid{display:flex;gap:14px;flex-wrap:wrap;font-size:13px}.dpwx-city-search h3{margin-bottom:12px}.dpwx-city-search label{display:block;font-size:12px;font-weight:700;margin-bottom:5px}.dpwx-city-search input{width:100%;border:1px solid var(--line);padding:10px;border-radius:4px;margin-bottom:8px}.dpwx-city-search button{width:100%}#dpwx-city-result{margin-top:12px}.dpwx-search-period{padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.dpwx-periods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.dpwx-period{background:#f5f7f8;padding:9px;border-radius:4px;min-width:0}.dpwx-period-name{font-size:15px;font-weight:700;text-transform:uppercase}.dpwx-period-main{display:flex;align-items:center;gap:6px;margin:4px 0}.dpwx-period-main strong{font-size:30px}.dpwx-period-desc{font-size:17px;line-height:1.5;color:#303840}.dpwx-hq-periods .dpwx-periods{grid-template-columns:repeat(2,1fr)}
.dpwx-region-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:10px}.dpwx-region-card{padding:0;overflow:hidden}.dpwx-region-card>h3{color:var(--blue);padding:18px 18px 0}.dpwx-marine-card h3{color:var(--blue)}.dpwx-region-location{font-size:11px;color:var(--muted);padding:3px 18px 10px}.dpwx-regional-periods{display:block}.dpwx-regional-period{padding:13px 18px;border-bottom:2px solid var(--blue)}.dpwx-regional-period:last-child{border-bottom:0}.dpwx-regional-period.is-day{background:#fff}.dpwx-regional-period.is-night{background:#f5f7f8}.dpwx-regional-period-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:5px}.dpwx-regional-period-head strong{font-size:12px;text-transform:uppercase}.dpwx-regional-period-head span{font-size:20px;font-weight:700;white-space:nowrap}.dpwx-regional-period-text{font-size:13px;line-height:1.45;color:#303840}.dpwx-regional-period-wind{font-size:11px;color:var(--muted);margin-top:4px}
.dpwx-sub{color:var(--muted);margin:4px 0 0}.dpwx-marine-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:12px}.dpwx-marine-select-wrap{min-width:300px;font-size:12px;font-weight:700}.dpwx-marine-select-wrap span{display:block;margin-bottom:5px}.dpwx-marine-select-wrap select{width:100%;border:1px solid var(--line);background:#fff;border-radius:4px;padding:10px 36px 10px 10px;font-family:inherit;font-size:inherit;font-weight:400;color:var(--ink)}.dpwx-marine-card{display:none}.dpwx-marine-card.active{display:block}.dpwx-marine-card h3{font-size:22px;margin-bottom:12px}.dpwx-marine-periods{display:block}.dpwx-marine-period{padding:14px 16px;border-radius:0;border-bottom:2px solid var(--blue)}.dpwx-marine-period.is-day{background:#fff}.dpwx-marine-period.is-night{background:#f5f7f8}.dpwx-marine-period:last-child{border-bottom:0}.dpwx-marine-period-name{font-size:12px;font-weight:700;text-transform:uppercase;margin-bottom:5px}.dpwx-marine-period-text{font-size:14px;line-height:1.5;color:#303840}.dpwx-marine-kicker{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--blue);margin:2px 0 4px}.dpwx-marine-extended-title{margin-top:22px}.dpwx-marine-extended-note{font-size:11px;color:var(--muted);margin:0 0 4px}.dpwx-marine-extended{border-top:0}.dpwx-unavailable{padding:18px;background:#f5f7f8;color:var(--muted);border-radius:4px}
.dpwx-story-card{display:grid;grid-template-columns:220px 1fr;gap:16px;border:1px solid var(--line);text-decoration:none;color:inherit;margin-top:10px}.dpwx-story-card img{width:100%;height:140px;object-fit:cover}.dpwx-story-card>div{padding:14px}.dpwx-story-card h3{font-size:22px}.dpwx-story-card p{color:var(--muted);margin:5px 0 0}.dpwx-source-note{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;margin-top:20px}
#dpwx-alert-dialog{max-width:760px;width:calc(100% - 30px);border:0;border-radius:6px;padding:24px;box-shadow:0 12px 40px rgba(0,0,0,.3)}#dpwx-alert-dialog::backdrop{background:rgba(0,0,0,.55)}.dpwx-dialog-close{float:right;border:0;background:transparent;font-size:30px;cursor:pointer}.dpwx-dialog-body h2{margin-right:35px}.dpwx-alert-meta{color:var(--muted);margin:8px 0 14px}.dpwx-alert-copy{white-space:pre-wrap;line-height:1.5}
@media(min-width:1250px){.dpwx-region-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:699px){.dpwx-section-head{align-items:flex-start;flex-direction:column}.dpwx-map-controls{width:100%}.dpwx-map-controls button{flex:1;padding:7px 5px;font-size:12px}#dpwx-map{height:390px}.dpwx-map-foot{flex-direction:column;gap:2px}.dpwx-live{display:block}.dpwx-live-label{justify-content:flex-start;min-width:0;padding:7px 12px}.dpwx-city-line{gap:8px 14px;font-size:13px}.dpwx-hq{grid-template-columns:1fr}.dpwx-current{align-items:flex-start}.dpwx-current-grid{display:grid;gap:4px}.dpwx-region-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:8px}.dpwx-region-card{flex:0 0 92%;scroll-snap-align:start}.dpwx-marine-head{display:block}.dpwx-marine-select-wrap{display:block;min-width:0;margin-top:12px}.dpwx-marine-periods{display:block}.dpwx-story-card{grid-template-columns:1fr}.dpwx-story-card img{height:180px}.dpwx-alert{gap:8px}.dpwx-alert strong{font-size:10px}.dpwx-alert-track{animation-duration:26s}}

/* v0.2.0: single-region carousel with compact U.P. county-region graphic */
.dpwx-region-grid{display:block!important;margin-top:10px}
.dpwx-region-carousel{margin-top:10px;touch-action:pan-y}
.dpwx-region-card{display:none;border:1px solid var(--line);overflow:hidden;background:#fff}
.dpwx-region-card.active{display:block}
.dpwx-region-titlebar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 16px 10px 18px;border-bottom:2px solid var(--blue);background:#fff}
.dpwx-region-titlebar h3{margin:0!important;padding:0!important;color:var(--blue);text-align:left;font-size:26px;line-height:1.1;flex:1 1 auto}
.dpwx-region-mapnav{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.dpwx-region-map{display:block;width:190px;max-width:30vw;height:auto;object-fit:contain}
.dpwx-region-arrow{width:34px;height:38px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--blue);font-size:28px;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}
.dpwx-region-arrow:hover,.dpwx-region-arrow:focus{background:var(--blue);color:#fff;border-color:var(--blue)}
@media (max-width:700px){
  .dpwx-region-titlebar{gap:8px;padding:9px 10px 9px 14px}
  .dpwx-region-titlebar h3{font-size:21px}
  .dpwx-region-map{width:125px;max-width:38vw}
  .dpwx-region-arrow{width:30px;height:34px;font-size:24px}
}
@media (max-width:430px){
  .dpwx-region-map{width:105px;max-width:34vw}
  .dpwx-region-mapnav{gap:4px}
  .dpwx-region-arrow{width:28px;height:32px}
}

/* v0.2.2: richer ticker + integrated city search */
.dpwx-live-label{min-width:210px}
.dpwx-city-line{gap:18px}
.dpwx-white-weather-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:#fff;flex:0 0 30px}
.dpwx-white-weather-icon svg{display:block;width:28px;height:28px}
.dpwx-hq{display:block}
.dpwx-hq-main{width:100%;padding:22px 24px}
.dpwx-hq-top{display:flex;align-items:center;justify-content:space-between;gap:20px}
.dpwx-inline-search{position:relative;width:min(360px,42%);flex:0 1 360px}
.dpwx-inline-search input{width:100%;height:42px;border:1px solid var(--line);border-radius:4px;background:#fff;padding:9px 48px 9px 14px;font:inherit;color:#111;outline:none}
.dpwx-inline-search input::placeholder{color:#9aa1a9;opacity:1}
.dpwx-inline-search input:focus{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.dpwx-inline-search button{position:absolute;right:0;top:0;width:44px;height:42px;border:0;background:transparent;color:var(--blue);font-size:28px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.dpwx-inline-search button:hover,.dpwx-inline-search button:focus{background:#f3f6fa}
#dpwx-city-result{margin-top:8px;color:var(--muted);font-size:12px}
@media(max-width:699px){
  .dpwx-hq-main{padding:18px}
  .dpwx-hq-top{align-items:flex-start;flex-direction:column;gap:10px}
  .dpwx-inline-search{width:100%;max-width:none;flex-basis:auto}
  .dpwx-city-line{gap:8px 12px}
  .dpwx-white-weather-icon{width:26px;height:26px;flex-basis:26px}.dpwx-white-weather-icon svg{width:24px;height:24px}
}
.dpwx-inline-search button svg{width:21px;height:21px;display:block}

/* v0.2.3: single-line ticker + day/night local cards + compact five-day tiles */
.dpwx-live{display:flex!important;align-items:stretch;min-width:0;overflow:hidden}
.dpwx-live-label{flex:0 0 auto;min-width:0!important;width:auto;padding:8px 14px;font-size:12px}
#dpwx-city-rotator{flex:1 1 auto;min-width:0;overflow:hidden;padding:8px 14px!important;white-space:nowrap}
.dpwx-city-line{display:flex;align-items:center;flex-wrap:nowrap!important;white-space:nowrap;gap:clamp(7px,1.2vw,18px)!important;width:max-content;max-width:none;line-height:1.1}
.dpwx-city-line .temp{font-size:1.35em!important;line-height:1;font-weight:700}
.dpwx-ticker-emoji{display:inline-block;font-size:1.25em;line-height:1;flex:0 0 auto}

.dpwx-period{background:#fff!important;border:1px solid #edf0f2}
.dpwx-period.is-night{background:#f5f7f8!important}
.dpwx-period.is-day{background:#fff!important}

.dpwx-five-day{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}
.dpwx-five-day-tile{border:1px solid var(--line);background:#fff;text-align:center;padding:10px 6px;border-radius:4px;min-width:0}
.dpwx-five-day-name{font-size:11px;font-weight:700;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dpwx-five-day-icon{font-size:25px;line-height:1;margin:7px 0}
.dpwx-five-day-temp{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;font-size:11px;font-weight:700}
.dpwx-five-day-temp span{white-space:nowrap}

@media(max-width:699px){
  .dpwx-live-label{font-size:10px;padding:7px 8px}
  #dpwx-city-rotator{padding:7px 8px!important}
  .dpwx-city-line{gap:6px!important}
  .dpwx-five-day{gap:4px}
  .dpwx-five-day-tile{padding:8px 2px}
  .dpwx-five-day-name{font-size:9px}
  .dpwx-five-day-icon{font-size:20px;margin:6px 0}
  .dpwx-five-day-temp{font-size:9px;gap:2px;display:block}
}


/* v0.2.6: unified descriptive type + regional weather/value placement */
.dpwx-period-desc,
.dpwx-regional-period-text,
.dpwx-marine-period-text{
  font-size:14px!important;
  line-height:1.5;
}
.dpwx-regional-period-head{
  display:block;
  margin-bottom:7px;
}
.dpwx-regional-period-head strong{
  font-size:12px;
  text-transform:uppercase;
}
.dpwx-regional-period-body{
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.dpwx-regional-period-weather{
  display:flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
  min-width:88px;
}
.dpwx-regional-period-icon{
  font-size:24px;
  line-height:1;
}
.dpwx-regional-period-temp{
  font-size:24px;
  line-height:1;
  font-weight:700;
  white-space:nowrap;
}
.dpwx-regional-period-copy{
  flex:1 1 auto;
  min-width:0;
}
.dpwx-regional-period-wind{
  margin-top:5px;
}
@media(max-width:520px){
  .dpwx-regional-period-body{gap:10px}
  .dpwx-regional-period-weather{min-width:76px;gap:5px}
  .dpwx-regional-period-icon{font-size:21px}
  .dpwx-regional-period-temp{font-size:22px}
}

/* v0.2.7: HQ forecast emoji matches temperature size */
.dpwx-period-main>span{font-size:30px;line-height:1;display:inline-flex;align-items:center}

/* v0.2.12: Night Sky starts clear of title fade, pauses 5s, scrolls at medium speed, and includes viewing-time guidance */
.dpwx-night-sky-wrap{margin:18px 0 22px}
.dpwx-night-sky{position:relative;isolation:isolate;overflow:hidden;min-height:48px;border-radius:4px;background:#171229;color:#fff;display:flex;align-items:center;padding:9px 16px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.dpwx-night-sky.is-hidden{display:none}
.dpwx-night-content{position:relative;z-index:3;display:flex;align-items:center;gap:13px;width:100%;min-width:0;overflow:hidden}
.dpwx-night-content strong{flex:0 0 auto;font-size:12px;letter-spacing:.04em;white-space:nowrap;text-transform:uppercase}
.dpwx-night-scroll{position:relative;display:block;flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.7);mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 14px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 14px),transparent 100%)}
.dpwx-night-scroll #dpwx-night-text{display:inline-block;width:max-content;max-width:none;padding-left:8px;font-size:13px;line-height:1.25;white-space:nowrap;will-change:transform,opacity;transform:translateX(0);opacity:1}
.dpwx-night-effects{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.dpwx-night-effects .aurora{display:none;position:absolute;left:-10%;width:120%;height:120%;top:-55%;border-radius:50%;filter:blur(12px);opacity:.12;transform-origin:center;background:linear-gradient(100deg,transparent 5%,rgba(85,255,182,.85) 30%,rgba(124,92,255,.72) 58%,rgba(57,210,255,.55) 77%,transparent 96%);animation:dpwxAurora 8s ease-in-out infinite alternate}
.dpwx-night-effects .aurora.a2{top:-32%;left:-18%;opacity:.09;animation-duration:11s;animation-delay:-3s;transform:rotate(-8deg)}
.dpwx-night-aurora .aurora,.dpwx-night-double .aurora{display:block}
.dpwx-night-aurora.level-low .aurora{opacity:.07;animation-duration:13s}
.dpwx-night-aurora.level-moderate .aurora{opacity:.13;animation-duration:9s}
.dpwx-night-aurora.level-strong .aurora,.dpwx-night-double.level-strong .aurora{opacity:.20;animation-duration:6s}
@keyframes dpwxAurora{0%{transform:translate3d(-3%,1%,0) skewX(-8deg) scaleY(.8)}50%{transform:translate3d(4%,9%,0) skewX(7deg) scaleY(1.05)}100%{transform:translate3d(-1%,14%,0) skewX(-3deg) scaleY(.9)}}
.dpwx-night-effects .meteor{display:none;position:absolute;width:72px;height:1.5px;right:-90px;top:5px;background:linear-gradient(90deg,rgba(255,255,255,.98) 0,rgba(255,255,255,.35) 62%,transparent 100%);transform:rotate(-8deg);filter:drop-shadow(0 0 3px rgba(255,255,255,.72));opacity:0;animation:dpwxMeteor 4.2s linear infinite}
.dpwx-night-effects .meteor:after{content:"";position:absolute;left:-2px;top:-1.5px;width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.95);box-shadow:0 0 5px rgba(255,255,255,.8)}
.dpwx-night-effects .meteor.m1{top:3px;animation-delay:-.2s;animation-duration:4.0s}
.dpwx-night-effects .meteor.m2{top:31px;animation-delay:-2.1s;animation-duration:4.7s;opacity:.78}
.dpwx-night-effects .meteor.m3{top:13px;animation-delay:-3.4s;animation-duration:5.1s;width:58px}
.dpwx-night-effects .meteor.m4{top:39px;animation-delay:-1.0s;animation-duration:5.6s;width:82px;opacity:.68}
.dpwx-night-effects .meteor.m5{top:21px;animation-delay:-4.6s;animation-duration:6.0s;width:66px}
.dpwx-night-effects .meteor.m6{top:7px;animation-delay:-5.1s;animation-duration:6.4s;width:52px;opacity:.72}
.dpwx-night-effects .meteor.m7{top:34px;animation-delay:-3.0s;animation-duration:6.8s;width:76px}
.dpwx-night-effects .meteor.m8{top:17px;animation-delay:-6.2s;animation-duration:7.3s;width:60px;opacity:.8}
.dpwx-night-meteor .meteor,.dpwx-night-double .meteor{display:block}
@keyframes dpwxMeteor{0%,55%{transform:translate3d(0,0,0) rotate(-8deg);opacity:0}57%{opacity:1}78%{opacity:.95}100%{transform:translate3d(-1500px,42px,0) rotate(-8deg);opacity:0}}
.dpwx-night-effects .eclipse-moon{display:none;position:absolute;right:22px;top:50%;width:46px;height:46px;margin-top:-23px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#f7f2df 0 42%,#d6d0bf 66%,#aaa 100%);opacity:.28;box-shadow:0 0 18px rgba(255,255,255,.25)}
.dpwx-night-effects .eclipse-moon:after{content:"";position:absolute;width:47px;height:47px;border-radius:50%;left:-28px;top:-2px;background:#171229;animation:dpwxEclipse 9s ease-in-out infinite alternate}
.dpwx-night-eclipse .eclipse-moon{display:block}
@keyframes dpwxEclipse{from{transform:translateX(-8px)}to{transform:translateX(30px)}}
.dpwx-night-test{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:6px;font-size:10px;color:var(--muted)}
.dpwx-night-test span{font-weight:700;margin-right:2px}
.dpwx-night-test button{border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;padding:4px 7px;border-radius:3px;cursor:pointer}
.dpwx-night-test button:hover,.dpwx-night-test button.active{border-color:var(--blue);color:var(--blue)}
@media(max-width:699px){
  .dpwx-night-sky{padding:8px 10px;min-height:46px}
  .dpwx-night-content{gap:8px}
  .dpwx-night-content strong{font-size:10px}
  .dpwx-night-scroll #dpwx-night-text{font-size:11px}
  .dpwx-night-effects .eclipse-moon{right:8px;opacity:.18}
}
@media(prefers-reduced-motion:reduce){
  .dpwx-night-effects *{animation:none!important}
  .dpwx-night-scroll{mask-image:none;-webkit-mask-image:none;text-overflow:ellipsis}
  .dpwx-night-scroll #dpwx-night-text{animation:none!important;padding-left:0;display:block;overflow:hidden;text-overflow:ellipsis}
}



/* v0.2.13: temporary top-alert marquee test controls */
.dpwx-alert-test-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:0 0 7px;font-size:10px;color:var(--muted)}
.dpwx-alert-test-controls span{font-weight:700;margin-right:2px}
.dpwx-alert-test-controls button{border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;padding:4px 7px;border-radius:3px;cursor:pointer}
.dpwx-alert-test-controls button:hover,.dpwx-alert-test-controls button.active{border-color:var(--blue);color:var(--blue)}
#dpwx-alert-test-stage{margin-bottom:4px}
.dpwx-alert-test-banner{margin-bottom:4px}


/* v0.2.14: five-second cross-fade alert rotators + Night Sky detail dialog */
.dpwx-alert-window{position:relative;min-height:20px;overflow:hidden;flex:1}
.dpwx-alert-track{animation:none!important;display:block!important;width:auto!important}
.dpwx-alert .dpwx-alert-item{position:absolute;left:0;top:50%;transform:translateY(-50%);width:100%;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s ease,visibility .55s ease;text-align:left;overflow:hidden;text-overflow:ellipsis}
.dpwx-alert .dpwx-alert-item.active{opacity:1;visibility:visible;pointer-events:auto}
.dpwx-alert:hover .dpwx-alert-item{animation-play-state:running}
.dpwx-night-sky[role=button]{cursor:pointer}
.dpwx-night-sky[role=button]:focus-visible{outline:2px solid #fff;outline-offset:2px}
.dpwx-night-dialog-intro{margin-bottom:14px}
.dpwx-night-dialog-heading{margin:16px 0 7px!important;color:#004694;font-size:15px}
.dpwx-night-region-list{border-top:1px solid #d9dee3}
.dpwx-night-region-row{display:grid;grid-template-columns:155px 90px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid #d9dee3;align-items:start;font-size:13px;line-height:1.4}
.dpwx-night-region-row>strong{color:#004694}
.dpwx-night-rating{font-weight:700}
@media(max-width:600px){.dpwx-night-region-row{grid-template-columns:1fr auto}.dpwx-night-region-row>span:last-child{grid-column:1/-1}.dpwx-alert-window{min-height:18px}}


/* v0.2.15: split-color alert bars. Dark category title, lighter message field, dark bottom rule. */
.dpwx-alert{
  gap:0;
  padding:0;
  color:var(--ink);
  border-bottom-width:3px;
  border-bottom-style:solid;
  background:#fff;
}
.dpwx-alert strong{
  align-self:stretch;
  display:flex;
  align-items:center;
  padding:9px 12px;
  color:#fff;
  flex:0 0 auto;
}
.dpwx-alert-window{padding:9px 12px;}
.dpwx-alert-red{background:#f8dde2;border-bottom-color:var(--red)}
.dpwx-alert-red strong{background:var(--red)}
.dpwx-alert-red .dpwx-alert-window{background:#f8dde2}
.dpwx-alert-red .dpwx-alert-item{color:#7d0a18}
.dpwx-alert-gold{background:#fff1b8;border-bottom-color:#b48700}
.dpwx-alert-gold strong{background:#b48700}
.dpwx-alert-gold .dpwx-alert-window{background:#fff1b8}
.dpwx-alert-gold .dpwx-alert-item{color:#6d5100}
.dpwx-alert-blue{background:#dceefa;border-bottom-color:var(--marine)}
.dpwx-alert-blue strong{background:var(--marine)}
.dpwx-alert-blue .dpwx-alert-window{background:#dceefa}
.dpwx-alert-blue .dpwx-alert-item{color:#064d78}
.dpwx-alert .dpwx-alert-item{text-decoration:none;font-weight:600}
@media(max-width:600px){
  .dpwx-alert strong{padding:8px 9px}
  .dpwx-alert-window{padding:8px 9px}
}

.dpwx-dialog-alert-section{padding:14px 0;border-top:1px solid var(--line)}.dpwx-dialog-alert-section:first-of-type{border-top:0}.dpwx-dialog-alert-section h3{font-size:18px;margin:0 36px 4px 0}

/* v0.2.16: clearer alert spacing, underlined rotating copy, hazard emoji in dialog descriptions only. */
.dpwx-alert strong{margin-right:5px}
.dpwx-alert-window{padding-left:15px}
.dpwx-alert .dpwx-alert-item{
  font-weight:400;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.dpwx-alert-description{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:10px;
}
.dpwx-alert-description-emoji{
  flex:0 0 auto;
  font-size:22px;
  line-height:1.35;
}
.dpwx-alert-description .dpwx-alert-copy{flex:1;min-width:0}
.dpwx-alert-instruction{
  white-space:pre-wrap;
  line-height:1.5;
  margin-top:12px;
}
@media(max-width:600px){
  .dpwx-alert strong{margin-right:4px}
  .dpwx-alert-window{padding-left:12px}
  .dpwx-alert-description-emoji{font-size:20px}
}

/* v0.2.18: alert popup hierarchy — bold hazard title, underlined affected area. */
.dpwx-dialog-alert-section h3{font-weight:700;}
.dpwx-dialog-alert-section .dpwx-alert-meta{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}


/* v0.2.20: mobile-only radar viewport crop; all other v0.2.19 behavior retained */
.dpwx-current-primary{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.dpwx-current-emoji{font-size:46px;line-height:1;display:flex;align-items:center;justify-content:center;min-width:48px}
.dpwx-five-day-temp span{white-space:nowrap}

@media(max-width:699px){
  /* Warnings/watches/marine alerts become a true two-row mobile banner. */
  .dpwx-alert{
    display:block;
    width:100%;
    border-left:0!important;
    border-right:0!important;
    border-top:0!important;
    border-bottom-width:4px;
    margin-bottom:7px;
    overflow:hidden;
  }
  .dpwx-alert strong{
    display:block;
    width:100%;
    padding:9px 12px;
    margin:0!important;
    white-space:nowrap;
    font-size:11px;
    line-height:1.2;
  }
  .dpwx-alert-window{
    width:100%;
    min-height:42px;
    padding:10px 12px!important;
    overflow:hidden;
  }
  .dpwx-alert .dpwx-alert-item{
    top:50%;
    left:12px;
    right:12px;
    width:calc(100% - 24px);
    transform:translateY(-50%);
    white-space:normal;
    line-height:1.25;
    font-size:12px;
    overflow:hidden;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    text-overflow:ellipsis;
  }

  /* Mobile-only crop: keep the same locked center/zoom, but shorten the viewport so the U.P. fills the radar window. */
  #dpwx-map{height:270px}

  /* Ticker message itself is allowed to be wider than its viewport so JS can scroll it. */
  #dpwx-city-rotator{font-size:13px!important;overflow:hidden!important;position:relative}
  .dpwx-city-line{width:max-content!important;max-width:none!important;will-change:transform,opacity}
  .dpwx-live-label{font-size:10px;padding:7px 8px;max-width:42%;overflow:hidden;text-overflow:ellipsis}

  /* Large current condition emoji beside the current temperature. */
  .dpwx-current{gap:14px}
  .dpwx-current-primary{gap:8px}
  .dpwx-current-emoji{font-size:44px;min-width:44px}

  /* Preserve the existing five compact cards, but use shorthand high/low values. */
  .dpwx-five-day-temp{display:block!important;font-size:10px!important;white-space:nowrap}

  /* Night Sky mirrors the stacked alert concept on mobile: title above, full-width description below. */
  .dpwx-night-sky{display:block;padding:0;min-height:76px;border-radius:4px}
  .dpwx-night-content{display:block;width:100%;overflow:visible}
  .dpwx-night-content>strong{
    position:relative;
    z-index:4;
    display:block;
    width:100%;
    padding:9px 12px 7px;
    font-size:11px;
    line-height:1.2;
    background:rgba(8,7,24,.38);
  }
  .dpwx-night-scroll{
    position:relative;
    z-index:3;
    display:block;
    width:100%;
    min-height:38px;
    padding:9px 10px;
    mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 14px),transparent 100%);
    -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 14px),transparent 100%);
  }
  .dpwx-night-scroll #dpwx-night-text{font-size:11px;padding-left:0}
}

/* v0.2.22 — compact blue-themed Daily Pasty homepage weather module ([daily_pasty_weather_home]) */
.dpwx-home{--home-pad:11px;--home-blue:#004694;--home-blue-deep:#003665;--home-blue-light:#edf5fb;--home-blue-mid:#d9e8f4;width:100%;max-width:100%}
.dpwx-home section{margin:0}
.dpwx-home .dpwx-alert{margin-bottom:4px}
.dpwx-home-weather{border:1px solid #c7d9e8;border-top:3px solid var(--home-blue-deep);background:var(--home-blue-light);padding:var(--home-pad);overflow:hidden}
.dpwx-home .dpwx-eyebrow{font-size:10px;letter-spacing:.08em;margin-bottom:1px;color:var(--home-blue);font-weight:800}
.dpwx-home #dpwx-local-city{font-size:21px;line-height:1.08;margin:1px 0 6px;font-weight:700;color:#111}
.dpwx-home-current{display:flex;align-items:center;gap:7px;padding:2px 0 7px;border-bottom:1px solid #c7d9e8}
.dpwx-home-current-temp{font-size:38px;font-weight:700;line-height:1;white-space:nowrap}
.dpwx-home-current-emoji{font-size:29px;line-height:1;flex:0 0 auto}
.dpwx-home-current-text{font-size:13px;line-height:1.2;min-width:0}
.dpwx-home .dpwx-periods{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:7px}
.dpwx-home .dpwx-period{padding:7px;border-radius:2px;border:1px solid #d2e0eb;background:#fff}
.dpwx-home .dpwx-period.night{background:#e4edf5}
.dpwx-home .dpwx-period-name{font-size:10px;line-height:1.1;color:#111}
.dpwx-home .dpwx-period-main{margin:2px 0 3px}
.dpwx-home .dpwx-period-main span{font-size:20px}
.dpwx-home .dpwx-period-main strong{font-size:22px}
.dpwx-home .dpwx-period-desc{font-size:11px;line-height:1.28}
.dpwx-home .dpwx-five-day{gap:4px;margin-top:6px}
.dpwx-home .dpwx-five-day-tile{padding:5px 2px;background:#fff;border:1px solid #d2e0eb;border-radius:2px}
.dpwx-home .dpwx-five-day-name{font-size:8px;line-height:1.1}
.dpwx-home .dpwx-five-day-icon{font-size:17px;margin:3px 0}
.dpwx-home .dpwx-five-day-temp{font-size:8px;line-height:1.1}
.dpwx-home-search-wrap{margin-top:7px}
.dpwx-home .dpwx-home-search{width:100%;max-width:none}
.dpwx-home .dpwx-home-search input{height:34px;font-size:11px;background:#fff;border-color:#c7d9e8}
.dpwx-home .dpwx-home-search button{width:34px;color:var(--home-blue)}
.dpwx-home #dpwx-city-result{font-size:10px;margin:3px 0 0}
.dpwx-home .dpwx-night-sky-wrap{margin:7px 0 6px}
.dpwx-home .dpwx-night-sky{min-height:36px;padding:6px 8px}
.dpwx-home .dpwx-night-content>strong{font-size:9px}
.dpwx-home .dpwx-night-scroll #dpwx-night-text{font-size:10px}
.dpwx-home-center-btn{display:block;width:100%;text-align:center;text-decoration:none;background:var(--home-blue);color:#fff!important;font-weight:800;font-size:10px;padding:8px 10px;margin-top:6px;border-radius:2px;transition:filter .15s ease;text-transform:uppercase;letter-spacing:.03em}
.dpwx-home-center-btn:hover{filter:brightness(.92);color:#fff!important}

@media(max-width:520px){
  .dpwx-home{--home-pad:10px}
  .dpwx-home #dpwx-local-city{font-size:20px}
  .dpwx-home-current-temp{font-size:36px}
  .dpwx-home-current-emoji{font-size:28px}
  .dpwx-home-current-text{font-size:12px}
  .dpwx-home .dpwx-period-desc{font-size:11px}
  .dpwx-home .dpwx-five-day{gap:3px}
  .dpwx-home .dpwx-five-day-name{font-size:8px}
  .dpwx-home .dpwx-five-day-icon{font-size:17px}
  .dpwx-home .dpwx-five-day-temp{font-size:8px!important}
  .dpwx-home .dpwx-night-sky{min-height:60px}
}


/* v0.2.23 — move homepage search + Weather Center CTA into the upper-right header space */
.dpwx-home-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,42%);gap:10px;align-items:start}
.dpwx-home-heading{min-width:0}
.dpwx-home-actions{display:flex;flex-direction:column;gap:5px;min-width:0}
.dpwx-home .dpwx-home-actions .dpwx-home-search{width:100%;max-width:none}
.dpwx-home .dpwx-home-actions .dpwx-home-search input{height:30px}
.dpwx-home .dpwx-home-actions .dpwx-home-center-btn{margin:0;padding:6px 8px;line-height:1.25}
.dpwx-home #dpwx-city-result:empty{display:none}
.dpwx-home #dpwx-city-result:not(:empty){margin:2px 0 3px}
@media(max-width:620px){
  .dpwx-home-top{grid-template-columns:1fr}
  .dpwx-home-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px}
  .dpwx-home .dpwx-home-actions .dpwx-home-center-btn{display:flex;align-items:center;justify-content:center;white-space:nowrap}
}
@media(max-width:420px){
  .dpwx-home-actions{grid-template-columns:1fr}
}


/* v0.2.24 — collapse homepage header dead space and add temporary homepage alert tests */
.dpwx-home-top{align-items:start!important;grid-auto-rows:auto!important;height:auto!important;min-height:0!important}
.dpwx-home-heading,.dpwx-home-actions{align-self:start!important;height:auto!important;min-height:0!important}
.dpwx-home-actions{justify-content:flex-start!important}
.dpwx-home .dpwx-home-current{margin-top:4px;padding:2px 0 5px}
.dpwx-home .dpwx-home-periods{margin-top:6px}
.dpwx-home .dpwx-home-alert-tests{margin-bottom:5px}
.dpwx-home #dpwx-alert-test-stage:empty{display:none}
@media(max-width:620px){
  .dpwx-home-top{grid-template-columns:1fr!important}
  .dpwx-home-actions{margin-top:4px}
}


/* v0.2.25 — desktop homepage header hard reset + desktop alert text travel */
@media(min-width:621px){
  .dpwx-home .dpwx-home-top{
    display:flex!important;
    flex-direction:row!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:10px!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    position:static!important;
  }
  .dpwx-home .dpwx-home-heading{
    flex:1 1 auto!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    position:static!important;
  }
  .dpwx-home .dpwx-home-actions{
    flex:0 0 42%!important;
    width:42%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    align-items:stretch!important;
    align-self:flex-start!important;
    position:static!important;
  }
  .dpwx-home .dpwx-home-actions .dpwx-home-center-btn{
    position:static!important;
    inset:auto!important;
    margin:0!important;
  }
  .dpwx-home .dpwx-home-periods{
    clear:both!important;
    position:relative!important;
    margin-top:6px!important;
  }

  /* Let the current alert headline travel instead of being ellipsized. */
  .dpwx-alert .dpwx-alert-item{
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
    width:max-content!important;
    max-width:none!important;
    padding-right:18px!important;
  }
}

/* v0.2.27 — definitive desktop homepage weather header layout.
   Keep the right-side search/CTA out of normal flow so tagDiv cannot stretch
   the header row and create a large empty blue block. Mobile remains unchanged. */
@media(min-width:621px){
  .dpwx-home .dpwx-home-weather{
    position:relative!important;
  }
  .dpwx-home .dpwx-home-top{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    position:static!important;
    margin:0!important;
    padding:0!important;
  }
  .dpwx-home .dpwx-home-heading{
    display:block!important;
    width:56%!important;
    max-width:56%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
  }
  .dpwx-home .dpwx-home-actions{
    position:absolute!important;
    top:var(--home-pad)!important;
    right:var(--home-pad)!important;
    width:42%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    gap:5px!important;
    justify-content:flex-start!important;
    align-items:stretch!important;
  }
  .dpwx-home .dpwx-home-actions .dpwx-home-center-btn{
    position:static!important;
    width:100%!important;
    margin:0!important;
  }
  .dpwx-home .dpwx-home-periods{
    margin-top:6px!important;
    clear:none!important;
  }
}

/* v0.2.28 — restore homepage Weather Center CTA and vertically center search icon */
.dpwx-home .dpwx-home-search button{
  top:0!important;
  bottom:auto!important;
  height:30px!important;
  min-height:30px!important;
  width:34px!important;
  padding:0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}
.dpwx-home .dpwx-home-search button svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
  margin:0!important;
  transform:none!important;
}
.dpwx-home .dpwx-home-actions .dpwx-home-center-btn{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  min-height:30px!important;
  height:30px!important;
  overflow:visible!important;
  z-index:2!important;
}


/* v0.2.29 — force homepage CTA visible on desktop and center search icon everywhere */
.dpwx-home .dpwx-home-search button{
  position:absolute!important;
  right:0!important;
  top:50%!important;
  bottom:auto!important;
  transform:translateY(-50%)!important;
  height:30px!important;
  min-height:30px!important;
  width:34px!important;
  padding:0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}
.dpwx-home .dpwx-home-search button svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
  margin:0!important;
}
@media(min-width:621px){
  .dpwx-home .dpwx-home-actions{
    overflow:visible!important;
    z-index:20!important;
  }
  .dpwx-home .dpwx-home-actions > a.dpwx-home-center-btn{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    position:absolute!important;
    top:35px!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    height:30px!important;
    min-height:30px!important;
    margin:0!important;
    padding:0 8px!important;
    box-sizing:border-box!important;
    align-items:center!important;
    justify-content:center!important;
    background:#004694!important;
    color:#fff!important;
    text-decoration:none!important;
    border:0!important;
    border-radius:2px!important;
    font-size:10px!important;
    font-weight:800!important;
    line-height:30px!important;
    text-transform:uppercase!important;
    letter-spacing:.03em!important;
    z-index:30!important;
    pointer-events:auto!important;
  }
}

/* v0.2.30 — keep homepage search control visible above desktop positioning overrides */
.dpwx-home .dpwx-home-search{
  position:relative!important;
  overflow:visible!important;
}
.dpwx-home .dpwx-home-search input{
  position:relative!important;
  z-index:1!important;
  box-sizing:border-box!important;
  padding-right:38px!important;
}
.dpwx-home .dpwx-home-search #dpwx-city-go{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  position:absolute!important;
  z-index:100!important;
  top:0!important;
  right:0!important;
  bottom:auto!important;
  transform:none!important;
  width:34px!important;
  height:30px!important;
  min-width:34px!important;
  min-height:30px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  color:#004694!important;
  align-items:center!important;
  justify-content:center!important;
  cursor:pointer!important;
}
.dpwx-home .dpwx-home-search #dpwx-city-go svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
  margin:0!important;
  flex:none!important;
}
