diff --git a/docs/architecture-audit-2026-10.md b/docs/architecture-audit-2026-10.md
index f33fec4..77a2752 100644
--- a/docs/architecture-audit-2026-10.md
+++ b/docs/architecture-audit-2026-10.md
@@ -159,11 +159,12 @@ round-семантика `clampByte` и trunc-семантика `clampInt` со
`ToolPickerButton.svelte` переведены на него — по ~15 одинаковых строк удалено
из каждого.
-### L3. Несогласованный API `Toggle`
+### L3. Несогласованный API `Toggle` — СДЕЛАНО (2026-10)
-`SchemaToolView.svelte:811` — `bind:checked={aligned}`;
-`SchemaPreview.svelte:114-118` тот же компонент — `checked` + `onchange`.
-Компонент (`ui/Toggle.svelte:7`) поддерживает оба; стоит выбрать один паттерн.
+Единый паттерн — `bind:checked` (задокументирован в `Toggle.svelte`; `onchange`
+оставлен только для side-эффектов). `SchemaPreview.svelte`: `aligned` стал
+`$bindable`, пропс `ontogglealign` удалён; `SchemaToolView` передаёт
+`bind:aligned`.
### L4. Непроверяемые `as`-касты схемы
diff --git a/web/src/lib/components/schema/SchemaPreview.svelte b/web/src/lib/components/schema/SchemaPreview.svelte
index 978ab79..66ebce2 100644
--- a/web/src/lib/components/schema/SchemaPreview.svelte
+++ b/web/src/lib/components/schema/SchemaPreview.svelte
@@ -25,7 +25,6 @@
running?: boolean;
error?: string;
aligned?: boolean;
- ontogglealign?: () => void;
head: PreviewHeadModel;
source: PreviewSourceModel;
steps?: PreviewStepsModel;
@@ -37,8 +36,7 @@
toolId,
running = false,
error = "",
- aligned = false,
- ontogglealign,
+ aligned = $bindable(false),
head,
source,
steps = {},
@@ -66,11 +64,7 @@
{t("resultCard.previewPanel")}
{#if stepResults.length > 1}
{/if}
diff --git a/web/src/lib/components/schema/SchemaToolView.svelte b/web/src/lib/components/schema/SchemaToolView.svelte
index 00ec979..8da5a8d 100644
--- a/web/src/lib/components/schema/SchemaToolView.svelte
+++ b/web/src/lib/components/schema/SchemaToolView.svelte
@@ -503,8 +503,7 @@
resultKind={displayResultKind}
running={busy}
error={errorText}
- {aligned}
- ontogglealign={() => (aligned = !aligned)}
+ bind:aligned
head={{
format,
quality: currentQuality,
diff --git a/web/src/lib/components/ui/Toggle.svelte b/web/src/lib/components/ui/Toggle.svelte
index e86005a..c20e2d7 100644
--- a/web/src/lib/components/ui/Toggle.svelte
+++ b/web/src/lib/components/ui/Toggle.svelte
@@ -1,7 +1,9 @@