COMPLETE REPORTS FIX

Extract into the directory containing cms.

Fixes:
- Restores reports_access(), reports_manage(), report_scalar()
- Global owner reports across all schools and branches
- School-level report isolation
- HR department join using departments.department_name
- Finance expenses query using the existing expenses table
- Empty-state handling and guarded SQL prepares
- Global custom report list and school selector
- CSV exports respect owner/school scope

No SQL import is required.
