Fixed
- Make the weather widget follow the app language, support city IDs, and key its cache per city/units/language.
- Fix janky, laggy scrolling in tall modals (e.g. the event editor) caused by a backdrop-filter on the scroll container.
Changed
- Scope icon re-rendering to changed subtrees and index calendar day lookups for smoother large lists and month views.
- Debounce the documents and split-expenses search inputs.
- Add database indexes for event/task assignment, loan-payment, and recurring-event lookups.
- Batch split-expense detail loads to remove an N+1 query and sort dashboard tasks in SQL.
- Back global search with an FTS5 full-text index instead of full-table LIKE scans.
- Compress CSS/JS/JSON responses with gzip and defer the icon library so it no longer blocks first paint.