*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#05090d;--panel:#09131c;--text:#f5f8fb;--muted:#9fb0be;--line:rgba(255,255,255,.1);--green:#45d36b;--green-2:#2fb959;--danger:#ff6b6b;--warning:#ffc857}body{min-height:100vh;font-family:"Sora",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(360px,.92fr) 1.08fr}.auth-brand-panel{position:relative;min-height:100vh;padding:42px clamp(30px,6vw,90px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:radial-gradient(circle at 25% 20%,rgba(69,211,107,.18),transparent 30%),radial-gradient(circle at 80% 60%,rgba(45,127,183,.22),transparent 36%),linear-gradient(145deg,#08111a,#04080c)}.auth-brand-panel::after{content:"";position:absolute;width:420px;height:420px;right:-210px;bottom:-160px;border:1px solid rgba(255,255,255,.07);border-radius:50%;box-shadow:0 0 0 55px rgba(255,255,255,.012),0 0 0 110px rgba(255,255,255,.009)}.auth-brand{display:inline-flex;align-items:center;gap:12px;font-size:1.05rem;font-weight:850;z-index:1}.auth-brand img{width:46px;height:46px;object-fit:contain}.brand-copy{max-width:570px;z-index:1}.eyebrow{font-size:.76rem;letter-spacing:.18em;font-weight:850;color:var(--green)}.brand-copy h1{font-size:clamp(2.5rem,5.5vw,5rem);line-height:.98;letter-spacing:-.055em;margin:18px 0 24px}.brand-copy p{color:#becbd5;font-size:1.08rem;max-width:520px}.auth-form-panel{padding:40px 24px;display:grid;place-items:center;background:#05090d}.auth-card{width:min(480px,100%);padding:34px;border:1px solid var(--line);border-radius:26px;background:linear-gradient(180deg,rgba(12,24,34,.96),rgba(7,14,20,.98));box-shadow:0 30px 90px rgba(0,0,0,.36)}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);margin-bottom:26px}.tab{border:0;border-radius:10px;padding:11px;background:transparent;color:#93a5b4;font-weight:800;cursor:pointer}.tab.active{background:rgba(69,211,107,.11);color:var(--green)}.auth-form{display:none;gap:16px}.auth-form.active{display:grid}.field{display:grid;gap:7px}.field label{font-size:.86rem;color:#cbd6de;font-weight:700}.field input{height:50px;border-radius:13px;border:1px solid var(--line);background:#071019;color:#fff;padding:0 14px;outline:none}.field input:focus{border-color:rgba(69,211,107,.6);box-shadow:0 0 0 3px rgba(69,211,107,.08)}.primary-button,.google-button{height:50px;border-radius:13px;font-weight:850;cursor:pointer}.primary-button{border:0;background:linear-gradient(135deg,var(--green),var(--green-2));color:#031008}.primary-button:disabled,.google-button:disabled{opacity:.55;cursor:not-allowed}.google-button{border:1px solid var(--line);background:rgba(255,255,255,.035);color:#fff}.google-g{font-weight:900;margin-right:8px}.link-button{border:0;background:none;color:#a9bccb;text-align:right;font-weight:700;font-size:.86rem;cursor:pointer;margin-top:-5px}.link-button:hover{color:var(--green)}.divider{display:flex;align-items:center;gap:12px;color:#6f8291;font-size:.8rem}.divider::before,.divider::after{content:"";height:1px;background:var(--line);flex:1}.check{display:flex;gap:9px;align-items:flex-start;color:#a9bac7;font-size:.84rem}.check input{margin-top:4px;accent-color:var(--green)}.notice{display:grid;gap:4px;margin-bottom:18px;padding:12px 14px;border-radius:12px;border:1px solid rgba(69,211,107,.25);background:rgba(69,211,107,.07);color:#dff8e5;font-size:.86rem}.notice.warning{border-color:rgba(255,200,87,.3);background:rgba(255,200,87,.07);color:#ffe3a3}.notice.error{border-color:rgba(255,107,107,.3);background:rgba(255,107,107,.07);color:#ffc0c0}.notice.success{border-color:rgba(69,211,107,.3);background:rgba(69,211,107,.07)}.notice code{color:#fff}.notice[hidden]{display:none}@media(max-width:820px){.auth-layout{grid-template-columns:1fr}.auth-brand-panel{min-height:auto;padding:28px 24px 46px}.brand-copy{margin-top:70px}.brand-copy h1{font-size:2.8rem}.auth-form-panel{padding:26px 14px 50px}.auth-card{padding:24px}}
.primary-button,.google-button{border-radius:14px;transition:.2s;box-shadow:none}.primary-button{border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 26px rgba(69,211,107,.12)}.primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 32px rgba(69,211,107,.18);filter:brightness(1.04)}.google-button:hover:not(:disabled){transform:translateY(-1px);border-color:rgba(69,211,107,.25);background:rgba(69,211,107,.05)}

