# Phase 18 manual QA checklist

Run this checklist against a non-production installation with representative tenant data. Record the browser version, operating system, tester, date, and evidence for every run.

## Browser and viewport matrix

| Browser | Desktop 1440×900 | Tablet 768×1024 | Mobile 390×844 | Status |
|---|---:|---:|---:|---|
| Codex in-app browser | Pass | Pass | Pass | Executed 2026-07-19 |
| Google Chrome | Pending native-browser run | Pending native-browser run | Pending native-browser run | Environment unavailable |
| Apple Safari | Pending native-browser run | Pending native-browser run | Pending native-browser run | Environment unavailable |
| Mozilla Firefox | Pending native-browser run | Pending native-browser run | Pending native-browser run | Environment unavailable |
| Microsoft Edge | Pending native-browser run | Pending native-browser run | Pending native-browser run | Environment unavailable |

## Required checks

- [x] Responsive sidebar is fixed on desktop, hidden initially on mobile, and opens without page overflow.
- [x] Tables remain contained; the 390 px viewport uses horizontal table scrolling.
- [x] Search, select, and date controls use one, two, and four columns at the tested breakpoints.
- [x] Confirmation modal opens, remains contained, and closes through its Cancel action.
- [x] Filter and pagination controls render with usable labels and disabled state.
- [x] CSV export triggers a browser download.
- [x] Empty and controlled error states remain visible and actionable.
- [x] Long operational references do not create document-level horizontal overflow.
- [x] The large-data fixture exposes 120 records and renders a 25-row page.
- [x] No browser console warnings or errors were recorded.
- [ ] Repeat this checklist in native Chrome, Safari, Firefox, and Edge before production release.

## Reproduction fixture

Start a development server with the repository root as its temporary document root, then open `/tests/manual/qa-shell.php`. The fixture is outside the production `public/` document root and does not read or mutate application data.
