Appearance
Mobile PR: https://github.com/snag-tcg/poc-tcg-collector/pull/620
The iOS report shows invisible unselected radio choices in item sorting. The radio border used the same color as the dark sheet background (contrast 1:1; light appearance was also too faint at 1.08:1). The shared RadioRow now has a contrasting unselected outline and highlights selected rows using the existing action fill and paired foreground. The filled radio dot and stronger label distinguish selection. This covers generic sorting and wallet card/item sorting. The indicator keeps its size beside wrapping labels, and assistive technology receives the checked state. No global palette or sorting semantics changed.
Eight regression tests call the actual component and inspect the returned element tree, covering contrast, accessibility and callbacks across both games and appearances. Jest now compiles TSX for these component-output tests. Native hosts are stubbed, so these tests do not validate native pixel layout.
Lint, typecheck and 234 test suites passed: 2,306 tests passed, 11 existing skips. An item-sort Maestro scenario adds selection/apply/reopen steps and screenshot checkpoints. Native E2E was not run: Maestro is unavailable and no device is connected. Validate on iOS/Android with large fonts before release.
This is a dedicated PR against staging, independent of mobile PR #618. No VPS, backend, dependency or native build configuration change is needed.