/* ============================================================
   Portal RYM — páginas de acceso (login.php, registro.php)
   Diseño "Primero tu correo" (propuesta 5, oct. 2026).
   Se apoya en los tokens de portal-base.css (--bg, --text, --text2,
   --input-bg, --input-border...) para tema claro y oscuro.
   ============================================================ */
.au{--au-link:#7DB3EC;--au-btn:#2F6FB8;--au-btn-h:#3A7FCC;--au-chip:rgba(74,144,217,.14);--au-chip-b:rgba(74,144,217,.35);--au-line:rgba(255,255,255,.09);--au-label:rgba(240,240,246,.72);--au-ph:rgba(240,240,246,.42);--au-err:#F87171;--au-err-bg:rgba(226,75,74,.12);--au-ok:#34D399}
[data-theme="light"] .au{--au-link:#2563A8;--au-btn-h:#285F9E;--au-chip:rgba(74,144,217,.12);--au-line:rgba(30,58,95,.11);--au-label:#4A5675;--au-ph:#7B88AA;--au-err:#B42318;--au-err-bg:rgba(226,75,74,.09);--au-ok:#067647}
/* Llegando desde la Academia (login/registro con redirect a academia.): morado de la Academia */
.au.au-acad{--au-link:#B49EF2;--au-btn:#7B3FBE;--au-btn-h:#9B6FDE;--au-chip:rgba(155,111,222,.14);--au-chip-b:rgba(155,111,222,.4)}
[data-theme="light"] .au.au-acad{--au-link:#6A35A8;--au-btn-h:#6A35A8;--au-chip:rgba(123,63,190,.1);--au-chip-b:rgba(123,63,190,.3)}

html,body{height:100%}
body.au{margin:0;min-height:100%;padding:0 0 env(safe-area-inset-bottom)!important;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
.au *{box-sizing:border-box}
.au [hidden]{display:none!important}

.au-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:16px 20px 20px;max-width:1280px;margin:0 auto}
.au-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px}
.au-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.au-brand img{width:36px;height:36px}
.au-brand span{font-family:Manrope,system-ui,sans-serif;font-size:18px;font-weight:800;letter-spacing:-.01em}
.au-round{width:44px;height:44px;border-radius:50%;border:1px solid var(--au-line);background:var(--input-bg);color:var(--au-label);display:grid;place-items:center;cursor:pointer;font-size:20px;flex-shrink:0;padding:0}
.au-round:hover{color:var(--text)}
.au-slot{width:44px;height:44px;flex-shrink:0}

.au-main{flex:1;display:flex;justify-content:center;align-items:flex-start;padding:28px 0 24px}
.au-col{width:100%;max-width:440px;display:flex;flex-direction:column;gap:20px}
@media(min-width:720px){
  .au-page{padding:24px 32px 28px}
  .au-brand img{width:44px;height:44px}
  .au-brand span{font-size:20px}
  .au-main{align-items:center;padding:24px 0}
  .au-col{max-width:460px}
}

.au-steps{display:flex;gap:6px}
.au-steps span{flex:1;height:4px;border-radius:4px;background:var(--input-border)}
.au-steps span.on{background:#4A90D9}
.au-steplbl{font-size:13px;font-weight:600;color:var(--au-label);margin-top:-10px}
.au-h1{margin:0;font-family:Manrope,system-ui,sans-serif;font-size:30px;line-height:1.15;font-weight:800;letter-spacing:-.02em;text-wrap:balance}
@media(min-width:720px){.au-h1{font-size:36px;letter-spacing:-.025em}}
.au-sub{margin:-8px 0 0;font-size:16px;line-height:1.5;color:var(--au-label)}
.au-sub b{color:var(--text);font-weight:600}

.au-field{display:flex;flex-direction:column;gap:8px}
.au-field>label{font-size:14px;font-weight:600;color:var(--au-label)}
.au-field .au-opt{font-weight:500;opacity:.8}
.au-box{display:flex;align-items:center;gap:10px;height:54px;padding:0 6px 0 16px;border-radius:14px;background:var(--input-bg);border:1px solid var(--input-border);transition:border-color .15s,box-shadow .15s}
.au-box:focus-within{border-color:#4A90D9;box-shadow:0 0 0 3px rgba(74,144,217,.25)}
.au-box>i{font-size:20px;color:var(--au-ph);flex-shrink:0}
.au-box input{flex:1;min-width:0;height:100%;border:0;background:transparent;font:500 16px Inter,system-ui,sans-serif;color:var(--text);outline:none;padding:0}
.au-box input::placeholder{color:var(--au-ph)}
.au-eye{border:0;background:transparent;width:44px;height:44px;border-radius:10px;display:grid;place-items:center;cursor:pointer;color:var(--au-ph);font-size:20px;flex-shrink:0;padding:0}
.au-eye:hover{color:var(--text)}
.au-hint{font-size:13px;color:var(--au-label)}

.au-code{height:64px;padding:0 16px}
.au-code input{font:700 28px/1 'Courier New',ui-monospace,monospace;letter-spacing:.5em;text-align:center;padding-left:.5em}

.au-btn{width:100%;height:56px;border:0;border-radius:14px;background:var(--au-btn);color:#fff;font:700 17px Manrope,system-ui,sans-serif;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:background .15s}
.au-btn:hover:not(:disabled){background:var(--au-btn-h)}
.au-btn:disabled{opacity:.55;cursor:not-allowed}
.au-btn i{font-size:20px}
.au-ghost{width:100%;min-height:52px;border-radius:14px;background:transparent;border:1px solid var(--input-border);color:var(--text);font:600 15px Inter,system-ui,sans-serif;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;text-decoration:none;padding:0 16px}
.au-ghost:hover{border-color:#4A90D9}
.au-ghost:disabled{opacity:.55;cursor:not-allowed}

.au-who{display:flex;align-items:center;gap:12px;padding:6px 6px 6px 8px;border-radius:9999px;background:var(--au-chip);border:1px solid var(--au-chip-b)}
.au-av{width:36px;height:36px;border-radius:50%;background:#2F6FB8;color:#fff;font:800 15px Manrope,system-ui,sans-serif;display:grid;place-items:center;flex-shrink:0;text-transform:uppercase}
.au-who-mail{flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.au-who .au-lnk{min-height:44px;display:flex;align-items:center;padding:0 12px;font-size:14px;border:0;background:none;cursor:pointer}

.au-note{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;background:var(--au-chip);font-size:14px;line-height:1.5;color:var(--au-label)}
.au-note>i{color:#4A90D9;font-size:20px;flex-shrink:0;margin-top:1px}
.au-note b{color:var(--text)}
.au-note .au-lnk{border:0;background:none;padding:0;cursor:pointer;font-size:14px}
.au-gift>i{color:#F5A21A}

.au-err{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:var(--au-err-bg);color:var(--au-err);font-size:14px;line-height:1.45;font-weight:500}
.au-err i{font-size:18px;flex-shrink:0;margin-top:1px}

.au-links{display:flex;flex-direction:column}
.au-row{min-height:44px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;font-size:15px;color:var(--au-label);gap:6px;text-align:center}
.au-sep{height:1px;background:var(--au-line);margin:6px 0}
.au-lnk{color:var(--au-link);font-weight:600;text-decoration:none;font-family:inherit}
.au-lnk:hover{text-decoration:underline}
button.au-lnk{border:0;background:none;padding:0;font-size:inherit;cursor:pointer}

.au-check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:14px;line-height:1.5;color:var(--au-label)}
.au-check input{width:20px;height:20px;margin:1px 0 0;flex-shrink:0;accent-color:#2F6FB8}

.au-legal{font-size:12.5px;color:var(--au-label);text-align:center;line-height:1.6}
.au-legal a{color:var(--au-label)}

.au-spin{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;animation:au-rot .6s linear infinite;flex-shrink:0}
@keyframes au-rot{to{transform:rotate(360deg)}}
.au-step{display:flex;flex-direction:column;gap:20px;animation:au-in .22s ease-out}
@keyframes au-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.au-step{animation:none}.au-spin{animation-duration:1.5s}}

.au button:focus-visible,.au a:focus-visible,.au input[type=checkbox]:focus-visible{outline:2px solid #4A90D9;outline-offset:3px}
