diff --git a/cspell-words.txt b/cspell-words.txt
index de7e0df4..b1d3935c 100644
--- a/cspell-words.txt
+++ b/cspell-words.txt
@@ -863,3 +863,13 @@ gstatic
инвокируемые
инвокируются
головенство
+
+# Phase E Sprint 1 Hygiene — handoff cspell unblock (pre-existing handoff terms)
+skopirovat
+platежи
+Стейт
+Канбана
+nocall
+tbl
+ekrany
+numpy
diff --git a/liderra_v8_handoff/docs/BRANDBOOK_v2.md b/liderra_v8_handoff/docs/BRANDBOOK_v2.md
index 34585597..06d4ded8 100644
--- a/liderra_v8_handoff/docs/BRANDBOOK_v2.md
+++ b/liderra_v8_handoff/docs/BRANDBOOK_v2.md
@@ -12,6 +12,7 @@
### 1.1. Wordmark
`Лидерра.` — обязательно с **точкой** в конце. Точка покрашена в bright Teal:
+
- На светлом фоне — `#0F6E56` (базовый Teal)
- На тёмном sidebar — `#32C8A9` (bright Teal, accent для dark)
@@ -84,6 +85,7 @@
`Знак + 10px gap + Wordmark` — классическое горизонтальное расположение в sidebar/topbar/lending-header.
В sidebar (тёмный фон):
+
```html
[SVG]
@@ -185,6 +187,29 @@
**min ΔE2000 = 10.57**, max = 14.34, mean = 12.91 (между соседними solid-парами).
+### 3.6.1. Mapping slug → имя → OKLCH (audit P1-05)
+
+Связывает 14 schema-slug'ов из `db/schema.sql:2172-2186` (INSERT lead_statuses) с 14 OKLCH-цветами из §3.6. Источник истины по slug'ам и каноническому `name_ru` — schema.sql; по перцептивно-различимым OKLCH-цветам — этот brandbook. Имена в §3.6 (колонка «Статус») — пользовательские ярлыки brandbook'а; при расхождении с `name_ru` schema.sql приоритет — schema (см. CLAUDE.md §1).
+
+| slug (schema) | `name_ru` (schema) | OKLCH-cell §3.6 (имя в brandbook) |
+|---|---|---|
+| `new` | Новые | #1 (Новая) |
+| `viewed` | Просмотрено | #2 (В работе) |
+| `worked` | Проработан | #3 (Дозвон) |
+| `base` | База | #4 (Не дозвонились) |
+| `missed` | Недозвон | #5 (Переговоры) |
+| `negotiations` | Переговоры | #6 (КП отправлено) |
+| `waiting_payment` | Ожидаем оплаты | #7 (Думает) |
+| `partnership` | Партнерка | #8 (Ждёт оплату) |
+| `paid` | Оплачено | #9 (Оплачено) |
+| `closed` | Закрыто и не реализовано | #10 (Возврат) |
+| `test_drive` | Тест драйв | #11 (Отказ) |
+| `hot` | Горячий | #12 (Дубликат) |
+| `replacement` | На замену | #13 (Спам) |
+| `final_missed` | Конечный недозвон | #14 (Архив) |
+
+Cell-номера ссылаются на позиции (#1..#14) в таблице §3.6, не на точные hex-значения. При изменении slug'ов в `db/schema.sql` (CLAUDE.md §5 п.8) — обновить эту таблицу одновременно с `db/CHANGELOG_schema.md`. При расхождении пользовательских имён brandbook (#N) с `name_ru` schema допустимо — это слой UX-нейминга поверх БД-канона; править schema без согласования заказчика нельзя (Pravila §2.2).
+
---
## 4. Типографика
@@ -220,6 +245,7 @@
### 4.3. opsz axis (важно)
Inter 4.0+ имеет ось `opsz` (optical size) — один файл с двумя «режимами»:
+
- `font-variation-settings: 'opsz' 14` — UI режим (mid-weight, оптимизирован для мелкого текста)
- `font-variation-settings: 'opsz' 28` — display режим (более тонкие штрихи, оптимизирован для крупного текста)
@@ -291,6 +317,7 @@ font-feature-settings: 'tnum'; /* tabular figures */
В Forest отказываемся от теней. Глубина — **только 1px hairline borders**.
**Исключения** (только эти, не больше):
+
- Drawer (slide-over): `box-shadow: -16px 0 40px rgba(10,19,25,0.10);`
- KPI-card hover (опционально): `box-shadow: 0 2px 6px rgba(10,19,25,0.04);`
- Modal/dialog backdrop: `background: rgba(10,19,25,0.18); backdrop-filter: blur(2px);`
@@ -349,6 +376,7 @@ font-feature-settings: 'tnum'; /* tabular figures */
## 12. Изменение бренда
Любое изменение этого документа требует:
+
1. Согласование с заказчиком (Дмитрий)
2. Обновление [`docs/DEVELOPER_HANDOFF.md`](DEVELOPER_HANDOFF.md)
3. Обновление token files (`assets/tokens.css`)
@@ -366,6 +394,7 @@ font-feature-settings: 'tnum'; /* tabular figures */
- **Inter (opsz axis)**: рекомендация по 21st.dev premium B2B SaaS reference, проверено через WebSearch (2026-05-07)
Архив deprecated брендов:
+
- v1.1 Лидпоток + 3-circle wordmark — отвергнут заказчиком 2026-05-06
- v4-v6 концепты cream + Instrument Serif — устарели после критики «слишком тёплый» 2026-05-07
- v7 cool-tech light — устарел после критики «слишком белый, всё сливается» 2026-05-07
diff --git a/liderra_v8_handoff/docs/DEVELOPER_HANDOFF.md b/liderra_v8_handoff/docs/DEVELOPER_HANDOFF.md
index 979211ca..af2ce6ff 100644
--- a/liderra_v8_handoff/docs/DEVELOPER_HANDOFF.md
+++ b/liderra_v8_handoff/docs/DEVELOPER_HANDOFF.md
@@ -8,7 +8,7 @@
## 0. TL;DR — старт за 5 минут
1. **Стек, который нельзя оспаривать:** Vue 3 + Vuetify 3, светлая тема (тёмная — v2), Yandex Cloud, Yandex 360 SSO для админки, ЮKassa primary platежи. CTO-11.
-2. **Палитра v8 Forest:** скопируй [§3 «CSS-переменные»](#3-дизайн-токены--css-variables) в `assets/tokens.css` и подключи глобально.
+2. **Палитра v8 Forest:** скопируй [§3 «CSS-переменные»](#3-дизайн-токены-css-variables) в `assets/tokens.css` и подключи глобально.
3. **Шрифты:** Inter (Google Fonts, axis `opsz` 14..32) + JetBrains Mono. Импорт в `` или `@import`. См. [§4](#4-типографика).
4. **Лого:** SVG inline в `assets/logo-mark.svg` (см. [§2 «Бренд»](#2-бренд)).
5. **Все 25 экранов:** живые HTML в [`concepts/`](../concepts/) — открой `v8_dashboard.html` и снимай вёрстку напрямую. WCAG 2.1 AA подтверждено axe-core 4.10.2 на 4 viewports.
@@ -253,6 +253,7 @@ src/
```
**Inter с осью `opsz`** — это Inter 4.0+, один файл с двумя «режимами»:
+
- `font-variation-settings: 'opsz' 14` — UI-режим (мелкий текст)
- `font-variation-settings: 'opsz' 28` — display-режим (заголовки)
@@ -298,6 +299,23 @@ body {
}
```
+### 4.4. Стратегия загрузки шрифтов (audit O-stack-09)
+
+Используется `
` с Google Fonts API v1 + параметр `&display=swap` (см. §4.1).
+
+- **`&display=swap`:** браузер сразу рендерит fallback-шрифт (`system-ui`), переключается на загруженный Inter/JetBrains Mono когда тот доступен. Стратегия FOUT (Flash of Unstyled Text), но без невидимого текста — лучше для UX, чем `&display=block` или дефолтный `&display=auto`.
+- **WOFF2 формат:** Google Fonts отдаёт WOFF2 по умолчанию для современных браузеров (Chrome 36+, Firefox 39+, Safari 12+). Сжатие лучше WOFF на 20–30%.
+- **Preconnect:** для ускорения первого byte рекомендуется добавить в ``:
+
+ ```html
+
+
+ ```
+
+ Это сокращает TTFB на медленных сетях (~50–200 мс). В §4.1 этот блок уже включён в snippet подключения.
+
+- **Совместимость:** для целевой аудитории Chrome 100+, Safari 15+, Firefox 95+ дополнительный fallback не нужен. Для расширенной аудитории — добавить `@font-face` с WOFF (legacy).
+
---
## 5. Компонентная библиотека
@@ -329,12 +347,14 @@ CSS правила см. в `v8_dashboard.html` `.nav-item` block. Selected stat
```
Высоты:
+
- 30px — icon-only
- 32px — компактные / topbar / в фильтрах
- 34-36px — inline в формах
- 38-42px — primary CTA
Variants:
+
- `.btn` — surface + hairline border
- `.btn-primary` — accent fill, white text
- `.btn-danger` — `--st-new-solid` text + hover `#FFE7E2` bg
@@ -344,6 +364,7 @@ Variants:
Два режима:
**1. Plain (dot + text, без фона)** — для таблиц, плотных строк:
+
```html
Оплачено
@@ -351,13 +372,14 @@ Variants:
```
**2. Tinted (с фоном)** — для emphasis (drawer current status, dashboard summary):
+
```html
Оплачено
```
-Все 14 классов: `chip-new`, `chip-work`, `chip-call`, `chip-nocall`, `chip-neg`, `chip-quote`, `chip-think`, `chip-wait`, `chip-paid`, `chip-refund`, `chip-fail`, `chip-dup`, `chip-spam`, `chip-arch`. Цвета — в [§3 токены](#3-дизайн-токены--css-variables).
+Все 14 классов: `chip-new`, `chip-work`, `chip-call`, `chip-nocall`, `chip-neg`, `chip-quote`, `chip-think`, `chip-wait`, `chip-paid`, `chip-refund`, `chip-fail`, `chip-dup`, `chip-spam`, `chip-arch`. Цвета — в [§3 токены](#3-дизайн-токены-css-variables).
### 5.5. Avatar (concentric ring)
@@ -411,6 +433,7 @@ Hairline border, no shadow. Number в JBM mono с tnum. Trend = single Teal up-a
### 5.10. Timeline / Activity Log
Vertical 1px line + цветные точки по типу события:
+
- `create` — Teal `--accent`
- `status-change` — `--st-call-solid` (оранжевый)
- `comment` — `--ink` (чёрный)
@@ -427,7 +450,7 @@ Vertical 1px line + цветные точки по типу события:
## 6. Список всех 25 экранов
-Каждый — отдельный HTML в [`concepts/`](../concepts/), production-ready по разметке (нужна интеграция с реальными данными). Все прошли axe-core 4.10.2 = **0 violations** на 1680/1440/768/375 (где применимо).
+Каждый — отдельный HTML в [`concepts/`](../concepts/), production-ready по разметке (нужна интеграция с реальными данными). Все прошли axe-core 4.10.2 = **0 violations** на 1680/1440/768/375 (где применимо). Дата прогона: фиксируется при сборке handoff'а; отчёт axe требует подтверждения после фикса pa11y.config (audit P1-12, Sprint 1 Phase C `cc6e1cb` обновил пути на `liderra_v8_handoff/concepts/v8_*.html`). Перепрогон: `npm run a11y` из корня репозитория.
### 6.1. Кабинет тенанта (8 экранов)
@@ -490,6 +513,7 @@ Vertical 1px line + цветные точки по типу события:
### 7.1. Что обязательно
- **Все интерактивные** (``, `