/* ═══════════════════════════════════════════════════════════════════
   LOGIN — tema dark gamer (Atlética Dragões)
   Fogo + estrelas interativas, roxo de assinatura, carrossel, profundidade.
   IDs e funções (handleLogin, entrarComGoogle, toggleTheme) preservados.
   ═══════════════════════════════════════════════════════════════════ */
.login-page{
    --lg-bg-0:#060211;--lg-violet:#8B5CF6;--lg-violet-bright:#A855F7;--lg-violet-soft:#CBB6FF;
    --lg-ember:#FF7A18;--lg-ember-soft:#FFB454;--lg-text-0:#F6F2FF;--lg-text-1:#BDB2D8;--lg-text-2:#7E7499;
    --lg-line:rgba(139,92,246,0.16);--lg-line-strong:rgba(139,92,246,0.40);--lg-card:rgba(16,9,34,0.62);
    position:relative;min-height:100vh;display:grid;grid-template-columns:1.06fr .94fr;
    background:var(--lg-bg-0);color:var(--lg-text-0);overflow:hidden;
    font-family:'Space Grotesk',system-ui,sans-serif;
}
/* (bloco mobile movido p/ o FIM do arquivo — fix E3: aqui em cima ele perdia
   a cascata p/ a regra base .login-left{display:flex} declarada mais abaixo) */

/* canvas + nebulosas */
#loginFx{position:fixed;inset:0;z-index:0;display:block}
.login-glow{position:fixed;border-radius:50%;filter:blur(90px);z-index:1;pointer-events:none;will-change:transform}
.lg1{width:42vw;height:42vw;background:radial-gradient(circle,rgba(124,58,237,.5),transparent 70%);top:-10vw;left:-6vw}
.lg2{width:36vw;height:36vw;background:radial-gradient(circle,rgba(255,122,24,.18),transparent 70%);bottom:-12vw;right:-4vw}
.lg3{width:50vw;height:50vw;background:radial-gradient(ellipse,rgba(168,85,247,.22),transparent 65%);top:25%;left:40%}
.lg4{width:30vw;height:30vw;background:radial-gradient(circle,rgba(91,33,182,.35),transparent 70%);top:55%;left:-8vw}

