.sc-portal-login {
    min-height: 100dvh;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 3vw, 3rem);
    background: #f6f9ff;
}

.sc-portal-login__layout {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(390px, 1fr);
    gap: clamp(1rem, 2vw, 2rem);
    align-items: stretch;
}

.sc-portal-login__art {
    display: grid;
    place-items: center;
}

.sc-portal-login__art img {
    width: min(100%, 670px);
    height: auto;
}

.sc-portal-login__panel {
    min-height: calc(100dvh - 6rem);
    display: flex;
    flex-direction: column;
    padding: clamp(2rem, 4vw, 3.5rem);
    border-radius: 20px;
    background: #08447a;
    color: #fff;
}

.sc-portal-login__content {
    width: min(100%, 455px);
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: auto;
}

.sc-portal-login__brand {
    margin-bottom: 2rem;
    text-align: center;
}

.sc-portal-login__brand img {
    width: min(100%, 300px);
    height: auto;
}

.sc-portal-login__brand h1 {
    margin: .5rem 0 0;
    color: #fff;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.3;
}

.sc-portal-login__intro {
    margin: 0 0 1.5rem;
    color: #e7f0fb;
    line-height: 1.6;
    text-align: center;
}

.sc-portal-login__form {
    display: grid;
    gap: 1.15rem;
}

.sc-portal-login .syn-alert-success {
    color: #08447a;
    background: #dbeafe;
}

.sc-portal-login .syn-label,
.sc-portal-login .syn-checkbox {
    color: #fff;
    font-size: .9rem;
}

.sc-portal-login .syn-input {
    min-height: 46px;
    border: 1px solid #d8e4ee;
    border-radius: 8px;
    background: #fff;
    color: #183047;
}

.sc-portal-login .syn-input:focus-visible,
.sc-portal-login a:focus-visible,
.sc-portal-login .syn-checkbox input:focus-visible,
.sc-portal-login .syn-button:focus-visible {
    outline: 3px solid #ffc27e;
    outline-offset: 3px;
}

.sc-portal-login__options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
}

.sc-portal-login__options a,
.sc-portal-login__register a {
    color: #fff;
    text-underline-offset: 3px;
}

.sc-portal-login__options a:hover,
.sc-portal-login__register a:hover {
    color: #ffd2a1;
}

.syn-template-synapse .sc-portal-login .sc-portal-login__submit {
    width: 100%;
    min-height: 46px;
    margin-top: .3rem;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(135deg, #e66503, #ffb05c);
    color: #fff;
    font-size: .95rem;
    font-weight: 700;
}

.syn-template-synapse .sc-portal-login .sc-portal-login__submit:hover {
    background: linear-gradient(135deg, #d55d00, #f69836);
}

.syn-template-synapse .sc-portal-login .sc-portal-login__secondary {
    width: 100%;
    min-height: 46px;
    border: 1px solid #d8e4ee;
    border-radius: 8px;
    background: transparent;
    color: #fff;
    font-weight: 700;
}

.syn-template-synapse .sc-portal-login .sc-portal-login__secondary:hover {
    background: #fff;
    color: #08447a;
}

.sc-portal-login__back {
    margin: 1.5rem 0 0;
    text-align: center;
}

.sc-portal-login__back a {
    color: #fff;
    text-underline-offset: 3px;
}

.sc-portal-login__back a:hover {
    color: #ffd2a1;
}

.sc-portal-login__register {
    margin: 1.5rem 0 0;
    text-align: center;
    font-size: .85rem;
}

.sc-portal-login__credit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    margin-top: 2rem;
    font-size: .8rem;
    white-space: nowrap;
}

.sc-portal-login__credit img {
    width: 100px;
    height: auto;
}

@media (min-width: 992px) {
    .sc-portal-login--recovery .sc-portal-login__art img {
        width: min(100%, 670px, calc(100dvh - 6rem));
    }

    .sc-portal-login--recovery .sc-portal-login__panel {
        padding: clamp(2rem, 3vw, 3.5rem);
    }
}

@media (max-width: 991px) {
    .sc-portal-login__layout {
        width: min(100%, 480px);
        grid-template-columns: 1fr;
    }

    .sc-portal-login__art {
        display: none;
    }

    .sc-portal-login__content {
        width: min(100%, 355px);
    }

    .sc-portal-login__brand img {
        width: min(100%, 195px);
    }

    .sc-portal-login__panel {
        min-height: min(700px, calc(100dvh - 2rem));
    }
}

@media (max-width: 480px) {
    .sc-portal-login {
        padding: .75rem;
    }

    .sc-portal-login__panel {
        min-height: calc(100dvh - 1.5rem);
        padding: 2rem 1.5rem;
    }
}
