# Loyalty UI Checklist

For each engage route:

- [x] Loading state (portal loading + query loaders)
- [x] Empty state
- [x] Error / 403 permission empty
- [x] Header + breadcrumbs
- [x] Search/sort/pagination on table pages
- [x] Create dialog / edit drawer / confirm delete where CRUD exists
- [x] Export CSV where configured
- [x] Dark mode via shell toggle
- [x] Responsive sidebar
- [x] Real backend wiring (or ScopeNotice)
