Wire /admin/settings route and sidebar link; proxy /settings/api/ to the
new settings service at 10.10.10.116. Admin can configure integration
credentials and manage Newbook room ordering from the portal.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sidebar now renders uncategorised apps flat and categorised apps in
collapsible accordion sections; active category stays expanded. Dashboard
groups tiles under category section headings.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- index.css: light body (#f4f5f7), white cards, sidebar stays dark navy
- AppIcon.tsx: Lucide icon lookup component for app tiles and nav
- Sidebar.tsx: Lucide nav icons (LayoutGrid, Users, Activity, LogOut)
- Dashboard.tsx: white cards with shadows, coloured Lucide app icons
- AdminMonitor.tsx: light theme throughout, Lucide tab icons,
better status colours for light backgrounds
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Defaults to 'Number Four at Stow'. Replaces hardcoded 'Hotel Number Four'
and 'HNF Manage' in sidebar, login page, and browser title. Other hotels
set VITE_HOTEL_NAME in their /opt/portal/.env before rebuilding.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Uptime tab now polls /deploy/health-status (parallel HTTP checks) and
shows a status grid with response times. Removes broken Kuma sub-path
nginx locations. Auto-refreshes every 30s.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
An un-routed app path falls back to serving the portal, which would otherwise
load the whole shell inside itself endlessly. Detect self-embedding and show a
'not available yet' placeholder instead.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>