/* Gazette Finder — design tokens (F1 WP-1; the palette of docs/proposals/visual_design.md §2,
   built around the owner's logo: its blue the one accent, its green the highlight).
   Two layers: primitives (named for what they are) and the semantic layer (named for what
   they do). Components reference the semantic layer only — never a primitive, never a hex —
   so dark mode (F1 D-7: light only in F1) is a re-map of the semantic block in this file.
   Contrast (measured 2026-10-17): ink on paper 16:1; ink-muted on paper 5.8:1; the accent
   8.1:1 on white and 7.6:1 on paper; highlight-ink 5.5:1 on white and 5.1:1 on its soft
   tint; the logo's green itself is 3.9:1 on white, so it is never small text; the cue pairs
   measure 6.3–8.0:1 on their tints. */

:root {
  /* --- primitives ------------------------------------------------------------------- */
  --paper-50: #f5f7fb;     /* an off-white tinted from the blue: the page */
  --paper-100: #eef1f7;
  --paper-200: #e3e7f0;
  --paper-300: #d7dcea;
  --paper-400: #b9c1d6;
  --white: #ffffff;
  --ink-900: #161a2e;
  --ink-700: #363b52;
  --ink-600: #5b6070;
  --blue-900: #141a5e;
  --blue-800: #1f258f;
  --blue-700: #2c34d8;     /* the logo's blue */
  --blue-100: #dfe2f9;
  --blue-50: #eef0fc;
  --green-700: #0c7a0f;    /* the logo's green, deepened to pass AA as text */
  --green-600: #109614;    /* the logo's green */
  --green-50: #eef8ec;
  --red-700: #b42318;      /* WorkBench's alert only (F14): a failed run, a stale watch — 6.0:1 on white */
  --red-50: #fef3f2;

  --hue-general-700: #24476e;   --hue-general-100: #e4ecf5;
  --hue-regulation-700: #5a3487; --hue-regulation-100: #eee7f6;
  --hue-separate-700: #1d5e5b;  --hue-separate-100: #e1f0ee;
  --hue-board-700: #7b4a0c;     --hue-board-100: #f7ecd9;
  --hue-road-700: #3e5c1c;      --hue-road-100: #e9f1df;
  --hue-unknown-700: #55524b;   --hue-unknown-100: #ebe8e1;

  /* the authority groups (F1 D-31: one colour a register kind, as a strip, never text): each
     3:1 or more on white, the paper and the hover wash (measured 2026-10-18: 3.4-10.3:1);
     never the accent's blue, the logo's green or gold */
  --hue-group-presidency: #9f1239;           /* crimson */
  --hue-group-parliament: #c2410c;           /* vermilion */
  --hue-group-chapter9: #a21caf;             /* magenta */
  --hue-group-national_department: #4b6584;  /* slate */
  --hue-group-regulator: #0f766e;            /* teal */
  --hue-group-public_entity: #6d28d9;        /* violet */
  --hue-group-board: #8a5a2b;                /* brown, as the Board Notice cue */
  --hue-group-court: #44403c;                /* stone */
  --hue-group-other: #7d828e;                /* grey */

  /* --- semantic: colour ------------------------------------------------------------- */
  --color-paper: var(--paper-50);          /* the page */
  --color-surface: var(--white);           /* cards, rows, inputs */
  --color-surface-alt: var(--paper-100);   /* panels, banners, the footer */
  --color-ink: var(--ink-900);             /* text */
  --color-ink-soft: var(--ink-700);        /* secondary text that must stay strong */
  --color-ink-muted: var(--ink-600);       /* meta lines, labels */
  --color-ink-deep: var(--blue-900);       /* a heading that carries the brand's weight */
  --color-line: var(--paper-300);          /* hairlines */
  --color-line-strong: var(--paper-400);   /* borders of controls */
  --color-accent: var(--blue-700);         /* links, focus, the active chip, the header rule — the one accent */
  --color-accent-hover: var(--blue-800);
  --color-accent-ink: var(--white);        /* text on the accent */
  --color-accent-soft: var(--blue-100);    /* the search mark; the map's stroke */
  --color-accent-tint: var(--blue-50);     /* a hover wash; the active panel */
  --color-highlight: var(--green-600);     /* the highlight: a dot, an underline, a ring — never small text */
  --color-highlight-ink: var(--green-700); /* green as text; white text sits on it */
  --color-highlight-soft: var(--green-50); /* the wash behind "today" */
  --color-focus: var(--blue-700);
  --color-alert: var(--red-700);           /* WorkBench: something failed or is stale — never on a public page */
  --color-alert-soft: var(--red-50);

  /* the six kind cues (register IssueKind.cue): a word in --cue-*-ink on --cue-*-tint */
  --cue-general-ink: var(--hue-general-700);       --cue-general-tint: var(--hue-general-100);
  --cue-regulation-ink: var(--hue-regulation-700); --cue-regulation-tint: var(--hue-regulation-100);
  --cue-separate-ink: var(--hue-separate-700);     --cue-separate-tint: var(--hue-separate-100);
  --cue-board-ink: var(--hue-board-700);           --cue-board-tint: var(--hue-board-100);
  --cue-road_carrier-ink: var(--hue-road-700);     --cue-road_carrier-tint: var(--hue-road-100);
  --cue-unknown-ink: var(--hue-unknown-700);       --cue-unknown-tint: var(--hue-unknown-100);

  /* the authority groups (register Authority.kind): base.css maps data-group to --group */
  --color-group-presidency: var(--hue-group-presidency);
  --color-group-parliament: var(--hue-group-parliament);
  --color-group-chapter9: var(--hue-group-chapter9);
  --color-group-national_department: var(--hue-group-national_department);
  --color-group-regulator: var(--hue-group-regulator);
  --color-group-public_entity: var(--hue-group-public_entity);
  --color-group-board: var(--hue-group-board);
  --color-group-court: var(--hue-group-court);
  --color-group-other: var(--hue-group-other);

  /* --- type (F1 Q-1: Newsreader for the record, Public Sans for the interface) -------- */
  --font-serif: "Newsreader", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia,
                "Times New Roman", serif;
  --font-sans: "Public Sans", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial,
               sans-serif;
  --font-mono: ui-monospace, "Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono",
               monospace;
  /* six steps */
  --text-xs: 0.8125rem;   /* 13 px — labels, meta */
  --text-sm: 0.9375rem;   /* 15 px — secondary text */
  --text-base: 1.0625rem; /* 17 px — running text */
  --text-lg: 1.3125rem;   /* 21 px — a row's number, sub-heads */
  --text-xl: 1.5rem;      /* 24 px — section heads (D-38: a step smaller) */
  --text-2xl: clamp(1.75rem, 1.3rem + 1.6vw, 2.25rem); /* 28–36 px — the page's H1 (D-38) */
  --leading-tight: 1.2;
  --leading: 1.5;
  --tracking-label: 0.07em;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  /* --- space, shape, depth, layout -------------------------------------------------- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --radius-sm: 3px;
  --radius: 6px;
  --radius-lg: 10px;
  --radius-pill: 999px;
  --shadow-sm: 0 1px 2px rgb(22 26 46 / 0.06);
  --shadow: 0 1px 3px rgb(22 26 46 / 0.08), 0 4px 12px rgb(22 26 46 / 0.05);
  --shadow-float: 0 2px 8px rgb(22 26 46 / 0.22);   /* the go-to-top button */
  --gutter: 16px;          /* at every width */
  --measure: 70ch;         /* running text */
  --page-max: 76rem;
  --focus-ring: 3px solid var(--color-focus);
  --motion: 120ms;         /* every hover and reveal; zero under reduced motion (base.css) */
}
