- RawSegmentsPanel: summary now reads 'Show N raw segments' for
non-empty (with singular pluralization). The previous identical
ternary branches read as a bug.
- PartiesGrid: replace the verbose intersection cast on AddressBlock
with a direct ClaimDetailAddress cast (the union's other arm is
Record<string, never>, ruled out by isEmptyAddress above).
ClaimDrawerError.tsx already wraps its error surface with role=alert
(line 36). Apply the same pattern to the ValidationPanel errors
sub-section so assistive tech announces blocking validation failures
when the drawer opens, matching the established sibling pattern.
Warnings stay decorative (no role change) — they're advisories, not
blocks.
The parametrized variant test only exercised 4 of the 6 mapped states
(submitted/denied/paid/pending). Add accepted (-> default) and matched
(-> success) so the entire STATE_VARIANT map is verified, not just the
branches whose tokens happened to be easy to reach.