# platform_web/pages First-party page implementations live here after routes and contracts are defined. Required page groups: - `home` - `servers` - `plugins` - `users` - `ai-providers` - `plugin-pages` Do not put shared API clients, shared DTOs, route definitions, or bridge contracts in page files. ## Visual Rules Pages must use the shared black-mecha / magical-girl visual system from `../theme/` instead of page-local card systems or unrelated palettes. - Reuse shared shell, card, panel, table, drawer, dialog, status, command, log, diff, plugin group, and operation history classes from `theme/base.css`. - Keep management lists, grids, and tables full-width. Create, edit, and detail workflows belong in modals, drawers, or detail routes, not in permanent right-side panes or inline form panels beside/above the list. - Keep page surfaces translucent enough for the selected built-in or uploaded background desktop to remain visible. - Ambient magical particles are global shell chrome. Pages must not add fixed decorative sparkles, hearts, moons, snowflakes, sigils, or custom backdrop layers. - Do not introduce opaque white cards, heavy dark dashboards, stock marketing layouts, or single-page custom gradients that bypass the theme tokens. - Preserve text/icons for status and operation results; do not rely on color-only cues. - Read `../theme/README.md` before adding a new page surface pattern. # Server Detail lifecycle behavior The Server Detail Client Manager section is a real operations surface: it consumes safe Platform projections, polls only while a lifecycle job is active, shows current job attempts/progress, and provides recovery actions for retryable failure, stale key generation, failed update rollback, and offline health. Action buttons remain compact and disabled with the Platform-provided reason when declaration, permission, endpoint, artifact, target, or lifecycle state is not ready.