/* ResiFactory design tokens — extracted verbatim from docs/design/DESIGN-SPEC.md §1 (v8, locked 2026-07-18).
   NOT yet linked from any template: production adoption happens in the tokens-extraction phase
   (pixel-diff-zero gate) before the shared shell partials pick it up. Pixel reference:
   docs/design/resifactory-v8-final.html. */

:root {
  /* -- canvas -- */
  --bg-top: #080a07;          /* body gradient start */
  --bg-bottom: #060706;       /* body gradient end   */
  --ink-btn: #10130a;         /* text on lime buttons */

  /* -- text ramp (warm gray-greens, never pure gray) -- */
  --text: #e8eae0;            /* headings, primary copy */
  --text-soft: #d8dbc9;       /* values, code, emphasized data */
  --text-muted: #a8ab9c;      /* body copy on cards */
  --text-muted-2: #8d9081;    /* labels, captions */
  --text-dim: #7b7e6f;        /* micro copy, table keys */
  --text-faint: #6f7263;      /* footnotes */
  --text-ghost: #5b5e52;      /* separators, bullet glyphs */

  /* -- brand greens -- */
  --lime: #c5e83a;            /* THE accent: prices, dots, keywords, focus rings */
  --lime-soft: #b9dc36;       /* button gradient mid */
  --lime-bright: #d3ec62;     /* button gradient top */
  --lime-deep: #a3c52e;       /* button gradient bottom */
  --link: #aacc55;            /* all links; hover -> var(--lime) */
  --green-label: #b3cf62;     /* mono card-header labels */
  --green-check: #9fc44e;     /* ✓ bullets, accordion +/− */
  --green-comment: #86a344;   /* code comments */
  --olive: #7c9a3e;           /* backdrop washes/grid at low alpha */
  --olive-deep: rgba(74, 94, 38, 1);  /* darkest wash, always used at ≤.16 alpha */

  /* -- soon/muted product ramp -- */
  --soon-title: #c3c6b6;
  --soon-text: #b9bcac;
  --soon-pill: #96998a;

  /* -- semantic -- */
  --pending: #ffa502;         /* PENDING† tags only — never decorative */

  /* -- borders (always white-alpha, never solid gray) -- */
  --edge-faint: rgba(255,255,255,.06);
  --edge: rgba(255,255,255,.09);
  --edge-strong: rgba(255,255,255,.17);   /* card top edge — the "lighting" */
  --edge-glass-top: rgba(255,255,255,.22);

  /* -- type -- */
  --font-ui: -apple-system, system-ui, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, monospace;

  /* -- radii -- */
  --r-card: 14px;
  --r-btn: 10px;
  --r-chip: 9px;
  --r-copybtn: 7px;
  --r-pill: 99px;

  /* -- shadows -- */
  --shadow-card: 0 14px 34px rgba(0,0,0,.32);
  --shadow-glass: 0 20px 48px rgba(0,0,0,.4);

  /* -- layout -- */
  --wrap-max: 1140px;
  --wrap-pad: 28px;
  --sect-pad: 62px;           /* 40px at ≤760px */
  --gap-grid: 16px;
  --pad-card: 20px 22px;
}

/* == Kit extension tokens — added Phase 0 of the total-UI redesign (2026-07-18).
   Two groups:
   1. Reference literals: exact values lifted from resifactory-v8-final.html that §1
      didn't name, promoted to tokens so kit.css contains ZERO raw color/size values.
      These are pixel-locked to the reference — to change one, change the reference first.
   2. App-surface tokens: NEW post-login surface (dashboard/admin) values, owned by
      DESIGN-SPEC-APP.md. Not used by marketing pages. == */
:root {
  /* -- 1. reference literals (marketing, pixel-locked) -- */
  --text-status: #9fa393;         /* statusbar body, datasheet fold summaries */
  --text-status-strong: #c9cdbb;  /* statusbar <b> */
  --text-lead: #aeb1a2;           /* .lead body copy */
  --text-spec: #b4b7a8;           /* product-card spec bullets */
  --text-micro: #7c7f70;          /* hero micro line */
  --text-soon-row: #9a9d8e;       /* pricing-matrix coming-soon rows */
  --text-paychip: #cfd2c1;        /* payment chips */
  --lime-total: #d6ec9a;          /* ledger tfoot totals */
  --nav-bg: rgba(9,11,8,.8);      /* sticky navbar fill */
  --code-bg: rgba(0,0,0,.28);     /* fmt-card pre */
  --code-bg-deep: rgba(0,0,0,.3); /* terminal pre */

  /* -- 2. app surface (post-login; productivity restraint) -- */
  --danger: #e07a68;              /* destructive actions / errors — warm, sits in the ramp */
  --danger-soft: rgba(224,122,104,.12);
  --danger-edge: rgba(224,122,104,.4);
  --warn: #ffa502;                /* semantic alias of --pending for app states */
  --warn-soft: rgba(255,165,2,.1);
  --ok: #c5e83a;                  /* semantic alias of --lime for app states */
  --ok-soft: rgba(197,232,58,.1);
  --input-bg: rgba(0,0,0,.26);
  --input-edge: rgba(255,255,255,.1);
  --panel-bg: rgba(14,16,12,.97); /* dropdown/menu panels — solid, never blurred (fixed-pos trap) */
  --pad-card-app: 16px 18px;      /* denser than marketing --pad-card */
  --sect-pad-app: 34px;
  --wrap-max-app: 1280px;         /* app pages run wider — tables need the room */

  /* -- LED state ramp (DESIGN-SPEC-APP ruling on led-state-ramp) --
     Distinct greens carry distinct meanings — never merge them. */
  --led-live: #c5e83a;            /* actively serving traffic (may pulse — motion exemption) */
  --led-ok: #9fc44e;              /* healthy, quiet */
  --led-avail: #8fce7a;           /* provisioned, unassigned — warm mint, NOT ok-green */
  --led-idle: #7b7e6f;            /* known, dormant */
  --led-warn: #ffa502;            /* degraded (alias --pending) */
  --alarm: #ff4757;               /* ops EMERGENCY only (crit LEDs, abuse banners) —
                                     NEVER for destructive buttons (that's --danger) */
  --alarm-soft: rgba(255,71,87,.12);

  /* -- pool series colors (ENTITY-LOCKED — from the original analytics.js POOL_COLORS;
     a color belongs to a pool forever, never rank-assigned. Never reorder/remap.) -- */
  --pool-premium: #7c9a3e;
  --pool-walmart_premium: #3987e5;
  --pool-retail_select: #d55181;
  --pool-mobile_dedicated: #9085e9;
  --pool-dedicated_pool: #199e70;
  --pool-private_pool: #d95926;
  /* 8-slot domain palette (session-sticky slots in analytics; charts pass these) */
  --dom-1: #c5e83a; --dom-2: #7c9a3e; --dom-3: #d6ec9a; --dom-4: #b3cf62;
  --dom-5: #86a344; --dom-6: #9fc44e; --dom-7: #5b7a2e; --dom-8: #cfe07a;
}
