/* auth.css — стили шелла страниц входа/регистрации/подтверждения и лендинга
   (шаблон app/templates/base.html).
 *
 * Цикл G, ADR-G06: до этого цикла правила жили инлайновым <style> в base.html.
 * Инлайн-блок нельзя было ни закэшировать, ни дотянуть до него переменные, и он
 * дублировал пять правил из app.css (.hidden, .msg, .msg.error, .msg.ok и
 * объявление --accent). Дубли сняты — осталась версия из app.css.
 *
 * Порядок подключения: кит → app.css → auth.css (см. комментарий в base.html).
 * Файл идёт последним, поэтому при равной специфичности выигрывает у app.css —
 * прежнее поведение инлайн-блока сохранено.
 *
 * 🔴 Правил по тегам (button, input, label, h1, body) здесь НЕТ намеренно:
 * они перекрывали бы компоненты кита, который весь лежит в @layer (ADR-G03).
 * Их роль взяли классы .rui-btn / .rui-input / .rui-label в разметке.
 * Возврат любого из них — дефект; ловится тестом
 * test_no_competing_element_rules_in_own_css.
 */

header { background: var(--surface); border-bottom: 1px solid var(--border); }
.nav {
  max-width: 960px; margin: 0 auto; padding: .75rem 1rem;
  display: flex; gap: 1rem; align-items: center; flex-wrap: wrap;
}
.nav a { color: var(--fg); text-decoration: none; }
/* Цикл G, ADR-G10: в шапке логотип-SVG + подпись — .brand стал флекс-строкой. */
.nav .brand {
  display: inline-flex; align-items: center; gap: .5rem;
  font-weight: 700; margin-right: auto;
}

main { max-width: 480px; margin: 2rem auto; padding: 0 1rem; }

/* Заголовок карточки формы: у h1 кита размер --rui-fs-3xl (2.25rem) — для
   узкой колонки в 480px это слишком крупно, поэтому размер задаём классом
   (правило по тегу h1 конкурировало бы с китом — см. шапку файла). */
.auth-title { font-size: 1.4rem; margin: 0 0 1rem; }

/* Вертикальный ритм формы. Раньше его задавали правила по тегам `label` и
   `button`; они удалены (ADR-G03), потому что перекрывали компоненты кита.
   Вид элементов теперь за китом (.rui-label / .rui-input / .rui-btn), а
   отступы и ширина кнопки — наш лейаут, поэтому остаются здесь, но
   СКОУПЛЕНЫ на форму, а не висят на голых тегах. */
.auth-form label { display: block; margin: .75rem 0 .25rem; }
.auth-form .rui-btn { width: 100%; margin-top: 1.25rem; }

.hint { color: var(--muted); font-size: .9rem; }
a.link { color: var(--accent-ink); }

@media (max-width: 640px) { main { margin: 1rem auto; } }

/* --- Экран регистрации: постоянный текст и подтверждения (цикл N, ТЗ § 2.1–2.2)
 *
 * Правила только по КЛАССАМ — по тегам нельзя (см. шапку файла): они
 * конкурировали бы со слоёными компонентами кита.
 *
 * 🔴 .consents label переопределяет .auth-form label { display: block }: без
 * этого подпись чекбокса уезжает под квадратик и читается как отдельный абзац,
 * а связь «галочка ↔ текст» пропадает.
 */
.eligibility-notice {
  margin: 0 0 1rem;
  padding: .75rem 1rem;
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  background: var(--surface);
  font-size: .95rem;
}
.consents { margin: 1.25rem 0 0; padding: 0; border: 0; }
.consents legend { padding: 0; margin-bottom: .5rem; }
.auth-form .consents .check { display: flex; gap: .5rem; align-items: flex-start; }
.auth-form .consents .check label {
  display: inline; margin: 0; font-size: .95rem; font-weight: 400;
}
.consents .req { color: var(--err); }
.consent-text { margin: .35rem 0 .75rem; font-size: .82rem; line-height: 1.45; }
