/* ============================================================
   AUTH — login, recuperar senha, redefinir senha
   ============================================================ */
.auth-page { overflow-x: hidden; }
.auth { position: relative; isolation: isolate; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: clamp(1.25rem, 4vw, 3rem) var(--sp-4); }

/* — Fundo em tela cheia — */
.auth__bg { position: fixed; inset: 0; z-index: -1; overflow: hidden; 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); }
.auth--custom .auth__bg { background: var(--auth-bg) center / cover no-repeat, var(--bg); }
.auth--custom .auth__bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(10, 11, 20, .5) 0%, rgba(10, 11, 20, .72) 100%); }
.auth--custom .auth__orbs, .auth--custom .auth__grid { display: none; }
[data-theme="light"] .auth--custom .auth__bg::after { background: linear-gradient(160deg, rgba(10, 11, 20, .4) 0%, rgba(10, 11, 20, .62) 100%); }
.auth--custom .auth__copy { color: rgba(255, 255, 255, .72); }

.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%); }

/* — Formulário — */
.auth__main { position: relative; width: 100%; display: flex; flex-direction: column; align-items: center; }
.auth__topbar { position: absolute; top: 1.25rem; right: 1.25rem; z-index: 2; }
.auth__card { position: relative; width: 100%; max-width: 440px; padding: clamp(1.5rem, 4vw, 2.25rem); background: var(--surface-glass); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); border: 1px solid var(--border-strong); border-radius: var(--r-2xl); box-shadow: var(--shadow-xl); animation: scaleIn .5s var(--ease-out) both; }
.auth__head { text-align: center; margin-bottom: 1.5rem; }
.auth__logo { display: block; margin: 0 auto 1rem; max-height: 64px; max-width: 200px; object-fit: contain; }
.auth__mark { width: 56px; height: 56px; margin: 0 auto 1rem; 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: 480px), (max-height: 640px) {
    .auth { padding-top: 4.25rem; }
    .auth__topbar { top: .85rem; right: .85rem; }
}
