Two editor regressions from the t-paliad-370 S2/S5 relayout, both rooted in
ONE CSS bug.
BUG 1 — preview pane wrapped under the sidebar with no space.
.submission-draft-grid was a two-column track (minmax(280px,360px) 1fr) but
the grid has THREE children: sidebar, section panel, preview. Before S5 the
section panel hid itself (display:none) when a draft had no sections, so two
tracks happened to suffice. S5 (t-paliad-370) made the panel ALWAYS present
(it signposts its empty state instead of vanishing), so all three children
became permanently visible — and the third (preview) wrapped onto a new grid
row under the sidebar, squeezed to the sidebar's width and pushed far down
the page (repro: preview at y=1340, w=360 under the sidebar).
FIX: three named-area tracks — sidebar | sections | preview
(minmax(240px,300px) minmax(0,1fr) minmax(0,1.4fr), preview widest). Explicit
responsive collapse: <=1200px keeps the sidebar in its own column and stacks
section+preview in the second; <=900px single column. grid-template-areas on
the container + grid-area on each child keep placement deterministic (no
auto-placement wrap). Verified at 1400/1100/800px in a built-bundle harness;
all three panels lay out cleanly, preview fully visible, both the with-sections
and empty-state (merge-path) cases.
BUG 2 — language DE/EN toggle 'does nothing'. ROOT CAUSE: NOT a wiring bug.
Runtime repro against the built bundle proves the handlers attach
(de/en.onchange set), a click fires PATCH {language:"en"}, the radio flips,
and the preview + header re-render correctly. The toggle only LOOKED dead
because its primary visible output — the live preview — was the very pane
bug 1 displaced off-screen under the sidebar. Fixing the grid restores the
preview to a visible column, so toggling DE/EN now visibly swaps it
(repro: preview text DE->EN with the pane at x=849,w=399, top of viewport).
No client/markup change needed; the S2 toolbar move preserved every id and
the t-paliad-276 wiring was intact throughout.
CSS-only. bun build clean (i18n scan clean). No backend touched.