Problem
The admin Users page showed "Could not load users." because the lending house user has `phone_number = NULL` (the column is nullable). The zod schema declared `phoneNumber: z.string()`, so `unwrap` rejected the whole `/admin/users-kyc` payload.
Fix
- `phoneNumber` is now `z.string().nullable()` in the list and detail schemas.
- Added a test for a user without a phone number. It fails before the fix and passes after.
Review gate (Opus)
Verdict: PASS WITH SHOULD-FIX, reached in 1 round.
- SHOULD-FIX (BE DTO `phoneNumber` should be `nullable`): deferred, because it is a backend swagger change and the admin client only regenerates once staging is redeployed. Widening `User.phoneNumber` in the entity has a larger blast radius, so it goes in a follow-up.
- NITs (detail-schema test, `—` placeholder): skipped. A null value renders as an empty cell and does not crash.