/* Shared login and password-recovery shell; scoped away from portal forms. */
.auth-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    min-height: 100svh;
    padding: 24px 20px;
    color: #24334b;
    background: radial-gradient(ellipse at top left, #fff4e5, transparent 52%),
        radial-gradient(ellipse at bottom right, #e0e8fa, transparent 55%), #f4f6fb;
}

.auth-page .auth-shell {
    width: 100%;
    max-width: 460px;
    padding: 32px 36px 24px;
    border: 1px solid #dce3ef;
    border-top: 4px solid #f99f34;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 55px rgba(37, 65, 142, .09);
}

.auth-page .auth-brand {
    height: auto;
    margin-bottom: 28px;
    text-align: center;
}

.auth-page .auth-brand img {
    display: block;
    width: 224px;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

.auth-page .auth-brand p {
    margin: 12px 0 0;
    padding: 0;
    color: #64738a;
    font-size: 13px;
    line-height: 20px;
}

.auth-page .box {
    min-width: 0;
    width: 100%;
    max-width: none;
    overflow: visible;
}

.auth-page .section {
    margin: 0;
    padding: 0;
    background: transparent;
}

.auth-page h1,
.auth-page .heading-1 {
    margin: 0 0 8px;
    padding: 0;
    color: #24334b;
    font-size: 26px;
    font-weight: 700;
    line-height: 34px;
}

.auth-page .auth-intro {
    margin: 0 0 26px;
    padding: 0;
    color: #64738a;
    font-size: 14px;
    line-height: 22px;
}

.auth-page .auth-form {
    margin: 0;
    padding: 0;
}

.auth-page .auth-field {
    margin-bottom: 20px;
}

.auth-page .auth-field label {
    display: block;
    margin: 0 0 8px;
    color: #34445f;
    font-size: 13px;
    font-weight: 600;
    line-height: 20px;
}

.auth-page .auth-field input {
    display: block;
    width: 100%;
    height: 52px;
    padding: 12px 14px;
    margin: 0;
    border: 1px solid #cbd5e6;
    border-radius: 8px;
    background: #fafbfe;
    color: #24334b;
    font: inherit;
    font-size: 16px;
    line-height: 24px;
    transition: border-color .15s, box-shadow .15s;
}

.auth-page .auth-field input:focus {
    outline: none;
    border-color: #25418e;
    box-shadow: 0 0 0 3px rgba(37, 65, 142, .12);
    background: #fff;
}

.auth-page .auth-field input:disabled {
    background: #eef1f6;
    color: #64738a;
    cursor: not-allowed;
}

.auth-page .auth-password-link {
    display: block;
    width: fit-content;
    margin: -4px 0 24px auto;
    color: #25418e;
    font-size: 13px;
    line-height: 22px;
    text-decoration: none;
}

.auth-page .auth-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    min-height: 50px;
    padding: 12px 18px;
    border: 1px solid #25418e;
    border-radius: 8px;
    background: #25418e;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 24px;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(37, 65, 142, .15);
}

.auth-page .auth-submit:hover:not(:disabled) {
    border-color: #1d3474;
    background: #1d3474;
    color: #fff;
}

.auth-page .auth-submit:disabled {
    opacity: .65;
    cursor: wait;
}

.auth-page hr {
    margin: 26px 0 20px;
    border: 0;
    border-top: 1px solid #e4e9f2;
}

.auth-page .login-page-navigation nav ul {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px 24px;
    margin: 0;
    padding: 0;
    line-height: 22px;
}

.auth-page .login-page-navigation nav ul li {
    list-style: none;
    margin: 0;
    padding: 0;
}

.auth-page .login-page-navigation nav ul li a {
    color: #52647f;
    font-size: 13px;
    line-height: 22px;
    text-decoration: none;
}

.auth-page a:hover {
    text-decoration: underline;
}

.auth-page a:focus-visible,
.auth-page button:focus-visible {
    outline: 3px solid #25418e;
    outline-offset: 4px;
}

@media (max-width: 480px) {
    .auth-page {
        padding: 24px 16px;
    }

    .auth-page .auth-shell {
        padding: 28px 24px 24px;
        border-radius: 14px;
    }

    .auth-page .auth-brand img {
        width: 200px;
    }
}
