/* v2-flows.css — дизайн-система v2 (docs/37), слайс «flows»: стили поверх app.css.
 * Макеты: docs/design-v2/Bot_List, Bot_Step1, Bot_Step3, Welcome_Step1, Welcome_Step2,
 * Web_Login (.dc.html). Только токены var(--…); классы v2f-* + переопределение
 * унаследованных .bots-* / .bot-* / .welcome__* / .weblogin__*. */

/* ═════════════════════════ общие примитивы ═════════════════════════ */
.v2f-head { display: flex; flex-direction: column; gap: 6px; }
.v2f-head--center { align-items: center; text-align: center; }
.v2f-h1 {
  margin: 0; font-size: 28px; line-height: 34px; font-weight: var(--weight-semibold);
  letter-spacing: -0.02em; color: var(--text);
}
.v2f-sub { margin: 0; font-size: 15px; line-height: 22px; color: var(--text-muted); }
.v2f-note { margin: 0; font-size: 13px; line-height: 18px; color: var(--text-faint); }
.v2f-block { display: flex; flex-direction: column; gap: 8px; }
.v2f-cap {
  display: flex; align-items: center; gap: 8px; padding: 0 4px;
  font-size: 12px; font-weight: var(--weight-semibold); letter-spacing: .04em;
  text-transform: uppercase; color: var(--text-faint);
}
.v2f-grow { flex: 1 1 auto; min-width: 0; }

/* поле: подпись 14/500 + ввод (радиус 14, --border-strong, 16px — без зума на iOS) */
.v2f-field { display: flex; flex-direction: column; gap: 8px; }
.v2f-field__label { font-size: 14px; font-weight: var(--weight-medium); color: var(--text); }
.v2f-textarea.text-input, .v2f-input.text-input {
  border: 1px solid var(--border-strong); border-radius: 14px; background: var(--surface);
  font-size: 16px; line-height: 24px; color: var(--text);
}
.v2f-textarea.text-input { padding: 14px; resize: none; min-height: 0; }
.v2f-input.text-input { min-height: 48px; padding: 0 14px; }
.v2f-textarea.text-input:focus-visible, .v2f-input.text-input:focus-visible {
  border-color: var(--text); box-shadow: var(--shadow-focus);
}
.v2f-textarea[readonly] { background: var(--surface-sunken); color: var(--text-muted); }

