diff --git a/docs/site-fixes-2026-10-11/REPORT.md b/docs/site-fixes-2026-10-11/REPORT.md
new file mode 100644
index 0000000..cbf609c
--- /dev/null
+++ b/docs/site-fixes-2026-10-11/REPORT.md
@@ -0,0 +1,155 @@
+# Исправления публичного сайта test.food-market.kz — круг 2 (11.10.2026)
+
+**Деплой:** только тестовый сайт через `~/.fm-watchdog/deploy-public-test.sh`
+(commit `6f229eb`, статус `OK`). Прод, gateway nginx, прод-БД — не трогались.
+**Образ отката:** `192.168.1.193:5001/food-market-public:test-pre-site-fixes-2`
+(создан из текущего `:test` ДО деплоя). Откат: перетегировать его в `:test` и
+`docker compose up -d public` на prod-vm.
+**Автопроверка (Playwright, как человек):** 44/44 — см. `index.html` (desktop 1440
+@2x + mobile 390 @3x, 13 скриншотов), сырые данные — `verify.json`.
+
+---
+
+## Уточнение поручения владельца по брендам (важно)
+
+Было два сообщения владельца. Итоговая (уточнённая) трактовка, по которой сделано:
+
+- **Убрать со всего сайта — ТОЛЬКО чужие СИСТЕМЫ УЧЁТА** рознцы (конкуренты):
+ «МойСклад» / «Мой склад» / MoySklad, «1С» / 1C. Grep по `dist`: **0 вхождений**
+ вне `/legal/*` (в `/legal/*` их и нет — проверено).
+- **Платёжные системы, банки, маркетплейсы** (Kaspi Pay, Kaspi Magazin, Halyk,
+ Jusan, Forte, Wildberries, Ozon, Visa, Mastercard) — **НЕ** чужие системы учёта,
+ удалять не требовалось. Оставлены **только как честная пометка «в разработке»**
+ на `/integrations` и главной (без дат и обещаний), нигде — как готовая функция.
+- Промежуточное (ошибочно расширенное) удаление Kaspi/маркетплейсов со страницы
+ `/integrations` **откатил** — вернул их в блок «В разработке» в прежнем виде
+ (Kaspi Pay, Kaspi Magazin, Ozon, Wildberries; ОФД РК).
+- Из KB/блога/FAQ обещания уже подключённых способов оплаты/интеграций всё равно
+ убраны — но по причине «**этого нет в продукте**», а не «чужой бренд».
+
+Где Kaspi/маркетплейсы остались (проверено): `/integrations` (блок «В разработке»)
+и главная (FAQ — «в планах, сроков не называем»). Больше нигде.
+
+---
+
+## Сделано — по пунктам круга 2
+
+### 1. Оставшиеся «ложные обещания» / честность текстов
+- **`/kb/pos-setup`** — касса для **Windows и Linux**; вход = адрес сервера + логин
+ + PIN (не «ключ организации»); установка «скоро»; принтеры «58/80 мм (ESC/POS)».
+- **`/blog/quick-start`** — убран дубль `# H1`; «Импорт через API» → «Импорт из
+ других систем учёта — в разработке»; шаги установки .msi/ключ → сервер+логин+PIN;
+ меню лояльности/маркетинга → «раздел «Акции и скидки»», «лояльность — в расширенном
+ режиме»; обложка — скриншот продукта (не чужое стоковое фото).
+- **`/blog/launch`** — убран дубль H1; «триал» → «честный бесплатный период»;
+ «Касса для Windows» → «Windows и Linux … приложение — скоро»; маркетплейсы/оплаты
+ → «в разработке» (без дат); «все возможности CRM/лояльность/…» → «без доплат за
+ модули».
+- **`/kb/faq`** — бэкапы «каждые 24 ч» → «регулярные»; «TLS 1.3» → «TLS» (без
+ версии); формулировка про ЗРК смягчена до «в соответствии с законодательством РК»;
+ импорт — файлы Excel/CSV, из других систем «в разработке»; **«триал» → «бесплатный
+ период»** (унифицировано); «с SLA» убрано.
+- **Унификация «триал» → «бесплатный период»** по сайту (og.mjs тоже). В `/legal/*`
+ термин «Триал» оставлен как есть (юр. документы не трогаем).
+- **og-картинки** перегенерированы (`node scripts/og.mjs`): без чужих систем учёта;
+ касса «Windows и Linux»; «90 дней бесплатно».
+
+### 2. React #418 (hydration mismatch) на `/signup`
+`SignupForm.tsx`: `?plan=` и параметры конфигуратора теперь читаются в `useEffect`
+**после** гидрации, поэтому первый клиентский рендер совпадает с SSR-разметкой.
+Проверка консоли на `/`, `/pricing`, `/signup?plan=business&…` и `/signup?plan=business`
+— **ошибок нет, #418 отсутствует** (8/8 авто-проверок).
+
+### 3. `/signup` без параметров конфигуратора
+- `plan=business` без параметров → выбран **«Бизнес»** с дефолтной конфигурацией
+ **1/1/1/5 = 10 000 ₸** (показана карточка «Ваша конфигурация»). ✓ проверено.
+- `plan=network` → «Сеть»; неизвестный план → «Старт». ✓
+- Клик по плитке тарифа обновляет URL (`history.replaceState`).
+- Плитка «Старт»: «5 000 ₸» → **«5 000 ₸/мес»**; цены плиток без переноса.
+
+### 4. Типографика KB/блога
+- `.prose-md` (h2/h3, списки, таблицы, ссылки, код, цитаты) вынесена в
+ `global.css` — грузится на всех страницах; `/kb/*` больше **не плоский текст**
+ (раньше стиль был только на странице блога). ✓ проверено (`h2`, `ul li` в
+ `.prose-md`).
+- Блог: убран дублирующий `
` (в теле статей) — на странице ровно один H1. ✓
+
+### 5. Мелочи
+- **sitemap.xml** — канонические URL **со слэшем** (убраны 301), добавлены статьи
+ KB и блога. ✓
+- **Footer** «Status» → **«Статус»**.
+- **`/changelog`** — убран внутренний жаргон (Phase N, SuperAdmin, retention
+ period, tenant, inline, Read-only/Edit-mode) → человеческие формулировки;
+ заголовок «Что нового». ✓
+- **`/pricing`** — на конструкторе «Бизнес» бейдж **«Популярный»** (как на главной)
+ + **«90 дней бесплатно»**; у «Старт» убран ложный пункт «Импорт из других систем».
+- Шапка ~1050px: десктоп-меню переведено на `xl` (до 1280px — гамбургер), CTA без
+ переноса → на ~1050px и на мобильном меню/кнопка **не ломаются в 2 строки**. ✓
+- Инлайн-ссылки в тексте — увеличенная зона нажатия (padding без сдвига вёрстки).
+- Эмодзи-фолбэк-стек в `body` (чтобы эмодзи не были квадратами там, где нет
+ цветного emoji-шрифта).
+
+### 6. Не трогал
+`/legal/*` и контакты-плейсхолдеры («[НАЗВАНИЕ ТОО]», «[БИН]», «+7 (___)») — без
+изменений. Бренд ALL MARKET, цвета, шрифты — без изменений.
+
+---
+
+## Дополнение по тесту на Android (Firefox 157) — сделано
+
+1. **Мобильное меню + кнопка «Назад» Android.** При открытии панели кладём запись
+ в историю (`pushState`), закрываем по `popstate` → системная «Назад» закрывает
+ меню, а не уводит со страницы. Esc/тап-вне/крестик остались. ✓ проверено
+ (`m-after-back.png` — после «Назад» панель закрыта, остались на `/`).
+2. **Состав мобильной панели.** Добавлены «Интеграции» (в основную навигацию) и
+ внизу панели вторичные ссылки **«Статус»** и **«Что нового»** (раньше были только
+ в футере). ✓
+3. **«Настроить тариф» (главная)** → `/pricing#configurator` со скроллом к
+ конструктору (у блока `id="configurator"` + `scroll-mt-20`). ✓ якорь есть.
+4. **Ползунки конструктора на тач.** Крупная ручка (28px), `touch-action: pan-y`
+ на инпуте (вертикальный свайп скроллит страницу, а не двигает значение), и
+ кнопки **«−/+»** у каждого значения (менять без перетаскивания). ✓ проверено.
+5. **`/kb/billing`.** Проверено по коду `src/food-market.*`: биллинг/подписки в
+ продукте **нет** (в вебе явная заглушка «до Phase 4 «Подписки»»; единственная
+ сущность `Subscription` — это `WebPushSubscription`, push-уведомления). Поэтому
+ убраны несуществующие: «Настройки → Подписка → История» (скачивание счетов/чеков),
+ e-mail-напоминания, баннер в админке, формула кредита при понижении, SLA для
+ «Сеть». Переписано честно: оплата на раннем доступе — вручную через поддержку,
+ онлайн-оплата и личный кабинет «в разработке». Цены «тг» → **«₸»**. ✓
+6. **`/status`.** Убраны фиктивные зелёные «● Работает» (мониторинга нет) — честная
+ страница «в разработке» + контакты для инцидентов (реальный `/health` не
+ подключал: это требует серверной части, вне правки статического сайта). ✓
+
+---
+
+## Решения, требующие внимания владельца
+
+1. **Контракт API регистрации.** Форма отправляет `plan`, а для «Бизнес» ещё и
+ `shops/cashes/warehouses/employees` (вперёд-совместимо). **Текущий серверный
+ контракт `SignupInput` принимает только `plan`** — конфигурация конструктора на
+ бэкенде пока игнорируется. Нужно решение: принимать ли её на сервере (тогда —
+ отдельная задача по API) или оставить как сейчас.
+2. **Оборудование на `/integrations`.** В «Уже работает» вернул конкретику «весы
+ CAS, Масса-К и совместимые» (это производители **весов**, не системы учёта, —
+ под уточнённое поручение не попадают). Если хотите — заменю на нейтральное
+ «популярные протоколы».
+3. **Юр. документы / реквизиты.** В `/legal/*` чужих систем учёта и брендов нет —
+ список пуст, ничего выносить не требуется. Плейсхолдеры реквизитов не трогал.
+
+---
+
+## Проверка (как в задаче)
+
+| Критерий | Результат |
+|---|---|
+| Консоль чистая на `/`, `/pricing`, `/signup` (вариации), React #418 нет | ✓ |
+| `plan=business` без параметров → «Бизнес» 10 000 (1/1/1/5) | ✓ |
+| `dist`/живой сайт: 0 «МойСклад/Мой склад/moysklad/1С/1C» вне `/legal/*` | ✓ |
+| Kaspi/маркетплейсы — только «в разработке» на `/integrations` и главной | ✓ |
+| Унификация «бесплатный период»; «тг» → «₸» в KB | ✓ |
+| Типографика KB (h2/списки) + один H1 в блоге | ✓ |
+| sitemap — канонические URL со слэшем + KB/блог | ✓ |
+| Моб.: «Назад» закрывает меню; состав панели; ползунки −/+ | ✓ |
+| `/status` без фиктивного статуса; `/changelog` без жаргона; `/kb/billing` честный | ✓ |
+
+Итог авто-проверки: **44/44**.
diff --git a/docs/site-fixes-2026-10-11/d-blog-quickstart.png b/docs/site-fixes-2026-10-11/d-blog-quickstart.png
new file mode 100644
index 0000000..787fe21
Binary files /dev/null and b/docs/site-fixes-2026-10-11/d-blog-quickstart.png differ
diff --git a/docs/site-fixes-2026-10-11/d-changelog.png b/docs/site-fixes-2026-10-11/d-changelog.png
new file mode 100644
index 0000000..b9b09c9
Binary files /dev/null and b/docs/site-fixes-2026-10-11/d-changelog.png differ
diff --git a/docs/site-fixes-2026-10-11/d-integrations.png b/docs/site-fixes-2026-10-11/d-integrations.png
new file mode 100644
index 0000000..a429d02
Binary files /dev/null and b/docs/site-fixes-2026-10-11/d-integrations.png differ
diff --git a/docs/site-fixes-2026-10-11/d-kb-billing.png b/docs/site-fixes-2026-10-11/d-kb-billing.png
new file mode 100644
index 0000000..2e160e5
Binary files /dev/null and b/docs/site-fixes-2026-10-11/d-kb-billing.png differ
diff --git a/docs/site-fixes-2026-10-11/d-kb-faq.png b/docs/site-fixes-2026-10-11/d-kb-faq.png
new file mode 100644
index 0000000..cc9c3ae
Binary files /dev/null and b/docs/site-fixes-2026-10-11/d-kb-faq.png differ
diff --git a/docs/site-fixes-2026-10-11/d-pricing.png b/docs/site-fixes-2026-10-11/d-pricing.png
new file mode 100644
index 0000000..981c5a8
Binary files /dev/null and b/docs/site-fixes-2026-10-11/d-pricing.png differ
diff --git a/docs/site-fixes-2026-10-11/d-signup-business-default.png b/docs/site-fixes-2026-10-11/d-signup-business-default.png
new file mode 100644
index 0000000..e505937
Binary files /dev/null and b/docs/site-fixes-2026-10-11/d-signup-business-default.png differ
diff --git a/docs/site-fixes-2026-10-11/d-status.png b/docs/site-fixes-2026-10-11/d-status.png
new file mode 100644
index 0000000..f4e079f
Binary files /dev/null and b/docs/site-fixes-2026-10-11/d-status.png differ
diff --git a/docs/site-fixes-2026-10-11/index.html b/docs/site-fixes-2026-10-11/index.html
new file mode 100644
index 0000000..e5159cc
--- /dev/null
+++ b/docs/site-fixes-2026-10-11/index.html
@@ -0,0 +1,65 @@
+Исправления сайта 2026-10-11 (круг 2)
+
+
Исправления публичного сайта test.food-market.kz — круг 2 (2026-10-10)
+
Проверка после деплоя (2026-10-10T20:27:26.438Z). Пройдено: 44/44.
+
Автопроверки
✓ консоль чистая: главная
+
✓ нет React #418 (hydration): главная
+
✓ консоль чистая: /pricing
+
✓ нет React #418 (hydration): /pricing
+
✓ консоль чистая: /signup?plan=business+params
+
✓ нет React #418 (hydration): /signup?plan=business+params