:root {
  --burgundy: #9d2235;
  --red: #c7192f;
  --orange: #e68619;
  --green: #477a35;
  --olive: #6a785f;
  --olive-dark: #34422f;
  --ink: #373f35;
  --muted: #6f756b;
  --line: #dde0d6;
  --surface: #ffffff;
  --background: #f5f6f2;
  --warm: #fff8e8;
  --content-link: #844754;
  --content-link-strong: #9d2235;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--background);
  font-family: Verdana, Arial, sans-serif;
  line-height: 1.55;
}

a { color: inherit; }
img { max-width: 100%; }

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 2000;
  padding: 10px 14px;
  color: #fff;
  background: #1e261d;
  transform: translateY(-140%);
}

.skip-link:focus { transform: translateY(0); }

.site-frame { min-height: 100vh; display: flex; flex-direction: column; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 1100;
  min-height: 68px;
  padding: 6px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  color: #fff;
  background: var(--burgundy);
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
}

.topbar a { display: flex; align-items: center; }
.forecaster-logo, .affm-logo { display: block; width: auto; object-fit: contain; background: rgba(255,255,255,.96); padding: 3px 8px; }
.forecaster-logo { height: 56px; max-width: min(560px, 56vw); }
.affm-logo { height: 56px; max-width: min(260px, 24vw); }
.header-tagline { color: #f5f6f2; font-size: clamp(16px, 2vw, 28px); font-weight: 700; white-space: nowrap; }
.topbar-spacer { flex: 1; min-width: 8px; }

.main-nav { min-height: 65px; background: #fff; border-bottom: 1px solid var(--line); }
.main-nav-inner { min-height: 65px; display: flex; justify-content: center; align-items: stretch; overflow-x: auto; }
.main-nav a {
  min-height: 65px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  color: #484848;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .02em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.main-nav a:hover, .main-nav a:focus-visible, .main-nav a.active { color: #777; box-shadow: inset 0 -3px 0 var(--red); outline: none; }

.page-shell { flex: 1; padding: 24px; background: var(--background); }
.page-card { max-width: 1040px; margin: 0 auto; padding: 30px; background: rgba(255,255,255,.97); border: 1px solid var(--line); box-shadow: 0 1px 8px rgba(0,0,0,.08); }
.page-shell.page-shell-full-bleed { padding: 0; background: #fff; }
.page-card.page-card-full-bleed {
  width: 100%;
  max-width: none;
  min-height: calc(100vh - 133px);
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
}
.forecast-map-shiny-host,
.forecast-map-shiny-module {
  width: 100%;
  min-height: calc(100vh - 133px);
  background: #fff;
}

h1, h2, h3 { color: var(--olive-dark); line-height: 1.25; }
h1 { margin: 0 0 14px; font-size: clamp(28px, 4vw, 40px); }
h2 { margin: 0 0 12px; font-size: clamp(21px, 2.5vw, 28px); }
h3 { margin: 0 0 8px; font-size: 17px; }
p, li, td, th { font-size: 14px; }
.lead { max-width: 820px; color: #3f4b37; font-size: 17px; line-height: 1.65; }
.eyebrow, .card-kicker, .section-number { margin: 0 0 8px; color: var(--burgundy); font-size: 11px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }

.page-title-with-art {
  position: relative;
  min-width: 0;
  padding-right: 64px;
}
.page-title-corner-art {
  position: absolute;
  top: -8px;
  right: 0;
  width: 48px;
  height: 58px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: visible;
  pointer-events: none;
}
.page-title-corner-art img {
  width: auto;
  height: 58px;
  max-width: 48px;
  display: block;
  object-fit: contain;
}

.home-hero { padding-bottom: 28px; border-bottom: 5px solid var(--burgundy); }
.home-hero-layout { display: grid; grid-template-columns: minmax(0, 1fr) 285px; gap: 30px; align-items: start; }
.home-main-column { min-width: 0; }
.home-introduction { max-width: 820px; }
.home-introduction::after { content: ""; display: block; clear: both; }
.home-introduction p { margin: 0 0 16px; color: #3f4b37; font-size: 14px; line-height: 1.65; text-align: justify; text-justify: inter-word; hyphens: auto; }
.home-introduction p:last-child { margin-bottom: 0; }
.home-introduction a { color: #3f5e36; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.home-air-temp-placeholder {
  float: left;
  width: 180px;
  height: 180px;
  margin: 4px 18px 10px 0;
  padding: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--olive-dark);
  text-align: center;
  background:
    repeating-linear-gradient(
      135deg,
      rgba(106,120,95,.07) 0,
      rgba(106,120,95,.07) 10px,
      rgba(255,255,255,.72) 10px,
      rgba(255,255,255,.72) 20px
    ),
    #f8f9f6;
  border: 1px dashed #9ca694;
}
.home-air-temp-placeholder span {
  color: var(--burgundy);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.home-air-temp-placeholder strong {
  font-size: 18px;
  line-height: 1.15;
}
.home-air-temp-placeholder small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}
.home-alert-column { display: grid; gap: 14px; background: #fff; }
.alert-status-block { padding: 18px; border: 1px solid var(--line); border-top: 5px solid var(--burgundy); background: #f8f9f6; }
.home-alert-column h2 { margin-bottom: 14px; font-size: 19px; }
.shiny-status-slot { min-height: 118px; padding: 16px 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; border: 1px dashed #9ca694; background: #fff; }
.shiny-status-slot span { color: var(--burgundy); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.shiny-status-slot strong { color: var(--olive-dark); font-size: 17px; }
.shiny-status-slot small { color: var(--muted); font-size: 10px; line-height: 1.35; }
.alert-thresholds { margin: 14px 0; padding: 0; list-style: none; }
.alert-thresholds li { position: relative; padding: 8px 0 8px 19px; border-bottom: 1px solid var(--line); }
.alert-thresholds li::before { content: ""; position: absolute; top: 13px; left: 0; width: 10px; height: 10px; border-radius: 50%; background: #777; }
.alert-thresholds li.low::before { background: var(--green); }
.alert-thresholds li.medium::before { background: var(--orange); }
.alert-thresholds li.high::before { background: var(--red); }
.alert-thresholds li { display: flex; align-items: baseline; gap: 4px; white-space: nowrap; }
.alert-thresholds strong { color: var(--olive-dark); font-size: 12px; }
.alert-thresholds span { color: var(--muted); font-size: 11px; line-height: 1.4; }
.alert-action { width: 100%; }
.alert-reporting-card { padding: 14px; border: 1px solid #eadfbe; border-left: 4px solid var(--orange); background: var(--warm); }
.alert-reporting-card h3 { font-size: 15px; text-align: justify; text-justify: inter-word; }
.alert-reporting-card p { margin: 0 0 10px; font-size: 11px; line-height: 1.5; text-align: justify; text-justify: inter-word; }
.figure-panel figcaption, .partner-strip figcaption { margin-top: 8px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.figure-panel figcaption { text-align: justify; text-justify: inter-word; }

.action-row { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 0; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 14px; color: var(--olive-dark); background: #fff; border: 1px solid #a8b09f; font: inherit; font-size: 13px; font-weight: 700; text-decoration: none; cursor: pointer; }
.button:hover, .button:focus-visible { border-color: var(--olive-dark); box-shadow: 0 0 0 2px rgba(106,120,95,.16); outline: none; }
.button.primary { color: #fff; background: var(--olive); border-color: #56634d; }
.button:disabled, .disabled-link { cursor: not-allowed; opacity: .58; pointer-events: none; }
.text-link { color: #3f5e36; font-size: 13px; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 3px; }

/* Ordinary links embedded in page copy. Interface links and controls keep their component styling. */
.page-card :where(p, li, figcaption, td, dd) a:not(.button):not(.text-link):not(.link-card):not(.background-contents-link) {
  color: var(--content-link);
  text-decoration-line: underline;
  text-decoration-color: rgba(132, 71, 84, .5);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.page-card :where(p, li, figcaption, td, dd) a:not(.button):not(.text-link):not(.link-card):not(.background-contents-link):hover,
.page-card :where(p, li, figcaption, td, dd) a:not(.button):not(.text-link):not(.link-card):not(.background-contents-link):focus-visible {
  color: var(--content-link-strong);
  text-decoration-color: currentColor;
  text-decoration-thickness: 2px;
}
.page-card :where(p, li, figcaption, td, dd) a:not(.button):not(.text-link):not(.link-card):not(.background-contents-link):focus-visible {
  border-radius: 1px;
  outline: 2px solid rgba(157, 34, 53, .42);
  outline-offset: 2px;
}

.section-block, .content-section { padding: 30px 0; border-bottom: 5px solid var(--burgundy); scroll-margin-top: 150px; }
.section-block:last-child, .content-section:last-child { border-bottom: 0; }
.section-heading-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.status-pill { display: inline-flex; padding: 5px 9px; border: 1px solid var(--line); color: var(--muted); background: #f5f6f2; font-size: 11px; font-weight: 800; text-transform: uppercase; white-space: nowrap; }

.callout, .caution-note, .content-status { padding: 12px 14px; border-left: 4px solid var(--orange); background: var(--warm); }
.callout { margin: 18px 0; font-size: 14px; }
.callout.info { border-left-color: #4f7f91; background: #eef7fa; }
.callout.critical { border-left-color: var(--burgundy); background: #fbf0f2; }
.content-status { display: inline-block; margin: 12px 0; color: #6f5d31; font-size: 11px; }
.caution-note { margin-top: 18px; }

.reporting-introduction { margin-bottom: 16px; }
.reporting-pathways { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 22px; }
.reporting-pathway-card { min-width: 0; min-height: 300px; padding: 24px; display: flex; flex-direction: column; border: 1px solid #cfd4c8; border-top: 4px solid var(--burgundy); background: #fff; box-shadow: 0 4px 14px rgba(52,66,47,.08); }
.reporting-pathway-card h2 { margin-bottom: 12px; font-size: clamp(22px, 2.5vw, 28px); }
.reporting-pathway-card > p:not(.card-kicker) { margin: 0 0 22px; color: #4d5849; line-height: 1.65; }
.reporting-action-button { width: 100%; min-height: 48px; margin-top: auto; padding: 12px 16px; color: #fff; background: var(--burgundy); border-color: #7f192a; text-align: center; text-transform: uppercase; }
.reporting-action-button:hover, .reporting-action-button:focus-visible { color: #fff; background: #861b2d; border-color: #6d1423; box-shadow: 0 0 0 3px rgba(157,34,53,.22); }

.risk-legend { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin: 18px 0; }
.alert-status-heading { margin: 22px 0 0; font-size: clamp(20px, 2.4vw, 25px); }
.camps-alert-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(310px, .85fr);
  gap: 24px;
  align-items: start;
  margin-top: 10px;
  padding-bottom: 22px;
  border-bottom: 5px solid var(--burgundy);
}
.camps-alert-introduction { min-width: 0; }
.camps-alert-lead {
  width: 100%;
  max-width: none;
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  text-align: justify;
  text-justify: inter-word;
}
.camps-alert-guidance {
  margin: 16px 0 0;
  font-size: 14px;
  line-height: 1.65;
  text-align: justify;
  text-justify: inter-word;
}
.camps-alert-status-section {
  margin: 0;
  padding: 14px;
}
.camps-alert-status-section .alert-status-heading {
  margin: 0 0 10px;
  font-size: 19px;
}
.camps-alert-status-section .risk-legend {
  grid-template-columns: 1fr;
  gap: 6px;
  margin: 0;
}
.camps-alert-status-section .risk-item { min-height: 54px; padding: 8px 10px; }
.camps-alert-status-section .risk-dot { width: 14px; height: 14px; }
.risk-item { min-height: 74px; padding: 12px; display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); background: #fff; }
.risk-item-copy { min-width: 0; }
.risk-dot { flex: 0 0 auto; width: 18px; height: 18px; border-radius: 50%; background: #777; box-shadow: 0 0 0 4px rgba(0,0,0,.05); }
.risk-item.low .risk-dot { background: var(--green); }
.risk-item.medium .risk-dot { background: var(--orange); }
.risk-item.high .risk-dot { background: var(--red); }
.risk-item strong, .risk-item span { display: block; }
.risk-item strong { color: var(--olive-dark); font-size: 13px; text-transform: uppercase; }
.risk-item span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.risk-count-module { flex: 0 0 auto; min-width: 72px; margin-left: auto; padding: 6px 8px; border: 1px dashed #a8b09f; background: #f5f6f2; text-align: center; }
.risk-count-module small, .risk-count-module b { display: block; }
.risk-count-module small { color: var(--burgundy); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.risk-count-module b { margin-top: 2px; color: var(--olive-dark); font-size: 12px; white-space: nowrap; }
.risk-legend.compact .risk-item { min-height: 62px; }

.card-grid { display: grid; gap: 14px; margin-top: 16px; }
.four-up { grid-template-columns: repeat(4, minmax(0,1fr)); }
.five-up { grid-template-columns: repeat(5, minmax(0,1fr)); }
.five-up .link-card p { font-size: 11px; line-height: 1.5; }
.three-up { grid-template-columns: repeat(3, minmax(0,1fr)); }
.two-up { grid-template-columns: repeat(2, minmax(0,1fr)); }
.info-card { padding: 17px; border: 1px solid var(--line); background: #fff; }
.info-card p { margin: 0; color: #4d5849; }
.link-card { text-decoration: none; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.link-card:hover, .link-card:focus-visible { transform: translateY(-2px); border-color: #9ca694; box-shadow: 0 5px 14px rgba(52,66,47,.1); outline: none; }
.link-card .text-link { display: inline-block; margin-top: 13px; }

.feature-split { display: grid; grid-template-columns: 1.5fr 1fr; gap: 24px; }
.feature-split > div:first-child > p:not(.eyebrow) { text-align: justify; text-justify: inter-word; }
.news-placeholder { padding: 20px; border: 1px dashed #a8b09f; background: #f8f9f6; }

.reserved-surface { min-height: 300px; margin: 24px 0; padding: 32px; display: grid; grid-template-columns: 120px 1fr; gap: 28px; align-items: center; border: 1px dashed #a8b09f; background: linear-gradient(135deg, #fafbf8, #f1f3ed); }
.reserved-icon { width: 110px; height: 110px; display: grid; place-items: center; color: #697064; border: 2px solid #a8b09f; background: repeating-linear-gradient(45deg,#eef0ea,#eef0ea 8px,#f8f9f6 8px,#f8f9f6 16px); font-size: 20px; font-weight: 800; letter-spacing: .12em; }
.check-list, .update-list { padding-left: 0; list-style: none; }
.check-list li, .update-list li { position: relative; padding: 5px 0 5px 25px; }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: 800; }
.update-list li::before { content: "○"; position: absolute; left: 2px; color: var(--orange); font-weight: 800; }

.table-placeholder { min-width: 0; max-width: 100%; margin: 22px 0; padding: 18px; border: 1px solid var(--line); }
.alert-table-heading { align-items: center; margin-bottom: 12px; }
.alert-table-heading h2 { margin-bottom: 0; }
.heading-interpretation-link {
  color: var(--content-link);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  text-decoration-line: underline;
  text-decoration-color: rgba(132, 71, 84, .5);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.heading-interpretation-link:hover,
.heading-interpretation-link:focus-visible {
  color: var(--content-link-strong);
  text-decoration-color: currentColor;
  text-decoration-thickness: 2px;
}
.heading-interpretation-link:focus-visible {
  border-radius: 1px;
  outline: 2px solid rgba(157, 34, 53, .42);
  outline-offset: 2px;
}
.alert-table-download { flex: 0 0 auto; }
.camp-prioritisation-guide {
  margin-top: 22px;
  padding: 22px;
  scroll-margin-top: 150px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--burgundy);
  background: #f8f9f6;
}
.camp-prioritisation-guide h2 {
  margin-bottom: 14px;
  font-size: clamp(21px, 2.4vw, 27px);
}
.camp-prioritisation-guide p { margin: 0 0 14px; line-height: 1.65; }
.camp-prioritisation-guide p:last-child { margin-bottom: 0; }
.camp-prioritisation-guide ol { margin: 0 0 14px; padding-left: 26px; list-style: decimal outside; }
.camp-prioritisation-guide li { padding: 3px 0 7px 4px; line-height: 1.65; }
.camp-prioritisation-guide li::marker { font-weight: 800; }
.table-scroll {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  contain: inline-size paint;
}
table { width: 100%; min-width: 760px; border-collapse: collapse; background: #fff; }
.alert-camps-table { min-width: 1420px; }
.alert-camps-table th:nth-child(2) { min-width: 190px; }
.alert-camps-table th:nth-child(3), .alert-camps-table th:nth-child(5), .alert-camps-table th:nth-child(6), .alert-camps-table th:nth-child(7) { min-width: 150px; }
.alert-camps-table th:last-child { min-width: 210px; }
th, td { padding: 10px 11px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--olive-dark); background: #f0f2ec; font-size: 11px; text-transform: uppercase; }
tbody tr:nth-child(even) { background: #fafbf9; }

.topic-index { margin: 24px 0 6px; padding: 20px; border: 1px solid var(--line); background: #f8f9f6; }
.topic-index h2 { font-size: 17px; }
.topic-index div { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 5px 20px; }
.topic-index a { color: #43543d; font-size: 12px; text-underline-offset: 3px; }
.content-section > p { max-width: 850px; }
.about-page .about-overview-copy > .lead,
.about-page .content-section > p,
.about-page .info-card p,
.about-page .funding-copy p,
.about-page .callout {
  max-width: none;
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.65;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  overflow-wrap: break-word;
  word-spacing: normal;
}
.about-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  align-items: stretch;
  gap: 28px;
  margin-top: 4px;
  padding-bottom: 30px;
  border-bottom: 5px solid var(--burgundy);
}
.about-overview-copy { min-width: 0; }
.about-overview-copy > .content-section:first-of-type { border-top: 5px solid var(--burgundy); border-bottom: 0; }
.about-overview-figure {
  min-height: 260px;
  margin: 0 0 30px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #f5f6f2;
}
.about-overview-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}
.about-page .content-section,
.about-page .card-grid,
.about-page .info-card,
.about-page .funding-copy,
.about-page .partner-strip {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.about-page .info-card h3 a {
  color: inherit;
  text-decoration-color: #8b9685;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.about-page .info-card h3 a:hover {
  color: var(--green);
  text-decoration-color: currentColor;
}
.about-page .info-card p { max-width: none; }
.about-page .funding-copy p:last-child,
.about-page .info-card p:last-of-type { margin-bottom: 0; }
.funding-section { position: relative; }
.funding-copy { padding-right: 100px; }
.funding-icon {
  position: absolute;
  top: auto;
  bottom: 30px;
  right: 14px;
  width: 72px;
  height: 72px;
  transform: none;
}
.funding-icon img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}
.compact-topic-index div { grid-template-columns: repeat(3, minmax(0,1fr)); }
.compact-topic-index { display: flex; align-items: center; gap: 24px; padding: 12px 16px; overflow-x: auto; white-space: nowrap; }
.compact-topic-index h2 { flex: 0 0 auto; margin: 0; font-size: 14px; }
.compact-topic-index div { display: flex; flex: 1 0 auto; align-items: center; justify-content: space-between; gap: 28px; }
.background-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, 1fr);
  align-items: start;
  gap: 34px;
}
.background-page-title h1 { margin: 0; }
.background-contents-panel {
  width: 100%;
  justify-self: end;
  padding: 15px 17px 12px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--burgundy);
  background: #f8f9f6;
  text-align: left;
}
.background-contents-label {
  margin: 0 0 7px;
  color: var(--burgundy);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.background-contents-panel ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
.background-contents-panel li + li { border-top: 1px solid var(--line); }
.background-contents-panel a {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
  padding: 7px 3px;
  color: #3f5238;
  font-size: 12px;
  line-height: 1.35;
  text-decoration: none;
}
.background-contents-panel a span {
  color: var(--burgundy);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
}
.background-contents-panel a:hover {
  color: var(--burgundy);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.background-contents-panel a:focus-visible {
  color: var(--burgundy);
  background: #fff;
  outline: 2px solid var(--burgundy);
  outline-offset: 2px;
}
.legacy-background-section { margin-top: 24px; padding: 26px; border: 1px solid var(--line); border-top: 5px solid var(--burgundy); background: #fff; scroll-margin-top: 150px; }
.legacy-background-section + .legacy-background-section { margin-top: 30px; }
.legacy-background-section > p { max-width: 860px; }
.long-form-copy p, .verbatim-resource-list p { margin: 0 0 16px; color: #3f4b37; font-size: 14px; line-height: 1.65; text-align: justify; text-justify: inter-word; hyphens: auto; }
.long-form-copy p:last-child, .verbatim-resource-list p:last-child { margin-bottom: 0; }
.long-form-copy a, .verbatim-resource-list a { color: #3f5e36; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.verbatim-resource-list h3 { margin-top: 24px; }
.verbatim-resource-list h3:first-child { margin-top: 0; }
.useful-link-list { margin: 0 0 16px; padding-left: 24px; color: #3f4b37; list-style: disc outside; }
.useful-link-list li { margin-bottom: 10px; font-size: 14px; line-height: 1.65; }
.useful-link-list li:last-child { margin-bottom: 0; }
.background-shiny-slot { width: 100%; min-height: 0; aspect-ratio: 1 / 1; margin: 0; padding: 22px; grid-template-columns: 1fr; align-content: center; justify-items: center; text-align: center; }
.background-shiny-slot .reserved-icon { margin: 0 auto 14px; }
.forecaster-full-width-copy { width: 100%; margin-top: 24px; }
.resource-group { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.resource-group:first-of-type { margin-top: 8px; padding-top: 0; border-top: 0; }
.section-number { float: right; color: #9ca196; font-size: 13px; }
.two-column-copy { display: grid; grid-template-columns: 1.15fr .85fr; gap: 28px; align-items: start; }
.figure-panel { margin: 0; padding: 12px; border: 1px solid var(--line); background: #fafbf9; }
.figure-panel img { display: block; max-height: 460px; margin: 0 auto; object-fit: contain; }
.numbered-list { padding-left: 20px; }
.numbered-list li { margin: 8px 0; padding-left: 5px; }

.workflow-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; margin: 18px 0; }
.workflow-grid > div { padding: 14px; border: 1px solid var(--line); background: #fafbf9; }
.workflow-grid span { width: 28px; height: 28px; display: grid; place-items: center; margin-bottom: 12px; color: #fff; background: var(--olive); border-radius: 50%; font-size: 12px; font-weight: 800; }
.workflow-grid h3 { font-size: 14px; }
.workflow-grid p { margin: 0; font-size: 12px; }

.accordion-list details { border-top: 1px solid var(--line); }
.accordion-list details:last-child { border-bottom: 1px solid var(--line); }
.accordion-list summary { padding: 15px 36px 15px 4px; color: var(--olive-dark); font-size: 14px; font-weight: 700; cursor: pointer; }
.accordion-list details p { margin: 0 0 15px; padding-right: 36px; }
.resource-list li { margin: 9px 0; }
.resource-list a { color: #3d5d35; text-underline-offset: 3px; }

.partner-strip { margin: 18px 0; padding: 18px; border: 1px solid var(--line); background: #fff; }
.partner-strip img { display: block; width: 100%; height: auto; }
.credit-list { margin: 18px 0; }
.credit-list > div { display: grid; grid-template-columns: 160px 1fr; gap: 18px; padding: 10px 0; border-top: 1px solid var(--line); }
.credit-list > div:last-child { border-bottom: 1px solid var(--line); }
.credit-list dt { color: var(--olive-dark); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.credit-list dd { margin: 0; font-size: 13px; }
.contact-panel { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px; border: 1px solid var(--line); background: #f8f9f6; }
.contact-panel span { display: block; color: var(--muted); font-size: 12px; }

.ia-diagram { margin: 22px 0; text-align: center; }
.ia-root { width: min(360px, 100%); margin: 0 auto; padding: 15px; color: #fff; background: var(--burgundy); font-weight: 800; letter-spacing: .08em; }
.ia-connector { width: 2px; height: 30px; margin: 0 auto; background: #9ea598; }
.ia-branches { position: relative; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; }
.ia-branches::before { content: ""; position: absolute; top: -16px; left: 12.5%; right: 12.5%; height: 1px; background: #9ea598; }
.ia-branches > div { position: relative; min-height: 95px; padding: 17px 10px; border: 1px solid var(--line); background: #fff; }
.ia-branches > div::before { content: ""; position: absolute; top: -16px; left: 50%; width: 1px; height: 16px; background: #9ea598; }
.ia-branches strong, .ia-branches span { display: block; }
.ia-branches strong { color: var(--olive-dark); font-size: 12px; }
.ia-branches span { margin-top: 8px; color: var(--muted); font-size: 11px; }
.diagram-note { color: var(--muted); text-align: center; }

.site-footer {
  padding: 22px max(22px, calc((100vw - 1440px)/2)) 20px;
  color: #fff;
  background: var(--burgundy);
  border-top: 6px solid #791627;
}
.site-footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 700px) minmax(360px, 460px);
  gap: 32px;
  align-items: start;
  justify-content: center;
}
.footer-information-panel {
  min-width: 0;
  height: 344px;
  padding: 18px 22px;
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(220px, 240px);
  gap: 16px;
  align-items: start;
  color: var(--ink);
  background: #fffaf7;
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: inset 0 0 0 1px rgba(157,34,53,.1);
}
.footer-address h2, .footer-address h3 { color: var(--burgundy); }
.footer-address h2 { margin-bottom: 10px; font-size: 21px; }
.footer-address h2 a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.footer-address address { font-size: 13px; font-style: normal; line-height: 1.7; }
.footer-address h3 { margin: 20px 0 5px; font-size: 16px; }
.footer-donate-link {
  color: #5e1421;
  font-size: 13px;
  font-weight: 700;
  overflow-wrap: anywhere;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.footer-forecaster-logo {
  width: 100%;
  max-width: 240px;
  height: auto;
  margin-top: 0;
  align-self: center;
  justify-self: end;
  object-fit: contain;
}
.footer-contact-panel {
  min-width: 0;
  padding: 4px 0 0;
  display: flex;
  flex-direction: column;
}
.footer-contact-panel h2 { margin-bottom: 12px; color: #fff; font-size: 24px; }
.footer-contact-form { display: grid; gap: 10px; }
.footer-contact-form label {
  display: grid;
  gap: 6px;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
}
.footer-name-fields {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1fr);
  gap: 20px;
}
.footer-contact-form input,
.footer-contact-form textarea {
  width: 100%;
  min-height: 40px;
  padding: 10px 12px;
  color: #262b25;
  background: #fff;
  border: 2px solid #e6cbd0;
  border-radius: 0;
  font: inherit;
  font-size: 16px;
}
.footer-contact-form textarea {
  height: 90px;
  min-height: 90px;
  resize: vertical;
}
.footer-contact-form input:focus-visible,
.footer-contact-form textarea:focus-visible,
.footer-submit-button:focus-visible,
.site-footer a:focus-visible {
  outline: 3px solid #ffd56a;
  outline-offset: 3px;
}
.footer-submit-button {
  min-width: 124px;
  min-height: 40px;
  padding: 8px 22px;
  justify-self: end;
  color: var(--burgundy);
  background: #fff;
  border: 2px solid #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  cursor: pointer;
}
.footer-submit-button:hover { color: #fff; background: #791627; }
.footer-form-status {
  margin: 8px 0 0;
  color: #ffe9ed;
  font-size: 11px;
  line-height: 1.5;
}
.home-news-section { display: block; }
.home-news-section .news-placeholder { width: 100%; }
.home-news-section .news-placeholder h2 { margin-bottom: 16px; }
.home-news-section .news-placeholder p {
  margin: 0 0 16px;
  text-align: justify;
  text-justify: inter-word;
}
.home-news-section .news-placeholder p:last-child { margin-bottom: 0; }
.home-mortality-figure {
  width: 100%;
  margin: 18px 0 0;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #fff;
}
.home-mortality-figure img {
  width: 100%;
  height: auto;
  display: block;
}
.home-mortality-figure figcaption {
  margin: 0;
  padding: 9px 12px 10px;
  color: var(--muted);
  background: #fafbf9;
  font-size: 11px;
  line-height: 1.45;
  text-align: justify;
  text-justify: inter-word;
}

.background-research-button {
  display: block;
  width: 100%;
  margin-top: 18px;
  text-align: center;
}

/* SITES_03 camp finder and reusable camp-dashboard prototype */
.prototype-data-label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 12px; margin: 18px 0; padding: 10px 12px; color: #4d5849; background: #f2f4ee; border: 1px solid #cfd5c8; }
.prototype-data-label strong { color: var(--burgundy); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.prototype-data-label span { font-size: 12px; }
.finder-introduction { max-width: 880px; padding-bottom: 16px; }
.finder-introduction > p:not(.eyebrow):not(.lead) { max-width: 830px; }
.camp-finder { display: grid; gap: 24px; }
.finder-method { position: relative; display: grid; grid-template-columns: 50px minmax(0,1fr); gap: 16px; padding: 24px; border: 1px solid var(--line); border-top: 4px solid var(--burgundy); background: #fff; }
.method-number { width: 42px; height: 42px; margin: 0; display: grid; place-items: center; color: #fff; background: var(--olive-dark); border-radius: 50%; font-size: 16px; font-weight: 800; }
.method-content { min-width: 0; }
.method-content > p { max-width: 780px; }
.search-label, .manual-place, .responder-form label, .unlisted-panel > label { display: grid; gap: 6px; color: var(--olive-dark); font-size: 13px; font-weight: 700; }
.search-label { margin-top: 4px; }
.camp-search-input, .manual-place input, .unlisted-panel input, .responder-form input, .responder-form select, .responder-form textarea { width: 100%; min-height: 48px; padding: 10px 12px; color: var(--ink); background: #fff; border: 1px solid #8f9888; border-radius: 0; font: inherit; font-size: 16px; }
.responder-form textarea { min-height: auto; resize: vertical; }
.responder-form input[type="radio"], .responder-form input[type="checkbox"], .choice-control input { width: 20px; min-height: 20px; margin: 0; accent-color: var(--burgundy); }
.camp-search-input:focus-visible, .manual-place input:focus-visible, .unlisted-panel input:focus-visible, .responder-form input:focus-visible, .responder-form select:focus-visible, .responder-form textarea:focus-visible, button:focus-visible, .choice-control:focus-within { outline: 3px solid #1b5f8a; outline-offset: 2px; }
.camp-results, .nearby-results { display: grid; gap: 14px; margin-top: 14px; }
.camp-result { padding: 16px; border: 1px solid #cdd2c7; background: #fafbf8; }
.camp-result-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.camp-result h3 { margin: 0; }
.camp-result-heading p { margin: 2px 0 0; color: var(--muted); }
.camp-result-details { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 14px 0; }
.camp-result-details div { padding-top: 8px; border-top: 1px solid var(--line); }
.camp-result-details dt, .forecast-summary-grid dt, .identity-list dt, .review-list dt { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.camp-result-details dd, .forecast-summary-grid dd, .identity-list dd, .review-list dd { margin: 3px 0 0; font-size: 13px; }
.result-action { min-width: 260px; text-transform: uppercase; }
.finder-actions { margin-bottom: 12px; }
.privacy-note { margin: 10px 0; padding: 10px 12px; color: #4c5548; background: #f6f7f3; border-left: 3px solid var(--olive); font-size: 12px; font-weight: 400; }
.manual-place { max-width: 520px; margin: 14px 0; }
.manual-place span { color: var(--muted); font-size: 11px; font-weight: 400; }
.prototype-banner { padding: 12px; border-left: 4px solid var(--orange); background: var(--warm); }
.finder-map-panel { margin-top: 18px; }
.finder-map, .compact-camp-map { position: relative; overflow: hidden; border: 1px solid #a9b1a2; background: linear-gradient(145deg,#e8eee2 0 52%,#dce8d1 52%); }
.finder-map { min-height: 330px; }
.map-road { position: absolute; height: 24px; background: #fff; border-block: 2px solid #c5c6bd; transform-origin: center; }
.road-one { width: 130%; top: 43%; left: -15%; transform: rotate(-10deg); }
.road-two { width: 90%; top: 48%; left: 22%; transform: rotate(68deg); }
.map-camp-button { position: absolute; z-index: 2; min-width: 48px; min-height: 48px; max-width: 180px; padding: 7px 10px 7px 28px; color: #fff; background: var(--olive-dark); border: 3px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.28); font: inherit; font-size: 11px; font-weight: 700; text-align: left; cursor: pointer; }
.map-camp-button::before { content: ""; position: absolute; left: 10px; top: 15px; width: 10px; height: 10px; background: var(--red); border-radius: 50%; }
.map-camp-button.selected { color: var(--olive-dark); background: #fff7d6; border-color: var(--burgundy); }
.marker-1 { top: 18%; left: 13%; }
.marker-2 { top: 59%; left: 44%; }
.marker-3 { top: 21%; right: 8%; }
.map-confirmation { display: grid; gap: 5px; margin-top: 12px; padding: 15px; border: 1px solid #b8c0b1; background: #f8f9f6; }
.map-confirmation .button { margin-top: 6px; justify-self: start; }
.map-instruction { margin: 10px 0 0; color: var(--muted); }
.unlisted-camp-entry { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.unlisted-panel { display: grid; gap: 14px; margin-top: 14px; padding: 18px; border: 1px solid #c9cfc2; background: #f8f9f6; }
.location-choice { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 0; padding: 14px; border: 1px solid var(--line); }
.location-choice legend { color: var(--olive-dark); font-size: 13px; font-weight: 700; }
.choice-control { min-height: 48px; display: flex !important; align-items: center; gap: 10px; padding: 9px 11px; color: var(--ink) !important; background: #fff; border: 1px solid #b9c0b2; font-size: 13px !important; font-weight: 400 !important; cursor: pointer; }
.unlisted-confirmation { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 14px; }
.unlisted-confirmation p { margin: 0; }
.risk-badge { display: inline-flex; min-height: 28px; align-items: center; padding: 4px 9px; color: #fff; background: #6f756b; border-left: 8px solid #555; font-size: 11px; font-weight: 800; line-height: 1.2; text-transform: uppercase; white-space: nowrap; }
.risk-badge.low { background: #eef5eb; color: #2f5d27; border-color: var(--green); }
.risk-badge.medium { background: #fff3df; color: #6d3d00; border-color: var(--orange); }
.risk-badge.high { background: #fff0f2; color: #7b1022; border-color: var(--red); }
.risk-badge.neutral { background: #f0f1ed; color: #4d5549; border-color: #70776b; white-space: normal; }

.camp-dashboard-page { min-width: 0; }
.camp-dashboard-heading { padding-bottom: 20px; border-bottom: 0; }
.camp-dashboard-title-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.camp-dashboard-heading h1 { margin-bottom: 5px; font-size: clamp(28px, 4vw, 40px); }
.camp-dashboard-heading h1:focus { outline: none; }
.camp-subtitle { margin: 0; color: #53604e; font-size: 14px; }
.camp-affm-summary { margin-top: 18px; padding: 18px; border: 1px solid var(--line); background: #f8f9f6; }
.camp-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 18px; margin: 0; }
.camp-summary-grid div { min-width: 0; padding: 9px 0; border-top: 1px solid var(--line); }
.camp-summary-grid dt { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.camp-summary-grid dd { margin: 4px 0 0; overflow-wrap: anywhere; }
.camp-affm-link { width: fit-content; margin-top: 12px; }
.camp-lifecycle-summary { margin: 12px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.dashboard-primary-row { display: grid; grid-template-columns: minmax(0,1fr) 260px; gap: 24px; align-items: start; margin-top: 24px; }
.dashboard-primary-row .unified-camp-map { margin: 0; }
.dashboard-tools-panel { position: sticky; top: 155px; display: grid; gap: 16px; }
.dashboard-primary-row + .dashboard-section, .camp-dashboard-page > .dashboard-section, .camp-dashboard-page > .responder-form-section { margin-top: 20px; }
.submit-information-anchor { justify-content: center; color: #fff !important; }
.dashboard-layout { display: grid; grid-template-columns: minmax(0,1fr) 260px; gap: 24px; align-items: start; margin-top: 24px; }
.dashboard-main-column { min-width: 0; display: grid; gap: 20px; }
.dashboard-side-column { position: sticky; top: 155px; display: grid; gap: 16px; }
.dashboard-section { min-width: 0; padding: 22px; border: 1px solid var(--line); border-top: 4px solid var(--burgundy); background: #fff; }
.identity-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 20px; align-items: start; }
.identity-list, .forecast-threshold-grid, .forecast-context-grid, .review-list { margin: 0; }
.identity-list div { padding: 9px 0; border-top: 1px solid var(--line); }
.identity-list div:first-child { border-top: 0; }
.identity-list dd span { color: var(--muted); font-size: 11px; }
.compact-camp-map { min-height: 210px; display: flex; flex-direction: column; justify-content: flex-end; padding: 16px; }
.compact-camp-map strong, .compact-camp-map span, .compact-camp-map small { position: relative; z-index: 2; width: fit-content; padding: 2px 5px; background: rgba(255,255,255,.92); }
.compact-camp-map span { font-size: 11px; }
.compact-camp-map small { color: var(--muted); }
.camp-marker { position: absolute !important; z-index: 3 !important; top: 36%; left: 58%; width: 18px !important; height: 18px; padding: 0 !important; background: var(--red) !important; border: 4px solid #fff; border-radius: 50%; box-shadow: 0 1px 5px rgba(0,0,0,.35); }
.risk-heading { display: grid; justify-items: end; gap: 4px; }
.risk-heading > span { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.forecast-emphasis { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 12px 0 18px; }
.forecast-emphasis > div { min-height: 108px; display: flex; flex-direction: column; justify-content: center; padding: 12px; background: #f5f7f1; border-left: 5px solid var(--olive); }
.forecast-emphasis span { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.forecast-emphasis strong { color: var(--olive-dark); font-size: 22px; }
.forecast-emphasis small { color: var(--muted); }
.forecast-summary-grid { min-width: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)) minmax(180px,.82fr); align-items: stretch; margin-top: 2px; }
.forecast-threshold-grid { min-width: 0; grid-column: 1 / 3; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 26px; padding: 8px 24px 8px 0; }
.forecast-context-grid { min-width: 0; grid-column: 3; display: grid; grid-template-columns: 1fr; align-content: start; gap: 18px; padding: 8px 0 8px 24px; border-left: 1px solid #aeb6a7; }
.forecast-threshold-grid > div, .forecast-context-grid > div { min-width: 0; }
.forecast-summary-grid dd { color: var(--olive-dark); font-weight: 700; }
.forecast-graphic-placeholder { margin: 18px 0 0; padding: 12px; border: 1px solid var(--line); background: #fafbf8; }
.forecast-chart-mock { position: relative; min-height: 230px; padding: 25px 24px 24px 48px; overflow: hidden; background: repeating-linear-gradient(0deg,#fff,#fff 44px,#e9ece5 45px); border-left: 2px solid #777e72; border-bottom: 2px solid #777e72; }
.chart-threshold { position: absolute; left: 4px; z-index: 2; color: var(--muted); font-size: 10px; font-weight: 700; }
.threshold-42 { top: 36px; color: #7b1022; }
.threshold-38 { top: 94px; color: #6d3d00; }
.chart-curve { height: 170px; display: flex; align-items: flex-end; gap: 4px; border-top: 2px dashed var(--red); border-bottom: 2px dashed var(--orange); }
.chart-curve span { flex: 1; min-width: 3px; background: var(--olive); opacity: .85; }
.forecast-graphic-placeholder figcaption { margin-top: 8px; color: var(--muted); font-size: 11px; }
.compact-links { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px; }
.compact-links a { color: #3f5e36; font-size: 12px; font-weight: 700; }
.forecast-pending-message { padding: 22px; background: var(--warm); border-left: 4px solid var(--orange); }
.forecast-pending-message p { margin-bottom: 0; }
.affm-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
.verification-badge { display: inline-flex; min-height: 26px; align-items: center; padding: 3px 8px; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.verification-badge.verified { color: #2f5d27; background: #eef5eb; border: 1px solid #85a77a; }
.verification-badge.unverified { color: #6d3d00; background: #fff3df; border: 1px solid #dfaa5d; }
.verification-badge.neutral { display: inline; min-height: 0; padding: 0; font-size: inherit; font-weight: inherit; text-transform: none; }
.empty-report { padding: 16px; background: #f5f6f2; border-left: 4px solid #737a6e; font-weight: 700; }
.report-summary { padding: 16px; background: var(--warm); border-left: 4px solid var(--orange); }
.report-summary p { margin: 8px 0 0; }
.report-history { margin-top: 14px; border-block: 1px solid var(--line); }
.report-history summary { min-height: 48px; display: flex; align-items: center; font-weight: 700; cursor: pointer; }
.report-history p { padding: 0 8px 10px; }
.microcopy { color: var(--muted); font-size: 11px; line-height: 1.5; }
.share-panel, .dashboard-jump-links, .lifecycle-note { padding: 16px; border: 1px solid var(--line); background: #f8f9f6; }
.share-panel { border-top: 4px solid var(--burgundy); }
.share-panel h2 { font-size: 19px; }
.share-actions { display: grid; gap: 8px; }
.share-actions .button { width: 100%; }
.copy-status { min-height: 18px; margin: 4px 0 0; color: #2f5d27; font-size: 11px; font-weight: 700; }
.dashboard-jump-links { display: grid; gap: 7px; }
.dashboard-jump-links a { min-height: 38px; display: flex; align-items: center; color: #3f5e36; font-size: 12px; font-weight: 700; }
.lifecycle-note { border-left: 4px solid var(--orange); background: var(--warm); }
.lifecycle-note p { margin-bottom: 0; font-size: 11px; }
.compact-button { min-height: 44px; padding: 7px 10px; font-size: 11px; }
.compact-share-wrap { display: inline-flex; }
.table-secondary { color: var(--muted); font-size: 11px; }
.count-status { display: inline-flex; margin-top: 5px; padding: 3px 6px; border: 1px solid #9caf92; color: #2f5d27; background: #eef5eb; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.table-actions { min-width: 210px; display: grid; gap: 7px; }
.table-actions .button { width: 100%; }

/* SITES_04 unified map-first reporting workflow */
.unified-reporting-experience { min-width: 0; }
.report-observations-title { margin-bottom: 20px; }
.report-observations-layout { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 26px; }
.report-observations-introduction { min-width: 0; padding: 0 24px 0 0; border-right: 1px solid var(--line); }
.report-observations-map-column { min-width: 0; }
.report-observations-layout .finder-introduction { max-width: none; padding-bottom: 0; }
.reporting-intro-copy { max-width: none; margin: 0; font-size: 14px; line-height: 1.58; text-align: justify; text-justify: inter-word; }
.reporting-intro-context { margin: 0; }
.reporting-map-intro { margin: 18px 0 0; }
.report-observations-image { margin-top: 28px; aspect-ratio: 3 / 4; overflow: hidden; border: 1px solid var(--line); background: #f2f4ef; }
.report-observations-image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.report-observations-layout .unified-camp-map { margin-top: 0; }
.unified-camp-map { margin: 18px 0 30px; padding: 22px; border: 1px solid var(--line); border-top: 5px solid var(--burgundy); background: #fff; }
.map-heading-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.map-heading-row h2 { margin-bottom: 6px; }
.map-heading-row p { max-width: 760px; margin-bottom: 12px; }
.map-return-button { flex: 0 0 auto; }
.map-search-shell { position: relative; z-index: 8; margin: 4px 0 12px; padding: 14px; background: #f4f6f1; border: 1px solid #cbd1c4; }
.map-search { display: grid; gap: 7px; }
.map-search > label { color: var(--olive-dark); font-size: 13px; font-weight: 800; }
.map-search > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.map-search input, .new-camp-confirmation input { width: 100%; min-height: 48px; padding: 10px 12px; color: var(--ink); background: #fff; border: 1px solid #8f9888; border-radius: 0; font: inherit; font-size: 16px; }
.map-search-notice { margin: 8px 0 0; color: var(--muted); font-size: 12px; }
.map-search-results { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
.map-search-results button { min-height: 48px; display: grid; gap: 2px; padding: 9px 11px; color: var(--ink); background: #fff; border: 1px solid #aeb6a7; font: inherit; text-align: left; cursor: pointer; }
.map-search-results span { color: var(--muted); font-size: 11px; }
.camp-map-frame { width: 100%; max-width: 920px; margin-inline: auto; }
.camp-map-canvas { position: relative; width: 100%; aspect-ratio: 1 / 1; max-height: 820px; overflow: hidden; isolation: isolate; border: 1px solid #78816f; background-color: #e9eee7; cursor: default; }
.camp-map-canvas::before, .camp-map-canvas::after { content: ""; position: absolute; inset: 0; z-index: -3; pointer-events: none; }
.camp-map-canvas.basemap-carto::before { background: repeating-linear-gradient(28deg,transparent 0 44px,rgba(163,171,158,.42) 45px 47px,transparent 48px 84px), repeating-linear-gradient(-47deg,transparent 0 64px,rgba(255,255,255,.95) 65px 75px,transparent 76px 126px), #edf1eb; }
.camp-map-canvas.basemap-osm::before { background: repeating-linear-gradient(17deg,transparent 0 40px,rgba(197,182,143,.75) 41px 45px,transparent 46px 86px), repeating-linear-gradient(-62deg,transparent 0 60px,rgba(255,255,255,.92) 61px 70px,transparent 71px 115px), #e2eddc; }
.camp-map-canvas.basemap-satellite::before { background: radial-gradient(circle at 32% 26%,#5c7651 0 8%,transparent 9%), radial-gradient(circle at 65% 58%,#405b3c 0 13%,transparent 14%), repeating-linear-gradient(42deg,#304c32 0 35px,#36583d 36px 70px,#263f31 71px 98px); filter: saturate(.72); }
.camp-map-canvas.zoom-3::after { background-size: 82% 82%; }
.camp-map-canvas.zoom-4::after { box-shadow: inset 0 0 0 8px rgba(151,32,54,.08); }
.camp-map-canvas.zoom-5::after { box-shadow: inset 0 0 0 14px rgba(151,32,54,.12); }
.map-landmass { position: absolute; inset: 13% 16% 17% 18%; z-index: -2; opacity: .62; pointer-events: none; }
.map-landmass::before { content: ""; position: absolute; inset: 0; background: rgba(206,218,196,.9); border: 2px solid rgba(107,128,99,.55); border-radius: 46% 42% 48% 34% / 31% 50% 44% 54%; transform: rotate(8deg); }
.basemap-satellite .map-landmass::before { background: rgba(44,82,48,.45); border-color: rgba(222,230,204,.35); }
.map-zoom-controls { position: absolute; top: 14px; left: 14px; z-index: 9; display: grid; box-shadow: 0 2px 5px rgba(0,0,0,.2); }
.map-zoom-controls button { width: 48px; height: 48px; color: var(--olive-dark); background: #fff; border: 1px solid #8e9788; font: inherit; font-size: 24px; font-weight: 800; cursor: pointer; }
.map-location-control { position: absolute; top: 14px; left: 74px; z-index: 9; min-height: 48px; padding: 8px 13px; color: #fff; background: #176da1; border: 2px solid #fff; box-shadow: 0 2px 5px rgba(0,0,0,.22); font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.map-location-control.active { background: #0c4f79; }
.map-location-control:disabled { opacity: .78; cursor: wait; }
.basemap-control { position: absolute; top: 14px; right: 14px; z-index: 9; display: grid; gap: 2px; padding: 7px 9px; color: var(--olive-dark); background: rgba(255,255,255,.96); border: 1px solid #8e9788; font-size: 11px; font-weight: 800; }
.basemap-control select { min-height: 32px; color: var(--ink); background: #fff; border: 1px solid #8e9788; font: inherit; }
.unified-camp-marker { position: absolute; z-index: 5; min-width: 48px; min-height: 48px; display: flex; align-items: center; gap: 6px; transform: translate(-50%,-50%); padding: 5px 8px; color: #fff; background: #30372e; border: 3px solid #fff; border-radius: 24px; box-shadow: 0 2px 7px rgba(0,0,0,.34); font: inherit; font-size: 10px; text-align: left; cursor: pointer; }
.unified-camp-marker > span { width: 14px; height: 14px; flex: 0 0 14px; background: var(--green); border: 2px solid #fff; border-radius: 50%; }
.unified-camp-marker.medium > span { background: var(--orange); }
.unified-camp-marker.high > span { background: var(--red); }
.unified-camp-marker.high { z-index: 7; }
.unified-camp-marker.medium { z-index: 6; }
.unified-camp-marker.selected { z-index: 8; color: var(--olive-dark); background: #fff8d5; border-color: var(--burgundy); outline: 5px solid rgba(151,32,54,.24); }
.unified-camp-marker.proposed > span { background: #176da1; }
.browser-location { position: absolute; z-index: 4; width: 82px; height: 82px; transform: translate(-50%,-50%); background: rgba(34,130,190,.2); border: 2px solid rgba(23,109,161,.55); border-radius: 50%; pointer-events: none; }
.browser-location span { position: absolute; top: 50%; left: 50%; width: 18px; height: 18px; transform: translate(-50%,-50%); background: #147fc1; border: 4px solid #fff; border-radius: 50%; box-shadow: 0 1px 5px rgba(0,0,0,.4); }
.browser-location i { position: absolute; top: 50%; left: 50%; width: 4px; height: 4px; transform: translate(-50%,-50%); background: #fff; border-radius: 50%; }
.satellite-boundary { position: absolute; z-index: 3; top: 47%; left: 50%; width: min(82%,520px); display: grid; gap: 3px; transform: translate(-50%,-50%); padding: 16px; color: #fff; background: rgba(29,37,28,.9); border: 2px solid #fff; text-align: center; }
.satellite-boundary span { font-size: 12px; }
.map-attribution { position: absolute; right: 0; bottom: 0; left: 0; z-index: 9; padding: 5px 8px; color: #384335; background: rgba(255,255,255,.92); font-size: 10px; text-align: right; }
.basemap-satellite .map-attribution { color: #fff; background: rgba(20,28,20,.86); }
.map-status { min-height: 38px; display: flex; align-items: center; max-width: 920px; margin-inline: auto; padding: 7px 10px; color: #40513d; background: #f3f5ef; border-inline: 1px solid #b9c1b3; border-bottom: 1px solid #b9c1b3; font-size: 12px; font-weight: 700; }
.location-fallback { max-width: 920px; margin: 10px auto 0; padding: 11px 13px; color: #653a00; background: #fff3df; border-left: 4px solid var(--orange); }
.map-below-actions { max-width: 920px; display: flex; align-items: center; gap: 14px; margin: 16px auto 0; }
.map-below-actions p { margin: 0; color: var(--muted); font-size: 12px; }
.new-camp-active { cursor: crosshair; }
.new-camp-confirmation { max-width: 920px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 16px auto 0; padding: 18px; background: var(--warm); border: 1px solid #d9c393; border-left: 5px solid var(--orange); }
.new-camp-confirmation h3, .new-camp-confirmation > p, .new-camp-confirmation > button { grid-column: 1 / -1; }
.new-camp-confirmation h3, .new-camp-confirmation > p { margin: 0; }
.new-camp-confirmation label { display: grid; gap: 5px; color: var(--olive-dark); font-size: 12px; font-weight: 800; }
.camp-dashboard-page { padding-top: 8px; border-top: 1px solid var(--line); }
.dashboard-direct-experience .camp-dashboard-page { padding-top: 0; border-top: 0; }
.local-context-map { margin: 18px 0 24px; }
.map-anchor-alias { display: block; height: 0; overflow: hidden; }
.local-context-map .camp-map-canvas { aspect-ratio: 16 / 9; max-height: 600px; }
.forecast-popup-placeholder { max-width: 360px; display: grid; gap: 6px; margin-top: 18px; padding: 14px; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--orange); }
.forecast-popup-placeholder > span:not(.card-kicker) { color: var(--muted); font-size: 12px; }
.forecast-popup-placeholder .button { margin-top: 6px; }
.identity-map-link { margin-top: 14px; width: fit-content; }

.responder-form-section { margin-top: 26px; padding: 24px; border: 1px solid var(--line); border-top: 5px solid var(--burgundy); background: #fff; }
.form-heading-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.form-heading-row h2, .form-heading-row .card-kicker { margin-bottom: 6px; }
.form-introduction { max-width: 850px; margin-bottom: 0; text-align: justify; text-justify: inter-word; }
.responder-form { min-width: 0; display: grid; gap: 14px; margin-top: 16px; }
.responder-form fieldset { min-width: 0; margin: 0; padding: 14px 16px 16px; border: 1px solid #cbd1c4; background: #fff; }
.responder-form fieldset:disabled { color: var(--muted); background: #f5f6f2; opacity: .72; }
.responder-form legend { padding: 0 7px; color: var(--olive-dark); font-size: 17px; font-weight: 800; }
.responder-form label { min-width: 0; gap: 4px; font-size: 12.5px; }
.responder-form input, .responder-form select, .responder-form textarea { min-width: 0; min-height: 42px; padding: 7px 9px; font-size: 15px; }
.responder-form textarea { min-height: 82px; }
.responder-form input[type="file"] { height: auto; padding: 6px; font-size: 13px; }
.responder-form input[type="radio"], .responder-form input[type="checkbox"] { width: 20px; min-width: 20px; min-height: 20px; padding: 0; }
.responder-form .button.compact { min-height: 40px; padding: 7px 11px; font-size: 11px; }
.form-section { overflow: visible; }
.field-question { margin: 0 0 7px; color: var(--olive-dark); font-size: 12.5px; font-weight: 800; }
.field-guidance { margin: 4px 0 8px; color: var(--muted); font-size: 11px; }
.field-grid, .observer-grid { min-width: 0; display: grid; gap: 9px 12px; }
.field-grid.two-up, .observer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.field-grid.three-up { grid-template-columns: repeat(3,minmax(0,1fr)); }
.field-span-all { grid-column: 1 / -1; }
.observer-grid { align-items: end; }
.public-name-choice { justify-content: flex-start; }
.public-name-choice > span { display: grid; gap: 2px; color: var(--ink); }
.public-name-choice strong { font-size: 12.5px; }
.public-name-choice small { color: var(--muted); font-size: 10.5px; font-weight: 400; }
.choice-row { min-width: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.choice-row .choice-control { min-width: 0; flex: 1 1 190px; }
.responder-form .choice-control { min-height: 44px; padding: 7px 9px; line-height: 1.3; }
.responder-form .choice-control > span { color: var(--ink); font-size: 12px; }
.camp-status-options .choice-control { flex-basis: 210px; }
.camp-status-comments { display: grid; gap: 4px; margin-top: 9px; color: var(--olive-dark); font-weight: 700; }
.responder-form .camp-status-comments textarea, .responder-form .care-additional-information textarea { min-height: 58px; resize: vertical; }
.abundance-mode-options .choice-control { flex-basis: 220px; }
.mode-panel { min-width: 0; display: grid; gap: 10px; margin-top: 11px; padding: 11px; border: 1px solid var(--line); background: #f7f8f5; }
.compact-text-field { margin-top: 2px; }
.species-abundance-editor { gap: 0; }
.species-row { min-width: 0; display: grid; grid-template-columns: minmax(130px,.85fr) minmax(130px,1fr) minmax(170px,1.1fr); gap: 9px; align-items: end; padding: 7px 0; border-top: 1px solid var(--line); }
.species-row-header { padding-top: 0; color: var(--muted); border-top: 0; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.species-fixed-label { min-height: 42px; display: grid; align-content: center; gap: 1px; padding: 5px 8px; color: var(--olive-dark); background: #eef2e9; border-left: 3px solid var(--olive); }
.species-fixed-label small { color: var(--muted); font-size: 9.5px; font-weight: 400; }
.mobile-field-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.add-species-button, .add-detail-button { width: fit-content; margin-top: 8px; }
.impact-outcomes-grid { min-width: 0; display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 10px; margin-top: 10px; }
.trigger-group { min-width: 0; align-self: start; border: 1px solid #c6cdc0; background: #fafbf8; }
.trigger-control { border: 0; background: transparent; font-weight: 700 !important; }
.trigger-details { min-width: 0; display: grid; gap: 9px; padding: 10px; border-top: 1px solid var(--line); background: #fff; }
.behaviour-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.behaviour-checklist .choice-control, .compact-checklist .choice-control { min-height: 40px; padding: 6px 8px; }
.form-help-details, .optional-form-details { min-width: 0; border: 1px solid var(--line); background: #fafbf8; }
.form-help-details summary, .optional-form-details summary { min-height: 40px; display: flex; align-items: center; padding: 6px 9px; color: var(--olive-dark); font-size: 12px; font-weight: 800; cursor: pointer; }
.behaviour-definition-grid { margin: 0; padding: 0 9px 8px; }
.behaviour-definition-grid > div { display: grid; grid-template-columns: minmax(135px,.8fr) minmax(0,1.7fr); gap: 10px; padding: 7px 5px; border-top: 1px solid var(--line); }
.behaviour-definition-grid > div:nth-child(even) { background: #f1f4ed; }
.behaviour-definition-grid dt { color: var(--olive-dark); font-size: 11px; font-weight: 800; }
.behaviour-definition-grid dd { margin: 0; color: var(--ink); font-size: 11px; line-height: 1.45; }
.field-grid.mortality-core-row { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: end; }
.responder-form .mortality-timing-field { grid-column: 1 / -1; display: grid; gap: 6px; padding: 0; border: 0; }
.responder-form .mortality-timing-field legend { padding: 0; font-size: 12.5px; }
.mortality-timing-options { min-width: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.mortality-timing-options .choice-control { min-height: 48px; align-content: center; }
.species-selection-area { min-width: 0; display: grid; gap: 7px; padding: 9px; background: #f7f8f5; border: 1px solid var(--line); }
.species-selection-area .field-question { margin-bottom: 0; }
.species-selection-grid { min-width: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.species-selection-grid .choice-control { min-height: 40px; padding: 6px 8px; }
.species-selection-remainder { min-width: 0; display: grid; gap: 6px; padding-top: 7px; border-top: 1px solid var(--line); }
.species-selection-remainder > p { margin: 0; color: var(--muted); font-size: 11px; font-weight: 700; }
.species-detail-editor { min-width: 0; display: grid; gap: 8px; padding: 0 9px 9px; }
.species-detail-block { min-width: 0; display: grid; gap: 7px; padding-top: 8px; border-top: 1px solid var(--line); }
.species-detail-block h5 { margin: 0; color: var(--olive-dark); font-size: 12px; }
.species-detail-grid { min-width: 0; display: grid; gap: 7px; }
.mortality-species-detail-grid { grid-template-columns: repeat(5,minmax(70px,1fr)); }
.care-species-detail-grid { grid-template-columns: repeat(3,minmax(85px,1fr)); }
.species-detail-grid label { align-content: start; }
.operational-options-grid { min-width: 0; display: grid; grid-template-columns: minmax(0,1.7fr) minmax(250px,.78fr); gap: 10px; align-items: start; }
.compact-checklist { display: grid; gap: 6px; }
.response-activity-groups { min-width: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.response-activity-subgroup, .response-other-activity { min-width: 0; display: grid; align-content: start; gap: 6px; padding: 9px; background: #f7f8f5; border: 1px solid var(--line); }
.response-activity-subgroup h4, .response-other-activity h4, .care-dependent-panel > h4 { margin: 0; color: var(--olive-dark); font-size: 12px; }
.response-availability-note { margin: 2px 0 10px; padding: 8px 10px; color: #43513f; background: #f1f4ed; border: 1px solid #c7cec1; border-left: 4px solid var(--olive); font-size: 11.5px; font-weight: 700; line-height: 1.4; }
.responder-form .choice-control.is-unavailable { cursor: not-allowed; border-style: dashed; background: repeating-linear-gradient(135deg,#f1f2ef 0,#f1f2ef 8px,#e8eae5 8px,#e8eae5 16px); }
.responder-form .choice-control.is-unavailable > span { opacity: .75; }
.responder-form .choice-control.is-unavailable input { cursor: not-allowed; }
.response-other-activity { padding: 7px 9px; }
.response-other-activity .choice-control { min-height: 40px; }
.care-dependent-panel { min-width: 0; display: grid; gap: 10px; margin-top: 2px; padding: 12px; background: #fbfcf9; border: 1px solid #b7c0b1; border-left: 4px solid var(--olive); }
.care-core-grid { min-width: 0; display: grid; grid-template-columns: minmax(135px,.45fr) minmax(0,1.55fr); gap: 10px; align-items: start; }
.care-core-grid.care-core-single { grid-template-columns: minmax(0,260px); }
.care-basis-group, .care-basis-options { min-width: 0; display: grid; gap: 6px; }
.care-basis-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
.care-basis-options .choice-control { min-height: 52px; }
.operational-options-grid .choice-row .choice-control { flex-basis: 115px; }
.urgency-group { display: grid; gap: 2px; }
.notes-media-grid { align-items: start; }
.upload-field { min-width: 0; display: grid; gap: 8px; }
.selected-file-list { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.selected-file-list li { min-width: 0; display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 5px 7px; background: #f5f7f1; border: 1px solid var(--line); }
.selected-file-list span { min-width: 0; overflow-wrap: anywhere; font-size: 11px; }
.selected-file-list small { color: var(--muted); }
.selected-file-list .button { flex: 0 0 auto; min-height: 34px !important; }
.responder-review { min-width: 0; padding: 18px; border: 2px solid var(--burgundy); border-top-width: 6px; background: #fbfcf9; }
.responder-review > h3 { margin-bottom: 12px; }
.review-group { margin-top: 12px; }
.review-group h4 { margin: 0; padding: 7px 9px; color: #fff; background: var(--olive-dark); font-size: 13px; }
.review-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 14px; margin: 0; }
.review-grid > div { min-width: 0; padding: 8px 4px; border-top: 1px solid var(--line); }
.review-grid dt { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.review-grid dd { margin: 3px 0 0; overflow-wrap: anywhere; white-space: pre-line; font-size: 12px; line-height: 1.45; }
.review-span-all { grid-column: 1 / -1; }
.review-emphasis { padding-left: 9px !important; background: #fff5e4; border-left: 4px solid var(--orange); }
.assistance-review-group h4 { background: var(--burgundy); }
.review-submit { margin-top: 16px; padding-top: 14px; border-top: 2px solid var(--line); }
.review-submit .button { width: 100%; min-height: 48px; }
.state-selector { margin-top: 24px; padding: 12px 16px; border: 1px dashed #9da596; background: #fafbf8; }
.state-selector summary { min-height: 44px; display: flex; align-items: center; color: var(--olive-dark); font-weight: 700; cursor: pointer; }
.state-link-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.state-link-grid a { min-height: 44px; display: flex; align-items: center; padding: 8px 10px; color: #3f5e36; background: #fff; border: 1px solid var(--line); font-size: 12px; font-weight: 700; }

@media (min-width: 901px) {
  .report-observations-layout { align-items: stretch; }
  .report-observations-map-column { min-height: 0; display: flex; }
  .report-observations-layout .national-finder-map {
    min-height: 0;
    margin: 0;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
  }
  .report-observations-layout .national-finder-map .camp-map-frame {
    min-height: 0;
    display: flex;
    flex: 1 1 auto;
  }
  .report-observations-layout .national-finder-map .camp-map-canvas {
    min-height: 360px;
    height: 100%;
    max-height: none;
    flex: 1 1 auto;
    aspect-ratio: auto;
  }
}

@media (min-width: 761px) {
  .dashboard-primary-row { align-items: stretch; }
  .dashboard-tools-panel { align-self: start; }
  .dashboard-primary-row .local-context-map { min-height: 0; display: flex; flex-direction: column; }
  .dashboard-primary-row .local-context-map .camp-map-frame { min-height: 0; flex: 1 1 auto; display: flex; }
  .dashboard-primary-row .local-context-map .camp-map-canvas { min-height: 0; height: 100%; max-height: none; flex: 1 1 auto; aspect-ratio: auto; }
}

@media (max-width: 1120px) {
  .main-nav-inner { justify-content: flex-start; }
  .four-up, .five-up { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .workflow-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dashboard-layout { grid-template-columns: minmax(0,1fr) 230px; gap: 18px; }
  .dashboard-primary-row { grid-template-columns: minmax(0,1fr) 230px; gap: 18px; }
  .site-footer { padding-inline: 22px; }
  .site-footer-inner { max-width: 100%; grid-template-columns: minmax(0, 1.5fr) minmax(330px, 1fr); gap: 28px; }
  .footer-information-panel { height: auto; min-height: 338px; grid-template-columns: minmax(250px, 1fr) minmax(190px, 220px); gap: 18px; }
  .footer-forecaster-logo { max-width: 220px; }
  .impact-outcomes-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .camps-alert-overview { grid-template-columns: 1fr; gap: 18px; }
  .report-observations-layout { grid-template-columns: 1fr; gap: 0; }
  .report-observations-introduction { padding: 0; border-right: 0; }
  .report-observations-layout .unified-camp-map { margin-top: 18px; }
  .site-footer { padding: 28px 20px 20px; }
  .site-footer-inner { grid-template-columns: 1fr; gap: 28px; }
  .footer-information-panel { min-height: 0; grid-template-columns: minmax(0, 1fr) minmax(220px, 280px); }
  .footer-forecaster-logo { max-width: 280px; }
  .footer-contact-panel { padding-top: 0; }
  .footer-links { justify-content: flex-start; }
}

@media (max-width: 760px) {
  .topbar { padding: 5px 10px; gap: 8px; }
  .forecaster-logo { height: 46px; max-width: 52vw; }
  .affm-logo { height: 46px; max-width: 27vw; }
  .header-tagline { display: none; }
  .main-nav, .main-nav-inner { min-height: 52px; }
  .main-nav a { min-height: 52px; padding: 0 11px; font-size: 12px; }
  .page-shell { padding: 14px; }
  .page-card { padding: 20px; }
  .report-observations-layout { grid-template-columns: 1fr; gap: 0; }
  .report-observations-introduction { padding: 0; border-right: 0; }
  .report-observations-layout .unified-camp-map { margin-top: 18px; }
  .two-column-copy, .feature-split, .reserved-surface, .home-hero-layout { grid-template-columns: 1fr; }
  .home-alert-column { margin-top: 8px; }
  .home-air-temp-placeholder { width: 144px; height: 144px; margin-right: 14px; padding: 10px; }
  .page-title-with-art { padding-right: 52px; }
  .page-title-corner-art { top: -5px; width: 40px; height: 50px; }
  .page-title-corner-art img { height: 50px; max-width: 40px; }
  .reserved-icon { width: 90px; height: 90px; }
  .risk-legend, .three-up, .two-up { grid-template-columns: 1fr; }
  .reporting-pathways { grid-template-columns: 1fr; }
  .reporting-pathway-card { min-height: 0; padding: 22px; }
  .topic-index div { grid-template-columns: 1fr; }
  .compact-topic-index div { grid-template-columns: 1fr; }
  .background-page-header { grid-template-columns: 1fr; gap: 18px; }
  .background-contents-panel { width: 100%; justify-self: stretch; }
  .about-overview-grid { grid-template-columns: 1fr; gap: 18px; }
  .about-overview-figure { min-height: 0; margin: 0 0 20px; aspect-ratio: 3 / 2; }
  .legacy-background-section { padding: 20px; }
  .workflow-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ia-branches { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ia-branches::before, .ia-branches > div::before { display: none; }
  .contact-panel { align-items: flex-start; flex-direction: column; }
  .site-footer-inner { grid-template-columns: 1fr; }
  .finder-method { grid-template-columns: 42px minmax(0,1fr); padding: 20px; }
  .camp-result-details, .forecast-emphasis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .camp-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-primary-row { grid-template-columns: 1fr; }
  .dashboard-tools-panel { position: static; }
  .dashboard-layout { grid-template-columns: 1fr; }
  .dashboard-side-column { position: static; order: 2; }
  .share-actions { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .identity-layout { grid-template-columns: 1fr; }
  .choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .form-grid.three-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .state-link-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .form-heading-row { align-items: stretch; flex-direction: column; }
  .form-heading-row .button { width: 100%; }
  .forecast-summary-grid { grid-template-columns: 1fr; gap: 14px; }
  .forecast-threshold-grid { grid-column: auto; padding: 8px 0; }
  .forecast-context-grid { grid-column: auto; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 12px; background: #f7f8f5; border-left: 0; }
  .observer-grid, .field-grid.two-up, .field-grid.three-up, .impact-outcomes-grid, .operational-options-grid, .review-grid { grid-template-columns: 1fr; }
  .choice-row { flex-direction: column; }
  .choice-row .choice-control { width: 100%; flex: 1 1 auto; }
  .operational-options-grid .choice-row .choice-control { flex-basis: auto; }
  .species-row { grid-template-columns: 1fr; gap: 6px; padding: 10px 0; }
  .species-row-header { display: none; }
  .mobile-field-label { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
  .behaviour-checklist { grid-template-columns: 1fr; }
  .behaviour-definition-grid > div { grid-template-columns: 1fr; gap: 3px; }
  .species-selection-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mortality-species-detail-grid, .care-species-detail-grid, .response-activity-groups, .care-core-grid, .care-basis-options, .mortality-timing-options { grid-template-columns: 1fr; }
  .review-span-all { grid-column: auto; }
  .unified-camp-map { padding: 16px; }
  .map-heading-row, .map-below-actions { align-items: stretch; flex-direction: column; }
  .map-return-button { width: 100%; }
  .map-search-results { grid-template-columns: 1fr; }
  .funding-copy { padding-right: 72px; }
  .funding-section h2 { padding-right: 72px; }
  .funding-icon { right: 0; bottom: 24px; width: 60px; height: 60px; transform: none; }
  .camp-map-canvas { height: 68vh; min-height: 460px; max-height: 660px; aspect-ratio: auto; }
  .local-context-map .camp-map-canvas { height: 58vh; min-height: 420px; max-height: 580px; aspect-ratio: auto; }
  .basemap-control { top: 70px; left: 14px; right: auto; }
  .new-camp-confirmation { grid-template-columns: 1fr; }
  .new-camp-confirmation h3, .new-camp-confirmation > p, .new-camp-confirmation > button { grid-column: auto; }
}

@media (max-width: 470px) {
  .site-footer { padding: 24px 14px 18px; }
  .footer-information-panel { min-height: 0; padding: 20px; grid-template-columns: 1fr; }
  .footer-forecaster-logo { width: min(190px, 70vw); justify-self: start; }
  .footer-name-fields { grid-template-columns: 1fr; }
  .footer-submit-button { width: 100%; min-height: 52px; }
  .four-up, .five-up, .workflow-grid, .ia-branches { grid-template-columns: 1fr; }
  .section-heading-row { align-items: flex-start; flex-direction: column; }
  .alert-table-download { width: 100%; }
  .credit-list > div { grid-template-columns: 1fr; gap: 3px; }
  .reporting-pathway-card { padding: 20px; }
  .reporting-action-button { min-height: 52px; padding-inline: 12px; }
  .finder-method { grid-template-columns: 1fr; padding: 18px; }
  .method-number { width: 36px; height: 36px; }
  .camp-result-heading, .camp-dashboard-title-row { flex-direction: column; }
  .camp-result-details, .camp-summary-grid, .forecast-emphasis, .forecast-context-grid, .affm-metrics, .review-list, .form-grid.two-columns, .form-grid.three-columns, .choice-grid, .choice-grid.two-up, .location-choice, .state-link-grid { grid-template-columns: 1fr; }
  .camp-affm-link { width: 100%; }
  .result-action, .finder-actions .button, .unlisted-confirmation .button { width: 100%; min-width: 0; }
  .finder-map { min-height: 410px; }
  .map-camp-button { max-width: 145px; }
  .marker-1 { top: 10%; left: 4%; }
  .marker-2 { top: 46%; left: 30%; }
  .marker-3 { top: 72%; right: 4%; }
  .dashboard-section, .responder-form-section { padding: 14px; }
  .share-actions { grid-template-columns: 1fr; }
  .forecast-chart-mock { min-height: 190px; padding-left: 42px; }
  .chart-curve { height: 130px; }
  .responder-form fieldset { padding: 11px 12px 13px; }
  .responder-review { padding: 13px; }
  .form-introduction { text-align: left; }
  .unified-camp-map { margin-inline: -8px; padding: 12px; }
  .map-search > div { grid-template-columns: 1fr; }
  .map-search .button { width: 100%; }
  .camp-map-canvas { height: 70vh; min-height: 430px; }
  .local-context-map .camp-map-canvas { height: 58vh; min-height: 390px; }
  .map-location-control { right: 10px; left: auto; max-width: 155px; }
  .map-zoom-controls { top: 10px; left: 10px; }
  .basemap-control { top: 68px; left: 10px; }
  .unified-camp-marker { max-width: 128px; }
  .unified-camp-marker strong { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .link-card { transition: none; }
}
