/* ============================================================================
   «Сборник» – настройки администратора: views/admin/settings.php, backup.php,
   appearance.php (+ общие строки-переключатели для template.php и
   matter.php). Подключается layout.php сам (все css/area-*.css),
   после theme.css. Общие компоненты (.sb-set, .sb-fold, .sb-notice,
   .sb-form-actions, .sb-action-bar…) – в theme.css; здесь только своё,
   с приставкой sb-as-. Конструктор шаблона и служебных страниц – template.css.
   ========================================================================== */

/* ширина экрана – общая колонка администратора (.sb-adm, area-admin-core.css) */
.sb-as-form { margin-bottom: var(--sb-gap); }

/* ------------------------------------- строка-переключатель (.sb-set) -- */
/* подпись и пояснение слева, переключатель справа – и на телефоне тоже */
.sb-as-sets { margin: 0 0 1.25rem; }
.sb-as-sets:last-child { margin-bottom: 0; }
.sb-set.sb-as-switch { grid-template-columns: minmax(0, 1fr) auto; gap: .5rem 1.5rem; padding: .875rem 0; }
.sb-set.sb-as-switch:first-child { padding-top: 0; }
.sb-set.sb-as-switch:last-child { padding-bottom: 0; }
.sb-as-switch .sb-set-text { cursor: pointer; margin: 0; }
.sb-as-switch .sb-set-text small { line-height: 1.45; margin-top: .25rem; }
.sb-as-switch .sb-set-ctl.is-switch { justify-self: end; align-self: center; }
.sb-as-switch .form-switch { padding: 0; margin: 0; min-height: 0; display: flex; }
.sb-as-switch .form-switch .form-check-input { margin: 0; width: 3rem; height: 1.625rem; cursor: pointer; }
/* поля под строками-переключателями – отдельной группой, через черту */
.sb-as-sets:has(+ .sb-as-fields) { padding-bottom: 1.25rem; border-bottom: 1px solid var(--sb-line); }
/* заголовок карточки и то, что под ним */
:is(.sb-as-page, .sb-tpl, .sb-pg) h2.sb-card-title + :is(.sb-card-lead, .sb-as-sets, .sb-as-fields) { margin-top: .75rem; }
:is(.sb-as-page, .sb-tpl, .sb-pg) .sb-card-head + .sb-card-lead { margin-top: -.25rem; }

/* ------------------------------------------ Настройки: список разделов -- */
/* строка = название слева, что сейчас – справа, стрелка; вся строка нажимается */
.sb-as-list-card { overflow: hidden; }
.sb-as-list { list-style: none; margin: 0; padding: 0; }
.sb-as-list > li + li { border-top: 1px solid var(--sb-line); }
.sb-as-li {
  display: flex; align-items: center; gap: .5rem 1rem; min-height: 52px; padding: .75rem 1.25rem;
  color: var(--sb-ink); text-decoration: none; cursor: pointer;
}
a.sb-as-li:hover, summary.sb-as-li:hover { background: var(--sb-surface-2); color: var(--sb-ink); text-decoration: none; }
.sb-as-li:focus-visible { outline-offset: -3px; }
.sb-as-li-name { flex: 1 1 auto; min-width: 0; font-weight: 600; color: var(--sb-brand-700); }
a.sb-as-li:hover .sb-as-li-name, summary.sb-as-li:hover .sb-as-li-name { color: var(--sb-brand-800); }
.sb-as-li-val { flex: 0 1 auto; min-width: 0; color: var(--sb-ink-2); text-align: right; }
.sb-as-li-val .sb-status { white-space: normal; }
.sb-as-li > .sb-ic { flex: none; width: 1.125rem; height: 1.125rem; color: var(--sb-muted); }
.sb-as-li-fold[open] > summary.sb-as-li { border-bottom: 1px solid var(--sb-line); }
.sb-as-li-body { padding: 1rem 1.25rem 1.25rem; background: var(--sb-surface-2); }
.sb-as-li-body .sb-form-actions { margin-top: 1.25rem; }
.sb-as-li-lead { color: var(--sb-ink-2); margin: 0 0 1rem; max-width: 42rem; }
/* письма не уходят – видно сразу, без раскрытия */
.sb-as-li-alert { margin: 0 1.25rem 1rem; padding: .75rem 1rem; border: 1px solid var(--sb-warn-line); border-radius: var(--sb-radius-lg); background: var(--sb-warn-bg); color: var(--sb-ink); }
.sb-as-li-alert.is-bad { background: var(--sb-bad-bg); border-color: var(--sb-bad-line); }
.sb-as-li-alert p { margin: 0 0 .25rem; }
.sb-as-li-alert p:last-of-type { margin-bottom: 0; }
.sb-as-err { overflow-wrap: anywhere; }
.sb-as-retry { margin-top: .75rem; }
.sb-as-note { color: var(--sb-ink-2); font-size: .8125rem; margin: 0; max-width: 46rem; }

