:root {
  --eel-ink: #083946;
  --eel-green: #176c3b;
  --eel-blue: #087cb9;
  --eel-soft: #dff3ff;
  --eel-line: #9ed2eb;
  --eel-amber: #a45f00;
  --eel-red: #b31625;
}

* { box-sizing: border-box; }
.widget-home {
  margin: 0;
  background: #f7fbfd;
  color: var(--eel-ink);
  font: 16px/1.35 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.widget-home .skip-link { position: absolute; left: -9999px; }
.widget-home .skip-link:focus {
  left: 12px;
  top: 12px;
  z-index: 10;
  padding: 8px;
  background: #fff;
}
.widget-stage {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(14px, 4vh, 28px) 12px 18px;
}
.river-widget {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: min(100%, 430px);
  border: 1px solid var(--eel-line);
  border-radius: 13px;
  background: linear-gradient(150deg, #effaff 0%, #d9f1ff 66%, #caeaff 100%);
  box-shadow: 0 12px 30px rgba(8, 57, 70, .12);
  color: var(--eel-ink);
  font: 16px/1.35 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.river-widget::before,
.river-widget::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: -8%;
  right: -8%;
  bottom: -42px;
  height: 92px;
  border-radius: 50% 50% 0 0;
  background: rgba(255, 255, 255, .42);
  transform: rotate(-4deg);
}
.river-widget::after {
  bottom: -60px;
  left: 12%;
  background: rgba(83, 177, 225, .24);
  transform: rotate(4deg);
}
.river-widget [hidden] { display: none !important; }
.weather-svg { display:block; width:1.35em; height:1.35em; overflow:visible; }
.weather-svg .wi-sun { fill:#f8bf2c; stroke:#bd6e08; stroke-width:1.8; stroke-linecap:round; }
.weather-svg .wi-sun-back { stroke-width:1.6; }
.weather-svg .wi-cloud { fill:#eef3f5; stroke:#526b76; stroke-width:1.55; stroke-linejoin:round; }
.weather-svg .wi-cloud-back { fill:#b9c6cc; }
.weather-svg .wi-rain { fill:none; stroke:#268cc4; stroke-width:2.1; stroke-linecap:round; }
.weather-svg .wi-bolt { fill:#ffd33d; stroke:#9b6800; stroke-width:1.2; stroke-linejoin:round; }
.weather-svg .wi-fog { fill:none; stroke:#73868e; stroke-width:2; stroke-linecap:round; }
.weather-svg .wi-moon { fill:#ffe178; stroke:#a76c0a; stroke-width:1.45; stroke-linejoin:round; }
.weather-icon-primary { display: inline-grid; place-items: center; color: #a45f00; }
.weather-svg-primary { width:clamp(3.7rem,17vw,5.35rem); height:clamp(3.7rem,17vw,5.35rem); filter:drop-shadow(0 2px 2px #0002); }
.decision-temperature-row { display: flex; align-items: center; gap: 8px; min-width:0; }
.hourly-icon { display: inline-grid; place-items: center; min-height: 1.6rem; color: #087cb9; }
.weather-svg-hourly { width: 1.5rem; height: 1.5rem; }
.weather-icon-sunset { display: inline-grid; vertical-align: -.25em; color: #a45f00; margin-right: 4px; }
.weather-svg-weather { width: 1.1em; height: 1.1em; }
.eel-widget-head {
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  padding: 10px 11px 8px;
}
.eel-widget-head img { width: 45px; height: 45px; object-fit: contain; }
.eel-widget-title h1,
.eel-widget-title > strong {
  display: block;
  margin: 0;
  color: var(--eel-ink);
  font: 800 1.08rem/1.1 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.widget-location-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 2px;
}
.widget-location-wrap label,
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.widget-location,
.widget-language {
  min-width: 0;
  min-height: 30px;
  border: 0;
  background: transparent;
  color: var(--eel-ink);
  font: inherit;
  font-size: .71rem;
}
.widget-location { width: 100%; max-width: none; padding: 2px 1px; }
.widget-language {
  width: 47px;
  padding: 2px;
  border-bottom: 1px solid rgba(8, 57, 70, .25);
}
.widget-location:focus-visible,
.widget-language:focus-visible { outline: 2px solid #075486; outline-offset: 2px; }
.widget-location-search {
  display: grid;
  place-items: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(8, 57, 70, .22);
  border-radius: 50%;
  color: #075486;
  text-decoration: none;
  font-size: 1rem;
}
.widget-location-search:hover,
.widget-location-search:focus-visible { background: #fff; outline: 2px solid #075486; outline-offset: 2px; }
.widget-update { text-align: right; font-size: .63rem; white-space: nowrap; }
.widget-update strong,
.widget-update span { display: block; }
.widget-update [data-widget-checks] { color: #275d69; font-size: .55rem; }

.eel-widget-body {
  display: grid;
  gap: 8px;
  padding: 0 10px 10px;
  border-top: 1px solid rgba(8, 57, 70, .12);
}
.widget-alert {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  margin-top: 8px;
  padding: 7px 8px;
  border: 1px solid rgba(117, 72, 0, .24);
  border-radius: 9px;
  background: #f6b52d;
  color: #2f250d;
}
.alert-icon {
  display: grid;
  place-items: center;
  width: 23px;
  height: 25px;
  border-right: 1px solid rgba(47, 37, 13, .3);
  font-size: 1.25rem;
  font-weight: 800;
}
.widget-alert strong,
.widget-alert small { display: block; }
.widget-alert strong { font-size: .72rem; line-height: 1.15; }
.widget-alert small { margin-top: 1px; font-size: .59rem; line-height: 1.22; }
.widget-alert a {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  color: #3f3000;
  font-size: .62rem;
  font-weight: 800;
  text-underline-offset: 2px;
}
[data-state="red"] .widget-alert { border-color: #8f1020; background: var(--eel-red); color: #fff; }
[data-state="red"] .widget-alert a { color: #fff; }

.widget-reaction {
  display: grid;
  grid-template-columns: 29px minmax(0, 1fr);
  gap: 7px;
  align-items: center;
  padding: 7px 9px;
  border-radius: 9px;
  background: var(--eel-green);
  color: #fff;
  box-shadow: 0 3px 8px rgba(8, 57, 70, .12);
}
[data-weather-state="amber"] .widget-reaction { background: #87600d; }
[data-weather-state="neutral"] .widget-reaction { background: #55737c; }
.reaction-icon {
  display: grid;
  place-items: center;
  width: 27px;
  min-height: 30px;
  border-right: 1px solid rgba(255, 255, 255, .45);
  font-size: 1.35rem;
}
.widget-kicker {
  display: block;
  margin-bottom: 1px;
  font-size: .56rem;
  font-weight: 850;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}
.widget-reaction strong {
  display: block;
  font-size: .81rem;
  line-height: 1.14;
  text-wrap: balance;
}
.widget-forecast-facts { padding: 1px 6px 3px; }
.widget-forecast-facts p { margin: 0; }
.widget-forecast-facts [data-widget-current] { color: #245966; font-size: .68rem; }
.widget-forecast-facts [data-widget-high] {
  margin-top: 1px;
  color: var(--eel-ink);
  font-size: 1.27rem;
  font-weight: 850;
  letter-spacing: -.025em;
  line-height: 1.15;
}
.widget-forecast-facts [data-widget-warmest] {
  margin-top: 2px;
  color: #245966;
  font-size: .7rem;
  font-weight: 700;
}

.widget-evening {
  padding: 7px 8px 6px;
  border: 1px solid rgba(8, 57, 70, .13);
  border-radius: 9px;
  background: rgba(255, 255, 255, .48);
}
.widget-section-label {
  display: block;
  margin-bottom: 5px;
  color: #245966;
  font-size: .58rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.widget-evening-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.widget-evening-grid > div + div { padding-left: 7px; border-left: 1px solid rgba(8, 57, 70, .15); }
.widget-evening-grid span,
.widget-evening-grid strong { display: block; }
.widget-evening-grid span { color: #315d66; font-size: .58rem; font-weight: 750; }
.widget-evening-grid strong { margin-top: 1px; font-size: .88rem; line-height: 1.15; white-space: nowrap; }
.widget-daylight {
  margin: 5px 0 0;
  padding-top: 5px;
  border-top: 1px solid rgba(8, 57, 70, .12);
  color: #245966;
  font-size: .62rem;
}

.widget-river {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  padding: 6px 7px;
  border-top: 1px solid rgba(8, 57, 70, .13);
  border-bottom: 1px solid rgba(8, 57, 70, .13);
}
.river-icon { color: var(--eel-green); font-size: 1.3rem; font-weight: 800; }
.widget-river strong,
.widget-river small { display: block; }
.widget-river strong { font-size: .72rem; line-height: 1.15; }
.widget-river small { margin-top: 1px; color: #315d66; font-size: .59rem; line-height: 1.2; }
.widget-river a {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  color: #075486;
  font-size: .62rem;
  font-weight: 800;
}
.widget-lower {
  min-height: 40px;
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
}
.widget-lower p { min-width: 0; margin: 0; font-size: .63rem; }
.widget-lower p span { font-weight: 800; }
.widget-lower p strong { margin-left: 3px; font-size: .72rem; }
.widget-lower p small {
  display: block;
  max-width: 245px;
  overflow: hidden;
  color: #315d66;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.widget-more {
  flex: 0 0 auto;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  padding: 7px 11px;
  border-radius: 8px;
  background: #075486;
  color: #fff;
  font-size: .71rem;
  font-weight: 800;
  text-decoration: none;
}
.widget-more:hover,
.widget-more:focus-visible { background: #063c60; outline: 2px solid #fff; outline-offset: -4px; }
.widget-freshness,
.widget-location-status {
  position: relative;
  z-index: 2;
  min-height: 0;
  margin: 0 12px 7px;
  color: #315d66;
  font-size: .61rem;
}
.widget-freshness:empty,
.widget-location-status:empty { display: none; }
.widget-home-note {
  width: min(100%, 430px);
  margin: 8px auto 0;
  color: #536c73;
  font-size: .7rem;
  text-align: center;
}
.widget-home-note a { min-height: 32px; display: inline-flex; align-items: center; color: #075486; }
.eel-widget-slot {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.eel-cross-promo {
  width: min(100%, 430px);
  margin: 8px auto 0;
  color: #4c5650;
  font: .72rem/1.4 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-align: center;
}
.eel-cross-promo a { color: #145d37; font-weight: 750; text-underline-offset: 2px; }

.home-context {
  width: min(100%, 430px);
  margin: 14px auto 0;
  padding: 14px 15px;
  border: 1px solid #c9e2ee;
  border-radius: 11px;
  background: #fff;
}
.home-context h2 { margin: 0 0 6px; font-size: 1rem; line-height: 1.2; }
.home-context p { margin: 0 0 9px; color: #315d66; font-size: .76rem; line-height: 1.42; }
.home-context nav { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 10px 0; }
.home-context nav a {
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: 6px 8px;
  border-radius: 7px;
  background: #eaf7fd;
  color: #075486;
  font-size: .72rem;
  font-weight: 750;
  text-decoration: none;
}
.home-context nav a:focus-visible { outline: 2px solid #075486; outline-offset: 2px; }
.home-context .safety-context {
  margin: 9px 0 0;
  padding-top: 9px;
  border-top: 1px solid #d8e8ef;
  font-size: .69rem;
}

@media (max-width: 370px) {
  .widget-stage { padding: 8px; }
  .river-widget { border-radius: 10px; }
  .eel-widget-head { grid-template-columns: 40px minmax(0, 1fr) auto; padding-inline: 8px; }
  .eel-widget-head img { width: 40px; height: 40px; }
  .eel-widget-title h1,
  .eel-widget-title > strong { font-size: 1rem; }
  .eel-widget-body { padding-inline: 8px; }
  .widget-alert { grid-template-columns: 23px minmax(0, 1fr); }
  .widget-alert a { grid-column: 2; min-height: 24px; }
  .widget-forecast-facts [data-widget-high] { font-size: 1.14rem; }
  .widget-evening-grid { gap: 5px; }
  .widget-evening-grid > div + div { padding-left: 5px; }
  .widget-evening-grid strong { font-size: .79rem; }
  .widget-river { grid-template-columns: 22px minmax(0, 1fr); }
  .widget-river a { grid-column: 2; min-height: 24px; }
  .home-context { padding: 12px; }
  .home-context nav { grid-template-columns: 1fr; }
}

@media (min-width: 700px) {
  .river-widget { width: min(100%, 500px); }
  .widget-stage { padding: clamp(32px, 10vh, 96px) 32px; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; }
}

/* Simple river-day experience. The existing widget above remains intact in Detailed mode. */
.eel-app {
  --app-bg: #fff8e7;
  --app-surface: #fffcf3;
  --app-surface-soft: #fff0b8;
  --app-ink: #073f47;
  --app-muted: #405f62;
  --app-line: #74b7b7;
  --app-accent: #087a83;
  --app-button: #076873;
  --app-button-ink: #ffffff;
  width: min(100%, 500px);
  color: var(--app-ink);
}
.eel-app[data-theme="sunny"] {
  --app-bg: #fff5d7;
  --app-surface: #fffdf6;
  --app-surface-soft: #ffedb7;
  --app-ink: #3e2c0a;
  --app-muted: #675333;
  --app-line: #e4bf64;
  --app-accent: #b54d12;
  --app-button: #88400f;
  --app-button-ink: #ffffff;
}
.eel-app[data-theme="redwood"] {
  --app-bg: #e8f0eb;
  --app-surface: #f8fbf8;
  --app-surface-soft: #dce9df;
  --app-ink: #173c2c;
  --app-muted: #435e50;
  --app-line: #a8c6b1;
  --app-accent: #276e4a;
  --app-button: #18543a;
  --app-button-ink: #ffffff;
}
.eel-app[data-theme="night"] {
  color-scheme: dark;
  --app-bg: #071924;
  --app-surface: #0d2936;
  --app-surface-soft: #143746;
  --app-ink: #f3fbff;
  --app-muted: #c0d4dc;
  --app-line: #477080;
  --app-accent: #79cdeb;
  --app-button: #b8e9fa;
  --app-button-ink: #082936;
}
.eel-app[data-theme="california"] {
  --app-bg: #fff4c9; --app-surface: #fffdf4; --app-surface-soft: #ffe08a;
  --app-ink: #174c62; --app-muted: #4e6470; --app-line: #e5a82a;
  --app-accent: #d45a24; --app-button: #176b83; --app-button-ink: #fff;
}
.eel-app[data-theme="vintage"] {
  --app-bg: #f3e2bd; --app-surface: #fff5d8; --app-surface-soft: #e9c77e;
  --app-ink: #153f3a; --app-muted: #5f5140; --app-line: #9d5d32;
  --app-accent: #ad3f2b; --app-button: #234f47; --app-button-ink: #fff8e7;
}
.eel-app[data-theme="station"] {
  --app-bg: #e8eef0; --app-surface: #f8fbfc; --app-surface-soft: #dbe7ea;
  --app-ink: #102f39; --app-muted: #425d66; --app-line: #75949d;
  --app-accent: #12677b; --app-button: #183f4a; --app-button-ink: #fff;
}
.eel-app[data-theme="after-dark"] {
  color-scheme: dark;
  --app-bg: #061722; --app-surface: #0b2934; --app-surface-soft: #123b48;
  --app-ink: #f4f1d2; --app-muted: #bed5d6; --app-line: #3d7180;
  --app-accent: #ffc94f; --app-button: #f1c85b; --app-button-ink: #082936;
}
.widget-home[data-eel-theme="river-light"] { background: #fff8e7; }
.widget-home[data-eel-theme="sunny"] { background: #fff5d7; }
.widget-home[data-eel-theme="redwood"] { background: #e8f0eb; }
.widget-home[data-eel-theme="night"] { background: #071924; }
.widget-home[data-eel-theme="detailed"] { background: #f7fbfd; }
.widget-home[data-eel-theme="california"] { background: #fff4c9; }
.widget-home[data-eel-theme="vintage"] { background: #f3e2bd; }
.widget-home[data-eel-theme="station"] { background: #e8eef0; }
.widget-home[data-eel-theme="after-dark"] { background: #061722; }
.eel-app [hidden] { display: none !important; }
.region-ticker { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-width:0; max-width:100%; margin:0 0 4px; padding:2px; }
.region-row { display:flex; flex-wrap:nowrap; justify-content:center; align-items:stretch; gap:3px; width:100%; min-width:0; }
.region-ticker button { flex:0 1 auto; width:max-content; min-width:0; max-width:calc((100% - 6px)/3); min-height:44px; display:grid; grid-template-columns:16px auto; justify-content:center; gap:1px; align-items:center; padding:2px 3px; border:1px solid var(--app-line); border-radius:8px; background:var(--app-surface); color:var(--app-ink); text-align:center; font:inherit; cursor:pointer; }
.region-ticker button span:first-child { grid-column:1/-1; min-width:0; max-width:84px; font-size:.72rem; font-weight:800; line-height:1.05; overflow-wrap:normal; }
.region-ticker button strong { font-size:.92rem; white-space:nowrap; }
.region-ticker button[aria-pressed="true"] { background:var(--app-surface-soft); border-color:var(--app-accent); box-shadow:inset 0 0 0 1px var(--app-accent); }
.region-ticker .weather-svg { width:1rem; height:1rem; flex:none; }
.eel-app[data-theme="sunny"] .simple-experience { display:block; }
.eel-app[data-theme="sunny"] .river-decision { display:flex; flex-direction:column; align-items:stretch; }
.region-weather { margin-top:8px; }
.eel-app[data-theme="detailed"] .river-widget { display:flex; flex-direction:column; }
.eel-app[data-theme="detailed"] .eel-widget-head { order:1; display:block; }
.eel-app[data-theme="detailed"] .eel-widget-head > img,
.eel-app[data-theme="detailed"] .eel-widget-title { display:none; }
.eel-app[data-theme="detailed"] .widget-update { text-align:center; }
.eel-app[data-theme="detailed"] .widget-reaction,
.eel-app[data-theme="detailed"] .widget-forecast-facts { display:none; }
.eel-app[data-theme="detailed"] .river-decision { margin-bottom:8px; }
.eel-app[data-theme="detailed"] .eel-widget-body { display:flex; flex-direction:column; }
.eel-app[data-theme="detailed"] .river-decision { grid-area:auto; width:100%; }
.eel-app[data-theme="sunny"] .river-decision h1 { margin-top:0; }
.eel-app[data-theme="sunny"] .simple-location, .eel-app[data-theme="sunny"] .reading-details, .eel-app[data-theme="sunny"] .simple-meta, .eel-app[data-theme="sunny"] .simple-lower { grid-column:1/-1; }
.eel-app[data-theme="redwood"] { background:linear-gradient(160deg,var(--app-bg),#f5ead3); border-radius:18px; padding:12px; }
.eel-app[data-theme="redwood"]::before { content:"〰 〰 〰"; display:block; color:var(--app-accent); letter-spacing:9px; font-size:1.25rem; }
.eel-app[data-theme="night"] .forecast-column, .eel-app[data-theme="night"] .simple-meta { font-size:.9rem; }
.eel-app[data-theme="night"] .river-decision { padding:16px; }
.eel-app[data-theme="night"] .forecast-column { display:none; }
.eel-app[data-theme="night"] .simple-experience { display:block; }
.eel-app[data-theme="california"] .river-decision { border-radius:30px 12px 30px 12px; background:linear-gradient(145deg,#ffd967,#ffbd45); }
.eel-app[data-theme="california"] .decision-temperature-row { justify-content:flex-start; }
.eel-app[data-theme="vintage"] { padding:10px; border:3px double var(--app-line); border-radius:8px; font-family:Georgia,serif; }
.eel-app[data-theme="vintage"] .simple-experience { border:2px solid var(--app-line); border-radius:4px; box-shadow:6px 6px 0 color-mix(in srgb,var(--app-line) 40%,transparent); }
.eel-app[data-theme="vintage"] .river-decision { border:2px solid #153f3a; border-radius:2px; box-shadow:none; }
.eel-app[data-theme="vintage"] .river-decision h1,
.eel-app[data-theme="vintage"] .decision-temperature { font-family:Georgia,serif; letter-spacing:-.025em; }
.eel-app[data-theme="station"] .simple-experience { border-radius:8px; box-shadow:none; }
.eel-app[data-theme="station"] .river-decision { border-radius:6px; box-shadow:none; background:#dbe7ea; color:#102f39; border-left:8px solid var(--app-accent); }
.eel-app[data-theme="station"] .decision-temperature,
.eel-app[data-theme="station"] .decision-temperature-label,
.eel-app[data-theme="station"] .hourly-strip { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.eel-app[data-theme="after-dark"] .simple-experience { background:linear-gradient(180deg,#0d2e3a,#071c27); box-shadow:0 18px 48px #0008; }
.eel-app[data-theme="after-dark"] .river-decision { background:linear-gradient(155deg,#173f52,#092636); color:#fff5c7; border:1px solid #5a8795; }
.eel-app[data-theme="after-dark"] .weather-svg { filter:drop-shadow(0 0 8px #ffc94f66); }
.eel-app[data-theme="after-dark"] .forecast-column { display:grid; gap:8px; }
@media (max-width: 560px) { .eel-app[data-theme="sunny"] .simple-experience { display:block; } }
.experience-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 52px;
  margin-bottom: 9px;
  padding: 4px 5px;
  color: var(--app-ink);
}
.app-brand {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-right: auto;
  color: inherit;
  font-size: .88rem;
  font-weight: 850;
  text-decoration: none;
}
.app-brand img { width: 42px; height: 42px; object-fit: contain; }
.theme-label { color: var(--app-muted); font-size: .69rem; font-weight: 800; }
.theme-select {
  min-height: 44px;
  width:210px;
  max-width: 58vw;
  padding: 7px 26px 7px 9px;
  border: 1px solid var(--app-line);
  border-radius: 10px;
  background: var(--app-surface);
  color: var(--app-ink);
  font: 750 .73rem/1.2 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.embed-open { display: none; }
.theme-select:focus-visible,
.locate-button:focus-visible,
.manual-location select:focus-visible,
.simple-meta a:focus-visible,
.reading-details summary:focus-visible,
.algae-note summary:focus-visible,
.algae-note a:focus-visible { outline: 3px solid var(--app-accent); outline-offset: 3px; }
.simple-experience {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(13px, 3vw, 18px);
  border: 1px solid var(--app-line);
  border-radius: 25px;
  background: var(--app-surface);
  box-shadow: 0 18px 48px rgba(7, 60, 72, .12);
}
.simple-experience::before,
.simple-experience::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 125%;
  height: 90px;
  left: -12%;
  top: 148px;
  border: 2px solid color-mix(in srgb, var(--app-accent) 24%, transparent);
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: 50%;
  transform: rotate(-5deg);
  pointer-events: none;
}
.simple-experience::after { top: 166px; transform: rotate(4deg); opacity: .55; }
.simple-location { margin-bottom: 14px; }
.locate-button {
  width: 100%;
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 15px;
  border: 0;
  border-radius: 14px;
  background: var(--app-button);
  color: var(--app-button-ink);
  font: 850 1rem/1.2 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  cursor: pointer;
}
.locate-button:hover { filter: brightness(.92); }
.locate-button:disabled { cursor: wait; opacity: .72; }
.manual-location {
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: stretch;
  margin-top: 9px;
}
.manual-location label { display: block; color: var(--app-ink); font-size: 18px; font-weight: 850; text-align: center; }
.manual-location select {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 7px 9px;
  border: 1px solid var(--app-line);
  border-radius: 11px;
  background: var(--app-surface);
  color: var(--app-ink);
  font: 750 1rem/1.2 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.directions-link { display: inline-flex; align-items: center; min-height: 40px; margin-top: 5px; color: var(--app-accent); font-size: 1rem; font-weight: 850; text-underline-offset: 2px; }
.simple-location > .directions-link { grid-column: 2; grid-row: 2; justify-self: center; }
.simple-location { text-align:center; }
.location-picker { position:relative; min-width:0; width:100%; border:1px solid var(--app-line); border-radius:11px; background:var(--app-surface); color:var(--app-ink); }
.location-picker::after { content:""; position:absolute; right:14px; top:calc(50% - 6px); width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); pointer-events:none; }
.location-selection { display:flex; justify-content:center; align-items:center; min-height:44px; padding:8px 30px; font:750 1rem/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; overflow-wrap:break-word; }
.manual-location .location-picker select { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.location-picker:focus-within { outline:3px solid var(--app-accent); outline-offset:2px; }
.simple-location a.directions-link { justify-content:center; min-height:44px; max-width:100%; padding:8px 14px; border:1px solid var(--app-accent); border-radius:11px; background:var(--app-surface); text-decoration:none; }
.river-decision { text-align:center; }
.river-decision h1 { margin-inline:auto; }
.eel-app .river-decision .decision-temperature-row { justify-content:center; }
.quick-conditions h2 { text-align:center; }
.decision-summary { margin-inline:auto; }
.eel-widget-body .decision-kicker { text-align:center; }
.simple-location-status { min-height: 0; margin: 6px 2px 0; color: var(--app-muted); font-size: .68rem; }
.simple-location-status:empty { display: none; }
.river-decision {
  position: relative;
  z-index: 1;
  min-height: 250px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(20px, 6vw, 28px) clamp(18px, 5vw, 25px);
  border-radius: 22px;
  background: #f7c843;
  color: #073f47;
  box-shadow: 0 12px 28px rgba(8, 41, 51, .2);
}
.river-decision[data-level="ideal"] { background: #f6c63d; }
.river-decision[data-level="beautiful"] { background: #f9d66f; }
.river-decision[data-level="great"] { background: #ffebb0; }
.river-decision[data-level="rough"] { background: #eeb245; }
.river-decision[data-level="skip"] { background: #075b65; color: #ffffff; }
.river-decision[data-level="unknown"] { background: #ece8db; }
.decision-kicker {
  margin: 0 0 9px;
  color: currentColor;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.river-decision h1 {
  max-width: 18ch;
  margin: 0;
  color: currentColor;
  font: 900 clamp(1.85rem, 7.8vw, 2.7rem)/1.04 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.period-label { margin: 0 0 6px; color: currentColor; font-size: 1rem; font-weight: 950; letter-spacing: .14em; }
.decision-temperature {
  display: block;
  margin-top: 12px;
  color: currentColor;
  font-size: clamp(3rem, 14vw, 4.5rem);
  font-weight: 950;
  letter-spacing: -.065em;
  line-height: .95;
}
.decision-temperature-label {
  display: block;
  margin-top: 5px;
  color: currentColor;
  font-size: .875rem;
  font-weight: 800;
}
.decision-summary { max-width: 34rem; margin: 13px 0 0; color: currentColor; font-size: 1rem; font-weight: 750; line-height: 1.38; }
.decision-window { margin: 10px 0 0; padding-top: 10px; border-top: 1px solid color-mix(in srgb, currentColor 36%, transparent); color: currentColor; font-size: .875rem; line-height: 1.38; }
.simple-retry {
  width: fit-content;
  min-height: 44px;
  margin-top: 14px;
  padding: 8px 14px;
  border: 2px solid currentColor;
  border-radius: 10px;
  background: transparent;
  color: currentColor;
  font: 850 .8rem/1 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  cursor: pointer;
}
.simple-retry:focus-visible { outline: 3px solid var(--app-accent); outline-offset: 3px; }
.river-decision[data-level="skip"] .decision-kicker,
.river-decision[data-level="skip"] .decision-temperature-label,
.river-decision[data-level="skip"] .decision-window { color: #ffffff; }
.reading-details,
.algae-note {
  margin: 7px 3px 0;
  color: var(--app-muted);
  font-size: .875rem;
  line-height: 1.42;
}
.reading-details summary,
.algae-note summary {
  width: fit-content;
  min-height: 28px;
  display: flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  color: var(--app-muted);
  font-weight: 750;
  list-style: none;
  text-underline-offset: 2px;
}
.reading-details summary::-webkit-details-marker,
.algae-note summary::-webkit-details-marker { display: none; }
.reading-details summary::after { content: " +"; color: var(--app-accent); font-weight: 900; }
.reading-details[open] summary::after { content: " −"; }
.reading-details > div,
.algae-details {
  margin-top: 3px;
  padding: 8px 9px;
  border-left: 2px solid var(--app-line);
  background: color-mix(in srgb, var(--app-surface-soft) 45%, transparent);
}
.reading-details p,
.algae-details p { margin: 0 0 6px; }
.reading-details p:last-child,
.algae-details p:last-child { margin-bottom: 0; }
.reading-details a,
.algae-note a { color: var(--app-accent); font-weight: 850; }
.algae-note { margin-top: 2px; padding-top: 2px; font-size: .75rem; opacity: .9; }
.algae-note summary { min-height: 26px; font-weight: 650; }
.algae-details { font-size: .875rem; }
.algae-note .details-label { color: var(--app-accent); font-weight: 850; white-space: nowrap; }
.quick-conditions { margin-top: 16px; }
.quick-conditions h2 { margin: 0 0 8px; color: var(--app-ink); font: 850 .875rem/1.2 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.hourly-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--app-line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--app-surface-soft) 46%, var(--app-surface));
  overflow: hidden;
}
.hourly-strip > div { min-width: 0; padding: 10px 7px; }
.hourly-strip > div + div { border-left: 1px solid var(--app-line); }
.hourly-strip > p { grid-column: 1 / -1; margin: 0; padding: 11px; color: var(--app-muted); font-size: .7rem; }
.hourly-strip span,
.hourly-strip strong,
.hourly-strip small { display: block; }
.hourly-strip span { color: var(--app-muted); font-size: .875rem; font-weight: 850; text-transform: none; overflow-wrap:break-word; }
.hourly-strip strong { margin-top: 3px; color: var(--app-ink); font-size: 1.08rem; line-height: 1.15; overflow-wrap: anywhere; }
.hourly-strip small { margin-top: 3px; color: var(--app-muted); font-size: .875rem; line-height: 1.25; overflow-wrap: anywhere; }
.forecast-summary { margin-top: 8px; }
.forecast-column { min-width: 0; }
.condition-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid var(--app-line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--app-surface-soft) 76%, var(--app-surface));
}
.condition-strip[data-single="true"] { grid-template-columns: 1fr; }
.condition-strip > div { min-width: 0; padding: 12px 10px; }
.condition-strip > div + div { border-left: 1px solid var(--app-line); }
.condition-strip span,
.condition-strip strong,
.condition-strip small { display: block; }
.condition-strip span { color: var(--app-muted); font-size: .875rem; font-weight: 850; text-transform: uppercase; }
.condition-strip strong { margin-top: 3px; color: var(--app-ink); font-size: 1.08rem; line-height: 1.15; overflow-wrap: anywhere; }
.condition-strip small { margin-top: 3px; color: var(--app-muted); font-size: .875rem; line-height: 1.3; overflow-wrap: anywhere; }
.simple-meta {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  margin-top: 12px;
  color: var(--app-muted);
  font-size: .875rem;
}
.simple-meta p { margin: 0; }
.simple-meta a { flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; color: var(--app-accent); font-weight: 850; text-decoration-thickness: 1px; }
.detailed-experience { display: flex; flex-direction: column; align-items: center; }
.detailed-experience .home-context,
.detailed-experience .widget-home-note { width: min(100%, 430px); }

@media (max-width: 420px) {
  .widget-stage { padding: 8px; }
  .experience-bar { min-height:46px; padding:1px 2px; gap:6px; }
  .app-brand { gap:5px; }
  .app-brand img { width:36px; height:36px; }
  .app-brand span { font-size: .79rem; }
  .theme-label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
  .theme-select { width:min(65vw,240px); max-width:100%; min-width:0; padding-left:8px; font-size:.72rem; }
  .region-ticker { width:100%; }
  .simple-experience { border-radius: 20px; padding: 10px; }
  .simple-location { margin-bottom:4px; }
  .eel-app .river-decision { padding-top:12px; }
  .eel-app[data-theme="sunny"] .river-decision > * { order:initial; }
  .eel-app[data-theme="sunny"] .river-decision h1 { margin-top:0; }
  .locate-button { min-height:46px; padding-block:8px; }
  .manual-location { margin-top:5px; }
  .manual-location select { min-height:44px; }
  .directions-link { min-height:32px; margin-top:1px; }
  .manual-location { grid-template-columns: 1fr; gap: 4px; }
  .river-decision { min-height: 218px; padding: 17px 15px; }
  .decision-kicker { margin-bottom:5px; }
  .decision-temperature { margin-top:8px; font-size:clamp(2.65rem,12vw,3.2rem); white-space:nowrap; }
  .region-weather { margin-inline:-12px; }
  .eel-widget-body .region-weather { margin-inline:0; }
  .eel-app[data-theme="redwood"] { padding:6px; }
  .decision-summary { margin-top:8px; }
  .decision-window { margin-top:7px; padding-top:7px; }
  .condition-strip > div { padding: 11px 8px; }
  .condition-strip strong { font-size: .94rem; }
  .hourly-strip > div { padding-inline: 6px; }
  .hourly-strip[data-crosses-midnight="true"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hourly-strip[data-crosses-midnight="true"] > div:nth-child(3) { border-left:0; }
  .hourly-strip[data-crosses-midnight="true"] > div:nth-child(n+3) { border-top:1px solid var(--app-line); }
}
@media (max-width: 335px) {
  .theme-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .app-brand span { display: none; }
  .condition-strip { grid-template-columns: 1fr; }
  .condition-strip > div + div { border-left: 0; border-top: 1px solid var(--app-line); }
  .hourly-strip { grid-template-columns: 1fr 1fr; }
  .hourly-strip > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--app-line); }
  .hourly-strip > div:nth-child(4) { border-top: 1px solid var(--app-line); }
  .simple-meta { align-items: flex-start; flex-direction: column; gap: 2px; }
}
@media (prefers-contrast: more) {
  .simple-experience,
  .theme-select,
  .manual-location select,
  .hourly-strip,
  .condition-strip { border-width: 2px; }
  .app-brand,
  .algae-note,
  .simple-meta { color: var(--app-ink); }
}
@media (forced-colors: active) {
  .river-decision { border: 2px solid ButtonText; }
  .locate-button { border: 2px solid ButtonText; }
  .simple-experience::before,
  .simple-experience::after { display: none; }
}

/* The Redwood Route 101 embed uses this same page and implementation. */
.is-embedded,
.is-embedded body { min-height: 0; height: auto; overflow: hidden; }
.is-embedded .widget-stage {
  min-height: 0;
  padding: 0;
}
.is-embedded .eel-app { width: 100%; }
.is-embedded .experience-bar { padding-inline: 10px; }
.is-embedded .app-brand { pointer-events: none; }
.is-embedded .embed-open {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--app-accent);
  font-size: .7rem;
  font-weight: 800;
  white-space: nowrap;
}
.is-embedded .simple-experience { box-shadow: none; }

@media (min-width: 760px) {
  .is-embedded .eel-app[data-theme="sunny"] .simple-experience { display:grid; }
  .is-embedded .simple-experience {
    display: grid;
    grid-template-columns: minmax(300px, .9fr) minmax(0, 1.35fr);
    grid-template-areas:
      "location location"
      "decision forecast"
      "decision forecast"
      "details meta"
      "algae algae";
    column-gap: 16px;
    row-gap: 8px;
    align-content: start;
    grid-auto-rows: max-content;
    padding: 18px;
    border-radius: 18px;
  }
  .is-embedded .simple-location { grid-area: location; margin-bottom: 2px; display: grid; grid-template-columns: minmax(190px, .55fr) minmax(260px, 1fr); gap: 12px; align-items: start; }
  .is-embedded .simple-location .locate-button { min-height: 46px; }
  .is-embedded .manual-location { margin-top: 0; }
  .is-embedded .simple-location-status { grid-column: 1 / -1; }
  .is-embedded .river-decision { grid-area: decision; min-height: 250px; padding: 16px 18px; }
  .is-embedded .forecast-column { grid-area: forecast; display: flex; flex-direction: column; align-self: start; gap: 8px; min-width: 0; }
  .is-embedded .quick-conditions { margin-top: 0; }
  .is-embedded .hourly-strip { height: auto; }
  .is-embedded .forecast-summary { margin-top: 0; }
  .is-embedded .condition-strip { height: auto; }
  .is-embedded .hourly-strip > div { padding: 8px 6px; }
  .is-embedded .condition-strip > div { padding: 9px 8px; }
  .is-embedded .reading-details { grid-area: details; }
  .is-embedded .simple-meta { grid-area: meta; margin-top: 0; }
  .is-embedded .algae-note { grid-area: algae; }
}

@media (max-width: 759px) {
  .is-embedded .experience-bar {
    min-height: 46px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 5px;
  }
  .is-embedded .app-brand img { width: 36px; height: 36px; }
  .is-embedded .embed-open { grid-column: 1 / -1; min-height: 32px; justify-self: end; }
  .is-embedded .theme-select { min-height: 44px; }
  .is-embedded .simple-experience { padding: 10px; border-radius: 16px; }
  .is-embedded .locate-button { min-height: 46px; }
  .is-embedded .manual-location select { min-height: 44px; }
  .is-embedded .river-decision { min-height: 210px; padding: 16px; }
  .is-embedded .river-decision h1 { font-size: clamp(1.7rem, 7vw, 2.15rem); }
  .is-embedded .decision-temperature { font-size: clamp(2.7rem, 12vw, 3.6rem); }
  .is-embedded .quick-conditions { margin-top: 10px; }
}
.widget-alert-algae { margin-top: 8px; font-size: .78rem; }
