PR #12888 — the Turnovers loading screen is the page

Before/after of /maintenance/turnovers: tab row, table position, row lines, number alignment. Board row p11-x-skeleton-everywhere.

WhatLoading screen, beforeLoading screen, afterLoaded pageVerdict
Tab rownoneUpcoming (—) · Completed (—)Upcoming (39) · Completed (15)✓ present, no count claimed
Table top (y)352px395px395px✓ identical
Row line colourrgb(15, 32, 96)rgb(232, 232, 235)rgb(232, 232, 235)✓ light, as loaded
Row height45px33px35px33→34.5 lands with #12886 (the table's own ghost rows)
Number columns on the rightWork Orders, Charges, Days in TurnWork Orders, Charges, Days in TurnWork Orders, Charges, Days in Turn✓ same three
Screenshots, notes, and how they were captured
Turnovers loading screen — before (origin/main)
Turnovers loading screen — before (origin/main)
Turnovers loading screen — after (#12888)
Turnovers loading screen — after (#12888)
Turnovers loaded page
Turnovers loaded page
Found by this capture and fixed in the same PR. After the tab row landed, the table was still 7px low: every loading stat card measured 120px against 113px loaded (a 28px bar on the number's text baseline added its descent). The ghost number now sits on the number's own line box; re-measured, the loading and loaded tables both start at y=395.
Not in scope: with Every company picked the loaded page adds a first Company column (header blank here) that the loading screen does not draw — selection-dependent, the same class as the single-building column; and the Stage filter pill, which the shared loading table never reproduces.
How these were captured. Local dev server bound to the propflow-stage table (anonymized by construction), signed in as the smoke login, desktop 1440×900, on 2026-09-28. The loading screen shots hold the page's server render with an uncommitted local hook (a cookie-gated 45 s wait in each list's page.tsx) so the route's loading.tsx stays on screen. That hook is NOT in any PR. Heights are read from the rendered DOM (getBoundingClientRect), not estimated. Before = origin/main; after = the PR's branch.
PropFlow Docs