/* cabinet-v6-wizard.css — SP-987: стили мастера создания документа.
   Дизайн-эталон: docs/design/claude-design/project/ui_kits/kabinet-sed/CreateWizardScreen.jsx v3.
   SP-1171: один экран (вариант А) — сетка колонок + список пресетов; step-стили удалены.
   SP-1178: компактная ОДНА узкая колонка (~460px, центр); тип/маршрут — select.
   SP-1180 (вариант B): форма слева + боковая панель (рейл) справа.
   Ревизия owner 2026-07-03 (`wizard-final-B-united`): ОДИН белый Card (.sedw__panel)
   оборачивает грид .sedw__cols (форма ~1.6fr / рейл ~1fr); форма и рейл — секции
   без своих белых боксов. Разделитель между колонками — border-left рейла (на узком
   экране при collapse → border-top). Капс-заголовки секций облегчены (без uppercase).
   .sedw__col1 (SP-1178) удалён — потребителей нет (grep; _ds_bundle.js — эталон).
   .sedw__actions переиспользован внутри секции «Сводка» рейла.
   SP-1185 (REWORK «Вариант 1», owner live-verify): конструктор волн («Собрать
   вручную») переехал из узкого рейла (~300px, было тесно/криво) в широкий блок
   .sedw__wbuilder-section ПОД .sedw__panel — тот же max-width:920px, свой
   заголовок секции + верхний разделитель, просторная сетка волн/согласующих.
   SP-1253: единая типографика полей + компактная сетка. Раньше `.nk-input`
   (raw-класс на <input>/<select>/<textarea>, не составной DS.TextInput —
   composite `nk-input__el` со своим `font` тут не участвует) не имел
   объявления `font` в этом файле → элементы наследовали UA-дефолт формы,
   а не `--font-sans`/`--fs-md` — отсюда «едущие» шрифты внутри полей.
   Секционные подписи (.sedw__sec/.sedw__fsec) переведены на готовую роль
   `--text-label` (было: голый `--fs-xs` без line-height — расходится с
   остальными экранами, см. cabinet-v6-settings.jsx st2__add-input). Вертикальный
   ритм уплотнён (gap/margin) под образец .sedw__grid ≈ .sedw__fgrid. */

.sedw{ display:flex; flex-direction:column; gap:12px; }

/* ── Единая типографика полей формы (SP-1253) ─────────────────────────────
   `.nk-input` здесь — raw-класс на <input>/<select>/<textarea> (не составной
   DS.TextInput, у которого шрифт живёт на дочернем `.nk-input__el`) — без
   явного `font` элемент наследует браузерный дефолт формы, а не токены
   дизайн-системы — отсюда «едущие» шрифты. `--fs-md` — тот же токен, что уже
   был неявным условием высоты `--control-h` (см. TextInput.jsx `.nk-input__el`
   эталон: `font:var(--fw-regular) var(--fs-md)/1 var(--font-sans)`); здесь
   line-height приподнят до 1.3 — под кириллицу с descender'ами в raw-инпуте
   без вертикального центрирования составного варианта. Соседние экраны
   (cabinet-v6-settings.jsx st2__add-input) для более плотных полей берут
   `--text-table` (14px) — здесь высота контрола уже зафиксирована на 16px
   (--fs-md), понижать размер значит расходиться с --control-h. */
/* SP-1570 (аудит формы 16.08, выкат): у полей мастера класс `nk-input` стоит на голых
   <input>/<select>, но базового правила дизайн-системы для этого класса в рантайме
   нет (оно живёт на составном компоненте TextInput). Поля наследовали браузерные
   размеры и получались разной высоты: input 27px, select 25px, пикер сотрудника 38,
   контрагент 44 — форма выглядела собранной из кусков. Задаём явно: одна высота
   (--control-h), одна рамка, одно скругление, одинаковые отступы. */
