:root {
  color-scheme: dark;
  --ink: #f4f8fa;
  --muted: #9fb2c0;
  --deep: #0e141b;
  --panel: #131b24;
  --panel-2: #182230;
  --line: rgba(159, 178, 192, 0.18);
  --line-strong: rgba(159, 178, 192, 0.34);
  --mint: #2ee0c4;
  --cyan: #18c2a8;
  --cool: #2e8a99;
  --warm: #f2b441;
  --hot: #ffd166;
  --cream: #f4f8fa;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
html { scroll-padding-top: 112px; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background:
    radial-gradient(circle at 76% 3%, rgba(24, 194, 168, 0.14), transparent 29rem),
    var(--deep);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent 49.8%, rgba(46,224,196,.018) 50%, transparent 50.2%);
  background-size: 96px 100%;
  z-index: 10;
}

.noise {
  position: fixed;
  inset: 0;
  opacity: .035;
  pointer-events: none;
  z-index: 20;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid var(--mint); outline-offset: 3px; }
a { color: inherit; }

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

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 100;
  min-height: 44px;
  padding: 11px 16px;
  color: #03261f;
  background: var(--mint);
  border-radius: 8px;
  font-weight: 750;
  transform: translateY(-150%);
  transition: transform .15s ease;
}
.skip-link:focus { transform: translateY(0); }

