@import url("https://fonts.googleapis.com/css2?family=Commissioner:wght@400;500&display=swap");

.login-v2 {
    --login-v2-black: var(--blue-plaza-active);
    --login-v2-blue: var(--primary-blue);
    --login-v2-white: var(--neutral-white);
    --login-v2-input-bg: var(--neutral-white);
    --login-v2-muted: var(--neutral-navy);
    --login-v2-border: var(--neutral-marble);
    --login-v2-brand-width: 49.479%;
    --login-v2-form-width: 606px;
    --login-v2-radius-sm: 8px;
    --login-v2-control-h: 48px;

    display: flex;
    min-height: 100vh;
    width: 100%;
    font-family: "Inter", sans-serif;
    color: var(--login-v2-black);
}

body.login-v2-page {
    min-height: 100vh;
    background-color: var(--login-v2-white);
}

body.login-v2-page .f_container {
    height: 100%;
    min-height: 100vh;
}

body.login-v2-page #cookie_note {
    z-index: 100;
}

.login-v2__brand {
    flex: 0 0 var(--login-v2-brand-width);
    max-width: var(--login-v2-brand-width);
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 32px 32px 0;
    overflow: hidden;
    color: var(--login-v2-white);
}

.login-v2.login-v2--signup-bg .login-v2__brand {
    background: url("../image/sign_up_bg.webp") no-repeat center center;
    background-size: cover;
}

@media (max-width: 1440px) {
    .login-v2.login-v2--signup-bg .login-v2__brand {
        background-image: url("../image/sign_up_bg_1440.webp");
    }
}

@media (max-width: 1280px) {
    .login-v2.login-v2--signup-bg .login-v2__brand {
        background-image: url("../image/sign_up_bg_1280.webp");
    }
}

.login-v2.login-v2--signup-bg .login-v2__mockup {
    display: none;
}

.login-v2__brand-inner {
    position: relative;
    z-index: 1;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.login-v2__logo {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    min-height: 40px;
    color: inherit;
    text-decoration: none;
}

.login-v2__promo {
    max-width: 762px;
    flex-wrap: wrap;
    margin-top: 120px;

    @media (max-width: 1919px) {
        flex-wrap: auto;
    }
}

.login-v2__promo {
    @media (max-width: 1537px) {
        margin-top: 80px;
    }
}



.login-v2__eyebrow {
    margin: 0 0 16px;
    font-family: Commissioner;
    font-weight: 500;
    font-size: 14px;
    line-height: 100%;
    letter-spacing: 10%;
    text-transform: uppercase;
    opacity: 0.5;
    color: var(--neutral-white);
}

.login-v2__headline {
    margin: 0 0 32px;
    font-family: Commissioner;
    font-weight: 600;
    font-size: 32px;
    line-height: 110%;
    letter-spacing: 0%;
        @media (max-width: 1441px) {
            font-size: 24px;
        }
        @media (max-width: 1281px) {
            font-size: 23px;
        }
}

.login-v2__features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 16px 0;
}

.login-v2__feature {
    flex: 0 0 33.333%;
    min-width: 200px;
    display: flex;
    align-items: center;
    gap: 16px;
    font-family: Commissioner;
    font-weight: 400;
    font-size: 16px;
    line-height: 110%;
}

.login-v2__feature-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    background: url("../image/check_mark.svg") no-repeat center / contain;
    font-size: 0;
}

.login-v2__feature-text {
    display: flex;
    flex-direction: column;
}

.login-v2__mockup {
    margin-top: auto;
    padding-top: 48px;
    position: relative;
    flex-shrink: 0;
    pointer-events: none;
}

.login-v2__mockup-img {
    display: block;
    width: 115%;
    max-width: 720px;
    height: auto;
    margin-left: -6%;
    margin-bottom: -6%;
    filter: drop-shadow(0 20px 40px var(--brand-mockup-shadow));
    user-select: none;
}

.login-v2__main {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--white-smoke-light);
}

.login-v2__mobile-logo {
    display: none;
}

.login-v2__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 32px 24px;
}

.login-v2__form-card {
    position: relative;
    width: 100%;
    max-width: var(--login-v2-form-width);
}

