/* К-247 — раздел «Клиенты» менеджера площадки: полоса вкладок, справочник «Категории» и реестры (правки заказчика 08.10, А1–А3;
   планы/правки-08-09.10/административная-часть.md, шаги АЧ.3, АЧ.4, АЧ.7–АЧ.9; разметка — app/registry-nav.js и app/registry.js).
   Во всех трёх видах (classic, minimal, crm) и на любой ширине: кнопки, поля и списки — не меньше 44 × 44 px, между соседними —
   8 px; страница вбок не прокручивается (широкая таблица реестра прокручивается в своей рамке). Без инлайн-стилей. */

/* ---------------- полоса вкладок раздела «Клиенты» (общая .kacct-tabs, classic-crm.js menuTabs) ---------------- */
/* между рядами — 10 px: кнопка под указателем приподнимается на 1 px (.kbtn:hover), промежуток не должен стать меньше 8 px */
:is(#app, body) .reg-hub > .kacct-tabs { gap: 10px 8px; }
:is(#app, body) .reg-hub > .kacct-tabs > .kbtn { min-width: 44px; min-height: 44px; padding: 8px 14px; font-size: 13px; }

/* ---------------- общие ---------------- */
.reg-lead { margin: 0 0 8px; font-size: 13px; line-height: 1.45; }
.reg-note { margin: 0 0 8px; font-size: 12.5px; line-height: 1.45; color: #555; }
.reg-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 8px; }
:is(#app, body) .kbtn.reg-btn, :is(#app, body) .kbtn.reg-tab { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 14px; }
.reg-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ---------------- «Категории» ---------------- */
.reg-cats { min-width: 0; }
.reg-cat-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; }
/* группы колонками (на слайде — шесть в ряд); на телефоне — одной колонкой */
.reg-cat-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px 12px; align-items: start; }
.reg-cat-groups--one { grid-template-columns: minmax(0, 1fr); }
.reg-cat-group { min-width: 0; }
.reg-cat-h { margin: 0 0 6px; font-size: 13.5px; font-weight: 700; }
.reg-cat-list { margin: 0; padding-left: 2.4em; font-size: 13px; line-height: 1.5; }
.reg-cat-groups--one .reg-cat-list { columns: 3 220px; column-gap: 24px; }
.reg-cat-list > li { break-inside: avoid; overflow-wrap: anywhere; }
.reg-cat-off { color: #8A1C1C; font-size: 12px; }
.reg-cat-empty { margin: 6px 0 0; font-size: 13px; color: #555; }
/* режим правки администратора: марка — кнопка окна «Изменить марку», между кнопками 8 px */
.reg-cat-list > li:has(> .reg-cat-brand) + li { margin-top: 8px; }
:is(#app, body) .kbtn.reg-cat-brand { display: flex; align-items: center; width: 100%; min-width: 44px; min-height: 44px; padding: 6px 10px; text-align: left; }
.kbtn.reg-cat-brand.is-off { background: #f3f1ec; }
@media (max-width: 600px) {
  .reg-cat-groups { grid-template-columns: minmax(0, 1fr); }
  .reg-cat-groups--one .reg-cat-list { columns: 1; }
  .reg-bar { display: grid; grid-template-columns: minmax(0, 1fr); }
}

/* кнопки окна панели («Свернуть панель», «Развернуть панель») в разделе «Клиенты» — тоже цели 44 × 44 на широком экране */
:is(#app, body) .reg-hub .kpanel__win > button { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.reg-hub .kpanel__win { display: inline-flex; gap: 8px; }

/* ---------------- окно «Редактировать карточку»: специализация (АЧ.4) ---------------- */
/* между полями выбора и кнопкой — с запасом: поле окна на телефоне выступает за свою подпись на 1 px */
.reg-clx { display: grid; gap: 12px; }
.reg-clx > .reg-bar { margin: 0; }
.reg-cx-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.reg-cx-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 4px 0 4px 8px;
  border: 1px solid var(--k-line-soft, #d5d5d5); border-radius: 6px; background: #fff; }
.reg-cx-t { flex: 1 1 200px; min-width: 0; font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
.reg-cx-item > .reg-btn { flex: 0 0 auto; }
.reg-cx-none { font-size: 13px; color: #555; }

/* ---------------- реестры продавцов и покупателей (АЧ.7, АЧ.8) ----------------
   Отбор — строкой полей с подписями (на телефоне — столбцом); таблица 20 колонок — в своей рамке с прокруткой вбок, «№»,
   «Код клиента» и «Наименование» закреплены слева (ширины первых двух колонок заданы: от них отступ третьей закреплённой);
   уже 900 px — карточки вместо таблицы. Кнопки строки («Открыть карточку клиента», «Показать реквизиты») и ссылка сайта —
   цели 44 × 44, между ними 8 px. */
.reg-reg { min-width: 0; }
.reg-find { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; margin: 0 0 8px; }
.reg-f { display: grid; gap: 4px; flex: 0 1 190px; min-width: 0; }
.reg-f > span { font-size: 12px; color: #555; }
.reg-f > select, .reg-f > input { width: 100%; min-width: 0; min-height: 44px; border: 1px solid var(--k-line); border-radius: 6px; padding: 6px 8px; background: #fff; font-size: 13px; }
.reg-f--q { flex: 1 1 240px; }
.reg-find > .reg-go { flex: 0 0 auto; }
.reg-sum { margin: 0 0 8px; font-size: 13px; font-weight: 700; }
.reg-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--k-line-soft, #d5d5d5); }
.ktable.reg-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; }
.ktable.reg-table td { vertical-align: top; padding-block: 6px; }
.ktable.reg-table th { white-space: nowrap; }
.ktable.reg-table th > .ic { vertical-align: middle; }
/* закреплённые колонки: № (44 px), код клиента (104 px), наименование — с отступом 148 px */
.ktable.reg-table :is(th, td).reg-st1 { position: sticky; left: 0; z-index: 2; width: 44px; min-width: 44px; max-width: 44px; background: #fff; }
.ktable.reg-table :is(th, td).reg-st2 { position: sticky; left: 44px; z-index: 2; width: 104px; min-width: 104px; max-width: 104px; background: #fff; }
.ktable.reg-table :is(th, td).reg-stn { position: sticky; left: 148px; z-index: 2; min-width: 220px; max-width: 260px; background: #fff; box-shadow: 2px 0 0 var(--k-line-soft, #d5d5d5); }
.ktable.reg-table th:is(.reg-st1, .reg-st2, .reg-stn) { z-index: 3; background: var(--k-th); }
.ktable.reg-table tr.is-best td:is(.reg-st1, .reg-st2, .reg-stn) { background: var(--k-selected); }
.reg-name { display: block; margin: 0 0 8px; overflow-wrap: anywhere; }
.ktable.reg-table td.reg-wide { min-width: 180px; max-width: 280px; overflow-wrap: anywhere; }
.ktable.reg-table td.reg-brk { max-width: 200px; overflow-wrap: anywhere; }
.reg-com { white-space: pre-line; }
.reg-cats-cell { min-width: 70px; }
.reg-code { display: inline-block; font-variant-numeric: tabular-nums; white-space: nowrap; }
.reg-sub { display: block; font-size: 11px; color: #666; white-space: normal; }
.reg-inn { display: block; margin: 0 0 8px; }
:is(#app, body) .kbtn.reg-btn.reg-open, :is(#app, body) .kbtn.reg-btn.reg-req { width: 100%; padding: 6px 10px; font-size: 12.5px; white-space: normal; }
a.reg-site { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; color: inherit; text-decoration: underline; overflow-wrap: anywhere; }
.reg-cards { display: none; margin: 0; padding: 0; list-style: none; gap: 8px; }
.reg-card { display: grid; gap: 8px; padding: 8px 10px; border: 1px solid var(--k-line-soft, #d5d5d5); border-radius: 8px; background: #fff; }
.reg-card__h { margin: 0; font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.reg-card__no { color: #666; }
.reg-card__dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 2px 12px; margin: 0; font-size: 13px; }
.reg-card__dl dd { margin: 0; overflow-wrap: anywhere; }
.reg-pager { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 8px 0 0; }
.reg-pager__t { flex: 1 1 auto; min-width: 0; text-align: center; font-size: 13px; }
.reg-req-dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 12px; margin: 0; font-size: 13.5px; }
.reg-req-dl dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 899px) {
  .reg-wrap { display: none; }
  .reg-cards { display: grid; }
}
@media (max-width: 600px) {
  .reg-find { display: grid; grid-template-columns: minmax(0, 1fr); }
  .reg-f { flex: none; }
  .reg-pager { display: grid; grid-template-columns: minmax(0, 1fr); }
  .reg-req-dl { grid-template-columns: minmax(0, 1fr); }
}

/* ---------------- «Загрузить список компаний» (АЧ.13) ---------------- */
.modal.reg-imp-modal .modal__box { width: min(880px, 100%); }
.reg-imp { display: grid; gap: 8px; }
.reg-imp .reg-bar { margin: 0; }
.kbtn.reg-btn.reg-file { position: relative; cursor: pointer; }
.kbtn.reg-btn.reg-file > input { position: absolute; inset: -1px; width: auto; height: auto; min-height: 0; min-width: 0; margin: 0; opacity: 0; cursor: pointer; }
.reg-file:focus-within { outline: 2px solid currentColor; outline-offset: 2px; }
a.kbtn.reg-btn { text-decoration: none; }
.reg-imp-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; max-height: 52vh; overflow-y: auto; }
.reg-imp-list:empty { display: none; }
.reg-imp-row { display: grid; gap: 2px; padding: 6px 10px; border: 1px solid var(--k-line-soft, #d5d5d5); border-radius: 6px; background: #fff; font-size: 13px; line-height: 1.4; }
.reg-imp-row--error { border-color: #c98b8b; }
.reg-imp-row--created { border-color: #7fae86; }
.reg-imp-row__h, .reg-imp-row__d { margin: 0; overflow-wrap: anywhere; }
.reg-imp-row__d { color: #555; font-size: 12.5px; }
.reg-imp-line { color: #666; }
.reg-imp-st { float: right; margin-left: 8px; font-weight: 700; }
.reg-imp-notes { margin: 2px 0 0; padding-left: 1.2em; font-size: 12.5px; color: #8A1C1C; }
.reg-imp-row--exists .reg-imp-notes, .reg-imp-row--ok .reg-imp-notes { color: #555; }
.reg-imp-warn { flex: 1 1 100%; }
.reg-dl-link { position: fixed; left: -10000px; top: 0; }
@media (max-width: 600px) {
  .reg-imp .reg-bar { display: grid; grid-template-columns: minmax(0, 1fr); }
  .reg-imp-st { float: none; display: block; margin: 2px 0 0; }
}

/* ---------------- отметки строк и «Выдать временные пароли отмеченным» (АЧ.14) ---------------- */
.reg-mark { display: inline-flex; align-items: center; gap: 6px; min-width: 44px; min-height: 44px; cursor: pointer; }
:is(#app, body) .reg-mark > input[type="checkbox"], :is(#app, body) .reg-mark-card > input[type="checkbox"] { flex: 0 0 auto; width: 18px; height: 18px; min-width: 0; min-height: 0; margin: 0; padding: 0; cursor: pointer; }
.ktable.reg-table--mark :is(th, td).reg-st1 { width: 84px; min-width: 84px; max-width: 84px; text-align: left; }
.ktable.reg-table--mark :is(th, td).reg-st2 { left: 84px; }
.ktable.reg-table--mark :is(th, td).reg-stn { left: 188px; }
.reg-marked { font-size: 13px; line-height: 1.4; color: #555; }
:is(#app, body) .kbtn.reg-btn.reg-mark-card { gap: 8px; cursor: pointer; }
.reg-card__acts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.reg-bulk-list { margin: 0; padding-left: 1.2em; max-height: 30vh; overflow-y: auto; font-size: 13px; line-height: 1.5; }
/* недоступная кнопка реестра — заметно бледнее и не приподнимается */
.kbtn.reg-btn:disabled, .kbtn.reg-btn:disabled:hover { opacity: .45; cursor: not-allowed; transform: none; }
.kbtn--dark.reg-btn:disabled:hover { background: var(--k-dark); }
