/* Линия — экран «Аккаунты» (DESIGN.md §3, §4, §5.2): шапка с инструментами, чипы и поиск, таблица с группами
   «Нужно вмешаться» / «Работают» (≤ 767 — карточки), боковая карточка аккаунта, плавающая панель выбора, модалки экрана.
   Только переменные tokens.css; кнопки, чипы, статус, поля, .sheet, .notice — из app.css. */

.acc-slot { display: contents; }   /* постоянный слот: появление панели выбора / карточки не сдвигает соседей (фокус) */

/* ===== Чипы-фильтры и поиск (поле — uiSearch, стили в app.css) ===== */
.acc-toolbar { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 16px; }
.acc-chips { flex: 1 1 0; min-width: 0; padding-top: 2px; }   /* чипы занимают остаток строки и переносятся внутри себя — поиск справа; 2px: первая строка чипов (32) по оси поиска (36) */
.acc-search { flex: 0 0 240px; min-width: 0; }
.acc-select-all { display: none; }   /* «Выбрать все» для карточек (≤ 767), на таблице — чекбокс в шапке */

/* ===== Таблица: панель прокручивается сама, шапка и заголовки групп липкие ===== */
.acc-panel { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 240px; overflow: auto; }
.acc-panel.has-bulk { padding-bottom: 72px; }   /* последняя строка не прячется под панелью выбора */
.acc-table thead th { z-index: 2; }
.acc-table th, .acc-table td { padding: 8px 12px; }
.acc-table .c-sel { width: 48px; padding: 0 0 0 8px; }
.acc-table td.c-sel { padding: 0 0 0 8px; }
/* Фиксированная раскладка: ширины колонок не зависят от текста. Причины, местоположения и имена обрезаются многоточием
   (полный текст — в title и карточке аккаунта), кнопка нужного действия и «⋯» всегда внутри панели; «Состояние» — остаток. */
.acc-table { table-layout: fixed; }
.acc-table .c-acc { width: 184px; }
.acc-table .c-lim { width: 180px; }
.acc-table .c-trust { width: 180px; }
.acc-table .c-proxy { width: 168px; }
.acc-table .c-act { width: 188px; padding-left: 4px; padding-right: 12px; }   /* самое длинное действие «Заменить прокси» (135) + 4 + «⋯» (30) = 169 из 172; на 768 «Состоянию» остаётся 174 */
.acc-table .c-msg { width: 0; padding: 0; overflow: hidden; visibility: hidden; }   /* «Сообщения» — только в .is-wide (ниже порога HUD под статусом, app.js ACC_WIDE) */
/* Ни у одной видимой строки нет кнопки действия (app.js .is-slim) — колонка действий сжата до «⋯»: 4 + 30 + 12 = 46.
   Освобождённые 142 px уходят «Состоянию», а с 1600 — «Сообщениям». ≤ 767 действия — в нижней строке карточки, ширина там своя. */
@media (min-width: 768px) {
 .acc-table.is-slim .c-act { width: calc(var(--btn-h-sm) + 16px); }
}
/* «Сообщения» (.is-wide: ≥ 1792, при .is-slim ≥ 1600 — app.js ACC_WIDE/ACC_WIDE_SLIM) фиксированной ширины — два самых
   длинных чипа HUD «через 59 мин 59 с» + «ждёт 59 мин» (124 + 8 + 89) + отступы 24 = 245. Остальные колонки — те же
   пиксели, что ниже порога; остаток по-прежнему у «Состояния»: с 1792 ему остаётся ≥ 300 px (точный минимум — 1786),
   в сжатой раскладке с 1600 — ≥ 240 (на 1600 с кнопками действия осталось бы 114) — tests/browser/test_next_accounts.cjs. */
.acc-table.is-wide .c-msg { width: 248px; padding: 8px 12px; overflow: visible; visibility: visible; }
/* Корень («Все аккаунты»): вместо «Сообщений» — «Менеджер» (app.js inRoot). Ширина как у остальных колонок с именем; ≤ 1023 колонка
   схлопывается, имя менеджера — строкой под именем аккаунта (.acc-owner-sub), в карточке ≤ 767 — там же. */
