iOS Safari has no beforeinstallprompt API, so the portal's Install
button (?install=1) silently did nothing there. IosInstallHint now
shows Share -> Add to Home Screen steps on Safari, or a prompt to
switch to Safari first if opened in another iOS browser/in-app
webview (those can't install PWAs on iOS at all).
Also added apple-mobile-web-app-title + apple-touch-icon so the
home screen icon isn't a page screenshot.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Backend /health now returns a build version; frontend polls it every
2 minutes (and on tab focus) and shows a reload banner when it changes.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Scope was set to the app's own base path, which breaks the installed
PWA out of standalone mode into a regular browser tab on any
same-origin navigation outside that path (e.g. the auth redirect).
scope: "/" keeps navigation inside the installed app's window.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- index.css: match portal token system (light body, dark login chrome)
- NoticeBoard: white cards/shadows, Lucide Pin/PinOff/Trash2/Plus/X icons,
light input/button styles, category pills with navy active state
- AuthGate: explicit dark bg on login container (body is now light)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>