/* AURA FARMING — Parte 08
   Ajuste visual final do cadastro, verificação de e-mail, autorização de responsável,
   conta em análise e documento sob solicitação. Sem SQL. */

:root{
  --af-bg-1:#030816;
  --af-bg-2:#071a36;
  --af-card:rgba(4,12,30,.82);
  --af-card-2:rgba(7,18,42,.76);
  --af-line:rgba(107,232,255,.22);
  --af-line-strong:rgba(107,232,255,.55);
  --af-text:#f3f8ff;
  --af-muted:#aabde8;
  --af-cyan:#44e8ff;
  --af-purple:#a96dff;
  --af-pink:#ff4fd8;
  --af-green:#45ffb0;
  --af-yellow:#ffd166;
  --af-danger:#ff4f74;
  --af-radius:26px;
}

body.auth-onboarding-body,
body.aura-onboarding-body{
  background:
    radial-gradient(circle at 12% 6%, rgba(71,232,255,.20), transparent 28%),
    radial-gradient(circle at 88% 12%, rgba(169,109,255,.22), transparent 30%),
    linear-gradient(180deg, #020614 0%, #061327 45%, #040817 100%) !important;
}

body.auth-onboarding-body .auth-page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px 14px 34px;
}

body.auth-onboarding-body .auth-box{
  width:min(100%, 520px);
  border:1px solid rgba(68,232,255,.20);
  border-radius:30px;
  background:linear-gradient(145deg, rgba(3,10,26,.94), rgba(12,8,34,.88));
  box-shadow:0 26px 80px rgba(0,0,0,.46), 0 0 38px rgba(68,232,255,.10);
  overflow:hidden;
}

body.auth-onboarding-body .auth-logo{
  padding:22px 20px 12px;
}

body.auth-onboarding-body .auth-brand-symbol{
  display:block;
  width:76px;
  height:76px;
  margin:0 auto 8px;
  object-fit:contain;
  filter:drop-shadow(0 0 16px rgba(39,213,255,.35)) drop-shadow(0 0 24px rgba(170,76,255,.22));
}

body.auth-onboarding-body .auth-tabs{
  margin:0 18px 16px;
  padding:6px;
  border-radius:999px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.08);
}

body.auth-onboarding-body .auth-tab{
  min-height:44px;
  border-radius:999px;
  font-weight:1000;
}

body.auth-onboarding-body .tab-content{
  padding:0 18px 22px;
}

body.auth-onboarding-body .form-field,
.af-onboarding-field{
  min-height:56px;
  border-radius:20px !important;
  background:rgba(5,16,36,.82) !important;
  border:1px solid rgba(107,232,255,.22) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025), 0 10px 28px rgba(0,0,0,.18) !important;
}

body.auth-onboarding-body .form-field:focus-within,
.af-onboarding-field:focus-within{
  border-color:rgba(68,232,255,.75) !important;
  box-shadow:0 0 0 4px rgba(68,232,255,.10), 0 0 28px rgba(68,232,255,.14) !important;
}

body.auth-onboarding-body .form-input,
body.auth-onboarding-body select.form-input,
.af-onboarding-field input,
.af-onboarding-field select,
.af-onboarding-field textarea{
  font-size:15px;
  font-weight:800;
}

body.auth-onboarding-body .btn,
.af-onboarding .btn,
.af-onboarding-btn{
  min-height:50px;
  border-radius:999px;
  font-weight:1000;
  letter-spacing:.03em;
}

body.auth-onboarding-body .btn-primary,
.af-onboarding .btn-primary,
.af-onboarding-btn-primary{
  background:linear-gradient(135deg, var(--af-cyan), var(--af-purple)) !important;
  color:#041022 !important;
  box-shadow:0 14px 34px rgba(68,232,255,.20), 0 0 26px rgba(169,109,255,.16) !important;
}