/* «Требования к статье»: подпись слева, «от [ ] до [ ]» справа */
.sb-as-lim { display: grid; gap: .75rem; max-width: 34rem; }
.sb-as-lim-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .25rem 1rem; }
.sb-as-lim-name { font-weight: 700; color: var(--sb-ink); }
.sb-as-lim-f { display: inline-flex; align-items: center; gap: .5rem; margin: 0; color: var(--sb-ink-2); }
.sb-as-lim-f .form-control { width: 5.5rem; text-align: right; font-variant-numeric: tabular-nums; }
.sb-as-lim-row > .invalid-feedback { grid-column: 1 / -1; margin-top: 0; }
/* «Приём статей»: дата и переключатель в одну строку */
.sb-as-priem { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem 2rem; }
.sb-as-priem-dl { flex: 0 1 14rem; min-width: 0; }
.sb-as-priem-sw { display: flex; align-items: center; gap: .75rem; min-height: 34px; margin: 0; padding-left: 0; }
.sb-as-priem-sw .form-check-input { float: none; flex: none; margin: 0; }
.sb-as-priem-sw .form-check-label { font-weight: 700; color: var(--sb-ink); }

/* ------------------------------------------------ резервные копии -- */
.sb-as-newcopy { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem 1rem; }
.sb-as-newcopy-note { flex: 1 1 20rem; min-width: 0; }
.sb-as-empty { color: var(--sb-ink-2); margin: 0; }

/* «Введите свой пароль»: спокойная серая подложка, не ошибка */
.sb-as-confirm { margin-bottom: 1.25rem; padding: 1rem 1.25rem; border-radius: var(--sb-radius-lg); background: var(--sb-surface-2); border: 1px solid var(--sb-line); }
.sb-as-confirm-body { min-width: 0; }
.sb-as-confirm-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.sb-as-confirm-row .input-group { flex: 1 1 17rem; max-width: 26rem; }

.sb-as-copies { list-style: none; margin: 0; padding: 0; }
.sb-as-copies > li { display: flex; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding: .75rem 0; border-top: 1px solid var(--sb-line); }
.sb-as-copies > li:first-child { border-top: 0; padding-top: .25rem; }
.sb-as-copies > li:last-child { padding-bottom: 0; }
.sb-as-copy-main { flex: 1; min-width: 0; }
.sb-as-copy-when b { font-weight: 600; }
.sb-as-copy-meta { display: flex; flex-wrap: wrap; gap: .125rem 1rem; margin-top: .125rem; font-size: .8125rem; color: var(--sb-ink-2); }
.sb-as-copy-meta > span { white-space: nowrap; }
.sb-as-copy-note { color: var(--sb-ink-2); overflow-wrap: anywhere; }
.sb-as-copy-act { display: flex; align-items: center; gap: .5rem; flex: none; }
.sb-as-copy-act .sb-chev { width: 1rem; height: 1rem; }
.sb-as-copy-act .dropdown-menu { min-width: 17rem; }
.sb-as-foot { margin: 1rem 0 0; padding-top: .75rem; border-top: 1px solid var(--sb-line); color: var(--sb-ink-2); font-size: .8125rem; }

/* «Другие действия» (свёрнуты): строка = что это, пояснение, кнопка под ним */
.sb-as-act { padding: 1rem 0; border-top: 1px solid var(--sb-line); }
.sb-as-act:first-child { border-top: 0; padding-top: 0; }
.sb-as-act:last-child { padding-bottom: 0; }
.sb-as-act > b { display: block; font-weight: 600; }
.sb-as-act > p { color: var(--sb-ink-2); margin: .125rem 0 .75rem; max-width: 40rem; }
.sb-as-act > p:last-child { margin-bottom: 0; }
.sb-as-act > .sb-as-act-wait { color: var(--sb-muted); }
.sb-as-act .sb-as-confirm { margin-bottom: 0; }
.sb-as-upload { display: grid; gap: 1rem; max-width: 30rem; }

/* ------------------------------------------------------- телефон -- */
@media (max-width: 767.98px) {
  .sb-set.sb-as-switch { gap: .5rem 1rem; }
  .sb-as-li { padding: .75rem 1rem; flex-wrap: wrap; }
  .sb-as-li-name { flex-basis: calc(100% - 2.75rem); }
  .sb-as-li > .sb-ic { order: 2; margin-left: auto; }
  .sb-as-li-val { order: 3; flex-basis: 100%; text-align: left; margin-top: -.25rem; }
  .sb-as-li-body { padding: 1rem; }
  .sb-as-li-alert { margin: 0 1rem 1rem; }
  .sb-as-li-body .sb-form-actions > .btn, .sb-as-retry > .btn, .sb-as-act form > .btn,
  .sb-as-upload .btn, .sb-as-newcopy > .btn { width: 100%; }
  .sb-as-confirm { padding: 1rem; }
  .sb-as-confirm-row .input-group { max-width: none; }
  .sb-as-confirm-row > .btn { width: 100%; }
  .sb-as-copies > li { flex-direction: column; align-items: stretch; gap: .75rem; }
  .sb-as-copy-act > .btn { flex: 1 1 auto; }
  .sb-as-page .sb-form-actions > .btn { width: 100%; }
  .sb-as-lim-row { grid-template-columns: 1fr 1fr; }
  .sb-as-lim-name { grid-column: 1 / -1; }
  .sb-as-lim-f .form-control { width: 100%; }
  .sb-as-priem-dl { flex-basis: 100%; }
  .sb-as-priem-sw { min-height: 44px; }
}
