diff --git a/DOC/ШАГИ/ШАГ_2026-04-27_003.md b/DOC/ШАГИ/ШАГ_2026-04-27_003.md
new file mode 100644
index 0000000..5964b25
--- /dev/null
+++ b/DOC/ШАГИ/ШАГ_2026-04-27_003.md
@@ -0,0 +1,4 @@
+# Шаг 2026-04-27 — спринт 2 (мобильный UI)
+
+- См. [`docs/СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md`](../../docs/СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md): пункты 2.1–2.5 отмечены выполненными.
+- Реализация: `TestDetail.jsx` (прогоны карточками, импорт через label+input, заголовок вопроса, radio/checkbox, фикс-футер), `cabinet-theme.css` (классы спринта 2).
diff --git a/docs/СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md b/docs/СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md
index 43e3cd8..68c4d8f 100644
--- a/docs/СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md
+++ b/docs/СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md
@@ -1,10 +1,8 @@
# Спринты: мобильный UI кабинета тестов
-Рядом с: [`ПРЕДЛОЖЕНИЕ_ДИЗАЙН_СОЗДАНИЕ_ТЕСТА.md`](./ПРЕДЛОЖЕНИЕ_ДИЗАЙН_СОЗДАНИЕ_ТЕСТА.md).
-
---
-## Спринт 1 — быстрые исправления (текущий)
+## Спринт 1 — быстрые исправления
**Цель:** выровнять кнопки, мета-строку списка, историю версий, назначение и safe-area; без смены контентной модели страниц.
@@ -21,13 +19,15 @@
---
-## Спринт 2 — бэклог (следующий)
+## Спринт 2 — карточки, импорт, вопрос, радио/чек, фикс-футер
+
+- [x] **2.1** «Прогоны и разбор»: таблица заменена на список карточек (`.attempts-card-list`)
+- [x] **2.2** «Импорт из файла»: скрытый `input` + `label` с `.btn` (`.import-file-input` / `.import-file-label`)
+- [x] **2.3** «Вопрос N» + «Сгенерировать вопрос (ИИ)»: колонка на мобилке, ряд от `min-width: 520px` (`.question-editor-block__header`)
+- [x] **2.4** Варианты: `type="radio"` при одном верном, `checkbox` при нескольких
+- [x] **2.5** Моб. фикс-футер `≤640px` с «Сохранить» / «К списку» + статус черновика; панель в потоке скрыта
-- [ ] **2.1** «Прогоны и разбор»: на мобилке заменить таблицу на карточки или гориз. скролл с фиксированными колонками
-- [ ] **2.2** «Импорт из файла»: кастомная кнопка (скрытый `input` + стилизованный `label` под `.btn`)
-- [ ] **2.3** «Вопрос 1» + «Сгенерировать вопрос (ИИ)» — не в одной строке на узком экране; явная иерархия primary/secondary
-- [ ] **2.4** Радио vs чекбокс у вариантов ответа при «несколько верных» — визуальная метафора (квадраты vs круги)
-- [ ] **2.5** Закреплённый футер с действиями «Сохранить» (опционально)
+**Файлы:** `frontend/src/styles/cabinet-theme.css`, `frontend/src/pages/TestDetail.jsx`.
---
diff --git a/frontend/src/pages/TestDetail.jsx b/frontend/src/pages/TestDetail.jsx
index a8c8db3..b6c0a67 100644
--- a/frontend/src/pages/TestDetail.jsx
+++ b/frontend/src/pages/TestDetail.jsx
@@ -622,7 +622,7 @@ export default function TestDetail() {
);
return (
-
+
← к списку
@@ -792,22 +792,23 @@ export default function TestDetail() {
{draftQuestions.map((q, qi) => (
-
-