- Add AdminSettings page with retention period configuration
- Add warning dialog when reducing retention period
- Add skeleton loaders to all admin pages (tables, charts, activities)
- Add empty states with helpful messages and clear filter buttons
- Improve mobile responsiveness across all admin views
- Update admin navigation with Settings link
- Add AdminOverview page with stats cards and recent activity
- Add UsageStats page with charts and heatmap
- Active users chart with daily/weekly/monthly toggle
- Action breakdown with pie and bar charts
- Peak times heatmap (24h x 7d)
- Update admin navigation with Overview and Statistics links
- Add ActivityStream page with paginated activity list
- Add user, action type, and date range filters
- Implement auto-refresh every 30 seconds (pauses with filters)
- Add "New activity" indicator for real-time updates
- Add export modal with date range picker for CSV download
- Update admin navigation to dropdown with Users and Activity links
- Add AdminRoute component for admin-only route protection
- Add admin navigation link (visible only to admins)
- Create UserList page with pagination, search, and filters
- Create UserDetail page with enable/disable and promote/demote
- Add confirmation dialogs for destructive actions
- Prevent self-modification (cannot disable/demote yourself)
- All admin routes protected with AdminRoute wrapper
- Create AuthContext and AuthProvider for auth state management
- Create useAuth hook for easy access to auth state
- Create ProtectedRoute component to guard authenticated routes
- Create Login page with Google sign-in button and error handling
- Create useActivityTracker hook for frontend activity logging
- Update App.jsx to protect all routes and add user display/logout
- Update main.jsx to wrap app with AuthProvider
- Add credentials: 'include' to all API fetch calls