/* ============================================================================
   theme.css — Thoughtz design-token layer (CHANGE-036)
   ----------------------------------------------------------------------------
   TMS copy. App and thoz carry a file of the same name with an IDENTICAL token
   vocabulary, kept in sync BY HAND. Per-app value differences are deliberate
   and are marked with a "PER-APP" comment — currently only --thz-caption.

   TIER 1 — PRIMITIVES: the raw palette. Nothing outside this file may
   reference a primitive; they exist only to feed the semantic tier.
   TIER 2 — SEMANTIC: what stylesheets, inline styles and page JS reference.

   Every value is seeded at the literal it replaced (Phase 1 = zero visual
   change). A future theme (Phase 4) redefines tokens under
   [data-theme="..."] blocks below the defaults — it must cover the alpha
   variants too, since they are seeded literals, not derived values.

   NOT tokens on purpose: shadows (neutral black/white alphas), the one-off
   decorative literals catalogued in CHANGE-036-token-map.md bucket C, the
   self-contained maintenance/PCScanLink pages, and Bootstrap's own palette
   (Phase 3 maps --bs-* onto these tokens; #0d6efd stays literal until then).
   ========================================================================= */

:root {
	/* ------------------------------------------------------------------ */
	/* TIER 1 — PRIMITIVES                                                */
	/* ------------------------------------------------------------------ */

	/* Brand blues */
	--thz-accent-700: #36618f; /* darkest brand blue, the primary */
	--thz-accent-600: #3568a9; /* brighter brand blue */
	--thz-accent-400: #519fd7; /* light sky blue */
	--thz-accent-300: #6b89ad; /* muted slate blue */
	--thz-accent-050: #e5ebf0; /* pale blue-grey wash (+ all flat SVG fills) */

	/* Brand-blue alpha variants (seeded literals — a theme must restate them) */
	--thz-accent-700-a25: #36618f40;
	--thz-accent-700-a47: #36618f78;
	--thz-accent-700-a48: #36618f7a;
	--thz-accent-700-a69: #36618fb0;
	--thz-accent-700-a80: #36618fcc;
	--thz-accent-700-a95: #36618ff2;
	--thz-accent-700-a96: #36618ff5;
	--thz-accent-600-a30: #3568a94d;
	--thz-accent-300-a30: #6b89ad4d;

	/* Neutrals */
	--thz-white: #ffffff;
	--thz-white-a08: #ffffff14;
	--thz-black: #000000;
	--thz-ink: #0e0e0e; /* body text */
	--thz-ink-a12: #0e0e0e1f;
	--thz-ink-a69: #0e0e0eb0;
	--thz-paper: #f8f9f9; /* page background / text-on-brand */
	--thz-paper-a89: #f8f9f9e3;
	--thz-line: #e6e4e4; /* subtle borders */
	--thz-well: #e9ecef; /* inset/well background (= Bootstrap gray-200) */
	--thz-stripe: #f6f6f6; /* alternating row background */
	--thz-silver: #c0c0c0; /* was the `silver` keyword — same value */
	--thz-silver-a15: #c0c0c026;
	--thz-silver-a38: #c0c0c061;
	--thz-gray: #808080; /* was the `gray` keyword — same value */
	--thz-gray-600: #6c757d; /* = Bootstrap secondary */
	--thz-caption: #757373; /* PER-APP: App #6d6b6b · TMS #757373 */
	--thz-faint: #bababa; /* was rgb(186, 186, 186) — same value */
	--thz-fainter: #acaaaa; /* was rgb(172, 170, 170) — same value */
	--thz-slate: #5a6673;
	--thz-muted-cool: #989dac;
	--thz-header-dark: #41464b;
	--thz-header-dark-a58: #41464b94;
	--thz-scrim: #292d30b0; /* modal/overlay scrim */

	/* Status */
	--thz-danger: #e24f4f; /* unified App+TMS 2026-07-27; 3.84:1 on white — see map */
	--thz-success: #2e9e5b;
	--thz-warning: #ff6600; /* was #f60 — same value */
	--thz-red: #ff0000; /* was the `red` keyword — same value */
	--thz-green: #008000; /* was the `green` keyword — same value */
	--thz-success-vivid: #01b601; /* was rgb(1, 182, 1) — same value */
	--thz-toast-danger: #b02a2a;
	--thz-toast-warning: #8a5a00;
	--thz-toast-caution: #a34700;
	--thz-chip-success-bg: #e2f3e8;
	--thz-chip-success-text: #22693f;
	--thz-chip-warning-bg: #fdf1dd;
	--thz-chip-warning-text: #8a5a10;

	/* Charts (read by page JS from Phase 2 — was rgba(0,123,255,1) etc.) */
	--thz-chart-1: #007bff;
	--thz-chart-2: #7b7b7b;
	--thz-chart-3: #ff7b7b;

	/* Rounded-progress dial */
	--thz-progress-track: #e0e0e0;
	--thz-rating-low: #bb3602;
	--thz-rating-mid: #f1b641;
	--thz-rating-good: #9fe7c6;

	/* Menu surface (App + thoz — the deliberate #819fd7 pair) */
	--thz-menu-bg: #819fd7;
	--thz-menu-accent: #a7f9ff;

	/* TMS auth-screen accents (defined everywhere for vocabulary parity) */
	--thz-auth-teal: #0089ad;
	--thz-auth-blue: #165a99;
	--thz-teal: #0186ab;
	--thz-teal-a62: #0186ab9e;
	--thz-teal-deep-a62: #00647f9e;

	/* TMS results/AI panel tints (brand-hue — must follow a re-theme) */
	--thz-tint-panel: #dbe3ec;
	--thz-tint-panel-alt: #eef1f4;
	--thz-tint-border: #cfd9e4;
	--thz-tint-chip: #dbe6f2;
	--thz-accent-deep: #28496b;

	/* ------------------------------------------------------------------ */
	/* TIER 2 — SEMANTIC (the only names the rest of the codebase uses)   */
	/* ------------------------------------------------------------------ */

	/* Text */
	--thz-text-body: var(--thz-ink);
	--thz-text-body-a69: var(--thz-ink-a69);
	--thz-text-strong: var(--thz-black);
	--thz-text-inverse: var(--thz-white);
	--thz-text-on-brand: var(--thz-paper);
	--thz-text-brand: var(--thz-accent-700);
	--thz-text-brand-soft: var(--thz-accent-700-a69);
	--thz-text-brand-a47: var(--thz-accent-700-a47);
	--thz-text-brand-a95: var(--thz-accent-700-a95);
	--thz-text-brand-alt: var(--thz-accent-600);
	--thz-text-brand-light: var(--thz-accent-400);
	--thz-text-muted-brand: var(--thz-accent-300);
	--thz-text-muted-brand-a30: var(--thz-accent-300-a30);
	--thz-text-placeholder: var(--thz-silver);
	--thz-text-hint: var(--thz-gray);
	--thz-text-secondary: var(--thz-gray-600);
	--thz-text-caption: var(--thz-caption);
	--thz-text-slate: var(--thz-slate);
	--thz-text-muted-cool: var(--thz-muted-cool);
	--thz-text-faint: var(--thz-faint);
	--thz-text-fainter: var(--thz-fainter);
	--thz-text-header-dark: var(--thz-header-dark);
	--thz-text-danger: var(--thz-danger);
	--thz-text-success: var(--thz-success);
	--thz-text-warning: var(--thz-warning);
	--thz-text-error: var(--thz-red);
	--thz-text-positive: var(--thz-green);
	--thz-text-valid: var(--thz-success-vivid);
	--thz-text-chip-success: var(--thz-chip-success-text);
	--thz-text-chip-warning: var(--thz-chip-warning-text);
	--thz-text-chip-info: var(--thz-accent-deep);
	--thz-text-menu-accent: var(--thz-menu-accent);
	--thz-text-auth-accent: var(--thz-auth-teal);

	/* Backgrounds */
	--thz-bg-page: var(--thz-paper);
	--thz-bg-page-a89: var(--thz-paper-a89);
	--thz-bg-surface: var(--thz-white);
	--thz-bg-surface-a08: var(--thz-white-a08);
	--thz-bg-contrast: var(--thz-black);
	--thz-bg-brand: var(--thz-accent-700);
	--thz-bg-brand-soft: var(--thz-accent-700-a69);
	--thz-bg-brand-a48: var(--thz-accent-700-a48);
	--thz-bg-brand-a80: var(--thz-accent-700-a80);
	--thz-bg-brand-a96: var(--thz-accent-700-a96);
	--thz-bg-brand-alt: var(--thz-accent-600);
	--thz-bg-brand-alt-a30: var(--thz-accent-600-a30);
	--thz-bg-brand-light: var(--thz-accent-400);
	--thz-bg-muted-brand: var(--thz-accent-300);
	--thz-bg-wash: var(--thz-accent-050);
	--thz-bg-well: var(--thz-well);
	--thz-bg-stripe: var(--thz-stripe);
	--thz-bg-muted-a15: var(--thz-silver-a15);
	--thz-bg-muted: var(--thz-silver);
	--thz-bg-header-dark: var(--thz-header-dark);
	--thz-bg-header-dark-a58: var(--thz-header-dark-a58);
	--thz-bg-overlay: var(--thz-scrim);
	--thz-bg-danger: var(--thz-danger);
	--thz-bg-success: var(--thz-success);
	--thz-bg-warning: var(--thz-warning);
	--thz-bg-positive: var(--thz-green);
	--thz-bg-toast-danger: var(--thz-toast-danger);
	--thz-bg-toast-warning: var(--thz-toast-warning);
	--thz-bg-toast-caution: var(--thz-toast-caution);
	--thz-bg-chip-success: var(--thz-chip-success-bg);
	--thz-bg-chip-warning: var(--thz-chip-warning-bg);
	--thz-bg-chip-info: var(--thz-tint-chip);
	--thz-bg-panel: var(--thz-tint-panel);
	--thz-bg-panel-alt: var(--thz-tint-panel-alt);
	--thz-bg-menu: var(--thz-menu-bg);
	--thz-bg-teal: var(--thz-teal);
	--thz-bg-teal-a62: var(--thz-teal-a62);
	--thz-bg-teal-deep-a62: var(--thz-teal-deep-a62);
	--thz-bg-progress-track: var(--thz-progress-track);
	--thz-auth-gradient-1: var(--thz-auth-teal);
	--thz-auth-gradient-2: var(--thz-auth-blue);

	/* Borders */
	--thz-border-brand: var(--thz-accent-700);
	--thz-border-brand-soft: var(--thz-accent-700-a69);
	--thz-border-brand-a25: var(--thz-accent-700-a25);
	--thz-border-brand-alt: var(--thz-accent-600);
	--thz-border-brand-light: var(--thz-accent-400);
	--thz-border-muted-brand: var(--thz-accent-300);
	--thz-border-wash: var(--thz-accent-050);
	--thz-border-subtle: var(--thz-line);
	--thz-border-muted: var(--thz-silver);
	--thz-border-muted-a38: var(--thz-silver-a38);
	--thz-border-inverse: var(--thz-white);
	--thz-border-body: var(--thz-ink);
	--thz-border-body-a12: var(--thz-ink-a12);
	--thz-border-danger: var(--thz-danger);
	--thz-border-success: var(--thz-success);
	--thz-border-positive: var(--thz-green);
	--thz-border-panel: var(--thz-tint-border);
	--thz-border-track: var(--thz-progress-track);
}
