73cad7e205
Phase 3 step 2 of the UX overhaul. Closes the player's #1 complaint ("HUD too cluttered") by regrouping the 10 readouts that previously sat in a single dense horizontal row. HUD structure (top → bottom): - Tier 1 (always on) Score · Moves · Timer Score uses TYPE_HEADLINE so it's the visual protagonist; Moves/Timer use TYPE_BODY_LG with TEXT_SECONDARY tone. - Tier 2 (mode context) Mode · Daily-challenge constraint · Draw-cycle indicator. Each cell is empty when not relevant — the row collapses visually if all are empty. - Tier 3 (penalty / bonus) Undos · Recycles · Auto-complete badge. Both penalty counters now share STATE_WARNING — the audit found Undos were amber but Recycles were white, making the "you took a penalty" signal inconsistent. - Tier 4 (selection chip) keyboard-driven pile selector. Action bar polish: - Each button gains a TYPE_CAPTION hotkey-hint chip (Undo · U, Pause · Esc, Help · F1, New Game · N). Menu and Modes get no chip because each row in their popovers carries its own hotkey. - Buttons recoloured to BG_ELEVATED / BG_ELEVATED_HI / BG_ELEVATED_PRESSED — the bright-blue palette stood out from the rest of the (still-to-come) midnight purple chrome. - Buttons gain a BORDER_SUBTLE outline so the boundary reads even when hovered over the felt. Other migrations in this commit: - Popover panels (Menu, Modes) now use BG_ELEVATED instead of an ad-hoc dark grey. - challenge_time_color now returns STATE_DANGER / STATE_WARNING / STATE_INFO tokens instead of literal hexes; tests updated. - The Undos in-place colour toggle uses TEXT_PRIMARY / STATE_WARNING. The four `ui_theme` self-tests plus all existing 791 tests stay green (795 total). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>