:root{
  --auth-bg:#16162e;
  --auth-card:#ffffff;
  --auth-purple:#6c5ce7;
  --auth-purple-2:#8e7bf3;
  --auth-text:#23233b;
  --auth-muted:#7a7a90;
  --auth-input:#f4f4f8;
  --auth-border:#e6e6ef;
  --auth-danger:#e74c3c;
  --auth-success:#27ae60;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:'Inter','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  background:radial-gradient(1200px 800px at 50% -10%, #242448 0%, var(--auth-bg) 55%);
  display:flex;align-items:center;justify-content:center;
  min-height:100vh;padding:24px;color:var(--auth-text);
}
.auth-card{
  background:var(--auth-card);
  width:100%;max-width:460px;
  border-radius:24px;
  padding:44px 40px 32px;
  box-shadow:0 30px 80px rgba(0,0,0,.45);
}
.auth-title{font-size:2rem;font-weight:600;text-align:center;margin:0 0 14px;letter-spacing:-.5px}
.auth-sub{text-align:center;margin:0 0 30px;font-size:.95rem;color:var(--auth-muted)}
.auth-sub a{color:var(--auth-purple);font-weight:600;text-decoration:none}
.auth-sub a:hover{text-decoration:underline}

/* Botones sociales */
.social-row{display:flex;gap:14px;margin-bottom:22px}
.social-btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:10px;
  background:#fff;border:1px solid var(--auth-border);border-radius:12px;
  padding:13px 10px;font-size:.95rem;font-weight:500;color:var(--auth-text);
  text-decoration:none;cursor:pointer;transition:.2s;
}
.social-btn:hover{border-color:var(--auth-purple);box-shadow:0 4px 14px rgba(108,92,231,.15)}
.social-btn svg{width:20px;height:20px}

/* Divisor */
.divider{display:flex;align-items:center;gap:14px;margin:6px 0 26px;color:var(--auth-muted);font-size:.85rem}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--auth-border)}

/* Campos */
.field{margin-bottom:18px}
.field label{display:block;font-size:.9rem;font-weight:500;margin-bottom:8px;color:var(--auth-text)}
.field input{
  width:100%;border:1.5px solid var(--auth-border);background:var(--auth-input);
  border-radius:12px;padding:14px 16px;font-size:.95rem;color:var(--auth-text);
  outline:none;transition:.2s;font-family:inherit;
}
.field input:focus{border-color:var(--auth-purple);background:#fff;box-shadow:0 0 0 4px rgba(108,92,231,.12)}
.field input::placeholder{color:#a9a9bd}
.field .wrap{position:relative}
.field .wrap input{padding-right:48px}
.eye{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;color:var(--auth-muted);padding:4px;
}
.eye:hover{color:var(--auth-purple)}
.eye svg{width:20px;height:20px;display:block}

/* Checkbox */
.check{display:flex;align-items:flex-start;gap:10px;font-size:.87rem;color:var(--auth-muted);margin:4px 0 20px}
.check input{width:17px;height:17px;accent-color:var(--auth-purple);margin-top:2px;flex:none}
.check a{color:var(--auth-purple);text-decoration:none}

/* Boton principal */
.btn-primary{
  width:100%;border:none;border-radius:12px;padding:15px;
  background:linear-gradient(135deg,var(--auth-purple) 0%,var(--auth-purple-2) 100%);
  color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:.2s;
  font-family:inherit;
}
.btn-primary:hover{filter:brightness(1.07);box-shadow:0 8px 24px rgba(108,92,231,.35)}
.btn-primary:active{transform:scale(.985)}

/* Links */
.auth-links{display:flex;justify-content:space-between;align-items:center;margin-top:16px}
.auth-links a,.auth-foot a{font-size:.85rem;font-weight:600;color:var(--auth-text);text-decoration:none}
.auth-links a:hover,.auth-foot a:hover{color:var(--auth-purple)}
.auth-foot{text-align:center;margin:22px 0 0;font-size:.85rem;font-weight:600}
.auth-foot a{color:var(--auth-text)}

/* Alertas */
.alert{border-radius:12px;padding:12px 16px;font-size:.88rem;margin-bottom:20px;font-weight:500}
.alert-danger{background:#fdecea;color:#c0392b;border:1px solid #f5c6c0}
.alert-success{background:#e9f9f0;color:#1e8449;border:1px solid #bfe8cf}

.auth-logo{text-align:center;margin-bottom:6px;font-size:1.5rem;font-weight:700;letter-spacing:-.5px}
.auth-logo b{color:var(--auth-purple)}

@media(max-width:520px){
  .auth-card{padding:34px 24px 26px}
  .auth-title{font-size:1.7rem}
  .social-row{flex-direction:column}
}