/* v11 — login/cadastro responsivo */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-width:0}
@media(min-width:1600px){.auth-layout{grid-template-columns:minmax(620px,.95fr) 1.05fr}.auth-brand-panel{padding:60px clamp(60px,7vw,135px)}.auth-card{width:min(540px,100%);padding:40px}.brand-copy{max-width:680px}.brand-copy h1{font-size:5.4rem}}
@media(min-width:2400px){body{font-size:17px}.auth-brand-panel{padding:85px clamp(90px,8vw,180px)}.auth-card{width:min(620px,100%);padding:48px}.brand-copy h1{font-size:6.2rem}}
@media(max-width:820px){.auth-layout{grid-template-columns:1fr}.auth-brand-panel{min-height:auto;padding:26px max(20px,env(safe-area-inset-left)) 38px}.brand-copy{margin-top:52px}.auth-form-panel{padding:24px max(12px,env(safe-area-inset-left)) 48px max(12px,env(safe-area-inset-right))}.auth-card{width:min(520px,100%)}}
@media(max-width:520px){.auth-brand-panel{padding-top:20px}.auth-brand img{width:40px;height:40px}.brand-copy{margin-top:40px}.brand-copy h1{font-size:clamp(2.25rem,12vw,3rem);margin-block:14px 18px}.brand-copy p{font-size:.94rem}.auth-card{padding:20px 16px;border-radius:20px}.tabs{margin-bottom:20px}.field input,.primary-button,.google-button{height:48px}}
@media(max-height:600px) and (orientation:landscape) and (max-width:980px){.auth-brand-panel{display:none}.auth-layout{display:block}.auth-form-panel{min-height:100vh}}


