/* Экраны входа (шаг В редизайна): макет layouts/auth.php — вход /site/login (В1), восстановление пароля, «Проверьте
   почту», новый пароль и «Ссылка устарела» (В2), регистрация и «Заявка отправлена» (В3: список организаций по ИНН,
   карточка выбранной организации, согласие в две строки, ошибка «почта уже зарегистрирована» со ссылками).
   Образец — доработка 08 стенда (style#zt-auth-login, Стенд/доработки/накатить.py) и вид ZIPTEH.RU (блок «Подберём
   запчасть за 15 минут» их главной): белая карточка с жёлтой решёткой, форма в жёлтой рамке, поля и кнопки 58 px,
   экскаватор из 6 слоёв. Поправки вкуса шага В: подписи над полями, ошибки под полями; контраст AA — рамки полей 3:1
   (#87919C), фокус поля — жёлтая рамка с жёлтым кольцом без второй обводки (27.10), фокус ссылок и кнопок — тёмная обводка; одна шкала скруглений
   с кабинетом и оформлением (карточки 12, поля и кнопки 8); кнопки как у ZIPTEH.RU (доработка 28): 15/700 капсом,
   жёлтая и белая с жёлтой рамкой; движение экскаватора конечное, при prefers-reduced-motion — без движения.
   Токены — redesign.css (AuthAsset идёт после RedesignAsset), без !important.
   Переломы: до 1199 px — две колонки (слева обещание и экскаватор), до 899 — столбиком, форма первой; до 599 —
   телефон как у ZIPTEH.RU: заголовок, экскаватор 250 px, форма без своей рамки, выгоды и телефон; поля 16 px. */

