.ant-input-number-input {
    text-align: right !important;
}

.ant-input-number-input-wrap {
    margin-right: 20px !important;
}

.ant-input-number-sm {
    width: 75px !important;
}

.ant-tabs-content {
    display: block !important;
}

.ant-transfer-list {
    height: 420px !important;
    width: 100% !important;
    min-width: 340px !important;
}

/* Модальное окно с автоматической шириной для длинного контента */
.ant-modal {
    display: table !important;
    width: auto !important;
}

/* Сохраняет переносы строк (\n), схлопывает лишние пробелы, делает автоперенос текста */
.ant-modal .ant-modal-confirm-content {
    white-space: pre-line !important;
    margin-top: 0 !important;
}

/* Окно исключения из чёрного списка: возвращает фиксированную ширину поверх правила выше —
   иначе окно меняет размер, когда после загрузки документа-основания в таблице появляется
   строка вместо плейсхолдера "Нет данных". Ширина подобрана под таблицу документов: её
   колонкам (имя файла, дата, автор, «Удалить») нужно ~420px, и в прежних 560px окна они
   не помещались — таблица вылезала за его правый край */
.remove-from-blacklist-modal .ant-modal {
    display: block !important;
    width: 680px !important;
}

/* Колонки таблицы документов заданы явно. При обычной раскладке их ширину считает браузер по
   содержимому: до загрузки её задавал плейсхолдер "Нет данных", после — строка с файлом, и шапка
   «Название файла / Дата загрузки / Автор» заметно съезжала. Доли подобраны под содержимое:
   имя файла и дата укладываются в строку, «Автор» переносится по словам */
.remove-from-blacklist-modal .ant-table table {
    table-layout: fixed;
}

.remove-from-blacklist-modal .ant-table th:nth-child(1) {
    width: 34.5%;
}

.remove-from-blacklist-modal .ant-table th:nth-child(2) {
    width: 26%;
}

.remove-from-blacklist-modal .ant-table th:nth-child(3) {
    width: 19%;
}

.remove-from-blacklist-modal .ant-table th:nth-child(4) {
    width: 20.5%;
}

/* Длину имени файла ничто не ограничивает, а при заданных колонках длинное имя выходило бы
   за свою ячейку поверх соседних. Переносим его по символам — оно остаётся в своей колонке */
.remove-from-blacklist-modal .ant-table-tbody > tr > td:first-child {
    overflow-wrap: anywhere;
}

/* Ряд вкладок карточки объекта размещения не помещается по ширине и распирает
   страницу горизонтальным скроллом (штатный overflow-механизм AntDesign не
   пересчитывается при ресайзе). Разрешаем перенос вкладок на несколько строк —
   все видны, страница не расширяется.
   Селекторы повторяют паттерн AntDesign (nav может быть обёрнут доп. div),
   !important — чтобы перебить базовые правила темы независимо от порядка CSS. */
.property-edit-tabs > .ant-tabs-nav .ant-tabs-nav-wrap,
.property-edit-tabs > div > .ant-tabs-nav .ant-tabs-nav-wrap {
    overflow: visible !important;
    white-space: normal !important;
}

.property-edit-tabs > .ant-tabs-nav .ant-tabs-nav-list,
.property-edit-tabs > div > .ant-tabs-nav .ant-tabs-nav-list {
    flex-wrap: wrap !important;
    row-gap: 4px;
    column-gap: 16px;
}

/* Заменяем стандартный margin между вкладками (32px) на управляемый column-gap,
   чтобы промежутки были равномерными и компактными при переносе строк. */
.property-edit-tabs > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab,
.property-edit-tabs > div > .ant-tabs-nav .ant-tabs-tab + .ant-tabs-tab {
    margin: 0 !important;
}

/* При переносе строк стандартный ink-bar встаёт под всем блоком вкладок,
   поэтому подсвечиваем активную вкладку собственным подчёркиванием. */
.property-edit-tabs > .ant-tabs-nav .ant-tabs-ink-bar,
.property-edit-tabs > div > .ant-tabs-nav .ant-tabs-ink-bar {
    display: none;
}

.property-edit-tabs > .ant-tabs-nav .ant-tabs-tab,
.property-edit-tabs > div > .ant-tabs-nav .ant-tabs-tab {
    border-bottom: 2px solid transparent;
}

.property-edit-tabs > .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active,
.property-edit-tabs > div > .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active {
    border-bottom-color: var(--ant-primary-color, #1890ff);
}

/* Окно с выбором причины из справочника: названия там длинные, а ширину выпадающего
   списка задаёт самый длинный пункт — список вылезал за края окна тем сильнее, чем
   длиннее название. Ограничиваем ширину и разрешаем перенос строк: длина названия
   перестаёт влиять на геометрию, а причина читается целиком.
   Правило по классу окна, а не глобально: в других окнах выпадающие списки
   намеренно широкие (карточки гостей с датой рождения и категорией). */
.reason-select-modal .ant-select-dropdown {
    max-width: 420px;
}

.reason-select-modal .ant-select-item-option-content {
    white-space: normal;
    word-break: break-word;
}
