Extracts the duplicated /admin/models table boilerplate (overflow wrapper, thead, hover rows, colspan empty state) into Studio::AdminModelsTableHelper#admin_model_table, exposed to consumer admin/models views via the AdminModels concern. Consumer _<key>_table partials shrink to headers: + a per-row block. Output is byte-identical to the prior markup so existing view assertions keep passing. mcritchie-studio + turf-monster adopt in follow-up PRs.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>