/*
 * hax-palette.css
 *
 * Site-level extended palette as CSS custom properties — three tiers covering per-discipline
 * accents, semantic status colors, and surface tints. Approved by operator 2026-05-10 from
 * CoWorker's brand-sheet pass. Loaded site-wide from App.razor.
 *
 * Usage:
 *   - Tier 1 (per-discipline accents) — border-left on cards, nav active state, stat header
 *     underlines. Applied at the discipline-section level (cubing card, bowling card, etc.).
 *   - Tier 2 (semantic status) — supplements the existing lime-success / red-error pair with
 *     amber-pending and sky-info. Use whenever a non-success status needs a color cue.
 *   - Tier 3 (surface tints) — hierarchy beneath/above the page bg. Tier-3 surface-page
 *     mirrors HaxahedronTheme.cs's PaletteDark.Background (#022C22, emerald-950); the other
 *     tints layer above (cards, elevated overlays) and below (recessed troughs / wells).
 *
 * The MudBlazor PaletteDark in HaxahedronTheme.cs is the authority for component-level theming
 * (buttons, inputs, surfaces). This file complements it for bespoke styling that lives outside
 * MudBlazor's reach (per-discipline accents, status indicators, custom layered surfaces).
 *
 * SYSTEM RULE — color is never the sole indicator of status.
 * Two intentional color collisions in this palette are safe ONLY because of this rule:
 *   (1) --hax-accent-cubing and --hax-status-pending are both #FBBF24 (amber-400)
 *   (2) --hax-accent-bowling (#DC2626 red-600) shares the red family with --hax-status-error
 *       (#FCA5A5 red-300)
 * Every status indicator (pending, info, error, success-when-not-the-headline) MUST pair the
 * color with at minimum a text label — ideally text + an icon or shape token. The accent
 * identifies the discipline; the chip identifies the state; different positions, different
 * shapes, different text carry the semantic load.
 *
 * One spatial precaution for the red collision: do NOT stack a --hax-accent-bowling strip
 * immediately adjacent to a --hax-status-error chip without ≥16px of dark-surface spacing.
 * Standard card padding is sufficient. Pinned in CoWorker's brand sheet v1.1.
 */

:root {
    /* ----- Tier 1 — per-discipline accents ----- */
    --hax-accent-cubing: #FBBF24;        /* amber-400 */
    --hax-accent-bowling: #DC2626;       /* red-600 — distinct from error red-300 */
    --hax-accent-chess: #94A3B8;         /* slate-400 — keeps chess cool/classical */
    --hax-accent-table-tennis: #FB923C;  /* orange-400 */

    /* ----- Tier 2 — semantic status ----- */
    --hax-status-success: #A3E635;       /* lime-400 — already in force (resolved-view headlines, primary actions) */
    --hax-status-pending: #FBBF24;       /* amber-400 — awaiting opponent */
    --hax-status-info: #38BDF8;          /* sky-400 — live / ongoing */
    --hax-status-error: #FCA5A5;         /* red-300 — already in force (hax-validation.css) */

    /* ----- Tier 3 — surface tints -----
       2026-05-21 — structural greens shifted ~3% L darker per operator feedback. Each token
       moved one notch deeper while preserving the hierarchy gap so cards still read as
       elevated above the page bg. Prior values (kept inline as breadcrumbs to v1.1 brand
       sheet): recessed #011A14, page #022C22, card #064E3B, elevated #065F46. */
    --hax-surface-recessed: #000F0B;
    --hax-surface-page: #01211A;         /* mirrors HaxahedronTheme.cs PaletteDark.Background */
    --hax-surface-card: #053D2E;
    --hax-surface-elevated: #054C38;
}
