/* =====================================================================================
   ui.css — ГЛОБАЛЬНЫЕ стили платформы (не scoped): подключён в platform/Components/App.razor
   (_content/ui/ui.css) и потому доступен и хосту, и ЛЮБОМУ динамически загружаемому модулю
   (их собственный scoped .razor.css в бандл хоста не попадает — см. platform/NOTES.md).

   Здесь живёт дизайн-система административных экранов "adm-*" — компоненты
   ui/Components/Admin/Adm*.razor рисуют разметку с этими классами, а страницы модулей могут
   использовать классы и напрямую (таблицы, формы, бейджи). Правила и примеры — DESIGN.md в
   корне platform2. Кратко:
   - цвета ТОЛЬКО через семантические алиасы Radzen (--rz-text-color, --rz-primary, ...) и
     color-mix от них — экран следует и выбранной теме, и светлому/тёмному варианту;
     фиксированные hex — только у "цвета идентичности" (тип файла и т.п.);
   - адаптив — container queries по ширине рабочей области (.adm-frame), а не окна:
     ширина зависит от левого/правого меню оболочки;
   - во flex-колонках растягиваемая область — flex: 1 1 0 + min-height: 0, полосы-шапки —
     flex: none (иначе длинный список отбирает высоту у шапок, см. NOTES про MailStyles).
   ===================================================================================== */

:root {
    --adm-bg: var(--rz-base-background-color);
    --adm-subtle: color-mix(in srgb, var(--rz-text-color) 3.5%, var(--rz-base-background-color));
    --adm-text: var(--rz-text-color);
    --adm-text-2: var(--rz-text-secondary-color);
    --adm-text-3: var(--rz-text-tertiary-color);
    --adm-title: var(--rz-text-title-color);
    --adm-accent: var(--rz-primary);
    --adm-accent-soft: color-mix(in srgb, var(--rz-primary) 11%, transparent);
    --adm-accent-softer: color-mix(in srgb, var(--rz-primary) 6%, transparent);
    --adm-link: color-mix(in srgb, var(--rz-primary) 84%, var(--rz-text-color));
    --adm-line: color-mix(in srgb, var(--rz-text-color) 13%, transparent);
    --adm-line-soft: color-mix(in srgb, var(--rz-text-color) 7%, transparent);
    --adm-hover: color-mix(in srgb, var(--rz-text-color) 5%, transparent);
    --adm-radius: 10px;
    --adm-radius-sm: 7px;
    --adm-font: 0.875rem;
    --adm-font-sm: 0.78rem;
    --adm-font-xs: 0.7rem;
    --adm-mono: ui-monospace, "Cascadia Mono", Consolas, "Liberation Mono", monospace;
}

/* ---------- Страница и рамка ---------- */
.adm-page { display: flex; flex-direction: column; gap: .75rem; color: var(--adm-text); font-size: var(--adm-font); }
.adm-page--fill { height: calc(100dvh - 2rem); min-height: 520px; }
.adm-page__head { flex: none; display: flex; align-items: center; flex-wrap: wrap; gap: .35rem 1rem; }
.adm-page__head > .app-page-heading { margin: 0; }
.adm-page__desc { flex: 1 1 18rem; min-width: 0; color: var(--adm-text-3); font-size: var(--adm-font-sm); }
.adm-page__actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-left: auto; }

.adm-frame {
    container: adm / inline-size;
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: var(--adm-bg);
    border: 1px solid var(--adm-line);
    border-radius: var(--adm-radius);
    box-shadow: var(--rz-shadow-1);
    overflow: hidden;
    font-size: var(--adm-font);
}
.adm-page:not(.adm-page--fill) .adm-frame { flex: none; }
:where(.adm-frame, .adm-kit) button { font: inherit; color: inherit; }
.adm-frame :where(:focus-visible) { outline: 2px solid var(--adm-accent); outline-offset: -2px; }
.adm-frame * { scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--rz-text-color) 22%, transparent) transparent; }
.adm-grow { flex: 1 1 auto; min-width: 0; }
.adm-mono { font-family: var(--adm-mono); font-size: .92em; }
.adm-muted { color: var(--adm-text-3); }
.adm-nowrap { white-space: nowrap; }

.adm-toolbar {
    flex: none;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .5rem .75rem;
    padding: .65rem .85rem;
    border-bottom: 1px solid var(--adm-line);
    background: var(--adm-subtle);
}
.adm-toolbar__item { display: flex; flex-direction: column; gap: .2rem; min-width: 9rem; }
.adm-toolbar__item > label { font-size: var(--adm-font-xs); font-weight: 600; color: var(--adm-text-3); text-transform: uppercase; letter-spacing: .05em; }

/* ---------- Каркас "список | карточка" ---------- */
.adm-split {
    flex: 1 1 0;
    min-height: 0;
    display: grid;
    grid-template-columns: var(--adm-list-w, 22rem) var(--adm-detail-w, minmax(0, 1fr));
    grid-template-rows: minmax(0, 1fr);
}
.adm-split--list-only { grid-template-columns: minmax(0, 1fr); }
.adm-split--list-only > .adm-split__detail { display: none; }
.adm-split__list { min-width: 0; min-height: 0; display: flex; flex-direction: column; border-right: 1px solid var(--adm-line-soft); background: var(--adm-subtle); }
.adm-split__list--plain { background: var(--adm-bg); }
.adm-split__detail { min-width: 0; min-height: 0; display: flex; flex-direction: column; }

