/* admin-core.css - модуль «Администратор — участники и журнал» (ad-*). Только токены дизайна v4 (style.css),
   шрифт наследуется (Manrope). Адаптив как в handoff 06: ≤1050 планшет, ≤740 телефон. Подключается после platform.css. */

.ad-root{display:block;min-width:0}
.ad-loading{display:flex;gap:10px;align-items:center;justify-content:center;padding:48px 20px;color:var(--muted);font-size:14px;background:var(--white);border:1px dashed var(--line);border-radius:22px}
.ad-root .pf-heading-actions .button.small{padding:11px 18px}
.ad-small{font-size:12.5px}
.ad-nowrap{white-space:nowrap}
.ad-break{word-break:break-word}
.ad-foot{color:var(--muted);font-size:12px;margin:12px 4px 0}
.ad-more{margin:14px 0 0}
.ad-danger{color:color-mix(in srgb,var(--red) 75%,var(--ink))}

/* Панель фильтров: выпадающие списки, поиск, даты */
.ad-toolbar{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:0 0 18px}
.ad-toolbar .pf-tabs{margin:0}
.ad-root .pf-tabs button.active .nav-count{background:var(--yellow);color:var(--ink)}
.ad-select select,.ad-input input,.ad-pick-search input,.ad-note-input{border:1px solid var(--line);border-radius:14px;padding:10px 14px;font:inherit;font-size:13.5px;background:var(--white);color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}
.ad-select select{padding-right:34px;max-width:100%;cursor:pointer}
.ad-select select:focus,.ad-input input:focus,.ad-pick-search input:focus,.ad-note-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.ad-input{display:flex;flex-direction:column;gap:5px}
.ad-input span{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.02em}
.ad-input input{min-width:0}
.ad-input input[type=date]{width:160px}
.ad-search{display:flex;align-items:center;gap:10px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:4px 4px 4px 14px;min-width:240px;flex:1 1 280px;max-width:460px;color:var(--muted);transition:border-color .15s,box-shadow .15s}
.ad-search input{border:0;padding:8px 0;flex:1;min-width:0;background:transparent;font:inherit;font-size:13.5px;color:var(--ink);outline:none}
.ad-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.ad-search .button.small{padding:8px 14px}
label.ad-search{padding:4px 14px}
.ad-check-inline{grid-column:auto;align-items:center;margin:0;font-size:13px;padding:10px 0}
.ad-check-inline input{margin-top:0}
.ad-hr-filters{margin-top:4px}

/* Ячейки таблиц */
.ad-cell{display:flex;flex-direction:column;gap:2px;min-width:0}
.ad-cell small{color:var(--muted);font-size:12px}
.ad-person{flex-direction:row;align-items:center;gap:12px}
.ad-person>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.ad-person small{overflow-wrap:anywhere}
.ad-tags{display:flex;gap:6px;flex-wrap:wrap}
.ad-docs-count{font-weight:700;font-variant-numeric:tabular-nums}
.ad-docs-count.is-short{color:color-mix(in srgb,var(--red) 75%,var(--ink))}
.ad-root .pf-table-actions{flex-wrap:nowrap}
.ad-root .pf-table .button.small{white-space:nowrap}
.ad-log-table tbody tr{cursor:pointer}
.ad-log-table tbody tr:focus-visible td{background:var(--paper)}

/* Обзор */
.ad-grid{margin-top:4px;grid-template-columns:minmax(0,2fr) minmax(300px,1fr)}
@media (max-width:1050px){.ad-grid{grid-template-columns:minmax(0,1fr)}}
.ad-grid .pf-panel{margin-top:0}
.ad-side{display:flex;flex-direction:column;gap:18px;min-width:0}
.ad-status-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ad-status-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.ad-status-list li:last-child{border-bottom:0}
.ad-status-list li>span:first-child{display:flex;align-items:center;gap:10px;font-weight:600;flex-wrap:wrap}
.ad-status-list small{display:block;width:100%;padding-left:26px;color:var(--muted);font-weight:500;font-size:12px}
.ad-mini-review{border:1px solid var(--line);border-radius:18px;padding:14px 16px;margin-bottom:14px;background:var(--paper)}
.ad-mini-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13.5px}
.ad-mini-head .ad-rating{margin-left:auto}
.ad-mini-review p{margin:8px 0 0;font-size:13.5px;line-height:1.5}
.ad-rating{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:13px;background:var(--yellow);color:var(--ink);border-radius:999px;padding:4px 10px;white-space:nowrap}

