/* ============================================================================
   «Сборник» – вход, регистрация, первая настройка, ошибка, профиль, уведомления:
   views/auth/login.php, register.php, setup.php, error.php, profile.php,
   notifications.php. Подключается layout.php сам (все css/area-*.css).
   Общие компоненты (.sb-auth, .sb-auth-card, .sb-how, .sb-choice, .sb-notif,
   .sb-empty …) – в theme.css; здесь только своё, с приставкой sb-au-.
   ========================================================================== */

/* ---------------------------------------------------------------- Вход -- */
/* одна карточка по центру (как форма входа в ЛК), без колонки пояснений */
.sb-au-login .sb-auth { grid-template-columns: minmax(0, 25rem); justify-content: center; padding-top: 3rem; }
.sb-au-login .sb-auth-card { grid-column: 1; }
.sb-au-login .sb-auth-card .card-body { padding: 1.25rem; }
.sb-au-login .sb-auth-help { color: var(--sb-muted); font-size: .8125rem; margin-top: .5rem; }
/* сообщение сервера («Заявка отправлена…») – над карточкой и вводным текстом,
   а не под ними: у карточки и текста на компьютере задан первый ряд сетки */
@media (min-width: 992px) {
  .sb-au-login .sb-auth > .sb-flashes { grid-row: 1; }
  .sb-au-login .sb-auth:has(> .sb-flashes) > .sb-auth-card,
  .sb-au-login .sb-auth:has(> .sb-flashes) > .sb-auth-intro { grid-row: 2; }
}
/* планшет: карточка не растягивается на всю ширину экрана */
@media (min-width: 576px) and (max-width: 991.98px) {
  .sb-au-auth .sb-auth { max-width: 42rem; }
}
/* ошибки формы – между подзаголовком и полями; несколько – одним списком */
.sb-au-errs { margin: .375rem 0 0; padding-left: 1.25rem; }
.sb-au-errs li + li { margin-top: .25rem; }
.sb-au-card .sb-flash { margin-bottom: 1.5rem; }

/* --------------------------------------------------------- Регистрация -- */
.sb-au-card fieldset { border: 0; padding: 0; min-width: 0; }
.sb-au-card legend { float: none; width: auto; padding: 0; font-size: .875rem; }
.sb-au-card .sb-choice .btn { flex: 1 1 auto; justify-content: flex-start; text-align: left; gap: .75rem; }
/* выбор роли – как переключатель с кружком: видно, что выбрать можно одно */
.sb-au-card .sb-choice .btn::before {
  content: ""; flex: none; width: 1.25rem; height: 1.25rem; border-radius: 50%;
  border: 2px solid var(--sb-field); background: #fff;
}
.sb-au-card .sb-choice .btn-check:checked + .btn::before { border-color: var(--sb-brand-600); background: var(--sb-brand-600); box-shadow: inset 0 0 0 3px #fff; }
.sb-au-card .sb-choice .btn-check:focus-visible + .btn { box-shadow: var(--sb-focus); }
.sb-au-card .sb-choice { margin-bottom: .25rem; }
.sb-au-fields > [hidden] { display: none; }
.sb-au-wait { margin: 0; color: var(--sb-ink-2); font-size: .875rem; }
.sb-au-submit { margin-top: 1.5rem; }

/* ------------------------------------------------- Первая настройка -- */
.sb-au-step { display: flex; align-items: center; gap: .75rem; font-size: 1.0625rem; margin: 2rem 0 1rem; padding-top: 1.5rem; border-top: 1px solid var(--sb-line); }
.sb-au-card form > .sb-au-step:first-of-type { margin-top: .5rem; padding-top: 0; border-top: 0; }
.sb-au-step-num { width: 2rem; height: 2rem; flex: none; border-radius: 50%; background: var(--sb-page); color: var(--sb-ink-2); display: inline-flex; align-items: center; justify-content: center; font-size: .875rem; font-weight: 700; }
.sb-au-demo { margin: .5rem 0 1.75rem; }
.sb-au-demo .form-check-label { font-weight: 500; }
.sb-au-demo .form-text { margin-top: .25rem; }

/* ---------------------------------------------------------- Ошибка -- */
.sb-au-error { width: 100%; max-width: 40rem; margin: 2rem auto; text-align: center; }
.sb-auth > .sb-au-error { margin: 0 auto; }
.sb-au-error .card-body { padding: 3rem 2.5rem; }
.sb-au-error-code { font-size: .875rem; font-weight: 600; color: var(--sb-muted); margin: 0 0 .25rem; }
.sb-au-error h1 { margin-bottom: .75rem; }
.sb-au-error-text { color: var(--sb-ink-2); font-size: .9375rem; max-width: 32rem; margin: 0 auto; overflow-wrap: anywhere; }
.sb-au-error-hint { color: var(--sb-muted); max-width: 32rem; margin: .75rem auto 0; }
.sb-au-error-act { margin-top: 2rem; display: flex; justify-content: center; }
@media (max-width: 767.98px) {
  .sb-au-error { margin: .5rem auto; }
  .sb-au-error .card-body { padding: 2rem 1.25rem; }
  .sb-au-error-act .btn { width: 100%; }
}

/* ---------------------------------------------- Профиль, уведомления -- */
.sb-au-page { max-width: 56rem; }
/* почта, телефон и письма – под ФИО, через тонкую линию */
.sb-au-block { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--sb-line); }
.sb-au-mail b { font-weight: 500; overflow-wrap: anywhere; min-width: 0; }
.sb-au-switch { margin: 0; padding: 0; min-height: 34px; display: flex; align-items: center; gap: .625rem; }
.sb-au-switch .form-check-input { margin: 0; flex: none; float: none; }
.sb-au-switch .form-check-label { font-weight: 500; }
.sb-au-actions { border-top: 0; margin-top: 0; padding-top: .25rem; }

/* уведомления: простой список, новое – точкой и жирнее, время справа */
.sb-au-body { flex: 1 1 auto; min-width: 0; line-height: 1.5; overflow-wrap: anywhere; }
.sb-au-text { color: var(--sb-ink); }
a.sb-au-text { color: var(--sb-ink); text-decoration: none; }
a.sb-au-text:hover { color: var(--sb-brand-700); text-decoration: underline; text-underline-offset: .2em; }
.sb-au-times { color: var(--sb-muted); font-weight: 400; white-space: nowrap; }
.sb-au-none { margin: 0; color: var(--sb-muted); text-align: center; padding: 1.5rem 0; }
.sb-au-more { margin: .75rem 0 0; color: var(--sb-muted); font-size: .8125rem; }
@media (max-width: 767.98px) {
}
