# 2026-09-13 — Системный продуктовый дизайн (web) Заложена расширяемая дизайн-система кабинета вместо монолита `App.tsx`. ## Структура - `web/src/design/` — токены (`tokens.css`), base, стили shell/UI - `web/src/components/ui/` — Button, Field, Flash, ProgressBar, MetricGrid, PageHeader, Section, EmptyState, Banner - `web/src/components/layout/` — AppShell, AuthLayout, `PRIMARY_NAV` (точка расширения меню) - `web/src/auth/` — AuthProvider, RequireAuth - `web/src/cabinet/` — CabinetProvider (бюджет/траты), CabinetLayout - `web/src/pages/` — Login, Overview, Operations, Journal, Period (+ ComingSoon заготовка) ## Маршруты `/login` · `/` · `/operations` · `/journal` · `/period` В nav зарезервированы «Отчёты» и «Настройки» (`soon: true`). ## Как добавлять фичу 1. Пункт в `PRIMARY_NAV` 2. Route под `CabinetLayout` в `App.tsx` 3. Страница в `pages/`, UI из `components/ui` 4. Доменное состояние — в `cabinet/` или новый context Сборка `npm run build` проходит успешно.