diff --git a/backend/scripts/seed_ctmath_ct2019_v1.js b/backend/scripts/seed_ctmath_ct2019_v1.js
new file mode 100644
index 0000000..8f6b1a0
--- /dev/null
+++ b/backend/scripts/seed_ctmath_ct2019_v1.js
@@ -0,0 +1,380 @@
+'use strict';
+/* ───────────────────────────────────────────────────────────────────────────
+ seed_ctmath_ct2019_v1.js
+ Чистый вариант-пробник для трека exam-prep `ctmath`.
+
+ Источник: Централизованное тестирование (ЦТ) по математике, 2019, Вариант 1.
+ Формат: Часть А = А1–А18 (закрытые), Часть В = В1–В12 (открытые; В1 — на соответствие,
+ В2 — множественный выбор). Всего 30 заданий. Перенабрано вручную в KaTeX по PDF:
+ F:\!Рабочие\ЦТ\Математика\Математика\ЦТ-ЦЭ\ЦТ 2019.pdf (10 вариантов, табл. ответов стр.45).
+
+ ⚠️ Ответы решены самостоятельно и СВЕРЕНЫ: (1) с (затемнённым) столбцом «Вариант 1»
+ таблицы — читаемые ячейки совпали; (2) методы B5/B6/B7/B11/B12 перекрёстно проверены на
+ Варианте 10 (его задания напечатаны на стр.43–44, ответы читаемы): дали ровно табличные
+ 81/56/-1071/624/540 → метод верен. variant=115 (после ЦТ-2018 = 114).
+
+ Реконструкции/адаптации заданий-«с-картинкой» (смысл/ответ сохранены, авто-проверка):
+ • А1 (число $\tfrac{7\pi}{6}$ на прямой) → промежутки точек заданы явно (ответ $D$);
+ • А7 (узел сетки) → координаты точки $A(5;-3)$ заданы ($AB=2\sqrt{34}$);
+ • А9 (графики движения) → скорости катера/лодки относительно берега даны числами
+ ($12$ и $7{,}2$ км/ч → течение $2{,}4$);
+ • В1/В2 — данные предложений/утверждений приведены текстом (как в оригинале).
+
+ Идемпотентность: upsert по UNIQUE(exam_key, variant, task_idx).
+ Запуск:
+ node backend/scripts/seed_ctmath_ct2019_v1.js # DRY-RUN (по умолчанию)
+ node backend/scripts/seed_ctmath_ct2019_v1.js --apply # запись в БД
+
+ ⚠️ Массовую запись в БД запускает ПОЛЬЗОВАТЕЛЬ вручную. Без --apply ничего не пишется.
+ ─────────────────────────────────────────────────────────────────────────── */
+
+const { DatabaseSync } = require('node:sqlite');
+const path = require('path');
+
+const APPLY = process.argv.includes('--apply');
+const EXAM = 'ctmath';
+const VARIANT = 115;
+const PROV = 'ЦТ–2019, Вариант 1';
+const R = String.raw;
+
+const L = ['а', 'б', 'в', 'г', 'д'];
+const mc = (...html) => html.map((h, i) => [L[i], h]);
+
+/* ── 30 заданий ─────────────────────────────────────────────────────────── */
+const TASKS = [
+ // ── Часть A: А1–А18 ──────────────────────────────────────────────────────
+ { idx: 1, type: 'mc', topic: 'numbers', subtopic: 'num-real', diff: 1,
+ text: R`На координатной прямой отмечены точки (слева направо) $F,A,B,D,C$, лежащие в единичных промежутках: $F\in(0;1)$, $A\in(1;2)$, $B\in(2;3)$, $D\in(3;4)$, $C\in(4;5)$. Числу $\dfrac{7\pi}{6}$ на координатной прямой может соответствовать точка:`,
+ opts: mc('$F$', '$A$', '$B$', '$C$', '$D$'),
+ answer: 'д',
+ sol: R`$\dfrac{7\pi}{6}\approx3{,}67$ лежит в промежутке $(3;4)$, которому соответствует точка $D$.`,
+ ref: 'Арефьева «Алгебра, 10 кл.», гл. 1' },
+
+ { idx: 2, type: 'mc', topic: 'equations', subtopic: 'eq-rational', diff: 2,
+ text: R`Укажите номер системы неравенств, равносильной системе $\begin{cases}x>3,\\ x\le5.\end{cases}$
$1)\ \begin{cases}x-2>1,\\ x+1\le6;\end{cases}$ $\ 2)\ \begin{cases}2x>3,\\ x\le5;\end{cases}$ $\ 3)\ \begin{cases}x>3,\\ x+2\le3;\end{cases}$ $\ 4)\ \begin{cases}x+1>2,\\ x\le5;\end{cases}$ $\ 5)\ \begin{cases}x>3,\\ -x\le5.\end{cases}$`,
+ opts: mc('$1$', '$2$', '$3$', '$4$', '$5$'),
+ answer: 'а',
+ sol: R`В системе 1: $x-2>1\Rightarrow x>3$ и $x+1\le6\Rightarrow x\le5$ — это и есть данная система.`,
+ ref: 'Арефьева «Алгебра, 8 кл.», гл. 3' },
+
+ { idx: 3, type: 'mc', topic: 'numbers', subtopic: 'num-real', diff: 2,
+ text: R`Укажите номер верного утверждения.
$1)\ 11^{16}=121^{4}$; $\ 2)\ -\dfrac37>-\dfrac47$; $\ 3)\ \sqrt{79}>9$; $\ 4)\ 0{,}72<0{,}702$; $\ 5)\ 6^{1/5}=6^{-5}$.`,
+ opts: mc('$1$', '$2$', '$3$', '$4$', '$5$'),
+ answer: 'б',
+ sol: R`$-\dfrac37>-\dfrac47$ — верно (утверждение 2). Остальные неверны: $121^{4}=11^{8}\ne11^{16}$; $\sqrt{79}<9$; $0{,}72>0{,}702$; $6^{1/5}\ne6^{-5}$.`,
+ ref: 'Арефьева «Алгебра, 8 кл.», гл. 1' },
+
+ { idx: 4, type: 'mc', topic: 'trigonometry', subtopic: 'trig-circle', diff: 1,
+ text: R`Найдите градусную меру угла, смежного с углом, радианная мера которого равна $\dfrac{11\pi}{15}$.`,
+ opts: mc('$46^\circ$', '$42^\circ$', '$50^\circ$', '$45^\circ$', '$48^\circ$'),
+ answer: 'д',
+ sol: R`$\dfrac{11\pi}{15}=\dfrac{11\cdot180^\circ}{15}=132^\circ$. Смежный угол равен $180^\circ-132^\circ=48^\circ$.`,
+ ref: 'Арефьева «Алгебра, 10 кл.», гл. 1' },
+
+ { idx: 5, type: 'mc', topic: 'expressions', subtopic: 'expr-polynomials', diff: 2,
+ text: R`Результат разложения многочлена $cx+cy-(x+y)^{2}$ на множители имеет вид:`,
+ opts: mc('$(x+y)(2c-x+y)$', '$(x+y)(c-x+y)$', '$(x+y)(c-x-y)$', '$(x+y)(c-2)$', '$(x+y)(c-1)$'),
+ answer: 'в',
+ sol: R`$cx+cy-(x+y)^{2}=c(x+y)-(x+y)^{2}=(x+y)\bigl(c-(x+y)\bigr)=(x+y)(c-x-y)$.`,
+ ref: 'Арефьева «Алгебра, 7 кл.», гл. 2' },
+
+ { idx: 6, type: 'mc', topic: 'functions', subtopic: 'fn-graphs', diff: 2,
+ text: R`Окружность задана уравнением $(x-3)^{2}+(y+4)^{2}=14$. Укажите номер верного утверждения.
$1)$ точка $A(-4;3)$ лежит на окружности;
$2)$ центром окружности является точка $O(-3;4)$;
$3)$ диаметр окружности равен $14$;
$4)$ прямая $y=2x-10$ проходит через центр окружности;
$5)$ радиус окружности равен $7$.`,
+ opts: mc('$1$', '$2$', '$3$', '$4$', '$5$'),
+ answer: 'г',
+ sol: R`Центр окружности $(3;-4)$. Подстановка в $y=2x-10$: $2\cdot3-10=-4$ — прямая проходит через центр (утверждение 4). Остальные неверны: $A$ не на окружности; центр $(3;-4)$; диаметр $2\sqrt{14}$; радиус $\sqrt{14}$.`,
+ ref: 'Латотин «Геометрия, 8 кл.», разд. 5' },
+
+ { idx: 7, type: 'mc', topic: 'planimetry', subtopic: 'plan-triangles', diff: 2,
+ text: R`Точка $A(5;-3)$ — узел координатной сетки. Точка $B$ симметрична точке $A$ относительно начала координат. Найдите длину отрезка $AB$.`,
+ opts: mc('$2\sqrt{34}$', '$10$', '$2\sqrt{14}$', '$4\sqrt7$', '$6$'),
+ answer: 'а',
+ sol: R`$B(-5;3)$, поэтому $AB=\sqrt{(5+5)^{2}+(-3-3)^{2}}=\sqrt{100+36}=\sqrt{136}=2\sqrt{34}$.`,
+ ref: 'Латотин «Математика, 6 кл.», гл. 7' },
+
+ { idx: 8, type: 'mc', topic: 'planimetry', subtopic: 'plan-circle', diff: 2,
+ text: R`Через точку $A$ к окружности с центром $O$ проведены две касательные $AB$ и $AC$ ($B,C$ — точки касания). Найдите градусную меру угла $BAC$, если $\angle OBC=33^\circ$.`,
+ opts: mc('$24^\circ$', '$66^\circ$', '$60^\circ$', '$57^\circ$', '$73^\circ$'),
+ answer: 'б',
+ sol: R`Радиус $OB\perp AB$, поэтому $\angle ABC=90^\circ-\angle OBC=57^\circ$. Так как $AB=AC$ (касательные из одной точки), то $\angle ACB=57^\circ$ и $\angle BAC=180^\circ-2\cdot57^\circ=66^\circ$.`,
+ ref: 'Казаков «Геометрия, 9 кл.», гл. 1' },
+
+ { idx: 9, type: 'mc', topic: 'word-sequences', subtopic: 'word-problems', diff: 2,
+ text: R`Катер плывёт по течению реки, а моторная лодка — против течения; их собственные скорости равны. По графикам движения скорость катера относительно берега равна $12$ км/ч, а лодки — $7{,}2$ км/ч. Найдите скорость течения реки.`,
+ opts: mc('$2{,}6$ км/ч', '$5{,}2$ км/ч', '$2{,}4$ км/ч', '$4{,}6$ км/ч', '$4{,}8$ км/ч'),
+ answer: 'в',
+ sol: R`Скорость катера $u+v=12$, лодки $u-v=7{,}2$. Вычитая, $2v=4{,}8$, $v=2{,}4$ км/ч.`,
+ ref: 'Арефьева «Алгебра, 7 кл.», гл. 3' },
+
+ { idx: 10, type: 'mc', topic: 'equations', subtopic: 'eq-quadratic', diff: 2,
+ text: R`Пусть $x_1$ и $x_2$ — корни уравнения $x^{2}-3x+q=0$. Найдите число $q$, при котором выполняется равенство $x_1^{2}+x_2^{2}=25$.`,
+ opts: mc('$-8$', '$-3$', '$8$', '$3$', '$-5$'),
+ answer: 'а',
+ sol: R`По теореме Виета $x_1+x_2=3$, $x_1x_2=q$. Тогда $x_1^{2}+x_2^{2}=(x_1+x_2)^{2}-2x_1x_2=9-2q=25$, откуда $q=-8$.`,
+ ref: 'Арефьева «Алгебра, 8 кл.», гл. 2' },
+
+ { idx: 11, type: 'mc', topic: 'word-sequences', subtopic: 'seq-progressions', diff: 2,
+ text: R`Сумма первых четырёх членов геометрической прогрессии равна $60$, знаменатель прогрессии равен $2$. Найдите второй член прогрессии.`,
+ opts: mc('$5$', '$16$', '$6$', '$4$', '$8$'),
+ answer: 'д',
+ sol: R`$S_4=b_1\cdot\dfrac{2^{4}-1}{2-1}=15b_1=60$, откуда $b_1=4$. Второй член $b_2=b_1\cdot2=8$.`,
+ ref: 'Арефьева «Алгебра, 9 кл.», гл. 4' },
+
+ { idx: 12, type: 'mc', topic: 'planimetry', subtopic: 'plan-triangles', diff: 2,
+ text: R`В треугольнике $ABC$ $\angle ACB=90^\circ$, $AB=8$, $\operatorname{ctg}\angle BAC=\sqrt{15}$. Найдите длину стороны $CB$.`,
+ opts: mc('$2$', '$3$', '$2\sqrt{15}$', '$8\sqrt{15}$', '$\dfrac{8\sqrt{15}}{15}$'),
+ answer: 'а',
+ sol: R`$\operatorname{ctg}\angle BAC=\dfrac{AC}{CB}=\sqrt{15}$, поэтому $AC=\sqrt{15}\,CB$. Из $AC^{2}+CB^{2}=AB^{2}$: $15CB^{2}+CB^{2}=64$, $CB^{2}=4$, $CB=2$.`,
+ ref: 'Казаков «Геометрия, 8 кл.», гл. 2' },
+
+ { idx: 13, type: 'mc', topic: 'equations', subtopic: 'eq-quadratic', diff: 2,
+ text: R`Укажите номера уравнений, которые не имеют действительных корней.
$1)\ x^{2}=49$; $\ 2)\ \dfrac{1}{x^{2}-49}=0$; $\ 3)\ x^{2}+49=0$; $\ 4)\ x^{2}+49x=0$; $\ 5)\ x^{2}+x-49=0$.`,
+ opts: mc('$1$ и $2$', '$2$ и $3$', '$1$ и $5$', '$3$ и $4$', '$4$ и $5$'),
+ answer: 'б',
+ sol: R`Уравнение $\dfrac{1}{x^{2}-49}=0$ не имеет решений, а $x^{2}+49=0$ не имеет действительных корней. Остальные корни имеют. Значит уравнения $2$ и $3$.`,
+ ref: 'Арефьева «Алгебра, 8 кл.», гл. 2' },
+
+ { idx: 14, type: 'mc', topic: 'planimetry', subtopic: 'plan-triangles', diff: 3,
+ text: R`В ботаническом саду разбили клумбу треугольной формы. Длина первой стороны равна $4$ м, длина второй в $2{,}5$ раза больше длины первой, а длина третьей составляет не менее 120 % длины второй. Какому условию должен удовлетворять периметр $P$ (в метрах) этой клумбы?`,
+ opts: mc('$26
26$', '$26\le P\le28$'),
+ answer: 'в',
+ sol: R`Первая сторона $4$ м, вторая $10$ м, третья $c\ge12$ м. По неравенству треугольника $c<4+10=14$. Значит $12\le c<14$, и $P=14+c$, то есть $26\le P<28$.`,
+ ref: 'Казаков «Геометрия, 7 кл.», гл. 3' },
+
+ { idx: 15, type: 'mc', topic: 'numbers', subtopic: 'num-divisibility', diff: 2,
+ text: R`Найдите сумму всех натуральных чисел $n$, для которых выполняется равенство НОК$(n;63)=63$.`,
+ opts: mc('$103$', '$105$', '$64$', '$104$', '$126$'),
+ answer: 'г',
+ sol: R`НОК$(n;63)=63$ означает, что $n$ — делитель числа $63$. Делители: $1,3,7,9,21,63$; их сумма $104$.`,
+ ref: 'Герасимов «Математика, 6 кл.», гл. 1' },
+
+ { idx: 16, type: 'mc', topic: 'stereometry', subtopic: 'ster-rotation', diff: 2,
+ text: R`Секущая плоскость пересекает сферу по окружности, радиус которой равен $2$. Если расстояние от центра сферы до секущей плоскости равно $4$, то площадь сферы равна:`,
+ opts: mc('$40\pi$', '$20\pi$', '$160\pi$', '$85\pi$', '$80\pi$'),
+ answer: 'д',
+ sol: R`$R^{2}=r^{2}+d^{2}=2^{2}+4^{2}=20$. Площадь сферы $4\pi R^{2}=80\pi$.`,
+ ref: 'Латотин «Геометрия, 11 кл.», разд. 3' },
+
+ { idx: 17, type: 'mc', topic: 'trigonometry', subtopic: 'trig-equations', diff: 3,
+ text: R`Сумма наибольшего отрицательного и наименьшего положительного корней уравнения $\cos(3\pi x)\cdot\cos\left(3\pi x+\dfrac{\pi}{2}\right)=\dfrac12$ равна:`,
+ opts: mc('$\dfrac{1}{2}$', '$\dfrac{7}{12}$', '$\dfrac{1}{6}$', '$-\dfrac{1}{12}$', '$\dfrac14$'),
+ answer: 'в',
+ sol: R`$\cos\left(3\pi x+\dfrac{\pi}{2}\right)=-\sin(3\pi x)$, поэтому $-\sin(3\pi x)\cos(3\pi x)=\dfrac12$, то есть $\sin(6\pi x)=-1$, $x=-\dfrac{1}{12}+\dfrac{k}{3}$. Наибольший отрицательный корень $-\dfrac{1}{12}$, наименьший положительный $\dfrac14$; их сумма $\dfrac14-\dfrac{1}{12}=\dfrac16$.`,
+ ref: 'Арефьева «Алгебра, 10 кл.», гл. 1, § 8' },
+
+ { idx: 18, type: 'mc', topic: 'stereometry', subtopic: 'ster-polyhedra', diff: 4,
+ text: R`$ABCA_1B_1C_1$ — правильная треугольная призма, все рёбра которой равны $24\sqrt3$. Точки $P$ и $K$ — середины рёбер $A_1B_1$ и $AA_1$, точка $M$ на ребре $B_1C_1$ такова, что $C_1M:C_1B_1=1:3$. Найдите длину отрезка, по которому плоскость, проходящая через $M,P,K$, пересекает грань $BB_1C_1C$.`,
+ opts: mc('$8\sqrt3$', '$20\sqrt3$', '$18\sqrt3$', '$10\sqrt3$', '$12\sqrt3$'),
+ answer: 'г',
+ sol: R`Введём координаты с основанием — равносторонним треугольником со стороной $24\sqrt3$ и высотой призмы $24\sqrt3$. Секущая плоскость через $M,P,K$ пересекает грань $BB_1C_1C$ по отрезку от $M$ до точки на ребре $CC_1$; его длина $\sqrt{(4\sqrt3)^{2}+12^{2}+(6\sqrt3)^{2}}=\sqrt{48+144+108}=\sqrt{300}=10\sqrt3$.`,
+ ref: 'Латотин «Геометрия, 10 кл.», разд. 4' },
+
+ // ── Часть B: В1–В12 ──────────────────────────────────────────────────────
+ { idx: 19, type: 'long', topic: 'expressions', subtopic: 'expr-powers-roots', diff: 3,
+ text: R`Для начала каждого из предложений А–В подберите его окончание $1$–$5$ так, чтобы получилось верное утверждение.
А) Значение выражения $2^{-8}:2^{0}$ равно …
Б) Значение выражения $(-2)^{-11}\cdot8$ равно …
В) Значение выражения $20^{4}:(-5)^{4}$ равно …
Окончания: $1)\;256$; $\ 2)\;-256$; $\ 3)\;-\dfrac{1}{256}$; $\ 4)\;\dfrac{1}{256}$; $\ 5)\;32$.`,
+ answer: 'А4Б3В1',
+ ansShow: 'А4Б3В1',
+ sol: R`А) $2^{-8}:2^{0}=2^{-8}=\dfrac{1}{256}$ (окончание 4). Б) $(-2)^{-11}\cdot8=-\dfrac{1}{2048}\cdot8=-\dfrac{1}{256}$ (окончание 3). В) $20^{4}:(-5)^{4}=\left(\dfrac{20}{5}\right)^{4}=4^{4}=256$ (окончание 1). Ответ: А4Б3В1.`,
+ ref: 'Арефьева «Алгебра, 7 кл.», гл. 1' },
+
+ { idx: 20, type: 'open', topic: 'stereometry', subtopic: 'ster-basics', diff: 3,
+ text: R`Прямая $a$ перпендикулярна плоскости $\alpha$ и пересекает её в точке $O$. Выберите номера трёх верных утверждений (запишите цифрами в порядке возрастания).
$1)$ любая прямая, перпендикулярная плоскости $\alpha$, параллельна прямой $a$;
$2)$ любая прямая, перпендикулярная прямой $a$, лежит в плоскости $\alpha$;
$3)$ прямая $a$ перпендикулярна любой прямой плоскости $\alpha$;
$4)$ через прямую $a$ проходит единственная плоскость, перпендикулярная плоскости $\alpha$;
$5)$ существует множество плоскостей, перпендикулярных прямой $a$;
$6)$ существует единственная прямая, параллельная прямой $a$ и перпендикулярная плоскости $\alpha$.`,
+ answer: '135',
+ sol: R`Верны утверждения $1$ (все прямые, перпендикулярные $\alpha$, параллельны между собой), $3$ ($a\perp\alpha$ означает перпендикулярность любой прямой плоскости) и $5$ (плоскостей, перпендикулярных $a$, бесконечно много). Утверждения $2,4,6$ неверны.`,
+ ref: 'Латотин «Геометрия, 10 кл.», разд. 2' },
+
+ { idx: 21, type: 'open', topic: 'word-sequences', subtopic: 'word-problems', diff: 3,
+ text: R`В двух сосудах содержится $57$ л жидкости. Если 5 % жидкости из первого сосуда перелить во второй, то в обоих сосудах окажется одинаковое количество жидкости. Сколько литров жидкости было во втором сосуде первоначально?`,
+ answer: '27',
+ sol: R`Пусть в первом сосуде $a$ л, во втором $b$ л, $a+b=57$. После переливания: $0{,}95a=b+0{,}05a$, то есть $0{,}9a=b$. Тогда $a+0{,}9a=57$, $a=30$, $b=27$.`,
+ ref: 'Арефьева «Алгебра, 7 кл.», гл. 3' },
+
+ { idx: 22, type: 'open', topic: 'equations', subtopic: 'eq-irrational', diff: 3,
+ text: R`Найдите сумму корней (корень, если он единственный) уравнения $\sqrt{x^{2}-9x+8}-\sqrt{23-11x}=0$.`,
+ answer: '-5',
+ sol: R`$\sqrt{x^{2}-9x+8}=\sqrt{23-11x}$, поэтому $x^{2}-9x+8=23-11x$, $x^{2}+2x-15=0$, $x=3$ или $x=-5$. ОДЗ ($x\le\dfrac{23}{11}$ и $x^{2}-9x+8\ge0$) удовлетворяет лишь $x=-5$.`,
+ ref: 'Арефьева «Алгебра, 10 кл.», гл. 2, § 17' },
+
+ { idx: 23, type: 'open', topic: 'planimetry', subtopic: 'plan-quadrilaterals', diff: 4,
+ text: R`В трапеции $ABCD$ с основаниями $AD>BC$ точка пересечения её диагоналей делит диагональ $AC$ на отрезки длиной $6$ и $4$. Найдите площадь трапеции $ABCD$, если площадь треугольника $ABC$ равна $20$.`,
+ answer: '50',
+ sol: R`Из подобия $\dfrac{AD}{BC}=\dfrac{AO}{OC}=\dfrac64=\dfrac32$. Площадь $ABC=\dfrac12\,BC\cdot h=20$ ($h$ — высота трапеции), значит $BC\cdot h=40$. Площадь трапеции $\dfrac12(AD+BC)h=\dfrac12\left(\dfrac32 BC+BC\right)h=\dfrac54\,BC\cdot h=\dfrac54\cdot40=50$.`,
+ ref: 'Казаков «Геометрия, 8 кл.», гл. 4' },
+
+ { idx: 24, type: 'open', topic: 'equations', subtopic: 'eq-rational', diff: 4,
+ text: R`Найдите произведение наибольшего целого решения на количество всех целых решений неравенства $\dfrac{x^{2}-x-20}{(x^{2}+4x)^{2}}\le0$.`,
+ answer: '40',
+ sol: R`После сокращения $\dfrac{(x-5)(x+4)}{x^{2}(x+4)^{2}}=\dfrac{x-5}{x^{2}(x+4)}\le0$. Так как $x^{2}>0$, знак определяет $\dfrac{x-5}{x+4}\le0$, то есть $-4