/* One token block. Colour literals for the workspace live here, in snake.css, and in ranges.css.
   Old --hx-* and --aq-* names are aliases, so link order cannot change the palette. */
:root {
  --bg: #f2f6f7;
  --surface: #ffffff;
  --surface-2: #edf2f3;
  --ink: #19333e;
  --muted: #5d727e;
  --line: #d7e2e6;
  --line-soft: #e7edef;
  --line-strong: #6f8491;
  --accent: #176f86;
  --on-accent: #ffffff;
  --accent-hover: #135970;
  --soft: #e6f0f5;
  --on-soft: #155a72;
  --selected: var(--soft);
  --on-selected: var(--on-soft);
  --ok: #147854;
  --ok-soft: #e4f3eb;
  --on-ok: #146044;
  --warn: #875914;
  --warn-soft: #fff5e2;
  --on-warn: #875914;
  --warn-line: #e6d4b0;
  --danger: #b33a3a;
  --danger-soft: #fbeaea;
  --on-danger: #b33a3a;
  --info: var(--soft);
  --info-soft: var(--soft);
  --on-info: var(--on-soft);
  --focus: #176f86;
  --scrim: rgba(16, 27, 35, .35);
  --shadow-1: 0 2px 10px rgba(24, 44, 57, .10);
  --shadow-2: 0 12px 40px rgba(24, 44, 57, .18);
  --font: "Instrument Sans", system-ui, sans-serif;
  --font-display: "Instrument Sans", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
  /* ACQ-BUILD-PANEL-1: the package-on-grid review map, blue low to red high (domain colour on the grid only). */
  --review-lo: #2c7bb6;
  --review-mid: #f3e9a6;
  --review-hi: #d7301f;
  --bar-h: 60px;
  --nav-w: 224px;
  --nav-w-collapsed: 56px;
  --plan-hatch: #6b4c7a;
  --water: #1c7c93;
  --water-deep: #145e72;
  /* ACQ-AREA-MAP-1: the Pick area / Grid modelling layers. Outcrop is the recharge zone at land surface (warm sand),
     subsurface the buried, confined part (cool slate, hatched on the map); water stays blue and roads stay grey. */
  --aquifer-outcrop: #c98a2b;
  --aquifer-subsurface: #5f6fa3;
  --fault: #8c2f39;
  --huc-line: #2f7a5b;
  --gcd-line: #7a4f9b;
  --county-line: #6f8491;
  --well-level: #1f5fbf;
  --well-pump: #b8481f;
  --spring: #0d8a8a;
  --gauge: #0b5f78;
  --map-label: #19333e;
  --map-label-halo: #ffffff;
  --proposal: #b0307a;
  --water-label-bg: #143945e8;
  --water-label-fg: #f4fbfd;
  --flow-0: #c9c5ea; --flow-1: #9b95dc; --flow-2: #6f66c8; --flow-3: #4a3fae; --flow-4: #261c74;
  --flow-low: #5a4fc0; --flow-mid: #a3acb3; --flow-high: #c46a12; --flow-grey: #8c979e; --flow-contour: #33464f;
  /* ACQ-VIZ-11g: the section's two layer tones and its layer faces; quiet greys so the indigo particles carry the colour. */
  --section-a: #e3e9ec; --section-b: #d2dbe0; --section-edge: #98a8b0;
  /* ACQ-GRID-PAGE-1: rock units on the Grid step's column and section, one tone per parent unit; the tight layer is hatched. */
  --strata-1: #cfe0e8; --strata-2: #d5e5cd; --strata-3: #ecdfc2; --strata-4: #dcd3ea; --strata-5: #e9d3cf; --strata-6: #d9dde0;
  --strata-tight: #b9a693; --strata-hatch: #5f4f40; --strata-edge: #7d8f99;
  --code: #9f376c;
  --finding-proposed: #d4a017;
  --finding-accepted: #2f6f4e;
  --finding-in-model: #1c2430;
  --finding-cite: #2a78b8;
  --finding-rejected: #8a8175;
  --finding-well: #4f6d7a;
  --finding-injection: #b0307a;
  --finding-structure: #7a4f9b;
  --finding-losing: #c4563a;
  --finding-doc: #9a3412;
  --finding-bearing: #5c6b58;
  --pick-low: #c7d2fe;
  --pick-high: #312e81;
  --measure: #e07a2f;
  --measure-line: #9a3412;
  --trace: var(--accent);
  --pump-base: #dfe3e6;
  --pump-well: #ff3d00;
  --pump-grid: #00e5ff;
  --pump-district: #ffd23f;
  --pump-miss: #7a7a7a;
  --pump-stroke: #ffffff;
  --hx-bg: var(--bg); --hx-fg: var(--ink); --hx-muted: var(--muted);
  --hx-card: var(--surface); --hx-border: var(--line); --hx-border-soft: var(--line-soft);
  --hx-accent: var(--accent); --hx-accent-hover: var(--accent-hover); --hx-accent-soft: var(--soft); --hx-accent-fg: var(--on-soft);
  --hx-ok: var(--ok); --hx-ok-soft: var(--ok-soft); --hx-ok-fg: var(--on-ok);
  --hx-warn: var(--warn); --hx-warn-soft: var(--warn-soft); --hx-warn-border: var(--warn-line);
  --hx-fail: var(--danger); --hx-fail-soft: var(--danger-soft);
  --aq-hover: var(--surface-2); --aq-selected: var(--selected); --aq-selected-fg: var(--on-selected);
  --aq-shadow: #182c3933; --aq-scrim: var(--scrim);
  --aq-on-accent: var(--on-accent); --aq-code: var(--code);
  --aq-water: var(--water); --aq-water-deep: var(--water-deep);
  --aq-water-label-bg: var(--water-label-bg); --aq-water-label-fg: var(--water-label-fg);
  --aq-flow-0: var(--flow-0); --aq-flow-1: var(--flow-1); --aq-flow-2: var(--flow-2); --aq-flow-3: var(--flow-3); --aq-flow-4: var(--flow-4);
  --aq-flow-low: var(--flow-low); --aq-flow-mid: var(--flow-mid); --aq-flow-high: var(--flow-high); --aq-flow-grey: var(--flow-grey); --aq-flow-contour: var(--flow-contour);
  --aq-section-a: var(--section-a); --aq-section-b: var(--section-b); --aq-section-edge: var(--section-edge);
  --hx-sans: var(--font); --hx-mono: var(--mono);
  --hx-line: var(--line); --hx-text: var(--ink); --hx-surface-2: var(--surface-2); --hx-err: var(--danger);
  --bs-body-bg: var(--bg); --bs-body-color: var(--ink); --bs-border-color: var(--line);
  --bs-secondary-bg: var(--surface-2); --bs-tertiary-bg: var(--surface); --bs-secondary-color: var(--muted);
  --bs-heading-color: var(--ink); --bs-emphasis-color: var(--ink); --bs-link-color: var(--accent); --bs-link-hover-color: var(--accent-hover);
}
:root[data-theme=dark] {
  --review-lo: #5aa4e0;
  --review-mid: #e9dd8c;
  --review-hi: #f2685a;
  --bg: #101b23;
  --surface: #17252f;
  --surface-2: #21343f;
  --ink: #e1ecef;
  --muted: #a2b6c0;
  --line: #354752;
  --line-soft: #2a3b47;
  --line-strong: #7a8f9b;
  --accent: #78c7dc;
  --on-accent: #10262e;
  --accent-hover: #a1dfeb;
  --soft: #203b4d;
  --on-soft: #a0d7e4;
  --selected: var(--soft);
  --on-selected: var(--on-soft);
  --ok: #83d8b6;
  --ok-soft: #193b30;
  --on-ok: #95e1c2;
  --warn: #ecc689;
  --warn-soft: #3a3021;
  --on-warn: #ecc689;
  --warn-line: #675335;
  --danger: #ffa6a6;
  --danger-soft: #45282d;
  --on-danger: #ffa6a6;
  --info: var(--soft);
  --info-soft: var(--soft);
  --on-info: var(--on-soft);
  --focus: #78c7dc;
  --scrim: rgba(0, 0, 0, .55);
  --shadow-1: 0 2px 10px rgba(0, 0, 0, .45);
  --shadow-2: 0 12px 40px rgba(0, 0, 0, .55);
  --font: "Instrument Sans", system-ui, sans-serif;
  --font-display: "Instrument Sans", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
  --bar-h: 60px;
  --nav-w: 224px;
  --nav-w-collapsed: 56px;
  --water: #8fd4e4;
  --water-deep: #3d8fa3;
  --aquifer-outcrop: #e3a955;
  --aquifer-subsurface: #95a3d6;
  --fault: #f08a94;
  --huc-line: #7fd1ad;
  --gcd-line: #c9a3e3;
  --county-line: #a2b6c0;
  --well-level: #8fb6ff;
  --well-pump: #ff9a73;
  --spring: #6fe0e0;
  --gauge: #7cc9e0;
  --map-label: #e1ecef;
  --map-label-halo: #101b23;
  --proposal: #f28cc6;
  --water-label-bg: #0d2830ee;
  --water-label-fg: #e7f7fb;
  --flow-0: #3a3570; --flow-1: #5e57b4; --flow-2: #8c86e0; --flow-3: #bdb8f3; --flow-4: #ece9ff;
  --flow-low: #a39aee; --flow-mid: #59636b; --flow-high: #e8963f; --flow-grey: #8f9ba3; --flow-contour: #c9d6dc;
  --section-a: #1f2e38; --section-b: #283a46; --section-edge: #4d626e;
  --strata-1: #2a4654; --strata-2: #30483a; --strata-3: #4b4231; --strata-4: #3d3853; --strata-5: #4c3436; --strata-6: #364149;
  --strata-tight: #5b4b3d; --strata-hatch: #d2bfa8; --strata-edge: #93a6b0;
  --code: #f3a6d2;
  --finding-proposed: #e8c56a;
  --finding-accepted: #4f9a73;
  --finding-in-model: #e7eef2;
  --finding-cite: #7eb6e0;
  --finding-rejected: #b7aea4;
  --finding-well: #9db4bf;
  --finding-injection: #e08ab8;
  --finding-structure: #c4a6de;
  --finding-losing: #e88870;
  --finding-doc: #e08a6a;
  --finding-bearing: #aeb8a8;
  --pick-low: #c7d2fe;
  --pick-high: #a5b4fc;
  --measure: #f0a36a;
  --measure-line: #f0b090;
  --trace: var(--accent);
  --pump-base: #dfe3e6;
  --pump-well: #ff3d00;
  --pump-grid: #00e5ff;
  --pump-district: #ffd23f;
  --pump-miss: #7a7a7a;
  --pump-stroke: #ffffff;
  --hx-bg: var(--bg); --hx-fg: var(--ink); --hx-muted: var(--muted);
  --hx-card: var(--surface); --hx-border: var(--line); --hx-border-soft: var(--line-soft);
  --hx-accent: var(--accent); --hx-accent-hover: var(--accent-hover); --hx-accent-soft: var(--soft); --hx-accent-fg: var(--on-soft);
  --hx-ok: var(--ok); --hx-ok-soft: var(--ok-soft); --hx-ok-fg: var(--on-ok);
  --hx-warn: var(--warn); --hx-warn-soft: var(--warn-soft); --hx-warn-border: var(--warn-line);
  --hx-fail: var(--danger); --hx-fail-soft: var(--danger-soft);
  --aq-hover: var(--surface-2); --aq-selected: var(--selected); --aq-selected-fg: var(--on-selected);
  --aq-shadow: #00000066; --aq-scrim: var(--scrim);
  --aq-on-accent: var(--on-accent); --aq-code: var(--code);
  --aq-water: var(--water); --aq-water-deep: var(--water-deep);
  --aq-water-label-bg: var(--water-label-bg); --aq-water-label-fg: var(--water-label-fg);
  --aq-flow-0: var(--flow-0); --aq-flow-1: var(--flow-1); --aq-flow-2: var(--flow-2); --aq-flow-3: var(--flow-3); --aq-flow-4: var(--flow-4);
  --aq-flow-low: var(--flow-low); --aq-flow-mid: var(--flow-mid); --aq-flow-high: var(--flow-high); --aq-flow-grey: var(--flow-grey); --aq-flow-contour: var(--flow-contour);
  --aq-section-a: var(--section-a); --aq-section-b: var(--section-b); --aq-section-edge: var(--section-edge);
  --hx-sans: var(--font); --hx-mono: var(--mono);
  --hx-line: var(--line); --hx-text: var(--ink); --hx-surface-2: var(--surface-2); --hx-err: var(--danger);
  --bs-body-bg: var(--bg); --bs-body-color: var(--ink); --bs-border-color: var(--line);
  --bs-secondary-bg: var(--surface-2); --bs-tertiary-bg: var(--surface); --bs-secondary-color: var(--muted);
  --bs-heading-color: var(--ink); --bs-emphasis-color: var(--ink); --bs-link-color: var(--accent); --bs-link-hover-color: var(--accent-hover);
}
body { background: var(--bg); color: var(--ink); }
a:hover { color: var(--accent-hover); }
/* ACQ-UI-FIX-1022: a link styled as a button keeps its button colour on hover; the link colour above made New run unreadable. */
a.hx-btn:hover, a.hx-btn-primary:hover { color: var(--on-accent); }
a.hx-btn.secondary:hover, a.hx-btn.quiet:hover, a.hx-btn-outline:hover { color: var(--ink); }
a.hx-btn.danger:hover { color: var(--danger); }
code { color: var(--code); }
input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea, .form-control, .form-select { background-color: var(--surface); color: var(--ink); border-color: var(--line); }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
input[type=checkbox], input[type=radio], input[type=range] { accent-color: var(--on-soft); }
.form-control:focus, .form-select:focus { background-color: var(--surface); color: var(--ink); border-color: var(--accent); }
.form-control:disabled, .form-select:disabled { background-color: var(--surface-2); color: var(--muted); }
.btn-primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--on-accent); }
.btn:focus, .form-control:focus, .form-select:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent); }
.validation-message { color: var(--danger); }
.hx-tabs, .hx-card, .hx-run-row, .hx-stat-card, .hx-param-row, .hx-project-menu, .hx-kb-table, .hx-kb-table td { background-color: var(--surface); }
.hx-kb-table th, .hx-kb-table tr:hover td, .hx-run-row:hover, .hx-run-row.selected { background-color: var(--surface-2); }
.hx-chip { color: var(--ink); }
.hx-btn, .hx-btn-primary { color: var(--on-accent); }
.hx-btn.secondary, .hx-btn-outline { background: var(--surface-2); color: var(--ink); border-color: var(--line); }
.hx-tab, .hx-tab.active { color: var(--ink); }
.hx-tab:hover { color: var(--accent); background: var(--surface-2); }
.hx-alert { color: var(--ink); }
.hx-alert.err { color: var(--danger); background: var(--danger-soft); }
.hx-alert.warn { color: var(--warn); background: var(--warn-soft); }
.hx-3d-placeholder { background: repeating-linear-gradient(45deg, var(--bg) 0 10px, var(--surface-2) 10px 20px); }
.hx-card svg[aria-label^="Hydrograph"] text { fill: var(--muted); }
.landscape-controls, .landscape-inspector, .research-controls, .research-results { background: var(--surface); color: var(--ink); }
.landscape-controls select, .landscape-controls input[type=number], .landscape-inspector select { background: var(--surface); color: var(--ink); border-color: var(--line); }
.landscape-controls small, .landscape-inspector .landscape-note { color: var(--muted); }
@media (prefers-reduced-motion: reduce) {
  .hx-chip.hx-live,
  .hx-dot-pulse,
  .hx-phase-row.hx-shimmer-row .time,
  .hx-skel-card,
  .hx-progress.hx-progress-indeterminate > i {
    animation: none;
  }
}
@media print {
  :root, :root[data-theme=dark] {
    --review-lo: #2c7bb6; --review-mid: #f3e9a6; --review-hi: #d7301f;
    color-scheme: light;
    --bg: #ffffff; --surface: #ffffff; --ink: #19333e; --muted: #526571;
    --line: #cbd5db; --line-soft: #e2e8ed; --surface-2: #edf2f3;
    --on-accent: #ffffff; --accent: #176f86; --on-soft: #155a72; --soft: #e6f0f5;
    --ok: #147854; --ok-soft: #e4f3eb; --on-ok: #146044;
    --warn: #875914; --warn-soft: #fff5e2; --danger: #b33a3a; --danger-soft: #fbeaea;
  }
}