.sedw input.nk-input, .sedw select.nk-input, .sedw textarea.nk-input{
  box-sizing:border-box; width:100%; height:var(--control-h); padding:0 10px;
  background:var(--surface); color:var(--text);
  border:var(--border-w) solid var(--border-strong); border-radius:var(--radius-md);
  transition:border-color .12s ease, box-shadow .12s ease;
}
.sedw input.nk-input:focus, .sedw select.nk-input:focus, .sedw textarea.nk-input:focus{
  outline:none; border-color:var(--accent); box-shadow:var(--focus-ring);
}
.sedw .nk-input{ font:var(--fw-regular) var(--fs-md)/1.3 var(--font-sans); }
.sedw select.nk-input{ cursor:pointer; }

/* SP-1570 polish: `.nk-input` — raw-класс, задаёт фиксированный `height:var(--control-h)`
   (34px) и `align-items:center` (components/forms/TextInput.jsx) — верно для <input>/
   <select>, но раздавливает <textarea> в однострочный инпут со скроллбаром (владелец
   15.08: «Комментарий к запуску» выглядел как input). Textarea нужна собственная высота
   (~3 строки, min-height 72px под design-approved-create-document.html §textarea) и
   верхнее выравнивание текста/плейсхолдера вместо вертикального центрирования. */
.sedw textarea.nk-input{ height:auto; min-height:72px; align-items:flex-start; padding:8px 10px; line-height:1.4; }

/* ── Один белый блок (SP-1180 ревизия): внешний Card, грид внутри ────────── */
.sedw__panel{ max-width:840px; width:100%; margin:0 auto; }
.sedw__cols{ display:grid; grid-template-columns:1.6fr 1fr; gap:20px; align-items:start; }
@container sedwc (max-width: 680px){ .sedw__cols{ grid-template-columns:1fr; gap:0; } }
.sedw__form{ min-width:0; }
.sedw__rail{ display:flex; flex-direction:column; gap:12px; position:sticky; top:16px; min-width:0; border-left:var(--border-w) solid var(--divider); padding-left:20px; }
@container sedwc (max-width: 680px){
  .sedw__rail{ position:static; border-left:none; padding-left:0; border-top:var(--border-w) solid var(--divider); padding-top:16px; margin-top:16px; }
}
.sedw__head{ margin-bottom:12px; text-align:left; }
.sedw__title{ font:var(--fw-bold) var(--fs-xl) var(--font-sans); margin:0 0 4px; color:var(--text); }
.sedw__subtitle{ font:var(--fw-regular) var(--fs-sm) var(--font-sans); color:var(--text-muted); margin:0; }
/* SP-1681: черновик title/comment восстановлен после reload протухшей сессии. */

/* ── Секция (лейбл, облегчено SP-1180: без uppercase/letter-spacing) ─────── */
.sedw__sec{ font:var(--text-label); color:var(--text-secondary); margin:0 0 8px; display:flex; align-items:center; gap:7px; min-width:0; }
/* SP-1570 (приёмка 16.08): «Маршрут для типа «HR-документы»» наезжал на край панели —
   иконка и подпись стояли в одном ряду без ограничения ширины. Иконка теперь не
   сжимается, подпись занимает остаток и при нехватке места усекается многоточием. */
.sedw__sec svg{ width:14px; height:14px; flex:none; }
.sedw__sec > span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sedw__sec > .sedw__cnt-badge{ flex:none; margin-left:auto; overflow:visible; }
/* SP-1570 polish: 14→18px — секция→секция под design-approved §.wrap ритм (18-22px),
   было заметно теснее эталона (соседние блоки «Сведения»/«Файлы» слипались). */
.sedw__sec--gap{ margin-top:18px; padding-top:18px; border-top:var(--border-w) solid var(--divider); }
/* Первая секция рейла («Маршрут» через RouteSection) — без верхнего отступа-разделителя */
.sedw__rail > div:first-child .sedw__sec{ margin-top:0; }
.sedw__summary-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; font:var(--text-table); color:var(--text-secondary); padding:4px 0; }
.sedw__summary-row b{ color:var(--text); font-weight:var(--fw-bold); }

