/* =========================================================
   V61.42.0 — ACCESOS CODELAB
   Login unificado premium + móvil.
   - Acceso institucional, modal general y cambio obligatorio de PIN.
   - Una sola familia visual, sin cajas acumuladas ni sombras.
   - Foco único, contraseña visible, responsive real.
   ========================================================= */

:root{
  --auth-ink-v61420:#0c1c38;
  --auth-text-v61420:#344660;
  --auth-muted-v61420:#718096;
  --auth-line-v61420:#dbe4ee;
  --auth-line-strong-v61420:#c8d5e3;
  --auth-soft-v61420:#f6f9fc;
  --auth-blue-v61420:#0f5fcf;
  --auth-blue-dark-v61420:#0a4eae;
  --auth-blue-soft-v61420:#eef5ff;
  --auth-green-v61420:#0c9367;
  --auth-red-v61420:#c33a32;
}

html:has(.nxl-auth-page-v61420),
body.layout-auth:has(.nxl-auth-page-v61420),
body:has(.nxl-auth-page-v61420),
body.layout-auth:has(.nxl-login-modal-v61420.is-open){
  min-height:100%!important;
  height:auto!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  background:#f7f9fc!important;
}

body.layout-auth:has(.nxl-auth-page-v61420) #app,
#app.layout-auth:has(.nxl-auth-page-v61420),
body:has(.nxl-auth-page-v61420) #app{
  display:block!important;
  width:100%!important;
  min-height:100svh!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  background:#f7f9fc!important;
}

.nxl-auth-page-v61420,
.nxl-auth-page-v61420 *,
.nxl-login-modal-v61420,
.nxl-login-modal-v61420 *{
  box-sizing:border-box!important;
  box-shadow:none!important;
  text-shadow:none!important;
}

/* =============================
   PÁGINA DE ACCESO
   ============================= */
.nxl-auth-page-v61420{
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(430px,.92fr)!important;
  width:100%!important;
  min-height:100svh!important;
  margin:0!important;
  padding:0!important;
  background:#f7f9fc!important;
  color:var(--auth-ink-v61420)!important;
  font-family:inherit!important;
}

.nxl-auth-visual-v61420{
  position:relative!important;
  isolation:isolate!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  min-width:0!important;
  min-height:100svh!important;
  padding:clamp(28px,4vw,58px)!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 18% 14%,rgba(79,163,255,.32),transparent 31%),
    radial-gradient(circle at 82% 86%,rgba(21,111,223,.30),transparent 36%),
    linear-gradient(145deg,#082554 0%,#0d4f9e 54%,#0c65bf 100%)!important;
  color:#fff!important;
}

.nxl-auth-visual-v61420::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:-2!important;
  background:
    linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px)!important;
  background-size:54px 54px!important;
  mask-image:linear-gradient(135deg,#000,transparent 86%)!important;
}

.nxl-auth-visual-v61420::after{
  content:""!important;
  position:absolute!important;
  width:min(58vw,680px)!important;
  height:min(58vw,680px)!important;
  right:-24%!important;
  bottom:-33%!important;
  z-index:-1!important;
  border:1px solid rgba(255,255,255,.15)!important;
  border-radius:50%!important;
}

.nxl-auth-brand-chip-v61420{
  display:inline-flex!important;
  align-items:center!important;
  align-self:flex-start!important;
  height:58px!important;
  padding:0 18px!important;
  border:1px solid rgba(255,255,255,.34)!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.96)!important;
  text-decoration:none!important;
}

.nxl-auth-brand-chip-v61420 img{
  display:block!important;
  width:auto!important;
  height:38px!important;
  max-width:176px!important;
  object-fit:contain!important;
}

.nxl-auth-visual-copy-v61420{
  width:min(100%,640px)!important;
  margin:auto 0!important;
  padding:42px 0!important;
}

.nxl-auth-visual-copy-v61420 > span{
  display:inline-flex!important;
  align-items:center!important;
  min-height:30px!important;
  margin:0 0 18px!important;
  padding:0 11px!important;
  border:1px solid rgba(255,255,255,.25)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.08)!important;
  color:#dcecff!important;
  font-size:.73rem!important;
  line-height:1!important;
  font-weight:720!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
}

.nxl-auth-visual-copy-v61420 h2{
  max-width:620px!important;
  margin:0!important;
  color:#fff!important;
  font-size:clamp(2.15rem,4vw,4.6rem)!important;
  line-height:.98!important;
  font-weight:820!important;
  letter-spacing:-.058em!important;
}

.nxl-auth-visual-copy-v61420 p{
  max-width:560px!important;
  margin:22px 0 0!important;
  color:#d8e8fb!important;
  font-size:clamp(.98rem,1.35vw,1.18rem)!important;
  line-height:1.65!important;
  font-weight:520!important;
}

.nxl-auth-code-lines-v61420{
  display:flex!important;
  align-items:center!important;
  gap:22px!important;
  color:rgba(255,255,255,.38)!important;
  font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace!important;
  font-size:.82rem!important;
  font-weight:650!important;
  letter-spacing:.01em!important;
}

.nxl-auth-code-lines-v61420 span:first-child,
.nxl-auth-code-lines-v61420 span:nth-child(2){
  font-size:1.35rem!important;
  font-weight:800!important;
}

