# План реализации: Химия 9 (Беларусь) — интерактивный наглядный учебник

> Цель: превратить существующий «текстовый» каркас `chemistry_9.html` в **максимально
> полный, интерактивный и наглядный** учебник по всей программе 9 класса —
> на уровне качества уже сделанных Физики 9 / Алгебры 9 / Геометрии 9, но с
> химической спецификой (молекулы, уравнения реакций, ионы, осадки, газы, симуляторы).

---

## 🎯 Источник

| Параметр | Значение |
|----------|----------|
| Книга | `Himiya_Shimanovich_9kl_rus_2025.pdf` |
| Авторы | Шиманович И. Е., Василевская Е. И., Зураев А. В., Красицкий В. А., Сечко О. И. |
| Под ред. | И. Е. Шимановича |
| Изд. | Минск, «Адукацыя і выхаванне», 2025 (2-е изд., переработанное), 288 с. |
| ISBN | 978-985-34-0189-9 |
| Структура | **4 главы, 53 §, 6 лабораторных опытов, 4 практические работы** |
| Справочные таблицы | ПСХЭ Менделеева, таблица растворимости, ряд активности металлов (форзацы) |

PDF лежит в `G:\Dev\Тесты\Методички\тест_6 класс\Книги\` (есть и издание 2019 г.).

---

## 📗 ПОЛНАЯ КАРТА СОДЕРЖАНИЯ (53 §)

Колонка **«Интерактив»** — главный наглядный элемент, который страница ДОЛЖНА давать
сверх текста (минимум 1 «звёздный» виджет на §; полный набор виджетов — ниже в стандарте).

### ГЛАВА 1. Повторение курса 8 класса (§§1–3) — *amber*
| § | Тема | Ключ | Интерактив (звёздный виджет) |
|---|------|------|------------------------------|
| §1 | Основные классы неорганических веществ | оксиды/кислоты/основания/соли, генетическая связь | **Классификатор**: drag формулы → класс; граф генетических переходов |
| §2 | Строение атома и периодический закон | $Z$, $p/n/e$, $1s^22s^2…$, периодичность | **Интерактивная ПСХЭ** (`periodic`) + конструктор электронной конфигурации |
| §3 | Химическая связь | ионная / ковалентная (полярн./неполярн.) / металлическая, ЭО | **Визуализатор связи**: slider ЭО → тип связи; диполь, электронные пары |

### ГЛАВА 2. Растворы. Теория электролитической диссоциации (§§4–11) — *blue*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §4 | Растворы как смеси веществ | раствор = растворитель + растворённое в-во | Анимация растворения (частицы) |
| §5 | Качественные характеристики состава растворов | насыщ./ненасыщ./пересыщ., растворимость, кривые растворимости | **График растворимости** $s=f(t)$ с подвижной точкой |
| §6 | Количественные характеристики. Массовая доля | $w=\dfrac{m_{в-ва}}{m_{р-ра}}$, $c=\dfrac{n}{V}$ | **Калькулятор раствора** (w, c, разбавление, смешение) |
| §7 | Электролитическая диссоциация в растворах | электролиты/неэлектролиты, гидратация ионов | **Анимация диссоциации** NaCl/HCl в воде |
| §8 | Диссоциация кислот, оснований и солей | $HCl\to H^++Cl^-$, ступенчатая дисс. | Конструктор уравнений диссоциации |
| §9 | Реакции ионного обмена | условия необратимости: ↓ ↑ H₂O | **Предсказатель РИО** + конвертер молек.↔полн.ион.↔сокр.ион. |
| §10 | Свойства кислот/оснований/солей с точки зрения ТЭД | ионные сущности реакций | Матрица реакций «реагент × реагент» |
| §11 | Вода и растворы в жизни человека | значение воды, растворы в быту | Инфографика-исследование |

**Практическая работа 1** (после §6): приготовление раствора с заданной $w$.
**Практическая работа 2** (после §9): реакции ионного обмена.

### ГЛАВА 3. Неметаллы (§§12–39) — *cyan / teal*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §12 | Общая характеристика неметаллов | положение в ПСХЭ, ЭО, окислители | Подсветка неметаллов в ПСХЭ |
| §13 | Простые вещества неметаллы | аллотропия (O₂/O₃, алмаз/графит/фуллерен) | **3D-модели аллотропов** (biochem 3D) |
| §14 | Водород | получение, св-ва, $H_2+O_2$ | Сборка прибора получения H₂ |
| §15 | Галогены | $F,Cl,Br,I$, окислит. способность ↓ | **Ряд активности галогенов** + вытеснение |
| §16 | Хлороводород. Соляная кислота | $HCl$, свойства | Диссоциация + реакции HCl |
| §17 | Хлориды. Применение HCl и хлоридов | качеств. реакция на $Cl^-$ | **Качественная реакция** AgCl↓ (анимация осадка) |
| §18 | Кислород — элемент и простое вещество | $O_2$, окисление, горение | Симулятор горения |
| §19 | Кислород в природе. Получение и применение | круговорот, способы получения | Инфографика круговорота |
| §20 | Сера — элемент и простое вещество | аллотропия серы, $S+Me$ | 3D-модель S₈ |
| §21 | Сероводород | $H_2S$, св-ва, сульфиды | Реакции H₂S |
| §22 | Оксид серы(IV) и оксид серы(VI) | $SO_2, SO_3$, кислотные оксиды | Кислотные дожди (инфографика) |
| §23 | Серная кислота | $H_2SO_4$ конц./разб., безопасность | **Анимация разбавления** (кислоту в воду!) |
| §24 | Реакции получения серной кислоты. Практический выход | контактный способ, $\eta$ | Калькулятор практического выхода |
| §25 | Сульфаты. Применение | качеств. реакция на $SO_4^{2-}$ | **Качественная реакция** BaSO₄↓ |
| §26 | Азот — элемент и простое вещество | $N_2$, тройная связь | 3D-модель N₂ |
| §27 | Аммиак | $NH_3$, донорно-акц. связь | **Фонтан аммиака** (анимация) |
| §28 | Соли аммония | $NH_4^+$, разложение | Качеств. реакция на $NH_4^+$ |
| §29 | Азотная кислота | $HNO_3$, особые окислит. св-ва | Реакции с металлами (без H₂) |
| §30 | Нитраты. Применение HNO₃ и нитратов | разложение нитратов, селитры | Карта разложения нитратов |
| §31 | Фосфор — элемент и простое вещество | аллотропия (бел./красн.) | 3D-модель P₄ |
| §32 | Кислородсодержащие соединения фосфора | $P_2O_5, H_3PO_4$, фосфаты | Ступенчатая диссоциация H₃PO₄ |
| §33 | Минеральные удобрения | N/P/K, аммофос, суперфосфат | **NPK-калькулятор** удобрений |
| §34 | Углерод — элемент и простое вещество | аллотропия (алмаз/графит/фуллерен), адсорбция | **3D-модели** + адсорбция |
| §35 | Оксиды углерода | $CO$ (яд), $CO_2$ | Свойства CO/CO₂ |
| §36 | Угольная кислота и её соли | $H_2CO_3$, карбонаты/гидрокарбонаты, жёсткость | **Качеств. реакция** на $CO_3^{2-}$ (вскипание) + сталактиты |
| §37 | Кремний — элемент и простое вещество | $Si$, полупроводник | 3D-решётка (как алмаз) |
| §38 | Оксид кремния(IV). Кремниевая кислота | $SiO_2$, силикаты | Структура SiO₂ |
| §39 | Строительные материалы | стекло, керамика, цемент, бетон | Конструктор «варки стекла» |

**Лаб. опыты**: 1 — на $Cl^-$ (после §17), 2 — на $SO_4^{2-}$ (после §25), 3 — на $NH_4^+$ (после §28), 4 — на $CO_3^{2-}$ (после §36).
**Практическая работа 3** (после §39): решение экспериментальных задач «Неметаллы».

### ГЛАВА 4. Металлы (§§40–53) — *deep-orange / rose*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §40 | Металлы. Общая характеристика элементов | положение в ПСХЭ, $Me^0-ne^-\to Me^{n+}$ | Подсветка металлов в ПСХЭ |
| §41 | Простые вещества металлы. Физические свойства. Сплавы | металлич. связь, «электронный газ», сплавы | **Модель металлич. связи** + конструктор сплавов |
| §42 | Общие химические свойства металлов | ряд активности, $Me$+кислота/соль/вода | **Интерактивный ряд активности** (предсказание реакции) |
| §43 | Щелочные металлы | $Li,Na,K…$, реакция с водой | Анимация $Na+H_2O$ |
| §44 | Важнейшие соединения натрия и калия | $NaOH, Na_2CO_3$, применение | Применение (инфографика) |
| §45 | Электролиз расплавов солей | катод/анод, $2NaCl\to2Na+Cl_2$ | **Симулятор электролиза** (`electrolysis`) |
| §46 | Магний и щёлочноземельные металлы | $Mg,Ca,Sr,Ba$, цвета пламени | **Цвета пламени** (интерактив) |
| §47 | Важнейшие соединения магния и кальция | $CaO, Ca(OH)_2, CaCO_3$, гипс | Превращения Ca-соединений |
| §48 | Качественное обнаружение ионов Ca²⁺/Ba²⁺. Жёсткость воды | $Ba^{2+}+SO_4^{2-}$, жёсткость, умягчение | **Симулятор жёсткости воды** + устранение |
| §49 | Алюминий | $Al$, амфотерность, алюмотермия | Реакции Al (амфотерность) |
| §50 | Оксид и гидроксид алюминия. Соли алюминия | $Al_2O_3, Al(OH)_3$ амфотерны | **Амфотерность** (реакция и с кислотой, и со щёлочью) |
| §51 | Железо. Физические и химические свойства. Коррозия | $Fe$, $Fe^{2+}/Fe^{3+}$, ржавление | **Симулятор коррозии** |
| §52 | Важнейшие соединения железа. Качественные реакции на ионы железа | $FeO/Fe_2O_3$, $Fe^{2+}/Fe^{3+}$ обнаружение | **Качеств. реакции** на $Fe^{2+}, Fe^{3+}$ |
| §53 | Получение железа. Применение | доменная печь, чугун/сталь | **Анимация доменной печи** |

**Лаб. опыт 5** (после §48): качеств. реакции на $Ca^{2+}/Ba^{2+}$.
**Лаб. опыт 6** (после §52): получение и окисление $Fe(OH)_2$.
**Практическая работа 4** (после §52): решение экспериментальных задач «Металлы».

**Итого**: 53 §, 4 главы, 6 лаб. опытов, 4 практические работы.

---

## 🔍 ТЕКУЩЕЕ СОСТОЯНИЕ `chemistry_9.html` (gap-анализ)

Файл уже существует: `frontend/textbooks/chemistry_9.html` (~860 КБ, 10 659 строк).

**Что есть ✅**
- Скелет страницы по образцу физики: header, para-selector (карточки секций), табы, sidebar
- Все 53 § как `data-para="p1"..."p53"` (структура совпадает с реальной книгой)
- Amber-палитра + dark mode, адаптив
- ~58 маркеров `boss/quiz/тренаж` — есть зачатки тренажёров
- Автоначисление XP через `/js/textbook-xp-widget.js` (+5 XP за первый клик по §)
- Прогресс/закладки через `/js/textbook-tracker.js` + БД (`textbooks`, `textbook_progress`, `textbook_bookmarks`)

**Чего НЕТ ❌ (главный объём работы)**
- **Наглядность**: всего **12 `<svg>` на весь файл**, **0 `<canvas>`**, **0 симуляторов** (`openSim` не вызывается ни разу)
- **0 молекулярных моделей** (хотя `biochem-core.js` умеет 2D/3D шаростержневые)
- **0 рендера уравнений реакций** (нет стрелок реакций `→ ⇌ ↑ ↓ →[t]`, коэффициентов, состояний)
- **0 глоссария** (в других учебниках есть)
- Таблица растворимости и ряд активности — **только картинки на форзаце, не интерактивны**
- Заголовок/водяной знак содержат артефакты от копирования шаблона «МЕТАЛЛЫ»; title `«§1–60»` — **устарел** (реально 53 §)
- Секционная группировка карточек (`psel-c1..c6`) не выровнена на 4 главы книги

**Вывод**: каркас переиспользуем, но содержательно страница «текстовая». План = наполнить
её химическим интерактивом и наглядностью + исправить метаданные.

---

## ⚗️ ХИМИЧЕСКИЙ СТАНДАРТ КАЧЕСТВА

### A. Движки и переиспользуемые активы

| Что нужно | Берём из | Файл |
|-----------|----------|------|
| Парсинг формул, молярная масса, формула Хилла | biochem-core | `frontend/js/biochem-core.js` |
| 2D/3D шаростержневые модели, VSEPR-геометрия | biochem-core | `frontend/js/biochem-core.js` |
| Интерактивная ПСХЭ | sim `periodic` | реестр `frontend/js/labs/` |
| Электролиз | sim `electrolysis` | реестр |
| Титрование | sim `titration` | реестр |
| Качественный анализ | sim `qualanalysis` | реестр |
| Растворы/концентрации | sim `solutions` | реестр |
| Стехиометрия | sim `stoichiometry` | реестр |
| Песочница реакций | sim `chemsandbox` | реестр |

Симуляторы монтируются как в других страницах: контейнер `<div id="sim-<id>"></div>` +
вызов `openSim('<id>')` (или прямой mount через `window.LabRegistry`).

### B. Новый общий хелпер `/js/chem9_svg.js` (по образцу `geom7_svg.js`, `alg10_svg.js`)

Чисто химические примитивы, которых нет в biochem-core:

```js
// 1. Рендер уравнения реакции: коэффициенты, состояния, стрелки, условия над стрелкой
//    chemEq('2Na + 2H2O -> 2NaOH + H2^', {cond:'', arrow:'->'})  → HTML с верхн./нижн. индексами, ↑↓, ⇌, →[t°]
const chemEq = (src, opts={}) => { /* токенизация формул, KaTeX-подобный рендер */ };

