# Independent postdeployment mobile visual QA

**Result: PASS for the inspected mobile visual states. No source layout defect was observed on either frozen variant.** This is a visual inspection receipt, not a repeat of the parent-reported anonymous route checks or a claim about production traffic.

## Targets and capture method

| Variant | Inspected deployment | Frozen version |
| --- | --- | --- |
| A | [calendar-stage-20260923.cfd-staging.com](https://calendar-stage-20260923.cfd-staging.com/) | `f09f3726-67f5-493d-b509-4a8b9709842f` |
| B | [kertujitok-proposal-b-20260927.clientsflowdigital.workers.dev](https://kertujitok-proposal-b-20260927.clientsflowdigital.workers.dev/) | `1b76707c-ce32-43cb-a7db-8a71c7d1873b` |

I used an independent, tab-scoped browser/CDP session at a CSS viewport of 390 × 844, zoom 1. The capture helper reported `visualViewport` and layout viewport at 390 × 844 for every saved screenshot. All 135 PNGs are 780 × 1688 pixels (2× capture scale). Source was read-only throughout; no source fix or deployment was made.

## Coverage and evidence

| Surface | A | B | Finding |
| --- | --- | --- | --- |
| Proposal list, filtering/return, and blank create form | [list and create captures](../evidence/qa/post/mobile/screenshots/A-list-initial.png), [filtered](../evidence/qa/post/mobile/screenshots/A-list-filtered.png), [returned](../evidence/qa/post/mobile/screenshots/A-list-returned.png), [create form](../evidence/qa/post/mobile/screenshots/A-create-form.png) | [list](../evidence/qa/post/mobile/screenshots/B-list-initial.png), [filtered](../evidence/qa/post/mobile/screenshots/B-list-filtered.png), [create form](../evidence/qa/post/mobile/screenshots/B-create-form.png) | **PASS.** Search/filter state and the create form remain usable in the viewport. |
| Editor and responsive proposal sheet | [editor](../evidence/qa/post/mobile/screenshots/A-editor-top.png), [baseline](../evidence/qa/post/mobile/screenshots/A-editor-baseline-top.png), [baseline/current delta](../evidence/qa/post/mobile/screenshots/A-baseline-current-delta.png) | [created editor](../evidence/qa/post/mobile/screenshots/B-editor-created.png), [initial](../evidence/qa/post/mobile/screenshots/B-editor-top-initial.png), [unsaved baseline](../evidence/qa/post/mobile/screenshots/B-editor-unsaved-baseline.png) | **PASS.** Long sheet remains contained in its own horizontal and vertical scroll region. No page-level sideways overflow was seen. |
| Spreadsheet positions and long content | A checked horizontal offsets 0, 330, 660, 990, 1320, and 1462 at the top and bottom. Representative evidence: [left/top](../evidence/qa/post/mobile/screenshots/A-sheet-left-top.png), [x330](../evidence/qa/post/mobile/screenshots/A-sheet-x330-top.png), [x990](../evidence/qa/post/mobile/screenshots/A-sheet-x990-bottom.png), [rightmost](../evidence/qa/post/mobile/screenshots/A-sheet-x1462-bottom.png). | B checked offsets 0, 300, 600, 900, 1200, and 1480 at vertical positions 0, 440, 880, and 1291. Representative evidence: [left/top](../evidence/qa/post/mobile/screenshots/B-sheet-x0-y0.png), [middle totals](../evidence/qa/post/mobile/screenshots/B-sheet-middle-total.png), [right/bottom](../evidence/qa/post/mobile/screenshots/B-sheet-x1480-y1291.png). | **PASS.** Columns, long descriptions, extra work, totals, and stage values can be reached by scrolling the sheet; the viewport itself stays within 390 px. |
| Stage panels and PDF history | [stage 1 expanded](../evidence/qa/post/mobile/screenshots/A-stage1-expanded-panel-scroll.png), [stage 2 expanded with stage 3 collapsed](../evidence/qa/post/mobile/screenshots/A-stage2-expanded-stage3-collapsed.png), [stages 1 and 2 collapsed](../evidence/qa/post/mobile/screenshots/A-stage1-collapsed.png), [stage 3 and history expanded](../evidence/qa/post/mobile/screenshots/A-stage3-expanded-history-expanded.png), [all stages and history collapsed](../evidence/qa/post/mobile/screenshots/A-stages-all-collapsed-at-panel-bottom.png) | [stage 1 payment](../evidence/qa/post/mobile/screenshots/B-stage1-payment-filled.png), [stage 2 expanded](../evidence/qa/post/mobile/screenshots/B-stage2-expanded-details.png), [stage 3 controls](../evidence/qa/post/mobile/screenshots/B-stage3-full-controls.png), [all stages collapsed](../evidence/qa/post/mobile/screenshots/B-stages-all-collapsed-final.png), [history expanded](../evidence/qa/post/mobile/screenshots/B-history-expanded.png) | **PASS.** Each stage was expanded and collapsed, the internal panel scroll was taken to its end, payment/request values stayed distinct, and PDF history could be opened. |
| PDF preview | [A landscape preview](../evidence/qa/post/mobile/screenshots/A-landscape-preview.png) | [B landscape preview](../evidence/qa/post/mobile/screenshots/B-landscape-preview.png) | **PASS.** Landscape controls and multi-page previews remain legible and reachable on mobile. |
| Integrated customer sidebar | [A top](../evidence/qa/post/mobile/screenshots/A-integrated-sidebar-top.png), [scroll positions](../evidence/qa/post/mobile/screenshots/A-integrated-sidebar-scroll220.png), [lower fields](../evidence/qa/post/mobile/screenshots/A-integrated-sidebar-scroll982.png), [collapsed/closed](../evidence/qa/post/mobile/screenshots/A-integrated-sidebar-collapsed.png), [reopened](../evidence/qa/post/mobile/screenshots/A-integrated-sidebar-opened.png) | [B top](../evidence/qa/post/mobile/screenshots/B-integrated-sidebar-open-top.png), [scroll positions](../evidence/qa/post/mobile/screenshots/B-integrated-sidebar-scroll220.png), [lower fields](../evidence/qa/post/mobile/screenshots/B-integrated-sidebar-scroll982.png), [collapsed/closed](../evidence/qa/post/mobile/screenshots/B-integrated-sidebar-collapsed.png), [reopened after close](../evidence/qa/post/mobile/screenshots/B-integrated-sidebar-reopened-after-close.png) | **PASS.** Drawer content scrolls independently. Its header/footer controls remain visible, and reopening restores the drawer. |
| Sidebar alternative 1: tabs | [A notes and dates](../evidence/qa/post/mobile/screenshots/A-sidebar-tabs-notes.png), [collapsed](../evidence/qa/post/mobile/screenshots/A-sidebar-tabs-collapsed.png), [closed/reopened](../evidence/qa/post/mobile/screenshots/A-sidebar-tabs-closed.png) | [B notes and dates](../evidence/qa/post/mobile/screenshots/B-sidebar-tabs-notes.png), [collapsed](../evidence/qa/post/mobile/screenshots/B-sidebar-tabs-collapsed.png), [closed/reopened](../evidence/qa/post/mobile/screenshots/B-sidebar-tabs-closed.png), [reopened after close](../evidence/qa/post/mobile/screenshots/B-sidebar-tabs-reopened-after-close.png) | **PASS.** Notes and dates tabs, collapse, close, and reopen states were inspected. |
| Sidebar alternative 2: ledger | [A expanded groups](../evidence/qa/post/mobile/screenshots/A-sidebar-ledger-initial.png), [contact fields](../evidence/qa/post/mobile/screenshots/A-sidebar-ledger-scroll400.png), [reminder/offer groups](../evidence/qa/post/mobile/screenshots/A-sidebar-ledger-scroll800.png), [lower dates and offer](../evidence/qa/post/mobile/screenshots/A-sidebar-ledger-scroll1088.png), [collapsed groups](../evidence/qa/post/mobile/screenshots/A-sidebar-ledger-groups-collapsed.png), [closed](../evidence/qa/post/mobile/screenshots/A-sidebar-ledger-closed.png), [reopened after close](../evidence/qa/post/mobile/screenshots/A-sidebar-ledger-reopened-after-close.png) | [B expanded groups](../evidence/qa/post/mobile/screenshots/B-sidebar-ledger-initial.png), [lower dates/offer](../evidence/qa/post/mobile/screenshots/B-sidebar-ledger-scroll1088.png), [collapsed groups](../evidence/qa/post/mobile/screenshots/B-sidebar-ledger-groups-collapsed.png), [closed](../evidence/qa/post/mobile/screenshots/B-sidebar-ledger-closed.png), [reopened after close](../evidence/qa/post/mobile/screenshots/B-sidebar-ledger-reopened-after-close.png) | **PASS.** Contact and reminder/offer groups were expanded and collapsed; scrolling reached the lower fields; global collapse, close, and reopen worked. |

## Findings and test-data notes

- No product visual defect was found in the inspected states. The sheet's horizontal scrolling and the fixed mobile drawer are intentional contained surfaces; both expose their lower/right content by scrolling.
- A few early captures were framed at the wrong nested scroll position. They are retained and not counted as product defects: `A-stage1-expanded.png`, `A-stage2-expanded.png`, `A-stage3-history-collapsed.png`, the first partial `A-stages-all-collapsed-history-collapsed.png`, `B-stage1-panel-scroll.png`, `B-stage1-panel-scroll-bottom.png`, and `B-stage2-expanded-stage3-collapsed.png`. Correctly framed follow-ups are linked in the coverage table above, including a fresh A all-collapsed screenshot showing stages 1–3 and history together.
- B's first synthetic proposal save was rejected while stage 2 and stage 3 dates were blank. After valid dates were entered, the test proposal saved and the visual checks continued. This was test-data validation setup, not a rendering defect.
- The A and B mobile QA proposals remained drafts. The B test changed quantity from 2 to 3 to inspect recalculation (24,000 Ft baseline to 33,000 Ft, +9,000 Ft). Both proposal datasets are synthetic; their displayed received amounts are test values, not payment-processing results. No proposal was sent.
- The parent supplied the launch signal that each deployment's 14 anonymous route checks had passed. This child independently inspected the deployed UI but did not rerun or independently attest to those route checks.

Complete evidence set: [`evidence/qa/post/mobile/screenshots/`](../evidence/qa/post/mobile/screenshots/), 138 preserved captures (59 A, 79 B).
