# QA RC57 Report

## Scope
Build the Program page as a **program library** rather than a status/progress page.

## Design direction
- Program page answers: which program should drive the calendar?
- Calendar remains master for planned/completed/upcoming pass execution.
- Dashboard remains master for next pass.
- Profile remains master for athlete data and preferences.

## Implemented changes
- Replaced old stage/fas/veckorytm Program catalog with a new `program57` library layout.
- Added active profile context strip: profile name, sport, age group, level.
- Added recommended program cards.
- Added compact “Alla program” list cards.
- Program cards use small metadata chips:
  - pass count
  - weeks
  - pass/week
- Program cards use small focus chips.
- Primary CTA is now **Välj program**.
- Secondary CTA is **Förhandsvisa**.
- Removed phase/week progress/status from Program page.
- `chooseProgram()` updates profile settings + stage and lets Calendar/Dashboard derive schedule/status.
- Added lightweight preview expansion per program card.
- Cache bumped to `96rc57`.

## QA checks
- `node --check assets/js/app.js` OK
- `node --check assets/js/data.js` OK
- `node --check assets/js/shell.js` OK
- PHP lint OK for `ota_youtube_proxy.php`
- HTML references to CSS/JS checked
- Zip packaging completed

## Visual QA method
Screenshots were produced with the project fallback rendering chain:
static HTML fixture → WeasyPrint PDF → `pdftoppm` PNG.

## QA screenshots
- `qa_screenshots/rc57_program_mobile_390x844.png`
- `qa_screenshots/rc57_program_full_mobile_390x1600.png`
- `qa_screenshots/rc57_program_ipad_820x1180.png`
- `qa_screenshots/rc57_program_desktop_1440x1024.png`

## QA assessment
- Program page now reads as a program library, not a calendar/progress page.
- Small chips are used for metadata and focus tags.
- CTA hierarchy is clear: **Välj program** primary, **Förhandsvisa** secondary.
- The page is isolated with new `program57-*` classes to avoid the profile-section issue where older layout rules kept affecting new cards.

## Notes
- Fallback static screenshots are representative visual QA, not a live DOM/browser screenshot.
- The implemented app code uses isolated Program page classes and the existing data/profile/calendar functions.