// 2. Ион с зарядом:  ionLabel('SO4', -2) → 'SO₄²⁻'
const ionLabel = (formula, charge) => { /* нижние индексы + надстрочный заряд */ };

// 3. Пробирка с осадком / газом / окраской (SVG-анимация)
const testTube = ({fill, precipitate, gas, color, label}) => { /* svg */ };

// 4. Орбитальная диаграмма (стрелки в клетках):  orbitalDiagram('1s2 2s2 2p6 3s2 3p2')
const orbitalDiagram = (config) => { /* svg клетки + ↑↓ */ };

// 5. Интерактивная таблица растворимости (виджет с подсветкой пары катион×анион)
const solubilityTable = (mount, {highlight}) => { /* P/Н/М/— из форзаца */ };

// 6. Интерактивный ряд активности металлов (drag/клик → предсказание реакции)
const activitySeries = (mount, opts) => { /* K Ca Na Mg Al Zn Fe ... Au */ };

// 7. Мини-ПСХЭ с подсветкой (элемент/группа/период/семейство)
const miniPeriodic = (mount, {highlight, onClick}) => { /* 118 элементов */ };

// 8. Индикатор + шкала pH (лакмус/фенолфталеин/метилоранж)
const indicatorScale = (mount, {ph, indicator}) => { /* цвет полоски */ };

