.jnw-home {
  --jnw-ink: #f6f8fc;
  --jnw-muted: #9eabc0;
  --jnw-navy: #061528;
  --jnw-panel: #12233a;
  --jnw-line: rgba(159, 184, 218, 0.18);
  --jnw-blue: #55b9ff;
  --jnw-orange: #ff7a45;
  --jnw-green: #34d399;
  --jnw-flood-green: #2e8b57;
  --jnw-flood-green-rgb: 46, 139, 87;
  --jnw-flood-green-soft: #83efb4;
  --jnw-yellow: #ffd34e;
  --jnw-warning-red: #ff0000;
  --jnw-warning-red-rgb: 255, 0, 0;
  --jnw-warning-red-soft: #ffb3b3;
  background: radial-gradient(circle at 50% -20%, rgba(38, 112, 180, .25), transparent 34rem), var(--jnw-navy);
  color: var(--jnw-ink);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.45;
  margin-left: calc(50% - 50vw);
  min-height: 100vh;
  overflow-x: clip;
  padding-bottom: 6.5rem;
  position: relative;
  width: 100vw;
}

/* v0.27.1 current-conditions layout: compact, legible, and wind-first. */
.jnw-home .jnw-current-main {
  min-height: 0;
  padding: 1.15rem 1rem .35rem;
}
.jnw-home .jnw-current-feature-metrics {
  align-items: center;
  gap: clamp(.65rem, 2.4vw, 1.45rem);
  grid-template-columns: minmax(7rem, .9fr) minmax(13rem, 1.55fr) minmax(7rem, .9fr);
  margin-top: 0;
  padding: .35rem clamp(.15rem, 2vw, 1rem) .25rem;
}
.jnw-home .jnw-wind-indicator {
  align-items: center;
  display: flex;
  height: 6.5rem;
  justify-content: center;
  position: relative;
  width: 6.5rem;
}
.jnw-home .jnw-wind-indicator i {
  background: #f7fbff;
  border-radius: 999px;
  height: 6.15rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%) rotate(0deg);
  transform-origin: center;
  transition: transform .35s ease;
  width: 6px;
}
.jnw-home .jnw-wind-indicator i::before {
  border-bottom: .82rem solid #f7fbff;
  border-left: .48rem solid transparent;
  border-right: .48rem solid transparent;
  content: "";
  left: 50%;
  position: absolute;
  top: -.62rem;
  transform: translateX(-50%);
}
.jnw-home .jnw-wind-indicator i::after {
  content: none;
}
.jnw-home .jnw-wind-indicator b {
  align-items: center;
  background: #0a2038;
  border: 2px solid #f7fbff;
  border-radius: 50%;
  display: flex;
  font-size: 1.3rem;
  font-style: normal;
  font-weight: 850;
  height: 3.15rem;
  justify-content: center;
  line-height: 1;
  min-width: 3.15rem;
  padding: 0 .2rem;
  position: relative;
  z-index: 2;
}
.jnw-home .jnw-wind-feature > small {
  line-height: 1.2;
  max-width: 9rem;
  text-align: center;
}
.jnw-home .jnw-wind-indicator.is-calm b,
.jnw-home .jnw-wind-indicator.is-variable b {
  border-radius: 999px;
  font-size: .92rem;
  min-width: 4.25rem;
  padding: 0 .65rem;
}
.jnw-home .jnw-wind-indicator.is-unavailable { opacity: .55; }
.jnw-home .jnw-wind-feature > strong { margin: 0; }
.jnw-home .jnw-current-sun-arc { max-width: 13.75rem; }
.jnw-home .jnw-humidity-feature .jnw-humidity-drop { display: none; }
.jnw-home .jnw-humidity-feature > strong {
  font-size: clamp(1.65rem, 4.5vw, 2.25rem);
  margin: 0 0 .45rem;
}
.jnw-home .jnw-current-metrics { margin-top: .8rem; }

@media (max-width: 720px) {
  .jnw-home .jnw-current-main {
    min-height: 0;
    padding: .95rem .2rem .35rem;
  }
  .jnw-home .jnw-current-feature-metrics {
    gap: .4rem;
    grid-template-columns: minmax(5.2rem, .85fr) minmax(9.4rem, 1.55fr) minmax(5.2rem, .85fr);
    padding-left: 0;
    padding-right: 0;
  }
  .jnw-home .jnw-wind-indicator { height: 5.25rem; width: 5.25rem; }
  .jnw-home .jnw-wind-indicator i { height: 4.95rem; width: 5px; }
  .jnw-home .jnw-wind-indicator b { font-size: 1rem; height: 2.6rem; min-width: 2.6rem; }
  .jnw-home .jnw-wind-indicator.is-calm b,
  .jnw-home .jnw-wind-indicator.is-variable b { font-size: .76rem; min-width: 3.65rem; padding: 0 .45rem; }
  .jnw-home .jnw-humidity-feature > strong { font-size: 1.35rem; margin-bottom: .35rem; }
}

@media (max-width: 390px) {
  .jnw-home .jnw-current-feature-metrics { grid-template-columns: 4.7rem minmax(8.2rem, 1fr) 4.7rem; }
  .jnw-home .jnw-wind-indicator { height: 4.75rem; width: 4.75rem; }
  .jnw-home .jnw-wind-indicator i { height: 4.5rem; }
  .jnw-home .jnw-current-sun-arc { min-width: 8.2rem; }
}

html.jnw-modal-open { overflow: hidden; }

/*
 * WordPress block layouts and Astra can apply a content-width max-width to
 * shortcode output. The weather home is intentionally full-bleed, so give
 * this rule enough specificity to win against those layout constraints.
 */
html body .jnw-home[data-jnw-home] {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: none !important;
  width: 100vw !important;
}

.jnw-home,
.jnw-home * { box-sizing: border-box; }
.jnw-home button,
.jnw-home a { font: inherit; }
.jnw-home button { color: inherit; }
.jnw-home a { color: inherit; text-decoration: none; }
.jnw-home [hidden] { display: none !important; }
.jnw-home h2,
.jnw-home p { color: inherit; }
.jnw-home .screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  width: 1px;
}

.jnw-concept-flag {
  background: linear-gradient(90deg, #ff6a3d, #ff9348);
  color: #1b0b04;
  font-size: .69rem;
  font-weight: 900;
  letter-spacing: .12em;
  padding: .45rem 1rem;
  text-align: center;
  text-transform: uppercase;
}

.jnw-app-header {
  align-items: center;
  backdrop-filter: blur(18px);
  background: rgba(6, 21, 40, .94);
  border-bottom: 1px solid var(--jnw-line);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  min-height: 6.75rem;
  padding: 1rem max(1rem, calc((100% - 1120px) / 2));
  position: sticky;
  top: 0;
  z-index: 20;
}

body.admin-bar .jnw-home .jnw-app-header { top: 32px; }
.jnw-brand { align-items: center; display: flex; gap: .65rem; min-width: max-content; width: max-content; }
.jnw-brand-logo { display: block; height: auto; max-height: 4.7rem; object-fit: contain; width: 6.25rem; }
.jnw-brand-mark {
  align-items: center;
  background: linear-gradient(145deg, var(--jnw-orange), #ffb34b);
  border-radius: .8rem;
  box-shadow: 0 8px 22px rgba(255, 122, 69, .22);
  color: #1c0d08;
  display: inline-flex;
  font-size: .9rem;
  font-weight: 1000;
  height: 2.65rem;
  justify-content: center;
  letter-spacing: -.04em;
  width: 2.65rem;
}
.jnw-brand-copy { display: flex; flex-direction: column; line-height: 1; }
.jnw-brand-copy strong { font-size: .78rem; letter-spacing: .13em; white-space: nowrap; }
.jnw-brand-copy small { color: var(--jnw-blue); font-size: .62rem; font-weight: 900; letter-spacing: .31em; margin-top: .35rem; white-space: nowrap; }
.jnw-location-title { align-items: center; display: flex; flex-direction: column; max-width: min(42vw, 28rem); min-width: 0; }
.jnw-location-title strong { font-size: clamp(1.6rem, 5vw, 2.25rem); letter-spacing: -.04em; max-width: 100%; overflow: hidden; overflow-wrap: normal; text-overflow: ellipsis; white-space: nowrap; word-break: normal; }
.jnw-location-title span { color: var(--jnw-muted); font-size: 1rem; margin-top: .12rem; max-width: 100%; overflow: hidden; overflow-wrap: normal; text-overflow: ellipsis; white-space: nowrap; word-break: normal; }
.jnw-header-actions { display: flex; gap: .35rem; justify-content: flex-end; }
.jnw-header-actions button,
.jnw-header-actions a {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex;
  font-size: 1.65rem;
  height: 2.75rem;
  justify-content: center;
  padding: 0;
  width: 2.75rem;
}
.jnw-header-actions button:hover,
.jnw-header-actions button:focus-visible,
.jnw-header-actions a:hover,
.jnw-header-actions a:focus-visible { background: rgba(255,255,255,.07); outline: 2px solid transparent; }

.jnw-location-strip {
  background: rgba(7, 23, 42, .97);
  display: flex;
  gap: .6rem;
  overflow-x: auto;
  padding: .75rem max(1rem, calc((100% - 1120px) / 2));
  position: sticky;
  scrollbar-width: none;
  top: 6.75rem;
  z-index: 19;
}
body.admin-bar .jnw-home .jnw-location-strip { top: calc(6.75rem + 32px); }
.jnw-location-strip::-webkit-scrollbar { display: none; }
.jnw-location-label {
  align-self: center;
  color: var(--jnw-blue);
  flex: 0 0 auto;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
  white-space: nowrap;
}
.jnw-location-pill {
  background: #172941;
  border: 1px solid var(--jnw-line);
  border-radius: 999px;
  color: #c7d0dd;
  cursor: pointer;
  flex: 0 0 auto;
  font-weight: 750;
  padding: .62rem 1rem;
  white-space: nowrap;
}
.jnw-location-pill span { color: white; margin-left: .35rem; }
.jnw-location-pill.active { background: #213b5d; border-color: rgba(85,185,255,.38); }
.jnw-location-pill:focus-visible { outline: 2px solid var(--jnw-blue); outline-offset: 2px; }
.jnw-location-pill:disabled { cursor: wait; opacity: .65; }
.jnw-city-picker { flex: 0 0 auto; }
.jnw-city-picker select {
  appearance: auto;
  background: #172941;
  border: 1px solid var(--jnw-line);
  border-radius: 999px;
  color: #e9eef6;
  cursor: pointer;
  font: inherit;
  font-weight: 750;
  min-height: 2.65rem;
  padding: .55rem 2.15rem .55rem .95rem;
}
.jnw-city-picker select:focus-visible { outline: 2px solid var(--jnw-blue); outline-offset: 2px; }
.jnw-location-status {
  align-self: center;
  color: #aebbd0;
  flex: 0 0 auto;
  font-size: .72rem;
  font-weight: 750;
  padding: 0 .35rem;
  white-space: nowrap;
}
.jnw-location-status.is-error { color: #ffb19a; }
.jnw-location-scope {
  align-self: center;
  color: #8190a6;
  flex: 0 0 auto;
  font-size: .68rem;
  font-weight: 650;
  white-space: nowrap;
}

.jnw-location-modal {
  align-items: center;
  background: rgba(2, 10, 21, .86);
  display: flex;
  inset: 0;
  justify-content: center;
  overflow-y: auto;
  padding: 1rem;
  position: fixed;
  z-index: 99999;
}
.jnw-feature-tour {
  background: rgba(2, 10, 21, .72);
  inset: 0;
  position: fixed;
  z-index: 100000;
}
.jnw-feature-tour[hidden] { display: none !important; }
.jnw-tour-card {
  background: linear-gradient(145deg, #17314e, #0a1d33);
  border: 1px solid rgba(107, 199, 255, .45);
  border-radius: 1.35rem;
  bottom: calc(6.15rem + env(safe-area-inset-bottom));
  box-shadow: 0 24px 70px rgba(0, 0, 0, .55);
  color: var(--jnw-ink);
  left: 50%;
  max-width: 27rem;
  padding: 1.2rem;
  position: absolute;
  transform: translateX(-50%);
  width: calc(100% - 1.4rem);
  z-index: 2;
}
.jnw-feature-tour.is-location-step .jnw-tour-card {
  bottom: auto;
  max-height: calc(100vh - var(--jnw-tour-card-top, 8rem) - 6.25rem - env(safe-area-inset-bottom));
  overflow-y: auto;
  overscroll-behavior: contain;
  top: var(--jnw-tour-card-top, 8rem);
}
.jnw-tour-card:focus { outline: none; }
.jnw-tour-topline { align-items: center; display: flex; justify-content: space-between; margin-bottom: .8rem; }
.jnw-tour-topline span { color: #94aac1; font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.jnw-tour-topline button { background: transparent; border: 0; color: #b9c7d8; cursor: pointer; font: inherit; font-size: .78rem; font-weight: 800; padding: .35rem; }
.jnw-tour-icon { align-items: center; background: rgba(85, 185, 255, .13); border: 1px solid rgba(85, 185, 255, .35); border-radius: 50%; color: #72c8ff; display: flex; font-size: 1.65rem; height: 3.35rem; justify-content: center; margin-bottom: .8rem; width: 3.35rem; }
.jnw-tour-card > small { color: #72c8ff; display: block; font-size: .65rem; font-weight: 900; letter-spacing: .12em; }
.jnw-tour-card h2 { color: #fff; font-size: 1.35rem; letter-spacing: -.025em; line-height: 1.15; margin: .32rem 0 .48rem; }
.jnw-tour-card p { color: #c8d4e2 !important; font-size: .88rem; line-height: 1.5; margin: 0; }
.jnw-tour-dots { display: flex; gap: .35rem; margin: 1rem 0 .8rem; }
.jnw-tour-dots i { background: #496078; border-radius: 999px; display: block; height: .38rem; width: .38rem; }
.jnw-tour-dots i.selected { background: #72c8ff; width: 1.4rem; }
.jnw-tour-actions { display: flex; gap: .55rem; justify-content: flex-end; }
.jnw-tour-actions button { border-radius: .8rem; cursor: pointer; font: inherit; font-size: .82rem; font-weight: 900; min-height: 2.75rem; padding: .65rem 1rem; }
.jnw-tour-back { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.13); color: #dce6f2; }
.jnw-tour-next { background: #2b8ed8; border: 1px solid #65b9f5; color: #fff; margin-left: auto; }
.jnw-tour-actions button:focus-visible,
.jnw-tour-topline button:focus-visible { outline: 2px solid #a5dcff; outline-offset: 2px; }
.jnw-tour-lift {
  pointer-events: none;
  position: relative;
  z-index: 100001 !important;
}
.jnw-bottom-nav.jnw-tour-lift { position: fixed; }
.jnw-tour-target {
  animation: jnw-tour-pulse 1.6s ease-in-out infinite;
  box-shadow: 0 0 0 4px #72c8ff, 0 0 0 10px rgba(85, 185, 255, .26) !important;
  position: relative;
}
@keyframes jnw-tour-pulse {
  0%, 100% { box-shadow: 0 0 0 4px #72c8ff, 0 0 0 9px rgba(85, 185, 255, .18); }
  50% { box-shadow: 0 0 0 4px #72c8ff, 0 0 0 14px rgba(85, 185, 255, .3); }
}
@media (prefers-reduced-motion: reduce) {
  .jnw-tour-target { animation: none; }
}
.jnw-location-dialog {
  background: linear-gradient(145deg, #172b45, #0b1d33);
  border: 1px solid rgba(126, 196, 244, .3);
  border-radius: 1.7rem;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .52);
  color: var(--jnw-ink);
  max-width: 35rem;
  padding: 1.6rem;
  width: 100%;
}
.jnw-location-dialog > img { border-radius: .8rem; display: block; height: 3.5rem; object-fit: cover; width: 3.5rem; }
.jnw-location-dialog h2 { font-size: clamp(1.65rem, 6vw, 2.25rem); letter-spacing: -.04em; margin: .9rem 0 .5rem; }
.jnw-location-dialog > p { color: #c5d0df !important; font-size: .92rem; line-height: 1.55; margin: 0 0 1.1rem; }
.jnw-location-dialog > small { color: var(--jnw-muted); display: block; font-size: .7rem; line-height: 1.45; margin-top: .9rem; text-align: center; }
.jnw-dialog-primary,
.jnw-dialog-secondary {
  border-radius: .85rem;
  cursor: pointer;
  font-weight: 900;
  min-height: 3rem;
  padding: .8rem 1rem;
  width: 100%;
}
.jnw-dialog-primary { background: #2b8ed8; border: 1px solid #65b9f5; color: #fff; }
.jnw-dialog-primary:hover,
.jnw-dialog-primary:focus-visible { background: #379be6; outline: 2px solid #a5dcff; outline-offset: 2px; }
.jnw-dialog-primary:disabled { cursor: wait; opacity: .65; }
.jnw-dialog-secondary { background: rgba(255, 122, 69, .1); border: 1px solid rgba(255, 122, 69, .35); color: #ffb298; }
.jnw-dialog-secondary:hover,
.jnw-dialog-secondary:focus-visible { background: rgba(255, 122, 69, .18); outline: 2px solid #ff9d78; outline-offset: 2px; }
.jnw-dialog-divider { align-items: center; color: #8291a6; display: flex; font-size: .66rem; font-weight: 900; gap: .75rem; letter-spacing: .09em; margin: 1rem 0; text-transform: uppercase; }
.jnw-dialog-divider::before,
.jnw-dialog-divider::after { background: var(--jnw-line); content: ""; flex: 1; height: 1px; }
.jnw-location-search label { color: #d6deea; display: block; font-size: .76rem; font-weight: 850; margin-bottom: .4rem; }
.jnw-location-search > div { display: flex; gap: .45rem; }
.jnw-location-search input {
  background: #07172a;
  border: 1px solid rgba(159, 184, 218, .3);
  border-radius: .75rem;
  color: #fff;
  flex: 1;
  font: inherit;
  min-width: 0;
  padding: .78rem .85rem;
}
.jnw-location-search input::placeholder { color: #7f8da2; }
.jnw-location-search input:focus { border-color: var(--jnw-blue); outline: 2px solid rgba(85, 185, 255, .25); }
.jnw-location-search button { background: #eef6ff; border: 0; border-radius: .75rem; color: #09213b; cursor: pointer; font-weight: 900; padding: .75rem .9rem; }
.jnw-location-search button:hover,
.jnw-location-search button:focus-visible { background: #fff; outline: 2px solid var(--jnw-blue); outline-offset: 2px; }
.jnw-search-results { display: grid; gap: .42rem; margin-top: .75rem; max-height: 14rem; overflow-y: auto; }
.jnw-search-results-heading { color: var(--jnw-blue); font-size: .7rem; letter-spacing: .08em; margin-bottom: .1rem; text-transform: uppercase; }
.jnw-search-results > button {
  align-items: flex-start;
  background: rgba(255, 255, 255, .045);
  border: 1px solid var(--jnw-line);
  border-radius: .72rem;
  color: #fff;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: .12rem;
  padding: .65rem .72rem;
  text-align: left;
}
.jnw-search-results > button:hover,
.jnw-search-results > button:focus-visible { background: rgba(85, 185, 255, .1); border-color: rgba(85, 185, 255, .5); outline: 0; }
.jnw-search-results > button strong { font-size: .82rem; }
.jnw-search-results > button span { color: var(--jnw-muted); font-size: .68rem; }
.jnw-search-results .jnw-card-placeholder { min-height: 4.5rem; padding: .25rem; }
.jnw-search-results .jnw-card-placeholder strong { font-size: .92rem; }

.jnw-content { display: flex; flex-direction: column; gap: 1.25rem; margin: 0 auto; max-width: 1120px; padding: 1.25rem 1rem 4rem; }
.jnw-panel {
  background: linear-gradient(145deg, rgba(22, 42, 68, .98), rgba(14, 31, 53, .98));
  border: 1px solid var(--jnw-line);
  border-radius: 1.65rem;
  box-shadow: 0 18px 55px rgba(0, 0, 0, .17);
}

.jnw-live-current-section { overflow: hidden; padding: 1.25rem; }
.jnw-current-placeholder { min-height: 20rem; }
.jnw-current-live { margin-top: 1rem; }
.jnw-current-card { overflow: hidden; padding: 1.2rem; }
.jnw-updated-row { color: var(--jnw-muted); display: flex; font-size: .78rem; gap: .75rem; justify-content: space-between; }
.jnw-station { color: var(--jnw-blue); font-weight: 800; }
.jnw-current-main { align-items: center; display: flex; justify-content: space-between; padding: 1.2rem .15rem 1rem; }
.jnw-temperature { font-size: clamp(4.8rem, 18vw, 8.4rem); font-weight: 750; letter-spacing: -.075em; line-height: .9; }
.jnw-temperature span { font-size: .46em; font-weight: 600; letter-spacing: -.04em; vertical-align: top; }
.jnw-temperature > span { font-size: 1em; font-weight: 800; letter-spacing: inherit; vertical-align: baseline; }
.jnw-temperature > sup { font-size: .32em; font-weight: 700; letter-spacing: -.02em; margin-left: .08em; vertical-align: top; }
.jnw-feels { color: var(--jnw-muted) !important; font-size: 1rem; margin: .8rem 0 0 .15rem; }
.jnw-feels strong { color: #c7d2e2; }
.jnw-condition { align-items: center; display: flex; flex-direction: column; gap: .55rem; text-align: center; }
.jnw-current-icon { height: 7rem; width: 7rem; }
.jnw-weather-symbol {
  --jnw-icon-cloud: #dce9f7;
  --jnw-icon-cloud-line: #9ab2cc;
  --jnw-icon-moon: #dbe8ff;
  --jnw-icon-sun: #ffd34e;
  align-items: center;
  display: inline-flex;
  justify-content: center;
  line-height: 0;
}
.jnw-weather-symbol svg { display: block; filter: drop-shadow(0 8px 14px rgba(0,0,0,.22)); height: 100%; overflow: visible; width: 100%; }
.jnw-weather-symbol img { display: block; filter: drop-shadow(0 8px 14px rgba(0,0,0,.2)); height: 100%; object-fit: contain; width: 100%; }
.jnw-weather-symbol.is-glyph-fallback {
  color: #dce9f7;
  filter: drop-shadow(0 6px 10px rgba(0,0,0,.24));
  font-size: min(2.4rem, 80%);
  font-weight: 900;
  line-height: 1;
}
.jnw-weather-symbol .jnw-icon-sun { fill: var(--jnw-icon-sun); stroke: #ffb52f; stroke-width: 2; }
.jnw-weather-symbol .jnw-icon-sun-rays { fill: none; stroke: #ffd34e; stroke-linecap: round; stroke-width: 4; }
.jnw-weather-symbol .jnw-icon-moon { fill: var(--jnw-icon-moon); stroke: #aabfe0; stroke-linejoin: round; stroke-width: 2; }
.jnw-weather-symbol .jnw-icon-cloud { fill: var(--jnw-icon-cloud); stroke: var(--jnw-icon-cloud-line); stroke-linejoin: round; stroke-width: 2.4; }
.jnw-weather-symbol .jnw-icon-cloud-small { fill: #d9e7f5; }
.jnw-weather-symbol .jnw-icon-rain { fill: none; stroke: #53c4ff; stroke-linecap: round; stroke-width: 5; }
.jnw-weather-symbol .jnw-icon-lightning { fill: #ffd738; stroke: #ffae18; stroke-linejoin: round; stroke-width: 2; }
.jnw-weather-symbol .jnw-icon-snow { fill: none; stroke: #abddff; stroke-linecap: round; stroke-width: 3; }
.jnw-weather-symbol .jnw-icon-ice { fill: #86d9ff; stroke: #e5f7ff; stroke-linecap: round; stroke-width: 3.5; }
.jnw-weather-symbol .jnw-icon-fog,
.jnw-weather-symbol .jnw-icon-haze,
.jnw-weather-symbol .jnw-icon-wind { fill: none; stroke: #9db5ce; stroke-linecap: round; stroke-linejoin: round; stroke-width: 4; }
.jnw-weather-symbol .jnw-icon-haze { stroke: #d7b779; }
.jnw-weather-symbol .jnw-icon-wind { stroke: #8cd7ff; }
.jnw-condition strong { font-size: clamp(1rem, 4vw, 1.45rem); }
.jnw-metric-row { align-items: center; display: grid; grid-template-columns: 1fr 2fr 1fr; margin-top: .2rem; }
.jnw-metric { align-items: center; display: flex; flex-direction: column; }
.jnw-metric > span { color: var(--jnw-blue); font-size: 1.1rem; }
.jnw-metric strong { font-size: 1.45rem; margin-top: .15rem; }
.jnw-metric small { color: var(--jnw-muted); font-size: .68rem; margin-top: .15rem; white-space: nowrap; }
.jnw-sun-window { align-items: center; color: #d9e0eb; display: flex; font-size: .72rem; font-weight: 800; gap: .5rem; justify-content: center; }
.jnw-sun-arc { border-top: 2px solid var(--jnw-yellow); border-radius: 50% 50% 0 0; height: 1.8rem; position: relative; width: 4rem; }
.jnw-sun-arc::after { background: rgba(255,255,255,.14); bottom: 0; content: ""; height: 1px; left: -.3rem; position: absolute; width: 4.6rem; }
.jnw-sun-arc i { background: var(--jnw-yellow); border-radius: 50%; box-shadow: 0 0 14px rgba(255,211,78,.65); height: .55rem; position: absolute; right: .28rem; top: -.3rem; width: .55rem; }
.jnw-secondary-metrics { border-top: 1px solid var(--jnw-line); display: grid; grid-template-columns: repeat(3,1fr); margin-top: 1.2rem; padding-top: 1rem; }
.jnw-secondary-metrics span { align-items: center; display: flex; flex-direction: column; gap: .3rem; }
.jnw-secondary-metrics small { color: var(--jnw-muted); font-size: .67rem; }
.jnw-secondary-metrics strong { font-size: .92rem; }
.jnw-current-metrics { border-top: 1px solid var(--jnw-line); display: grid; gap: .55rem; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 1.2rem; padding-top: 1rem; }
.jnw-current-metrics > span { align-items: center; display: flex; flex-direction: column; gap: .28rem; min-width: 0; text-align: center; }
.jnw-current-metrics small { color: var(--jnw-muted); font-size: .64rem; }
.jnw-current-metrics small i { color: #78cfff; font-size: .52rem; font-style: normal; font-weight: 900; letter-spacing: .08em; }
.jnw-current-metrics strong { font-size: .82rem; overflow-wrap: anywhere; }

.jnw-risk-card {
  align-items: center;
  background: linear-gradient(110deg, rgba(0, 92, 83, .88), rgba(10, 49, 56, .98));
  border: 1px solid rgba(52, 211, 153, .28);
  border-left: .45rem solid var(--jnw-green);
  border-radius: 1.35rem;
  display: grid;
  gap: .8rem;
  grid-template-columns: auto 1fr auto;
  padding: 1.15rem;
}
.jnw-risk-icon { font-size: 2.15rem; }
.jnw-risk-card small { color: #8ce3c6; font-size: .67rem; font-weight: 900; letter-spacing: .12em; }
.jnw-risk-card h2 { font-size: 1.2rem; margin: .22rem 0 .25rem; }
.jnw-risk-card p { color: #c1d7d4 !important; font-size: .78rem; margin: 0; }
.jnw-risk-badge { background: #39d393; border-radius: .55rem; color: #032a22; font-size: .67rem; font-weight: 1000; padding: .45rem .55rem; }
.jnw-risk-card.is-loading {
  background: linear-gradient(110deg, rgba(26, 64, 89, .9), rgba(11, 36, 58, .98));
  border-color: rgba(91, 187, 235, .3);
  border-left-color: #62c9f8;
}
.jnw-risk-card.is-loading small { color: #93dcff; }
.jnw-risk-card.is-loading .jnw-risk-badge { background: #62c9f8; color: #05243a; }
.jnw-risk-card.is-quiet {
  background: linear-gradient(110deg, rgba(0, 92, 83, .88), rgba(10, 49, 56, .98));
  border-color: rgba(52, 211, 153, .28);
  border-left-color: #39d393;
}
.jnw-risk-card.is-watching {
  background: linear-gradient(110deg, rgba(104, 74, 0, .92), rgba(53, 43, 11, .98));
  border-color: rgba(255, 199, 65, .34);
  border-left-color: #ffc741;
}
.jnw-risk-card.is-watching small { color: #ffe19a; }
.jnw-risk-card.is-watching .jnw-risk-badge { background: #ffc741; color: #342600; }
.jnw-risk-card.is-elevated {
  background: linear-gradient(110deg, rgba(108, 45, 22, .94), rgba(56, 29, 19, .98));
  border-color: rgba(255, 122, 69, .38);
  border-left-color: var(--jnw-orange);
}
.jnw-risk-card.is-elevated small { color: #ffc09b; }
.jnw-risk-card.is-elevated .jnw-risk-badge { background: var(--jnw-orange); color: #351608; }
.jnw-risk-card.is-flood {
  background: linear-gradient(110deg, rgba(27, 91, 61, .96), rgba(10, 48, 39, .99));
  border-color: rgba(var(--jnw-flood-green-rgb), .5);
  border-left-color: var(--jnw-flood-green);
}
.jnw-risk-card.is-flood small { color: var(--jnw-flood-green-soft); }
.jnw-risk-card.is-flood .jnw-risk-badge { background: var(--jnw-flood-green); color: #f5fff9; }
.jnw-risk-card.is-active {
  background: linear-gradient(110deg, rgba(122, 30, 24, .95), rgba(57, 21, 19, .99));
  border-color: rgba(var(--jnw-warning-red-rgb), .44);
  border-left-color: var(--jnw-warning-red);
}
.jnw-risk-card.is-active small { color: var(--jnw-warning-red-soft); }
.jnw-risk-card.is-active .jnw-risk-badge { background: var(--jnw-warning-red); color: #370b13; }
.jnw-risk-card.is-unavailable {
  background: linear-gradient(110deg, rgba(68, 79, 94, .94), rgba(35, 43, 55, .99));
  border-color: rgba(170, 184, 201, .3);
  border-left-color: #9aabba;
}
.jnw-risk-card.is-unavailable small { color: #c1ccd7; }
.jnw-risk-card.is-unavailable .jnw-risk-badge { background: #aab8c7; color: #17202a; }

.jnw-notes { border-top: 3px solid var(--jnw-orange); padding: 1.35rem; }
.jnw-notes-kicker { color: #ff9d78; font-size: 1.08rem; font-weight: 1000; letter-spacing: .085em; line-height: 1.2; }
.jnw-live-dot { background: var(--jnw-orange); border-radius: 50%; box-shadow: 0 0 0 5px rgba(255,122,69,.12); display: inline-block; height: .48rem; margin-right: .35rem; width: .48rem; }
.jnw-notes h2 { font-size: clamp(1.7rem, 5vw, 2.35rem); font-weight: 900; letter-spacing: -.04em; margin: .65rem 0 .7rem; }
.jnw-notes p { color: #ccd5e2 !important; font-size: .98rem; line-height: 1.65; margin: 0; }
.jnw-notes-footer { align-items: center; border-top: 1px solid var(--jnw-line); display: flex; font-size: .72rem; gap: 1rem; justify-content: space-between; margin-top: 1rem; padding-top: .85rem; }
.jnw-notes-footer span { color: var(--jnw-muted); }
.jnw-notes-footer span { display: flex; flex-direction: column; gap: .18rem; }
.jnw-notes-footer span small { color: var(--jnw-muted); font-size: .66rem; }
.jnw-notes-footer a { color: var(--jnw-blue); font-weight: 800; white-space: nowrap; }

.jnw-weekly-overview {
  --jnw-weekly-cloud: #aebdd1;
  --jnw-weekly-humidity: #3ecfe0;
  --jnw-weekly-rain: #4ed694;
  --jnw-weekly-snow: #63b7ff;
  --jnw-weekly-temperature: #ff865f;
  --jnw-weekly-wind: #bd91ff;
  overflow: hidden;
  padding: clamp(1.1rem, 3.5vw, 1.65rem);
}
.jnw-home-week-swap { min-width: 0; }
.jnw-home-week-placeholder { min-height: 18rem; }
.jnw-home-week-overview { margin: 0; }
.jnw-weekly-header { align-items: flex-end; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-weekly-header small { color: var(--jnw-blue); font-size: .72rem; font-weight: 950; letter-spacing: .14em; }
.jnw-weekly-header h2 { font-size: clamp(1.75rem, 6vw, 2.55rem); font-weight: 950; letter-spacing: -.045em; margin: .28rem 0 0; }
.jnw-weekly-header-actions { align-items: center; display: flex; gap: .65rem; justify-content: flex-end; min-width: 0; }
.jnw-weekly-header-actions > span { color: #aebbd0; font-size: .84rem; font-weight: 800; max-width: 14rem; overflow: hidden; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.jnw-weekly-settings-button { align-items: center; background: rgba(255,255,255,.045); border: 1px solid rgba(159,184,218,.23); border-radius: .78rem; color: #dce7f5; cursor: pointer; display: inline-flex; flex: 0 0 auto; gap: .42rem; height: 2.8rem; justify-content: center; padding: 0 .72rem; }
.jnw-weekly-settings-button:hover,
.jnw-weekly-settings-button:focus-visible { background: rgba(85,185,255,.12); border-color: rgba(85,185,255,.65); outline: 2px solid rgba(85,185,255,.3); outline-offset: 2px; }
.jnw-weekly-settings-button svg { fill: none; stroke: #dce7f5; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.jnw-weekly-settings-button span { font-size: .76rem; font-weight: 850; white-space: nowrap; }
.jnw-weekly-gear-icon { height: 1.45rem; width: 1.45rem; }
.jnw-weekly-placeholder { min-height: 14rem; }
.jnw-weekly-live { margin-top: .85rem; }
.jnw-weekly-scroll { margin: 0 -.35rem; overflow-x: auto; overscroll-behavior-inline: contain; padding: .2rem .35rem .55rem; scrollbar-color: rgba(126, 155, 190, .45) transparent; scrollbar-width: thin; }
.jnw-weekly-scroll:focus-visible { border-radius: .8rem; outline: 2px solid var(--jnw-blue); outline-offset: 2px; }
.jnw-weekly-chart { min-width: 760px; }
.jnw-weekly-chart svg { display: block; height: auto; overflow: visible; width: 100%; }
.jnw-weekly-grid-line { stroke: rgba(157, 181, 214, .17); stroke-width: 1.2; }
.jnw-weekly-grid-line.is-vertical { stroke: rgba(157, 181, 214, .2); }
.jnw-weekly-day-label { fill: #e3ebf6; font-size: 18px; font-weight: 950; letter-spacing: 1.2px; }
.jnw-weekly-axis-label { fill: #a7b5c8; font-size: 15.5px; font-weight: 900; }
.jnw-weekly-axis-label.is-temperature { fill: var(--jnw-weekly-temperature); }
.jnw-weekly-axis-label.is-rain { fill: var(--jnw-weekly-rain); }
.jnw-weekly-axis-label.is-snow { fill: var(--jnw-weekly-snow); }
.jnw-weekly-axis-label.is-cloud { fill: var(--jnw-weekly-cloud); }
.jnw-weekly-axis-label.is-humidity { fill: var(--jnw-weekly-humidity); }
.jnw-weekly-axis-label.is-wind { fill: var(--jnw-weekly-wind); }
.jnw-weekly-temperature-line { fill: none; filter: drop-shadow(0 5px 7px rgba(255, 130, 92, .16)); stroke: var(--jnw-weekly-temperature); stroke-linecap: round; stroke-linejoin: round; stroke-width: 5; }
.jnw-weekly-precip-area.is-rain { fill: rgba(78, 214, 148, .13); }
.jnw-weekly-precip-area.is-snow { fill: rgba(99, 183, 255, .12); }
.jnw-weekly-precip-area.is-cloud { fill: rgba(174, 189, 209, .12); }
.jnw-weekly-precip-area.is-humidity { fill: rgba(62, 207, 224, .12); }
.jnw-weekly-precip-area.is-wind { fill: rgba(189, 145, 255, .12); }
.jnw-weekly-precip-line { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3.5; }
.jnw-weekly-precip-line.is-rain { stroke: var(--jnw-weekly-rain); }
.jnw-weekly-precip-line.is-snow { stroke: var(--jnw-weekly-snow); }
.jnw-weekly-precip-line.is-cloud { stroke: var(--jnw-weekly-cloud); }
.jnw-weekly-precip-line.is-humidity { stroke: var(--jnw-weekly-humidity); }
.jnw-weekly-precip-line.is-wind { stroke: var(--jnw-weekly-wind); }
.jnw-weekly-temp-label { fill: #f4f7fb; font-size: 18px; font-weight: 950; paint-order: stroke; stroke: #102239; stroke-width: 4px; }
.jnw-weekly-temp-label.is-low { fill: #9eacc0; }
.jnw-weekly-current-dot { fill: var(--jnw-weekly-temperature); stroke: #fff; stroke-width: 5; }
.jnw-weekly-legend { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem 1.35rem; justify-content: center; margin-top: .35rem; }
.jnw-weekly-legend span { align-items: center; color: #d2dbe8; display: inline-flex; font-size: .88rem; gap: .5rem; }
.jnw-weekly-legend b { font-weight: 800; }
.jnw-weekly-legend b.is-temperature { color: var(--jnw-weekly-temperature); }
.jnw-weekly-legend b.is-rain { color: var(--jnw-weekly-rain); }
.jnw-weekly-legend b.is-snow { color: var(--jnw-weekly-snow); }
.jnw-weekly-legend b.is-cloud { color: var(--jnw-weekly-cloud); }
.jnw-weekly-legend b.is-humidity { color: var(--jnw-weekly-humidity); }
.jnw-weekly-legend b.is-wind { color: var(--jnw-weekly-wind); }
.jnw-weekly-legend i { border-radius: 50%; display: inline-block; height: .78rem; width: .78rem; }
.jnw-weekly-legend i.is-temperature { background: var(--jnw-weekly-temperature); }
.jnw-weekly-legend i.is-rain { background: var(--jnw-weekly-rain); }
.jnw-weekly-legend i.is-snow { background: var(--jnw-weekly-snow); }
.jnw-weekly-legend i.is-cloud { background: var(--jnw-weekly-cloud); }
.jnw-weekly-legend i.is-humidity { background: var(--jnw-weekly-humidity); }
.jnw-weekly-legend i.is-wind { background: var(--jnw-weekly-wind); }
.jnw-weekly-source { color: #9aa9bd; display: block; font-size: .74rem; margin-top: .72rem; text-align: center; }

.jnw-weekly-settings-modal {
  align-items: center;
  background: rgba(1, 9, 20, .86);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 1rem;
  position: fixed;
  z-index: 100000;
}
.jnw-weekly-settings-sheet {
  background: linear-gradient(155deg, #102640, #06182d 70%);
  border: 1px solid rgba(159,184,218,.22);
  border-radius: 1.7rem;
  box-shadow: 0 30px 100px rgba(0,0,0,.62);
  display: flex;
  flex-direction: column;
  max-height: min(92vh, 58rem);
  max-width: 38rem;
  overflow: hidden;
  width: 100%;
}
.jnw-weekly-settings-sheet:focus { outline: none; }
.jnw-weekly-sheet-handle { background: #718095; border-radius: 999px; flex: 0 0 auto; height: .38rem; margin: .75rem auto .3rem; opacity: .9; width: 4rem; }
.jnw-weekly-settings-sheet > header { border-bottom: 1px solid var(--jnw-line); padding: .75rem 1.25rem 1rem; text-align: center; }
.jnw-weekly-settings-sheet > header h2 { font-size: clamp(1.65rem, 5vw, 2.15rem); font-weight: 950; letter-spacing: -.04em; margin: 0; }
.jnw-weekly-settings-scroll { overflow-y: auto; overscroll-behavior: contain; padding: 1rem 1.25rem 1.25rem; }
.jnw-weekly-settings-scroll > p:first-child { color: #aebbd0 !important; font-size: 1rem; font-weight: 750; margin: 0 0 1rem; }
.jnw-weekly-settings-scroll fieldset { border: 0; margin: 0 0 1.25rem; padding: 0; }
.jnw-weekly-settings-scroll legend { color: #aebbd0; font-size: .87rem; font-weight: 950; letter-spacing: .08em; margin-bottom: .65rem; text-transform: uppercase; }
.jnw-weekly-option {
  align-items: center;
  background: linear-gradient(135deg, rgba(29,50,78,.94), rgba(20,39,63,.94));
  border: 1px solid rgba(159,184,218,.18);
  border-radius: 1.05rem;
  cursor: pointer;
  display: grid;
  gap: .85rem;
  grid-template-columns: minmax(0,1fr) 2.35rem;
  margin-top: .55rem;
  min-height: 4.7rem;
  padding: .85rem 1rem;
}
.jnw-weekly-option:hover { border-color: rgba(85,185,255,.5); }
.jnw-weekly-option:focus-within { border-color: var(--jnw-blue); box-shadow: 0 0 0 2px rgba(85,185,255,.22); }
.jnw-weekly-option input { clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; width: 1px; }
.jnw-weekly-option > span { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.jnw-weekly-option strong { color: #f1f5fb; font-size: clamp(1rem, 3.4vw, 1.22rem); font-weight: 850; }
.jnw-weekly-option small { color: #8392a7; font-size: .67rem; font-weight: 700; }
.jnw-weekly-option > i { align-items: center; border: 2px solid #67768a; border-radius: .65rem; color: transparent; display: inline-flex; font-size: 1.3rem; font-style: normal; height: 2.35rem; justify-content: center; transition: background .15s ease, border-color .15s ease; width: 2.35rem; }
.jnw-weekly-option input:checked ~ i { background: #50bcf2; border-color: #50bcf2; color: #fff; }
.jnw-weekly-option.is-unavailable { cursor: not-allowed; opacity: .48; }
.jnw-weekly-option.is-unavailable:hover { border-color: rgba(159,184,218,.18); }
.jnw-weekly-settings-note { color: #7f8da3 !important; font-size: .78rem; font-style: italic; line-height: 1.5; margin: .25rem auto .5rem; max-width: 31rem; text-align: center; }
.jnw-weekly-settings-sheet > footer { background: #061427; border-top: 1px solid var(--jnw-line); padding: 1rem 1.25rem max(1rem, env(safe-area-inset-bottom)); }
.jnw-weekly-settings-sheet > footer button { background: #1686e6; border: 0; border-radius: 1rem; color: #fff; cursor: pointer; font-size: 1.3rem; font-weight: 950; min-height: 4rem; width: 100%; }
.jnw-weekly-settings-sheet > footer button:hover,
.jnw-weekly-settings-sheet > footer button:focus-visible { background: #2b99f2; outline: 2px solid #9dd7ff; outline-offset: 2px; }

.jnw-forecast-section,
.jnw-radar-section { padding: 1.25rem; }
.jnw-section-heading,
.jnw-section-title-row { align-items: flex-end; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-section-heading small,
.jnw-section-title-row small,
.jnw-story-copy > small,
.jnw-sky-card small,
.jnw-premium-card small { color: var(--jnw-blue); font-size: .67rem; font-weight: 900; letter-spacing: .14em; }
.jnw-section-heading h2,
.jnw-section-title-row h2 { font-size: 1.65rem; letter-spacing: -.035em; margin: .28rem 0 0; }
.jnw-section-heading > a,
.jnw-section-heading > span,
.jnw-section-title-row a { color: var(--jnw-muted); font-size: .75rem; }
.jnw-forecast-grid { display: grid; gap: .65rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1.15rem; }
.jnw-day-card {
  align-items: center;
  background: linear-gradient(145deg, rgba(27, 49, 76, .96), rgba(17, 35, 58, .96));
  border: 1px solid rgba(159, 184, 218, .16);
  border-radius: 1.15rem;
  display: grid;
  gap: .75rem;
  grid-template-columns: 4rem minmax(0, 1fr) auto 5.6rem;
  min-height: 6.25rem;
  padding: .75rem .8rem;
}
.jnw-day-card.is-featured { border-color: rgba(85,185,255,.42); box-shadow: inset .24rem 0 0 var(--jnw-blue); }
.jnw-day-card.wettest { background: linear-gradient(145deg, rgba(29, 62, 91, .98), rgba(17, 42, 68, .98)); border-color: rgba(85,185,255,.32); }
.jnw-day-icon { align-items: center; display: flex; justify-content: center; }
.jnw-day-icon .jnw-weather-symbol { height: 3.7rem; width: 3.7rem; }
.jnw-day-copy { min-width: 0; }
.jnw-day-copy > strong { color: #f2f6fc; display: block; font-size: .82rem; font-weight: 950; letter-spacing: .08em; }
.jnw-day-summary { -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: #b9c7d9 !important; display: -webkit-box; font-size: .76rem; line-height: 1.35; margin: .28rem 0 0; overflow: hidden; }
.jnw-temps { display: flex; flex-direction: column; min-width: 4.5rem; text-align: right; }
.jnw-temps b { font-size: 1rem; white-space: nowrap; }
.jnw-temps span { color: var(--jnw-muted); font-size: .8rem; margin-top: .22rem; white-space: nowrap; }
.jnw-precip-chance {
  align-items: center;
  background: rgba(61, 171, 237, .14);
  border: 1px solid rgba(82, 194, 252, .25);
  border-radius: .9rem;
  color: #78d1ff;
  display: grid;
  grid-template-columns: .75rem auto;
  justify-content: center;
  min-height: 4.4rem;
  padding: .55rem .5rem;
}
.jnw-precip-chance i {
  background: linear-gradient(145deg, #78d8ff, #268ed2);
  border-radius: 60% 40% 62% 38% / 64% 42% 58% 36%;
  display: block;
  height: .72rem;
  transform: rotate(45deg);
  width: .72rem;
}
.jnw-precip-chance b { font-size: 1.28rem; line-height: 1; margin-left: .28rem; }
.jnw-precip-chance small { color: #a9cbe0; font-size: .55rem; font-weight: 900; grid-column: 1 / -1; letter-spacing: .09em; margin-top: .24rem; text-align: center; }
.jnw-precip-chance.is-unavailable { opacity: .58; }
.jnw-forecast-placeholder { min-height: 11rem; }
.jnw-forecast-official-link { color: var(--jnw-blue) !important; display: inline-block; font-size: .76rem; font-weight: 850; margin-top: .8rem; }

.jnw-baron-widget {
  background: #0b1928;
  border: 1px solid rgba(159, 184, 218, .22);
  border-radius: 1.2rem;
  margin: 1rem auto 0;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.jnw-baron-widget iframe {
  border: 0;
  display: block;
  width: 100%;
}
.jnw-baron-current {
  height: 620px;
  max-width: 800px;
}
.jnw-baron-current iframe { height: 620px; }
.jnw-baron-forecast {
  background: #fff !important;
  border-color: rgba(255, 255, 255, .8);
  color-scheme: light;
  height: 606px;
  max-width: 500px;
}
.jnw-baron-forecast iframe {
  background: #fff !important;
  color-scheme: light;
  height: 606px;
}

.jnw-baron-radar {
  background: #0b1928;
  border: 1px solid rgba(159, 184, 218, .22);
  border-radius: 1.2rem;
  height: min(620px, 72vh);
  margin: 1rem auto 0;
  max-width: 800px;
  min-height: 430px;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.jnw-baron-radar iframe {
  border: 0;
  display: block;
  height: 100%;
  position: relative;
  width: 100%;
  z-index: 1;
}
.jnw-baron-radar iframe:fullscreen {
  border-radius: 0;
  height: 100%;
  width: 100%;
}
.jnw-baron-radar.is-fallback-fullscreen {
  border-radius: 0;
  height: 100vh !important;
  inset: 0;
  margin: 0;
  max-width: none;
  min-height: 0;
  position: fixed;
  width: 100vw;
  z-index: 99999;
}
.jnw-baron-radar.is-fallback-fullscreen iframe { height: 100%; width: 100%; }
.jnw-radar-fallback { align-items: center; color: var(--jnw-muted) !important; display: flex; inset: 0; justify-content: center; margin: 0; padding: 1rem; position: absolute; text-align: center; }
.jnw-primary-button { align-items: center; background: #2b8ed8; border-radius: .85rem; display: flex; font-size: .86rem; font-weight: 850; justify-content: space-between; margin-top: .85rem; padding: .9rem 1rem; }
.jnw-primary-button:hover,
.jnw-primary-button:focus-visible { background: #379be6; }

.jnw-local-nws { border-top: 3px solid var(--jnw-blue); padding: 1.35rem; }
.jnw-local-nws.is-loading { cursor: progress; }
.jnw-local-nws.is-loading .jnw-local-nws-copy,
.jnw-local-nws.is-loading .jnw-alerts-block { opacity: .62; }
.jnw-local-nws-header { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-local-nws-header small,
.jnw-offices-section .jnw-section-title-row small {
  color: var(--jnw-blue);
  font-size: .67rem;
  font-weight: 900;
  letter-spacing: .14em;
}
.jnw-local-nws-header h2 { font-size: clamp(1.55rem, 4.8vw, 2.1rem); letter-spacing: -.04em; margin: .35rem 0 0; }
.jnw-office-badge,
.jnw-your-office {
  background: rgba(85, 185, 255, .13);
  border: 1px solid rgba(85, 185, 255, .36);
  border-radius: 999px;
  color: #83ceff;
  flex: 0 0 auto;
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .08em;
  padding: .45rem .62rem;
  white-space: nowrap;
}
.jnw-local-nws-copy { color: #c3cede !important; line-height: 1.6; margin: .9rem 0 0; max-width: 50rem; }
.jnw-local-nws-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.jnw-local-nws-actions a,
.jnw-office-links a {
  background: rgba(85, 185, 255, .1);
  border: 1px solid rgba(85, 185, 255, .22);
  border-radius: .7rem;
  color: #8fd3ff;
  font-size: .74rem;
  font-weight: 850;
  padding: .6rem .72rem;
}
.jnw-local-nws-actions a:hover,
.jnw-local-nws-actions a:focus-visible,
.jnw-office-links a:hover,
.jnw-office-links a:focus-visible { background: rgba(85, 185, 255, .18); border-color: rgba(85, 185, 255, .5); }
.jnw-alerts-block { border-top: 1px solid var(--jnw-line); margin-top: 1.15rem; padding-top: 1rem; transition: opacity .2s ease; }
.jnw-alerts-heading { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-alerts-heading strong { font-size: .92rem; }
.jnw-alerts-heading span { color: var(--jnw-muted); font-size: .7rem; }
.jnw-alert-list { display: grid; gap: .65rem; margin-top: .75rem; }
.jnw-alert-list > p { color: var(--jnw-muted) !important; font-size: .8rem; margin: 0; }
.jnw-no-alerts { background: rgba(52, 211, 153, .08); border: 1px solid rgba(52, 211, 153, .2); border-radius: .9rem; color: #9ce7cb !important; padding: .85rem; }
.jnw-alert-feed-unavailable { background: rgba(255,190,78,.08); border: 1px solid rgba(255,190,78,.25); border-radius: .9rem; color: #f3d598 !important; line-height: 1.5; padding: .85rem; }
.jnw-alert-card { background: rgba(255, 122, 69, .08); border: 1px solid rgba(255, 122, 69, .25); border-left: .35rem solid var(--jnw-orange); border-radius: .9rem; padding: .85rem; }
.jnw-alert-card > strong { color: #ffb39a; display: block; font-size: .92rem; }
.jnw-alert-card > p { color: #d7deea !important; font-size: .78rem; line-height: 1.45; margin: .35rem 0 .6rem; }
.jnw-alert-card > div { color: var(--jnw-muted); display: flex; flex-wrap: wrap; font-size: .67rem; gap: .65rem; }
.jnw-alert-severity { color: #ffc0aa; font-weight: 850; }
.jnw-alert-card > a { color: var(--jnw-blue); display: inline-block; font-size: .72rem; font-weight: 850; margin-top: .65rem; }
.jnw-alert-card.is-danger { background: rgba(var(--jnw-warning-red-rgb), .09); border-color: rgba(var(--jnw-warning-red-rgb), .34); border-left-color: var(--jnw-warning-red); }
.jnw-alert-card.is-danger > strong,
.jnw-alert-card.is-danger .jnw-alert-severity { color: var(--jnw-warning-red-soft); }
.jnw-alert-card.is-watch { background: rgba(255, 122, 69, .08); border-color: rgba(255, 122, 69, .25); border-left-color: var(--jnw-orange); }
.jnw-alert-card.is-watch > strong,
.jnw-alert-card.is-watch .jnw-alert-severity { color: #ffb39a; }
.jnw-alert-card.is-flood { background: rgba(var(--jnw-flood-green-rgb), .11); border-color: rgba(var(--jnw-flood-green-rgb), .38); border-left-color: var(--jnw-flood-green); }
.jnw-alert-card.is-flood > strong,
.jnw-alert-card.is-flood .jnw-alert-severity { color: var(--jnw-flood-green-soft); }
.jnw-alert-card.is-advisory { background: rgba(245, 207, 53, .07); border-color: rgba(245, 207, 53, .24); border-left-color: #f5cf35; }
.jnw-alert-card.is-advisory > strong,
.jnw-alert-card.is-advisory .jnw-alert-severity { color: #f6dc75; }
.jnw-alert-card.is-minor { background: rgba(98, 201, 248, .06); border-color: rgba(98, 201, 248, .2); border-left-color: #62c9f8; }
.jnw-alert-card.is-minor > strong,
.jnw-alert-card.is-minor .jnw-alert-severity { color: #93dcff; }
.jnw-data-updated { color: var(--jnw-muted); display: block; font-size: .64rem; line-height: 1.4; margin-top: .75rem; }

.jnw-offices-section { padding: .4rem 0; }
.jnw-offices-section .jnw-section-title-row > span { color: var(--jnw-muted); font-size: .75rem; }
.jnw-office-grid { display: grid; gap: .8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: .9rem; }
.jnw-office-card {
  background: linear-gradient(145deg, #152942, #0f2138);
  border: 1px solid var(--jnw-line);
  border-radius: 1.25rem;
  min-height: 14rem;
  padding: 1.1rem;
  transition: border-color .2s ease, transform .2s ease;
}
.jnw-office-card.is-local-office { border-color: rgba(85, 185, 255, .65); box-shadow: inset 0 0 0 1px rgba(85, 185, 255, .12); order: -1; }
.jnw-office-card-top { align-items: center; display: flex; gap: .7rem; justify-content: space-between; }
.jnw-office-code { color: white; font-size: 1.55rem; font-weight: 950; letter-spacing: -.03em; }
.jnw-office-card h3 { font-size: 1.22rem; letter-spacing: -.025em; margin: 1rem 0 .35rem; }
.jnw-office-card p { color: var(--jnw-muted) !important; font-size: .8rem; line-height: 1.5; margin: 0; }
.jnw-office-links { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.15rem; }
.jnw-office-links a { font-size: .68rem; padding: .52rem .6rem; }

.jnw-nws-story { display: grid; gap: 1.2rem; grid-template-columns: minmax(220px, .8fr) 1.2fr; overflow: hidden; padding: 1.15rem; }
.jnw-nws-graphic { background: linear-gradient(135deg, #e9f1f9, #c9dcee); border-radius: 1rem; color: #113253; min-height: 12.5rem; padding: 1.1rem; }
.jnw-nws-graphic > span { background: #1b5b93; border-radius: .35rem; color: white; display: inline-block; font-size: .6rem; font-weight: 900; padding: .32rem .45rem; }
.jnw-nws-graphic > strong { display: block; font-size: 1.25rem; letter-spacing: -.02em; margin-top: .65rem; }
.jnw-nws-graphic > small { display: block; font-size: .7rem; font-weight: 800; margin-top: .6rem; }
.jnw-rain-bars { align-items: end; display: flex; gap: .25rem; height: 5rem; margin-top: .7rem; }
.jnw-rain-bars i { background: #84c784; border-radius: .2rem .2rem 0 0; flex: 1; }
.jnw-rain-bars i:first-child { height: 30%; }
.jnw-rain-bars i:nth-child(2) { background: #55b76b; height: 55%; }
.jnw-rain-bars i:nth-child(3) { background: #299953; height: 90%; }
.jnw-rain-bars i:nth-child(4) { background: #e1cc52; height: 72%; }
.jnw-rain-bars i:nth-child(5) { height: 42%; }
.jnw-story-copy { align-self: center; }
.jnw-story-copy h2 { font-size: 1.75rem; letter-spacing: -.04em; margin: .4rem 0 .6rem; }
.jnw-story-copy p { color: #bec9d8 !important; line-height: 1.55; margin: 0 0 .85rem; }
.jnw-story-copy a { color: var(--jnw-blue); font-size: .82rem; font-weight: 850; }

.jnw-products-section { padding: .4rem 0; }
.jnw-section-title-row { padding: 0 .25rem; }
.jnw-product-grid { display: grid; gap: .65rem; grid-template-columns: repeat(4, 1fr); margin-top: .9rem; }
.jnw-product-card { background: linear-gradient(145deg, #152942, #0f2138); border: 1px solid var(--jnw-line); border-radius: 1.15rem; min-height: 8.8rem; padding: 1rem; position: relative; }
.jnw-product-card:hover,
.jnw-product-card:focus-visible { border-color: rgba(85,185,255,.5); transform: translateY(-1px); }
.jnw-product-code { color: white; display: block; font-size: 1.45rem; font-weight: 950; letter-spacing: -.02em; }
.jnw-product-card strong { display: block; font-size: .85rem; margin-top: 1.55rem; }
.jnw-product-card small { color: var(--jnw-muted); display: block; font-size: .64rem; margin-top: .3rem; }
.jnw-product-badge { background: var(--jnw-orange); border-radius: 999px; color: #2d0e04; font-size: .58rem; font-weight: 950; padding: .28rem .4rem; position: absolute; right: .7rem; top: .7rem; }

.jnw-utility-grid { display: grid; gap: 1.25rem; grid-template-columns: 1fr 1fr; }
.jnw-air-card { padding: 1.25rem; }
.jnw-tide-card { min-height: 26rem; padding: clamp(1.6rem, 3vw, 2.2rem); }
.jnw-card-label { color: #bdc8d8; font-size: .72rem; font-weight: 900; letter-spacing: .1em; }
.jnw-tide-card .jnw-card-label { font-size: clamp(.88rem, 1.5vw, 1.02rem); }
.jnw-aq-dot { background: var(--jnw-green); border-radius: .35rem; display: inline-block; height: .75rem; margin-right: .35rem; vertical-align: middle; width: .75rem; }
.jnw-card-placeholder { align-items: flex-start; display: flex; flex-direction: column; gap: .4rem; justify-content: center; min-height: 10rem; }
.jnw-card-placeholder strong { font-size: 1.3rem; }
.jnw-card-placeholder span { color: var(--jnw-muted); font-size: .8rem; line-height: 1.5; }
.jnw-aq-current { --jnw-aq-current-accent: #71d7a7; margin: .75rem 0 0; max-width: 23rem; text-align: center; }
.jnw-aq-dial { --jnw-aq-needle-angle: 180deg; aspect-ratio: 2 / 1; margin: 0 auto; max-width: 23rem; position: relative; width: 100%; }
.jnw-aq-dial-arc {
  background: conic-gradient(from 270deg at 50% 100%, #00e400 0deg 30deg, #ffff00 30deg 60deg, #ff7e00 60deg 90deg, #ff0000 90deg 120deg, #8f3f97 120deg 150deg, #7e0023 150deg 180deg, transparent 180deg 360deg);
  inset: 0;
  -webkit-mask: radial-gradient(circle at 50% 100%, transparent 0 55%, #000 56% 100%);
  mask: radial-gradient(circle at 50% 100%, transparent 0 55%, #000 56% 100%);
  position: absolute;
}
.jnw-aq-dial.is-aqhi .jnw-aq-dial-arc { background: conic-gradient(from 270deg at 50% 100%, #4bd595 0deg 45deg, #ffd353 45deg 90deg, #ff626e 90deg 135deg, #cb74e9 135deg 180deg, transparent 180deg 360deg); }
.jnw-aq-dial::after { border-bottom: 1px solid rgba(203, 222, 239, .34); bottom: 0; content: ''; left: 2.5%; position: absolute; right: 2.5%; }
.jnw-aq-dial-needle {
  background: #f7fbff;
  bottom: -.3rem;
  clip-path: polygon(0 35%, 100% 50%, 0 65%);
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .8));
  height: 1rem;
  left: 50%;
  position: absolute;
  transform: rotate(var(--jnw-aq-needle-angle));
  transform-origin: 0 50%;
  transition: transform .45s ease;
  width: 43%;
  z-index: 2;
}
.jnw-aq-dial-hub { background: #f7fbff; border: .22rem solid #142a44; border-radius: 50%; bottom: -.42rem; box-shadow: 0 1px 3px rgba(0,0,0,.65); height: 1.15rem; left: 50%; position: absolute; transform: translateX(-50%); width: 1.15rem; z-index: 4; }
.jnw-aq-dial-readout { bottom: .8rem; left: 50%; line-height: 1; position: absolute; transform: translateX(-50%); z-index: 3; }
.jnw-aq-dial-readout strong { color: #f8fbff; display: block; font-size: clamp(2.4rem, 6vw, 3.35rem); font-weight: 950; letter-spacing: -.06em; text-shadow: 0 1px 5px rgba(3, 15, 27, .95); }
.jnw-aq-dial-readout small { color: #d4dfeb; display: block; font-size: .75rem; font-weight: 950; letter-spacing: .08em; margin-top: .18rem; }
.jnw-aq-current-category { color: var(--jnw-aq-current-accent); display: block; font-size: clamp(1.35rem, 3.2vw, 1.85rem); letter-spacing: -.025em; line-height: 1.1; margin-top: .85rem; }
.jnw-aq-current-meta { color: #aebfd2; display: block; font-size: .7rem; line-height: 1.4; margin-top: .42rem; }
.jnw-aq-current.is-moderate,
.jnw-aq-current.is-moderate-health-risk { --jnw-aq-current-accent: #ffd353; }
.jnw-aq-current.is-unhealthy-for-sensitive-groups { --jnw-aq-current-accent: #ff9c4a; }
.jnw-aq-current.is-unhealthy,
.jnw-aq-current.is-high-health-risk { --jnw-aq-current-accent: #ff626e; }
.jnw-aq-current.is-very-unhealthy,
.jnw-aq-current.is-very-high-health-risk { --jnw-aq-current-accent: #cb74e9; }
.jnw-aq-current.is-hazardous { --jnw-aq-current-accent: #a75d7c; }
.jnw-aq-current.is-unavailable { --jnw-aq-current-accent: #9bacc0; }
.jnw-aq-dial.is-unavailable .jnw-aq-dial-arc { filter: grayscale(1); opacity: .28; }
.jnw-aq-dial.is-unavailable .jnw-aq-dial-needle { opacity: 0; }
.jnw-air-forecast { --jnw-aq-accent: #71d7a7; background: rgba(255,255,255,.045); border: 1px solid rgba(144,178,212,.2); border-left: .35rem solid var(--jnw-aq-accent); border-radius: 1rem; margin: .85rem 0 1rem; padding: .9rem 1rem; }
.jnw-air-forecast > small { color: #aebfd2; display: block; font-size: .7rem; font-weight: 950; letter-spacing: .11em; }
.jnw-air-forecast > div { align-items: center; display: flex; gap: .85rem; margin-top: .45rem; }
.jnw-air-forecast > div > strong { color: var(--jnw-aq-accent); font-size: clamp(2.7rem, 5vw, 3.7rem); letter-spacing: -.07em; line-height: .9; }
.jnw-air-forecast > div > strong.is-category-forecast { font-size: clamp(1.65rem, 4vw, 2.35rem); letter-spacing: -.035em; line-height: 1; max-width: 12rem; }
.jnw-air-forecast > div > span { display: flex; flex-direction: column; gap: .18rem; min-width: 0; }
.jnw-air-forecast b { font-size: 1.05rem; }
.jnw-air-forecast em { color: #aab9cb; font-size: .75rem; font-style: normal; line-height: 1.35; }
.jnw-air-forecast p { color: #bdc9d8; font-size: .77rem; line-height: 1.45; margin: .7rem 0 0; }
.jnw-air-forecast.is-moderate { --jnw-aq-accent: #ffd353; }
.jnw-air-forecast.is-moderate-health-risk { --jnw-aq-accent: #ffd353; }
.jnw-air-forecast.is-unhealthy-for-sensitive-groups { --jnw-aq-accent: #ff9c4a; }
.jnw-air-forecast.is-unhealthy { --jnw-aq-accent: #ff626e; }
.jnw-air-forecast.is-high-health-risk { --jnw-aq-accent: #ff626e; }
.jnw-air-forecast.is-very-unhealthy { --jnw-aq-accent: #cb74e9; }
.jnw-air-forecast.is-very-high-health-risk { --jnw-aq-accent: #cb74e9; }
.jnw-air-forecast.is-hazardous { --jnw-aq-accent: #a75d7c; }
.jnw-air-card > small,
.jnw-tide-card > small { color: var(--jnw-muted); display: block; font-size: clamp(.8rem, 1.4vw, .95rem); line-height: 1.45; }
.jnw-air-card > small a,
.jnw-tide-card > small a { color: var(--jnw-blue); }
.jnw-pollen-panel { --jnw-pollen-accent: #71d7a7; border-top: 1px solid var(--jnw-line); margin-top: 1.2rem; padding-top: 1.2rem; }
.jnw-pollen-panel > header { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-pollen-panel > header > div { min-width: 0; }
.jnw-pollen-panel > header small { color: #b9c7d8; font-size: .7rem; font-weight: 950; letter-spacing: .11em; }
.jnw-pollen-panel > header h3 { color: var(--jnw-pollen-accent); font-size: clamp(1.55rem, 3.8vw, 2.15rem); letter-spacing: -.04em; line-height: 1.05; margin: .3rem 0 0; }
.jnw-pollen-panel > header > span { background: rgba(255,255,255,.045); border: 1px solid rgba(144,178,212,.28); border-radius: 999px; color: var(--jnw-pollen-accent); flex: 0 0 auto; font-size: 1rem; font-weight: 950; padding: .5rem .72rem; }
.jnw-pollen-dot { background: var(--jnw-pollen-accent); border-radius: 50%; display: inline-block; height: .65rem; margin-right: .38rem; vertical-align: -.02rem; width: .65rem; }
.jnw-pollen-placeholder { min-height: 7rem; }
.jnw-pollen-types { display: grid; gap: .55rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1rem; }
.jnw-pollen-types > span { background: rgba(255,255,255,.04); border: 1px solid rgba(144,178,212,.18); border-radius: .85rem; display: flex; flex-direction: column; min-width: 0; padding: .75rem; }
.jnw-pollen-types small { color: #aebfd2; font-size: .62rem; font-weight: 950; letter-spacing: .09em; }
.jnw-pollen-types strong { color: var(--jnw-pollen-accent); font-size: 1.35rem; line-height: 1; margin-top: .4rem; }
.jnw-pollen-types em { color: #b8c6d6; font-size: .66rem; font-style: normal; line-height: 1.25; margin-top: .35rem; }
.jnw-pollen-live > p { color: #c4cfdd !important; font-size: .78rem; line-height: 1.5; margin: .9rem 0 .4rem; }
.jnw-pollen-tomorrow {
  --jnw-pollen-tomorrow-accent: #8fd4b0;
  background: color-mix(in srgb, var(--jnw-pollen-tomorrow-accent) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--jnw-pollen-tomorrow-accent) 36%, transparent);
  border-left: .35rem solid var(--jnw-pollen-tomorrow-accent);
  border-radius: .85rem;
  color: var(--jnw-pollen-tomorrow-accent);
  display: block;
  font-size: clamp(.88rem, 1.7vw, 1.02rem);
  font-weight: 900;
  line-height: 1.35;
  margin-top: .85rem;
  padding: .78rem .9rem;
}
.jnw-pollen-tomorrow.is-level-0 { --jnw-pollen-tomorrow-accent: #8fd4b0; }
.jnw-pollen-tomorrow.is-level-1 { --jnw-pollen-tomorrow-accent: #62d391; }
.jnw-pollen-tomorrow.is-level-2 { --jnw-pollen-tomorrow-accent: #b7d95e; }
.jnw-pollen-tomorrow.is-level-3 { --jnw-pollen-tomorrow-accent: #ffd353; }
.jnw-pollen-tomorrow.is-level-4 { --jnw-pollen-tomorrow-accent: #ff9c4a; }
.jnw-pollen-tomorrow.is-level-5 { --jnw-pollen-tomorrow-accent: #ff626e; }
.jnw-pollen-panel > footer { align-items: center; display: flex; flex-wrap: wrap; gap: .35rem .75rem; justify-content: space-between; margin-top: .9rem; }
.jnw-pollen-panel > footer span,
.jnw-pollen-panel > footer a { color: var(--jnw-muted); font-size: .7rem; }
.jnw-pollen-panel > footer a { color: var(--jnw-blue); }
.jnw-pollen-panel.is-level-0 { --jnw-pollen-accent: #8fd4b0; }
.jnw-pollen-panel.is-level-1 { --jnw-pollen-accent: #62d391; }
.jnw-pollen-panel.is-level-2 { --jnw-pollen-accent: #b7d95e; }
.jnw-pollen-panel.is-level-3 { --jnw-pollen-accent: #ffd353; }
.jnw-pollen-panel.is-level-4 { --jnw-pollen-accent: #ff9c4a; }
.jnw-pollen-panel.is-level-5 { --jnw-pollen-accent: #ff626e; }
.jnw-pollen-panel.is-unavailable { --jnw-pollen-accent: #8c9caf; }
.jnw-aq-main { align-items: center; display: flex; gap: 1rem; margin: 1rem 0; }
.jnw-aq-main > strong { font-size: 4.5rem; font-weight: 500; letter-spacing: -.07em; line-height: 1; }
.jnw-aq-main div { display: flex; flex-direction: column; gap: .25rem; }
.jnw-aq-main b { font-size: 1.25rem; }
.jnw-aq-main span { color: var(--jnw-muted); font-size: .78rem; }
.jnw-aq-scale { background: linear-gradient(90deg, #34d399, #ffd34e, #ff7a45, #d15be0); border-radius: 1rem; height: .55rem; position: relative; }
.jnw-aq-scale i { background: white; border: 3px solid #081629; border-radius: 50%; height: 1.2rem; left: 15%; position: absolute; top: 50%; transform: translateY(-50%); width: 1.2rem; }
.jnw-tide-main { align-items: end; display: flex; justify-content: space-between; margin-top: 1.2rem; }
.jnw-tide-main > strong { font-size: clamp(4.25rem, 7vw, 5.75rem); letter-spacing: -.065em; line-height: .95; }
.jnw-tide-main > span { color: var(--jnw-muted); display: flex; flex-direction: column; font-size: clamp(.92rem, 1.5vw, 1.08rem); text-align: right; }
.jnw-tide-main b { color: white; font-size: clamp(1.55rem, 2.7vw, 2rem); margin-top: .3rem; }
.jnw-tide-live { margin: 1rem 0 1.25rem; }
.jnw-tide-events { border-top: 1px solid var(--jnw-line); display: grid; gap: clamp(.65rem, 2vw, 1.25rem); grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1.5rem; padding-top: 1.45rem; }
.jnw-tide-events > span { display: flex; flex-direction: column; gap: .55rem; min-width: 0; padding: .35rem 0; }
.jnw-tide-events strong { color: #f7f9fc; font-size: clamp(1.55rem, 3.4vw, 2.15rem); letter-spacing: -.025em; line-height: 1; }
.jnw-tide-events small { color: #acbad0; display: flex; flex-wrap: wrap; font-size: clamp(1rem, 2.15vw, 1.32rem); font-weight: 750; gap: .25rem .45rem; line-height: 1.35; }
.jnw-tide-events small b { color: #f7f9fc; font-size: 1.08em; }
.jnw-tide-slack { align-items: center; background: rgba(73,190,255,.075); border: 1px solid rgba(87,200,255,.24); border-radius: 1rem; display: flex; gap: .85rem; margin: 0 0 1rem; padding: .85rem 1rem; }
.jnw-tide-slack > span { color: #66d1ff; font-size: 2.1rem; font-weight: 900; line-height: 1; }
.jnw-tide-slack > div { display: flex; flex-direction: column; gap: .22rem; }
.jnw-tide-slack strong { color: #80dcff; font-size: .78rem; letter-spacing: .07em; text-transform: uppercase; }
.jnw-tide-slack small { color: #c2d2e1; font-size: .78rem; line-height: 1.4; }
.jnw-tide-slack[hidden] { display: none; }
.jnw-tide-chart { display: block; height: 5.5rem; margin-top: .4rem; width: 100%; }

.jnw-sky-card { align-items: center; display: grid; gap: 1rem; grid-template-columns: 1.4fr .8fr auto; overflow: hidden; padding: 1.4rem; position: relative; }
.jnw-sky-card h2 { font-size: 1.7rem; letter-spacing: -.04em; margin: .35rem 0 .5rem; }
.jnw-sky-card p { color: #b9c5d4 !important; line-height: 1.55; margin: 0; max-width: 36rem; }
.jnw-meteor-scene { height: 8rem; position: relative; width: 12rem; }
.jnw-meteor-scene span { bottom: .2rem; color: #e8e8ff; font-size: 3.5rem; position: absolute; right: 1rem; }
.jnw-meteor-scene i { background: linear-gradient(90deg,transparent,#fff7aa); height: 2px; position: absolute; transform: rotate(-25deg); width: 5rem; }
.jnw-meteor-scene i::after { background: white; border-radius: 50%; box-shadow: 0 0 9px white; content: ""; height: 4px; position: absolute; right: 0; top: -1px; width: 4px; }
.jnw-meteor-scene i:nth-child(1) { left: 0; top: 1rem; }
.jnw-meteor-scene i:nth-child(2) { left: 3.5rem; top: 3rem; width: 3rem; }
.jnw-meteor-scene i:nth-child(3) { left: 1.5rem; top: 5rem; width: 4rem; }
.jnw-excellent { background: rgba(52,211,153,.15); border: 1px solid rgba(52,211,153,.35); border-radius: 999px; color: #62e5b4; font-size: .65rem; font-weight: 950; padding: .5rem .7rem; white-space: nowrap; }

.jnw-premium-card { align-items: center; background: linear-gradient(120deg, #ff7a40, #e94732); border-radius: 1.5rem; box-shadow: 0 1rem 2.5rem rgba(174, 48, 28, .18); color: #210c08; display: flex; gap: 1.5rem; justify-content: space-between; padding: clamp(1.5rem, 3vw, 2rem); }
.jnw-premium-card small { color: #5d1b0e; }
.jnw-premium-card h2 { font-size: clamp(1.55rem, 3vw, 2.05rem); letter-spacing: -.04em; line-height: 1.05; margin: .4rem 0 .55rem; }
.jnw-premium-card p { line-height: 1.45; margin: 0; max-width: 43rem; opacity: .78; }
.jnw-premium-card a { align-items: center; background: #20100b; border: 2px solid rgba(255,255,255,.16); border-radius: 1rem; box-shadow: 0 .7rem 1.4rem rgba(61, 15, 8, .2); color: white; display: flex; flex-direction: column; font-weight: 900; gap: .2rem; min-width: 15.5rem; padding: 1rem 1.2rem; text-align: center; white-space: nowrap; }
.jnw-premium-card a span { font-size: .9rem; }
.jnw-premium-card a small { color: #ffd2c2; font-size: .68rem; letter-spacing: .03em; }
.jnw-premium-card a:hover,
.jnw-premium-card a:focus-visible { background: #090504; border-color: rgba(255,255,255,.48); transform: translateY(-1px); }
.jnw-sponsor-slot {
  align-items: center;
  background: linear-gradient(115deg, rgba(18, 44, 66, .98), rgba(8, 28, 47, .98));
  border: 1px solid rgba(91, 194, 237, .28);
  border-left: 4px solid #58c9f5;
  border-radius: 1.2rem;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 1rem 1.15rem;
}
.jnw-sponsor-slot-copy { display: flex; flex-direction: column; gap: .18rem; min-width: 0; }
.jnw-sponsor-slot-copy > span { color: #72d7ff; font-size: .62rem; font-weight: 950; letter-spacing: .12em; }
.jnw-sponsor-slot-copy > strong { color: #f0f6fc; font-size: clamp(1.05rem, 3vw, 1.3rem); letter-spacing: -.025em; line-height: 1.15; }
.jnw-sponsor-slot-copy > small { color: #9fb2c4; font-size: .72rem; line-height: 1.4; }
.jnw-sponsor-slot > a {
  align-items: center;
  background: #58c9f5;
  border: 1px solid #82dcfb;
  border-radius: .8rem;
  color: #042039;
  display: inline-flex;
  font-size: .78rem;
  font-weight: 950;
  gap: .45rem;
  justify-content: center;
  min-height: 2.8rem;
  padding: .7rem .9rem;
  text-align: center;
  white-space: nowrap;
}
.jnw-sponsor-slot > a:hover,
.jnw-sponsor-slot > a:focus-visible { background: #84dcfb; outline: 3px solid rgba(98, 207, 247, .24); outline-offset: 2px; }
.jnw-sponsor-slot > a span { font-size: 1rem; line-height: 1; }

.jnw-footer { align-items: center; color: var(--jnw-muted); display: flex; gap: 1rem; justify-content: space-between; padding: 1.2rem .25rem; }
.jnw-footer-brand { align-items: center; display: flex; gap: .7rem; }
.jnw-footer-brand div { display: flex; flex-direction: column; gap: .2rem; }
.jnw-footer-brand small { font-size: .68rem; }
.jnw-footer-brand strong { color: #e8eef7; }
.jnw-footer-brand img { border-radius: .65rem; display: block; height: 2.65rem; object-fit: cover; width: 2.65rem; }
.jnw-footer-brand .jnw-brand-mark { height: 2.25rem; width: 2.25rem; }
.jnw-footer p { color: var(--jnw-muted) !important; font-size: .65rem; margin: 0; max-width: 22rem; text-align: right; }

.jnw-bottom-nav { background: rgba(4,16,31,.97); border-top: 1px solid var(--jnw-line); bottom: 0; display: flex; gap: .1rem; justify-content: center; left: 0; padding: .8rem max(.4rem, calc((100vw - 620px) / 2)); position: fixed; right: 0; z-index: 30; }
.jnw-bottom-nav a { align-items: center; color: #7f8da2; display: flex; flex: 1; flex-direction: column; font-size: .73rem; font-weight: 850; gap: .27rem; justify-content: center; max-width: 8rem; min-height: 3.15rem; }
.jnw-bottom-nav a > b { font: inherit; line-height: 1.02; text-align: center; }
.jnw-bottom-nav a span { font-size: 1.88rem; line-height: .9; }
.jnw-bottom-nav a.selected { color: white; }
.jnw-bottom-nav a.selected span { color: var(--jnw-blue); }

@media (min-width: 900px) {
  .jnw-content { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
  .jnw-current-card,
  .jnw-live-current-section { grid-row: span 2; }
  .jnw-risk-card,
  .jnw-notes { align-self: stretch; }
  .jnw-forecast-section,
  .jnw-radar-section,
  .jnw-local-nws,
  .jnw-offices-section,
  .jnw-utility-grid,
  .jnw-sky-card,
  .jnw-premium-card,
  .jnw-sponsor-slot,
  .jnw-footer { grid-column: 1 / -1; }
}

@media (max-width: 782px) {
  body.admin-bar .jnw-home .jnw-app-header { top: 46px; }
  body.admin-bar .jnw-home .jnw-location-strip { top: calc(5.7rem + 46px); }
}

@media (max-width: 720px) {
  .jnw-concept-flag { font-size: .58rem; }
  .jnw-app-header { min-height: 5.7rem; padding: .8rem .85rem; }
  .jnw-brand-logo { max-height: 3.55rem; width: 4.75rem; }
  .jnw-brand-copy { display: none; }
  .jnw-brand-mark { border-radius: .65rem; height: 2.2rem; width: 2.2rem; }
  .jnw-location-title strong { font-size: 1.65rem; }
  .jnw-location-title span { font-size: .88rem; }
  .jnw-header-actions { gap: 0; }
  .jnw-header-actions button,
  .jnw-header-actions a { font-size: 1.35rem; height: 2.3rem; width: 2.3rem; }
  .jnw-header-actions button:first-child { display: none; }
  .jnw-location-strip { top: 5.7rem; }
  .jnw-location-label { display: none; }
  .jnw-location-dialog { border-radius: 1.35rem; padding: 1.2rem; }
  .jnw-location-dialog > img { height: 3rem; width: 3rem; }
  .jnw-location-search > div { align-items: stretch; }
  .jnw-location-search button { padding-left: .7rem; padding-right: .7rem; }
  .jnw-content { padding-left: .7rem; padding-right: .7rem; }
  .jnw-panel { border-radius: 1.35rem; }
  .jnw-live-current-section,
  .jnw-current-card { padding: 1rem; }
  .jnw-updated-row { font-size: .68rem; }
  .jnw-current-main { padding-top: 1.35rem; }
  .jnw-temperature { font-size: 5.2rem; }
  .jnw-condition-icon { font-size: 3.65rem; }
  .jnw-condition strong { font-size: .95rem; }
  .jnw-current-icon { height: 4.8rem; width: 4.8rem; }
  .jnw-current-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .jnw-metric-row { grid-template-columns: 1fr 1.55fr 1fr; }
  .jnw-sun-window { font-size: .59rem; gap: .3rem; }
  .jnw-sun-arc { height: 1.45rem; width: 2.8rem; }
  .jnw-sun-arc::after { width: 3.4rem; }
  .jnw-risk-card { grid-template-columns: auto 1fr; }
  .jnw-risk-badge { grid-column: 2; width: max-content; }
  .jnw-risk-card p { line-height: 1.35; }
	.jnw-sponsor-slot { align-items: stretch; gap: .75rem; grid-template-columns: 1fr; padding: .9rem; }
	.jnw-sponsor-slot > a { min-height: 2.7rem; width: 100%; }
  .jnw-notes-footer { align-items: flex-start; flex-direction: column; gap: .55rem; }
  .jnw-notes-kicker { font-size: 1rem; }
  .jnw-forecast-section,
  .jnw-radar-section { padding: 1rem; }
  .jnw-forecast-grid { grid-template-columns: 1fr; margin-right: 0; }
  .jnw-day-card {
    gap: .16rem .58rem;
    grid-template-columns: 3.45rem minmax(0, 1fr) 5rem;
    grid-template-rows: auto auto;
    min-height: 5.85rem;
    padding: .68rem .62rem;
  }
  .jnw-day-icon { grid-row: 1 / 3; }
  .jnw-day-icon .jnw-weather-symbol { height: 3.2rem; width: 3.2rem; }
  .jnw-day-copy { align-self: end; grid-column: 2; grid-row: 1; }
  .jnw-day-summary { font-size: .7rem; margin-top: .18rem; }
  .jnw-temps { align-self: start; flex-direction: row; gap: .55rem; grid-column: 2; grid-row: 2; text-align: left; }
  .jnw-temps b { font-size: .85rem; }
  .jnw-temps span { font-size: .72rem; margin-top: 0; }
  .jnw-precip-chance { grid-column: 3; grid-row: 1 / 3; min-height: 4.1rem; }
  .jnw-precip-chance b { font-size: 1.18rem; }
  .jnw-baron-radar { height: min(540px, 68vh); min-height: 400px; }
  .jnw-local-nws-header { flex-direction: column; gap: .65rem; }
  .jnw-office-grid { grid-template-columns: 1fr; }
  .jnw-office-card { min-height: 0; }
  .jnw-nws-story { grid-template-columns: 1fr; }
  .jnw-nws-graphic { min-height: 10.8rem; }
  .jnw-story-copy { padding: .15rem .2rem .35rem; }
  .jnw-product-grid { grid-template-columns: repeat(2, 1fr); }
  .jnw-product-card { min-height: 8rem; }
  .jnw-utility-grid { grid-template-columns: 1fr; }
  .jnw-sky-card { grid-template-columns: 1fr; }
  .jnw-meteor-scene { display: none; }
  .jnw-excellent { width: max-content; }
  .jnw-premium-card { align-items: flex-start; flex-direction: column; }
  .jnw-premium-card a { text-align: center; width: 100%; }
  .jnw-footer { align-items: flex-start; flex-direction: column; }
  .jnw-footer-brand small { font-size: .62rem; }
  .jnw-footer p { text-align: left; }
}

/* 0.17.0: clearer pressure trend and app-style Home forecast rows. */
.jnw-current-metrics [data-jnw-current-pressure] { white-space: nowrap; }

.jnw-forecast-grid {
  display: flex;
  flex-direction: column;
  gap: .72rem;
}
.jnw-day-card,
.jnw-day-card.is-featured {
  align-items: center;
  background: linear-gradient(105deg, rgba(29, 49, 75, .98), rgba(18, 35, 57, .98));
  border: 1px solid rgba(159, 184, 218, .2);
  border-radius: 1.2rem;
  box-shadow: none;
  display: grid;
  gap: .55rem 1rem;
  grid-template-columns: minmax(5.5rem, .8fr) minmax(9.5rem, 1.45fr) minmax(4.6rem, .65fr) minmax(8rem, 1fr);
  grid-template-rows: auto;
  min-height: 7.2rem;
  padding: 1rem 1.15rem;
  text-align: left;
}
.jnw-day-card.is-featured {
  background: linear-gradient(135deg, rgba(40, 61, 87, .99), rgba(25, 43, 66, .99));
  border-color: rgba(126, 170, 220, .32);
  box-shadow: none;
  min-height: 12rem;
}
.jnw-day-card.wettest { background: linear-gradient(105deg, rgba(29, 49, 75, .98), rgba(18, 35, 57, .98)); border-color: rgba(159, 184, 218, .2); }
.jnw-forecast-day {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  grid-column: 1;
  min-width: 0;
}
.jnw-forecast-day > strong {
  color: #f0f5fc;
  font-size: clamp(1.15rem, 3vw, 1.5rem);
  font-weight: 900;
  letter-spacing: -.025em;
}
.jnw-forecast-day > small { color: #8291a6; font-size: .82rem; font-weight: 750; margin-top: .05rem; }
.jnw-forecast-weather {
  align-items: center;
  display: flex;
  gap: .35rem;
  grid-column: 2;
  justify-content: center;
  min-width: 0;
}
.jnw-forecast-period { align-items: center; display: flex; flex-direction: column; min-width: 3.3rem; }
.jnw-forecast-period .jnw-weather-symbol { height: 3.35rem; width: 3.35rem; }
.jnw-forecast-period-precip { color: #91a1b6; font-size: .76rem; font-weight: 850; line-height: 1; margin-top: .1rem; }
.jnw-forecast-transition { color: #92a0b3; flex: 0 0 auto; font-size: 1.45rem; font-weight: 850; }
.jnw-forecast-wind {
  align-items: center;
  display: flex;
  flex-direction: column;
  grid-column: 3;
  justify-content: center;
}
.jnw-forecast-wind-ring {
  align-items: center;
  border: 2px solid rgba(237, 244, 252, .88);
  border-radius: 50%;
  display: flex;
  height: 3.35rem;
  justify-content: center;
  position: relative;
  width: 3.35rem;
}
.jnw-forecast-wind-arrow { background: #edf4fc; height: 4.55rem; left: 50%; position: absolute; top: 50%; transform-origin: center; width: 1px; }
.jnw-forecast-wind-arrow::before { color: #edf4fc; font-size: .72rem; left: 50%; line-height: 1; position: absolute; transform: translateX(-50%); }
.jnw-forecast-wind-arrow::before { content: "▲"; top: -.28rem; }
.jnw-forecast-wind-ring > b { background: #1b304a; border-radius: 50%; font-size: 1rem; font-weight: 800; line-height: 2rem; min-width: 2rem; position: relative; text-align: center; z-index: 1; }
.jnw-forecast-wind > small { color: #8493a8; font-size: .62rem; font-weight: 800; margin-top: .52rem; white-space: nowrap; }
.jnw-forecast-wind.is-unavailable { opacity: .46; }
.jnw-temps {
  align-items: center;
  display: flex;
  flex-direction: row;
  gap: .5rem;
  grid-column: 4;
  justify-content: flex-end;
  min-width: 0;
  text-align: right;
}
.jnw-temps b { color: #f3f7fd; font-size: clamp(1.3rem, 3.6vw, 1.8rem); font-weight: 900; white-space: nowrap; }
.jnw-temps span { color: #a8b4c6; font-size: clamp(1.05rem, 3vw, 1.45rem); font-weight: 750; margin: 0; white-space: nowrap; }
.jnw-temp-range { background: linear-gradient(90deg, #ffd025, #75dc58 58%, #48c887); border-radius: 999px; height: .42rem; opacity: .95; width: 2.45rem; }
.jnw-day-summary {
  -webkit-line-clamp: unset;
  color: #edf3fb !important;
  display: block;
  font-size: .98rem;
  grid-column: 1 / -1;
  line-height: 1.55;
  margin: .2rem 0 0;
  overflow: visible;
}
.jnw-day-card:not(.is-featured) .jnw-day-summary {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: 0;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

@media (max-width: 720px) {
  .jnw-current-metrics [data-jnw-current-pressure] { font-size: .78rem; }
  .jnw-day-card,
  .jnw-day-card.is-featured {
    gap: .55rem .32rem;
    grid-template-columns: minmax(4.2rem, .8fr) minmax(7.4rem, 1.55fr) minmax(3.65rem, .65fr) minmax(6.7rem, 1fr);
    min-height: 6.5rem;
    padding: .85rem .7rem;
  }
  .jnw-day-card.is-featured { min-height: 10.5rem; }
  .jnw-forecast-day > strong { font-size: 1.08rem; }
  .jnw-forecast-day > small { font-size: .74rem; }
  .jnw-forecast-weather { gap: .12rem; }
  .jnw-forecast-period { min-width: 2.8rem; }
  .jnw-forecast-period .jnw-weather-symbol { height: 2.7rem; width: 2.7rem; }
  .jnw-forecast-transition { font-size: 1.15rem; }
  .jnw-forecast-wind-ring { height: 2.75rem; width: 2.75rem; }
  .jnw-forecast-wind-ring > b { font-size: .9rem; }
  .jnw-forecast-wind > small { font-size: .52rem; margin-top: .45rem; }
  .jnw-temps { gap: .3rem; }
  .jnw-temps b { font-size: 1.25rem; }
  .jnw-temps span { font-size: 1rem; }
  .jnw-temp-range { height: .35rem; width: 1.75rem; }
  .jnw-day-summary { font-size: .86rem; line-height: 1.5; }
}

@media (max-width: 430px) {
  .jnw-day-card,
  .jnw-day-card.is-featured { grid-template-columns: 4rem minmax(6.9rem, 1.5fr) 3.35rem minmax(5.9rem, .95fr); }
  .jnw-forecast-period { min-width: 2.4rem; }
  .jnw-forecast-period .jnw-weather-symbol { height: 2.35rem; width: 2.35rem; }
  .jnw-forecast-wind-ring { height: 2.5rem; width: 2.5rem; }
  .jnw-forecast-wind-arrow { height: 3.5rem; }
  .jnw-temps b { font-size: 1.12rem; }
  .jnw-temps span { font-size: .92rem; }
  .jnw-temp-range { width: 1.2rem; }
}

@media (max-width: 370px) {
  .jnw-temperature { font-size: 4.5rem; }
  .jnw-condition-icon { font-size: 3.15rem; }
  .jnw-secondary-metrics small { font-size: .58rem; }
}

@media (prefers-reduced-motion: no-preference) {
  .jnw-live-dot { animation: jnw-pulse 2s infinite; }
  .jnw-meteor-scene i { animation: jnw-meteor 4.5s ease-in-out infinite; }
  .jnw-meteor-scene i:nth-child(2) { animation-delay: 1.4s; }
  .jnw-meteor-scene i:nth-child(3) { animation-delay: 2.5s; }
}

@keyframes jnw-pulse { 50% { box-shadow: 0 0 0 8px rgba(255,122,69,0); } }
@keyframes jnw-meteor { 0%,70% { opacity: 0; transform: translate(-10px,-6px) rotate(-25deg); } 80%,92% { opacity: 1; } 100% { opacity: 0; transform: translate(15px,7px) rotate(-25deg); } }

/* 0.8.0: denser native-weather layout inspired by Jason's mobile reference. */
.jnw-home {
  --jnw-navy: #031428;
  --jnw-panel: #15243a;
  --jnw-muted: #9aa8bc;
  background: linear-gradient(180deg, #061b31 0, #031428 18rem, #021126 100%);
}
.jnw-content {
  display: flex !important;
  gap: 1rem;
  max-width: 920px;
  padding-top: 1rem;
}
.jnw-panel {
  background: linear-gradient(145deg, #17283f, #0f2036);
  border-color: rgba(157, 181, 214, .2);
  border-radius: 1.45rem;
  box-shadow: none;
}
.jnw-display-title {
  font-size: clamp(2rem, 7vw, 3rem);
  font-weight: 950;
  letter-spacing: -.05em;
  line-height: 1;
  margin: .45rem 0 1rem;
}
.jnw-display-heading { align-items: center; }
.jnw-display-heading h2 { font-size: clamp(2rem, 7vw, 3rem); font-weight: 950; }

.jnw-live-current-section { padding: 0; }
.jnw-current-placeholder,
.jnw-current-live {
  background: linear-gradient(145deg, rgba(18, 42, 70, .98), rgba(7, 26, 48, .98));
  border: 1px solid rgba(157, 181, 214, .18);
  border-radius: 1.5rem;
  padding: clamp(1.1rem, 3vw, 1.8rem);
}
.jnw-current-live { margin-top: 0; }
.jnw-updated-row { font-size: clamp(.76rem, 2vw, .95rem); }
.jnw-current-main { min-height: 14rem; padding: 1.7rem .5rem 1.2rem; }
.jnw-temperature { font-size: clamp(6.2rem, 18vw, 9rem); font-weight: 780; }
.jnw-current-icon { height: clamp(5.5rem, 15vw, 7.75rem); width: clamp(5.5rem, 15vw, 7.75rem); }
.jnw-condition strong { font-size: clamp(1.15rem, 4vw, 1.8rem); }
.jnw-feels { font-size: 1.15rem; font-weight: 750; }
.jnw-current-metrics {
  background: rgba(5, 22, 41, .5);
  border: 0;
  border-radius: 1rem;
  gap: .35rem;
  padding: .9rem .4rem;
}
.jnw-current-metrics small { font-size: .7rem; }
.jnw-current-metrics strong { font-size: .92rem; }

.jnw-risk-card { border-radius: 1.25rem; padding: 1.2rem 1.3rem; }
.jnw-risk-card h2 { font-size: clamp(1.25rem, 4vw, 1.7rem); }
.jnw-notes { border-top-width: 5px; padding: clamp(1.35rem, 4vw, 2rem); }
.jnw-notes-kicker { font-size: clamp(1.25rem, 4vw, 1.65rem); font-weight: 1000; }
.jnw-notes h2 { font-size: clamp(2rem, 7vw, 3.15rem); font-weight: 950; }
.jnw-notes p { font-size: clamp(1rem, 2.5vw, 1.16rem); }

.jnw-forecast-section { padding: 1rem 0 0; }
.jnw-forecast-grid {
  display: flex;
  flex-direction: column;
  gap: .68rem;
  margin-top: 1rem;
  overflow: visible;
}
.jnw-day-card {
  align-items: center;
  background: linear-gradient(100deg, #182a42, #122238);
  border: 1px solid rgba(157, 181, 214, .2);
  border-radius: 1.25rem;
  display: grid;
  gap: .35rem .85rem;
  grid-template-columns: 6rem 5rem minmax(0, 1fr) 6rem;
  grid-template-rows: auto auto;
  min-height: 7.4rem;
  padding: 1rem 1.2rem;
  text-align: left;
}
.jnw-day-card > strong { color: #edf3fc; font-size: 1.18rem; grid-column: 1; grid-row: 1 / 3; }
.jnw-day-icon { grid-column: 2; grid-row: 1 / 3; margin: 0; }
.jnw-day-icon .jnw-weather-symbol { height: 4.5rem; width: 4.5rem; }
.jnw-day-summary {
  -webkit-line-clamp: 1;
  color: #b8c4d4 !important;
  font-size: .82rem;
  grid-column: 3;
  grid-row: 1;
  margin: 0;
  min-height: 0;
  text-align: left;
}
.jnw-temps { align-items: baseline; flex-direction: row; gap: .45rem; grid-column: 4; grid-row: 1 / 3; justify-content: flex-end; }
.jnw-temps b { font-size: 1.45rem; }
.jnw-temps span { font-size: 1.08rem; margin: 0; }
.jnw-rain-meter { grid-column: 3; grid-row: 2; margin: 0; width: calc(100% - 4.4rem); }
.jnw-day-card > small { grid-column: 3; grid-row: 2; justify-self: end; margin: 0; }
.jnw-day-card.is-featured {
  background: linear-gradient(135deg, #22364e, #172a42);
  grid-template-columns: 1fr 5rem 7rem;
  grid-template-rows: auto auto auto;
  min-height: 12.5rem;
  padding: 1.35rem;
}
.jnw-day-card.is-featured > strong { font-size: 1.55rem; grid-column: 1; grid-row: 1; }
.jnw-day-card.is-featured .jnw-day-icon { grid-column: 2; grid-row: 1; }
.jnw-day-card.is-featured .jnw-temps { grid-column: 3; grid-row: 1; }
.jnw-day-card.is-featured .jnw-day-summary { -webkit-line-clamp: 3; color: #eef3fb !important; font-size: 1rem; grid-column: 1 / 4; grid-row: 2; line-height: 1.55; }
.jnw-day-card.is-featured .jnw-rain-meter { grid-column: 1 / 4; grid-row: 3; width: calc(100% - 5rem); }
.jnw-day-card.is-featured > small { grid-column: 1 / 4; grid-row: 3; }
.jnw-forecast-official-link { margin-left: .25rem; }

.jnw-radar-section { padding: 1.25rem; }
.jnw-baron-radar { border-radius: 1.3rem; }
.jnw-weather-stories,
.jnw-products-section,
.jnw-astronomy-section,
.jnw-space-section { padding-top: .8rem; }
.jnw-weather-story-card { display: block; min-height: 10rem; overflow: hidden; position: relative; }
.jnw-weather-story-card img { display: block; max-height: 30rem; object-fit: contain; width: 100%; }
.jnw-story-empty { align-items: center; color: var(--jnw-muted); display: flex; min-height: 11rem; padding: 1.5rem; }
.jnw-weather-story-card > strong { background: rgba(2, 14, 29, .9); bottom: 0; left: 0; padding: .72rem 1rem; position: absolute; right: 0; }
.jnw-products-section .jnw-section-title-row h2 { font-size: clamp(2rem, 7vw, 3rem); font-weight: 950; }
.jnw-product-card { min-height: 9.5rem; }

.jnw-sky-card { display: grid; grid-template-columns: 1fr; padding: clamp(1.25rem, 4vw, 2rem); }
.jnw-sky-summary { text-align: center; }
.jnw-sky-summary > small { color: var(--jnw-blue); font-size: .92rem; }
.jnw-sky-card h2 { color: #ffd827; font-size: clamp(1.5rem, 5vw, 2.2rem); margin: .55rem 0; }
.jnw-sky-card p { margin: 0 auto; max-width: 42rem; }
.jnw-astro-stats { background: rgba(3, 18, 36, .52); border-radius: 1.15rem; display: grid; gap: .75rem; grid-template-columns: repeat(3, 1fr); margin-top: .8rem; padding: 1.2rem; }
.jnw-astro-stats span { align-items: center; display: flex; flex-direction: column; gap: .3rem; text-align: center; }
.jnw-astro-stats i { font-size: 1.8rem; font-style: normal; }
.jnw-astro-stats small { color: var(--jnw-muted); font-size: .68rem; letter-spacing: .04em; }
.jnw-astro-stats strong { font-size: 1rem; }
.jnw-sky-footer { align-items: center; border-top: 1px solid var(--jnw-line); display: flex; justify-content: space-between; padding-top: .85rem; }
.jnw-sky-footer .jnw-data-updated { margin: 0; }
.jnw-sky-card .jnw-meteor-scene { display: none; }

.jnw-space-card { overflow: hidden; padding: 1.25rem; }
.jnw-space-card::before { background: linear-gradient(90deg, #8ed24c 45%, rgba(142,210,76,.05) 45%); content: ""; display: block; height: .35rem; margin: -1.25rem -1.25rem 1.25rem; }
.jnw-space-metrics { display: grid; gap: .75rem; grid-template-columns: repeat(3, 1fr); }
.jnw-space-metrics > span { background: rgba(255,255,255,.035); border: 1px solid var(--jnw-line); border-radius: 1rem; display: flex; flex-direction: column; min-height: 10rem; padding: 1rem; }
.jnw-space-metrics small { color: var(--jnw-muted); font-size: .72rem; font-weight: 900; letter-spacing: .08em; }
.jnw-space-metrics strong { color: #4ce08c; font-size: clamp(2rem, 6vw, 3.1rem); line-height: 1; margin-top: .7rem; }
.jnw-space-metrics > span:first-child strong { color: #eef3fb; }
.jnw-space-metrics > span:last-child strong { color: #ffbf27; }
.jnw-space-metrics b { color: var(--jnw-muted); font-size: .7rem; margin-top: .75rem; }
.jnw-space-card > a { color: var(--jnw-blue); display: block; font-size: .8rem; font-weight: 850; margin-top: 1rem; text-align: center; }
.jnw-space-card > .jnw-data-updated { text-align: center; }

.jnw-utility-grid { grid-template-columns: 1fr; }
.jnw-air-card { min-height: 20rem; }
.jnw-aq-current { max-width: 380px; }
.jnw-bottom-nav { padding-bottom: max(.8rem, env(safe-area-inset-bottom)); }

@media (max-width: 720px) {
  .jnw-header-actions button:first-child { display: inline-flex; }
  .jnw-header-actions a:first-of-type { display: none; }
  .jnw-content { gap: .85rem; padding-left: .7rem; padding-right: .7rem; }
  .jnw-current-main { min-height: 11rem; padding: 1.2rem .15rem .9rem; }
  .jnw-temperature { font-size: clamp(5.4rem, 25vw, 7rem); }
  .jnw-current-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .jnw-day-card { gap: .25rem .5rem; grid-template-columns: 4.4rem 3.8rem minmax(0, 1fr) 4.7rem; min-height: 6.6rem; padding: .9rem .85rem; }
  .jnw-day-card > strong { font-size: 1rem; }
  .jnw-day-icon .jnw-weather-symbol { height: 3.35rem; width: 3.35rem; }
  .jnw-day-summary { font-size: .72rem; }
  .jnw-temps { align-items: flex-end; flex-direction: column; gap: 0; }
  .jnw-temps b { font-size: 1.25rem; }
  .jnw-temps span { font-size: .95rem; }
  .jnw-day-card.is-featured { grid-template-columns: 1fr 4rem 5rem; min-height: 11rem; padding: 1.1rem; }
  .jnw-day-card.is-featured > strong { font-size: 1.35rem; }
  .jnw-day-card.is-featured .jnw-day-summary { font-size: .9rem; }
  .jnw-products-section .jnw-product-grid { grid-template-columns: repeat(2, 1fr); }
  .jnw-astro-stats { padding: .85rem .4rem; }
  .jnw-astro-stats strong { font-size: .84rem; }
  .jnw-space-metrics { gap: .45rem; }
  .jnw-space-metrics > span { min-height: 8.4rem; padding: .75rem .6rem; }
  .jnw-space-metrics small { font-size: .58rem; }
  .jnw-space-metrics b { font-size: .58rem; }
  .jnw-space-metrics strong { font-size: clamp(1.55rem, 8vw, 2.25rem); }
  .jnw-display-title { margin-left: .2rem; }
}

/* 0.9.0: dedicated, device-persistent Favorites view. */
.jnw-favorites-view {
  min-height: calc(100vh - 6.75rem);
  padding: clamp(1.25rem, 4vw, 2.5rem) 1rem 5rem;
}
.jnw-favorites-inner { margin: 0 auto; max-width: 920px; }
.jnw-favorites-header {
  align-items: flex-end;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.jnw-favorites-header small {
  color: var(--jnw-blue);
  font-size: .7rem;
  font-weight: 950;
  letter-spacing: .14em;
}
.jnw-favorites-header h1 {
  color: var(--jnw-ink);
  font-size: clamp(2.5rem, 8vw, 4.3rem);
  font-weight: 950;
  letter-spacing: -.065em;
  line-height: .95;
  margin: .35rem 0 .55rem;
}
.jnw-favorites-header p {
  color: var(--jnw-muted) !important;
  font-size: .88rem;
  margin: 0;
}
.jnw-favorites-header-actions { display: flex; gap: .5rem; }
.jnw-favorites-header-actions button,
.jnw-favorites-empty button {
  border-radius: .85rem;
  cursor: pointer;
  font-weight: 900;
  min-height: 2.8rem;
  padding: .68rem .9rem;
}
.jnw-favorites-add,
.jnw-favorites-empty button {
  background: #2b8ed8;
  border: 1px solid #68bdf8;
  color: white;
}
.jnw-favorites-edit {
  background: rgba(255,255,255,.055);
  border: 1px solid var(--jnw-line);
  color: #d8e2ee;
}
.jnw-favorites-header-actions button:hover,
.jnw-favorites-header-actions button:focus-visible,
.jnw-favorites-empty button:hover,
.jnw-favorites-empty button:focus-visible { outline: 2px solid var(--jnw-blue); outline-offset: 2px; }
.jnw-favorites-header-actions button:disabled { cursor: default; opacity: .45; }
.jnw-add-current-favorite {
  align-items: center;
  background: rgba(85,185,255,.07);
  border: 1px dashed rgba(85,185,255,.4);
  border-radius: 1rem;
  color: #aadaff;
  cursor: pointer;
  display: flex;
  font-weight: 850;
  justify-content: center;
  margin-bottom: .85rem;
  min-height: 3.25rem;
  padding: .75rem 1rem;
  width: 100%;
}
.jnw-add-current-favorite:hover,
.jnw-add-current-favorite:focus-visible { background: rgba(85,185,255,.13); outline: 2px solid var(--jnw-blue); outline-offset: 2px; }
.jnw-add-current-favorite:disabled { cursor: wait; opacity: .6; }
.jnw-favorites-list { display: grid; gap: .82rem; }
.jnw-favorite-card {
  background: linear-gradient(120deg, #19304b, #0e2037);
  border: 1px solid rgba(157,181,214,.23);
  border-radius: 1.35rem;
  overflow: hidden;
  position: relative;
  transition: border-color .18s ease, transform .18s ease;
}
.jnw-favorite-card:hover { border-color: rgba(85,185,255,.5); transform: translateY(-1px); }
.jnw-favorite-card.is-active {
  border-color: rgba(85,185,255,.7);
  box-shadow: inset 4px 0 0 var(--jnw-blue);
}
.jnw-favorite-select {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: block;
  padding: 1.05rem 1.1rem;
  text-align: left;
  width: 100%;
}
.jnw-favorite-select:focus-visible { outline: 2px solid var(--jnw-blue); outline-offset: -3px; }
.jnw-favorite-heading { align-items: flex-start; display: flex; gap: .75rem; justify-content: space-between; }
.jnw-favorite-title { display: flex; flex-direction: column; min-width: 0; }
.jnw-favorite-title strong {
  color: #f3f7fd;
  font-size: clamp(1.25rem, 4vw, 1.7rem);
  font-weight: 950;
  letter-spacing: -.035em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jnw-favorite-title small {
  color: var(--jnw-muted);
  font-size: .72rem;
  margin-top: .15rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jnw-favorite-active {
  background: rgba(85,185,255,.15);
  border: 1px solid rgba(85,185,255,.35);
  border-radius: 999px;
  color: #8fd3ff;
  font-size: .58rem;
  letter-spacing: .09em;
  padding: .35rem .48rem;
}
.jnw-favorite-weather {
  align-items: center;
  display: grid;
  gap: .75rem;
  grid-template-columns: 3.7rem minmax(0, 1fr) auto;
  margin-top: .9rem;
}
.jnw-favorite-icon { height: 3.7rem; width: 3.7rem; }
.jnw-favorite-icon[hidden] + .jnw-favorite-condition { grid-column: 1 / 3; }
.jnw-favorite-condition { display: flex; flex-direction: column; min-width: 0; }
.jnw-favorite-condition strong { color: #eef4fb; font-size: .94rem; }
.jnw-favorite-condition small { color: var(--jnw-muted); font-size: .68rem; margin-top: .16rem; }
.jnw-favorite-temp {
  color: #fff;
  font-size: clamp(2rem, 7vw, 3.1rem);
  font-weight: 800;
  letter-spacing: -.06em;
  line-height: 1;
  white-space: nowrap;
}
.jnw-favorite-alert {
  background: rgba(255,255,255,.045);
  border-radius: .7rem;
  color: #b7c4d5;
  display: block;
  font-size: .7rem;
  font-weight: 820;
  margin-top: .9rem;
  overflow: hidden;
  padding: .58rem .68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jnw-favorite-alert.has-alert { background: rgba(255,122,69,.14); color: #ffc0aa; }
.jnw-favorite-alert.is-clear { background: rgba(52,211,153,.09); color: #8de1c1; }
.jnw-favorite-alert.is-error { background: rgba(255,211,78,.08); color: #f0d989; }
.jnw-favorite-controls {
  background: rgba(3,16,32,.62);
  border-top: 1px solid var(--jnw-line);
  display: none;
  gap: .45rem;
  padding: .7rem 1rem;
}
.jnw-favorite-card.is-editing .jnw-favorite-controls { display: flex; }
.jnw-favorite-card.is-editing .jnw-favorite-select { cursor: default; opacity: .72; }
.jnw-favorite-controls button {
  background: rgba(255,255,255,.06);
  border: 1px solid var(--jnw-line);
  border-radius: .65rem;
  color: #dce5f0;
  cursor: pointer;
  font-weight: 900;
  min-height: 2.35rem;
  padding: .45rem .75rem;
}
.jnw-favorite-controls button:focus-visible { outline: 2px solid var(--jnw-blue); outline-offset: 2px; }
.jnw-favorite-controls button:disabled { cursor: default; opacity: .3; }
.jnw-favorite-controls .jnw-favorite-remove { color: #ffad94; margin-left: auto; }
.jnw-favorites-empty {
  align-items: center;
  background: linear-gradient(145deg, #17283f, #0f2036);
  border: 1px solid var(--jnw-line);
  border-radius: 1.4rem;
  display: flex;
  flex-direction: column;
  padding: 2.4rem 1.3rem;
  text-align: center;
}
.jnw-favorites-empty img { border-radius: .8rem; height: 3.5rem; object-fit: cover; width: 3.5rem; }
.jnw-favorites-empty h2 { font-size: 1.45rem; margin: .9rem 0 .35rem; }
.jnw-favorites-empty p { color: var(--jnw-muted) !important; font-size: .82rem; margin: 0 0 1rem; }
.jnw-favorites-help { color: #78879d !important; font-size: .68rem; margin: 1rem 0 0; text-align: center; }

@media (min-width: 760px) {
  .jnw-favorites-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .jnw-favorites-view { min-height: calc(100vh - 5.7rem); padding: 1.25rem .7rem 4.5rem; }
  .jnw-favorites-header { align-items: flex-start; }
  .jnw-favorites-header h1 { font-size: 2.85rem; }
  .jnw-favorites-header p { max-width: 14rem; }
  .jnw-favorites-header-actions { flex-direction: column; }
  .jnw-favorites-header-actions button { min-height: 2.35rem; padding: .5rem .68rem; }
  .jnw-favorite-select { padding: .95rem; }
  .jnw-favorite-weather { grid-template-columns: 3.15rem minmax(0, 1fr) auto; }
  .jnw-favorite-icon { height: 3.15rem; width: 3.15rem; }
  .jnw-favorite-temp { font-size: 2.25rem; }
}

/* 0.10.0: location-aware Detailed view with range chart and active hazards. */
.jnw-detailed-view {
  min-height: calc(100vh - 6.75rem);
  padding: .15rem 1rem 11rem;
}
.jnw-detailed-inner { margin: 0 auto; max-width: 980px; }
.jnw-detailed-placeholder { margin: 1.25rem auto; max-width: 980px; min-height: 18rem; }
.jnw-detailed-live { display: grid; gap: 1.2rem; }
.jnw-detailed-heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; padding: 1.1rem .75rem 0; }
.jnw-detailed-heading small,
.jnw-detailed-week-heading small { color: #67cfff; font-size: .63rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.jnw-detailed-heading h1 { font-size: clamp(2.1rem,6vw,3.25rem); letter-spacing: -.055em; line-height: .95; margin: .3rem 0 0; }
.jnw-detailed-heading p { color: #92a4ba; font-size: .76rem; line-height: 1.45; margin: 0; max-width: 24rem; text-align: right; }
.jnw-detailed-source {
  align-items: center;
  color: #8090a7;
  display: flex;
  font-size: .65rem;
  font-weight: 800;
  justify-content: space-between;
  letter-spacing: .04em;
  min-height: 1.7rem;
  padding: .25rem .75rem 0;
  text-transform: uppercase;
}
.jnw-detailed-source span { color: #a9b7c9; }
.jnw-detailed-week {
  background: linear-gradient(180deg, #172b42, #14253b);
  border-color: rgba(143, 175, 213, .2);
  border-radius: 1.55rem;
  min-height: 570px;
  overflow: hidden;
  padding: 0;
}
.jnw-detailed-week-heading { align-items: center; border-bottom: 1px solid rgba(151,179,211,.13); display: flex; justify-content: space-between; min-height: 4.35rem; padding: .8rem 1rem; }
.jnw-detailed-week-heading h2 { font-size: 1.35rem; letter-spacing: -.035em; margin: .18rem 0 0; }
.jnw-detailed-week-heading > span { color: #8295aa; font-size: .67rem; font-weight: 750; text-align: right; }
.jnw-detailed-week-scroll { overflow: hidden; }
.jnw-detailed-week-scroll:focus-visible { outline: 3px solid rgba(99,204,255,.48); outline-offset: -3px; }
.jnw-detailed-day-panel { scroll-margin-top: 1rem; }
.jnw-detailed-week-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  height: 500px;
}
.jnw-detailed-day-column {
  display: grid;
  grid-template-rows: 3.25rem 5rem minmax(16.5rem, 1fr) 5.2rem;
  min-width: 0;
  padding: 0 .48rem;
  position: relative;
  text-align: center;
}
.jnw-detailed-day-column + .jnw-detailed-day-column { border-left: 1px solid rgba(151, 179, 211, .13); }
.jnw-detailed-date { align-items: center; display: flex; flex-direction: column; line-height: 1.05; }
.jnw-detailed-date strong { color: #f7f9fd; font-size: 1rem; font-weight: 950; }
.jnw-detailed-date small { color: #aab5c6; font-size: .72rem; font-weight: 750; margin-top: .35rem; }
.jnw-detailed-day-weather,
.jnw-detailed-night-weather {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.jnw-detailed-weather-icon { height: 3.65rem; max-width: 100%; width: 3.65rem; }
.jnw-detailed-night-weather .jnw-detailed-weather-icon { height: 3.35rem; width: 3.35rem; }
.jnw-detailed-day-weather b,
.jnw-detailed-night-weather b {
  background: rgba(72, 181, 241, .14);
  border: 1px solid rgba(86, 197, 255, .24);
  border-radius: 999px;
  color: #72d1ff;
  font-size: .95rem;
  font-weight: 950;
  line-height: 1;
  margin-top: -.1rem;
  padding: .32rem .48rem;
}
.jnw-detailed-icon-fallback { color: #9dddfd; font-size: 2.5rem; line-height: 1; }
.jnw-detailed-day-weather .jnw-detailed-icon-fallback { color: #ffd12f; }
.jnw-detailed-temp-track { min-height: 16.5rem; position: relative; }
.jnw-detailed-temp-range {
  background: linear-gradient(to top, #31d02d 0%, #72da11 42%, #e8dd00 72%, var(--jnw-range-hot) 100%);
  border-radius: 999px;
  bottom: var(--jnw-range-bottom);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.1), 0 4px 14px rgba(0,0,0,.12);
  height: var(--jnw-range-height);
  left: 50%;
  min-height: 2.4rem;
  position: absolute;
  transform: translateX(-50%);
  width: clamp(1.8rem, 4.2vw, 3.25rem);
}
.jnw-detailed-high,
.jnw-detailed-low {
  color: #f7f9fd;
  font-size: 1.05rem;
  font-weight: 950;
  left: 50%;
  line-height: 1;
  position: absolute;
  transform: translateX(-50%);
  white-space: nowrap;
}
.jnw-detailed-high { bottom: calc(var(--jnw-range-bottom) + var(--jnw-range-height) + .65rem); }
.jnw-detailed-low { bottom: calc(var(--jnw-range-bottom) - 1.65rem); color: #d4dae4; }
.jnw-detailed-day-column.is-partial .jnw-detailed-high,
.jnw-detailed-day-column.is-partial .jnw-detailed-low { bottom: auto; color: #aebac9; font-size: .72rem; line-height: 1.25; max-width: 5rem; top: 46%; white-space: normal; }
.jnw-detailed-day-column.is-partial .jnw-detailed-high { text-align: center; white-space: pre-line; word-break: keep-all; }
.jnw-detailed-day-column.is-partial .jnw-detailed-low { color: #f4f7fb; font-size: 1.05rem; top: 59%; }
.jnw-detailed-period-missing { color: #8092a8; font-size: .67rem; font-weight: 800; line-height: 1.2; max-width: 4.8rem; text-align: center; white-space: pre-line; word-break: keep-all; }

.jnw-detailed-hazards { border-radius: 1.55rem; overflow: hidden; }
.jnw-detailed-hazards > header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  min-height: 4.2rem;
  padding: .85rem 1.15rem;
}
.jnw-detailed-hazards > header h2 { align-items: center; display: flex; font-size: 1.35rem; gap: .65rem; margin: 0; }
.jnw-detailed-hazards > header h2 > span {
  align-items: center;
  background: #a7b3c4;
  border-radius: 50%;
  color: #18283e;
  display: inline-flex;
  font-size: .72rem;
  font-weight: 1000;
  height: 1.25rem;
  justify-content: center;
  width: 1.25rem;
}
.jnw-detailed-hazards > header b {
  align-items: center;
  background: #324057;
  border-radius: 50%;
  color: #aeb9ca;
  display: inline-flex;
  font-size: .9rem;
  height: 2.35rem;
  justify-content: center;
  width: 2.35rem;
}
.jnw-detailed-hazards > header b.is-clear { color: #78dfb5; }
.jnw-detailed-hazard-list { border-top: 1px solid rgba(151, 179, 211, .14); }
.jnw-detailed-hazard-row {
  --jnw-hazard-color: #1ecb72;
  background: #1a2a41;
  border-left: .38rem solid var(--jnw-hazard-color);
}
.jnw-detailed-hazard-row + .jnw-detailed-hazard-row { border-top: 1px solid rgba(151, 179, 211, .14); }
.jnw-detailed-hazard-row.is-advisory { --jnw-hazard-color: #f5cf35; }
.jnw-detailed-hazard-row.is-watch { --jnw-hazard-color: #ff9438; }
.jnw-detailed-hazard-row.is-flood { --jnw-hazard-color: var(--jnw-flood-green); }
.jnw-detailed-hazard-row.is-danger { --jnw-hazard-color: var(--jnw-warning-red); }
.jnw-detailed-hazard-row summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: .8rem;
  grid-template-columns: 2rem minmax(0, 1fr) auto 1.2rem;
  list-style: none;
  min-height: 5rem;
  padding: .8rem 1rem;
}
.jnw-detailed-hazard-row summary::-webkit-details-marker { display: none; }
.jnw-detailed-hazard-symbol {
  align-items: center;
  border: 2px solid var(--jnw-hazard-color);
  border-radius: 50%;
  color: var(--jnw-hazard-color);
  display: inline-flex;
  font-size: .85rem;
  font-weight: 1000;
  height: 1.8rem;
  justify-content: center;
  width: 1.8rem;
}
.jnw-detailed-hazard-row summary > span:nth-child(2) { display: flex; flex-direction: column; min-width: 0; }
.jnw-detailed-hazard-row summary strong { color: #f3f6fb; font-size: 1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jnw-detailed-hazard-row summary small { color: #8c9bb0; font-size: .65rem; margin-top: .15rem; }
.jnw-detailed-hazard-row summary time { color: #a8b2c1; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.jnw-detailed-hazard-chevron { color: #8d99ab; font-size: 1.25rem; transition: transform .18s ease; }
.jnw-detailed-hazard-row[open] .jnw-detailed-hazard-chevron { transform: rotate(180deg); }
.jnw-detailed-hazard-body { background: rgba(4,17,34,.34); padding: .2rem 1rem 1rem 3.8rem; }
.jnw-detailed-hazard-body p { color: #b9c5d5 !important; font-size: .78rem; line-height: 1.55; margin: 0; }
.jnw-detailed-hazard-body a { color: var(--jnw-blue); display: inline-block; font-size: .75rem; font-weight: 850; margin-top: .65rem; }
.jnw-detailed-hazard-clear { align-items: center; background: #1a2a41; display: flex; gap: .85rem; min-height: 4.8rem; padding: .9rem 1.15rem; }
.jnw-detailed-hazard-clear > span { align-items: center; background: rgba(52,211,153,.14); border-radius: 50%; color: #5ce0ad; display: flex; font-weight: 1000; height: 2rem; justify-content: center; width: 2rem; }
.jnw-detailed-hazard-clear > div { display: flex; flex-direction: column; }
.jnw-detailed-hazard-clear strong { font-size: .95rem; }
.jnw-detailed-hazard-clear small { color: #91a0b4; font-size: .68rem; margin-top: .15rem; }

.jnw-detailed-day-panel { border-radius: 1.45rem; padding: 1.25rem; }
.jnw-detailed-day-heading { align-items: baseline; display: flex; justify-content: space-between; }
.jnw-detailed-day-heading h2 { font-size: 1.45rem; margin: 0; }
.jnw-detailed-day-heading span { color: var(--jnw-muted); font-size: .75rem; }
.jnw-detailed-summary-stats { display: grid; gap: .6rem; grid-template-columns: repeat(3, 1fr); margin-top: 1rem; }
.jnw-detailed-summary-stats span { background: rgba(255,255,255,.04); border-radius: .85rem; display: flex; flex-direction: column; padding: .8rem; }
.jnw-detailed-summary-stats small { color: var(--jnw-muted); font-size: .62rem; }
.jnw-detailed-summary-stats strong { font-size: 1.05rem; margin-top: .25rem; }
.jnw-detailed-periods { display: grid; gap: .7rem; grid-template-columns: repeat(2, 1fr); margin-top: 1rem; }
.jnw-detailed-period { background: rgba(255,255,255,.035); border: 1px solid var(--jnw-line); border-radius: 1rem; padding: .9rem; }
.jnw-detailed-period > div { align-items: center; display: grid; gap: .7rem; grid-template-columns: 3rem minmax(0, 1fr) auto; }
.jnw-detailed-period > div > div { display: flex; flex-direction: column; }
.jnw-detailed-period-icon .jnw-detailed-weather-icon { height: 3rem; width: 3rem; }
.jnw-detailed-period small { color: var(--jnw-blue); font-size: .6rem; font-weight: 900; letter-spacing: .1em; }
.jnw-detailed-period strong { font-size: .9rem; margin-top: .15rem; }
.jnw-detailed-period > div > b { background: rgba(72, 181, 241, .14); border: 1px solid rgba(86, 197, 255, .24); border-radius: 999px; color: #72d1ff; font-size: 1.02rem; padding: .38rem .52rem; }
.jnw-detailed-period p { color: #b8c4d3 !important; font-size: .74rem; line-height: 1.5; margin: .75rem 0 0; }
.jnw-detailed-official-link { align-items: center; background: rgba(79,190,245,.1); border: 1px solid rgba(87,195,248,.25); border-radius: .75rem; color: #72d2ff !important; display: inline-flex; font-size: .78rem; font-weight: 900; margin-top: .9rem; min-height: 2.8rem; padding: .65rem .8rem; text-decoration: none; }
.jnw-detailed-official-link:hover,
.jnw-detailed-official-link:focus-visible { background: rgba(79,190,245,.18); outline: 2px solid #78d8ff; outline-offset: 2px; }

.jnw-heatrisk-card,
.jnw-heatrisk-week,
.jnw-heatrisk-week-list article,
.jnw-heatrisk-legend-list article { --jnw-heatrisk-color: #8d98a8; }
.jnw-heatrisk-card.is-level-0,
.jnw-heatrisk-week-list article.is-level-0,
.jnw-heatrisk-legend-list article.is-level-0 { --jnw-heatrisk-color: #74d68a; }
.jnw-heatrisk-card.is-level-1,
.jnw-heatrisk-week-list article.is-level-1,
.jnw-heatrisk-legend-list article.is-level-1 { --jnw-heatrisk-color: #f4ef4b; }
.jnw-heatrisk-card.is-level-2,
.jnw-heatrisk-week-list article.is-level-2,
.jnw-heatrisk-legend-list article.is-level-2 { --jnw-heatrisk-color: #ff9938; }
.jnw-heatrisk-card.is-level-3,
.jnw-heatrisk-week-list article.is-level-3,
.jnw-heatrisk-legend-list article.is-level-3 { --jnw-heatrisk-color: #ef3e45; }
.jnw-heatrisk-card.is-level-4,
.jnw-heatrisk-week-list article.is-level-4,
.jnw-heatrisk-legend-list article.is-level-4 { --jnw-heatrisk-color: #b628b8; }
.jnw-heatrisk-card.is-loading,
.jnw-heatrisk-week-list article.is-loading { --jnw-heatrisk-color: #59c7f6; }
.jnw-heatrisk-card {
  background: #17263b;
  border: 1px solid color-mix(in srgb, var(--jnw-heatrisk-color) 64%, #17263b);
  border-left: 4px solid var(--jnw-heatrisk-color);
  border-radius: 1rem;
  margin-top: 1rem;
  overflow: hidden;
  padding: 1rem;
}
.jnw-heatrisk-card > small,
.jnw-heatrisk-week > header small {
  color: #8ca0b7;
  display: block;
  font-size: .58rem;
  font-weight: 950;
  letter-spacing: .12em;
}
.jnw-heatrisk-card > div {
  align-items: center;
  display: grid;
  gap: .65rem;
  grid-template-columns: .9rem minmax(0, 1fr) auto;
  margin-top: .45rem;
}
.jnw-heatrisk-card > div > i,
.jnw-heatrisk-week-list article > span > i,
.jnw-heatrisk-legend-list article > i {
  background: var(--jnw-heatrisk-color);
  border-radius: 50%;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--jnw-heatrisk-color) 15%, transparent);
  display: block;
  flex: 0 0 auto;
  height: .78rem;
  width: .78rem;
}
.jnw-heatrisk-card > div > strong { color: #f7f9fd; font-size: 1.08rem; font-weight: 950; }
.jnw-heatrisk-card > div > b {
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 999px;
  color: var(--jnw-heatrisk-color);
  font-size: .61rem;
  letter-spacing: .08em;
  padding: .32rem .48rem;
}
.jnw-heatrisk-card > p { color: #afbdcf !important; font-size: .74rem; line-height: 1.55; margin: .65rem 0 0; }
.jnw-heatrisk-card > small.jnw-heatrisk-sample-note {
  color: #91a6bd;
  display: block;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: 0;
  margin-top: .45rem;
  text-transform: none;
}

.jnw-heatrisk-week {
  background: rgba(255,255,255,.026);
  border: 1px solid var(--jnw-line);
  border-radius: 1rem;
  margin-top: 1rem;
  overflow: hidden;
}
.jnw-heatrisk-week > header { align-items: center; display: flex; justify-content: space-between; padding: .9rem 1rem; }
.jnw-heatrisk-week > header h3 { color: #f7f9fd; font-size: 1rem; margin: .18rem 0 0; }
.jnw-heatrisk-week > header > span {
  background: rgba(88,195,241,.12);
  border: 1px solid rgba(88,195,241,.25);
  border-radius: 999px;
  color: #71d0f8;
  font-size: .56rem;
  font-weight: 950;
  letter-spacing: .08em;
  padding: .34rem .5rem;
}
.jnw-heatrisk-week-list { border-top: 1px solid var(--jnw-line); }
.jnw-heatrisk-week-list article {
  align-items: center;
  display: grid;
  gap: .7rem;
  grid-template-columns: minmax(0, 1fr) minmax(8rem, .85fr) 3rem;
  min-height: 3.45rem;
  padding: .55rem 1rem;
}
.jnw-heatrisk-week-list article + article { border-top: 1px solid rgba(151,179,211,.11); }
.jnw-heatrisk-week-list article > div { display: flex; flex-direction: column; }
.jnw-heatrisk-week-list article > div strong { color: #eef3f9; font-size: .82rem; }
.jnw-heatrisk-week-list article > div small { color: #7f90a6; font-size: .61rem; margin-top: .15rem; }
.jnw-heatrisk-week-list article > span { align-items: center; display: flex; gap: .5rem; min-width: 0; }
.jnw-heatrisk-week-list article > span b { color: #dce5ef; font-size: .72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jnw-heatrisk-week-list article > em { color: #aeb9c8; font-size: .92rem; font-style: normal; font-weight: 850; text-align: right; }

.jnw-heatrisk-legend { border-top: 1px solid rgba(151,179,211,.14); margin-top: .9rem; }
.jnw-heatrisk-week > .jnw-heatrisk-legend { margin-top: 0; }
.jnw-heatrisk-legend > summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: .65rem;
  grid-template-columns: 1.65rem minmax(0, 1fr) auto;
  list-style: none;
  min-height: 3.65rem;
  padding: .7rem .15rem .1rem;
}
.jnw-heatrisk-week > .jnw-heatrisk-legend > summary { padding: .65rem 1rem; }
.jnw-heatrisk-legend > summary::-webkit-details-marker { display: none; }
.jnw-heatrisk-info {
  align-items: center;
  border: 1px solid rgba(136,154,177,.58);
  border-radius: 50%;
  color: #aebaca;
  display: flex;
  font-family: Georgia, serif;
  font-size: .82rem;
  font-style: italic;
  font-weight: 800;
  height: 1.45rem;
  justify-content: center;
  width: 1.45rem;
}
.jnw-heatrisk-legend > summary > span:nth-child(2) { display: flex; flex-direction: column; }
.jnw-heatrisk-legend > summary strong { color: #eaf0f7; font-size: .78rem; }
.jnw-heatrisk-legend > summary small { color: #7f90a6; font-size: .6rem; margin-top: .1rem; }
.jnw-heatrisk-legend > summary > b { color: #8191a5; font-size: 1.1rem; transition: transform .18s ease; }
.jnw-heatrisk-legend[open] > summary > b { transform: rotate(180deg); }
.jnw-heatrisk-legend-body { padding: .25rem 0 .2rem; }
.jnw-heatrisk-week .jnw-heatrisk-legend-body { padding: .25rem 1rem 1rem; }
.jnw-heatrisk-legend-list { display: grid; gap: .38rem; }
.jnw-heatrisk-legend-list article {
  align-items: start;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(151,179,211,.1);
  border-radius: .75rem;
  display: grid;
  gap: .68rem;
  grid-template-columns: .75rem minmax(0, 1fr);
  padding: .68rem .72rem;
}
.jnw-heatrisk-legend-list article > i { height: .65rem; margin-top: .18rem; width: .65rem; }
.jnw-heatrisk-legend-list article strong { color: #e9eff6; font-size: .72rem; }
.jnw-heatrisk-legend-list article p { color: #94a3b6 !important; font-size: .65rem; line-height: 1.45; margin: .18rem 0 0; }
.jnw-heatrisk-legend-body > p { color: #8393a8 !important; font-size: .64rem; line-height: 1.5; margin: .65rem 0 .45rem; }
.jnw-heatrisk-legend-body > a { color: #64cafa !important; font-size: .68rem; font-weight: 850; }

.jnw-detailed-day-tabs {
  background: rgba(4, 17, 34, .98);
  border-top: 1px solid rgba(151, 179, 211, .18);
  bottom: 4.45rem;
  display: flex;
  gap: .35rem;
  left: 0;
  overflow-x: auto;
  padding: .72rem max(.7rem, calc((100vw - 980px) / 2));
  position: fixed;
  right: 0;
  scrollbar-width: none;
  z-index: 29;
}
.jnw-detailed-day-tabs::-webkit-scrollbar { display: none; }
.jnw-detailed-day-tabs button {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 999px;
  color: #8f9bb0;
  cursor: pointer;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  justify-content: center;
  min-height: 3.55rem;
  min-width: 4.7rem;
  padding: .55rem .82rem;
}
.jnw-detailed-day-tabs button:first-child { min-width: 7.6rem; }
.jnw-detailed-day-tabs button strong { font-size: .88rem; line-height: 1; }
.jnw-detailed-day-tabs button small { font-size: .68rem; margin-top: .35rem; }
.jnw-detailed-day-tabs button.selected { background: #58c3f1; color: #fff; }
.jnw-detailed-day-tabs button:focus-visible { outline: 2px solid white; outline-offset: -3px; }

@media (max-width: 720px) {
  .jnw-detailed-view { min-height: calc(100vh - 5.7rem); padding: 0 .5rem 10.5rem; }
  .jnw-detailed-heading { align-items: start; flex-direction: column; padding: 1rem .45rem 0; }
  .jnw-detailed-heading p { font-size: .72rem; max-width: none; text-align: left; }
  .jnw-detailed-source { flex-wrap: wrap; font-size: .58rem; gap: .25rem .75rem; padding-left: .45rem; padding-right: .45rem; }
  .jnw-detailed-week { border-radius: 1.25rem; min-height: 0; }
  .jnw-detailed-week-heading { align-items: start; min-height: 4.5rem; padding: .75rem .8rem; }
  .jnw-detailed-week-heading h2 { font-size: 1.18rem; }
  .jnw-detailed-week-heading > span { max-width: 8.5rem; }
  .jnw-detailed-week-scroll { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: thin; }
  .jnw-detailed-week-grid { grid-template-columns: repeat(7, 7.25rem); height: 425px; width: max-content; }
  .jnw-detailed-day-column { grid-template-rows: 2.8rem 4.25rem minmax(14.5rem, 1fr) 4.5rem; padding: 0 .3rem; scroll-snap-align: start; width: 7.25rem; }
  .jnw-detailed-temp-track { min-height: 14.5rem; }
  .jnw-detailed-date strong { font-size: .78rem; }
  .jnw-detailed-date small { font-size: .61rem; margin-top: .25rem; }
  .jnw-detailed-weather-icon,
  .jnw-detailed-night-weather .jnw-detailed-weather-icon { height: 2.8rem; width: 2.8rem; }
  .jnw-detailed-day-weather b,
  .jnw-detailed-night-weather b { font-size: .8rem; padding: .28rem .38rem; }
  .jnw-detailed-icon-fallback { font-size: 2rem; }
  .jnw-detailed-temp-range { width: clamp(1.35rem, 7vw, 2rem); }
  .jnw-detailed-high,
  .jnw-detailed-low { font-size: .83rem; }
  .jnw-detailed-high { bottom: calc(var(--jnw-range-bottom) + var(--jnw-range-height) + .5rem); }
  .jnw-detailed-low { bottom: calc(var(--jnw-range-bottom) - 1.35rem); }
  .jnw-detailed-hazards > header { min-height: 3.75rem; padding: .75rem .9rem; }
  .jnw-detailed-hazards > header h2 { font-size: 1.15rem; }
  .jnw-detailed-hazards > header b { height: 2rem; width: 2rem; }
  .jnw-detailed-hazard-row summary { gap: .55rem; grid-template-columns: 1.7rem minmax(0, 1fr) auto 1rem; min-height: 4.6rem; padding: .7rem .75rem; }
  .jnw-detailed-hazard-symbol { font-size: .72rem; height: 1.55rem; width: 1.55rem; }
  .jnw-detailed-hazard-row summary strong { font-size: .86rem; }
  .jnw-detailed-hazard-row summary small { font-size: .58rem; }
  .jnw-detailed-hazard-row summary time { font-size: .62rem; max-width: 5.5rem; text-align: right; white-space: normal; }
  .jnw-detailed-hazard-body { padding-left: 3rem; }
  .jnw-detailed-day-panel { padding: 1rem; }
  .jnw-detailed-periods { grid-template-columns: 1fr; }
  .jnw-detailed-summary-stats { gap: .4rem; }
  .jnw-detailed-summary-stats span { padding: .65rem .5rem; }
  .jnw-detailed-summary-stats strong { font-size: .9rem; }
  .jnw-detailed-official-link { justify-content: center; width: 100%; }
  .jnw-heatrisk-card { padding: .85rem; }
  .jnw-heatrisk-card > div { gap: .5rem; }
  .jnw-heatrisk-card > div > strong { font-size: .94rem; }
  .jnw-heatrisk-week-list article { gap: .45rem; grid-template-columns: minmax(0, 1fr) minmax(6.4rem, .9fr) 2.35rem; padding-left: .75rem; padding-right: .75rem; }
  .jnw-heatrisk-week-list article > span b { font-size: .66rem; }
  .jnw-heatrisk-week > header { padding-left: .75rem; padding-right: .75rem; }
  .jnw-heatrisk-week .jnw-heatrisk-legend-body { padding-left: .75rem; padding-right: .75rem; }
  .jnw-heatrisk-week > .jnw-heatrisk-legend > summary { padding-left: .75rem; padding-right: .75rem; }
  .jnw-detailed-day-tabs { bottom: calc(4.25rem + env(safe-area-inset-bottom)); padding-left: .5rem; padding-right: .5rem; }
  .jnw-detailed-day-tabs button { min-width: 4.25rem; padding-left: .65rem; padding-right: .65rem; }
  .jnw-detailed-day-tabs button:first-child { min-width: 7.1rem; }
}

/* 0.12.0: dedicated Baron radar view and nationwide/local tide presentation. */
.jnw-radar-view[hidden] { display: none !important; }
.jnw-radar-view {
  min-height: calc(100vh - 6.75rem);
  padding: 1rem 1rem calc(5.25rem + env(safe-area-inset-bottom));
}
.jnw-radar-view-inner { margin: 0 auto; max-width: 1180px; }
.jnw-radar-view-header {
  align-items: flex-end;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: .8rem;
  padding: 0 .2rem;
}
.jnw-radar-view-header small {
  color: var(--jnw-blue);
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .14em;
}
.jnw-radar-view-header h1 {
  color: #f5f8fd;
  font-size: clamp(2rem, 6vw, 3.5rem);
  font-weight: 950;
  letter-spacing: -.055em;
  line-height: .95;
  margin: .35rem 0 0;
}
.jnw-radar-view-header > span {
  color: var(--jnw-muted);
  font-size: .75rem;
  line-height: 1.45;
  max-width: 25rem;
  text-align: right;
}
.jnw-radar-view-mount {
  background: #081828;
  border: 1px solid rgba(159, 184, 218, .24);
  border-radius: 1.25rem;
  overflow: hidden;
}
.jnw-radar-view-mount .jnw-baron-radar {
  border: 0;
  border-radius: 0;
  height: calc(100dvh - 13rem);
  margin: 0;
  max-width: none;
  min-height: 520px;
}
.jnw-radar-view-footer {
  align-items: center;
  color: var(--jnw-muted);
  display: flex;
  font-size: .7rem;
  justify-content: space-between;
  padding: .7rem .25rem 0;
}
.jnw-radar-view-footer a { color: var(--jnw-blue); font-weight: 850; }
.jnw-radar-recovery {
  color: var(--jnw-muted) !important;
  font-size: .72rem;
  line-height: 1.45;
  margin: .65rem 0 0;
  text-align: center;
}
.jnw-radar-recovery a { color: var(--jnw-blue); font-weight: 850; }

@media (max-width: 720px) {
  .jnw-radar-view {
    min-height: calc(100vh - 5.7rem);
    padding: .75rem .5rem calc(4.85rem + env(safe-area-inset-bottom));
  }
  .jnw-radar-view-header { align-items: flex-start; flex-direction: column; gap: .35rem; margin-bottom: .6rem; padding: 0 .2rem; }
  .jnw-radar-view-header h1 { font-size: 2.35rem; }
  .jnw-radar-view-header > span { font-size: .65rem; max-width: none; text-align: left; }
  .jnw-radar-view-mount { border-radius: 1rem; }
  .jnw-radar-view-mount .jnw-baron-radar {
    height: calc(100dvh - 12.4rem);
    min-height: 470px;
  }
  .jnw-radar-view-footer { font-size: .62rem; }
}

/* 0.13.0: app-style city highs and live current-conditions dashboard. */
.jnw-location-strip {
  display: block;
  overflow: hidden;
  padding: 0;
}
.jnw-favorite-quick-row,
.jnw-location-tools {
  display: flex;
  gap: .65rem;
  overflow-x: auto;
  padding-left: max(1rem, calc((100% - 1120px) / 2));
  padding-right: max(1rem, calc((100% - 1120px) / 2));
  scrollbar-width: none;
}
.jnw-favorite-quick-row::-webkit-scrollbar,
.jnw-location-tools::-webkit-scrollbar { display: none; }
.jnw-favorite-quick-row {
  border-bottom: 1px solid rgba(159, 184, 218, .13);
  padding-bottom: .7rem;
  padding-top: .7rem;
}
.jnw-location-tools {
  align-items: center;
  background: rgba(4, 17, 33, .68);
  padding-bottom: .55rem;
  padding-top: .55rem;
}
.jnw-favorite-quick-loading {
  align-items: center;
  color: var(--jnw-muted);
  display: inline-flex;
  font-size: .74rem;
  min-height: 2.85rem;
}
.jnw-favorite-quick {
  align-items: center;
  background: linear-gradient(145deg, #172a43, #122238);
  border: 1px solid rgba(159, 184, 218, .2);
  border-radius: 999px;
  color: #eef4fb;
  cursor: pointer;
  display: grid;
  flex: 0 0 auto;
  gap: .42rem;
  grid-template-columns: auto 1.8rem auto;
  min-height: 2.85rem;
  min-width: 9.5rem;
  padding: .48rem .85rem .48rem 1rem;
}
.jnw-favorite-quick:hover,
.jnw-favorite-quick:focus-visible {
  border-color: rgba(85, 185, 255, .65);
  outline: 2px solid transparent;
}
.jnw-favorite-quick.is-active {
  background: linear-gradient(145deg, #32445d, #26384f);
  border-color: rgba(232, 240, 250, .55);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.jnw-favorite-quick:disabled { cursor: wait; opacity: .65; }
.jnw-favorite-quick strong {
  font-size: .91rem;
  max-width: 9rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jnw-favorite-quick b { font-size: 1.12rem; }
.jnw-favorite-quick-icon { height: 1.8rem; width: 1.8rem; }
.jnw-favorite-quick-icon .jnw-weather-symbol,
.jnw-favorite-quick-icon svg { height: 100%; width: 100%; }
.jnw-favorite-quick-manage {
  background: rgba(85, 185, 255, .08);
  grid-template-columns: auto auto;
  min-width: auto;
  padding-right: 1rem;
}
.jnw-favorite-quick-manage > span { color: #ffe26a; font-size: 1.15rem; }

.jnw-current-live {
  background:
    radial-gradient(circle at 73% 34%, rgba(71, 142, 208, .14), transparent 16rem),
    linear-gradient(145deg, rgba(15, 39, 66, .99), rgba(5, 22, 42, .99));
}
.jnw-current-main { padding-bottom: 1.6rem; }
.jnw-current-feature-metrics {
  align-items: end;
  display: grid;
  gap: clamp(.5rem, 2vw, 1.25rem);
  grid-template-columns: minmax(6.5rem, .85fr) minmax(13rem, 1.7fr) minmax(6.5rem, .85fr);
  margin-top: .25rem;
  padding: 0 clamp(.15rem, 2vw, 1rem) .4rem;
}
.jnw-current-feature {
  align-items: center;
  display: flex;
  flex-direction: column;
  min-width: 0;
  text-align: center;
}
.jnw-current-feature > strong { font-size: clamp(1rem, 2.8vw, 1.35rem); margin-top: .5rem; }
.jnw-current-feature > small {
  border: 1px solid rgba(220, 231, 246, .46);
  border-radius: .55rem;
  color: #e6edf7;
  font-size: .72rem;
  font-weight: 850;
  margin-top: .25rem;
  padding: .22rem .55rem;
}
.jnw-wind-compass {
  border: 2px solid rgba(237, 244, 252, .88);
  border-radius: 50%;
  height: 4.55rem;
  position: relative;
  width: 4.55rem;
}
.jnw-wind-compass::before,
.jnw-wind-compass::after {
  background: rgba(237, 244, 252, .58);
  content: "";
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 1px;
}
.jnw-wind-compass::before { height: .6rem; top: -.72rem; }
.jnw-wind-compass::after { bottom: -.72rem; height: .6rem; }
.jnw-wind-compass i {
  background: #f7fbff;
  height: 1.45rem;
  left: 50%;
  position: absolute;
  top: .34rem;
  transform: translateX(-50%) rotate(0deg);
  transform-origin: 50% 1.93rem;
  transition: transform .35s ease;
  width: 2px;
}
.jnw-wind-compass i::before {
  border-bottom: .55rem solid #f7fbff;
  border-left: .32rem solid transparent;
  border-right: .32rem solid transparent;
  content: "";
  left: 50%;
  position: absolute;
  top: -.25rem;
  transform: translateX(-50%);
}
.jnw-wind-compass b {
  font-size: 1.18rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}
.jnw-wind-feature > strong { color: #cbd8e8; font-size: .78rem; }
.jnw-sun-feature { align-self: stretch; justify-content: flex-end; }
.jnw-current-sun-arc { height: auto; max-width: 15rem; overflow: visible; width: 100%; }
.jnw-sun-path {
  fill: none;
  stroke: #ffb229;
  stroke-linecap: round;
  stroke-width: 3;
}
.jnw-sun-horizon { fill: none; stroke: rgba(224, 234, 248, .2); stroke-width: 1; }
.jnw-sun-position { transition: transform .45s ease, opacity .25s ease; }
.jnw-sun-position circle { fill: #ffd429; filter: drop-shadow(0 0 7px rgba(255, 211, 52, .75)); stroke: #ffb31d; stroke-width: 2; }
.jnw-sun-position path { fill: none; stroke: #ffd429; stroke-linecap: round; stroke-width: 3; }
.jnw-sun-feature.is-night .jnw-sun-position { opacity: .12; }
.jnw-sun-times {
  color: #eef4fb;
  display: flex;
  font-size: clamp(.75rem, 2.2vw, 1rem);
  font-weight: 900;
  justify-content: space-between;
  margin-top: -.25rem;
  width: 100%;
}
.jnw-sun-feature > small {
  border: 0;
  color: var(--jnw-muted);
  font-size: .65rem;
  margin-top: .2rem;
  padding: 0;
}
.jnw-humidity-drop {
  background: linear-gradient(145deg, #64d3ff, #2c95de);
  border-radius: 58% 42% 62% 38% / 64% 42% 58% 36%;
  box-shadow: 0 0 22px rgba(74, 191, 255, .22);
  height: 3.15rem;
  margin-bottom: .25rem;
  position: relative;
  transform: rotate(45deg);
  width: 3.15rem;
}
.jnw-humidity-drop::after {
  background: rgba(255,255,255,.5);
  border-radius: 50%;
  content: "";
  height: .62rem;
  left: .62rem;
  position: absolute;
  top: .55rem;
  width: .34rem;
}
.jnw-current-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1rem;
}

@media (max-width: 720px) {
  .jnw-favorite-quick-row { padding-left: .7rem; padding-right: .7rem; }
  .jnw-location-tools { padding-left: .7rem; padding-right: .7rem; }
  .jnw-favorite-quick { min-width: 8.7rem; }
  .jnw-favorite-quick strong { max-width: 6.3rem; }
  .jnw-current-main { min-height: 13.5rem; }
  .jnw-current-feature-metrics {
    gap: .4rem;
    grid-template-columns: minmax(5.2rem, .85fr) minmax(9.7rem, 1.55fr) minmax(5.2rem, .85fr);
    padding-left: 0;
    padding-right: 0;
  }
  .jnw-current-feature > strong { font-size: .92rem; }
  .jnw-current-feature > small { font-size: .61rem; padding: .18rem .4rem; }
  .jnw-wind-compass { height: 3.8rem; width: 3.8rem; }
  .jnw-wind-compass i { transform-origin: 50% 1.56rem; }
  .jnw-wind-compass b { font-size: 1rem; }
  .jnw-wind-feature > strong { font-size: .61rem; }
  .jnw-humidity-drop { height: 2.55rem; width: 2.55rem; }
  .jnw-sun-feature > small { font-size: .55rem; }
  .jnw-sun-times { font-size: .72rem; }
}

@media (max-width: 390px) {
  .jnw-current-feature-metrics { grid-template-columns: 4.6rem minmax(8.2rem, 1fr) 4.6rem; }
  .jnw-current-sun-arc { min-width: 8.2rem; }
  .jnw-current-feature > small { padding-left: .28rem; padding-right: .28rem; }
  .jnw-wind-feature > strong { max-width: 4.8rem; overflow-wrap: anywhere; }
}

@media (max-width: 720px) {
  .jnw-weekly-overview { padding-left: .9rem; padding-right: .9rem; }
  .jnw-weekly-header { align-items: flex-start; }
  .jnw-weekly-header-actions { gap: .35rem; }
  .jnw-weekly-header-actions > span { display: none; }
  .jnw-weekly-settings-button { height: 2.55rem; padding: 0 .4rem; }
  .jnw-weekly-swap-icon { height: 1.05rem; width: 1.05rem; }
  .jnw-weekly-gear-icon { height: 1.55rem; width: 1.55rem; }
  .jnw-weekly-chart { min-width: 720px; }
  .jnw-weekly-legend { justify-content: flex-start; padding-left: .2rem; }
  .jnw-weekly-settings-modal { align-items: flex-end; padding: 0; }
  .jnw-weekly-settings-sheet { border-bottom: 0; border-left: 0; border-radius: 1.75rem 1.75rem 0 0; border-right: 0; max-height: 96vh; max-width: none; }
  .jnw-weekly-settings-scroll { padding: .9rem 1rem 1.2rem; }
  .jnw-weekly-settings-sheet > footer { padding-left: 1rem; padding-right: 1rem; }
  .jnw-weekly-option { min-height: 4.35rem; padding: .75rem .85rem; }
}

/* Final 0.17 Home forecast overrides follow the versioned layout layers above. */
.jnw-home .jnw-current-metrics [data-jnw-current-pressure] { white-space: nowrap; }
.jnw-home .jnw-forecast-grid { display: flex; flex-direction: column; gap: .72rem; margin-top: 1rem; overflow: visible; }
.jnw-home .jnw-day-card,
.jnw-home .jnw-day-card.is-featured {
  align-items: center;
  background: linear-gradient(105deg, rgba(29,49,75,.98), rgba(18,35,57,.98));
  border: 1px solid rgba(159,184,218,.2);
  border-radius: 1.2rem;
  box-shadow: none;
  display: grid;
  gap: .55rem 1rem;
  grid-template-columns: minmax(5.5rem,.8fr) minmax(9.5rem,1.45fr) minmax(4.6rem,.65fr) minmax(8rem,1fr);
  grid-template-rows: auto;
  min-height: 7.2rem;
  padding: 1rem 1.15rem;
  text-align: left;
}
.jnw-home .jnw-day-card.is-featured { background: linear-gradient(135deg, rgba(40,61,87,.99), rgba(25,43,66,.99)); border-color: rgba(126,170,220,.32); min-height: 12rem; }
.jnw-home .jnw-forecast-day { align-items: flex-start; display: flex; flex-direction: column; grid-column: 1; min-width: 0; }
.jnw-home .jnw-forecast-day > strong { color: #f0f5fc; font-size: clamp(1.15rem,3vw,1.5rem); font-weight: 900; letter-spacing: -.025em; }
.jnw-home .jnw-forecast-day > small { color: #8291a6; font-size: .82rem; font-weight: 750; margin-top: .05rem; }
.jnw-home .jnw-forecast-weather { align-items: center; display: flex; gap: .35rem; grid-column: 2; justify-content: center; min-width: 0; }
.jnw-home .jnw-forecast-period { align-items: center; display: flex; flex-direction: column; min-width: 3.3rem; }
.jnw-home .jnw-forecast-period .jnw-weather-symbol { height: 3.35rem; width: 3.35rem; }
.jnw-home .jnw-forecast-period-precip { color: #91a1b6; font-size: .76rem; font-weight: 850; line-height: 1; margin-top: .1rem; }
.jnw-home .jnw-forecast-transition { color: #92a0b3; flex: 0 0 auto; font-size: 1.45rem; font-weight: 850; }
.jnw-home .jnw-forecast-wind { align-items: center; display: flex; flex-direction: column; grid-column: 3; justify-content: center; }
.jnw-home .jnw-forecast-wind-ring { align-items: center; border: 2px solid rgba(237,244,252,.88); border-radius: 50%; display: flex; height: 3.35rem; justify-content: center; position: relative; width: 3.35rem; }
.jnw-home .jnw-forecast-wind-arrow { background: #edf4fc; height: 4.55rem; left: 50%; position: absolute; top: 50%; transform-origin: center; width: 1px; }
.jnw-home .jnw-forecast-wind-arrow::before { color: #edf4fc; font-size: .72rem; left: 50%; line-height: 1; position: absolute; transform: translateX(-50%); }
.jnw-home .jnw-forecast-wind-arrow::before { content: "▲"; top: -.28rem; }
.jnw-home .jnw-forecast-wind-ring > b { background: #1b304a; border-radius: 50%; font-size: 1rem; font-weight: 800; line-height: 2rem; min-width: 2rem; position: relative; text-align: center; z-index: 1; }
.jnw-home .jnw-forecast-wind > small { color: #8493a8; font-size: .62rem; font-weight: 800; margin-top: .52rem; white-space: nowrap; }
.jnw-home .jnw-forecast-wind.is-unavailable { opacity: .46; }
.jnw-home .jnw-temps { align-items: center; display: flex; flex-direction: row; gap: .5rem; grid-column: 4; grid-row: auto; justify-content: flex-end; min-width: 0; text-align: right; }
.jnw-home .jnw-temps b { color: #f3f7fd; font-size: clamp(1.3rem,3.6vw,1.8rem); font-weight: 900; white-space: nowrap; }
.jnw-home .jnw-temps span { color: #a8b4c6; font-size: clamp(1.05rem,3vw,1.45rem); font-weight: 750; margin: 0; white-space: nowrap; }
.jnw-home .jnw-temp-range { background: linear-gradient(90deg,#ffd025,#75dc58 58%,#48c887); border-radius: 999px; height: .42rem; opacity: .95; width: 2.45rem; }
.jnw-home .jnw-day-summary { -webkit-line-clamp: unset; color: #edf3fb !important; display: block; font-size: .98rem; grid-column: 1 / -1; grid-row: auto; line-height: 1.55; margin: .2rem 0 0; min-height: 0; overflow: visible; text-align: left; }
.jnw-home .jnw-day-card:not(.is-featured) .jnw-day-summary { clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: 0; overflow: hidden; padding: 0; position: absolute; width: 1px; }

@media (max-width: 720px) {
  .jnw-home .jnw-current-metrics [data-jnw-current-pressure] { font-size: .78rem; }
  .jnw-home .jnw-day-card,
  .jnw-home .jnw-day-card.is-featured { gap: .55rem .32rem; grid-template-columns: minmax(4.2rem,.8fr) minmax(7.4rem,1.55fr) minmax(3.65rem,.65fr) minmax(6.7rem,1fr); min-height: 6.5rem; padding: .85rem .7rem; }
  .jnw-home .jnw-day-card.is-featured { min-height: 10.5rem; }
  .jnw-home .jnw-forecast-day > strong { font-size: 1.08rem; }
  .jnw-home .jnw-forecast-day > small { font-size: .74rem; }
  .jnw-home .jnw-forecast-weather { gap: .12rem; }
  .jnw-home .jnw-forecast-period { min-width: 2.8rem; }
  .jnw-home .jnw-forecast-period .jnw-weather-symbol { height: 2.7rem; width: 2.7rem; }
  .jnw-home .jnw-forecast-transition { font-size: 1.15rem; }
  .jnw-home .jnw-forecast-wind-ring { height: 2.75rem; width: 2.75rem; }
  .jnw-home .jnw-forecast-wind-arrow { height: 3.8rem; }
  .jnw-home .jnw-forecast-wind-ring > b { font-size: .9rem; }
  .jnw-home .jnw-forecast-wind > small { font-size: .52rem; margin-top: .45rem; }
  .jnw-home .jnw-temps { gap: .3rem; }
  .jnw-home .jnw-temps b { font-size: 1.25rem; }
  .jnw-home .jnw-temps span { font-size: 1rem; }
  .jnw-home .jnw-temp-range { height: .35rem; width: 1.75rem; }
  .jnw-home .jnw-day-summary { font-size: .86rem; line-height: 1.5; }
}

@media (max-width: 430px) {
  .jnw-home .jnw-day-card,
  .jnw-home .jnw-day-card.is-featured { grid-template-columns: 4rem minmax(6.9rem,1.5fr) 3.35rem minmax(5.9rem,.95fr); }
  .jnw-home .jnw-forecast-period { min-width: 2.4rem; }
  .jnw-home .jnw-forecast-period .jnw-weather-symbol { height: 2.35rem; width: 2.35rem; }
  .jnw-home .jnw-forecast-wind-ring { height: 2.5rem; width: 2.5rem; }
  .jnw-home .jnw-forecast-wind-arrow { height: 3.5rem; }
  .jnw-home .jnw-temps b { font-size: 1.12rem; }
  .jnw-home .jnw-temps span { font-size: .92rem; }
  .jnw-home .jnw-temp-range { width: 1.2rem; }
}

@media (max-width: 370px) {
  .jnw-home .jnw-day-card,
  .jnw-home .jnw-day-card.is-featured { column-gap: .2rem; grid-template-columns: 3.4rem minmax(6rem,1.5fr) 3rem minmax(5rem,.9fr); padding-left: .55rem; padding-right: .55rem; }
  .jnw-home .jnw-forecast-day > strong { font-size: .96rem; }
  .jnw-home .jnw-forecast-period { min-width: 2.05rem; }
  .jnw-home .jnw-forecast-period .jnw-weather-symbol { height: 2.05rem; width: 2.05rem; }
  .jnw-home .jnw-forecast-transition { font-size: .9rem; }
  .jnw-home .jnw-temps b { font-size: 1rem; }
  .jnw-home .jnw-temps span { font-size: .84rem; }
  .jnw-home .jnw-temp-range { width: .85rem; }
}

/* 0.18.0: single-pointer forecast wind and expanded app-style astronomy. */
.jnw-home .jnw-forecast-wind-arrow,
.jnw-forecast-wind-arrow {
  height: 3rem;
}
.jnw-home .jnw-forecast-wind-arrow::after,
.jnw-forecast-wind-arrow::after {
  content: none;
  display: none;
}

.jnw-astronomy-section .jnw-display-title {
  font-size: clamp(2.35rem, 8vw, 4rem);
  letter-spacing: -.045em;
  margin-bottom: 1rem;
}
.jnw-home .jnw-sky-card {
  background: linear-gradient(150deg, rgba(22, 41, 65, .99), rgba(12, 29, 50, .99));
  border-color: rgba(160, 184, 216, .24);
  border-radius: clamp(1.45rem, 4vw, 2rem);
  display: block;
  overflow: hidden;
  padding: clamp(1.2rem, 4vw, 2rem);
}
.jnw-astro-today { text-align: center; }
.jnw-astro-today > strong {
  color: #54c8ff;
  display: block;
  font-size: clamp(1.05rem, 3vw, 1.45rem);
  font-weight: 950;
  letter-spacing: .055em;
  margin-bottom: 1.2rem;
}
.jnw-daylight-row {
  align-items: center;
  display: grid;
  gap: .8rem;
  grid-template-columns: minmax(7rem, 1fr) minmax(9rem, 1.25fr) minmax(7rem, 1fr);
}
.jnw-sun-time { align-items: center; display: flex; gap: .7rem; justify-content: center; }
.jnw-sun-time b { color: #f2f6fc; font-size: clamp(1.15rem, 4vw, 1.65rem); white-space: nowrap; }
.jnw-sunrise-icon,
.jnw-sunset-icon {
  border-bottom: 3px solid #ffb71b;
  display: block;
  height: 1.35rem;
  position: relative;
  width: 2.1rem;
}
.jnw-sunrise-icon::before,
.jnw-sunset-icon::before {
  background: #ffbf25;
  border-radius: 50% 50% 0 0;
  bottom: 2px;
  box-shadow: -13px 3px 0 -5px #ffbf25, 13px 3px 0 -5px #ffbf25, 0 -11px 0 -5px #ffbf25;
  content: "";
  height: .72rem;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 1.35rem;
}
.jnw-sunset-icon::before { border-radius: 0 0 50% 50%; bottom: auto; top: 1.02rem; }
.jnw-daylight-copy { align-items: center; display: flex; flex-direction: column; gap: .3rem; }
.jnw-daylight-copy b { color: #ffdc20; font-size: clamp(1.3rem, 4vw, 1.8rem); }
.jnw-daylight-copy small { color: #f1a300; font-size: clamp(.9rem, 2.5vw, 1.1rem); font-weight: 850; }

.jnw-astro-paths {
  align-items: stretch;
  background: rgba(3, 17, 34, .54);
  border-radius: 1.35rem;
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  margin-top: 1.6rem;
  min-height: 15rem;
  overflow: hidden;
  padding: 1.2rem;
}
.jnw-astro-path-divider { background: rgba(155, 178, 207, .25); }
.jnw-astro-path-card { align-items: center; display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: .25rem 1rem; }
.jnw-astro-path-card h3 { color: #c9ced8; font-size: clamp(.95rem, 2.5vw, 1.2rem); letter-spacing: .12em; margin: 0 0 .25rem; }
.jnw-astro-path-card svg { display: block; height: auto; max-width: 22rem; overflow: visible; width: 100%; }
.jnw-astro-path-card line { stroke: #8d96ac; stroke-width: 3; }
.jnw-path-muted { fill: none; stroke: #526078; stroke-linecap: round; stroke-width: 6; }
.jnw-path-active { fill: none; stroke: #f8d10b; stroke-linecap: round; stroke-width: 6; }
.jnw-moon-path-line { stroke: #b9b8c8; }
.jnw-sun-glow { fill: rgba(255, 229, 113, .17); filter: drop-shadow(0 0 10px #fff7c5); }
.jnw-sun-disc { fill: #ffe23c; filter: drop-shadow(0 0 5px #fff); }
.jnw-moon-path-disc { fill: #eef1f6; filter: drop-shadow(0 0 4px rgba(255,255,255,.55)); }
[data-jnw-astro-sun-position].is-below,
[data-jnw-astro-moon-position].is-below { opacity: .52; }

.jnw-astro-accordion {
  align-items: center;
  background: transparent;
  border: 0;
  border-top: 1px solid rgba(157, 180, 209, .26);
  color: #edf2f9;
  cursor: pointer;
  display: flex;
  font-size: clamp(1.15rem, 3.5vw, 1.55rem);
  font-weight: 900;
  justify-content: space-between;
  margin-top: 1.1rem;
  padding: 1.15rem .25rem .85rem;
  text-align: left;
  width: 100%;
}
.jnw-astro-accordion span { align-items: center; display: flex; gap: .75rem; }
.jnw-astro-accordion span i { color: #aab4c4; font-size: 1.15em; font-style: normal; }
.jnw-astro-accordion > b { color: #9ba8ba; font-size: 1.55rem; transform: rotate(180deg); transition: transform .2s ease; }
.jnw-astro-accordion[aria-expanded="false"] > b { transform: rotate(0); }
.jnw-astro-details,
.jnw-meteor-details { border-top: 1px solid rgba(157, 180, 209, .22); }
.jnw-astro-details[hidden],
.jnw-meteor-details[hidden] { display: none !important; }
.jnw-current-moon-row {
  align-items: center;
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 1.3rem .2rem;
}
.jnw-current-moon-copy { display: flex; flex-direction: column; gap: .25rem; }
.jnw-current-moon-copy strong { color: #f4f7fc; font-size: clamp(1.3rem, 4vw, 1.8rem); }
.jnw-current-moon-copy small { color: #aeb9cb; font-size: clamp(.92rem, 2.5vw, 1.15rem); font-weight: 750; }
.jnw-moon-times { display: flex; flex-direction: column; gap: .65rem; }
.jnw-moon-times b { align-items: center; color: #dfe5ef; display: flex; font-size: 1rem; gap: .6rem; justify-content: flex-end; white-space: nowrap; }
.jnw-moon-times i { color: #74d7ff; font-size: 1.35rem; font-style: normal; }
.jnw-moon-art {
  background: #f3c719;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  box-shadow: inset -.3rem -.15rem .65rem rgba(113,66,0,.35), 0 0 1rem rgba(255,205,42,.12);
  display: block;
  flex: 0 0 auto;
  height: 3.45rem;
  overflow: hidden;
  position: relative;
  width: 3.45rem;
}
.jnw-moon-art::after { background: rgba(4,18,37,.94); border-radius: 50%; content: ""; inset: -.05rem; position: absolute; transform: translateX(0); }
.jnw-moon-art.is-current { height: 4.2rem; width: 4.2rem; }
.jnw-moon-art.is-full::after { opacity: 0; }
.jnw-moon-art.is-new { background: #14253a; box-shadow: inset -.25rem -.2rem .55rem rgba(0,0,0,.55); }
.jnw-moon-art.is-new::after { opacity: 0; }
.jnw-moon-art.is-first-quarter::after { transform: translateX(-50%); }
.jnw-moon-art.is-last-quarter::after { transform: translateX(50%); }
.jnw-moon-art.is-crescent.is-waxing::after { transform: translateX(-22%); }
.jnw-moon-art.is-crescent.is-waning::after { transform: translateX(22%); }
.jnw-moon-art.is-gibbous.is-waxing::after { transform: translateX(-72%); }
.jnw-moon-art.is-gibbous.is-waning::after { transform: translateX(72%); }

@media (max-width: 520px) {
  .jnw-tide-card { min-height: 24rem; padding: 1.4rem 1.15rem; }
  .jnw-tide-events { gap: .45rem; }
  .jnw-tide-events strong { font-size: clamp(1.35rem, 6vw, 1.7rem); }
  .jnw-tide-events small { font-size: clamp(.94rem, 4vw, 1.08rem); }
}

.jnw-major-phases { border-top: 1px solid rgba(157, 180, 209, .2); padding: 1.15rem 0 .25rem; }
.jnw-major-phases h3 { color: #aeb9cb; font-size: 1.05rem; margin: 0 0 .8rem; }
.jnw-major-phase-grid { display: grid; gap: .65rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.jnw-major-phase-card {
  align-items: center;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(162,185,215,.24);
  border-radius: 1rem;
  display: flex;
  flex-direction: column;
  min-height: 10.5rem;
  padding: .85rem .45rem;
  text-align: center;
}
.jnw-major-phase-card strong { color: #55caff; font-size: 1.05rem; margin-top: .55rem; }
.jnw-major-phase-card small { color: #f0f3f8; font-size: .88rem; font-weight: 800; line-height: 1.2; margin-top: .25rem; }
.jnw-phase-loading { color: var(--jnw-muted); grid-column: 1 / -1; padding: 1rem; text-align: center; }
.jnw-meteor-toggle { margin-top: 1.15rem; }
.jnw-meteor-toggle span i { color: #ffd400; }
.jnw-meteor-details { padding-top: 1.2rem; }
.jnw-meteor-details .jnw-sky-summary { text-align: left; }
.jnw-meteor-details .jnw-sky-summary h2 { color: #ffdc20; margin-top: .35rem; }
.jnw-meteor-details .jnw-sky-summary p { margin-left: 0; }
.jnw-meteor-details .jnw-sky-footer { margin-top: 1rem; }

@media (max-width: 720px) {
  .jnw-daylight-row { gap: .35rem; grid-template-columns: minmax(5.9rem, 1fr) minmax(7.8rem, 1.15fr) minmax(5.9rem, 1fr); }
  .jnw-sun-time { gap: .35rem; }
  .jnw-sun-time b { font-size: 1.05rem; }
  .jnw-sunrise-icon,
  .jnw-sunset-icon { transform: scale(.82); }
  .jnw-daylight-copy b { font-size: 1.18rem; }
  .jnw-daylight-copy small { font-size: .82rem; }
  .jnw-astro-paths { min-height: 12.5rem; padding: .8rem .45rem; }
  .jnw-astro-path-card { padding: .25rem .4rem; }
  .jnw-astro-path-card h3 { font-size: .82rem; }
  .jnw-current-moon-row { gap: .7rem; grid-template-columns: auto minmax(0, 1fr) auto; }
  .jnw-moon-art.is-current { height: 3.4rem; width: 3.4rem; }
  .jnw-current-moon-copy strong { font-size: 1.12rem; }
  .jnw-current-moon-copy small,
  .jnw-moon-times b { font-size: .8rem; }
  .jnw-moon-times i { font-size: 1rem; }
  .jnw-major-phase-grid { gap: .4rem; }
  .jnw-major-phase-card { border-radius: .8rem; min-height: 8.8rem; padding: .65rem .25rem; }
  .jnw-major-phase-card .jnw-moon-art { height: 2.55rem; width: 2.55rem; }
  .jnw-major-phase-card strong { font-size: .82rem; }
  .jnw-major-phase-card small { font-size: .72rem; }
}

@media (max-width: 390px) {
  .jnw-home .jnw-sky-card { padding-left: .8rem; padding-right: .8rem; }
  .jnw-daylight-row { grid-template-columns: 1fr 1.1fr 1fr; }
  .jnw-sun-time { flex-direction: column; }
  .jnw-current-moon-row { grid-template-columns: auto minmax(0, 1fr); }
  .jnw-moon-times { border-top: 1px solid rgba(157,180,209,.18); flex-direction: row; grid-column: 1 / -1; justify-content: space-around; padding-top: .7rem; }
}

/* 0.19.0: source-direction wind, mixed low-PoP icons, and full More views. */
.jnw-wind-compass {
  height: 6.15rem;
  width: 6.15rem;
}
.jnw-wind-compass::before,
.jnw-wind-compass::after { content: none; }
.jnw-wind-compass > span {
  color: #91a4bc;
  font-size: .54rem;
  font-weight: 950;
  line-height: 1;
  position: absolute;
  z-index: 2;
}
.jnw-wind-compass .jnw-wind-n { left: 50%; top: .28rem; transform: translateX(-50%); }
.jnw-wind-compass .jnw-wind-s { bottom: .28rem; left: 50%; transform: translateX(-50%); }
.jnw-wind-compass .jnw-wind-e { right: .3rem; top: 50%; transform: translateY(-50%); }
.jnw-wind-compass .jnw-wind-w { left: .3rem; top: 50%; transform: translateY(-50%); }
.jnw-wind-compass i {
  height: 2.15rem;
  top: .7rem;
  transform-origin: 50% 2.35rem;
  width: 3px;
}
.jnw-wind-compass i::before {
  border-bottom-width: .78rem;
  border-left-width: .46rem;
  border-right-width: .46rem;
  top: -.42rem;
}
.jnw-wind-compass b { font-size: 1.35rem; }
.jnw-home .jnw-forecast-wind-ring,
.jnw-forecast-wind-ring { height: 4.15rem; width: 4.15rem; }
.jnw-home .jnw-forecast-wind-arrow,
.jnw-forecast-wind-arrow { height: 3.65rem; width: 2px; }
.jnw-home .jnw-forecast-wind-arrow::before,
.jnw-forecast-wind-arrow::before { font-size: .92rem; top: -.4rem; }
.jnw-home .jnw-forecast-wind > small,
.jnw-forecast-wind > small { color: #a9b8cc; font-size: .68rem; }
.jnw-weather-symbol[data-jnw-icon-type="partly-rain"] .jnw-icon-cloud-small,
.jnw-weather-symbol[data-jnw-icon-type="partly-thunder"] .jnw-icon-cloud-small { filter: drop-shadow(0 5px 7px rgba(0,0,0,.18)); }
.jnw-weather-symbol .jnw-icon-rain-light { stroke-width: 4; }

.jnw-more-view {
  inset: 0 0 calc(4.65rem + env(safe-area-inset-bottom));
  position: fixed;
  z-index: 29;
}
.jnw-more-backdrop { backdrop-filter: blur(3px); background: rgba(1, 9, 20, .62); inset: 0; position: absolute; }
.jnw-more-sheet {
  background: #071831;
  border: 1px solid rgba(150,180,219,.25);
  border-bottom: 0;
  border-radius: 1.8rem 1.8rem 0 0;
  bottom: 0;
  box-shadow: 0 -22px 65px rgba(0,0,0,.38);
  left: 50%;
  max-width: 34rem;
  padding: 1rem 1.5rem 1.3rem;
  position: absolute;
  transform: translateX(-50%);
  width: min(100%, 34rem);
}
.jnw-more-sheet header { align-items: center; border-bottom: 1px solid rgba(157,181,212,.18); display: flex; justify-content: space-between; margin-bottom: .55rem; padding: .25rem 0 .9rem; }
.jnw-more-sheet h1 { font-size: 2rem; letter-spacing: -.045em; margin: 0; }
.jnw-more-sheet header button { background: transparent; border: 0; cursor: pointer; font-size: 2.5rem; line-height: 1; padding: .1rem .25rem; }
.jnw-more-option {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 1rem;
  cursor: pointer;
  display: grid;
  gap: 1rem;
  grid-template-columns: 2.25rem 1fr auto;
  min-height: 5rem;
  padding: .65rem .75rem;
  text-align: left;
  width: 100%;
}
.jnw-more-option:hover,
.jnw-more-option:focus-visible { background: rgba(255,255,255,.06); outline: none; }
.jnw-more-option-icon { align-items: center; color: white; display: inline-flex; font-size: 2rem; justify-content: center; }
.jnw-more-option-icon svg { height: 2.35rem; overflow: visible; width: 2.35rem; }
.jnw-more-option-icon.is-tropical { color: #58d9ff; filter: drop-shadow(0 0 8px rgba(55,194,255,.28)); }
.jnw-more-option-icon.is-tropical svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3.2; }
.jnw-more-option-icon.is-tropical circle { fill: #a9ecff; stroke-width: 1.5; }
.jnw-more-option-icon.is-noreaster { filter: drop-shadow(0 0 8px rgba(123,205,255,.3)); }
.jnw-more-option-icon.is-noreaster svg { height: 2.55rem; width: 2.55rem; }
.jnw-more-option-icon.is-noreaster path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.jnw-more-option-icon .jnw-noreaster-cloud { fill: rgba(177,213,239,.16); stroke: #d8efff; stroke-width: 2.5; }
.jnw-more-option-icon .jnw-noreaster-rain { stroke: #4cc8ff; stroke-width: 3; }
.jnw-more-option-icon .jnw-noreaster-snow { stroke: #f4fbff; stroke-width: 2.2; }
.jnw-more-option-icon .jnw-noreaster-wind { stroke: #91ddff; stroke-width: 2.25; }
.jnw-more-option-icon.is-stormdesk { color: #ffd25d; filter: drop-shadow(0 0 9px rgba(255,198,65,.25)); }
.jnw-more-option-icon.is-stormdesk svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.6; }
.jnw-more-option-icon.is-stormdesk svg path:last-child { fill: currentColor; stroke-width: 1.5; }
.jnw-more-option-icon.is-roadtrip { color: #74e4aa; filter: drop-shadow(0 0 8px rgba(67,220,145,.28)); transform: rotate(-8deg); }
.jnw-more-option-icon.is-latest { color: #ff6876; filter: drop-shadow(0 0 9px rgba(255,81,100,.3)); }
.jnw-more-option-icon.is-latest svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.6; }
.jnw-more-option-icon.is-latest svg path { fill: currentColor; stroke-width: 1.4; }
.jnw-more-option strong { font-size: 1.7rem; letter-spacing: -.035em; }
.jnw-more-option i { color: #7890ac; font-size: 2rem; font-style: normal; }

.jnw-secondary-view { background: radial-gradient(circle at 50% -10%, rgba(35,100,165,.23), transparent 30rem), #041429; min-height: calc(100vh - 4.5rem); padding-bottom: 6rem; }
.jnw-home.is-secondary-view .jnw-app-header { display: none; }
.jnw-secondary-header {
  align-items: center;
  backdrop-filter: blur(16px);
  background: rgba(5, 21, 41, .95);
  border-bottom: 1px solid rgba(157,181,212,.16);
  display: grid;
  grid-template-columns: 3rem 1fr 3rem;
  min-height: 5.75rem;
  padding: .7rem max(.75rem, calc((100% - 64rem) / 2));
  position: sticky;
  top: 0;
  z-index: 18;
}
.jnw-secondary-header h1 { font-size: clamp(2rem, 7vw, 3rem); letter-spacing: -.055em; margin: 0; text-align: center; }
.jnw-secondary-header button { background: transparent; border: 0; cursor: pointer; font-size: 2.7rem; line-height: 1; padding: 0; }
.jnw-secondary-inner { display: flex; flex-direction: column; gap: 1.35rem; margin: 0 auto; max-width: 64rem; padding: 1.25rem 1rem 3rem; }

/* 0.22.0: Maine-first Storm Desk. */
.jnw-storm-inner { max-width: 76rem; }
.jnw-storm-placeholder { min-height: 18rem; }
.jnw-storm-live { display: flex; flex-direction: column; gap: 2rem; }
.jnw-storm-hero {
  background: linear-gradient(135deg, rgba(11,43,77,.98), rgba(5,24,47,.98));
  border-color: rgba(86,191,255,.29);
  display: block;
  min-height: 0;
  overflow: hidden;
  padding: 0;
  position: relative;
}
.jnw-storm-hero:before { background: radial-gradient(circle at 88% 38%, rgba(66,169,242,.2), transparent 26rem); content: ""; inset: 0; pointer-events: none; position: absolute; }
.jnw-storm-hero.is-quiet { border-top: .32rem solid #4ee39b; }
.jnw-storm-hero.is-watching { border-top: .32rem solid #f5cf55; }
.jnw-storm-hero.is-elevated { border-top: .32rem solid #ff983e; }
.jnw-storm-hero.is-flood { border-top: .32rem solid var(--jnw-flood-green); box-shadow: inset 0 0 0 1px rgba(var(--jnw-flood-green-rgb),.16), 0 1.3rem 3rem rgba(0,6,18,.28); }
.jnw-storm-hero.is-active { border-top: .32rem solid var(--jnw-warning-red); box-shadow: inset 0 0 0 1px rgba(var(--jnw-warning-red-rgb),.18), 0 1.3rem 3rem rgba(0,6,18,.28); }
.jnw-storm-hero.is-unavailable { border-top: .32rem solid #a5b4c5; }
.jnw-storm-hero-copy { min-width: 0; padding: clamp(1rem,3vw,1.55rem); position: relative; z-index: 2; }
.jnw-storm-kicker { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; }
.jnw-storm-kicker > span,
.jnw-storm-section-heading small,
.jnw-storm-mode-guide > div > small { color: #65caff; font-size: .67rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.jnw-storm-kicker > b,
.jnw-storm-alerts .jnw-storm-section-heading > b,
.jnw-storm-alerts .jnw-storm-section-actions > b,
.jnw-storm-tracker header > b { background: rgba(79,226,156,.12); border: 1px solid rgba(79,226,156,.34); border-radius: 999px; color: #6aefac; font-size: .68rem; font-weight: 950; letter-spacing: .07em; padding: .48rem .7rem; text-transform: uppercase; }
.jnw-storm-kicker > b.is-watching,
.jnw-storm-alerts .jnw-storm-section-heading > b.is-watching,
.jnw-storm-alerts .jnw-storm-section-actions > b.is-watching,
.jnw-storm-tracker header > b.is-watching { background: rgba(245,207,85,.12); border-color: rgba(245,207,85,.4); color: #ffe27f; }
.jnw-storm-kicker > b.is-elevated,
.jnw-storm-alerts .jnw-storm-section-heading > b.is-elevated,
.jnw-storm-alerts .jnw-storm-section-actions > b.is-elevated,
.jnw-storm-tracker header > b.is-elevated { background: rgba(255,152,62,.13); border-color: rgba(255,152,62,.42); color: #ffb96f; }
.jnw-storm-kicker > b.is-flood,
.jnw-storm-alerts .jnw-storm-section-heading > b.is-flood,
.jnw-storm-alerts .jnw-storm-section-actions > b.is-flood,
.jnw-storm-tracker header > b.is-flood { background: rgba(var(--jnw-flood-green-rgb),.16); border-color: rgba(var(--jnw-flood-green-rgb),.58); color: var(--jnw-flood-green-soft); }
.jnw-storm-kicker > b.is-active,
.jnw-storm-alerts .jnw-storm-section-heading > b.is-active,
.jnw-storm-alerts .jnw-storm-section-actions > b.is-active,
.jnw-storm-tracker header > b.is-active { background: rgba(var(--jnw-warning-red-rgb),.14); border-color: rgba(var(--jnw-warning-red-rgb),.5); color: var(--jnw-warning-red-soft); }
.jnw-storm-kicker > b.is-unavailable,
.jnw-storm-alerts .jnw-storm-section-heading > b.is-unavailable,
.jnw-storm-alerts .jnw-storm-section-actions > b.is-unavailable { background: rgba(165,180,197,.1); border-color: rgba(165,180,197,.3); color: #c6d1dd; }
.jnw-storm-tracker header > b.is-unavailable { background: rgba(145,160,180,.1); border-color: rgba(145,160,180,.25); color: #9eacbd; }
.jnw-storm-hero h2 { font-size: clamp(2rem,5vw,3.25rem); letter-spacing: -.06em; line-height: .95; margin: .75rem 0 .55rem; max-width: 50rem; text-wrap: balance; }
.jnw-storm-hero-copy > p { color: #c1cfde; font-size: clamp(.98rem,2.2vw,1.16rem); font-weight: 680; line-height: 1.58; margin: 0; max-width: 42rem; }
.jnw-storm-mode-rail { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 1.6rem; position: relative; }
.jnw-storm-mode-rail:before { background: rgba(137,168,203,.24); content: ""; height: 2px; left: 7%; position: absolute; right: 7%; top: .42rem; }
.jnw-storm-mode-rail span { align-items: center; color: #768aa1; display: flex; flex-direction: column; min-width: 0; position: relative; text-align: center; }
.jnw-storm-mode-rail i { background: #233d5b; border: 2px solid #7790ad; border-radius: 50%; height: .9rem; position: relative; width: .9rem; z-index: 1; }
.jnw-storm-mode-rail b { font-size: .74rem; margin-top: .55rem; }
.jnw-storm-mode-rail small { font-size: .58rem; margin-top: .12rem; }
.jnw-storm-mode-rail span.passed { color: #aab8c9; }
.jnw-storm-mode-rail span.passed i { background: #6095b8; border-color: #b7d9ef; }
.jnw-storm-mode-rail span.selected { color: #fff; }
.jnw-storm-mode-rail span.selected i { background: #fff; border-color: #fff; box-shadow: 0 0 0 .3rem rgba(90,198,255,.16), 0 0 1rem rgba(90,198,255,.65); transform: scale(1.18); }
.jnw-storm-mode-rail span[data-jnw-storm-mode-step="quiet"].selected i { background: #4ee39b; border-color: #9dffd0; }
.jnw-storm-mode-rail span[data-jnw-storm-mode-step="watching"].selected i { background: #f5cf55; border-color: #fff0ac; }
.jnw-storm-mode-rail span[data-jnw-storm-mode-step="elevated"].selected i { background: #ff983e; border-color: #ffd1a4; }
.jnw-storm-mode-rail span[data-jnw-storm-mode-step="active"].selected i { background: var(--jnw-warning-red); border-color: #ffb4ae; }
.jnw-storm-hero-meta { color: #91a5ba; display: flex; flex-wrap: wrap; font-size: .75rem; font-weight: 760; gap: .45rem 1rem; margin-top: .85rem; }
.jnw-storm-hero-forecast { background: transparent; border: 0; color: #6ed3ff; cursor: pointer; font-size: .78rem; font-weight: 900; margin-top: .8rem; padding: 0; }
.jnw-storm-hero-forecast:hover,
.jnw-storm-hero-forecast:focus-visible { color: #fff; outline: 2px solid #72d3ff; outline-offset: 4px; }

.jnw-storm-sponsor {
  align-items: center;
  background: linear-gradient(105deg,rgba(22,49,72,.98),rgba(8,29,52,.98));
  border-color: rgba(240,193,88,.32);
  display: grid;
  gap: .85rem 1rem;
  grid-template-columns: 3rem minmax(0,1fr) auto;
  padding: .85rem 1rem;
}
.jnw-storm-sponsor-mark { align-items: center; background: rgba(240,193,88,.1); border: 1px solid rgba(240,193,88,.27); border-radius: .8rem; display: inline-flex; height: 3rem; justify-content: center; width: 3rem; }
.jnw-storm-sponsor-mark svg { fill: none; height: 2rem; stroke: #f2c96b; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.2; width: 2rem; }
.jnw-storm-sponsor-copy { display: flex; flex-direction: column; min-width: 0; }
.jnw-storm-sponsor-copy small { color: #f2c96b; font-size: .65rem; font-weight: 950; letter-spacing: .11em; line-height: 1.35; }
.jnw-storm-sponsor-copy strong { color: #f5f9ff; font-size: clamp(1.05rem,2.5vw,1.25rem); letter-spacing: -.02em; line-height: 1.15; margin-top: .12rem; }
.jnw-storm-sponsor-copy p { color: #aebed0; font-size: .78rem; line-height: 1.4; margin: .18rem 0 0; }
.jnw-storm-sponsor > a { align-items: center; background: #f0c158; border: 1px solid #ffe29a; border-radius: .8rem; color: #172233; display: inline-flex; font-size: .76rem; font-weight: 950; gap: .35rem; justify-content: center; min-height: 2.8rem; padding: .68rem .9rem; text-align: center; text-decoration: none; white-space: nowrap; }
.jnw-storm-sponsor > a:hover,
.jnw-storm-sponsor > a:focus-visible { background: #ffda7d; outline: 3px solid rgba(240,193,88,.2); outline-offset: 2px; }
.jnw-storm-sponsor > a span { font-size: 1rem; line-height: 1; }

.jnw-page-sponsor {
  align-items: center;
  background: linear-gradient(112deg,rgba(11,36,57,.99),rgba(25,57,78,.98));
  border-color: rgba(242,201,107,.48);
  display: grid;
  gap: 1rem 1.25rem;
  grid-template-columns: minmax(0,1fr) auto;
  overflow: hidden;
  padding: 1.1rem 1.2rem 1.1rem 1.45rem;
  position: relative;
}
.jnw-page-sponsor::before { background: linear-gradient(180deg,#ffe49e,#dba83d); bottom: 0; content: ""; left: 0; position: absolute; top: 0; width: .34rem; }
.jnw-page-sponsor-copy { display: flex; flex-direction: column; min-width: 0; }
.jnw-page-sponsor-copy small { color: #f2c96b; font-size: .68rem; font-weight: 950; letter-spacing: .13em; line-height: 1.35; }
.jnw-page-sponsor-copy strong { color: #fff; font-size: clamp(1.25rem,2.7vw,1.7rem); letter-spacing: -.035em; line-height: 1.08; margin-top: .2rem; }
.jnw-page-sponsor-copy p { color: #b8cad9; font-size: .82rem; line-height: 1.45; margin: .28rem 0 0; }
.jnw-page-sponsor > a { align-items: center; background: #f0c158; border: 1px solid #ffe29a; border-radius: .82rem; color: #172233; display: inline-flex; font-size: .78rem; font-weight: 950; gap: .4rem; justify-content: center; min-height: 3rem; padding: .72rem 1rem; text-align: center; text-decoration: none; white-space: nowrap; }
.jnw-page-sponsor > a:hover,
.jnw-page-sponsor > a:focus-visible { background: #ffda7d; outline: 3px solid rgba(240,193,88,.2); outline-offset: 2px; }
.jnw-page-sponsor > a span { font-size: 1.05rem; line-height: 1; }

.jnw-storm-map-disclosure { border-color: rgba(89,198,255,.35); box-shadow: 0 1rem 2.6rem rgba(0,8,20,.28); overflow: hidden; padding: 0; }
.jnw-storm-map-disclosure.has-alerts { box-shadow: 0 .8rem 2rem rgba(0,8,20,.25); }
.jnw-storm-map-disclosure.has-alerts.is-watching { border-color: rgba(245,207,85,.46); box-shadow: 0 .8rem 2rem rgba(0,8,20,.25), inset 0 0 0 1px rgba(245,207,85,.08); }
.jnw-storm-map-disclosure.has-alerts.is-elevated { border-color: rgba(255,152,62,.48); box-shadow: 0 .8rem 2rem rgba(0,8,20,.25), inset 0 0 0 1px rgba(255,152,62,.09); }
.jnw-storm-map-disclosure.has-alerts.is-flood { border-color: rgba(var(--jnw-flood-green-rgb),.66); box-shadow: 0 .8rem 2rem rgba(0,8,20,.25), inset 0 0 0 1px rgba(var(--jnw-flood-green-rgb),.13); }
.jnw-storm-map-disclosure.has-alerts.is-active { border-color: rgba(var(--jnw-warning-red-rgb),.58); box-shadow: 0 .8rem 2rem rgba(0,8,20,.25), inset 0 0 0 1px rgba(var(--jnw-warning-red-rgb),.1); }
.jnw-storm-map-disclosure.has-incomplete-coverage:not(.has-alerts) { border-color: rgba(165,180,197,.4); }
.jnw-storm-map-disclosure > summary { align-items: center; cursor: pointer; display: grid; gap: .8rem; grid-template-columns: 3.15rem minmax(0,1fr) auto; list-style: none; min-height: 5.8rem; padding: .85rem 1rem; }
.jnw-storm-map-disclosure > summary::-webkit-details-marker { display: none; }
.jnw-storm-map-disclosure > summary:focus-visible { outline: 2px solid #59c6ff; outline-offset: -3px; }
.jnw-storm-map-disclosure > summary > span:nth-child(2) { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.jnw-storm-map-disclosure > summary small { color: #65caff; font-size: .7rem; font-weight: 950; letter-spacing: .1em; line-height: 1.35; text-transform: uppercase; }
.jnw-storm-map-disclosure > summary strong { color: #f5f9ff; font-size: clamp(1rem,2.5vw,1.25rem); line-height: 1.2; }
.jnw-storm-map-disclosure > summary em { color: #76e5b1; font-size: .65rem; font-style: normal; font-weight: 950; letter-spacing: .08em; margin-top: .1rem; text-transform: uppercase; }
.jnw-storm-map-disclosure.has-alerts.is-watching > summary em { color: #ffe27f; }
.jnw-storm-map-disclosure.has-alerts.is-elevated > summary em { color: #ffb96f; }
.jnw-storm-map-disclosure.has-alerts.is-flood > summary em { color: var(--jnw-flood-green-soft); }
.jnw-storm-map-disclosure.has-alerts.is-active > summary em { color: var(--jnw-warning-red-soft); }
.jnw-storm-map-disclosure.has-incomplete-coverage:not(.has-alerts) > summary em { color: #c6d1dd; }
.jnw-storm-map-disclosure > summary > i { color: #8da5be; font-size: 1.55rem; font-style: normal; line-height: 1; transition: transform .18s ease; }
.jnw-storm-map-disclosure[open] > summary { border-bottom: 1px solid rgba(144,183,218,.13); }
.jnw-storm-map-disclosure[open] > summary > i { transform: rotate(180deg); }
.jnw-storm-map-icon { align-items: center; background: rgba(89,198,255,.09); border: 1px solid rgba(89,198,255,.24); border-radius: .85rem; display: inline-flex; height: 3.15rem; justify-content: center; width: 3.15rem; }
.jnw-storm-map-icon svg { fill: none; height: 2rem; stroke: #63caff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; width: 2rem; }
.jnw-storm-map { background: linear-gradient(180deg,rgba(23,68,105,.72),rgba(6,24,45,.38)); display: grid; grid-template-rows: auto minmax(0,1fr) auto; margin: 0; overflow: hidden; position: relative; }
.jnw-storm-map-toolbar { align-items: center; background: rgba(3,18,36,.42); border-bottom: 1px solid rgba(144,183,218,.1); display: flex; gap: .75rem 1rem; justify-content: space-between; padding: .7rem .85rem; position: relative; z-index: 5; }
.jnw-storm-map-toolbar > span { color: #98adc0; flex: 0 0 auto; font-size: .7rem; font-weight: 800; text-align: right; }
.jnw-storm-map-legend { display: flex; flex-wrap: wrap; gap: .45rem .75rem; }
.jnw-storm-map-layout { align-items: stretch; display: grid; grid-template-columns: minmax(14rem,16rem) minmax(0,1fr); min-height: 0; position: relative; }
.jnw-storm-map-layout > .jnw-storm-map-legend { align-content: center; background: linear-gradient(90deg,rgba(2,17,34,.56),rgba(2,17,34,.18)); border-right: 1px solid rgba(144,183,218,.1); display: grid; gap: 1.15rem; padding: 1.35rem; position: relative; z-index: 4; }
.jnw-storm-map-layout > .jnw-storm-map-legend strong { color: #f4f9ff; font-size: 1rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.jnw-storm-map-layout > .jnw-storm-map-legend span { font-size: 1.05rem; gap: .65rem; line-height: 1.35; white-space: normal; }
.jnw-storm-map-layout > .jnw-storm-map-legend i { flex: 0 0 auto; height: 1rem; width: 1rem; }
.jnw-storm-map-legend span { align-items: center; color: #c6d4e1; display: inline-flex; font-size: .68rem; font-weight: 850; gap: .32rem; white-space: nowrap; }
.jnw-storm-map-legend i { background: #f5cf55; border-radius: .18rem; display: inline-block; height: .58rem; width: .58rem; }
.jnw-storm-map-legend .is-elevated i { background: #ff983e; }
.jnw-storm-map-legend .is-flood i { background: var(--jnw-flood-green); }
.jnw-storm-map-legend .is-active i { background: var(--jnw-warning-red); }
.jnw-storm-map-sponsor { background: linear-gradient(145deg,rgba(4,21,39,.96),rgba(20,50,74,.97)); border: 1px solid rgba(242,201,107,.68); border-radius: 1rem; bottom: 1.1rem; box-shadow: 0 1rem 2.2rem rgba(0,7,19,.42), inset 0 0 0 1px rgba(255,255,255,.025); display: flex; flex-direction: column; max-width: 19rem; padding: 1rem 1.1rem; position: absolute; right: 1.1rem; text-decoration: none; transition: border-color .18s ease, transform .18s ease; width: calc(100% - 2.2rem); z-index: 6; }
.jnw-storm-map-sponsor:hover,
.jnw-storm-map-sponsor:focus-visible { border-color: #f2c96b; outline: 3px solid rgba(242,201,107,.2); outline-offset: 2px; transform: translateY(-2px); }
.jnw-storm-map-sponsor small { color: #f2c96b; font-size: .7rem; font-weight: 950; letter-spacing: .14em; line-height: 1.3; }
.jnw-storm-map-sponsor strong { color: #fff; font-size: clamp(1.35rem,2.4vw,1.75rem); letter-spacing: -.035em; line-height: 1.05; margin-top: .28rem; text-transform: uppercase; }
.jnw-storm-map-sponsor span { align-items: center; color: #c8d8e7; display: flex; font-size: .8rem; font-weight: 850; gap: .4rem; margin-top: .55rem; }
.jnw-storm-map-sponsor span b { color: #f2c96b; font-size: 1.05rem; line-height: 1; }
.jnw-storm-map-frame { display: grid; min-height: 0; padding: .65rem; place-items: center; position: relative; }
.jnw-storm-map-halo { background: radial-gradient(ellipse,rgba(84,192,255,.2),transparent 67%); filter: blur(4px); inset: 2% 2% 0; position: absolute; }
.jnw-storm-map-stage { aspect-ratio: 408 / 420; max-width: 100%; position: relative; width: 100%; z-index: 2; }
.jnw-storm-live-map-svg { display: block; filter: drop-shadow(0 1rem 1.45rem rgba(0,7,19,.42)); height: 100%; overflow: visible; width: 100%; }
.jnw-alert-map-ocean { fill: #123a58; }
.jnw-alert-map-state { fill: #173550; }
.jnw-alert-map-state[data-jnw-map-state="ME"] { fill: #1c4a6d; }
.jnw-alert-map-county { fill: rgba(255,255,255,.012); filter: drop-shadow(0 0 .7px rgba(0,5,15,.98)); shape-rendering: geometricPrecision; stroke: rgba(252,254,255,.96); stroke-linejoin: round; stroke-width: 1.1; transition: fill .18s ease, filter .18s ease, opacity .18s ease; vector-effect: non-scaling-stroke; }
.jnw-alert-map-county[data-jnw-map-state-code="ME"] { stroke: #fff; stroke-width: 1.35; }
.jnw-alert-map-county.is-watching { fill: rgba(245,207,85,.78); }
.jnw-alert-map-county.is-elevated { fill: rgba(255,152,62,.84); }
.jnw-alert-map-county.is-flood { fill: rgba(var(--jnw-flood-green-rgb),.92); }
.jnw-alert-map-county.is-active { fill: rgba(var(--jnw-warning-red-rgb),.92); }
.jnw-alert-map-county.is-watching,
.jnw-alert-map-county.is-elevated,
.jnw-alert-map-county.is-flood,
.jnw-alert-map-county.is-active { stroke: #fff; stroke-width: 1.45; }
.jnw-alert-map-county[tabindex="0"] { cursor: pointer; }
.jnw-alert-map-county[tabindex="0"]:hover,
.jnw-alert-map-county[tabindex="0"]:focus { filter: brightness(1.22) drop-shadow(0 0 .28rem rgba(255,255,255,.7)); outline: none; }
.jnw-alert-map-county[tabindex="0"]:focus { stroke: #fff; stroke-width: 1.7; }
.jnw-alert-map-state-outline { fill: none; pointer-events: none; shape-rendering: geometricPrecision; stroke: rgba(231,246,255,.9); stroke-linejoin: round; stroke-width: 1.35; transition: filter .18s ease, stroke .18s ease, stroke-width .18s ease; vector-effect: non-scaling-stroke; }
.jnw-alert-map-state-callout { pointer-events: none; }
.jnw-alert-map-state-leader { fill: none; filter: drop-shadow(0 0 .85px rgba(0,5,15,1)); stroke: rgba(234,248,255,.98); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; vector-effect: non-scaling-stroke; }
.jnw-alert-map-state-leader-dot { fill: #fff; stroke: #041427; stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.jnw-alert-map-state-label { dominant-baseline: middle; fill: #fff; font-size: 14px; font-weight: 1000; letter-spacing: .04em; paint-order: stroke fill; pointer-events: none; stroke: #041427; stroke-linejoin: round; stroke-width: 4px; }
.jnw-alert-map-state-outline.is-watching { stroke: #f5cf55; stroke-width: 2.1; }
.jnw-alert-map-state-outline.is-elevated { stroke: #ff983e; stroke-width: 2.25; }
.jnw-alert-map-state-outline.is-flood { stroke: #4dbb7c; stroke-width: 2.35; }
.jnw-alert-map-state-outline.is-active { animation: jnw-alert-map-pulse 1.8s ease-in-out infinite; stroke: var(--jnw-warning-red); stroke-width: 2.45; }
.jnw-alert-map-region-label { dominant-baseline: middle; fill: #fff; font-size: 13px; font-weight: 950; letter-spacing: .08em; paint-order: stroke fill; pointer-events: none; stroke: #071a2b; stroke-linejoin: round; stroke-width: 3px; }
.jnw-alert-map-gulf-label text { dominant-baseline: middle; fill: #fff; font-size: 15px; font-weight: 850; letter-spacing: .18em; paint-order: stroke fill; pointer-events: none; stroke: rgba(7,26,43,.82); stroke-linejoin: round; stroke-width: 3px; }
.jnw-storm-map-unavailable { color: #b9cbd9; font-size: .8rem; margin: auto; text-align: center; }
.jnw-storm-map figcaption { background: rgba(3,18,36,.5); border-top: 1px solid rgba(144,183,218,.1); color: #9db1c4; font-size: .72rem; font-weight: 750; line-height: 1.5; padding: .7rem .85rem .75rem; position: relative; text-align: center; z-index: 4; }
@keyframes jnw-alert-map-pulse { 0%,100% { filter: drop-shadow(0 0 .08rem rgba(var(--jnw-warning-red-rgb),.4)); } 50% { filter: drop-shadow(0 0 .42rem rgba(var(--jnw-warning-red-rgb),.95)); } }
@media (prefers-reduced-motion: reduce) { .jnw-alert-map-state-outline.is-active { animation: none; } }

/* 0.46.72: mobile-safe current and forecast map carousels with scalable county borders. */
.jnw-forecast-maps { display: flex; flex-direction: column; gap: 1rem; scroll-margin-top: 7rem; }
.jnw-forecast-maps-heading { align-items: end; }
.jnw-forecast-maps-placeholder { min-height: 13rem; }
.jnw-forecast-maps-live { display: flex; flex-direction: column; gap: 1.35rem; }
.jnw-map-group { display: flex; flex-direction: column; gap: .9rem; min-width: 0; scroll-margin-top: 7rem; }
.jnw-map-group + .jnw-map-group { border-top: 1px solid rgba(133,183,218,.18); padding-top: 1.35rem; }
.jnw-map-group-heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-map-group-heading small { color: #65caff; display: block; font-size: .63rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.jnw-map-group-heading h3 { font-size: clamp(1.45rem,4vw,2.2rem); letter-spacing: -.045em; line-height: 1; margin: .25rem 0 0; }
.jnw-map-group-heading > span { color: #8ea2b5; font-size: .7rem; font-weight: 800; line-height: 1.4; max-width: 18rem; text-align: right; }
.jnw-current-map-group { background: linear-gradient(145deg,rgba(28,74,105,.22),rgba(5,22,40,.08)); border: 1px solid rgba(105,202,245,.2); border-radius: 1.1rem; padding: clamp(.8rem,2.2vw,1.15rem); }
.jnw-map-group-placeholder { min-height: 8rem; }
.jnw-forecast-map-carousel { min-width: 0; overflow: hidden; }
.jnw-forecast-map-track { -ms-overflow-style: none; display: flex; gap: 1rem; overflow-x: auto; overscroll-behavior-x: contain; padding: .1rem .1rem .65rem; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.jnw-forecast-map-track::-webkit-scrollbar { display: none; }
.jnw-forecast-map-card { background: #06101b; border: 1px solid rgba(125,185,222,.28); border-radius: 1rem; box-shadow: 0 1rem 2.4rem rgba(0,7,18,.28); color: #fff; cursor: zoom-in; display: flex; flex: 0 0 calc(50% - .5rem); flex-direction: column; min-width: 0; overflow: hidden; padding: 0; position: relative; scroll-snap-align: start; scroll-snap-stop: always; }
.jnw-forecast-map-card:hover,
.jnw-forecast-map-card:focus-visible { border-color: rgba(104,211,255,.82); box-shadow: 0 1rem 2.6rem rgba(0,7,18,.4), 0 0 0 3px rgba(83,195,247,.16); outline: none; transform: translateY(-2px); }
.jnw-forecast-map-svg { display: block; height: auto; width: 100%; }
.jnw-forecast-map-image { aspect-ratio: 1 / 1; background: #06101b; display: block; height: auto; object-fit: contain; width: 100%; }
.jnw-forecast-map-card > span { align-items: center; background: #081b2d; border-top: 1px solid rgba(255,255,255,.14); color: #fff; display: flex; font-size: .68rem; font-weight: 900; justify-content: center; letter-spacing: .05em; min-height: 2.55rem; padding: .55rem .7rem; position: static; text-transform: uppercase; width: 100%; }
.jnw-forecast-map-controls { align-items: center; display: flex; gap: .75rem; justify-content: center; margin-top: .25rem; }
.jnw-forecast-map-controls > button { align-items: center; background: rgba(17,47,76,.88); border: 1px solid rgba(123,181,220,.35); border-radius: 999px; color: #eaf7ff; cursor: pointer; display: inline-flex; font-size: 1.55rem; height: 2.4rem; justify-content: center; line-height: 1; width: 2.4rem; }
.jnw-forecast-map-controls > button:disabled { cursor: default; opacity: .3; }
.jnw-forecast-map-controls > button:not(:disabled):hover,
.jnw-forecast-map-controls > button:not(:disabled):focus-visible { background: #238bc5; border-color: #77d7ff; outline: 3px solid rgba(83,195,247,.16); }
.jnw-forecast-map-controls > div { align-items: center; display: flex; gap: .45rem; }
.jnw-forecast-map-controls > div button { background: #506b84; border: 0; border-radius: 999px; cursor: pointer; height: .48rem; padding: 0; transition: width .16s ease, background .16s ease; width: .48rem; }
.jnw-forecast-map-controls > div button.is-active { background: #6ed3ff; width: 1.35rem; }
.jnw-forecast-maps-earlier { overflow: hidden; padding: 0; }
.jnw-forecast-maps-earlier > summary { align-items: center; cursor: pointer; display: flex; justify-content: space-between; list-style: none; padding: .9rem 1rem; }
.jnw-forecast-maps-earlier > summary::-webkit-details-marker { display: none; }
.jnw-forecast-maps-earlier > summary span { display: flex; flex-direction: column; gap: .15rem; }
.jnw-forecast-maps-earlier > summary small { color: #72d4ff; font-size: .63rem; font-weight: 950; letter-spacing: .11em; }
.jnw-forecast-maps-earlier > summary strong { color: #f4f9ff; font-size: 1.2rem; }
.jnw-forecast-maps-earlier > summary i { color: #8da5be; font-size: 1.4rem; font-style: normal; transition: transform .18s ease; }
.jnw-forecast-maps-earlier[open] > summary { border-bottom: 1px solid rgba(144,183,218,.13); }
.jnw-forecast-maps-earlier[open] > summary i { transform: rotate(180deg); }
.jnw-forecast-map-earlier-track { display: grid; gap: 1rem; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 1rem; }
.jnw-forecast-map-earlier-track .jnw-forecast-map-card { width: 100%; }
.jnw-forecast-maps-source { color: #93a8bb; font-size: .72rem; font-weight: 720; line-height: 1.55; margin: 0; text-align: center; }
.jnw-forecast-maps-note { background: rgba(4,20,37,.52); border: 1px solid rgba(133,183,218,.16); border-radius: .8rem; overflow: hidden; }
.jnw-forecast-maps-note > summary { align-items: center; color: #b8cad9; cursor: pointer; display: flex; font-size: .72rem; font-weight: 850; justify-content: space-between; list-style: none; padding: .72rem .8rem; }
.jnw-forecast-maps-note > summary::-webkit-details-marker { display: none; }
.jnw-forecast-maps-note > summary i { color: #67cfff; font-size: 1rem; font-style: normal; transition: transform .18s ease; }
.jnw-forecast-maps-note[open] > summary { border-bottom: 1px solid rgba(133,183,218,.14); }
.jnw-forecast-maps-note[open] > summary i { transform: rotate(180deg); }
.jnw-forecast-maps-note .jnw-forecast-maps-source { padding: .8rem; text-align: left; }
.jnw-forecast-map-modal { align-items: center; background: rgba(0,8,19,.92); display: flex; inset: 0; justify-content: center; padding: 1rem; position: fixed; z-index: 100002; }
.jnw-forecast-map-modal[hidden] { display: none; }
.jnw-forecast-map-sheet { background: #061526; border: 1px solid rgba(108,194,240,.42); border-radius: 1rem; box-shadow: 0 2rem 6rem rgba(0,0,0,.65); display: flex; flex-direction: column; max-height: calc(100vh - 2rem); max-width: min(58rem,calc(100vw - 2rem)); overflow: hidden; width: 100%; }
.jnw-forecast-map-sheet > header { align-items: center; background: rgba(7,27,48,.97); border-bottom: 1px solid rgba(139,183,218,.2); display: flex; justify-content: space-between; padding: .8rem 1rem; }
.jnw-forecast-map-sheet > header h2 { font-size: clamp(1rem,3vw,1.45rem); margin: 0; }
.jnw-forecast-map-sheet > header button { align-items: center; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: #fff; cursor: pointer; display: inline-flex; font-size: 1.55rem; height: 2.5rem; justify-content: center; width: 2.5rem; }
.jnw-forecast-map-sheet > div { margin: 0 auto; max-height: calc(100vh - 6rem); max-width: 48rem; overflow: auto; width: 100%; }
.jnw-forecast-map-sheet > div .jnw-forecast-map-image { max-height: calc(100vh - 6rem); }

@media (max-width: 720px) {
  .jnw-forecast-maps .jnw-forecast-maps-heading { align-items: flex-start; flex-direction: column; gap: .35rem; padding: .4rem .15rem 0; }
  .jnw-forecast-maps .jnw-forecast-maps-heading > span { max-width: none; text-align: left; }
  .jnw-map-group-heading { align-items: start; flex-direction: column; gap: .4rem; }
  .jnw-map-group-heading > span { max-width: none; text-align: left; }
  .jnw-storm-alerts .jnw-storm-section-heading { align-items: flex-start; flex-direction: column; }
  .jnw-storm-alerts .jnw-storm-section-actions { justify-content: space-between; width: 100%; }
  .jnw-current-map-group { padding: .75rem; }
  .jnw-forecast-map-track { gap: .75rem; padding: .1rem 0 .5rem; scroll-padding-inline: 0; }
  .jnw-forecast-map-card { flex-basis: 100%; }
  .jnw-forecast-map-earlier-track { display: flex; gap: .8rem; overflow-x: auto; scroll-snap-type: x mandatory; }
  .jnw-forecast-map-earlier-track .jnw-forecast-map-card { flex: 0 0 100%; }
}

@media (min-width: 721px) {
  .jnw-current-map-group .jnw-forecast-map-controls { display: none; }
}

.jnw-storm-section-heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-storm-section-heading h2,
.jnw-storm-mode-guide h2 { font-size: clamp(2rem,6vw,3.25rem); letter-spacing: -.055em; line-height: 1; margin: .3rem 0 0; }
.jnw-storm-section-heading > span { color: #8093aa; font-size: .7rem; font-weight: 780; text-align: right; }
.jnw-storm-section-actions { align-items: center; display: flex; flex: 0 0 auto; gap: .55rem; }
.jnw-storm-sound-settings { background: rgba(78,185,238,.1); border: 1px solid rgba(91,199,249,.35); border-radius: 999px; color: #8bdcff; cursor: pointer; font-size: .67rem; font-weight: 900; min-height: 2.1rem; padding: .48rem .7rem; }
.jnw-storm-sound-settings.is-enabled { background: rgba(78,227,155,.12); border-color: rgba(78,227,155,.38); color: #79ebb3; }
.jnw-storm-sound-settings:hover,
.jnw-storm-sound-settings:focus-visible { border-color: #7edcff; color: #fff; outline: 3px solid rgba(83,195,247,.16); }
.jnw-storm-latest-forecast { display: flex; flex-direction: column; gap: .85rem; }
.jnw-storm-latest-forecast .jnw-storm-section-heading { flex-wrap: wrap; }
.jnw-storm-latest-forecast .jnw-storm-section-heading > a {
  color: #68d3ff;
  font-size: .75rem;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
}
.jnw-storm-latest-forecast .jnw-storm-section-heading > a:hover,
.jnw-storm-latest-forecast .jnw-storm-section-heading > a:focus-visible { color: #fff; text-decoration: underline; }
.jnw-storm-video-shell { background: #020812; border-color: rgba(91,194,255,.28); overflow: hidden; padding: 0; }
.jnw-storm-video-shell iframe { aspect-ratio: 16 / 9; border: 0; display: block; height: auto; width: 100%; }
.jnw-latest-inner { gap: 1rem; max-width: 56rem; padding-top: clamp(1rem,3vw,1.75rem); }
.jnw-latest-player { background: linear-gradient(155deg,rgba(10,43,78,.99),rgba(4,20,40,.99)); border-color: rgba(85,185,255,.32); overflow: hidden; padding: 0; }
.jnw-latest-player-heading { align-items: end; display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) auto; padding: clamp(1.15rem,4vw,1.75rem); }
.jnw-latest-player-heading small,
.jnw-storm-forecast-callout small { color: #75d7ff; font-size: .67rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.jnw-latest-player-heading h2 { font-size: clamp(2.15rem,6vw,3.55rem); letter-spacing: -.06em; line-height: .96; margin: .38rem 0 .65rem; text-wrap: balance; }
.jnw-latest-player-heading p { color: #b9c8da; font-size: clamp(.92rem,2.2vw,1.05rem); line-height: 1.55; margin: 0; max-width: 43rem; }
.jnw-latest-player-heading > a { align-items: center; background: rgba(255,255,255,.06); border: 1px solid rgba(151,181,216,.24); border-radius: .8rem; color: #dce9f7; display: inline-flex; font-size: .78rem; font-weight: 900; justify-content: center; min-height: 2.85rem; padding: .65rem .85rem; text-align: center; text-decoration: none; }
.jnw-latest-player-heading > a:hover,
.jnw-latest-player-heading > a:focus-visible { background: rgba(255,255,255,.11); outline: 3px solid rgba(101,202,255,.22); outline-offset: 2px; }
.jnw-latest-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem; }
.jnw-latest-actions button,
.jnw-latest-actions a { align-items: center; border-radius: .85rem; display: inline-flex; font-size: .82rem; font-weight: 900; justify-content: center; min-height: 3.25rem; padding: .75rem 1rem; text-decoration: none; }
.jnw-latest-actions button { background: #37bdf4; border: 1px solid #75d7ff; color: #031525; cursor: pointer; }
.jnw-latest-actions a { background: rgba(255,255,255,.045); border: 1px solid rgba(151,181,216,.24); color: #dce9f7; }
.jnw-latest-actions button:hover,
.jnw-latest-actions button:focus-visible,
.jnw-latest-actions a:hover,
.jnw-latest-actions a:focus-visible { filter: brightness(1.12); outline: 3px solid rgba(101,202,255,.22); outline-offset: 2px; }

@media (max-width: 520px) {
	.jnw-latest-player-heading { align-items: stretch; grid-template-columns: 1fr; padding: 1.1rem; }
	.jnw-latest-player-heading h2 { font-size: clamp(2rem,10.5vw,2.75rem); }
	.jnw-latest-player-heading > a { width: 100%; }
  .jnw-latest-actions { align-items: stretch; flex-direction: column; }
  .jnw-latest-actions > * { width: 100%; }
}
.jnw-storm-forecast-callout { align-items: center; background: linear-gradient(135deg,rgba(14,49,83,.98),rgba(6,27,51,.98)); border-color: rgba(87,198,255,.27); display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) auto; padding: 1.2rem 1.3rem; }
.jnw-storm-forecast-callout h2 { font-size: clamp(1.65rem,4vw,2.35rem); letter-spacing: -.045em; line-height: 1; margin: .3rem 0 0; }
.jnw-storm-forecast-callout p { color: #9fb1c6; font-size: .82rem; line-height: 1.5; margin: .45rem 0 0; max-width: 42rem; }
.jnw-storm-forecast-callout button,
.jnw-storm-fallback-actions > * { align-items: center; background: #168bcc; border: 1px solid #47bdf8; border-radius: .85rem; color: #fff; cursor: pointer; display: inline-flex; font-size: .8rem; font-weight: 950; justify-content: center; min-height: 3rem; padding: .72rem 1rem; text-align: center; text-decoration: none; }
.jnw-storm-forecast-callout button:hover,
.jnw-storm-forecast-callout button:focus-visible,
.jnw-storm-fallback-actions > *:hover,
.jnw-storm-fallback-actions > *:focus-visible { background: #1d9fe5; outline: 2px solid #8bdcff; outline-offset: 2px; }
.jnw-storm-fallback-actions { display: flex; flex-wrap: wrap; gap: .65rem; justify-content: center; margin-top: 1.15rem; }
.jnw-storm-fallback-actions[hidden] { display: none; }
.jnw-storm-fallback-actions button { font-family: inherit; }
.jnw-secondary-header [data-jnw-storm-refresh].is-loading { animation: jnw-storm-refresh-spin .85s linear infinite; }
@keyframes jnw-storm-refresh-spin { to { transform: rotate(360deg); } }
.jnw-storm-alert-list { display: flex; flex-direction: column; gap: .65rem; margin-top: .85rem; }
.jnw-storm-alert-clear { align-items: center; display: grid; gap: .9rem; grid-template-columns: auto 1fr; padding: 1rem 1.15rem; }
.jnw-storm-alert-clear > span { align-items: center; background: rgba(78,227,155,.12); border: 1px solid rgba(78,227,155,.34); border-radius: 50%; color: #70edb0; display: flex; font-size: 1.1rem; height: 2.8rem; justify-content: center; width: 2.8rem; }
.jnw-storm-alert-clear strong { font-size: 1.05rem; }
.jnw-storm-alert-clear p { color: #a8b8c9; font-size: .88rem; line-height: 1.45; margin: .25rem 0 0; }
.jnw-storm-alert-clear.is-incomplete { border-color: rgba(255,190,105,.34); }
.jnw-storm-alert-clear.is-incomplete > span { background: rgba(255,190,105,.12); border-color: rgba(255,190,105,.35); color: #ffd08b; }
.jnw-storm-alert { align-items: center; border-left: .3rem solid #f5cf55; color: #fff; display: grid; gap: .9rem; grid-template-columns: auto 1fr auto; padding: .95rem 1rem; }
button.jnw-storm-alert { cursor: pointer; font-family: inherit; text-align: left; width: 100%; }
.jnw-storm-alert.is-elevated { border-left-color: #ff983e; }
.jnw-storm-alert.is-flood { border-left-color: var(--jnw-flood-green); }
.jnw-storm-alert.is-active { border-left-color: var(--jnw-warning-red); }
.jnw-storm-alert.is-maine-focus { box-shadow: inset 0 0 0 1px rgba(101,202,255,.18), 0 .55rem 1.4rem rgba(0,8,20,.18); }
.jnw-storm-alert.is-maine-focus small { color: #76cefa; }
.jnw-storm-alert > span { align-items: center; background: rgba(245,207,85,.12); border: 1px solid rgba(245,207,85,.35); border-radius: 50%; color: #ffe27c; display: flex; font-size: 1.05rem; font-weight: 950; height: 2.65rem; justify-content: center; width: 2.65rem; }
.jnw-storm-alert.is-elevated > span { background: rgba(255,152,62,.13); border-color: rgba(255,152,62,.42); color: #ffba79; }
.jnw-storm-alert.is-flood > span { background: rgba(var(--jnw-flood-green-rgb),.16); border-color: rgba(var(--jnw-flood-green-rgb),.58); color: var(--jnw-flood-green-soft); }
.jnw-storm-alert.is-active > span { background: rgba(var(--jnw-warning-red-rgb),.13); border-color: rgba(var(--jnw-warning-red-rgb),.46); color: var(--jnw-warning-red-soft); }
.jnw-storm-alert strong { font-size: 1.08rem; }
.jnw-storm-alert p { color: #bdc9d6; display: -webkit-box; font-size: .88rem; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.45; margin: .25rem 0; overflow: hidden; }
.jnw-storm-alert small { color: #8ea2b8; display: -webkit-box; font-size: .75rem; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.45; overflow: hidden; }
.jnw-storm-alert:hover,
.jnw-storm-alert:focus-visible { border-color: rgba(101,202,255,.5); outline: 3px solid rgba(101,202,255,.2); outline-offset: 2px; }
.jnw-storm-alert-group { border-left: .3rem solid #f5cf55; overflow: hidden; padding: 0; }
.jnw-storm-alert-group.is-active { border-left-color: var(--jnw-warning-red); }
.jnw-storm-alert-group.is-elevated { border-left-color: #ff983e; }
.jnw-storm-alert-group.is-flood { border-left-color: var(--jnw-flood-green); }
.jnw-storm-alert-group > summary { align-items: center; cursor: pointer; display: grid; gap: .9rem; grid-template-columns: auto 1fr auto; list-style: none; min-height: 5.4rem; padding: .9rem 1rem; }
.jnw-storm-alert-group > summary::-webkit-details-marker { display: none; }
.jnw-storm-alert-group > summary:focus-visible { outline: 3px solid rgba(101,202,255,.3); outline-offset: -3px; }
.jnw-storm-alert-group > summary > span { align-items: center; background: rgba(245,207,85,.12); border: 1px solid rgba(245,207,85,.35); border-radius: 50%; color: #ffe27c; display: flex; font-size: 1.05rem; font-weight: 950; height: 2.65rem; justify-content: center; width: 2.65rem; }
.jnw-storm-alert-group.is-elevated > summary > span { background: rgba(255,152,62,.13); border-color: rgba(255,152,62,.42); color: #ffba79; }
.jnw-storm-alert-group.is-flood > summary > span { background: rgba(var(--jnw-flood-green-rgb),.16); border-color: rgba(var(--jnw-flood-green-rgb),.58); color: var(--jnw-flood-green-soft); }
.jnw-storm-alert-group.is-active > summary > span { background: rgba(var(--jnw-warning-red-rgb),.13); border-color: rgba(var(--jnw-warning-red-rgb),.46); color: var(--jnw-warning-red-soft); }
.jnw-storm-alert-group > summary > div { display: flex; flex-direction: column; min-width: 0; }
.jnw-storm-alert-group > summary strong { font-size: 1.08rem; }
.jnw-storm-alert-group > summary small { color: #94a8bd; font-size: .77rem; line-height: 1.4; margin-top: .28rem; }
.jnw-storm-alert-group > summary > :last-child { color: #94a8bd; font-style: normal; transition: transform .18s ease; }
.jnw-storm-alert-group[open] > summary { border-bottom: 1px solid rgba(151,183,222,.14); }
.jnw-storm-alert-group[open] > summary > :last-child { transform: rotate(180deg); }
.jnw-storm-alert-group-body { background: rgba(2,15,30,.32); display: flex; flex-direction: column; gap: .55rem; padding: .7rem; }
.jnw-storm-alert.is-compact { box-shadow: none; padding: .75rem .8rem; }

.jnw-storm-canada { border-top: 1px solid rgba(133,183,218,.18); display: flex; flex-direction: column; gap: .9rem; margin-top: 2rem; padding-top: 2rem; scroll-margin-top: 7rem; }
.jnw-storm-canada .jnw-storm-section-heading > b,
.jnw-storm-canada-province header > b { background: rgba(78,227,155,.12); border: 1px solid rgba(78,227,155,.34); border-radius: 999px; color: #79ebb3; flex: 0 0 auto; font-size: .66rem; font-weight: 950; letter-spacing: .06em; padding: .45rem .65rem; text-transform: uppercase; }
.jnw-storm-canada .jnw-storm-section-heading > b.is-watching,
.jnw-storm-canada-province header > b.is-watching { background: rgba(245,207,85,.12); border-color: rgba(245,207,85,.4); color: #ffe27f; }
.jnw-storm-canada .jnw-storm-section-heading > b.is-elevated,
.jnw-storm-canada-province header > b.is-elevated { background: rgba(255,152,62,.13); border-color: rgba(255,152,62,.42); color: #ffb96f; }
.jnw-storm-canada .jnw-storm-section-heading > b.is-active,
.jnw-storm-canada-province header > b.is-active { background: rgba(var(--jnw-warning-red-rgb),.14); border-color: rgba(var(--jnw-warning-red-rgb),.5); color: var(--jnw-warning-red-soft); }
.jnw-storm-canada .jnw-storm-section-heading > b.is-unavailable,
.jnw-storm-canada-province header > b.is-unavailable { background: rgba(165,180,197,.1); border-color: rgba(165,180,197,.3); color: #c6d1dd; }
.jnw-storm-canada-intro { color: #9eb0c2; font-size: .82rem; line-height: 1.55; margin: 0; max-width: 54rem; }
.jnw-storm-canada-intro span { color: #c7d6e4; font-weight: 760; }
.jnw-storm-canada-map { background: linear-gradient(150deg,rgba(14,53,82,.96),rgba(4,20,37,.98)); overflow: hidden; padding: 0; }
.jnw-storm-canada-map-legend { align-items: center; background: rgba(2,16,30,.58); border-bottom: 1px solid rgba(133,183,218,.16); display: grid; gap: .55rem .8rem; grid-template-columns: auto repeat(4,minmax(0,1fr)); padding: .75rem .85rem; }
.jnw-storm-canada-map-legend strong { color: #d9e8f3; font-size: .72rem; font-weight: 950; }
.jnw-storm-canada-map-legend span { align-items: center; color: #aebdca; display: flex; font-size: .66rem; font-weight: 800; gap: .35rem; line-height: 1.25; }
.jnw-storm-canada-map-legend i { background: #294d6c; border: 1px solid rgba(255,255,255,.45); border-radius: .22rem; flex: 0 0 auto; height: .82rem; width: .82rem; }
.jnw-storm-canada-map-legend i.is-watching { background: #f5cf55; }
.jnw-storm-canada-map-legend i.is-elevated { background: #ff983e; }
.jnw-storm-canada-map-legend i.is-active { background: var(--jnw-warning-red); }
.jnw-storm-canada-map-stage { align-items: center; background: radial-gradient(circle at 50% 44%,rgba(44,111,151,.24),transparent 62%); display: flex; justify-content: center; min-height: 17rem; padding: 1rem; }
.jnw-storm-canada-map-svg { display: block; height: auto; max-height: 28rem; width: min(100%,42rem); }
.jnw-storm-canada-map-province { cursor: pointer; fill: #294d6c; shape-rendering: geometricPrecision; stroke: rgba(232,247,255,.95); stroke-linejoin: round; stroke-width: 1.15; transition: fill .18s ease, filter .18s ease, opacity .18s ease, stroke-width .18s ease; vector-effect: non-scaling-stroke; }
.jnw-storm-canada-map-province.is-watching { fill: #f5cf55; }
.jnw-storm-canada-map-province.is-elevated { fill: #ff983e; }
.jnw-storm-canada-map-province.is-active { fill: var(--jnw-warning-red); }
.jnw-storm-canada-map-province.is-unavailable { fill: #647181; opacity: .72; }
.jnw-storm-canada-map-province.is-selected { filter: drop-shadow(0 0 .28rem rgba(104,211,255,.8)); stroke: #fff; stroke-width: 2.35; }
.jnw-storm-canada-map-province:hover,
.jnw-storm-canada-map-province:focus-visible { filter: drop-shadow(0 0 .38rem rgba(104,211,255,.95)); outline: none; stroke: #fff; stroke-width: 2.7; }
.jnw-storm-canada-map-labels { fill: #fff; font-family: Arial,Helvetica,sans-serif; font-size: 4px; font-weight: 950; paint-order: stroke fill; pointer-events: none; stroke: rgba(3,19,33,.9); stroke-width: 1.1px; text-anchor: middle; }
.jnw-storm-canada-map figcaption { background: rgba(2,16,30,.52); border-top: 1px solid rgba(133,183,218,.14); color: #92a7b9; font-size: .68rem; font-weight: 720; line-height: 1.5; padding: .72rem .85rem; text-align: center; }
.jnw-storm-canada-map figcaption a { color: #72d4ff; }
.jnw-storm-canada-tabs { display: grid; gap: .7rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.jnw-storm-canada-tabs button { align-items: center; background: rgba(16,45,70,.82); border: 1px solid rgba(111,179,218,.28); border-radius: .85rem; color: #d9e7f2; cursor: pointer; display: flex; font-size: .82rem; font-weight: 900; justify-content: space-between; min-height: 3.25rem; padding: .65rem .75rem; text-align: left; }
.jnw-storm-canada-tabs button b { background: rgba(78,227,155,.12); border: 1px solid rgba(78,227,155,.3); border-radius: 999px; color: #79ebb3; font-size: .63rem; letter-spacing: .04em; padding: .35rem .5rem; text-transform: uppercase; }
.jnw-storm-canada-tabs button.is-watching b { background: rgba(245,207,85,.12); border-color: rgba(245,207,85,.4); color: #ffe27f; }
.jnw-storm-canada-tabs button.is-elevated b { background: rgba(255,152,62,.13); border-color: rgba(255,152,62,.42); color: #ffb96f; }
.jnw-storm-canada-tabs button.is-active b { background: rgba(var(--jnw-warning-red-rgb),.14); border-color: rgba(var(--jnw-warning-red-rgb),.5); color: var(--jnw-warning-red-soft); }
.jnw-storm-canada-tabs button.is-unavailable b { background: rgba(165,180,197,.1); border-color: rgba(165,180,197,.3); color: #c6d1dd; }
.jnw-storm-canada-tabs button.selected { background: #185b83; border-color: #6ed3ff; box-shadow: inset 0 0 0 1px rgba(110,211,255,.24); color: #fff; }
.jnw-storm-canada-tabs button:hover,
.jnw-storm-canada-tabs button:focus-visible { border-color: #6ed3ff; outline: 3px solid rgba(83,195,247,.16); }
.jnw-storm-canada-panels { min-width: 0; }
.jnw-storm-canada-province { border-top: .22rem solid #59c6ff; display: flex; flex-direction: column; min-width: 0; padding: 1rem; }
.jnw-storm-canada-province[hidden] { display: none; }
.jnw-storm-canada-province.is-quiet { border-top-color: #4ee39b; }
.jnw-storm-canada-province.is-watching { border-top-color: #f5cf55; }
.jnw-storm-canada-province.is-elevated { border-top-color: #ff983e; }
.jnw-storm-canada-province.is-active { border-top-color: var(--jnw-warning-red); }
.jnw-storm-canada-province.is-unavailable { border-top-color: #a5b4c5; }
.jnw-storm-canada-province > header { align-items: center; display: grid; gap: .7rem; grid-template-columns: auto minmax(0,1fr) auto; }
.jnw-storm-canada-code { align-items: center; background: rgba(89,198,255,.11); border: 1px solid rgba(89,198,255,.3); border-radius: .72rem; color: #8edcff; display: inline-flex; font-size: .82rem; font-weight: 1000; height: 2.8rem; justify-content: center; letter-spacing: .06em; width: 2.8rem; }
.jnw-storm-canada-province > header > div { display: flex; flex-direction: column; min-width: 0; }
.jnw-storm-canada-province > header small { color: #75d7ff; font-size: .61rem; font-weight: 950; letter-spacing: .11em; }
.jnw-storm-canada-province > header strong { color: #f5f9ff; font-size: 1rem; line-height: 1.25; margin-top: .16rem; }
.jnw-storm-canada-province > p { color: #9dafc1; font-size: .78rem; line-height: 1.5; margin: .8rem 0 0; }
.jnw-storm-canada-alert-list { display: flex; flex-direction: column; gap: .55rem; margin-top: .75rem; }
.jnw-storm-canada-alert-list:empty { display: none; }
.jnw-storm-canada-province > a { align-self: flex-start; color: #74d5ff; font-size: .74rem; font-weight: 900; margin-top: .85rem; text-decoration: none; }
.jnw-storm-canada-province > a:hover,
.jnw-storm-canada-province > a:focus-visible { color: #fff; text-decoration: underline; }
@media (max-width: 720px) {
  .jnw-storm-canada .jnw-storm-section-heading { align-items: flex-start; flex-direction: column; }
  .jnw-storm-canada-map-legend { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .jnw-storm-canada-map-legend strong { grid-column: 1 / -1; }
  .jnw-storm-canada-map-stage { min-height: 13rem; padding: .65rem; }
  .jnw-storm-canada-tabs button { align-items: flex-start; flex-direction: column; gap: .38rem; }
}

.jnw-storm-alert-modal {
  align-items: center;
  background: rgba(1,9,20,.88);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 1rem;
  position: fixed;
  z-index: 100001;
}
.jnw-storm-alert-sheet {
  background: linear-gradient(155deg,#102640,#06182d 72%);
  border: 1px solid rgba(159,184,218,.25);
  border-top: .35rem solid #f5cf55;
  border-radius: 1.7rem;
  box-shadow: 0 30px 100px rgba(0,0,0,.65);
  color: #f4f8ff;
  display: flex;
  flex-direction: column;
  max-height: min(92vh,58rem);
  max-width: 48rem;
  overflow: hidden;
  width: 100%;
}
.jnw-storm-alert-sheet.is-active { border-top-color: var(--jnw-warning-red); }
.jnw-storm-alert-sheet.is-elevated { border-top-color: #ff983e; }
.jnw-storm-alert-sheet.is-flood { border-top-color: var(--jnw-flood-green); }
.jnw-storm-alert-sheet:focus { outline: none; }
.jnw-storm-alert-sheet > header { align-items: start; border-bottom: 1px solid rgba(159,184,218,.16); display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) auto; padding: 1.25rem 1.35rem; }
.jnw-storm-alert-sheet > header small { color: #65caff; font-size: .68rem; font-weight: 950; letter-spacing: .11em; }
.jnw-storm-alert-sheet > header h2 { font-size: clamp(1.8rem,6vw,3rem); letter-spacing: -.05em; line-height: 1; margin: .4rem 0 0; }
.jnw-storm-alert-sheet > header button { align-items: center; background: rgba(255,255,255,.07); border: 1px solid rgba(159,184,218,.18); border-radius: 50%; color: #fff; cursor: pointer; display: flex; font-size: 1.65rem; height: 2.7rem; justify-content: center; width: 2.7rem; }
.jnw-storm-alert-sheet > header button:hover,
.jnw-storm-alert-sheet > header button:focus-visible { background: rgba(255,255,255,.13); outline: 2px solid #65caff; outline-offset: 2px; }
.jnw-storm-alert-sheet-scroll { overflow-y: auto; overscroll-behavior: contain; padding: 1.2rem 1.35rem 1.4rem; }
.jnw-storm-alert-detail-headline { color: #d8e2ee; font-size: 1rem; font-weight: 760; line-height: 1.55; margin: 0; }
.jnw-storm-alert-context { border-top: 0 !important; padding: 0 0 1rem !important; }
.jnw-storm-alert-context > div { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .55rem; }
.jnw-storm-alert-context button { background: rgba(255,255,255,.055); border: 1px solid rgba(151,183,222,.22); border-radius: 999px; color: #d7e3ef; cursor: pointer; font-size: .75rem; font-weight: 850; padding: .5rem .7rem; }
.jnw-storm-alert-context button.is-watching { border-color: rgba(245,207,85,.5); }
.jnw-storm-alert-context button.is-elevated { border-color: rgba(255,152,62,.55); }
.jnw-storm-alert-context button.is-flood { border-color: rgba(var(--jnw-flood-green-rgb),.7); }
.jnw-storm-alert-context button.is-active { border-color: rgba(var(--jnw-warning-red-rgb),.68); }
.jnw-storm-alert-context button.selected { background: #2b8ed8; border-color: #75d7ff; color: #fff; }
.jnw-storm-alert-context button:focus-visible { outline: 2px solid #8bdcff; outline-offset: 2px; }
.jnw-storm-alert-detail-badges { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .9rem; }
.jnw-storm-alert-detail-badges span { background: rgba(101,202,255,.1); border: 1px solid rgba(101,202,255,.28); border-radius: 999px; color: #9edcff; font-size: .67rem; font-weight: 900; padding: .42rem .65rem; text-transform: uppercase; }
.jnw-storm-alert-detail-meta { display: grid; gap: .6rem; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 1.15rem 0; }
.jnw-storm-alert-detail-meta > div { background: rgba(3,16,32,.45); border: 1px solid rgba(159,184,218,.13); border-radius: .85rem; min-width: 0; padding: .8rem; }
.jnw-storm-alert-detail-meta dt,
.jnw-storm-alert-sheet-scroll section > small { color: #7e92aa; font-size: .61rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.jnw-storm-alert-detail-meta dd { color: #eef4fb; font-size: .82rem; font-weight: 820; margin: .25rem 0 0; }
.jnw-storm-alert-sheet-scroll section { border-top: 1px solid rgba(159,184,218,.14); padding: 1rem 0 .1rem; }
.jnw-storm-alert-sheet-scroll section p { color: #c3cfdd; line-height: 1.62; margin: .42rem 0 .8rem; white-space: pre-line; }
.jnw-storm-alert-sheet-scroll section:first-of-type p { color: #edf3fa; font-weight: 760; }
.jnw-storm-alert-detail-sender { color: #788ba3; font-size: .72rem; margin: .9rem 0 0; }
.jnw-storm-alert-sheet > footer { background: #061427; border-top: 1px solid rgba(159,184,218,.16); display: grid; gap: .65rem; grid-template-columns: 1fr 1fr; padding: 1rem 1.35rem max(1rem,env(safe-area-inset-bottom)); }
.jnw-storm-alert-sheet > footer a { align-items: center; background: #2a4569; border: 1px solid rgba(151,183,222,.25); border-radius: .85rem; color: #f3f7ff; display: flex; font-size: .78rem; font-weight: 900; justify-content: center; min-height: 3rem; padding: .75rem; text-align: center; }
.jnw-storm-alert-sheet > footer a:first-child { background: #2b8ed8; border-color: #65b9f5; }
.jnw-storm-alert-sheet > footer a:hover,
.jnw-storm-alert-sheet > footer a:focus-visible { outline: 2px solid #9ddcff; outline-offset: 2px; }

.jnw-storm-tracker-grid { align-items: start; display: grid; gap: .85rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: .9rem; }
.jnw-storm-tracker { border-top: .26rem solid #4ee39b; display: flex; flex-direction: column; min-height: 18.5rem; padding: 1.15rem; }
.jnw-storm-tracker[hidden] { display: none !important; }
.jnw-storm-tracker.is-watching { border-top-color: #f5cf55; }
.jnw-storm-tracker.is-elevated { border-top-color: #ff983e; }
.jnw-storm-tracker.is-flood { border-top-color: var(--jnw-flood-green); box-shadow: inset 0 0 0 1px rgba(var(--jnw-flood-green-rgb),.1); }
.jnw-storm-tracker.is-active { border-top-color: var(--jnw-warning-red); box-shadow: inset 0 0 0 1px rgba(var(--jnw-warning-red-rgb),.12); }
.jnw-storm-tracker.is-unavailable { border-top-color: #67798f; opacity: .78; }
.jnw-storm-tracker header { align-items: start; display: grid; gap: .75rem; grid-template-columns: auto 1fr auto; }
.jnw-storm-tracker header > div > small { color: #93a6ba; display: block; font-size: .69rem; font-weight: 950; letter-spacing: .1em; line-height: 1.35; margin-top: .35rem; }
.jnw-storm-tracker h3 { font-size: clamp(1.55rem,3.4vw,2.15rem); letter-spacing: -.045em; line-height: .96; margin: .08rem 0 0; text-wrap: balance; }
.jnw-storm-tracker-icon { align-items: center; background: rgba(87,198,255,.09); border: 1px solid rgba(87,198,255,.22); border-radius: .95rem; color: #6fd1ff; display: flex; height: 3.4rem; justify-content: center; width: 3.4rem; }
.jnw-storm-tracker-icon svg { fill: none; height: 2.35rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.2; width: 2.35rem; }
.jnw-storm-tracker-icon.is-heat { color: #ffbc55; }
.jnw-storm-tracker-icon.is-severe { color: #d7a5ff; }
.jnw-storm-tracker-icon.is-flood { color: #5fc7ff; }
.jnw-storm-tracker-icon.is-drought { color: #f5a85c; }
.jnw-storm-tracker-icon.is-humidity { color: #68d8df; }
.jnw-storm-tracker-icon.is-air { color: #93d4ff; }
.jnw-storm-tracker-icon.is-wind { color: #9cdcff; }
.jnw-storm-tracker-icon.is-winter { color: #b9dcff; }
.jnw-storm-tracker-icon.is-coastal { color: #61d6ff; }
.jnw-storm-tracker-icon.is-fire { color: #ff9b61; }
.jnw-storm-tracker > strong { font-size: clamp(1.45rem,4vw,2.05rem); letter-spacing: -.035em; line-height: 1.05; margin-top: 1.35rem; }
.jnw-storm-tracker > p { color: #b7c5d3; font-size: .95rem; line-height: 1.52; margin: .55rem 0 0; }
.jnw-storm-tracker > small { color: #90a3b8; font-size: .78rem; line-height: 1.45; margin-top: .55rem; }
.jnw-storm-wbgt { background: linear-gradient(135deg,rgba(255,184,76,.1),rgba(255,255,255,.025)); border: 1px solid rgba(255,188,85,.28); border-left: .25rem solid #4ee39b; border-radius: .9rem; display: flex; flex-direction: column; margin-top: 1rem; padding: .85rem .9rem; }
.jnw-storm-wbgt.is-watching { border-left-color: #f5cf55; }
.jnw-storm-wbgt.is-elevated { border-left-color: #ff983e; }
.jnw-storm-wbgt.is-unavailable { border-left-color: #67798f; }
.jnw-storm-wbgt > small:first-child { color: #ffca72; font-size: .7rem; font-weight: 950; letter-spacing: .09em; line-height: 1.35; }
.jnw-storm-wbgt > strong { font-size: 1.22rem; letter-spacing: -.025em; line-height: 1.1; margin-top: .38rem; }
.jnw-storm-wbgt > b { color: #f2d59b; font-size: .78rem; line-height: 1.35; margin-top: .28rem; }
.jnw-storm-wbgt > p { color: #b7c5d3; font-size: .8rem; line-height: 1.45; margin: .48rem 0 0; }
.jnw-storm-wbgt > span { color: #95a7ba; font-size: .75rem; line-height: 1.45; margin-top: .4rem; }
.jnw-storm-tracker > a { color: #62caff; font-size: .73rem; font-weight: 900; margin-top: auto; padding-top: 1.1rem; width: max-content; }
.jnw-storm-tracker-links { align-items: stretch; display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; padding-top: 1.1rem; }
.jnw-storm-tracker-links a { align-items: center; background: rgba(76,174,231,.08); border: 1px solid rgba(98,202,255,.22); border-radius: .7rem; color: #74d0fa; display: inline-flex; flex: 1 1 9.5rem; font-size: .78rem; font-weight: 900; justify-content: center; line-height: 1.25; min-height: 2.8rem; padding: .55rem .65rem; text-align: center; text-decoration: none; }
.jnw-storm-tracker > a:hover,
.jnw-storm-tracker > a:focus-visible,
.jnw-storm-tracker-links a:hover,
.jnw-storm-tracker-links a:focus-visible { background: rgba(76,174,231,.16); color: #d8f4ff; outline: 2px solid #74d0fa; outline-offset: 2px; text-decoration: none; }
.jnw-storm-power { align-items: center; display: grid; gap: 1rem; grid-template-columns: auto minmax(0,1fr) auto; margin-top: 1rem; padding: 1.15rem; }
.jnw-storm-power-icon { align-items: center; background: rgba(87,198,255,.1); border: 1px solid rgba(87,198,255,.25); border-radius: .95rem; color: #6fd1ff; display: flex; height: 3.6rem; justify-content: center; width: 3.6rem; }
.jnw-storm-power-icon svg { fill: none; height: 2.25rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.25; width: 2.25rem; }
.jnw-storm-power > div > small { color: #6fd1ff; font-size: .68rem; font-weight: 950; letter-spacing: .1em; }
.jnw-storm-power h2 { font-size: clamp(1.25rem,3vw,1.65rem); letter-spacing: -.03em; margin: .2rem 0 0; }
.jnw-storm-power p { color: #a8b7c9; font-size: .88rem; line-height: 1.5; margin: .35rem 0 0; }
.jnw-storm-power > div > span { color: #7488a0; display: block; font-size: .7rem; margin-top: .35rem; }
.jnw-storm-power > a { background: #168bcc; border: 1px solid #35b8ff; border-radius: .8rem; color: #fff; font-size: .78rem; font-weight: 950; padding: .72rem .9rem; text-align: center; text-decoration: none; white-space: nowrap; }
.jnw-storm-power > a:hover,
.jnw-storm-power > a:focus-visible { background: #1d9fe5; outline: 2px solid #8bdcff; outline-offset: 2px; }

.jnw-storm-mode-guide { overflow: hidden; padding: 0; }
.jnw-storm-mode-guide > summary { align-items: center; cursor: pointer; display: flex; justify-content: space-between; list-style: none; min-height: 4.5rem; padding: .9rem 1rem; }
.jnw-storm-mode-guide > summary::-webkit-details-marker { display: none; }
.jnw-storm-mode-guide > summary span { display: flex; flex-direction: column; }
.jnw-storm-mode-guide > summary small { color: #65caff; font-size: .7rem; font-weight: 950; letter-spacing: .1em; }
.jnw-storm-mode-guide > summary strong { font-size: 1rem; margin-top: .25rem; }
.jnw-storm-mode-guide > summary i { color: #8da5be; font-size: 1.4rem; font-style: normal; transition: transform .18s ease; }
.jnw-storm-mode-guide[open] > summary { border-bottom: 1px solid rgba(146,177,211,.14); }
.jnw-storm-mode-guide[open] > summary i { transform: rotate(180deg); }
.jnw-storm-mode-guide ol { display: grid; gap: .55rem; grid-template-columns: repeat(4,minmax(0,1fr)); list-style: none; margin: 0; padding: 0; }
.jnw-storm-mode-guide[open] ol { padding: 1rem; }
.jnw-storm-mode-guide li { background: rgba(255,255,255,.04); border: 1px solid rgba(146,177,211,.16); border-radius: .8rem; display: flex; flex-direction: column; min-height: 5rem; padding: .75rem; }
.jnw-storm-mode-guide li:nth-child(1) { border-top: .2rem solid #4ee39b; }
.jnw-storm-mode-guide li:nth-child(2) { border-top: .2rem solid #f5cf55; }
.jnw-storm-mode-guide li:nth-child(3) { border-top: .2rem solid #ff983e; }
.jnw-storm-mode-guide li:nth-child(4) { border-top: .2rem solid var(--jnw-warning-red); }
.jnw-storm-mode-guide li b { font-size: .82rem; }
.jnw-storm-mode-guide li span { color: #8496aa; font-size: .63rem; line-height: 1.35; margin-top: .28rem; }
.jnw-storm-source { color: #71849b; font-size: .68rem; line-height: 1.55; margin: -.65rem auto 0; max-width: 58rem; text-align: center; }

.jnw-climate-controls { align-items: center; display: grid; gap: 1rem; grid-template-columns: 1fr auto 1fr; padding: 1.1rem; }
.jnw-climate-controls label { background: rgba(255,255,255,.045); border: 1px solid rgba(163,187,218,.23); border-radius: 1.15rem; display: flex; flex-direction: column; min-width: 0; padding: .65rem .8rem; }
.jnw-climate-controls label span { color: #aeb9c8; font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.jnw-climate-controls select { appearance: none; background: transparent; border: 0; color: white; cursor: pointer; font-size: 1.08rem; font-weight: 900; margin-top: .18rem; min-width: 0; outline: 0; width: 100%; }
.jnw-climate-controls option { background: #13263f; color: white; }
.jnw-climate-controls > b { color: #a6b4c7; font-size: 1.5rem; }
.jnw-climate-placeholder { min-height: 15rem; }
.jnw-climate-live { display: flex; flex-direction: column; gap: 1.2rem; }
.jnw-climate-intro { display: grid; gap: .8rem; grid-template-columns: 1fr auto; padding: 1.35rem; }
.jnw-climate-intro h2 { font-size: 2.2rem; letter-spacing: -.045em; margin: 0; }
.jnw-climate-intro p { color: #9eabc0; font-size: 1rem; font-weight: 700; line-height: 1.5; margin: .45rem 0 0; }
.jnw-climate-intro p small { color: #8d9db1; }
.jnw-climate-intro button { align-self: start; background: rgba(255,255,255,.07); border: 0; border-radius: 1rem; color: white; cursor: pointer; font-weight: 900; padding: .85rem 1rem; }
.jnw-climate-intro > strong { font-size: 1.45rem; grid-column: 1 / -1; margin-top: 1rem; }
.jnw-climate-context { overflow: hidden; padding: 1.35rem; text-align: center; }
.jnw-climate-context > small { color: #bdc7d5; font-size: .78rem; font-weight: 950; letter-spacing: .12em; }
.jnw-climate-current { align-items: baseline; display: flex; gap: .8rem; justify-content: center; margin: 1.1rem 0; }
.jnw-climate-current span { color: #b0bdcf; font-size: clamp(2.2rem, 8vw, 4.3rem); font-weight: 900; }
.jnw-climate-current strong { font-size: clamp(3.8rem, 15vw, 7.4rem); letter-spacing: -.075em; line-height: .9; }
.jnw-climate-rank { background: rgba(255,255,255,.055); border: 1px solid rgba(166,190,221,.18); border-radius: 999px; color: #adbacb; font-size: clamp(1.1rem, 4vw, 1.65rem); font-weight: 850; margin: 0 auto; max-width: 43rem; padding: .85rem 1rem; }
.jnw-climate-rank b { color: #ff6f7e; }
.jnw-climate-rank strong { color: #aab7ca; }
.jnw-climate-comparisons { display: grid; gap: .8rem; grid-template-columns: 1fr 1fr; margin-top: 1.2rem; }
.jnw-climate-comparisons > span { background: rgba(255,255,255,.055); border: 1px solid rgba(161,185,215,.2); border-radius: 1rem; display: flex; flex-direction: column; padding: 1rem; }
.jnw-climate-comparisons small { color: #c1cad6; font-size: .74rem; font-weight: 950; letter-spacing: .08em; }
.jnw-climate-comparisons strong { font-size: 2.4rem; margin-top: .4rem; }
.jnw-climate-comparisons b { color: #ff9d22; font-size: 1rem; margin-top: .2rem; }
.jnw-climate-records { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.jnw-climate-list { overflow: hidden; }
.jnw-climate-list h3 { color: #ff7685; font-size: 1.7rem; letter-spacing: -.035em; margin: 0; padding: 1.2rem; }
.jnw-climate-list.is-low h3 { color: #68a8ff; }
.jnw-climate-list ol { list-style: none; margin: 0; padding: 0; }
.jnw-climate-list li { align-items: center; border-top: 1px solid rgba(158,181,211,.12); display: grid; gap: .65rem; grid-template-columns: 2rem 1fr auto; min-height: 4.7rem; padding: .8rem 1.15rem; }
.jnw-climate-list li b { color: #ff6679; font-size: 1.2rem; }
.jnw-climate-list.is-low li b { color: #68a8ff; }
.jnw-climate-list li span { color: #a9b5c6; font-size: 1.15rem; font-weight: 850; }
.jnw-climate-list li strong { color: #ffc4b5; font-size: 1.35rem; }
.jnw-climate-list.is-low li strong { color: #a6d3ff; }
.jnw-climate-source,
.jnw-tropical-source { color: #7f90a7; font-size: .72rem; line-height: 1.55; margin: 0; text-align: center; }

.jnw-tropical-placeholder { min-height: 16rem; }
.jnw-tropical-live { display: flex; flex-direction: column; gap: 1.4rem; }
.jnw-tropical-summary { align-items: center; display: grid; gap: 1.2rem; grid-template-columns: auto auto 1fr; padding: 1.35rem; }
.jnw-cyclone-symbol { align-items: center; background: rgba(65,190,242,.1); border: 3px solid rgba(79,202,255,.42); border-radius: 50%; color: #51d7ff; display: inline-flex; font-size: 2.2rem; height: 4.5rem; justify-content: center; width: 4.5rem; }
.jnw-tropical-summary > strong { font-size: 5.6rem; letter-spacing: -.07em; line-height: .9; }
.jnw-tropical-summary h2 { font-size: 1.8rem; letter-spacing: -.035em; margin: 0; }
.jnw-tropical-summary p { color: #9aa9bc; font-size: 1.1rem; font-weight: 750; margin: .35rem 0 0; }
.jnw-tropical-section-heading { align-items: baseline; display: flex; justify-content: space-between; }
.jnw-tropical-section-heading h2,
.jnw-tropical-storms > h2,
.jnw-tropical-headlines > h2,
.jnw-tropical-outlook > h2,
.jnw-tropical-explore > h2 { font-size: clamp(2rem, 7vw, 3.1rem); letter-spacing: -.055em; margin: 0 0 .75rem; }
.jnw-tropical-section-heading small { color: #8d9cb0; font-weight: 800; }
.jnw-tropical-map { aspect-ratio: 4 / 3; background: #78abd1; border: 1px solid rgba(147,190,230,.2); border-radius: 1.65rem; min-height: 20rem; overflow: hidden; padding: 0; position: relative; }
.jnw-tropical-map-link { display: block; height: 100%; width: 100%; }
.jnw-tropical-map img { background: #78abd1; display: block; height: 100%; object-fit: contain; transition: opacity .18s ease; width: 100%; }
.jnw-tropical-map.is-loading img { opacity: .48; }
.jnw-tropical-map-loading { align-items: center; background: rgba(5,18,35,.56); display: flex; flex-direction: column; gap: .7rem; inset: 0; justify-content: center; pointer-events: none; position: absolute; z-index: 2; }
.jnw-tropical-map-loading[hidden] { display: none; }
.jnw-tropical-map-loading span { animation: jnw-tropical-spin .9s linear infinite; border: 3px solid rgba(255,255,255,.25); border-radius: 50%; border-top-color: #55e7ff; height: 2.25rem; width: 2.25rem; }
.jnw-tropical-map-loading strong { color: #f3f8ff; font-size: .9rem; }
@keyframes jnw-tropical-spin { to { transform: rotate(360deg); } }
.jnw-tropical-map-fallback { align-items: center; background: #102744; color: #c2cede; flex-direction: column; gap: .75rem; inset: 0; justify-content: center; padding: 2rem 2rem 6rem; position: absolute; text-align: center; z-index: 3; }
.jnw-tropical-map-fallback:not([hidden]) { display: flex; }
.jnw-tropical-map-fallback a { background: #2a4569; border-radius: .85rem; color: #fff; font-weight: 900; padding: .75rem 1rem; }
.jnw-tropical-map-badge { background: rgba(5,20,39,.84); border: 1px solid rgba(155,192,230,.24); border-radius: .8rem; display: flex; flex-direction: column; left: .9rem; padding: .5rem .7rem; pointer-events: none; position: absolute; top: .9rem; z-index: 4; }
.jnw-tropical-map-badge span { color: #fff; font-size: .88rem; font-weight: 950; }
.jnw-tropical-map-badge small { color: #a7b7ca; font-size: .58rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.jnw-tropical-basin-tabs { backdrop-filter: blur(14px); background: rgba(5,18,36,.91); border: 1px solid rgba(166,196,231,.14); border-radius: 1.15rem; bottom: .9rem; box-shadow: 0 .55rem 1.3rem rgba(0,8,22,.4); display: grid; gap: .25rem; grid-template-columns: repeat(3,1fr); left: .9rem; padding: .3rem; position: absolute; right: .9rem; z-index: 5; }
.jnw-tropical-basin-tabs button { align-items: center; background: transparent; border: 0; border-radius: .9rem; color: #aebaca; cursor: pointer; display: flex; font-size: clamp(.78rem, 2.7vw, 1.05rem); font-weight: 950; justify-content: center; min-height: 3.55rem; padding: .75rem .35rem; transition: background .16s ease, color .16s ease, transform .16s ease; white-space: nowrap; }
.jnw-tropical-basin-tabs button:hover { background: rgba(50,77,115,.55); color: #fff; }
.jnw-tropical-basin-tabs button:focus-visible { outline: 3px solid #58e5ff; outline-offset: 2px; }
.jnw-tropical-basin-tabs button:active { transform: scale(.98); }
.jnw-tropical-basin-tabs button.selected { background: #2d456b; box-shadow: inset 0 -3px 0 #0b8fe5, 0 .2rem .65rem rgba(0,8,22,.32); color: white; }
.jnw-tropical-map-help { color: #8394aa; font-size: .72rem; font-weight: 750; line-height: 1.45; margin: .55rem .25rem 0; }
.jnw-tropical-storms > div,
.jnw-tropical-headlines > div,
.jnw-tropical-outlook > div { display: flex; flex-direction: column; gap: 1rem; }
.jnw-tropical-storm-card { padding: 1.25rem; }
.jnw-tropical-storm-heading { align-items: center; display: grid; gap: 1rem; grid-template-columns: auto 1fr; }
.jnw-tropical-storm-heading h3 { font-size: 1.75rem; letter-spacing: -.035em; margin: 0; }
.jnw-tropical-storm-heading p { color: #9ba9bc; font-weight: 750; margin: .2rem 0 0; }
.jnw-tropical-storm-stats { display: grid; gap: .7rem; grid-template-columns: repeat(3,1fr); margin-top: 1rem; }
.jnw-tropical-storm-stats span { background: rgba(2,13,28,.45); border-radius: .85rem; display: flex; flex-direction: column; min-width: 0; padding: .8rem; }
.jnw-tropical-storm-stats strong { font-size: 1.45rem; overflow-wrap: anywhere; }
.jnw-tropical-storm-stats small { color: #9eaec2; font-size: .72rem; font-weight: 900; margin-top: .2rem; }
.jnw-tropical-storm-links { display: grid; gap: .65rem; grid-template-columns: repeat(3,1fr); margin-top: .9rem; }
.jnw-tropical-storm-links a { background: #294264; border: 1px solid rgba(151,183,222,.25); border-radius: .85rem; color: #f3f7ff; font-weight: 900; padding: .78rem; text-align: center; }
.jnw-tropical-storm-updated { color: #8a99ae; display: block; margin-top: .75rem; }
.jnw-tropical-quiet { color: #b7c3d2; font-size: 1.05rem; padding: 1.5rem; }
.jnw-tropical-headlines > div { flex-direction: row; overflow-x: auto; padding-bottom: .25rem; scrollbar-width: none; }
.jnw-tropical-headlines > div::-webkit-scrollbar { display: none; }
.jnw-tropical-headlines a,
.jnw-tropical-headlines span { background: #253c5f; border: 1px solid rgba(155,183,218,.25); border-radius: 999px; color: #f1f5fb; flex: 0 0 auto; font-size: .9rem; font-weight: 850; max-width: 23rem; padding: .8rem 1rem; }
.jnw-tropical-outlook-card { align-items: center; display: grid; gap: 1rem; grid-template-columns: auto 1fr; padding: 1.15rem; }
.jnw-tropical-outlook-card > span { align-items: center; border: 3px solid #35c96b; border-radius: 50%; color: #35d778; display: flex; font-size: 1.65rem; height: 3.6rem; justify-content: center; width: 3.6rem; }
.jnw-tropical-outlook-card.is-active { border-color: #4feaff; box-shadow: inset 0 0 0 2px #4feaff; }
.jnw-tropical-outlook-card.is-active > span { border-color: #4feaff; color: #4feaff; }
.jnw-tropical-outlook-card h3 { font-size: 1.65rem; margin: 0; }
.jnw-tropical-outlook-card p { color: #c0cad7; font-size: 1.15rem; font-weight: 750; margin: .2rem 0; }
.jnw-tropical-outlook-card small { color: #4ec7ff; font-weight: 850; }
.jnw-tropical-explore > div { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.jnw-tropical-explore a { border: 1px solid rgba(140,183,226,.28); border-radius: 1.35rem; display: flex; flex-direction: column; min-height: 12rem; padding: 1.35rem; }
.jnw-tropical-explore a.is-rip { background: linear-gradient(145deg,#114a69,#10334d); }
.jnw-tropical-explore a.is-jtwc { background: linear-gradient(145deg,#43204e,#291430); }
.jnw-tropical-explore a > span { color: #55c9ff; font-size: 2.2rem; }
.jnw-tropical-explore a strong { font-size: 1.7rem; margin-top: 1.4rem; }
.jnw-tropical-explore a small { color: #b5c1d0; font-size: 1rem; margin-top: .25rem; }

.jnw-noreaster-inner { gap: 2rem; }
.jnw-noreaster-status { align-items: center; background: #0a2742; border-color: #2f6b91; display: grid; gap: 1rem; grid-template-columns: 4.6rem minmax(10rem,.7fr) 1.3fr; overflow: hidden; padding: 1rem 1.15rem; position: relative; }
.jnw-noreaster-status:before { background: currentColor; content: ""; inset: 0; opacity: .08; pointer-events: none; position: absolute; }
.jnw-noreaster-status.is-low-season { color: #7bc8ff; }
.jnw-noreaster-status.is-quiet { background: #0b4c2b; border-color: #18a153; color: #63e793; }
.jnw-noreaster-status.is-watching { background: #5a4504; border-color: #f2c72e; color: #ffe16b; }
.jnw-noreaster-status.is-tracking { background: #6b3103; border-color: #f17b24; color: #ffa052; }
.jnw-noreaster-status.is-active { background: #6c0a12; border-color: var(--jnw-warning-red); color: var(--jnw-warning-red-soft); }
.jnw-noreaster-status.is-recovery { background: #0a2954; border-color: #4a82c4; color: #8fc4ff; }
.jnw-noreaster-status-icon { align-items: center; background: rgba(255,255,255,.08); border: 1px solid currentColor; border-radius: 50%; display: flex; height: 4rem; justify-content: center; position: relative; width: 4rem; z-index: 1; }
.jnw-noreaster-status-icon svg { height: 2.8rem; width: 2.8rem; }
.jnw-noreaster-status-icon path { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; }
.jnw-noreaster-status-icon .jnw-noreaster-cloud { fill: rgba(255,255,255,.06); stroke-width: 2.5; }
.jnw-noreaster-status-icon .jnw-noreaster-rain { stroke-width: 3; }
.jnw-noreaster-status-icon .jnw-noreaster-snow { stroke-width: 2.2; }
.jnw-noreaster-status-icon .jnw-noreaster-wind { stroke-width: 2.25; }
.jnw-noreaster-status-name { border-right: 1px solid rgba(255,255,255,.2); display: flex; flex-direction: column; min-width: 0; padding-right: 1rem; position: relative; z-index: 1; }
.jnw-noreaster-status-name small,
.jnw-noreaster-status-copy small { color: rgba(255,255,255,.72); font-size: .63rem; font-weight: 950; letter-spacing: .1em; }
.jnw-noreaster-status-name strong { color: #fff; font-size: clamp(1.65rem,4vw,2.45rem); letter-spacing: -.045em; line-height: .95; margin-top: .18rem; text-transform: uppercase; }
.jnw-noreaster-status-copy { position: relative; z-index: 1; }
.jnw-noreaster-status-copy p { color: #fff; font-size: clamp(.95rem,2vw,1.15rem); font-weight: 780; line-height: 1.4; margin: .25rem 0 0; }
.jnw-noreaster-mode-guide { overflow: hidden; padding: 0; }
.jnw-noreaster-mode-guide summary { align-items: center; cursor: pointer; display: flex; font-weight: 900; justify-content: space-between; list-style: none; min-height: 3.8rem; padding: .85rem 1.1rem; }
.jnw-noreaster-mode-guide summary::-webkit-details-marker { display: none; }
.jnw-noreaster-mode-guide summary i { color: #7e9bb8; font-size: 1.35rem; font-style: normal; transition: transform .18s ease; }
.jnw-noreaster-mode-guide[open] summary { border-bottom: 1px solid rgba(151,180,214,.14); }
.jnw-noreaster-mode-guide[open] summary i { transform: rotate(45deg); }
.jnw-noreaster-mode-list { display: grid; gap: .55rem; grid-template-columns: repeat(3,1fr); padding: 1rem; }
.jnw-noreaster-mode-list > div { border: 1px solid rgba(151,180,214,.16); border-radius: .8rem; display: grid; gap: .2rem .55rem; grid-template-columns: .7rem 1fr; padding: .75rem; }
.jnw-noreaster-mode-list > div > span { background: #70b9ec; border-radius: 50%; height: .62rem; margin-top: .16rem; width: .62rem; }
.jnw-noreaster-mode-list .is-quiet > span { background: #35c96b; }
.jnw-noreaster-mode-list .is-watching > span { background: #f2c72e; }
.jnw-noreaster-mode-list .is-tracking > span { background: #f17b24; }
.jnw-noreaster-mode-list .is-active > span { background: var(--jnw-warning-red); }
.jnw-noreaster-mode-list .is-recovery > span { background: #5b9ee8; }
.jnw-noreaster-mode-list > div.is-current { background: rgba(89,182,240,.08); border-color: rgba(112,197,250,.55); }
.jnw-noreaster-mode-list strong { font-size: .86rem; text-transform: uppercase; }
.jnw-noreaster-mode-list p { color: #92a4b9; font-size: .75rem; grid-column: 2; line-height: 1.4; margin: 0; }
.jnw-noreaster-hero { min-height: clamp(29rem, 58vw, 39rem); overflow: hidden; padding: 0; position: relative; }
.jnw-noreaster-hero > img { height: 100%; inset: 0; object-fit: cover; object-position: 56% center; position: absolute; width: 100%; }
.jnw-noreaster-hero-shade { background: linear-gradient(180deg, rgba(3,13,27,.03) 12%, rgba(3,14,28,.34) 42%, rgba(2,12,26,.96) 100%), linear-gradient(90deg, rgba(3,14,28,.65), transparent 60%); inset: 0; position: absolute; }
.jnw-noreaster-hero-copy { bottom: 0; left: 0; max-width: 49rem; padding: clamp(1.35rem, 4vw, 2.5rem); position: absolute; right: 0; z-index: 2; }
.jnw-noreaster-hero-copy > small,
.jnw-noreaster-section-title > small,
.jnw-noreaster-heading small { color: #64c9ff; font-size: .72rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.jnw-noreaster-hero-copy h2 { font-size: clamp(2.35rem, 7vw, 4.5rem); letter-spacing: -.065em; line-height: .94; margin: .55rem 0 .85rem; max-width: 42rem; text-wrap: balance; }
.jnw-noreaster-hero-copy p { color: #d9e3ef; font-size: clamp(.98rem, 2vw, 1.18rem); font-weight: 670; line-height: 1.55; margin: 0; max-width: 42rem; }
.jnw-noreaster-hero-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.15rem; }
.jnw-noreaster-hero-actions button,
.jnw-noreaster-hero-actions a { align-items: center; border: 0; border-radius: .85rem; cursor: pointer; display: inline-flex; font-weight: 900; justify-content: center; min-height: 3rem; padding: .75rem 1rem; }
.jnw-noreaster-hero-actions button { background: #f1f7fc; color: #07172b; }
.jnw-noreaster-hero-actions a { background: rgba(13,39,66,.86); border: 1px solid rgba(176,211,238,.31); color: white; }
.jnw-noreaster-hero-actions button:hover,
.jnw-noreaster-hero-actions button:focus-visible,
.jnw-noreaster-hero-actions a:hover,
.jnw-noreaster-hero-actions a:focus-visible { box-shadow: 0 0 0 3px rgba(100,201,255,.35); outline: none; }
.jnw-noreaster-image-credit { color: rgba(226,236,246,.72); font-size: .62rem; font-weight: 750; position: absolute; right: .8rem; top: .65rem; z-index: 2; }

.jnw-noreaster-heading { align-items: end; display: flex; justify-content: space-between; }
.jnw-noreaster-heading h2,
.jnw-noreaster-section-title h2 { font-size: clamp(2rem, 7vw, 3.25rem); letter-spacing: -.055em; line-height: 1; margin: .35rem 0 0; }
.jnw-noreaster-heading > img { filter: drop-shadow(0 8px 18px rgba(0,0,0,.35)); height: 5.8rem; opacity: .7; width: auto; }
.jnw-noreaster-definition { border-left: 4px solid #63c9ff; margin-top: 1rem; padding: 1.2rem; }
.jnw-noreaster-definition strong { display: block; font-size: clamp(1.2rem,2.5vw,1.55rem); letter-spacing: -.025em; line-height: 1.25; }
.jnw-noreaster-definition p { color: #aebdce; line-height: 1.62; margin: .55rem 0 0; }
.jnw-noreaster-facts { display: grid; gap: 1rem; grid-template-columns: repeat(3,1fr); margin-top: 1rem; }
.jnw-noreaster-facts article { min-height: 15rem; padding: 1.25rem; }
.jnw-noreaster-facts article > span { color: #6bcfff; font-size: .7rem; font-weight: 950; letter-spacing: .1em; }
.jnw-noreaster-facts h3 { font-size: 1.65rem; letter-spacing: -.035em; margin: 1.5rem 0 .5rem; }
.jnw-noreaster-facts p { color: #aebdce; line-height: 1.62; margin: 0; }

.jnw-noreaster-compare-grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; margin-top: 1rem; }
.jnw-noreaster-compare-grid article { align-items: start; display: grid; gap: 1rem; grid-template-columns: 3.4rem 1fr; padding: 1.2rem; }
.jnw-noreaster-line-icon { align-items: center; background: rgba(91,197,255,.1); border: 1px solid rgba(91,197,255,.35); border-radius: 50%; color: #71d1ff; display: flex; font-size: 1.7rem; font-weight: 900; height: 3.4rem; justify-content: center; width: 3.4rem; }
.jnw-noreaster-compare-grid small { color: #69ccff; font-size: .65rem; font-weight: 950; letter-spacing: .1em; }
.jnw-noreaster-compare-grid h3 { font-size: 1.8rem; letter-spacing: -.04em; margin: .25rem 0 .7rem; }
.jnw-noreaster-compare-grid ul { color: #adbdce; display: grid; gap: .55rem; line-height: 1.48; margin: 0; padding-left: 1.05rem; }
.jnw-noreaster-takeaway { background: #0b2946; border: 1px solid rgba(101,198,255,.4); border-radius: .9rem; color: #d9eaff; line-height: 1.45; margin: 1rem 0 0; padding: .9rem 1rem; }
.jnw-noreaster-takeaway strong { color: #71d1ff; }

.jnw-noreaster-coast { align-items: start; background: linear-gradient(135deg,#0a2138,#102e4a); display: grid; gap: 1.5rem; grid-template-columns: .9fr 1.1fr; padding: 1.35rem; }
.jnw-noreaster-coast > div > small { color: #64c9ff; font-size: .7rem; font-weight: 950; letter-spacing: .12em; }
.jnw-noreaster-coast h2 { font-size: clamp(2rem,6vw,3.2rem); letter-spacing: -.055em; line-height: 1; margin: .4rem 0 .75rem; }
.jnw-noreaster-coast > div > p { color: #aebdce; line-height: 1.62; margin: 0; }
.jnw-noreaster-coast ul { display: grid; gap: .2rem; list-style: none; margin: 0; padding: 0; }
.jnw-noreaster-coast li { align-items: start; border-top: 1px solid rgba(151,180,214,.18); display: grid; gap: .75rem; grid-template-columns: 2.3rem 1fr; padding: .85rem 0; }
.jnw-noreaster-coast li > span { align-items: center; border: 1px solid rgba(103,204,255,.35); border-radius: 50%; color: #6ed0ff; display: flex; font-size: 1.05rem; height: 2.3rem; justify-content: center; width: 2.3rem; }
.jnw-noreaster-coast strong { font-size: 1rem; }
.jnw-noreaster-coast li p { color: #98aabd; font-size: .84rem; line-height: 1.45; margin: .2rem 0 0; }

.jnw-noreaster-prep { padding: 1.35rem; }
.jnw-noreaster-section-title > p { color: #9eafc2; line-height: 1.6; margin: .7rem 0 0; max-width: 47rem; }
.jnw-noreaster-prep ul { display: grid; gap: .7rem 1.2rem; grid-template-columns: 1fr 1fr; list-style: none; margin: 1.3rem 0 0; padding: 0; }
.jnw-noreaster-prep li { align-items: start; border-top: 1px solid rgba(151,180,214,.15); display: grid; gap: .8rem; grid-template-columns: 1.8rem 1fr; padding: 1rem 0; }
.jnw-noreaster-prep li > span { align-items: center; background: rgba(95,202,255,.12); border: 1px solid rgba(95,202,255,.32); border-radius: 50%; color: #72d2ff; display: inline-flex; font-size: .65rem; font-weight: 950; height: 1.8rem; justify-content: center; width: 1.8rem; }
.jnw-noreaster-prep strong { font-size: 1.05rem; }
.jnw-noreaster-prep p { color: #a7b5c7; font-size: .9rem; line-height: 1.55; margin: .28rem 0 0; }
.jnw-noreaster-prep-links { border-top: 1px solid rgba(151,180,214,.15); display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .5rem; padding-top: 1rem; }
.jnw-noreaster-prep-links a { background: rgba(95,202,255,.1); border: 1px solid rgba(95,202,255,.28); border-radius: 999px; color: #77d4ff; font-size: .78rem; font-weight: 900; padding: .65rem .8rem; }
.jnw-noreaster-prep-links a:hover,
.jnw-noreaster-prep-links a:focus-visible { background: rgba(95,202,255,.18); outline: none; }

.jnw-winter-resource-grid { display: grid; gap: .8rem; grid-template-columns: repeat(3,1fr); margin-top: 1rem; }
.jnw-winter-resource-grid a { display: flex; flex-direction: column; min-height: 10.5rem; padding: 1.1rem; transition: border-color .18s ease, transform .18s ease; }
.jnw-winter-resource-grid a:hover,
.jnw-winter-resource-grid a:focus-visible { border-color: rgba(100,201,255,.56); outline: none; transform: translateY(-2px); }
.jnw-winter-resource-grid a > span { color: #67caff; font-size: .67rem; font-weight: 950; letter-spacing: .11em; text-transform: uppercase; }
.jnw-winter-resource-grid strong { font-size: 1.28rem; letter-spacing: -.025em; line-height: 1.15; margin-top: auto; }
.jnw-winter-resource-grid small { color: #9eafc3; line-height: 1.35; margin-top: .45rem; }

.jnw-noreaster-history-list { display: flex; flex-direction: column; gap: .7rem; margin-top: 1rem; }
.jnw-noreaster-history-list details { overflow: hidden; padding: 0; }
.jnw-noreaster-history-list summary { align-items: center; cursor: pointer; display: grid; gap: 1rem; grid-template-columns: 4.2rem 1fr auto; list-style: none; min-height: 6rem; padding: 1rem 1.2rem; }
.jnw-noreaster-history-list summary::-webkit-details-marker { display: none; }
.jnw-noreaster-history-list summary > span { color: #68cbff; font-size: 1.35rem; font-weight: 950; letter-spacing: -.03em; }
.jnw-noreaster-history-list summary div { display: flex; flex-direction: column; }
.jnw-noreaster-history-list summary strong { font-size: 1.35rem; letter-spacing: -.025em; }
.jnw-noreaster-history-list summary small { color: #98a9bd; font-weight: 750; margin-top: .15rem; }
.jnw-noreaster-history-list summary i { color: #8ca0b7; font-size: 1.5rem; font-style: normal; transition: transform .18s ease; }
.jnw-noreaster-history-list details[open] summary i { transform: rotate(45deg); }
.jnw-noreaster-history-list details[open] summary { background: rgba(84,163,216,.07); border-bottom: 1px solid rgba(151,180,214,.14); }
.jnw-noreaster-history-list details > ul { color: #b3c0d0; display: grid; gap: .6rem; line-height: 1.58; margin: 0; padding: 1rem 1.5rem 1.25rem 2.4rem; }
.jnw-noreaster-history-source { color: #69ccff !important; display: inline-block; font-size: .78rem; font-weight: 900; margin: -.35rem 1.5rem 1.25rem; }
.jnw-noreaster-history-source:hover,
.jnw-noreaster-history-source:focus-visible { text-decoration: underline; }
.jnw-noreaster-source { color: #7f90a7; font-size: .72rem; line-height: 1.55; margin: -.5rem 0 0; text-align: center; }

.jnw-road-inner { gap: 1.15rem; }
.jnw-road-hero { align-items: center; background: linear-gradient(135deg,rgba(18,67,80,.98),rgba(11,36,61,.98)); border-color: rgba(84,226,164,.22); display: grid; gap: 1.2rem; grid-template-columns: auto 1fr; overflow: hidden; padding: 1.35rem; position: relative; }
.jnw-road-hero:after { background: linear-gradient(90deg,transparent,rgba(111,236,174,.12)); content: ""; inset: 0; pointer-events: none; position: absolute; }
.jnw-road-hero-icon { align-items: center; background: rgba(99,226,162,.12); border: 1px solid rgba(114,234,177,.3); border-radius: 1.25rem; display: flex; height: 5rem; justify-content: center; position: relative; width: 5rem; z-index: 1; }
.jnw-road-hero-icon span { color: #77edb0; font-size: 2.5rem; transform: rotate(-22deg); }
.jnw-road-hero > div:last-child { position: relative; z-index: 1; }
.jnw-road-hero small,
.jnw-road-section-heading small { color: #6fe6a9; font-size: .68rem; font-weight: 950; letter-spacing: .12em; }
.jnw-road-hero h2 { font-size: clamp(1.8rem,5vw,2.75rem); letter-spacing: -.05em; line-height: 1; margin: .35rem 0 .55rem; }
.jnw-road-hero p { color: #b9cbd2; line-height: 1.55; margin: 0; }

.jnw-road-planner { overflow: visible; padding: 1.2rem; position: relative; z-index: 6; }
.jnw-road-route-fields { align-items: end; display: grid; gap: .65rem; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); }
.jnw-road-location-field,
.jnw-road-departure { display: flex; flex-direction: column; position: relative; }
.jnw-road-location-field > span,
.jnw-road-departure > span { color: #8294aa; font-size: .62rem; font-weight: 950; letter-spacing: .12em; margin: 0 0 .35rem .2rem; }
.jnw-road-location-field input,
.jnw-road-departure input { background: #091a30; border: 1px solid rgba(143,175,212,.22); border-radius: .9rem; color: #f4f8fd; font-size: 1rem; font-weight: 800; min-height: 3.45rem; outline: none; padding: .8rem .9rem; width: 100%; }
.jnw-road-location-field input[data-selected="true"] { border-color: rgba(93,225,161,.45); box-shadow: inset 0 0 0 1px rgba(93,225,161,.12); }
.jnw-road-location-field input:focus,
.jnw-road-departure input:focus { border-color: #53c5ff; box-shadow: 0 0 0 3px rgba(83,197,255,.14); }
.jnw-road-search-results { background: #10253e; border: 1px solid rgba(149,184,222,.25); border-radius: 1rem; box-shadow: 0 1.2rem 2.8rem rgba(0,7,19,.55); left: 0; max-height: 18rem; overflow-y: auto; padding: .35rem; position: absolute; right: 0; top: calc(100% + .35rem); z-index: 20; }
.jnw-road-search-results > strong,
.jnw-road-search-results > span { display: block; padding: .6rem .7rem; }
.jnw-road-search-results > span { color: #95a6ba; font-size: .78rem; padding-top: 0; }
.jnw-road-search-results button { background: transparent; border: 0; border-radius: .75rem; color: white; cursor: pointer; display: flex; flex-direction: column; padding: .7rem .75rem; text-align: left; width: 100%; }
.jnw-road-search-results button:hover,
.jnw-road-search-results button:focus-visible { background: rgba(82,164,221,.16); outline: none; }
.jnw-road-search-results button strong { font-size: .93rem; }
.jnw-road-search-results button small { color: #9baabd; font-size: .7rem; margin-top: .18rem; }
.jnw-road-swap { align-items: center; background: #203954; border: 1px solid rgba(149,184,222,.22); border-radius: 50%; color: #65d4ff; cursor: pointer; display: flex; font-size: 1.35rem; height: 2.85rem; justify-content: center; margin-bottom: .3rem; transition: transform .25s ease; width: 2.85rem; }
.jnw-road-swap.is-swapping { transform: rotate(180deg); }
.jnw-road-departure { margin-top: .85rem; }
.jnw-road-departure input { color-scheme: dark; }
.jnw-road-departure small { color: #7f91a6; font-size: .68rem; margin: .38rem 0 0 .2rem; }
.jnw-road-quick-routes { align-items: center; display: flex; gap: .45rem; margin-top: .9rem; overflow-x: auto; padding-bottom: .2rem; scrollbar-width: none; }
.jnw-road-quick-routes::-webkit-scrollbar { display: none; }
.jnw-road-quick-routes > span { color: #8496aa; flex: 0 0 auto; font-size: .66rem; font-weight: 900; margin-right: .15rem; text-transform: uppercase; }
.jnw-road-quick-routes button { background: #1b314d; border: 1px solid rgba(142,178,218,.19); border-radius: 999px; color: #c5d2df; cursor: pointer; flex: 0 0 auto; font-size: .73rem; font-weight: 800; padding: .55rem .72rem; }
.jnw-road-quick-routes button:hover,
.jnw-road-quick-routes button:focus-visible { border-color: #65d6ff; color: #fff; outline: none; }
.jnw-road-plan-button { align-items: center; background: linear-gradient(100deg,#248bd3,#20b980); border: 0; border-radius: .9rem; color: white; cursor: pointer; display: flex; font-size: .95rem; font-weight: 950; justify-content: space-between; margin-top: 1rem; min-height: 3.35rem; padding: .8rem 1rem; width: 100%; }
.jnw-road-plan-button:hover,
.jnw-road-plan-button:focus-visible { box-shadow: 0 0 0 3px rgba(74,206,176,.22); outline: none; }
.jnw-road-plan-button i { font-size: 1.25rem; font-style: normal; }
.jnw-road-placeholder { min-height: 9rem; }
.jnw-road-results { display: flex; flex-direction: column; gap: 1.35rem; }

.jnw-road-summary { align-items: center; border-left: .38rem solid #55db9b; display: grid; gap: 1rem; grid-template-columns: auto minmax(0,1fr) auto; padding: 1.15rem; }
.jnw-road-summary.is-caution { border-left-color: #ffd15c; }
.jnw-road-summary.is-high { border-left-color: #ff6879; }
.jnw-road-risk-icon { align-items: center; background: rgba(76,218,151,.13); border: 2px solid #52dc9a; border-radius: 50%; color: #6aedac; display: flex; font-size: 1.5rem; font-weight: 950; height: 3.6rem; justify-content: center; width: 3.6rem; }
.jnw-road-summary.is-caution .jnw-road-risk-icon { background: rgba(255,207,85,.12); border-color: #ffcf55; color: #ffdb76; }
.jnw-road-summary.is-high .jnw-road-risk-icon { background: rgba(255,101,121,.12); border-color: #ff6579; color: #ff7f90; }
.jnw-road-summary > div:nth-child(2) > small { color: #68dca4; font-size: .65rem; font-weight: 950; letter-spacing: .11em; }
.jnw-road-summary.is-caution > div:nth-child(2) > small { color: #ffdb72; }
.jnw-road-summary.is-high > div:nth-child(2) > small { color: #ff8998; }
.jnw-road-summary h2 { font-size: clamp(1.35rem,4vw,2rem); letter-spacing: -.04em; margin: .28rem 0; }
.jnw-road-summary p { color: #aebccd; font-size: .84rem; line-height: 1.45; margin: 0; }
.jnw-road-summary-stats { display: flex; gap: .45rem; }
.jnw-road-summary-stats span { align-items: center; background: rgba(2,14,29,.4); border-radius: .75rem; display: flex; flex-direction: column; min-width: 4.5rem; padding: .65rem .55rem; }
.jnw-road-summary-stats b { font-size: 1.15rem; }
.jnw-road-summary-stats small { color: #8999ad; font-size: .58rem; font-weight: 850; text-transform: uppercase; }

.jnw-road-section-heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-road-section-heading h2 { font-size: clamp(1.8rem,6vw,2.7rem); letter-spacing: -.05em; margin: .25rem 0 0; }
.jnw-road-section-heading > a,
.jnw-road-section-heading > span { color: #64cfff; font-size: .74rem; font-weight: 850; }
.jnw-road-map { background: #d3d8d8; border-radius: 1.45rem; height: clamp(19rem,52vw,27rem); margin-top: .75rem; overflow: hidden; padding: 0; position: relative; }
.jnw-road-map-tiles { inset: 0; opacity: .93; position: absolute; }
.jnw-road-map-tiles:after { background: rgba(1,15,28,.13); content: ""; inset: 0; position: absolute; }
.jnw-road-map-tiles img { height: 256px; max-width: none !important; position: absolute; user-select: none; width: 256px; }
.jnw-road-map > svg { height: 100%; inset: 0; overflow: visible; position: absolute; width: 100%; }
.jnw-road-route-shadow,
.jnw-road-route-line { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.jnw-road-route-shadow { stroke: rgba(3,13,25,.72); stroke-width: 10; }
.jnw-road-route-line { stroke: #29a8ff; stroke-width: 5; }
.jnw-road-map-pin circle { fill: #09213a; stroke: #fff; stroke-width: 3; }
.jnw-road-map-pin.start circle { fill: #22b881; }
.jnw-road-map-pin.destination circle { fill: #ff784f; }
.jnw-road-map-pin text { fill: white; font-size: 10px; font-weight: 950; }
.jnw-road-map-attribution { background: rgba(255,255,255,.9); bottom: 0; color: #24374a; font-size: .55rem; padding: .2rem .35rem; position: absolute; right: 0; z-index: 3; }

.jnw-road-stop-list { display: flex; flex-direction: column; gap: .65rem; margin-top: .8rem; }
.jnw-road-stop { display: grid; gap: .8rem; grid-template-columns: 1.3rem minmax(0,1fr); overflow: visible; padding: 0; }
.jnw-road-stop-marker { align-items: center; display: flex; flex-direction: column; padding-top: 1.3rem; position: relative; }
.jnw-road-stop-marker span { background: #42d897; border: 3px solid #0d2139; border-radius: 50%; box-shadow: 0 0 0 2px #42d897; height: .72rem; position: relative; width: .72rem; z-index: 2; }
.jnw-road-stop.is-caution .jnw-road-stop-marker span { background: #ffd05a; box-shadow: 0 0 0 2px #ffd05a; }
.jnw-road-stop.is-high .jnw-road-stop-marker span { background: #ff677b; box-shadow: 0 0 0 2px #ff677b; }
.jnw-road-stop-marker i { background: rgba(117,155,195,.22); bottom: -.7rem; position: absolute; top: 1.9rem; width: 2px; }
.jnw-road-stop:last-child .jnw-road-stop-marker i { display: none; }
.jnw-road-stop-body { padding: 1rem 1rem 1rem 0; }
.jnw-road-stop-body > header { align-items: start; display: grid; gap: .85rem; grid-template-columns: auto 1fr; }
.jnw-road-stop-time { align-items: center; background: rgba(4,17,33,.5); border-radius: .7rem; display: flex; flex-direction: column; min-width: 6.4rem; padding: .55rem; }
.jnw-road-stop-time strong { font-size: .82rem; }
.jnw-road-stop-time small { color: #6ecdf9; font-size: .55rem; font-weight: 950; letter-spacing: .08em; margin-top: .13rem; }
.jnw-road-stop-body h3 { font-size: 1.25rem; letter-spacing: -.025em; margin: .1rem 0 .15rem; }
.jnw-road-stop-body header > div:last-child > small { color: #899bad; font-size: .7rem; }
.jnw-road-stop-conditions { align-items: center; display: grid; gap: .65rem; grid-template-columns: 3.7rem auto minmax(0,1fr); margin-top: .85rem; }
.jnw-road-stop-icon { height: 3.5rem; width: 3.5rem; }
.jnw-road-stop-icon svg { height: 100%; width: 100%; }
.jnw-road-stop-temp { font-size: 1.75rem; letter-spacing: -.04em; }
.jnw-road-stop-conditions > div { display: flex; flex-direction: column; min-width: 0; }
.jnw-road-stop-conditions b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jnw-road-stop-conditions span { color: #91a2b5; font-size: .7rem; margin-top: .18rem; }
.jnw-road-stop-hazard { background: rgba(255,92,115,.11); border: 1px solid rgba(255,101,124,.27); border-radius: .7rem; color: #ff9aaa; display: block; font-size: .73rem; font-weight: 900; margin-top: .7rem; padding: .6rem .7rem; }
.jnw-road-stop-actions { display: flex; gap: .55rem; margin-top: .75rem; }
.jnw-road-stop-actions button,
.jnw-road-stop-actions a { background: #213b5b; border: 1px solid rgba(145,180,219,.19); border-radius: .7rem; color: #ecf4fc; cursor: pointer; font-size: .68rem; font-weight: 900; padding: .55rem .65rem; }
.jnw-road-stop-actions button:hover,
.jnw-road-stop-actions button:focus-visible,
.jnw-road-stop-actions a:hover,
.jnw-road-stop-actions a:focus-visible { border-color: #62ccff; outline: none; }
.jnw-road-stop-unavailable { color: #a8b6c7; margin: .8rem 0 0; }
.jnw-road-stop-loading { align-items: center; display: flex; gap: .9rem; min-height: 5.5rem; padding: 1rem; }
.jnw-road-stop-loading > span { animation: jnw-tropical-spin .9s linear infinite; border: 3px solid rgba(255,255,255,.18); border-radius: 50%; border-top-color: #59d6ff; height: 2rem; width: 2rem; }
.jnw-road-stop-loading > div { display: flex; flex-direction: column; }
.jnw-road-stop-loading small { color: #8fa0b3; margin-top: .25rem; }
.jnw-road-source { color: #7f90a7; font-size: .7rem; line-height: 1.55; margin: 0; text-align: center; }
.jnw-road-resource-row { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; margin-top: 1rem; }
.jnw-road-resource-row a { align-items: center; background: #17324e; border: 1px solid rgba(104,202,255,.28); border-radius: .78rem; color: #d5efff; display: inline-flex; font-size: .74rem; font-weight: 880; min-height: 2.75rem; padding: .65rem .82rem; }
.jnw-road-resource-row a:hover,
.jnw-road-resource-row a:focus-visible { border-color: #68caff; outline: none; }

.jnw-settings-inner { max-width: 42rem; }
.jnw-settings-card { padding: 1.35rem; }
.jnw-settings-card > small { color: #56c7ff; font-size: .7rem; font-weight: 950; letter-spacing: .1em; }
.jnw-settings-card h2 { font-size: 1.75rem; margin: .4rem 0; }
.jnw-settings-card p { color: #a7b4c7; line-height: 1.6; margin: 0; }
.jnw-settings-card button { background: #2b8ed8; border: 0; border-radius: .85rem; cursor: pointer; font-weight: 900; margin-top: 1rem; padding: .8rem 1rem; }
.jnw-settings-alert-sound { border-color: rgba(92, 198, 250, .34); }
.jnw-settings-alert-sound.is-enabled { box-shadow: inset .28rem 0 0 #4ac6f5; }
.jnw-settings-alert-sound-heading { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-settings-alert-sound-heading small { color: #56c7ff; display: block; font-size: .7rem; font-weight: 950; letter-spacing: .1em; }
.jnw-settings-alert-sound-heading h2 { margin-bottom: 0; }
.jnw-settings-card .jnw-alert-sound-switch { background: rgba(129, 151, 177, .13); border: 1px solid rgba(155, 180, 207, .32); color: #d4deea; flex: 0 0 auto; margin: 0; min-width: 6.25rem; }
.jnw-settings-card .jnw-alert-sound-switch[aria-checked="true"] { background: #158dcc; border-color: #70d4ff; color: #fff; }
.jnw-settings-alert-sound > p { margin-top: .85rem; }
.jnw-settings-alert-sound > p strong { color: #e7f5ff; }
.jnw-alert-sound-actions { align-items: center; display: grid; gap: .75rem; grid-template-columns: auto minmax(0, 1fr); margin-top: 1rem; }
.jnw-settings-card .jnw-alert-sound-actions button { color: #fff; margin: 0; }
.jnw-settings-card .jnw-alert-sound-switch:focus-visible,
.jnw-settings-card .jnw-alert-sound-actions button:focus-visible { outline: 3px solid rgba(103, 210, 255, .35); outline-offset: 2px; }
.jnw-settings-card .jnw-alert-sound-actions button:disabled { cursor: not-allowed; filter: grayscale(.5); opacity: .42; }
.jnw-alert-sound-actions span { color: #a9bdd0; font-size: .78rem; font-weight: 780; line-height: 1.45; }
.jnw-settings-card .jnw-alert-sound-note { border-top: 1px solid rgba(142, 178, 211, .16); color: #7f94aa; display: block; font-size: .7rem; line-height: 1.5; margin-top: 1rem; padding-top: .8rem; }
@media (max-width: 560px) {
  .jnw-settings-alert-sound-heading { align-items: stretch; flex-direction: column; }
  .jnw-settings-card .jnw-alert-sound-switch { width: 100%; }
  .jnw-alert-sound-actions { align-items: stretch; grid-template-columns: 1fr; }
  .jnw-alert-sound-actions span { text-align: center; }
}

@media (max-width: 720px) {
  .jnw-wind-compass { height: 4.8rem; width: 4.8rem; }
  .jnw-wind-compass i { height: 1.65rem; top: .55rem; transform-origin: 50% 1.85rem; }
  .jnw-wind-compass b { font-size: 1.08rem; }
  .jnw-wind-compass > span { font-size: .46rem; }
  .jnw-home .jnw-forecast-wind-ring,
  .jnw-forecast-wind-ring { height: 3.25rem; width: 3.25rem; }
  .jnw-home .jnw-forecast-wind-arrow,
  .jnw-forecast-wind-arrow { height: 3.1rem; }
  .jnw-climate-controls { gap: .55rem; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); padding: .75rem; }
	.jnw-storm-live { gap: 1.5rem; }
	.jnw-storm-sponsor { grid-template-columns: 2.8rem minmax(0,1fr); padding: .8rem; }
	.jnw-storm-sponsor-mark { border-radius: .72rem; height: 2.8rem; width: 2.8rem; }
	.jnw-storm-sponsor-mark svg { height: 1.85rem; width: 1.85rem; }
	.jnw-storm-sponsor > a { grid-column: 1 / -1; min-height: 2.7rem; width: 100%; }
	.jnw-page-sponsor { align-items: stretch; grid-template-columns: 1fr; padding: 1rem 1rem 1rem 1.3rem; }
	.jnw-page-sponsor > a { min-height: 2.8rem; width: 100%; }
	.jnw-storm-forecast-callout { align-items: stretch; grid-template-columns: 1fr; }
	.jnw-storm-forecast-callout button { width: 100%; }
	.jnw-storm-map-disclosure > summary { min-height: 5.3rem; padding: .75rem .85rem; }
	.jnw-storm-map-toolbar { align-items: flex-start; flex-direction: column; padding: .65rem .7rem; }
	.jnw-storm-map-toolbar > span { text-align: left; }
	.jnw-storm-map-layout { grid-template-columns: 1fr; }
	.jnw-storm-map-layout > .jnw-storm-map-legend { border-bottom: 1px solid rgba(144,183,218,.1); border-right: 0; grid-template-columns: 1fr 1fr; padding: 1rem; }
	.jnw-storm-map-layout > .jnw-storm-map-legend strong { grid-column: 1 / -1; }
	.jnw-storm-map-frame { padding: .8rem .55rem .55rem; }
	.jnw-storm-map-stage { width: 100%; }
	.jnw-storm-map-sponsor { bottom: auto; grid-column: 1; margin: .2rem .75rem .85rem; max-width: none; position: static; right: auto; width: auto; }
	.jnw-storm-tracker-grid { grid-template-columns: 1fr; }
	.jnw-storm-tracker { min-height: 0; }
	.jnw-storm-wbgt { padding: .8rem; }
	.jnw-storm-tracker-links a { flex-basis: calc(50% - .25rem); }
	.jnw-storm-power { align-items: start; grid-template-columns: auto minmax(0,1fr); }
	.jnw-storm-power > a { grid-column: 1 / -1; width: 100%; }
	.jnw-storm-mode-guide ol { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.jnw-storm-alert-modal { align-items: flex-end; padding: 0; }
	.jnw-storm-alert-sheet { border-bottom: 0; border-left: 0; border-radius: 1.65rem 1.65rem 0 0; border-right: 0; max-height: 96vh; max-width: none; }
	.jnw-storm-alert-detail-meta { grid-template-columns: 1fr; }
	.jnw-storm-alert-sheet > footer { grid-template-columns: 1fr; }
  .jnw-climate-controls label { border-radius: .9rem; padding: .55rem .65rem; }
  .jnw-climate-controls label span { font-size: .62rem; }
  .jnw-climate-controls select { font-size: .92rem; }
  .jnw-climate-controls > b { font-size: 1.05rem; }
  .jnw-climate-intro { grid-template-columns: 1fr; }
  .jnw-climate-intro button { grid-row: 2; width: max-content; }
  .jnw-climate-intro > strong { grid-column: 1; }
  .jnw-climate-current { align-items: center; flex-direction: column; gap: .15rem; }
  .jnw-climate-rank { border-radius: 1.2rem; }
  .jnw-climate-comparisons { gap: .55rem; }
  .jnw-climate-comparisons small { font-size: .62rem; }
  .jnw-climate-comparisons strong { font-size: 1.85rem; }
  .jnw-climate-records { gap: .55rem; }
  .jnw-climate-list h3 { font-size: 1.3rem; padding: .9rem; }
  .jnw-climate-list li { gap: .35rem; grid-template-columns: 1.5rem 1fr; min-height: 4.1rem; padding: .65rem .75rem; }
  .jnw-climate-list li strong { font-size: 1rem; grid-column: 2; }
  .jnw-tropical-summary { gap: .7rem; grid-template-columns: auto 1fr; }
  .jnw-tropical-summary > strong { font-size: 4.5rem; }
  .jnw-tropical-summary > div { grid-column: 1 / -1; }
  .jnw-tropical-summary h2 { font-size: 1.35rem; }
  .jnw-tropical-map { border-radius: 1.35rem; min-height: 17rem; }
  .jnw-tropical-basin-tabs { bottom: .65rem; left: .65rem; right: .65rem; }
  .jnw-tropical-basin-tabs button { min-height: 3.25rem; }
  .jnw-tropical-storm-stats { gap: .45rem; }
  .jnw-tropical-storm-stats strong { font-size: 1.05rem; }
  .jnw-tropical-storm-links { grid-template-columns: 1fr 1fr; }
  .jnw-tropical-storm-links a:last-child { grid-column: 1 / -1; }
  .jnw-tropical-explore a { min-height: 10rem; padding: 1rem; }
  .jnw-tropical-explore a strong { font-size: 1.35rem; }
  .jnw-tropical-explore a small { font-size: .82rem; }
  .jnw-noreaster-status { gap: .75rem; grid-template-columns: 3.6rem 1fr; padding: .85rem; }
  .jnw-noreaster-status-icon { height: 3.35rem; width: 3.35rem; }
  .jnw-noreaster-status-icon svg { height: 2.35rem; width: 2.35rem; }
  .jnw-noreaster-status-name { border-right: 0; padding-right: 0; }
  .jnw-noreaster-status-copy { border-top: 1px solid rgba(255,255,255,.18); grid-column: 1 / -1; padding-top: .7rem; }
  .jnw-noreaster-mode-list { grid-template-columns: 1fr 1fr; }
  .jnw-noreaster-hero { min-height: 32rem; }
  .jnw-noreaster-hero > img { object-position: 53% center; }
  .jnw-noreaster-image-credit { font-size: .55rem; }
  .jnw-noreaster-facts { grid-template-columns: 1fr; }
  .jnw-noreaster-facts article { min-height: 0; }
  .jnw-noreaster-facts h3 { margin-top: .8rem; }
  .jnw-noreaster-compare-grid,
  .jnw-noreaster-coast { grid-template-columns: 1fr; }
  .jnw-noreaster-prep ul { grid-template-columns: 1fr; }
  .jnw-winter-resource-grid { grid-template-columns: 1fr 1fr; }
  .jnw-winter-resource-grid a { min-height: 9rem; }
  .jnw-road-hero { grid-template-columns: 3.5rem 1fr; padding: 1rem; }
  .jnw-road-hero-icon { border-radius: 1rem; height: 3.5rem; width: 3.5rem; }
  .jnw-road-hero-icon span { font-size: 1.8rem; }
  .jnw-road-hero p { font-size: .82rem; }
  .jnw-road-route-fields { align-items: stretch; grid-template-columns: 1fr 2.8rem; }
  .jnw-road-location-field:last-child { grid-column: 1; grid-row: 2; }
  .jnw-road-swap { align-self: center; grid-column: 2; grid-row: 1 / 3; margin: 0; transform: rotate(0); }
  .jnw-road-swap.is-swapping { transform: rotate(180deg); }
  .jnw-road-summary { grid-template-columns: auto 1fr; }
  .jnw-road-summary-stats { grid-column: 1 / -1; }
  .jnw-road-summary-stats span { flex: 1; }
  .jnw-road-map { height: 20rem; }
  .jnw-road-stop-body > header { grid-template-columns: 5.7rem 1fr; }
  .jnw-road-stop-time { min-width: 5.7rem; }
  .jnw-road-stop-conditions { grid-template-columns: 3rem auto minmax(0,1fr); }
  .jnw-road-stop-icon { height: 3rem; width: 3rem; }
  .jnw-road-stop-temp { font-size: 1.45rem; }
}

@media (max-width: 390px) {
  .jnw-current-feature-metrics { grid-template-columns: 5rem minmax(8.2rem,1fr) 4.6rem; }
  .jnw-more-sheet { padding-left: 1rem; padding-right: 1rem; }
  .jnw-more-option { min-height: 4.5rem; }
  .jnw-more-option strong { font-size: 1.45rem; }
  .jnw-secondary-inner { padding-left: .65rem; padding-right: .65rem; }
	.jnw-storm-hero h2 { font-size: 2.25rem; }
	.jnw-storm-mode-rail b { font-size: .68rem; }
	.jnw-storm-mode-rail small { display: none; }
	.jnw-storm-map-disclosure > summary { gap: .65rem; grid-template-columns: 2.8rem minmax(0,1fr) auto; padding: .7rem; }
	.jnw-storm-map-icon { border-radius: .7rem; height: 2.8rem; width: 2.8rem; }
	.jnw-storm-map-disclosure > summary small { font-size: .7rem; }
	.jnw-storm-map-disclosure > summary em { font-size: .68rem; }
	.jnw-storm-map-layout > .jnw-storm-map-legend { grid-template-columns: 1fr; }
	.jnw-storm-map-layout > .jnw-storm-map-legend strong { grid-column: 1; }
	.jnw-storm-map-frame { padding: .7rem .45rem .5rem; }
	.jnw-storm-map-stage { width: 100%; }
	.jnw-storm-section-heading { align-items: start; }
	.jnw-storm-section-heading > span { max-width: 7rem; }
	.jnw-storm-tracker { padding: .9rem; }
	.jnw-storm-tracker header { gap: .5rem; grid-template-columns: 2.85rem 1fr auto; }
	.jnw-storm-tracker-icon { border-radius: .75rem; height: 2.85rem; width: 2.85rem; }
	.jnw-storm-tracker-icon svg { height: 2rem; width: 2rem; }
	.jnw-storm-tracker header > b { font-size: .65rem; padding: .42rem .55rem; }
	.jnw-storm-mode-guide ol { grid-template-columns: 1fr 1fr; }
	.jnw-rainfall-section > summary { padding: .85rem; }
	.jnw-rainfall-section > summary .jnw-storm-section-heading > span { display: none; }
	.jnw-rainfall-disclosure-body { padding: 0 .7rem .7rem; }
  .jnw-climate-controls { grid-template-columns: 1fr; }
  .jnw-climate-controls > b { text-align: center; }
  .jnw-climate-comparisons { grid-template-columns: 1fr; }
  .jnw-tropical-basin-tabs button { font-size: .74rem; min-height: 3rem; }
  .jnw-tropical-map-badge { left: .65rem; top: .65rem; }
  .jnw-more-sheet { max-height: calc(100vh - 5.5rem); overflow-y: auto; }
  .jnw-noreaster-mode-list { grid-template-columns: 1fr; }
  .jnw-noreaster-compare-grid article { gap: .75rem; grid-template-columns: 2.8rem 1fr; padding: .95rem; }
  .jnw-noreaster-line-icon { font-size: 1.35rem; height: 2.8rem; width: 2.8rem; }
  .jnw-noreaster-heading > img { height: 4.6rem; }
  .jnw-winter-resource-grid { grid-template-columns: 1fr; }
  .jnw-winter-resource-grid a { min-height: 8.3rem; }
  .jnw-noreaster-history-list summary { gap: .6rem; grid-template-columns: 3.3rem 1fr auto; padding: .85rem; }
  .jnw-noreaster-history-list summary > span { font-size: 1.05rem; }
  .jnw-noreaster-history-list summary strong { font-size: 1.1rem; }
  .jnw-road-planner { padding: .8rem; }
  .jnw-road-hero { gap: .7rem; grid-template-columns: 1fr; }
  .jnw-road-hero-icon { display: none; }
  .jnw-road-map { height: 18rem; }
  .jnw-road-section-heading > a { max-width: 7rem; text-align: right; }
  .jnw-road-stop { gap: .45rem; grid-template-columns: .9rem minmax(0,1fr); }
  .jnw-road-stop-body { padding-right: .75rem; }
  .jnw-road-stop-body > header { gap: .55rem; grid-template-columns: 5.15rem 1fr; }
  .jnw-road-stop-time { min-width: 5.15rem; padding: .45rem .3rem; }
  .jnw-road-stop-body h3 { font-size: 1.05rem; }
  .jnw-road-stop-conditions { gap: .4rem; grid-template-columns: 2.5rem auto minmax(0,1fr); }
  .jnw-road-stop-icon { height: 2.5rem; width: 2.5rem; }
  .jnw-road-stop-temp { font-size: 1.2rem; }
  .jnw-road-stop-conditions b { font-size: .78rem; }
  .jnw-road-stop-actions { flex-direction: column; }
}

/* 0.23.0: matching Storm Desk icon plus statewide fishing and water forecasts. */
.jnw-more-sheet { max-height: calc(100vh - 5.5rem); overflow-y: auto; }
.jnw-more-option-icon.is-stormdesk { color: #67ceff; filter: drop-shadow(0 0 9px rgba(81,193,255,.28)); }
.jnw-more-option-icon.is-stormdesk svg,
.jnw-more-option-icon.is-fishing svg,
.jnw-more-option-icon.is-marine svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; }
.jnw-more-option-icon.is-stormdesk .jnw-storm-radar-sweep { fill: rgba(100,207,255,.16); stroke-width: 1.7; }
.jnw-more-option-icon.is-stormdesk .jnw-storm-radar-bolt { fill: #ffd161; stroke: #ffd161; }
.jnw-more-option-icon.is-fishing { color: #63e1af; filter: drop-shadow(0 0 8px rgba(81,220,166,.25)); }
.jnw-more-option-icon.is-marine { color: #60bfff; filter: drop-shadow(0 0 8px rgba(71,169,255,.25)); }
.jnw-more-option-icon.is-fishing svg,
.jnw-more-option-icon.is-marine svg { height: 2.45rem; width: 2.45rem; }

.jnw-water-inner { gap: 1.65rem; max-width: 76rem; }
.jnw-water-hero { align-items: center; display: grid; gap: 1.25rem; grid-template-columns: auto minmax(0,1fr) auto; overflow: hidden; padding: clamp(1.15rem,3vw,1.75rem); position: relative; }
.jnw-water-hero:after { content: ""; inset: 0; pointer-events: none; position: absolute; }
.jnw-fishing-hero { background: linear-gradient(130deg,rgba(13,68,70,.98),rgba(7,31,55,.98)); border-color: rgba(86,226,173,.25); }
.jnw-fishing-hero:after { background: radial-gradient(circle at 82% 15%,rgba(79,226,171,.16),transparent 25rem); }
.jnw-marine-hero { background: linear-gradient(130deg,rgba(8,50,85,.98),rgba(5,27,53,.98)); border-color: rgba(81,183,255,.28); }
.jnw-marine-hero:after { background: radial-gradient(circle at 82% 15%,rgba(77,180,255,.2),transparent 25rem); }
.jnw-water-hero > * { position: relative; z-index: 1; }
.jnw-water-hero-icon { align-items: center; background: rgba(255,255,255,.06); border: 1px solid rgba(160,205,232,.2); border-radius: 1.25rem; display: flex; height: 5.3rem; justify-content: center; width: 5.3rem; }
.jnw-water-hero-icon svg { fill: none; height: 3.55rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.4; width: 3.55rem; }
.jnw-water-hero-icon.is-fishing { color: #68e5b5; }
.jnw-water-hero-icon.is-marine { color: #64c5ff; }
.jnw-water-hero small,
.jnw-water-section-heading small,
.jnw-water-detail header small,
.jnw-tide-station > small { color: #66caff; font-size: .66rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.jnw-fishing-hero small { color: #72e9ba; }
.jnw-fishing-purpose { color: #7ee6bd !important; font-size: .72rem !important; font-weight: 850; letter-spacing: .02em; margin-top: .6rem !important; }
.jnw-water-hero h2 { font-size: clamp(2rem,5.4vw,3.4rem); letter-spacing: -.055em; line-height: .98; margin: .35rem 0 .55rem; }
.jnw-water-hero p { color: #bdcbd9; line-height: 1.55; margin: 0; max-width: 48rem; }
.jnw-water-hero-meta { color: #8297ad; display: flex; flex-wrap: wrap; font-size: .67rem; font-weight: 780; gap: .45rem 1rem; margin-top: .8rem; }
.jnw-water-rating { background: rgba(83,219,160,.13); border: 1px solid rgba(83,219,160,.38); border-radius: 999px; color: #73efb7; font-size: .72rem; font-weight: 1000; letter-spacing: .08em; padding: .6rem .75rem; white-space: nowrap; }
.jnw-water-rating.is-fair { background: rgba(100,198,255,.13); border-color: rgba(100,198,255,.38); color: #86d7ff; }
.jnw-water-rating.is-caution { background: rgba(255,208,85,.13); border-color: rgba(255,208,85,.4); color: #ffe07c; }
.jnw-water-rating.is-poor { background: rgba(255,103,124,.14); border-color: rgba(255,103,124,.42); color: #ff9aaa; }
.jnw-water-placeholder { min-height: 13rem; }
.jnw-fishing-live,
.jnw-marine-live { display: flex; flex-direction: column; gap: 2rem; }
.jnw-water-section-heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-water-section-heading h2 { font-size: clamp(2rem,6vw,3.15rem); letter-spacing: -.055em; line-height: 1; margin: .28rem 0 0; }
.jnw-water-section-heading > span,
.jnw-water-section-heading > b { color: #8296ad; font-size: .7rem; font-weight: 820; text-align: right; }
.jnw-water-section-heading > b { background: rgba(88,214,164,.12); border: 1px solid rgba(88,214,164,.3); border-radius: 999px; color: #71eab6; padding: .46rem .68rem; }
.jnw-water-section-heading > b.is-active { background: rgba(var(--jnw-warning-red-rgb),.13); border-color: rgba(var(--jnw-warning-red-rgb),.42); color: var(--jnw-warning-red-soft); }

.jnw-fishing-week { display: grid; gap: .65rem; grid-template-columns: repeat(7,minmax(9rem,1fr)); margin-top: .85rem; overflow-x: auto; overscroll-behavior-x: contain; padding-bottom: .45rem; scroll-snap-type: x proximity; }
.jnw-fishing-day { background: linear-gradient(155deg,#122a43,#0a1d34); border: 1px solid rgba(144,181,218,.17); border-top: .28rem solid #63dfa9; border-radius: 1.2rem; min-height: 15.7rem; padding: .9rem; }
.jnw-fishing-day.is-fair { border-top-color: #64c7ff; }
.jnw-fishing-day.is-caution { border-top-color: #ffd15b; }
.jnw-fishing-day.is-poor { border-top-color: #ff687c; }
.jnw-fishing-day.is-unavailable { border-top-color: #77889d; opacity: .7; }
.jnw-fishing-day-top { align-items: center; display: flex; justify-content: space-between; }
.jnw-fishing-day-top > strong { color: #aebed0; font-size: .75rem; letter-spacing: .08em; }
.jnw-fishing-day-top > b { color: #72e6b2; font-size: .73rem; text-transform: uppercase; }
.jnw-fishing-day.is-fair .jnw-fishing-day-top > b { color: #7dd2ff; }
.jnw-fishing-day.is-caution .jnw-fishing-day-top > b { color: #ffdb70; }
.jnw-fishing-day.is-poor .jnw-fishing-day-top > b { color: #ff8fa0; }
.jnw-fishing-day h3 { font-size: 1.12rem; line-height: 1.18; margin: 1rem 0 .45rem; }
.jnw-fishing-day > p { color: #aab9c9; font-size: .8rem; line-height: 1.48; margin: 0; min-height: 4.6rem; }
.jnw-water-stats { border-top: 1px solid rgba(153,183,216,.13); display: grid; gap: .4rem; margin-top: .8rem; padding-top: .7rem; }
.jnw-water-stats span { display: flex; justify-content: space-between; }
.jnw-water-stats small { color: #8096ae; font-size: .64rem; }
.jnw-water-stats strong { font-size: .78rem; text-align: right; }

.jnw-water-picker { display: flex; gap: .45rem; margin-top: .85rem; overflow-x: auto; padding-bottom: .35rem; scrollbar-width: none; }
.jnw-water-picker::-webkit-scrollbar { display: none; }
.jnw-water-picker button { background: #152c47; border: 1px solid rgba(143,180,219,.18); border-radius: 999px; color: #a8b8c9; cursor: pointer; flex: 0 0 auto; font-size: .76rem; font-weight: 850; min-height: 2.75rem; padding: .62rem .82rem; }
.jnw-water-picker button.selected { background: #236895; border-color: #6acbff; color: white; }
.jnw-water-picker button:focus-visible { outline: 2px solid #69ccff; outline-offset: 2px; }
.jnw-water-detail { margin-top: .6rem; padding: 1.15rem; }
.jnw-water-detail > header { align-items: start; border-bottom: 1px solid rgba(149,181,215,.14); display: flex; gap: 1rem; justify-content: space-between; padding-bottom: .9rem; }
.jnw-water-detail h3 { font-size: 1.65rem; letter-spacing: -.035em; margin: .25rem 0 0; }
.jnw-water-detail header a,
.jnw-water-detail > a,
.jnw-lake-card > a,
.jnw-tide-station > a,
.jnw-zone-official { color: #65caff; font-size: .7rem; font-weight: 900; }
.jnw-water-detail header a { align-items: center; background: rgba(88,198,255,.1); border: 1px solid rgba(100,203,255,.25); border-radius: .7rem; display: inline-flex; min-height: 2.75rem; padding: .62rem .75rem; text-decoration: none; }
.jnw-water-seven-list { display: grid; gap: .45rem; margin-top: .9rem; }
.jnw-water-seven-row { align-items: center; background: rgba(255,255,255,.025); border-radius: .75rem; display: grid; gap: .75rem; grid-template-columns: 3.4rem minmax(0,1fr); padding: .72rem .8rem; }
.jnw-water-seven-row > strong { color: #69ccff; font-size: .67rem; }
.jnw-water-seven-row > span { display: flex; flex-direction: column; gap: .2rem; }
.jnw-water-seven-row b { font-size: .88rem; line-height: 1.35; }
.jnw-water-seven-row small { color: #8da0b5; font-size: .72rem; line-height: 1.4; }
.jnw-water-unavailable { color: #9aabba; line-height: 1.55; }

.jnw-fishing-guide-grid { display: grid; gap: .7rem; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: .85rem; }
.jnw-fishing-guide-grid article { min-height: 13.5rem; padding: 1rem; }
.jnw-fishing-guide-grid article > span { color: #65dbaa; font-size: .72rem; font-weight: 950; }
.jnw-fishing-guide-grid h3 { font-size: 1.15rem; margin: .8rem 0 .45rem; }
.jnw-fishing-guide-grid p { color: #a8b7c7; font-size: .83rem; line-height: 1.55; margin: 0; }
.jnw-fishing-coast-note { background: rgba(99,198,255,.075); border: 1px solid rgba(101,200,255,.18); border-radius: .85rem; color: #aebfd0; font-size: .78rem; line-height: 1.55; margin: .85rem 0 0; padding: .8rem .9rem; }
.jnw-fishing-coast-note strong { color: #76d3ff; }
.jnw-water-resource-row { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .85rem; }
.jnw-water-resource-row a { align-items: center; background: #193451; border: 1px solid rgba(142,181,220,.2); border-radius: .75rem; color: #cae9fb; display: inline-flex; font-size: .74rem; font-weight: 880; min-height: 2.75rem; padding: .65rem .78rem; }
.jnw-water-resource-row a:hover,
.jnw-water-resource-row a:focus-visible { border-color: #68caff; outline: none; }
.jnw-water-source { color: #8496ac; font-size: .74rem; line-height: 1.55; margin: 0; text-align: center; }

.jnw-secondary-header [data-jnw-fishing-refresh].is-loading { animation: jnw-storm-refresh-spin .85s linear infinite; }
.jnw-secondary-header [data-jnw-fishing-refresh]:disabled { cursor: progress; opacity: .72; }

.jnw-marine-alerts { display: flex; flex-direction: column; gap: .6rem; margin-top: .8rem; }
.jnw-marine-clear,
.jnw-marine-alert { align-items: center; display: grid; gap: .8rem; grid-template-columns: auto minmax(0,1fr) auto; padding: .9rem 1rem; }
.jnw-marine-clear > span,
.jnw-marine-alert > span { align-items: center; background: rgba(83,222,165,.12); border: 1px solid rgba(83,222,165,.32); border-radius: 50%; color: #71ebb6; display: flex; font-weight: 950; height: 2.55rem; justify-content: center; width: 2.55rem; }
.jnw-marine-alert { border-left: .3rem solid #ff7184; }
.jnw-marine-alert > span { background: rgba(255,103,126,.12); border-color: rgba(255,103,126,.35); color: #ff97a6; }
.jnw-marine-clear strong,
.jnw-marine-alert strong { font-size: .98rem; }
.jnw-marine-clear p,
.jnw-marine-alert p { color: #a8b8c8; font-size: .76rem; margin: .22rem 0 0; }
.jnw-marine-alert small { color: #71869e; font-size: .64rem; }
.jnw-lake-grid { display: grid; gap: .7rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: .85rem; }
.jnw-lake-card { overflow: hidden; padding: 0; }
.jnw-lake-card summary,
.jnw-marine-zone summary { align-items: center; cursor: pointer; display: grid; gap: .8rem; grid-template-columns: minmax(0,1fr) auto auto; list-style: none; padding: 1rem; }
.jnw-lake-card summary::-webkit-details-marker,
.jnw-marine-zone summary::-webkit-details-marker { display: none; }
.jnw-lake-card summary > div,
.jnw-marine-zone summary > div { display: flex; flex-direction: column; }
.jnw-lake-card summary small,
.jnw-marine-zone summary small { color: #69caff; font-size: .59rem; font-weight: 950; letter-spacing: .1em; }
.jnw-lake-card summary strong,
.jnw-marine-zone summary strong { font-size: 1.08rem; margin-top: .2rem; }
.jnw-lake-card summary > span { color: #74d8ff; font-size: .76rem; font-weight: 850; }
.jnw-lake-card summary > i,
.jnw-marine-zone summary > i { color: #7290aa; font-size: 1.25rem; font-style: normal; transition: transform .2s ease; }
.jnw-lake-card[open] summary > i,
.jnw-marine-zone[open] summary > i { transform: rotate(45deg); }
.jnw-lake-lead { border-top: 1px solid rgba(144,180,215,.13); color: #bfccda; line-height: 1.55; margin: 0; padding: 1rem; }
.jnw-lake-days { display: grid; gap: .35rem; padding: 0 1rem .8rem; }
.jnw-lake-days > div { align-items: center; background: rgba(255,255,255,.025); border-radius: .65rem; display: grid; gap: .55rem; grid-template-columns: 3.2rem minmax(0,1fr) auto; padding: .6rem .7rem; }
.jnw-lake-days b { color: #68caff; font-size: .62rem; }
.jnw-lake-days span { font-size: .74rem; }
.jnw-lake-days small { color: #7e92a9; font-size: .62rem; text-align: right; }
.jnw-lake-card > a { display: inline-block; margin: 0 1rem 1rem; }

.jnw-marine-zone-list { display: flex; flex-direction: column; gap: .6rem; margin-top: .85rem; }
.jnw-marine-zone { overflow: hidden; padding: 0; }
.jnw-marine-zone summary { grid-template-columns: minmax(0,1fr) auto; }
.jnw-marine-zone summary span { color: #8195aa; font-size: .68rem; margin-top: .2rem; }
.jnw-marine-periods { border-top: 1px solid rgba(145,181,216,.14); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.jnw-marine-periods > div { border-bottom: 1px solid rgba(145,181,216,.1); padding: .9rem 1rem; }
.jnw-marine-periods > div:nth-child(odd) { border-right: 1px solid rgba(145,181,216,.1); }
.jnw-marine-periods strong { color: #70cfff; font-size: .75rem; }
.jnw-marine-periods p { color: #b1bfce; font-size: .78rem; line-height: 1.55; margin: .3rem 0 0; }
.jnw-zone-official { display: inline-block; margin: .85rem 1rem 1rem; }

.jnw-tide-station-grid { display: grid; gap: .7rem; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: .85rem; }
.jnw-tide-station { padding: 1rem; }
.jnw-tide-station h3 { font-size: 1.16rem; margin: .35rem 0 .8rem; }
.jnw-tide-events-list { display: grid; gap: .38rem; }
.jnw-tide-events-list > div { align-items: center; background: rgba(255,255,255,.03); border-radius: .65rem; display: grid; gap: .45rem; grid-template-columns: 2.8rem 1fr auto; padding: .6rem; }
.jnw-tide-events-list b { color: #68caff; font-size: .64rem; text-transform: uppercase; }
.jnw-tide-events-list b.is-low { color: #9aa9ba; }
.jnw-tide-events-list span { color: #aab9c8; font-size: .7rem; }
.jnw-tide-events-list strong { font-size: .78rem; }
.jnw-tide-station-name { color: #788da4; font-size: .61rem; line-height: 1.4; margin: .7rem 0; }

@media (max-width: 820px) {
  .jnw-water-hero { grid-template-columns: auto minmax(0,1fr); }
  .jnw-water-rating { grid-column: 1 / -1; justify-self: start; }
  .jnw-fishing-guide-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .jnw-tide-station-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 620px) {
  .jnw-fishing-view .jnw-secondary-header { min-height: 4.9rem; }
  .jnw-fishing-view .jnw-secondary-header h1 { font-size: clamp(1.45rem,6.4vw,1.8rem); }
  .jnw-water-inner { padding-left: .7rem; padding-right: .7rem; }
  .jnw-water-hero { gap: .85rem; grid-template-columns: 1fr; }
  .jnw-water-hero-icon { display: none; }
  .jnw-water-section-heading { align-items: start; }
  .jnw-water-section-heading > span { max-width: 8.5rem; }
  .jnw-fishing-week { grid-template-columns: repeat(7,minmax(15.5rem,82vw)); }
  .jnw-fishing-day { min-height: 0; scroll-snap-align: start; }
  .jnw-fishing-day > p { min-height: 0; }
  .jnw-water-detail > header { flex-direction: column; }
  .jnw-water-detail header a { justify-content: center; width: 100%; }
  .jnw-water-section-heading > span { line-height: 1.35; }
  .jnw-fishing-guide-grid,
  .jnw-lake-grid,
  .jnw-tide-station-grid { grid-template-columns: 1fr; }
  .jnw-fishing-guide-grid article { min-height: 0; }
  .jnw-lake-days > div { grid-template-columns: 2.8rem minmax(0,1fr); }
  .jnw-lake-days small { grid-column: 2; text-align: left; }
  .jnw-marine-periods { grid-template-columns: 1fr; }
  .jnw-marine-periods > div:nth-child(odd) { border-right: 0; }
  .jnw-marine-clear,
  .jnw-marine-alert { align-items: start; grid-template-columns: auto minmax(0,1fr); }
  .jnw-marine-alert > :last-child { display: none; }
}

/* 0.46.20: nationwide U.S. Storm Center with 14 regional alert desks. */
.jnw-more-option-icon.is-usstorm { color: #67d2ff; filter: drop-shadow(0 0 9px rgba(77, 191, 255, .3)); }
.jnw-more-option-icon.is-usstorm svg { fill: rgba(103, 210, 255, .08); stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.15; }
.jnw-more-option-icon.is-usstorm svg circle { fill: var(--jnw-warning-red); stroke: #ffb4ae; stroke-width: 1.4; }
.jnw-us-storm-inner { max-width: 80rem; }
.jnw-us-storm-view .jnw-secondary-header h1 { font-size: clamp(1.75rem, 6vw, 2.8rem); }
.jnw-us-storm-placeholder { min-height: 20rem; }
.jnw-us-storm-live { display: flex; flex-direction: column; gap: 1.75rem; }
.jnw-us-storm-hero {
  background: radial-gradient(circle at 88% 25%, rgba(70, 175, 240, .22), transparent 25rem), linear-gradient(135deg, rgba(11, 45, 80, .99), rgba(4, 22, 44, .99));
  border-color: rgba(90, 196, 255, .34);
  padding: clamp(1.15rem, 4vw, 1.8rem);
}
.jnw-us-storm-hero.is-quiet { border-top: .34rem solid #4ee39b; }
.jnw-us-storm-hero.is-watching { border-top: .34rem solid #f5cf55; }
.jnw-us-storm-hero.is-elevated { border-top: .34rem solid #ff983e; }
.jnw-us-storm-hero.is-flood { border-top: .34rem solid var(--jnw-flood-green); box-shadow: inset 0 0 0 1px rgba(var(--jnw-flood-green-rgb), .14), 0 1.2rem 3rem rgba(0, 5, 17, .3); }
.jnw-us-storm-hero.is-active { border-top: .34rem solid var(--jnw-warning-red); box-shadow: inset 0 0 0 1px rgba(var(--jnw-warning-red-rgb), .15), 0 1.2rem 3rem rgba(0, 5, 17, .3); }
.jnw-us-storm-hero h2 { font-size: clamp(2.15rem, 6.4vw, 4rem); letter-spacing: -.065em; line-height: .95; margin: .8rem 0 .6rem; max-width: 58rem; text-wrap: balance; }
.jnw-us-storm-hero > p { color: #c1d0df; font-size: clamp(1rem, 2.3vw, 1.18rem); font-weight: 680; line-height: 1.55; margin: 0; max-width: 49rem; }
.jnw-us-storm-stats { display: grid; gap: .8rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.jnw-us-storm-stats article { background: linear-gradient(155deg, rgba(16, 48, 78, .97), rgba(6, 26, 49, .98)); min-width: 0; padding: 1rem; }
.jnw-us-storm-stats small { color: #75caef; display: block; font-size: .62rem; font-weight: 950; letter-spacing: .1em; line-height: 1.35; }
.jnw-us-storm-stats strong { display: block; font-size: clamp(2rem, 5vw, 3.15rem); letter-spacing: -.055em; line-height: 1; margin: .42rem 0 .3rem; }
.jnw-us-storm-stats span { color: #8fa4ba; display: block; font-size: .72rem; line-height: 1.4; }
.jnw-us-region-section { display: flex; flex-direction: column; gap: .9rem; }
.jnw-us-region-grid { display: grid; gap: .65rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.jnw-us-region-grid button {
  background: linear-gradient(145deg, rgba(14, 44, 73, .96), rgba(7, 27, 51, .98));
  border: 1px solid rgba(142, 182, 220, .2);
  border-radius: 1rem;
  color: #eff7ff;
  cursor: pointer;
  display: grid;
  gap: .2rem .55rem;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 5rem;
  padding: .78rem .85rem;
  text-align: left;
}
.jnw-us-region-grid button > span { font-size: .91rem; font-weight: 930; line-height: 1.15; }
.jnw-us-region-grid button > b { align-items: center; background: rgba(78, 227, 155, .12); border: 1px solid rgba(78, 227, 155, .28); border-radius: 999px; color: #79ebb3; display: inline-flex; font-size: .68rem; font-weight: 1000; justify-content: center; min-width: 1.8rem; padding: .27rem .42rem; }
.jnw-us-region-grid button > small { color: #8297ad; font-size: .65rem; grid-column: 1 / -1; line-height: 1.35; }
.jnw-us-region-grid button.has-alerts.is-watching > b { background: rgba(245, 207, 85, .13); border-color: rgba(245, 207, 85, .38); color: #ffe381; }
.jnw-us-region-grid button.has-alerts.is-elevated > b { background: rgba(255, 152, 62, .14); border-color: rgba(255, 152, 62, .4); color: #ffbd7b; }
.jnw-us-region-grid button.has-alerts.is-flood > b { background: rgba(var(--jnw-flood-green-rgb), .17); border-color: rgba(var(--jnw-flood-green-rgb), .58); color: var(--jnw-flood-green-soft); }
.jnw-us-region-grid button.has-alerts.is-active > b { background: rgba(var(--jnw-warning-red-rgb), .14); border-color: rgba(var(--jnw-warning-red-rgb), .46); color: var(--jnw-warning-red-soft); }
.jnw-us-region-grid button:hover { border-color: rgba(100, 207, 255, .56); transform: translateY(-1px); }
.jnw-us-region-grid button:focus-visible { outline: 3px solid rgba(100, 207, 255, .3); outline-offset: 2px; }
.jnw-us-region-grid button.selected { background: linear-gradient(145deg, rgba(22, 83, 122, .98), rgba(8, 40, 70, .99)); border-color: #69d2ff; box-shadow: 0 0 0 2px rgba(105, 210, 255, .1), 0 .8rem 1.8rem rgba(0, 8, 22, .24); }
.jnw-us-region-grid button.selected > small { color: #b8d6ea; }
.jnw-us-map-panel { border-color: rgba(89, 198, 255, .36); overflow: hidden; padding: 0; scroll-margin-top: 6.5rem; }
.jnw-us-map-panel > header { align-items: center; background: rgba(7, 31, 57, .88); display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 1.1rem; }
.jnw-us-map-panel > header small { color: #69ccf7; font-size: .67rem; font-weight: 950; letter-spacing: .1em; }
.jnw-us-map-panel > header h2 { font-size: clamp(1.9rem, 5vw, 3rem); letter-spacing: -.055em; line-height: 1; margin: .35rem 0 .3rem; }
.jnw-us-map-panel > header p { color: #9db1c5; font-size: .78rem; line-height: 1.45; margin: 0; }
.jnw-us-map-panel > header > b,
.jnw-us-alert-section .jnw-storm-section-heading > b { background: rgba(78, 227, 155, .12); border: 1px solid rgba(78, 227, 155, .32); border-radius: 999px; color: #79ebb3; flex: 0 0 auto; font-size: .66rem; font-weight: 1000; letter-spacing: .06em; padding: .48rem .65rem; }
.jnw-us-map-panel > header > b.is-watching,
.jnw-us-alert-section .jnw-storm-section-heading > b.is-watching { background: rgba(245, 207, 85, .13); border-color: rgba(245, 207, 85, .38); color: #ffe381; }
.jnw-us-map-panel > header > b.is-elevated,
.jnw-us-alert-section .jnw-storm-section-heading > b.is-elevated { background: rgba(255, 152, 62, .14); border-color: rgba(255, 152, 62, .4); color: #ffbd7b; }
.jnw-us-map-panel > header > b.is-flood,
.jnw-us-alert-section .jnw-storm-section-heading > b.is-flood { background: rgba(var(--jnw-flood-green-rgb), .17); border-color: rgba(var(--jnw-flood-green-rgb), .58); color: var(--jnw-flood-green-soft); }
.jnw-us-map-panel > header > b.is-active,
.jnw-us-alert-section .jnw-storm-section-heading > b.is-active { background: rgba(var(--jnw-warning-red-rgb), .14); border-color: rgba(var(--jnw-warning-red-rgb), .46); color: var(--jnw-warning-red-soft); }
.jnw-us-map-frame { background: linear-gradient(180deg, rgba(22, 68, 105, .72), rgba(5, 23, 44, .62)); display: grid; min-height: 29rem; padding: clamp(.7rem, 2.4vw, 1.4rem); place-items: center; position: relative; }
.jnw-us-map-halo { background: radial-gradient(ellipse, rgba(84, 192, 255, .2), transparent 67%); filter: blur(5px); inset: 3%; position: absolute; }
.jnw-us-map-stage { aspect-ratio: 8 / 5; max-height: 43rem; position: relative; width: 100%; z-index: 2; }
.jnw-us-map-stage svg { display: block; filter: drop-shadow(0 1.2rem 1.8rem rgba(0, 7, 19, .44)); height: 100%; overflow: visible; width: 100%; }
.jnw-us-map-state { fill: #173b59; shape-rendering: geometricPrecision; stroke: rgba(238, 248, 255, .98); stroke-linejoin: round; stroke-width: 2.25; transition: fill .18s ease, filter .18s ease, opacity .18s ease; vector-effect: non-scaling-stroke; }
.jnw-us-map-state.is-watching { fill: #e9c74f; }
.jnw-us-map-state.is-elevated { fill: #f78f38; }
.jnw-us-map-state.is-flood { fill: var(--jnw-flood-green); }
.jnw-us-map-state.is-active { fill: var(--jnw-warning-red); }
.jnw-us-map-state.is-outside-region { opacity: .055; pointer-events: none; }
.jnw-us-map-state[tabindex="0"] { cursor: pointer; }
.jnw-us-map-state[tabindex="0"]:hover,
.jnw-us-map-state[tabindex="0"]:focus { filter: brightness(1.2) drop-shadow(0 0 .35rem rgba(255, 255, 255, .74)); outline: none; stroke: #fff; stroke-width: 3.8; }
.jnw-us-map-label { pointer-events: none; transition: opacity .18s ease; }
.jnw-us-map-label.is-outside-region { opacity: 0; }
.jnw-us-map-label text { dominant-baseline: middle; fill: #fff; font-size: 15px; font-weight: 1000; letter-spacing: .035em; paint-order: stroke fill; stroke: #041427; stroke-linejoin: round; stroke-width: 4px; text-anchor: middle; }
.jnw-us-map-label-callout polyline { fill: none; filter: drop-shadow(0 0 1px rgba(0,5,15,1)); stroke: rgba(239,250,255,.98); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.75; vector-effect: non-scaling-stroke; }
.jnw-us-map-label-callout circle { fill: #fff; stroke: #041427; stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.jnw-us-map-label-callout text { font-size: 14px; text-anchor: start; }
.jnw-us-map-label-callout-top text { text-anchor: middle; }
.jnw-us-map-caption { background: rgba(3, 18, 36, .55); border-top: 1px solid rgba(144, 183, 218, .12); color: #9db1c4; font-size: .72rem; font-weight: 740; line-height: 1.5; margin: 0; padding: .75rem .9rem; text-align: center; }
.jnw-storm-map-legend .is-clear i { background: #173b59; border: 1px solid rgba(197, 226, 245, .65); }
.jnw-us-alert-section { display: flex; flex-direction: column; gap: .8rem; }
.jnw-us-fire-weather-intro { align-items: center; background: linear-gradient(145deg, rgba(13, 55, 63, .7), rgba(5, 29, 47, .88)); border: 1px solid rgba(78, 227, 155, .28); border-radius: 1.15rem; display: grid; gap: .9rem; grid-template-columns: auto minmax(0, 1fr); padding: 1rem; }
.jnw-us-fire-weather-intro.has-alerts { background: linear-gradient(145deg, rgba(92, 31, 23, .72), rgba(34, 20, 27, .92)); border-color: rgba(var(--jnw-warning-red-rgb), .42); }
.jnw-us-fire-weather-intro > span { align-items: center; background: rgba(78, 227, 155, .12); border: 1px solid rgba(78, 227, 155, .34); border-radius: 50%; color: #70edb0; display: flex; font-size: 1.1rem; font-weight: 950; height: 3rem; justify-content: center; width: 3rem; }
.jnw-us-fire-weather-intro.has-alerts > span { background: rgba(var(--jnw-warning-red-rgb), .14); border-color: rgba(var(--jnw-warning-red-rgb), .48); color: var(--jnw-warning-red-soft); }
.jnw-us-fire-weather-intro small { color: #77d6f7; display: block; font-size: .65rem; font-weight: 950; letter-spacing: .09em; }
.jnw-us-fire-weather-intro h3 { font-size: clamp(1.35rem, 4vw, 1.9rem); letter-spacing: -.035em; line-height: 1.05; margin: .3rem 0 0; }
.jnw-us-fire-weather-intro p { color: #b8c6d5; font-size: .84rem; line-height: 1.5; margin: .42rem 0 0; }
.jnw-us-fire-weather-list { display: flex; flex-direction: column; gap: .6rem; margin-top: .85rem; }
.jnw-us-storm-resources,
.jnw-us-storm-local { align-items: center; background: linear-gradient(145deg, rgba(14, 45, 75, .98), rgba(5, 24, 47, .98)); display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) auto; padding: 1.15rem; }
.jnw-us-storm-resources small,
.jnw-us-storm-local small { color: #70cff7; font-size: .65rem; font-weight: 950; letter-spacing: .1em; }
.jnw-us-storm-resources h2,
.jnw-us-storm-local h2 { font-size: clamp(1.65rem, 4.5vw, 2.4rem); letter-spacing: -.05em; line-height: 1; margin: .35rem 0 .45rem; }
.jnw-us-storm-resources p,
.jnw-us-storm-local p { color: #9fb2c7; font-size: .82rem; line-height: 1.5; margin: 0; max-width: 42rem; }
.jnw-us-storm-resources > div:last-child { display: grid; gap: .55rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jnw-us-storm-resources a,
.jnw-us-storm-resources button,
.jnw-us-storm-local button { align-items: center; background: rgba(91, 190, 242, .11); border: 1px solid rgba(91, 190, 242, .32); border-radius: .8rem; color: #dff5ff; cursor: pointer; display: inline-flex; font-size: .72rem; font-weight: 900; justify-content: center; min-height: 2.9rem; padding: .65rem .8rem; text-align: center; text-decoration: none; }
.jnw-us-storm-resources button { font-family: inherit; gap: .45rem; }
.jnw-us-storm-resources button > b { background: rgba(105, 210, 255, .12); border: 1px solid rgba(105, 210, 255, .25); border-radius: 999px; color: #8ddfff; font-size: .59rem; padding: .23rem .35rem; white-space: nowrap; }
.jnw-us-storm-resources button.has-alerts { border-color: rgba(var(--jnw-warning-red-rgb), .5); }
.jnw-us-storm-resources button.has-alerts > b { background: rgba(var(--jnw-warning-red-rgb), .16); border-color: rgba(var(--jnw-warning-red-rgb), .45); color: var(--jnw-warning-red-soft); }
.jnw-us-storm-resources button:disabled { cursor: wait; opacity: .62; }
.jnw-us-storm-local button { background: #4cc3f2; border-color: #89ddff; color: #032039; }
.jnw-us-storm-resources a:hover,
.jnw-us-storm-resources a:focus-visible,
.jnw-us-storm-resources button:not(:disabled):hover,
.jnw-us-storm-resources button:not(:disabled):focus-visible,
.jnw-us-storm-local button:hover,
.jnw-us-storm-local button:focus-visible { filter: brightness(1.12); outline: 3px solid rgba(105, 210, 255, .22); outline-offset: 2px; }

@media (max-width: 920px) {
  .jnw-us-storm-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jnw-us-region-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jnw-us-storm-resources,
  .jnw-us-storm-local { align-items: stretch; grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .jnw-us-storm-live { gap: 1.3rem; }
  .jnw-us-storm-hero { padding: 1.05rem; }
  .jnw-us-storm-stats { gap: .6rem; }
  .jnw-us-storm-stats article { padding: .85rem; }
  .jnw-us-storm-stats strong { font-size: 2.1rem; }
  .jnw-us-region-grid { display: flex; gap: .55rem; margin-inline: -1rem; overflow-x: auto; padding: 0 1rem .45rem; scroll-padding-inline: 1rem; scroll-snap-type: x mandatory; }
  .jnw-us-region-grid button { flex: 0 0 min(82vw, 18rem); min-height: 4.4rem; padding: .7rem .8rem; scroll-snap-align: start; }
  .jnw-us-map-panel > header { align-items: flex-start; flex-direction: column; }
  .jnw-us-map-panel > header > b { align-self: flex-start; }
  .jnw-us-map-frame { min-height: 20rem; padding: .45rem; }
  .jnw-us-map-stage { aspect-ratio: 4 / 3; }
  .jnw-us-storm-resources > div:last-child { grid-template-columns: 1fr; }
  .jnw-us-storm-local button { width: 100%; }
  .jnw-us-alert-section .jnw-storm-section-heading { align-items: flex-start; flex-direction: column; }
}

/* 0.24.0: Maine Live Cameras with official Windy players and FAA coverage. */
.jnw-more-option-icon.is-cameras { color: #82d8ff; filter: drop-shadow(0 0 8px rgba(94,194,255,.27)); }
.jnw-more-option-icon.is-cameras svg { fill: none; height: 2.45rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.4; width: 2.45rem; }
.jnw-more-option-icon.is-cameras .jnw-camera-live-dot,
.jnw-camera-hero-icon .jnw-camera-live-dot { fill: #ff6c7e; stroke: #ff6c7e; }

.jnw-camera-inner { gap: 2rem; max-width: 76rem; }
.jnw-camera-hero { align-items: center; background: linear-gradient(130deg,rgba(11,52,83,.99),rgba(7,27,52,.99)); border-color: rgba(99,197,255,.26); display: grid; gap: 1.25rem; grid-template-columns: auto minmax(0,1fr); overflow: hidden; padding: clamp(1.2rem,3vw,1.8rem); position: relative; }
.jnw-camera-hero:after { background: radial-gradient(circle at 88% 12%,rgba(93,198,255,.2),transparent 26rem); content: ""; inset: 0; pointer-events: none; position: absolute; }
.jnw-camera-hero > * { position: relative; z-index: 1; }
.jnw-camera-hero-icon { align-items: center; background: rgba(104,203,255,.1); border: 1px solid rgba(115,210,255,.28); border-radius: 1.25rem; color: #83dcff; display: flex; height: 5.4rem; justify-content: center; width: 5.4rem; }
.jnw-camera-hero-icon svg { fill: none; height: 3.55rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.4; width: 3.55rem; }
.jnw-camera-hero small,
.jnw-camera-section-heading small { color: #70ceff; font-size: .67rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.jnw-camera-hero h2 { font-size: clamp(2rem,5.5vw,3.45rem); letter-spacing: -.055em; line-height: .98; margin: .38rem 0 .55rem; }
.jnw-camera-hero p { color: #bdcbd9; line-height: 1.58; margin: 0; max-width: 51rem; }
.jnw-camera-section-heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-camera-section-heading h2 { font-size: clamp(2rem,6vw,3.15rem); letter-spacing: -.055em; line-height: 1; margin: .3rem 0 0; }
.jnw-camera-section-heading > span { color: #8196ad; font-size: .7rem; font-weight: 820; max-width: 17rem; text-align: right; }

/* 0.44.8: statewide credited Beach, Surf & Coastal Cams directory. */
.jnw-beach-camera-section { scroll-margin-top: 1rem; }
.jnw-beach-camera-intro { align-items: center; background: linear-gradient(135deg,rgba(13,61,83,.98),rgba(8,32,57,.98)); border-color: rgba(89,205,238,.28); display: flex; gap: 1rem; justify-content: space-between; margin-top: .9rem; padding: 1rem 1.15rem; }
.jnw-beach-camera-intro strong { color: #f4fbff; display: block; font-size: 1rem; }
.jnw-beach-camera-intro p { color: #9fb6c9; font-size: .78rem; line-height: 1.55; margin: .35rem 0 0; max-width: 47rem; }
.jnw-beach-camera-intro button { background: #197fa8; border: 1px solid rgba(111,220,248,.45); border-radius: .85rem; color: #fff; cursor: pointer; flex: 0 0 auto; font-size: .76rem; font-weight: 900; padding: .76rem .9rem; }
.jnw-beach-camera-intro button:hover,
.jnw-beach-camera-intro button:focus-visible { background: #2096c2; border-color: #8ce6ff; outline: none; }
.jnw-beach-camera-group { margin-top: 1.15rem; }
.jnw-beach-camera-group + .jnw-beach-camera-group { border-top: 1px solid rgba(112,193,229,.17); margin-top: 1.4rem; padding-top: 1.3rem; }
.jnw-beach-camera-group-heading { align-items: end; display: flex; gap: .8rem; justify-content: space-between; }
.jnw-beach-camera-group-heading h3 { color: #edf9ff; font-size: 1.15rem; letter-spacing: -.02em; margin: 0; }
.jnw-beach-camera-group-heading span { color: #7790a8; font-size: .67rem; font-weight: 820; text-align: right; }
.jnw-beach-camera-grid { display: grid; gap: .72rem; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: .68rem; }
.jnw-beach-camera-card { background: linear-gradient(150deg,rgba(18,49,76,.98),rgba(8,25,46,.98)); border-color: rgba(104,193,230,.18); display: flex; flex-direction: column; min-height: 15.25rem; padding: 1rem; }
.jnw-beach-camera-card > span { color: #71d9f7; font-size: .64rem; font-weight: 950; letter-spacing: .12em; }
.jnw-beach-camera-card h4 { color: #f4fbff; font-size: 1.18rem; letter-spacing: -.02em; margin: .85rem 0 .4rem; }
.jnw-beach-camera-card p { color: #9fb1c3; font-size: .77rem; line-height: 1.55; margin: 0 0 .8rem; }
.jnw-beach-camera-card small { color: #7990a7; display: block; font-size: .65rem; line-height: 1.45; margin: auto 0 .75rem; }
.jnw-beach-camera-card a { align-items: center; align-self: flex-start; background: #1d7297; border: 1px solid rgba(112,215,246,.38); border-radius: .72rem; color: #fff; display: inline-flex; font-size: .72rem; font-weight: 900; min-height: 2.35rem; padding: .58rem .78rem; }
.jnw-beach-camera-card a:hover,
.jnw-beach-camera-card a:focus-visible { background: #258bb5; border-color: #87e2fc; outline: none; }

.jnw-camera-courtesy,
.jnw-camera-source { color: #7f91a8; font-size: .7rem; line-height: 1.58; margin: .7rem 0 0; text-align: center; }
.jnw-camera-courtesy a,
.jnw-camera-source a { color: #68ccff; font-weight: 850; }

.jnw-camera-region-tabs { display: flex; gap: .45rem; margin-top: .9rem; overflow-x: auto; padding-bottom: .35rem; scrollbar-width: none; }
.jnw-camera-region-tabs::-webkit-scrollbar { display: none; }
.jnw-camera-region-tabs button { background: #152d49; border: 1px solid rgba(143,181,220,.18); border-radius: 999px; color: #aab9ca; cursor: pointer; flex: 0 0 auto; font-size: .74rem; font-weight: 880; padding: .62rem .8rem; }
.jnw-camera-region-tabs button:hover,
.jnw-camera-region-tabs button:focus-visible { border-color: #6ed0ff; color: #fff; outline: none; }
.jnw-camera-region-tabs button.selected { background: #236b99; border-color: #73d2ff; color: white; box-shadow: inset 0 -2px 0 rgba(119,220,255,.45); }
.jnw-faa-camera-map { background: #091a2d; border-radius: 1.5rem; height: clamp(34rem,70vw,48rem); margin-top: .55rem; overflow: hidden; padding: 0; position: relative; }
.jnw-faa-camera-map iframe { background: #e7edf1; border: 0; display: block; height: 100%; width: 100%; }
.jnw-camera-map-loading { align-items: center; background: linear-gradient(145deg,rgba(9,28,49,.98),rgba(5,18,34,.98)); display: flex; flex-direction: column; gap: .75rem; inset: 0; justify-content: center; position: absolute; z-index: 2; }
.jnw-camera-map-loading[hidden] { display: none; }
.jnw-camera-map-loading span { animation: jnw-camera-spin .9s linear infinite; border: 3px solid rgba(255,255,255,.2); border-radius: 50%; border-top-color: #72d2ff; height: 2.5rem; width: 2.5rem; }
.jnw-camera-map-loading strong { color: #eaf6ff; font-size: .9rem; }
@keyframes jnw-camera-spin { to { transform: rotate(360deg); } }
.jnw-camera-map-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .7rem; }
.jnw-camera-map-actions a { background: #193451; border: 1px solid rgba(142,181,220,.22); border-radius: .8rem; color: #d5effd; font-size: .72rem; font-weight: 880; padding: .68rem .8rem; }
.jnw-camera-map-actions a:first-child { background: #2474a5; border-color: rgba(114,210,255,.5); color: white; }
.jnw-camera-map-actions a:hover,
.jnw-camera-map-actions a:focus-visible { border-color: #70d2ff; outline: none; }

.jnw-camera-guide-grid { display: grid; gap: .75rem; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: .9rem; }
.jnw-camera-guide-grid article { min-height: 13rem; padding: 1.1rem; }
.jnw-camera-guide-grid article > span { color: #69ceff; font-size: .72rem; font-weight: 950; }
.jnw-camera-guide-grid h3 { font-size: 1.22rem; margin: 1.3rem 0 .5rem; }
.jnw-camera-guide-grid p { color: #9fafc1; font-size: .8rem; line-height: 1.58; margin: 0; }
.jnw-camera-source { margin: -1rem 0 0; }

@media (max-width: 760px) {
  .jnw-camera-inner { padding-left: .7rem; padding-right: .7rem; }
  .jnw-camera-hero { grid-template-columns: 1fr; }
  .jnw-camera-hero-icon { display: none; }
	.jnw-beach-camera-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .jnw-faa-camera-map { height: 34rem; }
  .jnw-camera-guide-grid { grid-template-columns: 1fr; }
  .jnw-camera-guide-grid article { min-height: 0; }
}

@media (max-width: 480px) {
  .jnw-camera-section-heading { align-items: start; }
  .jnw-camera-section-heading > span { max-width: 8.5rem; }
	.jnw-beach-camera-intro { align-items: stretch; flex-direction: column; }
	.jnw-beach-camera-intro button { width: 100%; }
	.jnw-beach-camera-group-heading { align-items: start; flex-direction: column; gap: .3rem; }
	.jnw-beach-camera-group-heading span { text-align: left; }
	.jnw-beach-camera-grid { grid-template-columns: 1fr; }
	.jnw-beach-camera-card { min-height: 0; }
  .jnw-faa-camera-map { border-radius: 1.15rem; height: 31rem; }
  .jnw-camera-map-actions { flex-direction: column; }
  .jnw-camera-map-actions a { text-align: center; }
}

/* 0.25.0: New England-first Tropical Center. */
.jnw-tropical-view .jnw-secondary-inner { max-width: 76rem; }
.jnw-tropical-ne-hero { background: linear-gradient(135deg,#0d423e,#09233c 72%); border-color: rgba(76,224,177,.3); overflow: hidden; padding: clamp(1.25rem,3.5vw,2rem); position: relative; }
.jnw-tropical-ne-hero:after { background: radial-gradient(circle at 90% 5%,rgba(71,228,182,.2),transparent 26rem); content: ""; inset: 0; pointer-events: none; position: absolute; }
.jnw-tropical-ne-hero[data-level="monitoring"] { background: linear-gradient(135deg,#503d0c,#152841 72%); border-color: rgba(255,206,82,.4); }
.jnw-tropical-ne-hero[data-level="monitoring"]:after { background: radial-gradient(circle at 90% 5%,rgba(255,202,67,.2),transparent 26rem); }
.jnw-tropical-ne-hero[data-level="active"] { background: linear-gradient(135deg,#5b1d2c,#172239 72%); border-color: rgba(255,101,125,.46); }
.jnw-tropical-ne-hero[data-level="active"]:after { background: radial-gradient(circle at 90% 5%,rgba(255,91,119,.24),transparent 26rem); }
.jnw-tropical-ne-hero > * { position: relative; z-index: 1; }
.jnw-tropical-ne-kicker { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-tropical-ne-kicker > span { color: #72e5be; font-size: .7rem; font-weight: 1000; letter-spacing: .12em; text-transform: uppercase; }
.jnw-tropical-ne-kicker > b { background: rgba(82,226,178,.13); border: 1px solid rgba(91,230,186,.42); border-radius: 999px; color: #7cf0c6; font-size: .68rem; font-weight: 1000; letter-spacing: .1em; padding: .48rem .68rem; }
.jnw-tropical-ne-hero[data-level="monitoring"] .jnw-tropical-ne-kicker > span { color: #ffdc72; }
.jnw-tropical-ne-hero[data-level="monitoring"] .jnw-tropical-ne-kicker > b { background: rgba(255,206,74,.13); border-color: rgba(255,209,83,.44); color: #ffe07b; }
.jnw-tropical-ne-hero[data-level="active"] .jnw-tropical-ne-kicker > span { color: #ff9bad; }
.jnw-tropical-ne-hero[data-level="active"] .jnw-tropical-ne-kicker > b { background: rgba(255,95,121,.14); border-color: rgba(255,113,137,.47); color: #ff9caf; }
.jnw-tropical-ne-hero > h2 { font-size: clamp(2.35rem,7vw,4.7rem); letter-spacing: -.065em; line-height: .94; margin: 1.35rem 0 .8rem; max-width: 57rem; text-wrap: balance; }
.jnw-tropical-ne-hero > p { color: #c4d2df; font-size: clamp(.98rem,2vw,1.16rem); line-height: 1.58; margin: 0; max-width: 57rem; }
.jnw-tropical-ne-metrics { border-top: 1px solid rgba(166,204,225,.16); display: grid; gap: .65rem; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 1.35rem; padding-top: 1rem; }
.jnw-tropical-ne-metrics > span { background: rgba(2,15,29,.3); border-radius: .9rem; display: flex; flex-direction: column; min-width: 0; padding: .85rem; }
.jnw-tropical-ne-metrics small { color: #7f98ae; font-size: .58rem; font-weight: 950; letter-spacing: .08em; }
.jnw-tropical-ne-metrics strong { font-size: clamp(.95rem,2vw,1.22rem); line-height: 1.2; margin-top: .35rem; overflow-wrap: anywhere; }

.jnw-tropical-take { border-left: .28rem solid #57ccff; padding: 1.35rem; }
.jnw-tropical-take-heading { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-tropical-take-heading small { color: #62cdff; font-size: .67rem; font-weight: 1000; letter-spacing: .11em; }
.jnw-tropical-take-heading time { color: #748ba2; font-size: .65rem; font-weight: 800; }
.jnw-tropical-take h2 { font-size: clamp(1.8rem,5vw,2.7rem); letter-spacing: -.05em; margin: .65rem 0 .55rem; }
.jnw-tropical-take > p { color: #b8c6d4; font-size: 1rem; line-height: 1.65; margin: 0; white-space: pre-line; }
.jnw-tropical-take footer { align-items: center; border-top: 1px solid rgba(149,183,216,.15); display: flex; gap: 1rem; justify-content: flex-start; margin-top: 1rem; padding-top: .9rem; }
.jnw-tropical-take footer strong { color: #e8f5ff; font-size: .78rem; }

.jnw-tropical-ne-alerts > div[data-jnw-tropical-ne-alert-list] { display: flex; flex-direction: column; gap: .7rem; }
.jnw-tropical-ne-alert { align-items: center; border-left: .28rem solid #ffd15c; display: grid; gap: .9rem; grid-template-columns: auto minmax(0,1fr); padding: 1rem 1.1rem; }
.jnw-tropical-ne-alert.is-active { border-left-color: var(--jnw-warning-red); }
.jnw-tropical-ne-alert.is-maine { box-shadow: inset 0 0 0 1px rgba(99,207,255,.32); }
.jnw-tropical-ne-alert > span { align-items: center; background: rgba(255,206,79,.12); border: 1px solid rgba(255,211,93,.35); border-radius: 50%; color: #ffdd76; display: flex; font-size: .68rem; font-weight: 1000; height: 2.75rem; justify-content: center; width: 2.75rem; }
.jnw-tropical-ne-alert.is-active > span { background: rgba(var(--jnw-warning-red-rgb),.12); border-color: rgba(var(--jnw-warning-red-rgb),.42); color: var(--jnw-warning-red-soft); }
.jnw-tropical-ne-alert h3 { font-size: 1.05rem; line-height: 1.25; margin: 0; }
.jnw-tropical-ne-alert p { color: #a8b8c8; font-size: .78rem; line-height: 1.4; margin: .28rem 0; }
.jnw-tropical-ne-alert small { color: #6fbfe9; font-size: .65rem; font-weight: 800; }
.jnw-tropical-ne-alert:hover,
.jnw-tropical-ne-alert:focus-visible { border-color: rgba(100,207,255,.5); outline: none; }
.jnw-tropical-ne-clear { align-items: center; display: grid; gap: .9rem; grid-template-columns: auto minmax(0,1fr); padding: 1rem 1.1rem; }
.jnw-tropical-ne-clear > span { align-items: center; background: rgba(82,221,168,.12); border: 1px solid rgba(82,221,168,.34); border-radius: 50%; color: #73eab8; display: flex; font-weight: 1000; height: 2.75rem; justify-content: center; width: 2.75rem; }
.jnw-tropical-ne-clear.is-unavailable > span { background: rgba(255,207,87,.12); border-color: rgba(255,207,87,.35); color: #ffdb72; }
.jnw-tropical-ne-clear strong { font-size: 1rem; }
.jnw-tropical-ne-clear p { color: #98aabc; font-size: .78rem; line-height: 1.45; margin: .25rem 0 0; }

.jnw-tropical-ne-guide > div:last-child { display: grid; gap: .75rem; grid-template-columns: repeat(4,minmax(0,1fr)); }
.jnw-tropical-ne-guide article { min-height: 14rem; padding: 1.05rem; }
.jnw-tropical-ne-guide article > span { color: #62ccff; font-size: .68rem; font-weight: 1000; letter-spacing: .1em; }
.jnw-tropical-ne-guide h3 { font-size: 1.22rem; letter-spacing: -.025em; margin: 1.4rem 0 .5rem; }
.jnw-tropical-ne-guide p { color: #9faec0; font-size: .79rem; line-height: 1.58; margin: 0; }
.jnw-tropical-explore > div { grid-template-columns: repeat(4,minmax(0,1fr)); }
.jnw-tropical-explore a { min-height: 12.5rem; }
.jnw-tropical-explore a.is-prep { background: linear-gradient(145deg,#174a3f,#0d2d2c); }
.jnw-tropical-explore a.is-cone { background: linear-gradient(145deg,#213f65,#132842); }
.jnw-tropical-explore a.is-rain { background: linear-gradient(145deg,#284566,#172c46); }
.jnw-tropical-explore a.is-rip { background: linear-gradient(145deg,#114a69,#10334d); }

@media (max-width: 880px) {
  .jnw-tropical-ne-guide > div:last-child,
  .jnw-tropical-explore > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .jnw-tropical-ne-guide article { min-height: 11.5rem; }
}

@media (max-width: 620px) {
  .jnw-tropical-view .jnw-secondary-inner { padding-left: .7rem; padding-right: .7rem; }
  .jnw-tropical-ne-hero { padding: 1.15rem; }
  .jnw-tropical-ne-hero > h2 { margin-top: 1.05rem; }
  .jnw-tropical-ne-metrics { grid-template-columns: 1fr; }
  .jnw-tropical-ne-metrics > span { align-items: center; flex-direction: row; justify-content: space-between; }
  .jnw-tropical-ne-metrics strong { margin: 0 0 0 .7rem; text-align: right; }
  .jnw-tropical-take-heading,
  .jnw-tropical-take footer,
  .jnw-tropical-section-heading { align-items: start; flex-direction: column; }
  .jnw-tropical-take footer { gap: .55rem; }
  .jnw-tropical-ne-guide > div:last-child,
  .jnw-tropical-explore > div { grid-template-columns: 1fr; }
  .jnw-tropical-ne-guide article,
  .jnw-tropical-explore a { min-height: 0; }
  .jnw-tropical-ne-guide h3,
  .jnw-tropical-explore a strong { margin-top: .8rem; }
}

/* 0.26.1–0.27.0: verified wind/pressure states, slack tide and rainfall reports. */
.jnw-wind-compass i { height: 2.65rem; top: .42rem; transform-origin: 50% 2.65rem; width: 4px; }
.jnw-wind-compass i::before { border-bottom-width: .92rem; border-left-width: .54rem; border-right-width: .54rem; }
.jnw-wind-compass i[hidden] { display: none; }

.jnw-slack-window { background: rgba(65,190,255,.08); border: 1px solid rgba(88,201,255,.23); border-radius: .78rem; display: flex; flex-direction: column; gap: .22rem; margin: .85rem 0 0; padding: .72rem .8rem; }
.jnw-slack-window strong { color: #79d5ff; font-size: .67rem; letter-spacing: .06em; text-transform: uppercase; }
.jnw-slack-window span { color: #d4e6f3; font-size: .76rem; font-weight: 800; }
.jnw-slack-guide { align-items: start; background: linear-gradient(135deg,rgba(8,48,76,.98),rgba(6,27,50,.98)); border-color: rgba(84,197,255,.28); display: grid; gap: 1rem; grid-template-columns: auto minmax(0,1fr); padding: 1.25rem; }
.jnw-slack-guide-icon { align-items: center; background: rgba(67,188,247,.12); border: 1px solid rgba(85,204,255,.35); border-radius: 50%; color: #75d5ff; display: flex; font-size: 2rem; font-weight: 950; height: 3.5rem; justify-content: center; width: 3.5rem; }
.jnw-slack-guide small { color: #6fcfff; font-size: .64rem; font-weight: 950; letter-spacing: .11em; }
.jnw-slack-guide h2 { font-size: clamp(1.5rem,4vw,2.1rem); margin: .25rem 0 .45rem; }
.jnw-slack-guide p { color: #aebfd0; font-size: .85rem; line-height: 1.6; margin: 0; }
.jnw-slack-guide a { color: #72d2ff; display: inline-flex; font-size: .75rem; font-weight: 900; margin-top: .75rem; }

.jnw-rainfall-section { margin-top: 2rem; overflow: hidden; padding: 0; }
.jnw-rainfall-section > summary { align-items: center; cursor: pointer; display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) auto; list-style: none; padding: 1rem 1.1rem; }
.jnw-rainfall-section > summary::-webkit-details-marker { display: none; }
.jnw-rainfall-section > summary:focus-visible { outline: 2px solid #59c6ff; outline-offset: -3px; }
.jnw-rainfall-section > summary > i { color: #8da5be; font-size: 1.5rem; font-style: normal; transition: transform .18s ease; }
.jnw-rainfall-section[open] > summary { border-bottom: 1px solid rgba(144,183,218,.13); }
.jnw-rainfall-section[open] > summary > i { transform: rotate(180deg); }
.jnw-rainfall-section.is-dry > summary .jnw-storm-section-heading:after { color: #79dca9; content: "DRY · COLLAPSED"; font-size: .66rem; font-weight: 900; letter-spacing: .08em; margin-left: auto; }
.jnw-rainfall-disclosure-body { padding: 0 1rem 1rem; }
.jnw-rainfall-placeholder { margin-top: .9rem; }
.jnw-rainfall-live { display: flex; flex-direction: column; gap: .9rem; margin-top: .9rem; }
.jnw-rainfall-summary-grid { display: grid; gap: .85rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.jnw-rainfall-summary-grid article { background: linear-gradient(135deg,#102f4b,#0a2037); border-color: rgba(92,183,236,.25); display: flex; flex-direction: column; min-height: 8.5rem; padding: 1rem 1.1rem; }
.jnw-rainfall-summary-grid small { color: #66c8ff; font-size: .72rem; font-weight: 1000; letter-spacing: .1em; }
.jnw-rainfall-summary-grid strong { color: #fff; font-size: clamp(2rem,6vw,3.2rem); letter-spacing: -.05em; line-height: 1; margin: .7rem 0 .35rem; }
.jnw-rainfall-summary-grid span { color: #afbecc; font-size: .82rem; line-height: 1.4; }
.jnw-rainfall-layout { display: grid; gap: .9rem; grid-template-columns: minmax(17rem,.72fr) minmax(25rem,1.28fr); }
.jnw-rainfall-list-wrap { display: flex; flex-direction: column; min-width: 0; padding: 1rem; }
.jnw-rainfall-list-wrap > div:first-child { align-items: center; border-bottom: 1px solid rgba(133,174,208,.17); display: flex; gap: .7rem; justify-content: space-between; padding-bottom: .75rem; }
.jnw-rainfall-list-wrap > div:first-child small { color: #6dcfff; font-size: .62rem; font-weight: 1000; letter-spacing: .09em; }
.jnw-rainfall-list-wrap > div:first-child span { color: #7f93a7; font-size: .63rem; }
.jnw-rainfall-reports { display: flex; flex-direction: column; }
.jnw-rainfall-report { align-items: center; border-bottom: 1px solid rgba(133,174,208,.12); color: inherit; display: grid; gap: .7rem; grid-template-columns: 1.7rem minmax(0,1fr) auto; padding: .72rem 0; text-decoration: none; }
.jnw-rainfall-report > b { color: #57728b; font-size: .62rem; }
.jnw-rainfall-report > div { display: flex; flex-direction: column; min-width: 0; }
.jnw-rainfall-report strong { color: #e6f3fc; font-size: .78rem; line-height: 1.25; overflow-wrap: anywhere; }
.jnw-rainfall-report small { color: #7f94a8; font-size: .59rem; margin-top: .15rem; overflow-wrap: anywhere; }
.jnw-rainfall-report > span { color: #66d0ff; font-size: .86rem; font-weight: 950; white-space: nowrap; }
.jnw-rainfall-report:hover strong,
.jnw-rainfall-report:focus-visible strong { color: #7edaff; }
.jnw-rainfall-list-wrap > a { align-self: flex-start; color: #69cfff; font-size: .7rem; font-weight: 900; margin-top: .8rem; }
.jnw-rainfall-unavailable { padding: 1.2rem 0; }
.jnw-rainfall-unavailable strong { font-size: .85rem; }
.jnw-rainfall-unavailable p { color: #8fa1b4; font-size: .72rem; line-height: 1.45; margin: .3rem 0 0; }
.jnw-rainfall-map-wrap { display: flex; flex-direction: column; min-width: 0; }
.jnw-rainfall-map-tabs { align-items: center; display: flex; gap: .42rem; margin-bottom: .55rem; }
.jnw-rainfall-map-tabs button { background: #0d2943; border: 1px solid rgba(112,173,216,.24); border-radius: 999px; color: #91a8bc; cursor: pointer; font-size: .66rem; font-weight: 900; padding: .52rem .78rem; }
.jnw-rainfall-map-tabs button.selected { background: #1b6f9e; border-color: #62cfff; color: #fff; }
.jnw-rainfall-legend-tip { color: #91a8bc !important; font-size: .72rem; line-height: 1.4; margin: -.15rem 0 .55rem; }
.jnw-rainfall-map { height: clamp(28rem,58vw,43rem); overflow: hidden; padding: 0; }
.jnw-rainfall-map iframe { background: #e8edf0; border: 0; display: block; height: 100%; width: 100%; }
.jnw-rainfall-open { align-self: flex-start; color: #68ceff; font-size: .71rem; font-weight: 900; margin-top: .55rem; }
.jnw-rainfall-note { background: rgba(26,87,123,.13); border-left: .22rem solid #45b8f1; border-radius: .55rem; color: #a9bac9; font-size: .8rem; line-height: 1.55; margin: 0; padding: .8rem .9rem; }
.jnw-rainfall-note strong { color: #d8eaf7; }

@media (max-width: 820px) {
  .jnw-rainfall-layout { grid-template-columns: 1fr; }
  .jnw-rainfall-map { height: 34rem; }
}

@media (max-width: 520px) {
  .jnw-rainfall-summary-grid { grid-template-columns: 1fr; }
  .jnw-rainfall-summary-grid article { min-height: 7rem; }
  .jnw-rainfall-map { height: 30rem; }
  .jnw-rainfall-report { gap: .5rem; grid-template-columns: 1.35rem minmax(0,1fr) auto; }
  .jnw-slack-guide { grid-template-columns: 1fr; }
  .jnw-slack-guide-icon { display: none; }
}

/* 0.28.0: live, multi-card NWS Weather Story thumbnails. */
.jnw-weather-stories .jnw-display-heading { margin-bottom: .85rem; }
.jnw-weather-stories .jnw-display-heading h2 { margin: .15rem 0 0; }
.jnw-weather-stories .jnw-display-heading > span {
  background: rgba(66, 188, 246, .1);
  border: 1px solid rgba(85, 204, 255, .25);
  border-radius: 999px;
  color: #70d2ff;
  font-size: .64rem;
  font-weight: 950;
  letter-spacing: .07em;
  padding: .45rem .7rem;
  white-space: nowrap;
}
.jnw-weather-story-grid {
  display: grid;
  gap: .8rem;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}
.jnw-weather-story-grid .jnw-weather-story-card {
  background: linear-gradient(145deg, #13263d, #0a1d32);
  color: inherit;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  position: relative;
  text-decoration: none;
}
.jnw-weather-story-thumb {
  align-items: center;
  aspect-ratio: 16 / 9;
  background: #071524;
  display: flex;
  justify-content: center;
  overflow: hidden;
}
.jnw-weather-story-card .jnw-weather-story-thumb img {
  display: block;
  height: 100%;
  max-height: none;
  object-fit: contain;
  transition: transform .22s ease;
  width: 100%;
}
.jnw-weather-story-card:hover .jnw-weather-story-thumb img,
.jnw-weather-story-card:focus-visible .jnw-weather-story-thumb img { transform: scale(1.02); }
.jnw-weather-story-card:focus-visible { outline: 3px solid #71d1ff; outline-offset: 3px; }
.jnw-weather-story-meta {
  align-items: center;
  background: rgba(4, 19, 35, .96);
  display: flex;
  gap: .7rem;
  justify-content: space-between;
  min-height: 3.65rem;
  padding: .72rem .85rem;
}
.jnw-weather-story-meta small {
  color: #90a7bb;
  font-size: .62rem;
  font-weight: 850;
  line-height: 1.25;
}
.jnw-weather-story-meta strong {
  color: #73d4ff;
  font-size: .69rem;
  text-align: right;
  white-space: nowrap;
}
.jnw-weather-story-grid .jnw-story-empty {
  align-items: center;
  display: flex;
  grid-column: 1 / -1;
  justify-content: center;
  line-height: 1.55;
  min-height: 10rem;
  padding: 1.5rem;
  text-align: center;
}
.jnw-weather-story-footer {
  align-items: center;
  display: flex;
  gap: .9rem;
  justify-content: space-between;
  margin-top: .65rem;
  padding: 0 .15rem;
}
.jnw-weather-story-footer small { color: #8396aa; font-size: .66rem; line-height: 1.4; }
.jnw-weather-story-footer a { color: #70d1ff; font-size: .7rem; font-weight: 900; white-space: nowrap; }

@media (max-width: 620px) {
  .jnw-weather-stories .jnw-display-heading { align-items: flex-start; flex-direction: column; gap: .55rem; }
  .jnw-weather-story-grid { grid-template-columns: 1fr; }
  .jnw-weather-story-footer { align-items: flex-start; flex-direction: column; gap: .4rem; }
}

/* 0.29.0: More → Featured Food. */
.jnw-more-option-icon.is-food { color: #ffb15d; filter: drop-shadow(0 0 8px rgba(255,166,74,.28)); }
.jnw-more-option-icon.is-food svg { fill: none; height: 2.45rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.6; width: 2.45rem; }

.jnw-food-inner { gap: 2rem; max-width: 76rem; }
.jnw-food-hero { align-items: stretch; background: linear-gradient(135deg,#3a2017,#0b2840 72%); border-color: rgba(255,173,92,.3); display: grid; grid-template-columns: minmax(0,1fr) minmax(16rem,31%); min-height: 26rem; overflow: hidden; padding: 0; }
.jnw-food-hero-copy { align-self: center; padding: clamp(1.35rem,4vw,2.4rem); }
.jnw-food-hero-copy > small,
.jnw-food-section-heading small { color: #ffb562; font-size: .67rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.jnw-food-hero h2 { font-size: clamp(2.2rem,5.4vw,3.7rem); letter-spacing: -.058em; line-height: .98; margin: .45rem 0 .75rem; max-width: 42rem; }
.jnw-food-hero p { color: #c7d0da; line-height: 1.6; margin: 0; max-width: 43rem; }
.jnw-food-hero-media { background: radial-gradient(circle at 54% 38%,#6e3924 0,#2a201d 45%,#0b1e30 100%); min-height: 100%; overflow: hidden; position: relative; }
.jnw-food-hero-media::after { background: linear-gradient(180deg,transparent 48%,rgba(4,14,24,.9) 100%); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.jnw-food-feature-photo { inset: .5rem .35rem 0; margin: 0; position: absolute; }
.jnw-food-feature-photo img { display: block; height: 100%; object-fit: contain; object-position: center bottom; width: 100%; }
.jnw-food-feature-credit { bottom: 1rem; display: flex; flex-direction: column; left: 1rem; max-width: 59%; position: absolute; text-shadow: 0 2px 12px rgba(0,0,0,.9); z-index: 3; }
.jnw-food-feature-credit small { color: #ffc177; font-size: .56rem; font-weight: 950; letter-spacing: .13em; }
.jnw-food-feature-credit strong { color: #fff; font-size: clamp(.94rem,2vw,1.18rem); letter-spacing: -.025em; line-height: 1.08; margin-top: .18rem; }
.jnw-food-feature-credit span { color: #d5e2ed; font-size: .65rem; font-weight: 850; letter-spacing: .055em; margin-top: .25rem; }
.jnw-food-pie-inset { background: #f5eadc; border: 3px solid rgba(255,255,255,.92); border-radius: .8rem; box-shadow: 0 .7rem 1.8rem rgba(0,0,0,.48); left: .72rem; margin: 0; overflow: hidden; position: absolute; top: .78rem; width: clamp(6.2rem,34%,8rem); z-index: 4; }
.jnw-food-pie-inset img { aspect-ratio: 4 / 3; display: block; height: auto; object-fit: cover; object-position: 50% 43%; width: 100%; }
.jnw-food-pie-inset figcaption { background: #f5eadc; color: #342116; display: flex; flex-direction: column; gap: .08rem; padding: .38rem .45rem .42rem; }
.jnw-food-pie-inset small { color: #9b4f2e; font-size: .45rem; font-weight: 950; letter-spacing: .1em; }
.jnw-food-pie-inset strong { font-size: .58rem; line-height: 1.15; }
.jnw-food-hero-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.2rem; }
.jnw-food-hero-actions a,
.jnw-food-hero-actions button,
.jnw-food-map-actions a,
.jnw-food-map-actions button { background: #d66e2b; border: 1px solid #ffb36b; border-radius: .8rem; color: white; cursor: pointer; font: inherit; font-size: .73rem; font-weight: 900; padding: .72rem .85rem; text-decoration: none; }
.jnw-food-hero-actions a.is-secondary,
.jnw-food-map-actions button { background: #183652; border-color: rgba(158,196,224,.25); color: #d8edf9; }
.jnw-food-hero-actions a:hover,
.jnw-food-hero-actions a:focus-visible,
.jnw-food-hero-actions button:hover,
.jnw-food-hero-actions button:focus-visible,
.jnw-food-map-actions a:hover,
.jnw-food-map-actions a:focus-visible,
.jnw-food-map-actions button:hover,
.jnw-food-map-actions button:focus-visible { border-color: #ffd0a2; outline: none; }

.jnw-food-section-heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-food-section-heading h2 { font-size: clamp(2rem,6vw,3.15rem); letter-spacing: -.055em; line-height: 1; margin: .3rem 0 0; }
.jnw-food-section-heading h2 button { align-items: center; background: none; border: 0; color: inherit; cursor: pointer; display: inline-flex; font: inherit; gap: .55rem; letter-spacing: inherit; line-height: inherit; padding: 0; text-align: left; }
.jnw-food-section-heading h2 button i { color: #ffb15d; font-size: .86em; font-style: normal; transition: transform .18s ease; }
.jnw-food-section-heading h2 button:hover i,
.jnw-food-section-heading h2 button:focus-visible i { transform: translateX(.2rem); }
.jnw-food-section-heading h2 button:focus-visible { border-radius: .35rem; outline: 3px solid rgba(255,177,93,.28); outline-offset: .25rem; }
.jnw-food-section-heading > span { color: #8498ad; font-size: .7rem; font-weight: 820; max-width: 17rem; text-align: right; }
.jnw-food-category-grid { display: grid; gap: .75rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: .9rem; }
.jnw-food-category-grid > button { align-items: center; border-left: .28rem solid #ffad58; color: inherit; cursor: pointer; display: grid; font: inherit; gap: 1rem; grid-template-columns: 3.2rem minmax(0,1fr) auto; min-height: 8.2rem; padding: 1rem; text-align: left; transition: border-color .18s ease, transform .18s ease; width: 100%; }
.jnw-food-category-grid > button:hover,
.jnw-food-category-grid > button:focus-visible { border-color: #ffd19e; outline: none; transform: translateY(-2px); }
.jnw-food-category-grid > button > span { align-items: center; background: rgba(255,174,86,.12); border: 1px solid rgba(255,174,86,.3); border-radius: 50%; color: #ffc078; display: flex; font-size: 1.65rem; height: 3.2rem; justify-content: center; width: 3.2rem; }
.jnw-food-category-grid small { color: #ffb15d; font-size: .57rem; font-weight: 950; letter-spacing: .09em; }
.jnw-food-category-grid h3 { font-size: 1.15rem; letter-spacing: -.025em; margin: .25rem 0 .3rem; }
.jnw-food-category-grid p { color: #93a6b9; font-size: .73rem; line-height: 1.45; margin: 0; }
.jnw-food-category-grid i { color: #7890a8; font-size: 1.7rem; font-style: normal; }
.jnw-food-category-grid .is-seafood { border-left-color: #66caff; }
.jnw-food-category-grid .is-seafood > span { background: rgba(83,191,255,.12); border-color: rgba(83,191,255,.3); color: #78d2ff; }
.jnw-food-category-grid .is-icecream { border-left-color: #ef8cca; }
.jnw-food-category-grid .is-icecream > span { background: rgba(239,140,202,.12); border-color: rgba(239,140,202,.3); color: #f5a8d8; }
.jnw-food-category-grid .is-gems { border-left-color: #68daa5; }
.jnw-food-category-grid .is-gems > span { background: rgba(87,213,155,.12); border-color: rgba(87,213,155,.3); color: #7ae6b3; }

.jnw-food-map { background: #0a1d31; height: clamp(32rem,66vw,47rem); margin-top: .9rem; overflow: hidden; padding: 0; position: relative; }
.jnw-food-map iframe { border: 0; display: block; height: 100%; width: 100%; }
.jnw-food-map-loading { align-items: center; background: linear-gradient(145deg,rgba(23,37,49,.98),rgba(8,25,41,.98)); display: flex; flex-direction: column; gap: .75rem; inset: 0; justify-content: center; position: absolute; z-index: 2; }
.jnw-food-map-loading[hidden] { display: none; }
.jnw-food-map-loading span { animation: jnw-camera-spin .9s linear infinite; border: 3px solid rgba(255,255,255,.18); border-radius: 50%; border-top-color: #ffb15d; height: 2.5rem; width: 2.5rem; }
.jnw-food-map-loading strong { color: #fff2e4; font-size: .9rem; }
.jnw-food-map-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .7rem; }

.jnw-food-guide-grid { display: grid; gap: .75rem; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: .9rem; }
.jnw-food-guide-grid article { min-height: 13rem; padding: 1.1rem; }
.jnw-food-guide-grid article > span { color: #ffb15d; font-size: .72rem; font-weight: 950; }
.jnw-food-guide-grid h3 { font-size: 1.22rem; margin: 1.3rem 0 .5rem; }
.jnw-food-guide-grid p { color: #9fafc1; font-size: .8rem; line-height: 1.58; margin: 0; }
.jnw-food-source { color: #7f91a8; font-size: .7rem; line-height: 1.58; margin: -1rem 0 0; text-align: center; }

/* 0.30.0: self-contained Featured Food favorites directory. */
.jnw-food-hub[hidden],
.jnw-food-directory[hidden],
.jnw-food-category-panel[hidden],
.jnw-food-lightbox[hidden] { display: none !important; }
.jnw-food-hub { display: flex; flex-direction: column; gap: 2rem; }
.jnw-food-directory { display: flex; flex-direction: column; gap: 1.1rem; }
.jnw-food-directory-header { align-items: start; background: linear-gradient(135deg,#172f48,#0d2238); border: 1px solid rgba(255,177,93,.25); border-radius: 1.2rem; display: grid; gap: 1rem; grid-template-columns: auto minmax(0,1fr); padding: 1.15rem; }
.jnw-food-directory-header > div > small,
.jnw-food-category-intro small,
.jnw-food-list-heading small { color: #ffb15d; font-size: .61rem; font-weight: 950; letter-spacing: .11em; text-transform: uppercase; }
.jnw-food-directory-header h2 { font-size: clamp(2rem,5vw,3.35rem); letter-spacing: -.055em; line-height: 1; margin: .35rem 0 .5rem; }
.jnw-food-directory-header p { color: #9eafc1; line-height: 1.55; margin: 0; }
.jnw-food-directory-back { align-items: center; background: #223d57; border: 1px solid rgba(167,196,221,.24); border-radius: 999px; color: #e7f4ff; cursor: pointer; display: inline-flex; font: inherit; font-size: 1.2rem; font-weight: 900; gap: .38rem; padding: .52rem .78rem; }
.jnw-food-directory-back span { font-size: .7rem; }
.jnw-food-directory-back:hover,
.jnw-food-directory-back:focus-visible { border-color: #70d1ff; outline: none; }

.jnw-food-directory-nav { display: flex; gap: .45rem; overflow-x: auto; padding: .15rem .05rem .45rem; scrollbar-width: thin; }
.jnw-food-directory-nav button { background: #142b43; border: 1px solid rgba(155,188,217,.19); border-radius: 999px; color: #aebed0; cursor: pointer; flex: 0 0 auto; font: inherit; font-size: .67rem; font-weight: 900; padding: .62rem .82rem; white-space: nowrap; }
.jnw-food-directory-nav button:hover,
.jnw-food-directory-nav button:focus-visible { border-color: rgba(111,208,255,.65); color: #fff; outline: none; }
.jnw-food-directory-nav button.selected { background: #d66e2b; border-color: #ffb36b; color: #fff; }

.jnw-food-category-panel { background: linear-gradient(150deg,rgba(20,43,67,.94),rgba(8,25,41,.96)); border: 1px solid rgba(151,184,213,.18); border-radius: 1.2rem; padding: clamp(1rem,3vw,1.5rem); }
.jnw-food-category-intro { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-food-category-intro h3 { font-size: clamp(1.75rem,5vw,2.8rem); letter-spacing: -.045em; line-height: 1.05; margin: .3rem 0 .45rem; }
.jnw-food-category-intro p { color: #9fafc1; line-height: 1.55; margin: 0; max-width: 50rem; }
.jnw-food-category-intro b { background: rgba(102,202,255,.1); border: 1px solid rgba(102,202,255,.25); border-radius: 999px; color: #8edcff; flex: 0 0 auto; font-size: .65rem; padding: .45rem .62rem; }

.jnw-food-card-gallery { display: grid; gap: .85rem; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 1.1rem; }
.jnw-food-card-gallery button { align-self: start; background: #071a2e; border: 1px solid rgba(255,183,110,.26); border-radius: 1rem; color: white; cursor: zoom-in; display: flex; flex-direction: column; font: inherit; margin: 0; overflow: hidden; padding: 0; text-align: left; transition: border-color .18s ease, transform .18s ease; width: 100%; }
.jnw-food-card-gallery button:hover,
.jnw-food-card-gallery button:focus-visible { border-color: #ffbd78; outline: none; transform: translateY(-2px); }
.jnw-food-card-gallery button.is-tour { grid-row: auto; }
.jnw-food-card-gallery button.is-wide { grid-column: auto; }
.jnw-food-card-gallery img { background: #f8efe6; display: block; height: auto; object-fit: contain; width: 100%; }
.jnw-food-card-gallery button > span { color: #dce9f4; font-size: .7rem; font-weight: 900; line-height: 1.35; padding: .72rem .82rem .78rem; }

.jnw-food-list-heading { border-top: 1px solid rgba(163,188,215,.18); margin-top: 1.3rem; padding-top: 1.1rem; }
.jnw-food-list-heading h4 { font-size: 1.45rem; margin: .22rem 0 0; }
.jnw-food-favorite-list { display: grid; gap: .6rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: .8rem; }
.jnw-food-favorite-list article { align-items: center; background: rgba(8,28,47,.72); border: 1px solid rgba(150,180,209,.14); border-radius: .85rem; display: grid; gap: .75rem; grid-template-columns: 2.2rem minmax(0,1fr); min-height: 4.5rem; padding: .72rem .8rem; }
.jnw-food-favorite-list article > span { align-items: center; background: rgba(255,176,91,.12); border: 1px solid rgba(255,176,91,.25); border-radius: 50%; color: #ffbc72; display: flex; font-size: .65rem; font-weight: 950; height: 2.2rem; justify-content: center; width: 2.2rem; }
.jnw-food-favorite-list h4 { font-size: .91rem; line-height: 1.15; margin: 0; }
.jnw-food-favorite-list p { color: #91a7bc; font-size: .68rem; line-height: 1.35; margin: .22rem 0 0; }
.jnw-food-collection-note { color: #8499ad; font-size: .72rem; line-height: 1.5; margin: .85rem 0 0; }
.jnw-food-directory-footer { align-items: center; display: flex; gap: 1rem; justify-content: space-between; padding: .2rem .1rem 0; }
.jnw-food-directory-footer p { color: #7f93a8; font-size: .68rem; line-height: 1.5; margin: 0; }
.jnw-food-directory-footer a { color: #75d4ff; flex: 0 0 auto; font-size: .7rem; font-weight: 900; }

.jnw-food-lightbox { align-items: center; background: rgba(1,9,17,.93); display: flex; inset: 0; justify-content: center; padding: clamp(1rem,3vw,2rem); position: fixed; z-index: 100000; }
.jnw-food-lightbox-stage { align-items: center; display: flex; flex-direction: column; height: 100%; justify-content: center; max-width: 72rem; width: 100%; }
.jnw-food-lightbox-stage img { border: 1px solid rgba(255,255,255,.2); border-radius: .8rem; box-shadow: 0 1.3rem 4rem rgba(0,0,0,.6); display: block; max-height: calc(100vh - 6rem); max-width: 100%; object-fit: contain; width: auto; }
.jnw-food-lightbox-stage p { color: #ccd9e5; font-size: .68rem; margin: .55rem 0 0; text-align: center; }
.jnw-food-lightbox-close { align-items: center; background: #f5eee7; border: 0; border-radius: 50%; color: #16283a; cursor: pointer; display: flex; font-size: 1.55rem; font-weight: 900; height: 2.7rem; justify-content: center; position: fixed; right: 1rem; top: 1rem; width: 2.7rem; z-index: 2; }
.jnw-food-lightbox-close:hover,
.jnw-food-lightbox-close:focus-visible { background: #ffb766; outline: 3px solid rgba(255,183,102,.35); }
.jnw-home.is-food-lightbox-open { isolation: isolate; }

@media (max-width: 800px) {
  .jnw-food-hero { grid-template-columns: 1fr; }
  .jnw-food-hero-media { aspect-ratio: 3 / 4; min-height: 0; }
  .jnw-food-feature-photo img { object-position: center bottom; }
  .jnw-food-card-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
  .jnw-food-inner { padding-left: .7rem; padding-right: .7rem; }
  .jnw-food-category-grid,
  .jnw-food-guide-grid { grid-template-columns: 1fr; }
  .jnw-food-category-grid > button { min-height: 7.5rem; }
  .jnw-food-guide-grid article { min-height: 0; }
  .jnw-food-map { border-radius: 1.15rem; height: 34rem; }
  .jnw-food-map-actions { flex-direction: column; }
  .jnw-food-map-actions a { text-align: center; }
  .jnw-food-map-actions button { text-align: center; }
  .jnw-food-directory-header { grid-template-columns: 1fr; }
  .jnw-food-directory-back { justify-self: start; }
  .jnw-food-category-intro { align-items: start; flex-direction: column; }
  .jnw-food-card-gallery,
  .jnw-food-favorite-list { grid-template-columns: 1fr; }
  .jnw-food-card-gallery button.is-tour,
  .jnw-food-card-gallery button.is-wide { grid-column: auto; grid-row: auto; }
  .jnw-food-directory-footer { align-items: start; flex-direction: column; }
}

@media (max-width: 480px) {
  .jnw-food-section-heading { align-items: start; }
  .jnw-food-section-heading > span { max-width: 8.6rem; }
  .jnw-food-hero h2 { font-size: 2.35rem; }
  .jnw-food-hero-actions { flex-direction: column; }
  .jnw-food-hero-actions a { text-align: center; }
  .jnw-food-hero-actions button { text-align: center; }
  .jnw-food-category-grid > button { gap: .75rem; grid-template-columns: 2.8rem minmax(0,1fr) auto; }
  .jnw-food-category-grid > button > span { font-size: 1.4rem; height: 2.8rem; width: 2.8rem; }
  .jnw-food-feature-credit { bottom: .78rem; left: .78rem; max-width: 55%; }
  .jnw-food-feature-credit strong { font-size: .9rem; }
  .jnw-food-pie-inset { border-width: 2px; left: .62rem; top: .62rem; width: 36%; }
  .jnw-food-pie-inset figcaption { padding: .28rem .35rem .32rem; }
  .jnw-food-pie-inset strong { font-size: .52rem; }
}

/* v0.29.1: single-ended wind arrow and compact, unit-aware pressure status. */
.jnw-home .jnw-current-metrics [data-jnw-current-pressure] {
  align-items: center;
  display: flex;
  flex-direction: column;
  line-height: 1.15;
  white-space: normal;
}
.jnw-home .jnw-pressure-reading { white-space: nowrap; }
.jnw-home .jnw-pressure-trend {
  color: #a9b8c9;
  font-size: .65rem;
  font-weight: 850;
  margin-top: .28rem;
  white-space: nowrap;
}
.jnw-home .jnw-pressure-trend.is-r { color: #72dcae; }
.jnw-home .jnw-pressure-trend.is-f { color: #ffb071; }
.jnw-home .jnw-pressure-trend.is-s { color: #a9c7df; }

/* 0.29.2: interactive Home forecast details and day-specific HeatRisk. */
.jnw-home .jnw-day-card {
  cursor: pointer;
  position: relative;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.jnw-home .jnw-day-card:hover { border-color: rgba(100, 202, 250, .46); }
.jnw-home .jnw-day-card:focus-visible {
  border-color: #64cafa;
  outline: 3px solid rgba(100, 202, 250, .28);
  outline-offset: 3px;
}
.jnw-home .jnw-day-card.is-expanded {
  background: linear-gradient(135deg, rgba(40,61,87,.99), rgba(25,43,66,.99));
  border-color: rgba(100, 202, 250, .48);
}
.jnw-home .jnw-day-expand-cue {
  color: #6bcdf8;
  font-size: .66rem;
  font-weight: 900;
  grid-column: 1 / -1;
  justify-self: end;
  letter-spacing: .055em;
  line-height: 1;
  margin-top: -.1rem;
  text-transform: uppercase;
}
.jnw-home .jnw-home-day-detail {
  border-top: 1px solid rgba(151,179,211,.18);
  cursor: default;
  grid-column: 1 / -1;
  margin-top: .25rem;
  padding-top: .9rem;
  width: 100%;
}
.jnw-home .jnw-home-day-periods { margin-top: 0; }
.jnw-home .jnw-home-day-detail .jnw-detailed-period { background: rgba(5, 20, 39, .28); }
.jnw-home .jnw-home-day-detail .jnw-heatrisk-card { margin-top: .8rem; }

/* 0.43.4: the main header remains available, while the two-row location
 * selector scrolls away instead of covering headings throughout the page. */
.jnw-home .jnw-location-strip,
body.admin-bar .jnw-home .jnw-location-strip {
  position: relative;
  top: auto;
}
.jnw-home [id] { scroll-margin-top: 7.5rem; }

@media (max-width: 720px) {
  .jnw-home .jnw-day-expand-cue { font-size: .59rem; }
  .jnw-home .jnw-home-day-detail { padding-top: .75rem; }
  .jnw-home .jnw-home-day-periods { grid-template-columns: 1fr; }
}

/* 0.33.0: clearer More icons, larger current metrics and Community Sponsors. */
.jnw-more-option-icon.is-stormdesk {
  color: #ffd05d;
  filter: drop-shadow(0 0 9px rgba(255, 196, 66, .28));
}
.jnw-more-option-icon.is-stormdesk svg > path:first-child {
  fill: rgba(255, 190, 56, .12);
  stroke: currentColor;
  stroke-width: 2.7;
}
.jnw-more-option-icon.is-stormdesk .jnw-alert-mark {
  fill: none;
  stroke: #fff1bd;
  stroke-linecap: round;
  stroke-width: 4;
}
.jnw-more-option-icon.is-stormdesk circle.jnw-alert-mark {
  fill: #fff1bd;
  stroke: none;
}
.jnw-more-option-icon.is-fishing svg > path:first-child {
  fill: rgba(82, 225, 173, .1);
}
.jnw-more-option-icon.is-climate {
  color: #b6cbff;
  filter: drop-shadow(0 0 8px rgba(139, 170, 255, .24));
}
.jnw-more-option-icon.is-climate svg,
.jnw-more-option-icon.is-sponsors svg,
.jnw-sponsors-hero-icon svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.6;
}
.jnw-more-option-icon.is-climate svg { height: 2.4rem; width: 2.4rem; }
.jnw-more-option-icon.is-sponsors {
  color: #75dda7;
  filter: drop-shadow(0 0 8px rgba(69, 210, 137, .24));
}
.jnw-more-option-icon.is-sponsors svg { height: 2.45rem; width: 2.45rem; }

.jnw-home .jnw-current-metrics { gap: .5rem; padding: 1.05rem .55rem; }
.jnw-home .jnw-current-metrics > span { gap: .38rem; }
.jnw-home .jnw-current-metrics > span > small {
  font-size: clamp(.7rem, 1.8vw, .82rem);
  font-weight: 800;
  letter-spacing: .02em;
}
.jnw-home .jnw-current-metrics > span > strong {
  color: #f4f8fd;
  font-size: clamp(1.45rem, 4.5vw, 2rem);
  font-weight: 900;
  letter-spacing: -.035em;
  line-height: 1;
  overflow-wrap: normal;
}
.jnw-home .jnw-current-metrics [data-jnw-current-pressure] {
  font-size: clamp(1.45rem, 4.5vw, 2rem);
  line-height: 1;
}
.jnw-home .jnw-pressure-reading { font-size: inherit; }
.jnw-home .jnw-pressure-trend {
  display: block;
  font-size: clamp(.7rem, 1.9vw, .82rem);
  font-style: normal;
  letter-spacing: 0;
  margin-top: .36rem;
}
.jnw-home .jnw-pressure-trend[hidden] { display: none !important; }
.jnw-home .jnw-pressure-trend.is-unavailable { color: #8ea2b7; }
.jnw-home .jnw-pressure-metric[hidden] { display: none !important; }
.jnw-home .jnw-current-metrics.has-no-pressure { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jnw-home [data-jnw-current-pressure].is-r { color: #72dcae; }
.jnw-home [data-jnw-current-pressure].is-f { color: #ffb071; }
.jnw-home [data-jnw-current-pressure].is-s { color: #a9c7df; }
.jnw-home .jnw-tropical-take a[href*="jasons-tropics-tracker"] { display: none !important; }

.jnw-sponsors-inner { gap: 1.6rem; max-width: 70rem; }
.jnw-sponsors-hero {
  align-items: center;
  background: radial-gradient(circle at 12% 0, rgba(96, 220, 154, .17), transparent 24rem), linear-gradient(135deg, rgba(9, 50, 58, .98), rgba(7, 28, 51, .98));
  border-color: rgba(104, 224, 164, .26);
  display: grid;
  gap: 1.2rem;
  grid-template-columns: auto minmax(0, 1fr);
  padding: clamp(1.2rem, 4vw, 2rem);
}
.jnw-sponsors-hero-icon {
  align-items: center;
  background: rgba(105, 225, 164, .08);
  border: 1px solid rgba(105, 225, 164, .22);
  border-radius: 1.3rem;
  color: #7ae2ad;
  display: flex;
  height: 5.3rem;
  justify-content: center;
  width: 5.3rem;
}
.jnw-sponsors-hero-icon svg { height: 3.35rem; width: 3.35rem; }
.jnw-sponsors-hero small,
.jnw-sponsors-section-title small,
.jnw-sponsor-card div > small,
.jnw-sponsors-cta small {
  color: #72e0aa;
  font-size: .66rem;
  font-weight: 950;
  letter-spacing: .13em;
}
.jnw-sponsors-hero h2 {
  font-size: clamp(2rem, 5.5vw, 3.45rem);
  letter-spacing: -.055em;
  line-height: 1;
  margin: .35rem 0 .65rem;
}
.jnw-sponsors-hero p,
.jnw-sponsors-cta p { color: #bdced8; line-height: 1.55; margin: 0; }
.jnw-sponsors-directory { display: flex; flex-direction: column; gap: 1rem; }
.jnw-sponsors-section-title h2 {
  font-size: clamp(1.65rem, 4vw, 2.35rem);
  letter-spacing: -.045em;
  margin: .28rem 0 0;
}
.jnw-sponsor-card {
  align-items: center;
  background: linear-gradient(135deg, rgba(19, 46, 48, .98), rgba(8, 28, 50, .98));
  border-color: rgba(120, 201, 115, .24);
  color: inherit;
  display: grid;
  gap: clamp(1.1rem, 4vw, 2rem);
  grid-template-columns: minmax(13rem, .7fr) minmax(0, 1fr);
  overflow: hidden;
  padding: clamp(.8rem, 2.5vw, 1.2rem);
  text-decoration: none;
  transition: border-color .18s ease, transform .18s ease;
}
.jnw-sponsor-card:hover,
.jnw-sponsor-card:focus-visible { border-color: rgba(119, 226, 158, .55); outline: none; transform: translateY(-2px); }
.jnw-sponsor-card figure { background: #fff; border-radius: 1.1rem; margin: 0; overflow: hidden; }
.jnw-sponsor-card img { display: block; height: auto; width: 100%; }
.jnw-sponsor-card h3 {
  font-size: clamp(1.75rem, 4.6vw, 2.65rem);
  letter-spacing: -.05em;
  line-height: 1.02;
  margin: .4rem 0 .7rem;
}
.jnw-sponsor-card p { color: #bdcbd8; line-height: 1.55; margin: 0 0 .8rem; }
.jnw-sponsor-card div > span { color: #eef7f1; display: block; font-size: 1.05rem; font-weight: 900; margin-bottom: .9rem; }
.jnw-sponsor-card div > strong { color: #76e0aa; font-size: .82rem; }
.jnw-sponsors-cta {
  align-items: center;
  background: linear-gradient(120deg, rgba(18, 48, 78, .98), rgba(9, 30, 54, .98));
  border-color: rgba(101, 197, 244, .25);
  display: flex;
  gap: 1.3rem;
  justify-content: space-between;
  padding: clamp(1.2rem, 4vw, 1.8rem);
}
.jnw-sponsors-cta h2 { font-size: clamp(1.45rem, 3.8vw, 2.15rem); letter-spacing: -.04em; line-height: 1.08; margin: .35rem 0 .55rem; }
.jnw-sponsors-cta a {
  background: #65d89f;
  border-radius: .9rem;
  color: #04261a;
  flex: 0 0 auto;
  font-size: .82rem;
  font-weight: 950;
  padding: 1rem 1.15rem;
  text-align: center;
}

@media (max-width: 720px) {
  .jnw-home .jnw-current-metrics > span > strong,
  .jnw-home .jnw-current-metrics [data-jnw-current-pressure] { font-size: clamp(1.25rem, 6vw, 1.65rem); }
  .jnw-sponsors-hero { align-items: start; grid-template-columns: 3.7rem minmax(0, 1fr); }
  .jnw-sponsors-hero-icon { border-radius: 1rem; height: 3.7rem; width: 3.7rem; }
  .jnw-sponsors-hero-icon svg { height: 2.35rem; width: 2.35rem; }
  .jnw-sponsor-card { grid-template-columns: 1fr; }
  .jnw-sponsor-card figure { margin: 0 auto; max-width: 23rem; }
  .jnw-sponsors-cta { align-items: flex-start; flex-direction: column; }
  .jnw-sponsors-cta a { width: 100%; }
}

/* 0.44.5: dedicated, year-round Maine Surf Forecast. */
.jnw-more-option-icon.is-surf {
  color: #72ddff;
  filter: drop-shadow(0 0 9px rgba(75, 203, 245, .28));
}
.jnw-more-option-icon.is-surf svg,
.jnw-surf-hero-icon svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.35;
}
.jnw-more-option-icon.is-surf svg { height: 2.55rem; width: 2.55rem; }
.jnw-more-option-copy {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: .12rem;
  min-width: 0;
}
.jnw-more-option-copy strong { line-height: 1.05; }
.jnw-more-option-copy small {
  color: #93abc4;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .055em;
  line-height: 1.25;
  text-transform: uppercase;
}
.jnw-water-surf-link {
  background: rgba(76, 190, 239, .12);
  border: 1px solid rgba(91, 204, 249, .3);
  border-radius: .75rem;
  color: #83ddff;
  cursor: pointer;
  font-size: .72rem;
  font-weight: 900;
  margin-top: .9rem;
  padding: .7rem .8rem;
}
.jnw-water-surf-link:hover,
.jnw-water-surf-link:focus-visible { border-color: #7edcff; color: #fff; outline: none; }

.jnw-surf-inner { gap: 1.65rem; max-width: 76rem; }
.jnw-surf-hero {
  align-items: center;
  background: radial-gradient(circle at 85% 8%, rgba(79, 201, 246, .18), transparent 26rem), linear-gradient(135deg, rgba(5, 49, 78, .99), rgba(5, 25, 50, .99));
  border-color: rgba(87, 202, 246, .3);
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(0, 1fr);
  overflow: hidden;
  padding: clamp(1.05rem, 2.5vw, 1.45rem);
  position: relative;
}
.jnw-surf-hero:after {
  background: repeating-radial-gradient(ellipse at 88% 108%, transparent 0 2rem, rgba(101, 219, 255, .055) 2.05rem 2.15rem);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.jnw-surf-hero > * { position: relative; z-index: 1; }
.jnw-surf-hero-icon {
  align-items: center;
  background: rgba(92, 209, 248, .09);
  border: 1px solid rgba(105, 216, 251, .27);
  border-radius: 1.25rem;
  color: #83e1ff;
  display: flex;
  height: 4.5rem;
  justify-content: center;
  width: 4.5rem;
}
.jnw-surf-hero-icon svg { height: 3rem; width: 3rem; }
.jnw-surf-hero small,
.jnw-surf-section-heading small,
.jnw-surf-snapshot-copy > small,
.jnw-surf-tools small {
  color: #72dbff;
  font-size: .75rem;
  font-weight: 950;
  letter-spacing: .13em;
}
.jnw-surf-hero h2 {
  font-size: clamp(1.75rem, 4.2vw, 2.7rem);
  letter-spacing: -.055em;
  line-height: .98;
  margin: .35rem 0 .6rem;
}
.jnw-surf-hero p { color: #c6d4df; font-size: 1rem; line-height: 1.55; margin: 0; max-width: 54rem; }
.jnw-surf-hero-meta { color: #9bafc0; display: flex; flex-wrap: wrap; font-size: .78rem; font-weight: 800; gap: .5rem 1rem; margin-top: .85rem; }
.jnw-surf-hero[data-surf-level="active"] { background: radial-gradient(circle at 86% 7%, rgba(255, 92, 113, .2), transparent 25rem), linear-gradient(135deg, rgba(72, 21, 42, .99), rgba(17, 22, 44, .99)); border-color: rgba(255, 100, 124, .38); }
.jnw-surf-placeholder { min-height: 12rem; }
.jnw-surf-live { display: flex; flex-direction: column; gap: 2rem; }

.jnw-surf-snapshot {
  background: linear-gradient(135deg, rgba(12, 39, 67, .98), rgba(7, 25, 47, .98));
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: clamp(1.1rem, 3vw, 1.55rem);
}
.jnw-surf-snapshot-copy h2 { font-size: clamp(1.55rem, 4vw, 2.35rem); letter-spacing: -.045em; line-height: 1.05; margin: .3rem 0 .45rem; }
.jnw-surf-snapshot-copy p { color: #bdcad6; font-size: .95rem; line-height: 1.55; margin: 0; }
.jnw-surf-stat-grid { display: grid; gap: .65rem; grid-template-columns: repeat(5, minmax(0, 1fr)); width: 100%; }
.jnw-surf-stat-grid > span { background: rgba(255,255,255,.04); border: 1px solid rgba(139, 180, 215, .17); border-radius: .85rem; display: flex; flex-direction: column; min-width: 0; padding: .9rem .8rem; }
.jnw-surf-stat-grid small { color: #9cafc1; font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.jnw-surf-stat-grid strong { color: #eaf8ff; font-size: clamp(1.25rem, 2.5vw, 1.85rem); letter-spacing: -.04em; line-height: 1.08; margin-top: .3rem; overflow-wrap: anywhere; }
.jnw-surf-stat-grid em { color: #91a4b5; font-size: .72rem; font-style: normal; line-height: 1.35; margin-top: .25rem; }
.jnw-surf-tide-cue { color: #a9bdcc; font-size: .85rem; line-height: 1.5; margin: 0; }
.jnw-surf-tide-cue strong { color: #79dcff; }
.jnw-surf-season-note { background: rgba(72, 151, 200, .09); border: 1px solid rgba(91, 179, 229, .19); border-radius: .8rem; color: #b1c4d2; font-size: .84rem; line-height: 1.55; margin: -1rem 0 0; padding: .8rem .9rem; }
.jnw-surf-season-note.is-current { background: rgba(64, 205, 158, .08); border-color: rgba(83, 219, 171, .2); color: #a8d8c6; }

.jnw-surf-camera-callout {
  align-items: center;
  background: linear-gradient(120deg, rgba(7, 52, 80, .98), rgba(8, 29, 53, .98));
  border-color: rgba(88, 201, 242, .34);
  display: grid;
  gap: 1rem 1.5rem;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: clamp(1.1rem, 3vw, 1.45rem);
}
.jnw-surf-camera-callout small { color: #79ddff; font-size: .75rem; font-weight: 950; letter-spacing: .13em; }
.jnw-surf-camera-callout h2 { font-size: clamp(1.55rem, 4vw, 2.25rem); letter-spacing: -.04em; line-height: 1.05; margin: .28rem 0 .45rem; }
.jnw-surf-camera-callout p { color: #b7c7d4; font-size: .92rem; line-height: 1.5; margin: 0; max-width: 48rem; }
.jnw-surf-camera-callout a { align-items: center; background: #68d7ff; border: 1px solid #8ce2ff; border-radius: .8rem; color: #041b2e; display: inline-flex; font-size: .9rem; font-weight: 950; gap: .6rem; justify-content: center; min-height: 3.2rem; padding: .8rem 1rem; text-decoration: none; white-space: nowrap; }
.jnw-surf-camera-callout a:hover,
.jnw-surf-camera-callout a:focus-visible { background: #91e4ff; outline: 3px solid rgba(112, 219, 255, .28); outline-offset: 2px; }

.jnw-surf-section-heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-surf-section-heading h2 { font-size: clamp(1.85rem, 5vw, 3rem); letter-spacing: -.05em; line-height: 1; margin: .3rem 0 0; }
.jnw-surf-section-heading > span,
.jnw-surf-section-heading > b { color: #9badbd; font-size: .78rem; font-weight: 850; max-width: 18rem; text-align: right; }
.jnw-surf-section-heading > b { background: rgba(77, 204, 157, .1); border: 1px solid rgba(86, 216, 167, .27); border-radius: 999px; color: #72e6b7; padding: .45rem .65rem; }
.jnw-surf-section-heading > b.is-active { background: rgba(var(--jnw-warning-red-rgb), .13); border-color: rgba(var(--jnw-warning-red-rgb), .42); color: var(--jnw-warning-red-soft); }
.jnw-surf-section-heading > b.is-unavailable { background: rgba(255, 190, 69, .1); border-color: rgba(255, 205, 91, .3); color: #ffdc7f; }
.jnw-surf-alert-list,
.jnw-surf-region-list,
.jnw-surf-marine-list { display: flex; flex-direction: column; gap: .65rem; margin-top: .9rem; }
.jnw-surf-clear,
.jnw-surf-unavailable,
.jnw-surf-alert { align-items: center; display: grid; gap: .85rem; grid-template-columns: auto minmax(0,1fr) auto; padding: .9rem 1rem; }
.jnw-surf-clear > span,
.jnw-surf-unavailable > span,
.jnw-surf-alert > span { align-items: center; background: rgba(75, 213, 163, .1); border: 1px solid rgba(82, 221, 169, .29); border-radius: 50%; color: #71e8b7; display: flex; font-weight: 1000; height: 2.6rem; justify-content: center; width: 2.6rem; }
.jnw-surf-clear p,
.jnw-surf-unavailable p,
.jnw-surf-alert p { color: #b9c7d3; font-size: .9rem; line-height: 1.5; margin: .25rem 0 0; }
.jnw-surf-unavailable { border-left: .3rem solid #e7b85b; grid-template-columns: auto minmax(0,1fr); }
.jnw-surf-unavailable > span { background: rgba(255, 190, 69, .1); border-color: rgba(255, 205, 91, .3); color: #ffdc7f; }
.jnw-surf-alert { border-left: .3rem solid #ff667e; color: inherit; text-decoration: none; }
.jnw-surf-alert > span { background: rgba(255, 96, 121, .12); border-color: rgba(255, 105, 128, .34); color: #ff9aaa; }
.jnw-surf-alert small { color: #91a4b7; display: block; font-size: .76rem; margin-top: .3rem; }
.jnw-surf-alert > i { color: #ff9aaa; font-size: 1.4rem; font-style: normal; }

.jnw-surf-region,
.jnw-surf-marine-zone { overflow: hidden; padding: 0; }
.jnw-surf-region summary,
.jnw-surf-marine-zone summary { align-items: center; cursor: pointer; display: grid; gap: .85rem; grid-template-columns: minmax(0,1fr) auto auto; list-style: none; padding: 1rem; }
.jnw-surf-region summary::-webkit-details-marker,
.jnw-surf-marine-zone summary::-webkit-details-marker { display: none; }
.jnw-surf-region summary > div:first-child,
.jnw-surf-marine-zone summary > div:first-child { display: flex; flex-direction: column; min-width: 0; }
.jnw-surf-region summary small,
.jnw-surf-marine-zone summary small { color: #6bd7ff; font-size: .69rem; font-weight: 950; letter-spacing: .09em; }
.jnw-surf-region summary strong,
.jnw-surf-marine-zone summary strong { font-size: 1.2rem; margin-top: .2rem; }
.jnw-surf-region summary span,
.jnw-surf-marine-zone summary span { color: #9aabbb; font-size: .82rem; margin-top: .22rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jnw-surf-region summary > i,
.jnw-surf-marine-zone summary > i { color: #7691aa; font-size: 1.25rem; font-style: normal; transition: transform .2s ease; }
.jnw-surf-region[open] summary > i,
.jnw-surf-marine-zone[open] summary > i { transform: rotate(45deg); }
.jnw-surf-region-glance { align-items: end; display: flex; flex-direction: column; }
.jnw-surf-region-glance b { color: #e3f7ff; font-size: .92rem; }
.jnw-surf-region-glance small { color: #8fb3c8; font-size: .66rem; margin-top: .2rem; max-width: 10rem; text-align: right; }
.jnw-surf-region-body { border-top: 1px solid rgba(141, 180, 216, .14); padding: 1rem; }
.jnw-surf-period-grid { display: grid; gap: .7rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jnw-surf-period { background: rgba(5, 20, 38, .38); border: 1px solid rgba(136, 175, 210, .12); border-radius: .85rem; padding: .9rem; }
.jnw-surf-period h4 { color: #dceefa; font-size: .95rem; letter-spacing: .06em; margin: 0 0 .75rem; text-transform: uppercase; }
.jnw-surf-period-lead { display: grid; gap: .5rem; grid-template-columns: repeat(2, minmax(0,1fr)); }
.jnw-surf-period-lead > div { background: rgba(79, 195, 236, .08); border-radius: .65rem; display: flex; flex-direction: column; padding: .65rem; }
.jnw-surf-period-lead > div.is-danger { background: rgba(var(--jnw-warning-red-rgb), .11); }
.jnw-surf-period-lead small,
.jnw-surf-period-conditions small { color: #90a5b9; font-size: .66rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.jnw-surf-period-lead strong { color: #dff7ff; font-size: .98rem; line-height: 1.35; margin-top: .24rem; }
.jnw-surf-period-lead .is-danger strong { color: var(--jnw-warning-red-soft); }
.jnw-surf-period-conditions { display: grid; gap: .45rem .8rem; grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: .7rem; }
.jnw-surf-period-conditions > div { border-bottom: 1px solid rgba(144, 179, 211, .1); display: flex; flex-direction: column; padding-bottom: .45rem; }
.jnw-surf-period-conditions strong { color: #c5d2dc; font-size: .84rem; line-height: 1.45; margin-top: .18rem; }
.jnw-surf-period-tide { color: #afc0ce; font-size: .84rem; line-height: 1.55; margin: .75rem 0 0; }
.jnw-surf-period-tide b { color: #71d7ff; }
.jnw-surf-extended { background: rgba(255,255,255,.025); border-radius: .75rem; margin-top: .7rem; padding: .8rem; }
.jnw-surf-extended > small { color: #70d5fb; font-size: .68rem; font-weight: 950; letter-spacing: .1em; }
.jnw-surf-extended p { color: #b8c6d1; font-size: .84rem; line-height: 1.55; margin: .48rem 0 0; }
.jnw-surf-extended b { color: #e0edf6; }
.jnw-surf-region-unavailable { padding: 1rem; }
.jnw-surf-region-unavailable p,
.jnw-surf-marine-unavailable { color: #9eb0c0; line-height: 1.55; margin: .35rem 0 0; }

.jnw-surf-buoy-grid { display: grid; gap: .75rem; grid-template-columns: repeat(3, minmax(0,1fr)); margin-top: .9rem; }
.jnw-surf-buoy { display: flex; flex-direction: column; padding: 1rem; }
.jnw-surf-buoy header { align-items: start; display: flex; gap: .7rem; justify-content: space-between; }
.jnw-surf-buoy header > div { display: flex; flex-direction: column; }
.jnw-surf-buoy header small { color: #70d7ff; font-size: .68rem; font-weight: 950; letter-spacing: .09em; }
.jnw-surf-buoy h3 { font-size: 1.25rem; letter-spacing: -.025em; margin: .24rem 0 .12rem; }
.jnw-surf-buoy header span { color: #9bacc0; font-size: .78rem; }
.jnw-surf-buoy header > b { background: rgba(128, 145, 165, .1); border: 1px solid rgba(143, 161, 181, .2); border-radius: 999px; color: #a9b8c7; font-size: .64rem; letter-spacing: .08em; padding: .42rem .55rem; white-space: nowrap; }
.jnw-surf-buoy header > b.is-live { background: rgba(67, 211, 157, .1); border-color: rgba(81, 222, 169, .29); color: #72e5b7; }
.jnw-surf-buoy header > b.is-partial,
.jnw-surf-buoy header > b.is-delayed { background: rgba(255, 190, 69, .1); border-color: rgba(255, 205, 91, .3); color: #ffdc7f; }
.jnw-surf-buoy-lead { display: grid; gap: .5rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: .9rem; }
.jnw-surf-buoy-lead > span { background: rgba(73, 185, 228, .07); border-radius: .7rem; display: flex; flex-direction: column; padding: .7rem; }
.jnw-surf-buoy-lead small { color: #93a8bb; font-size: .65rem; font-weight: 900; letter-spacing: .08em; }
.jnw-surf-buoy-lead strong { color: #e6f8ff; font-size: 1.45rem; letter-spacing: -.04em; margin-top: .2rem; }
.jnw-surf-buoy-lead em { color: #91a5b7; font-size: .7rem; font-style: normal; line-height: 1.35; margin-top: .14rem; }
.jnw-surf-buoy-wave-unavailable { background: rgba(255, 190, 69, .07); border: 1px solid rgba(255, 205, 91, .18); border-radius: .7rem; display: flex; flex-direction: column; gap: .25rem; margin-top: .9rem; padding: .78rem; }
.jnw-surf-buoy-wave-unavailable strong { color: #f4d78c; font-size: .88rem; }
.jnw-surf-buoy-wave-unavailable span { color: #b9c4ce; font-size: .76rem; line-height: 1.45; }
.jnw-surf-buoy-metrics { display: grid; gap: .35rem; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: .65rem; }
.jnw-surf-buoy-metrics > div { display: flex; flex-direction: column; }
.jnw-surf-buoy-metrics small { color: #91a5b8; font-size: .64rem; text-transform: uppercase; }
.jnw-surf-buoy-metrics strong { color: #cfdae3; font-size: .8rem; margin-top: .15rem; }
.jnw-surf-buoy-time { color: #94a7b9; font-size: .72rem; line-height: 1.45; margin: .75rem 0 0; }
.jnw-surf-buoy-link,
.jnw-surf-zone-link { color: #72d8ff; font-size: .82rem; font-weight: 900; margin-top: auto; padding-top: .8rem; }
.jnw-surf-buoy-unavailable { color: #afbecb; font-size: .86rem; line-height: 1.55; }

/* 0.45.7: denser Home hierarchy, durable controls and clear forecast context. */
.jnw-home {
  scroll-padding-bottom: calc(7.5rem + env(safe-area-inset-bottom));
}
.jnw-home .jnw-app-header {
  transition: min-height .18s ease, padding .18s ease, background .18s ease;
}
.jnw-home .jnw-brand-logo,
.jnw-home .jnw-location-title strong,
.jnw-home .jnw-location-title span,
.jnw-home .jnw-header-actions button,
.jnw-home .jnw-header-actions a {
  transition: font-size .18s ease, height .18s ease, max-height .18s ease, width .18s ease;
}
.jnw-home.is-header-compact .jnw-app-header {
  background: rgba(4, 17, 33, .98);
  min-height: 4.2rem;
  padding-bottom: .42rem;
  padding-top: .42rem;
}
.jnw-home.is-header-compact .jnw-brand-logo { max-height: 2.75rem; width: 3.75rem; }
.jnw-home.is-header-compact .jnw-location-title strong { font-size: 1.35rem; }
.jnw-home.is-header-compact .jnw-location-title span { font-size: .73rem; }
.jnw-home.is-header-compact .jnw-header-actions button,
.jnw-home.is-header-compact .jnw-header-actions a { font-size: 1.15rem; height: 2.15rem; width: 2.15rem; }

.jnw-home .jnw-content {
  padding-bottom: calc(7.75rem + env(safe-area-inset-bottom));
}
.jnw-home .jnw-updated-row,
.jnw-home .jnw-feels,
.jnw-home .jnw-current-feature > small,
.jnw-home .jnw-current-metrics small,
.jnw-home .jnw-weekly-legend b,
.jnw-home .jnw-weekly-source {
  font-weight: 650;
}

.jnw-home .jnw-risk-card {
  align-items: center;
  gap: .65rem;
  padding: .9rem 1rem;
}
.jnw-home .jnw-risk-card > div { min-width: 0; }
.jnw-home .jnw-risk-icon { font-size: 1.75rem; }
.jnw-home .jnw-risk-card small { font-size: .62rem; font-weight: 800; }
.jnw-home .jnw-risk-card h2 { font-size: clamp(1.12rem, 3.5vw, 1.45rem); line-height: 1.12; margin: .14rem 0 .18rem; }
.jnw-home .jnw-risk-card p { font-size: .75rem; font-weight: 500; line-height: 1.35; }
.jnw-home .jnw-risk-badge {
  border: 1px solid rgba(255,255,255,.23);
  border-radius: 999px;
  box-shadow: none;
  font-size: .61rem;
  letter-spacing: .055em;
  padding: .32rem .48rem;
  pointer-events: none;
}
.jnw-home .jnw-risk-link {
  color: #fff;
  display: inline-flex;
  font-size: .7rem;
  font-weight: 850;
  margin-top: .45rem;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.36);
  text-underline-offset: .18rem;
}
.jnw-home .jnw-risk-link[hidden] { display: none !important; }
.jnw-home .jnw-risk-card.is-priority-first {
  box-shadow: 0 .7rem 1.8rem rgba(80, 8, 18, .2);
}

.jnw-home .jnw-weekly-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .38rem .55rem;
  margin-top: .55rem;
}
.jnw-home .jnw-weekly-meta > span {
  align-items: center;
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(159,184,218,.2);
  border-radius: 999px;
  display: inline-flex;
  font-size: .76rem;
  font-weight: 800;
  gap: .3rem;
  padding: .3rem .52rem;
}
.jnw-home .jnw-weekly-meta > span > b { font-weight: 850; }
.jnw-home .jnw-weekly-meta .jnw-weekly-metric-left { color: var(--jnw-weekly-temperature); }
.jnw-home .jnw-weekly-meta > span > i { color: #93a5ba; font-style: normal; }
.jnw-home .jnw-weekly-meta .jnw-weekly-metric-right.is-rain { color: var(--jnw-weekly-rain); }
.jnw-home .jnw-weekly-meta .jnw-weekly-metric-right.is-cloud { color: var(--jnw-weekly-cloud); }
.jnw-home .jnw-weekly-meta .jnw-weekly-metric-right.is-humidity { color: var(--jnw-weekly-humidity); }
.jnw-home .jnw-weekly-meta .jnw-weekly-metric-right.is-wind { color: var(--jnw-weekly-wind); }
.jnw-home .jnw-weekly-meta > time {
  color: #a4b2c5;
  font-size: .73rem;
  font-weight: 700;
}
.jnw-home .jnw-weekly-source { margin-top: .55rem; }
.jnw-home .jnw-weekly-links {
  align-items: center;
  border-top: 1px solid rgba(159,184,218,.14);
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1rem;
  justify-content: center;
  margin-top: .75rem;
  padding-top: .72rem;
}
.jnw-home .jnw-weekly-links a,
.jnw-home .jnw-weekly-links button {
  background: transparent;
  border: 0;
  color: #69c9f8;
  cursor: pointer;
  font: inherit;
  font-size: .82rem;
  font-weight: 850;
  min-height: 2.35rem;
  padding: .45rem .35rem;
}
.jnw-home .jnw-weekly-links a:focus-visible,
.jnw-home .jnw-weekly-links button:focus-visible { outline: 2px solid #69c9f8; outline-offset: 2px; }

@media (max-width: 720px) {
  .jnw-home .jnw-app-header { min-height: 5rem; padding-bottom: .58rem; padding-top: .58rem; }
  .jnw-home .jnw-brand-logo { max-height: 3.15rem; width: 4.15rem; }
  .jnw-home .jnw-location-title strong { font-size: 1.5rem; }
  .jnw-home .jnw-location-title span { font-size: .78rem; }
  .jnw-home.is-header-compact .jnw-app-header { min-height: 3.85rem; padding-bottom: .35rem; padding-top: .35rem; }
  .jnw-home.is-header-compact .jnw-brand-logo { max-height: 2.35rem; width: 3.25rem; }
  .jnw-home.is-header-compact .jnw-location-title strong { font-size: 1.2rem; }
  .jnw-home.is-header-compact .jnw-location-title span { font-size: .65rem; }
  .jnw-home .jnw-favorite-quick-row { padding-bottom: .55rem; padding-top: .55rem; }
  .jnw-home .jnw-favorite-quick { min-height: 2.55rem; padding-bottom: .38rem; padding-top: .38rem; }
  .jnw-home .jnw-location-tools { padding-bottom: .42rem; padding-top: .42rem; }
  .jnw-home .jnw-location-pill,
  .jnw-home .jnw-city-picker select { min-height: 2.45rem; padding-bottom: .42rem; padding-top: .42rem; }
  .jnw-home .jnw-location-status,
  .jnw-home .jnw-location-scope { display: none; }
  .jnw-home .jnw-risk-card { grid-template-columns: 2.25rem minmax(0,1fr); padding: .85rem .9rem; }
  .jnw-home .jnw-risk-icon { align-self: start; grid-column: 1; grid-row: 1 / 3; margin-top: .12rem; }
  .jnw-home .jnw-risk-card > div { grid-column: 2; }
  .jnw-home .jnw-risk-badge { grid-column: 2; margin-top: .12rem; width: max-content; }
  .jnw-home .jnw-weekly-header { gap: .7rem; flex-wrap: wrap; }
  .jnw-home .jnw-weekly-header-actions { justify-content: flex-start; width: 100%; }
  .jnw-home .jnw-weekly-header h2 { font-size: clamp(1.7rem, 8vw, 2.15rem); }
  .jnw-home .jnw-weekly-meta { align-items: flex-start; flex-direction: column; }
  .jnw-home .jnw-weekly-meta > time { line-height: 1.35; }
  .jnw-home .jnw-weekly-settings-button { padding: 0 .58rem; }
  .jnw-home .jnw-weekly-settings-button span { font-size: .71rem; }
  .jnw-home .jnw-weekly-chart { min-width: 680px; }
  .jnw-home .jnw-weekly-links { align-items: flex-start; flex-direction: column; }
}

.jnw-surf-marine-zone summary { grid-template-columns: minmax(0,1fr) auto; }
.jnw-surf-marine-periods { border-top: 1px solid rgba(140, 179, 214, .13); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.jnw-surf-marine-periods > div { border-bottom: 1px solid rgba(140, 179, 214, .1); padding: .85rem 1rem; }
.jnw-surf-marine-periods > div:nth-child(odd) { border-right: 1px solid rgba(140, 179, 214, .1); }
.jnw-surf-marine-periods strong { color: #73d8ff; font-size: .84rem; }
.jnw-surf-marine-periods p { color: #bdc9d3; font-size: .88rem; line-height: 1.58; margin: .3rem 0 0; }
.jnw-surf-zone-link { display: inline-block; padding: .8rem 1rem 1rem; }

.jnw-surf-storm-guide { overflow: hidden; padding: 0; }
.jnw-surf-storm-guide > summary { align-items: center; cursor: pointer; display: flex; gap: 1rem; justify-content: space-between; list-style: none; padding: 1.1rem; }
.jnw-surf-storm-guide > summary::-webkit-details-marker { display: none; }
.jnw-surf-storm-guide > summary small { color: #72dbff; font-size: .72rem; font-weight: 950; letter-spacing: .12em; }
.jnw-surf-storm-guide > summary h2 { font-size: clamp(1.35rem, 3vw, 1.8rem); letter-spacing: -.035em; margin: .28rem 0 .3rem; }
.jnw-surf-storm-guide > summary p { color: #aebfcd; font-size: .86rem; line-height: 1.5; margin: 0; }
.jnw-surf-storm-guide > summary > span { color: #78d9ff; font-size: 1.5rem; transition: transform .2s ease; }
.jnw-surf-storm-guide[open] > summary > span { transform: rotate(45deg); }
.jnw-surf-guide-grid { border-top: 1px solid rgba(140, 179, 214, .14); display: grid; gap: .7rem; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 1rem; }
.jnw-surf-guide-grid article { background: rgba(5, 20, 38, .38); border: 1px solid rgba(136, 175, 210, .12); border-radius: .85rem; min-height: 9.5rem; padding: 1rem; }
.jnw-surf-guide-grid article > span { color: #71d9ff; font-size: .72rem; font-weight: 1000; letter-spacing: .1em; }
.jnw-surf-guide-grid h3 { font-size: 1.08rem; letter-spacing: -.025em; margin: .45rem 0 .4rem; }
.jnw-surf-guide-grid p { color: #b1c1ce; font-size: .86rem; line-height: 1.55; margin: 0; }
.jnw-surf-tools { align-items: center; background: linear-gradient(125deg, rgba(12, 48, 77, .98), rgba(7, 29, 54, .98)); display: flex; gap: 1.2rem; justify-content: space-between; padding: 1.1rem; }
.jnw-surf-tools h2 { font-size: clamp(1.25rem, 3.2vw, 1.8rem); letter-spacing: -.035em; margin: .25rem 0 0; }
.jnw-surf-tools > div:last-child,
.jnw-surf-resource-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.jnw-surf-tools button,
.jnw-surf-tools a,
.jnw-surf-resource-row a { background: rgba(76, 177, 222, .1); border: 1px solid rgba(94, 191, 232, .24); border-radius: .7rem; color: #bfe9fb; cursor: pointer; font-size: .82rem; font-weight: 900; padding: .72rem .78rem; text-decoration: none; }
.jnw-surf-tools button:hover,
.jnw-surf-tools button:focus-visible,
.jnw-surf-tools a:hover,
.jnw-surf-tools a:focus-visible,
.jnw-surf-resource-row a:hover,
.jnw-surf-resource-row a:focus-visible { border-color: #73d9ff; color: #fff; outline: none; }
.jnw-surf-resource-row { justify-content: center; }
.jnw-surf-source { color: #95a7b8; font-size: .8rem; line-height: 1.6; margin: -1rem auto 0; max-width: 63rem; text-align: center; }

@media (max-width: 980px) {
  .jnw-surf-hero { grid-template-columns: auto minmax(0,1fr); }
  .jnw-surf-stat-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .jnw-surf-buoy-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .jnw-surf-guide-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 720px) {
  .jnw-surf-inner { padding-left: .7rem; padding-right: .7rem; }
  .jnw-surf-hero { gap: .8rem; grid-template-columns: 1fr; }
  .jnw-surf-hero-icon { display: none; }
  .jnw-surf-hero p { font-size: .94rem; }
  .jnw-surf-camera-callout { grid-template-columns: 1fr; }
  .jnw-surf-camera-callout a { width: 100%; }
  .jnw-surf-section-heading { align-items: start; }
  .jnw-surf-section-heading > span { max-width: 8.5rem; }
  .jnw-surf-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .jnw-surf-stat-grid > span:last-child { grid-column: 1 / -1; }
  .jnw-surf-region summary { grid-template-columns: minmax(0,1fr) auto; }
  .jnw-surf-region-glance { display: none; }
  .jnw-surf-period-grid,
  .jnw-surf-buoy-grid,
  .jnw-surf-guide-grid,
  .jnw-surf-marine-periods { grid-template-columns: 1fr; }
  .jnw-surf-marine-periods > div:nth-child(odd) { border-right: 0; }
  .jnw-surf-tools { align-items: flex-start; flex-direction: column; }
  .jnw-surf-tools > div:last-child { width: 100%; }
  .jnw-surf-tools button,
  .jnw-surf-tools a { flex: 1 1 calc(50% - .5rem); text-align: center; }
  .jnw-surf-alert { align-items: start; grid-template-columns: auto minmax(0,1fr); }
  .jnw-surf-alert > i { display: none; }
}

/* 0.45.8: full mobile-home audit fixes. */
.jnw-home .jnw-alert-card.is-upcoming {
  background: rgba(82, 178, 231, .065);
  border-style: solid;
  box-shadow: inset 0 0 0 1px rgba(92, 196, 244, .06);
}
.jnw-home .jnw-alert-card.is-upcoming .jnw-alert-severity { color: #8bd8fb; }
.jnw-home .jnw-alert-card > strong { line-height: 1.25; }
.jnw-home .jnw-alert-card > div { line-height: 1.45; }

.jnw-home .jnw-weekly-chart-svg.is-mobile .jnw-weekly-day-label,
.jnw-home .jnw-weekly-chart-svg.is-mobile .jnw-weekly-temp-label { font-size: 20px; }
.jnw-home .jnw-weekly-chart-svg.is-mobile .jnw-weekly-axis-label { font-size: 16px; }
.jnw-home .jnw-weekly-chart-svg.is-mobile .jnw-weekly-temperature-line { stroke-width: 6; }
.jnw-home .jnw-weekly-chart-svg.is-mobile .jnw-weekly-precip-line { stroke-width: 4.5; }

.jnw-home .jnw-space-metrics strong {
  font-variant-numeric: tabular-nums;
  overflow-wrap: normal;
  white-space: nowrap;
  word-break: normal;
}
.jnw-home .jnw-air-forecast > button {
  background: transparent;
  border: 0;
  color: #69c9f8;
  cursor: pointer;
  font: inherit;
  font-size: .7rem;
  font-weight: 850;
  margin-top: .65rem;
  padding: .2rem 0;
}
.jnw-home .jnw-air-forecast > button[hidden] { display: none !important; }
.jnw-home .jnw-air-forecast > button:focus-visible { outline: 2px solid #69c9f8; outline-offset: 2px; }
.jnw-home .jnw-air-forecast p.is-collapsed:not(.is-expanded) {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 7;
  display: -webkit-box;
  overflow: hidden;
}
.jnw-home .jnw-tide-card[hidden] { display: none !important; }
.jnw-home .jnw-footer { margin-bottom: 1rem; }

@media (max-width: 720px) {
  .jnw-home .jnw-content { padding-bottom: calc(9.5rem + env(safe-area-inset-bottom)); }
  .jnw-home .jnw-weekly-scroll { overflow-x: hidden; padding-left: 0; padding-right: 0; }
  .jnw-home .jnw-weekly-chart { min-width: 0; width: 100%; }
  .jnw-home .jnw-space-metrics { gap: .48rem; }
  .jnw-home .jnw-space-metrics > span { min-height: 8.75rem; padding: .72rem; }
  .jnw-home .jnw-space-metrics small { font-size: .62rem; }
  .jnw-home .jnw-space-metrics strong { font-size: clamp(1.75rem, 8vw, 2.45rem); }
  .jnw-home .jnw-space-metrics b { font-size: .62rem; }
  .jnw-home .jnw-alert-card > p { font-size: .74rem; }
  .jnw-home .jnw-air-forecast p { font-size: .74rem; }
}

/* 0.46.16: actionable no-location state for direct visits to Detailed. */
.jnw-home .jnw-detailed-placeholder {
  align-items: center;
  background:
    radial-gradient(circle at 50% 0, rgba(69, 177, 239, .18), transparent 46%),
    linear-gradient(145deg, rgba(20, 43, 70, .98), rgba(8, 25, 46, .98));
  border: 1px solid rgba(113, 193, 239, .28);
  border-radius: 1.6rem;
  box-shadow: 0 1.35rem 3.75rem rgba(0, 7, 18, .3);
  gap: .65rem;
  margin: clamp(1.25rem, 4vw, 3rem) auto;
  max-width: 38rem;
  min-height: 25rem;
  padding: clamp(1.5rem, 5vw, 2.7rem);
  text-align: center;
}
.jnw-home .jnw-detailed-empty-icon {
  align-items: center;
  background: rgba(71, 183, 244, .12);
  border: 1px solid rgba(113, 202, 249, .32);
  border-radius: 50%;
  color: #75d1ff;
  display: flex;
  font-size: 2.2rem;
  height: 4.5rem;
  justify-content: center;
  line-height: 1;
  margin-bottom: .15rem;
  width: 4.5rem;
}
.jnw-home .jnw-detailed-placeholder > small:first-of-type {
  color: #72d0ff;
  font-size: .7rem;
  font-weight: 950;
  letter-spacing: .14em;
}
.jnw-home .jnw-detailed-placeholder > strong {
  font-size: clamp(2rem, 6vw, 2.75rem);
  letter-spacing: -.045em;
  line-height: 1;
}
.jnw-home .jnw-detailed-placeholder > span:not(.jnw-detailed-empty-icon) {
  color: #b5c5d8;
  font-size: clamp(.94rem, 2vw, 1.05rem);
  line-height: 1.55;
  max-width: 31rem;
}
.jnw-home .jnw-detailed-location-actions {
  display: grid;
  gap: .65rem;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  margin-top: .65rem;
  max-width: 31rem;
  width: 100%;
}
.jnw-home .jnw-detailed-location-actions button {
  border-radius: .9rem;
  cursor: pointer;
  font: inherit;
  font-size: .9rem;
  font-weight: 900;
  min-height: 3.45rem;
  padding: .85rem 1rem;
}
.jnw-home .jnw-detailed-location-primary {
  background: #59bff5;
  border: 1px solid #79d0ff;
  color: #061a2d;
}
.jnw-home .jnw-detailed-location-primary:hover,
.jnw-home .jnw-detailed-location-primary:focus-visible {
  background: #78d0ff;
  outline: 3px solid rgba(117, 209, 255, .3);
  outline-offset: 2px;
}
.jnw-home .jnw-detailed-location-secondary {
  background: rgba(255, 255, 255, .055);
  border: 1px solid rgba(166, 196, 228, .26);
  color: #e6f1fc;
}
.jnw-home .jnw-detailed-location-secondary:hover,
.jnw-home .jnw-detailed-location-secondary:focus-visible {
  background: rgba(255, 255, 255, .1);
  border-color: rgba(117, 209, 255, .6);
  outline: 3px solid rgba(117, 209, 255, .2);
  outline-offset: 2px;
}
.jnw-home .jnw-detailed-location-help {
  color: #8398b1;
  font-size: .72rem;
  line-height: 1.45;
  margin-top: .15rem;
}

@media (max-width: 720px) {
  .jnw-home .jnw-detailed-view { padding-left: .7rem; padding-right: .7rem; }
  .jnw-home .jnw-detailed-placeholder {
    border-radius: 1.35rem;
    margin-top: .85rem;
    min-height: 24rem;
    padding: 1.45rem 1rem;
  }
  .jnw-home .jnw-detailed-empty-icon { font-size: 1.85rem; height: 3.85rem; width: 3.85rem; }
  .jnw-home .jnw-detailed-location-actions { grid-template-columns: 1fr; }
  .jnw-home .jnw-detailed-location-actions button { font-size: .88rem; min-height: 3.35rem; width: 100%; }
}

/* 0.46.18: location-aware aurora context for live space-weather readings. */
.jnw-home .jnw-space-card {
  background:
    radial-gradient(circle at 88% -18%, rgba(84, 218, 160, .13), transparent 34%),
    linear-gradient(145deg, #17283f, #0f2036);
}
.jnw-home .jnw-space-card::before {
  background: linear-gradient(90deg, #73e6ad, #4ab8f1 62%, rgba(74, 184, 241, .08));
}
.jnw-home .jnw-space-aurora {
  align-items: center;
  background: rgba(29, 77, 68, .42);
  border: 1px solid rgba(105, 225, 168, .27);
  border-radius: 1.15rem;
  display: grid;
  gap: .9rem;
  grid-template-columns: auto minmax(0, 1fr);
  margin-bottom: 1rem;
  padding: 1rem 1.05rem;
}
.jnw-home .jnw-space-aurora[data-tone="watch"] { background: rgba(104, 81, 25, .34); border-color: rgba(244, 195, 73, .31); }
.jnw-home .jnw-space-aurora[data-tone="active"] { background: rgba(19, 77, 107, .44); border-color: rgba(75, 193, 246, .38); }
.jnw-home .jnw-space-aurora[data-tone="elevated"],
.jnw-home .jnw-space-aurora[data-tone="strong"] { background: rgba(83, 44, 125, .38); border-color: rgba(196, 132, 255, .4); }
.jnw-home .jnw-space-aurora[data-tone="unavailable"] { background: rgba(67, 78, 93, .32); border-color: rgba(163, 182, 203, .22); }
.jnw-home .jnw-space-aurora-mark {
  align-items: center;
  background: rgba(115, 230, 173, .12);
  border: 1px solid rgba(115, 230, 173, .3);
  border-radius: 50%;
  color: #8bf0bc;
  display: flex;
  font-size: 1.55rem;
  height: 3.35rem;
  justify-content: center;
  width: 3.35rem;
}
.jnw-home .jnw-space-aurora > div { min-width: 0; }
.jnw-home .jnw-space-aurora small {
  color: #8deebb;
  display: block;
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .12em;
}
.jnw-home .jnw-space-aurora strong {
  display: block;
  font-size: clamp(1.08rem, 3vw, 1.4rem);
  line-height: 1.2;
  margin-top: .2rem;
}
.jnw-home .jnw-space-aurora p {
  color: #bfd0df;
  font-size: .82rem;
  line-height: 1.5;
  margin: .35rem 0 0;
}
.jnw-home .jnw-space-metrics > span { min-height: 12.25rem; }
.jnw-home .jnw-space-metrics small { font-size: .7rem; }
.jnw-home .jnw-space-metrics b {
  color: #d5e1ec;
  font-size: .68rem;
  letter-spacing: .025em;
  line-height: 1.35;
  text-transform: uppercase;
}
.jnw-home .jnw-space-metrics em {
  color: #91a6ba;
  font-size: .7rem;
  font-style: normal;
  line-height: 1.45;
  margin-top: .45rem;
}
.jnw-home .jnw-space-thresholds {
  background: rgba(4, 18, 34, .5);
  border: 1px solid rgba(135, 165, 195, .17);
  border-radius: 1rem;
  margin-top: .85rem;
  padding: .9rem 1rem;
}
.jnw-home .jnw-space-thresholds > strong { display: block; font-size: .82rem; }
.jnw-home .jnw-space-thresholds > div {
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: .65rem;
}
.jnw-home .jnw-space-thresholds span {
  border-left: 2px solid rgba(112, 205, 248, .5);
  display: flex;
  flex-direction: column;
  gap: .12rem;
  padding-left: .6rem;
}
.jnw-home .jnw-space-thresholds span:nth-child(2) { border-color: #75dfa8; }
.jnw-home .jnw-space-thresholds span:nth-child(3) { border-color: #c58aff; }
.jnw-home .jnw-space-thresholds b { color: #eef6fd; font-size: .75rem; }
.jnw-home .jnw-space-thresholds small { color: #9fb1c4; font-size: .66rem; line-height: 1.35; }
.jnw-home .jnw-space-thresholds p {
  border-top: 1px solid rgba(135, 165, 195, .15);
  color: #9fb1c4;
  font-size: .7rem;
  line-height: 1.45;
  margin: .75rem 0 0;
  padding-top: .65rem;
}
.jnw-home .jnw-space-actions { display: flex; gap: .55rem; justify-content: center; margin-top: .9rem; }
.jnw-home .jnw-space-actions a {
  background: rgba(88, 190, 244, .1);
  border: 1px solid rgba(88, 190, 244, .28);
  border-radius: .75rem;
  color: #75d3ff;
  font-size: .74rem;
  font-weight: 900;
  padding: .65rem .8rem;
  text-align: center;
}
.jnw-home .jnw-space-actions a:last-child { background: transparent; border-color: rgba(159, 177, 198, .2); color: #aec0d1; }
.jnw-home .jnw-space-actions a:hover,
.jnw-home .jnw-space-actions a:focus-visible { border-color: #75d3ff; outline: 2px solid rgba(117, 211, 255, .18); outline-offset: 2px; }
.jnw-home .jnw-space-card > .jnw-data-updated { font-size: .68rem; margin-top: .75rem; }

@media (max-width: 720px) {
  .jnw-home .jnw-space-card { padding: 1rem; }
  .jnw-home .jnw-space-card::before { margin: -1rem -1rem 1rem; }
  .jnw-home .jnw-space-aurora { align-items: start; gap: .65rem; padding: .85rem; }
  .jnw-home .jnw-space-aurora-mark { font-size: 1.25rem; height: 2.75rem; width: 2.75rem; }
  .jnw-home .jnw-space-aurora small { font-size: .6rem; }
  .jnw-home .jnw-space-aurora p { font-size: .76rem; }
  .jnw-home .jnw-space-metrics { grid-template-columns: 1fr; }
  .jnw-home .jnw-space-metrics > span { min-height: 0; padding: .85rem .9rem; }
  .jnw-home .jnw-space-metrics small { font-size: .66rem; }
  .jnw-home .jnw-space-metrics strong { font-size: 2.25rem; margin-top: .45rem; }
  .jnw-home .jnw-space-metrics b { font-size: .65rem; margin-top: .45rem; }
  .jnw-home .jnw-space-metrics em { font-size: .71rem; }
  .jnw-home .jnw-space-thresholds > div { grid-template-columns: 1fr; }
  .jnw-home .jnw-space-thresholds span { min-height: 2.3rem; }
  .jnw-home .jnw-space-actions { align-items: stretch; flex-direction: column; }
  .jnw-home .jnw-space-actions a { font-size: .76rem; padding: .75rem; }
}

/* 0.46.19: location-aware WPC ERO, nationwide NWS LSRs and readable product sheets. */
.jnw-home .jnw-excessive-rain-card {
  align-items: center;
  background: linear-gradient(125deg, rgba(0, 74, 66, .97), rgba(4, 42, 49, .99));
  border: 1px solid rgba(52, 211, 153, .32);
  border-left: .45rem solid #19ce76;
  border-radius: 1.25rem;
  color: #f3fbf8;
  cursor: pointer;
  display: grid;
  font-family: inherit;
  gap: .8rem;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  padding: .95rem 1rem;
  text-align: left;
  width: 100%;
}
.jnw-home .jnw-excessive-rain-card:hover,
.jnw-home .jnw-excessive-rain-card:focus-visible { border-color: rgba(100, 238, 174, .68); outline: 3px solid rgba(52, 211, 153, .2); outline-offset: 2px; }
.jnw-home .jnw-excessive-rain-icon {
  align-items: center;
  background: rgba(36, 221, 130, .12);
  border: 1px solid rgba(60, 227, 145, .28);
  border-radius: 50%;
  display: flex;
  font-size: 1.45rem;
  height: 3.15rem;
  justify-content: center;
  width: 3.15rem;
}
.jnw-home .jnw-excessive-rain-copy { display: flex; flex-direction: column; min-width: 0; }
.jnw-home .jnw-excessive-rain-copy small { color: #7fe8b5; font-size: .65rem; font-weight: 950; letter-spacing: .1em; }
.jnw-home .jnw-excessive-rain-copy strong { font-size: clamp(1.1rem, 3.2vw, 1.4rem); line-height: 1.15; margin-top: .18rem; }
.jnw-home .jnw-excessive-rain-copy em { color: #b8d4cd; font-size: .76rem; font-style: normal; line-height: 1.4; margin-top: .25rem; }
.jnw-home .jnw-excessive-rain-card > b { background: #13c86c; border-radius: .55rem; color: #032b19; font-size: .68rem; font-weight: 1000; padding: .43rem .55rem; white-space: nowrap; }
.jnw-home .jnw-excessive-rain-card > i { color: #7ea89e; font-size: 1.65rem; font-style: normal; }
.jnw-home .jnw-excessive-rain-card.is-slight { background: linear-gradient(125deg, rgba(93, 75, 9, .98), rgba(48, 43, 15, .99)); border-color: rgba(251, 219, 78, .42); border-left-color: #f6d742; }
.jnw-home .jnw-excessive-rain-card.is-slight .jnw-excessive-rain-copy small { color: #ffe987; }
.jnw-home .jnw-excessive-rain-card.is-slight > b { background: #f6d742; color: #302700; }
.jnw-home .jnw-excessive-rain-card.is-moderate { background: linear-gradient(125deg, rgba(117, 38, 25, .98), rgba(59, 25, 20, .99)); border-color: rgba(255, 114, 82, .46); border-left-color: #ff674a; }
.jnw-home .jnw-excessive-rain-card.is-moderate .jnw-excessive-rain-copy small { color: #ffb19d; }
.jnw-home .jnw-excessive-rain-card.is-moderate > b { background: #ff674a; color: #351006; }
.jnw-home .jnw-excessive-rain-card.is-high { background: linear-gradient(125deg, rgba(112, 26, 76, .98), rgba(58, 19, 45, .99)); border-color: rgba(255, 93, 183, .48); border-left-color: #ff5db7; }
.jnw-home .jnw-excessive-rain-card.is-high .jnw-excessive-rain-copy small { color: #ffb2dc; }
.jnw-home .jnw-excessive-rain-card.is-high > b { background: #ff5db7; color: #3a0925; }

.jnw-home .jnw-product-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.jnw-home .jnw-product-card[data-jnw-product="lsr"] { border-color: rgba(91, 191, 246, .3); }
.jnw-home .jnw-product-card[data-jnw-product="lsr"] .jnw-product-badge { background: #ff604f; color: #fff; min-width: 1.55rem; text-align: center; }

.jnw-local-product-modal {
  align-items: center;
  background: rgba(1, 9, 20, .9);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 1rem;
  position: fixed;
  z-index: 100002;
}
.jnw-local-product-sheet {
  background: linear-gradient(155deg, #102640, #06182d 72%);
  border: 1px solid rgba(159, 184, 218, .25);
  border-radius: 1.7rem;
  box-shadow: 0 30px 100px rgba(0, 0, 0, .68);
  color: #f4f8ff;
  display: flex;
  flex-direction: column;
  max-height: min(92vh, 58rem);
  max-width: 48rem;
  overflow: hidden;
  width: 100%;
}
.jnw-local-product-sheet:focus { outline: none; }
.jnw-local-product-sheet > header { align-items: start; border-bottom: 1px solid rgba(159, 184, 218, .16); display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) auto; padding: 1.2rem 1.35rem; }
.jnw-local-product-sheet > header small { color: #65caff; font-size: .68rem; font-weight: 950; letter-spacing: .11em; }
.jnw-local-product-sheet > header h2 { font-size: clamp(1.8rem, 6vw, 3rem); letter-spacing: -.05em; line-height: 1; margin: .4rem 0 0; }
.jnw-local-product-sheet > header button { align-items: center; background: rgba(255, 255, 255, .07); border: 1px solid rgba(159, 184, 218, .18); border-radius: 50%; color: #fff; cursor: pointer; display: flex; font-size: 1.65rem; height: 2.7rem; justify-content: center; width: 2.7rem; }
.jnw-local-product-sheet > header button:hover,
.jnw-local-product-sheet > header button:focus-visible { background: rgba(255, 255, 255, .13); outline: 2px solid #65caff; outline-offset: 2px; }
.jnw-local-product-scroll { overflow-y: auto; overscroll-behavior: contain; padding: 1.15rem 1.35rem 1.4rem; }
.jnw-local-product-ero-hero { align-items: center; background: rgba(19, 117, 79, .18); border: 1px solid rgba(60, 220, 140, .28); border-left: .35rem solid #25d683; border-radius: 1.1rem; display: grid; gap: .9rem; grid-template-columns: auto minmax(0, 1fr); padding: 1rem; }
.jnw-local-product-ero-hero.is-slight { background: rgba(124, 101, 18, .18); border-color: rgba(247, 216, 65, .34); border-left-color: #f7d841; }
.jnw-local-product-ero-hero.is-moderate { background: rgba(134, 50, 31, .18); border-color: rgba(255, 104, 71, .36); border-left-color: #ff6847; }
.jnw-local-product-ero-hero.is-high { background: rgba(130, 28, 88, .18); border-color: rgba(255, 91, 183, .38); border-left-color: #ff5bb7; }
.jnw-local-product-rain-icon { align-items: center; background: rgba(255, 255, 255, .06); border-radius: 50%; display: flex; font-size: 1.55rem; height: 3.25rem; justify-content: center; width: 3.25rem; }
.jnw-local-product-ero-hero small { color: #8ce8bb; font-size: .65rem; font-weight: 950; letter-spacing: .09em; }
.jnw-local-product-ero-hero strong { display: block; font-size: 1.35rem; margin-top: .18rem; }
.jnw-local-product-ero-hero p { color: #c1d5d0; font-size: .84rem; line-height: 1.5; margin: .35rem 0 0; }
.jnw-local-product-map { background: #eef2f2; border-radius: 1rem; margin: 1rem 0 0; overflow: hidden; }
.jnw-local-product-map img { display: block; height: auto; width: 100%; }
.jnw-local-product-map figcaption { background: #0b2036; color: #96aabd; font-size: .7rem; line-height: 1.45; padding: .65rem .75rem; }
.jnw-local-product-meta { display: grid; gap: .6rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1rem 0; }
.jnw-local-product-meta > div { background: rgba(3, 16, 32, .45); border: 1px solid rgba(159, 184, 218, .13); border-radius: .85rem; min-width: 0; padding: .8rem; }
.jnw-local-product-meta dt { color: #7e92aa; font-size: .61rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.jnw-local-product-meta dd { color: #eef4fb; font-size: .78rem; font-weight: 820; line-height: 1.4; margin: .25rem 0 0; }
.jnw-local-product-explainer { border-top: 1px solid rgba(159, 184, 218, .14); padding-top: 1rem; }
.jnw-local-product-explainer > small { color: #70ccf8; font-size: .62rem; font-weight: 950; letter-spacing: .1em; }
.jnw-local-product-explainer h3 { font-size: 1.12rem; line-height: 1.25; margin: .35rem 0 0; }
.jnw-local-product-explainer p { color: #b7c5d4; font-size: .85rem; line-height: 1.6; margin: .55rem 0 0; }
.jnw-local-product-counter { align-items: center; display: flex; justify-content: space-between; margin-bottom: .9rem; }
.jnw-local-product-counter span { color: #eef5fc; font-size: 1rem; font-weight: 900; }
.jnw-local-product-counter small { color: #8195aa; font-size: .7rem; }
.jnw-local-product-lsr { background: rgba(4, 19, 36, .46); border: 1px solid rgba(150, 181, 216, .16); border-radius: 1.1rem; padding: 1.15rem; }
.jnw-local-product-lsr > small:first-child { color: #8ba0b6; font-size: .68rem; font-weight: 900; letter-spacing: .06em; }
.jnw-local-product-lsr h3 { font-size: clamp(1.5rem, 5vw, 2.25rem); letter-spacing: -.035em; line-height: 1.1; margin: .65rem 0 .75rem; }
.jnw-local-product-lsr-place { color: #e1ebf5; font-size: 1rem; font-weight: 780; margin: .45rem 0; }
.jnw-local-product-lsr-magnitude,
.jnw-local-product-lsr-coordinates { color: #91a5b9; font-size: .82rem; margin: .4rem 0; }
.jnw-local-product-lsr-remarks { border-top: 1px solid rgba(150, 181, 216, .14); color: #d8e2ec; font-size: 1rem; line-height: 1.65; margin-top: 1rem; padding-top: 1rem; }
.jnw-local-product-lsr-office { color: #74899f; display: block; font-size: .72rem; margin-top: 1rem; }
.jnw-local-product-navigation { display: grid; gap: .6rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1rem; }
.jnw-local-product-navigation button { background: rgba(255, 255, 255, .05); border: 1px solid rgba(151, 183, 222, .18); border-radius: .85rem; color: #e7eff8; cursor: pointer; font-size: .78rem; font-weight: 900; min-height: 3rem; padding: .65rem; }
.jnw-local-product-navigation button.is-latest { background: #277fb2; border-color: #53bdf4; }
.jnw-local-product-navigation button:disabled { cursor: default; opacity: .38; }
.jnw-local-product-navigation button:not(:disabled):hover,
.jnw-local-product-navigation button:not(:disabled):focus-visible { border-color: #73cfff; outline: 2px solid rgba(115, 207, 255, .22); outline-offset: 2px; }
.jnw-local-product-empty { align-items: center; display: flex; flex-direction: column; min-height: 16rem; justify-content: center; text-align: center; }
.jnw-local-product-empty > span { align-items: center; background: rgba(68, 211, 148, .12); border: 1px solid rgba(68, 211, 148, .3); border-radius: 50%; color: #78e9b1; display: flex; font-size: 1.3rem; height: 3.4rem; justify-content: center; width: 3.4rem; }
.jnw-local-product-empty h3 { font-size: 1.3rem; margin: .85rem 0 .4rem; }
.jnw-local-product-empty p { color: #9eb0c2; line-height: 1.55; margin: 0; max-width: 31rem; }
.jnw-local-product-sheet > footer { background: #061427; border-top: 1px solid rgba(159, 184, 218, .16); display: grid; gap: .65rem; grid-template-columns: 1fr 1fr; padding: 1rem 1.35rem max(1rem, env(safe-area-inset-bottom)); }
.jnw-local-product-sheet > footer a { align-items: center; background: #2a4569; border: 1px solid rgba(151, 183, 222, .25); border-radius: .85rem; color: #f3f7ff; display: flex; font-size: .78rem; font-weight: 900; justify-content: center; min-height: 3rem; padding: .75rem; text-align: center; }
.jnw-local-product-sheet > footer a:first-child { background: #2b8ed8; border-color: #65b9f5; }
.jnw-local-product-sheet > footer a:hover,
.jnw-local-product-sheet > footer a:focus-visible { outline: 2px solid #9ddcff; outline-offset: 2px; }

@media (min-width: 900px) {
  .jnw-home .jnw-excessive-rain-card { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  .jnw-home .jnw-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 821px) and (max-width: 1040px) {
  .jnw-home .jnw-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .jnw-home .jnw-excessive-rain-card { gap: .65rem; grid-template-columns: auto minmax(0, 1fr) auto; padding: .85rem; }
  .jnw-home .jnw-excessive-rain-icon { font-size: 1.2rem; height: 2.65rem; width: 2.65rem; }
  .jnw-home .jnw-excessive-rain-copy small { font-size: .58rem; }
  .jnw-home .jnw-excessive-rain-copy em { font-size: .7rem; }
  .jnw-home .jnw-excessive-rain-card > b { grid-column: 2; justify-self: start; }
  .jnw-home .jnw-excessive-rain-card > i { grid-column: 3; grid-row: 1 / 3; }
  .jnw-local-product-modal { align-items: flex-end; padding: 0; }
  .jnw-local-product-sheet { border-bottom: 0; border-radius: 1.35rem 1.35rem 0 0; max-height: 94vh; }
  .jnw-local-product-sheet > header { padding: 1rem; }
  .jnw-local-product-sheet > header h2 { font-size: 1.8rem; }
  .jnw-local-product-scroll { padding: .9rem 1rem 1.1rem; }
  .jnw-local-product-meta { grid-template-columns: 1fr; }
  .jnw-local-product-sheet > footer { grid-template-columns: 1fr; padding: .8rem 1rem max(.8rem, env(safe-area-inset-bottom)); }
  .jnw-local-product-navigation { gap: .4rem; }
  .jnw-local-product-navigation button { font-size: .72rem; padding: .55rem .35rem; }
}

/* 0.46.37: priority UV and air-quality cards directly below current conditions. */
.jnw-home .jnw-uv-card,
.jnw-home .jnw-air-card {
  min-height: 0;
  overflow: hidden;
  padding: clamp(1rem, 3vw, 1.45rem);
}
.jnw-home .jnw-uv-card {
  --jnw-uv-accent: #72dcae;
  background:
    radial-gradient(circle at 4% 0, color-mix(in srgb, var(--jnw-uv-accent) 18%, transparent), transparent 23rem),
    linear-gradient(145deg, rgba(22, 42, 68, .99), rgba(12, 29, 50, .99));
  border-top: .38rem solid var(--jnw-uv-accent);
}
.jnw-home .jnw-uv-card.is-moderate { --jnw-uv-accent: #f5d547; }
.jnw-home .jnw-uv-card.is-high { --jnw-uv-accent: #ff9c4a; }
.jnw-home .jnw-uv-card.is-very-high { --jnw-uv-accent: #ff626e; }
.jnw-home .jnw-uv-card.is-extreme { --jnw-uv-accent: #b86ae1; }
.jnw-home .jnw-uv-card.is-unavailable,
.jnw-home .jnw-uv-card.is-loading { --jnw-uv-accent: #8297ac; }
.jnw-home .jnw-card-label {
  color: #d3deea;
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .11em;
  line-height: 1.3;
  margin: 0;
}
.jnw-home .jnw-uv-dot {
  background: var(--jnw-uv-accent);
  border-radius: 50%;
  box-shadow: 0 0 0 .26rem color-mix(in srgb, var(--jnw-uv-accent) 16%, transparent);
  display: inline-block;
  height: .65rem;
  margin-right: .42rem;
  vertical-align: -.01rem;
  width: .65rem;
}
.jnw-home .jnw-health-card-layout {
  align-items: stretch;
  display: grid;
  gap: clamp(.8rem, 2.5vw, 1.35rem);
  grid-template-columns: minmax(0, 1.45fr) minmax(12.5rem, .72fr);
  margin-top: 1rem;
}
.jnw-home .jnw-uv-status-column,
.jnw-home .jnw-air-status-column { min-width: 0; }
.jnw-home .jnw-uv-placeholder { min-height: 12rem; }
.jnw-home .jnw-uv-live { padding: .35rem .15rem .2rem; }
.jnw-home .jnw-uv-current {
  align-items: center;
  display: flex;
  gap: .9rem;
}
.jnw-home .jnw-uv-current > strong {
  color: var(--jnw-uv-accent);
  font-size: clamp(4.4rem, 11vw, 6.7rem);
  font-variant-numeric: tabular-nums;
  font-weight: 850;
  letter-spacing: -.08em;
  line-height: .85;
}
.jnw-home .jnw-uv-current > span { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.jnw-home .jnw-uv-current small { color: #91a5ba; font-size: .66rem; font-weight: 950; letter-spacing: .1em; }
.jnw-home .jnw-uv-current b { font-size: clamp(1.2rem, 4vw, 1.75rem); line-height: 1.05; }
.jnw-home .jnw-uv-peak {
  align-items: center;
  background: rgba(3, 18, 34, .5);
  border: 1px solid rgba(145, 172, 202, .18);
  border-radius: .85rem;
  display: grid;
  gap: .3rem .65rem;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 1rem;
  padding: .72rem .85rem;
}
.jnw-home .jnw-uv-peak > span { color: #aebdcd; font-size: .72rem; font-weight: 850; }
.jnw-home .jnw-uv-peak > strong { font-size: 1.35rem; font-variant-numeric: tabular-nums; grid-column: 2; grid-row: 1 / 3; }
.jnw-home .jnw-uv-peak > b { color: #dbe7f2; font-size: .82rem; }
.jnw-home .jnw-uv-peak > b.is-low { color: #72dcae; }
.jnw-home .jnw-uv-peak > b.is-moderate { color: #f5d547; }
.jnw-home .jnw-uv-peak > b.is-high { color: #ff9c4a; }
.jnw-home .jnw-uv-peak > b.is-very-high { color: #ff626e; }
.jnw-home .jnw-uv-peak > b.is-extreme { color: #cb7ff0; }
.jnw-home .jnw-uv-live > p {
  color: #c1cfdd;
  font-size: .8rem;
  line-height: 1.5;
  margin: .8rem 0 .35rem;
}
.jnw-home .jnw-uv-live > small { color: #8196aa; font-size: .68rem; }
.jnw-home .jnw-health-source {
  color: #8ea2b6;
  display: block;
  font-size: .7rem;
  line-height: 1.45;
  margin-top: .8rem;
}
.jnw-home .jnw-health-source a { color: #69c9f8; }
.jnw-home .jnw-health-legend {
  background: rgba(3, 17, 33, .58);
  border: 1px solid rgba(142, 170, 202, .18);
  border-radius: 1rem;
  padding: .9rem;
}
.jnw-home .jnw-health-legend > strong {
  color: #aebfd0;
  display: block;
  font-size: .63rem;
  font-weight: 950;
  letter-spacing: .1em;
  margin-bottom: .7rem;
}
.jnw-home .jnw-health-legend ol {
  display: grid;
  gap: .42rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.jnw-home .jnw-health-legend ol[hidden] { display: none !important; }
.jnw-home .jnw-health-legend li {
  align-items: center;
  display: grid;
  gap: .55rem;
  grid-template-columns: .72rem minmax(0, 1fr);
  min-width: 0;
}
.jnw-home .jnw-health-legend li > i {
  background: #8aa0b5;
  border-radius: .28rem;
  display: block;
  height: .72rem;
  width: .72rem;
}
.jnw-home .jnw-health-legend li > span { display: flex; flex-direction: column; line-height: 1.12; min-width: 0; }
.jnw-home .jnw-health-legend li b { color: #edf4fb; font-size: .7rem; font-variant-numeric: tabular-nums; }
.jnw-home .jnw-health-legend li small { color: #8fa3b7; font-size: .64rem; margin-top: .12rem; }
.jnw-home .jnw-health-legend li.is-low > i,
.jnw-home .jnw-health-legend li.is-good > i { background: #39d393; }
.jnw-home .jnw-health-legend li.is-moderate > i { background: #f5d547; }
.jnw-home .jnw-health-legend li.is-high > i,
.jnw-home .jnw-health-legend li.is-usg > i { background: #ff9c4a; }
.jnw-home .jnw-health-legend li.is-very-high > i,
.jnw-home .jnw-health-legend li.is-unhealthy > i { background: #ff626e; }
.jnw-home .jnw-health-legend li.is-very-unhealthy > i,
.jnw-home .jnw-health-legend li.is-extreme > i { background: #b86ae1; }
.jnw-home .jnw-health-legend li.is-hazardous > i { background: #9b506c; }
.jnw-home .jnw-air-card {
  background:
    radial-gradient(circle at 2% 0, rgba(72, 211, 147, .12), transparent 24rem),
    linear-gradient(145deg, rgba(22, 42, 68, .99), rgba(12, 29, 50, .99));
  border-top: .38rem solid #4bd595;
}
.jnw-home .jnw-air-card-layout { margin-top: .9rem; }
.jnw-home .jnw-air-card .jnw-aq-current {
  margin-left: 0;
  margin-right: 0;
  max-width: 23rem;
}
.jnw-home .jnw-air-card .jnw-air-forecast { margin-bottom: .75rem; }
.jnw-home .jnw-air-card > .jnw-pollen-panel { margin-top: 1.25rem; }

@media (max-width: 620px) {
  .jnw-home .jnw-uv-card,
  .jnw-home .jnw-air-card { padding: .9rem; }
  .jnw-home .jnw-health-card-layout {
    gap: .65rem;
    grid-template-columns: minmax(0, 1fr) minmax(8.35rem, .72fr);
    margin-top: .8rem;
  }
  .jnw-home .jnw-health-legend { border-radius: .85rem; padding: .7rem .58rem; }
  .jnw-home .jnw-health-legend > strong { font-size: .56rem; letter-spacing: .065em; margin-bottom: .58rem; }
  .jnw-home .jnw-health-legend ol { gap: .38rem; }
  .jnw-home .jnw-health-legend li { gap: .4rem; grid-template-columns: .62rem minmax(0, 1fr); }
  .jnw-home .jnw-health-legend li > i { height: .62rem; width: .62rem; }
  .jnw-home .jnw-health-legend li b { font-size: .65rem; }
  .jnw-home .jnw-health-legend li small { font-size: .57rem; overflow-wrap: anywhere; }
  .jnw-home .jnw-uv-current { align-items: flex-start; flex-direction: column; gap: .45rem; }
  .jnw-home .jnw-uv-current > strong { font-size: clamp(3.8rem, 18vw, 5.2rem); }
  .jnw-home .jnw-uv-current b { font-size: 1.12rem; }
  .jnw-home .jnw-uv-peak { align-items: start; grid-template-columns: 1fr; padding: .65rem; }
  .jnw-home .jnw-uv-peak > strong { font-size: 1.2rem; grid-column: 1; grid-row: auto; }
  .jnw-home .jnw-uv-live > p { font-size: .72rem; }
  .jnw-home .jnw-health-source { font-size: .62rem; }
  .jnw-home .jnw-air-card .jnw-aq-current { max-width: 100%; }
  .jnw-home .jnw-air-card .jnw-air-forecast { padding: .75rem; }
  .jnw-home .jnw-air-card .jnw-air-forecast > div { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .jnw-home .jnw-air-card .jnw-air-forecast > div > strong { font-size: 2.5rem; }
  .jnw-home .jnw-pollen-types { gap: .4rem; }
  .jnw-home .jnw-pollen-types > span { padding: .62rem .5rem; }
}

@media (max-width: 370px) {
  .jnw-home .jnw-health-card-layout { grid-template-columns: minmax(0, 1fr) 7.75rem; }
  .jnw-home .jnw-uv-card,
  .jnw-home .jnw-air-card { padding-left: .75rem; padding-right: .75rem; }
  .jnw-home .jnw-health-legend { padding-left: .48rem; padding-right: .48rem; }
  .jnw-home .jnw-health-legend li { gap: .32rem; }
}

/* 0.46.38: larger health legends, active AQI bands and complete pollen scale. */
.jnw-home .jnw-health-card-layout {
  gap: clamp(1rem, 2.8vw, 1.7rem);
  grid-template-columns: minmax(0, 1.25fr) minmax(17rem, .9fr);
}
.jnw-home .jnw-health-legend {
  background: linear-gradient(145deg, rgba(6, 25, 45, .9), rgba(3, 16, 31, .9));
  border-color: rgba(142, 180, 218, .28);
  padding: 1.2rem;
}
.jnw-home .jnw-health-legend > strong {
  font-size: .78rem;
  letter-spacing: .11em;
  margin-bottom: .95rem;
}
.jnw-home .jnw-health-legend ol { gap: .62rem; }
.jnw-home .jnw-health-legend li {
  background: rgba(255, 255, 255, .035);
  border: 1px solid rgba(148, 177, 209, .12);
  border-radius: .7rem;
  gap: .7rem;
  grid-template-columns: 1rem minmax(0, 1fr);
  min-height: 3.25rem;
  padding: .55rem .65rem;
  transition: background .2s ease, border-color .2s ease, opacity .2s ease, filter .2s ease;
}
.jnw-home .jnw-health-legend li > i {
  border-radius: .34rem;
  box-shadow: 0 0 0 .2rem rgba(255, 255, 255, .035);
  height: 1rem;
  width: 1rem;
}
.jnw-home .jnw-health-legend li b { font-size: .96rem; }
.jnw-home .jnw-health-legend li small { font-size: .8rem; line-height: 1.22; margin-top: .16rem; }
.jnw-home .jnw-air-legend li.is-inactive {
  background: rgba(102, 119, 139, .075);
  border-color: rgba(139, 155, 174, .08);
  filter: grayscale(.78) saturate(.3);
  opacity: .38;
}
.jnw-home .jnw-air-legend li.is-active {
  background: rgba(255, 255, 255, .095);
  border-color: rgba(232, 243, 255, .58);
  box-shadow: 0 0 0 2px rgba(117, 202, 250, .13), 0 .4rem 1.2rem rgba(0, 0, 0, .18);
}
.jnw-home .jnw-air-legend li.is-active b,
.jnw-home .jnw-air-legend li.is-active small { color: #fff; }

.jnw-home .jnw-uv-peak { min-height: 5.6rem; padding: .9rem 1rem; }
.jnw-home .jnw-uv-peak > span { font-size: .92rem; }
.jnw-home .jnw-uv-peak > strong {
  color: #dbe7f2;
  font-size: clamp(2.5rem, 5.5vw, 3.5rem);
  font-weight: 950;
  letter-spacing: -.06em;
}
.jnw-home .jnw-uv-peak > b { font-size: 1.08rem; }
.jnw-home .jnw-uv-peak > strong.is-low { color: #72dcae; }
.jnw-home .jnw-uv-peak > strong.is-moderate { color: #f5d547; }
.jnw-home .jnw-uv-peak > strong.is-high { color: #ff9c4a; }
.jnw-home .jnw-uv-peak > strong.is-very-high { color: #ff626e; }
.jnw-home .jnw-uv-peak > strong.is-extreme { color: #cb7ff0; }

.jnw-home .jnw-air-forecast p.is-collapsed:not(.is-expanded) { display: none; }
.jnw-home .jnw-air-forecast p.is-expanded { display: block; }

.jnw-home .jnw-pollen-panel > header > span {
  border-radius: .9rem;
  font-size: clamp(1.65rem, 4vw, 2.2rem);
  letter-spacing: -.045em;
  line-height: 1;
  padding: .7rem .9rem;
}
.jnw-home .jnw-pollen-types > span { padding: .9rem; }
.jnw-home .jnw-pollen-types small { font-size: .7rem; }
.jnw-home .jnw-pollen-types strong {
  font-size: clamp(1.9rem, 4.5vw, 2.65rem);
  font-weight: 950;
  letter-spacing: -.05em;
}
.jnw-home .jnw-pollen-types em { font-size: .75rem; }
.jnw-home .jnw-pollen-legend {
  background: rgba(3, 17, 33, .58);
  border: 1px solid rgba(142, 170, 202, .2);
  border-radius: 1rem;
  margin-top: 1rem;
  padding: 1rem;
}
.jnw-home .jnw-pollen-legend > strong {
  color: #b9c9d9;
  display: block;
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .1em;
  margin-bottom: .75rem;
}
.jnw-home .jnw-pollen-legend ol {
  display: grid;
  gap: .45rem;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}
.jnw-home .jnw-pollen-legend li {
  align-items: center;
  background: rgba(255, 255, 255, .035);
  border: 1px solid rgba(146, 177, 207, .14);
  border-radius: .7rem;
  display: grid;
  gap: .45rem;
  grid-template-columns: .9rem minmax(0, 1fr);
  min-height: 3.25rem;
  padding: .48rem;
}
.jnw-home .jnw-pollen-legend li > i {
  border-radius: .28rem;
  display: block;
  height: .9rem;
  width: .9rem;
}
.jnw-home .jnw-pollen-legend li > span { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; }
.jnw-home .jnw-pollen-legend li b { color: #f0f6fc; font-size: .92rem; }
.jnw-home .jnw-pollen-legend li small { color: #9fb0c1; font-size: .66rem; line-height: 1.18; margin-top: .1rem; }
.jnw-home .jnw-pollen-legend li.is-level-0 > i { background: #8fd4b0; }
.jnw-home .jnw-pollen-legend li.is-level-1 > i { background: #62d391; }
.jnw-home .jnw-pollen-legend li.is-level-2 > i { background: #b7d95e; }
.jnw-home .jnw-pollen-legend li.is-level-3 > i { background: #ffd353; }
.jnw-home .jnw-pollen-legend li.is-level-4 > i { background: #ff9c4a; }
.jnw-home .jnw-pollen-legend li.is-level-5 > i { background: #ff626e; }

@media (max-width: 760px) {
  .jnw-home .jnw-health-card-layout { grid-template-columns: minmax(0, 1fr); }
  .jnw-home .jnw-health-legend { padding: 1rem; }
  .jnw-home .jnw-health-legend > strong { font-size: .72rem; }
  .jnw-home .jnw-health-legend ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jnw-home .jnw-health-legend li {
    gap: .6rem;
    grid-template-columns: .9rem minmax(0, 1fr);
    min-height: 3rem;
    padding: .5rem .58rem;
  }
  .jnw-home .jnw-health-legend li > i { height: .9rem; width: .9rem; }
  .jnw-home .jnw-health-legend li b { font-size: .88rem; }
  .jnw-home .jnw-health-legend li small { font-size: .75rem; overflow-wrap: normal; }
  .jnw-home .jnw-uv-current { align-items: center; flex-direction: row; }
  .jnw-home .jnw-uv-peak { align-items: center; grid-template-columns: minmax(0, 1fr) auto; padding: .8rem .9rem; }
  .jnw-home .jnw-uv-peak > strong { font-size: 2.65rem; grid-column: 2; grid-row: 1 / 3; }
  .jnw-home .jnw-pollen-legend ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 430px) {
  .jnw-home .jnw-health-legend ol { grid-template-columns: minmax(0, 1fr); }
  .jnw-home .jnw-health-legend li { min-height: 2.85rem; }
  .jnw-home .jnw-uv-current { align-items: flex-start; flex-direction: column; }
  .jnw-home .jnw-uv-peak > strong { font-size: 2.4rem; }
  .jnw-home .jnw-pollen-panel > header { align-items: flex-start; }
  .jnw-home .jnw-pollen-types { grid-template-columns: minmax(0, 1fr); }
  .jnw-home .jnw-pollen-types > span { align-items: baseline; display: grid; gap: .3rem .7rem; grid-template-columns: minmax(4rem, auto) minmax(0, 1fr); }
  .jnw-home .jnw-pollen-types small { grid-column: 1; }
  .jnw-home .jnw-pollen-types strong { grid-column: 1; }
  .jnw-home .jnw-pollen-types em { grid-column: 2; grid-row: 1 / 3; }
  .jnw-home .jnw-pollen-legend ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 0.46.39: grouped Maine menu and dual current/forecast health-scale highlighting. */
.jnw-home .jnw-more-maine {
  background: linear-gradient(145deg, rgba(19, 68, 105, .68), rgba(7, 31, 56, .82));
  border: 1px solid rgba(100, 203, 255, .32);
  border-radius: 1rem;
  margin: .7rem 0 .45rem;
  overflow: hidden;
}
.jnw-home .jnw-more-maine > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  list-style: none;
  min-height: 5rem;
  padding: .72rem 1rem;
}
.jnw-home .jnw-more-maine > summary::-webkit-details-marker { display: none; }
.jnw-home .jnw-more-maine > summary:focus-visible {
  box-shadow: inset 0 0 0 2px #72d7ff;
  outline: none;
}
.jnw-home .jnw-more-maine > summary > span { display: flex; flex-direction: column; }
.jnw-home .jnw-more-maine > summary small {
  color: #72d7ff;
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .12em;
}
.jnw-home .jnw-more-maine > summary strong {
  color: #fff;
  font-size: 1.85rem;
  letter-spacing: -.04em;
  margin-top: .08rem;
}
.jnw-home .jnw-more-maine > summary em {
  color: #a8bdd5;
  font-size: .65rem;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .09em;
  line-height: 1.15;
  margin-top: .12rem;
  text-transform: uppercase;
}
.jnw-home .jnw-more-maine > summary > i {
  align-items: center;
  background: rgba(112, 211, 255, .11);
  border: 1px solid rgba(112, 211, 255, .22);
  border-radius: 50%;
  color: #9fe4ff;
  display: inline-flex;
  font-size: 1.55rem;
  font-style: normal;
  height: 2.35rem;
  justify-content: center;
  transition: transform .2s ease;
  width: 2.35rem;
}
.jnw-home .jnw-more-maine[open] > summary > i { transform: rotate(180deg); }
.jnw-home .jnw-more-maine-options {
  border-top: 1px solid rgba(121, 199, 239, .18);
  padding: .3rem .35rem .45rem;
}
.jnw-home .jnw-more-maine-options .jnw-more-option { min-height: 4.65rem; }
.jnw-home .jnw-more-all { margin-top: .2rem; }

.jnw-home .jnw-uv-legend li.is-inactive,
.jnw-home .jnw-air-legend li.is-inactive {
  background: rgba(102, 119, 139, .075);
  border-color: rgba(139, 155, 174, .08);
  filter: grayscale(.78) saturate(.3);
  opacity: .38;
}
.jnw-home .jnw-uv-legend li.is-active,
.jnw-home .jnw-air-legend li.is-active {
  background: rgba(255, 255, 255, .095);
  border-color: rgba(232, 243, 255, .58);
  box-shadow: 0 0 0 2px rgba(117, 202, 250, .13), 0 .4rem 1.2rem rgba(0, 0, 0, .18);
  filter: none;
  opacity: 1;
}
.jnw-home .jnw-health-legend li.is-current { border-color: rgba(101, 229, 181, .74); }
.jnw-home .jnw-health-legend li.is-forecast,
.jnw-home .jnw-health-legend li.is-peak { box-shadow: 0 0 0 2px rgba(117, 202, 250, .17), 0 .4rem 1.2rem rgba(0, 0, 0, .18); }
.jnw-home .jnw-health-legend li.is-current.is-forecast,
.jnw-home .jnw-health-legend li.is-current.is-peak {
  border-color: rgba(214, 246, 255, .78);
  box-shadow: 0 0 0 2px rgba(111, 222, 197, .16), 0 .4rem 1.2rem rgba(0, 0, 0, .18);
}
.jnw-home .jnw-health-legend li[data-jnw-band-label]::after {
  color: #9fe4ff;
  content: attr(data-jnw-band-label);
  font-size: .58rem;
  font-weight: 950;
  grid-column: 2;
  letter-spacing: .075em;
  line-height: 1.15;
  margin-top: -.1rem;
}
.jnw-home .jnw-health-legend li.is-current[data-jnw-band-label]::after { color: #79e3ba; }
.jnw-home .jnw-health-legend li.is-current.is-forecast[data-jnw-band-label]::after,
.jnw-home .jnw-health-legend li.is-current.is-peak[data-jnw-band-label]::after { color: #d6f6ff; }
.jnw-home .jnw-uv-legend li.is-active b,
.jnw-home .jnw-uv-legend li.is-active small,
.jnw-home .jnw-air-legend li.is-active b,
.jnw-home .jnw-air-legend li.is-active small { color: #fff; }

@media (max-width: 430px) {
  .jnw-home .jnw-more-maine > summary { min-height: 4.65rem; padding: .65rem .8rem; }
  .jnw-home .jnw-more-maine > summary strong { font-size: 1.65rem; }
  .jnw-home .jnw-more-maine-options { padding-left: .15rem; padding-right: .15rem; }
  .jnw-home .jnw-health-legend li[data-jnw-band-label]::after { font-size: .55rem; }
}

/* 0.46.44: distinct current and forecast UV panels with a reference-only legend. */
.jnw-home .jnw-uv-card {
  --jnw-uv-accent: #72d7ff;
  background:
    radial-gradient(circle at 4% 0, rgba(114, 215, 255, .15), transparent 23rem),
    linear-gradient(145deg, rgba(22, 42, 68, .99), rgba(12, 29, 50, .99));
}
.jnw-home .jnw-uv-live { padding: 0; }
.jnw-home .jnw-uv-readings {
  display: grid;
  gap: .85rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.jnw-home .jnw-uv-reading {
  --jnw-uv-reading-accent: #8297ac;
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--jnw-uv-reading-accent) 13%, rgba(8, 27, 47, .96)), rgba(3, 17, 33, .96));
  border: 1px solid color-mix(in srgb, var(--jnw-uv-reading-accent) 42%, rgba(139, 172, 204, .18));
  border-left: .38rem solid var(--jnw-uv-reading-accent);
  border-radius: 1rem;
  box-shadow: 0 .55rem 1.5rem rgba(0, 0, 0, .14);
  display: flex;
  flex-direction: column;
  min-height: 14.2rem;
  padding: 1rem 1.05rem;
}
.jnw-home .jnw-uv-reading.is-low { --jnw-uv-reading-accent: #72dcae; }
.jnw-home .jnw-uv-reading.is-moderate { --jnw-uv-reading-accent: #f5d547; }
.jnw-home .jnw-uv-reading.is-high { --jnw-uv-reading-accent: #ff9c4a; }
.jnw-home .jnw-uv-reading.is-very-high { --jnw-uv-reading-accent: #ff626e; }
.jnw-home .jnw-uv-reading.is-extreme { --jnw-uv-reading-accent: #cb7ff0; }
.jnw-home .jnw-uv-reading > header {
  align-items: flex-start;
  display: flex;
  gap: .65rem;
  justify-content: space-between;
  min-height: 2.15rem;
}
.jnw-home .jnw-uv-reading > header > span {
  color: #aebfd0;
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .09em;
  line-height: 1.25;
  text-transform: uppercase;
}
.jnw-home .jnw-uv-reading > header > b {
  background: color-mix(in srgb, var(--jnw-uv-reading-accent) 13%, transparent);
  border: 1px solid color-mix(in srgb, var(--jnw-uv-reading-accent) 38%, transparent);
  border-radius: 999px;
  color: var(--jnw-uv-reading-accent);
  font-size: .72rem;
  line-height: 1;
  padding: .38rem .52rem;
  text-align: right;
}
.jnw-home .jnw-uv-reading > strong {
  color: var(--jnw-uv-reading-accent);
  font-size: clamp(4rem, 8vw, 5.8rem);
  font-variant-numeric: tabular-nums;
  font-weight: 950;
  letter-spacing: -.075em;
  line-height: .95;
  margin: .65rem 0;
}
.jnw-home .jnw-uv-reading > p {
  color: #c7d5e2;
  font-size: .78rem;
  line-height: 1.48;
  margin: auto 0 0;
}
.jnw-home .jnw-uv-live > small {
  display: block;
  margin-top: .7rem;
}
.jnw-home .jnw-uv-legend li,
.jnw-home .jnw-uv-legend li.is-active,
.jnw-home .jnw-uv-legend li.is-inactive {
  background: rgba(255, 255, 255, .035);
  border-color: rgba(148, 177, 209, .12);
  box-shadow: none;
  filter: none;
  opacity: 1;
}
.jnw-home .jnw-uv-legend li[data-jnw-band-label]::after { content: none; }

@media (max-width: 520px) {
  .jnw-home .jnw-uv-readings { grid-template-columns: minmax(0, 1fr); }
  .jnw-home .jnw-uv-reading { min-height: 11.8rem; }
  .jnw-home .jnw-uv-reading > strong { font-size: clamp(4.4rem, 22vw, 6rem); }
}

/* 0.46.45: late-afternoon air-quality rollover and reference-only legend. */
.jnw-home .jnw-air-legend li,
.jnw-home .jnw-air-legend li.is-active,
.jnw-home .jnw-air-legend li.is-inactive {
  background: rgba(255, 255, 255, .035);
  border-color: rgba(148, 177, 209, .12);
  box-shadow: none;
  filter: none;
  opacity: 1;
}
.jnw-home .jnw-air-legend li[data-jnw-band-label]::after { content: none; }

/* 0.46.47: reference-only pollen scale and colored tomorrow panel. */
.jnw-home .jnw-pollen-legend li,
.jnw-home .jnw-pollen-legend li.is-active,
.jnw-home .jnw-pollen-legend li.is-inactive {
  background: rgba(255, 255, 255, .035);
  border-color: rgba(146, 177, 207, .14);
  box-shadow: none;
  filter: none;
  opacity: 1;
}
/* 0.46.48: native current-air gauge and plain-language category forecast. */
@media (max-width: 620px) {
.jnw-home .jnw-air-card .jnw-air-forecast > div > strong.is-category-forecast { font-size: 1.65rem; }
}

/* 0.46.63: compact current-conditions sponsorship treatment. */
.jnw-home .jnw-current-sponsor-slot {
  align-items: center;
  background: linear-gradient(105deg, rgba(14, 48, 75, .84), rgba(9, 31, 54, .9));
  border: 1px solid rgba(99, 200, 241, .28);
  border-radius: .9rem;
  color: #edf7ff;
  display: grid;
  gap: .65rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  margin: .75rem clamp(.15rem, 2vw, 1rem) 0;
  min-height: 3.25rem;
  overflow: hidden;
  padding: .48rem .62rem;
  position: relative;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.jnw-home .jnw-current-sponsor-slot::before {
  background: linear-gradient(180deg, #78dcff, #319bd0);
  bottom: 0;
  content: "";
  left: 0;
  position: absolute;
  top: 0;
  width: 3px;
}
.jnw-home .jnw-current-sponsor-slot:hover,
.jnw-home .jnw-current-sponsor-slot:focus-visible {
  background: linear-gradient(105deg, rgba(17, 57, 88, .96), rgba(10, 38, 65, .96));
  border-color: rgba(120, 220, 255, .58);
  outline: 3px solid rgba(99, 200, 241, .16);
  outline-offset: 2px;
  transform: translateY(-1px);
}
.jnw-home .jnw-current-sponsor-mark {
  align-items: center;
  background: rgba(108, 210, 250, .1);
  border: 1px solid rgba(123, 218, 255, .3);
  border-radius: .62rem;
  color: #8bddff;
  display: inline-flex;
  font-size: .68rem;
  font-weight: 950;
  height: 2.15rem;
  justify-content: center;
  letter-spacing: .04em;
  width: 2.15rem;
}
.jnw-home .jnw-current-sponsor-copy { display: flex; flex-direction: column; min-width: 0; }
.jnw-home .jnw-current-sponsor-copy small {
  color: #7edcff;
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .12em;
  line-height: 1.25;
}
.jnw-home .jnw-current-sponsor-copy strong {
  color: #f5f9fd;
  font-size: .92rem;
  font-weight: 900;
  letter-spacing: -.015em;
  line-height: 1.2;
  margin-top: .08rem;
}
.jnw-home .jnw-current-sponsor-action {
  align-items: center;
  color: #c8eefe;
  display: inline-flex;
  font-size: .7rem;
  font-weight: 900;
  gap: .32rem;
  white-space: nowrap;
}
.jnw-home .jnw-current-sponsor-action b { color: #7edcff; font-size: .95rem; line-height: 1; }

@media (max-width: 520px) {
  .jnw-home .jnw-current-sponsor-slot { gap: .5rem; margin-left: 0; margin-right: 0; padding: .5rem .56rem; }
  .jnw-home .jnw-current-sponsor-mark { height: 2rem; width: 2rem; }
  .jnw-home .jnw-current-sponsor-copy small { font-size: .55rem; letter-spacing: .095em; }
  .jnw-home .jnw-current-sponsor-copy strong { font-size: .84rem; }
  .jnw-home .jnw-current-sponsor-action { font-size: 0; gap: 0; }
  .jnw-home .jnw-current-sponsor-action b { font-size: 1.1rem; }
}

/* 0.46.74: stable, compact Current Conditions layout on narrow screens. */
.jnw-home .jnw-current-reading { min-width: 0; }
.jnw-home .jnw-temperature {
  align-items: flex-start;
  display: inline-flex;
  flex-wrap: nowrap;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  word-break: normal;
}
.jnw-home .jnw-temperature > span,
.jnw-home .jnw-temperature > sup {
  flex: 0 0 auto;
  white-space: nowrap;
}
.jnw-home .jnw-temperature > sup {
  align-self: flex-start;
  line-height: 1;
  margin-top: .08em;
}
.jnw-home .jnw-feels {
  align-items: baseline;
  display: flex;
  gap: .32rem;
  white-space: nowrap;
}
.jnw-home .jnw-condition { min-width: 0; }
.jnw-home .jnw-condition strong {
  overflow-wrap: normal;
  word-break: normal;
}

@media (max-width: 720px) {
  .jnw-home .jnw-current-live { padding: 1rem; }
  .jnw-home .jnw-current-main {
    align-items: center;
    display: grid;
    gap: clamp(.55rem, 3vw, 1rem);
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 0;
    padding: .9rem 0 .8rem;
  }
  .jnw-home .jnw-current-reading { min-width: max-content; }
  .jnw-home .jnw-temperature {
    font-size: clamp(4.2rem, 20vw, 5.65rem);
    letter-spacing: -.065em;
    line-height: .88;
  }
  .jnw-home .jnw-temperature > sup {
    font-size: .28em;
    letter-spacing: -.01em;
    margin-left: .1em;
  }
  .jnw-home .jnw-feels {
    font-size: .8rem;
    margin: .62rem 0 0 .05rem;
  }
  .jnw-home .jnw-feels strong { font-size: .98rem; }
  .jnw-home .jnw-condition { gap: .4rem; }
  .jnw-home .jnw-current-icon { height: 4.5rem; width: 4.5rem; }
  .jnw-home .jnw-condition strong {
    font-size: clamp(.86rem, 3.5vw, 1.05rem);
    line-height: 1.2;
    max-width: 13rem;
  }
  .jnw-home .jnw-current-feature-metrics { margin-top: .15rem; }
  .jnw-home .jnw-current-metrics { margin-top: .5rem; }
  .jnw-home .jnw-current-sponsor-slot { margin-top: .7rem; }
}

@media (max-width: 390px) {
  .jnw-home .jnw-current-main { gap: .45rem; }
  .jnw-home .jnw-temperature { font-size: clamp(3.8rem, 19vw, 4.65rem); }
  .jnw-home .jnw-current-icon { height: 4rem; width: 4rem; }
  .jnw-home .jnw-condition strong { font-size: .84rem; }
}

/* 0.46.64: a matching sponsorship opportunity inside the homepage radar card. */
.jnw-home .jnw-home-radar-sponsor-slot { margin: .85rem 0 .65rem; }
.jnw-home .jnw-radar-sponsor-mark { font-size: 1.1rem; }

/* 0.46.49: bold, readable homepage typography and exact EPA AQI legend colors. */
.jnw-home .jnw-card-label,
.jnw-home .jnw-section-heading small,
.jnw-home .jnw-section-title-row small,
.jnw-home .jnw-weekly-header small {
  font-size: clamp(.82rem, 1.45vw, .94rem);
  font-weight: 950;
  letter-spacing: .105em;
  line-height: 1.3;
}
.jnw-home .jnw-card-label .jnw-uv-dot,
.jnw-home .jnw-card-label .jnw-aq-dot {
  height: .86rem;
  width: .86rem;
}
.jnw-home .jnw-location-label { font-size: .78rem; font-weight: 950; }
.jnw-home .jnw-location-status { font-size: .8rem; font-weight: 800; }
.jnw-home .jnw-location-scope { font-size: .75rem; font-weight: 700; }
.jnw-home .jnw-risk-card small,
.jnw-home .jnw-sponsor-slot-copy > span {
  font-size: .76rem;
  font-weight: 950;
}
.jnw-home .jnw-risk-badge { font-size: .72rem; font-weight: 950; padding: .42rem .62rem; }
.jnw-home .jnw-risk-link,
.jnw-home .jnw-sponsor-slot > a { font-size: .84rem; }
.jnw-home .jnw-sponsor-slot-copy > small { font-size: .8rem; font-weight: 650; }
.jnw-home .jnw-day-expand-cue { font-size: .74rem; }

.jnw-home .jnw-health-source {
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.55;
}
.jnw-home .jnw-health-source a { font-weight: 900; }
.jnw-home .jnw-uv-reading > header > span,
.jnw-home .jnw-uv-reading > header > b,
.jnw-home .jnw-air-forecast > small,
.jnw-home .jnw-pollen-panel > header small {
  font-size: .82rem;
  font-weight: 950;
}
.jnw-home .jnw-air-forecast > button {
  font-size: .82rem;
  font-weight: 900;
  min-height: 2.35rem;
  padding: .55rem 0;
}
.jnw-home .jnw-pollen-types small { font-size: .78rem; }
.jnw-home .jnw-pollen-types em { font-size: .8rem; font-weight: 700; }
.jnw-home .jnw-pollen-panel > footer span,
.jnw-home .jnw-pollen-panel > footer a { font-size: .78rem; font-weight: 750; }

.jnw-home .jnw-health-legend {
  border-color: rgba(156, 194, 229, .34);
  border-radius: 1.15rem;
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, .18);
  padding: clamp(1.15rem, 2.2vw, 1.45rem);
}
.jnw-home .jnw-health-legend > strong {
  color: #d9e6f2;
  font-size: clamp(.84rem, 1.45vw, .96rem);
  letter-spacing: .12em;
  margin-bottom: 1.1rem;
}
.jnw-home .jnw-health-legend ol { gap: .78rem; }
.jnw-home .jnw-health-legend li,
.jnw-home .jnw-health-legend li.is-active,
.jnw-home .jnw-health-legend li.is-inactive {
  border-radius: .88rem;
  gap: .86rem;
  grid-template-columns: 1.45rem minmax(0, 1fr);
  min-height: 4.2rem;
  padding: .72rem .82rem;
}
.jnw-home .jnw-health-legend li > i {
  border: 2px solid rgba(255, 255, 255, .22);
  border-radius: .42rem;
  box-shadow: 0 0 0 .2rem rgba(255, 255, 255, .04);
  height: 2.15rem;
  width: 1.45rem;
}
.jnw-home .jnw-health-legend li b {
  color: #fff;
  font-size: clamp(1.12rem, 2vw, 1.28rem);
  font-weight: 950;
  letter-spacing: -.025em;
  line-height: 1;
}
.jnw-home .jnw-health-legend li small {
  color: #c3d0dd;
  font-size: clamp(.84rem, 1.45vw, .95rem);
  font-weight: 750;
  line-height: 1.2;
  margin-top: .28rem;
}

.jnw-home .jnw-air-legend li { --jnw-aqi-band-color: #8aa0b5; }
.jnw-home .jnw-air-legend li.is-good { --jnw-aqi-band-color: #00e400; }
.jnw-home .jnw-air-legend li.is-moderate { --jnw-aqi-band-color: #ffff00; }
.jnw-home .jnw-air-legend li.is-usg { --jnw-aqi-band-color: #ff7e00; }
.jnw-home .jnw-air-legend li.is-unhealthy { --jnw-aqi-band-color: #ff0000; }
.jnw-home .jnw-air-legend li.is-very-unhealthy { --jnw-aqi-band-color: #8f3f97; }
.jnw-home .jnw-air-legend li.is-hazardous { --jnw-aqi-band-color: #7e0023; }
.jnw-home .jnw-air-legend li {
  border-left: .42rem solid var(--jnw-aqi-band-color);
}
.jnw-home .jnw-air-legend li > i {
  background: var(--jnw-aqi-band-color) !important;
  box-shadow:
    0 0 0 .2rem rgba(255, 255, 255, .05),
    0 0 1rem color-mix(in srgb, var(--jnw-aqi-band-color) 24%, transparent);
}

.jnw-home .jnw-pollen-legend {
  border-radius: 1.15rem;
  padding: 1.2rem;
}
.jnw-home .jnw-pollen-legend > strong {
  color: #d9e6f2;
  font-size: .84rem;
  margin-bottom: .95rem;
}
.jnw-home .jnw-pollen-legend ol { gap: .62rem; }
.jnw-home .jnw-pollen-legend li {
  gap: .58rem;
  grid-template-columns: 1.15rem minmax(0, 1fr);
  min-height: 4rem;
  padding: .62rem;
}
.jnw-home .jnw-pollen-legend li > i {
  border: 2px solid rgba(255, 255, 255, .18);
  height: 2rem;
  width: 1.15rem;
}
.jnw-home .jnw-pollen-legend li b { font-size: 1.15rem; font-weight: 950; }
.jnw-home .jnw-pollen-legend li small { font-size: .8rem; font-weight: 750; line-height: 1.2; }

@media (max-width: 760px) {
  .jnw-home .jnw-health-legend { padding: 1rem; }
  .jnw-home .jnw-health-legend li,
  .jnw-home .jnw-health-legend li.is-active,
  .jnw-home .jnw-health-legend li.is-inactive {
    min-height: 4rem;
    padding: .68rem .72rem;
  }
}

@media (max-width: 430px) {
  .jnw-home .jnw-health-legend { padding: .95rem; }
  .jnw-home .jnw-health-legend li,
  .jnw-home .jnw-health-legend li.is-active,
  .jnw-home .jnw-health-legend li.is-inactive { min-height: 3.85rem; }
  .jnw-home .jnw-health-legend li b { font-size: 1.15rem; }
  .jnw-home .jnw-health-legend li small { font-size: .86rem; }
  .jnw-home .jnw-day-expand-cue { font-size: .7rem; }
}

/* 0.46.50: user-friendly dedicated radar view with a presenting-sponsor opportunity. */
.jnw-radar-view { padding: 1.15rem 1rem calc(5.25rem + env(safe-area-inset-bottom)); }
.jnw-radar-view-hero {
  align-items: end;
  display: flex;
  gap: 1.25rem 2rem;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding: .2rem .15rem 0;
}
.jnw-radar-view-copy { max-width: 45rem; }
.jnw-radar-view-copy small {
  align-items: center;
  color: var(--jnw-blue);
  display: flex;
  font-size: .68rem;
  font-weight: 950;
  gap: .48rem;
  letter-spacing: .14em;
}
.jnw-radar-view-copy small > span {
  animation: jnw-radar-live-pulse 1.8s ease-out infinite;
  background: #58d7ff;
  border-radius: 50%;
  box-shadow: 0 0 0 .2rem rgba(88,215,255,.13);
  height: .48rem;
  width: .48rem;
}
@keyframes jnw-radar-live-pulse {
  0%,100% { box-shadow: 0 0 0 .18rem rgba(88,215,255,.12); }
  50% { box-shadow: 0 0 0 .42rem rgba(88,215,255,0); }
}
.jnw-radar-view-copy h1 {
  color: #f5f8fd;
  font-size: clamp(2.4rem, 6vw, 4rem);
  font-weight: 950;
  letter-spacing: -.055em;
  line-height: .95;
  margin: .42rem 0 0;
}
.jnw-radar-view-copy p {
  color: var(--jnw-muted);
  font-size: .82rem;
  line-height: 1.55;
  margin: .7rem 0 0;
  max-width: 41rem;
}
.jnw-radar-view-actions { display: flex; flex-wrap: wrap; gap: .55rem; justify-content: flex-end; }
.jnw-radar-view-actions button,
.jnw-radar-view-actions a {
  align-items: center;
  border-radius: .82rem;
  cursor: pointer;
  display: inline-flex;
  font-size: .72rem;
  font-weight: 900;
  gap: .4rem;
  justify-content: center;
  min-height: 2.75rem;
  padding: .7rem .85rem;
  text-decoration: none;
}
.jnw-radar-view-actions button { background: #5acbfa; border: 1px solid #96e3ff; color: #062039; }
.jnw-radar-view-actions a { background: rgba(13,38,61,.9); border: 1px solid rgba(124,188,224,.28); color: #dcefff; }
.jnw-radar-view-actions button:hover,
.jnw-radar-view-actions button:focus-visible { background: #8ee0ff; outline: 3px solid rgba(90,203,250,.2); outline-offset: 2px; }
.jnw-radar-view-actions a:hover,
.jnw-radar-view-actions a:focus-visible { border-color: #6cd4ff; color: #fff; outline: 3px solid rgba(90,203,250,.14); outline-offset: 2px; }
.jnw-radar-sponsor { margin: 0 0 .85rem; }
.jnw-radar-sponsor .jnw-storm-sponsor-mark svg circle { stroke-width: 1.8; }
.jnw-radar-toolbar {
  align-items: center;
  background: linear-gradient(90deg,rgba(11,31,50,.98),rgba(8,25,43,.98));
  border: 1px solid rgba(126,176,213,.22);
  border-bottom: 0;
  border-radius: 1.05rem 1.05rem 0 0;
  display: flex;
  gap: .85rem 1.2rem;
  justify-content: space-between;
  min-height: 3.25rem;
  padding: .62rem .8rem;
}
.jnw-radar-location-state { align-items: center; color: #aebfd0; display: flex; flex-wrap: wrap; font-size: .7rem; gap: .45rem .65rem; }
.jnw-radar-location-state > span:last-child { white-space: nowrap; }
.jnw-radar-location-state strong { color: #f2f8ff; }
.jnw-radar-live { align-items: center; background: rgba(75,218,154,.1); border: 1px solid rgba(75,218,154,.32); border-radius: 999px; color: #79edb5; display: inline-flex; font-size: .6rem; font-weight: 950; gap: .32rem; letter-spacing: .1em; padding: .27rem .48rem; }
.jnw-radar-live i { background: #4be09a; border-radius: 50%; box-shadow: 0 0 .55rem rgba(75,224,154,.7); height: .38rem; width: .38rem; }
.jnw-radar-toolbar ul { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem; justify-content: flex-end; list-style: none; margin: 0; padding: 0; }
.jnw-radar-toolbar li { align-items: center; color: #91a6b8; display: inline-flex; font-size: .65rem; font-weight: 780; gap: .3rem; }
.jnw-radar-toolbar li span { color: #67d2ff; font-size: .8rem; }
.jnw-radar-toolbar li + li:before { color: #38536b; content: "•"; margin-right: .15rem; }
.jnw-radar-view-mount { border-radius: 0 0 1.25rem 1.25rem; }
.jnw-radar-view-mount .jnw-baron-radar { height: clamp(520px, 63dvh, 720px); min-height: 520px; }
.jnw-radar-view-footer { font-size: .66rem; gap: .75rem; padding: .72rem .25rem 0; }
.jnw-radar-view-footer > div { align-items: center; display: flex; flex-wrap: wrap; gap: .25rem .65rem; }
.jnw-radar-view-footer strong { color: #d8e9f5; }

.jnw-radar-alerts {
  background: linear-gradient(145deg,rgba(16,48,76,.98),rgba(8,30,52,.98));
  border: 1px solid rgba(94,181,229,.3);
  border-top: .28rem solid #5bd4ff;
  border-radius: 1.15rem;
  margin-top: 1rem;
  padding: 1.15rem;
}
.jnw-radar-alerts.has-active-alerts { border-color: rgba(255,177,58,.48); border-top-color: #ffb13a; }
.jnw-radar-alerts.has-feed-error { border-color: rgba(255,129,79,.42); border-top-color: #ff814f; }
.jnw-radar-alerts-header { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.jnw-radar-alerts-header > div { min-width: 0; }
.jnw-radar-alerts-header small { color: #62d4ff; display: block; font-size: .63rem; font-weight: 950; letter-spacing: .14em; margin-bottom: .28rem; }
.jnw-radar-alerts-header h2 { color: #f5f8fd; font-size: clamp(1.55rem,3vw,2.15rem); letter-spacing: -.035em; line-height: 1.05; margin: 0; }
.jnw-radar-alerts-header h2 span { color: #d9edfa; }
.jnw-radar-alerts-header > strong {
  background: rgba(59,222,158,.1);
  border: 1px solid rgba(59,222,158,.35);
  border-radius: 999px;
  color: #74edb9;
  flex: 0 0 auto;
  font-size: .66rem;
  font-weight: 950;
  letter-spacing: .07em;
  padding: .48rem .68rem;
  text-transform: uppercase;
}
.jnw-radar-alerts.has-active-alerts .jnw-radar-alerts-header > strong { background: rgba(255,177,58,.12); border-color: rgba(255,177,58,.42); color: #ffd26f; }
.jnw-radar-alerts.has-active-alerts.has-flood-alerts .jnw-radar-alerts-header > strong { background: rgba(var(--jnw-flood-green-rgb),.17); border-color: rgba(var(--jnw-flood-green-rgb),.58); color: var(--jnw-flood-green-soft); }
.jnw-radar-alerts.has-active-alerts.has-danger-alerts .jnw-radar-alerts-header > strong { background: rgba(var(--jnw-warning-red-rgb),.14); border-color: rgba(var(--jnw-warning-red-rgb),.5); color: var(--jnw-warning-red-soft); }
.jnw-radar-alerts-scope { color: #9eb4c7; font-size: .73rem; line-height: 1.5; margin: .55rem 0 .9rem; }
.jnw-radar-alert-list { display: grid; gap: .7rem; }
.jnw-radar-alert-state { align-items: center; background: rgba(4,21,39,.48); border: 1px solid rgba(126,181,216,.2); border-radius: .9rem; display: flex; gap: .8rem; padding: .9rem; }
.jnw-radar-alert-state > span { align-items: center; background: rgba(80,220,163,.12); border: 1px solid rgba(80,220,163,.36); border-radius: 50%; color: #66ebb3; display: inline-flex; flex: 0 0 2.35rem; font-size: 1.15rem; font-weight: 950; height: 2.35rem; justify-content: center; }
.jnw-radar-alert-state.is-loading > span { background: rgba(91,212,255,.1); border-color: rgba(91,212,255,.35); color: #72dcff; }
.jnw-radar-alert-state.is-unavailable > span { background: rgba(255,129,79,.1); border-color: rgba(255,129,79,.4); color: #ff9d72; }
.jnw-radar-alert-state strong { color: #edf7ff; display: block; font-size: .9rem; }
.jnw-radar-alert-state p { color: #91a8bb; font-size: .7rem; line-height: 1.45; margin: .18rem 0 0; }
.jnw-radar-alert-card { background: rgba(5,23,42,.7); border: 1px solid rgba(126,181,216,.23); border-left: .3rem solid #f2cb55; border-radius: .9rem; padding: .88rem .9rem; }
.jnw-radar-alert-card.is-watch { border-left-color: #ff9a44; }
.jnw-radar-alert-card.is-flood { border-left-color: var(--jnw-flood-green); }
.jnw-radar-alert-card.is-danger { border-left-color: #ff4d4d; }
.jnw-radar-alert-card.is-minor { border-left-color: #9db1c5; }
.jnw-radar-alert-card.is-upcoming { opacity: .9; }
.jnw-radar-alert-card > div { align-items: center; display: flex; gap: .7rem; justify-content: space-between; }
.jnw-radar-alert-card > div strong { color: #fff; font-size: 1rem; }
.jnw-radar-alert-card > div span { background: rgba(242,203,85,.12); border: 1px solid rgba(242,203,85,.38); border-radius: 999px; color: #ffe078; flex: 0 0 auto; font-size: .58rem; font-weight: 950; letter-spacing: .08em; padding: .28rem .45rem; }
.jnw-radar-alert-card.is-danger > div span { background: rgba(255,77,77,.12); border-color: rgba(255,77,77,.4); color: #ff8c8c; }
.jnw-radar-alert-card.is-flood > div span { background: rgba(var(--jnw-flood-green-rgb),.16); border-color: rgba(var(--jnw-flood-green-rgb),.55); color: var(--jnw-flood-green-soft); }
.jnw-radar-alert-card p { color: #becddd; font-size: .76rem; line-height: 1.45; margin: .42rem 0; }
.jnw-radar-alert-card small { color: #7f99af; display: block; font-size: .64rem; font-weight: 750; }
.jnw-radar-alert-card a { color: #65d6ff; display: inline-block; font-size: .7rem; font-weight: 900; margin-top: .58rem; }
.jnw-radar-alert-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .85rem; }
.jnw-radar-alert-actions button { background: rgba(11,39,64,.9); border: 1px solid rgba(104,190,232,.3); border-radius: .7rem; color: #dff4ff; cursor: pointer; font-size: .68rem; font-weight: 900; min-height: 2.45rem; padding: .58rem .72rem; }
.jnw-radar-alert-actions button:hover,
.jnw-radar-alert-actions button:focus-visible { border-color: #62d4ff; outline: 3px solid rgba(98,212,255,.14); outline-offset: 2px; }

@media (max-width: 720px) {
  .jnw-radar-view { padding: .8rem .5rem calc(4.85rem + env(safe-area-inset-bottom)); }
  .jnw-radar-view-hero { align-items: stretch; flex-direction: column; gap: .85rem; margin-bottom: .8rem; padding: 0 .2rem; }
  .jnw-radar-view-copy h1 { font-size: clamp(2.25rem, 11vw, 3.1rem); }
  .jnw-radar-view-copy p { font-size: .72rem; margin-top: .55rem; }
  .jnw-radar-view-actions { display: grid; grid-template-columns: 1fr 1fr; justify-content: stretch; }
  .jnw-radar-view-actions button,
  .jnw-radar-view-actions a { font-size: .65rem; min-height: 2.6rem; padding: .6rem .55rem; }
  .jnw-radar-sponsor { margin-bottom: .7rem; }
  .jnw-radar-toolbar { align-items: flex-start; border-radius: .9rem .9rem 0 0; flex-direction: column; gap: .5rem; padding: .62rem .68rem; }
  .jnw-radar-toolbar ul { justify-content: flex-start; }
  .jnw-radar-toolbar li { font-size: .58rem; }
  .jnw-radar-location-state { font-size: .64rem; }
  .jnw-radar-view-mount { border-radius: 0 0 1rem 1rem; }
  .jnw-radar-view-mount .jnw-baron-radar { height: clamp(420px, 60dvh, 580px); min-height: 420px; }
  .jnw-radar-view-footer { align-items: flex-start; flex-direction: column; font-size: .6rem; gap: .35rem; padding-left: .15rem; padding-right: .15rem; }
  .jnw-radar-alerts { border-radius: .95rem; padding: .9rem; }
  .jnw-radar-alerts-header { align-items: flex-start; }
  .jnw-radar-alerts-header h2 { font-size: 1.45rem; }
  .jnw-radar-alerts-header > strong { font-size: .58rem; padding: .4rem .5rem; }
  .jnw-radar-alerts-scope { font-size: .68rem; }
  .jnw-radar-alert-card > div { align-items: flex-start; }
  .jnw-radar-alert-card > div strong { font-size: .9rem; }
  .jnw-radar-alert-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .jnw-radar-alert-actions button { padding-left: .45rem; padding-right: .45rem; }
}

@media (max-width: 390px) {
  .jnw-bottom-nav a[data-jnw-view="radar"] { font-size: .64rem; }
  .jnw-radar-alerts-header { flex-direction: column; gap: .55rem; }
  .jnw-radar-alert-actions { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .jnw-radar-view-copy small > span { animation: none; }
}

/* 0.46.65: Tropical Center command-center hierarchy and navigation. */
.jnw-home .jnw-tropical-signal-bar {
  background: linear-gradient(105deg,rgba(7,30,52,.98),rgba(12,38,63,.98));
  border-color: rgba(91,173,221,.24);
  display: grid;
  gap: 0;
  grid-template-columns: repeat(3,minmax(0,1fr));
  overflow: hidden;
  padding: 0;
}
.jnw-home .jnw-tropical-signal-bar > span {
  align-items: center;
  display: grid;
  gap: .12rem .55rem;
  grid-template-columns: auto 1fr;
  min-width: 0;
  padding: .8rem 1rem;
}
.jnw-home .jnw-tropical-signal-bar > span + span { border-left: 1px solid rgba(147,192,224,.14); }
.jnw-home .jnw-tropical-signal-bar strong {
  color: #eef8ff;
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .09em;
  white-space: nowrap;
}
.jnw-home .jnw-tropical-signal-bar small {
  color: #7893aa;
  font-size: .62rem;
  font-weight: 760;
  grid-column: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jnw-home .jnw-tropical-signal-bar i {
  animation: jnw-tropical-live-pulse 1.8s ease-out infinite;
  background: #58e0aa;
  border-radius: 50%;
  box-shadow: 0 0 0 .18rem rgba(88,224,170,.12);
  grid-row: 1 / span 2;
  height: .48rem;
  width: .48rem;
}
@keyframes jnw-tropical-live-pulse {
  0%,100% { box-shadow: 0 0 0 .16rem rgba(88,224,170,.13); }
  50% { box-shadow: 0 0 0 .42rem rgba(88,224,170,0); }
}
.jnw-home .jnw-tropical-command-nav {
  display: grid;
  gap: .5rem;
  grid-template-columns: repeat(5,minmax(0,1fr));
}
.jnw-home .jnw-tropical-command-nav button {
  align-items: center;
  background: rgba(19,45,72,.78);
  border: 1px solid rgba(124,178,215,.18);
  border-radius: .85rem;
  color: #dbeafb;
  cursor: pointer;
  display: flex;
  gap: .55rem;
  min-height: 3.25rem;
  padding: .62rem .72rem;
  text-align: left;
  transition: background .16s ease,border-color .16s ease,transform .16s ease;
}
.jnw-home .jnw-tropical-command-nav button:hover,
.jnw-home .jnw-tropical-command-nav button:focus-visible {
  background: #1b4e76;
  border-color: #56cfff;
  outline: none;
  transform: translateY(-1px);
}
.jnw-home .jnw-tropical-command-nav span { color: #55ceff; font-size: .62rem; font-weight: 1000; letter-spacing: .08em; }
.jnw-home .jnw-tropical-command-nav strong { font-size: .76rem; font-weight: 900; white-space: nowrap; }
.jnw-home .jnw-tropical-command-deck {
  align-items: stretch;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0,1.55fr) minmax(19rem,.85fr);
  scroll-margin-top: 6rem;
}
.jnw-home .jnw-tropical-command-deck .jnw-tropical-ne-hero,
.jnw-home .jnw-tropical-command-deck .jnw-tropical-take { min-height: 100%; }
.jnw-home .jnw-tropical-command-deck .jnw-tropical-ne-hero > h2 {
  font-size: clamp(2.25rem,4.7vw,4rem);
  line-height: .96;
}
.jnw-home .jnw-tropical-command-deck .jnw-tropical-take {
  background: radial-gradient(circle at 100% 0,rgba(76,204,255,.14),transparent 17rem),linear-gradient(145deg,#112944,#0b1c31);
  display: flex;
  flex-direction: column;
}
.jnw-home .jnw-tropical-command-deck .jnw-tropical-take > p { flex: 1; }
.jnw-home .jnw-tropical-command-deck .jnw-tropical-take h2 { font-size: clamp(1.8rem,3.2vw,2.55rem); }
.jnw-home .jnw-tropical-operations {
  align-items: start;
  display: grid;
  gap: 1.15rem;
  grid-template-columns: minmax(0,1.7fr) minmax(19rem,.8fr);
  scroll-margin-top: 6rem;
}
.jnw-home .jnw-tropical-operations-rail { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.jnw-home .jnw-tropical-section-heading { gap: 1rem; }
.jnw-home .jnw-tropical-section-heading > div:first-child { min-width: 0; }
.jnw-home .jnw-tropical-section-heading > div:first-child > small {
  color: #57cdff;
  display: block;
  font-size: .63rem;
  font-weight: 950;
  letter-spacing: .12em;
  margin-bottom: .25rem;
}
.jnw-home .jnw-tropical-section-heading h2 { margin-bottom: .65rem; }
.jnw-home .jnw-tropical-map-section .jnw-tropical-section-heading h2 { font-size: clamp(2.2rem,5vw,3.6rem); }
.jnw-home .jnw-tropical-map {
  aspect-ratio: 16 / 11;
  border-color: rgba(102,194,237,.35);
  box-shadow: 0 1.25rem 3rem rgba(0,9,23,.34);
}
.jnw-home .jnw-tropical-map-badge {
  background: rgba(4,19,34,.9);
  border-color: rgba(92,209,255,.3);
  padding: .62rem .8rem;
}
.jnw-home .jnw-tropical-map-badge span { color: #75dcff; font-size: 1rem; }
.jnw-home .jnw-tropical-map-help { font-size: .78rem; }
.jnw-home .jnw-tropical-operations-rail .jnw-tropical-summary {
  background: linear-gradient(145deg,#153755,#0c2037);
  grid-template-columns: auto auto;
  padding: 1.1rem;
}
.jnw-home .jnw-tropical-operations-rail .jnw-tropical-summary > strong { font-size: 4.2rem; }
.jnw-home .jnw-tropical-operations-rail .jnw-tropical-summary > div { grid-column: 1 / -1; }
.jnw-home .jnw-tropical-operations-rail .jnw-tropical-summary h2 { font-size: 1.3rem; }
.jnw-home .jnw-tropical-operations-rail .jnw-tropical-summary p { font-size: .9rem; }
.jnw-home .jnw-tropical-operations-rail .jnw-tropical-section-heading h2 { font-size: clamp(1.6rem,3vw,2.25rem); }
.jnw-home .jnw-tropical-operations-rail .jnw-tropical-section-heading > small { font-size: .6rem; white-space: nowrap; }
.jnw-home .jnw-tropical-operations-rail .jnw-tropical-headlines > div:last-child { flex-direction: column; overflow: visible; }
.jnw-home .jnw-tropical-operations-rail .jnw-tropical-headlines > div:last-child > * {
  border-radius: .85rem;
  font-size: .76rem;
  line-height: 1.35;
  max-width: none;
  padding: .7rem .8rem;
  white-space: normal;
  width: 100%;
}
.jnw-home .jnw-tropical-ne-clear { background: linear-gradient(145deg,rgba(13,59,53,.95),rgba(12,37,54,.95)); }
.jnw-home #jnw-tropical-active-storms,
.jnw-home #jnw-tropical-basin-outlook,
.jnw-home #jnw-tropical-tools { scroll-margin-top: 6rem; }
.jnw-home .jnw-tropical-storms .jnw-tropical-quiet {
  background: linear-gradient(105deg,rgba(13,61,52,.96),rgba(10,32,51,.96));
  border-color: rgba(87,221,171,.26);
  padding: 1.35rem;
}
.jnw-home .jnw-tropical-outlook > div[data-jnw-tropical-outlook-list] {
  display: grid;
  gap: .85rem;
  grid-template-columns: repeat(3,minmax(0,1fr));
}
.jnw-home .jnw-tropical-outlook-card {
  align-content: start;
  grid-template-columns: auto 1fr;
  min-height: 10rem;
}
.jnw-home .jnw-tropical-outlook-card > span { height: 3rem; width: 3rem; }
.jnw-home .jnw-tropical-outlook-card h3 { font-size: 1.3rem; }
.jnw-home .jnw-tropical-outlook-card p { font-size: .9rem; }

@media (max-width: 980px) {
  .jnw-home .jnw-tropical-command-deck,
  .jnw-home .jnw-tropical-operations { grid-template-columns: 1fr; }
  .jnw-home .jnw-tropical-command-deck .jnw-tropical-take { min-height: 0; }
  .jnw-home .jnw-tropical-operations-rail {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .jnw-home .jnw-tropical-operations-rail .jnw-tropical-headlines { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .jnw-home .jnw-tropical-signal-bar { grid-template-columns: 1fr 1fr; }
  .jnw-home .jnw-tropical-signal-bar > span:first-child { border-bottom: 1px solid rgba(147,192,224,.14); grid-column: 1 / -1; }
  .jnw-home .jnw-tropical-signal-bar > span:nth-child(2) { border-left: 0; }
  .jnw-home .jnw-tropical-signal-bar strong { font-size: .62rem; }
  .jnw-home .jnw-tropical-signal-bar small { font-size: .56rem; }
  .jnw-home .jnw-tropical-command-nav {
    display: flex;
    overflow-x: auto;
    padding-bottom: .15rem;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .jnw-home .jnw-tropical-command-nav::-webkit-scrollbar { display: none; }
  .jnw-home .jnw-tropical-command-nav button { flex: 0 0 8.2rem; scroll-snap-align: start; }
  .jnw-home .jnw-tropical-command-deck .jnw-tropical-ne-hero > h2 { font-size: clamp(2.1rem,10vw,3rem); }
  .jnw-home .jnw-tropical-map { aspect-ratio: 4 / 3; min-height: 17rem; }
  .jnw-home .jnw-tropical-operations-rail { display: flex; }
  .jnw-home .jnw-tropical-outlook > div[data-jnw-tropical-outlook-list] { grid-template-columns: 1fr; }
  .jnw-home .jnw-tropical-outlook-card { min-height: 0; }
  .jnw-home .jnw-tropical-section-heading > small { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  .jnw-home .jnw-tropical-signal-bar i { animation: none; }
  .jnw-home .jnw-tropical-command-nav button { transition: none; }
}

/* 0.46.76: richer More menu, location-aware Storm Center radars and expanded first-visit guide. */
.jnw-home a.jnw-more-option { color: #fff; text-decoration: none; }
.jnw-home .jnw-more-option-copy { overflow: hidden; }
.jnw-home .jnw-more-option-copy small {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jnw-home .jnw-more-option-icon.is-shop {
  color: #61d2ff;
  filter: drop-shadow(0 0 8px rgba(74,197,247,.25));
}
.jnw-home .jnw-more-option-icon.is-shop svg {
  fill: rgba(97,210,255,.08);
  height: 2.45rem;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.45;
  width: 2.45rem;
}

.jnw-home .jnw-storm-map-layout {
  grid-template-columns: minmax(18rem,21rem) minmax(0,1fr);
}
.jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend {
  gap: 1.5rem;
  padding: 1.75rem;
}
.jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend strong {
  font-size: 1.28rem;
  letter-spacing: .115em;
}
.jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend span {
  font-size: 1.38rem;
  gap: .85rem;
  line-height: 1.25;
}
.jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend i {
  border-radius: .24rem;
  height: 1.35rem;
  width: 1.35rem;
}

.jnw-home .jnw-context-radar {
  background: linear-gradient(145deg,rgba(11,41,68,.98),rgba(5,23,43,.98));
  overflow: hidden;
  padding: 0;
}
.jnw-home .jnw-context-radar-header {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: 1.15rem 1.2rem;
}
.jnw-home .jnw-context-radar-header > div { min-width: 0; }
.jnw-home .jnw-context-radar-header small {
  color: #64d2ff;
  display: block;
  font-size: .64rem;
  font-weight: 950;
  letter-spacing: .13em;
}
.jnw-home .jnw-context-radar-header h2 {
  color: #f6f9fd;
  font-size: clamp(1.8rem,4vw,2.75rem);
  letter-spacing: -.05em;
  line-height: 1;
  margin: .3rem 0 .42rem;
}
.jnw-home .jnw-context-radar-header p {
  color: #aebfd0;
  font-size: .82rem;
  line-height: 1.45;
  margin: 0;
}
.jnw-home .jnw-context-radar-header button {
  background: rgba(86,200,249,.12);
  border: 1px solid rgba(99,207,252,.38);
  border-radius: .8rem;
  color: #dcf5ff;
  cursor: pointer;
  flex: 0 0 auto;
  font: inherit;
  font-size: .72rem;
  font-weight: 900;
  min-height: 2.8rem;
  padding: .6rem .85rem;
}
.jnw-home .jnw-context-radar-header button:hover,
.jnw-home .jnw-context-radar-header button:focus-visible {
  background: rgba(86,200,249,.22);
  outline: 3px solid rgba(99,207,252,.18);
  outline-offset: 2px;
}
.jnw-home .jnw-context-radar > .jnw-radar-toolbar { border-left: 0; border-right: 0; }
.jnw-home .jnw-context-radar-frame { background: #061423; }
.jnw-home .jnw-context-radar-frame .jnw-baron-radar {
  border: 0;
  border-radius: 0;
  height: clamp(500px,58dvh,660px);
  min-height: 500px;
}
.jnw-home .jnw-context-radar > footer {
  align-items: center;
  color: #8fa6ba;
  display: flex;
  font-size: .68rem;
  gap: .7rem;
  justify-content: space-between;
  padding: .7rem 1rem .8rem;
}
.jnw-home .jnw-context-radar > footer a { color: #6ed5ff; font-weight: 850; text-decoration: none; }

.jnw-home .jnw-tour-sound-demo {
  background: rgba(4,18,34,.58);
  border: 1px solid rgba(103,204,250,.3);
  border-radius: .9rem;
  display: grid;
  gap: .65rem;
  margin-top: .8rem;
  padding: .75rem;
}
.jnw-home .jnw-tour-sound-demo[hidden] { display: none !important; }
.jnw-home .jnw-tour-sound-demo > div { align-items: center; display: flex; gap: .5rem; justify-content: space-between; }
.jnw-home .jnw-tour-sound-demo strong { color: #eff8ff; font-size: .8rem; }
.jnw-home .jnw-tour-sound-demo span { color: #9fb5c8; font-size: .68rem; text-align: right; }
.jnw-home .jnw-tour-sound-demo button {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(158,188,215,.28);
  border-radius: .65rem;
  color: #e6f5ff;
  cursor: pointer;
  font: inherit;
  font-size: .72rem;
  font-weight: 900;
  min-height: 2.4rem;
  padding: .48rem .7rem;
}
.jnw-home .jnw-tour-sound-demo button[aria-checked="true"] { background: #158dcc; border-color: #70d4ff; }
.jnw-home .jnw-tour-sound-demo button:disabled { cursor: not-allowed; opacity: .42; }
.jnw-home .jnw-tour-sound-demo button:focus-visible { outline: 2px solid #9bdeff; outline-offset: 2px; }

@media (max-width: 720px) {
  .jnw-home .jnw-storm-map-layout { grid-template-columns: minmax(9.25rem,34%) minmax(0,1fr); }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend {
    align-content: center;
    border-bottom: 0;
    border-right: 1px solid rgba(144,183,218,.1);
    gap: 1rem;
    grid-template-columns: 1fr;
    padding: .85rem;
  }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend strong { font-size: .84rem; grid-column: 1; }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend span { font-size: .82rem; gap: .5rem; }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend i { height: .88rem; width: .88rem; }
  .jnw-home .jnw-storm-map-frame { padding: .55rem .25rem; }
  .jnw-home .jnw-storm-map-sponsor { grid-column: 1 / -1; }
  .jnw-home .jnw-context-radar-header { align-items: stretch; flex-direction: column; }
  .jnw-home .jnw-context-radar-header button { width: 100%; }
  .jnw-home .jnw-context-radar-frame .jnw-baron-radar { height: min(480px,60dvh); min-height: 390px; }
  .jnw-home .jnw-context-radar > footer { align-items: flex-start; flex-direction: column; }
  .jnw-home .jnw-tour-sound-demo > div { align-items: stretch; flex-direction: column; }
  .jnw-home .jnw-tour-sound-demo span { text-align: left; }
}

@media (max-width: 440px) {
  .jnw-home .jnw-storm-map-layout { grid-template-columns: 8.35rem minmax(0,1fr); }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend { gap: .75rem; padding: .65rem; }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend strong { font-size: .72rem; }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend span { font-size: .72rem; }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend i { height: .78rem; width: .78rem; }
}

/* 0.46.77: keep the expanded weather-first tour progress readable on narrow screens. */
.jnw-home .jnw-tour-dots {
  align-items: center;
  flex-wrap: wrap;
  row-gap: .45rem;
}

/* 0.46.79: map-first Storm Desk alert card with a compact bottom legend and sponsor strip. */
.jnw-home .jnw-storm-map-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr);
}
.jnw-home .jnw-storm-map-frame {
  min-width: 0;
  padding: .55rem .45rem .25rem;
}
.jnw-home .jnw-storm-map-stage {
  max-width: 56rem;
  width: 100%;
}
.jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend {
  align-content: center;
  align-items: center;
  background: rgba(2,17,34,.62);
  border-bottom: 1px solid rgba(144,183,218,.1);
  border-right: 0;
  border-top: 1px solid rgba(144,183,218,.13);
  display: grid;
  gap: .5rem .8rem;
  grid-template-columns: auto repeat(4,minmax(0,1fr));
  padding: .7rem 1rem;
}
.jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend strong {
  font-size: .72rem;
  letter-spacing: .11em;
  white-space: nowrap;
}
.jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend span {
  font-size: .78rem;
  gap: .4rem;
  justify-content: center;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
}
.jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend i {
  border-radius: .2rem;
  height: .8rem;
  width: .8rem;
}
.jnw-home .jnw-storm-map-sponsor {
  align-items: center;
  bottom: auto;
  box-shadow: 0 .45rem 1rem rgba(0,7,19,.24);
  display: grid;
  gap: .35rem .7rem;
  grid-template-columns: auto auto auto;
  justify-content: center;
  margin: .5rem auto .65rem;
  max-width: 34rem;
  padding: .5rem .7rem;
  position: static;
  right: auto;
  width: calc(100% - 1.2rem);
}
.jnw-home .jnw-storm-map-sponsor small {
  font-size: .54rem;
  letter-spacing: .12em;
  line-height: 1;
  white-space: nowrap;
}
.jnw-home .jnw-storm-map-sponsor strong {
  font-size: .88rem;
  letter-spacing: -.01em;
  line-height: 1;
  margin: 0;
  white-space: nowrap;
}
.jnw-home .jnw-storm-map-sponsor span {
  font-size: .64rem;
  gap: .25rem;
  margin: 0;
  white-space: nowrap;
}
.jnw-home .jnw-storm-map-sponsor span b { font-size: .86rem; }
.jnw-home .jnw-alert-map-state-label {
  font-size: 20px;
  stroke-width: 5px;
}
.jnw-home .jnw-alert-map-state-leader { stroke-width: 2.25; }

@media (max-width: 720px) {
  .jnw-home .jnw-storm-map-disclosure {
    border-left: 0;
    border-radius: 0;
    border-right: 0;
    margin-left: -1rem;
    margin-right: -1rem;
  }
  .jnw-home .jnw-storm-map-frame { padding: .35rem 0 .15rem; }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend {
    gap: .42rem .3rem;
    grid-template-columns: repeat(4,minmax(0,1fr));
    padding: .6rem .4rem .65rem;
  }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend strong {
    grid-column: 1 / -1;
    text-align: center;
  }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend span {
    font-size: .7rem;
    gap: .27rem;
  }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend i {
    height: .72rem;
    width: .72rem;
  }
}

@media (max-width: 440px) {
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend {
    gap: .38rem .18rem;
    padding-left: .28rem;
    padding-right: .28rem;
  }
  .jnw-home .jnw-storm-map-layout > .jnw-storm-map-legend span { font-size: .64rem; }
  .jnw-home .jnw-storm-map-sponsor {
    gap: .3rem .48rem;
    padding: .46rem .55rem;
    width: calc(100% - .8rem);
  }
  .jnw-home .jnw-storm-map-sponsor small { font-size: .5rem; }
  .jnw-home .jnw-storm-map-sponsor strong { font-size: .8rem; }
  .jnw-home .jnw-storm-map-sponsor span { font-size: .58rem; }
}

@media (max-width: 390px) {
  .jnw-home .jnw-storm-map-disclosure {
    margin-left: -.65rem;
    margin-right: -.65rem;
  }
}

/* 0.46.80: shared map legend, logo-sized map sponsor, and full-width national map. */
.jnw-home .jnw-storm-map-layout > .jnw-map-bottom-legend,
.jnw-home .jnw-us-map-panel > .jnw-map-bottom-legend {
  align-content: center;
  align-items: center;
  background: rgba(2,17,34,.72);
  border-bottom: 1px solid rgba(144,183,218,.1);
  border-right: 0;
  border-top: 1px solid rgba(144,183,218,.16);
  display: grid;
  gap: .5rem .8rem;
  grid-template-columns: auto repeat(4,minmax(0,1fr));
  padding: .7rem 1rem;
  position: relative;
  z-index: 7;
}
.jnw-home .jnw-storm-map-layout > .jnw-map-bottom-legend strong,
.jnw-home .jnw-us-map-panel > .jnw-map-bottom-legend strong {
  color: #f4f9ff;
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .11em;
  text-transform: uppercase;
  white-space: nowrap;
}
.jnw-home .jnw-storm-map-layout > .jnw-map-bottom-legend span,
.jnw-home .jnw-us-map-panel > .jnw-map-bottom-legend span {
  font-size: .78rem;
  gap: .4rem;
  justify-content: center;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
}
.jnw-home .jnw-storm-map-layout > .jnw-map-bottom-legend i,
.jnw-home .jnw-us-map-panel > .jnw-map-bottom-legend i {
  border-radius: .2rem;
  height: .8rem;
  width: .8rem;
}
.jnw-home .jnw-map-logo-sponsor {
  align-items: center;
  aspect-ratio: 1;
  bottom: .5rem;
  box-shadow: 0 .65rem 1.5rem rgba(0,7,19,.46), inset 0 0 0 1px rgba(255,255,255,.025);
  display: flex;
  gap: 0;
  justify-content: center;
  margin: 0;
  max-width: none;
  padding: .5rem;
  position: absolute;
  right: .35rem;
  text-align: center;
  width: clamp(4rem,10vw,7rem);
  z-index: 8;
}
.jnw-home .jnw-map-logo-sponsor small {
  font-size: .5rem;
  letter-spacing: .11em;
  line-height: 1;
  white-space: nowrap;
}
.jnw-home .jnw-map-logo-sponsor strong {
  font-size: clamp(.75rem,1.35vw,1.05rem);
  letter-spacing: -.02em;
  line-height: 1;
  margin: .33rem 0 0;
  white-space: normal;
}
.jnw-home .jnw-map-logo-sponsor span {
  font-size: .56rem;
  gap: .2rem;
  line-height: 1;
  margin: .45rem 0 0;
  white-space: nowrap;
}
.jnw-home .jnw-map-logo-sponsor span b { font-size: .72rem; }
.jnw-home .jnw-us-storm-inner { max-width: 96rem; }
.jnw-home .jnw-us-map-panel > .jnw-storm-map-toolbar { justify-content: flex-end; }
.jnw-home .jnw-us-map-frame {
  min-height: 0;
  padding: .2rem;
  place-items: stretch;
}
.jnw-home .jnw-us-map-stage {
  aspect-ratio: 8 / 5;
  max-height: none;
  width: 100%;
}
.jnw-home .jnw-us-map-label text { font-size: 21px; }
.jnw-home .jnw-us-map-label-callout text { font-size: 17px; }
.jnw-home .jnw-us-map-label-small text { font-size: 12px; letter-spacing: 0; stroke-width: 3px; }

@media (max-width: 720px) {
  .jnw-home .jnw-storm-map-layout > .jnw-map-bottom-legend,
  .jnw-home .jnw-us-map-panel > .jnw-map-bottom-legend {
    gap: .42rem .3rem;
    grid-template-columns: repeat(4,minmax(0,1fr));
    padding: .6rem .4rem .65rem;
  }
  .jnw-home .jnw-storm-map-layout > .jnw-map-bottom-legend strong,
  .jnw-home .jnw-us-map-panel > .jnw-map-bottom-legend strong {
    grid-column: 1 / -1;
    text-align: center;
  }
  .jnw-home .jnw-storm-map-layout > .jnw-map-bottom-legend span,
  .jnw-home .jnw-us-map-panel > .jnw-map-bottom-legend span {
    font-size: .7rem;
    gap: .27rem;
  }
  .jnw-home .jnw-storm-map-layout > .jnw-map-bottom-legend i,
  .jnw-home .jnw-us-map-panel > .jnw-map-bottom-legend i {
    height: .72rem;
    width: .72rem;
  }
  .jnw-home .jnw-us-map-panel {
    border-left: 0;
    border-radius: 0;
    border-right: 0;
    margin-left: -1rem;
    margin-right: -1rem;
  }
  .jnw-home .jnw-us-map-frame { min-height: 0; padding: 0; }
  .jnw-home .jnw-us-map-stage { aspect-ratio: 8 / 5; }
  .jnw-home .jnw-map-logo-sponsor { width: clamp(2.75rem,13vw,3.5rem); }
}

@media (max-width: 440px) {
  .jnw-home .jnw-storm-map-layout > .jnw-map-bottom-legend,
  .jnw-home .jnw-us-map-panel > .jnw-map-bottom-legend {
    gap: .38rem .18rem;
    padding-left: .28rem;
    padding-right: .28rem;
  }
  .jnw-home .jnw-storm-map-layout > .jnw-map-bottom-legend span,
  .jnw-home .jnw-us-map-panel > .jnw-map-bottom-legend span { font-size: .64rem; }
}

/* 0.46.82: city-anchored map labels, larger Storm Desk sponsor, and alert-details jump button. */
.jnw-home .jnw-storm-map-frame > .jnw-map-logo-sponsor {
  width: clamp(8rem,20vw,14rem);
}
.jnw-home .jnw-us-map-panel > header {
  align-items: start;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
}
.jnw-home .jnw-us-map-bulletins-button {
  align-items: center;
  align-self: start;
  background: rgba(78,227,155,.12);
  border: 1px solid rgba(78,227,155,.4);
  border-radius: .85rem;
  color: #8ff4bf;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: .86rem;
  font-weight: 1000;
  justify-content: center;
  letter-spacing: .055em;
  line-height: 1.15;
  min-height: 3.25rem;
  padding: .75rem .9rem;
  text-align: center;
  text-transform: uppercase;
  transition: border-color .18s ease, filter .18s ease, transform .18s ease;
  width: clamp(7.5rem,32vw,10rem);
}
.jnw-home .jnw-us-map-bulletins-button::after {
  content: '↓';
  font-size: 1rem;
  margin-left: .45rem;
}
.jnw-home .jnw-us-map-bulletins-button:hover { filter: brightness(1.12); transform: translateY(-1px); }
.jnw-home .jnw-us-map-bulletins-button:focus-visible { outline: 3px solid rgba(113,218,255,.34); outline-offset: 2px; }
.jnw-home .jnw-us-map-bulletins-button.is-watching { background: rgba(245,207,85,.13); border-color: rgba(245,207,85,.48); color: #ffe381; }
.jnw-home .jnw-us-map-bulletins-button.is-elevated { background: rgba(255,152,62,.14); border-color: rgba(255,152,62,.5); color: #ffbd7b; }
.jnw-home .jnw-us-map-bulletins-button.is-flood { background: rgba(var(--jnw-flood-green-rgb),.2); border-color: rgba(var(--jnw-flood-green-rgb),.64); color: var(--jnw-flood-green-soft); }
.jnw-home .jnw-us-map-bulletins-button.is-active { background: rgba(var(--jnw-warning-red-rgb),.16); border-color: rgba(var(--jnw-warning-red-rgb),.56); color: var(--jnw-warning-red-soft); }
.jnw-home .jnw-us-alert-section { scroll-margin-top: 6.5rem; }
.jnw-home .jnw-us-alert-section:focus { outline: none; }

@media (max-width: 720px) {
  .jnw-home .jnw-storm-map-frame > .jnw-map-logo-sponsor { width: clamp(5.5rem,26vw,7rem); }
  .jnw-home .jnw-us-map-panel > header { align-items: start; flex-direction: initial; gap: .7rem; }
  .jnw-home .jnw-us-map-panel > header h2 { font-size: clamp(1.65rem,7vw,2rem); }
  .jnw-home .jnw-us-map-bulletins-button { font-size: .74rem; min-height: 3rem; padding: .62rem .68rem; }
}

/* 0.46.83: cleaner mobile national map and collapsed alert details. */
.jnw-home details.jnw-us-alert-section {
  display: block;
  overflow: hidden;
  padding: 0;
  scroll-margin-top: 6.5rem;
}
.jnw-home .jnw-us-alert-section > summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: .75rem;
  grid-template-columns: minmax(0,1fr) auto auto;
  list-style: none;
  min-height: 5.5rem;
  padding: 1rem 1.1rem;
}
.jnw-home .jnw-us-alert-section > summary::-webkit-details-marker { display: none; }
.jnw-home .jnw-us-alert-section > summary small { color: #70cff7; font-size: .65rem; font-weight: 950; letter-spacing: .1em; }
.jnw-home .jnw-us-alert-section > summary h2 { font-size: clamp(1.45rem,4.5vw,2rem); letter-spacing: -.04em; line-height: 1; margin: .3rem 0 0; }
.jnw-home .jnw-us-alert-section > summary > b {
  background: rgba(78,227,155,.12);
  border: 1px solid rgba(78,227,155,.32);
  border-radius: 999px;
  color: #79ebb3;
  font-size: .7rem;
  font-weight: 1000;
  padding: .48rem .65rem;
  white-space: nowrap;
}
.jnw-home .jnw-us-alert-section > summary > b.is-watching { background: rgba(245,207,85,.13); border-color: rgba(245,207,85,.38); color: #ffe381; }
.jnw-home .jnw-us-alert-section > summary > b.is-elevated { background: rgba(255,152,62,.14); border-color: rgba(255,152,62,.4); color: #ffbd7b; }
.jnw-home .jnw-us-alert-section > summary > b.is-flood { background: rgba(var(--jnw-flood-green-rgb),.17); border-color: rgba(var(--jnw-flood-green-rgb),.58); color: var(--jnw-flood-green-soft); }
.jnw-home .jnw-us-alert-section > summary > b.is-active { background: rgba(var(--jnw-warning-red-rgb),.14); border-color: rgba(var(--jnw-warning-red-rgb),.46); color: var(--jnw-warning-red-soft); }
.jnw-home .jnw-us-alert-section > summary > i { color: #8ec9e7; font-size: 1.35rem; font-style: normal; transition: transform .18s ease; }
.jnw-home .jnw-us-alert-section[open] > summary > i { transform: rotate(180deg); }
.jnw-home .jnw-us-alert-section > summary:focus-visible { box-shadow: inset 0 0 0 2px #72d7ff; outline: none; }
.jnw-home details.jnw-us-alert-section:not([open]) > .jnw-us-alert-section-body { display: none; }
.jnw-home .jnw-us-alert-section-body { border-top: 1px solid rgba(133,185,222,.16); padding: .9rem; }
.jnw-home .jnw-us-map-bulletins-button {
  display: grid;
  gap: .08rem .35rem;
  grid-template-columns: minmax(0,1fr) auto;
}
.jnw-home .jnw-us-map-bulletins-button > span { display: block; grid-column: 1; white-space: nowrap; }
.jnw-home .jnw-us-map-bulletins-button::after { align-self: center; grid-column: 2; grid-row: 1 / 3; margin-left: 0; }

@media (max-width: 720px) {
  .jnw-home .jnw-us-map-state { stroke-width: 1.35px; }
  .jnw-home .jnw-us-map-stage { aspect-ratio: 3 / 2; }
  .jnw-home .jnw-us-map-bulletins-button {
    font-size: .7rem;
    letter-spacing: .035em;
    line-height: 1.05;
    min-height: 3.1rem;
    padding: .55rem .62rem;
    width: clamp(7.7rem,35vw,8.8rem);
  }
  .jnw-home .jnw-us-map-frame > .jnw-map-logo-sponsor {
    box-sizing: border-box;
    height: 2.7rem;
    overflow: hidden;
    padding: .22rem;
    width: 2.7rem;
  }
  .jnw-home .jnw-us-map-frame > .jnw-map-logo-sponsor small { font-size: .32rem; letter-spacing: .06em; }
  .jnw-home .jnw-us-map-frame > .jnw-map-logo-sponsor strong { font-size: .5rem; line-height: .86; margin-top: .12rem; max-width: 100%; white-space: normal; width: 100%; }
  .jnw-home .jnw-us-map-frame > .jnw-map-logo-sponsor span { font-size: .33rem; margin-top: .16rem; }
  .jnw-home .jnw-us-map-frame > .jnw-map-logo-sponsor span b { font-size: .4rem; }
  .jnw-home .jnw-us-alert-section > summary { min-height: 4.8rem; padding: .85rem .9rem; }
  .jnw-home .jnw-us-alert-section > summary h2 { font-size: 1.35rem; }
}

/* 0.46.84: proportional Storm Desk sponsor copy and phone Home-screen guide. */
.jnw-home .jnw-storm-map-frame > .jnw-map-logo-sponsor {
  box-sizing: border-box;
  overflow: hidden;
  padding: clamp(.55rem,1.35vw,1rem);
}
.jnw-home .jnw-storm-map-frame > .jnw-map-logo-sponsor small {
  font-size: clamp(.58rem,1.65vw,1rem);
  letter-spacing: .11em;
  line-height: 1;
}
.jnw-home .jnw-storm-map-frame > .jnw-map-logo-sponsor strong {
  font-size: clamp(1rem,3.1vw,1.9rem);
  line-height: .96;
  margin-top: clamp(.25rem,.65vw,.55rem);
  max-width: 100%;
  white-space: normal;
}
.jnw-home .jnw-storm-map-frame > .jnw-map-logo-sponsor span {
  font-size: clamp(.58rem,1.45vw,.92rem);
  gap: clamp(.16rem,.4vw,.35rem);
  line-height: 1;
  margin-top: clamp(.32rem,.8vw,.65rem);
}
.jnw-home .jnw-storm-map-frame > .jnw-map-logo-sponsor span b {
  font-size: clamp(.8rem,2vw,1.25rem);
}

.jnw-home-screen-guide { border-color: rgba(91,203,255,.38); }
.jnw-settings-card.jnw-home-screen-guide > h2 {
  font-size: clamp(1.4rem,5.5vw,1.8rem);
  line-height: 1.08;
  margin-bottom: .75rem;
}
.jnw-settings-card .jnw-home-screen-intro {
  background: rgba(72,188,240,.08);
  border: 1px solid rgba(91,203,255,.2);
  border-left: .25rem solid #59c9fa;
  border-radius: .75rem;
  color: #b9cada;
  font-size: .84rem;
  line-height: 1.55;
  padding: .8rem .9rem;
}
.jnw-settings-card .jnw-home-screen-intro strong { color: #f3f8fd; }
.jnw-home-screen-platforms {
  display: grid;
  gap: .85rem;
  grid-template-columns: repeat(2,minmax(0,1fr));
  margin-top: 1rem;
}
.jnw-home-screen-platform {
  background: rgba(4,20,37,.54);
  border: 1px solid rgba(134,174,210,.22);
  border-radius: .9rem;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 1rem;
}
.jnw-home-screen-platform h3 {
  align-items: center;
  display: flex;
  font-size: 1.05rem;
  gap: .5rem;
  margin: 0;
}
.jnw-home-screen-platform h3 > span {
  align-items: center;
  background: rgba(86,199,255,.13);
  border: 1px solid rgba(86,199,255,.28);
  border-radius: .5rem;
  color: #70d4ff;
  display: inline-flex;
  font-size: .68rem;
  font-weight: 950;
  height: 1.8rem;
  justify-content: center;
  letter-spacing: -.02em;
  width: 1.8rem;
}
.jnw-home-screen-platform ol {
  display: grid;
  gap: .78rem;
  list-style: none;
  margin: 1rem 0;
  padding: 0;
}
.jnw-home-screen-platform li {
  align-items: start;
  color: #aebed0;
  display: grid;
  font-size: .78rem;
  gap: .62rem;
  grid-template-columns: 1.55rem minmax(0,1fr);
  line-height: 1.5;
  min-width: 0;
}
.jnw-home-screen-platform li > b {
  align-items: center;
  background: #187fac;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  font-size: .68rem;
  height: 1.55rem;
  justify-content: center;
  line-height: 1;
  width: 1.55rem;
}
.jnw-home-screen-platform li strong { color: #edf6fc; overflow-wrap: anywhere; }
.jnw-home-screen-platform > a {
  align-items: center;
  align-self: flex-start;
  color: #62ceff;
  display: inline-flex;
  font-size: .74rem;
  font-weight: 900;
  margin-top: auto;
  min-height: 2.1rem;
  text-decoration: none;
}
.jnw-home-screen-platform > a:hover,
.jnw-home-screen-platform > a:focus-visible { color: #b8edff; outline: none; text-decoration: underline; }

@media (max-width: 560px) {
  .jnw-settings-card.jnw-home-screen-guide { padding: 1rem; }
  .jnw-home-screen-platforms { grid-template-columns: 1fr; }
  .jnw-home-screen-platform { padding: .9rem; }
  .jnw-home-screen-platform li { font-size: .8rem; }
}