/* «Можно продиктовать» — тихая кнопка с круглой плиткой микрофона */
.v2f-dict {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; min-height: 44px;
  padding: 0 4px; border: 0; background: none; font: inherit; font-size: 14px;
  font-weight: var(--weight-medium); color: var(--text-muted); cursor: pointer;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation; border-radius: var(--radius-md);
}
.v2f-dict__ic {
  width: 32px; height: 32px; border-radius: 50%; background: var(--surface-sunken);
  display: flex; align-items: center; justify-content: center; flex: none;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.v2f-dict__ic .icon { width: 16px; height: 16px; stroke-width: 2; }
.v2f-dict.is-recording { color: var(--text); }
.v2f-dict.is-recording .v2f-dict__ic { background: var(--text); color: var(--surface); animation: v2f-rec 1.2s ease-in-out infinite; }
@keyframes v2f-rec { 0%, 100% { box-shadow: 0 0 0 0 var(--accent-ring); } 50% { box-shadow: 0 0 0 6px transparent; } }
.v2f-dict:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

/* сегмент-радио (Авто / RU / UZ): трек --surface-sunken, активный — белый */
.v2f-seg { display: flex; padding: 3px; border-radius: var(--radius-md); background: var(--surface-sunken); }
.v2f-seg__btn {
  flex: 1 1 0; min-width: 0; height: 38px; border: 0; border-radius: var(--radius-sm);
  background: none; font: inherit; font-size: 14px; font-weight: var(--weight-medium);
  color: var(--text-muted); cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.v2f-seg__btn.is-active {
  background: var(--surface); color: var(--text); font-weight: var(--weight-semibold);
  box-shadow: var(--shadow-seg);
}
.v2f-seg__btn:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

/* прогресс сегментами с подписями: пройденные и текущий — графит */
.v2f-steps { margin: 0; padding: 0; list-style: none; display: flex; gap: 4px; }
.v2f-steps__item {
  flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 6px;
  font-size: 12px; font-weight: var(--weight-medium); color: var(--text-faint);
}
.v2f-steps__bar { height: 4px; border-radius: 2px; background: var(--border); transition: background var(--dur-base) var(--ease-out); }
.v2f-steps__item.is-done .v2f-steps__bar, .v2f-steps__item.is-current .v2f-steps__bar { background: var(--text); }
.v2f-steps__item.is-current { color: var(--text); }
.v2f-steps__label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ✕ — круглая 40px на --surface-sunken */
.v2f-close {
  width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--surface-sunken);
  display: flex; align-items: center; justify-content: center; flex: none; cursor: pointer;
  color: var(--text-muted); -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.v2f-close .icon { width: 16px; height: 16px; stroke-width: 2.2; }
.v2f-close:active { background: var(--border); }
.v2f-close:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

/* кнопки */
.btn.v2f-primary {
  min-height: 50px; border-radius: var(--radius-md); font-size: 16px; font-weight: var(--weight-semibold);
  gap: 8px; text-decoration: none;
}
.btn.v2f-primary .icon { width: 18px; height: 18px; stroke-width: 2; }
.v2f-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 48px; padding: 0 16px; border-radius: var(--radius-md); font: inherit; font-size: 15px;
  font-weight: var(--weight-semibold); cursor: pointer; touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.v2f-outline, .btn.v2f-outline { background: var(--surface); color: var(--text); border: 1px solid var(--border-strong); }
.v2f-outline .icon { width: 18px; height: 18px; stroke-width: 2; }
.v2f-outline:active { background: var(--surface-hover); }
.v2f-outline:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
@media (hover: hover) and (pointer: fine) { .v2f-outline:hover { background: var(--surface-hover); } }
.v2f-outline--back { flex: 0 0 112px; min-height: 50px; gap: 4px; }
.v2f-outline--square { flex: 0 0 50px; width: 50px; min-height: 50px; padding: 0; }
.v2f-outline--wide { width: 100%; }
.v2f-quiet {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; min-height: 44px;
  padding: 0 10px; margin-left: -10px; border: 0; background: none; border-radius: var(--radius-md);
  font: inherit; font-size: 14px; font-weight: var(--weight-medium); color: var(--text-muted); cursor: pointer;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.v2f-quiet .icon { width: 16px; height: 16px; stroke-width: 2; }
.v2f-quiet:active { background: var(--surface-hover); }
.v2f-quiet:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.v2f-quiet.is-loading { opacity: .6; pointer-events: none; }
.v2f-quietlink {
  display: flex; align-items: center; justify-content: center; min-height: 44px;
  font-size: 15px; font-weight: var(--weight-medium); color: var(--text-muted); text-decoration: none;
}
.v2f-quietlink:active { color: var(--text); }

/* нижняя панель задачи: одна панель внизу, белая с блюром, над safe-area */
.v2f-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; max-width: 640px; margin: 0 auto;
  display: flex; gap: 10px; align-items: stretch;
  padding: 12px 16px calc(14px + env(safe-area-inset-bottom, 0px));
  background: rgba(255, 255, 255, 0.96); border-top: 1px solid var(--border);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.v2f-bar > .btn.v2f-primary:only-child, .v2f-bar > .welcome__actions:only-child { flex: 1 1 auto; }
.v2f-bar--stack { flex-direction: column; gap: 2px; }
.v2f-bar .welcome__actions { margin: 0; display: flex; }
.v2f-bar .welcome__actions > .btn { flex: 1 1 auto; }
.v2f-bar .welcome__skip { margin: 0; }
@media (min-width: 700px) {
  .v2f-bar { border-left: 1px solid var(--border); border-right: 1px solid var(--border); border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
}

/* чип-пилюля 26px: статус (точка) / Telegram (иконка) */
.v2f-pill {
  display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px;
  border-radius: var(--radius-pill); font-size: 13px; font-weight: var(--weight-medium);
  white-space: nowrap; max-width: 100%; background: var(--surface-sunken); color: var(--text-muted);
}
.v2f-pill > span:last-child { overflow: hidden; text-overflow: ellipsis; }
.v2f-pill .icon { width: 13px; height: 13px; flex: none; stroke-width: 2; }
.v2f-pill__dot { width: 6px; height: 6px; border-radius: 50%; flex: none; background: currentColor; }
.v2f-pill--won { background: var(--st-won-bg); color: var(--st-won-fg); }
.v2f-pill--work { background: var(--st-work-bg); color: var(--st-work-fg); }
.v2f-pill--lost { background: var(--st-lost-bg); color: var(--st-lost-fg); }
.v2f-pill--overdue { background: var(--st-overdue-bg); color: var(--st-overdue-fg); }
.v2f-pill--won .v2f-pill__dot { background: var(--col-won); }
.v2f-pills { display: flex; flex-wrap: wrap; gap: 6px; }

/* плитка иконки 30px (список-строка) */
.v2f-tile {
  width: 30px; height: 30px; border-radius: 8px; background: var(--surface-sunken); color: var(--text-muted);
  display: flex; align-items: center; justify-content: center; flex: none;
}
.v2f-tile .icon { width: 16px; height: 16px; stroke-width: 1.8; }
.v2f-chev { width: 16px; height: 16px; flex: none; color: var(--text-faint); stroke-width: 2; }

/* карточки и группы */
.v2f-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 14px;
  display: flex; flex-direction: column; gap: 10px;
}
.v2f-grp { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; }

/* янтарная плашка-предупреждение (Bot_Step3) */
.v2f-warns { display: flex; flex-direction: column; gap: 8px; }
.v2f-warn {
  display: flex; gap: 10px; padding: 12px 14px; border-radius: 14px;
  background: var(--why-bg); border: 1px solid var(--why-border);
}
.v2f-warn__ic { width: 18px; height: 18px; flex: none; margin-top: 1px; color: var(--why-icon); stroke-width: 2; }
.v2f-warn__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.v2f-warn__text { font-size: 14px; line-height: 20px; color: var(--text); }
.v2f-warn__act {
  align-self: flex-start; padding: 0; border: 0; background: none; font: inherit; font-size: 14px;
  font-weight: var(--weight-semibold); color: var(--st-work-fg); cursor: pointer; min-height: 28px;
}
.v2f-warn__act:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: 4px; }

/* чипы-выбор (отрасль) — стиль .v2s-ind из слайса «Экраны»; здесь только раскладка */
.v2f-inds { display: flex; flex-wrap: wrap; gap: 8px; }

/* шторка правки (одно поле / параметр) */
.v2f-sheet {
  display: flex; flex-direction: column; gap: 14px; flex: 1 1 auto; min-height: 0; overflow-y: auto;
  padding: 4px 20px calc(24px + env(safe-area-inset-bottom, 0px));
}
.v2f-sheet__title { margin: 0; font-size: 20px; line-height: 26px; font-weight: var(--weight-semibold); color: var(--text); }
.v2f-sheet__inner { display: flex; flex-direction: column; gap: 12px; }
.v2f-sheet .btn.v2f-primary { width: 100%; flex: none; }

/* пустое состояние */
.v2f-empty { padding: 28px 16px; gap: 8px; }
.v2f-empty__ic {
  width: 48px; height: 48px; border-radius: 14px; background: var(--surface-sunken); color: var(--text-muted);
  display: flex; align-items: center; justify-content: center; margin: 0 auto 4px;
}
.v2f-empty__ic .icon { width: 22px; height: 22px; }

/* логотип suv (вариант D) */
.v2f-brand { display: inline-flex; align-items: center; gap: 10px; }
.v2f-brand__logo { display: block; flex: none; }
.v2f-brand__bg { fill: var(--text); }
.v2f-brand__drop { fill: var(--accent); }
.v2f-brand__spark { fill: var(--surface); }
.v2f-brand__name { font-size: 19px; font-weight: var(--weight-bold); letter-spacing: -0.03em; color: var(--text); }

/* ═════════════════════ Конструктор бота — список (Bot_List) ═════════════════════ */
.bots-tab.v2f-bots { max-width: 640px; gap: 18px; padding-bottom: 24px; }
.v2f-bots .bots-create { width: 100%; align-self: stretch; }
.v2f-bots .v2f-empty + .bots-create { margin-top: -4px; }
.bots-list.v2f-botlist { gap: 8px; }
.v2f-botlist .bots-swipe { border-radius: 14px; border: 1px solid var(--border); box-shadow: none; }
.v2f-botlist .bots-swipe__del.is-armed { background: var(--text); }
.bots-row.v2f-botcard {
  padding: 14px; gap: 12px; align-items: center; border: 0; border-radius: 0; box-shadow: none;
  background: var(--surface); color: var(--text); animation: none;
}
.v2f-botcard > .v2f-tile { align-self: flex-start; }
.v2f-botcard .bots-row__body { gap: 4px; }
.v2f-botcard .bots-row__name { font-size: 15px; line-height: 21px; font-weight: var(--weight-medium); color: var(--text); }
.v2f-botcard .bots-row__sub {
  font-size: 13px; color: var(--text-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.v2f-botcard .bots-row__meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.v2f-botcard:active { background: var(--surface-hover); }
.v2f-botcard:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent-ring); }

/* ═════════════════════ Конструктор бота — мастер (Bot_Step1/3) ═════════════════════ */
.bots-tab.bot-wizard.v2f-wiz { max-width: 640px; margin: 0 auto; gap: 0; padding-bottom: 110px; }
.v2f-wiz__top {
  display: flex; flex-direction: column; gap: 14px;
  padding: calc(16px + env(safe-area-inset-top, 0px)) 0 12px;
}
.v2f-wiz__row { display: flex; align-items: center; gap: 10px; }
.v2f-wiz__title {
  flex: 1 1 auto; min-width: 0; font-size: var(--text-headline); font-weight: var(--weight-semibold); color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.v2f-wiz__count { font-size: 13px; color: var(--text-muted); font-variant-numeric: tabular-nums; flex: none; }
.bot-wizard__body.v2f-wiz__body { display: flex; flex-direction: column; gap: 20px; padding-top: 10px; }
.v2f-wiz .bot-wizard__nav { margin-top: 0; justify-content: stretch; } /* горизонталь — от .v2f-bar (0 auto), иначе на десктопе панель прилипает влево */

/* знания */
.v2f-kbstatus { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 13px; color: var(--text-muted); min-height: 0; }
.v2f-kbstatus:empty { display: none; }
.v2f-kbstatus .icon { width: 15px; height: 15px; flex: none; stroke-width: 2; }
.v2f-kbstatus.is-ok { color: var(--st-won-fg); }
.bot-kb-list.v2f-kblist { display: flex; flex-direction: column; align-items: stretch; gap: 8px; margin: 0; }
.v2f-kblist__row { display: flex; flex-wrap: wrap; gap: 6px; }

/* ревью: строка «что понял бот» */
.v2f-rrow {
  width: 100%; display: flex; align-items: center; gap: 12px; min-height: 60px;
  padding: 8px 6px 8px 14px; border: 0; background: var(--surface); font: inherit; text-align: left;
  color: var(--text); cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.v2f-rrow + .v2f-rrow { border-top: 1px solid var(--surface-sunken); }
.v2f-rrow:active { background: var(--surface-hover); }
.v2f-rrow:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent-ring); }
.v2f-rrow__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.v2f-rrow__title { font-size: 15px; font-weight: var(--weight-medium); }
.v2f-rrow__val {
  font-size: 14px; line-height: 19px; color: var(--text-faint);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere;
}
.v2f-rrow__act { width: 44px; height: 44px; flex: none; display: flex; align-items: center; justify-content: center; color: var(--text-faint); }
.v2f-rrow__act .icon { width: 16px; height: 16px; stroke-width: 1.8; }
@media (hover: hover) and (pointer: fine) { .v2f-rrow:hover { background: var(--surface-hover); } }

.v2f-verdict { gap: 8px; }
.v2f-verdict .bot-verdict:empty { display: none; }
.v2f-verdict .bot-verdict__inner { display: flex; flex-direction: column; gap: 8px; }
.v2f-verdict .v2f-quiet { margin-top: -4px; }

/* пример/последний диалог */
.v2f-dialog { gap: 8px; }
.v2f-bubble { max-width: 78%; padding: 9px 12px; font-size: 14px; line-height: 20px; white-space: pre-wrap; overflow-wrap: anywhere; }
.v2f-bubble--user { align-self: flex-end; background: var(--surface-sunken); border-radius: 14px 14px 4px 14px; }
.v2f-bubble--bot { align-self: flex-start; background: var(--surface); border: 1px solid var(--border); border-radius: 14px 14px 14px 4px; }
.v2f-dialog .v2f-note { padding-top: 4px; font-size: 12px; }

/* тест-чат */
.v2f-chatcard { padding: 0; gap: 0; overflow: hidden; }
.bot-chat.v2f-chat {
  margin: 0; border: 0; border-radius: 0; background: var(--bg); min-height: 180px; max-height: 44vh;
  padding: 14px;
}
.v2f-chat .bot-msg__ava { background: var(--surface-sunken); color: var(--text-muted); }
.v2f-chat .bot-msg__ava .icon { width: 14px; height: 14px; }
.v2f-chat .bot-msg--user .bot-msg__bubble { background: var(--surface-sunken); color: var(--text); border-radius: 14px 14px 4px 14px; }
.v2f-chat .bot-msg--bot .bot-msg__bubble { background: var(--surface); border: 1px solid var(--border); border-radius: 14px 14px 14px 4px; }
.v2f-chat .bot-msg__bubble { font-size: 14px; line-height: 20px; padding: 9px 12px; }
.v2f-chat .bot-chat__empty .icon { width: 24px; height: 24px; }
.bot-quickies.v2f-inds {
  flex-wrap: nowrap; overflow-x: auto; margin: 0; padding: 10px 14px; border-top: 1px solid var(--surface-sunken);
  scrollbar-width: none; overscroll-behavior-x: contain;
}
.bot-quickies.v2f-inds::-webkit-scrollbar { display: none; }
.bot-quickies .v2s-ind { flex: none; }
.bot-test-row.v2f-testrow { padding: 10px 14px 14px; gap: 8px; align-items: center; }
.v2f-testrow .v2f-input { flex: 1 1 auto; }
.btn.v2f-send {
  width: 48px; min-width: 48px; height: 48px; padding: 0; border-radius: 50%;
  background: var(--text); border-color: var(--text); color: var(--surface);
}
.btn.v2f-send .icon { width: 18px; height: 18px; stroke-width: 2; }

.bot-publish-gate.v2f-gate { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; line-height: 20px; }
.v2f-gate .icon { width: 16px; height: 16px; flex: none; stroke-width: 2; }
.v2f-gate.is-ok { color: var(--st-won-fg); }
.v2f-gate.is-block { color: var(--text-muted); }

/* канал Telegram */
.bot-tg.v2f-card { margin: 0; box-shadow: none; }
.v2f-card .bot-tg__head { gap: 10px; }
.v2f-card .bot-tg__title { font-size: 15px; font-weight: var(--weight-medium); }
.v2f-card .bot-tg__steps { gap: 4px; }
.v2f-card .bot-tg__steps li { font-size: 14px; color: var(--text-muted); }
.v2f-card .bot-tg__ok { color: var(--st-won-fg); font-size: 14px; gap: 8px; }
.v2f-card .bot-tg__ok .icon { width: 16px; height: 16px; }

/* пульс живого бота — нейтрально (без коралла) */
.v2f-wiz .bot-pulse { border-radius: 14px; box-shadow: none; margin: 0; }
.v2f-wiz .pulse__head { color: var(--text-faint); }

/* шаблоны скриптов продаж в шторке */
.v2f-sheet .sales-tpl { margin: 0; }

/* ═════════════════════ Первый запуск (Welcome_Step1/2) ═════════════════════ */
.welcome.v2f-welcome { max-width: 640px; margin: 0 auto; gap: 0; padding-bottom: 150px; }
.v2f-welcome__top {
  display: flex; flex-direction: column; gap: 18px;
  padding: calc(18px + env(safe-area-inset-top, 0px)) 0 12px;
}
.v2f-welcome__brandrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 40px; }
.v2f-welcome .v2f-steps__item { display: flex; }
.welcome__card.v2f-welcome__card {
  background: none; border: 0; box-shadow: none; border-radius: 0; padding: 10px 0 0;
  -webkit-backdrop-filter: none; backdrop-filter: none; gap: 20px;
}
.v2f-welcome .welcome__title { font-size: 28px; line-height: 34px; font-weight: var(--weight-semibold); letter-spacing: -0.02em; }
.v2f-welcome .welcome__sub { font-size: 15px; line-height: 22px; }
.v2f-welcome .welcome__note { font-size: 13px; line-height: 18px; color: var(--text-faint); }

/* «Распознали»: чипы-правки */
.welcome__chips.v2f-pcs { display: flex; flex-wrap: wrap; gap: 8px; }
.v2f-pc {
  display: inline-flex; align-items: center; gap: 8px; min-height: 40px; max-width: 100%;
  padding: 0 8px 0 14px; border-radius: var(--radius-pill); border: 1px solid var(--border);
  background: var(--surface); font: inherit; font-size: 14px; font-weight: var(--weight-medium);
  color: var(--text); cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.v2f-pc__cap { font-size: 12px; color: var(--text-faint); font-weight: var(--weight-medium); flex: none; }
.v2f-pc__val { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.v2f-pc__edit {
  width: 26px; height: 26px; border-radius: 50%; background: var(--surface-sunken); color: var(--text-muted);
  display: flex; align-items: center; justify-content: center; flex: none;
}
.v2f-pc__edit .icon { width: 13px; height: 13px; stroke-width: 2; }
.v2f-pc:active { background: var(--surface-hover); }
.v2f-pc:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.v2f-pc--static { cursor: default; padding-right: 14px; }
@media (hover: hover) and (pointer: fine) { button.v2f-pc:hover { border-color: var(--border-strong); } }

/* карточка «Ваш рынок» */
.v2f-market {
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 16px;
  display: flex; flex-direction: column; gap: 14px;
}
.v2f-market .v2f-cap { padding: 0; }
.welcome__market.v2f-market__kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 0; }
.v2f-kpi { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.welcome__metric-val.v2f-kpi__val {
  font-size: 28px; line-height: 32px; font-weight: var(--weight-semibold); letter-spacing: -0.02em; color: var(--text);
}
.welcome__metric-val.v2f-kpi__val.is-pos { color: var(--st-won-fg); }
.welcome__metric-cap.v2f-kpi__cap { font-size: 13px; line-height: 17px; color: var(--text-faint); }
.v2f-market__foot { margin: 0; font-size: 13px; color: var(--text-muted); border-top: 1px solid var(--surface-sunken); padding-top: 12px; }
.v2f-market__empty { margin: 0; font-size: 15px; line-height: 22px; color: var(--text-muted); }
.tins-result.v2f-market { gap: 6px; }

/* финал «Готово — ищем компании» */
.v2f-welcome__done { align-items: center; text-align: center; }
.v2f-welcome__done .welcome__done-icon {
  width: 56px; height: 56px; border-radius: 50%; background: var(--st-won-bg); color: var(--st-won-fg);
  display: flex; align-items: center; justify-content: center;
}
.v2f-welcome__done .welcome__done-icon .icon { width: 26px; height: 26px; stroke-width: 2.2; }
.v2f-welcome__done .demo-leads { align-self: stretch; text-align: left; }

/* шторка правки распознанного */
.v2f-inds--wrap { max-height: 46vh; overflow-y: auto; }

/* ═════════════════════════ Веб-вход (Web_Login) ═════════════════════════ */
body.is-weblogin { background: var(--bg); }
.weblogin__card.v2f-login {
  max-width: 440px; gap: 20px; padding: 32px 36px 24px; background: var(--surface);
  border: 1px solid var(--border); border-radius: 22px; box-shadow: var(--shadow-card);
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
.v2f-login .v2f-brand__logo { width: 32px; height: 32px; }
.v2f-login .v2f-brand__name { font-size: 20px; }
.v2f-login__head { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.v2f-login .weblogin__title { font-size: 24px; line-height: 30px; font-weight: var(--weight-semibold); letter-spacing: -0.01em; }
.v2f-login .weblogin__hint { font-size: 15px; line-height: 22px; color: var(--text-muted); max-width: 34ch; }
.weblogin__steps { margin: 0; padding: 0; list-style: none; align-self: stretch; display: flex; flex-direction: column; gap: 10px; text-align: left; }
.weblogin__step { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; line-height: 20px; color: var(--text); }
.weblogin__step-n {
  width: 24px; height: 24px; border-radius: 50%; background: var(--surface-sunken); color: var(--text);
  font-size: 13px; font-weight: var(--weight-semibold); display: flex; align-items: center; justify-content: center; flex: none;
}
.v2f-login .weblogin__qr { padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); box-shadow: none; }
.v2f-login .weblogin__qr svg { width: 200px; height: 200px; }
.weblogin__cta { align-self: stretch; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.weblogin__cta .weblogin__open { width: 100%; }
.v2f-login .weblogin__status { font-size: 14px; color: var(--text-muted); gap: 8px; }
.v2f-login .weblogin__dot { background: var(--why-icon); }
.v2f-login .weblogin__status.is-ok .weblogin__dot { background: var(--col-won); }
.v2f-login .weblogin__status.is-ok .weblogin__status-text { color: var(--st-won-fg); }
.v2f-login .weblogin__ttl { font-size: 13px; color: var(--text-faint); }
.v2f-login .weblogin__ttl-val { color: var(--text-muted); font-weight: var(--weight-semibold); }
.v2f-login .weblogin__linkrow { border-top: 0; padding-top: 0; }
.weblogin__tools {
  align-self: stretch; display: flex; justify-content: center; flex-wrap: wrap; gap: 4px;
  border-top: 1px solid var(--surface-sunken); padding-top: 8px;
}
.weblogin__tool {
  min-height: 44px; padding: 0 12px; border: 0; background: none; border-radius: var(--radius-md);
  font: inherit; font-size: 14px; font-weight: var(--weight-medium); color: var(--text-muted);
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.weblogin__tool .icon { width: 16px; height: 16px; stroke-width: 2; }
.weblogin__tool:active { background: var(--surface-hover); }
.weblogin__tool:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
@media (hover: hover) and (pointer: fine) { .weblogin__tool:hover { background: var(--surface-hover); color: var(--text); } }
.weblogin__card--msg.v2f-login .weblogin__icon { background: var(--surface-sunken); color: var(--text-muted); border-radius: 14px; }
.weblogin__card--msg.v2f-login .btn.v2f-primary { width: 100%; }
@media (max-width: 480px) {
  .weblogin__card.v2f-login { padding: 24px 20px 18px; border-radius: var(--radius-xl); }
  .weblogin__tools { flex-wrap: nowrap; gap: 0; }
  .weblogin__tool { padding: 0 8px; font-size: 13px; white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
  .v2f-dict.is-recording .v2f-dict__ic { animation: none; }
  .v2f-steps__bar { transition: none; }
}

/* свайп «Удалить»: действие под строкой проявляется только во время свайпа (bots.js is-swiping) */
.v2f-botlist .bots-swipe:not(.is-swiping) .bots-swipe__actions { visibility: hidden; }

/* прогресс первого запуска: .welcome__step — тест-хук; гасим старую раскладку «точка + подпись» */
.v2f-steps .welcome__step { align-items: stretch; gap: 6px; color: var(--text-faint); }
.v2f-steps .welcome__step.is-done { color: var(--text-faint); }
.v2f-steps .welcome__step.is-current { color: var(--text); }
.welcome__skip a.v2f-quietlink { text-decoration: none; color: var(--text-muted); }
/* reduced-motion-фолбэк app.css красит .welcome__card в --surface !important — у v2 экран без карточки */
@media (prefers-reduced-motion: reduce) {
  .welcome__card.v2f-welcome__card { background: transparent !important; }
}
/* в шторке правки заголовок уже называет поле — подпись поля только для скринридера */
.v2f-sheet > .v2f-field > .v2f-field__label {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.v2f-welcome .v2f-field__label { color: var(--text-muted); font-weight: var(--weight-regular); }

/* ═════════════ Мастер бота docs/38 §5: источники, разделы профиля, готовность, файлы ═════════════
 * Мобайл — пошагово (форма одной колонкой, готовность над формой). Десктоп ≥1100 — шаги слева,
 * форма по центру, превью «как ответит бот» справа. Только токены v2; коралл — лишь главная кнопка. */
.bots-tab.bot-wizard.v2f-wiz.bw { padding-bottom: 150px; }
.bw .v2f-steps { gap: 3px; }
.bw .v2f-steps__label { display: none; }
.bw-grid { display: flex; flex-direction: column; gap: 14px; }
.bw-steps { display: none; }
.bw-prev { display: none; }
.bw-main { min-width: 0; }

/* готовность + «Чего не хватает» */
.bw-ready {
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
  padding: 12px 14px; display: flex; flex-direction: column; gap: 8px;
}
.bw-ready__row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.bw-ready__title { font-size: 14px; font-weight: var(--weight-medium); color: var(--text); }
.bw-ready__pct { font-size: 20px; line-height: 24px; font-weight: var(--weight-semibold); color: var(--text); font-variant-numeric: tabular-nums; }
.bw-ready__bar { height: 6px; border-radius: 3px; background: var(--surface-sunken); overflow: hidden; }
.bw-ready__fill {
  display: block; height: 100%; background: var(--text); transform-origin: left center;
  transition: transform var(--dur-slow) var(--ease-out);
}
.bw-ready__ok { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 13px; color: var(--st-won-fg); }
.bw-ready__ok .icon { width: 15px; height: 15px; stroke-width: 2; }
.bw-ready__toggle {
  display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 36px;
  margin: 0 -4px; padding: 0 4px; border: 0; background: none; border-radius: var(--radius-sm);
  font: inherit; font-size: 14px; font-weight: var(--weight-medium); color: var(--text-muted); cursor: pointer;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.bw-ready__chev { width: 16px; height: 16px; stroke-width: 2; transform: rotate(90deg); transition: transform var(--dur-fast) var(--ease-out); }
.bw-ready__toggle[aria-expanded="true"] .bw-ready__chev { transform: rotate(-90deg); }
.bw-ready__toggle:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.bw-miss { display: none; margin: 0; padding: 0; list-style: none; flex-direction: column; }
.bw-miss.is-open { display: flex; }
.bw-miss__item {
  width: 100%; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 0;
  border: 0; border-top: 1px solid var(--surface-sunken); background: none; font: inherit; text-align: left;
  color: var(--text); cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.bw-miss__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.bw-miss__sec { font-size: 12px; font-weight: var(--weight-medium); color: var(--text-faint); }
.bw-miss__hint { font-size: 14px; line-height: 19px; }
.bw-miss__chev { width: 14px; height: 14px; flex: none; color: var(--text-faint); stroke-width: 2; }
.bw-miss__item:active { background: var(--surface-hover); }
.bw-miss__item:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent-ring); border-radius: var(--radius-sm); }
@media (hover: hover) and (pointer: fine) { .bw-miss__item:hover .bw-miss__hint { text-decoration: underline; text-underline-offset: 3px; } }

/* поле раздела: подпись + метка «заполнено автоматически — проверьте» */
.bw-field__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.bw-auto {
  display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px;
  border-radius: var(--radius-pill); background: var(--surface-sunken); color: var(--text-muted);
  font-size: 12px; font-weight: var(--weight-medium); white-space: nowrap;
}
.bw-auto .icon { width: 12px; height: 12px; stroke-width: 2; flex: none; }
.bw-field.is-auto > .v2f-input.text-input, .bw-field.is-auto > .bw-dictwrap > .v2f-textarea.text-input,
.bw-field.is-auto > .v2f-textarea.text-input, .bw-field.is-auto .bw-strlist .v2f-input.text-input { background: var(--surface-2); }
.bw-field.is-flash { animation: bw-flash 1.4s var(--ease-out); border-radius: 14px; }
@keyframes bw-flash { 0%, 30% { background: var(--why-bg); box-shadow: 0 0 0 8px var(--why-bg); } 100% { background: transparent; box-shadow: 0 0 0 8px transparent; } }
.bw-dictwrap, .bw-stack { display: flex; flex-direction: column; gap: 8px; }
.bw-dictwrap { gap: 4px; }
.bw-chips.v2f-inds { gap: 8px; }
.bw-chips .v2s-ind { white-space: normal; text-align: left; min-height: 40px; }

/* ✕ / корзина в строках — 44×44 зона */
.bw-x {
  width: 44px; height: 44px; flex: none; display: flex; align-items: center; justify-content: center;
  border: 0; background: none; border-radius: var(--radius-md); color: var(--text-faint); cursor: pointer;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.bw-x .icon { width: 16px; height: 16px; stroke-width: 2; }
.bw-x:active { background: var(--surface-hover); color: var(--text); }
.bw-x:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
@media (hover: hover) and (pointer: fine) { .bw-x:hover { background: var(--surface-hover); color: var(--text); } }
.bw-strlist { display: flex; flex-direction: column; gap: 8px; }
.bw-strlist__row { display: flex; align-items: center; gap: 4px; }
.bw-strlist__row .v2f-input { flex: 1 1 auto; min-width: 0; }
.bw-add.v2f-quiet { margin-top: -2px; }

/* каталог / FAQ: редактируемые карточки позиций */
.bw-items { display: flex; flex-direction: column; gap: 10px; }
.bw-item {
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
  padding: 10px 6px 12px 12px; display: flex; flex-direction: column; gap: 8px;
}
.bw-item > .v2f-input, .bw-item > .v2f-textarea { margin-right: 6px; }
.bw-item__row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.bw-item__row > .v2f-input { flex: 1 1 auto; min-width: 0; }
.bw-item__row--price { margin-right: 6px; }
.bw-item__row--price > .v2f-input { flex: 0 0 38%; }
.bw-price { position: relative; flex: 1 1 auto; min-width: 0; display: flex; }
.bw-price .v2f-input { flex: 1 1 auto; min-width: 0; padding-right: 48px; font-variant-numeric: tabular-nums; }
.bw-price__cur { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 14px; color: var(--text-faint); pointer-events: none; }
.bw-item__row--flags { flex-wrap: wrap; gap: 8px 20px; padding: 2px 0; }
.bw-toggle { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; color: var(--text-muted); }
.bw-item .v2f-input.text-input { min-height: 44px; }
.bw-empty { padding: 4px 2px; }
.bw-additem { margin-top: 2px; }

/* шаг 0: зона drag&drop */
.bw-drop {
  display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center;
  padding: 20px 16px; border: 1.5px dashed var(--border-strong); border-radius: 14px; background: var(--surface);
  transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.bw-drop.is-over { background: var(--surface-sunken); border-color: var(--text); }
.bw-drop__ic {
  width: 40px; height: 40px; border-radius: 50%; background: var(--surface-sunken); color: var(--text-muted);
  display: flex; align-items: center; justify-content: center; margin-bottom: 2px;
}
.bw-drop__ic .icon { width: 18px; height: 18px; stroke-width: 2; }
.bw-drop__title { font-size: 15px; font-weight: var(--weight-medium); color: var(--text); }
.bw-drop__sub { font-size: 13px; line-height: 18px; color: var(--text-faint); max-width: 34ch; }
.bw-drop__btn { margin-top: 6px; min-height: 44px; }
.bw-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; pointer-events: none; }
.bw-drop, .bw-addfile-wrap { position: relative; }
.bw-addfile-wrap { display: flex; }
.bw-addfile.v2f-outline { min-height: 44px; font-size: 14px; }

/* строки загрузок / файлов */
.bw-upl, .bw-files { display: flex; flex-direction: column; gap: 8px; }
.bw-upl:empty { display: none; }
.bw-upl__row {
  display: flex; align-items: center; gap: 12px; padding: 8px 4px 8px 12px;
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
}
.bw-upl__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.bw-upl__name { font-size: 14px; font-weight: var(--weight-medium); color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bw-upl__sub { font-size: 13px; line-height: 18px; color: var(--text-faint); overflow-wrap: anywhere; }
.bw-upl__row.is-error .bw-upl__sub { color: var(--danger); }
.bw-upl__row.is-warn .bw-upl__sub { color: var(--text-muted); }
.bw-upl__row.is-done .bw-upl__sub { color: var(--st-won-fg); }
.bw-upl__bar { display: block; height: 4px; border-radius: 2px; background: var(--surface-sunken); overflow: hidden; margin-top: 3px; }
.bw-upl__fill { display: block; height: 100%; background: var(--text); transform-origin: left center; transition: transform var(--dur-base) var(--ease-out); }
.bw-upl__warn { display: flex; align-items: flex-start; gap: 6px; font-size: 13px; line-height: 18px; color: var(--text); }
.bw-upl__warn .icon { width: 14px; height: 14px; flex: none; margin-top: 2px; color: var(--why-icon); stroke-width: 2; }

/* «Из файлов»: чипы фактов (тап — поправить, ✕ — удалить) */
.bw-src { padding-top: 16px; border-top: 1px solid var(--border); }
.bw-facts { display: flex; flex-wrap: wrap; gap: 6px; }
.bw-fact {
  display: inline-flex; align-items: center; max-width: 100%; min-height: 36px;
  border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--surface);
}
.bw-fact__text {
  min-width: 0; min-height: 36px; padding: 0 2px 0 12px; border: 0; background: none; font: inherit; font-size: 14px;
  color: var(--text); text-align: left; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  border-radius: var(--radius-pill) 0 0 var(--radius-pill); -webkit-tap-highlight-color: transparent;
}
.bw-fact__x {
  width: 34px; min-height: 36px; flex: none; display: flex; align-items: center; justify-content: center;
  border: 0; background: none; color: var(--text-faint); cursor: pointer; border-radius: 0 var(--radius-pill) var(--radius-pill) 0;
  -webkit-tap-highlight-color: transparent;
}
.bw-fact__x .icon { width: 14px; height: 14px; stroke-width: 2; }
.bw-fact__text:active, .bw-fact__x:active { background: var(--surface-hover); }
.bw-fact__text:focus-visible, .bw-fact__x:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent-ring); }

/* Telegram: инструкция BotFather по шагам */
.bw-tgsteps { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; }
.bw-tgstep { display: flex; gap: 12px; }
.bw-tgstep__n {
  width: 24px; height: 24px; border-radius: 50%; background: var(--surface-sunken); color: var(--text);
  font-size: 13px; font-weight: var(--weight-semibold); display: flex; align-items: center; justify-content: center; flex: none;
}
.bw-tgstep__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; padding-top: 2px; }
.bw-tgstep__title { font-size: 14px; line-height: 20px; color: var(--text); }
.bw-tgstep__btn.v2f-outline { min-height: 44px; font-size: 14px; }
.bw-code {
  display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 12px; border: 0;
  border-radius: var(--radius-sm); background: var(--surface-sunken); font: inherit; font-size: 14px;
  font-weight: var(--weight-semibold); color: var(--text); cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.bw-code .icon { width: 14px; height: 14px; stroke-width: 2; color: var(--text-muted); }
.bw-code:active { background: var(--border); }
.bw-code:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

/* превью «как ответит бот» */
.bw-prev {
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 14px;
  flex-direction: column; gap: 12px;
}
.bw-prev__head { display: flex; align-items: center; gap: 10px; }
.bw-prev__who { display: flex; flex-direction: column; min-width: 0; }
.bw-prev__name { font-size: 15px; font-weight: var(--weight-medium); color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bw-prev__sub { font-size: 12px; color: var(--text-faint); }
.bw-prev__chat { display: flex; flex-direction: column; gap: 8px; padding: 12px; margin: 0 -14px; background: var(--bg); border-top: 1px solid var(--surface-sunken); border-bottom: 1px solid var(--surface-sunken); }
.bw-prev__chat .v2f-bubble { max-width: 88%; font-size: 13px; line-height: 18px; }
.bw-prev__gap {
  display: flex; align-items: flex-start; gap: 6px; padding: 8px 10px; border-radius: var(--radius-md);
  background: var(--why-bg); border: 1px solid var(--why-border); font-size: 13px; line-height: 18px; color: var(--text);
}
.bw-prev__gap .icon { width: 14px; height: 14px; flex: none; margin-top: 2px; color: var(--why-icon); stroke-width: 2; }

/* нижняя панель: шаг 0 — «Собрать черновик» + тихое «Пропустить» */
.bw-bar__stack { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bw-bar__stack .btn.v2f-primary { width: 100%; }
.bw-skip.v2f-quietlink { border: 0; background: none; font: inherit; font-size: 15px; font-weight: var(--weight-medium); cursor: pointer; }

@media (min-width: 1100px) {
  .bots-tab.bot-wizard.v2f-wiz.bw { max-width: 1000px; padding-bottom: 120px; }
  .bw .v2f-wiz__top .v2f-steps { display: none; }
  .bw-grid { display: grid; grid-template-columns: 208px minmax(0, 1fr) 288px; gap: 28px; align-items: start; }
  .bw-nav, .bw-prev { position: sticky; top: 20px; }
  .bw-nav { display: flex; flex-direction: column; gap: 14px; }
  .bw-prev { display: flex; }
  .bw-steps { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; }
  .bw-steps__btn {
    width: 100%; display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 10px;
    border: 0; border-radius: var(--radius-md); background: none; font: inherit; font-size: 14px;
    font-weight: var(--weight-medium); color: var(--text-muted); text-align: left; cursor: pointer;
  }
  .bw-steps__btn:disabled { cursor: default; color: var(--text-faint); }
  .bw-steps__btn.is-current { background: var(--surface-sunken); color: var(--text); }
  .bw-steps__btn:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
  .bw-steps__btn:not(:disabled):not(.is-current):hover { background: var(--surface-hover); color: var(--text); }
  .bw-steps__n {
    width: 22px; height: 22px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center;
    background: var(--surface-sunken); font-size: 12px; font-weight: var(--weight-semibold); color: var(--text-muted);
  }
  .bw-steps__btn.is-current .bw-steps__n { background: var(--text); color: var(--surface); }
  .bw-steps__btn.is-ok .bw-steps__n { background: var(--st-won-bg); color: var(--st-won-fg); }
  .bw-steps__n .icon { width: 12px; height: 12px; stroke-width: 2.4; }
  .bw-steps__label { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .bw-steps__miss {
    min-width: 20px; height: 20px; padding: 0 6px; border-radius: var(--radius-pill); background: var(--why-bg);
    border: 1px solid var(--why-border); font-size: 12px; font-weight: var(--weight-semibold); color: var(--text);
    display: inline-flex; align-items: center; justify-content: center;
  }
  .v2f-bar.bw-bar { max-width: 1032px; padding-left: calc(16px + 208px + 28px); padding-right: calc(16px + 288px + 28px); }
}
@media (prefers-reduced-motion: reduce) {
  .bw-ready__fill, .bw-upl__fill, .bw-ready__chev { transition: none; }
  .bw-field.is-flash { animation: none; }
}

/* ── docs/39: жалоба на лид ── */
.complaint-sheet .sheet__options { display: flex; flex-direction: column; gap: var(--space-2); margin: var(--space-3) 0; }
.reason-option.is-on { border-color: var(--text); background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--text); }
.reason-option.is-on .reason-option__icon { color: var(--text); border-color: var(--text); }
.lead-feedback__complain { color: var(--text-muted); }

/* ── docs/39: просмотр глазами клиента (read-only сессия) ── */
/* Полоса фиксирована сверху; body получает отступ ровно в её высоту (поток — шапка, контент — идёт
 * под ней). --ro-h — запас до первой отрисовки; точную высоту (перенос текста в 2 строки, safe-area
 * в Telegram, длинный uz-текст) readonly.js меряет и пишет в style body (ResizeObserver).
 * 49b: на телефоне .topbar — position: relative (v2-shell). `top` у relative-элемента сдвигал шапку
 * ЕЩЁ на --ro-h поверх отступа body (двойной сдвиг: пустая полоса над шапкой, шапка наезжала на
 * заголовок экрана). Сдвиг `top` — только у закреплённого (fixed/sticky), т.е. у десктоп-сайдбара. */
body.is-readonly { --ro-h: 64px; padding-top: var(--ro-h); }
body.is-readonly #app,
body.is-readonly .app-shell__main { padding-top: 8px; box-sizing: border-box; }
/* липкие шапки экранов не уезжают под полосу при прокрутке */
body.is-readonly .v2b-ibc-head,
body.is-readonly .lv-card--page .lead-tabs.lv-seg { top: var(--ro-h); }
@media (min-width: 900px) {
  body.is-readonly { --ro-h: 56px; }
  body.is-readonly.is-browser .topbar,
  body.is-readonly.is-browser .topbar__nav { top: var(--ro-h); }
  /* инбокс во всю высоту окна — минус полоса (иначе композер уходит за низ экрана) */
  body.is-readonly.is-browser.v2b-wide .v2b-ib.b2c-tab { height: calc(100dvh - var(--ro-h)); }
}
.ro-banner {
  position: fixed; top: 0; left: 0; right: 0; z-index: 90; min-height: var(--ro-h, 52px); box-sizing: border-box;
  display: flex; align-items: center; gap: 12px; flex-wrap: nowrap;
  padding: 10px 16px; padding-top: max(10px, env(safe-area-inset-top));
  background: #1C1917; color: #fff; font-size: 14px; line-height: 1.35;
}
.ro-banner__dot { width: 10px; height: 10px; border-radius: 50%; background: #E0543F; flex: none; }
.ro-banner__text { flex: 1 1 auto; min-width: 0; }
@media (max-width: 899px) {
  .ro-banner { font-size: 13px; padding-left: 12px; padding-right: 12px; gap: 10px; }
  .ro-banner__tail { display: none; }
  .ro-banner__text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .ro-banner__exit { padding: 0 10px; font-size: 13px; }
}
.ro-banner__exit {
  flex: none; min-height: 36px; padding: 0 14px; border-radius: 10px; cursor: pointer;
  border: 1px solid #57534E; background: transparent; color: #fff; font: inherit; font-size: 14px;
}
.ro-banner__exit:hover { background: rgba(255, 255, 255, 0.08); }
.ro-banner__exit:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.35); }
body.is-readonly [data-ro-action],
body.is-readonly .btn-move,
body.is-readonly .lv-btn--primary { opacity: 0.45; cursor: not-allowed; }

/* Вход с компьютера: число для сверки с ботом (анти-фишинг). */
.v2f-login .weblogin__match { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.v2f-login .weblogin__match-label { font-size: var(--text-footnote); color: var(--text-muted); }
.v2f-login .weblogin__match-code { font-size: var(--text-display); line-height: 1.05; font-weight: 700; letter-spacing: 0.08em; font-variant-numeric: tabular-nums; }
.v2f-login .weblogin__match-hint { font-size: var(--text-caption); line-height: 16px; color: var(--text-faint); max-width: 320px; }

/* Пояснение «файл в чате с ботом» (первая выгрузка внутри Telegram). */
.v2-deliver { display: flex; flex-direction: column; gap: 12px; padding: 4px 16px 20px; }
.v2-deliver__title { margin: 0; font-size: var(--text-title-2); line-height: 1.2; font-weight: 700; }
.v2-deliver__text { margin: 0; font-size: var(--text-body); line-height: 1.5; color: var(--text-muted); }
.v2-deliver__go, .v2-deliver__stay { width: 100%; }

/* ── docs/40 срез C/D: сфера, чек-лист данных, покрытие, прогон вопросов (только токены) ── */
.bw-spheres { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-3, 12px); margin-top: var(--space-2, 8px); }
.bw-sphere { display: flex; gap: var(--space-3, 12px); align-items: flex-start; text-align: left; padding: var(--space-3, 12px); border-radius: var(--radius-lg, 16px); border: 1px solid var(--border); background: var(--surface); color: inherit; font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation; transition: border-color var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard); }
.bw-sphere:active { background: var(--surface-2, var(--surface)); }
.bw-sphere.is-selected { border-color: var(--accent, #E85A4F); box-shadow: 0 0 0 1px var(--accent, #E85A4F) inset; }
.bw-sphere__ic { flex: 0 0 auto; width: 36px; height: 36px; border-radius: var(--radius-md, 12px); display: grid; place-items: center; background: var(--surface-2, var(--surface)); color: var(--text-secondary, var(--text-muted)); }
.bw-sphere.is-selected .bw-sphere__ic { color: var(--accent, #E85A4F); }
.bw-sphere__body { display: grid; gap: 2px; min-width: 0; }
.bw-sphere__title { font-weight: 600; font-size: var(--text-md); }
.bw-sphere__sub { color: var(--text-secondary, var(--text-muted)); font-size: var(--text-sm); }
.bw-sphere__meta { color: var(--text-muted); font-size: var(--text-xs); }
/* docs/42 срез L: ~20 сфер. Телефон — компактная сетка 2 колонки и «Показать все сферы» после первых 6. */
.bw-spheres__more { display: none; width: 100%; min-height: 40px; margin-top: var(--space-2, 8px); padding: 0 var(--space-3, 12px); border-radius: var(--radius-md); border: 1px solid var(--border); background: var(--surface-sunken, var(--surface)); color: var(--text); font: inherit; font-size: var(--text-sm); font-weight: 600; cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.bw-spheres__more:active { background: var(--surface-2, var(--surface)); }
@media (max-width: 699px) {
  .bw-spheres { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2, 8px); }
  .bw-sphere { flex-direction: column; gap: var(--space-2, 8px); padding: var(--space-3, 12px) 10px; }
  .bw-sphere__ic { width: 32px; height: 32px; }
  .bw-sphere__title { font-size: var(--text-sm); line-height: 1.25; }
  .bw-sphere__sub { font-size: var(--text-xs); line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .bw-sphere__meta { display: none; }
  .bw-spheres:not(.is-expanded) .bw-sphere.is-extra { display: none; }
  .bw-spheres__more { display: block; }
}
.bw-check__list { list-style: none; margin: var(--space-2, 8px) 0 0; padding: 0; display: grid; gap: var(--space-2, 8px); }
.bw-check__item { display: flex; gap: var(--space-3, 12px); align-items: flex-start; padding: var(--space-3, 12px); border-radius: var(--radius-lg, 16px); background: var(--surface); border: 1px solid var(--border); }
.bw-check__item.is-done { opacity: .78; }
.bw-check__item.is-req { border-color: var(--accent-soft, rgba(232, 90, 79, .35)); }
.bw-check__mark { flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-2, var(--surface)); color: var(--text-muted); }
.bw-check__item.is-done .bw-check__mark { background: var(--ok-soft, rgba(52, 199, 89, .14)); color: var(--ok, #2f9e5b); }
.bw-check__body { display: grid; gap: 4px; min-width: 0; flex: 1; }
.bw-check__title { font-weight: 600; font-size: var(--text-md); }
.bw-check__hint { color: var(--text-secondary, var(--text-muted)); font-size: var(--text-sm); }
.bw-check__actions { display: flex; gap: var(--space-3, 12px); flex-wrap: wrap; align-items: center; margin-top: 2px; font-size: var(--text-sm); }
.bw-cov { margin-top: var(--space-3, 12px); padding: var(--space-3, 12px); border-radius: var(--radius-lg, 16px); background: var(--surface); border: 1px solid var(--border); }
.bw-cov__toggle { width: 100%; display: flex; align-items: center; gap: var(--space-2, 8px); background: none; border: 0; padding: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.bw-cov__title { font-weight: 600; font-size: var(--text-sm); }
.bw-cov__pct { margin-left: auto; font-weight: 600; font-size: var(--text-sm); }
.bw-cov__chev { color: var(--text-muted); transition: transform var(--dur-fast) var(--ease-standard); }
.bw-cov__toggle[aria-expanded="true"] .bw-cov__chev { transform: rotate(90deg); }
.bw-cov__bar { height: 6px; border-radius: 999px; background: var(--surface-2, var(--border)); overflow: hidden; margin-top: var(--space-2, 8px); }
.bw-cov__fill { height: 100%; background: var(--accent, #E85A4F); border-radius: 999px; transition: width var(--dur-base) var(--ease-emphasized); }
.bw-cov__note { margin: 6px 0 0; }
.bw-cov__list { list-style: none; margin: var(--space-2, 8px) 0 0; padding: 0; display: grid; gap: 6px; }
.bw-cov__item { display: flex; gap: var(--space-2, 8px); align-items: center; font-size: var(--text-sm); }
.bw-cov__item.is-ok .icon { color: var(--ok, #2f9e5b); }
.bw-cov__item.is-miss .icon { color: var(--text-muted); }
.bw-cov__q { flex: 1; min-width: 0; }
.bw-eval__list { display: grid; gap: var(--space-2, 8px); margin-top: var(--space-3, 12px); }
.bw-eval__row { padding: var(--space-3, 12px); border-radius: var(--radius-lg, 16px); background: var(--surface); border: 1px solid var(--border); display: grid; gap: 4px; }
.bw-eval__q { display: flex; gap: var(--space-2, 8px); align-items: center; font-weight: 600; font-size: var(--text-sm); }
.bw-eval__row.is-ok .bw-eval__q .icon { color: var(--ok, #2f9e5b); }
.bw-eval__row.is-miss .bw-eval__q .icon { color: var(--accent, #E85A4F); }
.bw-eval__row.is-pending { opacity: .6; }
.bw-eval__a { color: var(--text-secondary, var(--text-muted)); font-size: var(--text-sm); white-space: pre-wrap; }
.bw-eval__fix { justify-self: start; font-size: var(--text-sm); }
@media (prefers-reduced-motion: reduce) { .bw-cov__fill, .bw-sphere, .bw-cov__chev { transition: none; } }

/* docs/42 срез F: редактор мастеров и графика в мастере бота */
.bw-reslist { display: flex; flex-direction: column; gap: var(--space-3, 12px); }
.bw-res { display: flex; flex-direction: column; gap: var(--space-2, 8px); padding: var(--space-3, 12px); border: 1px solid var(--border); border-radius: var(--radius-lg, 14px); background: var(--surface); }
.bw-res__head { display: flex; gap: var(--space-2, 8px); align-items: center; }
.bw-res__head input { flex: 1 1 auto; min-width: 0; }
.bw-res__row { display: flex; gap: var(--space-2, 8px); }
.bw-res__row input { flex: 1 1 0; min-width: 0; }
.bw-res__days { display: flex; gap: 4px; }
.bw-res__day { flex: 1 1 0; height: 32px; border-radius: 8px; border: 1px solid var(--border); background: var(--surface-sunken); color: var(--text-muted); font: inherit; font-size: var(--text-caption); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.bw-res__day.is-on { background: var(--accent-strong, #1C1917); border-color: var(--accent-strong, #1C1917); color: var(--text-on-accent, #fff); }

/* ═════════ docs/42 срез K: шаг мастера «Куда писать брони» (Wiz_Integrations) ═════════ */
.bi { display: flex; flex-direction: column; gap: 8px; }
.bi .v2f-cap { margin-top: 8px; }
.bi-row {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: 12px 14px; display: flex; flex-direction: column; gap: 6px;
}
.bi-row__main { display: flex; align-items: center; gap: 12px; }
.bi-logo {
  width: 40px; height: 40px; border-radius: var(--radius-md); background: var(--surface-sunken); flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; letter-spacing: -0.02em; color: var(--text-muted);
}
.bi-row__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bi-row__name { font-size: 15px; font-weight: var(--weight-semibold); color: var(--text); }
.bi-row__sub { font-size: 13px; line-height: 18px; color: var(--text-muted); }
.bi-row__note { font-size: 12px; line-height: 16px; color: var(--text-faint); overflow-wrap: anywhere; }
.bi-row__err { font-size: 12px; line-height: 16px; color: var(--st-overdue-fg); overflow-wrap: anywhere; }
.bi-act {
  position: relative;
  flex: none; min-height: 34px; padding: 0 12px; border-radius: var(--radius-sm);
  border: 1px solid var(--border); background: var(--surface); color: var(--text);
  font: inherit; font-size: 13px; font-weight: var(--weight-medium); white-space: nowrap;
  display: inline-flex; align-items: center; cursor: pointer; touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
button.bi-act:focus-visible, .bi-btn:focus-visible, .bi-link:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
@media (hover: hover) and (pointer: fine) { button.bi-act:hover, .bi-btn:hover { background: var(--surface-hover); } }
.bi-act.is-on { background: var(--st-won-bg); border-color: transparent; color: var(--st-won-fg); cursor: default; }
.bi-act.is-soon { background: var(--surface-sunken); border-color: transparent; color: var(--text-faint); cursor: default; }
.bi-act.is-err { color: var(--st-overdue-fg); border-color: var(--st-overdue-bg); }
.bi-act:disabled, .bi-act.is-loading, .bi-btn:disabled, .bi-btn.is-loading { opacity: 0.5; cursor: default; }
.bi-link {
  align-self: flex-end; min-height: 32px; padding: 0 4px; border: 0; background: none;
  font: inherit; font-size: 13px; color: var(--text-muted); cursor: pointer;
}
.bi-form {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: 14px; display: flex; flex-direction: column; gap: 12px;
}
.bi-form__line { display: flex; gap: 8px; align-items: center; }
.bi-form__line .v2f-input { flex: 1 1 auto; min-width: 0; }
.bi-form__line:last-child { justify-content: flex-end; }
.bi-btn {
  min-height: 44px; padding: 0 14px; border-radius: var(--radius-md); flex: none;
  border: 1px solid var(--border-strong); background: var(--surface); color: var(--text);
  font: inherit; font-size: 14px; font-weight: var(--weight-medium); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  touch-action: manipulation; -webkit-tap-highlight-color: transparent;
}
.bi-btn--primary { background: var(--text); border-color: var(--text); color: var(--surface); }
@media (hover: hover) and (pointer: fine) { .bi-btn--primary:hover { background: var(--text); opacity: 0.9; } }
.bi-btn .icon { width: 16px; height: 16px; stroke-width: 2; }
.bi-refresh { align-self: flex-start; }

/* ═════════ memo 016: импорт переписки из Telegram (шаг «Данные для бота») ═════════ */
.bw-chatimport:empty { display: none; }
.ci { display: flex; flex-direction: column; gap: 10px; }
.ci.is-busy { opacity: 0.6; pointer-events: none; }
.ci-howto {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 10px 14px;
}
.ci-howto__sum { font-size: 14px; font-weight: var(--weight-medium); color: var(--text); cursor: pointer; min-height: 32px; display: flex; align-items: center; }
.ci-howto__list { margin: 6px 0 2px; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; line-height: 18px; color: var(--text-muted); }
.ci-file { margin: 0; font-size: 13px; color: var(--text-muted); overflow-wrap: anywhere; }
.ci-sides { display: flex; flex-direction: column; gap: 8px; }
.ci-side {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left;
  min-height: 52px; padding: 10px 14px; border-radius: var(--radius-lg);
  border: 1px solid var(--border); background: var(--surface); color: var(--text);
  font: inherit; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent;
}
.ci-side.is-on { border-color: var(--text); box-shadow: inset 0 0 0 1px var(--text); }
.ci-side:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.ci-side__name { font-size: 15px; font-weight: var(--weight-semibold); overflow-wrap: anywhere; }
.ci-side__sub { font-size: 12px; color: var(--text-faint); }
.ci-party { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 20px; color: var(--text); cursor: pointer; }
.ci-party input, .ci-pair > input { width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--text); }
.ci-offer {
  margin: 0; padding: 10px 12px; border-radius: var(--radius-md); background: var(--surface-sunken);
  font-size: 12px; line-height: 17px; color: var(--text-muted);
}
.ci-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ci-actions .bi-btn--primary { flex: 1 1 auto; }
.ci-quiet { border: 0; background: none; font: inherit; font-size: 15px; font-weight: var(--weight-medium); padding: 0 8px; cursor: pointer; }
.ci-quiet:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-sm); }
.bi-btn.is-loading { opacity: 0.5; pointer-events: none; }
.ci-list { display: flex; flex-direction: column; gap: 8px; }
.ci-pair {
  display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
}
.ci-pair.is-off { opacity: 0.55; }
.ci-pair__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ci-pair__q { font-size: 14px; font-weight: var(--weight-semibold); color: var(--text); overflow-wrap: anywhere; }
.ci-pair__a { font-size: 13px; line-height: 18px; color: var(--text-muted); overflow-wrap: anywhere; }
.ci-pair__meta { font-size: 12px; color: var(--text-faint); }
.ci-pair__tools { display: flex; gap: 2px; flex: none; }
.ci-pair__acts { display: flex; gap: 8px; }
.ci-past { display: flex; flex-direction: column; gap: 6px; }
.ci-past__row { display: flex; align-items: center; gap: 10px; justify-content: space-between; font-size: 13px; color: var(--text-muted); }
/* ═════════ docs/42 срез K ч.2: владелец подключает сам — шторка подключения ═════════ */
button.bi-act::after { content: ""; position: absolute; inset: -5px -4px; } /* зона тапа ≥44 */
.bi-row__warn { font-size: 12px; line-height: 16px; color: var(--warn); overflow-wrap: anywhere; margin: 0; }
.bi-sheet { overflow: hidden; gap: 12px; flex: 1 1 auto; }
.bi-sheet__scroll { display: flex; flex-direction: column; gap: 14px; min-height: 0; padding-bottom: 4px; }
.bi-sheet .v2f-cap { margin-top: 4px; }
.bi-how { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface-sunken); }
.bi-how__sum {
  display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; cursor: pointer;
  font-size: 14px; font-weight: var(--weight-medium); color: var(--text); list-style: none;
  -webkit-tap-highlight-color: transparent;
}
.bi-how__sum::-webkit-details-marker { display: none; }
.bi-how__sum .icon { width: 16px; height: 16px; stroke-width: 2; color: var(--text-muted); }
.bi-how__sum:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-lg); }
.bi-how__list { margin: 0; padding: 0 14px 14px 32px; display: flex; flex-direction: column; gap: 8px; }
.bi-how__list li { font-size: 13px; line-height: 18px; color: var(--text-muted); overflow-wrap: anywhere; }
.bi-field .v2f-input[aria-invalid="true"], .bi-field select[aria-invalid="true"] { border-color: var(--st-overdue-fg); }
.bi-secret { position: relative; display: flex; }
.bi-secret .v2f-input { flex: 1 1 auto; min-width: 0; padding-right: 52px; }
.bi-eye {
  position: absolute; right: 2px; top: 50%; transform: translateY(-50%);
  width: 44px; height: 44px; border: 0; border-radius: var(--radius-md); background: none; color: var(--text-muted);
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  touch-action: manipulation; -webkit-tap-highlight-color: transparent;
}
.bi-eye .icon { width: 20px; height: 20px; stroke-width: 1.8; }
.bi-eye[aria-pressed="true"] { color: var(--text); }
.bi-eye:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.bi-select.text-input { appearance: auto; width: 100%; }
.bi-btn--wide { width: 100%; }
.bi-btn--quiet { border-color: transparent; color: var(--text-muted); }
.bi-btn[hidden], .bi-pick[hidden], .bi-err[hidden], .bi-note[hidden] { display: none; }
.bi-err { margin: 0; font-size: 13px; line-height: 18px; color: var(--st-overdue-fg); }
.bi-ok { margin: 0; font-size: 13px; line-height: 18px; color: var(--st-won-fg); overflow-wrap: anywhere; }
.bi-note { margin: 0; font-size: 13px; line-height: 18px; color: var(--st-won-fg); }
.bi-note.is-bad { color: var(--st-overdue-fg); }
/* memo 018 §5.3: подтверждение передачи копий записей перед первым подключением системы. */
.bi-consent { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface-sunken); }
.bi-consent[hidden] { display: none; }
.bi-consent.is-invalid { border-color: var(--st-overdue-fg); }
.bi-consent__text { margin: 0; }
.bi-consent__check { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 15px; font-weight: 600; color: var(--text); cursor: pointer; }
.bi-consent__box, .bi-mc-dry__box { width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--text); }
.bi-where { margin: 0; }
.bi-pick { display: flex; flex-direction: column; gap: 12px; }
.bi-sum { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bi-sum__text { font-size: 14px; line-height: 20px; color: var(--text); overflow-wrap: anywhere; min-width: 0; }
.bi-suffix { gap: 6px; }
.bi-suffix__text { font-size: 14px; color: var(--text-muted); white-space: nowrap; }
.bi-map, .bi-imp { display: flex; flex-direction: column; gap: 12px; }
.bi-map__row { display: flex; flex-direction: column; gap: 6px; }
.bi-map__name { font-size: 14px; font-weight: var(--weight-medium); color: var(--text); }
.bi-map__hint { font-size: 12px; line-height: 16px; color: var(--warn); }
.bi-imp__row {
  display: flex; align-items: flex-start; gap: 12px; min-height: 44px; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); cursor: pointer;
}
.bi-imp__row input { width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--text); }
.bi-imp__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bi-imp__text b { font-size: 15px; font-weight: var(--weight-medium); color: var(--text); }
.bi-imp__text span { font-size: 13px; line-height: 18px; color: var(--text-muted); overflow-wrap: anywhere; }
.bi-entry {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 12px 14px;
  border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface);
  font: inherit; text-align: left; color: var(--text); cursor: pointer;
  touch-action: manipulation; -webkit-tap-highlight-color: transparent;
}
.bi-entry:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
@media (hover: hover) and (pointer: fine) { .bi-entry:hover { background: var(--surface-hover); } }
.bi-entry__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bi-entry__sub { font-size: 13px; line-height: 18px; color: var(--text-muted); overflow-wrap: anywhere; }
.bi-entry .v2f-chev { width: 18px; height: 18px; color: var(--text-faint); flex: none; }

/* memo 018 Ч6: «Текст для вашей политики» в шаге «Передача заявок». */
.bw-notice { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface-sunken); }
.bw-notice__sum { min-height: 44px; display: flex; align-items: center; font-size: 15px; font-weight: 600; color: var(--text); cursor: pointer; }
.bw-notice__tabs { display: flex; gap: 8px; }
.bw-notice__tab[aria-pressed="true"] { border-color: var(--text); color: var(--text); }
.bw-notice__text.text-input { white-space: pre-wrap; }

/* Удаление бота на десктопе (мышь): видимая кнопка в строке; на тач — только свайп (memo 018 §9 R9). */
.bots-swipe__fg { position: relative; }
.bots-row__del { display: none; }
@media (hover: hover) and (pointer: fine) and (min-width: 900px) {
  .bots-row__del {
    display: grid; place-items: center; position: absolute; top: 50%; right: 44px; transform: translateY(-50%);
    width: 36px; height: 36px; border-radius: 10px; border: 1px solid transparent; background: transparent;
    color: var(--text-faint); cursor: pointer;
  }
  .bots-row__del:hover { color: var(--danger); background: var(--danger-soft); border-color: var(--border); }
  .bots-row__del:focus-visible { outline: 2px solid var(--accent-ring); outline-offset: 2px; color: var(--danger); }
}

/* docs/52 G: шторка «Вид деятельности» — точный код ОКЭД спрятан под раскрытие (для тех, кто знает код). */
.v2f-more { margin: var(--space-3) 0; }
.v2f-more > summary { cursor: pointer; color: var(--warm-600); font-size: 14px; padding: var(--space-2) 0; }
.v2f-more[open] > summary { margin-bottom: var(--space-2); }