/* Оверлей со спиннером для AJAX-форм (логин, восстановление пароля) */
.login-v2__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.75);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    border-radius: 24px;
}

.login-v2__spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #e5e7eb;
    border-top-color: #1a56db;
    border-radius: 50%;
    animation: login-v2-spin 0.8s linear infinite;
}

@keyframes login-v2-spin {
    to { transform: rotate(360deg); }
}

.login-v2__messages .message-error,
.login-v2__messages .message-success {
    margin: 0 0 16px;
    font-size: 14px;
}

.login-v2__messages .message-error {
    color: var(--secondary-red);
}

.login-v2__messages .message-success {
    color: var(--secondary-green);
}

.login-v2__back {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 12px;
    font-family: Commissioner, sans-serif;
    font-weight: 500;
    font-size: 14px;
    line-height: 100%;
    letter-spacing: 0;
    text-align: center;
    color: var(--blue-plaza-active);
    text-decoration: none;
    transition: color 0.2s ease;
    @media (max-width: 1279px) {
        display: none;
    }
}

.login-v2__back:hover {
    color: var(--primary-blue);
    text-decoration: none;
}

.login-v2__back-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    background: url("../image/arrow_left.svg") no-repeat center / contain;
}

.login-v2__header {
    margin-bottom: 48px;
}

.login-v2__title {
    margin-bottom: 12px;
    font-family: Commissioner;
    font-weight: 700;
    font-size: 32px;
    line-height: 90%;
    color: var(--blue-plaza-active);
}

.login-v2__subtitle {
    margin: 0;
    font-family: Commissioner;
    font-weight: 400;
    font-size: 16px;
    line-height: 90%;
    color: var(--blue-plaza);
}

.login-v2__tabs {
    display: flex;
    margin-bottom: 32px;
}

.login-v2__tab {
    flex: 1;
    position: relative;
    margin: 0;
    padding: 0 0 16px;
    cursor: pointer;
    user-select: none;
    text-align: left;
    font-family: Commissioner;
    font-weight: 400;
    font-size: 14px;
    line-height: 100%;
    color: var(--blue-plaza);
}

.login-v2__tab input[type="radio"] {
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
    pointer-events: none;
}

.login-v2__tab:has(input:checked),
a.login-v2__tab--active {
    color: var(--primary-blue);
}

.login-v2__tab::after,
a.login-v2__tab::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: var(--blue-plaza-border);
}

.login-v2__tab:has(input:checked)::after,
a.login-v2__tab--active::after {
    background: var(--primary-blue);
}

a.login-v2__tab {
    display: block;
    color: var(--blue-plaza);
    text-decoration: none;
}

a.login-v2__tab:hover {
    color: var(--primary-blue);
    text-decoration: none;
}

a.login-v2__tab--active {
    pointer-events: none;
}

.login-v2__form-card .auth-form__body {
    margin-bottom: 16px;
}

.login-v2__form-card .auth-form__body .login-v2__field + .login-v2__field {
    margin-top: 16px;
}

.login-v2__form-card label {
    width: 100%;
    margin: 0;
}

.login-v2__field {
    position: relative;
}

.login-v2__form-card .f_input,
.login-v2__form-card .f_input.is-valid {
    width: 100%;
    height: var(--login-v2-control-h);
    margin: 0;
    padding: 14px 16px 14px 42px;
    border: 1px solid var(--blue-plaza-border);
    border-radius: 12px;
    background: var(--white-smoke-light);
    font-family: Commissioner;
    font-weight: 400;
    font-size: 16px;
    line-height: 100%;
    color: var(--blue-plaza-active);
    box-sizing: border-box;
}

.login-v2__form-card .f_input::placeholder {
    color: var(--blue-plaza-active);
    opacity: 1;
}

.login-v2__form-card .f_input:focus {
    outline: 2px solid var(--primary-blue-35);
    outline-offset: 0;
    border-color: transparent;
}

.login-v2__field:not(:has(.login-v2__field-icon)) .f_input,
.login-v2__field--password .f_input {
    padding-left: 16px;
}

.login-v2__field--password .f_input {
    padding-right: 44px;
}

.login-v2__form-card .f_error {
    margin-top: 12px;
    padding-left: 16px;
}

