Move airport-editor HTML routes and validate API from ADM to I1+, matching
sweatbox. Config editor stays Administrator-only. Nav/dashboard use
CanAccessAirportEditor; PE tests cover I1 shell, nav, and validate-apt.
- Account page: change password + soft-delete (optional hard-delete via env)
- Session revalidation + claims overlay on HTML and dual-accept API (KD-9)
- Authz: user editor SUP+, sweatbox I1+, config/airport ADM
- Fix pilot rating options: full scale for editors (no actor pilot ceiling)
- Refresh rejects inactive/suspended; DeleteUser for permanent self-delete
- Dashboard/nav as user home with Account + capability-gated tools
Bootstrap data-bs-theme + localStorage toggle in layout chrome; map
console CSS (users/sweatbox/airport editor) onto shared --ofs-console-*
tokens; swap OSM basemap for dark maps. Include PE and webjs coverage,
and the approved sweatbox TWRTrainer P2 command-parity design doc.
Server-rendered Administrator instructor UI at /sweatbox with CSRF forms,
flash PRG, FSD service HTTP proxy, and disabled/unavailable messaging when
SWEATBOX_ENABLED is off or the control plane is unreachable. No JS required
for the primary path.