/* Sign-in presentation is isolated from shared application forms. */
.login-page {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    background: #f4f7ff;
}

.login-page .login-showcase {
    padding: clamp(2rem, 4.5vw, 5rem);
    background: radial-gradient(ellipse at 95% 5%, rgb(38 190 187 / .35), transparent 50%),
        radial-gradient(ellipse at 10% 95%, rgb(114 101 231 / .6), transparent 55%),
        linear-gradient(145deg, #122358, #28449f 58%, #3d59bc);
}

.login-page .showcase-glow { filter: blur(45px); opacity: .5; }
.login-page .showcase-content { gap: 2rem; }
.login-page .showcase-copy h1 { font-size: clamp(2.4rem, 3.2vw, 3.8rem); line-height: 1.12; letter-spacing: -.045em; }
.login-page .showcase-copy p { color: #e0e7fc; }
.login-page .showcase-copy .eyebrow {
    padding: .5rem .85rem;
    border: 1px solid rgb(146 235 217 / .3);
    border-radius: 100px;
    background: rgb(130 225 211 / .09);
    color: #a9f4e4;
    font-size: .7rem;
}
.login-page .portal-illustration { width: min(580px, 100%); height: clamp(190px, 29vh, 310px); margin: auto auto; }
.login-page .showcase-features { gap: .75rem 1.25rem; margin-top: 0; padding-top: 1.5rem; border-top: 1px solid rgb(255 255 255 / .18); color: #eef3ff; }

.login-page .login-panel {
    padding: clamp(1.5rem, 4vw, 4rem) clamp(1.25rem, 4vw, 4.5rem) 1.25rem;
    background: radial-gradient(ellipse at 100% 0, #e5edff, transparent 55%),
        radial-gradient(ellipse at 0 100%, #e4f3f2, transparent 50%), #f7f9ff;
}
.login-page .login-panel-inner {
    width: min(510px, 100%);
    padding: clamp(1.5rem, 3vw, 2.75rem);
    border: 1px solid #e1e7f2;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 20px 65px rgb(32 53 112 / .08), 0 3px 12px rgb(32 53 112 / .03);
}
.login-page .environment-banner { margin-bottom: 1.5rem; }
.login-page .login-heading h2 { font-size: clamp(2rem, 2.7vw, 2.6rem); }
.login-page .login-heading p { color: #627089; font-size: .95rem; }
.login-page .eyebrow-dark { font-size: .68rem; letter-spacing: .14em; color: #3b51ac; }
.login-page .login-form { margin-top: 1.75rem; }
.login-page .form-field { gap: .5rem; margin-bottom: 1.25rem; }
.login-page .form-field input { background: #f8faff; border-color: #d4ddeb; }
.login-page .form-field input:focus { background: #fff; border-color: #536bd0; }
.login-page .form-field input.input-validation-error { border-color: #b42318; }
.login-field-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .25rem .75rem; }
.login-field-heading label { margin: 0; }
.login-page .login-recovery-link {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: .2rem .35rem;
    margin-right: -.35rem;
    border-radius: 6px;
    color: #354db0;
    font-size: .8rem;
    font-weight: 650;
    text-decoration: underline;
    text-decoration-color: #b4bfe6;
    text-underline-offset: 4px;
    transition: background-color .15s, color .15s;
}
.login-page .login-recovery-link:hover { color: #23377f; background: #eef2ff; text-decoration-color: currentColor; }
.login-page .login-recovery-link:focus-visible,
.login-page .login-submit:focus-visible,
.login-page .password-toggle:focus-visible,
.login-page .login-footer a:focus-visible { outline: 3px solid #5772d5; outline-offset: 3px; }
.login-page .login-submit.k-button { margin-top: .5rem; background: linear-gradient(110deg, #3046ac, #5269d9); box-shadow: 0 8px 18px rgb(51 73 184 / .2); }
.login-page .login-submit.k-button:hover { background: linear-gradient(110deg, #26398f, #4058c6); }
.login-page .security-note { padding-top: 1.25rem; margin-top: 1.5rem; border-top: 1px solid #edf0f6; color: #637187; line-height: 1.5; font-size: .75rem; }
.login-page .login-footer { color: #637187; }

@media (max-width: 1100px) and (min-width: 801px) {
    .login-page { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
    .login-page .login-showcase { padding: 2rem; }
    .login-page .login-panel { padding: 2rem 1.25rem 1.25rem; }
}
@media (max-width: 800px) {
    .login-page .login-panel { flex: 1; padding: 2.5rem 1.25rem 1rem; }
    .login-page .login-panel-inner { margin: auto; }
}
@media (max-width: 480px) {
    .login-page .login-panel { padding: 1.5rem .85rem 1rem; }
    .login-page .login-panel-inner { padding: 1.5rem 1.15rem; border-radius: 18px; }
    .login-page .security-note { justify-content: flex-start; }
    .login-page .login-footer { margin-top: 1.5rem; }
}
@media (min-width: 801px) and (max-height: 759px) {
    .login-page .login-panel { padding-top: 1.5rem; }
    .login-page .login-panel-inner { padding: 1.5rem 2rem; }
    .login-page .portal-illustration { height: 190px; }
    .login-page .showcase-content { gap: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .login-page .login-recovery-link, .login-page .login-submit { transition: none; }
}