/* Data de nascimento: um único shape visual, sempre na mesma linha. */
.auth-birthdate-group{width:100%;}
.auth-birthdate-group .birthdate-one-shape{
  display:flex !important;
  align-items:center !important;
  width:100% !important;
  height:58px !important;
  min-height:58px !important;
  padding:0 12px !important;
  border:1px solid rgba(68,232,255,.32) !important;
  border-radius:21px !important;
  background:rgba(5,16,36,.86) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025), 0 12px 30px rgba(0,0,0,.18) !important;
  overflow:hidden !important;
  gap:4px !important;
  white-space:nowrap !important;
}
.auth-birthdate-group .birthdate-main-icon{
  flex:0 0 auto !important;
  font-size:18px !important;
  opacity:.86 !important;
  margin-right:2px !important;
  filter:drop-shadow(0 0 8px rgba(68,232,255,.35)) !important;
}
.auth-birthdate-group .birthdate-part{
  flex:1 1 0 !important;
  display:block !important;
  width:auto !important;
  min-width:0 !important;
  height:56px !important;
  padding:0 0 !important;
  margin:0 !important;
  border:0 !important;
  outline:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#fff !important;
  font-size:16px !important;
  font-weight:1000 !important;
  line-height:56px !important;
  text-align:center !important;
  text-align-last:center !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}