/* v12 — login responsivo + padrão de botões */
:root{--action:#082d52;--action-hover:#0b3b69;--action-border:#2a6d9d}
.primary-button{
  color:#fff;
  background:linear-gradient(180deg,#0b365f,#072847);
  border:1px solid rgba(65,135,188,.5);
  box-shadow:0 10px 26px rgba(0,25,50,.22);
}
.primary-button:hover:not(:disabled){
  background:linear-gradient(180deg,#0d4173,#082e52);
  border-color:rgba(85,159,213,.66);
  box-shadow:0 14px 32px rgba(0,31,62,.28);
  filter:none;
}
.google-button{background:transparent;border-color:rgba(46,112,158,.58)}
.google-button:hover:not(:disabled){background:rgba(18,67,103,.14);border-color:rgba(71,147,202,.82)}
.auth-card,.notice,.field,.field input{min-width:0;max-width:100%}
.notice{overflow-wrap:anywhere}
.notice code{word-break:break-all}
@media(max-width:1100px) and (min-width:821px){
  .auth-layout{grid-template-columns:minmax(320px,.82fr) 1.18fr}
  .auth-brand-panel{padding:34px clamp(25px,4vw,55px)}
  .brand-copy h1{font-size:clamp(2.5rem,5vw,3.8rem)}
  .auth-form-panel{padding-inline:18px}
}
@media(max-width:520px){
  .auth-brand-panel{padding-inline:max(16px,env(safe-area-inset-left)) max(16px,env(safe-area-inset-right))}
  .auth-form-panel{padding-inline:max(10px,env(safe-area-inset-left)) max(10px,env(safe-area-inset-right))}
  .auth-card{padding:18px 14px}
  .notice{padding:11px 12px;font-size:.78rem;line-height:1.45}
  .notice strong{font-size:.82rem}
  .tabs{gap:4px;padding:4px}
  .tab{padding-inline:8px;font-size:.78rem}
}


/* v14 — autenticação social com SVGs */
.social-auth-grid{display:grid;grid-template-columns:1fr;gap:10px;min-width:0}
.social-auth-button{min-height:50px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 14px;border-radius:13px;font-weight:800;cursor:pointer;min-width:0}
.social-auth-button img{width:20px;height:20px;flex:0 0 20px}
.social-auth-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.facebook-button{color:#fff;background:transparent;border:1px solid rgba(255,255,255,.22)}
.facebook-button:hover:not(:disabled){background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.48);transform:translateY(-1px)}
.social-auth-button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:380px){.social-auth-button{font-size:.78rem;padding-inline:10px}.social-auth-button img{width:18px;height:18px;flex-basis:18px}}

/* v15 — card de autenticação dentro do viewport + senha forte */
.password-requirements{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:2px;
  font-size:.68rem;
  line-height:1;
}
.password-requirements span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 7px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  color:#738692;
  background:rgba(255,255,255,.018);
  transition:border-color .18s ease,color .18s ease,background .18s ease,box-shadow .18s ease;
}
.password-requirements span::before{
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:#596975;
}
.password-requirements span.is-valid{
  color:#d9ffe3;
  border-color:rgba(154,246,177,.32);
  background:rgba(154,246,177,.055);
  box-shadow:0 0 12px rgba(154,246,177,.04);
}
.password-requirements span.is-valid::before{
  background:#a4f5b8;
  box-shadow:0 0 8px rgba(164,245,184,.58);
}

@media (min-width:821px){
  html,body{height:100%;overflow:hidden}
  .auth-layout{height:100dvh;min-height:100dvh;overflow:hidden}
  .auth-brand-panel{height:100dvh;min-height:0;padding-block:clamp(22px,4vh,42px)}
  .auth-form-panel{height:100dvh;min-height:0;padding:clamp(12px,2.6vh,28px) 24px;overflow:hidden}
  .auth-card{
    max-height:calc(100dvh - clamp(24px,5.2vh,56px));
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
}

@media (min-width:821px) and (max-height:860px){
  .auth-card{padding:24px 26px}
  .tabs{margin-bottom:17px}
  .auth-form{gap:11px}
  .field{gap:5px}
  .field label{font-size:.78rem}
  .field input,.primary-button,.google-button,.social-auth-button{height:44px;min-height:44px}
  .social-auth-grid{gap:8px}
  .divider{gap:9px}
  .brand-copy h1{font-size:clamp(2.5rem,4.7vw,4.2rem);margin:12px 0 17px}
  .brand-copy p{font-size:.93rem}
}

@media (min-width:821px) and (max-height:720px){
  .auth-brand-panel{padding-block:18px}
  .auth-card{padding:18px 22px}
  .tabs{margin-bottom:12px}
  .tab{padding:8px}
  .auth-form{gap:8px}
  .field input,.primary-button,.google-button,.social-auth-button{height:40px;min-height:40px}
  .social-auth-button img{width:18px;height:18px}
  .password-requirements{gap:4px;font-size:.62rem}
  .password-requirements span{padding:4px 6px}
  .brand-copy p{display:none}
  .brand-copy h1{font-size:clamp(2.2rem,4.2vw,3.5rem);margin:8px 0 12px}
}

@media (max-width:820px){
  html,body{height:auto;overflow-x:hidden;overflow-y:auto}
  .auth-layout{height:auto;min-height:100dvh;overflow:visible}
  .auth-form-panel{height:auto;min-height:0;overflow:visible}
  .auth-card{max-height:none;overflow:visible}
}

/* v17 — centralização visual da autenticação */
@media (min-width:821px){
  .auth-brand-panel{
    display:grid;
    grid-template-rows:auto 1fr;
    align-items:start;
  }
  .auth-brand{
    justify-self:center;
  }
  .brand-copy{
    align-self:center;
    justify-self:center;
    width:min(100%,680px);
    text-align:center;
    margin:0;
  }
  .brand-copy p{
    margin-inline:auto;
  }
}

.auth-card .notice{
  text-align:center;
}
.auth-card .divider{
  text-align:center;
}
.auth-card .link-button{
  justify-self:center;
  text-align:center;
}
.password-requirements{
  justify-content:center;
}

@media (max-width:820px){
  .auth-brand-panel{
    text-align:center;
  }
  .auth-brand{
    display:flex;
    width:max-content;
    margin-inline:auto;
  }
  .brand-copy{
    margin-inline:auto;
    text-align:center;
  }
  .brand-copy p{
    margin-inline:auto;
  }
}

/* v18 — logo institucional à esquerda; conteúdo centralizado */
@media (min-width:821px){
  .auth-brand{
    justify-self:start;
    margin-inline:0;
  }
}

@media (max-width:820px){
  .auth-brand{
    margin-inline:0 auto;
    justify-content:flex-start;
  }
}
