- Block list on both dashboards now shows time remaining on each block's
timer (allocated duration minus elapsed) instead of total duration;
the active block counts down live every second
- Fix block switching requiring 2 clicks: replace separate pause+start
requests with a single start request; backend implicitly records a
pause event for the previous block atomically
- Export blockElapsedCache from store so views can compute per-block
elapsed for both running and paused blocks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>