/*
 * ecl-tokens.css — Ecolease canonical brand tokens
 *
 * Single source of brand truth. Loaded before every other Ecolease
 * stylesheet on every surface (admin, front, customer portal, supplier
 * portal, landing, campaign). All other stylesheets reference var(--*)
 * tokens declared here; hardcoded hex outside this file is migration
 * debt.
 *
 * Values are locked to the Path A spec
 * (per ecolease-design-direction.md and TOKENS.md, locked 2026-05-30).
 *
 * Stage 1 of the design-system migration arc: this file declares the
 * defaults. No existing stylesheet reads from these tokens yet — Stage 2
 * (customer portal) and Stage 3 (admin shell + remaining surfaces)
 * migrate existing token references onto these names. Until then, the
 * tokens load harmlessly and the brand looks identical to before.
 *
 * Foundations:
 *   CONCEPT.md   — recognition over processing, beauty is respect
 *   TOKENS.md    — warm paper, forest green, Fraunces + Inter, three
 *                  radii, two shadows, one accent
 *   DOMAIN.md    — a considered finance document, not a fintech app
 */

:root {

  /* ── BRAND FOUNDATIONS ─────────────────────────────────────────── */

  /* Forest green — primary brand colour (CONCEPT principle 4). */
  --green:       #2E7D5C;
  --green-deep:  #1F5A41;
  --green-soft:  #7AB89C;
  --green-pale:  #EAF1EC;

  /* Warm paper — default background, never pure white (TOKENS.md). */
  --paper:       #FBF9F4;
  --paper-soft:  #F1ECDF;

  /* Ink — body text + secondary mut. */
  --ink:         #1B1F1C;
  --ink-mut:     #5A6660;

  /* Rule — hairline borders. */
  --rule:        #E1DCC9;

  /* Amber — single accent (TOKENS.md: no second accent permitted). */
  --amber:       #E89B43;

  /* ── STATUS COLOURS ────────────────────────────────────────────── */

  --ok:          #2E7D5C;  /* aliases --green semantically */
  --warn:        #E89B43;  /* aliases --amber semantically */
  --low:         #D27C4A;  /* warm coral — critical / blocked / failed */

  /* ── SPACING SCALE — eight values, no off-scale ────────────────── */
  /* Off-scale spacing (15px, 38px) is what makes two screens that
     should look the same feel different. Discipline here is invisible
     and load-bearing (ecolease-design-direction.md Part One). */

  --sp-1:  4px;
  --sp-2:  8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 22px;
  --sp-6: 32px;
  --sp-7: 48px;
  --sp-8: 64px;

  /* ── BORDER RADII — three values, no improvisation ─────────────── */
  /* Card / nested / button. A fourth radius is improvisation. */

  --radius-card:    20px;
  --radius-nested:  14px;
  --radius-button:  11px;

  /* ── SHADOWS — two values, green-tinted, no pure black ─────────── */
  /* The warmth holds even in the elevation (TOKENS.md). */

  --shadow-card:    0 16px 50px rgba(31, 90, 65, 0.18);
  --shadow-nested:  0 4px 18px rgba(31, 90, 65, 0.08);

  /* ── TYPE STACK ────────────────────────────────────────────────── */
  /* Fraunces (display) + Inter (body). Mixing fonts beyond this pair
     is a brand failure. Fraunces loaded via Google Fonts CDN by
     ECL_Design_Tokens; Georgia is the cold-cache fallback. */

  --display: 'Fraunces', Georgia, serif;
  --body:    'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* ── PROJECT EXTENSIONS — no spec equivalent ───────────────────── */
  /* These are not part of the canonical brand spec but are preserved
     to keep working surfaces intact through the migration. Each is
     either (a) a legacy semantic that wasn't named in the spec, or
     (b) a tone the spec doesn't account for but that ships in real UI.
     Stage 0 disposition table documents the rationale per token. */

  /* Bright-action accent green — portal CTAs, nav avatar, focus rings.
     Harmonised to admin's #4CAF78 (spec offered no slot for this tone). */
  --green-accent:  #4CAF78;

  /* Near-black ink — admin sidebar background, tooltip background. Much
     darker than --ink (#1B1F1C). Stage 0 disposition: preserved-as-extension
     so nav surfaces don't suddenly lighten when --dark is removed from
     per-file :root declarations. */
  --ink-strong:    #0f1f16;

  /* Amber soft-fill background — paired with --amber for badges/notifs.
     Stage 0 rename of legacy --amber-light. */
  --amber-soft:    #fde8cc;

  /* Low (warm-coral) soft-fill background — paired with --low.
     Stage 0 rename of legacy --red-light. */
  --low-soft:      #fad7d3;

  /* Pure white — preserved because admin and portal use it liberally
     for card backgrounds. The spec wants warm-paper cards but that is
     a per-surface semantics decision; do not rewrite --white globally.
     See memory `design-system-migration-followups` follow-up #2. */
  --white:         #ffffff;

  /* Cool blue — supplier portal + portal "blue badge" rare neutral cue.
     Off-spec; no second accent permitted in canonical, but the surface
     exists. Flagged for retire-or-keep decision later. */
  --blue:          #1a5a7a;
  --blue-light:    #d0e8f5;

  /* Text shades ON a green-deep / dark ground — the guide figure-card + closing
     band (paper-on-green). Named so no template hardcodes these hexes (TOKENS.md:
     no hardcoded hex outside this file). A cool, green-tinted near-white and its
     muted/dim steps, distinct from warm --paper which reads too warm on green. */
  --on-green:      #EAF3EE;  /* primary text on a green-deep ground */
  --on-green-mut:  #C7DBD0;  /* secondary / muted text on green-deep */
  --on-green-dim:  #9FBFB1;  /* dim / tertiary text on green-deep */

}
