audit Run 15 Phase 5: CSP script-src drops 'unsafe-inline'
ux: extract all executable inline JS from templates into static files
v0.6.9: UX audit charter decisions + sr-only file inputs