:root{
/* Brand palette — the five named colors */
--lime:#DFF478;          /* Soothing Lime  — primary accent, eHR reward */
--silky-white:#F7F3E6;   /* Silky White    — app ground */
--floral-blue:#92BAD5;   /* Floral Blue    — calm/secondary data */
--kawaii-blue:#788CE3;   /* Kawaii Blue    — Boutique / premium tier */
--navy:#17243F;          /* Nautical Navy  — ink, dark surfaces */

/* Derived neutrals — navy mixed toward the ground, not grey */
--navy-80:#2E3A52;--navy-60:#55607A;--navy-45:#616A7E;--navy-40:#8A93A6;--navy-25:#B9C0CD;--navy-12:#DCDFE6;
--paper:#FFFDF6;         /* card — one step lighter than the ground */
--paper-sunk:#EFEADA;    /* raised/overlay tint */
--lime-soft:#F1FABF;--kawaii-soft:#E2E6FA;--floral-soft:#E4EEF5;

/* Accent inks — for TEXT and icons, where the fill colors are too light to read */
--lime-ink:#5D6B14;--kawaii-ink:#3F4FA8;--floral-ink:#2F6285;

/* Section colors — each product area owns one ink. Use for that section's
   eyebrows, active states, accent numerals and section-level chips. */
--section-ehr:var(--lime-ink);         /* #5D6B14 — eHR, weekly goal, Activity */
--section-rewards:var(--kawaii-ink);   /* #3F4FA8 — Rewards, Boutique tier */
--section-crew:var(--floral-blue);     /* #92BAD5 — Crew (not yet designed; fill only,
                                          pair with --floral-ink for text on paper) */
--section-explore:var(--navy);         /* #17243F — Explore */

/* HR zones — 3-zone model (Karvonen HRR), requirements 5.2 */
--zone1-light:var(--navy-25);        /* <64% HRR — not reward-eligible */
--zone2-ehr:var(--lime);             /* 64-79% HRR — the eHR reward zone */
--zone3-vigorous:var(--floral-blue); /* >=80% HRR — feedback only */

/* Semantic aliases */
--accent:var(--lime);--accent-ink:var(--lime-ink);
--accent-premium:var(--kawaii-blue);--accent-premium-ink:var(--kawaii-ink);
--bg-primary:var(--silky-white);
--surface-1:var(--paper);--surface-2:var(--paper-sunk);--surface-3:var(--navy-12);
--surface-card:var(--surface-1);--surface-raised:var(--surface-2);
--surface-invert:var(--navy);
--border-hairline:rgba(23,36,63,0.10);--border-hairline-strong:rgba(23,36,63,0.20);
/* --text-tertiary uses navy-45: the lightest rung that still clears 4.5:1 on paper.
   navy-40 and lighter are decorative-only (swatches, tracks) — never text. */
--text-primary:var(--navy);--text-secondary:var(--navy-60);--text-tertiary:var(--navy-45);
--text-invert:var(--silky-white);
--text-on-accent:var(--navy);--text-on-premium:var(--silky-white);
--success:#2F7D4F;--warning:var(--floral-ink);--danger:#B4353B;--locked:var(--navy-45);
/* legacy aliases kept so nothing breaks mid-migration */
--black:var(--navy);--white:var(--paper);
}