/* ============================================================
   AUTH — login, recuperar senha, redefinir senha
   ============================================================ */
.auth-page { overflow: hidden; }
.auth { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); min-height: 100vh; min-height: 100dvh; }

/* — Painel de marca — */
.auth__brand { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; padding: clamp(2rem, 5vw, 4rem); background: radial-gradient(1200px 600px at 10% 10%, rgba(var(--primary-rgb), .25), transparent 60%), radial-gradient(900px 500px at 90% 90%, rgba(var(--violet-rgb), .22), transparent 60%), var(--bg-elev); border-right: 1px solid var(--border); }
.auth__brand--custom { background: var(--auth-bg) center / cover no-repeat; }
.auth__brand--custom::before { content: ''; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(10, 11, 20, .55) 0%, rgba(10, 11, 20, .75) 100%); }
.auth__brand--custom .auth__orbs, .auth__brand--custom .auth__grid { display: none; }
[data-theme="light"] .auth__brand--custom::before { background: linear-gradient(160deg, rgba(10, 11, 20, .45) 0%, rgba(10, 11, 20, .7) 100%); }
[data-theme="light"] .auth__brand--custom .auth__brand-inner { color: #fff; }
[data-theme="light"] .auth__brand--custom .auth__brand-title { -webkit-text-fill-color: #fff; background: none; }
[data-theme="light"] .auth__brand--custom .auth__brand-text, [data-theme="light"] .auth__brand--custom .auth__brand-list { color: rgba(255, 255, 255, .8); }

.auth__orbs span { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .55; }
.auth__orbs span:nth-child(1) { width: 380px; height: 380px; background: rgba(var(--primary-rgb), .35); top: -80px; left: -60px; animation: float 11s ease-in-out infinite; }
.auth__orbs span:nth-child(2) { width: 300px; height: 300px; background: rgba(var(--violet-rgb), .3); bottom: -60px; right: 10%; animation: float 13s ease-in-out infinite 2s; }
.auth__orbs span:nth-child(3) { width: 220px; height: 220px; background: rgba(var(--accent-rgb), .18); top: 45%; left: 55%; animation: float 9s ease-in-out infinite 1s; }
.auth__grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(var(--primary-rgb), .06) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--primary-rgb), .06) 1px, transparent 1px); background-size: 56px 56px; mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%); }
.auth__brand-inner { position: relative; z-index: 1; max-width: 460px; animation: fadeUp .6s var(--ease-out) both; }
.auth__brand-logo { max-height: 72px; max-width: 240px; object-fit: contain; margin-bottom: 2rem; }
.auth__brand-mark { width: 60px; height: 60px; border-radius: 18px; background: var(--gradient-primary); color: #fff; display: grid; place-items: center; font-size: 1.6rem; box-shadow: 0 0 40px rgba(var(--primary-rgb), .45); margin-bottom: 1rem; }
.auth__brand-name { font-size: var(--fs-lg); font-weight: 800; margin-bottom: 1.5rem; }
.auth__brand-title { font-size: clamp(1.75rem, 3.2vw, 2.5rem); font-weight: 800; line-height: 1.15; letter-spacing: -.02em; background: var(--heading-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 1rem; }
.auth__brand-text { color: var(--text-muted); font-size: var(--fs-md); line-height: 1.65; margin-bottom: 1.75rem; }
.auth__brand-list { display: flex; flex-direction: column; gap: .7rem; color: var(--text-muted); font-size: var(--fs-sm); }
.auth__brand-list li { display: flex; align-items: center; gap: .7rem; }
.auth__brand-list i { width: 32px; height: 32px; border-radius: var(--r-sm); background: var(--primary-soft); color: var(--primary-text); display: grid; place-items: center; font-size: .8rem; }

/* — Formulário — */
.auth__main { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: clamp(1.25rem, 4vw, 3rem); background: var(--bg); }
.auth__topbar { position: absolute; top: 1.25rem; right: 1.25rem; }
.auth__card { width: 100%; max-width: 440px; animation: scaleIn .5s var(--ease-out) both; }
.auth__head { text-align: center; margin-bottom: 1.5rem; }
.auth__logo--mobile { display: none; margin: 0 auto 1rem; }
.auth__logo { max-height: 64px; max-width: 200px; object-fit: contain; }
.auth__mark { width: 56px; height: 56px; border-radius: 16px; background: var(--gradient-primary); color: #fff; display: grid; place-items: center; font-size: 1.4rem; box-shadow: 0 0 34px rgba(var(--primary-rgb), .4); }
.auth__title { font-size: var(--fs-2xl); font-weight: 800; letter-spacing: -.02em; background: var(--heading-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: .35rem; }
.auth__subtitle { font-size: var(--fs-sm); color: var(--text-muted); line-height: 1.55; }
.auth__form .input { height: 48px; }
.auth__options { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: -.25rem 0 1.25rem; flex-wrap: wrap; }
.auth__link { font-size: var(--fs-sm); font-weight: 600; }
.auth__foot { text-align: center; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--border); font-size: var(--fs-sm); color: var(--text-muted); display: flex; flex-direction: column; gap: .6rem; }
.auth__foot a { font-weight: 600; }
.auth__secure { font-size: var(--fs-xs); color: var(--text-soft); display: inline-flex; align-items: center; justify-content: center; gap: .4rem; }
.auth__secure i { color: var(--primary-text); }
.auth__back { display: inline-flex; align-items: center; gap: .45rem; transition: gap var(--dur-fast); }
.auth__back:hover { gap: .7rem; }
.auth__copy { margin-top: 1.5rem; font-size: var(--fs-xs); color: var(--text-soft); }
.auth__card.is-leaving { transition: transform .4s var(--ease), opacity .4s; transform: scale(.96); opacity: .4; }

/* — Resultado (sucesso/erro) — */
.auth__result { text-align: center; padding: .5rem 0; animation: scaleIn .45s var(--ease-out); }
.auth__result-icon { width: 76px; height: 76px; margin: 0 auto 1.1rem; border-radius: 50%; display: grid; place-items: center; font-size: 1.9rem; background: var(--gradient-primary-soft); border: 2px solid rgba(var(--primary-rgb), .3); color: var(--primary-text); box-shadow: 0 0 40px rgba(var(--primary-rgb), .2); animation: float 4s ease-in-out infinite; }
.auth__result-icon--ok { background: rgba(var(--success-rgb), .14); border-color: rgba(var(--success-rgb), .35); color: var(--success); box-shadow: 0 0 40px rgba(var(--success-rgb), .2); }
.auth__result-icon--error { background: rgba(var(--danger-rgb), .12); border-color: rgba(var(--danger-rgb), .35); color: var(--danger); box-shadow: 0 0 40px rgba(var(--danger-rgb), .18); }
.auth__result-title { font-size: var(--fs-xl); margin-bottom: .5rem; }
.auth__result-desc { font-size: var(--fs-sm); color: var(--text-muted); line-height: 1.65; margin-bottom: 1.1rem; }
.auth__result-tip { display: inline-flex; align-items: center; gap: .5rem; font-size: var(--fs-xs); color: var(--text-muted); background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-md); padding: .65rem .9rem; }
.auth__result-tip i { color: var(--accent); }

@media (max-width: 960px) {
    .auth { grid-template-columns: 1fr; }
    .auth__brand { display: none; }
    .auth__logo--mobile { display: block; }
    .auth__main { background: radial-gradient(800px 400px at 50% -10%, rgba(var(--primary-rgb), .18), transparent 60%), var(--bg); }
}
@media (max-width: 480px) {
    .auth__topbar { top: .85rem; right: .85rem; }
    .auth__card { padding-top: 2.5rem; }
}