.nxl-auth-panel-v61420{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:0!important;
  min-height:100svh!important;
  padding:clamp(28px,5vw,72px)!important;
  background:#fff!important;
}

.nxl-auth-card-v61420{
  width:min(100%,470px)!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}

.nxl-auth-mobile-brand-v61420{
  display:none!important;
  width:max-content!important;
  margin:0 0 28px!important;
  text-decoration:none!important;
}

.nxl-auth-mobile-brand-v61420 img{
  display:block!important;
  width:auto!important;
  height:40px!important;
  max-width:168px!important;
}

.nxl-auth-school-v61420{
  display:grid!important;
  grid-template-columns:76px minmax(0,1fr)!important;
  align-items:center!important;
  gap:16px!important;
  margin:0 0 20px!important;
}

.nxl-auth-school-logo-v61420{
  display:grid!important;
  place-items:center!important;
  width:76px!important;
  height:76px!important;
  min-width:76px!important;
  overflow:hidden!important;
  border:1px solid var(--auth-line-v61420)!important;
  border-radius:20px!important;
  background:#f9fbfd!important;
  color:var(--auth-blue-v61420)!important;
  font-size:1.12rem!important;
  font-weight:820!important;
}

.nxl-auth-school-logo-v61420 img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  padding:8px!important;
  object-fit:contain!important;
}

.nxl-auth-school-v61420 span,
.nxl-auth-eyebrow-v61420{
  display:block!important;
  margin:0 0 7px!important;
  color:var(--auth-blue-v61420)!important;
  font-size:.72rem!important;
  line-height:1!important;
  font-weight:750!important;
  letter-spacing:.07em!important;
  text-transform:uppercase!important;
}

.nxl-auth-school-v61420 h1,
.nxl-auth-card-v61420 > h1{
  margin:0!important;
  color:var(--auth-ink-v61420)!important;
  font-size:clamp(1.65rem,2.35vw,2.35rem)!important;
  line-height:1.06!important;
  font-weight:820!important;
  letter-spacing:-.045em!important;
  overflow-wrap:anywhere!important;
}

.nxl-auth-intro-v61420{
  margin:0 0 26px!important;
  color:var(--auth-muted-v61420)!important;
  font-size:.94rem!important;
  line-height:1.55!important;
  font-weight:540!important;
}

/* =============================
   FORMULARIOS UNIFICADOS
   ============================= */
.nxl-auth-form-v61420,
.nxl-login-form-v615.nxl-auth-form-v61420{
  display:grid!important;
  gap:16px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}

