b7c9c39862
#41: pipe amount input through sanitizeAmountInput() (digits + single decimal) in both AddEditExpenseScreenModel and AddEditRecurringScreenModel so KeyboardType.Decimal is no longer bypassable via paste or hardware keys. #42: wrap DateField's OutlinedTextField in a Box.clickable so the whole row (label, text, icon) opens the date picker, not just the trailing icon. #43: replace CategoryDropdownField with a new CategoryPickerField that opens a generic ListSearchDialog (search bar, scrollable list, swatch, checkmark on selected row), decoupled from the Preference machinery. ListSearchPreferenceWidget is unchanged.