/*
 * Cleaning Warehouse — canonical colour tokens. THE single source of truth.
 *
 * Every cw-* rebuild plugin aliases its own prefixed tokens to these, e.g.
 *   #cwms { --lime: var(--cw-lime, #80bc00); }
 * The literal in the var() fallback is deliberate: if this file ever fails to
 * load (child theme swapped, handle not registered on some AJAX/REST render),
 * every consumer keeps its correct colour instead of collapsing to unset. So
 * this file is the source of truth WITHOUT being a hard runtime dependency.
 *
 * Approved 2026-08-20. The 26 values in the first four groups are the signed-off
 * palette and must not be edited without re-approving the system. The ADDITIONS
 * group closes gaps the palette did not answer, where every plugin had otherwise
 * invented its own value (four different lime borders, two different bright
 * limes, three different on-dark texts).
 *
 * DELIBERATELY NOT TOKENISED: pure white (#fff) and pure black (#000). White is
 * white, and the black instances are @media print (ink on paper) plus a couple of
 * icon fills — none of them are palette decisions, and routing them through a
 * token would make a print stylesheet theme-dependent.
 *
 * ZONE RULES (enforced by review, not by CSS):
 *   - Lime owns customer surfaces. Blue owns operator surfaces.
 *   - Text on lime is --cw-olive, NEVER white. White on lime measures 2.3:1;
 *     olive on lime measures 7.25:1.
 *   - --cw-rewards* is quarantined to rewards and money zones. It must not
 *     appear in navigation, chrome, product pages or checkout outside the
 *     rewards band itself.
 *   - --cw-campaign-* are injections only: Family Rewards bands, the schools
 *     programme, seasonal promos. Never site chrome.
 */

:root {
	/* ---- ORIGIN — pixel-sampled from the logo ------------------------------ */
	--cw-lime:            #80bc00;  /* primary; every customer CTA             */
	--cw-lime-deep:       #5f8c00;  /* hover / pressed — the system DARKENS    */
	--cw-lime-dark:       #4c7000;  /* lime type on white                      */
	--cw-olive:           #16210a;  /* text on lime                            */

	/* ---- INK RAMP --------------------------------------------------------- */
	--cw-ink:             #263238;  /* headings                                */
	--cw-ink-2:           #52575a;  /* body; the logo grey                     */
	--cw-grey:            #6b6b6b;  /* meta, captions                          */
	--cw-faint:           #9a9a94;  /* disabled, hints                         */

	/* ---- SURFACES --------------------------------------------------------- */
	--cw-line-2:          #d6d3ca;  /* strong rules                            */
	--cw-line:            #e7e5df;  /* hairlines, borders                      */
	--cw-lime-wash:       #f3f9e4;  /* lime-tinted panels                      */
	--cw-lime-row:        #f9fcf0;  /* zebra rows, table heads                 */
	--cw-ground:          #f7f7f5;  /* page — warm neutral                     */
	--cw-card:            #ffffff;  /* raised surfaces                         */

	/* ---- STATE — desaturated on purpose, never a second accent ------------- */
	--cw-amber:           #9a6414;  /* pending, due soon, low stock            */
	--cw-amber-tint:      #fdf4e6;
	--cw-amber-line:      #ecdcc0;
	--cw-brick:           #a3372c;  /* failed, cancelled, out of stock         */
	--cw-brick-tint:      #fbeeec;
	--cw-brick-line:      #eed3ce;

	/* ---- REWARDS ZONE — quarantined, see ZONE RULES above ------------------ */
	--cw-rewards:         #185aa6;  /* rewards bands, cashback, wallet         */
	--cw-rewards-deep:    #12467f;  /* hover inside the zone                   */
	--cw-rewards-tint:    #e9f1fa;
	--cw-rewards-line:    #cdddf0;
	--cw-campaign-teal:   #28c5c5;  /* schools programme, seasonal             */
	--cw-campaign-amber:  #fc881d;  /* promo banners, competitions             */

	/* ======================================================================
	 * ADDITIONS 2026-08-20 — gaps the 26 did not answer.
	 * Each one replaces a value that had been invented independently in two
	 * or more plugins. Contrast figures are measured, not estimated.
	 * ==================================================================== */

	/* Border for lime-tinted panels. Previously invented six ways:
	 * #dcecb8 #e2ecc9 #cbe08f #cfe0a8 #cfe39a #e6eed2. */
	--cw-lime-line:       #dcecb8;

	/* Lime that reads on a dark ground — --cw-lime only manages 5.71:1 on ink.
	 * Chosen over the competing #aadb3e on measurement:
	 * #b5e048 on ink 8.60:1 / on olive 10.92:1; #aadb3e 8.09:1 / 10.28:1. */
	--cw-lime-bright:     #b5e048;

	/* Text on the campaign colours — the job --cw-olive does for lime.
	 * The palette defined no on-teal or on-amber, so My Shop derived these. */
	--cw-teal-ink:        #062e2e;
	--cw-amber-ink:       #3d2000;

	/* Light text on dark grounds. Two, because the grounds differ in
	 * temperature: olive is warm, ink is cool, and one value looks wrong on
	 * whichever it was not picked for. */
	--cw-on-olive:        #eef3e2;
	--cw-on-olive-2:      #c9d6ae;  /* secondary / link rest state on olive    */
	--cw-on-ink:          #dfe3e4;

	/* Mid step in the rewards ramp. The zone had two darks and two lights and
	 * nothing between, so My Shop invented this for secondary rate text. */
	--cw-rewards-mid:     #5b7fa8;

	/* Positive / success. Ruled as an alias of --cw-lime-dark rather than a new
	 * hue: the palette has no green that is not the brand lime, which is why
	 * two files had reached for Bootstrap and Tailwind greens instead. */
	--cw-success:         #4c7000;

	/* DARK THEME: deliberately not defined. No rebuild has one, and inventing a
	 * storefront-wide dark palette is a design decision to be taken, not a
	 * cleanup to be inferred. When it is taken, it belongs in this file as a
	 * prefers-color-scheme block redefining these tokens only. */
}