.acc-table .c-owner { width: 152px; }
.acc-owner-name { display: block; overflow: hidden; font-size: var(--fs-md); text-overflow: ellipsis; white-space: nowrap; }
.acc-id-txt .acc-owner-sub { display: none; }   /* после .acc-sub (display: block): специфичность выше */
.acc-refused { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 0 0 0 20px; font-size: var(--fs-md); }   /* окно «Передать аккаунты»: отказы сервера дословно */
.acc-row td { line-height: 1.35; }
:root[data-density="compact"] .acc-row td { padding-top: 4px; padding-bottom: 4px; }
:root[data-density="compact"] .acc-row .acc-check { height: 32px; }   /* строка 48: ячейки не выше содержимого */
:root[data-density="compact"] .acc-row .acc-id { padding-top: 0; padding-bottom: 0; }
tr.acc-row.is-open { background: var(--accent-soft); }
.acc-table tr.acc-row:is(.is-selected, .is-open):hover { background: var(--accent-soft); }   /* tbody tr:hover (app.css) не перебивает выбор */
/* На --accent-soft подписи --text-3 дают 3.97:1 в тёмной теме — в выбранной и открытой строке они --text-2 */
.acc-row:is(.is-selected, .is-open) :is(.acc-name, .acc-sub:not(.ok-t), .t3, .hud-chip, .acc-msg.is-zero) { color: var(--text-2); }
/* Заголовок группы: строка-разделитель, липнет под шапкой таблицы */
.acc-table tr.acc-group-row:hover { background: transparent; }
.acc-table .acc-group-row th { top: 40px; z-index: 1; height: auto; padding: 16px 16px 8px; border-bottom: 1px solid var(--line); background: var(--panel); color: var(--text); font-size: var(--fs-md); font-weight: 600; white-space: normal; }
.acc-group-n { margin-left: 8px; color: var(--text-3); }
.acc-group-hint { margin-left: 12px; color: var(--text-3); font-size: var(--fs-sm); font-weight: 400; }
#acc-group-attention:not(:empty) + #acc-group-work .acc-group-row th { border-top: 1px solid var(--line); }   /* пустая группа — без второй линии под шапкой */

/* Чекбокс выбора: цель нажатия шире самого квадрата */
.acc-check { display: inline-grid; place-items: center; width: 40px; height: 40px; cursor: pointer; }