.topbar {
  min-height: 82px;
  padding: 0 max(24px, calc((100vw - 1440px) / 2));
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(14,20,27,.94);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.brand { min-height: 44px; text-decoration: none; display: flex; align-items: center; gap: 11px; }
.brand-mark { width: 36px; height: 36px; flex: 0 0 auto; border-radius: 9px; color: #03261f; background: linear-gradient(135deg, var(--mint), var(--cyan)); display: grid; place-items: center; }
.brand-mark img { width: 100%; height: 100%; display: block; border-radius: inherit; }
.brand-copy { display: grid; gap: 2px; }
.brand-copy strong { font-size: 14px; line-height: 1.1; letter-spacing: -.01em; }
.brand-copy small { color: var(--muted); font: 500 9px var(--mono); letter-spacing: .04em; }
.public-nav { margin-left: auto; display: flex; align-items: center; gap: 5px; padding-inline: 20px; }
.public-nav a, .public-nav .text-button { min-height: 44px; padding: 12px 10px; display: inline-flex; align-items: center; border: 0; color: var(--muted); background: none; text-decoration: none; font-size: 12px; font-weight: 650; cursor: pointer; white-space: nowrap; }
.public-nav a:hover, .public-nav .text-button:hover { color: var(--ink); }
.topbar-meta { display: flex; gap: 12px; align-items: center; }
.eyebrow, .section-index, .kicker { font: 500 10px var(--mono); letter-spacing: .13em; color: var(--muted); }
.live-pill { border: 1px solid var(--line-strong); padding: 7px 9px; display: inline-flex; align-items: center; gap: 7px; font: 500 9px var(--mono); letter-spacing: .12em; }
.live-pill span { width: 6px; height: 6px; border-radius: 50%; background: var(--hot); box-shadow: 0 0 12px var(--hot); }
.live-pill.live span { background: var(--mint); box-shadow: 0 0 12px var(--mint); }
.text-button { border: 0; min-height: 44px; padding: 10px 4px; color: var(--ink); background: none; font-size: 12px; cursor: pointer; text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 5px; }

main, footer { width: min(1440px, 100%); margin: 0 auto; padding-inline: clamp(20px, 4vw, 64px); }
.hero { min-height: 320px; padding: clamp(44px, 5vw, 72px) 0 48px; display: grid; grid-template-columns: minmax(0, 1fr) 330px; align-items: center; gap: 60px; }
.kicker { color: var(--mint); margin: 0 0 15px; }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { max-width: 780px; margin-bottom: 20px; font-size: clamp(34px, 3.4vw, 54px); line-height: 1.03; letter-spacing: -.045em; font-weight: 760; }
.hero-intro { max-width: 720px; color: #c4d2dc; font-size: 16px; line-height: 1.7; margin-bottom: 0; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.action-button { min-height: 44px; padding: 11px 16px; border: 1px solid var(--line-strong); border-radius: 9px; color: var(--ink); background: var(--panel); display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-size: 13px; font-weight: 700; cursor: pointer; }
.action-button:hover { border-color: var(--mint); background: var(--panel-2); }
.action-button.primary { color: #03261f; border-color: var(--cyan); background: var(--cyan); }
.action-button.primary:hover { background: var(--mint); }
.hero-status { display: flex; gap: 22px; align-items: center; padding-bottom: 10px; }
.hero-status strong { display: block; font: 500 18px var(--mono); color: var(--mint); margin: 8px 0 8px; }
.hero-status p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.status-orbit { width: 58px; height: 58px; border: 1px solid var(--line-strong); border-radius: 50%; position: relative; flex: 0 0 auto; }
.status-orbit::before, .status-orbit::after { content: ""; position: absolute; border-radius: 50%; }
.status-orbit::before { inset: 9px; border: 1px solid rgba(46,224,196,.32); }
.status-orbit::after { width: 7px; height: 7px; background: var(--mint); top: 9px; left: 24px; box-shadow: 0 0 16px var(--mint); }

.instrument-shell { border: 1px solid var(--line-strong); background: rgba(6, 19, 23, .76); box-shadow: 0 40px 120px rgba(0,0,0,.24); }
.instrument-head { height: 82px; border-bottom: 1px solid var(--line); padding: 0 26px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.instrument-head h2 { margin: 5px 0 0; font: 500 19px var(--sans); }
.segmented { display: flex; border: 1px solid var(--line); padding: 3px; gap: 2px; }
.segment { min-height: 44px; border: 0; background: transparent; color: var(--muted); padding: 9px 13px; font: 600 10px var(--mono); text-transform: uppercase; letter-spacing: .06em; cursor: pointer; }
.segment:hover { color: var(--ink); }
.segment.active { background: var(--mint); color: #092017; }
.instrument-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; min-height: 640px; }
.globe-stage { min-width: 0; position: relative; overflow: hidden; background: radial-gradient(circle at center, rgba(32,105,100,.12), transparent 58%); cursor: grab; }
.globe-stage:active { cursor: grabbing; }
#globe { width: 100%; height: 640px; display: block; touch-action: none; }
.globe-stage::after { content: ""; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 100px rgba(0,0,0,.34); }
.globe-overlay { position: absolute; z-index: 2; font: 500 9px var(--mono); letter-spacing: .1em; color: var(--muted); pointer-events: none; }
.top-left { top: 24px; left: 26px; display: flex; flex-direction: column; gap: 6px; }
.top-left strong { color: var(--ink); font-size: 13px; }
.bottom-left { bottom: 24px; left: 26px; display: flex; flex-direction: column; gap: 12px; }
.scale-row { display: flex; align-items: center; gap: 7px; }
.scale-row i { display: inline-block; width: 34px; height: 5px; background: var(--cool); }
.scale-row i:nth-of-type(2) { background: rgba(234,244,238,.28); }
.scale-row i:nth-of-type(3) { background: linear-gradient(90deg, var(--warm), var(--hot)); }
.scale-row b { font-weight: 400; color: #b9c7c4; }
.globe-tools { position: absolute; z-index: 3; right: 24px; top: 24px; display: flex; flex-direction: column; border: 1px solid var(--line-strong); }
.globe-tools button { width: 44px; height: 44px; border: 0; border-bottom: 1px solid var(--line); background: rgba(14,20,27,.9); color: var(--ink); cursor: pointer; }
.globe-tools button:last-child { border-bottom: 0; }
.globe-readout { position: absolute; z-index: 3; right: 24px; bottom: 24px; border-right: 2px solid var(--warm); padding: 5px 13px 5px 0; display: grid; text-align: right; pointer-events: none; }
.globe-readout span, .globe-readout small { font: 500 9px var(--mono); letter-spacing: .1em; color: var(--muted); }
.globe-readout strong { font: 500 17px var(--mono); margin: 5px 0; white-space: nowrap; }
.signal-panel { border-left: 1px solid var(--line); padding: 28px; background: rgba(24,34,48,.72); }
.panel-heading, .card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.refresh-button { min-height: 44px; border: 1px solid var(--line-strong); background: transparent; color: var(--ink); padding: 9px 12px; font: 600 9px var(--mono); letter-spacing: .06em; cursor: pointer; }
.refresh-button:hover { border-color: var(--mint); }
.refresh-button.syncing span { display: inline-block; animation: spin .9s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.signal-panel h3 { font-size: 31px; line-height: 1.08; letter-spacing: -.04em; font-weight: 500; margin: 36px 0 14px; }
.signal-summary { color: var(--muted); font-size: 13px; line-height: 1.65; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.metrics { margin: 0; }
.metrics > div { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; padding: 18px 0; border-bottom: 1px solid var(--line); align-items: end; }
.metrics dt { font: 500 11px var(--mono); letter-spacing: .03em; color: #c4d2ce; }
.metrics dt span { color: var(--muted); }
.metrics dd { grid-row: span 2; margin: 0; font: 500 29px var(--mono); }
#metric-weekly, #metric-roni, #metric-heat { font-size: 15px; white-space: nowrap; }
.metrics small { color: var(--muted); font: 400 8px var(--mono); letter-spacing: .12em; margin-top: 5px; }
.confidence-note { display: flex; align-items: center; gap: 14px; margin-top: 24px; }
.confidence-ring { width: 46px; height: 46px; border: 1px solid var(--mint); border-radius: 50%; display: grid; place-items: center; font: 500 15px var(--mono); color: var(--mint); }
.confidence-note p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.confidence-note strong { color: var(--ink); font-weight: 600; }
.sync-message { min-height: 15px; font: 400 9px var(--mono); color: var(--mint); margin: 18px 0 0; }
.schematic-badge { min-height: 32px; display: inline-flex; align-items: center; border: 1px solid rgba(242,180,65,.42); padding: 7px 10px; color: var(--warm); background: rgba(242,180,65,.07); font: 600 8px var(--mono); letter-spacing: .08em; }
.time-control { border-top: 1px solid var(--line); min-height: 96px; display: grid; grid-template-columns: 44px 150px minmax(120px,1fr); grid-template-rows: auto auto; align-items: center; gap: 0 18px; padding: 20px 26px; }
.time-control label { font: 500 10px var(--mono); color: var(--muted); letter-spacing: .08em; text-transform: uppercase; }
.play-button { grid-row: span 2; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-strong); background: transparent; color: var(--mint); cursor: pointer; }
.time-control input { accent-color: var(--mint); width: 100%; }
.time-endpoints { grid-column: 3; display: flex; justify-content: space-between; font: 400 8px var(--mono); color: var(--muted); letter-spacing: .08em; }

.globe-text-alternative { border-top: 1px solid var(--line); background: rgba(24,34,48,.42); }
.globe-text-alternative summary { min-height: 44px; padding: 13px 26px; color: var(--ink); font: 600 10px var(--mono); letter-spacing: .06em; cursor: pointer; }
.text-alternative-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(360px, 1.2fr); gap: 32px; padding: 8px 26px 24px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.text-alternative-grid p { margin: 0; }
.text-alternative-grid dl { margin: 0; }
.text-alternative-grid dl div { display: grid; grid-template-columns: 130px 1fr; gap: 16px; padding: 7px 0; border-top: 1px solid var(--line); }
.text-alternative-grid dt { color: var(--ink); font-weight: 650; }
.text-alternative-grid dd { margin: 0; }
.data-receipt { margin: 0; padding: 14px 18px; border: 1px solid rgba(242,180,65,.3); border-left: 3px solid var(--warm); color: var(--muted); background: rgba(242,180,65,.055); font-size: 10px; line-height: 1.6; }
.data-receipt strong { color: var(--ink); }
.instrument-shell > .data-receipt { border-width: 1px 0 0 3px; }
.probability-card .data-receipt { margin: 18px 0 0 53px; }
.pressure-panel .data-receipt, .profile-panel .data-receipt { margin-top: 14px; }

.monitoring-section, .forecast-section, .farm-section, .scenario-section, .data-status-section, .limits-section, .sources-section { padding-top: 120px; }
.section-heading { display: grid; grid-template-columns: 1fr 430px; gap: 60px; align-items: end; margin-bottom: 42px; }
.section-heading h2, .scenario-copy h2, .sources-section h2 { font-size: clamp(34px, 4vw, 58px); line-height: 1.02; letter-spacing: -.05em; font-weight: 760; margin: 12px 0 0; }
.section-heading > p { color: var(--muted); font-size: 14px; line-height: 1.7; margin: 0; }
.section-heading > div > p { color: var(--muted); font-size: 14px; line-height: 1.7; margin: 0 0 14px; }
.monitoring-coverage { min-height: 32px; display: inline-flex; align-items: center; padding: 7px 10px; border: 1px solid var(--line-strong); color: var(--mint); font: 600 9px var(--mono); letter-spacing: .08em; }
.monitoring-warning { margin: 0 0 18px; padding: 15px 18px; border-left: 3px solid var(--warm); background: rgba(242,180,65,.06); color: var(--muted); font-size: 12px; line-height: 1.65; }
.monitoring-warning strong { color: var(--ink); }
.monitor-lanes { border: 1px solid var(--line-strong); background: var(--panel); }
.monitor-lane { display: grid; grid-template-columns: minmax(190px,.75fr) minmax(300px,1.55fr) minmax(210px,.8fr); gap: 26px; align-items: center; padding: 24px; border-bottom: 1px solid var(--line); }
.monitor-lane:last-child { border-bottom: 0; }
.monitor-copy h3 { margin: 0 0 8px; font-size: 15px; line-height: 1.3; }
.monitor-copy p { margin: 0 0 12px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.monitor-copy a { min-height: 44px; display: inline-flex; align-items: center; color: var(--mint); font: 500 9px var(--mono); text-underline-offset: 4px; }
.monitor-lane svg { display: block; width: 100%; height: auto; min-height: 96px; overflow: visible; }
.monitor-grid-line { stroke: rgba(159,178,192,.13); stroke-width: 1; }
.monitor-zero-line { stroke: rgba(244,248,250,.5); stroke-width: 1; stroke-dasharray: 4 4; }
.monitor-series-line { fill: none; stroke: var(--mint); stroke-width: 2.25; vector-effect: non-scaling-stroke; }
.monitor-series-dot { fill: var(--panel); stroke: var(--mint); stroke-width: 2; }
.monitor-axis-label { fill: var(--muted); font: 9px var(--mono); }
.monitor-latest { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.monitor-latest div { min-width: 0; }
.monitor-latest dt { color: var(--muted); font: 600 8px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.monitor-latest dd { margin: 5px 0 0; color: var(--ink); font: 500 11px/1.4 var(--mono); overflow-wrap: anywhere; }
.monitor-latest div:first-child dd { color: var(--mint); font-size: 16px; }
.monitor-table { grid-column: 1 / -1; margin-top: -8px; border-top: 1px solid var(--line); }
.monitor-table summary { min-height: 44px; padding: 12px 0 0; color: var(--muted); font: 600 9px var(--mono); cursor: pointer; }
.monitor-table-wrap { overflow-x: auto; }
.monitor-table table { width: 100%; border-collapse: collapse; font-size: 11px; }
.monitor-table th, .monitor-table td { padding: 9px 10px; border-top: 1px solid var(--line); text-align: left; }
.monitor-table th { color: var(--muted); font: 600 8px var(--mono); text-transform: uppercase; }
.monitor-table td:last-child { font-family: var(--mono); }
.monitor-next-checks { margin-top: 18px; padding: 22px 24px; display: grid; grid-template-columns: 190px 1fr; gap: 24px; background: rgba(46,224,196,.045); border: 1px solid var(--line); }
.monitor-next-checks h3 { margin: 0; font-size: 16px; }
.monitor-next-checks p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
.monitor-next-checks strong { color: var(--ink); }
.monitoring-section > .data-receipt { margin-top: 12px; }
.farm-heading + .data-receipt { margin: -22px 0 18px; }
.forecast-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(380px, .85fr); gap: 18px; }
.nmme-card, .chart-card, .probability-card { border-top: 1px solid var(--line-strong); padding-top: 22px; min-width: 0; }
.analog-card { margin-top: 66px; }
.card-heading > div:first-child { display: grid; grid-template-columns: 9px 1fr; column-gap: 10px; }
.chart-key { grid-row: span 2; width: 8px; height: 8px; margin-top: 5px; display: block; }
.chart-key.nmme { background: var(--cyan); }
.chart-key.analog { background: var(--mint); }
.chart-key.official { background: var(--warm); }
.card-heading strong { font-size: 14px; font-weight: 600; }
.card-heading small { color: var(--muted); font: 400 9px var(--mono); margin-top: 4px; }
.chart-peak { text-align: right; display: flex; flex-direction: column; }
.chart-peak strong { font: 500 16px var(--mono); margin: 7px 0; white-space: nowrap; }
#forecast-chart { width: 100%; height: auto; margin-top: 22px; overflow: visible; }
.chart-grid { stroke: rgba(159,178,192,.11); stroke-width: 1; }
.chart-axis-label { fill: var(--muted); font: 9px var(--mono); }
.chart-zero { stroke: rgba(159,178,192,.28); stroke-width: 1; }
.chart-threshold { stroke: var(--hot); stroke-width: 1; stroke-dasharray: 4 5; opacity: .55; }
.chart-band { fill: rgba(46,224,196,.10); }
.chart-observed { fill: none; stroke: var(--cream); stroke-width: 2.2; }
.chart-forecast { fill: none; stroke: var(--mint); stroke-width: 2.2; stroke-dasharray: 7 6; }
.chart-dot { fill: var(--deep); stroke: var(--mint); stroke-width: 2; }
.chart-now { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 2 4; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 18px; color: var(--muted); font: 400 9px var(--mono); }
.chart-legend span { display: flex; align-items: center; gap: 7px; }
.chart-legend i { width: 20px; height: 0; border-top: 2px solid var(--cream); }
.chart-legend .forecast-line { border-color: var(--mint); border-style: dashed; }
.chart-legend .threshold-line { border-color: var(--hot); border-style: dotted; }
.model-evidence { margin-top: 24px; border: 1px solid var(--line); background: rgba(242,180,65,.035); }
.model-evidence-state { display: grid; grid-template-columns: 145px minmax(190px, .55fr) 1fr; gap: 18px; align-items: center; padding: 18px 20px; border-left: 3px solid var(--warm); }
.model-evidence-state span { color: var(--warm); font: 600 8px var(--mono); letter-spacing: .1em; }
.model-evidence-state strong { font: 600 12px var(--mono); }
.model-evidence-state p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.model-evidence details { border-top: 1px solid var(--line); }
.model-evidence summary { min-height: 48px; display: flex; align-items: center; padding: 0 20px; color: var(--ink); font: 600 9px var(--mono); cursor: pointer; }
.model-evidence-table-wrap { padding: 0 20px 18px; overflow-x: auto; }
.model-evidence table { width: 100%; min-width: 900px; border-collapse: collapse; font-size: 10px; }
.model-evidence caption { padding: 0 0 14px; color: var(--muted); text-align: left; font-size: 10px; line-height: 1.6; }
.model-evidence th, .model-evidence td { padding: 9px 8px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; }
.model-evidence thead th { color: var(--muted); font: 600 8px var(--mono); text-transform: uppercase; }
.model-evidence tbody th { color: var(--ink); font: 600 9px var(--mono); }
.model-evidence td { color: var(--muted); font-family: var(--mono); }
.model-evidence-boundary { margin: 0; padding: 0 20px 18px; color: var(--muted); font-size: 10px; line-height: 1.65; }
.model-evidence dl { margin: 0; padding: 0 20px 18px; }
.model-evidence dl div { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 9px 0; border-top: 1px solid var(--line); }
.model-evidence dt { color: var(--muted); font: 600 8px var(--mono); text-transform: uppercase; }
.model-evidence dd { margin: 0; color: var(--ink); font-size: 10px; line-height: 1.6; overflow-wrap: anywhere; }
.model-evidence a { color: var(--mint); }
.nmme-state { flex: 0 0 auto; padding: 7px 9px; border: 1px solid rgba(46,224,196,.35); color: var(--mint); font: 500 8px var(--mono); letter-spacing: .08em; }
.nmme-state.expired { border-color: rgba(242,180,65,.45); color: var(--warm); }
.nmme-month-controls { margin-top: 20px; display: grid; grid-template-areas: "prev label select next"; grid-template-columns: auto auto minmax(150px, 210px) auto; justify-content: end; align-items: center; gap: 8px; }
.nmme-month-controls label { grid-area: label; color: var(--muted); font: 500 8px var(--mono); letter-spacing: .08em; }
.nmme-month-controls select { grid-area: select; min-height: 48px; border: 1px solid var(--line-strong); padding: 0 34px 0 12px; background: var(--panel-2); color: var(--ink); font: 500 10px var(--mono); }
.nmme-month-controls button { min-height: 48px; border: 1px solid var(--line); padding-inline: 12px; background: transparent; color: var(--muted); font: 500 8px var(--mono); cursor: pointer; }
#nmme-previous-month { grid-area: prev; }
#nmme-next-month { grid-area: next; }
.nmme-month-controls button:hover:not(:disabled) { border-color: var(--mint); color: var(--ink); }
.nmme-month-controls button:disabled { opacity: .4; cursor: not-allowed; }
.nmme-selected { margin: 16px 0 0; color: var(--ink); font: 500 10px/1.6 var(--mono); }
#nmme-chart { display: block; width: 100%; height: auto; margin-top: 8px; overflow: visible; }
.nmme-grid { stroke: rgba(159,178,192,.11); stroke-width: 1; }
.nmme-zero { stroke: rgba(159,178,192,.38); stroke-width: 1; }
.nmme-band { fill: rgba(24,194,168,.15); }
.nmme-model-line { fill: none; stroke: var(--cream); stroke-width: 1.1; opacity: .32; }
.nmme-mean-line { fill: none; stroke: var(--mint); stroke-width: 3; }
.nmme-selected-line { stroke: var(--warm); stroke-width: 1; stroke-dasharray: 3 4; }
.nmme-selected-dot { fill: var(--deep); stroke: var(--warm); stroke-width: 3; }
.nmme-selected-label { fill: var(--ink); font: 500 10px var(--mono); }
.nmme-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; margin-top: 8px; color: var(--muted); font: 400 9px/1.5 var(--mono); }
.nmme-legend span { display: flex; align-items: center; gap: 8px; }
.nmme-legend i { flex: 0 0 22px; width: 22px; height: 0; border-top: 2px solid var(--mint); }
.nmme-legend .nmme-model-key { border-color: var(--cream); opacity: .45; }
.nmme-legend .nmme-band-key { height: 8px; border: 1px solid rgba(24,194,168,.35); background: rgba(24,194,168,.15); }
.raw-guidance-warning, .nmme-expired { margin: 20px 0 0; padding: 14px 16px; border-left: 3px solid var(--warm); background: rgba(242,180,65,.055); color: var(--muted); font-size: 10px; line-height: 1.6; }
.raw-guidance-warning strong, .nmme-expired { color: var(--ink); }
.nmme-text-alternative, .nmme-receipt { margin-top: 16px; border-top: 1px solid var(--line); }
.nmme-text-alternative summary, .nmme-receipt summary { min-height: 48px; display: flex; align-items: center; color: var(--ink); font: 500 9px var(--mono); cursor: pointer; }
.nmme-table-wrap { min-width: 0; padding-bottom: 8px; }
.nmme-table-wrap table { width: 100%; border-collapse: collapse; font: 400 9px/1.5 var(--mono); }
.nmme-table-wrap caption { padding: 0 0 12px; color: var(--muted); text-align: left; }
.nmme-table-wrap th, .nmme-table-wrap td { padding: 9px 8px; border-top: 1px solid var(--line); text-align: left; }
.nmme-table-wrap thead th { color: var(--muted); font-weight: 500; }
.nmme-table-wrap tbody th { color: var(--ink); font-weight: 500; }
.nmme-table-wrap tr.selected { background: rgba(46,224,196,.07); }
.nmme-receipt dl { margin: 0; padding: 4px 0 8px; }
.nmme-receipt dl div { display: grid; grid-template-columns: 100px 1fr; gap: 14px; padding: 8px 0; border-top: 1px solid var(--line); }
.nmme-receipt dt { color: var(--muted); font: 500 8px var(--mono); text-transform: uppercase; }
.nmme-receipt dd { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.nmme-receipt a { color: var(--ink); text-underline-offset: 3px; }
.probability-labels { display: grid; grid-template-columns: repeat(5, 1fr); font: 400 7px var(--mono); color: var(--muted); margin: 34px 0 12px 53px; gap: 3px; }
.probability-labels span { text-align: center; }
.probability-bars { display: grid; gap: 13px; }
.probability-row { display: grid; grid-template-columns: 43px 1fr; align-items: center; gap: 10px; }
.probability-row > span { font: 500 10px var(--mono); color: #c6d4d0; }
.probability-track { height: 22px; display: flex; background: rgba(255,255,255,.025); }
.probability-track i { min-width: 0; height: 100%; display: grid; place-items: center; overflow: hidden; color: #071416; font: 500 8px var(--mono); font-style: normal; }
.probability-track .neutral { background: #6f8093; color: var(--ink); }
.probability-track .weak { background: #9fb2c0; }
.probability-track .moderate { background: #d7ad5d; }
.probability-track .strong { background: #f2b441; }
.probability-track .very-strong { background: #b87a19; color: #fff; }
.probability-note { color: var(--muted); font-size: 10px; line-height: 1.55; margin: 22px 0 0 53px; }

.farm-section { border-bottom: 1px solid var(--line); padding-bottom: 112px; }
.farm-heading { margin-bottom: 38px; }
.farm-toolbar { min-height: 84px; border: 1px solid var(--line-strong); display: grid; grid-template-columns: minmax(430px, 1fr) 220px 210px; align-items: stretch; }
.field-weather-panel { margin-top: 18px; border: 1px solid var(--line-strong); background: rgba(13,22,29,.58); }
.field-weather-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 28px; align-items: start; padding: 24px; }
.field-weather-head h3 { margin: 8px 0 10px; font-size: 23px; line-height: 1.2; font-weight: 550; letter-spacing: -.03em; }
.field-weather-head p { max-width: 760px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.field-weather-head a { min-height: 44px; display: inline-flex; align-items: center; color: var(--mint); font: 500 9px var(--mono); text-underline-offset: 4px; }
#field-weather-form { display: grid; grid-template-columns: minmax(330px,.85fr) minmax(470px,1.15fr); border-top: 1px solid var(--line); }
.field-location-fields, .field-limit-fields { min-width: 0; margin: 0; padding: 20px 22px; border: 0; }
.field-location-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; border-right: 1px solid var(--line); align-content: start; }
.field-limit-fields { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.field-location-fields legend, .field-limit-fields legend { grid-column: 1 / -1; padding: 0; color: var(--mint); font: 600 9px var(--mono); letter-spacing: .09em; }
.field-location-fields label, .field-limit-fields label { min-width: 0; display: grid; gap: 7px; color: var(--muted); font: 500 8px/1.45 var(--mono); letter-spacing: .06em; }
.field-location-fields input, .field-limit-fields input, .field-limit-fields select { width: 100%; min-height: 48px; border: 1px solid var(--line-strong); border-radius: 6px; padding: 9px 10px; background: var(--deep); color: var(--ink); color-scheme: dark; font: 500 11px var(--mono); }
.field-limit-unit { grid-column: span 2; }
.field-location-privacy, .field-limit-fields > p { grid-column: 1 / -1; margin: 0; color: var(--muted); font: 400 9px/1.6 var(--mono); }
.field-weather-error { grid-column: 1 / -1; min-height: 22px; margin: 0; padding: 0 22px 16px; color: var(--muted); font: 500 10px/1.5 var(--mono); }
.field-weather-error.is-error { color: var(--hot); }
.field-location-fields input[aria-invalid="true"], .field-limit-fields input[aria-invalid="true"] { border-color: var(--hot); box-shadow: 0 0 0 1px var(--hot); }
.field-weather-results { border-top: 1px solid var(--line-strong); padding: 24px; }
.field-weather-result-head { display: grid; grid-template-columns: minmax(280px,1fr) auto; gap: 30px; align-items: end; }
.field-weather-result-head h4 { margin: 7px 0 0; font-size: 27px; font-weight: 550; letter-spacing: -.035em; }
.field-weather-result-head dl { margin: 0; display: grid; grid-template-columns: repeat(4,minmax(110px,1fr)); border: 1px solid var(--line); }
.field-weather-result-head dl div { min-width: 0; padding: 11px 13px; border-right: 1px solid var(--line); }
.field-weather-result-head dl div:last-child { border-right: 0; }
.field-weather-result-head dt { color: var(--muted); font: 500 7px var(--mono); text-transform: uppercase; }
.field-weather-result-head dd { margin: 5px 0 0; color: var(--ink); font: 500 9px/1.45 var(--mono); overflow-wrap: anywhere; }
.field-weather-point-note { margin: 14px 0 0; color: var(--muted); font: 500 9px/1.55 var(--mono); }
.field-weather-point-note.reload-required { padding: 11px 13px; border-left: 3px solid var(--warm); color: var(--warm); background: rgba(242,180,65,.055); }
.field-context-action { margin-top: 14px; padding: 15px 17px; display: grid; grid-template-columns: minmax(0,1fr) minmax(250px,.45fr); gap: 18px; align-items: center; border: 1px solid var(--line); background: rgba(50,213,188,.035); }
.field-context-action h5 { margin: 0; font-size: 13px; }
.field-context-action p { margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; overflow-wrap: anywhere; }
.field-context-control { min-width: 0; }
.field-context-control .action-button { width: 100%; min-height: 48px; white-space: normal; }
.field-context-control p { min-height: 16px; color: var(--mint); font: 500 8px/1.5 var(--mono); }
.field-alerts { margin-top: 20px; padding: 16px; border: 1px solid var(--line); background: rgba(242,180,65,.035); }
.field-alerts h5 { margin: 0 0 11px; font-size: 13px; }
#field-alerts-list { display: grid; gap: 10px; }
.field-alert-none, .field-alert-unavailable { margin: 0; color: var(--muted); font-size: 11px; }
.field-alert-unavailable { color: var(--hot); }
.field-alert { padding: 13px 15px; border-left: 3px solid var(--warm); background: rgba(242,180,65,.055); }
.field-alert > span { color: var(--warm); font: 600 8px var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.field-alert h6 { margin: 6px 0; font-size: 14px; }
.field-alert > p { margin: 0; color: #cbd6dc; font-size: 11px; line-height: 1.55; }
.field-alert > small { display: block; margin-top: 7px; color: var(--muted); font: 400 8px/1.5 var(--mono); }
.field-alert details { margin-top: 10px; border-top: 1px solid var(--line); }
.field-alert summary { min-height: 44px; display: flex; align-items: center; color: var(--ink); font: 500 9px var(--mono); cursor: pointer; }
.field-alert details p { color: var(--muted); font-size: 10px; line-height: 1.65; }
.field-alert details a { min-height: 44px; display: inline-flex; align-items: center; color: var(--mint); font-size: 10px; }
.field-alert-timeline { margin-top: 16px; padding-top: 15px; border-top: 1px solid var(--line); }
.field-alert-timeline > h5 { margin-bottom: 5px; }
.field-alert-timeline > p { margin: 0 0 11px; color: var(--muted); font-size: 10px; }
.field-alert-timeline-visual { display: grid; gap: 5px; }
.field-alert-timeline-grid { min-width: 0; display: grid; grid-template-columns: minmax(150px,1.3fr) repeat(12,minmax(22px,1fr)); gap: 3px; align-items: stretch; }
.field-alert-timeline-label { min-width: 0; padding: 5px 6px; color: #cbd6dc; font: 500 8px/1.4 var(--mono); overflow-wrap: anywhere; }
.field-alert-timeline-window { min-width: 0; padding: 5px 1px; color: var(--muted); font: 600 7px/1.2 var(--mono); text-align: center; }
.field-alert-timeline-window small { display: block; margin-top: 3px; color: #76838b; font-size: 6px; overflow-wrap: anywhere; }
.field-alert-timeline-row i { min-width: 0; min-height: 25px; border: 1px solid var(--line); background: rgba(255,255,255,.018); }
.field-alert-timeline-row i.active { border-color: rgba(242,180,65,.62); background: repeating-linear-gradient(135deg,rgba(242,180,65,.33) 0 4px,rgba(242,180,65,.10) 4px 8px); }
.field-alert-timeline-row i.continues { border-right: 3px double var(--warm); }
.field-alert-timeline details { margin-top: 12px; }
.field-alert-timeline summary { min-height: 44px; display: flex; align-items: center; color: var(--ink); font: 500 9px var(--mono); cursor: pointer; }
.field-alert-timeline-table-wrap { max-width: 100%; overflow-x: auto; }
.field-alert-timeline-table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 9px; }
.field-alert-timeline-table caption { padding: 0 0 10px; color: var(--muted); text-align: left; font-size: 9px; }
.field-alert-timeline-table th, .field-alert-timeline-table td { padding: 8px 7px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; }
.field-alert-timeline-table thead th { color: var(--muted); font: 600 7px var(--mono); text-transform: uppercase; }
.field-alert-timeline-table tbody th { color: var(--ink); font-weight: 550; }
.field-alert-timeline-table a { color: var(--mint); }
.field-weather-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 20px; color: var(--muted); font: 400 8px var(--mono); }
.field-weather-legend span { display: inline-flex; align-items: center; gap: 7px; }
.field-weather-legend i { width: 13px; height: 5px; background: var(--muted); }
.field-weather-legend .match { background: var(--mint); }
.field-weather-legend .outside { background: var(--warm); }
.field-weather-legend .incomplete { background: var(--cool); }
.field-weather-summary { margin: 14px 0 0; padding: 13px 15px; border: 1px solid var(--line); color: #cbd6dc; font-size: 11px; line-height: 1.6; }
.field-weather-windows { margin-top: 12px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.field-weather-window { min-width: 0; padding: 16px; border: 1px solid var(--line); border-top: 3px solid var(--muted); background: var(--panel); }
.field-weather-window[data-limit-state="match"] { border-top-color: var(--mint); }
.field-weather-window[data-limit-state="outside"] { border-top-color: var(--warm); }
.field-weather-window[data-limit-state="incomplete"] { border-top-color: var(--cool); }
.field-window-index { color: var(--muted); font: 500 8px var(--mono); letter-spacing: .08em; }
.field-weather-window h5 { margin: 7px 0 2px; font-size: 15px; }
.field-window-time { margin: 0; color: var(--muted); font: 400 9px var(--mono); }
.field-window-limit { min-height: 34px; margin-top: 12px; display: flex; align-items: center; color: var(--muted); font: 600 9px/1.35 var(--mono); }
.field-window-limit-match { color: var(--mint); }
.field-window-limit-outside { color: var(--warm); }
.field-window-limit-incomplete { color: #76b9c5; }
.field-window-metrics { margin: 0; }
.field-window-metrics div { padding: 9px 0; border-top: 1px solid var(--line); }
.field-window-metrics dt { color: var(--muted); font: 500 7px var(--mono); text-transform: uppercase; }
.field-window-metrics dd { margin: 4px 0 0; color: var(--ink); font: 500 10px/1.45 var(--mono); }
.field-window-probability { margin-top: 10px; }
.field-window-probability span { display: block; margin-bottom: 5px; color: var(--muted); font: 500 7px var(--mono); text-transform: uppercase; }
.field-window-probability progress { width: 100%; height: 10px; border: 0; border-radius: 0; overflow: hidden; background: var(--deep); color: var(--cool); accent-color: var(--cool); }
.field-window-probability progress::-webkit-progress-bar { background: var(--deep); }
.field-window-probability progress::-webkit-progress-value { background: var(--cool); }
.field-window-probability progress::-moz-progress-bar { background: var(--cool); }
.field-window-conditions { min-height: 34px; margin: 10px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.field-window-alert { margin: 9px 0 0; color: var(--warm); font: 500 8px/1.5 var(--mono); }
.field-window-reasons { margin: 10px 0 0; padding-left: 17px; color: #d8c18f; font-size: 9px; line-height: 1.5; }
.field-weather-show-all { display: none; }
.field-hourly-details { margin-top: 20px; border-top: 1px solid var(--line); }
.field-hourly-details summary { min-height: 48px; display: flex; align-items: center; color: var(--ink); font: 600 9px var(--mono); cursor: pointer; }
.field-hourly-table-wrap { overflow-x: auto; }
.field-hourly-table-wrap table { width: 100%; min-width: 900px; border-collapse: collapse; font-size: 10px; }
.field-hourly-table-wrap caption { padding: 0 0 12px; color: var(--muted); text-align: left; font-size: 10px; }
.field-hourly-table-wrap th, .field-hourly-table-wrap td { padding: 9px 8px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; }
.field-hourly-table-wrap th { color: var(--muted); font: 600 8px var(--mono); text-transform: uppercase; }
.field-hourly-table-wrap td { color: #cad5da; }
.field-weather-boundary { margin-top: 20px; padding: 15px 17px; border-left: 3px solid var(--warm); background: rgba(242,180,65,.06); }
.field-weather-boundary strong { font-size: 11px; }
.field-weather-boundary p { margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.field-weather-results > .data-receipt { margin: 15px 0 0; }
.planning-window-panel { margin-top: 18px; border: 1px solid var(--line-strong); background: rgba(19,27,36,.72); display: grid; grid-template-columns: minmax(260px,.72fr) minmax(430px,1.28fr); }
.planning-window-intro { padding: 24px; border-right: 1px solid var(--line); }
.planning-window-intro h3 { margin: 8px 0 11px; font-size: 19px; line-height: 1.25; font-weight: 550; letter-spacing: -.025em; }
.planning-window-intro p { max-width: 48ch; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
#planning-window-form { padding: 20px 22px; }
.planning-window-fields { min-width: 0; margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: minmax(145px,1fr) minmax(145px,1fr) auto auto; gap: 12px; align-items: end; }
.planning-window-fields label { min-width: 0; display: grid; gap: 8px; color: var(--muted); font: 500 8px var(--mono); letter-spacing: .08em; }
.planning-window-fields input { width: 100%; min-height: 44px; border: 1px solid var(--line-strong); border-radius: 6px; padding: 8px 10px; background: var(--deep); color: var(--ink); color-scheme: dark; font: 500 11px var(--mono); }
.planning-window-fields .text-button { white-space: nowrap; }
.planning-window-error { min-height: 18px; margin: 9px 0 0; color: var(--hot); font: 500 9px/1.5 var(--mono); }
.planning-window-brief { grid-column: 1 / -1; border-top: 1px solid var(--line-strong); padding: 24px; }
.planning-brief-head { display: grid; grid-template-columns: minmax(220px,.65fr) minmax(320px,1.35fr); gap: 28px; align-items: end; }
.planning-brief-head h4 { margin: 7px 0 0; font-size: 25px; font-weight: 520; letter-spacing: -.035em; }
.planning-brief-head p { margin: 0; color: #bdcbc7; font-size: 12px; line-height: 1.65; }
.evidence-horizon { margin-top: 22px; border: 1px solid var(--line-strong); background: rgba(9,17,24,.58); }
.evidence-horizon > header { padding: 18px; display: grid; grid-template-columns: minmax(220px,.7fr) minmax(300px,1.3fr); gap: 24px; align-items: end; border-bottom: 1px solid var(--line); }
.evidence-horizon > header h5 { margin: 7px 0 0; font-size: 18px; line-height: 1.25; }
.evidence-horizon > header p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.evidence-plot { padding: 18px; border-bottom: 1px solid var(--line); }
.evidence-plot-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; align-items: baseline; }
.evidence-plot-head h6 { margin: 0; font-size: 13px; }
.evidence-plot-head p { margin: 0; color: var(--muted); font: 500 9px/1.5 var(--mono); }
.evidence-plot svg { width: 100%; height: auto; display: block; margin-top: 12px; overflow: visible; }
.evidence-grid, .evidence-date-grid { stroke: rgba(160,183,193,.16); stroke-width: 1; }
.evidence-date-grid { stroke-dasharray: 2 5; }
.evidence-axis { fill: #93a3aa; font: 10px var(--mono); }
.evidence-axis-label { fill: #b9c7cd; font: 600 10px var(--mono); letter-spacing: .04em; }
.evidence-empty, .evidence-unavailable { fill: #93a3aa; font: 12px var(--mono); }
.evidence-precip-bar { fill: rgba(77,163,190,.32); stroke: #4da3be; stroke-width: 1; }
.evidence-temp-range { stroke: var(--mint); stroke-width: 3; }
.evidence-temp-dot { fill: var(--deep); stroke: var(--mint); stroke-width: 2; }
.evidence-alert-line { stroke: rgba(242,180,65,.65); stroke-width: 3; }
.evidence-alert-band { opacity: .46; }
.evidence-work-window { fill: rgba(50,213,188,.07); stroke: rgba(50,213,188,.26); stroke-width: 1; }
.evidence-work-label { fill: var(--mint); font: 600 10px var(--mono); }
.evidence-lane-line { stroke: rgba(160,183,193,.22); stroke-width: 1; }
.evidence-lane-label { fill: #d3dee2; font: 600 11px var(--mono); }
.evidence-direct-label { fill: #b8c6cc; font: 10px var(--mono); }
.evidence-drought-line { fill: none; stroke: #dc996d; stroke-width: 2.5; }
.evidence-drought-dot { fill: #dc996d; }
.evidence-cpc-bar { stroke-width: 1; }
.evidence-cpc-above { fill: rgba(219,125,91,.35); stroke: #db7d5b; }
.evidence-cpc-below { fill: rgba(74,146,181,.35); stroke: #4a92b5; }
.evidence-cpc-equal-chances { fill: rgba(155,168,172,.25); stroke: #9ba8ac; }
.evidence-cpc-mixed { fill: rgba(217,177,109,.12); stroke: #d9b16d; stroke-dasharray: 4 2; }
.evidence-cpc-archived, .evidence-cpc-incomplete { fill: rgba(155,168,172,.08); stroke: #79888e; stroke-dasharray: 3 3; }
.evidence-cpc-label { fill: #e2eaed; font: 8px var(--mono); }
.evidence-nmme-range { stroke: #9fc2d0; stroke-width: 2; }
.evidence-nmme-mean { fill: var(--deep); stroke: #9fc2d0; stroke-width: 2; }
.evidence-monitor-marker { fill: var(--deep); stroke: var(--mint); stroke-width: 2; }
.evidence-monitor-due { stroke: var(--warm); }
.evidence-monitor-stale, .evidence-monitor-update-failed { stroke: #9ba8ac; stroke-dasharray: 2 1; }
.evidence-monitor-label { fill: #c4d0d5; font: 9px var(--mono); }
.evidence-table-details { padding: 0 18px 18px; }
.evidence-table-details summary { min-height: 48px; display: flex; align-items: center; color: var(--ink); font: 600 9px var(--mono); cursor: pointer; }
.evidence-table-wrap { max-width: 100%; overflow-x: auto; }
.evidence-table-wrap table { width: 100%; min-width: 840px; border-collapse: collapse; font-size: 9px; }
.evidence-table-wrap caption { padding: 0 0 10px; color: var(--muted); text-align: left; font-size: 9px; }
.evidence-table-wrap th, .evidence-table-wrap td { padding: 8px 7px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.45; }
.evidence-table-wrap thead th { color: var(--muted); font: 600 7px var(--mono); text-transform: uppercase; }
.evidence-table-wrap tbody th { color: var(--ink); font-weight: 550; }
.planning-window-cards { margin-top: 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.planning-window-card { min-width: 0; padding: 18px; background: var(--panel); }
.planning-window-card > span, .planning-window-card h5, .planning-window-card strong, .planning-window-card small { display: block; }
.planning-window-card > span { color: var(--mint); font: 500 8px var(--mono); letter-spacing: .08em; }
.planning-window-card h5 { margin: 8px 0 14px; font-size: 16px; }
.planning-window-card dl { margin: 0; display: grid; gap: 11px; }
.planning-window-card dl div { border-top: 1px solid var(--line); padding-top: 10px; }
.planning-window-card dt { color: var(--muted); font: 500 7px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.planning-window-card dd { margin: 5px 0 0; font-size: 11px; line-height: 1.5; }
.planning-window-card small { margin-top: 5px; color: var(--muted); font: 400 8px/1.5 var(--mono); }
.planning-field-checks { margin-top: 22px; }
.planning-field-checks h5 { margin: 0 0 13px; font-size: 14px; }
.planning-check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.planning-check-group { border: 1px solid var(--line); padding: 14px; }
.planning-check-group h6 { margin: 0 0 9px; color: var(--mint); font: 600 8px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.planning-check-group ul { margin: 0; padding-left: 18px; }
.planning-check-group li { margin: 7px 0; color: #c7d3d9; font-size: 10px; line-height: 1.55; }
.planning-check-group li span { color: var(--muted); font: 500 8px var(--mono); white-space: nowrap; }
.planning-boundary { margin-top: 18px; padding: 15px 17px; border-left: 3px solid var(--warm); background: rgba(242,180,65,.06); }
.planning-boundary strong { font-size: 11px; }
.planning-boundary p { margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.planning-window-brief .data-receipt { margin: 15px 0 0; }
.planning-window-brief.expired { border-top-color: rgba(242,180,65,.5); }
.planning-window-brief.expired .planning-window-card { opacity: .88; }
.farm-control-group, .crop-control, .outlook-basis { padding: 16px 18px; display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.farm-control-group, .crop-control { border-right: 1px solid var(--line); }
.farm-control-group > span, .crop-control > span, .outlook-basis span { font: 500 8px var(--mono); color: var(--muted); letter-spacing: .1em; }
.farm-segmented { display: flex; gap: 3px; }
.farm-season { min-height: 44px; border: 1px solid transparent; padding: 7px 10px; background: transparent; color: var(--muted); font: 600 9px var(--mono); cursor: pointer; }
.farm-season:hover { color: var(--ink); border-color: var(--line); }
.farm-season.active { color: #092017; background: var(--mint); }
.crop-control select { width: 100%; min-height: 44px; border: 0; border-bottom: 1px solid var(--line-strong); padding: 8px 22px 8px 4px; background: var(--panel); color: var(--ink); font: 600 11px var(--mono); }
.outlook-basis strong { font: 500 9px var(--mono); color: var(--mint); line-height: 1.4; }
.farm-dashboard { margin-top: 18px; display: grid; grid-template-columns: minmax(480px, 1.15fr) minmax(390px, .85fr); border: 1px solid var(--line-strong); min-height: 690px; }
.coast-panel { display: grid; grid-template-columns: minmax(300px, 1fr) 205px; background: radial-gradient(circle at 25% 48%, rgba(45,130,130,.11), transparent 47%); }
.coast-map-wrap { min-width: 0; position: relative; padding: 20px 16px 16px 24px; display: flex; flex-direction: column; justify-content: center; }
.farm-map-switch { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line-strong); margin-bottom: 10px; }
.farm-map-switch button { min-height: 48px; border: 0; border-right: 1px solid var(--line); background: rgba(19,27,36,.72); color: var(--muted); font: 600 9px var(--mono); letter-spacing: .06em; cursor: pointer; }
.farm-map-switch button:last-child { border-right: 0; }
.farm-map-switch button.active { color: var(--deep); background: var(--mint); }
.map-selection-summary { margin: 0 0 10px; min-height: 20px; color: var(--ink); font: 500 9px/1.55 var(--mono); }
.coast-map { display: block; width: 100%; max-height: 605px; }
.coast-ocean { fill: url(#ocean-fade); }
.coast-state { fill: #182230; stroke: rgba(159,178,192,.26); stroke-width: 1.2; }
.state-border { fill: none; stroke: rgba(219,230,237,.42); stroke-width: 1.25; pointer-events: none; }
.planning-divider { stroke: rgba(219,230,237,.42); stroke-width: 1; pointer-events: none; }
.region-shape { stroke: rgba(234,244,238,.2); stroke-width: 1; opacity: .68; transition: opacity .2s ease, filter .2s ease; pointer-events: none; }
.region-shape.signal-above { fill: #b87a19; }
.region-shape.signal-below { fill: #337f8d; }
.region-shape.signal-equal { fill: #6f8093; }
.region-shape.signal-mixed { fill: #77818e; stroke-dasharray: 5 4; }
.region-shape.signal-unavailable, .region-shape.signal-expired { fill: #4d5966; }
.region-shape.selected { opacity: 1; filter: drop-shadow(0 0 12px rgba(46,224,196,.55)); stroke: var(--mint); stroke-width: 2; }
.map-label text { fill: rgba(234,244,238,.82); font: 500 9px var(--mono); text-anchor: middle; letter-spacing: .06em; pointer-events: none; }
.pacific-label text { fill: rgba(46,224,196,.36); font: 500 9px var(--mono); letter-spacing: .22em; }
.map-legend { display: flex; flex-wrap: wrap; gap: 13px; font: 400 8px var(--mono); color: var(--muted); margin-top: 8px; }
.map-legend span { display: flex; align-items: center; gap: 6px; }
.map-legend i { width: 12px; height: 7px; display: inline-block; }
.map-legend .above { background: #b87a19; }
.map-legend .equal { background: repeating-linear-gradient(135deg,#6f8093 0 3px,#4d5966 3px 6px); }
.map-legend .below { background: #337f8d; }
.coast-map-wrap > small { display: block; margin-top: 10px; color: var(--muted); font: 400 8px/1.55 var(--mono); }
.coast-map-wrap > small a { color: #c9d6dd; text-underline-offset: 2px; }
.unit-reference { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--muted); font: 400 9px/1.5 var(--mono); }
.unit-reference span { white-space: nowrap; }
.unit-reference strong { color: var(--ink); font-weight: 600; }
.region-selector { border-left: 1px solid var(--line); display: grid; grid-template-rows: repeat(6, 1fr); }
.region-button { min-height: 44px; border: 0; border-bottom: 1px solid var(--line); background: rgba(19,27,36,.55); color: var(--muted); display: grid; grid-template-columns: 36px 1fr 9px; align-items: center; gap: 9px; text-align: left; padding: 13px 14px; font-size: 10px; cursor: pointer; }
.region-button:last-child { border-bottom: 0; }
.region-button span { font: 500 9px var(--mono); color: var(--muted); }
.region-button i { width: 6px; height: 6px; border-radius: 50%; background: var(--line-strong); }
.region-button:hover { color: var(--ink); background: rgba(46,224,196,.025); }
.region-button.active { color: var(--ink); background: rgba(46,224,196,.06); box-shadow: inset 2px 0 0 var(--mint); }
.region-button.active span { color: var(--mint); }
.region-button.active i { background: var(--mint); }
.farm-detail { border-left: 1px solid var(--line); background: rgba(24,34,48,.72); padding: 30px; }
.farm-detail-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 22px; }
.farm-detail h3 { font-size: 38px; letter-spacing: -.045em; font-weight: 500; margin: 9px 0 0; }
.farm-watch-level { padding: 7px 9px; border: 1px solid var(--line-strong); font: 500 8px var(--mono); letter-spacing: .08em; white-space: nowrap; }
.farm-watch-level.high { color: var(--hot); border-color: rgba(242,180,65,.45); }
.farm-watch-level.medium { color: var(--mint); border-color: rgba(46,224,196,.35); }
.farm-watch-level.mixed { color: var(--cyan); border-color: rgba(24,194,168,.35); }
.farm-thesis { font-size: 14px; line-height: 1.7; color: #bdcbc7; margin: 23px 0 26px; min-height: 70px; }
.farm-climate-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.farm-climate-grid > div { min-width: 0; padding: 18px 12px 18px 0; border-right: 1px solid var(--line); }
.farm-climate-grid > div:not(:first-child) { padding-left: 12px; }
.farm-climate-grid > div:last-child { border-right: 0; }
.farm-climate-grid span { display: block; color: var(--muted); font: 500 7px var(--mono); letter-spacing: .09em; margin-bottom: 10px; }
.farm-climate-grid strong { display: block; font-size: 12px; line-height: 1.35; font-weight: 600; }
.farm-climate-grid small { display: block; color: var(--muted); font: 400 8px var(--mono); line-height: 1.4; margin-top: 7px; }
.cpc-area-panel { margin-top: 20px; border: 1px solid var(--line-strong); background: rgba(13,22,29,.42); }
.cpc-area-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 16px; border-bottom: 1px solid var(--line); }
.cpc-area-head span { color: var(--mint); font: 600 8px var(--mono); letter-spacing: .08em; }
.cpc-area-head h4 { margin: 6px 0 0; font-size: 14px; }
.cpc-area-rows { display: grid; grid-template-columns: 1fr 1fr; }
.cpc-area-row { min-width: 0; padding: 16px; border-right: 1px solid var(--line); }
.cpc-area-row:last-child { border-right: 0; }
.cpc-area-row > strong { display: block; font-size: 11px; margin-bottom: 10px; }
.cpc-share-bar { display: flex; overflow: hidden; height: 14px; border: 1px solid var(--line-strong); background: #3c4651; }
.cpc-share-bar i { display: block; width: 0; height: 100%; transition: width .2s ease; }
.cpc-share-bar .above { background: #b87a19; }
.cpc-share-bar .below { background: #337f8d; }
.cpc-share-bar .equal { background: repeating-linear-gradient(135deg,#6f8093 0 4px,#596877 4px 8px); }
.cpc-share-bar .missing { background: #2b333b; }
.cpc-area-row small { display: block; min-height: 32px; margin-top: 9px; color: var(--muted); font: 400 8px/1.5 var(--mono); }
.cpc-area-panel .data-receipt { margin: 0; padding: 14px 16px; border-top: 1px solid var(--line); }
.drought-panel { margin-top: 20px; border: 1px solid var(--line-strong); background: rgba(13,22,29,.52); }
.drought-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 16px; border-bottom: 1px solid var(--line); }
.drought-head span { color: var(--mint); font: 600 8px var(--mono); letter-spacing: .08em; }
.drought-head h4 { margin: 6px 0 0; font-size: 14px; }
.drought-controls { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 16px; padding: 16px; border-bottom: 1px solid var(--line); }
.drought-controls label { display: grid; gap: 7px; }
.drought-controls label > span { color: var(--muted); font: 600 8px var(--mono); letter-spacing: .08em; }
.drought-controls select { width: 100%; min-height: 44px; border: 1px solid var(--line-strong); padding: 8px 30px 8px 10px; background: var(--panel); color: var(--ink); font: 600 10px var(--mono); }
.drought-controls p { margin: 0 0 11px; color: var(--muted); font: 500 8px var(--mono); }
.drought-summary-wrap { padding: 16px 16px 13px; }
.drought-summary-wrap p { margin: 0; }
#drought-summary { color: var(--ink); font-size: 12px; line-height: 1.55; }
#drought-area-units, #drought-change { margin-top: 6px; color: var(--muted); font: 400 9px/1.5 var(--mono); }
.drought-share-bar { display: flex; min-height: 28px; margin: 0 16px; overflow: hidden; border: 1px solid rgba(255,255,255,.28); background: #d8dde1; }
.drought-share-bar i { min-width: 0; display: grid; place-items: center; overflow: hidden; color: #101418; font: 700 8px var(--mono); font-style: normal; transition: width .2s ease; }
.drought-share-bar .none { background: repeating-linear-gradient(135deg,#e1e5e8 0 6px,#c9d0d5 6px 12px); }
.drought-share-bar .d0 { background: repeating-linear-gradient(45deg,#ffeb00 0 7px,#f1dc00 7px 14px); }
.drought-share-bar .d1 { background: repeating-linear-gradient(135deg,#fcd37f 0 7px,#efc56c 7px 14px); }
.drought-share-bar .d2 { background: repeating-linear-gradient(45deg,#ffaa00 0 7px,#ef9500 7px 14px); }
.drought-share-bar .d3 { color: #fff; background: repeating-linear-gradient(135deg,#e60000 0 7px,#c90000 7px 14px); }
.drought-share-bar .d4 { color: #fff; background: repeating-linear-gradient(45deg,#730000 0 7px,#560000 7px 14px); }
.drought-legend { list-style: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 14px; margin: 14px 16px 0; padding: 0; color: var(--muted); font: 400 8px/1.4 var(--mono); }
.drought-legend li { min-width: 0; display: flex; align-items: flex-start; gap: 7px; }
.drought-legend i { width: 13px; height: 9px; flex: 0 0 auto; margin-top: 1px; border: 1px solid rgba(255,255,255,.18); }
.drought-legend .none { background: #d8dde1; }
.drought-legend .d0 { background: #ffeb00; }
.drought-legend .d1 { background: #fcd37f; }
.drought-legend .d2 { background: #ffaa00; }
.drought-legend .d3 { background: #e60000; }
.drought-legend .d4 { background: #730000; }
.drought-category-note, .drought-boundary { margin: 12px 16px 0; color: var(--muted); font: 400 9px/1.55 var(--mono); }
.drought-history { margin-top: 14px; border-top: 1px solid var(--line); }
.drought-history summary { min-height: 44px; display: flex; align-items: center; padding: 0 16px; color: var(--ink); font: 600 9px var(--mono); cursor: pointer; }
#drought-trend-chart { display: block; width: calc(100% - 32px); height: auto; margin: 0 16px 8px; border: 1px solid var(--line); background: rgba(9,17,23,.45); }
.drought-grid { stroke: rgba(159,178,192,.18); stroke-width: 1; }
.drought-trend { fill: none; stroke: var(--hot); stroke-width: 2.5; }
.drought-dot { fill: var(--deep); stroke: var(--hot); stroke-width: 2; }
.drought-axis-label { fill: var(--muted); font: 8px var(--mono); }
.drought-table-wrap { overflow-x: auto; padding: 0 16px 14px; }
.drought-table-wrap table { width: 100%; min-width: 520px; border-collapse: collapse; font: 400 8px var(--mono); }
.drought-table-wrap caption { padding: 5px 0 9px; color: var(--muted); text-align: left; }
.drought-table-wrap th, .drought-table-wrap td { padding: 7px 5px; border-top: 1px solid var(--line); text-align: right; }
.drought-table-wrap th:first-child, .drought-table-wrap td:first-child { text-align: left; }
.drought-table-wrap thead th { color: var(--muted); font-weight: 600; }
.drought-boundary { padding-left: 11px; border-left: 2px solid var(--hot); }
.drought-panel .data-receipt { margin: 14px 0 0; padding: 14px 16px; border-top: 1px solid var(--line); }
.farm-actions { padding-top: 25px; }
.farm-actions-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.farm-actions h4 { margin: 0; font-size: 13px; font-weight: 600; }
.farm-actions-head span { font: 400 7px var(--mono); color: var(--muted); letter-spacing: .08em; }
.farm-actions ol { list-style: none; counter-reset: watches; padding: 0; margin: 13px 0 0; }
.farm-actions li { counter-increment: watches; display: grid; grid-template-columns: 30px 1fr auto; gap: 10px; align-items: center; min-height: 55px; border-top: 1px solid var(--line); font-size: 11px; line-height: 1.4; }
.farm-actions li::before { content: "0" counter(watches); color: var(--muted); font: 400 8px var(--mono); }
.farm-actions li span { color: var(--muted); font: 400 8px var(--mono); text-transform: uppercase; }
.farm-confidence { display: flex; gap: 14px; align-items: center; border-top: 1px solid var(--line); margin-top: 6px; padding-top: 20px; }
.farm-confidence > span { width: 50px; height: 50px; flex: 0 0 auto; border: 1px solid var(--mint); border-radius: 50%; display: grid; place-items: center; color: var(--mint); font: 500 7px var(--mono); }
.farm-confidence p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.farm-confidence strong { color: var(--ink); font-size: 10px; }
.farm-insight-grid { display: grid; grid-template-columns: 1.08fr .92fr; border: 1px solid var(--line-strong); border-top: 0; }
.pressure-panel, .profile-panel { min-width: 0; padding: 25px; }
.profile-panel { border-left: 1px solid var(--line); }
.insight-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.insight-head h3 { margin: 7px 0 0; font-size: 18px; font-weight: 500; letter-spacing: -.025em; }
.insight-head > span { font: 500 8px var(--mono); color: var(--mint); letter-spacing: .08em; }
.pressure-table-wrap { overflow-x: auto; margin-top: 23px; overscroll-behavior-inline: contain; }
.mobile-scroll-cue { display: none; margin: 0 0 8px; color: var(--mint); font: 600 10px/1.4 var(--mono); }
.pressure-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.pressure-table caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.pressure-table th, .pressure-table td { border-bottom: 1px solid var(--line); padding: 9px 6px; text-align: center; }
.pressure-table thead th { color: var(--muted); font: 400 7px var(--mono); line-height: 1.3; letter-spacing: .04em; }
.pressure-table thead th:first-child, .pressure-table tbody th { width: 86px; text-align: left; }
.pressure-table tbody th { color: #c8d5d1; font: 500 9px var(--mono); }
.pressure-cell { cursor: default; }
.pressure-cell span { width: 100%; min-height: 22px; display: grid; place-items: center; color: #071416; font: 500 8px var(--mono); }
.pressure-cell.p0 span { background: rgba(159,178,192,.16); color: var(--muted); }
.pressure-cell.p1 span { background: #6f8093; }
.pressure-cell.p2 span { background: #b58d43; }
.pressure-cell.p3 span { background: #f2b441; }
.pressure-cell.expired span { background: rgba(159,178,192,.12); color: var(--muted); }
.pressure-table tr.selected th { color: var(--mint); }
.pressure-table tr.selected { background: rgba(46,224,196,.035); }
.pressure-legend, .profile-legend { display: flex; flex-wrap: wrap; gap: 13px; color: var(--muted); font: 400 8px var(--mono); margin-top: 15px; }
.insight-note { max-width: 62ch; margin: 12px 0 0; color: var(--muted); font: 400 9px/1.6 var(--mono); }
.pressure-legend span, .profile-legend span { display: flex; align-items: center; gap: 6px; }
.pressure-legend i, .profile-legend i { width: 14px; height: 6px; display: inline-block; }
.pressure-legend .p0 { background: rgba(159,178,192,.16); }
.pressure-legend .p1 { background: #6f8093; }
.pressure-legend .p2 { background: #b58d43; }
.pressure-legend .p3 { background: #f2b441; }
#farm-profile { display: block; width: 100%; height: auto; margin-top: 20px; overflow: visible; }
.profile-grid { stroke: rgba(159,178,192,.12); stroke-width: 1; }
.profile-axis { fill: var(--muted); font: 8px var(--mono); }
.profile-heat { fill: none; stroke: var(--hot); stroke-width: 2.3; }
.profile-deficit { fill: none; stroke: var(--warm); stroke-width: 2.3; }
.profile-moisture { fill: none; stroke: var(--cyan); stroke-width: 2.3; }
.profile-dot-heat { fill: var(--deep); stroke: var(--hot); stroke-width: 2; }
.profile-dot-deficit { fill: var(--deep); stroke: var(--warm); stroke-width: 2; }
.profile-dot-moisture { fill: var(--deep); stroke: var(--cyan); stroke-width: 2; }
.profile-value { fill: var(--ink); font: 8px var(--mono); }
.profile-legend .heat { background: var(--hot); }
.profile-legend .deficit { background: var(--warm); }
.profile-legend .moisture { background: var(--cyan); }
.coast-season-strip { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line-strong); border-top: 0; }
.coast-season-strip > div { min-width: 0; padding: 19px; border-right: 1px solid var(--line); }
.coast-season-strip > div:last-child { border-right: 0; }
.coast-season-strip span, .coast-season-strip strong, .coast-season-strip small { display: block; }
.coast-season-strip span { font: 500 8px var(--mono); letter-spacing: .08em; color: var(--mint); }
.coast-season-strip strong { font-size: 12px; margin: 8px 0 6px; }
.coast-season-strip small { color: var(--muted); font-size: 9px; line-height: 1.5; }

.scenario-section { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(420px,1.15fr) 250px; gap: 64px; align-items: end; border-bottom: 1px solid var(--line); padding-bottom: 110px; }
.scenario-copy p { color: var(--muted); font-size: 13px; line-height: 1.65; margin: 22px 0 0; }
.scenario-controls { display: grid; gap: 28px; }
.scenario-controls label > span { display: flex; justify-content: space-between; font: 500 11px var(--mono); }
.scenario-controls output { color: var(--mint); }
.scenario-controls input { display: block; width: 100%; margin: 16px 0 7px; accent-color: var(--mint); }
.scenario-controls small { display: flex; justify-content: space-between; color: var(--muted); font: 400 7px var(--mono); letter-spacing: .06em; }
.scenario-controls small b { color: var(--ink); font-weight: 400; }
.scenario-controls button { justify-self: start; min-height: 44px; border: 0; color: var(--ink); background: none; padding: 10px 0; font-size: 11px; text-decoration: underline; text-underline-offset: 5px; cursor: pointer; }
.scenario-result { border-left: 1px solid var(--line-strong); padding-left: 26px; }
.scenario-result span { font: 500 9px var(--mono); color: var(--muted); letter-spacing: .09em; }
.scenario-result strong { display: block; font: 500 38px var(--mono); color: var(--mint); margin: 10px 0; }
.scenario-result p { color: var(--muted); font-size: 10px; line-height: 1.5; margin: 0; }

.data-status-section { border-bottom: 1px solid var(--line); padding-bottom: 110px; }
.status-grid { margin: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid var(--line-strong); background: var(--panel); }
.status-grid > div { min-width: 0; padding: 20px; border-right: 1px solid var(--line); }
.status-grid > div:nth-child(5n) { border-right: 0; }
.status-grid > div:nth-child(n+6) { border-top: 1px solid var(--line); }
.status-grid dt { color: var(--muted); font: 600 8px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.status-grid dd { margin: 12px 0 0; color: var(--ink); font-size: 12px; line-height: 1.55; }
.status-grid dd::before { content: ""; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; display: inline-block; background: var(--warm); box-shadow: 0 0 10px rgba(242,180,65,.36); }

.limits-section { padding-bottom: 110px; border-bottom: 1px solid var(--line); }
.limits-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line-strong); }
.limits-grid article { padding: 24px; border-right: 1px solid var(--line); background: rgba(24,34,48,.55); }
.limits-grid article:last-child { border-right: 0; }
.limits-grid h3 { margin: 0 0 12px; color: var(--ink); font-size: 15px; line-height: 1.3; }
.limits-grid p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.limits-callout { margin: 16px 0 0; padding: 18px 20px; border-left: 3px solid var(--warm); color: var(--muted); background: rgba(242,180,65,.07); font-size: 13px; line-height: 1.65; }
.limits-callout strong { color: var(--ink); }

.sources-section { display: grid; grid-template-columns: 320px 1fr; gap: 80px; padding-bottom: 120px; }
.source-list { border-top: 1px solid var(--line-strong); }
.source-link { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 12px; min-height: 62px; border-bottom: 1px solid var(--line); text-decoration: none; font-size: 12px; }
.source-link span:first-child { color: var(--muted); font: 400 9px var(--mono); }
.source-link span:last-child { color: var(--mint); }
.source-link:hover { background: rgba(46,224,196,.035); }
.site-footer { border-top: 1px solid var(--line); min-height: 128px; display: grid; grid-template-columns: 1fr minmax(300px, 1.5fr) auto; gap: 30px; align-items: center; color: var(--muted); font-size: 11px; line-height: 1.55; }
.site-footer p { margin: 0; text-align: center; }
.footer-brand { display: grid; gap: 5px; }
.footer-brand strong { color: var(--ink); font-size: 14px; }
.footer-brand span { font: 500 9px var(--mono); }
.footer-links { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 2px 10px; }
.footer-links a { min-height: 44px; padding: 11px 4px; display: inline-flex; align-items: center; color: var(--ink); text-decoration: none; }
.footer-links a:hover { color: var(--mint); }

.legal-main { width: min(900px, calc(100% - 48px)); padding: 112px 0 80px; }
.legal-main h1 { max-width: 760px; margin: 14px 0 22px; font-size: clamp(42px, 7vw, 78px); line-height: .98; letter-spacing: -.055em; }
.legal-lead { max-width: 720px; margin: 0 0 58px; color: var(--muted); font-size: 18px; line-height: 1.65; }
.legal-main section { padding: 28px 0; border-top: 1px solid var(--line); }
.legal-main section h2 { margin: 0 0 13px; font-size: 21px; }
.legal-main section p { max-width: 760px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.legal-main a { color: var(--mint); }
.legal-footer { width: min(900px, calc(100% - 48px)); }

dialog { width: min(630px, calc(100% - 32px)); border: 1px solid var(--line-strong); background: var(--panel-2); color: var(--ink); padding: 0; box-shadow: 0 30px 100px rgba(0,0,0,.55); }
dialog::backdrop { background: rgba(0,8,10,.78); backdrop-filter: blur(5px); }
dialog form { padding: 42px; position: relative; }
dialog h2 { font-size: 34px; letter-spacing: -.04em; margin: 14px 0 22px; }
dialog p { color: #b7c7c3; font-size: 13px; line-height: 1.7; }
.dialog-close { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border: 0; background: transparent; color: var(--ink); font-size: 27px; cursor: pointer; }
dialog dl { margin: 25px 0; border-top: 1px solid var(--line); }
dialog dl div { display: grid; grid-template-columns: 130px 1fr; gap: 18px; padding: 13px 0; border-bottom: 1px solid var(--line); }
dialog dt { font: 500 9px var(--mono); color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
dialog dd { margin: 0; font-size: 12px; }
.dialog-warning { color: var(--cream); border-left: 2px solid var(--hot); padding-left: 14px; margin-bottom: 0; }

@media (max-width: 1050px) {
  .topbar { flex-wrap: wrap; padding-block: 9px; }
  .public-nav { order: 3; width: 100%; margin: 4px 0 0; padding: 4px 0 0; border-top: 1px solid var(--line); }
  .hero { grid-template-columns: 1fr; }
  .hero-status { max-width: 360px; }
  .instrument-grid { grid-template-columns: 1fr; }
  .signal-panel { border-left: 0; border-top: 1px solid var(--line); }
  .metrics { display: grid; grid-template-columns: repeat(2, 1fr); column-gap: 26px; }
  .monitor-lane { grid-template-columns: minmax(180px,.65fr) minmax(280px,1.35fr); }
  .monitor-latest { grid-column: 1 / -1; grid-template-columns: repeat(4, 1fr); }
  .forecast-layout { grid-template-columns: 1fr; gap: 64px; }
  .farm-toolbar { grid-template-columns: 1fr 1fr; }
  #field-weather-form { grid-template-columns: 1fr; }
  .field-location-fields { border-right: 0; border-bottom: 1px solid var(--line); }
  .field-weather-windows { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .field-weather-result-head { grid-template-columns: 1fr; }
  .farm-control-group { grid-column: span 2; border-right: 0; border-bottom: 1px solid var(--line); }
  .crop-control { border-right: 1px solid var(--line); }
  .farm-dashboard { grid-template-columns: 1fr; }
  .farm-detail { border-left: 0; border-top: 1px solid var(--line); }
  .farm-insight-grid { grid-template-columns: 1fr; }
  .profile-panel { border-left: 0; border-top: 1px solid var(--line); }
  .scenario-section { grid-template-columns: 1fr 1fr; }
  .scenario-result { grid-column: 2; }
  .sources-section { grid-template-columns: 240px 1fr; }
  .status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .status-grid > div, .status-grid > div:nth-child(5n) { border-right: 1px solid var(--line); border-top: 1px solid var(--line); }
  .status-grid > div:nth-child(-n+2) { border-top: 0; }
  .status-grid > div:nth-child(2n) { border-right: 0; }
  .limits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .limits-grid article { border-bottom: 1px solid var(--line); }
  .limits-grid article:nth-child(2) { border-right: 0; }
  .limits-grid article:nth-child(3), .limits-grid article:nth-child(4) { border-bottom: 0; }
  .site-footer { grid-template-columns: 1fr 1.4fr; }
  .footer-links { grid-column: 1 / -1; justify-content: flex-start; }
}

@media (max-width: 900px) {
  .planning-window-panel { grid-template-columns: 1fr; }
  .planning-window-intro { border-right: 0; border-bottom: 1px solid var(--line); }
  .planning-window-fields { grid-template-columns: minmax(145px, 1fr) minmax(145px, 1fr); }
  .planning-window-fields .action-button, .planning-window-fields .text-button { width: 100%; justify-content: center; }
}

@media (max-width: 700px) {
  html { scroll-padding-top: 150px; }
  .topbar { min-height: 0; height: auto; padding: 9px 18px 7px; column-gap: 8px; }
  .topbar .eyebrow { display: none; }
  .brand-copy strong { font-size: 12px; }
  .brand-copy small { font-size: 8px; }
  .public-nav { gap: 0; overflow-x: auto; }
  .public-nav a, .public-nav .text-button { flex: 0 0 auto; padding-inline: 9px; }
  .topbar-meta { gap: 10px; }
  main, footer { padding-inline: 18px; }
  .hero { min-height: 0; padding: 58px 0 52px; gap: 40px; }
  h1 { font-size: clamp(42px, 13vw, 62px); }
  .instrument-head { height: auto; min-height: 92px; align-items: flex-start; flex-direction: column; padding-block: 18px; }
  .segmented { width: 100%; }
  .segment { flex: 1; padding-inline: 5px; }
  #globe { height: 470px; }
  .globe-tools { top: 18px; right: 18px; }
  .globe-readout { right: 18px; bottom: 18px; }
  .bottom-left { bottom: 18px; left: 18px; }
  .scale-row { display: none; }
  .signal-panel { padding: 23px 20px; }
  .metrics { grid-template-columns: 1fr; }
  .time-control { grid-template-columns: 44px 1fr; }
  .time-control label { grid-column: 2; }
  .time-control input { grid-column: 2; }
  .time-endpoints { grid-column: 2; }
  .text-alternative-grid { grid-template-columns: 1fr; gap: 16px; padding-inline: 18px; }
  .text-alternative-grid dl div { grid-template-columns: 1fr; gap: 3px; }
  .monitoring-section, .forecast-section, .farm-section, .scenario-section, .data-status-section, .limits-section, .sources-section { padding-top: 82px; }
  .section-heading { grid-template-columns: 1fr; gap: 22px; }
  .monitor-lane { display: block; padding: 20px 16px; }
  .monitor-lane svg { margin: 16px 0 12px; min-height: 72px; }
  .monitor-latest { grid-template-columns: 1fr 1fr; }
  .monitor-table { margin-top: 14px; }
  .monitor-table-wrap { overflow: visible; }
  .monitor-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .monitor-table tbody, .monitor-table tr, .monitor-table td { display: block; }
  .monitor-table tr { padding: 8px 0; border-top: 1px solid var(--line); }
  .monitor-table td { display: grid; grid-template-columns: 115px 1fr; gap: 10px; padding: 4px 0; border-top: 0; }
  .monitor-table td::before { content: attr(data-label); color: var(--muted); font: 600 8px var(--mono); text-transform: uppercase; }
  .monitor-next-checks { grid-template-columns: 1fr; gap: 10px; padding: 20px 18px; }
  .analog-card { margin-top: 56px; }
  .model-evidence-state { grid-template-columns: 1fr; gap: 7px; padding: 16px; }
  .model-evidence-table-wrap { padding: 0 16px 16px; overflow: visible; }
  .model-evidence table { min-width: 0; }
  .model-evidence thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .model-evidence tbody, .model-evidence tr { display: block; }
  .model-evidence tr { padding: 9px 0; border-top: 1px solid var(--line); }
  .model-evidence th, .model-evidence td { display: grid; grid-template-columns: minmax(105px, .7fr) 1.3fr; gap: 10px; padding: 5px 0; border-top: 0; }
  .model-evidence th::before, .model-evidence td::before { content: attr(data-label); color: var(--muted); font: 600 8px var(--mono); text-transform: uppercase; }
  .model-evidence dl div { grid-template-columns: 1fr; gap: 4px; }
  .nmme-month-controls { grid-template-areas: "label label" "select select" "prev next"; grid-template-columns: 1fr 1fr; justify-content: stretch; }
  .nmme-month-controls select { width: 100%; }
  .nmme-month-controls button { width: 100%; }
  .nmme-selected { margin-top: 14px; font-size: 11px; }
  #nmme-chart { min-height: 0; }
  .nmme-model-line { display: none; }
  .nmme-legend .nmme-model-legend-item { display: none; }
  .nmme-legend { grid-template-columns: 1fr; }
  .nmme-table-wrap thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .nmme-table-wrap tbody, .nmme-table-wrap tr { display: block; }
  .nmme-table-wrap tr { padding: 8px 0; border-top: 1px solid var(--line); }
  .nmme-table-wrap tr.selected { padding-inline: 8px; }
  .nmme-table-wrap th, .nmme-table-wrap td { display: grid; grid-template-columns: minmax(105px, .8fr) 1fr; gap: 10px; padding: 5px 0; border-top: 0; }
  .nmme-table-wrap th::before, .nmme-table-wrap td::before { content: attr(data-label); color: var(--muted); font-size: 8px; font-weight: 500; text-transform: uppercase; }
  .nmme-receipt dl div { grid-template-columns: 1fr; gap: 4px; }
  .probability-labels { display: none; }
  .probability-bars { margin-top: 30px; }
  .scenario-section { grid-template-columns: 1fr; gap: 45px; padding-bottom: 78px; }
  .scenario-result { grid-column: 1; }
  .status-grid { grid-template-columns: 1fr; }
  .status-grid > div, .status-grid > div:nth-child(5n), .status-grid > div:nth-child(2n), .status-grid > div:nth-child(-n+2) { border-right: 0; border-top: 1px solid var(--line); }
  .status-grid > div:first-child { border-top: 0; }
  .limits-grid { grid-template-columns: 1fr; }
  .limits-grid article, .limits-grid article:nth-child(2), .limits-grid article:nth-child(3) { border-right: 0; border-bottom: 1px solid var(--line); }
  .limits-grid article:last-child { border-bottom: 0; }
  .sources-section { grid-template-columns: 1fr; gap: 35px; padding-bottom: 80px; }
  .site-footer { grid-template-columns: 1fr; gap: 14px; padding-block: 28px; }
  .site-footer p { text-align: left; }
  .footer-links { grid-column: 1; }
  dialog form { padding: 36px 24px 26px; }
  dialog dl div { grid-template-columns: 90px 1fr; }
}

@media (max-width: 700px) {
  .farm-section { padding-bottom: 80px; }
  .farm-toolbar { grid-template-columns: 1fr; }
  .farm-control-group { grid-column: 1; }
  .farm-control-group, .crop-control { border-right: 0; border-bottom: 1px solid var(--line); }
  .farm-segmented { display: grid; grid-template-columns: repeat(2, 1fr); }
  .farm-season { padding-block: 10px; }
  .field-weather-head { grid-template-columns: 1fr; gap: 12px; padding: 20px 16px; }
  .field-weather-head h3 { font-size: 21px; }
  .field-weather-head a { width: fit-content; }
  .field-location-fields, .field-limit-fields { padding: 18px 16px; }
  .field-location-fields { grid-template-columns: 1fr; }
  .field-limit-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .field-limit-unit { grid-column: span 2; }
  .field-location-fields input, .field-limit-fields input, .field-limit-fields select { min-height: 48px; font-size: 16px; }
  .field-location-fields .action-button { width: 100%; }
  .field-weather-error { padding: 0 16px 16px; }
  .field-weather-results { padding: 20px 16px; }
  .field-weather-result-head { grid-template-columns: 1fr; gap: 15px; }
  .field-weather-result-head h4 { font-size: 23px; }
  .field-weather-result-head dl { grid-template-columns: 1fr; }
  .field-weather-result-head dl div { border-right: 0; border-bottom: 1px solid var(--line); }
  .field-weather-result-head dl div:last-child { border-bottom: 0; }
  .field-weather-windows { grid-template-columns: 1fr; }
  .field-weather-window-later { display: none; }
  .field-weather-results.show-all-windows .field-weather-window-later { display: block; }
  .field-weather-show-all { width: 100%; margin-top: 12px; display: inline-flex; min-height: 48px; }
  .field-context-action { grid-template-columns: 1fr; padding: 15px; }
  .field-context-control .action-button { width: 100%; }
  .field-alert-timeline-grid { grid-template-columns: repeat(12,minmax(0,1fr)); gap: 2px; }
  .field-alert-timeline-label { grid-column: 1 / -1; padding: 6px 0 3px; }
  .field-alert-timeline-window { padding-inline: 0; font-size: 6px; }
  .field-alert-timeline-window small { display: none; }
  .field-alert-timeline-row i { min-height: 22px; }
  .field-alert-timeline-table-wrap { overflow-x: auto; }
  .field-hourly-table-wrap { overflow: visible; }
  .field-hourly-table-wrap table { min-width: 0; }
  .field-hourly-table-wrap thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .field-hourly-table-wrap tbody, .field-hourly-table-wrap tr, .field-hourly-table-wrap td { display: block; }
  .field-hourly-table-wrap tr { padding: 9px 0; border-top: 1px solid var(--line); }
  .field-hourly-table-wrap td { display: grid; grid-template-columns: minmax(105px,.8fr) 1.2fr; gap: 10px; padding: 5px 0; border-top: 0; }
  .field-hourly-table-wrap td::before { content: attr(data-label); color: var(--muted); font: 600 8px var(--mono); text-transform: uppercase; }
  .planning-window-panel { grid-template-columns: 1fr; }
  .planning-window-intro { border-right: 0; border-bottom: 1px solid var(--line); }
  #planning-window-form { padding: 18px; }
  .planning-window-fields { grid-template-columns: 1fr; }
  .planning-window-fields .action-button, .planning-window-fields .text-button { width: 100%; justify-content: center; }
  .planning-brief-head { grid-template-columns: 1fr; gap: 12px; }
  .planning-window-brief { padding: 20px 16px; }
  .evidence-horizon > header { grid-template-columns: 1fr; gap: 10px; }
  .evidence-plot { padding: 16px 10px; overflow: hidden; }
  .evidence-plot svg { min-width: 0; }
  .evidence-table-details { padding: 0 10px 14px; }
  .planning-window-cards, .planning-check-grid { grid-template-columns: 1fr; }
  .coast-panel { grid-template-columns: 1fr; }
  .coast-map-wrap { padding: 18px; }
  .coast-map { max-height: 360px; }
  .map-label text { font-size: 17px; letter-spacing: .02em; }
  .pacific-label text { font-size: 13px; letter-spacing: .08em; }
  .unit-reference { display: grid; grid-template-columns: 1fr; gap: 5px; font-size: 10px; }
  .region-selector { border-left: 0; border-top: 1px solid var(--line); grid-template-rows: none; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .region-button { min-width: 0; min-height: 64px; grid-template-columns: 30px 1fr 8px; grid-template-rows: 1fr; gap: 7px; padding: 10px; text-align: left; font-size: 11px; line-height: 1.3; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .region-button:nth-child(3n) { border-right: 0; }
  .region-button:nth-child(n+4) { border-bottom: 0; }
  .region-button span { font-size: 11px; }
  .region-button i { margin: 0; }
  .region-button.active { box-shadow: inset 0 2px 0 var(--mint); }
  .farm-detail { padding: 24px 18px; }
  .farm-detail h3 { font-size: 32px; }
  .farm-detail-head { flex-direction: column; }
  .farm-thesis { min-height: 0; }
  .farm-climate-grid { grid-template-columns: 1fr; }
  .farm-climate-grid > div, .farm-climate-grid > div:not(:first-child) { border-right: 0; border-bottom: 1px solid var(--line); padding: 15px 0; }
  .farm-climate-grid > div:last-child { border-bottom: 0; }
  .cpc-area-rows { grid-template-columns: 1fr; }
  .cpc-area-row { border-right: 0; border-bottom: 1px solid var(--line); }
  .cpc-area-row:last-child { border-bottom: 0; }
  .drought-head, .drought-controls { grid-template-columns: 1fr; flex-direction: column; align-items: stretch; }
  .drought-controls p { margin: 0; }
  .drought-legend { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .drought-table-wrap { overflow: visible; }
  .drought-table-wrap table { min-width: 0; }
  .drought-table-wrap thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .drought-table-wrap tbody, .drought-table-wrap tr { display: block; }
  .drought-table-wrap tr { padding: 9px 0; border-top: 1px solid var(--line); }
  .drought-table-wrap tbody th, .drought-table-wrap td { display: grid; grid-template-columns: minmax(105px,.9fr) 1fr; gap: 10px; padding: 4px 0; border-top: 0; text-align: right; }
  .drought-table-wrap tbody th::before, .drought-table-wrap td::before { content: attr(data-label); color: var(--muted); font-weight: 600; text-align: left; text-transform: uppercase; }
  .coast-season-strip { grid-template-columns: 1fr 1fr; }
  .coast-season-strip > div { border-bottom: 1px solid var(--line); }
  .coast-season-strip > div:nth-child(2) { border-right: 0; }
  .coast-season-strip > div:nth-child(3), .coast-season-strip > div:nth-child(4) { border-bottom: 0; }
  .farm-actions li { grid-template-columns: 26px 1fr; padding: 8px 0; }
  .farm-actions li span { grid-column: 2; }
  .pressure-panel, .profile-panel { padding: 22px 14px; }
  .mobile-scroll-cue { display: block; }
  .pressure-table { min-width: 560px; }
  .pressure-table thead th:first-child, .pressure-table tbody th { position: sticky; left: 0; z-index: 1; background: #182230; box-shadow: 1px 0 0 var(--line-strong); }
  .pressure-table thead th:first-child { z-index: 2; }
  .probability-card .data-receipt { margin-left: 0; }
}

@media (max-width: 480px) {
  .field-limit-fields { grid-template-columns: 1fr; }
  .field-limit-unit { grid-column: 1; }
  .evidence-horizon { margin-left: -6px; margin-right: -6px; }
  .evidence-horizon > header { padding: 16px 12px; }
  .evidence-plot-head { display: block; }
  .evidence-plot-head p { margin-top: 6px; font-size: 10px; }
  .evidence-lane-label, .evidence-axis-label { font-size: 16px; }
  .evidence-direct-label, .evidence-work-label, .evidence-cpc-label, .evidence-monitor-label, .evidence-axis, .evidence-unavailable { font-size: 14px; }
  .region-selector { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .region-button:nth-child(3n) { border-right: 1px solid var(--line); }
  .region-button:nth-child(2n) { border-right: 0; }
  .region-button:nth-child(n+4) { border-bottom: 1px solid var(--line); }
  .region-button:nth-child(n+5) { border-bottom: 0; }
  .cpc-area-head { flex-direction: column; }
  .drought-head { flex-direction: column; }
  .drought-legend { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

input[type="range"] { min-height: 44px; }

@media print {
  :root { color-scheme: light; --ink: #0e141b; --muted: #435263; --deep: #fff; --panel: #fff; --panel-2: #f4f8fa; --line: rgba(14,20,27,.18); --line-strong: rgba(14,20,27,.35); }
  body { background: #fff; color: #0e141b; }
  body::before, .noise, .topbar, .hero-actions, .globe-tools, .time-control, .scenario-section, dialog, #planning-window-form, .nmme-month-controls { display: none !important; }
  .model-evidence details:not([open]) > *:not(summary) { display: block !important; }
  .drought-history:not([open]) > *:not(summary) { display: block !important; }
  main, .site-footer { width: 100%; max-width: none; padding-inline: 0; }
  .hero { min-height: 0; padding: 20px 0 28px; }
  h1 { font-size: 40px; }
  .instrument-shell, .monitor-lanes, .planning-window-panel, .evidence-horizon, .farm-dashboard, .farm-insight-grid, .status-grid, .limits-grid { break-inside: avoid; box-shadow: none; }
  .evidence-table-details { display: block; }
  .evidence-table-details > summary { display: none; }
  .evidence-table-details:not([open]) > *:not(summary) { display: block !important; }
  .monitoring-section, .forecast-section, .farm-section, .data-status-section, .limits-section, .sources-section { padding-top: 36px; }
  .source-link { color: #0e141b; }
  .site-footer { margin-top: 32px; }
}