/* ---------- Панель списка ---------- */
.adm-list { flex: 1 1 0; min-height: 0; display: flex; flex-direction: column; }
.adm-list__head { flex: none; display: flex; flex-direction: column; gap: .55rem; padding: .75rem .75rem .6rem; border-bottom: 1px solid var(--adm-line-soft); }
.adm-list__title-row { display: flex; align-items: center; gap: .45rem; min-height: 2rem; }
.adm-list__title { font-weight: 700; color: var(--adm-title); font-size: .95rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-list__body { flex: 1 1 0; min-height: 0; overflow-y: auto; padding: .35rem .4rem .75rem; }
.adm-list__hint { padding: 1rem .6rem; color: var(--adm-text-3); font-size: var(--adm-font-sm); line-height: 1.5; }
.adm-list__foot { flex: none; padding: .5rem .75rem; border-top: 1px solid var(--adm-line-soft); font-size: var(--adm-font-sm); color: var(--adm-text-3); }

.adm-count {
    display: inline-grid;
    place-items: center;
    min-width: 1.4rem;
    height: 1.25rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: var(--adm-hover);
    color: var(--adm-text-2);
    font-size: var(--adm-font-xs);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.adm-search {
    position: relative;
    display: flex;
    align-items: center;
    --rz-icon-size: 1.1rem;
}
.adm-search > .rzi { position: absolute; top: 50%; inset-inline-start: .6rem; transform: translateY(-50%); color: var(--adm-text-3); pointer-events: none; z-index: 1; }
.adm-search__input.rz-textbox { width: 100%; padding-inline-start: 2rem; padding-inline-end: 2rem; }
.adm-search__clear { position: absolute; top: 50%; inset-inline-end: .2rem; transform: translateY(-50%); z-index: 1; }

.adm-group { margin-top: .15rem; }
.adm-group__head {
    display: flex;
    align-items: center;
    gap: .25rem;
    width: 100%;
    padding: .4rem .45rem .3rem;
    border: 0;
    background: transparent;
    font-size: var(--adm-font-xs);
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--adm-text-3);
    text-align: left;
    cursor: pointer;
    --rz-icon-size: 1rem;
}
.adm-group__head:hover { color: var(--adm-text-2); }
.adm-group__title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-group__count { font-variant-numeric: tabular-nums; letter-spacing: 0; }

.adm-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: .55rem;
    width: 100%;
    min-height: 2.35rem;
    padding: .3rem .5rem .3rem calc(.5rem + var(--depth, 0) * 1.1rem);
    border-radius: var(--adm-radius-sm);
    color: var(--adm-text);
    cursor: pointer;
    user-select: none;
}
.adm-item:hover { background: var(--adm-hover); }
.adm-item--selected, .adm-item--selected:hover { background: var(--adm-accent-soft); color: var(--adm-title); }
.adm-item--selected::before {
    content: '';
    position: absolute;
    left: 0;
    top: .45rem;
    bottom: .45rem;
    width: 3px;
    border-radius: 3px;
    background: var(--adm-accent);
}
.adm-item--muted .adm-item__title { color: var(--adm-text-3); }
.adm-item__toggle {
    display: inline-grid;
    place-items: center;
    width: 1.2rem;
    height: 1.2rem;
    margin: 0 -.3rem 0 -.25rem;
    flex: none;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--adm-text-3);
    cursor: pointer;
    --rz-icon-size: 1.05rem;
}
.adm-item__toggle:hover { background: var(--adm-hover); color: var(--adm-title); }
.adm-item__toggle--blank { visibility: hidden; }
.adm-item__icon {
    display: inline-grid;
    place-items: center;
    width: 1.85rem;
    height: 1.85rem;
    flex: none;
    border-radius: 8px;
    background: color-mix(in srgb, var(--tone, var(--rz-text-tertiary-color)) 13%, transparent);
    color: color-mix(in srgb, var(--tone, var(--rz-text-tertiary-color)) 78%, var(--rz-text-color));
    --rz-icon-size: 1.1rem;
}
.adm-item--selected .adm-item__icon { --tone: var(--rz-primary); }
.adm-item__main { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; line-height: 1.25; }
.adm-item__title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-item--selected .adm-item__title { font-weight: 600; }
.adm-item__sub { font-size: var(--adm-font-xs); color: var(--adm-text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-item__badges { display: flex; gap: .25rem; flex: none; }
.adm-item__meta { flex: none; font-size: var(--adm-font-xs); color: var(--adm-text-3); font-variant-numeric: tabular-nums; }
.adm-item__actions { display: flex; align-items: center; gap: .15rem; flex: none; }

/* ---------- Иконки (material или сырой SVG из БД) ---------- */
.adm-icon { display: inline-flex; align-items: center; justify-content: center; flex: none; }
.adm-icon--svg { width: var(--rz-icon-size, 1.15rem); height: var(--rz-icon-size, 1.15rem); }
.adm-icon--svg svg { display: block; width: 100%; height: 100%; }

/* ---------- Карточка (detail) ---------- */
.adm-detail { flex: 1 1 0; min-width: 0; min-height: 0; display: flex; flex-direction: column; }
.adm-detail__head { flex: none; display: flex; align-items: center; gap: .75rem; padding: .9rem 1.25rem .75rem; }
.adm-detail__back { display: none; }
.adm-detail--back-visible .adm-detail__back { display: inline-grid; }
.adm-detail__icon {
    display: inline-grid;
    place-items: center;
    width: 2.6rem;
    height: 2.6rem;
    flex: none;
    border-radius: 12px;
    background: color-mix(in srgb, var(--tone, var(--rz-primary)) 13%, transparent);
    color: color-mix(in srgb, var(--tone, var(--rz-primary)) 80%, var(--rz-text-color));
    --rz-icon-size: 1.45rem;
}
.adm-detail__titles { display: flex; flex-direction: column; gap: .15rem; flex: 1 1 auto; min-width: 0; }
.adm-detail__title-row { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem .5rem; min-width: 0; }
.adm-detail__title { margin: 0; font-size: 1.2rem; font-weight: 700; line-height: 1.25; color: var(--adm-title); overflow-wrap: anywhere; }
.adm-detail__sub { font-size: var(--adm-font-sm); color: var(--adm-text-3); overflow-wrap: anywhere; }
.adm-detail__actions { display: flex; align-items: center; gap: .35rem; flex: none; }
.adm-detail__notice { flex: none; padding: 0 1.25rem .6rem; }
.adm-detail__body { flex: 1 1 0; min-width: 0; min-height: 0; overflow-y: auto; padding: 1rem 1.25rem 1.5rem; }
.adm-detail__body--flush { padding: 0; }
.adm-detail__foot { flex: none; border-top: 1px solid var(--adm-line); background: var(--adm-subtle); }

/* Полоса вкладок — AdmTabStrip: не поместившиеся вкладки уходят в меню «…» (adm-tabs__more), а не прокручиваются. */
.adm-tabs { flex: none; display: flex; min-width: 0; padding: 0 1rem; border-bottom: 1px solid var(--adm-line); }
.adm-tabs__strip { position: relative; display: flex; align-items: stretch; flex: 1 1 auto; min-width: 0; }
.adm-tabs__items { position: relative; display: flex; gap: .15rem; flex: 1 1 auto; min-width: 0; overflow: hidden; }
/* Не поместившиеся вкладки и ненужная кнопка «…» сохраняют ширину (её меряет adm-actionbar.js). */
.adm-tab.adm-tab--hidden, .adm-tabs__more.adm-tabs__more--hidden { visibility: hidden; position: absolute; pointer-events: none; }
.adm-tabs__more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 0;
    border-radius: var(--adm-radius-sm);
    background: transparent;
    color: var(--adm-text-2);
    cursor: pointer;
}
.adm-tabs__more--hidden { right: 0; }
.adm-tabs__more:hover { background: var(--adm-hover); color: var(--adm-title); }
/* Меню скрытых вкладок: по правому краю полосы (под кнопкой «…»), раскрывается ВЛЕВО. */
.adm-tabs__backdrop { position: fixed; inset: 0; z-index: 19; }
.adm-tabs__menu {
    position: absolute;
    top: calc(100% + 2px);
    right: 0;
    z-index: 20;
    display: flex;
    flex-direction: column;
    min-width: 12rem;
    max-width: min(22rem, 90vw);
    max-height: 60vh;
    overflow-y: auto;
    padding: .25rem;
    border: 1px solid var(--adm-line);
    border-radius: var(--adm-radius-sm);
    background: var(--adm-bg);
    box-shadow: 0 6px 20px color-mix(in srgb, var(--rz-text-color) 16%, transparent);
}
.adm-tabs__menu-item {
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: .45rem .6rem;
    border: 0;
    border-radius: calc(var(--adm-radius-sm) - 2px);
    background: transparent;
    color: var(--adm-text);
    font: inherit;
    text-align: start;
    cursor: pointer;
    --rz-icon-size: 1.05rem;
}
.adm-tabs__menu-item:hover { background: var(--adm-hover); color: var(--adm-title); }
.adm-tabs__menu-text { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    flex: none;
    height: 2.5rem;
    padding: 0 .75rem;
    border: 0;
    background: transparent;
    color: var(--adm-text-2);
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    --rz-icon-size: 1.05rem;
}
.adm-tab:hover { color: var(--adm-title); }
.adm-tab--active { color: var(--adm-accent); }
/* bottom: 0, а не -1px: вкладки внутри .adm-tabs__items (overflow: hidden) — черта ложится прямо над линией полосы. */
.adm-tab--active::after { content: ''; position: absolute; left: .5rem; right: .5rem; bottom: 0; height: 2px; border-radius: 2px 2px 0 0; background: var(--adm-accent); }
.adm-tab__badge { padding: 0 .4rem; border-radius: 999px; background: var(--adm-hover); color: var(--adm-text-2); font-size: var(--adm-font-xs); font-variant-numeric: tabular-nums; }
.adm-tabpanel[hidden] { display: none !important; }

.adm-savebar { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; padding: .6rem 1.25rem; }
.adm-savebar__state { display: inline-flex; align-items: center; gap: .4rem; font-size: var(--adm-font-sm); color: var(--adm-text-3); }
.adm-savebar__state--dirty { color: color-mix(in srgb, var(--rz-warning) 70%, var(--rz-text-color)); font-weight: 600; }
.adm-dot { width: .5rem; height: .5rem; border-radius: 50%; background: var(--rz-warning); flex: none; }

/* ---------- Секции, формы, свойства ---------- */
.adm-section { margin-bottom: 1.1rem; border: 1px solid var(--adm-line); border-radius: var(--adm-radius); background: var(--adm-bg); }
.adm-section:last-child { margin-bottom: 0; }
.adm-section__head { display: flex; align-items: flex-start; gap: .75rem; padding: .7rem 1rem .6rem; border-bottom: 1px solid var(--adm-line-soft); }
.adm-section__title { margin: 0; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--adm-text-2); }
.adm-section__desc { margin: .2rem 0 0; font-size: var(--adm-font-sm); color: var(--adm-text-3); line-height: 1.45; }
.adm-section__actions { display: flex; align-items: center; gap: .35rem; margin-left: auto; flex: none; }
.adm-section__body { padding: .9rem 1rem 1rem; }
.adm-section--flush > .adm-section__body { padding: 0; }

