`
+- `` в пустом состоянии → ``
+- `` / `` легенды → `` + ``
+- `span.broker-allocation__swatch` → `` или `` с кастомным `fontSize`
+- `ul.broker-allocation__negative` → ``
+- Удалить CSS для `.broker-allocation*` в `styles.css` (кроме SVG-правил, которые оставить нетронутыми или перенести в inline)
+
+## Task 5: BrokerPositionTable, PositionTicker
+
+Миграция таблицы позиций.
+
+- Вспомогательные типы для `headerStyle`, `cellStyle`, `pagButtonStyle` → MUI `sx` через ``, ``
+- Импорт `SkeletonBlock` в компоненте → удалить, использовать `Skeleton` через `` (см. Task 6)
+- `h2` inline-стили → `` с кастомной `sx` для размера/масштаба
+- Ошибки/пустые `` → `` через Box с inline-цветом
+- `PositionTicker`: ` ` → ` ` с `` внутри
+- `table` → `` или оставить нативным table, но стилизовать через `sx`
+- Сохранить `loading-spinner` класс в `styles.css` (глобальный):
+ - `TableSkeleton` → `` after DS migration
+- Keep `table-container` as minimal CSS or remove; convert `loading-overlay` to Box.
+
+## Task 6: TableSkeleton
+
+Заменить импорт `SkeletonBlock` на DS `Skeleton`.
+
+- Убрать импорт `SkeletonBlock`, заменить на `Skeleton` из `@moex-vibe/design-system`.
+- `SkeletonBlock height={12} width={col.width}` → ` `.
+
+## Task 7: BrokerOperationsTable
+
+Миграция таблицы операций.
+
+- Вспомогательные стили (`tableStyle`, `thStyle`, `tdStyle`, `pagButtonStyle`) → inline-`sx` или ``
+- Оставить `` нативный, но обёрнуть в ``
+- `h2 inline` → `` с `sx={{ fontSize: 20 }}`
+- `` с `loading-spinner` → ` ` (если DS поддерживает) или оставить `` временно; DS `Skeleton` не имеет circular-only без width/height — оставить на этой итерации, можно оставить loading-spinner, так как это глобальный анимационный класс, а не DS.
+- Пустые состояния / alert-тексты → `` / ``
+- Пагинация `` → ``
+- `aria-label` — сохранить.
+
+## Task 8: BrokerPositionsPage, BrokerOperationsPage
+
+Миграция "обёрточных" страниц-секций.
+
+- `section` → ``
+- `h2 inline` → `` с `sx={{ fontSize: 20 }}`
+- `p role="alert"` → `` (или ``)
+- `p.empty` → ``
+- `div.broker-operations__toolbar` → `` с flex
+- `label > span + select` → `` + `` + ``
+
+## Task 9: SkeletonBlock удаление
+
+После замены всех потребителей:
+
+1. Удалить `apps/frontend/src/shared/ui/SkeletonBlock.tsx`.
+2. Удалить экспорт из `apps/frontend/src/shared/ui/index.ts`.
+3. Убедиться, что `import { SkeletonBlock }` не осталось нигде.
+
+## Task 10: Очистка `styles.css`
+
+- Удалить все selector'ы из блока `broker-account__*`, `broker-overview__*`, `broker-allocation__*` (SVG стили оставить), `broker-operations__toolbar*`.
+- Оставить косметические классы, которые ещё не мигрированы (если таковые возникнут).
+- Оставить `.loading-spinner` (глобальный анимационный класс, применяется через `className` где-то еще).
+- Оставить `:root` CSS variables — они DS взаиморасчётные токены.
+
+## Task 11: Тестирование и сборка
+
+- [ ] `npm run test:frontend` — все тесты PASS.
+- [ ] `npm run lint -w apps/frontend` — без ошибок.
+- [ ] `npm run build:frontend` — без TypeScript/Vite ошибок.
+- [ ] Проверить, что нет остатков `SkeletonBlock` импортов в кодовой базе: `grep -r "SkeletonBlock" apps/frontend/src`.
+- [ ] Проверить, что нет остатков `broker-account__*`, `broker-overview__*`, `broker-allocation__*`, `broker-operations__toolbar` в TSX: `grep -rE "broker-(account|overview|allocation|operations)" apps/frontend/src --include='*.{ts,tsx}'`.
+
+## Task 12: Вердикт и записка
+
+- [ ] Обновить `docs/features/broker-account-sections-ds-migration/tasks.md` — отметить все выполненные пункты.
diff --git a/docs/features/broker-account-sections-ds-migration/spec.md b/docs/features/broker-account-sections-ds-migration/spec.md
new file mode 100644
index 0000000..11acc2b
--- /dev/null
+++ b/docs/features/broker-account-sections-ds-migration/spec.md
@@ -0,0 +1,85 @@
+# Дизайн-системный рефакторинг страниц брокерского счёта
+
+Дата: 2026-06-21
+Статус: реализовано
+
+## Контекст
+
+Epic `Брокерский портфель` уже покрыт функциональной фичей `broker-account-sections` (реализовано 2026-06-18). Текущая цель — убрать legacy-стили (CSS-классы, inline-стили, `SkeletonBlock`, `loading-spinner`) из страниц и компонентов, относящихся к одному выбранному брокерскому счёту, и перевести их на `@moex-vibe/design-system`.
+
+Страницы в области изменения:
+
+- `BrokerAccountLayout` — навигация и заголовок счёта;
+- `BrokerAccountOverviewPage` — карточки сводки, диаграмма, последние операции;
+- `BrokerSummary` — текстовые показатели портфеля и денежных остатков;
+- `BrokerAssetCards` — карточки акций и облигаций;
+- `BrokerOverviewSkeleton` — loading-состояние overview;
+- `BrokerAllocationChart` — SVG-диаграмма (диаграмма остаётся SVG, меняются обёртки);
+- `BrokerPositionTable` — таблица позиций с пагинацией;
+- `BrokerOperationsTable` — таблица операций с пагинацией;
+- `PositionTicker` — кликабельный тикер в таблице позиций;
+- `BrokerPositionsPage` — страница акций / облигаций;
+- `BrokerOperationsPage` — страница истории операций с фильтром.
+
+## Связанные фичи
+
+- Epic: `docs/epics/BrokerPortfolio.md`
+- Функциональная базовая фича: `docs/features/broker-account-sections/spec.md`
+- DS-пакет: `packages/design-system/`
+
+## Цель
+
+Удалить все CSS-классы (кроме героических градиентов, где нет DS-эквивалента) и `SkeletonBlock` из страниц и компонентов, относящихся к одному брокерскому счёту. Перевести layout, typography, skeleton, метрики, алерты, кнопки, пустые состояния на `@moex-vibe/design-system`. Оставить нетронутыми бизнес-логику, контракты и схему маршрутизации.
+
+## Out of scope
+
+- Изменение бизнес-логики, контрактов API, entity-слоя;
+- Изменение маршрутизации;
+- Изменение SVG-диаграммы;
+- Рефакторинг broker-accounts-page (список счетов) — отдельная фича;
+- Изменение CSS-переменных `:root` и их использования за пределами страниц брокера;
+- Добавление новых тестов (существующие тесты сохраняются, если их контракт не меняется).
+
+## Принципы миграции
+
+- `SkeletonBlock` → DS `Skeleton` (все потребители → удаление `SkeletonBlock` из `shared/ui`);
+- ``/`` → ``;
+- ``, `` → ``;
+- `` статические тексты → `` или `` с `sx` (если нужен кастомный размер/цвет);
+- `` значения → ``;
+- Inline `` → ``;
+- Стандартный `` → ``;
+- Hero-gradient `broker-overview` → `` с кастомным `sx` (градиент остаётся как inline-стиль);
+- `div.broker-operations__toolbar` → `` с flex-сеткой;
+- `` элемент — оставить как нативный ``, обёрнуть в ``.
+
+## Acceptance Criteria
+
+- [x] `BrokerAccountLayout` не содержит CSS-классов из `styles.css`; используется ``, ``, ``.
+- [x] `BrokerAccountOverviewPage` и содержащиеся в нём `BrokerSummary`, `BrokerAssetCards` переведены на DS-компоненты.
+- [x] `BrokerOverviewSkeleton` использует DS ``.
+- [x] `BrokerAllocationChart` обёртки (``, ``) переведены на ``; текст легенды — на ``.
+- [x] `BrokerPositionTable` и `BrokerOperationsTable` используют `` для layout, `` для заголовков, `` или `` для пагинации, пустые и loading-состояния — через DS.
+- [x] `TableSkeleton` переведён на DS ``.
+- [x] `SkeletonBlock` удалён после замены всех потребителей.
+- [x] `BrokerPositionsPage` и `BrokerOperationsPage` переведены на ``, ``, ``.
+- [x] `PositionTicker` — ` ` с ``.
+- [x] ESLint allowlist не нарушен (`no-restricted-imports` разрешает `Box`, `Stack`, `Grid` из `@mui/material` barrel).
+- [x] `npm run test:frontend && npm run lint -w apps/frontend && npm run build:frontend` проходят.
+- [x] CSS-классы, оставшиеся без потребителей, удалены из `styles.css` (но сохраняются градиенты hero-секций).
+
+## Результаты реализации
+
+Все 12 задач плана выполнены и закоммичены в ветку `codex/broker-accounts-page` (13 коммитов). Ключевые изменения:
+
+- **Полностью мигрированы на DS:** `BrokerAccountLayout`, `BrokerAccountOverviewPage`, `BrokerSummary`, `BrokerAssetCards`, `BrokerOverviewSkeleton`, `BrokerAllocationChart`, `BrokerPositionTable`, `BrokerOperationsTable`, `BrokerPositionsPage`, `BrokerOperationsPage`, `PositionTicker`.
+- **Удалён legacy:** `SkeletonBlock` удалён из `shared/ui/SkeletonBlock.tsx` и `shared/ui/index.ts`.
+- **Очистка CSS:** все `broker-account__*`, `broker-overview__*`, `broker-allocation__*`, `broker-operations__toolbar*` классы и переменные удалены из `styles.css`. CSS уменьшился с 274 до 99 строк.
+- Верификация: 111 тестов PASS, lint чистый, build проходит без ошибок.
+
+### Отклонения от плана
+
+- `PositionTicker`: использован `` вместо DS `` с `sx`, так как DS `Text` не поддерживает кастомный `sx`.
+- `TableSkeleton`: сохранён как shared компонент (вместо удаления), так как используется `BrokerOperationsTable`.
+- `loading-spinner`: оставлен как глобальный CSS-класс (генерируется через ``). DS `Skeleton shape="circular"` использован для inline-спиннеров в пагинации.
+- `TableSkeleton` type signature остался без изменений (все уже импортируют `Skeleton` из DS, не `SkeletonBlock`).
diff --git a/docs/features/broker-account-sections-ds-migration/tasks.md b/docs/features/broker-account-sections-ds-migration/tasks.md
new file mode 100644
index 0000000..7dcabb1
--- /dev/null
+++ b/docs/features/broker-account-sections-ds-migration/tasks.md
@@ -0,0 +1,101 @@
+# Дизайн-системный рефакторинг брокерских страниц — Tasks
+
+Дата: 2026-06-21
+Связанные документы:
+
+- [Spec](spec.md)
+- [Plan](plan.md)
+
+## Task 1: BrokerAccountLayout
+
+- [x] Заменить `div.broker-account` на ``
+- [x] Перевести `header` + `h1` на `` + ``
+- [x] Перевести `nav` на `` + `` (Box component={NavLink} с `aria-current="page"`)
+- [x] Перевести `div.broker-account__workspace` на grid ``
+- [x] Перевести `div.broker-account__content` на ``
+- [x] Удалить соответствующие CSS-selectors из `styles.css`
+
+## Task 2: BrokerAccountOverviewPage + BrokerSummary + BrokerAssetCards
+
+- [x] Перевести `BrokerSummary` на `` + ``
+- [x] Перевести eyebrow/label на ``
+- [x] Перевести `` значений на ``
+- [x] Перевести `` cash на ``
+- [x] Перевести `BrokerAssetCards` на `` + ` ` + ``
+- [x] Перевести `BrokerAccountOverviewPage` container на ``
+- [x] Перевести `` на ``
+- [x] Оставить hero-gradient без изменений (Out of scope)
+
+## Task 3: BrokerOverviewSkeleton
+
+- [x] Заменить импорт `SkeletonBlock` на DS ``
+- [x] Перевести контейнеры на ``
+- [x] Сделать circular skeleton для портфельной карточки
+- [x] Сделать text skeleton для текстовых placeholder'ей
+
+## Task 4: BrokerAllocationChart (wrap only)
+
+- [x] Перевести `` на ``
+- [x] Перевести `` на ``
+- [x] Перевести `` пустого состояния на ``
+- [x] Перевести `` / `` легенды на `` + ``
+- [x] Перевести swatch на `` с inline-цветом в `sx`
+- [x] Перевести тексты легенды на ``
+- [x] Перевести negative-список на ``
+- [x] Удалить CSS для `.broker-allocation*` в `styles.css`
+
+## Task 5: BrokerPositionTable + PositionTicker
+
+- [x] Перевести вспомогательные стили на ``
+- [x] Перевести `` на ``
+- [x] Перевести alert-тексты на ``
+- [x] Перевести пагинационные `` на ``
+- [x] Перевести `loading-overlay` на ``
+- [x] Перевести `PositionTicker` ссылки на ``
+- [x] Сохранить `loading-spinner` (глобальный класс, пока без замены)
+
+## Task 6: TableSkeleton (DS Skeleton)
+
+- [x] Убрать импорт `SkeletonBlock`
+- [x] Заменить на ` `
+
+## Task 7: BrokerOperationsTable
+
+- [x] Перевести вспомогательные стили на ``
+- [x] Перевести `` на ``
+- [x] Перевести `headerAction` container на ``
+- [x] Перевести пагинационные `` на ``
+- [x] Перевести alert-тексты на ``
+- [x] Перевести empty-тексты на ``
+- [x] Перевести `` + `` на `` + ``
+- [x] Оставить `loading-spinner` для overlay (глобальный класс)
+
+## Task 8: BrokerPositionsPage + BrokerOperationsPage
+
+- [x] Перевести `BrokerPositionsPage` на `` + `` + ``
+- [x] Перевести `BrokerOperationsPage` на `` + `` + `` + ``
+- [x] Убедиться, что `role="alert"` сохраняется через ``
+
+## Task 9: SkeletonBlock удаление
+
+- [x] Удалить `apps/frontend/src/shared/ui/SkeletonBlock.tsx`
+- [x] Удалить экспорт из `apps/frontend/src/shared/ui/index.ts`
+- [x] Проверить grep по `SkeletonBlock` — 0 совпадений
+
+## Task 10: Очистка `styles.css`
+
+- [x] Удалить блоки `.broker-account__*`
+- [x] Удалить блоки `.broker-overview__*`
+- [x] Удалить блоки `.broker-allocation__*`
+- [x] Удалить блоки `.broker-operations__toolbar*`
+- [x] Удалить CSS-переменные `--broker-overview-*`
+- [x] Оставить `.loading-spinner`, `.skeleton`, `:root` общие переменные
+
+## Task 11: Финальная проверка
+
+- [x] `npm run test:frontend` — 111 tests PASS
+- [x] `npm run lint -w apps/frontend` — без ошибок
+- [x] `npm run build:frontend` — без TypeScript/Vite ошибок
+- [x] grep по `broker-(account|overview|allocation)` в TSX — 0 совпадений
+- [x] grep по `SkeletonBlock` в TSX — 0 совпадений
+- [x] CSS: 274 → 99 строк
diff --git a/docs/features/broker-accounts-page-migration/plan.md b/docs/features/broker-accounts-page-migration/plan.md
new file mode 100644
index 0000000..26eb9be
--- /dev/null
+++ b/docs/features/broker-accounts-page-migration/plan.md
@@ -0,0 +1,94 @@
+# Broker Accounts Page — Implementation Plan
+
+> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
+
+**Goal:** Migrate broker-accounts page area to use `@moex-vibe/design-system` components.
+
+**Architecture:** Replace legacy CSS classes, inline styles, and shared/components with DS equivalents. Keep business logic and data layer unchanged. The hero gradient section is intentionally left as custom CSS.
+
+**Tech Stack:** React 18, MUI 6.5, `@moex-vibe/design-system` 0.1.0
+
+---
+
+## Files
+
+### Modify
+- `apps/frontend/src/pages/broker-accounts/ui/BrokerAccountsPage.tsx`
+- `apps/frontend/src/widgets/broker-accounts-summary/ui/BrokerAccountsSummary.tsx`
+- `apps/frontend/src/widgets/broker-account-card/ui/BrokerAccountCard.tsx`
+- `apps/frontend/src/shared/ui/broker-allocation-bar/BrokerAllocationBar.tsx`
+- `apps/frontend/src/styles.css` — удалить осиротевшие классы
+
+### No changes
+- Entity layer (`entities/broker-account/`, `entities/broker-position/`) — бизнес-логика не меняется
+- Shared formatters (`shared/lib/formatters.ts`) — используются для форматирования значений
+- Shared API layer (`shared/api/`) — не меняется
+
+---
+
+## Task 1: BrokerAllocationBar
+
+Replace inline HTML + CSS classes with `` + ``.
+
+- Empty: `` → ``
+- Track: `` → `
` with `sx`
+- Segment: `` → `` with `sx`
+- Legend: `` / `` → `` with `sx` flex layout
+- Swatch: `` with inline style → `` with `sx`
+
+Segment width/background и swatch colors остаются как inline styles (dynamic per item, from ALLOCATION_CONFIG).
+
+## Task 2: BrokerAccountCard
+
+Replace legacy shared components and CSS with DS equivalents.
+
+- Skeleton block: `` → `` from DS
+- Eyebrow: `` → ``
+- Title: `` → ``
+- Stat labels/values: `` + `` → `` + ``
+- Card wrapper: `` → `` with `component={Link}` or `` with `sx`
+- Error: `` → `` + `` + ``
+- Card header layout: `` → `
` with flex `sx`
+- Card grid: `` → `
` with grid `sx`
+- Card stat: `` → `
` with grid `sx`
+
+## Task 3: BrokerAccountsSummary
+
+Replace skeleton, stats, typography with DS equivalents.
+
+- Skeleton: `` → ``
+- Eyebrow: `` → ``
+- Title (serif): keep as `` with CSS class (DS Heading не использует serif, теряется brand-стиль)
+- Status counts: `` → ``
+- Currency label: `` → ``
+- Currency totals: `` — keep as `` with CSS (serif)
+- Metrics: ``/``/` ` → `` for each stat
+- Metric layout grid: `` → `
` with grid `sx`
+
+The hero section (`broker-accounts-summary__hero`) keeps its CSS classes — custom gradient, not replaceable.
+
+## Task 4: BrokerAccountsPage
+
+Replace page-level layout, typography, empty/error states.
+
+- Page grid: `` → `
` with grid `sx`
+- Header: `` → `` with flex `sx`
+- Eyebrow: `` → ``
+- Title: `` → `` (note: serif lost)
+- Caption: `` → ``
+- Cards grid: `` → `
` with grid `sx`
+- Empty: `` → ``
+- Error: `` → ``
+
+## Task 5: Clean up orphaned CSS
+
+After all migrations, remove from `styles.css`:
+- `.broker-accounts-page`, `.broker-accounts-page__header`, `.broker-accounts-page__eyebrow`, `.broker-accounts-page__title`, `.broker-accounts-page__caption`, `.broker-accounts-page__cards`
+- `.broker-accounts-empty`
+- `.broker-account-card`, `.broker-account-card--link`, `.broker-account-card--loading`, `.broker-account-card--error`, `.broker-account-card__header`, `.broker-account-card__eyebrow`, `.broker-account-card__title`, `.broker-account-card__opened`, `.broker-account-card__grid`, `.broker-account-card__stat`, `.broker-account-card__stat--wide`, `.broker-account-card__alert`, `.broker-account-card__retry`
+- `.broker-allocation-bar`, `.broker-allocation-bar__track`, `.broker-allocation-bar__segment`, `.broker-allocation-bar__legend`, `.broker-allocation-bar__legend-item`, `.broker-allocation-bar__swatch`, `.broker-allocation-bar__empty`
+- `.broker-accounts-summary__eyebrow`, `.broker-accounts-summary__currency`, `.broker-accounts-summary__total`, `.broker-accounts-summary__metrics`, `.broker-accounts-summary__metric`
+- `.broker-accounts-summary__currency-card` and its children (header, currency, total, metrics, metric)
+- `.broker-accounts-summary__status` and children
+
+Keep: `.broker-accounts-summary`, `.broker-accounts-summary--loading`, `.broker-accounts-summary__hero`, `.broker-accounts-summary__title` (serif), shared `.broker-accounts-summary__eyebrow` shared rule (hero-specific), `.broker-accounts-summary__currency-grid`
diff --git a/docs/features/broker-accounts-page-migration/spec.md b/docs/features/broker-accounts-page-migration/spec.md
new file mode 100644
index 0000000..9c734fb
--- /dev/null
+++ b/docs/features/broker-accounts-page-migration/spec.md
@@ -0,0 +1,54 @@
+# Broker Accounts Page — Design System Migration
+
+## Status
+
+Implemented — 2026-06-21.
+
+## Goal
+
+Мигрировать BrokerAccountsPage, BrokerAccountsSummary, BrokerAccountCard и BrokerAllocationBar на компоненты `@moex-vibe/design-system`, заменив legacy CSS и inline-стили на DS-компоненты и MUI layout utilities.
+
+## Scope
+
+- `apps/frontend/src/pages/broker-accounts/ui/BrokerAccountsPage.tsx`
+- `apps/frontend/src/widgets/broker-accounts-summary/ui/BrokerAccountsSummary.tsx`
+- `apps/frontend/src/widgets/broker-account-card/ui/BrokerAccountCard.tsx`
+- `apps/frontend/src/shared/ui/broker-allocation-bar/BrokerAllocationBar.tsx`
+- `apps/frontend/src/styles.css` — удалить CSS-классы и переменные, оставшиеся без потребителей
+
+### DS-компоненты для внедрения
+
+| HTML / legacy | DS-компонент |
+|-------------|-------------|
+| ``, `` | `` |
+| ``, `` label | `` |
+| `` eyebrow | `` |
+| ``/``/` ` stat | `` |
+| `div.broker-accounts-empty` | `` |
+| `div.broker-account-card__alert` + button | `` + `` |
+| `div.broker-accounts-summary__hero` title/text | `` + `` |
+| `.broker-account-card` card | `` or `` |
+| `