.login-v2__field-icon {
    position: absolute;
    left: 16px;
    top: calc(var(--login-v2-control-h) / 2);
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background: url("../image/mail.svg") no-repeat center / contain;
    opacity: 0.5;
    pointer-events: none;
    z-index: 1;
}

.login-v2__field--phone .login-v2__field-icon {
    background-image: url("../image/phone.svg");
}

.login-v2__field--password .login-v2__field-icon {
    display: none;
}

.login-v2__form-card .password-toggle-icon {
    top: 50%;
    right: 16px;
    transform: translateY(-50%);
}

.login-v2__form-card .blockGetCode {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
}

.login-v2__form-card .f_btn {
    width: 100%;
    height: var(--login-v2-control-h);
    margin: 0 0 12px;
    padding: 0 24px;
    border: none;
    border-radius: var(--login-v2-radius-sm);
    background: var(--login-v2-black);
    color: var(--login-v2-white);
    font-family: Commissioner;
    font-weight: 400;
    font-size: 16px;
    line-height: 100%;
    cursor: pointer;
    box-shadow: none;
    transition: background 0.2s ease, opacity 0.2s ease;
}

.login-v2__form-card .f_btn:hover:not(:disabled) {
    background: var(--blue-plaza-hover);
    color: var(--login-v2-white);
    opacity: 1;
    box-shadow: none;
    text-decoration: none;
}

.login-v2__form-card .f_btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.login-v2__form-card .imgGetCode {
    height: 40px;
    margin-top: 0;
}

.login-v2__alt-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 24px;
    align-items: start;
}

#switchToSms {
    grid-column: 1;
    grid-row: 1;
}

#switchToEmail {
    grid-column: 1;
    grid-row: 1;
}

#switchToSms:not(.d-none) ~ #switchToEmail:not(.d-none) {
    grid-row: 2;
}

#switchToPassword {
    grid-column: 2;
    grid-row: 1;
}

.login-v2__alt-actions:has(#switchToPassword.d-none) #switchToSms:not(.d-none) {
    grid-column: 1;
    grid-row: 1;
}

.login-v2__alt-actions:has(#switchToPassword.d-none) #switchToEmail:not(.d-none) {
    grid-column: 2;
    grid-row: 1;
}

