# Boot Route: `any route, first load`. API: GET /v1/auth/me (pending). While the session is checked, the shell renders with skeletons, never a spinner. The possible outcomes are: 200 with a verified user, which renders the route; 200 with an unverified user, which goes to /register/pending; and 401, which goes to /login?redirect=. Public routes skip this check. Visual reference: `RenewCMS Screens Back-office.dc.html`, groups "Boot". Frames: `AppFrame.dc.html` (shell, sidebar, topbar, drawer) plus the screen frame where listed in components.md. ## Copy per state (generated from the board source, pass 2) Every state below is drawn in light and dark (theme switch on the board), at 1440×900 and 390×844 (both frames sit side by side). Board: `RenewCMS Screens Back-office.dc.html`. Copy is exact; where a cell is empty the state reuses the fixed copy. ### Fixed copy in the frame - API pending · GET /v1/auth/me ### App boot (group "Boot", 1 states) Route: `any route, first load`. API: GET /v1/auth/me (pending). While the session is checked, the shell renders with skeletons, never a spinner. The possible outcomes are: 200 with a verified user, which renders the route; 200 with an unverified user, which goes to /register/pending; and 401, which goes to /login?redirect=. Public routes skip this check. | # | State | Trigger | Copy | |---|---|---|---| | 1 | Checking session | The first paint on any back-office URL, and usually visible for well under a second. | |