/* ============================================================
   EAD Play — Páginas de autenticação (login, recuperar, redefinir)
   ============================================================ */
.page-auth { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; position:relative; overflow:hidden;
    background:linear-gradient(145deg,#0b0d14 0%,#0f1221 30%,#151933 60%,#0f1117 100%); }
[data-theme="light"] .page-auth { background:linear-gradient(145deg,#eef1f9 0%,#e7ebf8 40%,#f3f4fb 100%); }

.auth-bg { position:absolute; inset:0; pointer-events:none; z-index:0; }
.auth-bg .orb { position:absolute; border-radius:50%; filter:blur(80px); opacity:.55; }
.auth-bg .orb-1 { width:460px; height:460px; top:-8%; left:-6%; background:radial-gradient(circle,rgba(76,110,245,.35) 0%,transparent 70%); animation:orb1 14s ease-in-out infinite; }
.auth-bg .orb-2 { width:380px; height:380px; bottom:-8%; right:-6%; background:radial-gradient(circle,rgba(124,58,237,.3) 0%,transparent 70%); animation:orb2 17s ease-in-out infinite; }
.auth-bg .orb-3 { width:300px; height:300px; top:55%; left:60%; transform:translate(-50%,-50%); background:radial-gradient(circle,rgba(6,182,212,.18) 0%,transparent 70%); animation:orb3 11s ease-in-out infinite; }
.auth-bg .grid { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px); background-size:48px 48px;
    -webkit-mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%); mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%); }
[data-theme="light"] .auth-bg .grid { background-image:linear-gradient(rgba(0,0,0,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.05) 1px,transparent 1px); }
@keyframes orb1 { 0%,100% { transform:translate(0,0) scale(1); } 33% { transform:translate(30px,20px) scale(1.08); } 66% { transform:translate(-20px,-15px) scale(.95); } }
@keyframes orb2 { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(-25px,-20px) scale(1.1); } }
@keyframes orb3 { 0%,100% { transform:translate(-50%,-50%) scale(1); } 50% { transform:translate(-50%,-55%) scale(1.06); } }

.auth-theme { position:absolute; top:18px; right:18px; z-index:2; }

.auth-wrap { position:relative; z-index:1; width:100%; max-width:440px; display:flex; flex-direction:column; align-items:center; animation:authIn .5s var(--ease-out); }
@keyframes authIn { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
.auth-card { width:100%; background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:32px 36px 28px; box-shadow:0 24px 60px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.03); position:relative; overflow:hidden; }
[data-theme="light"] .auth-card { box-shadow:0 24px 60px rgba(16,24,40,.14); }
.auth-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,#4c6ef5,#7c3aed,#06b6d4); }
.auth-logo { display:flex; justify-content:center; margin-bottom:18px; }
.auth-logo img { max-height:46px; max-width:190px; object-fit:contain; }
.auth-head { text-align:center; margin-bottom:22px; }
.auth-head h1 { font-size:var(--fs-xl); font-weight:800; letter-spacing:-.02em; margin-bottom:4px; }
.auth-head p { font-size:var(--fs-sm); color:var(--text-3); margin:0; }
.auth-form .field { margin-bottom:16px; }
.auth-form .btn-block { margin-top:6px; }
.cf-turnstile { display:flex; justify-content:center; margin-bottom:14px; }
.auth-pills { display:flex; justify-content:center; gap:18px; margin-top:22px; padding-top:18px; border-top:1px solid var(--border); font-size:var(--fs-xs); color:var(--text-3); font-weight:600; }
.auth-pills span { display:inline-flex; align-items:center; gap:6px; }
.auth-pills i { color:var(--primary-text); }
.auth-links { display:flex; flex-direction:column; gap:10px; margin-top:18px; padding-top:16px; border-top:1px solid var(--border); font-size:var(--fs-sm); }
.auth-links a:not(.btn) { display:inline-flex; align-items:center; gap:8px; font-weight:500; }
.auth-copy { margin:18px 0 0; font-size:var(--fs-xs); color:var(--text-3); text-align:center; }
.auth-card .alert { text-align:left; }
@media (max-width:480px) { .auth-card { padding:26px 22px 22px; } .auth-pills { gap:12px; } }
