.auth-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:28px 16px; }
.auth-card{ width:100%; max-width:430px; background:var(--panel); border:1px solid var(--line); border-radius:22px; padding:34px 32px; box-shadow:0 18px 40px -26px rgba(102,0,102,.35); }
.auth-brand{ display:flex; align-items:center; gap:10px; font-weight:800; font-size:18px; color:var(--text); text-decoration:none; margin-bottom:22px; }
.auth-brand-icon{ width:32px; height:32px; border-radius:10px; background:linear-gradient(150deg,var(--violet-600),var(--violet-700)); display:flex; align-items:center; justify-content:center; flex:none; }
.auth-brand-icon svg{ width:17px; height:17px; stroke:#fff; }
.auth-card h1{ margin:0 0 6px; font-size:22px; font-weight:700; }
.auth-sub{ margin:0 0 22px; font-size:13.5px; color:var(--muted); }
.campo{ margin-bottom:15px; }
.campo label{ display:block; font-size:13px; font-weight:600; margin-bottom:6px; }
.campo input[type=text], .campo input[type=email], .campo input[type=password]{
  width:100%; border:1px solid var(--line); border-radius:12px; padding:13px 14px; font:inherit; font-size:14px; color:var(--text); background:#fff;
}
.campo input:focus{ outline:none; border-color:var(--violet-400); box-shadow:0 0 0 3px rgba(163,82,158,.18); }
.campo small{ display:block; margin-top:5px; font-size:12px; color:var(--muted); }
.btn-principal{ width:100%; border:none; border-radius:999px; padding:14px; margin-top:4px; background:var(--violet-600); color:#fff; font:inherit; font-weight:700; font-size:14px; cursor:pointer; }
.btn-principal:hover{ background:var(--violet-700); }
.auth-alt{ margin:18px 0 0; text-align:center; font-size:13px; color:var(--muted); }
.auth-alt a{ font-weight:600; }
.auth-aparte{ display:flex; justify-content:flex-end; margin:-6px 0 14px; font-size:12.5px; }
.trampa{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
