/* public/riverwatch-theme.css */
/* RiverWatch Ure — authoritative visual theme
   Keeps the established river palette while standardising type, spacing, radii,
   elevation and secondary-page presentation across the product. */
:root{
  --rw-ink:#10231a;
  --rw-ink-soft:#41544a;
  --rw-muted:#6b7b73;
  --rw-line:rgba(16,35,26,.11);
  --rw-line-strong:rgba(16,35,26,.17);
  --rw-surface:#fff;
  --rw-surface-soft:#f5f8f5;
  --rw-canvas:#eef2ee;
  --rw-green:#153f2c;
  --rw-green-2:#2d6a4b;
  --rw-green-soft:#e7efe9;
  --rw-river:#286d82;
  --rw-gold:#b77a24;
  --rw-danger:#a6463f;
  --rw-radius-control:10px;
  --rw-radius-card:14px;
  --rw-radius-feature:18px;
  --rw-radius-shell:24px;
  --rw-shadow-float:0 16px 42px rgba(15,38,27,.10);
  --rw-content:1240px;
  /* Compatibility aliases for existing specialist/page CSS. */
  --premium-ink:var(--rw-ink);
  --premium-ink-soft:var(--rw-ink-soft);
  --premium-muted:var(--rw-muted);
  --premium-line:var(--rw-line);
  --premium-line-strong:var(--rw-line-strong);
  --premium-surface:var(--rw-surface);
  --premium-surface-soft:var(--rw-surface-soft);
  --premium-canvas:var(--rw-canvas);
  --premium-green:var(--rw-green);
  --premium-green-2:var(--rw-green-2);
  --premium-green-soft:var(--rw-green-soft);
  --premium-blue:var(--rw-river);
  --premium-gold:var(--rw-gold);
  --premium-danger:var(--rw-danger);
  --premium-radius-sm:var(--rw-radius-control);
  --premium-radius:var(--rw-radius-card);
  --premium-radius-lg:var(--rw-radius-feature);
  --premium-shadow-sm:none;
  --premium-shadow:var(--rw-shadow-float);
  --premium-content:var(--rw-content);
}

