SMI Critical Fixes — 2026-08-03 — Complete Installer v3

SESSION SCHEDULING
- Replaced the incorrect seven-consecutive-day teacher batch with two correct academic schedule options.
- Teachers and admins can create 5 sessions for one Sunday–Thursday week.
- Teachers and admins can create 20 sessions for four Sunday–Thursday weeks.
- The selected date is normalized to the next Sunday automatically.
- Friday and Saturday are always skipped.
- All generated sessions inherit the same time, Zoom link, lesson/material link and notes.
- Every generated session is stored independently and remains editable later.
- Existing sessions with the same course/date/time are skipped safely instead of duplicated.

ATTENDANCE
- Unified student code, camera QR, uploaded QR and teacher manual attendance into one canonical save engine.
- Fixed undefined manual-grade call that caused teacher attendance save failures.
- Attendance code/QR lifetime is 60 minutes; automatic and manual rotation supported.
- Attendance window remains 120 minutes.
- Arrival later than 10 minutes is automatically Late and receives half attendance credit.
- Added native browser QR fallback when the external scanner library cannot load.
- Teacher attendance page now updates manual attendance immediately and uses a light UI.

TEACHER
- Teacher dashboard changed from dark to a light professional UI.

EXAMS
- Modernized exam list/lobby/code entry cards.
- Fixed Next/Previous bar to remain fixed on desktop and mobile.
- Changed passage/question backgrounds to translucent white with dark text.
- Normal submission jumps to the first unanswered question, then the next unanswered question.
- Timer expiry force-submits answered work and leaves unanswered items at zero; it no longer rejects the whole attempt.
- Result approval shows only the score by default.
- Full question/student-answer/correct-answer review appears only when the teacher/admin enables the review checkbox.
- Added copy/cut/paste/context-menu/devtools/PrintScreen prevention attempts, warnings, event logging and privacy blur on window/tab exit.
- Teacher and admin can clear a selected student's saved answers, autosave, score, feedback and published grade, then grant a private retake window.
- Resetting an attempt works even after the main exam is closed: only that student receives temporary access; the exam remains closed for everyone else.
- Closing an exam no longer removes it from the student's exam page. It remains visible with a clear Closed status and disabled entry.
- Direct/resume links are server-side blocked for closed exams unless a private student retake window is active.

Note: Web applications cannot absolutely block operating-system screenshots or a second physical camera. The installer implements browser-level deterrence without requiring a locked-down exam browser.
