﻿/* ==========================================================================
   Раздел «Администрирование» (Views/Admin/Index и страницы, на которые ведут его плитки).
   Компоненты — из accounts.css (tsu-page-header, tsu-back, tsu-tiles-grid, tsu-tile-link, tsu-card, tsu-table,
   tsu-field, tsu-input, tsu-btn, tsu-badge, tsu-notice, tsu-state, tsu-auth); здесь только раскладка.
   Таблицы: с 768 px — обычная таблица, уже — карточки «подпись — значение» (подпись из data-label),
   страница без горизонтальной прокрутки.
   ========================================================================== */
.adm { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.adm :where(p, ul, dl, h2) { margin: 0; }

/* Меню: значки Font Awesome в квадрате плитки кита. */
.adm-tiles .tsu-tile-link__icon > i { font-size: 17px; line-height: 1; }
.adm-tiles .tsu-tile-link__arrow, .adm-tiles .tsu-tile-link__chevron { font-size: 14px; }

/* Шапка карточки-списка: заголовок, счётчик, действия. */
.adm-ph-act { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }

/* Список «подпись — значение» (как .pf-kv профиля). */
.adm-kv { display: grid; grid-template-columns: minmax(var(--kv-k, 200px), max-content) minmax(0, 1fr); align-items: start; gap: 10px 20px; font-size: 14px; line-height: 1.45; }
.adm-kv > dt { margin: 0; font-weight: 400; color: var(--tsu-text-muted); }
.adm-kv > dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 639.98px) {
  .adm-kv { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .adm-kv > dd + dt { margin-top: 10px; }
}
.adm-empty { color: var(--tsu-text-subtle); }
.adm-mono { font-family: var(--tsu-font-mono); font-size: 13px; overflow-wrap: anywhere; }

/* Таблица: на широком экране — tsu-table, ячейки не разрывают страницу. */
.adm-table td { overflow-wrap: anywhere; }
.adm-table tbody tr:hover td { background: var(--tsu-surface-muted); }
.adm-table .adm-nowrap { white-space: nowrap; }
.adm-person { display: flex; align-items: center; gap: 10px; min-width: 0; }
.adm-person > a { min-width: 0; font-weight: 600; color: var(--tsu-primary); overflow-wrap: anywhere; }
.adm-person > a:hover, .adm-person > a:focus { color: var(--tsu-primary-hover); text-decoration: underline; }
.adm-ok { color: var(--tsu-success-fg); }

@media (max-width: 767.98px) {
  .adm-rt thead { display: none; }
  .adm-rt, .adm-rt tbody, .adm-rt tr { display: block; width: 100%; }
  .adm-rt tr { padding: 12px 16px; border-bottom: 1px solid var(--tsu-border); }
  .adm-rt tr:last-child { border-bottom: 0; }
  .adm-rt td { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 12px; padding: 3px 0; border: 0; }
  .adm-rt td::before { content: attr(data-label); font-size: 13px; color: var(--tsu-text-muted); }
  .adm-rt td.adm-rt-main { display: block; padding-bottom: 8px; }
  .adm-rt td.adm-rt-main::before { content: none; }
  .adm-table tbody tr:hover td { background: transparent; }
}

/* Простой список строк (бан-лист). */
.adm-list { padding: 0; list-style: none; }
.adm-list > li { padding: 10px 16px; border-bottom: 1px solid var(--tsu-border); overflow-wrap: anywhere; }
.adm-list > li:last-child { border-bottom: 0; }
@media (min-width: 640px) { .adm-list > li { padding: 12px 20px; } }

/* Формы в карточке: поля кита в сетке. */
.adm-form { display: flex; flex-direction: column; gap: 16px; }
.adm-form .tsu-field--editor { max-width: none; margin-bottom: 0; }
.adm-form .tsu-form-actions { margin: 4px 0 0; }
.adm-grid { display: grid; gap: 16px 20px; }
@media (min-width: 640px) { .adm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.adm-grid > .adm-wide { grid-column: 1 / -1; }
.adm-line { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; }
.adm-line > .tsu-field { flex: 1 1 280px; }
.adm-narrow { max-width: 760px; }

/* Пейджер PagedList / X.PagedList (ul.pagination). */
.adm-pager .pagination-container { display: contents; }
.adm-pager .pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 0; list-style: none; }
.adm-pager .pagination > li > a, .adm-pager .pagination > li > span {
  display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; margin: 0; padding: 0 10px;
  border: 1px solid var(--tsu-border); border-radius: var(--tsu-radius-sm); background: var(--tsu-surface); color: var(--tsu-text); font-size: 14px; line-height: 1; text-decoration: none;
}
.adm-pager .pagination > li > a:hover { border-color: var(--tsu-primary); color: var(--tsu-primary); }
.adm-pager .pagination > .active > a, .adm-pager .pagination > .active > span { border-color: var(--tsu-primary); background: var(--tsu-primary); color: var(--tsu-primary-fg); }
.adm-pager .pagination > .disabled > a, .adm-pager .pagination > .disabled > span { color: var(--tsu-text-subtle); pointer-events: none; }

/* Регистрация (страницы входа, без шапки): карточка шире формы входа. */
.tsu-auth__card.adm-reg { max-width: 640px; }
.adm-reg .tsu-auth__head { margin-bottom: 20px; }
.adm-reg-sec { display: flex; flex-direction: column; gap: 16px; padding-top: 20px; border-top: 1px solid var(--tsu-border); }
.adm-reg-sec > h2 { font-size: 16px; font-weight: 600; line-height: 1.5; }
.adm-reg .tsu-field--editor { max-width: none; margin-bottom: 0; }
.adm-reg .tsu-form-actions { margin: 4px 0 0; }
.adm-reg-back { margin-bottom: 12px; }

/* Сводка на главной администрирования: компактная сетка карточек-метрик, на телефоне — столбец. */
.adm-summary { margin-bottom: 24px; }
.adm-summary__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 12px; }
.adm-summary__title { margin: 0; font-size: 18px; font-weight: 600; line-height: 1.4; }
.adm-summary__note { font-size: 13px; color: var(--tsu-text-muted); }
.adm-metrics { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (max-width: 479.98px) { .adm-metrics { grid-template-columns: 1fr; gap: 8px; } }
.adm-metrics > li { display: flex; min-width: 0; }
.adm-metric { display: flex; flex: 1 1 auto; flex-direction: column; gap: 2px; min-width: 0; padding: 12px 14px; border: 1px solid var(--tsu-border); border-radius: var(--tsu-radius-sm); background: var(--tsu-surface); color: inherit; text-decoration: none; }
a.adm-metric:hover, a.adm-metric:focus-visible { border-color: var(--tsu-primary); color: inherit; text-decoration: none; }
.adm-metric.is-warn { border-left: 3px solid var(--tsu-warning); }
.adm-metric__label { font-size: 13px; color: var(--tsu-text-muted); overflow-wrap: anywhere; }
.adm-metric__value { font-size: 22px; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; }
.adm-metric__sub { font-size: 12px; color: var(--tsu-text-subtle); overflow-wrap: anywhere; }
