Tenant isolation
- Every organisation is a separate account. Its users only ever see that account's people, roles, courses and records.
- The account boundary is enforced in the server for every request, not just hidden in the interface.
- Asking for another organisation's records returns "not found", so nothing reveals that they exist.
- Course files are stored per organisation, outside the public web folder, and served only after an access check.