/* ═══════════════════════════════════════════════════════════
   APEX LOGIN — Página de acceso al campus
   Split panel: izquierdo decorativo + derecho con formulario
   ═══════════════════════════════════════════════════════════ */

html,body{height:100%;font-family:var(--font-body)}
body.apex-login-page{
  background:#060f14;color:var(--text);
  display:flex;align-items:stretch;min-height:100vh;overflow:hidden;
}

/* ── Panel izquierdo decorativo ── */
.left-panel{
  flex:1;position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:48px;
  background:linear-gradient(160deg,#0d2530 0%,#060f14 100%);
  border-right:1px solid var(--border);
}
.left-panel::before{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:radial-gradient(ellipse at 30% 60%,black 30%,transparent 75%);
}
.left-panel::after{
  content:'';position:absolute;
  top:-80px;right:-80px;width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,255,0,.08) 0%,transparent 70%);
  pointer-events:none;
}
.left-content{position:relative;z-index:2}

/* Lockup logo */
.left-logo{display:inline-flex;align-items:center;gap:0;margin-bottom:40px}
.left-logo-apex{font-family:var(--font-display);font-weight:900;font-size:28px;line-height:1;letter-spacing:.01em;color:var(--text);display:inline-flex;align-items:center}
.left-logo-apex .lx{color:var(--accent)}
.left-logo-academy-wrap{display:flex;flex-direction:column;justify-content:center;padding-left:8px;border-left:2px solid var(--accent);margin-left:8px;height:22px}
.left-logo-academy{font-family:var(--font-display);font-weight:600;font-size:10px;letter-spacing:.22em;color:var(--gray);line-height:1;text-transform:uppercase}

.left-headline{font-family:var(--font-display);font-size:clamp(42px,5vw,64px);font-weight:900;line-height:.92;letter-spacing:-.01em;color:var(--text);margin-bottom:20px}
.left-headline .hl{color:var(--accent)}
.left-desc{font-size:14px;color:var(--gray);line-height:1.7;max-width:380px;margin-bottom:32px}

/* Ticker */
.left-ticker{overflow:hidden;height:28px;display:flex;align-items:center;background:rgba(6,15,20,.6);border:1px solid var(--border);border-radius:4px}
.lt-label{flex-shrink:0;padding:0 12px;border-right:1px solid var(--border);font-family:var(--font-mono);font-size:8px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:5px;height:100%;background:rgba(6,15,20,.8)}
.lt-dot{width:4px;height:4px;border-radius:50%;background:var(--accent);animation:pulse 1.8s infinite}
.lt-track{display:flex;animation:tickerMove 28s linear infinite;white-space:nowrap}
.lt-item{font-family:var(--font-mono);font-size:9px;padding:0 16px;border-right:1px solid var(--border);display:flex;align-items:center;gap:6px}
.lt-s{color:var(--text);font-weight:600}.lt-p{color:var(--gray)}.lt-u{color:var(--accent)}.lt-d{color:var(--red)}

/* Testimonial */
.left-testimonial{margin-top:24px;padding:16px 20px;background:rgba(13,37,48,.6);border:1px solid var(--border);border-radius:6px;border-left:2px solid var(--accent)}
.lt-text{font-size:13px;color:var(--gray);line-height:1.6;font-style:italic;margin-bottom:8px}
.lt-author{display:flex;align-items:center;gap:8px}
.lt-av{width:24px;height:24px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:10px;font-weight:800;color:var(--accent-t)}
.lt-name{font-family:var(--font-mono);font-size:9px;color:var(--gray2);letter-spacing:.06em}

/* Isotipo grande decorativo */
.left-iso-big{
  position:absolute;bottom:48px;right:48px;z-index:3;
  width:180px;height:180px;border-radius:20px;
  background:rgba(17,44,56,.5);border:1px solid var(--border2);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:900;
  font-size:120px;line-height:1;color:rgba(232,240,240,.06);letter-spacing:-.02em;
  box-shadow:0 20px 60px rgba(0,0,0,.3),0 0 80px rgba(200,255,0,.03);
  animation:isoFloat 5s ease-in-out infinite;
  pointer-events:none;backdrop-filter:blur(8px);
}
.left-iso-big .lx{color:rgba(200,255,0,.12)}
.left-iso-big::before{
  content:'';position:absolute;inset:-1px;border-radius:20px;
  background:linear-gradient(135deg,rgba(200,255,0,.12) 0%,transparent 40%,transparent 60%,rgba(200,255,0,.06) 100%);
  z-index:-1;padding:1px;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
}