.login-v2__form-card .toggle-auth-button {
    width: 100%;
    min-width: 0;
    height: var(--login-v2-control-h);
    margin: 0;
    padding: 0 16px;
    border: none;
    border-radius: 12px;
    background: var(--login-v2-white);
    color: var(--login-v2-black);
    font-family: Commissioner;
    font-weight: 400;
    font-size: 16px;
    line-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-shadow: none;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.login-v2__form-card .toggle-auth-button:hover {
    border-color: var(--login-v2-muted);
}

.login-v2__form-card .toggle-auth-button.active {
    border-color: var(--login-v2-blue);
    background: var(--login-v2-white);
    color: var(--login-v2-blue);
}

.login-v2__register {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    text-align: center;
    font-family: Commissioner;
    font-weight: 500;
    font-size: 14px;
    line-height: 100%;
    color: var(--login-v2-blue);
    text-decoration: underline;
    text-underline-offset: 36.25%;
    text-decoration-thickness: 0%;
}

.login-v2__register:hover {
    color: var(--secondary-blue);
}

.login-v2__forgot {
    display: block;
    width: 100%;
    margin-top: 12px;
    text-align: center;
    font-size: 14px;
    line-height: 1.4;
    color: var(--login-v2-muted);
    text-decoration: none;
}

.login-v2__forgot:hover {
    color: var(--login-v2-blue);
}

.login-v2__footer {
    flex-shrink: 0;
    width: 100%;
    max-width: var(--login-v2-form-width);
    margin: 0 auto;
    padding: 0 0 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-family: Commissioner;
    font-weight: 400;
    font-size: 14px;
    line-height: 100%;
    color: var(--blue-plaza);
}

.login-v2__footer a {
    color: var(--blue-plaza);
    text-decoration: none;
}

.login-v2__footer-group {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.login-v2__footer a:hover {
    color: var(--login-v2-blue);
}

@media (max-width: 1366px) {
    .login-v2 {
        --login-v2-form-width: 540px;
    }
}

@media (max-width: 1279px) {
    .login-v2__brand {
        display: none;
    }

    .login-v2__main {
        flex: 1 1 100%;
        max-width: 100%;
        width: 100%;
    }

    .login-v2__content,
    .login-v2__footer {
        padding-left: 24px;
        padding-right: 24px;
    }
}

@media (max-width: 991px) {
    .login-v2 {
        /* flex-direction: column; */
        --login-v2-form-width: 100%;
    }

    .login-v2__brand,
    .login-v2__main {
        flex: none;
        max-width: 100%;
        width: 100%;
    }

    .login-v2__brand {
        min-height: auto;
        padding: 28px 32px 32px;
    }

    .login-v2__brand-inner {
        flex: none;
    }

    .login-v2__promo {
        margin-top: 28px;
        max-width: 100%;
    }

    .login-v2__features {
        max-width: 640px;
    }

    .login-v2__feature {
        flex: 0 0 auto;
        min-width: 0;
        margin-right: 32px;
    }

    .login-v2__mockup {
        display: none;
    }

    .login-v2__main {
        min-height: auto;
    }

    .login-v2__content {
        padding: 32px;
    }

    .login-v2__form-card {
        max-width: 560px;
        margin: 0 auto;
    }

    .login-v2__footer {
        max-width: 100%;
        padding: 0 32px 28px;
    }
}

@media (max-width: 769px) {
    .login-v2__mobile-logo {
        display: block;
        padding: 32px 0 0 32px;
        flex-shrink: 0;
        line-height: 0;
        text-decoration: none;
    }

    .login-v2__mobile-logo img {
        display: block;
        width: 186px;
        height: auto;
    }

    .login-v2__footer {
        width: calc(100% - 64px);
        max-width: 560px;
        margin-left: auto;
        margin-right: auto;
        padding: 0 0 28px;
        box-sizing: border-box;
    }
}

@media (max-width: 640px) {
    
    .login-v2__brand {
        padding: 22px 20px 24px;
    }

    .login-v2__promo {
        margin-top: 22px;
    }

    .login-v2__eyebrow {
        margin-bottom: 12px;
    }

    .login-v2__features {
        gap: 12px 0;
    }

    .login-v2__feature {
        flex: 0 0 100%;
        margin-right: 0;
        font-size: 15px;
    }

    .login-v2__content {
        padding: 24px 20px;
    }

    .login-v2__header {
        margin-bottom: 28px;
    }

    .login-v2__title {
        font-size: 24px;
        line-height: 1.2;
    }

    .login-v2__subtitle {
        font-family: Commissioner;
        font-weight: 400;
        font-size: 12px;
        line-height: 90%;
        letter-spacing: 0%;
    }

    .login-v2__tabs {
        margin-bottom: 24px;
    }

    .login-v2__tab {
        max-width: none;
    }

    .login-v2__alt-actions {
        display: flex;
        flex-direction: column;
    }

    #switchToSms {
        order: 1;
    }

    #switchToEmail {
        order: 2;
    }

    #switchToPassword {
        order: 3;
    }

    .login-v2__form-card .toggle-auth-button {
        max-width: 100%;
        width: 100%;
    }

    .login-v2__footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        padding: 0 20px 24px;
    }
}

@media (max-width: 400px) {
    .login-v2 {
        --login-v2-control-h: 46px;
    }

    .login-v2__brand {
        padding: 18px 16px 20px;
    }

    .login-v2__eyebrow,
    .login-v2__features {
        display: none;
    }

    .login-v2__promo {
        margin-top: 16px;
    }

    .login-v2__content {
        padding: 20px 24px;
    }

    .login-v2__title {
        font-family: Commissioner;
        font-weight: 700;
        font-size: 24px;
        line-height: 90%;
        letter-spacing: 0%;
        vertical-align: middle;
    }

    .login-v2__footer {
        padding: 0 16px 20px;
    }
}

@media (max-width: 376px) {
    .login-v2__mobile-logo {
        padding: 24px 0 0 24px;
    }

    .login-v2__mobile-logo img {
        width: auto;
        height: 32px;
    }

    .login-v2__footer {
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
        max-width: 100%;
    }

    .login-v2__footer-group {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }

    .login-v2__footer a {
        text-decoration: underline;
    }
}
