- Expand SUPPORTED_LANGS from 5 to all 31 languages matching backend - Expand LANG_NAMES to include all 31 native language names - Add RTL_LANGS set (ar, fa, ur) for multi-language RTL support - Fix applyTranslations() to always write resolved value (clears stale translations when switching back to English) - Fix loadTranslations() to clear translations on fetch failure/error - Add monotonic _langRequestId token to prevent out-of-order async resolution race (A->B->A scenario) - Wrap localStorage access in try/catch for privacy mode environments - Validate stored language code against SUPPORTED_LANGS on init - Always set document.documentElement.dir/lang on init (not just RTL) - Add scrollable dropdown for 31 languages (max-height: 320px) - Fix backend i18n route to use LANGUAGE_META instead of hardcoded 5-lang map - Rebuild dist bundles Codex grade: A (urn:ump:kicey7d7dnockmlk547cmm4qbdvygcj3g6waasrqv2yckbzem5bq) 1775/1775 tests pass