.adm-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: .9rem 1.1rem; }
.adm-form--1 { grid-template-columns: minmax(0, 1fr); }
.adm-field { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.adm-field--wide { grid-column: 1 / -1; }
.adm-field__label { font-size: .76rem; font-weight: 600; color: var(--adm-text-2); }
.adm-req { margin-left: .15rem; color: var(--rz-danger); font-weight: 700; }
.adm-field__hint { font-size: .74rem; line-height: 1.45; color: var(--adm-text-3); }
.adm-field__error { font-size: .74rem; line-height: 1.45; color: var(--rz-danger); font-weight: 600; }
.adm-field__control { min-width: 0; }
/* Readonly-показ поля DynamicForm (DynamicFormField.razor, DynamicFormRecordPicker.razor) — просто
   текст, БЕЗ рамки/чрома инпута: ReadOnly у Radzen-контролов лишь блокирует ввод, а не убирает вид
   активного виджета (рамка, стрелка select и т.п.), из-за чего казалось, что можно выбрать значение. */
.adm-field__ro { min-height: var(--rz-input-height, 2.2rem); display: flex; align-items: center; color: var(--adm-title); overflow-wrap: anywhere; }
.adm-field__ro--empty { color: var(--adm-text-3); }
/* Radzen-инпуты внутри поля — на всю ширину колонки. */
.adm-field .rz-textbox, .adm-field .rz-textarea, .adm-field .rz-dropdown, .adm-field .rz-numeric,
.adm-field .rz-datepicker, .adm-field .rz-listbox, .adm-field .rz-autocomplete, .adm-field .rz-colorpicker,
.adm-field .adm-input { width: 100%; }
/* Колокольчик "на контроле" у поля даты (DynamicFormDateWatch, контроль дат) — рядом с самим полем. */
.adm-field__control--watch { display: flex; align-items: center; gap: .3rem; }
.adm-field__control--watch > :first-child { flex: 1 1 auto; min-width: 0; }
.adm-watch { display: flex; align-items: center; gap: .3rem; flex: none; }
.adm-watch__label { font-size: var(--adm-font-xs); color: var(--adm-text-3); white-space: nowrap; }
.adm-watch__label--danger { color: var(--rz-danger); font-weight: 600; }
/* Иконка "+" у select/multiselect справочника с разрешённым добавлением (см. DynamicFormField.razor)
   — правее собственных иконок RadzenDropDown (стрелка у самого края + крестик AllowClear): те живут
   внутри рамки самого RadzenDropDown у правого края, поверх них наложить некуда, не перекрыв их —
   поэтому кнопка не внутри рамки select'а, а пристыкована к ней справа без зазора и с общими
   скруглениями, чтобы читаться одним полем (input-group), а не отдельной кнопкой сбоку. */
.adm-input-add { display: flex; align-items: stretch; }
.adm-input-add > .rz-dropdown { flex: 1 1 auto; min-width: 0; border-start-end-radius: 0; border-end-end-radius: 0; }
.adm-input-add > .adm-icon-btn {
    flex: none;
    width: 2.2rem;
    height: auto;
    border: 1px solid var(--adm-line);
    border-inline-start: none;
    border-radius: 0;
    border-start-end-radius: var(--adm-radius-sm);
    border-end-end-radius: var(--adm-radius-sm);
    background: var(--adm-bg);
}
.adm-input-add > .adm-icon-btn:hover { background: var(--adm-hover); }
.adm-input-add > .adm-tsel { flex: 1 1 auto; border-start-end-radius: 0; border-end-end-radius: 0; }

/* ── Пункт выбора записи (DynamicFormRecordOption внутри RadzenDropDown) ──
   В ПАНЕЛИ списка — две строки: заголовок записи и подробности по настроенным полям («ИНН 7705… ·
   КПП 7705…»). Те же размеры/цвета, что у строки списка .adm-item__title/__sub — пункт должен читаться
   как строка админки, а не как отдельный «виджет». Пункт Radzen рассчитан на одну строку (высота от
   line-height + nowrap), поэтому у пункта С НАШЕЙ разметкой это снимаем — только у него, чтобы не менять
   вид обычных RadzenDropDown по всему приложению.
   Базовый (вне панели) вид — ОДНОСТРОЧНЫЙ: ту же разметку Radzen может показать в закрытом поле/чипе,
   и карточка в две строки там ломала бы высоту поля формы. */
.adm-rpick { display: inline-flex; align-items: baseline; gap: .4rem; min-width: 0; }
.adm-rpick__title { overflow: hidden; text-overflow: ellipsis; }
.adm-rpick__gone { margin-left: .35rem; font-size: var(--adm-font-xs); color: var(--rz-danger); }
.adm-rpick__meta { display: flex; flex-wrap: wrap; gap: 0 .6rem; font-size: var(--adm-font-xs); color: var(--adm-text-3); }
.adm-rpick__pair { display: inline-flex; gap: .25rem; min-width: 0; }
.adm-rpick__k { flex: none; opacity: .75; }
.adm-rpick__v { color: var(--adm-text-2); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }

.rz-dropdown-panel .adm-rpick, .rz-multiselect-panel .adm-rpick {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .1rem;
    line-height: 1.3;
}
.rz-dropdown-item:has(.adm-rpick), .rz-multiselect-item:has(.adm-rpick) { height: auto; white-space: normal; }
.rz-multiselect-item:has(.adm-rpick) { align-items: flex-start; }

/* SchemaFieldEntry.UseCard — вся карточка целевой сущности вместо заголовка+Details, тот же контейнер
   (.adm-rpick), только с зазором вокруг вложенного DynamicForm. */
.adm-rpick--card { padding: .15rem 0; min-width: 0; }

/* ── Выбор из дерева (AdmTreeSelect) ──
   Поле — как инпут Radzen (переменные темы --rz-input-*, с запасными значениями adm-*), чтобы стоять в
   одной форме с RadzenTextBox/RadzenDropDown. Панель — .adm-pop + .adm-tsel__pop (свои отступы, прокрутка
   только списка). Направляющие уровней — фон .adm-tsel__guides: по линии на каждого предка ровно под
   центром его стрелки (шаг --tsel-step), строки стоят вплотную — линии непрерывны. */
.adm-tsel {
    --tsel-step: 1.25rem;
    position: relative;
    display: flex;
    align-items: center;
    gap: .15rem;
    min-width: 0;
    min-height: var(--rz-input-height, 2.2rem);
    padding: 0 .2rem 0 0;
    border: var(--rz-input-border, 1px solid var(--adm-line));
    border-radius: var(--rz-input-border-radius, var(--adm-radius-sm));
    background: var(--rz-input-background-color, var(--adm-bg));
    color: var(--adm-text);
    font-size: var(--rz-input-font-size, var(--adm-font));
    transition: border-color .12s, box-shadow .12s;
    --rz-icon-size: 1.15rem;
}
.adm-tsel:hover { border: var(--rz-input-hover-border, 1px solid color-mix(in srgb, var(--rz-text-color) 30%, transparent)); }
.adm-tsel:focus-within, .adm-tsel:has(> .adm-pop:popover-open) {
    border: var(--rz-input-focus-border, 1px solid var(--adm-accent));
    box-shadow: var(--rz-input-focus-shadow, 0 0 0 3px var(--adm-accent-soft));
}
.adm-tsel--multi { flex-wrap: wrap; gap: .25rem; padding: .2rem .2rem .2rem .25rem; }
.adm-tsel--ro, .adm-tsel--ro:hover { border: var(--rz-input-border, 1px solid var(--adm-line)); background: var(--adm-subtle); }
.adm-tsel .adm-tsel__trigger:focus-visible, .adm-tsel .adm-tsel__arrow:focus-visible { outline: none; }
.adm-tsel__trigger {
    flex: 1 1 4rem;
    align-self: stretch;
    display: flex;
    align-items: center;
    gap: .3rem;
    min-width: 0;
    min-height: calc(var(--rz-input-height, 2.2rem) - 2px);
    padding: 0 .1rem 0 .6rem;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.adm-tsel--multi .adm-tsel__trigger { min-height: 1.6rem; padding-left: .3rem; }
.adm-tsel--ro .adm-tsel__trigger { cursor: default; }
.adm-tsel__placeholder { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--rz-input-placeholder-color, var(--adm-text-3)); }
.adm-tsel__path { flex: 0 1000 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--adm-text-3); }
.adm-tsel__sep { flex: none; color: var(--adm-text-3); }
.adm-tsel__value { flex: 0 1 auto; min-width: 1.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-tsel__value--missing { color: var(--adm-text-3); font-style: italic; }
.adm-tsel__clear, .adm-tsel__arrow {
    flex: none;
    align-self: center;
    display: inline-grid;
    place-items: center;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: none;
    color: var(--adm-text-3);
    cursor: pointer;
}
.adm-tsel__clear { --rz-icon-size: 1rem; }
.adm-tsel__clear:hover, .adm-tsel__arrow:hover { background: var(--adm-hover); color: var(--adm-text); }
.adm-tsel--ro .adm-tsel__arrow { visibility: hidden; }
.adm-tsel__arrow .rzi { transition: transform .15s; }
.adm-tsel:has(> .adm-pop:popover-open) .adm-tsel__arrow .rzi { transform: rotate(180deg); }
.adm-tsel__chip {
    display: inline-flex;
    align-items: center;
    gap: .1rem;
    max-width: 100%;
    min-height: 1.6rem;
    padding: 0 .15rem 0 .55rem;
    border-radius: 999px;
    background: var(--adm-accent-soft);
    color: var(--adm-text);
    font-size: var(--adm-font-sm);
}
.adm-tsel--ro .adm-tsel__chip { padding-right: .55rem; }
.adm-tsel__chip--missing { background: var(--adm-hover); color: var(--adm-text-3); font-style: italic; }
.adm-tsel__chip-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-tsel__chip-x {
    flex: none;
    display: inline-grid;
    place-items: center;
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: none;
    color: var(--adm-text-2);
    cursor: pointer;
    --rz-icon-size: .9rem;
}
.adm-tsel__chip-x:hover { background: color-mix(in srgb, var(--rz-text-color) 10%, transparent); color: var(--adm-text); }

.adm-tsel__pop { --tsel-step: 1.25rem; width: 20rem; max-width: min(36rem, calc(100vw - 1rem)); padding: 0; overflow: hidden; font-size: var(--adm-font); }
.adm-tsel__pop:popover-open { gap: 0; }
.adm-tsel__head { flex: none; display: flex; align-items: center; gap: .25rem; padding: .45rem; border-bottom: 1px solid var(--adm-line-soft); }
.adm-tsel__search { position: relative; flex: 1 1 auto; display: flex; align-items: center; min-width: 0; }
.adm-tsel__search > .rzi { position: absolute; inset-inline-start: .55rem; color: var(--adm-text-3); pointer-events: none; --rz-icon-size: 1.05rem; }
.adm-tsel__search > .adm-icon-btn { position: absolute; inset-inline-end: .15rem; }
.adm-tsel__input {
    width: 100%;
    height: 2rem;
    padding: 0 2rem;
    border: 1px solid var(--adm-line);
    border-radius: var(--adm-radius-sm);
    outline: none;
    background: var(--adm-bg);
    color: var(--adm-text);
    font: inherit;
}
.adm-tsel__input:focus { border: var(--rz-input-focus-border, 1px solid var(--adm-accent)); box-shadow: var(--rz-input-focus-shadow, 0 0 0 3px var(--adm-accent-soft)); }
.adm-tsel__tools { flex: none; display: flex; gap: .1rem; margin-left: auto; }
.adm-tsel__list { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: .3rem; }
.adm-tsel__row { display: flex; align-items: stretch; min-height: 2rem; border-radius: 6px; }
.adm-tsel__row:hover { background: var(--adm-hover); }
.adm-tsel__row--sel, .adm-tsel__row--sel:hover { background: var(--adm-accent-soft); }
.adm-tsel__guides {
    flex: none;
    width: calc(var(--d, 0) * var(--tsel-step));
    background: repeating-linear-gradient(90deg,
        transparent 0 calc(var(--tsel-step) / 2 - .5px),
        var(--adm-line) calc(var(--tsel-step) / 2 - .5px) calc(var(--tsel-step) / 2 + .5px),
        transparent calc(var(--tsel-step) / 2 + .5px) var(--tsel-step));
}
.adm-tsel__tog {
    flex: none;
    display: inline-grid;
    place-items: center;
    width: var(--tsel-step);
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: none;
    color: var(--adm-text-3);
    cursor: pointer;
    --rz-icon-size: 1.1rem;
}
.adm-tsel__tog:hover { color: var(--adm-text); }
.adm-tsel__tog .rzi { transition: transform .15s; }
.adm-tsel__tog[aria-expanded="true"] .rzi { transform: rotate(90deg); }
.adm-tsel__tog--none { cursor: default; }
.adm-tsel__tog--none::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: var(--adm-line); }
.adm-tsel__list--flat .adm-tsel__tog { display: none; }
.adm-tsel__opt {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: .45rem;
    min-width: 0;
    padding: .3rem .5rem .3rem .25rem;
    border: 0;
    border-radius: 6px;
    background: none;
    color: var(--adm-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.adm-tsel__list--flat .adm-tsel__opt { padding-left: .5rem; }
.adm-tsel__pop .adm-tsel__opt:focus-visible { outline: 2px solid var(--adm-accent); outline-offset: -2px; }
.adm-tsel__title { flex: 1 1 auto; min-width: 0; line-height: 1.35; overflow-wrap: anywhere; }
.adm-tsel__row--branch .adm-tsel__title { font-weight: 600; }
.adm-tsel__row--sel .adm-tsel__title { color: var(--adm-accent); font-weight: 600; }
.adm-tsel__row--ctx .adm-tsel__title { color: var(--adm-text-3); font-weight: 400; }
.adm-tsel__title mark { padding: 0 .05rem; border-radius: 3px; background: color-mix(in srgb, var(--rz-warning) 32%, transparent); color: inherit; }
.adm-tsel__n {
    flex: none;
    min-width: 1.35rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: var(--adm-hover);
    color: var(--adm-text-3);
    font-size: var(--adm-font-xs);
    font-weight: 600;
    line-height: 1.35rem;
    text-align: center;
}
.adm-tsel__mark { flex: none; display: inline-grid; color: var(--adm-accent); --rz-icon-size: 1.1rem; }
.adm-tsel__box {
    flex: none;
    display: inline-grid;
    place-items: center;
    width: 1rem;
    height: 1rem;
    border: 1.5px solid color-mix(in srgb, var(--rz-text-color) 35%, transparent);
    border-radius: 4px;
    background: var(--adm-bg);
    color: var(--rz-on-primary);
    --rz-icon-size: .85rem;
}
.adm-tsel__row--sel .adm-tsel__box { border-color: var(--adm-accent); background: var(--adm-accent); }
.adm-tsel__empty, .adm-tsel__more { padding: .75rem .6rem; color: var(--adm-text-3); font-size: var(--adm-font-sm); text-align: center; }
.adm-tsel__foot { flex: none; display: flex; align-items: center; gap: .4rem; padding: .45rem .5rem; border-top: 1px solid var(--adm-line-soft); background: var(--adm-subtle); }
.adm-tsel__count { flex: 1 1 auto; color: var(--adm-text-3); font-size: var(--adm-font-sm); }
.adm-input {
    min-width: 0;
    height: 2.2rem;
    padding: 0 .6rem;
    border: 1px solid var(--adm-line);
    border-radius: var(--adm-radius-sm);
    outline: none;
    background: var(--adm-bg);
    color: var(--adm-text);
    font: inherit;
    transition: border-color .12s, box-shadow .12s;
}
select.adm-input { padding-right: .3rem; cursor: pointer; }
textarea.adm-input { height: auto; min-height: 4.5rem; padding: .5rem .6rem; resize: vertical; line-height: 1.5; }
.adm-input:hover { border: var(--rz-input-hover-border, 1px solid color-mix(in srgb, var(--rz-text-color) 30%, transparent)); }
.adm-input:focus { border: var(--rz-input-focus-border, 1px solid var(--adm-accent)); box-shadow: var(--rz-input-focus-shadow, 0 0 0 3px var(--adm-accent-soft)); }
.adm-input:disabled { background: var(--adm-subtle); color: var(--adm-text-3); }
.adm-code, .adm-code textarea, textarea.adm-code { font-family: var(--adm-mono) !important; font-size: .82rem !important; line-height: 1.5; }
.adm-switch { display: inline-flex; align-items: center; gap: .55rem; min-height: 2rem; cursor: pointer; }

.adm-props { margin: 0; display: grid; gap: 0; }
.adm-prop { display: grid; grid-template-columns: minmax(7rem, 38%) minmax(0, 1fr); gap: .75rem; padding: .45rem 0; border-bottom: 1px dashed var(--adm-line-soft); }
.adm-prop:last-child { border-bottom: 0; }
.adm-prop > dt { font-size: var(--adm-font-sm); color: var(--adm-text-3); }
.adm-prop > dd { margin: 0; color: var(--adm-title); overflow-wrap: anywhere; font-size: var(--adm-font-sm); }

.adm-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .1rem .75rem; }
.adm-check {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    min-height: 2.1rem;
    padding: .35rem .45rem;
    border-radius: var(--adm-radius-sm);
    cursor: pointer;
}
.adm-check:hover { background: var(--adm-hover); }
.adm-check input { width: 1rem; height: 1rem; margin-top: .15rem; flex: none; accent-color: var(--adm-accent); }
.adm-check__main { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.adm-check__title { color: var(--adm-title); }
.adm-check__sub { font-size: var(--adm-font-xs); color: var(--adm-text-3); overflow-wrap: anywhere; }

.adm-checklist { display: flex; flex-direction: column; gap: .5rem; }
.adm-checklist__bar { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; }

/* ---------- Кнопки ---------- */
.adm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    height: 2.1rem;
    padding: 0 .85rem;
    flex: none;
    border: 1px solid var(--adm-line);
    border-radius: var(--adm-radius-sm);
    background: var(--adm-bg);
    color: var(--adm-text);
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    text-decoration: none;
    transition: background-color .12s, border-color .12s, color .12s;
    --rz-icon-size: 1.1rem;
}
.adm-btn:hover { background: var(--adm-hover); }
.adm-btn--primary { background: var(--rz-primary); border-color: var(--rz-primary); color: var(--rz-on-primary) !important; }
.adm-btn--primary:hover { background: color-mix(in srgb, var(--rz-primary) 88%, var(--rz-text-color)); }
.adm-btn--danger { color: var(--rz-danger) !important; border-color: color-mix(in srgb, var(--rz-danger) 40%, var(--adm-line)); }
.adm-btn--danger:hover { background: color-mix(in srgb, var(--rz-danger) 9%, transparent); }
.adm-btn--ghost { border-color: transparent; background: transparent; }
.adm-btn--sm { height: 1.85rem; padding: 0 .6rem; font-size: var(--adm-font-sm); --rz-icon-size: 1rem; }
.adm-btn--active, .adm-btn--active:hover { background: var(--adm-accent-soft); border-color: transparent; color: var(--adm-accent) !important; }
.adm-btn:disabled, .adm-btn--disabled { opacity: .5; cursor: default; pointer-events: none; }

.adm-icon-btn {
    display: inline-grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    flex: none;
    padding: 0;
    border: 0;
    border-radius: var(--adm-radius-sm);
    background: transparent;
    color: var(--adm-text-2);
    cursor: pointer;
    transition: background-color .12s, color .12s;
    --rz-icon-size: 1.15rem;
}
.adm-icon-btn:hover { background: var(--adm-hover); color: var(--adm-title); }
.adm-icon-btn:disabled { opacity: .4; cursor: default; pointer-events: none; }
.adm-icon-btn--sm { width: 1.7rem; height: 1.7rem; --rz-icon-size: 1rem; }
.adm-icon-btn--danger:hover { color: var(--rz-danger); background: color-mix(in srgb, var(--rz-danger) 10%, transparent); }
.adm-icon-btn--active { color: var(--adm-accent); }
.adm-icon-btn--active:hover { color: var(--adm-accent); background: var(--adm-accent-soft); }
.adm-icon-btn--active.adm-icon-btn--danger, .adm-icon-btn--active.adm-icon-btn--danger:hover { color: var(--rz-danger); }

.adm-seg { display: inline-flex; gap: 2px; padding: 2px; border-radius: 8px; background: var(--adm-hover); }
.adm-seg__item {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    height: 1.8rem;
    padding: 0 .65rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    font-size: var(--adm-font-sm);
    font-weight: 600;
    color: var(--adm-text-2);
    white-space: nowrap;
    cursor: pointer;
    --rz-icon-size: .95rem;
}
.adm-seg__item:hover { color: var(--adm-title); }
.adm-seg__item--active { background: var(--adm-bg); color: var(--adm-title); box-shadow: var(--rz-shadow-1); }

/* ---------- Бейджи, чипы, алерты ---------- */
.adm-badge {
    --tone: var(--rz-text-tertiary-color);
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    max-width: 100%;
    padding: .08rem .5rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--tone) 14%, transparent);
    color: color-mix(in srgb, var(--tone) 66%, var(--rz-text-color));
    font-size: var(--adm-font-xs);
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    --rz-icon-size: .85rem;
}
.adm-badge--accent { --tone: var(--rz-primary); }
.adm-badge--info { --tone: var(--rz-info); }
.adm-badge--success { --tone: var(--rz-success); }
.adm-badge--warning { --tone: var(--rz-warning); }
.adm-badge--danger { --tone: var(--rz-danger); }