html{background:var(--rw-canvas)}
body.premium{color:var(--rw-ink);background:linear-gradient(180deg,#f8faf8 0%,var(--rw-canvas) 76%)}
body.premium .page-shell{border-radius:var(--rw-radius-shell);box-shadow:0 20px 64px rgba(15,38,27,.085)}
body.premium .site-header{min-height:68px;border-radius:var(--rw-radius-shell) var(--rw-radius-shell) 0 0;padding-inline:22px}
body.premium .brand-mark{width:38px;height:38px;border-radius:11px}
body.premium .brand-mark svg{width:22px;height:22px}
body.premium .brand-name{font-weight:720}
body.premium .brand-subtitle{font-weight:600;letter-spacing:.045em}
body.premium .site-nav>a,body.premium .nav-more>summary{min-height:36px;padding:0 11px;border-radius:var(--rw-radius-control);font-weight:650;box-shadow:none}
body.premium .site-nav>a[aria-current="page"],body.premium .nav-more-active>summary{color:var(--rw-green);background:var(--rw-green-soft);box-shadow:none}
body.premium .nav-more-menu{border-radius:var(--rw-radius-card);box-shadow:var(--rw-shadow-float)}

/* Type scale */
body.premium h1,body.premium h2,body.premium h3{color:var(--rw-ink)}
body.premium h1{font-weight:720;letter-spacing:-.045em}
body.premium h2{font-weight:700;letter-spacing:-.032em}
body.premium h3{font-weight:680;letter-spacing:-.015em}
body.premium .eyebrow{font-size:.68rem;font-weight:680;letter-spacing:.105em}
body.premium .helper-text,body.premium .lede{color:var(--rw-ink-soft)}

/* Surfaces: borders do the work; elevation is reserved for floating UI. */
body.premium .panel,
body.premium .station-card,
body.premium .weather-card,
body.premium .weather-metric-card,
body.premium .weather-insight-card,
body.premium .threshold-card,
body.premium .chart-summary-card,
body.premium .fly-card,
body.premium .guide-card,
body.premium .overflow-card,
body.premium .summary-card,
body.premium .note-card,
body.premium .section-intelligence-card,
body.premium .fm-catalog-card{
  border-color:var(--rw-line)!important;
  border-radius:var(--rw-radius-card)!important;
  background:var(--rw-surface)!important;
  box-shadow:none!important;
}
body.premium .station-card:hover,body.premium .fly-card:hover,body.premium .overflow-card:hover,body.premium .fm-catalog-card:hover{transform:none!important;box-shadow:none!important}
body.premium .button,body.premium button,body.premium .actions a,body.premium .premium-primary,body.premium .premium-secondary{border-radius:var(--rw-radius-control);box-shadow:none}
body.premium .count-pill,body.premium .confidence-pill,body.premium .condition-badge,body.premium .status,body.premium .relevance-pill{border-radius:999px}

/* Homepage: identity first, then get users to the decision quickly. */
body.premium.page-overview .simplified-hero{min-height:330px}
body.premium.page-overview .simplified-hero .premium-hero-content{max-width:700px;padding:48px clamp(26px,5vw,58px) 46px}
body.premium.page-overview .simplified-hero h1{max-width:650px;font-size:clamp(2.45rem,5vw,4rem);line-height:1;letter-spacing:-.048em}
body.premium.page-overview .simplified-hero .lede{max-width:560px;font-size:clamp(.98rem,1.35vw,1.08rem)}
body.premium.page-overview .simplified-decision{border-radius:var(--rw-radius-feature);box-shadow:var(--rw-shadow-float)}
body.premium.page-overview .home-river-summary,
body.premium.page-overview .compact-conditions,
body.premium.page-overview .stage2-intelligence-card{border-radius:var(--rw-radius-card)}

/* Secondary pages: compact editorial/application headers rather than marketing heroes. */
body.premium:not(.page-overview) .site-status-strip{min-height:34px;margin-bottom:8px;padding:6px 22px;border-radius:0;background:#f8faf8;font-size:.72rem}
body.premium:not(.page-overview) .page-hero,
body.premium:not(.page-overview) .hero:not(.premium-hero){min-height:190px;padding:34px clamp(24px,5vw,56px) 36px;justify-content:flex-end;background-position:center 52%}
body.premium:not(.page-overview) .page-hero::before,
body.premium:not(.page-overview) .hero:not(.premium-hero)::before{background:linear-gradient(90deg,rgba(5,22,15,.84),rgba(5,22,15,.58) 52%,rgba(5,22,15,.18)),linear-gradient(0deg,rgba(5,22,15,.22),transparent 55%)}
body.premium:not(.page-overview) .page-hero h1,
body.premium:not(.page-overview) .hero:not(.premium-hero) h1{max-width:760px;margin:4px 0 8px;font-size:clamp(2.05rem,4vw,2.8rem);font-weight:720;line-height:1.04;letter-spacing:-.04em}
body.premium:not(.page-overview) .page-hero .lede,
body.premium:not(.page-overview) .hero:not(.premium-hero) .lede{max-width:680px;margin:0;font-size:clamp(.94rem,1.25vw,1.04rem);line-height:1.52}
body.premium:not(.page-overview) .panel,
body.premium:not(.page-overview) .fly-main-section,
body.premium:not(.page-overview) .fly-conditions-summary{margin-top:18px;margin-bottom:18px;padding:clamp(20px,2.8vw,30px);border-radius:var(--rw-radius-feature)!important;box-shadow:none!important}
body.premium:not(.page-overview) .section-heading,body.premium:not(.page-overview) .fly-section-heading{margin-bottom:16px}
body.premium:not(.page-overview) .section-heading h2,
body.premium:not(.page-overview) .fly-section-heading h2,
body.premium:not(.page-overview) .fly-conditions-copy h2,
body.premium.page-weather .weather-section-intro h2{font-size:clamp(1.45rem,2.3vw,2rem);font-weight:700;line-height:1.12}
body.premium:not(.page-overview) .helper-text,
body.premium:not(.page-overview) .fly-section-heading p,
body.premium:not(.page-overview) .fly-refine-copy p,
body.premium:not(.page-overview) .fly-adapt-heading p{max-width:720px;color:var(--rw-muted);font-size:.88rem;line-height:1.55}

/* River Data and Weather: keep numerical information visually dominant. */
body.premium.page-river-levels .station-grid,body.premium.page-weather .weather-metric-grid,body.premium.page-weather .weather-insight-grid{gap:10px}
body.premium.page-river-levels .station-card,body.premium.page-weather .weather-metric-card,body.premium.page-weather .weather-insight-card{padding:17px}
body.premium.page-river-levels .threshold-grid{gap:0;border:1px solid var(--rw-line);border-radius:var(--rw-radius-card);overflow:hidden;background:#fff}
body.premium.page-river-levels .threshold-card{border:0!important;border-right:1px solid var(--rw-line)!important;border-radius:0!important;padding:16px!important}
body.premium.page-weather .weather-note-list{display:none}
body.premium.page-weather .weather-insight-card p,body.premium.page-weather .weather-metric-card p{font-size:.78rem;line-height:1.45}

/* Overflows remain deliberately sober. */
body.premium.page-storm-overflows #overflow-count{display:none}
body.premium.page-storm-overflows .overflow-summary,body.premium.page-storm-overflows .note-grid{gap:10px}
body.premium.page-storm-overflows .overflow-record-link:hover,body.premium.page-storm-overflows .overflow-record-link:focus-visible{transform:none;box-shadow:none}

/* Map: map first, chrome second. */
body.premium.page-catchment-map .map-panel{padding-top:18px}
body.premium.page-catchment-map .map-panel>.section-heading{display:none}
body.premium.page-catchment-map .map-toolbar{margin-top:0}
body.premium.page-catchment-map .map-utility-controls button{box-shadow:none}
body.premium.page-catchment-map .section-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
body.premium.page-catchment-map .section-summary article{padding:13px 15px;border-radius:var(--rw-radius-card);box-shadow:none}

/* Fly Guide: make the interaction read as three simple steps. */
body.premium.page-fly-guide .fly-guide-page{gap:18px}
body.premium.page-fly-guide .guide-step{margin:0 0 6px;color:var(--rw-green-2);font-size:.67rem;font-weight:720;letter-spacing:.11em;text-transform:uppercase}
body.premium.page-fly-guide .fly-conditions-summary{padding:clamp(20px,3vw,28px)}
body.premium.page-fly-guide .fly-main-section{padding-top:clamp(22px,3vw,30px)}
body.premium.page-fly-guide .fly-choice-grid{gap:12px}
body.premium.page-fly-guide .fly-refine-panel{margin-top:22px;border:1px solid var(--rw-line);border-radius:var(--rw-radius-card);background:var(--rw-surface-soft)}
body.premium.page-fly-guide .fly-observation-status[data-fly-decision-summary]{font-weight:680;color:var(--rw-green)}
body.premium.page-fly-guide .fly-compact-context{padding:20px;border:1px solid var(--rw-line);border-radius:var(--rw-radius-card);background:#f8faf8}
body.premium.page-fly-guide .fly-adapt-block{border-top:1px solid var(--rw-line)}

/* Footer is quiet product chrome, not a second hero. */
body.premium .site-footer{margin-top:clamp(34px,5vw,58px);padding-top:24px;padding-bottom:28px}

@media(max-width:900px){
  body.premium.page-river-levels .threshold-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.premium.page-catchment-map .section-summary{grid-template-columns:1fr}
}
@media(max-width:760px){
  body.premium .page-shell,body.premium .home-shell{width:min(calc(100% - 16px),var(--rw-content));margin-top:8px;border-radius:18px}
  body.premium .site-header{top:4px;min-height:62px;border-radius:18px 18px 0 0;padding-inline:16px}
  body.premium .site-nav-toggle{border-radius:var(--rw-radius-control)}
  body.premium:not(.page-overview) .page-hero,body.premium:not(.page-overview) .hero:not(.premium-hero){min-height:160px;padding:28px 20px 30px}
  body.premium:not(.page-overview) .page-hero h1,body.premium:not(.page-overview) .hero:not(.premium-hero) h1{font-size:clamp(1.9rem,8vw,2.45rem)}
  body.premium.page-overview .simplified-hero{min-height:300px}
  body.premium.page-overview .simplified-hero .premium-hero-content{padding:40px 22px 38px}
  body.premium.page-overview .simplified-hero h1{font-size:clamp(2.25rem,10vw,3.35rem)}
  body.premium.page-fly-guide .fly-refine-panel{padding:18px}
}

/* public/native-mobile-menu.css */
/* RiverWatch navigation: one compact disclosure menu on desktop, tablet and mobile. */
body.premium .desktop-site-nav {
  display: none !important;
}

body.premium .site-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-left: auto;
}

body.premium .site-app-home-link {
  display: none;
}

@media (display-mode: standalone) {
  /* A quiet, app-like home affordance for installed iOS/PWA use. Keep it
     visually secondary to the main menu rather than presenting it as a CTA. */
  body.premium a.site-app-home-link,
  body.premium a.site-app-home-link:link,
  body.premium a.site-app-home-link:visited {
    -webkit-appearance: none;
    appearance: none;
    display: inline-flex;
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: var(--premium-green, #153f2c) !important;
    background: var(--premium-surface-soft, rgba(21,63,44,.06));
    box-shadow: none;
    font-size: 0;
    line-height: 1;
    text-decoration: none !important;
    -webkit-text-fill-color: currentColor;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  body.premium .site-app-home-link svg {
    display: block;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
  }

  body.premium .site-app-home-link span {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  body.premium a.site-app-home-link:hover,
  body.premium a.site-app-home-link:focus-visible {
    color: var(--premium-green, #153f2c) !important;
    background: var(--premium-green-soft, rgba(21,63,44,.1));
    outline: 2px solid transparent;
  }

  body.premium a.site-app-home-link:active {
    transform: scale(.94);
    background: var(--premium-green-soft, rgba(21,63,44,.12));
  }
}

body.premium .mobile-site-nav-menu {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
}

body.premium .mobile-site-nav-menu > summary {
  list-style: none;
}

body.premium .mobile-site-nav-menu > summary::-webkit-details-marker {
  display: none;
}

body.premium .mobile-site-nav-menu > .site-nav-toggle {
  display: inline-flex !important;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  border: 1px solid var(--premium-line);
  border-radius: 10px;
  color: var(--premium-ink);
  background: rgba(255,255,255,.96);
  box-shadow: none;
  font: inherit;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  user-select: none;
}

body.premium .mobile-site-nav-menu > .site-nav-toggle:hover,
body.premium .mobile-site-nav-menu > .site-nav-toggle:focus-visible {
  border-color: var(--premium-line-strong);
  background: var(--premium-surface-soft);
  outline: none;
}

body.premium .site-nav-toggle-icon,
body.premium .site-nav-toggle-icon::before,
body.premium .site-nav-toggle-icon::after {
  display: block;
  width: 15px;
  height: 1.5px;
  border-radius: 999px;
  background: currentColor;
  transition: transform 160ms ease, opacity 120ms ease;
}

body.premium .site-nav-toggle-icon {
  position: relative;
  flex: 0 0 auto;
}

body.premium .site-nav-toggle-icon::before,
body.premium .site-nav-toggle-icon::after {
  content: '';
  position: absolute;
  left: 0;
}

body.premium .site-nav-toggle-icon::before { top: -4.5px; }
body.premium .site-nav-toggle-icon::after { top: 4.5px; }

body.premium .mobile-site-nav-menu[open] > .site-nav-toggle {
  color: var(--premium-green);
  border-color: rgba(21,63,44,.2);
  background: var(--premium-green-soft);
}

body.premium .mobile-site-nav-menu[open] .site-nav-toggle-icon {
  background: transparent;
}

body.premium .mobile-site-nav-menu[open] .site-nav-toggle-icon::before {
  top: 0;
  transform: rotate(45deg);
}

body.premium .mobile-site-nav-menu[open] .site-nav-toggle-icon::after {
  top: 0;
  transform: rotate(-45deg);
}

body.premium .mobile-site-nav-menu > .mobile-site-nav {
  position: absolute;
  top: calc(100% + 7px);
  right: 0;
  z-index: 1100;
  display: grid !important;
  width: 208px;
  max-width: calc(100vw - 24px);
  max-height: min(72vh, 430px);
  overflow-y: auto;
  overscroll-behavior: contain;
  gap: 1px;
  padding: 6px;
  border: 1px solid var(--premium-line);
  border-radius: 12px;
  background: rgba(255,255,255,.985);
  box-shadow: 0 14px 34px rgba(15,38,27,.13);
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-6px) scale(.985);
  transform-origin: top right;
  transition: opacity 130ms ease, transform 150ms cubic-bezier(.2,.7,.2,1), visibility 0s linear 150ms;
}

body.premium .mobile-site-nav-menu[open] > .mobile-site-nav {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  transition: opacity 130ms ease, transform 150ms cubic-bezier(.2,.7,.2,1), visibility 0s;
}

body.premium .mobile-site-nav-menu .mobile-site-nav > a {
  display: flex !important;
  min-height: 36px;
  align-items: center;
  justify-content: flex-start;
  padding: 0 10px;
  border-radius: 8px;
  color: var(--premium-ink) !important;
  background: transparent;
  font-size: .8rem;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  opacity: 1 !important;
  visibility: visible !important;
  transition: color 110ms ease, background-color 110ms ease;
}

body.premium .mobile-site-nav-menu .mobile-site-nav > a:hover,
body.premium .mobile-site-nav-menu .mobile-site-nav > a:focus-visible {
  color: var(--premium-green) !important;
  background: var(--premium-surface-soft);
  outline: none;
}

body.premium .mobile-site-nav-menu .mobile-site-nav > a[aria-current="page"] {
  color: var(--premium-green) !important;
  background: var(--premium-green-soft);
  font-weight: 700;
}

@media (max-width: 520px) {
  body.premium .brand-subtitle { display: none; }
  body.premium .site-header { padding-inline: 16px; }

  /* Use viewport positioning on narrow screens so the popover cannot be
     clipped by the header/page shell or pushed beyond an iPhone edge. */
  body.premium .mobile-site-nav-menu > .mobile-site-nav {
    position: fixed;
    top: calc(env(safe-area-inset-top, 0px) + 70px);
    right: max(12px, env(safe-area-inset-right, 0px));
    left: auto;
    width: min(196px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    max-height: min(calc(100dvh - 88px), 430px);
    z-index: 5000;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.premium .site-app-home-link,
  body.premium .mobile-site-nav-menu > .site-nav-toggle,
  body.premium .site-nav-toggle-icon,
  body.premium .site-nav-toggle-icon::before,
  body.premium .site-nav-toggle-icon::after,
  body.premium .mobile-site-nav-menu > .mobile-site-nav,
  body.premium .mobile-site-nav-menu .mobile-site-nav > a {
    transition: none !important;
    transform: none !important;
  }
}

/* public/offline-status.css */
.offline-status-banner{display:flex;align-items:center;justify-content:center;gap:.45rem;margin:10px 0 0;padding:.55rem .8rem;border:1px solid rgba(143,104,52,.22);border-radius:10px;background:#f5ecdc;color:#654c2d;font-size:.78rem;font-weight:700;line-height:1.3;text-align:center}
.offline-status-banner::before{content:'';width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:#a8844f}
.offline-status-banner[hidden]{display:none!important}
@media(max-width:620px){.offline-status-banner{margin-top:8px;padding:.48rem .65rem;border-radius:8px;font-size:.74rem}}

/* public/cleanup-polish.css */
/* Final, intentionally small layout layer for the 2026 cleanup pass. */
body.premium .simplified-decision{grid-template-columns:1fr!important;max-width:none}
body.premium .simplified-decision .decision-copy{max-width:800px}
body.premium .decision-explainers{max-width:800px}

body.premium .fly-refine-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:0}
body.premium .fly-refine-panel>summary::-webkit-details-marker{display:none}
body.premium .fly-refine-panel>summary span{color:var(--premium-muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
body.premium .fly-refine-panel>summary:after{content:'+';color:var(--premium-green);font-size:1.15rem;font-weight:500}
body.premium .fly-refine-panel[open]>summary:after{content:'−'}
body.premium .fly-refine-body{margin-top:16px;padding-top:16px;border-top:1px solid var(--premium-line)}
body.premium .fly-refine-body>p{margin:0 0 14px;color:var(--premium-muted);font-size:.82rem}
body.premium .fly-overflow-warning{margin:0 0 14px;padding:10px 12px;border:1px solid rgba(168,132,79,.25);border-radius:10px;background:#f7f0e4;color:#6a5030;font-size:.8rem;font-weight:650;line-height:1.45}

.page-weather .weather-metric-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.page-weather .weather-insight-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.page-weather .weather-metric-card.is-wind strong{font-size:1.08rem;line-height:1.25}

.fm-catalog-view-toggle{display:flex;gap:6px;margin:12px 0 4px}
.fm-catalog-view-toggle button{appearance:none;border:1px solid var(--premium-line);border-radius:999px;background:#fff;color:var(--premium-ink-soft);padding:7px 11px;font:inherit;font-size:.76rem;font-weight:700;cursor:pointer}
.fm-catalog-view-toggle button[aria-pressed="true"]{border-color:rgba(21,63,44,.22);background:var(--premium-green-soft);color:var(--premium-green)}

.page-storm-overflows .overflow-glance{grid-template-columns:repeat(2,minmax(0,1fr))}

@media(max-width:760px){
  .page-weather .weather-metric-grid-compact,.page-weather .weather-insight-grid-compact{grid-template-columns:1fr}
  body.premium .fly-refine-panel{padding:16px 17px}
}

/* public/pwa-update-banner.css */
.pwa-update-banner{position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));z-index:9999;display:flex;align-items:center;gap:1rem;width:min(calc(100% - 2rem),44rem);padding:.85rem .95rem;transform:translateX(-50%);border:1px solid rgba(21,63,44,.18);border-radius:16px;background:#fff;box-shadow:0 12px 34px rgba(19,48,35,.2);color:#173e2d}
.pwa-update-banner__copy{display:grid;gap:.18rem;min-width:0;flex:1}
.pwa-update-banner__copy strong{font-size:.92rem}
.pwa-update-banner__copy span{color:#5b6861;font-size:.82rem;line-height:1.42}
.pwa-update-banner__button{appearance:none;border:0;border-radius:999px;background:#153f2c;color:#fff;padding:.58rem .85rem;font:inherit;font-size:.84rem;font-weight:800;cursor:pointer;white-space:nowrap}
.pwa-update-banner__button:focus-visible,.pwa-install-banner__dismiss:focus-visible{outline:3px solid rgba(21,63,44,.25);outline-offset:2px}
.pwa-install-banner__dismiss{appearance:none;border:0;background:transparent;color:#66736c;width:2rem;height:2rem;padding:0;font:inherit;font-size:1.25rem;line-height:1;cursor:pointer;border-radius:999px;flex:0 0 auto}
.pwa-install-banner .pwa-update-banner__copy{max-width:38rem}
@media(max-width:620px){.pwa-update-banner{align-items:flex-start;gap:.65rem;border-radius:14px;padding:.8rem}.pwa-update-banner__copy span{font-size:.8rem}.pwa-update-banner__button{flex:0 0 auto}.pwa-install-banner__dismiss{width:1.8rem;height:1.8rem}}
@media (display-mode: standalone) and (max-width:760px){.pwa-update-banner{bottom:calc(78px + env(safe-area-inset-bottom,0px));width:min(calc(100% - 24px),44rem)}}

/* public/ios-app-polish.css */
/* Standalone iOS/PWA polish. Browser and desktop layouts remain unchanged. */
.ios-bottom-nav,.ios-more-sheet{display:none}

@media (display-mode: standalone) and (max-width: 760px){
  html{background:#eef2ee}
  body.premium{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px));background:#eef2ee}
  body.premium .page-shell,body.premium .home-shell{margin-top:max(6px,env(safe-area-inset-top,0px));margin-bottom:8px}
  body.premium .site-header{min-height:56px;padding-inline:14px}
  body.premium .brand-mark{width:34px;height:34px;border-radius:10px}
  body.premium .brand-mark svg{width:20px;height:20px}
  body.premium .brand-name{font-size:.96rem;letter-spacing:-.02em}
  body.premium .brand-subtitle{display:none}

  /* The installed app uses the bottom navigation as its primary navigation.
     Keep only Back + Refresh in the header to avoid duplicate navigation. */
  body.premium .mobile-site-nav-menu{display:none!important}

  /* The header overlays the photographic hero in the standalone shell. Give
     homepage copy enough top clearance so the title never sits underneath it. */
  body.premium.page-overview .simplified-hero .premium-hero-content{
    padding-top:112px!important;
  }
  body.premium.page-overview .simplified-hero{
    min-height:390px;
  }

  body.premium:not(.page-overview) .site-status-strip{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:'primary time' 'secondary secondary';
    gap:3px 10px;
    min-height:0;
    margin:0 0 8px;
    padding:9px 16px 10px;
    border-top:1px solid var(--rw-line);
    border-bottom:1px solid var(--rw-line);
    border-radius:0;
    background:#f8faf8;
    line-height:1.3;
  }
  body.premium .site-status-primary{grid-area:primary;display:flex;align-items:center;gap:6px;min-width:0}
  body.premium .site-status-label{display:none}
  body.premium .site-status-copy{display:block;overflow:hidden;color:var(--rw-ink);font-size:.77rem;font-weight:680;text-overflow:ellipsis;white-space:nowrap}
  body.premium .site-status-secondary{grid-area:secondary;color:var(--rw-muted);font-size:.7rem;font-weight:600}
  body.premium .site-status-time{grid-area:time;align-self:center;color:var(--rw-muted);font-size:.68rem;font-weight:650;white-space:nowrap}

  .ios-bottom-nav{
    position:fixed;
    z-index:6000;
    right:0;
    bottom:0;
    left:0;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding:7px 8px calc(7px + env(safe-area-inset-bottom,0px));
    border-top:1px solid rgba(16,35,26,.11);
    background:rgba(250,252,250,.96);
    -webkit-backdrop-filter:blur(18px) saturate(150%);
    backdrop-filter:blur(18px) saturate(150%);
  }
  .ios-bottom-nav a,.ios-bottom-nav button{
    -webkit-appearance:none;
    appearance:none;
    display:flex;
    min-width:0;
    min-height:50px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    margin:0;
    padding:0;
    border:0;
    border-radius:12px;
    color:var(--rw-muted);
    background:transparent;
    font:inherit;
    text-decoration:none;
    -webkit-tap-highlight-color:transparent;
  }
  .ios-bottom-nav svg{width:20px;height:20px}
  .ios-bottom-nav span{font-size:.62rem;font-weight:700;line-height:1}
  .ios-bottom-nav [aria-current='page']{color:var(--rw-green);background:var(--rw-green-soft)}
  .ios-bottom-nav [data-ios-more][aria-expanded='true']{color:var(--rw-green);background:var(--rw-green-soft)}

  .ios-more-sheet:not([hidden]){position:fixed;z-index:7000;inset:0;display:block}
  .ios-more-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(8,20,14,.28);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .ios-more-panel{position:absolute;right:0;bottom:0;left:0;padding:10px 14px calc(18px + env(safe-area-inset-bottom,0px));border-radius:22px 22px 0 0;background:#fff;box-shadow:0 -18px 48px rgba(15,38,27,.18)}
  .ios-more-handle{width:38px;height:4px;margin:0 auto 12px;border-radius:999px;background:rgba(16,35,26,.18)}
  .ios-more-links{display:grid;gap:4px}
  .ios-more-links a{display:flex;min-height:48px;align-items:center;padding:0 15px;border-radius:12px;color:var(--rw-ink);font-size:.92rem;font-weight:680;text-decoration:none}
  .ios-more-links a:active{background:var(--rw-green-soft);color:var(--rw-green)}
  body.ios-more-open{overflow:hidden}

  body.premium .offline-status-banner{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));border-radius:12px}
  body.premium .site-footer{padding-bottom:18px}
}

@media (display-mode: standalone) and (max-width:390px){
  body.premium .brand-name{font-size:.9rem}
  body.premium .site-header-actions{gap:5px!important}
}
