874ae90afa
- Replace checkbox-label with toggle-row pattern matching other toggles - Add missing <span class="toggle-slider"></span> inside toggle-switch - Add data-i18n attributes to card title and hint - Add screensaver.card_title / card_hint translations in all 3 locales feat(demo): full demo mode implementation - _applyDemoModeUI(): set _geminiAvailable=true + call _updateGeminiButtonState() - api(): no-op all bring_add/bring_remove/bring_set_spec calls in demo mode - api(): return in-memory shoppingItems for bring_list in demo mode - loadShoppingList(): show placeholder list in demo mode, skip all Bring! calls fix(shopping): graceful Bring! missing credentials handling - Show friendly message with link to settings instead of raw PHP error - Add shopping.bring_not_configured i18n key in IT/EN/DE Bump app.js cache buster to v=20260504b