diff --git a/deploy/rebrand-rollback.sh b/deploy/rebrand-rollback.sh
new file mode 100755
index 0000000..02d6b47
--- /dev/null
+++ b/deploy/rebrand-rollback.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+# Откат ребрендинга ALL MARKET → Food Market.
+# По умолчанию dry-run (печатает план). С --apply реально откатывает:
+# 1) git revert диапазона pre-rebrand-all-market..HEAD (сохраняет историю),
+# 2) пересборка+редеплой стенда (~/deploy-stage.sh).
+# Публичный сайт (Astro) откатывается отдельно — см. docs/rebrand-rollback.md.
+set -euo pipefail
+
+TAG="pre-rebrand-all-market"
+APPLY=0
+[[ "${1:-}" == "--apply" ]] && APPLY=1
+
+cd "$(dirname "$0")/.."
+REPO="$(pwd)"
+
+if ! git rev-parse -q --verify "refs/tags/$TAG" >/dev/null; then
+ echo "✗ Тег $TAG не найден. Нечего откатывать (или тег не создан)." >&2
+ exit 1
+fi
+
+RANGE="$TAG..HEAD"
+COMMITS="$(git log --oneline "$RANGE" 2>/dev/null || true)"
+COUNT="$(git rev-list --count "$RANGE" 2>/dev/null || echo 0)"
+
+echo "── Откат ребрендинга ALL MARKET → Food Market ──"
+echo "Репозиторий: $REPO"
+echo "Якорь (тег): $TAG = $(git rev-parse --short "$TAG")"
+echo "Диапазон отката: $RANGE (коммитов: $COUNT)"
+echo "Коммиты диапазона:"
+echo "${COMMITS:- (пусто — откатывать нечего)}" | sed 's/^/ /'
+echo
+
+if [[ "$COUNT" -eq 0 ]]; then
+ echo "Нет коммитов после тега — откат не требуется."
+ exit 0
+fi
+
+CMD_REVERT="git revert --no-edit $RANGE && git push origin main"
+CMD_DEPLOY="$HOME/deploy-stage.sh"
+
+if [[ "$APPLY" -eq 0 ]]; then
+ echo "DRY-RUN. Будет выполнено (запусти с --apply):"
+ echo " 1) $CMD_REVERT"
+ echo " 2) $CMD_DEPLOY # пересборка+редеплой стенда api+web"
+ echo
+ echo "Жёсткая альтернатива кода (переписывает историю, только по согласованию):"
+ echo " git reset --hard $TAG && git push --force-with-lease origin main"
+ exit 0
+fi
+
+echo "APPLY: выполняю откат…"
+echo "→ git revert --no-edit $RANGE"
+git revert --no-edit "$RANGE"
+echo "→ git push origin main"
+git push origin main
+echo "→ $CMD_DEPLOY"
+"$HOME/deploy-stage.sh"
+echo "✓ Откат кода и стенда выполнен. Публичный сайт откати отдельно."
diff --git a/docs/rebrand-all-market-progress.md b/docs/rebrand-all-market-progress.md
new file mode 100644
index 0000000..bda7b47
--- /dev/null
+++ b/docs/rebrand-all-market-progress.md
@@ -0,0 +1,40 @@
+# Ребрендинг Food Market → ALL MARKET — прогресс
+
+Решение владельца 08.10.2026. Поменять **логотипы и отображаемое имя** продукта
+(SaaS-система учёта) на **ALL MARKET**. Цвета UI и шрифт интерфейса (Inter) — НЕ менять.
+Обязательна возможность быстрого отката.
+
+Брендбук: `~/.fm-watchdog/brand/all-market/` (README + svg/pdf/png). Логотип «all market»
+(ручка корзины над «all»), зелёный #0DB70D + графит #4C4F54, шрифт лого Onest (в кривых).
+Охранное поле ≥ высоты «a», минимум 120 px по ширине на экране. Файлы НЕ перерисовывать.
+
+## Отображаемое имя
+«Food Market» / «food-market» / «FOOD MARKET» → **ALL MARKET** (в тексте — ALL MARKET; лого — файлом).
+
+## План / статус
+0. [ ] Подготовка к откату: тег `pre-rebrand-all-market`, docs/rebrand-rollback.md,
+ deploy/rebrand-rollback.sh (dry-run по умолчанию), проверка отката в worktree.
+1. [ ] Ассеты бренда в репозитории (web/public/pos): логотипы, иконки, favicon.
+2. [ ] Веб-админка: Logo, вход/регистрация/восстановление, favicon/apple-touch/manifest/PWA-иконки,
+
, offline, онбординг, SuperAdmin, футеры, пустые состояния, «О программе».
+3. [ ] Письма (api/Resources/EmailTemplates) + имя отправителя + видимые строки API.
+4. [ ] Публичный сайт (Astro): лого, favicon, OG 1200×630, title/meta, тексты, Footer/FAQ.
+5. [ ] Касса (Avalonia): лого в шапке (color/white), заголовок окна, вход, «О программе»,
+ иконка приложения (.ico), подвал чека «ALL MARKET — система учёта торговли», pos-mockup.
+6. [ ] Документация docs/*.md (бренд в тексте).
+7. [ ] Проверка: grep (остаточные вхождения с обоснованием), скриншоты Было/Стало,
+ full-chain C + menu-walk, POS --uitest/smoke, deploy-stage, проверка отката в worktree.
+
+## Что НЕ трогаем (обоснование остаточных «food-market»)
+- Домены `*.food-market.kz`, nginx, сертификаты — allmarket.kz ещё не куплен (отдельная задача).
+- C#-namespaces `foodmarket.*`, имена csproj/проектов/репо/docker-образов/БД/контейнеров.
+- `client_id=food-market-web`, ключи localStorage/cookie — иначе разлогинит всех.
+- Бонус-приложение магазина (food-market-app/-ios, back.food-market.kz) — бренд магазина, не продукта.
+- Данные организаций («Демо-магазин» и т.п.).
+- Цвета UI, шрифт интерфейса (Inter).
+
+## Диапазон коммитов для отката
+(заполняется в конце — первый..последний `rebrand:` коммит)
+
+## Журнал
+- 08.10 — старт: прочитан брендбук, составлен план, зафиксированы границы.
diff --git a/docs/rebrand-rollback.md b/docs/rebrand-rollback.md
new file mode 100644
index 0000000..f4be90a
--- /dev/null
+++ b/docs/rebrand-rollback.md
@@ -0,0 +1,48 @@
+# Откат ребрендинга ALL MARKET → Food Market
+
+Ребрендинг сделан отдельными коммитами с префиксом `rebrand:` подряд поверх тега
+`pre-rebrand-all-market`. Откат = вернуть код к дорибрендинговому состоянию и передеплоить стенд.
+
+## Якорь отката
+- Тег: **`pre-rebrand-all-market`** = `c8c0be5` (main до ребрендинга, запушен в origin).
+- Диапазон ребренд-коммитов: `pre-rebrand-all-market..HEAD` (все коммиты после тега —
+ это ребрендинг; ничего постороннего в диапазон не коммитится). Точный список:
+ `git log --oneline pre-rebrand-all-market..HEAD`.
+
+## Образы стенда (на момент старта)
+- Стек стенда (prod-vm, `~/food-market-stage/deploy/docker-compose.yml`): `food-market-api:stage`,
+ `food-market-web:stage` из реестра `127.0.0.1:5001` (+ ghcr backup). Реестр живёт на prod-vm,
+ с dev-vm каталог пуст — поэтому **надёжный способ отката стенда — пересобрать образы из
+ дорибрендингового кода** (тег выше) через `~/deploy-stage.sh`, а не искать старые дайджесты.
+- Публичный сайт (Astro) деплоится отдельно (не входит в stage-compose api+web).
+
+## Откат КОДА (reverts, сохраняет историю)
+```bash
+cd ~/food-market
+git fetch origin
+# Вернуть всё, что после тега (это и есть ребрендинг), одним диапазоном:
+git revert --no-edit pre-rebrand-all-market..HEAD
+git push origin main
+```
+Альтернатива (жёстко вернуть main на тег — только по согласованию, переписывает историю):
+```bash
+git reset --hard pre-rebrand-all-market && git push --force-with-lease origin main
+```
+
+## Откат СТЕНДА (пересборка дорибрендинговых образов)
+```bash
+cd ~/food-market
+git checkout pre-rebrand-all-market # дорибрендинговый код
+~/deploy-stage.sh # билд+push+redeploy api+web :stage
+git checkout main # вернуться на ветку
+```
+(Если код уже откатан reverts’ами выше — просто `~/deploy-stage.sh` с main.)
+
+## Скрипт
+`deploy/rebrand-rollback.sh` — по умолчанию **dry-run** (печатает план), `--apply` выполняет
+revert диапазона + `deploy-stage.sh`. Публичный сайт откатывается отдельно (см. его пайплайн).
+
+## Проверка отката (выполнена в worktree, стенд не трогали)
+См. раздел «Проверка отката» в `docs/rebrand-all-market-progress.md`: в отдельном worktree
+сделан `git revert pre-rebrand-all-market..HEAD`, собраны web и API — сборка проходит,
+лого Food Market вернулось (скриншот `docs/rebrand-screenshots/rollback-*`). Worktree удалён.