/* ============================================================
   SHIFTSIMPLE — DESIGN TOKENS (styles/tokens.css)
   ============================================================
   The semantic token contract every stylesheet consumes, with the ORIGINAL
   skin's values as the defaults. A skin (styles/themes/*.css) overrides
   ONLY these tokens on html[data-theme="…"]; no component rule is ever
   duplicated per theme. Load order (index.html): tokens → themes →
   base → layout → components → pages/customer → responsive (last), plus
   pages/dealer|lender|admin fetched on demand by src/core/loader.js. */
  :root{
    /* ============================================================
       SKIN/THEME SYSTEM — semantic tokens (source of truth)
       ============================================================
       The Original ShiftSimple skin's values live here as the default.
       Each [data-theme="..."] block below overrides ONLY this semantic
       set — never a component rule directly — so every existing
       component (which consumes the legacy --pine/--gold/--paper/etc.
       names below) re-colors automatically for every skin with zero
       skin-specific conditionals scattered through the stylesheet. See
       THEMES in the script for the JS side of this system. */
    --page-bg:#F1F2ED;
    --surface:#FFFFFF;
    --surface-secondary:#E7E9E6;
    --text-primary:#12151A;
    --text-secondary:#4A5058;
    --primary:#1B2A4A;
    --primary-hover:#28406B;
    --primary-contrast:#F1F2ED;
    --accent:#C6952E;
    --accent-hover:#B48626;
    --accent-secondary:#E8D6A9;
    --accent-contrast:#1B2A4A;
    --border:#C9CCCB;
    --input-bg:#FFFFFF;
    --input-border:#C9CCCB;
    --focus-ring:#1B2A4A;
    --success:#2E7D52;
    --success-soft:#DCEAE1;
    /* --warning is a brand-new token nothing pre-existing consumes yet, so
       (unlike --accent/--gold, already live on real text like .eyebrow)
       it's free to use its own more-accessible amber rather than mirror
       --accent's #C6952E, which only clears ~2.7:1 as text on white. */
    --warning:#8A6015;
    --danger:#A8402B;
    --shadow:rgba(18,21,26,0.14);
    --header-bg:#FFFFFF;
    --card-bg:#FFFFFF;
    --glow:none;
    --radius:2px;
    /* Text that sits ON a --primary block (the buying-power result, the
       home equation's result tile, the final CTA). The defaults are exactly
       the values those blocks have always used (--accent, --accent-secondary,
       80% opacity for the small note), so a skin that does not set them is
       unchanged. A skin whose --accent is a shade of its own --primary (Green,
       Lilac) sets lighter values here, since its --accent reads at ~1:1 on
       --primary. */
    --on-primary-accent:var(--accent);
    --on-primary-soft:var(--accent-secondary);
    --on-primary-note-opacity:0.8;
    /* The FURTHER REVIEW accent for text on the page's own surfaces (the stage
       line, the review group title). Dark themes override it with a light red
       so it stays ≥ 4.5:1 on their dark cards; the review panel itself uses
       fixed colors on an opaque light background. */
    --review-accent:#b00020;

    /* Legacy token names — the ~32k-line stylesheet already consumes only
       these as its sole skin-relevant surface, with no scattered
       conditional styling, so they stay as simple aliases rather than a
       mass rename across every existing rule. */
    --paper:var(--page-bg);
    --paper-dim:var(--surface-secondary);
    --ink:var(--text-primary);
    --ink-soft:var(--text-secondary);
    --pine:var(--primary);
    --pine-light:var(--primary-hover);
    --gold:var(--accent);
    --gold-soft:var(--accent-secondary);
    --money:var(--success);
    --money-soft:var(--success-soft);
    --rust:var(--danger);
    --line:var(--border);
    --white:var(--surface);
  }


  /* ============================================================
     SKIN OVERRIDES — each block redefines ONLY the semantic token set
     above (never a component rule directly). All 6 palettes were checked
     against WCAG AA (4.5:1 normal text, 3:1 large text/UI) for every
     token pairing actually used in this stylesheet: text on page-bg/
     surface, button text on primary/accent, and status colors (success/
     warning/danger) as text on a card. The one documented exception is
     --accent used as plain text (e.g. .eyebrow) in the ORIGINAL skin
     only — a pre-existing, unmodified production value (~2.7:1), kept
     exactly as shipped rather than altered by this feature.
     ============================================================ */

