/* OfferReady design tokens - the single source of truth.
   Every color, radius, spacing step, and border in the UI comes from here.
   Direction: editorial / private-bank. One accent (oxblood), ink + off-white,
   saturated color reserved for meaning (answer states, score bands). */

:root {
  /* -- surfaces -- */
  --bg: #FAFAF8;             /* off-white, never pure white */
  --bg-2: #F2F1EC;           /* recessed panels, table headers */
  --card: #FFFFFF;           /* raised card on off-white */
  --ink: #0E1320;            /* dark surface (full-bleed sections) */
  --ink-soft: #171D2E;       /* raised card on the dark surface */

  /* -- text -- */
  --text: #0E1320;
  --text-muted: #5A6072;
  --text-on-ink: #F2F4F9;    /* on --ink / --ink-soft */
  --text-muted-on-ink: #9AA3B5;

  /* -- accent (UI only: buttons, links, active states, section numbers) -- */
  --accent: #7A1F2B;         /* oxblood */
  --accent-hover: #641823;
  --accent-tint: rgba(122, 31, 43, 0.07);
  --accent-on-ink: #C4707B;  /* oxblood lifted for legibility on dark */

  /* -- semantic answer states (validated on light surface; never color-alone) -- */
  --correct: #2E7D4F;
  --partial: #B8862F;
  --dodged:  #C93A38;

  /* -- score bands (aliases so charts and copy stay in sync) -- */
  --band-strong: var(--correct);
  --band-mid:    var(--partial);
  --band-weak:   var(--dodged);
  --danger:      var(--dodged);      /* legacy name used by results/history markup */
  --data-accent: #3A4560;            /* neutral single-series mark (trend line) */

  /* -- borders -- */
  --hairline-color: rgba(14, 19, 32, 0.12);
  --hairline: 1px solid var(--hairline-color);
  --hairline-on-ink: 1px solid rgba(242, 244, 249, 0.14);

  /* -- radius -- */
  --radius: 8px;
  --radius-sm: 4px;

  /* -- spacing scale -- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;

  /* -- type families (self-hosted, see fonts.css) -- */
  --sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --display: var(--sans);
  --mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --serif: var(--display);   /* legacy alias */
  --logo-font: "RepsDesk Logo", "UnifrakturMaguntia", Georgia, serif;   /* wordmark only */

  /* -- modular type scale (1.25 ratio off a 16px base) -- */
  --fs--1: 13px;
  --fs-0: 16px;
  --fs-1: 20px;
  --fs-2: 25px;
  --fs-3: 31px;
  --fs-4: 39px;
  --fs-display: clamp(38px, 5.4vw, 68px);
  --lh-body: 1.6;
  --lh-tight: 1.1;
  --ls-display: -0.02em;

  /* -- elevation (interim; Task 3 replaces landing shadows with hairlines) -- */
  --shadow: 0 10px 30px -18px rgba(14, 19, 32, 0.25);
  --shadow-sm: 0 4px 14px -10px rgba(14, 19, 32, 0.18);

  /* -- layout -- */
  --measure: 65ch;
  --page: 1080px;
}