.nxl-auth-autofill-trap-v61420{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

.nxl-auth-field-v61420{
  display:grid!important;
  gap:8px!important;
  margin:0!important;
}

.nxl-auth-field-v61420 > span,
.nxl-login-form-v615.nxl-auth-form-v61420 label > span{
  display:block!important;
  margin:0!important;
  color:var(--auth-text-v61420)!important;
  font-size:.79rem!important;
  line-height:1!important;
  font-weight:720!important;
  letter-spacing:-.005em!important;
  text-transform:none!important;
}

.nxl-auth-input-wrap-v61420{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-height:50px!important;
  border:1px solid var(--auth-line-v61420)!important;
  border-radius:13px!important;
  background:#fff!important;
  overflow:hidden!important;
  transition:border-color .16s ease,background .16s ease!important;
}

.nxl-auth-input-wrap-v61420:focus-within{
  border-color:var(--auth-blue-v61420)!important;
  background:#fff!important;
  outline:0!important;
  box-shadow:none!important;
}

.nxl-auth-input-wrap-v61420 input,
.nxl-login-form-v615.nxl-auth-form-v61420 .nxl-auth-input-wrap-v61420 input,
.nxl-login-form-v615.nxl-auth-form-v61420 .nxl-auth-input-wrap-v61420 input:focus,
.nxl-login-form-v615.nxl-auth-form-v61420 .nxl-auth-input-wrap-v61420 input:focus-visible{
  width:100%!important;
  min-width:0!important;
  min-height:48px!important;
  height:48px!important;
  margin:0!important;
  padding:0 14px!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  background:transparent!important;
  color:var(--auth-ink-v61420)!important;
  font-family:inherit!important;
  font-size:.94rem!important;
  line-height:1!important;
  font-weight:570!important;
  box-shadow:none!important;
}

.nxl-auth-input-wrap-v61420 input::placeholder{
  color:#a0adbc!important;
  font-weight:520!important;
  opacity:1!important;
}

.nxl-auth-input-wrap-v61420 input[type="password"],
.nxl-auth-input-wrap-v61420 input[inputmode="numeric"]{
  letter-spacing:.08em!important;
}

.nxl-auth-password-toggle-v61420{
  display:grid!important;
  place-items:center!important;
  flex:0 0 44px!important;
  width:44px!important;
  min-width:44px!important;
  height:48px!important;
  min-height:48px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#7b899c!important;
  cursor:pointer!important;
}

.nxl-auth-password-toggle-v61420:hover,
.nxl-auth-password-toggle-v61420:focus-visible{
  background:#f5f8fb!important;
  color:var(--auth-blue-v61420)!important;
  outline:0!important;
}

.nxl-auth-password-toggle-v61420 svg{
  display:block!important;
  width:19px!important;
  height:19px!important;
}


/* =============================
   CREDENCIAL ÚNICA V61.57.2
   DNI + PIN EN MODAL / DESARROLLADOR + CONTRASEÑA
   ============================= */
.nxl-auth-credential-v61571{
  display:grid!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}

.nxl-auth-credential-panel-v61571{
  display:grid!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}

.nxl-auth-credential-panel-v61571[hidden]{
  display:none!important;
}

.nxl-auth-credential-heading-v61571{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
}

.nxl-auth-credential-heading-v61571 label{
  margin:0!important;
  color:var(--auth-text-v61420)!important;
  font-size:.79rem!important;
  line-height:1!important;
  font-weight:720!important;
}

.nxl-auth-credential-heading-v61571 span{
  color:#7f8da0!important;
  font-size:.69rem!important;
  line-height:1!important;
  font-weight:680!important;
}

.nxl-auth-pin-trigger-v61571,
.nxl-login-form-v615.nxl-auth-form-v61420 .nxl-auth-pin-trigger-v61571{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:50px!important;
  height:50px!important;
  margin:0!important;
  padding:0 8px 0 14px!important;
  overflow:hidden!important;
  border:1px solid var(--auth-line-v61420)!important;
  border-radius:13px!important;
  background:#fff!important;
  color:var(--auth-ink-v61420)!important;
  font-family:inherit!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:border-color .16s ease,background .16s ease!important;
}

.nxl-auth-pin-trigger-v61571:hover:not(:disabled),
.nxl-auth-pin-trigger-v61571:focus-visible:not(:disabled){
  border-color:#9dbce4!important;
  background:#fbfdff!important;
  outline:0!important;
}

.nxl-auth-pin-trigger-v61571.is-complete{
  border-color:#9dbce4!important;
  background:#fbfdff!important;
}

.nxl-auth-pin-trigger-slots-v61571{
  display:grid!important;
  grid-template-columns:repeat(6,22px)!important;
  align-items:center!important;
  justify-content:start!important;
  gap:8px!important;
  min-width:0!important;
  pointer-events:none!important;
}

.nxl-auth-pin-trigger-slot-v61571{
  display:grid!important;
  place-items:center!important;
  width:22px!important;
  height:28px!important;
  border:0!important;
  border-bottom:1.5px solid #c9d4e1!important;
  border-radius:0!important;
  color:var(--auth-ink-v61420)!important;
  font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace!important;
  font-size:1rem!important;
  line-height:1!important;
  font-weight:760!important;
}

.nxl-auth-pin-trigger-slot-v61571.is-filled{
  border-bottom-color:var(--auth-blue-v61420)!important;
}

.nxl-auth-pin-trigger-action-v61571{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  width:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  padding:0!important;
  border-left:0!important;
  color:#718096!important;
  white-space:nowrap!important;
  pointer-events:none!important;
}

.nxl-auth-pin-trigger-action-v61571 svg{
  display:block!important;
  width:17px!important;
  height:17px!important;
}


.nxl-auth-pin-trigger-v61571.is-complete .nxl-auth-pin-trigger-action-v61571{
  color:var(--auth-blue-dark-v61420)!important;
}

.nxl-auth-credential-panel-v61571 [data-auth-pin-input]{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  opacity:0!important;
  pointer-events:none!important;
}

.nxl-auth-credential-panel-v61571.is-locked .nxl-auth-credential-heading-v61571,
.nxl-auth-credential-panel-v61571.is-locked .nxl-auth-pin-trigger-v61571{
  opacity:.58!important;
}

.nxl-auth-pin-trigger-v61571:disabled{
  cursor:not-allowed!important;
  background:#f7f9fc!important;
  border-color:#e1e7ef!important;
}

.nxl-auth-pin-trigger-v61571:disabled .nxl-auth-pin-trigger-action-v61571{
  color:#a8b3c1!important;
}

.nxl-auth-credential-v61571.is-busy button,
.nxl-auth-credential-v61571.is-busy input{
  opacity:.58!important;
  cursor:wait!important;
}

/* Modal numérico independiente: no estira ni hace scroll en el acceso principal. */
body.nxl-auth-pin-modal-open-v61571{
  overflow:hidden!important;
}

.nxl-auth-pin-modal-v61571,
.nxl-auth-pin-modal-v61571 *{
  box-sizing:border-box!important;
  box-shadow:none!important;
  text-shadow:none!important;
}

.nxl-auth-pin-modal-v61571{
  position:fixed!important;
  inset:0!important;
  z-index:5100!important;
  display:grid!important;
  place-items:center!important;
  padding:20px!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
  transition:opacity .15s ease,visibility .15s ease!important;
}

.nxl-auth-pin-modal-v61571[hidden]{
  display:none!important;
}

.nxl-auth-pin-modal-v61571.is-open{
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}

.nxl-auth-pin-modal-backdrop-v61571{
  position:absolute!important;
  inset:0!important;
  background:rgba(8,20,42,.58)!important;
  backdrop-filter:blur(5px)!important;
}

.nxl-auth-pin-dialog-v61571{
  position:relative!important;
  z-index:1!important;
  display:grid!important;
  gap:14px!important;
  width:min(100%,348px)!important;
  max-height:calc(100svh - 40px)!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  margin:0!important;
  padding:20px!important;
  border:1px solid #e1e7ee!important;
  border-radius:20px!important;
  background:#fff!important;
  color:var(--auth-ink-v61420)!important;
}

.nxl-auth-pin-dialog-head-v61571{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 34px!important;
  align-items:start!important;
  gap:14px!important;
}

.nxl-auth-pin-dialog-head-v61571 > div{
  min-width:0!important;
}

.nxl-auth-pin-dialog-head-v61571 span{
  display:block!important;
  margin:0 0 5px!important;
  color:var(--auth-blue-v61420)!important;
  font-size:.65rem!important;
  line-height:1!important;
  font-weight:760!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
}

.nxl-auth-pin-dialog-head-v61571 h2{
  margin:0!important;
  color:var(--auth-ink-v61420)!important;
  font-size:1.18rem!important;
  line-height:1.12!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
}

.nxl-auth-pin-dialog-head-v61571 p{
  margin:5px 0 0!important;
  color:var(--auth-muted-v61420)!important;
  font-size:.73rem!important;
  line-height:1.4!important;
  font-weight:540!important;
}

.nxl-auth-pin-dialog-close-v61571{
  display:grid!important;
  place-items:center!important;
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #e1e7ee!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#718096!important;
  font-family:inherit!important;
  font-size:1.15rem!important;
  line-height:1!important;
  font-weight:500!important;
  cursor:pointer!important;
}

.nxl-auth-pin-dialog-close-v61571:hover,
.nxl-auth-pin-dialog-close-v61571:focus-visible{
  background:#f6f8fb!important;
  color:var(--auth-ink-v61420)!important;
  outline:0!important;
}

.nxl-auth-pin-dialog-display-v61571{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 42px!important;
  align-items:center!important;
  min-height:58px!important;
  overflow:hidden!important;
  border:1px solid var(--auth-line-v61420)!important;
  border-radius:13px!important;
  background:#fbfcfe!important;
  transition:border-color .15s ease,background .15s ease!important;
}

.nxl-auth-pin-dialog-display-v61571.is-complete{
  border-color:#9dbce4!important;
  background:#f8fbff!important;
}

.nxl-auth-pin-dialog-slots-v61571{
  display:grid!important;
  grid-template-columns:repeat(6,25px)!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  min-width:0!important;
  padding:0 8px!important;
}

.nxl-auth-pin-dialog-slot-v61571{
  display:grid!important;
  place-items:center!important;
  width:25px!important;
  height:32px!important;
  border:0!important;
  border-bottom:1.5px solid #c9d4e1!important;
  border-radius:0!important;
  color:var(--auth-ink-v61420)!important;
  font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace!important;
  font-size:1.05rem!important;
  line-height:1!important;
  font-weight:760!important;
}

.nxl-auth-pin-dialog-slot-v61571.is-filled{
  border-bottom-color:var(--auth-blue-v61420)!important;
}

.nxl-auth-pin-dialog-eye-v61571{
  display:grid!important;
  place-items:center!important;
  width:42px!important;
  min-width:42px!important;
  height:56px!important;
  min-height:56px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-left:1px solid #edf1f5!important;
  border-radius:0!important;
  background:transparent!important;
  color:#7b899c!important;
  cursor:pointer!important;
}

.nxl-auth-pin-dialog-eye-v61571:hover,
.nxl-auth-pin-dialog-eye-v61571:focus-visible{
  background:#f5f8fb!important;
  color:var(--auth-blue-v61420)!important;
  outline:0!important;
}

.nxl-auth-pin-dialog-eye-v61571 svg,
.nxl-auth-pin-dialog-key-v61571.is-icon svg{
  display:block!important;
  width:19px!important;
  height:19px!important;
}

.nxl-auth-pin-keypad-v61571{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  margin:0!important;
}

.nxl-auth-pin-dialog-key-v61571{
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:47px!important;
  height:47px!important;
  margin:0!important;
  padding:0 8px!important;
  border:1px solid #dce4ed!important;
  border-radius:12px!important;
  background:#fff!important;
  color:var(--auth-ink-v61420)!important;
  font-family:inherit!important;
  font-size:1rem!important;
  line-height:1!important;
  font-weight:740!important;
  cursor:pointer!important;
  transition:border-color .13s ease,background .13s ease,color .13s ease,transform .08s ease!important;
}

.nxl-auth-pin-dialog-key-v61571:hover:not(:disabled),
.nxl-auth-pin-dialog-key-v61571:focus-visible:not(:disabled){
  border-color:#a9c4e6!important;
  background:var(--auth-blue-soft-v61420)!important;
  color:var(--auth-blue-dark-v61420)!important;
  outline:0!important;
}

.nxl-auth-pin-dialog-key-v61571:active:not(:disabled){
  transform:translateY(1px)!important;
}

.nxl-auth-pin-dialog-key-v61571.is-action{
  color:#69798e!important;
  font-size:.72rem!important;
  font-weight:700!important;
}

.nxl-auth-pin-dialog-actions-v61571{
  display:grid!important;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important;
  gap:8px!important;
}

.nxl-auth-pin-dialog-cancel-v61571,
.nxl-auth-pin-dialog-confirm-v61571{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:44px!important;
  height:44px!important;
  margin:0!important;
  padding:0 12px!important;
  border-radius:11px!important;
  font-family:inherit!important;
  font-size:.76rem!important;
  line-height:1!important;
  font-weight:730!important;
  cursor:pointer!important;
}

.nxl-auth-pin-dialog-cancel-v61571{
  border:1px solid #dce4ed!important;
  background:#fff!important;
  color:#69798e!important;
}

.nxl-auth-pin-dialog-confirm-v61571{
  border:1px solid var(--auth-blue-v61420)!important;
  background:var(--auth-blue-v61420)!important;
  color:#fff!important;
}

.nxl-auth-pin-dialog-confirm-v61571:hover:not(:disabled),
.nxl-auth-pin-dialog-confirm-v61571:focus-visible:not(:disabled){
  border-color:var(--auth-blue-dark-v61420)!important;
  background:var(--auth-blue-dark-v61420)!important;
  outline:0!important;
}

.nxl-auth-pin-dialog-cancel-v61571:hover:not(:disabled),
.nxl-auth-pin-dialog-cancel-v61571:focus-visible:not(:disabled){
  border-color:#b9c8d8!important;
  background:#f6f8fb!important;
  color:var(--auth-ink-v61420)!important;
  outline:0!important;
}

.nxl-auth-pin-dialog-confirm-v61571:disabled{
  border-color:#d7dee7!important;
  background:#e9eef4!important;
  color:#8c98a8!important;
  cursor:not-allowed!important;
}

.nxl-auth-pin-modal-v61571.is-busy button{
  opacity:.58!important;
  cursor:wait!important;
}

.nxl-auth-submit-v61420,
.nxl-login-form-v615.nxl-auth-form-v61420 button[type="submit"]{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
  width:100%!important;
  min-height:50px!important;
  height:50px!important;
  margin:2px 0 0!important;
  padding:0 18px!important;
  border:1px solid var(--auth-blue-v61420)!important;
  border-radius:13px!important;
  background:var(--auth-blue-v61420)!important;
  color:#fff!important;
  font-family:inherit!important;
  font-size:.92rem!important;
  line-height:1!important;
  font-weight:760!important;
  letter-spacing:-.01em!important;
  cursor:pointer!important;
  box-shadow:none!important;
}

.nxl-auth-submit-v61420:hover:not(:disabled),
.nxl-login-form-v615.nxl-auth-form-v61420 button[type="submit"]:hover:not(:disabled){
  border-color:var(--auth-blue-dark-v61420)!important;
  background:var(--auth-blue-dark-v61420)!important;
}

.nxl-auth-submit-v61420:disabled,
.nxl-login-form-v615.nxl-auth-form-v61420 button[type="submit"]:disabled{
  opacity:.68!important;
  cursor:wait!important;
}

.nxl-auth-secondary-v61420{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:42px!important;
  margin:12px 0 0!important;
  padding:0 12px!important;
  border:0!important;
  border-radius:10px!important;
  background:transparent!important;
  color:#6f7e91!important;
  font-size:.84rem!important;
  font-weight:680!important;
  cursor:pointer!important;
}

.nxl-auth-secondary-v61420:hover{
  background:#f6f8fb!important;
  color:var(--auth-ink-v61420)!important;
}

.nxl-auth-help-v61420{
  display:grid!important;
  grid-template-columns:8px minmax(0,1fr)!important;
  align-items:start!important;
  gap:10px!important;
  margin:24px 0 0!important;
  padding:15px 0 0!important;
  border-top:1px solid #e8edf3!important;
}

.nxl-auth-help-v61420 > span{
  width:7px!important;
  height:7px!important;
  margin-top:7px!important;
  border-radius:50%!important;
  background:var(--auth-green-v61420)!important;
}

.nxl-auth-help-v61420 p{
  margin:0!important;
  color:#76869a!important;
  font-size:.78rem!important;
  line-height:1.5!important;
  font-weight:540!important;
}

.nxl-auth-help-v61420 b{
  color:#53647a!important;
  font-weight:700!important;
}

.nxl-login-status-v615,
.nxl-login-status-v615[hidden],
.nxl-pin-status-v61420,
.nxl-pin-status-v61420[hidden]{
  display:none!important;
}

.nxl-login-status-v615:not([hidden]),
.nxl-pin-status-v61420:not([hidden]){
  display:grid!important;
  grid-template-columns:8px minmax(0,1fr)!important;
  align-items:start!important;
  gap:10px!important;
  min-height:42px!important;
  margin:0!important;
  padding:12px 13px!important;
  border:1px solid #dfe7f0!important;
  border-radius:11px!important;
  background:#f8fafc!important;
  color:#5e6f84!important;
  font-size:.8rem!important;
  line-height:1.45!important;
  font-weight:620!important;
}

.nxl-login-status-v615:not([hidden]) > span:first-child,
.nxl-pin-status-v61420:not([hidden]) > span:first-child{
  width:7px!important;
  height:7px!important;
  margin-top:5px!important;
  border-radius:50%!important;
  background:#7890aa!important;
}

.nxl-login-status-v615.error:not([hidden]),
.nxl-pin-status-v61420.error:not([hidden]){
  border-color:#f0d4d2!important;
  background:#fff8f7!important;
  color:#a33a34!important;
}

.nxl-login-status-v615.error:not([hidden]) > span:first-child,
.nxl-pin-status-v61420.error:not([hidden]) > span:first-child{
  background:var(--auth-red-v61420)!important;
}

.nxl-login-status-v615.success:not([hidden]),
.nxl-pin-status-v61420.success:not([hidden]){
  border-color:#cce9df!important;
  background:#f5fcf9!important;
  color:#137354!important;
}

.nxl-login-status-v615.success:not([hidden]) > span:first-child,
.nxl-pin-status-v61420.success:not([hidden]) > span:first-child{
  background:var(--auth-green-v61420)!important;
}

.nxl-pin-status-v61420 p{
  margin:0!important;
}

.btn-spinner-v615{
  width:16px!important;
  height:16px!important;
  border:2px solid rgba(255,255,255,.42)!important;
  border-top-color:#fff!important;
  border-radius:50%!important;
  animation:nxl-auth-spin-v61420 .75s linear infinite!important;
}

@keyframes nxl-auth-spin-v61420{to{transform:rotate(360deg)}}

/* =============================
   CAMBIO OBLIGATORIO DE PIN
   ============================= */
.nxl-auth-pin-profile-v61420{
  display:grid!important;
  grid-template-columns:54px minmax(0,1fr)!important;
  align-items:center!important;
  gap:12px!important;
  margin:0 0 24px!important;
  padding:0 0 18px!important;
  border-bottom:1px solid #e8edf3!important;
}

.nxl-auth-pin-profile-v61420 img{
  display:block!important;
  width:54px!important;
  height:54px!important;
  padding:7px!important;
  object-fit:contain!important;
  border:1px solid var(--auth-line-v61420)!important;
  border-radius:16px!important;
  background:#f8fbfe!important;
}

.nxl-auth-pin-profile-v61420 span{
  display:block!important;
  margin:0 0 5px!important;
  color:#7c8a9c!important;
  font-size:.7rem!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
}

.nxl-auth-pin-profile-v61420 b{
  display:block!important;
  color:var(--auth-ink-v61420)!important;
  font-size:.92rem!important;
  line-height:1.2!important;
  font-weight:780!important;
  overflow-wrap:anywhere!important;
}

.nxl-auth-pin-form-v61420{
  margin-top:24px!important;
}

.nxl-auth-pin-rule-v61420{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  margin:-3px 0 2px!important;
  color:#758397!important;
  font-size:.76rem!important;
  font-weight:560!important;
}

.nxl-auth-pin-rule-v61420 span{
  width:6px!important;
  height:6px!important;
  border-radius:50%!important;
  background:#8b9caf!important;
}

/* =============================
   MODAL GENERAL DE ACCESO
   ============================= */
.nxl-login-modal-v615.nxl-login-modal-v61420{
  position:fixed!important;
  inset:0!important;
  z-index:5000!important;
  display:grid!important;
  place-items:center!important;
  padding:22px!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

.nxl-login-modal-v615.nxl-login-modal-v61420.is-open{
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}

.nxl-login-modal-v61420 .nxl-login-backdrop-v615{
  position:absolute!important;
  inset:0!important;
  background:rgba(8,20,42,.62)!important;
  backdrop-filter:blur(7px)!important;
}

.nxl-login-card-v615.nxl-login-card-v61420{
  position:relative!important;
  z-index:1!important;
  width:min(100%,430px)!important;
  max-height:calc(100svh - 44px)!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  margin:0!important;
  padding:30px!important;
  border:1px solid #e2e8f0!important;
  border-radius:22px!important;
  background:#fff!important;
  color:var(--auth-ink-v61420)!important;
}

.nxl-auth-modal-brand-v61420{
  margin:0 0 24px!important;
}

.nxl-auth-modal-brand-v61420 img{
  display:block!important;
  width:auto!important;
  height:38px!important;
  max-width:170px!important;
}

.nxl-login-card-v61420 .nxl-auth-eyebrow-v61420{
  margin-bottom:9px!important;
}

.nxl-login-card-v615.nxl-login-card-v61420 h2{
  margin:0!important;
  color:var(--auth-ink-v61420)!important;
  font-size:1.72rem!important;
  line-height:1.06!important;
  font-weight:820!important;
  letter-spacing:-.045em!important;
}

.nxl-login-card-v615.nxl-login-card-v61420 > p{
  margin:10px 0 23px!important;
  color:var(--auth-muted-v61420)!important;
  font-size:.9rem!important;
  line-height:1.5!important;
  font-weight:540!important;
}

.nxl-auth-close-v61420,
.nxl-login-card-v61420 .nxl-login-close-v615{
  position:absolute!important;
  top:14px!important;
  right:14px!important;
  display:grid!important;
  place-items:center!important;
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  padding:0!important;
  border:1px solid #e1e7ee!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#718096!important;
  font-size:1.2rem!important;
  font-weight:500!important;
  cursor:pointer!important;
}

.nxl-auth-close-v61420:hover{
  background:#f6f8fb!important;
  color:var(--auth-ink-v61420)!important;
}

.nxl-auth-modal-note-v61420{
  display:block!important;
  margin:18px 0 0!important;
  padding-top:16px!important;
  border-top:1px solid #e8edf3!important;
  color:#8390a1!important;
  font-size:.73rem!important;
  line-height:1.45!important;
  font-weight:540!important;
  text-align:center!important;
}

.nxl-login-alert-v615{
  margin:0 0 16px!important;
  padding:12px 13px!important;
  border:1px solid #f0d4d2!important;
  border-radius:11px!important;
  background:#fff8f7!important;
  color:#a33a34!important;
  font-size:.8rem!important;
  line-height:1.45!important;
  font-weight:620!important;
}

/* =============================
   ESTADOS: CARGA / ENLACE NO VÁLIDO
   ============================= */
.nxl-auth-state-page-v61420{
  display:grid!important;
  place-items:center!important;
  grid-template-columns:1fr!important;
  min-height:100svh!important;
  padding:26px!important;
  background:
    radial-gradient(circle at 15% 12%,rgba(15,95,207,.08),transparent 31%),
    #f7f9fc!important;
}

.nxl-auth-state-card-v61420{
  width:min(100%,430px)!important;
  padding:34px!important;
  border:1px solid var(--auth-line-v61420)!important;
  border-radius:22px!important;
  background:#fff!important;
  text-align:center!important;
}

.nxl-auth-state-brand-v61420{
  display:inline-flex!important;
  margin:0 0 26px!important;
}

.nxl-auth-state-brand-v61420 img{
  width:auto!important;
  height:42px!important;
  max-width:180px!important;
}

.nxl-auth-state-icon-v61420{
  display:grid!important;
  place-items:center!important;
  width:48px!important;
  height:48px!important;
  margin:0 auto 17px!important;
  border:1px solid #f0d4d2!important;
  border-radius:15px!important;
  background:#fff8f7!important;
  color:var(--auth-red-v61420)!important;
  font-size:1.25rem!important;
  font-weight:820!important;
}

.nxl-auth-state-card-v61420 > span:not(.nxl-auth-loader-v61420){
  display:block!important;
  margin:0 0 8px!important;
  color:var(--auth-blue-v61420)!important;
  font-size:.72rem!important;
  font-weight:750!important;
  letter-spacing:.065em!important;
  text-transform:uppercase!important;
}

.nxl-auth-state-card-v61420 h1{
  margin:0!important;
  color:var(--auth-ink-v61420)!important;
  font-size:1.7rem!important;
  line-height:1.08!important;
  font-weight:820!important;
  letter-spacing:-.04em!important;
}

.nxl-auth-state-card-v61420 p{
  margin:12px 0 24px!important;
  color:var(--auth-muted-v61420)!important;
  font-size:.88rem!important;
  line-height:1.55!important;
  font-weight:540!important;
}

.nxl-auth-state-action-v61420{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:44px!important;
  padding:0 17px!important;
  border:1px solid var(--auth-line-v61420)!important;
  border-radius:11px!important;
  background:#fff!important;
  color:var(--auth-ink-v61420)!important;
  font-size:.84rem!important;
  font-weight:720!important;
  text-decoration:none!important;
}

.nxl-auth-state-action-v61420:hover{
  background:#f7f9fc!important;
  border-color:var(--auth-line-strong-v61420)!important;
}

.nxl-auth-loader-v61420{
  display:block!important;
  width:34px!important;
  height:34px!important;
  margin:0 auto 22px!important;
  border:3px solid #dbe7f5!important;
  border-top-color:var(--auth-blue-v61420)!important;
  border-radius:50%!important;
  animation:nxl-auth-spin-v61420 .75s linear infinite!important;
}

/* =============================
   RESPONSIVE
   ============================= */
@media (max-width:1040px){
  .nxl-auth-page-v61420{
    grid-template-columns:minmax(0,.88fr) minmax(400px,1.12fr)!important;
  }

  .nxl-auth-visual-v61420{
    padding:34px!important;
  }

  .nxl-auth-visual-copy-v61420 h2{
    font-size:clamp(2rem,4.7vw,3.5rem)!important;
  }

  .nxl-auth-panel-v61420{
    padding:42px!important;
  }
}

@media (max-width:820px){
  html:has(.nxl-auth-page-v61420),
  body:has(.nxl-auth-page-v61420),
  body.layout-auth:has(.nxl-auth-page-v61420){
    overflow-y:auto!important;
  }

  .nxl-auth-page-v61420{
    display:block!important;
    min-height:100svh!important;
    background:#fff!important;
  }

  .nxl-auth-visual-v61420{
    min-height:auto!important;
    padding:24px 22px 28px!important;
    background:linear-gradient(145deg,#082554,#0c5bb2)!important;
  }

  .nxl-auth-brand-chip-v61420{
    display:none!important;
  }

  .nxl-auth-visual-copy-v61420{
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }

  .nxl-auth-visual-copy-v61420 > span{
    margin-bottom:13px!important;
  }

  .nxl-auth-visual-copy-v61420 h2{
    max-width:560px!important;
    font-size:clamp(1.65rem,7vw,2.5rem)!important;
    line-height:1.02!important;
  }

  .nxl-auth-visual-copy-v61420 p{
    max-width:610px!important;
    margin-top:13px!important;
    font-size:.88rem!important;
    line-height:1.52!important;
  }

  .nxl-auth-code-lines-v61420{
    display:none!important;
  }

  .nxl-auth-panel-v61420{
    min-height:auto!important;
    padding:28px 22px 42px!important;
  }

  .nxl-auth-card-v61420{
    width:min(100%,520px)!important;
  }

  .nxl-auth-mobile-brand-v61420{
    display:inline-flex!important;
  }

  .nxl-auth-pin-page-v61420 .nxl-auth-pin-visual-v61420{
    padding-bottom:24px!important;
  }
}

@media (max-width:560px){
  .nxl-auth-visual-v61420{
    padding:20px 18px 23px!important;
  }

  .nxl-auth-visual-copy-v61420 > span{
    min-height:27px!important;
    padding:0 9px!important;
    font-size:.66rem!important;
  }

  .nxl-auth-visual-copy-v61420 h2{
    font-size:1.72rem!important;
  }

  .nxl-auth-visual-copy-v61420 p{
    font-size:.82rem!important;
  }

  .nxl-auth-panel-v61420{
    padding:24px 18px 34px!important;
  }

  .nxl-auth-mobile-brand-v61420{
    margin-bottom:22px!important;
  }

  .nxl-auth-mobile-brand-v61420 img{
    height:34px!important;
    max-width:150px!important;
  }

  .nxl-auth-school-v61420{
    grid-template-columns:62px minmax(0,1fr)!important;
    gap:13px!important;
    margin-bottom:17px!important;
  }

  .nxl-auth-school-logo-v61420{
    width:62px!important;
    height:62px!important;
    min-width:62px!important;
    border-radius:17px!important;
  }

  .nxl-auth-school-v61420 h1,
  .nxl-auth-card-v61420 > h1{
    font-size:1.55rem!important;
  }

  .nxl-auth-intro-v61420{
    margin-bottom:22px!important;
    font-size:.86rem!important;
  }

  .nxl-auth-form-v61420,
  .nxl-login-form-v615.nxl-auth-form-v61420{
    gap:14px!important;
  }

  .nxl-auth-input-wrap-v61420{
    min-height:48px!important;
    border-radius:12px!important;
  }

  .nxl-auth-input-wrap-v61420 input,
  .nxl-login-form-v615.nxl-auth-form-v61420 .nxl-auth-input-wrap-v61420 input{
    min-height:46px!important;
    height:46px!important;
    font-size:16px!important; /* evita zoom automático en iOS */
  }

  .nxl-auth-password-toggle-v61420{
    height:46px!important;
  }

  .nxl-auth-submit-v61420,
  .nxl-login-form-v615.nxl-auth-form-v61420 button[type="submit"]{
    min-height:48px!important;
    height:48px!important;
    border-radius:12px!important;
  }

  .nxl-login-modal-v615.nxl-login-modal-v61420{
    align-items:end!important;
    padding:0!important;
  }

  .nxl-login-card-v615.nxl-login-card-v61420{
    width:100%!important;
    max-height:min(92svh,760px)!important;
    padding:27px 20px 24px!important;
    border:0!important;
    border-top:1px solid #e1e7ee!important;
    border-radius:22px 22px 0 0!important;
  }

  .nxl-auth-modal-brand-v61420{
    margin-bottom:20px!important;
  }

  .nxl-auth-modal-brand-v61420 img{
    height:34px!important;
  }

  .nxl-auth-state-page-v61420{
    padding:18px!important;
  }

  .nxl-auth-state-card-v61420{
    padding:28px 22px!important;
    border-radius:18px!important;
  }
}

@media (max-width:520px){
  .nxl-auth-pin-modal-v61571{
    align-items:end!important;
    padding:0!important;
  }

  .nxl-auth-pin-dialog-v61571{
    width:100%!important;
    max-height:min(92svh,620px)!important;
    padding:20px 18px max(18px,env(safe-area-inset-bottom))!important;
    border:0!important;
    border-top:1px solid #e1e7ee!important;
    border-radius:20px 20px 0 0!important;
  }
}

@media (max-height:720px) and (min-width:821px){
  .nxl-auth-visual-v61420{
    padding:26px 34px!important;
  }

  .nxl-auth-brand-chip-v61420{
    height:48px!important;
  }

  .nxl-auth-brand-chip-v61420 img{
    height:31px!important;
  }

  .nxl-auth-visual-copy-v61420{
    padding:24px 0!important;
  }

  .nxl-auth-visual-copy-v61420 h2{
    font-size:clamp(2rem,4vw,3.3rem)!important;
  }

  .nxl-auth-visual-copy-v61420 p{
    margin-top:14px!important;
    font-size:.9rem!important;
  }

  .nxl-auth-panel-v61420{
    padding:24px 44px!important;
  }

  .nxl-auth-school-v61420{
    margin-bottom:14px!important;
  }

  .nxl-auth-intro-v61420{
    margin-bottom:18px!important;
  }

  .nxl-auth-form-v61420{
    gap:12px!important;
  }

  .nxl-auth-help-v61420{
    margin-top:17px!important;
  }
}


@media (max-width:390px){
  .nxl-auth-pin-trigger-slots-v61571{
    grid-template-columns:repeat(6,20px)!important;
    gap:6px!important;
  }

  .nxl-auth-pin-trigger-slot-v61571{
    width:20px!important;
  }

  .nxl-auth-pin-dialog-v61571{
    padding:18px!important;
  }

  .nxl-auth-pin-dialog-slots-v61571{
    grid-template-columns:repeat(6,23px)!important;
    gap:5px!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .nxl-auth-page-v61420 *,
  .nxl-login-modal-v61420 *,
  .nxl-auth-pin-modal-v61571 *{
    scroll-behavior:auto!important;
    transition:none!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
}
