9541e3a385
Preloader: - Replace 3D wheel with smooth fade-in ticker queue - Bigger text (clamp 1.1–1.35rem), green/amber/red per check state - Previous items fade upward at decreasing opacity - Wider container (min(96vw,860px)) — no more awkward line-wrapping - JS already used ticker-item/state-ok/warn/error classes (CSS was missing) Shelf life — Asiago sottovuoto fix: - estimateSealedExpiryDaysPHP() and estimateExpiryDays() JS: asiago/fontina/emmental/gruyere/scamorza now grouped with hard cheeses (60d base) vacuum sealed: 60 × 2.5 = 150 days — correct for fridge + sottovuoto - Cleared stale opened_shelf_cache entry for 'Formaggio Asiago fresco' Kiosk wizard: - 5 languages: values-es/ and values-fr/ created (97 strings each) - values/, values-it/, values-de/: complete rewrite with new keys (ble_connecting, ble_connecting_to, summary_scale_ok/warn, Gemini/Bring step strings) stepDone hardcoded Italian → @string refs; screensaver nav → @string/setup_step_back/next - SetupActivity.kt: steps 0-8 fully implemented; ES/FR language selection; auto-skip Gemini/Bring if already configured; buildSummary() localised; finishSetup() sends gemini_api_key + bring_email/password; BLE connecting strings localised; scale summary lines use R.string