Protected shell
Control-plane routes fail closed and show explicit auth errors.
MW1 operator shell
This milestone keeps auth and read models on a route-local fixture seam, but the UI surface is already stable: shared metrics, charts, filters, tables, and hotel-aware navigation all compose from `@hotel-center/ui`.
Control-plane routes fail closed and show explicit auth errors.
Search params drive pagination, sorting, hotel scope, and dashboard windows.
Shared primitives stay free of data fetching and product-side workflow rules.