diff --git a/src/exam-page.ts b/src/exam-page.ts
index 1bc4dd3..ab62a9c 100644
--- a/src/exam-page.ts
+++ b/src/exam-page.ts
@@ -193,8 +193,10 @@ export function renderExamPage(root: HTMLElement, examId: number, nav: ExamNav):
+ (w.value ? ` — ${escapeHtml(w.value)}` : '')
+ ``;
}).join('');
- return `
${title} (${list.length})
`
- + `${rows}
`;
+ return ``
+ + `${title} (${list.length})
`
+ + `${rows}
`
+ + ` `;
};
bodyEl.innerHTML = `
diff --git a/src/style.css b/src/style.css
index 946fec4..7f7f275 100644
--- a/src/style.css
+++ b/src/style.css
@@ -374,6 +374,12 @@ body.drawer-open {
gap: 12px;
}
+/* Вертикальная стопка кнопок (страница колоды: Повторять / История / Экзамены):
+ внутренний gap не действует между соседними строками, поэтому отступ свой. */
+.btn-row + .btn-row {
+ margin-top: 12px;
+}
+
/* cta_button: secondary.base с рамкой 1px (рамка в iced прозрачная) + BUTTON_RADIUS */
.btn {
flex: 1;
@@ -886,6 +892,38 @@ button.word-row-wrap:not(:disabled):hover {
background: var(--danger);
}
+/* Сворачиваемые списки результата: / — без JS, с клавиатурой.
+ Заголовок переиспользует deck-sub (разделитель снизу), маркер summary заменён
+ на шеврон справа, поворачивающийся при раскрытии. По умолчанию открыты. */
+.exam-group > summary {
+ display: flex;
+ align-items: baseline;
+ justify-content: space-between;
+ gap: var(--space-half);
+ cursor: pointer;
+ font-weight: 700;
+ list-style: none;
+}
+
+.exam-group > summary::-webkit-details-marker {
+ display: none;
+}
+
+.exam-group > summary::marker {
+ content: '';
+}
+
+.exam-group > summary::after {
+ content: '▸';
+ color: var(--muted);
+ font-weight: 400;
+ transition: transform 0.15s ease;
+}
+
+.exam-group[open] > summary::after {
+ transform: rotate(90deg);
+}
+
/* --- Повторение: карточка + 4 кнопки оценок ---
Десктоп: forward и backward на всю ширину, между ними rule::horizontal(2),
размеры текста draw_key = 36, draw_value/reading/context = 24,