/*!
 * smit-form-modal — большое окно редактирования. Пара с smit-form-modal.js.
 * Вкладки сверху, разделы слева, сводка над формой, футер с действиями.
 */

.smit-fmodal-back {
  position: fixed; inset: 0; display: flex; align-items: center; justify-content: center;
  /* Safari и Safari на iOS понимают только префиксную запись — без неё фон
     окна на телефоне не размывается совсем. В проекте так же сделано в
     auth.css, smit-onboarding.css и theme-smit.css. */
  padding: 24px; background: rgba(15, 23, 42, .45);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
body.smit-fmodal-lock { overflow: hidden; }
/* Окно Bootstrap, открытое из окна SmitFormModal (адрес ФИАС из «Нового
   клиента»), — поверх него: у Bootstrap 1055, у нашего окна 2500, и второе окно
   оказывалось под первым (build 2878). */
body.smit-fmodal-lock .modal.show { z-index: 2700; }
body.smit-fmodal-lock .modal-backdrop.show { z-index: 2690; }

.smit-fmodal {
  display: flex; flex-direction: column;
  width: 100%; max-width: 1180px; max-height: calc(100vh - 48px);
  background: var(--surface-card, #fff);
  border: 1px solid var(--border-subtle, #dbe2ea);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}

/* Окно без полей и без главной кнопки (подтверждение удаления, просмотр)
   получает фокус само — чтобы Tab и Esc работали внутри. Кольцо фокуса на
   всём окне читалось как толстая чёрная рамка (build 2872); фокус у полей и
   кнопок внутри по-прежнему виден. */
.smit-fmodal:focus,
.smit-fmodal:focus-visible { outline: none; }

/* ── шапка ── */
.smit-fmodal-head {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 16px; border-bottom: 1px solid var(--border-subtle, #dbe2ea);
}
.smit-fmodal-ico {
  width: 30px; height: 30px; flex: 0 0 30px; border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  background: rgba(67, 183, 122, .14); color: #1f7a52; font-size: .85rem;
}
.smit-fmodal-ttl {
  margin: 0; font-size: var(--sc-fz-lg, 1rem); font-weight: 600;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.smit-fmodal-hacts { margin-left: auto; display: inline-flex; gap: 6px; align-items: center; }
.smit-fmodal-hact {
  display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px;
  border: 1px solid var(--border-subtle, #dbe2ea); border-radius: var(--radius-pill);
  background: var(--surface-card, #fff); color: var(--text-primary, #1f2937);
  font-size: var(--sc-fz-sm, .82rem); cursor: pointer; text-decoration: none; white-space: nowrap;
}
.smit-fmodal-hact:hover { border-color: var(--brand-primary, #43b77a); color: #1f7a52; }
.smit-fmodal-x {
  width: 32px; height: 32px; flex: 0 0 32px; border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--text-muted, #64748b); cursor: pointer;
}
.smit-fmodal-x:hover { background: rgba(100, 116, 139, .12); color: var(--text-primary, #1f2937); }
.smit-fmodal-hact:focus-visible, .smit-fmodal-x:focus-visible {
  outline: 2px solid var(--focus-outline); outline-offset: 2px;
}

/* ── вкладки ── */
/* flex: 0 0 auto — полоса не сжимается: у блока с overflow-x минимальная
   высота считается нулевой, и в окне на весь экран телефона вкладки 54 px
   ужимались до 44 с ползунком прокрутки сбоку (build 2907). */
.smit-fmodal-tabs {
  flex: 0 0 auto;
  display: flex; gap: 4px; padding: 8px 12px 0;
  border-bottom: 1px solid var(--border-subtle, #dbe2ea);
  overflow-x: auto; scrollbar-width: thin;
}
.smit-fmodal-tab {
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  padding: 8px 14px; border: 0; border-bottom: 2px solid transparent;
  background: transparent; color: var(--text-muted, #64748b);
  font-size: var(--sc-fz-sm, .82rem); font-weight: 600; cursor: pointer;
}
.smit-fmodal-tab:hover { color: var(--text-primary, #1f2937); }
.smit-fmodal-tab.is-on {
  color: #1f7a52; border-bottom-color: var(--brand-primary, #43b77a);
  background: rgba(67, 183, 122, .07); border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}
.smit-fmodal-tab:focus-visible { outline: 2px solid var(--focus-outline); outline-offset: -2px; }
.smit-fmodal-cnt {
  min-width: 18px; padding: 0 6px; border-radius: var(--radius-pill);
  background: rgba(100, 116, 139, .16); color: var(--text-muted, #64748b);
  font-size: var(--sc-fz-2xs, .72rem); font-variant-numeric: tabular-nums;
}
.smit-fmodal-tab.is-on .smit-fmodal-cnt { background: rgba(67, 183, 122, .2); color: #1f7a52; }

/* ── тело ── */
.smit-fmodal-main { display: flex; min-height: 0; flex: 1 1 auto; }
.smit-fmodal-nav {
  flex: 0 0 218px; padding: 12px; border-right: 1px solid var(--border-subtle, #dbe2ea);
  overflow-y: auto; display: flex; flex-direction: column; gap: 4px;
}
.smit-fmodal-nav-item {
  display: flex; align-items: center; gap: 9px; text-align: left;
  padding: 9px 11px; border: 1px solid transparent; border-radius: var(--radius-sm);
  background: transparent; color: var(--text-primary, #1f2937);
  font-size: var(--sc-fz-sm, .82rem); cursor: pointer;
}
.smit-fmodal-nav-item:hover { background: rgba(67, 183, 122, .07); }
.smit-fmodal-nav-item.is-on {
  background: rgba(67, 183, 122, .12); border-color: rgba(67, 183, 122, .35);
  color: #1f7a52; font-weight: 600;
}
.smit-fmodal-nav-item:focus-visible { outline: 2px solid var(--focus-outline); outline-offset: 1px; }
.smit-fmodal-nav-ico { width: 16px; text-align: center; opacity: .85; }
.smit-fmodal-nav-lbl { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.smit-fmodal-nav-num {
  flex: 0 0 auto; min-width: 18px; height: 18px; border-radius: var(--radius-pill);
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(100, 116, 139, .14); color: var(--text-muted, #64748b);
  font-size: var(--sc-fz-2xs, .72rem); font-variant-numeric: tabular-nums;
}
.smit-fmodal-nav-item.is-on .smit-fmodal-nav-num { background: rgba(67, 183, 122, .22); color: #1f7a52; }

/* min-height:0 обязателен: внутри лежит .smit-fmodal-body с overflow-y:auto, а
   в колоночном flex-контейнере без этого свойства он не сжимается, а растёт по
   содержимому — прокрутка пропадает, и низ формы уходит под футер. На телефоне
   .smit-fmodal-main переключается в колонку, поэтому ломалось именно там. */
.smit-fmodal-content { flex: 1 1 auto; min-width: 0; min-height: 0; display: flex; flex-direction: column; }
.smit-fmodal-summary { padding: 12px 16px 0; }
.smit-fmodal-sum {
  padding: 10px 14px; border-radius: var(--radius-sm);
  background: rgba(67, 183, 122, .08); border: 1px solid rgba(67, 183, 122, .25);
  font-size: var(--sc-fz-sm, .82rem);
}
.smit-fmodal-warn {
  margin-top: 6px; padding: 8px 12px; border-radius: var(--radius-sm);
  background: rgba(240, 173, 78, .14); color: #8a5a0b;
  font-size: var(--sc-fz-sm, .82rem);
}
.smit-fmodal-body { padding: 12px 16px 16px; overflow-y: auto; flex: 1 1 auto; }
.smit-fmodal-sec-head {
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
  padding-bottom: 8px; margin-bottom: 12px;
  border-bottom: 1px solid var(--border-subtle, #dbe2ea);
}
.smit-fmodal-sec-hint { color: var(--text-muted, #64748b); font-size: var(--sc-fz-sm, .82rem); }

/* ── образец формы: layout:'form' ──
   Итог оценки интерфейса 13.09: в восьми окнах было три способа подписывать
   поля (слева и сверху, жирные 14 px и обычные 12 px), серые плашки вокруг
   групп и поля разной высоты. Здесь одно правило на всё окно:
     • подпись над полем, одним размером и весом; «*» у обязательных;
     • поле, список и группа кнопок — 32 px, во всю ширину своей колонки;
     • подсказка под полем, приглушённая;
     • группы полей — разделы с заголовком и тонкой чертой, без плашек;
     • переключатель подписан справа, обычным весом. */
.smit-fmodal--form .smit-fmodal-body { padding: 16px 20px 20px; }
/* Подпись поля — и .form-label, и простой <label> без класса: старые окна
   (услуга, NAS) подписаны голым label, тема делала его жирным 14 px, и подписи
   двух окон отличались. Подписи переключателей и чипов — со своими классами. */
.smit-fmodal--form .form-label,
.smit-fmodal--form .smit-fmodal-body label:not([class]) {
  display: block; margin: 0 0 4px;
  font-size: var(--sc-fz-sm, .82rem); font-weight: 600; line-height: 1.3;
  color: var(--text-primary, #1f2937);
}
/* Значок-пояснение «i» в подписи — с отступом от текста: в разметке его
   ставят вплотную к «*», и получалось «Название*ⓘ». */
.smit-fmodal--form .smit-fmodal-body label .smit-help,
.smit-fmodal--form .form-label .smit-help { margin-left: 6px; vertical-align: 1px; }
.smit-fmodal--form .smit-req + .smit-help { margin-left: 6px; }
/* Наши выпадающие (список с иконкой, организация) — той же высоты 32 px:
   у обоих своя минимальная высота 38 px. */
.smit-fmodal--form .smit-fmodal-body .smit-isel .smit-isel-btn,
.smit-fmodal--form .smit-fmodal-body .smit-orgsel .smit-orgsel-btn,
.smit-fmodal--form .smit-fmodal-body .smit-orgsel.is-block .smit-orgsel-btn {
  min-height: 32px; height: 32px; padding-top: 0; padding-bottom: 0;
}
.smit-fmodal--form .smit-req { margin-left: 2px; color: var(--smit-state-danger, #dc3545); font-weight: 600; }
.smit-fmodal--form .form-control-sm,
.smit-fmodal--form .form-select-sm { min-height: 32px; font-size: var(--sc-fz-sm, .86rem); }
.smit-fmodal--form textarea.form-control-sm { min-height: 56px; }
.smit-fmodal--form .form-text {
  display: block; margin-top: 4px;
  font-size: var(--sc-fz-xs, .76rem); line-height: 1.3; color: var(--text-muted, #64748b);
}
/* Всё, что нажимается или заполняется в теле окна-формы, — 32 px, какой бы
   размер ни задала разметка (поле без -sm в линейке smit-controls — 38 px, и
   рядом с 32-пиксельной кнопкой строка «плясала»). Многострочное поле, крупная
   кнопка и кнопка-ссылка не трогаются. Класс повторён ради веса. */
.smit-fmodal--form .smit-fmodal-body .form-control.form-control:not(textarea),
.smit-fmodal--form .smit-fmodal-body .form-select.form-select {
  min-height: 32px; height: 32px;
}
.smit-fmodal--form .smit-fmodal-body .btn.btn:not(.btn-lg):not(.btn-link):not(.btn-close) {
  min-height: 32px; height: 32px; padding-top: 0; padding-bottom: 0;
  display: inline-flex; align-items: center; justify-content: center;
  /* build 3083: inline-flex съедает пробел между значком и подписью */
  gap: 6px;
}
/* build 3064: приписка справа от поля («Кбит/с», «₽», «байт») — той же высоты,
   что поле: вертикальные отступы у неё сняты в smit-controls, и группа
   растягивает её до 32 px. Шрифт у полей, селектов и приписок один: поле без
   -sm было 16 px, малое — 13 px, приписка — 16 или 14 px, и в одной вкладке
   стояли три размера текста. На телефоне поле остаётся 16 px — иначе iOS
   увеличивает страницу при вводе. */
@media (min-width: 768px) {
  .smit-fmodal--form .smit-fmodal-body .form-control.form-control,
  .smit-fmodal--form .smit-fmodal-body .form-select.form-select,
  .smit-fmodal--form .smit-fmodal-body .input-group > .input-group-text {
    font-size: var(--sc-fz-sm, .82rem);
  }
}
.smit-fmodal--form .smit-fmodal-body .form-select.form-select { padding-top: 0; padding-bottom: 0; }
/* Разделы окна — без номеров: «1–6» слева читались как обязательные шаги,
   хотя разделы можно заполнять в любом порядке. Номера и прогресс — только у
   мастера (у него своя полоса шагов). */
.smit-fmodal--form .smit-fmodal-nav-num { display: none; }
.smit-fmodal--form .smit-isel { display: block; width: 100%; }
.smit-fmodal--form .smit-isel .smit-isel-btn { width: 100%; min-height: 32px; }
.smit-fmodal--form .smit-seg { min-height: 32px; }
.smit-fmodal-section {
  margin: 20px 0 0; padding: 16px 0 0;
  border-top: 1px solid var(--border-subtle, #dbe2ea);
}
.smit-fmodal-section-title {
  margin: 0 0 12px;
  /* 700 и крупнее подписей: тема рисует подписи полей жирным 700, и заголовок
     раздела с весом 600 выглядел бледнее них — иерархия читалась наоборот
     (build 2885, «Новая сделка»). */
  font-size: var(--sc-fz-lg, 1rem); font-weight: 700; line-height: 1.3;
  color: var(--text-primary, #1f2937);
}
.smit-fmodal--form .form-switch.smit-fmodal-switch {
  display: flex; align-items: center; gap: 8px;
  min-height: 32px; margin: 0; padding-left: 0;
}
.smit-fmodal--form .smit-fmodal-switch .form-check-input { float: none; margin: 0; flex: 0 0 auto; }
.smit-fmodal--form .smit-fmodal-switch .form-check-label { font-weight: 400; font-size: var(--sc-fz-sm, .86rem); }

/* Окно Bootstrap, открытое через smit-modal-bridge: его .modal-body лежит в теле
   окна — свой отступ Bootstrap дал бы двойное поле. */
.smit-fmodal-sec-body > .modal-body { padding: 0; }
/* Пояснение первым в теле окна — без верхнего поля и с отступом до полей. */
.smit-fmodal-sec-body > .modal-body > .smit-fmodal-note:first-child,
.smit-fmodal-sec-body > .smit-fmodal-note:first-child { margin-top: 0; margin-bottom: 12px; }
/* Кнопки подвала одного размера в любом окне: у перенесённых из Bootstrap
   кнопок нет btn-sm, и линейка smit-controls делала их 38 px. Класс повторён
   ради веса — smit-controls подключается позже. */
.smit-fmodal .smit-fmodal-foot > .btn.btn.btn:not(.btn-lg) {
  min-height: 32px; height: 32px; padding: 0 12px;
  font-size: var(--sc-fz-sm, .82rem);
  display: inline-flex; align-items: center; justify-content: center;
}
/* build 3145: display:inline-flex выше перебивал атрибут hidden — действие
   с hidden:true («Удалить» в окне создания) оставалось на виду во всех окнах. */
.smit-fmodal .smit-fmodal-foot > .btn[hidden] { display: none !important; }

/* Пояснение внутри окна: светлая подложка и полоса слева. Сплошная жёлтая
   заливка у простой подсказки выглядела так же тревожно, как запрет. */
.smit-fmodal-note {
  display: flex; align-items: flex-start; gap: 8px;
  margin: 16px 0 0; padding: 8px 12px;
  border-left: 3px solid var(--border-default, #cbd5e1);
  border-radius: var(--radius-sm);
  background: var(--surface-muted, #f8fafc);
  color: var(--text-muted, #64748b);
  font-size: var(--sc-fz-xs, .78rem); line-height: 1.35;
}
.smit-fmodal-note > i { margin-top: 2px; }
/* Уровень «предупреждение» (действие недоступно): светлая жёлтая подложка и
   янтарная полоса — без сплошной заливки. */
.smit-fmodal-note.is-warn { border-left-color: #f59e0b; background: #fffbeb; color: #92400e; }
[data-bs-theme="dark"] .smit-fmodal-note.is-warn, .dark-theme .smit-fmodal-note.is-warn {
  background: rgba(245, 158, 11, .1); color: #fcd34d;
}

/* Select2 в форме — той же высоты, что поля, с отступом у подсказки и одной
   стрелкой (фоновой): служебную стрелку компонента прячем. */
/* Селектор длиннее темы нарочно: у неё select.form-select-sm + .select2-container
   с !important — без этого поле оставалось 31 px, а подсказка стояла вплотную
   к рамке. */
.smit-fmodal--form select + .select2-container .select2-selection--single,
.smit-fmodal--form .select2-container .select2-selection--single {
  height: 32px !important; padding-left: 0 !important;
  border-color: var(--bs-border-color, #dee2e6); border-radius: var(--radius-sm);
}
/* Отступ — полем margin: тема задаёт всему внутри Select2
   padding-left: inherit !important, и отступ на рамке складывался у каждого
   вложенного элемента (подсказка уезжала на 30 px). */
.smit-fmodal--form .select2-container .select2-selection--single .select2-selection__rendered {
  margin-left: 10px; width: calc(100% - 10px);
  /* на телефоне тема добавляет свои 8px слева — текст стоял правее полей */
  padding-left: 0 !important;
}
/* Текст выбранного значения — размером полей рядом: Select2 наследовал 16px
   и выглядел крупнее соседних полей (тариф в «Новой сделке», build 2884).
   На телефоне поля 16px (иначе iOS увеличивает страницу) — там не трогаем. */
@media (min-width: 768px) {
  .smit-fmodal--form .select2-container .select2-selection--single .select2-selection__rendered {
    font-size: .8rem;
  }
}
.smit-fmodal--form .select2-container .select2-selection__arrow { display: none; }
.smit-fmodal--form .select2-container .select2-selection__placeholder { color: var(--text-muted, #64748b); }
[data-bs-theme="dark"] .smit-fmodal-note, .dark-theme .smit-fmodal-note {
  background: rgba(255, 255, 255, .03); border-left-color: #5b6675; color: var(--text-muted);
}

/* ── футер ── */
.smit-fmodal-foot {
  display: flex; gap: 8px; align-items: center; justify-content: flex-end;
  padding: 12px 16px; border-top: 1px solid var(--border-subtle, #dbe2ea);
  background: var(--surface-muted, #fbfcfe);
}
/* Заметки подвала из окон Bootstrap (индикатор шага, значок режима) —
   одной группой слева, кнопки прижаты вправо (build 2878). */
.smit-fmodal-foot-notes {
  display: flex; align-items: center; gap: 8px; margin-right: auto; min-width: 0;
  font-size: var(--sc-fz-sm, .82rem); color: var(--text-muted, #64748b);
}

/* ── тёмная тема ── */
[data-bs-theme="dark"] .smit-fmodal, .dark-theme .smit-fmodal {
  background: var(--surface-card); border-color: var(--border-subtle);
}
[data-bs-theme="dark"] .smit-fmodal-head, .dark-theme .smit-fmodal-head,
[data-bs-theme="dark"] .smit-fmodal-tabs, .dark-theme .smit-fmodal-tabs,
[data-bs-theme="dark"] .smit-fmodal-nav, .dark-theme .smit-fmodal-nav,
[data-bs-theme="dark"] .smit-fmodal-foot, .dark-theme .smit-fmodal-foot,
[data-bs-theme="dark"] .smit-fmodal-sec-head, .dark-theme .smit-fmodal-sec-head { border-color: var(--border-subtle); }
[data-bs-theme="dark"] .smit-fmodal-foot, .dark-theme .smit-fmodal-foot { background: var(--surface-muted); }
[data-bs-theme="dark"] .smit-fmodal-hact, .dark-theme .smit-fmodal-hact {
  background: var(--surface-card); border-color: var(--border-subtle); color: var(--text-primary);
}
[data-bs-theme="dark"] .smit-fmodal-tab, .dark-theme .smit-fmodal-tab { color: var(--text-muted); }
[data-bs-theme="dark"] .smit-fmodal-tab.is-on, .dark-theme .smit-fmodal-tab.is-on { color: #7fd6a8; }
[data-bs-theme="dark"] .smit-fmodal-nav-item, .dark-theme .smit-fmodal-nav-item { color: var(--text-primary); }
[data-bs-theme="dark"] .smit-fmodal-nav-item.is-on, .dark-theme .smit-fmodal-nav-item.is-on { color: #7fd6a8; }
[data-bs-theme="dark"] .smit-fmodal-warn, .dark-theme .smit-fmodal-warn {
  background: rgba(240, 173, 78, .16); color: #dcb464;
}
[data-bs-theme="dark"] .smit-fmodal-sec-hint, .dark-theme .smit-fmodal-sec-hint { color: var(--text-muted); }
[data-bs-theme="dark"] .smit-fmodal-section, .dark-theme .smit-fmodal-section { border-color: var(--border-subtle); }
[data-bs-theme="dark"] .smit-fmodal--form .form-label, .dark-theme .smit-fmodal--form .form-label,
[data-bs-theme="dark"] .smit-fmodal-section-title, .dark-theme .smit-fmodal-section-title { color: var(--text-primary); }
[data-bs-theme="dark"] .smit-fmodal--form .form-text, .dark-theme .smit-fmodal--form .form-text { color: var(--text-muted); }
/* Рамки полей в тёмной теме сливались с фоном окна — контраст от 3:1. */
[data-bs-theme="dark"] .smit-fmodal--form .form-control, .dark-theme .smit-fmodal--form .form-control,
[data-bs-theme="dark"] .smit-fmodal--form .form-select, .dark-theme .smit-fmodal--form .form-select,
[data-bs-theme="dark"] .smit-fmodal--form .smit-isel-btn, .dark-theme .smit-fmodal--form .smit-isel-btn {
  border-color: #5b6675;
}

/* ── телефон: окно на весь экран, разделы — полосой сверху ── */
@media (max-width: 767.98px) {
  .smit-fmodal-back { padding: 0; align-items: stretch; }
  .smit-fmodal { max-width: 100%; max-height: 100dvh; height: 100dvh; border-radius: 0; border: 0; }
  .smit-fmodal-main { flex-direction: column; }
  /* build 2918: подменю разделов — вплотную к краям окна, без отступов слева,
     сверху и справа (решение admin 13.09); снизу — отбивка до содержимого */
  .smit-fmodal-nav {
    flex: 0 0 auto; flex-direction: row; overflow-x: auto; gap: 6px;
    border-right: 0; border-bottom: 1px solid var(--border-subtle, #dbe2ea);
    padding: 0 0 6px; scrollbar-width: none;
  }
  .smit-fmodal-nav::-webkit-scrollbar, .smit-fmodal-tabs::-webkit-scrollbar { display: none; }
  .smit-fmodal-tabs { scrollbar-width: none; }
  .smit-fmodal-nav-item { white-space: nowrap; }
  .smit-fmodal-nav-num { display: none; }        /* в строке номера только шумят */
  /* Вкладки окна — полосой под палец на более тёмной подложке (build 2906,
     замечание admin 13.09): вкладки 34 px на белом не читались переключателем.
     Активная — цвета окна, словно лист, вытянутый из полосы. */
  .smit-fmodal-tabs { padding: 6px 8px 0; gap: 4px; background: #e6ebf0; }
  .smit-fmodal-tab {
    flex: 1 1 0; justify-content: center;
    min-height: 48px; padding: 0 14px; font-size: 15px;
  }
  .smit-fmodal-tab.is-on { background: var(--surface-card, #fff); border-bottom-width: 3px; }
  .dark-theme .smit-fmodal-tabs, [data-bs-theme="dark"] .smit-fmodal-tabs { background: #16191e; }
  .dark-theme .smit-fmodal-tab.is-on, [data-bs-theme="dark"] .smit-fmodal-tab.is-on { background: var(--surface-card); }
  .smit-fmodal-foot { position: sticky; bottom: 0; }
  .smit-fmodal-hact span { display: none; }      /* в шапке остаются иконки */
  /* Подвал под палец: кнопки не меньше 44 px, главная — отдельной строкой во
     всю ширину и нижней, ближе к большому пальцу. Раньше «Сохранить» была
     кнопкой 37 px, прижатой вправо. */
  .smit-fmodal-foot {
    flex-wrap: wrap;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
  }
  .smit-fmodal-foot > .btn { flex: 1 1 0; min-height: 44px; }
  .smit-fmodal .smit-fmodal-foot > .btn.btn.btn:not(.btn-lg) { min-height: 44px; height: auto; }
  /* build 2911: главная кнопка — в той же строке, справа (решение admin
     13.09): две кнопки подвала друг под другом занимали треть экрана. */
  .smit-fmodal-foot > .smit-fmodal-primary { order: 10; }
  /* responsive.css на телефоне обнуляет отступы у всех .row и даёт колонкам
     по 8 px — в форме поля уезжали на 8 px правее заголовков разделов. Внутри
     окна ряд компенсирует их обратно: у тела окна свой отступ, выпирать нечему. */
  .smit-fmodal--form .row { margin-left: -8px !important; margin-right: -8px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .smit-fmodal-back { -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* Выпадающие списки Select2 всегда рисуются в конце body, а окно карточки
   лежит на 2500 — без этого список оказывается под окном, из которого его
   открыли. Поднимаем только раскрытый список: закрытый ничего не перекрывает. */
.select2-container--open { z-index: 3200; }

/* build 2911: «Отмена» рядом с главным действием — красной кнопкой (решение
   admin 13.09): серый контур рядом с зелёной «Сохранить» терялся. Одиночная
   «Закрыть» в окне просмотра остаётся спокойной — там нечего отменять. */
.smit-fmodal-foot:has(> .smit-fmodal-primary) > .btn.smit-fmodal-cancel {
  background: #dc3545 !important; border-color: #dc3545 !important; color: #fff !important;
}
.smit-fmodal-foot:has(> .smit-fmodal-primary) > .btn.smit-fmodal-cancel:hover,
.smit-fmodal-foot:has(> .smit-fmodal-primary) > .btn.smit-fmodal-cancel:focus-visible {
  background: #bb2d3b !important; border-color: #b02a37 !important; color: #fff !important;
}

/* build 2918: окно со своей раскладкой (подменю слева + прокручиваемый
   контент, как «Основное» тарифа) — тело без отступов: подменю вплотную к
   краям окна сверху, слева и снизу, у контента нет второго отступа справа
   (решение admin 13.09). Включается классом smit-fmodal-flush на обёртке. */
.smit-fmodal-body:has(.smit-fmodal-flush) { padding: 0; }

/* Прокрутка внутри окна — тонкая полоса в тон интерфейса вместо системной */
.smit-fmodal, .smit-fmodal * { scrollbar-width: thin; scrollbar-color: rgba(100, 116, 139, .45) transparent; }
.smit-fmodal ::-webkit-scrollbar { width: 8px; height: 8px; }
.smit-fmodal ::-webkit-scrollbar-track { background: transparent; }
.smit-fmodal ::-webkit-scrollbar-thumb {
  background: rgba(100, 116, 139, .38); border-radius: 8px;
  border: 2px solid transparent; background-clip: padding-box;
}
.smit-fmodal ::-webkit-scrollbar-thumb:hover { background-color: rgba(67, 183, 122, .6); }
body.dark-theme .smit-fmodal, body.dark-theme .smit-fmodal *,
[data-bs-theme="dark"] .smit-fmodal, [data-bs-theme="dark"] .smit-fmodal * {
  scrollbar-color: rgba(148, 163, 184, .4) transparent;
}
body.dark-theme .smit-fmodal ::-webkit-scrollbar-thumb,
[data-bs-theme="dark"] .smit-fmodal ::-webkit-scrollbar-thumb { background-color: rgba(148, 163, 184, .35); }

/* build 3084: календарь SmitDateTime / SmitDateRange живёт в <body> на z-index
   2500 — ровно как окно. Во вложенном окне (пополнение поверх счёта, z 2502+)
   он открывался под ним и выглядел «не работает». */
body.smit-fmodal-lock .sdr-popover { z-index: 3000; }