// 9. Анимация диссоциации/растворения (частицы ионов разлетаются)
const dissociationAnim = (mount, {salt}) => { /* canvas/SVG-частицы */ };
```

Молекулы (структурные/шаростержневые/3D) — **через `biochem-core.js`**, не дублировать.

### C. Правила рендера химии (обязательны с §1)

1. **Формулы веществ** — нижние индексы для атомов ($H_2O$, $CaCO_3$), верхние для зарядов ионов ($SO_4^{2-}$); единый рендер через `chemEq`/`ionLabel`, не «сырой» текст.
2. **Уравнения реакций** — всегда сбалансированы; стрелки: `=`/`→` (необратимая), `⇌` (обратимая), `↑` (газ), `↓` (осадок), условия над стрелкой ($t$, $\text{кат.}$, $\text{эл.ток}$).
3. **Состояние** — для качественных реакций обязательно показывать признак: цвет осадка, пузырьки газа, изменение окраски индикатора (через `testTube`/`indicatorScale`).
4. **Ионные уравнения** — для §9–10 и всех качественных реакций давать тройку: молекулярное → полное ионное → сокращённое ионное (виджет-конвертер).
5. **Молекулярные модели** — структурная формула + 3D (biochem-core); для каждого изучаемого простого вещества/важного соединения хотя бы 1 модель.
6. **Цвета — химически достоверные**: осадки ($AgCl$ белый, $Cu(OH)_2$ голубой, $Fe(OH)_3$ бурый, $Fe(OH)_2$ зеленоватый), пламя ($Ca$ кирпично-красный, $Sr$ карминовый, $Ba$ жёлто-зелёный, $Na$ жёлтый, $K$ фиолетовый).
7. **Безопасность** — где уместно (разбавление $H_2SO_4$, ядовитость $CO$, $H_2S$) — заметка-«скрепка» с предупреждением.
8. **KaTeX-эскейпы** — в JS-шаблонах двойной backslash (`\\to`, `\\downarrow`, `\\rightleftharpoons`).
9. **Drag/слайдеры** — `window`-listeners + `{passive:false}` + state ВЫШЕ `redraw()` (как в стандарте геометрии), `touch-action:none` на draggable SVG/canvas.
10. **Без эмоджи** — только inline SVG `.ic`/`.ico` (правило проекта).

### D. Типы интерактивов по химическим темам

| Тип темы | Интерактив |
|----------|------------|
| Строение атома / ПСХЭ (§2, 12, 40) | `miniPeriodic`, `orbitalDiagram`, sim `periodic` |
| Химическая связь (§3) | slider ЭО → тип связи, диполь, e-пары |
| Растворы (§4–6) | калькулятор $w$/$c$/разбавления, график растворимости, sim `solutions` |
| Диссоциация / РИО (§7–10) | `dissociationAnim`, конвертер ионных уравнений, `solubilityTable` |
| Аллотропия (§13, 20, 31, 34, 37) | 3D-модели biochem-core |
| Качественные реакции (§17, 25, 28, 36, 48, 52) | `testTube` + ионное уравнение + признак |
| Кислоты/основания (§16, 23, 29, 32) | `indicatorScale`, ступенчатая диссоциация |
| Ряд активности / свойства металлов (§42, 43, 49) | `activitySeries`, предсказатель реакции |
| Электролиз (§45) | sim `electrolysis` |
| Окисл.-восст. / горение (§14, 18) | анимация горения, баланс ОВР |
| Производство (§24, 39, 45, 53) | пошаговые схемы (контактный способ, варка стекла, доменная печь) |
| Удобрения / прикладное (§33, 44, 47, 11) | калькуляторы, инфографика |

---

## 📦 СТРУКТУРА КАЖДОГО § (стандарт наполнения)

Каждый § после доработки содержит:

**Теория (3–4 карточки):**
- `theory` — основное определение/понятие + наглядная SVG/модель
- `rule` — ключевая закономерность/формула (рамка)
- `example` — разобранный пример (реакция/расчёт) с пошаговым рендером
- (для прикладных §) `apply` — применение/значение (инфографика)

**Интерактивы (4–6 на §):**
1. **Звёздный виджет** темы (из карты содержания выше)
2. **Конструктор/симулятор** (slider / drag / sim из реестра)
3. **Калькулятор** (молярная масса, $w$, выход, по уравнению) — где применимо
4. **DnD-сортер / классификатор** (классы веществ, тип связи, признак реакции)
5. **Тренажёр** — 5 задач с inline-наглядностью (формула/уравнение/модель в условии)
6. **Босс §** — 4 интеграционные задачи (+5 XP каждая)

**Дополнительно:**
- Пополнение **глоссария** (термины §)
- **Вопросы и задания** из учебника (адаптированные, с проверкой)
- jsdom-тест страницы проходит

**Финал главы:**
- **Итоговая шпаргалка** — mini-cards (формула/реакция/иконка) по каждому §
- **Карта связей** — SVG-граф понятий главы (генетические связи веществ)
- **7 интегрированных боссов** (каждый ≥2 темы, +10 XP)
- **Achievement** «Мастер главы N» (+50 XP, confetti)
- Кнопка перехода к следующей главе

---

## 🚀 ПОРЯДОК РЕАЛИЗАЦИИ (по фазам)

### Phase 0 — Фундамент
- Исправить метаданные `chemistry_9.html`: `<title>Химия 9 — §1–53`, убрать артефакт «МЕТАЛЛЫ» в water-mark/CSS, починить кодировку заголовков (UTF-8).
- Перегруппировать карточки para-selector на **4 главы** книги (цвета: I amber, II blue, III teal/cyan, IV deep-orange).
- Создать `/js/chem9_svg.js` с хелперами A–B (заглушки → реализация по мере фаз).
- Подключить `biochem-core.js` и нужные симуляторы на страницу.
- **Миграция БД** (следующий номер после `040_content_access.sql` → `041_chemistry9_fix.sql`): обновить запись `chemistry-9` — `para_count = 53`, корректные `title`/`author`/`description`, `color='amber'`. (Слаг и html_path уже есть из migration 004.)
- jsdom-тест-каркас для страницы.

### Phase 1 — Глава 1 «Повторение» (§§1–3) — разогрев
Простые темы, но закладываем 3 базовых движка: `miniPeriodic`, `orbitalDiagram`, визуализатор связи. Эти виджеты переиспользуются во всех 4 главах.

### Phase 2 — Глава 2 «Растворы. ТЭД» (§§4–11) + ПР1, ПР2
Самая «расчётно-логическая». Закладываем `solubilityTable`, конвертер ионных уравнений, `dissociationAnim`, калькулятор раствора, sim `solutions`. Эти движки критичны для всей химии 9.

### Phase 3 — Глава 3 «Неметаллы» (§§12–25): галогены, кислород, сера + лаб.1, лаб.2
SVG/модели-тяжёлая. 3D-аллотропы (biochem-core), первые качественные реакции (`testTube`: $AgCl↓$, $BaSO_4↓$), горение, безопасность $H_2SO_4$.

### Phase 4 — Глава 3 «Неметаллы» (§§26–39): азот, фосфор, углерод, кремний + лаб.3, лаб.4, ПР3
Фонтан аммиака, NPK-калькулятор, качеств. реакция на $CO_3^{2-}$, сталактиты, варка стекла/цемент.

### Phase 5 — Глава 4 «Металлы» (§§40–48): общие свойства, щелочные, ЩЗМ + лаб.5
`activitySeries`, sim `electrolysis`, цвета пламени, симулятор жёсткости воды, качеств. на $Ca^{2+}/Ba^{2+}$.

### Phase 6 — Глава 4 «Металлы» (§§49–53): алюминий, железо + лаб.6, ПР4
Амфотерность $Al(OH)_3$, качеств. на $Fe^{2+}/Fe^{3+}$, симулятор коррозии, анимация доменной печи.

### Phase 7 — Финалы глав + общий финал учебника
- Шпаргалки и карты связей по каждой главе
- Интегрированные боссы + achievements
- **Большой финал**: генетическая карта «неметаллы ↔ металлы ↔ соли», итоговый босс-квест, ачивка «Химик 9 класса»
- Глоссарий собран целиком, связан `[[ссылками]]`

### Phase 8 — Качество и админка
- Полный прогон jsdom-тестов (каждый § — builder не stub)
- Аудит KaTeX/`chemEq`-эскейпов, баланса всех уравнений
- Синхронизация с админкой (если симуляторы добавлялись в `lab.html` → обновить `ADMIN_SIMS` в `admin.html` — правило проекта)
- Проверка доступа по классам/ученикам (`contentAccess`, `/api/access`)

> Рекомендуемый темп: внутри фазы — по 2–3 § за «волну», каждая волна = commit + проходящий jsdom-тест.

---

## 🗄️ ИНТЕГРАЦИЯ С ПРОЕКТОМ

| Точка | Действие |
|-------|----------|
| **БД каталог** | `textbooks` уже содержит `chemistry-9` (migration 004). Миграция `041` — поправить `para_count=53`, title/description. |
| **Прогресс/XP** | Автоматически: `textbook-xp-widget.js` (+5 XP/§), `textbook-tracker.js`, `LS.xp`. Доп. XP за боссов — по образцу `phys7_ch1_widgets.js`. |
| **Симуляторы** | Реестр `frontend/js/labs/_register-all.js` + `lab-glue.js`. Химические sim уже зарегистрированы (`periodic`, `electrolysis`, `titration`, `qualanalysis`, `solutions`, `stoichiometry`, `chemsandbox`). |
| **Молекулы** | `biochem-core.js` (парсинг, молярная масса, 2D/3D, VSEPR). |
| **Бэкенд** | Роуты готовы: `backend/src/routes/textbooks.js` (catalog/progress/bookmarks). Доступ: `backend/src/services/contentAccess.js`. |
| **Глоссарий** | Реализовать виджет на странице (общего нет) — всплывающие определения по терминам. |
| **Тесты** | `cd backend && npm test` (jsdom). На каждый § — тест: страница строится, builder не stub, уравнения сбалансированы. |
| **Админка** | Если добавляются новые sim в `lab.html` → синхронно обновить `ADMIN_SIMS` в `admin.html`. |

---

## ⚠️ КРИТИЧЕСКИЕ ПРАВИЛА

### ❌ НЕ делать
- Не оставлять «сырые» формулы текстом — только через `chemEq`/`ionLabel`/KaTeX.
- Не публиковать несбалансированные уравнения (аудит баланса перед commit).
- Не дублировать молекулярный движок — использовать `biochem-core.js`.
- Не использовать `setPointerCapture` (теряется после `innerHTML`-replace) → `window`-listeners + state-flag.
- `\to`, `\downarrow`, `\rightleftharpoons` без удвоения backslash в JS-шаблонах.
- Slider-диапазоны за пределы химически возможного (концентрации, температуры).
- Эмоджи — запрещены; только inline SVG `.ic`.
- Grep tool — запрещён; поиск только `ast-index`.

### ✅ Обязательно
- Каждый commit → jsdom-тест 100% pass.
- Аудит баланса уравнений + KaTeX-эскейпов после каждой волны.
- Качественная реакция = уравнение (молек.+ионное) **+ видимый признак** (`testTube`/индикатор).
- Цвета осадков/пламени — химически достоверные.
- Все builder-функции в конце финальной волны главы — НЕ stub'ы.
- Коммитить только изменённые файлы (не `git add -A`), сразу push (правило CLAUDE.md).

---

## 📊 Оценка объёма

| Глава | § | Лаб/ПР | Ожидаемый LOC |
|-------|---|--------|---------------|
| Гл.1 Повторение | 3 | — | ~3 500 (+движки ПСХЭ/орбитали/связь) |
| Гл.2 Растворы. ТЭД | 8 | ПР1, ПР2 | ~9 000 (+`solubilityTable`, ионные ур-я, `solutions`) |
| Гл.3 Неметаллы | 28 | 4 лаб, ПР3 | ~28 000 (модели, качеств. реакции, безопасность) |
| Гл.4 Металлы | 14 | 2 лаб, ПР4 | ~16 000 (ряд активности, электролиз, коррозия, доменная печь) |
| Финалы глав + общий | — | — | ~5 000 |
| `/js/chem9_svg.js` хелперы | — | — | ~2 500 |
| **Итого** | **53** | **6 лаб + 4 ПР** | **~64 000 LOC** |

Существующий каркас (~10 700 строк) переиспользуется; основной прирост — интерактив,
наглядность и движки.

---

## 🎬 Запуск

**Phase 0**: чистка метаданных `chemistry_9.html` + перегруппировка на 4 главы +
`/js/chem9_svg.js` (скелет) + подключение `biochem-core.js`/симуляторов + миграция `041`.
**Phase 1**: Глава 1 (§§1–3) — закладываем `miniPeriodic`, `orbitalDiagram`, визуализатор связи.

Дальше — последовательно по главам (Phase 2 → 6), затем финалы (Phase 7) и качество (Phase 8).
