/* Signed-in dashboard, stage 2 — analytics pages (scoped to body.is-dash): Season,
   Water and the Map (its Layers panel, popups, controls and the Wind view). Flat zinc
   surfaces and 1px borders; long lists page inside their panels. Overrides the marsh
   look in water.css and map.css. */

/* Season: Mine / Club beside the title, view chips under it, the four stat cards,
   then the ranked boxes in a grid — one column, two from 1280px, three from 1680px. */
.is-dash .d-season-page .page-hero .view-chips { margin-top: 2px; }
.is-dash .d-season-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 1280px) {
  .is-dash .d-season-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1680px) {
  .is-dash .d-season-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.is-dash .d-season-grid > .panel { align-content: start; }
/* A view with one box (By blind / By person / By species) spans the whole grid. */
.is-dash .d-season-grid > .panel:only-child { grid-column: 1 / -1; }
/* Every row's value column the same width, so the share bars end in one line. */
.is-dash .d-season-page .rank-value { min-width: 6ch; text-align: right; }
.is-dash .d-season-page .d-col-blind { width: 100%; }
.is-dash .d-season-page .d-col-blind .d-cell-trunc { max-width: 32ch; }
.is-dash .d-season-page .d-col-date { color: var(--d-text-2); }

/* Water: flat station panels — Sturlese Marsh on the left, the other stations and the
   paged river gauges on the right from 1280px; one column below. */
.is-dash .water-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 16px; }
.is-dash .water-col { display: grid; align-content: start; gap: 16px; min-width: 0; }
@media (min-width: 1280px) {
  .is-dash .water-layout--split { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}
.is-dash .water-card { gap: 14px; }
.is-dash .water-head { align-items: flex-start; }
.is-dash .water-title { margin: 0; font: 600 14px/1.4 var(--d-sans); letter-spacing: normal; }
.is-dash .water-stamp { margin-top: 2px; color: var(--d-muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.is-dash .water-stamp.is-old { color: var(--d-amber); }
.is-dash .water-info, .is-dash .water-arrow, .is-dash .map-popup-close {
  display: inline-grid; place-items: center; flex: none; width: 32px; height: 32px; padding: 0; border: 1px solid var(--d-border);
  border-radius: var(--d-radius); background: var(--d-raised); color: var(--d-text-2); font: 400 16px/1 var(--d-sans); cursor: pointer;
}
.is-dash .water-info:hover, .is-dash .water-arrow:hover:not(:disabled), .is-dash .map-popup-close:hover {
  background: var(--d-hover); border-color: var(--d-border-strong); color: var(--d-text);
}
.is-dash .water-info:active, .is-dash .water-arrow:active:not(:disabled), .is-dash .map-popup-close:active { background: var(--d-selected); }
.is-dash .water-info[aria-expanded="true"] { background: var(--d-selected); border-color: var(--d-border-strong); color: var(--d-text); }
.is-dash .water-arrow .icon { width: 14px; height: 14px; }
.is-dash .water-arrow:disabled { opacity: 0.4; cursor: default; }
.is-dash .water-headlines { gap: 12px; }
.is-dash .water-metric { gap: 2px; }
.is-dash .water-label { color: var(--d-muted); font-size: 12px; font-weight: 500; }
.is-dash .water-value { color: var(--d-text); font: 600 18px/1.25 var(--d-sans); font-variant-numeric: tabular-nums; }
.is-dash .water-metric--large .water-value { font-size: 28px; line-height: 1.15; letter-spacing: -0.01em; }
.is-dash .water-unit { color: var(--d-muted); font: 400 12px var(--d-sans); }
.is-dash .water-note { color: var(--d-muted); font-size: 12px; }
.is-dash .water-secondary {
  gap: 12px; padding: 12px 14px; border: 1px solid var(--d-border); border-radius: var(--d-radius); background: var(--d-raised);
}
.is-dash .water-warning { color: var(--d-amber); font-size: 13px; }
/* Catfish Point's inside / outside readings as a ruled table. */
.is-dash .water-compare { gap: 0; border: 1px solid var(--d-border); border-radius: var(--d-radius); overflow: hidden; }
.is-dash .water-compare-row { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 8px 12px; }
.is-dash .water-compare-row:first-child { background: var(--d-raised); }
.is-dash .water-compare-row + .water-compare-row { border-top: 1px solid var(--d-border); }
.is-dash .water-compare-row [role="rowheader"] .water-label { color: var(--d-text-2); font-size: 13px; }
.is-dash .water-explore, .is-dash .water-older { justify-self: start; }
.is-dash .water-details { gap: 6px; padding-top: 12px; border-top: 1px solid var(--d-border); }
/* The history chart: ranges and period on one line where they fit, a flat plot with
   solid strokes. The plot keeps its box (no padding or border) so dragging maps 1:1. */
.is-dash .water-chart { gap: 12px; padding-top: 12px; border-top: 1px solid var(--d-border); }
.is-dash .water-history { gap: 8px; }
.is-dash .water-history-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.is-dash .water-period { flex: 1 1 280px; grid-template-columns: 32px minmax(0, 1fr) 32px; gap: 8px; max-width: 420px; }
.is-dash .water-period-label { font-size: 13px; font-weight: 500; font-variant-numeric: tabular-nums; }
.is-dash .water-readout { gap: 0; min-height: 44px; }
.is-dash .water-readout:empty, .is-dash .water-spread:empty { display: none; } /* no readings in this range */
.is-dash .water-readout-value { color: var(--d-text); font: 600 20px/1.25 var(--d-sans); font-variant-numeric: tabular-nums; }
.is-dash .water-graph {
  height: 160px; border-radius: var(--d-radius); background: var(--d-bg); outline: 1px solid var(--d-border); outline-offset: -1px;
}
.is-dash .water-graph:focus-visible { outline: 2px solid var(--d-focus); outline-offset: 2px; }
.is-dash .water-grid { stroke: var(--d-border); }
.is-dash .water-line { stroke: var(--d-text-2); stroke-width: 1.5; }
.is-dash .water-dot { stroke: var(--d-text-2); stroke-width: 2.5; }
.is-dash .water-cursor { stroke: var(--d-faint); }
.is-dash .water-marker-ring { stroke: var(--d-bg); stroke-width: 12; }
.is-dash .water-marker { stroke: var(--d-text); stroke-width: 8; }
.is-dash .water-spread .water-note { font-variant-numeric: tabular-nums; }
/* River gauges: ruled rows that open to their chart. */
.is-dash .water-panel .list-pager { padding-top: 4px; }
.is-dash .water-river { gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--d-border); }
.is-dash .water-river:last-child { border-bottom: 0; }
.is-dash .water-river-head {
  width: calc(100% + 16px); margin: 0 -8px; padding: 6px 8px; border-radius: var(--d-radius); color: var(--d-text);
}
.is-dash .water-river-head:hover { background: var(--d-hover); }
.is-dash .water-river-head:active { background: var(--d-selected); }
.is-dash .water-river-head:focus-visible { outline-offset: -2px; }
.is-dash .water-river-text { gap: 1px; }
.is-dash .water-river-name { font-size: 13px; font-weight: 600; }
.is-dash .water-river .water-stamp { margin-top: 0; }
.is-dash .water-river-value { color: var(--d-text); font: 600 16px/1.2 var(--d-sans); font-variant-numeric: tabular-nums; }
@media (max-width: 639.98px) {
  .is-dash .water-headlines, .is-dash .water-secondary { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .is-dash .water-compare-row { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); gap: 8px; padding: 8px 10px; }
}

/* Map: Layers, the note and the controls float flat over the map, inside the workspace. */
.is-dash .map-top { flex-direction: column; flex-wrap: nowrap; align-items: flex-start; gap: 8px; }
.is-dash .map-top-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; max-width: 100%; }
/* The wrapper's empty area lets taps and drags through to the map; only its controls catch them. */
.is-dash .map-top, .is-dash .map-top-row { pointer-events: none; }
.is-dash .map-top-row > * { pointer-events: auto; }
.is-dash .map-layers .pill { width: 100%; }
.is-dash .map-chips { gap: 6px; }
.is-dash .map-toggles { gap: 4px; }
.is-dash .map-toggle { padding: 6px 10px; }
.is-dash .map-chip:active, .is-dash .map-toggle:active { background: var(--d-selected); }
.is-dash .map-chip[aria-pressed="true"]:hover, .is-dash .map-toggle[aria-pressed="true"]:hover { background: #e4e4e7; border-color: #e4e4e7; color: #09090b; }
.is-dash .map-note { max-width: 100%; }
.is-dash .map-control:focus-visible { outline-offset: 2px; }
.is-dash .map-marker:focus-visible > * { outline: 2px solid var(--d-focus); outline-offset: 2px; }
/* Marker popups (dialogs). */
.is-dash .map-popup { width: min(420px, calc(100% - 24px)); }
.is-dash .map-popup-head { margin-bottom: 4px; }
.is-dash .map-popup-kind { color: var(--d-muted); font-size: 12px; font-weight: 500; }
.is-dash .map-popup-close { font-size: 18px; }
.is-dash .map-popup-coords { color: var(--d-text-2); font-size: 13px; }
.is-dash .map-popup-warning, .is-dash .map-popup-old { color: var(--d-amber); font-size: 13px; }
.is-dash .map-popup-station { padding: 10px 0; border-bottom: 1px solid var(--d-border); }
.is-dash .map-popup-station .water-label { color: var(--d-text-2); font-size: 13px; font-weight: 600; }
.is-dash .map-popup-values { font-size: 13px; font-variant-numeric: tabular-nums; }
.is-dash .map-popup-values dt { color: var(--d-muted); }
.is-dash .map-popup-values dd { color: var(--d-text); }
/* Wind: Windy's map over the hourly table; the table scrolls sideways inside its panel. */
.is-dash .map-wind { gap: 12px; }
.is-dash .wind-frame { min-height: 200px; }
.is-dash .wind-panel { padding: 12px 14px; border: 1px solid var(--d-border); border-radius: var(--d-radius-lg); background: var(--d-panel); }
.is-dash .wind-table { gap: 6px; }
.is-dash .wind-heading { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.is-dash .wind-now { min-height: 28px; padding: 0 10px; }
.is-dash .wind-grid { grid-template-columns: 72px minmax(0, 1fr); }
.is-dash .wind-legend, .is-dash .wind-column { grid-template-rows: repeat(6, 24px); font-size: 12px; font-variant-numeric: tabular-nums; }
.is-dash .wind-legend { color: var(--d-muted); font-weight: 500; }
.is-dash .wind-strip { scrollbar-width: thin; scrollbar-color: var(--d-border-strong) transparent; }
.is-dash .wind-column { flex-basis: 54px; border-radius: var(--d-radius); color: var(--d-text-2); }
.is-dash .wind-column:hover { background: var(--d-hover); color: var(--d-text); }
.is-dash .wind-column:active { background: var(--d-selected); color: var(--d-text); }
.is-dash .wind-column:focus-visible { outline-offset: -2px; }
.is-dash .wind-column.is-selected { background: var(--d-selected); color: var(--d-text); }
.is-dash .wind-speed { color: var(--d-text); font-weight: 600; }
@media (max-width: 639.98px) {
  .is-dash .map-wind { padding: 52px 8px 8px; gap: 8px; }
  .is-dash .wind-panel { padding: 10px; }
  .is-dash .map-controls { right: 12px; bottom: 72px; }
}

/* Season over season (#17), on the Season tab: a small figures table, then both running
   totals drawn like the water chart. This season is the accent (#3987e5, slot 1 of the dataviz palette, 4.7:1 on
   the plot); last season is the de-emphasis gray it is measured against. */
.is-dash .d-sos-table { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }
.is-dash .d-sos-table th, .is-dash .d-sos-table td { padding: 7px 8px; border-bottom: 1px solid var(--d-border); text-align: left; }
.is-dash .d-sos-table thead th { color: var(--d-muted); font-size: 11.5px; font-weight: 500; vertical-align: bottom; }
.is-dash .d-sos-table thead small { display: block; font-size: 10.5px; font-weight: 400; }
.is-dash .d-sos-table tbody th { color: var(--d-text-2); font-weight: 500; }
.is-dash .d-sos-table .is-num { text-align: right; white-space: nowrap; }
.is-dash .d-sos-table thead small { white-space: normal; }
/* Phones: tighter cells. */
@media (max-width: 639.98px) {
  .is-dash .d-sos-table th, .is-dash .d-sos-table td { padding: 7px 4px; font-size: 12.5px; }
}
.is-dash .d-sos-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--d-muted); font-size: 12.5px; }
.is-dash .d-sos-controls .d-select { width: auto; min-width: 112px; }
.is-dash .d-sos-final { margin: 10px 0 0; color: var(--d-text-2); font-size: 13px; }
.is-dash .d-sos-table .d-sos-now { color: var(--d-text); font-weight: 600; }
.is-dash .d-sos-table .d-sos-muted { color: var(--d-muted); }
/* Change (owner): green up, red down, beside the ▲/▼; 8.4:1 and 5.0:1 on the panel. */
.is-dash .d-sos-table .is-up { color: var(--d-emerald); }
.is-dash .d-sos-table .is-down { color: var(--d-rose); }
.is-dash .d-sos-chart { display: grid; gap: 8px; margin: 14px 0 10px; }
.is-dash .d-sos-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; padding: 0; list-style: none; color: var(--d-text-2); font-size: 12px; }
.is-dash .d-sos-legend i { display: inline-block; width: 14px; height: 0; margin-right: 6px; vertical-align: 3px; border-top: 2px solid; }
.is-dash .d-sos-legend .d-sos-key-now { border-color: #3987e5; }
.is-dash .d-sos-legend .d-sos-key-before { border-color: var(--d-muted); }
.is-dash .d-sos-legend .d-sos-key-asof { border-top-style: dashed; border-color: var(--d-text-2); }
.is-dash .d-sos-readout { margin: 0; color: var(--d-text-2); font-size: 13px; font-variant-numeric: tabular-nums; }
.is-dash .d-sos-readout strong { color: var(--d-text); }
.is-dash .d-sos-graph {
  position: relative; height: 180px; border-radius: var(--d-radius); background: var(--d-bg); outline: 1px solid var(--d-border);
  outline-offset: -1px; cursor: crosshair; touch-action: none;
}
.is-dash .d-sos-graph:focus-visible { outline: 2px solid var(--d-focus); outline-offset: 2px; }
.is-dash .d-sos-plot { display: block; width: 100%; height: 100%; }
.is-dash .d-sos-plot path { fill: none; stroke-width: 2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.is-dash .d-sos-plot line { vector-effect: non-scaling-stroke; }
.is-dash .d-sos-line-now { stroke: #3987e5; }
.is-dash .d-sos-line-before { stroke: var(--d-muted); }
.is-dash .d-sos-grid { stroke: var(--d-border); }
.is-dash .d-sos-asof { stroke: var(--d-text-2); stroke-dasharray: 3 3; }
.is-dash .d-sos-cursor { stroke: var(--d-border-strong); }
.is-dash .d-sos-ring { stroke: var(--d-bg); stroke-width: 12; stroke-linecap: round; }
.is-dash .d-sos-mark-now, .is-dash .d-sos-mark-before { stroke-width: 8; stroke-linecap: round; }
.is-dash .d-sos-mark-now { stroke: #3987e5; }
.is-dash .d-sos-mark-before { stroke: var(--d-muted); }
.is-dash .d-sos-axis { position: absolute; left: 10px; color: var(--d-muted); font-size: 10.5px; font-variant-numeric: tabular-nums; pointer-events: none; }
.is-dash .d-sos-top { top: 2px; }
.is-dash .d-sos-zero { bottom: 6px; }
.is-dash .d-sos-months { position: relative; height: 14px; color: var(--d-muted); font-size: 11px; }
.is-dash .d-sos-months span { position: absolute; top: 0; transform: translateX(2px); }
/* Hunts and birds by month: the figures table's look under a small left-aligned title. */
.is-dash .d-sos-bymonth { margin: 4px 0 10px; }
.is-dash .d-sos-bymonth caption { caption-side: top; padding: 0 0 6px; text-align: left; color: var(--d-text-2); font-size: 12.5px; font-weight: 600; }