/* Ячейки: основная строка + подпись */
.acc-cell { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
.acc-nowrap { white-space: nowrap; }   /* «20–45 с», «5–15 с»: диапазон не рвётся по тире на 390 */
.acc-sub { display: block; max-width: 100%; overflow: hidden; color: var(--text-3); font-size: var(--fs-sm); text-overflow: ellipsis; white-space: nowrap; }
.acc-sub.ok-t { color: var(--ok); }   /* «кампании разрешены» зелёным: .ok-t из app.css равен по специфичности и подключён раньше — здесь перебивался серым */
.acc-cell > span:not(.st) { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }   /* строка не переносится: высота = --row-h */
.acc-cell > .st { max-width: 100%; }
.acc-st-lbl { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.acc-sub-line { display: flex; align-items: center; gap: 8px; }
.acc-reason, .acc-day { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
/* Подпись «Выходной: …» не режется и не растит строку: чип HUD, которому не хватило места рядом, переносится и скрыт
   высотой в одну строку (сроки — в подсказке подписи, app.js accDayHint) */
.acc-sub-line:has(> .acc-day) { flex-wrap: wrap; row-gap: 4px; max-height: 1lh; }
.hud-chip { display: inline-flex; flex: none; align-items: center; gap: 4px; color: var(--text-3); font-size: var(--fs-sm); white-space: nowrap; }
.hud-chip .ui-icon { width: 12px; height: 12px; }   /* «ждёт N» — общий статус .wait-chip (app.js uiWaitStatus) */
/* Рядом с «ждёт N» (очередь §5.1) сжимается многоточием «через N мин»: на 1440 и 800 «Состояние» ≈ 200 px, двум чипам тесно.
   Без «ждёт N» рядом сжимается причина (.acc-reason), чип — целиком. */
.acc-sub-line > .hud-chip:has(+ .wait-chip) { flex: 0 1 auto; min-width: 0; }
.acc-sub-line > .hud-chip:has(+ .wait-chip) > [data-eta] { min-width: 0; overflow: hidden; text-overflow: ellipsis; }

/* «Сообщения» (.is-wide): кнопка «N непрочитанных» ведёт в чаты аккаунта (как телефон), HUD — подпись рядом */
.acc-msg { overflow: hidden; font-size: var(--fs-md); font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.acc-msg.is-zero { color: var(--text-3); font-weight: 400; }
.acc-msg:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Аккаунт: аватар + телефон (данные — моноширинно) + имя; вся связка ведёт в чаты аккаунта */
.acc-id { display: flex; align-items: center; gap: 12px; max-width: 100%; min-width: 0; padding: 4px 8px 4px 4px; margin-left: -4px; border: 0; border-radius: var(--r-sm); background: transparent; color: var(--text); text-align: left; transition: background-color var(--dur) ease-out; }
.acc-id:hover { background: var(--raised); }
.acc-id:hover .acc-phone { color: var(--accent-text); }
.acc-id-txt { display: flex; flex-direction: column; min-width: 0; }
.acc-phone { overflow: hidden; font-family: var(--font-data); font-size: var(--fs-sm2); font-weight: 500; letter-spacing: -.01em; text-overflow: ellipsis; white-space: nowrap; transition: color var(--dur) ease-out; }
.acc-name { overflow: hidden; color: var(--text-3); font-size: var(--fs-sm); text-overflow: ellipsis; white-space: nowrap; }
.account-avatar .ui-icon { width: 16px; height: 16px; color: var(--text-2); }

/* Лимит окна 12 ч: 3 деления отправок + тонкая полоса проверок (20) */
.acc-lim { position: relative; display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-md); white-space: nowrap; }   /* опора для .acc-lim-w (absolute ≤ 1023): без неё слово уходит к body и даёт прокрутку документа на 390 */
.acc-lim-s { display: none; }   /* ≤ 767: короткие единицы «отпр.» / «пров.» — полные слова у скринридера (.acc-lim-w) */
.acc-lim-line { display: flex; align-items: center; gap: 8px; max-width: 100%; }
.acc-lim-line > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.acc-seg { display: flex; gap: 3px; }   /* оптика прототипа: деления читаются как одна шкала */
.acc-seg i { display: block; width: 14px; height: 6px; border-radius: 2px; background: var(--line-2); }
.acc-seg i.is-used { background: var(--accent); }
.acc-seg i.is-reserved { background: transparent; box-shadow: inset 0 0 0 1.5px var(--accent); }
.acc-bar { flex: none; width: 48px; height: 4px; overflow: hidden; border-radius: 2px; background: var(--line-2); }
.acc-bar b { display: block; height: 100%; border-radius: 2px; background: var(--text-2); }
.acc-bar.is-full b { background: var(--warn); }
:root[data-density="compact"] .acc-lim { gap: 2px; line-height: 1.25; }

/* Ячейки «Траст» и «Прокси» — переход в карточку на своей вкладке (мышью; с клавиатуры — «⋯» и вкладки) */
.acc-cell-btn { max-width: 100%; padding: 0; border: 0; border-radius: var(--r-sm); background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.acc-cell-btn:hover > :first-child { text-decoration: underline; text-underline-offset: 3px; }

/* Действия строки: одна кнопка нужного действия + «⋯» */
.acc-actions { display: flex; align-items: center; justify-content: flex-end; gap: 4px; white-space: nowrap; }
.acc-more { flex: none; }   /* «⋯» не сжимается рядом с длинной кнопкой: значок на одной оси во всех строках */

/* Пустой результат */
.acc-empty { flex: 1; }

/* ===== Плавающая панель выбора ===== */
.acc-bulk { position: fixed; bottom: 24px; left: calc(50% + 116px); z-index: 40; display: flex; align-items: center; gap: 4px; padding: 4px 4px 4px 16px; border: 1px solid var(--line-2); border-radius: var(--r-lg); background: var(--raised); box-shadow: var(--shadow); white-space: nowrap; transform: translateX(-50%); transition: opacity 200ms var(--ease), transform 200ms var(--ease); }
@starting-style { .acc-bulk { opacity: 0; transform: translate(-50%, 8px); } }
.acc-bulk-n { margin-right: 8px; font-weight: 600; }
.acc-bulk-sep { width: 1px; height: 20px; margin: 0 4px; background: var(--line-2); }

/* ===== Боковая карточка аккаунта (.sheet из app.css) ===== */
.acc-sheet { width: min(420px, 100vw); }   /* шапка — общая .sheet-head (56, app.css), аватар 32 */
.acc-sheet-title { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.acc-sheet-title h2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acc-sheet-title h2.mono { font-size: var(--fs-msg); }   /* безымянный аккаунт: заголовок — номер */
/* Вторая строка шапки: телефон + статус аккаунта (как в строке таблицы) — виден на любой вкладке, проблему вкладки не прячут */
.acc-sheet-sub { display: flex; align-items: center; gap: 8px; min-width: 0; color: var(--text-3); font-size: var(--fs-sm); }
.acc-sheet-sub > span:not(.st) { flex: none; }
.acc-sheet-sub .mono { font-size: var(--fs-sm2); }
.acc-sheet-sub .st { min-width: 0; font-size: var(--fs-sm); }
/* Вкладки (APG Tabs): полоса не прокручивается вместе с панелью; кольцо фокуса внутри — .tabs обрезает выступающее */
.acc-tabbar { flex: none; padding: 8px 20px; border-bottom: 1px solid var(--line); }
.acc-tabbar .tabs { scrollbar-width: none; }
.acc-tabbar .tabs::-webkit-scrollbar { display: none; }
.acc-tabbar .tab:focus-visible { outline-offset: -2px; }
.acc-sheet .sheet-body { gap: 24px; }
#account-sheet-panel:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.acc-sheet-foot { justify-content: space-between; }

.acc-note { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px 16px; border-radius: var(--r-sm); background: var(--raised); }
.acc-note.is-ok { background: var(--ok-soft); }
.acc-note.is-info { background: var(--accent-soft); }
.acc-note.is-warn { background: var(--warn-soft); }
.acc-note.is-bad { background: var(--bad-soft); }
.acc-note p { color: var(--text-2); font-size: var(--fs-md); line-height: 1.5; }
.acc-note-meta-list { display: flex; flex-direction: column; gap: 8px; }
.acc-note-meta-list:empty { display: none; }
.acc-note .acc-note-meta { color: var(--text-2); font-size: var(--fs-sm); }   /* --text-3 на *-soft плашке — ниже 4.5:1 в тёмной теме */
.acc-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.acc-note .acc-acts { margin-top: 4px; }

.acc-sec { display: flex; flex-direction: column; gap: 12px; }
.acc-sec-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 30px; }
.acc-sec h3 { font-size: var(--fs-md); }
.acc-hint { color: var(--text-3); font-size: var(--fs-sm); }
.acc-kv { display: grid; grid-template-columns: 136px minmax(0, 1fr); gap: 8px 12px; font-size: var(--fs-md); }
.acc-kv > div { display: contents; }
.acc-kv dt { color: var(--text-3); }
.acc-kv dd { min-width: 0; overflow-wrap: anywhere; }
.acc-kv .skeleton { margin-top: 4px; }
/* «Подробнее» с кодом Telegram — только супер-администратору, свёрнуто (docs/ERRORS.md 1.7). */
.acc-more { color: var(--text-3); font-size: var(--fs-sm); }
.acc-more summary { width: fit-content; padding: 4px 0; border-radius: var(--r-sm); cursor: pointer; }
.acc-more summary:hover { color: var(--text-2); }
.acc-more p { margin-top: 4px; color: var(--text-2); }
@media (pointer: coarse) { .acc-more summary { padding: 12px 0; } }   /* цель касания ≥ 40 px */

.acc-stages { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: var(--fs-md); }
.acc-stage { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 8px; }
.acc-stage-mark { display: grid; place-items: center; height: 19px; }
.acc-stage-mark .ui-icon { width: 16px; height: 16px; }
.acc-stage-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.acc-stage-txt small { color: var(--text-3); font-size: var(--fs-sm); }
.acc-stage.is-done .acc-stage-mark { color: var(--ok); }
.acc-stage.is-fail .acc-stage-mark, .acc-stage.is-fail .acc-stage-txt > span { color: var(--bad); }
.acc-stage.is-wait .acc-stage-txt > span { color: var(--text-3); }

.acc-camp { display: flex; align-items: flex-start; gap: 8px; font-size: var(--fs-md); }
.acc-camp .ui-icon { width: 16px; height: 16px; margin-top: 1px; }
.acc-owner { font-size: var(--fs-md); }
.acc-proxy-form, .acc-stage-form { gap: 12px; padding-top: 16px; border-top: 1px solid var(--line); }
/* «Сменить стадию»: нативный список и «Перевести» в одну строку; на узком экране кнопка уходит вниз */
.acc-move-field { display: flex; flex-direction: column; gap: 8px; }
.acc-move { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.acc-move select { flex: 1 1 200px; width: auto; min-width: 0; }
.acc-move .btn { flex: none; }

/* «Сводка» на «Обзоре»: строка целиком — одна кнопка (метка | значение в две строки | стрелка или «Изменить»);
   колонка метки совпадает с .acc-kv, значения на вкладках стоят ровно */
.acc-jumps { display: flex; flex-direction: column; gap: 2px; margin: 0 -8px; }
.acc-jump { display: grid; grid-template-columns: 136px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 40px; padding: 6px 8px; border: 0; border-radius: var(--r-sm); background: transparent; color: var(--text); font-size: var(--fs-md); text-align: left; cursor: pointer; transition: background-color var(--dur) ease-out; }
.acc-jump:hover { background: var(--hover); }
.acc-jump-k { color: var(--text-3); }
.acc-jump-v { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
.acc-jump-main { max-width: 100%; overflow-wrap: anywhere; }
.acc-jump-sub { color: var(--text-3); font-size: var(--fs-sm); overflow-wrap: anywhere; }
.acc-jump-sub .nw { white-space: nowrap; }   /* «супер-админ» не рвётся по дефису на 390 */
.acc-jump-end { display: inline-flex; color: var(--text-3); }
.acc-jump-end .ui-icon { width: 16px; height: 16px; }
.acc-jump:hover .acc-jump-end { color: var(--text-2); }
.acc-form-title { color: var(--text); font-size: var(--fs-md); font-weight: 600; }
.acc-skel { display: flex; flex-direction: column; gap: 12px; padding: 4px 0; }

/* ===== Модалки экрана: шаги, пул прокси, результаты проверок, распределение профилей ===== */
.acc-steps { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; padding: 0; list-style: none; color: var(--text-3); font-size: var(--fs-sm); }
.acc-steps li { display: flex; align-items: center; gap: 8px; }
.acc-steps li + li::before { content: ""; width: 16px; height: 1px; background: var(--line-2); }
.acc-steps li > span { display: inline-grid; place-items: center; width: 20px; height: 20px; border: 1px solid var(--line-2); border-radius: 50%; font-weight: 600; }
.acc-steps li > span .ui-icon { width: 12px; height: 12px; }
.acc-steps li.is-done > span { border-color: var(--ok); color: var(--ok); }
.acc-steps li[aria-current="step"] { color: var(--text); font-weight: 500; }
.acc-steps li[aria-current="step"] > span { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); }
.acc-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.acc-pair-proxy { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }   /* «Сохранённый пул · автоматически» — целиком, «1 аккаунт» короткий */
#modal .acc-code, #modal .acc-mono-input { font-family: var(--font-data); letter-spacing: .04em; }
#modal .acc-code { font-size: var(--fs-msg); letter-spacing: .24em; }
.acc-resend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.acc-resend small { color: var(--text-3); }

.acc-result { display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-md); }
.acc-result:empty { display: none; }
.acc-result-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }

.acc-assign { display: flex; flex-direction: column; gap: 8px; }
.acc-assign:empty { display: none; }
.acc-assign-title { color: var(--text-3); font-size: var(--fs-sm); font-weight: 500; }
.acc-assign ul, .acc-receipts ul { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.acc-assign li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: var(--fs-md); }
.acc-assign li small { color: var(--text-3); }
.acc-receipts { align-items: flex-start; }
.acc-receipts-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.acc-receipts li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: var(--fs-md); }

/* ===== Брейкпоинты (DESIGN.md §3) ===== */
/* Скрытая колонка остаётся в сетке с нулевой шириной: заголовки групп растянуты на colspan="7", и при display:none
   «осиротевшие» колонки фиксированной раскладки делили бы место с «Состоянием». Данные остаются в карточке аккаунта. */
@media (max-width: 1439px) {   /* ≤ 1279 по DESIGN.md; 1280–1439 с полным сайдбаром панель ещё уже, чем при 1279 с рейкой */
 .acc-table .c-trust { width: 0; padding: 0; overflow: hidden; visibility: hidden; }
 .acc-search { flex-basis: 180px; }   /* 1366: семь чипов в одну строку — «Отключены 0» не переносится */
}
@media (max-width: 1599px) {
 .acc-table.is-root .c-trust { width: 0; padding: 0; overflow: hidden; visibility: hidden; }   /* корень: колонку «Менеджер» уступает «Траст» (данные — в карточке), «Состоянию» остаётся ≥ 240 с 1366, на 1100–1365 ≥ 212 */
}
@media (max-width: 1279px) {
 .acc-bulk { left: calc(50% + 34px); }
}
@media (max-width: 1099px) {
 .acc-table .c-proxy { width: 0; padding: 0; overflow: hidden; visibility: hidden; }
}
@media (max-width: 1023px) {
 .acc-table .c-owner { width: 0; padding: 0; overflow: hidden; visibility: hidden; }
 .acc-id-txt .acc-owner-sub { display: block; }
}
@media (min-width: 768px) and (max-width: 1023px) {
 .acc-table .c-acc { width: 128px; }
 .acc-table .acc-id .account-avatar { display: none; }   /* 5 колонок на 768: аватар уступает место состоянию */
}
@media (max-width: 1023px) {
 .acc-table .c-lim { width: 120px; }
 .acc-lim-w { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }   /* «отправки», «проверок» — только для скринридера */
 .acc-bulk .lbl { display: none; }
 .acc-bulk .btn { width: var(--btn-h-sm); padding: 0; }
 .acc-toolbar { flex-wrap: nowrap; }
 .acc-chips { flex: 1 1 auto; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
 .acc-chips::-webkit-scrollbar { display: none; }
 .acc-search { flex: 0 0 220px; }
}
@media (max-width: 767px) {
 .acc-head { align-items: flex-start; }
 .acc-toolbar { flex-direction: column; align-items: stretch; }
 .acc-chips { margin: 0 -16px; padding: 0 16px; }
 .acc-search { flex: none; width: 100%; min-width: 0; height: 40px; }
 .acc-select-all { display: inline-flex; align-self: flex-start; align-items: center; gap: 12px; min-height: 40px; padding: 0 8px 0 14px; color: var(--text-2); font-size: var(--fs-md); font-weight: 500; cursor: pointer; }   /* чекбокс — по оси чекбоксов карточек */
 .acc-select-all input { width: 20px; height: 20px; }
 /* Карточки вместо таблицы */
 .acc-panel { flex: none; min-height: 0; overflow: visible; border: 0; border-radius: 0; background: transparent; }
 .acc-table, .acc-table tbody, .acc-table tr.acc-group-row, .acc-table .acc-group-row th { display: block; }
 .acc-table thead { display: none; }
 .acc-table tbody { display: flex; flex-direction: column; gap: 8px; }
 .acc-table tbody:empty { display: none; }
 .acc-table tbody + tbody:not(:empty) { margin-top: 16px; }
 .acc-table .acc-group-row th { position: static; padding: 0 4px; border: 0 !important; background: transparent; }
 .acc-group-hint { display: none; }
 .acc-table tr.acc-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; grid-template-areas: "sel acc acc" ". st st" ". proxy proxy" ". lim act"; align-items: center; gap: 8px; padding: 8px 12px 12px 4px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--panel); }
 .acc-table tr.acc-row.is-selected, .acc-table tr.acc-row.is-open { border-color: transparent; background: var(--accent-soft); }
 .acc-table tr.acc-row:hover { background: var(--panel); }
 .acc-table tr.acc-row td { display: block; width: auto; height: auto; padding: 0; border: 0; }
 .acc-table td.c-sel { grid-area: sel; width: auto; padding: 0; }
 .acc-table td.c-acc { grid-area: acc; min-width: 0; }
 .acc-table td.c-st { grid-area: st; }
 .acc-table td.c-lim { grid-area: lim; }
 .acc-table td.c-lim.is-empty, .acc-table tr.acc-row td.c-trust, .acc-table tr.acc-row td.c-msg, .acc-table tr.acc-row td.c-owner { display: none; }   /* траст — в карточке аккаунта, сообщения — на своей странице */
 .acc-table tr.acc-row td.c-proxy { grid-area: proxy; min-width: 0; overflow: visible; visibility: visible; }   /* состояние прокси видно и в карточке-строке: «Работает» / «Работал в 20:44» */
 .acc-lim-s { display: inline; }
 .acc-table td.c-act { grid-area: act; align-self: end; width: auto; padding: 0; }   /* действия — в нижней строке, имя получает всю ширину */
 .acc-check input { width: 20px; height: 20px; }
 .acc-id { min-height: 40px; }
 .acc-sub { max-width: 100%; }
 .acc-actions .btn { height: 40px; }
 .acc-actions .icon-btn { width: 40px; }
 /* Панель выбора — над нижним таб-баром */
 .acc-bulk { right: 12px; bottom: calc(76px + env(safe-area-inset-bottom)); left: 12px; transform: none; }
 .acc-bulk-n { margin-right: auto; }   /* разделитель и кнопки — одной группой справа */
 @starting-style { .acc-bulk { transform: translateY(8px); } }
 .acc-bulk .btn { width: 40px; height: 40px; }
 /* Карточка аккаунта — на весь экран (.sheet ≤ 767 в app.css) */
 .acc-sheet { width: 100%; }
 .acc-sheet .sheet-foot .btn, .acc-sheet .acc-acts .btn, .acc-sec-head .btn { height: 40px; }
 .acc-kv { grid-template-columns: 120px minmax(0, 1fr); }
 .acc-tabbar { padding: 8px 16px; }
 .acc-sheet .sheet-body { padding: 20px 16px; }
 .acc-jumps { margin: 0 -4px; }
 .acc-jump { grid-template-columns: 120px minmax(0, 1fr) auto; min-height: 44px; padding: 6px 4px; }
 .acc-pair { grid-template-columns: minmax(0, 1fr); }
}
