/* Design tokens derived from the authoritative PhotoQuo palette at
 * assets/palettes/Color-palette.aco (see
 * specs/012-web-application-foundation/research.md decision 5). Every
 * production color value used elsewhere in this application MUST trace
 * back to one of these semantic custom properties (spec FR-025). */
:root {
  /* Primary color 1 (ACO) — shared brand accent with the Flutter app's
   * highlightColor. */
  --color-highlight: #525667;
  /* Primary color 5 (ACO). */
  --color-text-primary: #212538;
  /* Primary color 3 (ACO). */
  --color-text-secondary: #6d7180;
  /* Primary color 2 (ACO). */
  --color-border: #91939f;
  /* Secondary color (1) 2 (ACO) — a subtle warm off-white for cards/panels. */
  --color-surface: #e9e6d2;
  /* Secondary brand color (unused in the current header/footer scheme; the
   * footer now uses --color-highlight, matching the header's brand accent). */
  --color-secondary: #979374;
  /* No white/near-white swatch exists in the authoritative palette; plain
   * white is used for the page background, consistent with the mobile
   * app's restrained neutral chrome. */
  --color-background: #ffffff;
  /* The palette contains no red/warning hue; this is the one token not
   * derived from the ACO file (research.md decision 5). Contrast-checked
   * against both --color-background and --color-surface. */
  --color-error: #b3261e;

  /* Bare R,G,B triples of the tokens above (never a #hex or rgb()/rgba()
   * literal, so this stays outside the hex/rgb() scan spec FR-025
   * enforces) — needed only so theme.css can reassign Bootstrap's
   * `--bs-*-rgb` variables, which several vendored Bootstrap components
   * combine with an opacity value via rgba(var(--bs-*-rgb), alpha). */
  --color-highlight-rgb: 82, 86, 103;
  --color-text-primary-rgb: 33, 37, 56;
  --color-text-secondary-rgb: 109, 113, 128;
  --color-border-rgb: 145, 147, 159;
  --color-surface-rgb: 233, 230, 210;
  --color-secondary-rgb: 151, 147, 116;
  --color-background-rgb: 255, 255, 255;
  --color-error-rgb: 179, 38, 30;
}
