SMI Exam Live Sync Final Fix — 2026-08-04

- Unified student/admin/teacher exam status and schedule calculations.
- Fixed stale student status caused by expired private retake overrides.
- Global published/open schedule now takes priority over an old expired override.
- Private retake access remains available when it is actively valid.
- Added no-cache headers to all three exam pages.
- Added automatic student-page state checking every 8 seconds outside an active attempt.
- Student cards refresh when an admin/teacher changes status, opening time, closing time, or result visibility.
- Fixed Mecca timezone consistency in PHP and MySQL sessions.
- Added exact opening/closing boundary handling.
- Consumes one-time reset-code overrides after successful retake submission.
- Database migration adds missing schedule fields and supports the expired attempt status.