/* Проверка участников: очередь + карточка */
.ad-verify{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:18px;align-items:start}
.ad-verify-list .section-label{margin:0 0 10px}
.ad-queue{display:flex;flex-direction:column;gap:8px}
.ad-queue-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:12px 14px;font:inherit;color:var(--ink);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.ad-queue-item:hover{border-color:color-mix(in srgb,var(--line) 60%,var(--ink))}
.ad-queue-item.is-selected{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-soft)}
.ad-queue-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.ad-queue-body b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-queue-body small{color:var(--muted);font-size:12px}
.ad-age{flex:none;font-size:12px;font-weight:700;color:var(--muted);background:var(--paper);border-radius:999px;padding:3px 9px}
.ad-age.is-old{background:color-mix(in srgb,var(--red) 14%,var(--white));color:color-mix(in srgb,var(--red) 70%,var(--ink))}
.ad-card{padding:26px 28px;margin:0}
.ad-card-head{display:flex;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.ad-avatar{width:52px;height:52px;font-size:16px}
.ad-card-title{flex:1;min-width:200px}
.ad-card-title h2{margin:0;font-size:24px;letter-spacing:-.02em;line-height:1.15;overflow-wrap:anywhere}
.ad-card-title p{margin:6px 0 0;color:var(--muted);font-size:13.5px}
.ad-block{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.ad-block h3{font-size:15px;margin:0 0 12px;letter-spacing:-.01em}
.ad-docs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ad-docs li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--white);flex-wrap:wrap}
.ad-doc-name{display:flex;gap:10px;align-items:flex-start;min-width:0;flex:1 1 220px}
.ad-doc-name svg{flex:none;margin-top:2px;color:var(--muted)}
.ad-doc-name>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.ad-doc-name b{font-size:13.5px}
.ad-doc-name small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.ad-doc-actions{display:flex;gap:8px;align-items:center;flex:none}
.ad-checks{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
/* QA 07.11 BUG-128: результаты проверок - обычный .tag (радиус и кегль тега дизайна), только с иконкой */
.ad-root .ad-check{display:inline-flex;align-items:center;gap:6px}
.ad-decision-actions{display:flex;gap:10px;flex-wrap:wrap}
.ad-history{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:10px}
.ad-history li{display:grid;grid-template-columns:110px 1fr;gap:12px;font-size:13px}
.ad-history time{color:var(--muted);font-variant-numeric:tabular-nums}
.ad-history small{display:block;color:var(--muted);font-size:12px;margin-top:2px}

/* Отзывы и жалобы */
.ad-reviews{display:flex;flex-direction:column;gap:14px}
.ad-review{padding:20px 24px;margin:0}
.ad-review-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.ad-review-who{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:15px}
.ad-review-meta{margin:6px 0 0;color:var(--muted);font-size:12.5px}
.ad-review-side{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ad-review-text{margin:14px 0 0;font-size:14px;line-height:1.55;max-width:760px}
.ad-criteria{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.ad-criteria span{font-size:12px;color:var(--muted);background:var(--paper);border-radius:999px;padding:4px 10px}
.ad-review-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.ad-note-input{flex:1 1 220px;min-width:0}

/* Диалоги модуля */
.ad-modal-form{text-align:left;margin-top:14px}
.ad-modal-form .pf-field{margin-top:14px}
.ad-modal-text{color:var(--muted);font-size:13px;line-height:1.5;margin:14px 0 0}
.ad-doc-pick{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}
.ad-doc-pick .pf-check{font-size:13px;margin:0;padding:6px 0}
.ad-pick-search{display:flex;gap:8px}
.ad-pick-search input{flex:1;min-width:0}
.ad-pick-list{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:240px;overflow:auto}
.ad-pick{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:14px;cursor:pointer;font-size:13px}
.ad-pick.is-selected{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-soft)}
.ad-pick input{margin-top:3px;accent-color:var(--blue)}
.ad-pick span{display:flex;flex-direction:column;gap:2px;min-width:0}
.ad-pick small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.ad-diff{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;text-align:left}
.ad-diff .section-label{margin:0 0 8px}
.ad-json{margin:0;font-family:inherit;max-height:220px;overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:11.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}

/* Планшет */
@media (max-width:1050px){
  .ad-verify{grid-template-columns:minmax(0,1fr)}
  .ad-queue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Телефон */
@media (max-width:740px){
  .ad-root .pf-table-actions{flex-wrap:wrap}
  .ad-root .pf-table td>.tag{justify-self:start}
  .ad-toolbar{align-items:stretch}
  .ad-toolbar>*{flex:1 1 100%;max-width:none}
  .ad-select select,.ad-input input[type=date]{width:100%}
  .ad-search{min-width:0}
  .ad-queue{grid-template-columns:minmax(0,1fr)}
  .ad-card{padding:20px 18px}
  .ad-card-title h2{font-size:20px}
  .ad-history li{grid-template-columns:1fr;gap:2px}
  .ad-doc-pick,.ad-diff{grid-template-columns:minmax(0,1fr)}
  .ad-review{padding:18px}
  .ad-decision-actions .button{flex:1 1 100%;justify-content:center}
  .ad-person .avatar{display:none}
}
/* Решение по отдельному документу (акт. п. 12) */
.ad-doc-actions{flex-wrap:wrap;justify-content:flex-end}
.ad-doc-name small.ad-doc-reason{color:var(--red)}
.ad-cell small{display:block}
@media (max-width:740px){.ad-doc-actions{flex:1 1 100%;justify-content:flex-start}}

/* Просмотр кабинета участника (ТЗ 3.18): постоянная полоса «Просмотр от имени… · только чтение» поверх экранов любой роли */
.ad-viewas{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:900;display:flex;align-items:center;gap:12px;max-width:min(760px,calc(100vw - 32px));padding:8px 8px 8px 16px;background:var(--ink);color:var(--white);border-radius:18px;box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 28%,transparent);font-size:13px}
.ad-viewas-icon{display:inline-flex;color:var(--yellow);flex:none}
.ad-viewas-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.ad-viewas-text b{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-viewas-text small{color:color-mix(in srgb,var(--white) 70%,transparent);font-size:11.5px}
.ad-viewas .button.small{flex:none;padding:9px 14px;background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
body.ad-viewas-on{padding-bottom:84px}
body.ad-viewas-on #toast{bottom:92px}
@media (max-width:740px){
  .ad-viewas{left:16px;right:16px;transform:none;max-width:none;bottom:calc(12px + env(safe-area-inset-bottom,0px));gap:10px;padding:8px 8px 8px 12px}
  .ad-viewas .button.small{padding:9px 12px;font-size:12.5px}
}

/* ───── Правки по QA-аудиту 05.11.2026 (отчёт 110526) ───── */
/* BUG-112: «Все кабинеты» - имя и e-mail не рвутся по буквам, кнопки действий столбиком и в одну строку каждая */
[data-ad-route="admin-users"] .pf-table td:first-child{min-width:240px;max-width:none;overflow-wrap:normal;word-break:normal}
[data-ad-route="admin-users"] .pf-table td:first-child b{overflow-wrap:anywhere}
[data-ad-route="admin-users"] .pf-table td:first-child small{overflow-wrap:anywhere;display:block}
[data-ad-route="admin-users"] .pf-table-actions{flex-wrap:nowrap;justify-content:flex-end;gap:6px}
@media (max-width:1300px){[data-ad-route="admin-users"] .pf-table-actions{flex-wrap:wrap;max-width:340px;margin-left:auto}}
[data-ad-route="admin-users"] .pf-table-actions .button{white-space:nowrap}
/* BUG-044: «Смотреть как» - только чтение: кнопки отправки форм участника приглушены */
body.ad-viewas-on .workspace-main form button[type=submit],body.ad-viewas-on .workspace-main form .button.primary{opacity:.55;cursor:not-allowed}
body.ad-viewas-on .workspace-main [data-ad-route] form button[type=submit]{opacity:1;cursor:pointer}
/* BUG-115: тач-цели на телефоне - чекбоксы 22 px, строки с ними не ниже 44 px, малые кнопки не ниже 40 px */
@media (max-width:740px){
  .ad-root input[type=checkbox],.ad-root .pf-check input{width:22px;height:22px;flex:0 0 22px}
  .ad-root .pf-check,.ad-root label.check-row{min-height:44px;display:flex;align-items:center;gap:10px}
  .ad-root .pf-table input[type=checkbox]{margin:11px 0}
  .ad-root .button.small{min-height:40px}
  .ad-root .text-link{min-height:44px;display:inline-flex;align-items:center}
}

/* Несколько кнопок выгрузки в шапке «Принятые работники» (Excel, файл для 1С) */
.ad-actions{display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}
@media (max-width:740px){.ad-actions{width:100%}.ad-actions .button{flex:1 1 auto}}

/* QA 07.11 BUG-038: таблица кабинетов помещается в панель - подписи колонок переносятся («Последний / вход»), действия по содержимому */
@media (min-width:1051px){
  .ad-users-table th{white-space:normal;vertical-align:bottom}
  .ad-users-table th:last-child,.ad-users-table td:last-child{width:1%}
}

/* Повторная визуальная приёмка 07.11: в карточном режиме (≤1050) кнопки «Проверка», «Открыть кабинет», «Заблокировать» -
   от левого края значения, как во всех таблицах-карточках, а не прижаты вправо (margin-left:auto из правила до 1300 px) */
@media (max-width:1050px){
  [data-ad-route="admin-users"] .pf-table-actions{justify-content:flex-start;margin-left:0;max-width:none}
}