.adm-chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.adm-chip {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    max-width: 100%;
    min-height: 1.75rem;
    padding: 0 .25rem 0 .6rem;
    border: 1px solid var(--adm-line);
    border-radius: 999px;
    background: var(--adm-bg);
    font-size: var(--adm-font-sm);
    white-space: nowrap;
}
.adm-chip--static { padding-right: .6rem; }

.adm-alert {
    --tone: var(--rz-info);
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    padding: .6rem .85rem;
    border: 1px solid color-mix(in srgb, var(--tone) 28%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--tone) 10%, transparent);
    color: color-mix(in srgb, var(--tone) 55%, var(--rz-text-color));
    font-size: var(--adm-font-sm);
    line-height: 1.5;
    --rz-icon-size: 1.2rem;
}
.adm-alert > .rzi { flex: none; margin-top: .05rem; }
.adm-alert__body { flex: 1 1 auto; min-width: 0; }
.adm-alert__title { font-weight: 700; }
.adm-alert--success { --tone: var(--rz-success); }
.adm-alert--warning { --tone: var(--rz-warning); }
.adm-alert--danger { --tone: var(--rz-danger); }
.adm-alert + .adm-alert { margin-top: .5rem; }

/* ---------- Таблицы ---------- */
.adm-table-wrap { overflow: auto; }
.adm-table { width: 100%; border-collapse: collapse; font-size: var(--adm-font-sm); }
.adm-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--adm-line);
    background: var(--adm-subtle);
    text-align: left;
    font-size: var(--adm-font-xs);
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--adm-text-3);
    white-space: nowrap;
}
.adm-table td { padding: .5rem .75rem; border-bottom: 1px solid var(--adm-line-soft); vertical-align: middle; color: var(--adm-text); }
.adm-table tbody tr:hover > td { background: var(--adm-hover); }
.adm-table tr.adm-row--selected > td { background: var(--adm-accent-soft); }
.adm-table tr.adm-row--click { cursor: pointer; }
.adm-table tr.adm-row--muted > td { color: var(--adm-text-3); }
.adm-table .adm-cell--actions { width: 1%; white-space: nowrap; text-align: right; }
.adm-table .adm-cell--num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.adm-table .adm-cell--main { font-weight: 600; color: var(--adm-title); }
.adm-table-empty { padding: 1.25rem 1rem; text-align: center; color: var(--adm-text-3); font-size: var(--adm-font-sm); }
.app-table { width: 100%; border-collapse: collapse; }
.app-table th, .app-table td { padding: .45rem .7rem; border-bottom: 1px solid var(--adm-line-soft); text-align: left; }
.app-chip { display: inline-flex; align-items: center; gap: .3rem; margin: 0 .5rem .25rem 0; }

.adm-pager { flex: none; display: flex; align-items: center; gap: .5rem; padding: .5rem .85rem; border-top: 1px solid var(--adm-line-soft); font-size: var(--adm-font-sm); color: var(--adm-text-3); }

