.login-page { margin: 0; background: #faf8fb; }
.login-shell { min-height: 100vh; min-height: 100svh; display: grid; grid-template-columns: 46% 54%; }
.login-brand { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(2rem, 5vw, 5rem); color: #fff; background: linear-gradient(145deg, #451e4e, #82175f 65%, #a12479); }
.login-brand::before, .login-brand::after { content: ''; position: absolute; z-index: -1; width: 36rem; height: 36rem; border: 1px solid #ffffff24; border-radius: 50%; right: -23rem; bottom: -9rem; }
.login-brand::after { width: 46rem; height: 46rem; right: -24rem; bottom: -14rem; border-width: 3rem; border-color: #ffffff06; }
.login-brand-name { font-size: .85rem; line-height: 1.7; font-weight: 800; letter-spacing: .13em; }
.login-brand-name span { color: #ead0e6; font-weight: 400; }
.login-brand-message { padding: 5rem 0; }
.login-eyebrow { display: inline-block; margin-bottom: 1.5rem; color: #eed3e8; font-size: .72rem; letter-spacing: .2em; }
.login-brand h2 { color: #fff !important; font-size: clamp(2rem, 3.6vw, 3.6rem); line-height: 1.18; font-weight: 800; letter-spacing: -.04em; }
.login-brand-message p { max-width: 23rem; margin-top: 1.5rem; color: #efdaea; font-size: 1.05rem; line-height: 1.8; }
.login-brand-footer { color: #ead0e6; font-size: .8rem; letter-spacing: .04em; }
.login-form-panel { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 3rem 2rem 1.5rem; }
.login-form-content { width: 100%; max-width: 420px; margin: auto 0; padding: 1rem 0 2rem; }
.login-logo { display: block; width: 112px !important; height: 112px !important; object-fit: contain; margin-bottom: 1.5rem; }
.login-kicker { color: #8e286d; font-size: .72rem; font-weight: 800; letter-spacing: .18em; margin-bottom: .75rem; }
.login-form-content h1 { color: #30243a; font-size: clamp(1.8rem, 2.7vw, 2.4rem); letter-spacing: -.04em; margin-bottom: .6rem; }
.login-intro { color: #736b7e; margin-bottom: 2rem; }
.login-form-content .form-label { font-size: .9rem; font-weight: 700; color: #473d52; }
.login-form-content .form-control { min-height: 52px; border-radius: 10px; background-color: #fff; border-color: #d9d3df; padding: .8rem 1rem; }
.login-form-content .form-control:focus { border-color: #9e337f; box-shadow: 0 0 0 .2rem #9e337f20; }
.login-form-options { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; align-items: center; margin: .5rem 0 1.75rem; font-size: .82rem; }
.login-form-options a { color: #852164; font-weight: 700; }
.login-submit { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: .95rem 1.25rem; border-radius: 10px; background: #842167; color: #fff; font-weight: 700; }
.login-submit:hover, .login-submit:focus { background: #65174f; color: #fff; box-shadow: 0 0 0 .2rem #9e337f30; }
.login-footnote { margin: 1.5rem 0 0; text-align: center; color: #7b7285; font-size: .78rem; }
.login-footer { text-align: center; color: #817889; font-size: .75rem; }
body.theme-dark.login-page { background: #151521; }
body.theme-dark .login-kicker { color: #e4a6d1; }
body.theme-dark .login-intro, body.theme-dark .login-footnote, body.theme-dark .login-footer { color: #b3bfd0; }
body.theme-dark .login-form-content .form-control { background: #232337; border-color: #62647d; }
@media (max-width: 991px) {
    .login-shell { grid-template-columns: 1fr; }
    .login-brand { padding: 1.5rem 2rem; min-height: auto; }
    .login-brand-message, .login-brand-footer { display: none; }
    .login-form-panel { padding: 2rem 1.5rem 1rem; }
    .login-logo { width: 92px !important; height: 92px !important; }
}
