/* ---------- Auth pages ---------- */
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: 1.05fr 1fr; background: var(--em-surface); }
.auth-hero { background: linear-gradient(140deg, #232c5e 0%, #3b4a9f 55%, #7c5cdb 100%); color: #fff; padding: 3rem; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.auth-hero::before, .auth-hero::after { content: ""; position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .07); }
.auth-hero::before { width: 420px; height: 420px; right: -140px; top: -120px; }
.auth-hero::after { width: 300px; height: 300px; left: -100px; bottom: -120px; }
.auth-hero h1 { font-weight: 800; font-size: 2.3rem; line-height: 1.2; max-width: 460px; }
.auth-feature { display: flex; gap: .75rem; align-items: center; margin-top: .9rem; color: rgba(255, 255, 255, .88); }
.auth-feature .bi { width: 36px; height: 36px; border-radius: 10px; background: rgba(255, 255, 255, .14); display: grid; place-items: center; }
.auth-panel { display: grid; place-items: center; padding: 2rem 1.25rem; }
.auth-card { width: 100%; max-width: 420px; }
.auth-card h2 { font-weight: 800; color: #22305f; }
.auth-card .form-control { min-height: 48px; }
.password-toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: none; color: var(--em-muted); width: 40px; height: 40px; }
.otp-input { letter-spacing: .6em; font-size: 1.4rem; text-align: center; font-weight: 700; }
@media (max-width: 991.98px) {
    .auth-shell { grid-template-columns: 1fr; }
    .auth-hero { padding: 1.5rem 1.25rem; min-height: auto; }
    .auth-hero h1 { font-size: 1.4rem; }
    .auth-hero .auth-features { display: none; }
}
.auth-hero-layer { z-index: 1; }
