Quilenz Assessment Platform v4 — Desktop-only exam QA

PASS: 24 frontend JS/JSX files parsed/transpiled with TypeScript parser.
PASS: All backend PHP files passed php -l syntax validation.
PASS: Candidate exam route uses useExamDeviceEligibility.
PASS: Mobile/tablet user-agent detection present.
PASS: iPadOS desktop-style user-agent detection present.
PASS: Minimum exam viewport width is 1024px.
PASS: Candidate dashboard disables assessment navigation on unsupported devices.
PASS: Direct /exam/:assignmentId navigation is independently blocked on unsupported devices.
PASS: Active exam UI is blocked after resize below desktop minimum while React timer remains mounted.
PASS: examApi sends X-Assessment-Client and X-Assessment-Viewport-Width.
PASS: PHP CORS allows the new exam headers.
PASS: PHP desktop guard checks client marker, viewport width, User-Agent, and Sec-CH-UA-Mobile.
PASS: Desktop guard is applied to all 5 candidate exam endpoints: session, start, answers, submit-section, audio.

Not executed in this environment:
- Full Vite production build (npm package installation timed out in this environment).
- Real MySQL-backed browser E2E run.
