Admin pages (`AdminRuns.tsx`, `AdminGenlockes.tsx`) don't show which user owns each run or genlocke. This makes it hard for admins to manage content.
## Approach
### Backend
- The `/api/runs` list endpoint already returns run data — verify it includes `owner` (id + email). If not, add it to the response schema.
- For genlockes, ownership is inferred from the first leg's run owner. Add an `owner` field to the genlocke list response that resolves from the first leg's run.
### Frontend
-`AdminRuns.tsx`: Add an "Owner" column showing the owner's email (or "No owner" for legacy runs)
-`AdminGenlockes.tsx`: Add an "Owner" column showing the inferred owner from the first leg's run
- Add owner filter dropdown to both pages
## Files to modify
-`backend/src/app/api/runs.py` — verify owner is included in list response
-`backend/src/app/api/genlockes.py` — add owner resolution to list endpoint
-`backend/src/app/schemas/genlocke.py` — add owner field to `GenlockeListItem`