/**
 * WIZSP Design Language — the token layer.
 *
 * The single source of truth for every surface this plugin paints: the wp-admin
 * screens and the member portal on the public site. Values come from the WIZSP
 * Design Language document; nothing here is invented, and no screen stylesheet
 * may introduce a colour, radius or shadow that is not defined below.
 *
 * The five hard rules the document states, restated here because they are easy
 * to break by accident:
 *
 *   1. No gradients. Anywhere.
 *   2. No drop shadows. Surfaces separate with a 1px --wizspBorder line.
 *   3. Exactly one filled primary action per screen or section.
 *   4. Status colour is semantic. Never decorative.
 *   5. The radius scale is closed: 6-8 / 9-10 / 12 / full.
 *
 * @package MA62_Treasury
 */

/* ============================================================== Noto Sans */

/*
 * The design language names Inter. This interface is read in Greek all day by one
 * person, and Noto Sans draws Greek as a script in its own right rather than as an
 * extension of a Latin face — its accents and final sigma stay legible at the 11px
 * label size this design uses. Nothing else about the language changes.
 *
 * Self-hosted so a treasurer's browser never announces itself to a font CDN, and so
 * the screens still render on a site behind a firewall. Variable weight axis
 * 400-800, one file per subset.
 */

@font-face {
	font-family: "Noto Sans";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/noto-sans-greek.woff2") format("woff2");
	unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

@font-face {
	font-family: "Noto Sans";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/noto-sans-greek-ext.woff2") format("woff2");
	unicode-range: U+1F00-1FFF;
}

@font-face {
	font-family: "Noto Sans";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/noto-sans-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Noto Sans";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/noto-sans-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ================================================================= Tokens */

:root {
	/* Colour. Twelve values, and there is no thirteenth. */
	--wizspPrimaryBase: #002366;
	--wizspPrimaryHover: #001a4d;
	--wizspPrimaryActive: #001338;
	--wizspPrimaryTint: #e6e9f0;
	--wizspTextPrimary: #0f172a;
	--wizspTextSecondary: #475569;
	--wizspTextMuted: #94a3b8;
	--wizspBorder: #e2e8f0;
	--wizspPageBackground: #f8fafc;
	--wizspStatusSuccess: #15803d;
	--wizspStatusWarning: #b45309;
	--wizspStatusDanger: #b91c1c;

	/* Surfaces. White is the card; the page sits one step cooler. */
	--wizspSurface: #ffffff;

	/*
	 * Status washes. The document sets badge fills at 12% of the status
	 * colour, so they are declared once here rather than re-mixed per screen.
	 */
	--wizspSuccessWash: rgba(21, 128, 61, 0.12);
	--wizspWarningWash: rgba(180, 83, 9, 0.12);
	--wizspDangerWash: rgba(185, 28, 28, 0.12);

	/* Type. Noto Sans, four weights, six steps. */
	--wizspFontFamily: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--wizspWeightRegular: 400;
	--wizspWeightMedium: 600;
	--wizspWeightBold: 700;
	--wizspWeightHeavy: 800;
	--wizspSizeDisplay: 30px;
	--wizspSizeHeading: 22px;
	--wizspSizeSection: 16px;
	--wizspSizeBody: 14px;
	--wizspSizeLabel: 12px;
	--wizspSizeMicro: 11px;
	/* The document's floor for backoffice copy. Nothing reads smaller than a label. */
	--wizspSizeControl: 13px;

	/* Space. Six steps, 4 to 32. */
	--wizspSpace1: 4px;
	--wizspSpace2: 8px;
	--wizspSpace3: 12px;
	--wizspSpace4: 16px;
	--wizspSpace5: 24px;
	--wizspSpace6: 32px;

	/* Radius. Closed scale. */
	--wizspRadiusSm: 8px;
	--wizspRadiusMd: 9px;
	--wizspRadiusLg: 12px;
	--wizspRadiusFull: 999px;

	/* The one line weight that separates anything from anything. */
	--wizspHairline: 1px solid var(--wizspBorder);
}

/*
 * A treasury screen is read, not admired: no motion beyond the state changes a
 * control needs to feel alive, and none at all for a reader who asked for none.
 */
@media ( prefers-reduced-motion: reduce ) {
	.sot-wizsp *,
	.sot-portal * {
		animation-duration: 1ms !important;
		transition-duration: 1ms !important;
	}
}