/* ── Грид полей (одна узкая колонка сужает контейнер — collapse на 1fr) ──── */
/* SP-1570 polish: gap 10→12/14 (row/col) — под design-approved §.fg
   (поле→поле 12-14px, было 10px везде — заметно теснее эталона). */
.sedw__grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px 14px; }
@container sedwc (max-width: 680px){ .sedw__grid{ grid-template-columns:1fr; } }
/* SP-1570 polish (fixup 15.08, скрин владельца): «Название документа» и
   «Комментарий к запуску» — единственный Field-child внутри `.sedw__grid`
   (2 колонки 1fr 1fr) занимал только первую колонку → визуально «обрубок»
   в половину ширины вместо design-approved §.fld--w (во всю ширину). Тот же
   баг воспроизводится у любого одиночного поля в этом гриде — легаси-фолбэк
   «Подразделение / сотрудник» (когда нет «Сумма» рядом, isHrOrMemo-ветка) и
   «Срок согласования» (когда «Действует до» не рендерится, не contract/annex).
   Единое CSS-правило вместо точечных фиксов в JSX — покрывает все 4 места и
   любые будущие одиночные поля в этом гриде без ручной разметки. */
.sedw__grid > .nk-field:only-child{ grid-column:1 / -1; }

/* ── SP-1181: адаптивная сетка полей схемы (12-кол, span по типу) ────────── */
.sedw__fgrid{ display:grid; grid-template-columns:repeat(12, 1fr); gap:12px 14px; align-items:end; }
.sedw__fs-4{ grid-column:span 4; }
.sedw__fs-6{ grid-column:span 6; }
.sedw__fs-12{ grid-column:span 12; }
@container sedwc (max-width: 480px){ .sedw__fs-4, .sedw__fs-6{ grid-column:span 12; } }

/* Лёгкий подзаголовок секции ВНУТРИ схемы (без тяжёлого border-top/margin `--gap`) */
.sedw__fsec{ font:var(--text-label); color:var(--text-secondary); margin:14px 0 8px; display:flex; align-items:center; gap:7px; }
.sedw__fsec svg{ width:14px; height:14px; }
.sedw__fsec:first-child{ margin-top:0; }

