Решили: подпись, не влезающая в кнопку, обрезается ВНУТРИ пластины (overflow: hidden + text-overflow: ellipsis на .gm-button). Кнопка, которой тесно в узком контейнере, берёт ступень --block, а не давит соседей своей мерой.

Почему: высота кнопки задана ступенью набора, поэтому перенос строки в неё не поместится — вариант «white-space: normal» отвергнут сразу. Вариант «кнопка растёт по ширине под содержимое» отвергнут потому, что ширина у нас тоже ступень: растущая кнопка сломала бы ряд и увела бы размер обратно в случай, от которого шкалу и заводили. Остаётся обрезка, и у неё есть отдельное достоинство: поломка остаётся внутри контрола. Раньше длинная подпись рисовалась ПОВЕРХ соседних кнопок и на кадре читалась как «так задумано»; обрезанное слово читается как дефект, и кадр показывает его без пояснений.

Настоящее лечение при этом дизайнерское — короче слово или шире кнопка. Обрезка это страховка, а не решение.

Грабли: число стата красилось дефолтом движка на двух экранах сразу. Карточка Сосуда не давала значению НИ ОДНОГО класса (SpreadCard.Label(value, null)), панель осмотра давала класс, под который не было правила. Итог одинаковый в обоих случаях: подпись громче числа, хотя карточку открывают ради числа. Гейт мёртвого USS на второй случай указывал давно — «класс объявлен в коде, стиля нет» и есть эта дыра, просто в отчёте она выглядела уборкой, а не дефектом вида.

Владелец правды: button.uss, inspect.uss, vessel-card.uss; кадры — docs/lab/assets/ui-screens.