b908f394ed
Reuses the existing per-location /live fetch (no backend change): - Map dots recolor live by current level (green/amber/red bands, grey when not measuring/offline) and the tooltip shows the live Leq. Bands are placeholders until M2 alert thresholds drive the color. - Status rollup header: total locations, # live vs offline, and a "Loudest now" Leq callout. Aggregated each 15s refresh. Refactored the refresh into refreshAll() (Promise.all over loadTile -> updateRollup); loadTile now also feeds liveState + recolors the matching map dot. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>