Initialize SQLite database at XDG data directory on app startup. Categories now load from database with emoji icons. Save button validates input, inserts transaction, shows toast notification, clears the form, and refreshes the recent transactions list.