/* ── Solstice standalone shell palette (Phase 1 light-mode sweep, 2026-07-31) ──
   Replaces the identical `:root { --brand-* … }` block that was copy-pasted
   into 25 shells (theme remediation P5 carve-out: "shell pre-auth --brand-*
   literals stay — render before stylesheets exist"). This sheet keeps that
   guarantee — it is a static <link> in each shell's <head>, so it applies
   before first paint with NO dependency on the ERP sheets — while retiring
   the 25 drifting copies (they had already drifted: --surface #1a1d27 vs
   canonical --sol-bg-card #1a1d24; canonical wins, per the P2 rule).

   How the two states work with ONE value set and NO light branch here:
   · Pre-auth (PIN pad, loading): the ERP sheets are not injected yet, so the
     var(--sol-*) references resolve to their dark literal fallbacks → the
     shell renders the charcoal brand chrome exactly as before.
   · Post-boot: solstice_shell.js/solstice_login.js inject token_system.css
     and set body[data-mode]/[data-site-theme] from `solstice:mode`, so the
     same aliases resolve through the canonical registry — including its
     Paper-warm light branch — and the shell chrome follows the mode with no
     second palette to maintain.
   --brand-glow stays a literal amber alpha (accent, deliberately
   mode-agnostic). The gradient composes from the aliases so it follows too.
   Consumed by every shell's own <style> plus js/pwa_topbar.js and
   js/touch_keyboard.js. Precached in sw.js (offline PIN pad needs it).
   Exempt shells keep their own self-contained palettes: wall_board.html
   (dark-for-TV requirement) and handoff.html. */
/* `:root, body` — BOTH, deliberately (the LS body-level-remap lesson in
   custom-property form): a custom property substitutes its inner var() at
   the element it is DEFINED on. Declared only at :root, these aliases would
   freeze against html's dark registry (the --sol-* light branch is keyed on
   body[data-mode]) and inherit DOWN as dark even in light mode. The body
   re-declaration recomputes them against body's own registry, so they
   follow the mode; :root keeps the pre-auth/html coverage. */
:root,
body {
  --brand-primary:  var(--sol-accent-primary, #D4870A);
  --brand-light:    var(--sol-accent-hover, #F0B84D);
  --brand-gradient: linear-gradient(135deg, var(--brand-primary), var(--brand-light));
  --brand-glow:     rgba(212, 135, 10, 0.3);
  --bg:             var(--sol-bg-base, #0a0b10);
  --surface:        var(--sol-bg-card, #1a1d27);
  --surface-hover:  var(--sol-bg-input, #252836);
  --text:           var(--sol-text-primary, #e2e8f0);
  --text-muted:     var(--sol-text-muted, #94a3b8);
  --border:         var(--sol-border-color, rgba(255,255,255,0.08));
  --danger:         var(--sol-error, #ef4444);
}
