diff --git a/src/components/ai-edition/NewEditorShell.module.css b/src/components/ai-edition/NewEditorShell.module.css
index 1c77efdf4..d2458328c 100644
--- a/src/components/ai-edition/NewEditorShell.module.css
+++ b/src/components/ai-edition/NewEditorShell.module.css
@@ -1202,6 +1202,17 @@
border-color: var(--brand);
box-shadow: 0 0 0 2px color-mix(in oklab, var(--brand), transparent 75%);
}
+/* Same cell, reused for the icon+label rows (camera shape, camera background).
+ `minmax(0, 1fr)` stopped a long label from pushing the grid, but the text still
+ spilled over the button's own border and crowded its neighbour -- « Personnalisé »,
+ « Пользовательский », "Personalizzato" in a 61 px track. Clip it here, once, for
+ every labelled cell instead of hoping each locale stays short. */
+.cursorCell > span {
+ max-width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
/* ─── chat strip + input ───────────────────────────────────────── */
.chatStrip {
diff --git a/src/components/ai-edition/RightPanes.tsx b/src/components/ai-edition/RightPanes.tsx
index d81af75aa..2c0548f81 100644
--- a/src/components/ai-edition/RightPanes.tsx
+++ b/src/components/ai-edition/RightPanes.tsx
@@ -2845,7 +2845,7 @@ export function LayoutPane() {
style={{
flexDirection: "column",
gap: 4,
- padding: 8,
+ padding: "8px 4px",
display: "flex",
alignItems: "center",
// Sans `minWidth: 0` le bouton garde son minimum de
@@ -2871,7 +2871,9 @@ export function LayoutPane() {
>
{shape.icon}
- {ts(shape.labelKey)}
+
+ {ts(shape.labelKey)}
+
);
})}
@@ -2926,7 +2928,7 @@ export function LayoutPane() {
style={{
flexDirection: "column",
gap: 4,
- padding: 8,
+ padding: "8px 4px",
display: "flex",
alignItems: "center",
minWidth: 0,
@@ -2946,7 +2948,9 @@ export function LayoutPane() {
>
{mode.icon}
- {ts(mode.labelKey)}
+
+ {ts(mode.labelKey)}
+
);
})}