- undo/redo via buttons and via Ctrl+Z outside text fields - focus guard: Ctrl+Z inside the campaign name field leaves the app history untouched (the browser owns the field's undo) - an undone state survives a reload (undo writes through autosave) - Clear is undoable: one undo step restores the wiped dashboard