Implements offline-first data synchronization and local caching for the mobile web app (PWA) to enable full functionality with intermittent or no connectivity.
- IndexedDB Layer: Persistent local storage using idb library
- Sync Service: Manages online/offline state and background sync
- Action Queue System: Queues offline writes with replay on reconnection
- New hooks: useOfflineSyncInit, useSyncStatus, useIsOnline, useQueueAction
- Enhanced useGroups with offline cache fallback
- OfflineIndicator: Shows connection/sync status in header
- StaleDataBanner: Warns about cached/stale data
- Network-first API caching with 5-minute TTL
- Background Sync API support
- Comprehensive guide in docs/offline-first-sync.md
- App remains usable read-only with no connection
- Local cache for groups, members, history
- Sync on foreground and background interval
- Queue write actions while offline
- Replay queue on reconnect in order
- No duplicate submission
- Show stale data and offline indicators
- idb@^8.0.0: IndexedDB wrapper library
- workbox-window@^7.0.0: Service worker utilities
Closes #1005