# Admin-UI cleanup playbook (`ZB.MOM.WW.Theme` + Bootstrap Blazor apps) A reusable sweep recipe for the family's Blazor Server admin UIs, distilled from two completed rounds: - **ignitionoee router** — `../ignitionoee/docs/plans/2026-08-05-router-ui-sweeps.md` (+ its render-validation companion plan) - **OtOpcUa AdminUI** — `../OtOpcUa/docs/plans/2026-08-10-adminui-ui-sweeps.md` Both apps sit on **ZB.MOM.WW.Theme 0.3.1 + self-hosted Bootstrap 5.3**, and both sweeps found the same *classes* of defect with different instances. Run the discovery phase before assuming which instances your app has — the router had ghost layout classes and the OtOpcUa AdminUI had none, but OtOpcUa had a dead scoped-CSS bundle the router didn't. **Neither app has bUnit; the final gate is always a live browser pass.** --- ## 1. Discovery — four parallel read-only scans Run these as parallel read-only agents (or by hand) and write the inventories down with `file:line` before changing anything. The inventories become the per-batch fix briefs. ### 1a. Foundation / CSS audit The theme ships less than pages assume. Check, in order: 1. **Shipped-vs-used class matrix.** Extract every CSS class used in `*.razor` markup and check each against (a) the theme package's `staticwebassets/css/*.css` (`~/.nuget/packages/zb.mom.ww.theme//`), (b) Bootstrap, (c) the app's own stylesheet, (d) page `