The loading indicator inside a filled or tonal button was painted in text-primary on a primary container — 1:1 contrast. M3 asks an indicator embedded in another component to take that component's label colour, so the button now passes text-current, which loading.blade.php reads as a caller colour and leaves alone. Plan step 11, actions.md ACT-01. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qwx5USif3wFFmxtHg5U1g9