/* ── Загрузка файлов (узкая строка, SP-1171 слайс 2) ───────────────────── */
.sedw__drop{ display:flex; align-items:center; justify-content:center; gap:8px; min-height:40px; border:2px dashed var(--border-strong); border-radius:var(--radius-md); padding:8px 12px; text-align:center; color:var(--text-muted); background:var(--surface-sunken); cursor:pointer; font:var(--text-table); }
.sedw__drop:hover,.sedw__drop[data-drag="true"]{ border-color:var(--accent); background:var(--accent-soft-bg); color:var(--accent-active); }
.sedw__drop svg{ width:16px; height:16px; flex:none; }
.sedw__file{ display:flex; align-items:center; gap:10px; padding:9px 12px; border:var(--border-w) solid var(--border); border-radius:var(--radius-md); margin-top:8px; font:var(--text-table); }
.sedw__file .ft{ font:var(--fw-bold) 9px/1 var(--font-sans); padding:3px 6px; border-radius:var(--radius-xs); color:#fff; flex:none; }
.sedw__file small{ margin-left:auto; color:var(--text-muted); }
.sedw__file-err{ font:var(--fw-bold) var(--fs-2xs) var(--font-sans); color:var(--over-fg); margin-left:4px; }
.sedw__filex{ margin-left:8px; width:24px; height:24px; flex:none; display:inline-flex; align-items:center; justify-content:center; border:none; background:none; cursor:pointer; color:var(--text-muted); border-radius:var(--radius-sm); }
.sedw__filex:hover{ background:var(--over-bg); color:var(--over-fg); }
.sedw__filex svg{ width:14px; height:14px; }

/* ── Конструктор волн (WaveCard) ──────────────────────────────────────── */
/* SP-1185 (REWORK «Вариант 1»): .sedw__wbuilder-section — широкий блок ПОД
   .sedw__panel (тот же max-width:920px, центр). Верхний разделитель + заголовок
   секции («Конструктор волн») делают его частью мастера, а не оторванной
   карточкой. Внутри — просторный вертикальный ритм (было: рейл ~300px, тесно). */
.sedw__wbuilder-section{ max-width:920px; width:100%; margin:28px auto 0; padding-top:28px; border-top:var(--border-w) solid var(--divider); }
.sedw__wbuilder-section-head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 10px; margin-bottom:18px; color:var(--accent); }
.sedw__wbuilder-section-head svg{ flex:none; align-self:center; }
.sedw__wbuilder-section-title{ font:var(--fw-bold) var(--fs-lg) var(--font-sans); color:var(--text); margin:0; }
.sedw__wbuilder-section-sub{ flex-basis:100%; font:var(--fw-regular) var(--fs-sm) var(--font-sans); color:var(--text-muted); margin:2px 0 0; }
.sedw__wbuilder{ border:var(--border-w) solid var(--accent); border-radius:var(--radius-lg); padding:24px; background:var(--surface); display:flex; flex-direction:column; gap:18px; }
.sedw__wbuilder-h{ display:flex; align-items:center; gap:8px; }
.sedw__wbuilder-title{ font:var(--fw-bold) var(--fs-sm) var(--font-sans); flex:1; }
.sedw__wbuilder-saved{ font:var(--fw-bold) var(--fs-2xs) var(--font-sans); color:var(--ok-fg); }
.sedw__wbuilder-unsaved{ font:var(--fw-bold) var(--fs-2xs) var(--font-sans); color:var(--warn-fg); }
.sedw__wave{ border:var(--border-w) solid var(--border); border-radius:var(--radius-md); padding:18px 20px; background:var(--surface-sunken); }
.sedw__wave-h{ display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
.sedw__wave-no{ width:26px; height:26px; border-radius:50%; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; font:var(--fw-bold) var(--fs-xs)/1 var(--font-sans); flex:none; }
.sedw__wave-title{ font:var(--fw-bold) var(--fs-md) var(--font-sans); flex:1; }
.sedw__wave-mode{ display:inline-flex; border:var(--border-w) solid var(--border-strong); border-radius:var(--radius-sm); overflow:hidden; }
.sedw__wave-mode button{ font:var(--fw-regular) var(--fs-xs)/1 var(--font-sans); padding:6px 12px; background:var(--surface); border:none; cursor:pointer; color:var(--text-secondary); }
.sedw__wave-mode button[data-on="true"]{ background:var(--accent); color:#fff; font-weight:var(--fw-bold); }
.sedw__wave-appr{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.sedw__appr-chip{ display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border:var(--border-w) solid var(--border); border-radius:var(--radius-pill); background:var(--surface); font:var(--text-table); }
.sedw__appr-chip button{ border:none; background:none; cursor:pointer; color:var(--text-muted); display:inline-flex; padding:0; border-radius:var(--radius-sm); }
.sedw__appr-chip button:hover{ color:var(--over-fg); }
.sedw__appr-chip svg{ width:12px; height:12px; }
.sedw__add-appr{ display:flex; gap:7px; align-items:center; position:relative; }
.sedw__add-appr select{ flex:1; height:36px; border:var(--border-w) solid var(--border-strong); border-radius:var(--radius-sm); font:var(--text-table); color:var(--text); padding:0 10px; background:var(--surface); }
.sedw__wave-footer{ display:flex; gap:8px; flex-wrap:wrap; }
.sedw__wave-arr{ display:flex; justify-content:center; color:var(--text-muted); font-size:20px; padding:2px 0; }
.sedw__wave-addwave{ padding:14px; background:var(--surface); border:1px dashed var(--border-strong); border-radius:var(--radius-md); cursor:pointer; font:var(--fw-regular) var(--fs-sm) var(--font-sans); color:var(--text-secondary); text-align:center; }
.sedw__wave-addwave:hover{ border-color:var(--accent); color:var(--accent); }
@container sedwc (max-width: 680px){
  .sedw__wbuilder-section{ padding-top:20px; margin-top:20px; }
  .sedw__wbuilder{ padding:16px; }
  .sedw__wave{ padding:14px; }
}

/* ── Пользователи-поиск ─────────────────────────────────────────────────── */
.sedw__usersearch{ position:relative; flex:1; }
.sedw__usersearch input{ width:100%; height:32px; border:var(--border-w) solid var(--border-strong); border-radius:var(--radius-sm); font:var(--text-table); color:var(--text); padding:0 8px; box-sizing:border-box; background:var(--surface); }
.sedw__usersearch input:focus{ outline:none; border-color:var(--accent); }
.sedw__userdrop{ position:absolute; left:0; top:34px; z-index:80; min-width:240px; background:var(--surface); border:var(--border-w) solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-pop); padding:4px; max-height:200px; overflow-y:auto; }
.sedw__userdrop-item{ display:flex; flex-direction:column; width:100%; padding:7px 9px; border:none; background:none; border-radius:var(--radius-sm); cursor:pointer; text-align:left; }
.sedw__userdrop-item:hover{ background:var(--surface-hover); }
.sedw__userdrop-item b{ font:var(--fw-bold) var(--fs-sm) var(--font-sans); }
.sedw__userdrop-item small{ font:var(--fw-regular) var(--fs-2xs) var(--font-sans); color:var(--text-muted); }

/* ── Предпросмотр маршрута ─────────────────────────────────────────────── */
.sedw__rprev{ margin-top:14px; }
.sedw__rprev-sec{ font:var(--text-label); color:var(--text-secondary); margin-bottom:8px; display:flex; align-items:center; gap:7px; }
.sedw__rprev-sec svg{ width:14px; height:14px; }
.sedw__wave-preview{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
.sedw__wvbubble{ padding:4px 10px; background:var(--surface-sunken); border-radius:var(--radius-pill); font:var(--fw-regular) var(--fs-xs)/1 var(--font-sans); color:var(--text-secondary); border:var(--border-w) solid var(--border); }
.sedw__wvbubble b{ font-weight:var(--fw-bold); color:var(--text); }

/* ── Инфо-плашка ───────────────────────────────────────────────────────── */
.sedw__note{ display:flex; align-items:center; gap:8px; margin-top:12px; padding:10px 12px; background:var(--accent-soft-bg); border-radius:var(--radius-md); color:var(--accent-active); font:var(--text-table); }
.sedw__note svg{ width:16px; height:16px; flex:none; }

/* ── Заглушка (нет типов) ──────────────────────────────────────────────── */
.sedw__empty{ text-align:center; padding:32px; color:var(--text-muted); font:var(--text-body); }
.sedw__empty svg{ width:40px; height:40px; margin-bottom:12px; color:var(--steel-400); }

/* ── Ошибка / прогресс запуска ────────────────────────────────────────── */
.sedw__launch-progress{ padding:14px; background:var(--accent-soft-bg); border-radius:var(--radius-md); font:var(--text-table); color:var(--accent-active); margin-bottom:8px; }
.sedw__launch-err{ padding:10px 12px; background:var(--over-bg); border:var(--border-w) solid var(--over-border); border-radius:var(--radius-md); font:var(--text-table); color:var(--over-fg); margin-bottom:8px; }

/* ── Панель действий (SP-1171; с SP-1180 живёт внутри карточки «Сводка» рейла) ── */
.sedw__actions{ display:flex; flex-direction:column; gap:8px; margin-top:12px; }
.sedw__actions .nk-btn{ width:100%; justify-content:center; }
.sedw__hint{ font:var(--fw-regular) var(--fs-2xs) var(--font-sans); color:var(--text-muted); margin-top:8px; }

/* ── SP-1570: аккордеон второстепенных (необязательных) полей ────────────────
   design-approved-create-document.html §.acc — свёрнут по умолчанию, крупный
   заголовок-кнопка со стрелкой (аудитория 50+) + счётчик «заполнено N из M». */
.sedw__acc{ border-top:var(--border-w) solid var(--divider); margin-top:4px; }
.sedw__acc-h{ display:flex; align-items:center; gap:10px; width:100%; padding:12px 0; border:none; background:none; text-align:left; cursor:pointer; }
.sedw__acc-h:hover{ background:var(--surface-hover); }
.sedw__acc-h b{ font:var(--fw-bold) var(--fs-md) var(--font-sans); color:var(--text); }
.sedw__acc-cnt{ margin-left:auto; font:var(--fw-bold) var(--fs-2xs) var(--font-sans); color:var(--text-secondary); background:var(--surface-sunken); border:var(--border-w) solid var(--border); border-radius:var(--radius-pill); padding:3px 9px; white-space:nowrap; }
.sedw__acc-cv{ color:var(--text-secondary); transition:transform .15s; flex:none; }
.sedw__acc[data-open="true"] .sedw__acc-cv{ transform:rotate(180deg); }
/* SP-1570 (аудит 16.08): боковые 2px сдвигали поля аккордеона относительно
   полей основной части формы — левый и правый край не совпадали. */
.sedw__acc-b{ padding:2px 0 16px; }

/* ── SP-1570: предупреждение «нет файла» (design-approved §.warn) ───────────── */
.sedw__warn{ display:flex; align-items:center; gap:9px; margin-top:9px; padding:9px 11px; border-radius:var(--radius-md); background:var(--warn-bg); border:var(--border-w) solid var(--warn-border); color:var(--warn-fg); font:var(--fw-bold) var(--fs-xs)/1.4 var(--font-sans); }
.sedw__warn svg{ flex:none; }

/* ── SP-1570: мини-сводка маршрута (волны по стадиям + ожидаемый срок) ─────── */
.sedw__mini{ display:flex; flex-direction:column; gap:7px; margin-top:10px; padding:10px; border:var(--border-w) solid var(--border); border-radius:var(--radius-md); background:var(--surface-sunken); }
.sedw__mini-row{ display:flex; align-items:center; gap:8px; font:var(--text-table); color:var(--text-secondary); }
.sedw__mini-row b{ color:var(--text); }
.sedw__mini-ico{ color:var(--accent); flex:none; }
.sedw__mini-ico--vio{ color:var(--vio-accent, #6f5bd0); }

/* ── SP-1570: чек-лист готовности (рейл) ─────────────────────────────────────
   design-approved-create-document.html §.ck — клик по пункту скроллит к полю. */
.sedw__cnt-badge{ margin-left:auto; font:var(--fw-bold) var(--fs-2xs) var(--font-sans); color:var(--text-secondary); background:var(--surface-sunken); border:var(--border-w) solid var(--border); border-radius:var(--radius-pill); padding:2px 9px; }
.sedw__ck{ display:flex; flex-direction:column; gap:2px; }
.sedw__ck-item{ display:flex; align-items:center; gap:10px; width:100%; padding:8px 6px; border:none; background:none; border-radius:var(--radius-md); cursor:pointer; text-align:left; font:inherit; }
.sedw__ck-item:hover{ background:var(--surface-hover); }
.sedw__ck-m{ width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; }
.sedw__ck-item[data-ok="true"] .sedw__ck-m{ background:var(--ok-bg); color:var(--ok-fg); }
.sedw__ck-item[data-ok="false"] .sedw__ck-m{ background:var(--over-bg); color:var(--over-fg); }
.sedw__ck-item[data-ok="false"] .sedw__ck-label{ font-weight:var(--fw-bold); }
.sedw__ck-label{ font:var(--text-table); color:var(--text); }
.sedw__ck-item small{ margin-left:auto; color:var(--text-muted); font:var(--fw-regular) var(--fs-2xs) var(--font-sans); }