/* ---------- Таблица с сортировкой/фильтрами/перетаскиванием в заголовках (LegalRecordsTable) ---------- */
.adm-table--grid th { vertical-align: middle; }
/* Заголовок колонки: [название + значок сортировки (перетаскиваемая часть)] [воронка → выпадающая панель фильтра] */
.adm-th__row { display: flex; align-items: center; gap: .1rem; }
.adm-th__row > .adm-th__head { flex: 1 1 auto; min-width: 0; }
.adm-th__head { display: flex; align-items: center; gap: .25rem; cursor: pointer; user-select: none; --rz-icon-size: 1rem; }
.adm-th__title { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.adm-th__sort { flex: none; color: var(--adm-text-3); opacity: .45; }
.adm-th__head:hover .adm-th__sort { opacity: 1; }
.adm-th__sort--on, .adm-th__head:hover .adm-th__sort--on { opacity: 1; color: var(--adm-accent); }
.adm-th__fbtn { width: 1.5rem; height: 1.5rem; opacity: .55; }
.adm-th__fbtn:hover, .adm-th__fbtn:focus-visible, .adm-th__fbtn:popover-open { opacity: 1; }
.adm-th__fbtn--on, .adm-th__fbtn--on:hover { opacity: 1; color: var(--adm-accent); background: var(--adm-accent-soft); }

/* Выпадающая панель (popover="auto"; позиционирует adm-popover.js). Живёт в top layer, но остаётся
   потомком ячейки заголовка и наследует её капс/жирность/nowrap — поэтому всё сбрасываем. display на
   самом [popover] задавать нельзя (перебьёт скрытие закрытой панели) — только для :popover-open. */
.adm-pop {
    inset: auto;
    margin: 0;
    padding: .7rem .8rem .8rem;
    width: 19rem;
    max-width: calc(100vw - 1rem);
    overflow: auto;
    border: 1px solid var(--adm-line);
    border-radius: var(--adm-radius);
    background: var(--adm-bg);
    box-shadow: var(--rz-shadow-4);
    color: var(--adm-text);
    font-size: var(--adm-font-sm);
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: normal;
    text-transform: none;
    text-align: left;
    white-space: normal;
    cursor: default;
    --rz-icon-size: 1rem;
}
.adm-pop:popover-open { display: flex; flex-direction: column; gap: .6rem; }
.adm-pop__head { display: flex; align-items: center; gap: .5rem; }
.adm-pop__title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; color: var(--adm-title); }
.adm-table th.adm-th--drag { opacity: .45; }
.adm-table th.adm-th--over { background: var(--adm-accent-soft); box-shadow: inset 3px 0 0 var(--adm-accent); }

/* Чипы активных фильтров под тулбаром таблицы */
.adm-fchips {
    flex: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    padding: .4rem .85rem;
    border-bottom: 1px solid var(--adm-line-soft);
    background: var(--adm-accent-softer);
    color: var(--adm-accent);
    --rz-icon-size: 1rem;
}
.adm-fchips .adm-chip { color: var(--adm-text); }

/* Редактор условия одной колонки (LegalFilterEditor): в выпадающей панели колонки (.adm-pop) — столбиком,
   в диалоге «Фильтры» (.adm-fdlg) — в строку и переносится. Ширины — только flex-basis с min-width: 0,
   без "естественной" ширины полей: иначе два поля даты в ряд распирали бы строку. */
