.page-login { min-height: 100vh; background: #fbf9fd; }
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(300px, .92fr) minmax(420px, 1.08fr); }
.auth-brand-panel { padding: clamp(28px, 5vw, 72px); background: linear-gradient(145deg, #fff 0%, #faf4ff 55%, #f4e8ff 100%); border-right: 1px solid var(--border); display: flex; flex-direction: column; justify-content: space-between; gap: 60px; }
.auth-brand-copy { max-width: 620px; }
.auth-brand-copy h1 { font-size: clamp(2rem, 4vw, 3.7rem); line-height: 1.04; margin: 0 0 18px; letter-spacing: -.04em; }
.auth-brand-copy p { max-width: 560px; color: var(--text-muted); font-size: 1.02rem; line-height: 1.75; }
.auth-form-panel { display: grid; place-items: center; padding: 28px; background: #fff; }
.auth-card { width: min(430px, 100%); display: grid; gap: 22px; }
.auth-card__heading h2 { margin: 0 0 8px; font-size: 1.8rem; }
.auth-card__heading p { margin: 0; color: var(--text-muted); }
.auth-form { display: grid; gap: 16px; }
.auth-submit { width: 100%; }
.identity-summary { min-height: 48px; border: 1px solid var(--border); border-radius: var(--radius-control); padding: 8px 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fcfaff; }
.identity-summary span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.identity-summary a, .auth-inline-links a { color: var(--purple-700); font-weight: 700; text-decoration: none; }
.auth-inline-links { display: flex; justify-content: flex-end; margin-top: -4px; }
.password-control { position: relative; }
.password-control .control { padding-right: 64px; }
.password-toggle { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--purple-700); font-weight: 800; cursor: pointer; padding: 6px; }
@media (max-width: 820px) { .auth-shell { grid-template-columns: 1fr; } .auth-brand-panel { min-height: auto; padding: 24px; gap: 32px; border-right: 0; border-bottom: 1px solid var(--border); } .auth-brand-copy h1 { font-size: 2rem; } .auth-brand-copy p { display: none; } .auth-form-panel { padding: 34px 20px; align-items: start; } }
.page-login .brand__logo { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--border); border-radius: 8px; background: rgba(255,255,255,.88); box-shadow: var(--shadow-sm); }
.page-login .brand__logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
/* Keep authentication content comfortably inside the viewport on desktop and mobile. */
.auth-shell{min-height:100dvh}.auth-brand-panel,.auth-form-panel{min-height:0}
@media (min-width:821px) and (max-height:760px){.auth-brand-panel{padding:28px 36px;gap:28px}.auth-brand-copy h1{font-size:clamp(1.9rem,3.2vw,2.9rem);margin-bottom:12px}.auth-brand-copy p{font-size:.94rem;line-height:1.55}.auth-form-panel{padding:20px}.auth-card{gap:16px}.auth-card__heading h2{font-size:1.55rem}.auth-form{gap:12px}}
@media (max-width:820px){.auth-shell{min-height:100dvh}.auth-brand-panel{padding:18px 20px;gap:18px}.auth-brand-copy h1{font-size:1.65rem;margin-bottom:8px}.auth-form-panel{padding:24px 16px}}