.auth-birthdate-group .birthdate-day{max-width:54px !important;}
.auth-birthdate-group .birthdate-month{max-width:66px !important;}
.auth-birthdate-group .birthdate-year{max-width:76px !important;}
.auth-birthdate-group .birthdate-part option{color:#111;background:#fff;}
.auth-birthdate-group .birthdate-separator{
  flex:0 0 auto !important;
  color:rgba(218,235,255,.58) !important;
  font-weight:1000 !important;
  font-size:20px !important;
  line-height:1 !important;
  padding:0 1px !important;
}
.auth-birthdate-group.has-error .birthdate-one-shape{
  border-color:rgba(255,79,116,.85) !important;
  box-shadow:0 0 0 3px rgba(255,79,116,.12), 0 0 18px rgba(255,79,116,.14) !important;
}
.auth-birthdate-group .age-form-help{
  display:block;
  margin-top:7px;
  color:rgba(202,220,255,.72);
  font-size:12px;
}

@media(max-width:380px){
  .auth-birthdate-group .birthdate-one-shape{height:54px!important;min-height:54px!important;padding:0 9px!important;gap:2px!important;border-radius:19px!important;}
  .auth-birthdate-group .birthdate-main-icon{font-size:16px!important;margin-right:0!important;}
  .auth-birthdate-group .birthdate-part{height:52px!important;line-height:52px!important;font-size:14px!important;}
  .auth-birthdate-group .birthdate-day{max-width:46px!important;}
  .auth-birthdate-group .birthdate-month{max-width:58px!important;}
  .auth-birthdate-group .birthdate-year{max-width:67px!important;}
  .auth-birthdate-group .birthdate-separator{font-size:17px!important;padding:0!important;}
}

/* Shell visual das telas de onboarding. */
.af-onboarding{
  width:min(100%, 940px);
  margin:0 auto;
  padding:18px 14px 110px;
  color:var(--af-text);
}
.af-onboarding-narrow{width:min(100%, 720px);}
.af-onboarding-hero{
  position:relative;
  overflow:hidden;
  border:1px solid var(--af-line);
  border-radius:30px;
  padding:24px;
  background:linear-gradient(145deg, rgba(4,13,31,.94), rgba(14,8,38,.88));
  box-shadow:0 22px 72px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,255,255,.04);
}
.af-onboarding-hero:before{
  content:"";
  position:absolute;
  inset:-50%;
  background:radial-gradient(circle at 22% 18%, rgba(68,232,255,.23), transparent 35%), radial-gradient(circle at 88% 0%, rgba(169,109,255,.20), transparent 40%);
  pointer-events:none;
}
.af-onboarding-hero>*{position:relative;}
.af-onboarding-kicker{
  margin:0 0 9px;
  color:var(--af-cyan);
  font-size:12px;
  font-weight:1000;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.af-onboarding-hero h1{
  margin:0;
  font-size:clamp(27px, 7vw, 48px);
  line-height:1;
  font-weight:1000;
  letter-spacing:-.04em;
}
.af-onboarding-hero p{
  margin:12px 0 0;
  color:var(--af-muted);
  line-height:1.55;
  font-weight:650;
}
.af-onboarding-steps{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}
.af-onboarding-step{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:48px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:17px;
  background:rgba(255,255,255,.045);
  color:#dceaff;
  font-size:12px;
  font-weight:900;
}
.af-onboarding-step b{
  display:grid;
  place-items:center;
  flex:0 0 24px;
  width:24px;
  height:24px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--af-cyan), var(--af-purple));
  color:#031024;
  font-size:12px;
}
.af-onboarding-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
  margin-top:16px;
}
.af-onboarding-card{
  border:1px solid rgba(255,255,255,.10);
  border-radius:26px;
  background:var(--af-card);
  padding:18px;
  box-shadow:0 14px 40px rgba(0,0,0,.24);
}
.af-onboarding-card h2,
.af-onboarding-card h3{margin:0 0 10px;color:#fff;line-height:1.12;}
.af-onboarding-card p{margin:0 0 12px;color:var(--af-muted);line-height:1.52;}
.af-onboarding-status{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-top:16px;
  padding:16px;
  border-radius:22px;
  background:rgba(68,232,255,.08);
  border:1px solid rgba(68,232,255,.20);
}
.af-onboarding-status>span{
  display:grid;
  place-items:center;
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:16px;
  background:rgba(68,232,255,.12);
  font-size:22px;
}
.af-onboarding-status strong{display:block;color:#fff;margin-bottom:3px;}
.af-onboarding-status small{display:block;color:var(--af-muted);line-height:1.45;}
.af-onboarding-status.is-ok{background:rgba(69,255,176,.09);border-color:rgba(69,255,176,.28);}
.af-onboarding-status.is-wait{background:rgba(255,209,102,.10);border-color:rgba(255,209,102,.30);}
.af-onboarding-status.is-danger{background:rgba(255,79,116,.10);border-color:rgba(255,79,116,.30);}
.af-onboarding-info-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}
.af-onboarding-info-grid>div{
  min-width:0;
  padding:13px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  background:rgba(255,255,255,.045);
}
.af-onboarding-info-grid small{
  display:block;
  color:rgba(202,220,255,.70);
  font-size:11px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.10em;
  margin-bottom:5px;
}
.af-onboarding-info-grid b{
  display:block;
  color:#fff;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.af-onboarding-form{
  margin-top:16px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:26px;
  background:rgba(3,10,26,.76);
  padding:18px;
  box-shadow:0 14px 42px rgba(0,0,0,.24);
}
.af-onboarding-form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
}
.af-onboarding-form label,
.af-onboarding-label{
  display:block;
  margin:0 0 7px;
  color:#dceaff;
  font-size:12px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.af-onboarding-form input,
.af-onboarding-form select,
.af-onboarding-form textarea{
  width:100%;
  min-height:54px;
  border:1px solid rgba(68,232,255,.23);
  border-radius:18px;
  background:rgba(5,16,36,.86);
  color:#fff;
  padding:0 14px;
  outline:none;
  font-weight:850;
}
.af-onboarding-form textarea{min-height:110px;padding:14px;resize:vertical;}
.af-onboarding-form input[type="checkbox"]{
  width:20px;
  min-height:20px;
  height:20px;
  padding:0;
  flex:0 0 auto;
}
.af-onboarding-form input:focus,
.af-onboarding-form select:focus,
.af-onboarding-form textarea:focus{
  border-color:rgba(68,232,255,.75);
  box-shadow:0 0 0 4px rgba(68,232,255,.10);
}
.af-onboarding-term{
  display:flex;
  gap:12px;
  margin-top:14px;
  padding:14px;
  border-radius:18px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.08);
  color:#d7e6ff;
  line-height:1.45;
}
.af-onboarding-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:16px;
}
.af-onboarding-actions .btn,
.af-onboarding-actions .af-onboarding-btn{justify-content:center;}
.af-onboarding-note{
  margin-top:12px;
  color:rgba(202,220,255,.72);
  font-size:13px;
  line-height:1.5;
}