/* ── Panel derecho (formulario) ── */
.right-panel{width:440px;flex-shrink:0;background:#060f14;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 40px;position:relative}
.form-wrap{width:100%;max-width:360px;animation:fadeIn .5s ease both}
.form-header{margin-bottom:36px;text-align:left}
.form-title{font-family:var(--font-display);font-size:36px;font-weight:900;color:var(--text);letter-spacing:-.01em;margin-bottom:6px}
.form-subtitle{font-size:13px;color:var(--gray)}

/* Campos */
.field{margin-bottom:16px}
.field-label{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gray2);margin-bottom:7px;display:block}
.field-input-wrap{position:relative}
.field-input{width:100%;height:46px;padding:0 14px;background:var(--bg2);border:1px solid var(--border2);border-radius:4px;font-family:var(--font-body);font-size:14px;color:var(--text);outline:none;transition:border-color .2s,background .2s}
.field-input::placeholder{color:var(--gray2)}
.field-input:focus{border-color:var(--accent-bd);background:var(--bg3)}
.field-input.has-icon{padding-right:42px}

/* Ojo de contraseña */
.field-eye{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--gray2);cursor:pointer;transition:color .15s;user-select:none;background:none;border:none;padding:0;display:flex;align-items:center}
.field-eye:hover{color:var(--gray)}

/* Links */
.forgot-row{display:flex;justify-content:flex-end;margin-top:-8px;margin-bottom:20px}
.forgot-link{font-family:var(--font-mono);font-size:10px;color:var(--accent);letter-spacing:.04em;opacity:.7;transition:opacity .15s,background .15s,padding .15s;text-decoration:none;padding:3px 6px;border-radius:2px}
.forgot-link:hover{opacity:1;background:var(--accent-bg)}
.remember-row{display:flex;align-items:center;gap:8px;margin-bottom:20px;color:var(--gray);font-size:12px;cursor:pointer}
.remember-row input{accent-color:var(--accent);width:14px;height:14px;cursor:pointer}

/* Botón principal */
.btn-submit{width:100%;height:48px;background:var(--accent);color:var(--accent-t);font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:filter .15s,transform .1s;position:relative;overflow:hidden}
.btn-submit:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-submit:active{transform:translateY(0)}
.btn-submit::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);background-size:200% 100%;background-position:200% 0;transition:background-position .4s}
.btn-submit:hover::after{background-position:-200% 0}

/* Loading state */
.btn-submit.loading{pointer-events:none;filter:brightness(.8)}
.btn-submit.loading .btn-text{opacity:0}
.btn-submit.loading::before{content:'';position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid rgba(10,30,38,.3);border-top-color:var(--accent-t);animation:spin .8s linear infinite}

/* Divisor */
.form-divider{display:flex;align-items:center;gap:12px;margin:20px 0;font-family:var(--font-mono);font-size:9px;color:var(--gray2);letter-spacing:.08em}
.form-divider::before,.form-divider::after{content:'';flex:1;height:1px;background:var(--border)}

/* Links bajo el formulario */
.form-bottom{text-align:center;margin-top:24px;font-size:13px;color:var(--gray)}
.form-link{color:var(--accent);text-decoration:none;padding:2px 6px;border-radius:2px;transition:background .15s}
.form-link:hover{background:var(--accent-bg)}

/* Errores */
.field-error{font-family:var(--font-mono);font-size:9px;color:#ff5f6b;margin-top:5px;display:none;letter-spacing:.04em}
.field-input.error{border-color:rgba(255,95,107,.4)}
.field-input.error ~ .field-error{display:block}
.form-error{background:rgba(255,95,107,.08);border:1px solid rgba(255,95,107,.18);color:#ffb8be;padding:12px 14px;border-radius:4px;font-size:12px;line-height:1.55;margin-bottom:18px}

/* Footer */
.form-footer{position:absolute;bottom:24px;left:0;right:0;text-align:center;font-family:var(--font-mono);font-size:9px;color:var(--gray2);letter-spacing:.06em}

/* ── Responsive ── */
@media(max-width:1200px){
  .left-iso-big{width:140px;height:140px;font-size:90px;bottom:32px;right:32px;border-radius:16px}
}
@media(max-width:860px){
  .left-panel{display:none}
  .right-panel{width:100%;padding:40px 28px}
}
