e3e9c48a0a
* MeApi gains getListenBrainz + setListenBrainz (single PUT shape with optional token / enabled fields, server treats untouched). * MeRepository facade methods setListenBrainzToken / setListenBrainzEnabled. * ListenBrainzStatus domain + ListenBrainzStatusWire (server never echoes the token back; tokenSet is the visible signal). * ListenBrainzViewModel — load on init, separate flows for save-token and toggle-enabled, inline status message. * ListenBrainzCard — descriptive copy, masked token field with "Replace token" / "Token saved" placeholder, Save button, Switch for "Send my plays" (disabled until a token is stored), "Last scrobble: …" timestamp once present. Slotted between PasswordCard and AppearanceCard. About-panel update check is the second half of #20; lands in slice 2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>