.adm-fe { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.adm-fe .adm-input { width: 100%; min-width: 0; }
.adm-fe__bound { display: flex; align-items: center; gap: .35rem; min-width: 0; }
.adm-fe__bound > span { flex: none; min-width: 1.4rem; font-size: var(--adm-font-xs); color: var(--adm-text-3); text-transform: none; letter-spacing: normal; }
.adm-fe__bound > .adm-input { flex: 1 1 0; }
.adm-fe__checks { display: flex; flex-direction: column; max-height: 11rem; overflow: auto; }

/* Диалоги экрана (фильтры, колонки): прокручиваемое тело + линия с кнопками.
   ВАЖНО про ширину (2026-09-30): ящик диалога делает RadzenDialog и он ЖЁСТКИЙ — .rz-dialog получает
   inline-стиль width: 600px (умолчание DialogOptions.Width; IUiDialogService options не передаёт), а у
   .rz-dialog-content стоит overflow: auto и отступ --rz-dialog-content-padding (1.25rem). То есть нашему
   содержимому доступно 600px − 2×1.25rem = 35rem, и любая СОБСТВЕННАЯ ширина больше этой (было
   .adm-dlg--filters: 40rem) не расширяет диалог, а даёт его горизонтальную прокрутку — с обрезанной
   кнопкой «Применить» в .adm-dlg__foot. Поэтому ширина здесь — 100% ящика, а rem/vw — только потолок
   (max-width), который срабатывает, если ящик когда-нибудь станет шире. Увеличивать ящик надо через
   DialogOptions.Width, а не через ширину этого блока. min-width: 0 — обычное правило цепочки вложенных
   flex-колонок (см. NOTES.md, баг 2026-09-25). */
.adm-dlg { display: flex; flex-direction: column; gap: .75rem; width: 100%; max-width: min(46rem, 80vw); min-width: 0; }
.adm-dlg--narrow { max-width: min(26rem, 80vw); }
.adm-dlg--filters { max-width: min(40rem, 88vw); }
.adm-dlg__body { max-height: 62vh; overflow-x: hidden; overflow-y: auto; padding-right: .2rem; }
/* Те же 600px Radzen'а не влезают в узкое окно (диалог вылезал за край страницы) — потолок ящику ставим
   здесь: max-width не задан инлайном, поэтому перебивает inline width без !important. */
.rz-dialog:has(.adm-dlg) { max-width: calc(100vw - 2rem); }

/* Диалог «Фильтры»: строки "подпись | редактор" (не сетка полей формы: минимальная ширина колонки 16rem
   вместе с полосой прокрутки не влезала в диалог и давала горизонтальную прокрутку) */
.adm-fdlg { display: flex; flex-direction: column; min-width: 0; }
.adm-fdlg__row { display: grid; grid-template-columns: minmax(6rem, 11rem) minmax(0, 1fr); gap: .5rem .9rem; align-items: start; padding: .55rem 0; border-bottom: 1px solid var(--adm-line-soft); }
.adm-fdlg__row:last-child { border-bottom: 0; }
.adm-fdlg__label { padding-top: .5rem; font-size: .76rem; font-weight: 600; color: var(--adm-text-2); overflow-wrap: anywhere; }
.adm-fdlg .adm-fe { flex-direction: row; flex-wrap: wrap; align-items: center; }
.adm-fdlg .adm-fe > .adm-input { flex: 1 1 8rem; width: auto; }
.adm-fdlg .adm-fe > .adm-fe__op { flex: 0 0 9.5rem; }
.adm-fdlg .adm-fe__bound { flex: 1 1 11rem; }
.adm-fdlg .adm-fe__checks { flex: 1 1 100%; flex-direction: row; flex-wrap: wrap; gap: 0 .5rem; max-height: 9rem; }
/* Конструктор условий: "поле | условие | убрать". width: 100% у select'а поля — иначе он берёт ширину по
   самому длинному имени поля (max-content) и вылезает из своей колонки под обрезку .adm-dlg__body. */
.adm-fdlg--build .adm-fdlg__row { grid-template-columns: minmax(8rem, 12rem) minmax(0, 1fr) auto; align-items: center; }
.adm-fdlg--build .adm-fdlg__row > select.adm-input { width: 100%; }
/* Переключатель связки «И / ИЛИ» между строками условий. */
.adm-fdlg__join { padding: .45rem 0 0; }
@media (max-width: 560px) {
    .adm-fdlg__row { grid-template-columns: minmax(0, 1fr); }
    .adm-fdlg__label { padding-top: 0; }
}
.adm-dlg__foot { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding-top: .75rem; border-top: 1px solid var(--adm-line-soft); min-width: 0; }

/* ---------- Выбор/порядок колонок (диалог «Колонки» LegalRecordsTable и т.п.) ---------- */
.adm-colpicker__hint { display: block; margin: 0 0 .5rem; color: var(--adm-text-3); font-size: var(--adm-font-xs); --rz-icon-size: .85rem; }
.adm-colpicker__list { display: flex; flex-direction: column; gap: .15rem; min-width: 14rem; }
.adm-colpicker__row {
    display: flex;
    align-items: center;
    gap: .15rem;
    padding: 0 .3rem;
    border: 1px solid transparent;
    border-radius: var(--adm-radius-sm);
    background: var(--adm-bg);
    font-size: var(--adm-font-sm);
    white-space: nowrap;
}
.adm-colpicker__handle { flex: none; color: var(--adm-text-3); cursor: grab; --rz-icon-size: 1.05rem; }
.adm-colpicker__row .adm-check { flex: 1 1 auto; min-width: 0; padding: .2rem .3rem; }
.adm-colpicker__row .adm-check__title { overflow: hidden; text-overflow: ellipsis; }
.adm-colpicker__row--drag { opacity: .45; }
.adm-colpicker__row--over { border-color: var(--adm-accent); background: var(--adm-accent-soft); }

/* ---------- Вложения (AdmAttachments) ---------- */
.adm-attach { display: flex; flex-direction: column; gap: .5rem; }
.adm-attach__tools { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.adm-attach__upload { position: relative; overflow: hidden; }
.adm-attach__upload input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.adm-attach__doc { display: flex; align-items: center; gap: .6rem; padding: .5rem .75rem; border: 1px solid var(--adm-line); border-radius: var(--adm-radius-sm); background: var(--rz-base-background-color); }
.adm-attach__doc > .rzi { flex: none; color: var(--adm-text-3); }
.adm-attach__doc-main { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; gap: .1rem; }
.adm-attach__doc-title { color: var(--adm-title); font-weight: 600; overflow-wrap: anywhere; }
.adm-attach__doc-sub { color: var(--adm-text-3); font-size: var(--adm-font-xs); overflow-wrap: anywhere; }
.adm-attach__doc-files { display: flex; flex-wrap: wrap; gap: .25rem .75rem; font-size: var(--adm-font-xs); }
.adm-attach__doc-files a { color: var(--adm-accent); text-decoration: none; overflow-wrap: anywhere; }
.adm-attach__doc-files a:hover { text-decoration: underline; }
.adm-attach__doc-line { display: flex; align-items: baseline; justify-content: space-between; gap: .25rem .75rem; flex-wrap: wrap; }
.adm-attach__doc-date { flex: none; color: var(--adm-text-2); font-size: var(--adm-font-xs); font-variant-numeric: tabular-nums; white-space: nowrap; }
.adm-attach__doc-files a { display: inline-flex; align-items: center; gap: .2rem; --rz-icon-size: .9rem; }
.adm-attach__file-size { color: var(--adm-text-3); }
/* Секция «Вложения связанных записей»: заголовок + переключатель группировки, группы (.adm-group), источники-чипы. */
.adm-attach__rel { display: flex; flex-direction: column; gap: .35rem; margin-top: .5rem; padding-top: .75rem; border-top: 1px solid var(--adm-line-soft); }
.adm-attach__rel-head { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .6rem; }
.adm-attach__rel-title { color: var(--adm-title); font-weight: 600; }
.adm-attach__rel-mode { margin-left: auto; }
.adm-attach__group-head { display: flex; align-items: center; gap: .25rem; }
.adm-attach__group-body { display: flex; flex-direction: column; gap: .4rem; padding: .1rem 0 .4rem; }
.adm-attach__sources { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-top: .15rem; }
.adm-attach__sources-label { color: var(--adm-text-3); font-size: var(--adm-font-xs); }
.adm-attach__source { display: inline-flex; align-items: center; gap: .25rem; max-width: 100%; padding: .05rem .5rem; border: 1px solid var(--adm-line); border-radius: 999px; background: var(--adm-bg); color: var(--adm-text-2); font: inherit; font-size: var(--adm-font-xs); overflow-wrap: anywhere; text-align: left; --rz-icon-size: .8rem; }
.adm-attach__source--link { cursor: pointer; }
.adm-attach__source--link:hover, .adm-attach__source--link:focus-visible { border-color: var(--adm-accent); color: var(--adm-accent); outline: none; }
.adm-attach__found { display: flex; flex-direction: column; max-height: 16rem; overflow-y: auto; border: 1px solid var(--adm-line); border-radius: var(--adm-radius-sm); }
.adm-attach__found-item { display: flex; flex-direction: column; align-items: flex-start; gap: .1rem; padding: .45rem .75rem; border: 0; border-bottom: 1px solid var(--adm-line-soft); background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.adm-attach__found-item:last-child { border-bottom: 0; }
.adm-attach__found-item:hover, .adm-attach__found-item:focus-visible { background: var(--adm-hover); outline: none; }
.adm-attach__found-item:disabled { cursor: default; opacity: .55; }

/* ---------- AdmLinks (вкладка «Связи») — строки переиспользуют .adm-attach__doc/__found ---------- */
.adm-links { display: flex; flex-direction: column; gap: .6rem; }
.adm-links__toolbar { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; }
.adm-links__toolbar--end { justify-content: flex-end; }
.adm-links__group-head { cursor: default; }
.adm-links__hint { padding: .5rem .75rem; color: var(--adm-text-3); font-size: var(--adm-font-xs); }
.adm-links__card { min-width: 0; padding: .25rem 0; }
/* Строки списка связей (.adm-attach__doc) внутри одной группы — прямые соседи без обёртки, без отступа
   соприкасались бы рамками и склеивались в одну сплошную полосу; рамка/фон самой строки НАРОЧНО не
   снимается даже у карточечных строк (item.Card), см. AdmLinks.razor. Селектор нарочно НЕ .adm-group >
   * (тот же класс группирует и список «Связать…» — .adm-attach__found-item, у него своя рамка-список
   без зазоров между пунктами, отступ там был бы лишним). */
.adm-links .adm-group > .adm-attach__doc + .adm-attach__doc { margin-top: .5rem; }
/* Строка с переходом на запись (IRecordLocator): клик по строке или иконка «Открыть» справа. */
.adm-attach__doc--link { cursor: pointer; }
.adm-attach__doc--link:hover { background: var(--adm-hover); border-color: var(--adm-accent); }
.adm-attach__doc--link:hover .adm-attach__doc-title { color: var(--adm-accent); }

/* Вид «Таймлайн» AdmLinks: сетка «дата | ось | карточка». Ось — линия в колонке .adm-tl__rail,
   непрерывная через заголовки месяцев (у заголовка та же ячейка оси, только без точки); у последней
   записи (.adm-tl__rail--end) линия обрывается на точке. Колонка даты фиксированной ширины — иначе
   линия «гуляла» бы по ширине самой длинной даты. */
.adm-tl { display: grid; grid-template-columns: 3.1rem 1.1rem minmax(0, 1fr); align-items: stretch; }
.adm-tl__when { display: flex; flex-direction: column; align-items: flex-end; gap: .05rem; padding: .72rem .5rem 0 0; }
.adm-tl__when--period { padding: 0; }
.adm-tl__day { color: var(--adm-text-2); font-size: var(--adm-font-sm); font-variant-numeric: tabular-nums; white-space: nowrap; }
.adm-tl__time { color: var(--adm-text-3); font-size: var(--adm-font-xs); font-variant-numeric: tabular-nums; white-space: nowrap; }

.adm-tl__rail { position: relative; }
.adm-tl__rail::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 2px;
    margin-left: -1px;
    background: var(--adm-line);
}
.adm-tl__rail--end::before { bottom: auto; height: 1.3rem; }
.adm-tl__dot {
    position: absolute;
    top: 1.3rem;
    left: 50%;
    width: .5rem;
    height: .5rem;
    margin: -.25rem 0 0 -.25rem;
    border-radius: 50%;
    background: var(--adm-bg);
    box-shadow: 0 0 0 2px var(--adm-accent);
}
.adm-tl__cell { min-width: 0; padding: .25rem 0 .25rem .6rem; }

.adm-tl__period { display: flex; align-items: center; gap: .4rem; padding: .7rem 0 .35rem .6rem; }
.adm-tl__period-title { color: var(--adm-text-2); font-size: var(--adm-font-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.adm-tl__period-count { color: var(--adm-text-3); font-size: var(--adm-font-xs); font-variant-numeric: tabular-nums; }
.adm-tl > .adm-tl__when--period:first-child + .adm-tl__rail::before { top: .7rem; }

/* ---------- AdmCorrespondenceLinks («Переписка») — цепочки писем деревом ----------
   Строка письма: «значок направления | реквизиты (Вх. № … от …) + тема | подпись». Направление
   читается тремя способами сразу — цвет значка, сам значок (входящее/исходящее) и приставка
   «Вх.»/«Исх.» — по запросу пользователя «не понятно, где входящее, где на него ответ».
   Одна цепочка переписки = одна рамка .adm-corr__thread, ответы внутри неё вложены: отступ строки
   считается из --adm-corr-depth (уровень в цепочке, ставится инлайном), перед значком — уголок.
   Тона направлений — семантические --rz-info/--rz-success, как везде в adm-* (своих цветов нет). */
.adm-corr { display: flex; flex-direction: column; gap: .5rem; }
.adm-corr__summary { display: flex; flex-wrap: wrap; gap: .15rem .6rem; color: var(--adm-text-3); font-size: var(--adm-font-xs); }
.adm-corr__thread { display: flex; flex-direction: column; border: 1px solid var(--adm-line); border-radius: var(--adm-radius-sm); background: var(--adm-bg); overflow: hidden; }
.adm-corr__row {
    --adm-corr-depth: 0;
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .5rem .6rem;
    padding-left: calc(.6rem + var(--adm-corr-depth) * 1.35rem);
    border-top: 1px solid var(--adm-line-soft);
}
.adm-corr__row:first-child { border-top: 0; }
.adm-corr__row--link { cursor: pointer; }
.adm-corr__row--link:hover { background: var(--adm-hover); }
.adm-corr__row--link:hover .adm-corr__subject { color: var(--adm-accent); }
.adm-corr__row--context { background: var(--adm-subtle); }
.adm-corr__row--removed .adm-corr__subject { font-weight: 400; color: var(--adm-text-3); text-decoration: line-through; }
.adm-corr__elbow { flex: none; margin-top: .15rem; color: var(--adm-text-3); --rz-icon-size: 1rem; }
.adm-corr__dir {
    --tone: var(--rz-info);
    display: inline-grid;
    place-items: center;
    flex: none;
    width: 1.35rem;
    height: 1.35rem;
    margin-top: .05rem;
    border-radius: 5px;
    background: color-mix(in srgb, var(--tone) 15%, transparent);
    color: color-mix(in srgb, var(--tone) 78%, var(--rz-text-color));
    --rz-icon-size: .9rem;
}
.adm-corr__dir--out { --tone: var(--rz-success); }
.adm-corr__dir--none { --tone: var(--rz-text-tertiary-color); }
.adm-corr__main { display: flex; flex-direction: column; gap: .1rem; flex: 1 1 auto; min-width: 0; }
.adm-corr__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .5rem; }
.adm-corr__ref { flex: none; color: var(--adm-text-2); font-size: var(--adm-font-sm); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.adm-corr__subject { color: var(--adm-title); font-weight: 600; overflow-wrap: anywhere; }
.adm-corr__meta { color: var(--adm-text-3); font-size: var(--adm-font-xs); overflow-wrap: anywhere; }

/* ---------- AdmTransfers («Передача») — строки журнала переиспользуют .adm-attach__doc/__found ---------- */
.adm-transfers { display: flex; flex-direction: column; gap: .6rem; }
.adm-transfers__pick { display: flex; flex-direction: column; gap: .5rem; }
.adm-transfers__owner { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.adm-transfers__owner > .rzi { color: var(--adm-text-3); }
.adm-attach__doc--muted { opacity: .6; }
.adm-attach__doc--muted .adm-attach__doc-title { font-weight: 400; text-decoration: line-through; }

/* ---------- AdmExecution («Исполнение») — журнал переиспользует .adm-attach__doc, выбор — AdmExecutionPicker ---------- */
.adm-exec { display: flex; flex-direction: column; gap: .75rem; }
.adm-exec__card { display: flex; flex-direction: column; gap: .5rem; padding: .75rem; border: 1px solid var(--adm-line); border-radius: var(--adm-radius-sm); }
.adm-exec__head { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.adm-exec__actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.adm-exec__panel { display: flex; flex-direction: column; gap: .5rem; padding: .75rem; border: 1px solid var(--adm-line); border-radius: var(--adm-radius-sm); background: var(--adm-subtle); }
.adm-exec__panel-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.adm-exec__picker { display: flex; flex-direction: column; gap: .5rem; }
.adm-exec__log-title { color: var(--adm-text-3); font-size: var(--adm-font-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.adm-exec__leg { display: flex; flex-direction: column; gap: .35rem; }
.adm-exec__leg + .adm-exec__leg { margin-top: .5rem; }
.adm-exec__leg-head { display: flex; align-items: center; flex-wrap: wrap; gap: .1rem .5rem; padding-bottom: .3rem; border-bottom: 1px solid var(--adm-line-soft); }
.adm-exec__leg-title { font-weight: 600; color: var(--adm-title); }
.adm-exec__leg-meta { color: var(--adm-text-3); font-size: var(--adm-font-xs); }
.adm-exec__people { display: flex; flex-direction: column; gap: .4rem; }
.adm-exec__people-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .4rem; }
.adm-exec__person { display: flex; flex-direction: column; gap: .4rem; }
.adm-exec__person .adm-attach__doc { flex-wrap: wrap; }
.adm-exec__person .adm-attach__doc-main { flex-basis: 12rem; }
.adm-attach__found-item--picked { background: var(--adm-accent-soft); }

/* ---------- Пустые состояния, загрузка ---------- */
.adm-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 12rem;
    height: 100%;
    padding: 2rem 1.5rem;
    text-align: center;
    color: var(--adm-text-3);
    --rz-icon-size: 3rem;
}
.adm-empty--compact { min-height: 0; height: auto; padding: 1.25rem 1rem; --rz-icon-size: 2.2rem; }
.adm-empty > .rzi { margin-bottom: .3rem; color: color-mix(in srgb, var(--adm-text-3) 45%, transparent); }
.adm-empty__title { font-size: 1rem; font-weight: 600; color: var(--adm-text-2); }
.adm-empty__text { max-width: 28rem; font-size: var(--adm-font-sm); line-height: 1.5; }
.adm-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: .6rem; }

.adm-progress { position: absolute; z-index: 3; top: 0; left: 0; right: 0; height: 2px; overflow: hidden; }
.adm-progress::after { content: ''; position: absolute; top: 0; bottom: 0; width: 35%; background: var(--adm-accent); animation: adm-progress 1s ease-in-out infinite; }
@keyframes adm-progress { from { left: -35%; } to { left: 100%; } }

/* ---------- Дифф (аудит) ---------- */
.adm-diff { width: 100%; border-collapse: collapse; font-size: var(--adm-font-sm); table-layout: fixed; }
.adm-diff th { padding: .45rem .6rem; border-bottom: 1px solid var(--adm-line); text-align: left; font-size: var(--adm-font-xs); text-transform: uppercase; letter-spacing: .05em; color: var(--adm-text-3); }
.adm-diff td { padding: .45rem .6rem; border-bottom: 1px solid var(--adm-line-soft); vertical-align: top; overflow-wrap: anywhere; }
.adm-diff__field { width: 28%; color: var(--adm-text-2); font-family: var(--adm-mono); font-size: .76rem; }
.adm-diff__old { background: color-mix(in srgb, var(--rz-danger) 7%, transparent); color: color-mix(in srgb, var(--rz-danger) 60%, var(--rz-text-color)); }
.adm-diff__new { background: color-mix(in srgb, var(--rz-success) 8%, transparent); color: color-mix(in srgb, var(--rz-success) 60%, var(--rz-text-color)); }
.adm-diff__same { color: var(--adm-text-3); }
.adm-pre { margin: 0; padding: .75rem; border-radius: 8px; background: var(--adm-subtle); font-family: var(--adm-mono); font-size: .76rem; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 24rem; overflow: auto; }

/* ---------- Виджеты / блоки динамических страниц ---------- */
.adm-blocks { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
.adm-block { grid-column: span 6; min-width: 0; }
.adm-block--half { grid-column: span 3; }
.adm-block--third { grid-column: span 2; }
.adm-widget { display: flex; flex-direction: column; min-width: 0; height: 100%; border: 1px solid var(--adm-line); border-radius: var(--adm-radius); background: var(--adm-bg); overflow: hidden; }
.adm-widget__head { flex: none; display: flex; align-items: center; gap: .5rem; padding: .6rem .9rem; border-bottom: 1px solid var(--adm-line-soft); font-weight: 700; color: var(--adm-title); --rz-icon-size: 1.1rem; }
.adm-widget__head > .rzi { color: var(--adm-text-3); }
.adm-widget__body { flex: 1 1 auto; min-width: 0; padding: .75rem .9rem; }
.adm-widget__body--flush { padding: 0; }
.adm-widget__foot { flex: none; padding: .35rem .9rem; border-top: 1px solid var(--adm-line-soft); font-size: var(--adm-font-xs); color: var(--adm-text-3); }
.adm-block-editor__head { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; padding: .6rem .75rem; border-bottom: 1px solid var(--adm-line-soft); }
.adm-block-editor__head > .adm-input.adm-grow { flex: 1 1 12rem; }
.adm-html { line-height: 1.6; overflow-wrap: anywhere; }
.adm-html :where(h1, h2, h3) { margin: .2em 0 .5em; color: var(--adm-title); }
.adm-html :where(p) { margin: 0 0 .75em; }

/* ---------- Конструктор форм (ui/Components/Builder/FormBuilder*) ----------
   Три колонки: палитра | холст | свойства. Перетаскивание — нативный HTML5 DnD, поэтому всё
   «состояние мыши» здесь делают классы: --armed (тащат что-то подходящее — зоны приёма
   раскрываются в заметные мишени) и --over (курсор прямо над зоной). Подписи внутри зон —
   pointer-events: none, иначе курсор «уходит» на них и зона получает лишний dragleave. */
.adm-fb { display: flex; flex-direction: column; gap: .7rem; min-width: 0; }
/* Переключатель раскладок над конструктором (вкладка «Форма» сущности): «Основная» + именованные формы. */
.adm-forms-bar { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .6rem; margin-bottom: .7rem; }
.adm-forms-bar .adm-seg { flex-wrap: wrap; }
.adm-forms-bar__name { height: 1.85rem; max-width: 16rem; font-size: var(--adm-font-sm); }
.adm-forms-bar__hint { margin: 0 0 .7rem; font-size: var(--adm-font-sm); }
.adm-forms-bar__usages { margin: -.2rem 0 .7rem; }

.adm-fb__bar { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .6rem; }
.adm-fb__bar-select { height: 1.85rem; max-width: 16rem; font-size: var(--adm-font-sm); }
.adm-fb__bar-select--narrow { max-width: 8rem; }

.adm-fb__work { display: grid; grid-template-columns: 14.5rem minmax(0, 1fr) 16.5rem; gap: .7rem; align-items: start; }
.adm-fb__side {
    position: sticky;
    top: 0;
    min-height: 12rem;
    max-height: calc(100dvh - 19rem);
    overflow-y: auto;
    padding: .4rem;
    border: 1px solid var(--adm-line);
    border-radius: var(--adm-radius);
    background: var(--adm-subtle);
}
.adm-fb__side--props { background: var(--adm-bg); }
.adm-fb__canvas { min-width: 0; padding: .5rem; border: 1px solid var(--adm-line); border-radius: var(--adm-radius); background: var(--adm-subtle); }
.adm-fb__canvas-inner { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.adm-fb__preview { padding: 1rem; border: 1px solid var(--adm-line); border-radius: var(--adm-radius); background: var(--adm-bg); }

/* Кнопки шапки формы (FormLayout.Toolbar) — плоская лента над вкладками, не часть сетки.
   Ячейки — те же .adm-fb__cell/.adm-fb__cell--tail, что у обычного ряда (FormBuilderRow): variant="v"
   у FormBuilderDrop — position:absolute, работает ТОЛЬКО внутри position:relative ячейки того же
   размера, что и в сетке (без этой обёртки зоны приёма не встают на место — нечем перетащить). */
.adm-fb__toolbar-zone { border: 1px dashed var(--adm-line); border-radius: var(--adm-radius-sm); background: var(--adm-bg); padding: .35rem .45rem; }
.adm-fb__toolbar-label { display: block; margin-bottom: .2rem; font-size: var(--adm-font-xs); color: var(--adm-text-3); }
.adm-fb__toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; min-height: 1.8rem; }
.adm-fb__toolbar-cell { flex: 0 0 auto; }
.adm-fb__toolbar-cell.adm-fb__cell--tail { min-width: 6rem; }

/* Палитра */
.adm-fb__pal { display: flex; flex-direction: column; gap: .15rem; }
.adm-fb__pal .adm-group__body { display: flex; flex-direction: column; gap: .2rem; padding: 0 .1rem .35rem; }
.adm-fb__pal-search { padding: .1rem .1rem .3rem; }
.adm-fb__pal-hint { margin: .2rem .35rem .45rem; font-size: var(--adm-font-xs); line-height: 1.45; color: var(--adm-text-3); }
.adm-fb__pal-item {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .3rem .45rem;
    border: 1px solid var(--adm-line-soft);
    border-radius: var(--adm-radius-sm);
    background: var(--adm-bg);
    font-size: var(--adm-font-sm);
    cursor: grab;
    --rz-icon-size: 1.05rem;
}
.adm-fb__pal-item:hover { border-color: var(--adm-accent); background: var(--adm-accent-softer); }
.adm-fb__pal-item:active { cursor: grabbing; }
.adm-fb__pal-item > .rzi { flex: none; color: var(--adm-text-3); }
.adm-fb__pal-item--used { opacity: .6; }
.adm-fb__pal-label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-fb__pal-badge { flex: none; font-size: var(--adm-font-xs); color: color-mix(in srgb, var(--rz-warning) 70%, var(--rz-text-color)); }

/* Узлы холста: секция, ряд */
.adm-fb__node { border: 1px solid var(--adm-line); border-radius: var(--adm-radius-sm); background: var(--adm-bg); }
.adm-fb__node--selected { border-color: var(--adm-accent); box-shadow: 0 0 0 2px var(--adm-accent-soft); }
.adm-fb__node-bar {
    display: flex;
    align-items: center;
    gap: .3rem;
    padding: .2rem .25rem .2rem .15rem;
    border-bottom: 1px solid var(--adm-line-soft);
    border-radius: var(--adm-radius-sm) var(--adm-radius-sm) 0 0;
    background: var(--adm-subtle);
    font-size: var(--adm-font-xs);
    color: var(--adm-text-2);
    cursor: grab;
    --rz-icon-size: 1rem;
}
.adm-fb__node-bar:active { cursor: grabbing; }
.adm-fb__node-bar--row { background: transparent; border-bottom-color: transparent; }
.adm-fb__node-bar > .rzi { flex: none; color: var(--adm-text-3); }
.adm-fb__node-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.adm-fb__rows { display: flex; flex-direction: column; padding: .25rem .35rem .35rem; }
.adm-fb__sections { display: flex; flex-direction: column; min-width: 0; }

/* Полосы вкладок (формы и внутри секции) */
.adm-fb__tabs { display: flex; align-items: center; flex-wrap: wrap; gap: .1rem; padding: 0 0 .25rem; border-bottom: 1px solid var(--adm-line); }
.adm-fb__tabs--inner { padding: .25rem .35rem 0; border-bottom: 0; }
.adm-fb__tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    height: 1.85rem;
    padding: 0 .6rem;
    border: 1px solid transparent;
    border-radius: var(--adm-radius-sm);
    background: transparent;
    color: var(--adm-text-2);
    font-size: var(--adm-font-sm);
    font-weight: 600;
    cursor: grab;
    --rz-icon-size: 1rem;
}
.adm-fb__tab:hover { background: var(--adm-hover); }
.adm-fb__tab--active { background: var(--adm-accent-soft); color: var(--adm-accent); }
.adm-fb__tab-count { font-size: var(--adm-font-xs); color: var(--adm-text-3); font-variant-numeric: tabular-nums; }
.adm-fb__tabdrop { flex: none; width: 4.5rem; }
.adm-fb__tabdrop .adm-fb__drop--area { min-height: 1.45rem; }

/* Сетка ряда и ячейки */
.adm-fb__grid { display: grid; grid-template-columns: repeat(var(--adm-fb-cols, 12), minmax(0, 1fr)); gap: .35rem .8rem; padding: .35rem .45rem .5rem; }
.adm-fb__cell { position: relative; grid-column: span var(--adm-fb-span, 6); min-width: 0; }
.adm-fb__cell--tail { display: flex; }
.adm-fb__block {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    width: 100%;
    min-width: 0;
    padding: .3rem .35rem;
    border: 1px solid var(--adm-line);
    border-radius: var(--adm-radius-sm);
    background: var(--adm-subtle);
    cursor: grab;
}
.adm-fb__block:active { cursor: grabbing; }
.adm-fb__block--selected { border-color: var(--adm-accent); box-shadow: 0 0 0 2px var(--adm-accent-soft); }
.adm-fb__block--warn { border-color: color-mix(in srgb, var(--rz-warning) 45%, var(--adm-line)); }
.adm-fb__block--column { background: var(--adm-bg); }
.adm-fb__block-head { display: flex; align-items: center; gap: .3rem; min-width: 0; font-size: var(--adm-font-xs); --rz-icon-size: 1rem; }
.adm-fb__block-head > .rzi { flex: none; color: var(--adm-text-3); }
.adm-fb__block-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; color: var(--adm-title); }
.adm-fb__block-span { flex: none; color: var(--adm-text-3); font-variant-numeric: tabular-nums; }
.adm-fb__block-text { max-height: 4rem; overflow: hidden; font-size: var(--adm-font-xs); color: var(--adm-text-2); white-space: pre-wrap; }
.adm-fb__column { border-top: 1px dashed var(--adm-line-soft); }
.adm-fb__row-preview { padding: .35rem .6rem .5rem; font-size: var(--adm-font-sm); }
.adm-fb__hr { margin: .3rem 0; border: 0; border-top: 1px solid var(--adm-line); }
.adm-fb__heading { font-weight: 700; color: var(--adm-title); }
.adm-fb__note { color: var(--adm-text-2); white-space: pre-wrap; }

/* Редактор условия видимости блока (FormBuilderCondition) — панель свойств узкая (16.5rem, см.
   .adm-fb__work), поэтому лист "поле/оператор/значение" в две строки, а не в одну широкую сетку. */
.adm-fb__cond { display: flex; flex-direction: column; gap: .35rem; padding: .4rem; border: 1px solid var(--adm-line); border-radius: var(--adm-radius-sm); background: var(--adm-subtle); }
.adm-fb__cond--nested { background: var(--adm-bg); }
.adm-fb__cond-head { display: flex; align-items: center; gap: .3rem; }
.adm-fb__cond-head > select { flex: 1 1 auto; min-width: 0; }
.adm-fb__cond-children { display: flex; flex-direction: column; gap: .35rem; }
.adm-fb__cond-group { border-left: 2px solid var(--adm-line); padding-left: .5rem; }
.adm-fb__cond-add { display: flex; gap: .3rem; }
.adm-fb__cond-leaf { display: flex; flex-direction: column; gap: .25rem; padding: .3rem; border: 1px solid var(--adm-line-soft); border-radius: var(--adm-radius-sm); background: var(--adm-bg); }
.adm-fb__cond-leaf-row { display: flex; align-items: center; gap: .25rem; }
.adm-fb__cond-leaf-row > select, .adm-fb__cond-leaf-row > input { flex: 1 1 auto; min-width: 0; }

/* Зоны приёма */
/* Зона в покое НЕ нулевой высоты: подсветка ("armed") приходит с сервера круговым рейсом Blazor
   Server после dragstart, и до её приезда курсор уже едет — в полоску 4px попасть невозможно. */
.adm-fb__drop { border: 1px dashed transparent; border-radius: 6px; transition: height .1s, width .1s, background-color .1s, border-color .1s; }
.adm-fb__drop--h { height: .7rem; }
.adm-fb__drop--h.adm-fb__drop--armed {
    display: grid;
    place-items: center;
    height: 1.5rem;
    border-color: color-mix(in srgb, var(--rz-primary) 45%, transparent);
    background: var(--adm-accent-softer);
}
.adm-fb__drop--v { position: absolute; z-index: 2; top: 0; bottom: 0; left: -.6rem; width: .7rem; }
.adm-fb__drop--v.adm-fb__drop--armed {
    left: -.7rem;
    width: .9rem;
    border-color: color-mix(in srgb, var(--rz-primary) 45%, transparent);
    background: var(--adm-accent-softer);
}
.adm-fb__drop--area {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 2.6rem;
    padding: .3rem;
    border-color: var(--adm-line);
    color: var(--adm-text-3);
    font-size: var(--adm-font-xs);
    text-align: center;
}
.adm-fb__drop--area.adm-fb__drop--armed { border-color: color-mix(in srgb, var(--rz-primary) 50%, transparent); background: var(--adm-accent-softer); }
.adm-fb__drop--over { border-style: solid; border-color: var(--adm-accent); background: var(--adm-accent-soft); }
.adm-fb__drop-label { pointer-events: none; font-size: var(--adm-font-xs); color: var(--adm-accent); }

/* Свойства выделенного узла */
.adm-fb__props-inner { display: flex; flex-direction: column; gap: .6rem; }
.adm-fb__props-head { display: flex; align-items: center; gap: .25rem; padding-bottom: .35rem; border-bottom: 1px solid var(--adm-line-soft); }
.adm-fb__props-title { font-size: .8rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--adm-text-2); }

/* ---------- Адаптив по ширине рабочей области ---------- */
@container adm (max-width: 1100px) {
    .adm-split { grid-template-columns: var(--adm-list-w-narrow, 18rem) minmax(0, 1fr); }
    .adm-blocks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .adm-block { grid-column: span 2; }
    .adm-block--half, .adm-block--third { grid-column: span 1; }
    /* Конструктор форм: свойства уезжают под холст, колонок становится две. */
    .adm-fb__work { grid-template-columns: 13rem minmax(0, 1fr); }
    .adm-fb__side--props { grid-column: 1 / -1; position: static; max-height: none; }
}

/* Узко: одна колонка — список ⇄ карточка (кнопка "назад" в шапке карточки). */
@container adm (max-width: 760px) {
    .adm-split, .adm-split--list-only { grid-template-columns: minmax(0, 1fr); }
    .adm-split > .adm-split__detail { display: none; }
    .adm-split--has-selection > .adm-split__list { display: none; }
    .adm-split--has-selection > .adm-split__detail { display: flex; }
    .adm-detail__back { display: inline-grid; }
    .adm-detail__head { padding: .75rem .85rem .6rem; }
    .adm-detail__body { padding: .85rem .85rem 1.25rem; }
    .adm-savebar { padding: .55rem .85rem; }
    .adm-prop { grid-template-columns: minmax(0, 1fr); gap: .1rem; }
    .adm-blocks { grid-template-columns: minmax(0, 1fr); }
    .adm-block, .adm-block--half, .adm-block--third { grid-column: 1 / -1; }
    .adm-hide-narrow { display: none !important; }
    /* Конструктор форм: одна колонка — палитра, холст, свойства друг под другом. */
    .adm-fb__work { grid-template-columns: minmax(0, 1fr); }
    .adm-fb__side { position: static; max-height: 16rem; }
}

@media (max-width: 767.98px) {
    .adm-page--fill { height: calc(100dvh - 2rem - 50px); min-height: 460px; }
}

/* ProcessStepForm (ui/Components/Forms) — рендерится внутри модулей (correspondence и т.п.),
   поэтому глобально, не scoped .razor.css (та же причина, что у adm-fb* выше). */
.psf-actions { display: flex; gap: .5rem; justify-content: flex-end; padding-top: .85rem; margin-top: .85rem; border-top: 1px solid var(--rz-border-color, var(--rz-base-300)); }

/* AdmActionBar (ui/Components/Admin) — лента команд с переносом лишних кнопок в «Ещё». */
.adm-actionbar { display: flex; align-items: center; gap: .3rem; min-width: 0; }
.adm-actionbar__items { position: relative; display: flex; align-items: center; gap: .2rem; flex: 1 1 auto; min-width: 0; overflow: hidden; }
.adm-actionbar__item { flex: none; white-space: nowrap; }
.adm-actionbar__item--hidden { visibility: hidden; position: absolute; pointer-events: none; }
.adm-actionbar__more { flex: none; }
.adm-actionbar__sep { flex: none; width: 1px; align-self: stretch; margin: .25rem .15rem; background: var(--rz-border-color, var(--rz-base-300)); }
