P0-1 fix: ledger/u grade badges are token-derived — kill blue-B / amber-C / non-A glow

Phone audit found LEDGER READ CARDS rendering B badges with BLUE borders + C
with AMBER right now in prod — GradePill (components/GradeCard.tsx) hardcoded the
OLD palette (rgba(74,158,255) blue-B, rgba(255,179,71) amber-C) for bg/border
while the text used the migrated token. Migrated bg/border to color-mix on the
grade token, so B renders neutral-white and C grey (matching the board).
- globals.css .grade-*-bg → token-derived color-mix (was raw blue/amber rgba).
- DELETED glow from .grade-glow-b/c/d (glow is A-tier ONLY, by law) — B/C/D keep
  their token color, no text-shadow.
- Purged the last dead grade-blue #4A9EFF fallbacks (SoccerGradeResult, the
  intelligence INFO dot).
- REGRESSION LOCK: vyndrParityQA fails if #4a9eff / rgba(74,158,255) reappears
  anywhere in web/src, if GradePill hardcodes blue/amber rgba, or if grade-glow
  B/C/D grow a text-shadow again.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kev
2026-07-17 00:48:56 -04:00
parent 4f32eab859
commit 489d849f1e
5 changed files with 64 additions and 15 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ type Signal = {
const SEVERITY: Record<Signal['severity'], { dot: string; label: string }> = {
critical: { dot: '#FF4757', label: 'CRITICAL' },
notable: { dot: '#FFB347', label: 'NOTABLE' },
info: { dot: '#4A9EFF', label: 'INFO' },
info: { dot: '#6C8CFF', label: 'INFO' },
};
const SPORT_COLOR: Record<Signal['sport'], string> = {