.auth-wrap{
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
}
.auth-card{
  width:100%;
  max-width:400px;
  background:var(--tarjeta);
  border:1px solid var(--borde);
  border-radius:20px;
  padding:22px 24px;
}
.auth-logo{ display:flex; justify-content:center; margin-bottom:10px; }
.auth-logo svg{ height:26px; width:auto; }
.auth-card h1{ font-size:20px; text-align:center; color:var(--morado-oscuro); }
.auth-card p.sub{ text-align:center; color:var(--texto-sec); font-size:13px; margin-top:4px; }

.field{ margin-top:12px; }
.field label{ display:block; font-size:12.5px; font-weight:600; margin-bottom:4px; }
.field input{
  width:100%;
  border:1px solid var(--borde);
  border-radius:10px;
  padding:10px 14px;
  font-size:15px;
  font-family:'Poppins', sans-serif;
  background:var(--fondo);
}
.field input:focus{ outline:2px solid var(--morado-suave); border-color:var(--morado); }
.password-input-wrap{ position:relative; }
.password-input-wrap input{ padding-right:44px; }
.password-toggle{
  position:absolute; right:4px; top:50%; transform:translateY(-50%);
  background:none; border:none; padding:8px; color:var(--texto-sec); display:flex;
}

.geo-status{ font-size:11.5px; color:var(--texto-sec); margin-top:8px; text-align:center; min-height:14px; }

.btn-submit{
  width:100%;
  margin-top:16px;
  background:var(--morado);
  color:#fff;
  font-weight:600;
  font-size:15px;
  padding:12px;
  border-radius:12px;
}
.btn-submit:hover{ background:var(--morado-oscuro); }

.auth-alt{ text-align:center; font-size:13px; color:var(--texto-sec); margin-top:14px; }
.auth-alt a{ color:var(--morado); font-weight:600; }

.divider{
  display:flex; align-items:center; gap:12px;
  margin:16px 0; color:var(--texto-sec); font-size:12px;
}
.divider::before, .divider::after{ content:""; flex:1; height:1px; background:var(--borde); }

.btn-social{
  width:100%;
  display:flex; align-items:center; justify-content:center; gap:10px;
  border:1px solid var(--borde);
  background:var(--tarjeta);
  color:var(--texto);
  font-weight:600;
  font-size:14px;
  padding:11px;
  border-radius:12px;
  margin-top:8px;
}
.btn-social:hover{ background:var(--fondo); }
.btn-social svg{ width:18px; height:18px; flex-shrink:0; }

.alert{
  border-radius:10px;
  padding:10px 14px;
  font-size:13px;
  margin-bottom:16px;
}
.alert-error{ background:var(--terracota-suave); color:#8C4A31; }
.alert-success{ background:#E6EFE8; color:#3D5E48; }