/* Compatibilidade com nomes das páginas já existentes. */
.age-gate-shell{width:min(100%,720px);margin:0 auto;padding:18px 14px 110px;}
.age-gate-card{position:relative;overflow:hidden;border:1px solid var(--af-line);border-radius:30px;padding:24px;background:linear-gradient(145deg,rgba(4,13,31,.94),rgba(14,8,38,.88));box-shadow:0 22px 72px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,255,255,.04);}
.age-gate-card:before{content:"";position:absolute;inset:-50%;background:radial-gradient(circle at 20% 16%, rgba(68,232,255,.22), transparent 35%), radial-gradient(circle at 90% 0%, rgba(169,109,255,.19), transparent 40%);pointer-events:none;}
.age-gate-card>*{position:relative;}
.age-gate-logo{display:grid;place-items:center;width:62px;height:62px;border-radius:22px;background:rgba(68,232,255,.12);border:1px solid rgba(68,232,255,.20);font-size:28px;margin-bottom:14px;}
.age-gate-card .eyebrow{margin:0 0 8px;color:var(--af-cyan);font-size:12px;font-weight:1000;letter-spacing:.14em;text-transform:uppercase;}
.age-gate-card h1{margin:0;font-size:clamp(28px,8vw,48px);line-height:1;font-weight:1000;letter-spacing:-.04em;}
.age-gate-lead{color:var(--af-muted);line-height:1.55;margin:12px 0 0;}
.age-status-panel{display:flex;gap:12px;align-items:flex-start;margin:16px 0;padding:16px;border-radius:22px;background:rgba(68,232,255,.08);border:1px solid rgba(68,232,255,.20);}
.age-status-panel>span{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:16px;background:rgba(68,232,255,.12);}
.age-status-panel strong{display:block;color:#fff;margin-bottom:4px;}
.age-status-panel p{margin:0;color:var(--af-muted);line-height:1.45;}
.age-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0;}
.age-info-grid>div{min-width:0;padding:13px;border-radius:18px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);}
.age-info-grid small{display:block;color:rgba(202,220,255,.70);font-size:11px;font-weight:1000;letter-spacing:.10em;text-transform:uppercase;margin-bottom:5px;}
.age-info-grid b{display:block;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.age-gate-form{margin-top:12px;}
.age-lock-note{color:rgba(202,220,255,.72);font-size:13px;line-height:1.5;margin:14px 0;}

.guardian-auth-page{width:min(100%,940px)!important;margin:0 auto!important;padding:18px 14px 110px!important;}
.guardian-auth-hero{border-radius:30px!important;padding:24px!important;}
.guardian-auth-card{border-radius:26px!important;}
.guardian-auth-grid{gap:14px!important;}
.guardian-auth-field input,.guardian-auth-field select{border-radius:18px!important;background:rgba(5,16,36,.86)!important;}
.guardian-auth-term{border-radius:18px!important;}
.document-user-page .doc-hero,
.document-user-page .doc-form-card,
.document-user-page .doc-state{border-radius:26px!important;}
.document-user-page .doc-form input,
.document-user-page .doc-form select{min-height:54px;border-radius:18px!important;background:rgba(5,16,36,.86)!important;}

@media(max-width:680px){
  body.auth-onboarding-body .auth-page{padding:12px 10px 22px;}
  body.auth-onboarding-body .auth-box{border-radius:24px;}
  body.auth-onboarding-body .auth-logo{padding-top:18px;}
  body.auth-onboarding-body .tab-content{padding:0 14px 18px;}
  .af-onboarding,.age-gate-shell,.guardian-auth-page{padding:14px 12px 104px!important;}
  .af-onboarding-hero,.age-gate-card,.guardian-auth-hero{border-radius:24px!important;padding:20px!important;}
  .af-onboarding-grid,.af-onboarding-form-grid,.guardian-auth-grid{grid-template-columns:1fr!important;}
  .af-onboarding-steps{grid-template-columns:1fr!important;}
  .af-onboarding-info-grid,.age-info-grid{grid-template-columns:1fr!important;}
  .af-onboarding-actions .btn,.af-onboarding-actions .af-onboarding-btn,.guardian-auth-actions .btn{width:100%;}
  .age-gate-form .btn{width:100%;}
}

@media (max-width: 560px){
  body.auth-onboarding-body .auth-brand-symbol{width:66px;height:66px;margin-bottom:6px;}
}

/* ============================================================
   LOGIN — AJUSTE VISUAL FINAL
   - Um único shape nos campos de usuário/senha.
   - Remove a área vazia abaixo do login no desktop.
   - Cadastro continua podendo rolar normalmente.
   ============================================================ */

/* O wrapper é o único contorno visual do campo. */
body.auth-onboarding-body .form-field{
  height:56px;
  min-height:56px;
  padding:0;
}

body.auth-onboarding-body .form-field .form-input,
body.auth-onboarding-body .form-field input.form-input,
body.auth-onboarding-body .form-field select.form-input{
  display:block;
  width:100%;
  height:54px;
  min-height:54px;
  margin:0;
  border:0 !important;
  border-radius:19px !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
}

body.auth-onboarding-body .form-field .form-input:focus,
body.auth-onboarding-body .form-field input.form-input:focus,
body.auth-onboarding-body .form-field select.form-input:focus{
  border:0 !important;
  box-shadow:none !important;
}

/* Chrome/Edge autofill: evita o retângulo claro interno. */
body.auth-onboarding-body .form-field input.form-input:-webkit-autofill,
body.auth-onboarding-body .form-field input.form-input:-webkit-autofill:hover,
body.auth-onboarding-body .form-field input.form-input:-webkit-autofill:focus,
body.auth-onboarding-body .form-field input.form-input:-webkit-autofill:active{
  -webkit-text-fill-color:#f3f8ff !important;
  caret-color:#f3f8ff !important;
  -webkit-box-shadow:0 0 0 1000px #08152b inset !important;
  box-shadow:0 0 0 1000px #08152b inset !important;
  transition:background-color 9999s ease-out 0s;
}

/* Somente quando a aba Entrar está aberta: mantém a tela presa ao viewport.
   Se o card crescer por uma mensagem de erro, rola apenas o necessário dentro
   da área da página, sem criar uma faixa vazia depois do formulário. */
@media (min-width:681px){
  body.auth-onboarding-body:has(#tab-login.active){
    height:100dvh;
    min-height:100dvh;
    overflow:hidden;
  }

  body.auth-onboarding-body:has(#tab-login.active) .auth-page{
    height:100dvh;
    min-height:100dvh;
    padding:12px 14px;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:none;
  }
}

/* Compacta levemente o login em notebooks com pouca altura útil. */
@media (min-width:681px) and (max-height:720px){
  body.auth-onboarding-body:has(#tab-login.active) .auth-logo{
    padding-top:12px;
    padding-bottom:8px;
  }

  body.auth-onboarding-body:has(#tab-login.active) .auth-brand-symbol{
    width:64px;
    height:64px;
    margin-bottom:5px;
  }

  body.auth-onboarding-body:has(#tab-login.active) .auth-tabs{
    margin-bottom:12px;
  }

  body.auth-onboarding-body:has(#tab-login.active) .auth-subtitle{
    margin-bottom:16px;
  }

  body.auth-onboarding-body:has(#tab-login.active) .form-group{
    margin-bottom:11px;
  }
}
