- Phantom playlists: stop pushing locally on create; let PLAYLIST_CREATED
STOMP event add the entry to avoid the REST/STOMP race that doubled items
- Row click: attach toggle-expand listener on the li instead of the name
span only; add cursor:pointer to .playlist-list-item
- Input styling: apply surface-3 bg, border, radius, and color to
.playlist-create-row input and .playlist-rename-form input with focus ring
- Play/pause error toast: apiFetch now skips json() when response has no
application/json Content-Type (empty 200 body from play/pause endpoints)