Installable PWA, phone navigation drawer and shorter UI copy
Summary
- PWA: manifest, app icons (any, maskable, apple-touch), service worker and offline page. Install button in the top bar when the browser offers installation.
- Service worker: network-first for pages and the bundle (deploys show on next load), cache-first for images/fonts, never caches /api.
- Server: sw.js, manifest and HTML sent with Cache-Control: no-cache so installed apps pick up new deploys.
- Phones (≤760px): sidebar becomes a slide-in drawer opened from a menu button, replacing the nav strip under the header. Closes on navigate, scrim tap or Escape. Desktop unchanged.
- Responsive check: all 17 screens at 320/375/414/768/1024/1366px, with no horizontal scroll. Fixed meeting stat hints overflowing their cards.
- Copy: about 170 descriptions, hints and notices shortened across every screen.
Testing
- npm test: 1571/1572 pass. accounts.test.js fails with a Windows EBUSY temp-file cleanup error, same as on the base branch.
- Browser tests (npm run test:browser) not run. One assertion in tests/browser/workflows.mjs updated for the new FRD Library text.
- Install/offline need HTTPS (production) or localhost.