/* COLUNA ESQUERDA */
.login-left{position:relative;z-index:3;padding:48px 54px;display:flex;flex-direction:column;justify-content:space-between}
.login-left-content{margin:auto 0;display:flex;flex-direction:column}
.login-left-badge{display:flex;align-items:center;gap:15px;padding:10px 18px 10px 10px;border-radius:18px;background:linear-gradient(120deg,rgba(139,92,246,.1),rgba(139,92,246,.02));border:1px solid var(--lg-line);backdrop-filter:blur(12px);width:fit-content;box-shadow:0 8px 28px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.06);margin-bottom:40px}
.login-left-badge-icon{width:48px;height:48px;border-radius:14px;background:radial-gradient(circle at 35% 25%,#3D1B7A,#0C0620);border:1px solid var(--lg-line-strong);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(139,92,246,.4),inset 0 1px 0 rgba(255,255,255,.15)}
.login-left-badge-icon svg{width:28px;height:28px;filter:drop-shadow(0 0 7px rgba(168,85,247,.7))}
.login-left-badge-text{display:flex;flex-direction:column}
.login-left-badge-name{font-family:'Sora';font-weight:700;font-size:16px;letter-spacing:-.01em}
.login-left-badge-sub{font-size:10.5px;color:var(--lg-text-2);letter-spacing:.14em;text-transform:uppercase;margin-top:3px}

.login-left-heading{font-family:'Sora';font-weight:800;font-size:clamp(40px,4.6vw,60px);line-height:.98;letter-spacing:-.035em;margin-bottom:24px;color:var(--lg-text-0)}
.login-left-heading em{font-style:normal;background:linear-gradient(115deg,#FFB454,#C77DFF 55%,#fff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 14px rgba(168,85,247,.55)) drop-shadow(0 0 7px rgba(255,122,24,.4))}
.kine{display:inline-block}
.kine span{display:inline-block;transition:transform .25s cubic-bezier(.2,.8,.2,1),color .25s;will-change:transform;text-shadow:0 0 18px rgba(168,85,247,.45)}
.login-left-desc{font-size:15px;line-height:1.75;color:var(--lg-text-1);max-width:440px}

/* CARROSSEL */
.login-carousel{margin-top:40px;max-width:460px}
.login-carousel-track{position:relative;height:80px}
.login-feat{position:absolute;inset:0;display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:18px;background:rgba(16,9,34,.5);border:1px solid var(--lg-line);backdrop-filter:blur(14px);opacity:0;transform:translateY(14px) scale(.97);transition:opacity .7s,transform .7s;box-shadow:0 10px 30px rgba(0,0,0,.35),0 2px 8px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.05)}
.login-feat.active{opacity:1;transform:none}
.login-feat-ico{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;box-shadow:0 8px 22px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.15)}
.login-feat-ico.i1{background:linear-gradient(140deg,#7C3AED,#4C1D95)}
.login-feat-ico.i2{background:linear-gradient(140deg,#DB2777,#831843)}
.login-feat-ico.i3{background:linear-gradient(140deg,#EA580C,#7C2D12)}
.login-feat-ico.i4{background:linear-gradient(140deg,#0891B2,#164E63)}
.login-feat-t{font-family:'Sora';font-weight:600;font-size:15px;margin-bottom:3px;color:var(--lg-text-0)}
.login-feat-d{font-size:12.5px;color:var(--lg-text-2);line-height:1.4}
.login-dots{display:flex;gap:7px;margin-top:18px}
.login-dots i{width:7px;height:7px;border-radius:50%;background:var(--lg-line-strong);transition:all .4s;cursor:pointer}
.login-dots i.on{width:22px;border-radius:4px;background:linear-gradient(90deg,var(--lg-ember),var(--lg-violet-bright))}

.login-left-footer{font-size:11px;color:var(--lg-text-2);letter-spacing:.02em;z-index:3}

/* COLUNA DIREITA */
.login-right{display:flex;align-items:center;justify-content:center;padding:40px;position:relative;z-index:3}
.login-form-wrap{width:100%;max-width:404px;background:var(--lg-card);backdrop-filter:blur(24px);border:1px solid var(--lg-line-strong);border-radius:26px;padding:38px;position:relative;overflow:hidden;box-shadow:0 40px 90px rgba(0,0,0,.55),0 12px 32px rgba(124,58,237,.18),inset 0 1px 0 rgba(255,255,255,.07)}
.login-form-wrap::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--lg-violet-bright),var(--lg-ember),transparent);opacity:.8}

.login-top-bar{display:flex;justify-content:flex-end;margin-bottom:14px}
.theme-toggle{display:flex;align-items:center;gap:8px;padding:7px 14px;border-radius:100px;border:1px solid var(--lg-line);background:rgba(255,255,255,.04);cursor:pointer;font-size:12px;color:var(--lg-text-1);transition:background .25s,border-color .25s}
.theme-toggle:hover{background:rgba(255,255,255,.08);border-color:var(--lg-line-strong)}
.theme-icon{font-size:14px}

.login-form-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--lg-violet-soft);margin-bottom:16px;padding:7px 14px 7px 7px;border:1px solid var(--lg-line-strong);border-radius:100px;background:linear-gradient(100deg,rgba(255,122,24,.08),rgba(139,92,246,.08));width:fit-content}
.eyebrow-spark{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,var(--lg-ember),#7C2D12);display:flex;align-items:center;justify-content:center;box-shadow:0 0 12px var(--lg-ember),inset 0 1px 0 rgba(255,255,255,.3);position:relative}
.eyebrow-spark::before{content:'';width:6px;height:6px;border-radius:50%;background:#FFE4B5;box-shadow:0 0 8px #fff}

.login-form-title{font-family:'Sora';font-weight:700;font-size:30px;letter-spacing:-.025em;margin-bottom:9px;line-height:1.05;color:var(--lg-text-0)}
.login-form-sub{font-size:13px;color:var(--lg-text-1);line-height:1.6;margin-bottom:28px}

.form-group{margin-bottom:18px}
.form-label{display:block;font-size:11.5px;font-weight:500;color:var(--lg-text-1);margin-bottom:8px;letter-spacing:.04em;text-transform:uppercase}
.form-input{width:100%;padding:15px 16px;background:rgba(6,2,17,.6);border:1.5px solid var(--lg-line);border-radius:14px;color:var(--lg-text-0);font-family:'Space Grotesk';font-size:14px;transition:border-color .25s,box-shadow .25s,background .25s}
.form-input::placeholder{color:var(--lg-text-2)}
.form-input:focus{outline:none;border-color:var(--lg-violet);background:rgba(139,92,246,.07);box-shadow:0 0 0 4px rgba(139,92,246,.14),0 0 28px rgba(139,92,246,.2)}

.error-box{display:none;align-items:center;gap:10px;padding:12px 14px;margin-bottom:16px;border-radius:12px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.3);font-size:13px;color:#FCA5A5}
.error-box.show{display:flex}
.error-box svg{width:18px;height:18px;flex-shrink:0}

.btn-login{width:100%;padding:16px;margin-top:6px;background:linear-gradient(135deg,#7C3AED,var(--lg-violet-bright));border:none;border-radius:14px;color:#fff;font-family:'Sora';font-weight:600;font-size:14px;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s,box-shadow .35s;box-shadow:0 12px 30px rgba(124,58,237,.45),0 4px 10px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center}
.btn-login:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(124,58,237,.6),0 6px 16px rgba(0,0,0,.35)}
.btn-login:active{transform:translateY(0)}
.btn-login::after{content:'';position:absolute;top:0;left:-120%;width:80%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .7s}
.btn-login:hover::after{left:130%}

.login-divisor{display:flex;align-items:center;gap:14px;margin:22px 0;color:var(--lg-text-2);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.login-divisor::before,.login-divisor::after{content:'';flex:1;height:1px;background:var(--lg-line)}

.btn-google{width:100%;padding:14px;background:rgba(255,255,255,.04);border:1.5px solid var(--lg-line);border-radius:14px;color:var(--lg-text-0);font-family:'Space Grotesk';font-weight:500;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:11px;transition:background .25s,border-color .25s,transform .2s;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.btn-google:hover{background:rgba(255,255,255,.07);border-color:var(--lg-line-strong);transform:translateY(-1px)}

.login-help{font-size:12px;color:var(--lg-text-2);margin-top:22px;line-height:1.6;text-align:center}
.login-help strong{color:var(--lg-text-1)}

.login-cadastro-link{text-align:center;margin-top:1.25rem;font-size:13px;color:var(--lg-text-2)}
.login-cadastro-link span{color:var(--lg-violet-soft);font-weight:600;cursor:pointer;margin-left:4px}

.spinner{display:none;width:18px;height:18px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:lgSpin .7s linear infinite}
@keyframes lgSpin{to{transform:rotate(360deg)}}
#btnLoginText{display:flex;align-items:center;justify-content:center}
.form-input.error{border-color:rgba(239,68,68,.6);box-shadow:0 0 0 4px rgba(239,68,68,.12)}
/* canvas de efeitos desativado (performance 07/2026) */
#loginFx { display: none; }

/* ── HOTFIX C1.3.1: classes que o redesign do cadastro/vincular referenciava
   mas nunca ganharam regra — e a logo em <img> no badge ── */
.login-left-badge-icon img{width:100%;height:100%;object-fit:cover;border-radius:inherit}

.login-left-features{display:flex;flex-direction:column;gap:14px;margin-top:28px}
.login-left-feature{display:flex;align-items:flex-start;gap:12px}
.login-left-feature-icon{width:38px;height:38px;border-radius:10px;background:rgba(139,92,246,.12);border:1px solid var(--lg-line-strong);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.login-left-feature-text h4{font-family:'Sora';font-size:14px;font-weight:700;margin:0 0 2px;color:var(--lg-text-0)}
.login-left-feature-text p{font-size:12.5px;color:var(--lg-text-2);margin:0;line-height:1.5}

.consent-group{display:flex;flex-direction:column;gap:12px;margin:16px 0 6px}
.consent-label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;position:relative}
.consent-label input{position:absolute;opacity:0;width:0;height:0}
.consent-check{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--lg-line-strong);flex-shrink:0;margin-top:2px;position:relative;transition:all .15s}
.consent-label input:checked+.consent-check{background:linear-gradient(135deg,#A855F7,#7C3AED);border-color:transparent}
.consent-label input:checked+.consent-check::after{content:'';position:absolute;left:5px;top:1.5px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.consent-text{font-size:12px;color:var(--lg-text-1);line-height:1.55}
.consent-text a{color:#C77DFF;font-weight:700;text-decoration:none}
.consent-text a:hover{text-decoration:underline}
.consent-revoke{font-size:11px;color:var(--lg-text-2);margin-top:2px;line-height:1.5}
.consent-revoke a{color:#C77DFF;font-weight:600}

/* ── MOBILE ≤900px — fix E3: 1 coluna DE VERDADE ─────────────────────────
   Dois bugs somados deixavam login/cadastro/vincular ilegíveis no celular:
   (1) o bloco mobile antigo ficava no TOPO do arquivo e a regra base
   .login-left{display:flex} vinha depois — mesma especificidade, a de baixo
   ganha, então a coluna esquerda NUNCA sumia; (2) o showPage aplica
   display:flex INLINE na .login-page (o grid da folha nunca vale), as duas
   colunas espremiam ~590px de min-content e o overflow:hidden cortava o
   formulário na direita. Bloco no FIM do arquivo (cascata) e pensado p/
   flex: com a esquerda oculta, a direita vira coluna única fluida. */
@media(max-width:900px){
    .login-page{grid-template-columns:1fr}
    .login-left{display:none}
    .login-right{flex:1 1 100%;width:100%;padding:26px 14px}
    .login-form-wrap{max-width:460px;padding:28px 20px;border-radius:20px}
    .login-form-title{font-size:26px}
    .form-input{font-size:16px}   /* <16px dispara auto-zoom do iOS no foco */
}

/* Marca compacta no topo do form — só aparece no mobile (a coluna esquerda,
   que carregava a logo, está oculta lá; sem isto o celular não via marca).
   ORDEM IMPORTA: a base display:none vem ANTES da media que liga (a mesma
   lição de cascata do fix acima). */
.login-mobile-brand{display:none;align-items:center;gap:10px;margin-bottom:18px}
.login-mobile-brand img{width:34px;height:34px;border-radius:10px;object-fit:cover;border:1px solid var(--lg-line-strong)}
.login-mobile-brand span{font-family:'Sora';font-weight:700;font-size:13.5px;color:var(--lg-text-0)}
@media(max-width:900px){.login-mobile-brand{display:flex}}