.zt-auth {
    --zt-auth-ochre: var(--zt-ochre);
    --zt-auth-field-border: #87919C;
    --zt-auth-field-border-hover: #6B7682;
    margin: 0 0 72px;
    color: var(--zt-ink);
}
.zt-auth *, .zt-auth *::before, .zt-auth *::after { box-sizing: border-box; }
.zt-auth button, .zt-auth input { font-family: inherit; }
.zt-auth svg {
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.zt-auth a:focus-visible, .zt-auth button:focus-visible, .zt-auth-check input:focus-visible {
    outline: 2px solid var(--zt-ink);
    outline-offset: 2px;
}

/* ---------- Карточка: слева обещание, в центре картинка техники, справа форма ----------
   Колонка обещания — не шире его текста (440), всё остальное место — картинке (27.10, пользователь: «расположение
   картинки сейчас она вправо уходит… можно увеличить саму картинку без увеличения полей и размера блока»): на широком
   экране пустота была справа от текста, а картинка в центре своей колонки прижималась к форме */

.zt-auth__shell {
    display: grid;
    grid-template-columns: minmax(0, 440px) minmax(320px, 1fr) minmax(360px, 420px);
    gap: 24px;
    align-items: center;
    padding: 32px;
    border: 1px solid var(--zt-divider);
    border-radius: 12px;
    background-color: #FFFFFF;
    background-image:
        repeating-linear-gradient(30deg, rgba(255, 184, 0, .16) 0, rgba(255, 184, 0, .16) 1px, transparent 1px, transparent 27px),
        repeating-linear-gradient(150deg, rgba(255, 184, 0, .1) 0, rgba(255, 184, 0, .1) 1px, transparent 1px, transparent 27px);
    box-shadow: 0 18px 48px rgba(37, 49, 66, .08);
}
.zt-auth__side {
    grid-column: 3;
    grid-row: 1;
    min-width: 0;
    padding: 28px 24px 24px;
    border: 1px solid rgba(255, 184, 0, .55);
    border-radius: 12px;
    background: #FFFFFF;
    box-shadow: 0 10px 30px rgba(37, 49, 66, .06);
}
.zt-auth__promo { grid-column: 1; grid-row: 1; min-width: 0; }
.zt-auth__art { grid-column: 2; grid-row: 1; }

/* ---------- Заголовок и сообщения над формой ---------- */

.zt-auth__head { margin-bottom: 22px; }
.zt-auth__title {
    margin: 0;
    color: var(--zt-ink);
    font-size: 32px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.02em;
    text-align: left;
    text-transform: none;
}
.zt-auth__lead { margin: 8px 0 0; color: var(--zt-secondary); font-size: 15px; line-height: 1.45; }

.zt-auth-note {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.45;
}
.zt-auth-note strong { font-weight: 700; }
.zt-auth-note a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.zt-auth-note--error { border-color: #EBC5C5; background: var(--zt-danger-soft); color: var(--zt-danger); }
.zt-auth-note--success { border-color: #C9E7D5; background: var(--zt-success-soft); color: var(--zt-success); }
.zt-auth-note--info { border-color: rgba(255, 184, 0, .55); background: var(--zt-yellow-pale); color: var(--zt-ink-soft); }

/* ---------- Поля ---------- */

.zt-auth-form { display: grid; gap: 16px; margin: 0; }
.zt-auth-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
/* Пароль на входе: «Забыли пароль?» в разметке после поля (Tab из логина — в пароль), на экране — справа от подписи */
.zt-auth-field--link { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 6px 12px; }
.zt-auth-field--link .zt-auth-field__label { grid-row: 1; grid-column: 1; }
.zt-auth-field--link .zt-auth-field__link { grid-row: 1; grid-column: 2; }
.zt-auth-field--link .zt-auth-field__control, .zt-auth-field--link .zt-auth-field__error { grid-column: 1 / -1; }
.zt-auth-field__label { margin: 0; color: var(--zt-ink); font-size: 13px; font-weight: 600; line-height: 1.3; }
/* «Забыли пароль?»: поле касания 32 px — в основном вверх, на поле не заходит, строка подписи не меняется */
.zt-auth-field__link {
    display: inline-block;
    margin: -12px 0 -4px;
    padding: 12px 0 4px;
    color: var(--zt-yellow);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
    white-space: nowrap;
}
.zt-auth-field__link:hover { color: var(--zt-ink); text-decoration: underline; text-underline-offset: 3px; }
.zt-auth-field__control { position: relative; display: block; }
.zt-auth-field__input {
    display: block;
    width: 100%;
    height: 58px;
    margin: 0;
    padding: 0 44px 0 16px;
    border: 1px solid var(--zt-auth-field-border);
    border-radius: 8px;
    background: #FFFFFF;
    color: var(--zt-ink);
    font-size: 15px;
    line-height: 1.3;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.zt-auth-field__input--eye { padding-right: 56px; }
.zt-auth-field__input:hover { border-color: var(--zt-auth-field-border-hover); }
.zt-auth-field__input:focus { border-color: var(--zt-yellow); outline: none; box-shadow: 0 0 0 3px rgba(255, 184, 0, .35); }
.zt-auth-field--error .zt-auth-field__input { border-color: var(--zt-danger); box-shadow: 0 0 0 3px rgba(150, 58, 58, .12); }
.zt-auth-field--error .zt-auth-field__input:focus { box-shadow: 0 0 0 3px rgba(150, 58, 58, .24); }
/* Фокус поля — только жёлтая рамка и жёлтое кольцо (решение пользователя 27.10: «двойную обводку убрать, оставить
   только жёлтую»); тёмная обводка поверх рамки снята. У поля с ошибкой в фокусе — красная рамка и кольцо ярче */
.zt-auth-field__icon {
    position: absolute;
    top: 50%;
    right: 16px;
    width: 20px;
    height: 20px;
    color: var(--zt-muted);
    transform: translateY(-50%);
    pointer-events: none;
}
.zt-auth-field__error { margin: 0; color: var(--zt-danger); font-size: 13px; font-weight: 600; line-height: 1.35; }
.zt-auth-field__hint { margin: 0; color: var(--zt-muted); font-size: 13px; line-height: 1.4; }
/* Шаг В3: подсказка формата в поле (телефон) — не вместо подписи; цвет держит контраст 4.5:1 к белому */
.zt-auth-field__input::placeholder { color: var(--zt-muted); opacity: 1; }
/* «Почта уже зарегистрирована»: ссылки «Войдите» и «восстановите пароль», ниже строка с телефоном */
.zt-auth-field__error a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.zt-auth-field__error a:hover { color: var(--zt-ink); }
.zt-auth-field__error-line { display: block; margin-top: 4px; font-weight: 500; }
.zt-auth-field__error a[href^="tel:"] { white-space: nowrap; }

/* Список организаций по ИНН (шаг В3): под полем, поверх формы, как в кабинете; пункт — наименование и реквизиты */
.zt-auth-suggest {
    position: absolute;
    z-index: 20;
    top: calc(100% + 4px);
    right: 0;
    left: 0;
    display: block;
    max-height: 280px;
    overflow: auto;
    padding: 6px;
    border: 1px solid var(--zt-auth-field-border);
    border-radius: 8px;
    background: #FFFFFF;
    box-shadow: 0 16px 36px rgba(17, 24, 32, .14);
}
.zt-auth-suggest[hidden] { display: none; }
.zt-auth-suggest__option {
    display: block;
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    border: 0;
    border-radius: 8px;
    background: none;
    color: var(--zt-ink);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}
.zt-auth-suggest__option:hover, .zt-auth-suggest__option:focus { background: var(--zt-yellow-pale); outline: none; }
.zt-auth-suggest__option:focus-visible { box-shadow: inset 0 0 0 2px var(--zt-ink); }
.zt-auth-suggest__option strong { display: block; font-size: 14px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.zt-auth-suggest__option small { display: block; margin-top: 3px; color: var(--zt-muted); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.zt-auth-suggest__status { margin: 0; color: var(--zt-muted); font-size: 13px; line-height: 1.4; }
.zt-auth-suggest__status:empty { display: none; }
.zt-auth-suggest__status.is-found { color: var(--zt-success); font-weight: 600; }
.zt-auth-suggest__status.is-none { color: var(--zt-auth-ochre); font-weight: 600; }

/* Выбранная организация: наименование, КПП и ОГРН, юридический адрес — то, что попадёт в реквизиты профиля */
.zt-auth-party {
    display: grid;
    gap: 2px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 184, 0, .55);
    border-radius: 8px;
    background: var(--zt-yellow-pale);
    overflow-wrap: anywhere;
}
.zt-auth-party[hidden] { display: none; }
.zt-auth-party strong { color: var(--zt-ink); font-size: 14px; font-weight: 700; line-height: 1.35; }
.zt-auth-party small { color: var(--zt-secondary); font-size: 13px; line-height: 1.4; }
.zt-auth-party small:empty { display: none; }

/* Подсказка к новому паролю (шаг В2): кружок, выполненный пункт — зелёная галочка (auth.js); без JavaScript — список */
.zt-auth-hints {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    margin: 0;
    padding: 0;
    color: var(--zt-muted);
    font-size: 13px;
    line-height: 1.4;
    list-style: none;
}
.zt-auth-hints li { display: flex; align-items: center; gap: 6px; margin: 0; transition: color .15s ease; }
.zt-auth-hints svg { width: 16px; height: 16px; }
.zt-auth-hints__on, .zt-auth-hints li.is-ok .zt-auth-hints__off { display: none; }
.zt-auth-hints li.is-ok { color: var(--zt-success); }
.zt-auth-hints li.is-ok .zt-auth-hints__on { display: block; }

/* Логин записи над формой нового пароля; длинная почта переносится, а не раздвигает карточку */
.zt-auth-account { margin: 0 0 16px; color: var(--zt-secondary); font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.zt-auth-account strong { color: var(--zt-ink); font-weight: 700; }

/* Скрыто с экрана, но есть в разметке (логин для менеджера паролей браузера) */
.zt-auth-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0;
    white-space: nowrap;
}

/* «Глаз» у пароля: без JavaScript скрыт (hidden), касание 44 px */
.zt-auth-eye {
    position: absolute;
    top: 50%;
    right: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--zt-muted);
    cursor: pointer;
    transform: translateY(-50%);
    transition: background-color .15s ease, color .15s ease;
}
.zt-auth-eye[hidden] { display: none; }
.zt-auth-eye:hover { background: var(--zt-surface-2); color: var(--zt-ink); }
.zt-auth-eye svg { width: 20px; height: 20px; }
.zt-auth-eye__hide, .zt-auth-eye.is-visible .zt-auth-eye__show { display: none; }
.zt-auth-eye.is-visible .zt-auth-eye__hide { display: block; }

.zt-auth-check {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: var(--zt-secondary);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    cursor: pointer;
}
/* site.css увеличивает все галочки scale(1.7) — здесь размер задан явно */
.zt-auth-check input { flex: 0 0 22px; width: 22px; height: 22px; margin: 0; accent-color: var(--zt-yellow); cursor: pointer; transform: none; }
/* Шаг В3: согласие в две строки — галочка у первой строки; ссылка на политику открывается в новой вкладке */
.zt-auth-check--top { align-items: flex-start; }
.zt-auth-check--top span { padding-top: 1px; }
.zt-auth-check a { color: var(--zt-ink-soft); text-decoration: underline; text-underline-offset: 3px; }
.zt-auth-check a:hover { color: var(--zt-ink); }
.zt-auth-field--error .zt-auth-check input { outline: 2px solid var(--zt-danger); outline-offset: 1px; }

/* ---------- Кнопки (как у ZIPTEH.RU): жёлтая и белая с жёлтой рамкой, в одну строку ---------- */

.zt-auth-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 58px;
    margin: 0;
    padding: 0 22px;
    border: 1px solid var(--zt-yellow);
    border-radius: 8px;
    background: #FFFFFF;
    color: var(--zt-ink-soft);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .16px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .12s ease;
}
.zt-auth-btn:hover, .zt-auth-btn:focus-visible {
    border-color: var(--zt-yellow);
    background: var(--zt-yellow);
    color: var(--zt-on-yellow);
    text-decoration: none;
}
.zt-auth-btn:active { transform: translateY(1px); }
.zt-auth-btn--primary { background: var(--zt-yellow); color: var(--zt-on-yellow); }
.zt-auth-btn--primary:hover, .zt-auth-btn--primary:focus-visible { border-color: var(--zt-yellow-hover); background: var(--zt-yellow-hover); }
.zt-auth-btn:disabled { opacity: .75; cursor: wait; transform: none; }
.zt-auth-btn svg { width: 18px; height: 18px; }

.zt-auth__divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0 14px;
    color: var(--zt-muted);
    font-size: 13px;
    line-height: 1.3;
}
.zt-auth__divider::before, .zt-auth__divider::after { flex: 1; height: 1px; background: var(--zt-divider); content: ""; }
.zt-auth__privacy { margin: 14px 0 0; color: var(--zt-muted); font-size: 13px; line-height: 1.45; }
.zt-auth__privacy a { color: var(--zt-ink-soft); text-decoration: underline; text-underline-offset: 3px; }
.zt-auth__privacy a:hover { color: var(--zt-ink); }

/* ---------- Экран-сообщение (шаг В2): «Проверьте почту», «Ссылка устарела» ---------- */

/* Значок над заголовком — как значки выгод, крупнее */
.zt-auth-screen__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 18px;
    border-radius: 12px;
    background: var(--zt-yellow-soft);
    color: var(--zt-auth-ochre);
}
.zt-auth-screen__icon svg { width: 26px; height: 26px; }
.zt-auth-list {
    display: grid;
    gap: 8px;
    margin: 0 0 22px;
    padding: 0 0 0 18px;
    color: var(--zt-secondary);
    font-size: 14px;
    line-height: 1.45;
}
/* Доводка шага В: в списке экрана «Это не я» логин и новая почта из базы. Длинный адрес без пробелов и дефисов
   переносится внутри карточки: иначе на 390 и на 1440 он выходил за карточку и давал прокрутку вбок */
.zt-auth-list li { min-width: 0; margin: 0; padding-left: 2px; overflow-wrap: anywhere; }
.zt-auth-list li::marker { color: var(--zt-yellow); }
/* Телефон в списке экрана («Вопросы по заявке») — ссылкой tel:, номер не переносится */
.zt-auth-list a { color: var(--zt-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.zt-auth-list a:hover { color: var(--zt-ink-soft); }
.zt-auth__actions { display: grid; gap: 12px; }
/* Доводка шага В: кнопка-форма POST на экране «Это не я» — как ссылка-кнопка, без отступов формы */
.zt-auth-screen__form { margin: 0; }

/* ---------- Обещание, выгоды, телефон поддержки ---------- */

.zt-auth__promo-title {
    max-width: 480px;
    margin: 0;
    color: var(--zt-ink);
    font-size: clamp(26px, 2.4vw, 34px);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -.03em;
}
/* Вторая строка — фирменным жёлтым #FFB800, как «оформлен» в заголовке «Заказ оформлен» (решение пользователя 27.10:
   прежний тёмно-жёлтый #B07E00 отличался от фирменного) */
.zt-auth__promo-title span { display: block; color: var(--zt-yellow); }
.zt-auth__promo-text { max-width: 440px; margin: 14px 0 0; color: var(--zt-secondary); font-size: 15px; line-height: 1.55; }
.zt-auth__benefits { display: grid; gap: 14px; margin: 24px 0 0; padding: 0; list-style: none; }
.zt-auth__benefits li { display: flex; align-items: center; gap: 12px; margin: 0; }
.zt-auth__benefits i {
    display: flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--zt-yellow-soft);
    color: var(--zt-auth-ochre);
}
.zt-auth__benefits svg { width: 20px; height: 20px; }
.zt-auth__benefits span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.zt-auth__benefits strong { color: var(--zt-ink); font-size: 14px; font-weight: 700; line-height: 1.3; }
.zt-auth__benefits small { color: var(--zt-muted); font-size: 13px; line-height: 1.4; }
.zt-auth__support {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    margin-top: 24px;
    color: var(--zt-muted);
    font-size: 13px;
    line-height: 1.4;
}
.zt-auth__support a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    color: var(--zt-ink);
    font-size: 20px;
    font-weight: 750;
    letter-spacing: -.01em;
    text-decoration: none;
}
.zt-auth__support a:hover { color: var(--zt-ink); text-decoration: underline; text-underline-offset: 4px; }
.zt-auth__support small { font-size: 13px; }

/* ---------- Картинка техники (27.10): экскаватор, погрузчик, самосвал и восемь запчастей одной картинкой из пакета
   «Контент страницы входа» вместо экскаватора из 6 слоёв с покачиванием; квадрат с прозрачным фоном, на компьютере
   до 470 px (пакет советует 480–610, у нас средняя колонка уже — до 470 картинка не мельчит и не теснит форму) ---------- */

.zt-auth__art { position: relative; display: grid; place-items: center; min-width: 0; pointer-events: none; user-select: none; }
.zt-auth__art-img { display: block; width: min(100%, 470px); height: auto; aspect-ratio: 1 / 1; object-fit: contain; }

/* Три колонки (от 1200 px): картинка занимает среднюю колонку по ширине (не больше 640 — шире она спорит с формой)
   и карточку по высоте (её задаёт форма), по центру. В высоту строки она не входит (position: absolute) — карточка
   из-за неё не растёт, поля прежние */
@media (min-width: 1200px) {
    .zt-auth__art { align-self: stretch; }
    .zt-auth__art-img { position: absolute; top: 0; left: 50%; width: min(100%, 640px); height: 100%; transform: translateX(-50%); }
}

/* ---------- Длинная форма (регистрация) на 1200 px и шире: колонка формы шире, поля парами, как на стенде ---------- */

@media (min-width: 1200px) {
    /* Обещание уже (380): форма регистрации шире, и на 1280–1440 картинке иначе осталось бы меньше места, чем до 27.10 */
    .zt-auth--wide .zt-auth__shell { grid-template-columns: minmax(0, 380px) minmax(240px, 1fr) minmax(480px, 520px); }
    .zt-auth--wide .zt-auth-form { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
    .zt-auth--wide .zt-auth-form > * { grid-column: 1 / -1; }
    .zt-auth--wide .zt-auth-form > .zt-auth-field--half { grid-column: auto; }
}

/* ---------- Планшет: слева обещание и под ним экскаватор, справа форма ---------- */

@media (max-width: 1199.98px) {
    .zt-auth__shell { grid-template-columns: minmax(0, 1fr) minmax(340px, 400px); align-items: start; }
    .zt-auth__side { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
    .zt-auth__promo { grid-column: 1; grid-row: 1; }
    .zt-auth__art { grid-column: 1; grid-row: 2; }
    .zt-auth__art-img { width: min(100%, 340px); }
}

/* Уже 900 px две колонки тесны — столбиком, форма первой (она первая и в разметке) */
@media (max-width: 899.98px) {
    .zt-auth__shell { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 24px; }
    .zt-auth__side, .zt-auth__promo, .zt-auth__art { grid-column: 1; grid-row: auto; }
    .zt-auth__art-img { width: min(76vw, 320px); }
}

/* Телефон — как у ZIPTEH.RU: заголовок, экскаватор, форма, выгоды и телефон. Рамка формы в рамке карточки съедала
   ширину — у формы своей рамки нет, её части встают в сетку карточки (display: contents). Шрифт полей 16 px —
   iOS не увеличивает страницу при вводе. */
@media (max-width: 599.98px) {
    .zt-auth { margin-bottom: 48px; }
    .zt-auth__shell { gap: 16px; padding: 16px; }
    .zt-auth__side { display: contents; }
    .zt-auth__head { order: 1; margin-bottom: 0; }
    .zt-auth__art { order: 2; }
    .zt-auth__body { order: 3; min-width: 0; }
    .zt-auth__promo { order: 4; }
    .zt-auth__art-img { width: min(100%, 240px); } /* квадрат 240 — форма начинается там же, где при прежнем экскаваторе 250 × 201 */
    .zt-auth__title { font-size: 28px; }
    .zt-auth-field__input { font-size: 16px; }
    .zt-auth__support a { font-size: 18px; }
}

/* 320–340 px: «ЗАРЕГИСТРИРОВАТЬСЯ» в одну строку — поля кнопок и шрифт меньше */
@media (max-width: 340px) {
    .zt-auth-btn { padding: 0 12px; font-size: 14px; }
    .zt-auth-field__input { padding-left: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .zt-auth-btn, .zt-auth-field__input, .zt-auth-eye, .zt-auth-hints li { transition: none; }
    .zt-auth-btn:active { transform: none; }
}
