
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
:root {
  color-scheme: light;
  --ink:#14161F; --ink-2:#3A3F4B; --muted:#7B8194; --placeholder:#9CA1AE; --icon:#4B5060;
  --paper:#FFFFFF; --paper-warm:#FBFAF7; --line:#E8E5DE; --line-soft:#F0EEE9;
  --gold-1:#F8E6AE; --gold-2:#E9C877; --gold-3:#CF9F57; --gold-ink:#9A6F22;
  --radius-pill:999px;
  --font:'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ease:cubic-bezier(0.22, 1, 0.36, 1);
}
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body { min-height:100vh; min-height:100dvh; font-family:var(--font); color:var(--ink); background:var(--paper); display:flex; justify-content:center; -webkit-font-smoothing:antialiased; }
.bg-waves { position:fixed; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.auth-card { position:relative; z-index:1; width:100%; max-width:520px; display:flex; flex-direction:column; padding:max(28px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom)); animation:rise .55s var(--ease) both; }
@keyframes rise { from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);} }
@media (min-width:600px) {
  body { padding:40px 20px; }
  .auth-card { margin:auto; padding:44px 40px 30px; background:rgba(255,255,255,0.8); border:1px solid var(--line-soft); border-radius:32px; box-shadow:0 40px 90px -50px rgba(20,22,31,0.22); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
}
.logo-box { text-align:center; margin-bottom:22px; }
.logo-box img { width:150px; max-width:60%; height:auto; }   /* el logo nuevo trae su propio contorno: se ve sobre fondo claro */
.flash-msg { display:flex; gap:10px; padding:13px 16px; border-radius:18px; font-size:14px; font-weight:500; margin:6px 0; line-height:1.5; color:var(--ink-2); border:1px solid var(--line); background:var(--paper-warm); }
.flash-msg.success { background:#EFF9F3; border-color:#CDEBD9; color:#1E5B3A; }
.flash-msg.error { background:#FDF1F0; border-color:#F5D0CC; color:#8A2C25; }

.form-title { font-size:clamp(28px, 8.4vw, 34px); font-weight:700; line-height:1.12; letter-spacing:-0.03em; margin-bottom:8px; }
.form-sub { font-size:16px; color:var(--muted); margin-bottom:26px; line-height:1.5; }
.inp-wrap { position:relative; margin-bottom:14px; }
.inp-wrap .icon { position:absolute; left:20px; top:50%; transform:translateY(-50%); color:var(--icon); pointer-events:none; line-height:0; }
.inp-wrap .icon svg { width:20px; height:20px; }
.inp-wrap:focus-within .icon { color:var(--gold-ink); }
.eye-btn { position:absolute; right:10px; top:50%; transform:translateY(-50%); width:40px; height:40px; color:var(--icon); cursor:pointer; background:none; border:none; display:flex; align-items:center; justify-content:center; border-radius:50%; line-height:0; }
.eye-btn svg { width:20px; height:20px; }
.inp { width:100%; height:58px; padding:0 54px; border-radius:var(--radius-pill); border:1px solid var(--line); background:var(--paper); color:var(--ink); font:500 16px var(--font); outline:none; box-shadow:0 1px 2px rgba(20,22,31,0.03); transition:border-color .2s, box-shadow .2s; -webkit-appearance:none; appearance:none; }
.inp::placeholder { color:var(--placeholder); font-weight:400; }
.inp:focus { border-color:var(--gold-3); box-shadow:0 0 0 4px rgba(207,159,87,0.16); }
.strength-bar { height:4px; background:#EEECE7; border-radius:4px; margin:-2px 10px 18px; overflow:hidden; }
.strength-fill { height:100%; border-radius:4px; width:0; transition:width .35s, background .35s; }
.checkbox-row { display:flex; align-items:flex-start; gap:12px; font-size:14px; color:#5B6070; margin-bottom:20px; line-height:1.55; }
.checkbox-row input { width:20px; height:20px; margin-top:1px; accent-color:var(--gold-3); flex-shrink:0; }
.link-gold { font-weight:600; color:var(--gold-ink); text-decoration:underline; text-decoration-color:rgba(154,111,34,0.35); text-underline-offset:3px; }
.btn-gold { width:100%; height:58px; padding:0 24px; border-radius:var(--radius-pill); border:none; background:linear-gradient(100deg,var(--gold-1) 0%,var(--gold-2) 48%,var(--gold-3) 100%); color:#1B1408; font:700 17px var(--font); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:10px; margin-top:6px; text-decoration:none; box-shadow:0 12px 24px -14px rgba(207,159,87,0.85), inset 0 1px 0 rgba(255,255,255,0.55); transition:transform .15s, filter .2s; }
.btn-gold:hover { filter:brightness(1.03); transform:translateY(-1px); }
.btn-gold.is-loading { pointer-events:none; opacity:.8; }
.btn-line { width:100%; height:54px; border-radius:var(--radius-pill); border:1px solid var(--line); background:var(--paper); color:var(--ink); font:600 16px var(--font); display:flex; align-items:center; justify-content:center; text-decoration:none; margin-top:12px; }
.btn-line:hover { background:var(--paper-warm); }
.nota { text-align:center; font-size:14px; color:var(--muted); margin-top:18px; line-height:1.6; }

.tabs { display:flex; gap:6px; padding:5px; border-radius:var(--radius-pill); background:var(--paper-warm); border:1px solid var(--line); margin-bottom:22px; }
.tab { flex:1; height:44px; border:none; border-radius:var(--radius-pill); background:transparent; font:600 15px var(--font); color:var(--muted); cursor:pointer; transition:background .2s, color .2s; }
.tab.activa { background:linear-gradient(100deg,var(--gold-1),var(--gold-2)); color:#1B1408; }
.listo { text-align:center; padding:8px 0 4px; }
.listo .check { width:64px; height:64px; margin:0 auto 14px; border-radius:50%; background:linear-gradient(135deg,var(--gold-1),var(--gold-3)); display:flex; align-items:center; justify-content:center; color:#1B1408; }
.listo .check svg { width:30px; height:30px; }

/* ─── Información debajo del formulario ─── */
.info { margin-top:44px; border-top:1px solid var(--line); padding-top:34px; }
.sec { margin-bottom:34px; }
.eyebrow { font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-ink); margin-bottom:8px; }
.sec h2 { font-size:24px; font-weight:700; letter-spacing:-0.02em; line-height:1.2; margin-bottom:8px; }
.sec > p { font-size:15px; color:#5B6070; line-height:1.65; margin-bottom:16px; }
.grid { display:grid; gap:10px; }
.item { display:flex; gap:14px; align-items:flex-start; padding:14px 16px; border-radius:20px; background:var(--paper); border:1px solid var(--line); }
.item .ico { width:38px; height:38px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--gold-1),var(--gold-2)); color:#1B1408; }
.item .ico svg { width:19px; height:19px; }
.item h3 { font-size:15.5px; font-weight:700; margin-bottom:2px; letter-spacing:-0.01em; }
.item p { font-size:13.5px; color:#5B6070; line-height:1.55; }
.cta { text-align:center; padding:26px 20px; border-radius:26px; background:var(--paper-warm); border:1px solid var(--line); }
.cta h2 { font-size:22px; margin-bottom:6px; }
.cta p { font-size:14.5px; color:#5B6070; margin-bottom:14px; line-height:1.6; }

.card-footer { padding-top:30px; text-align:center; }
.footer-text { font-size:12.5px; color:#9BA0AD; line-height:1.7; }
.footer-text a, .legal-links a { color:#7B8194; text-decoration:underline; text-decoration-color:#D8D4CA; text-underline-offset:3px; }
.legal-links { display:flex; flex-wrap:wrap; justify-content:center; gap:4px 16px; margin-top:12px; font-size:12px; color:#9BA0AD; }
/* ─── Separador + Google ─── */
.divider { display:flex; align-items:center; gap:16px; margin:24px 0 18px; }
.divider span { flex:1; height:1px; background:var(--line); }
.divider p { font-size:14px; color:var(--muted); white-space:nowrap; }
.btn-social { width:100%; height:56px; padding:0 20px; border-radius:var(--radius-pill); border:1px solid var(--line); background:var(--paper); color:var(--ink); font:600 16px var(--font); cursor:pointer; transition:background .2s, border-color .2s; display:flex; align-items:center; justify-content:center; gap:12px; box-shadow:0 1px 2px rgba(20,22,31,0.03); -webkit-tap-highlight-color:transparent; }
.btn-social svg { width:20px; height:20px; }
.btn-social:hover { background:var(--paper-warm); border-color:#DAD6CC; }
.btn-social:disabled { opacity:.6; cursor:default; }
.legal-mini { text-align:center; font-size:12.5px; color:#9BA0AD; line-height:1.6; margin-top:12px; }
.legal-mini a { color:#7B8194; text-decoration:underline; text-underline-offset:3px; }
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } html { scroll-behavior:auto; } }
