40960c7476
Load the saved theme at startup and apply it to egui's visuals (cloning the global style so the font scaling is preserved); the egui context persists across the hide/show window cycle, so it sticks. Route the previously hardcoded status colours (streaming/waiting/success/warning/error) through the active theme so a theme re-skins the whole app, not just the chrome (the QR code stays black-on-white so it remains scannable). Settings gains an Appearance section: a picker that switches themes live and persists the choice, and an editor with a colour button per palette field, a live preview, and Save (writes a .toml). The picker refreshes from disk when Settings opens, so dropped-in files appear without a restart. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>