Решили: «Вернуться» больше не объявляется в разметке. Единственный способ её завести —
BackButton.PlaceOn(screenRoot, onBack, localize), который кладёт кнопку в корень экрана; гейт
BackButtonPlacementTests следит, что второго способа нет.
Почему: место кнопке задаёт gm-button--back — position: absolute у левого нижнего края.
В UI Toolkit всякий элемент по умолчанию relative, поэтому абсолют считается от
непосредственного родителя, а не от кадра. Кнопку клали в ряд действий или в колонку панели —
и «кромка кадра» оказывалась кромкой того ящика. Отвергли два других лечения: договор «класть в
корень» (он у нас уже был устным и не сработал ни разу из семи) и перевешивание кнопки на корень в
OnAttachToPanel (чинит симптом молча, и разметка продолжает врать о структуре экрана).
Сказано: «вернуться находится не у левого края экрана, как мы обсуждали. Почему? Особенно это видно в Создать игру (а это именно Выбор режима!!!) и в Выбор гильдии. В настройках тоже не корректно. Найди единую причину и исправь, а то все еще вернуться как-то косит.» (23.08.2026, сессия 14ae129e).
Грабли: прежнее обоснование в button.uss уже описывало абсолют как «место одно физически, и
порядок больше ничего не решает» — и было неверным ровно наполовину: физически одно оно только
внутри своего родителя. Правило, звучащее как гарантия, но не проверяемое тестом, продержалось
сутки.
Владелец правды: BackButton.cs (метод PlaceOn), тест BackButtonPlacementTests.