@charset "UTF-8";

/*
    Дополнения к стилям hakta.pro для страниц входа и регистрации.

    Всё здесь собрано из переменных базовой палитры (--bg, --gbg, --dbg, --a, --t1…--t5,
    --white-alpha). Каждая тема проекта в brands/*.css переопределяет именно их, поэтому
    новые элементы окрашиваются вместе с остальной формой сами, без правок в четырёх
    файлах. В brands/ остаётся только то, где у проекта другая геометрия: скругления,
    рамки, характер выделения.
 */

.field_hint {
    margin-top: 8px;
    margin-bottom: 4px;

    font-size: 12px;
    line-height: 1.35;

    color: var(--t2, #87888A);
}

/* Заголовок шага. */
.auth_heading {
    margin: 0 0 8px;

    font-size: 24px;
    font-weight: 700;
    letter-spacing: -.6px;
    line-height: 1.2;

    color: var(--white, rgba(255, 255, 255, .8));
}

/* Тот же заголовок, но в роли ответа системы: «аккаунта нет — создадим». */
.auth_heading_sm {
    margin: 0 0 6px;

    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.3px;
    line-height: 1.3;

    color: var(--white, rgba(255, 255, 255, .8));
}

/* Возврат к вводу адреса со второго шага.

   flex, а не inline-block: ссылка должна занимать свою строку, иначе она встаёт рядом
   с плашкой аккаунта. Ширина по содержимому — чтобы кликабельной не стала вся карточка. */
.auth_back {
    display: flex;
    width: fit-content;
    margin-bottom: 14px;

    font-size: 13px;
    font-weight: 600;
    text-decoration: none;

    color: var(--t2, #87888A);
}

.auth_back:hover {
    color: var(--t5, #C4C4C4);
    text-decoration: none;
}

/* Кого мы опознали на первом шаге. Показывается на втором, чтобы человек видел,
   от какого аккаунта у него спрашивают пароль. */
.auth_identity {
    /* flex + fit-content, как у ссылки возврата: иначе text-align карточки уводит плашку
       в центр, и она разъезжается со стрелкой «назад» над ней. */
    display: flex;
    align-items: center;
    gap: 10px;

    width: fit-content;
    max-width: 100%;
    margin-bottom: 18px;
    padding: 5px 16px 5px 5px;

    border-radius: 30px;
    background: var(--dbg, #252526);
}

.auth_identity_mark {
    flex-shrink: 0;

    width: 30px;
    height: 30px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;
    background: var(--a, #0EA17B);

    font-size: 14px;
    font-weight: 700;
    color: var(--t1, #FFF);
}

.auth_identity_name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    font-size: 15px;
    font-weight: 600;
    letter-spacing: -.3px;

    color: var(--t5, #C4C4C4);
}

/* Название сервиса, из которого пришёл пользователь. */
.auth_title {
    margin: 0 0 6px;

    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.3px;

    color: var(--white, rgba(255, 255, 255, .8));
}

/* Ответ на вопрос «нужно ли мне вообще регистрироваться». */
.auth_hint {
    margin: 0 0 4px;

    font-size: 13px;
    line-height: 1.45;

    color: var(--t2, #87888A);
}

/* Строка под полем пароля: «Забыли пароль?» прижат вправо. */
.auth_row_end {
    display: flex;
    justify-content: flex-end;

    margin-top: 12px;
    margin-bottom: 16px;
}

.auth_box .auth_row_end .project_link {
    margin-top: 0;
    font-size: 13px;
}

/* Кнопка, выглядящая ссылкой: вход по passkey остаётся доступным, но больше не
   перевешивает регистрацию размером. */
.auth_link_button {
    display: block;
    width: 100%;

    margin-top: 16px;
    padding: 4px 0;

    border: none;
    background: none;

    font-size: 14px;
    font-weight: 600;
    text-align: center;
    text-decoration: underline;
    text-underline-offset: 3px;

    color: var(--t2, #87888A);
    cursor: pointer;
}

.auth_link_button:hover {
    color: var(--t5, #C4C4C4);
}

.auth_link_button:focus-visible {
    outline: 2px solid var(--a, #0EA17B);
    outline-offset: 2px;
}

/* ── Согласие в форме регистрации ───────────────────────────────────────────────────── */

/* Галочка и текст рядом. Цель — чтобы текст не «обтекал» галочку и не сливался с ней
   в один кликабельный ком: промахнуться мимо галочки человек не должен. */
.auth_consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;

    margin-top: 18px;
    cursor: pointer;

    font-size: 13px;
    line-height: 1.45;
    text-align: left;

    color: var(--t2, #87888A);
}

.auth_consent input[type="checkbox"] {
    flex-shrink: 0;

    /* 20px — нижняя граница, при которой по галочке попадают пальцем. */
    width: 20px;
    height: 20px;
    margin: 1px 0 0;

    accent-color: var(--a, #0EA17B);
    cursor: pointer;
}

.auth_consent a {
    font-size: inherit;
}

/* ── Подвал со ссылками на документы ────────────────────────────────────────────────── */

.legal_footer_links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;

    margin: 16px 0 20px;
}

.legal_footer_links .project_link {
    margin-top: 0;
    font-size: 12px;
}

.legal_footer_dot {
    font-size: 12px;
    color: var(--t3, #59595A);
}

/* ── Страницы правовых документов ───────────────────────────────────────────────────── */

.legal_page {
    /* ~70 символов в строке: длинный юридический текст читается только так. */
    max-width: 760px;
    margin: 0 auto;
    padding: 32px 0 64px;

    font-size: 15px;
    line-height: 1.6;

    color: var(--t2, #87888A);
}

.legal_header {
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--white-alpha, rgba(255, 255, 255, .08));
}

.legal_page h1 {
    margin: 0 0 12px;

    font-size: 30px;
    font-weight: 700;
    letter-spacing: -.8px;
    line-height: 1.2;

    color: var(--white, rgba(255, 255, 255, .8));
}

.legal_lead {
    margin: 0 0 12px;
    font-size: 16px;
    line-height: 1.5;
}

.legal_meta {
    margin: 0;
    font-size: 13px;
    color: var(--t3, #59595A);
}

/* Черновик с незаполненными реквизитами. Заметен намеренно. */
.legal_warning {
    margin-bottom: 28px;
    padding: 14px 18px;

    border: 1px solid var(--red, #a5212a);
    border-radius: 12px;

    font-size: 13px;
    line-height: 1.5;

    color: var(--white, rgba(255, 255, 255, .8));
}

.legal_page h2 {
    margin: 36px 0 12px;

    font-size: 20px;
    font-weight: 700;
    letter-spacing: -.4px;
    line-height: 1.3;

    color: var(--white, rgba(255, 255, 255, .8));
}

.legal_page h3 {
    margin: 26px 0 10px;

    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.2px;

    color: var(--t5, #C4C4C4);
}

.legal_page p {
    margin: 0 0 12px;
}

.legal_page ul {
    margin: 0 0 16px;
    padding-left: 22px;
}

.legal_page li {
    margin-bottom: 7px;
}

.legal_page strong {
    color: var(--t5, #C4C4C4);
    font-weight: 600;
}

.legal_page code {
    padding: 1px 6px;

    border-radius: 6px;
    background: var(--dbg, #252526);

    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .9em;
    word-break: break-word;

    color: var(--t5, #C4C4C4);
}

.legal_page .project_link {
    margin-top: 0;
    font-size: inherit;
}

.legal_services {
    margin: 0 0 8px;
}

.legal_note {
    font-size: 13px;
    color: var(--t3, #59595A);
}

.legal_footer {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid var(--white-alpha, rgba(255, 255, 255, .08));
}

@media (max-width: 768px) {
    .legal_page {
        padding: 20px 0 48px;
        font-size: 14px;
    }

    .legal_page h1 {
        font-size: 24px;
    }

    .legal_page h2 {
        font-size: 18px;
        margin-top: 28px;
    }
}
