/* V4.40 — login aislado. No depende de styles.css */
.login40-page{
  min-height:100svh;
  display:grid;
  place-items:center;
  background:#0e4778;
  overflow:auto;
  margin:0;
}
.login40-frame{
  position:relative;
  width:min(100vw,66.6667svh,720px);
  aspect-ratio:2/3;
  overflow:hidden;
  border-radius:clamp(0px,3vw,30px);
  background:#07539c;
  box-shadow:0 18px 54px rgba(0,0,0,.28);
  container-type:inline-size;
  isolation:isolate;
}
.login40-photo{
  position:absolute;
  inset:0;
  z-index:-4;
  background-color:#07539c;
  background-image:var(--parish-photo);
  background-repeat:no-repeat;
  background-size:auto 100%;
  background-position:right center;
  filter:saturate(.94) sepia(.05) brightness(1.03) contrast(1.02);
}
.login40-frame::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(5,35,68,.38) 0%,rgba(5,35,68,.20) 35%,rgba(5,35,68,0) 62%),
    linear-gradient(180deg,rgba(0,20,40,.02) 0%,rgba(0,20,40,.02) 47%,rgba(0,18,32,.11) 64%,rgba(0,12,22,.42) 100%);
}
.login40-frame::after{
  content:"";
  position:absolute;
  inset:-7%;
  z-index:-2;
  pointer-events:none;
  background:
    radial-gradient(circle at 4% 4%,rgba(160,112,31,.52) 0 7%,transparent 18%),
    radial-gradient(circle at 96% 4%,rgba(132,91,26,.44) 0 7%,transparent 18%),
    radial-gradient(circle at 4% 91%,rgba(166,111,30,.52) 0 8%,transparent 20%),
    radial-gradient(circle at 96% 91%,rgba(128,86,24,.42) 0 8%,transparent 21%),
    radial-gradient(ellipse at center,transparent 53%,rgba(0,0,0,.08) 69%,rgba(0,0,0,.54) 100%);
  filter:blur(24px);
}
.login40-brand{
  position:absolute;
  z-index:2;
  left:9.4%;
  top:10.5%;
  width:45%;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.34);
}
.login40-logo{
  width:41%;
  aspect-ratio:1;
  border-radius:50%;
  overflow:hidden;
  background:#fff;
  margin:0 0 5.5%;
  box-shadow:0 7px 24px rgba(0,0,0,.22);
}
.login40-logo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.login40-kicker{
  margin:0 0 1.8%;
  font:400 4.05cqw/1.05 Arial,sans-serif;
}
.login40-name{
  margin:0;
  max-width:100%;
  font-family:Georgia,"Times New Roman",serif;
  font-size:7.05cqw;
  line-height:.96;
  font-weight:700;
  letter-spacing:-.025em;
}
.login40-rule{
  width:76%;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:4%;
  margin:5.7% 0 4.2%;
  color:#efb43e;
  font-size:5.1cqw;
}
.login40-rule span{height:2px;background:#efb43e}
.login40-subtitle{
  font:400 4.0cqw/1.06 Arial,sans-serif;
}
.login40-motto{
  width:100%;
  margin-top:9.5%;
  font:italic 4.3cqw/1.18 Georgia,"Times New Roman",serif;
  color:#fff;
}
.login40-card{
  position:absolute;
  z-index:3;
  left:13%;
  width:74%;
  top:50.4%;
  bottom:4.8%;
  box-sizing:border-box;
  padding:3.8% 5.0% 3.1%;
  display:flex;
  flex-direction:column;
  color:#fff;
  background:rgba(102,91,79,.42);
  border:1.4px solid rgba(255,255,255,.93);
  border-radius:5.2cqw;
  box-shadow:0 14px 40px rgba(0,0,0,.25);
  backdrop-filter:blur(18px) saturate(.92);
  -webkit-backdrop-filter:blur(18px) saturate(.92);
}
.login40-card h2{
  margin:0;
  text-align:center;
  color:#f1bb48;
  font-family:Georgia,"Times New Roman",serif;
  font-size:6.6cqw;
  line-height:1;
  font-weight:700;
  text-shadow:0 2px 10px rgba(0,0,0,.24);
}
.login40-help{
  margin:1.4% 0 3.8%;
  text-align:center;
  color:#fff;
  font:400 3.2cqw/1.05 Arial,sans-serif;
}
.login40-form{
  display:flex;
  flex-direction:column;
  gap:1.62cqw;
  margin:0;
}
.login40-field{
  position:relative;
  height:7.45cqw;
}
.login40-field input{
  width:100%;
  height:100%;
  box-sizing:border-box;
  margin:0;
  border:1px solid rgba(255,255,255,.98);
  border-radius:2.0cqw;
  background:rgba(255,255,255,.975);
  color:#4a5562;
  padding:0 7.4cqw 0 8.5cqw;
  font:400 3.05cqw/1 Arial,sans-serif;
  outline:none;
  box-shadow:none;
}
.login40-field input::placeholder{color:#858585;opacity:1}
.login40-icon{
  position:absolute;
  z-index:2;
  left:2.7cqw;
  top:50%;
  transform:translateY(-50%);
  color:#0b3f74;
  font-size:3.65cqw;
  line-height:1;
}
.login40-eye{
  position:absolute;
  z-index:2;
  right:2.35cqw;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:transparent;
  color:#0b3f74;
  padding:0;
  font-size:3.45cqw;
  cursor:pointer;
}
.login40-primary,.login40-secondary{
  width:100%;
  height:7.45cqw;
  border-radius:2.0cqw;
  font:800 3.3cqw/1 Arial,sans-serif;
  cursor:pointer;
}
.login40-primary{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2.0cqw;
  color:#fff;
  background:linear-gradient(90deg,#0a3d77,#0b568f);
  border:1px solid rgba(255,255,255,.96);
}
.login40-primary b{font-size:4.35cqw;line-height:1}
.login40-secondary{
  color:#fff;
  background:rgba(73,73,73,.34);
  border:1px solid rgba(255,255,255,.96);
}
.login40-link,.login40-masses{
  width:100%;
  border:0;
  background:transparent;
  text-align:center;
  font-weight:700;
  cursor:pointer;
}
.login40-link{
  color:#60c5ff;
  font-size:2.78cqw;
  padding:.80cqw 0 .18cqw;
}
.login40-masses{
  color:#fff;
  font-size:2.78cqw;
  padding:.48cqw 0 .18cqw;
}
.login40-foot{
  margin-top:auto;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  column-gap:2.0cqw;
  row-gap:.70cqw;
  color:#fff;
  font:400 2.15cqw/1 Arial,sans-serif;
}
.login40-foot span{height:1.5px;background:#efb943}
.login40-foot em{font-style:normal;white-space:nowrap}
.login40-foot b{
  grid-column:2;
  color:#efb943;
  font-size:3.85cqw;
  line-height:1;
}
.login40-message{
  position:absolute;
  z-index:8;
  left:14%;
  right:14%;
  top:47.2%;
  padding:.45rem .65rem;
  border-radius:10px;
  text-align:center;
  font-size:2.4cqw;
}
.login40-message.error{background:rgba(255,235,235,.96);color:#7a1515}
.login40-message.success{background:rgba(232,255,243,.96);color:#0b5d3a}
@media (max-aspect-ratio:2/3){
  .login40-frame{border-radius:0}
}

/* V4.43 — ajuste fino de composición, sin cambiar la tipografía aprobada */
.login40-brand{
  left:9.4%;
  top:7.7%;
  width:44%;
}
.login40-logo{
  width:36%;
  margin-bottom:4.2%;
}
.login40-kicker{
  margin-bottom:1.2%;
  font-size:3.75cqw;
}
.login40-name{
  font-family:Georgia,"Times New Roman",serif;
  font-size:6.45cqw;
  line-height:.94;
  letter-spacing:-.02em;
}
.login40-rule{
  width:74%;
  margin:4.8% 0 3.5%;
  font-size:4.6cqw;
}
.login40-subtitle{
  font:400 3.65cqw/1.05 Arial,sans-serif;
}
.login40-motto{
  margin-top:6.2%;
  font:italic 3.85cqw/1.18 Georgia,"Times New Roman",serif;
}
.login40-card{
  left:12.5%;
  width:75%;
  top:53.8%;
  bottom:4.6%;
  padding:3.3% 5% 2.7%;
  border-radius:4.8cqw;
}
.login40-card h2{
  font-family:Georgia,"Times New Roman",serif;
  font-size:5.9cqw;
  line-height:1;
}
.login40-help{
  margin:1.15% 0 3.2%;
  font-size:2.95cqw;
}
.login40-form{gap:1.35cqw}
.login40-field{height:6.85cqw}
.login40-field input{
  border-radius:1.8cqw;
  padding-left:8.1cqw;
  font-size:2.85cqw;
}
.login40-icon{font-size:3.25cqw}
.login40-eye{font-size:3.15cqw}
.login40-primary,.login40-secondary{
  height:6.85cqw;
  border-radius:1.8cqw;
  font-size:3.05cqw;
}
.login40-primary b{font-size:4cqw}
.login40-link{
  font-size:2.55cqw;
  padding:.65cqw 0 .1cqw;
}
.login40-masses{
  font-size:2.55cqw;
  padding:.38cqw 0 .1cqw;
}
.login40-foot{
  font-size:1.95cqw;
  column-gap:1.7cqw;
  row-gap:.5cqw;
}
.login40-foot b{font-size:3.35cqw}

/* V4.44 — respiración de tarjeta + adaptación celular/PC */
.login40-card{
  left:14%;
  width:72%;
  top:55.2%;
  bottom:3.4%;
  padding:3.25% 5.1% 2.8%;
}
.login40-card h2{font-size:5.65cqw;white-space:nowrap}
.login40-help{margin:1.2% 0 3.1%}
.login40-form{gap:1.42cqw}
.login40-link{padding:.85cqw 0 .25cqw}
.login40-masses{padding:.65cqw 0 .28cqw}
.login40-foot{row-gap:.7cqw;padding-top:.45cqw}

/* En pantallas anchas conserva proporción de app móvil, centrada y sin deformarse */
@media (min-aspect-ratio:1/1){
  .login40-page{padding:14px 0;box-sizing:border-box}
  .login40-frame{
    width:min(94vw,66.6667svh,720px);
    max-height:calc(100svh - 28px);
  }
}
/* En celulares aprovecha el ancho disponible manteniendo la composición 2:3 */
@media (max-width:600px){
  .login40-page{place-items:start center;background:#0e4778}
  .login40-frame{
    width:100vw;
    max-width:none;
    min-height:100svh;
    border-radius:0;
  }
  .login40-card{left:12.5%;width:75%}
}

/* V4.45 — liberar el pie de la tarjeta */
.login40-card{
  top:54.6%;
  bottom:2.0%;
  padding-bottom:2.3%;
}
.login40-form{gap:1.22cqw}
.login40-link{
  padding:.55cqw 0 .15cqw;
  line-height:1.05;
}
.login40-masses{
  padding:.38cqw 0 .15cqw;
  line-height:1.05;
}
.login40-foot{
  margin-top:1.05cqw;
  padding-top:.25cqw;
  row-gap:.55cqw;
}
.login40-foot em{line-height:1.1}

/* V4.46 — pie con separación visual real */
.login40-card{
  top:54.1%;
  bottom:1.5%;
  padding-bottom:2.6%;
}
.login40-link{
  margin-top:.35cqw;
  margin-bottom:.35cqw;
}
.login40-masses{
  margin-top:.35cqw;
  margin-bottom:.55cqw;
}
.login40-foot{
  margin-top:1.25cqw;
  padding-top:.45cqw;
  row-gap:1.05cqw;
}
.login40-foot em{
  padding:0 .8cqw;
  line-height:1.15;
}
.login40-foot b{
  margin-top:.15cqw;
}

/* V4.47 — cruz final completamente dentro del vidrio */
.login40-card{
  bottom:1.35%;
  padding-bottom:3.55%;
}
.login40-foot{
  margin-top:1.0cqw;
  padding-top:.25cqw;
  row-gap:.55cqw;
}
.login40-foot b{
  font-size:3.0cqw;
  line-height:.8;
  margin:0;
  transform:translateY(-.15cqw);
}

/* V4.48 — tarjeta más compacta para que el pie respire */
.login40-card{
  left:15%;
  width:70%;
  top:54.7%;
  bottom:2.2%;
  padding:2.8% 5.2% 3.4%;
}
.login40-card h2{font-size:5.25cqw}
.login40-help{font-size:2.7cqw;margin:.9% 0 2.7%}
.login40-form{gap:1.05cqw}
.login40-field{height:6.15cqw}
.login40-field input{font-size:2.65cqw}
.login40-primary,.login40-secondary{
  height:6.15cqw;
  font-size:2.85cqw;
}
.login40-link{
  font-size:2.35cqw;
  margin:.25cqw 0;
  padding:.35cqw 0 .1cqw;
}
.login40-masses{
  font-size:2.35cqw;
  margin:.2cqw 0 .35cqw;
  padding:.25cqw 0 .1cqw;
}
.login40-foot{
  margin-top:auto;
  padding-top:.25cqw;
  row-gap:.35cqw;
  font-size:1.82cqw;
}
.login40-foot b{
  font-size:2.65cqw;
  line-height:1;
  transform:none;
}

/* V4.49 — pie contenido, sin elementos descolgados */
.login40-card{
  top:55.2%;
  bottom:2.8%;
  padding:2.35% 5.2% 2.55%;
  overflow:hidden;
}
.login40-card h2{font-size:4.85cqw;line-height:1}
.login40-help{font-size:2.45cqw;line-height:1.1;margin:.55% 0 2%}
.login40-form{gap:.78cqw}
.login40-field{height:5.55cqw}
.login40-field input{font-size:2.4cqw}
.login40-primary,.login40-secondary{height:5.45cqw;font-size:2.65cqw}
.login40-link{font-size:2.05cqw;line-height:1;margin:.05cqw 0;padding:.18cqw 0}
.login40-masses{font-size:2.05cqw;line-height:1;margin:.05cqw 0;padding:.18cqw 0}
.login40-foot{
  margin-top:auto;
  padding:0;
  row-gap:.12cqw;
  font-size:1.52cqw;
  line-height:1;
  min-height:3.2cqw;
}
.login40-foot span{line-height:1}
.login40-foot b{
  font-size:2.25cqw;
  line-height:.9;
  margin:0;
  padding:0;
  transform:none;
}

/* V4.50 — tarjeta más baja; pie y cruz contenidos */
.login40-card{
  top:55.2%;
  bottom:auto;
  height:41.4%;
  padding:2.35% 5.2% 2.05%;
  overflow:hidden;
}
.login40-foot{
  margin-top:.7cqw;
  padding:0;
  row-gap:.25cqw;
  min-height:auto;
  font-size:1.52cqw;
  line-height:1;
}
.login40-foot span{line-height:1}
.login40-foot b{
  display:block;
  font-size:2.25cqw;
  line-height:1;
  margin:.15cqw 0 0;
  padding:0;
  transform:none;
}

/* V4.51 — cierre compacto del pie, cruz dentro del vidrio */
.login40-card{
  height:36.8%;
  padding-bottom:1.15%;
}
.login40-foot{
  margin-top:.35cqw;
  row-gap:.12cqw;
}
.login40-foot b{
  margin:.05cqw 0 0;
  line-height:.8;
}

/* V4.52 — cruz inferior integrada al pie */
.login40-foot{
  row-gap:0;
}
.login40-foot b{
  display:block;
  position:relative;
  top:-0.18cqw;
  margin:0 auto;
  padding:0;
  line-height:.72;
  font-size:2.05cqw;
}

/* V4.53 — pie según referencia aprobada */
.login40-mass{
  font-size:2.35cqw;
  line-height:1.08;
  font-weight:800;
  margin-top:.45cqw;
}
.login40-foot{
  margin-top:.55cqw;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  grid-template-areas:
    "lineL cross lineR"
    "copy copy copy";
  align-items:center;
  column-gap:1.15cqw;
  row-gap:.35cqw;
  font-size:1.72cqw;
  line-height:1.05;
}
.login40-foot::before,
.login40-foot::after{
  content:"";
  height:1px;
  background:#f5b82e;
}
.login40-foot::before{grid-area:lineL}
.login40-foot::after{grid-area:lineR}
.login40-foot b{
  grid-area:cross;
  position:static;
  margin:0;
  padding:0;
  font-size:2.45cqw;
  line-height:1;
}
.login40-foot span{
  grid-area:copy;
  font-size:1.72cqw;
  line-height:1.05;
  text-align:center;
}

/* V4.54 — pie replicado de imagen 2 */
.login40-masses{
  font-size:2.45cqw !important;
  line-height:1.08 !important;
  font-weight:800 !important;
  margin:.55cqw 0 .45cqw !important;
  padding:.2cqw 0 !important;
}
.login40-foot{
  margin-top:.35cqw !important;
  display:grid !important;
  grid-template-columns:1fr auto 1fr !important;
  grid-template-areas:
    "lineL cross lineR"
    "copy copy copy" !important;
  align-items:center !important;
  column-gap:.85cqw !important;
  row-gap:.28cqw !important;
  padding:0 !important;
}
.login40-foot::before,.login40-foot::after{
  content:"" !important;
  display:block !important;
  height:1px !important;
  background:#f5b82e !important;
}
.login40-foot::before{grid-area:lineL !important}
.login40-foot::after{grid-area:lineR !important}
.login40-foot b{
  grid-area:cross !important;
  position:static !important;
  transform:none !important;
  margin:0 !important;
  padding:0 !important;
  font-size:2.55cqw !important;
  line-height:.9 !important;
}
.login40-foot span{
  grid-area:copy !important;
  display:block !important;
  font-size:1.62cqw !important;
  line-height:1.05 !important;
  text-align:center !important;
  margin:0 !important;
}

/* V4.55 — replicar EXACTAMENTE el cierre de la referencia */
.login40-masses{
  font-size:2.55cqw !important;
  line-height:1 !important;
  font-weight:800 !important;
  margin:.55cqw 0 .65cqw !important;
  padding:0 !important;
}
.login40-foot{
  margin-top:0 !important;
  display:grid !important;
  grid-template-columns:1fr auto 1fr !important;
  grid-template-areas:
    "lineL cross lineR"
    "copy copy copy" !important;
  align-items:center !important;
  column-gap:.65cqw !important;
  row-gap:.55cqw !important;
  padding:0 !important;
}
.login40-foot::before,.login40-foot::after{
  content:"" !important;
  height:1px !important;
  background:#f5b82e !important;
}
.login40-foot::before{grid-area:lineL !important}
.login40-foot::after{grid-area:lineR !important}
.login40-foot b{
  grid-area:cross !important;
  position:static !important;
  transform:none !important;
  margin:0 !important;
  padding:0 !important;
  font-size:2.55cqw !important;
  line-height:1 !important;
}
.login40-foot span{
  grid-area:copy !important;
  font-size:1.55cqw !important;
  line-height:1 !important;
  text-align:center !important;
  margin:0 !important;
}

/* V4.56 — orden exacto imagen 02: líneas+cruz arriba, frase debajo */
.login40-foot{
  margin-top:.35cqw !important;
  display:grid !important;
  grid-template-columns:1fr auto 1fr !important;
  grid-template-areas:
    "lineL cross lineR"
    "copy copy copy" !important;
  align-items:center !important;
  column-gap:.7cqw !important;
  row-gap:.42cqw !important;
  padding:0 !important;
}
.login40-foot::before,.login40-foot::after{
  content:"" !important;
  display:block !important;
  height:1px !important;
  background:#f5b82e !important;
}
.login40-foot::before{grid-area:lineL !important}
.login40-foot::after{grid-area:lineR !important}
.login40-foot b{
  grid-area:cross !important;
  position:static !important;
  transform:none !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  font-size:2.35cqw !important;
  line-height:.8 !important;
}
.login40-foot span{
  grid-area:copy !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  font-size:1.52cqw !important;
  line-height:1 !important;
  text-align:center !important;
}

/* V4.57 — corregido: usar SOLO las 2 líneas reales del HTML */
.login40-foot{
  margin-top:.35cqw !important;
  display:grid !important;
  grid-template-columns:1fr auto 1fr !important;
  grid-template-rows:auto auto !important;
  align-items:center !important;
  column-gap:.7cqw !important;
  row-gap:.38cqw !important;
  padding:0 !important;
}
.login40-foot::before,.login40-foot::after{content:none !important;display:none !important}
.login40-foot span{
  display:block !important;
  height:1px !important;
  background:#f5b82e !important;
  margin:0 !important;
  padding:0 !important;
}
.login40-foot span:first-of-type{grid-column:1 !important;grid-row:1 !important}
.login40-foot span:last-of-type{grid-column:3 !important;grid-row:1 !important}
.login40-foot b{
  grid-column:2 !important;
  grid-row:1 !important;
  position:static !important;
  transform:none !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  color:#f5b82e !important;
  font-size:2.35cqw !important;
  line-height:.8 !important;
}
.login40-foot em{
  grid-column:1 / 4 !important;
  grid-row:2 !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  font-style:normal !important;
  font-size:1.52cqw !important;
  line-height:1 !important;
  text-align:center !important;
  white-space:nowrap !important;
}

/* V4.58 — solo ampliar “Ver horarios de misa sin ingresar” */
.login40-masses{
  font-size:2.75cqw !important;
  line-height:1.08 !important;
  font-weight:800 !important;
}

/* V4.59 — separar recuperación y horarios para lectura clara */
.login40-forgot{
  margin-bottom:.75cqw !important;
}
.login40-masses{
  margin-top:.35cqw !important;
  margin-bottom:.55cqw !important;
  font-size:2.75cqw !important;
  line-height:1.12 !important;
  font-weight:800 !important;
}

/* V4.60 — dar aire al bloque inferior sin alterar el diseño */
.login40-forgot{
  margin-top:.65cqw !important;
  margin-bottom:1.05cqw !important;
}
.login40-masses{
  margin-top:0 !important;
  margin-bottom:1.15cqw !important;
  font-size:2.75cqw !important;
  line-height:1.12 !important;
}
.login40-foot{
  margin-top:.35cqw !important;
  row-gap:.55cqw !important;
}

/* V4.61 — acciones táctiles inferiores más grandes y claramente separadas */
.login40-forgot{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:4.1cqw !important;
  margin:.7cqw 0 1.15cqw !important;
  padding:.45cqw 1cqw !important;
  font-size:2.15cqw !important;
  line-height:1.15 !important;
  font-weight:800 !important;
}
.login40-masses{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:4.6cqw !important;
  margin:0 0 1.25cqw !important;
  padding:.5cqw 1cqw !important;
  font-size:2.9cqw !important;
  line-height:1.12 !important;
  font-weight:800 !important;
}
.login40-foot{
  margin-top:.35cqw !important;
}

/* V4.70 — bloque inferior definitivo: misma estética, mejor legibilidad y tacto */
.login40-link{
  width:100% !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:5.2cqw !important;
  margin:1.05cqw 0 1.75cqw !important;
  padding:.65cqw .8cqw !important;
  border:0 !important;
  background:transparent !important;
  color:#60c5ff !important;
  font-size:2.95cqw !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  text-align:center !important;
}
.login40-masses{
  width:100% !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:5.9cqw !important;
  margin:0 0 2.15cqw !important;
  padding:.7cqw .8cqw !important;
  border:0 !important;
  background:transparent !important;
  color:#fff !important;
  font-size:3.2cqw !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  text-align:center !important;
}
.login40-foot{
  margin-top:auto !important;
  padding-top:.8cqw !important;
  display:grid !important;
  grid-template-columns:1fr auto 1fr !important;
  align-items:center !important;
  column-gap:2cqw !important;
  row-gap:.8cqw !important;
}


/* V4.82 — login móvil con controles táctiles amplios y mejor separación */
@media (max-width:600px){
  .login40-card{
    left:10.5%;
    width:79%;
    top:52.2%;
    height:45.5%;
    padding:3.1% 5.4% 2.8%;
    border-radius:5.2cqw;
    overflow:hidden;
  }
  .login40-card h2{font-size:5.45cqw}
  .login40-help{font-size:2.75cqw;margin:1% 0 2.6%}
  .login40-form{gap:1.45cqw}
  .login40-field{height:8.2cqw;min-height:44px}
  .login40-field input{
    border-radius:2.1cqw;
    font-size:3.05cqw;
    padding-left:8.6cqw;
  }
  .login40-icon{font-size:3.65cqw}
  .login40-eye{
    min-width:44px;
    min-height:44px;
    display:grid;
    place-items:center;
    right:.8cqw;
    font-size:3.65cqw;
  }
  .login40-primary,.login40-secondary{
    height:8.2cqw;
    min-height:44px;
    border-radius:2.1cqw;
    font-size:3.15cqw;
  }
  .login40-link{
    min-height:44px !important;
    margin:.8cqw 0 .9cqw !important;
    padding:.8cqw !important;
    font-size:2.85cqw !important;
  }
  .login40-masses{
    min-height:44px !important;
    margin:0 0 .8cqw !important;
    padding:.8cqw !important;
    font-size:3.05cqw !important;
  }
  .login40-foot{padding-top:.3cqw !important;row-gap:.45cqw !important}
}


/* V4.84 — rediseño REAL de la isla de acceso móvil */
@media (max-width:600px){
  .login40-card{
    left:7% !important;
    width:86% !important;
    top:50% !important;
    height:auto !important;
    min-height:47% !important;
    padding:4.2% 5.2% 4.5% !important;
    border-radius:5.5cqw !important;
    display:flex !important;
    flex-direction:column !important;
    overflow:visible !important;
  }
  .login40-card h2{font-size:5.6cqw !important;line-height:1.05 !important;margin:0 0 .8cqw !important}
  .login40-help{font-size:2.8cqw !important;margin:0 0 3cqw !important}
  .login40-form{display:flex !important;flex-direction:column !important;gap:2.2cqw !important}
  .login40-field{height:10.5cqw !important;min-height:50px !important}
  .login40-field input{font-size:3.25cqw !important;border-radius:2.4cqw !important}
  .login40-primary,.login40-secondary{
    height:10.5cqw !important;
    min-height:50px !important;
    font-size:3.35cqw !important;
    border-radius:2.4cqw !important;
  }
  .login40-link{
    min-height:50px !important;
    margin:2.4cqw 0 1.6cqw !important;
    font-size:3.05cqw !important;
  }
  .login40-masses{
    min-height:52px !important;
    margin:0 0 1.4cqw !important;
    font-size:3.2cqw !important;
  }
}


/* V4.86 — Crear cuenta en 2 pasos, identidad Santo Domingo */
.auth-wrap:has(.register86) .auth-shell{max-width:620px;min-height:auto}
.auth-wrap:has(.register86) .auth-card{width:100%;padding:28px 34px 32px}
.register86{max-width:480px;margin:0 auto}
.register86-progress{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:9px;margin:6px 0 24px}
.register86-progress span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#edf3f8;color:#718096;font-weight:900;border:1px solid #d7e2ec}
.register86-progress span.active{background:#0d4f86;color:#fff;border-color:#0d4f86;box-shadow:0 0 0 4px rgba(210,168,79,.18)}
.register86-progress i{height:2px;background:linear-gradient(90deg,#d2a84f,#d9e4ed)}
.register86-progress b{grid-column:1/4;text-align:center;color:#66788a;font-size:13px;font-weight:600}
.register86-progress em{font-style:normal;color:#0d4f86}
.register86-step{display:none}
.register86-step.active{display:block}
.register86-field{margin-bottom:13px}
.register86-field label{display:block;margin:0 0 5px;color:#173f63;font-size:13px;font-weight:750}
.register86-field>div{position:relative;display:flex;align-items:center}
.register86-field>div>span{position:absolute;left:14px;color:#0d4f86;font-size:17px;z-index:2}
.register86-field input{width:100%;height:50px;border:1px solid #cedce8;border-radius:12px;background:#fff;padding:0 44px;color:#10233b;font-size:15px;outline:none}
.register86-field input:focus{border-color:#0d5f9f;box-shadow:0 0 0 3px rgba(13,95,159,.10)}
.register86-eye{position:absolute;right:7px;width:38px;height:38px;border:0;background:transparent;color:#0d4f86;cursor:pointer}
.register86-main{width:100%;min-height:50px;margin-top:8px}
.register86-check{display:flex;gap:10px;align-items:flex-start;margin:14px 2px;color:#425b72;font-size:13px;line-height:1.35}
.register86-check input{width:18px;height:18px;flex:0 0 18px;accent-color:#0d4f86}
.register86-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:10px;margin-top:20px}
.register86-actions button{min-height:50px}
.register86-role{margin:16px 0 0;padding:12px 14px;border-left:3px solid #d2a84f;background:#fbf8ef;border-radius:8px;color:#536779;font-size:12px;line-height:1.4}
@media(max-width:600px){
 .auth-wrap:has(.register86){padding:0;background:linear-gradient(180deg,#0b3d6d,#0e578d)}
 .auth-wrap:has(.register86) .auth-shell{width:100%;max-width:none;min-height:100svh;border-radius:0}
 .auth-wrap:has(.register86) .auth-card{padding:22px 20px 30px;border-radius:0;min-height:100svh}
 .auth-wrap:has(.register86) .auth-card>h2{font-size:29px;margin-top:18px}
 .auth-wrap:has(.register86) .auth-card>p{margin-bottom:18px}
 .register86{max-width:none}
 .register86-field{margin-bottom:11px}
 .register86-field input{height:52px;font-size:16px}
 .register86-progress{margin-bottom:20px}
 .register86-actions{grid-template-columns:1fr}
 .register86-actions .secondary{order:2}
}


/* V4.87 — identidad multiparroquia: foto/logo/nombre/lema dinámicos */
.register87-wrap{min-height:100svh;padding:24px;background:linear-gradient(135deg,#082f57,#0d5f96)}
.register87-shell{width:min(1080px,96vw);max-width:1080px;min-height:720px;margin:auto;display:grid;grid-template-columns:minmax(270px,31%) 1fr;overflow:hidden;border-radius:26px;background:#fff;box-shadow:0 24px 70px rgba(3,25,48,.28)}
.register87-brand{position:relative;min-height:720px;overflow:hidden;background:#0b3d6d;color:#fff}
.register87-photo{position:absolute;inset:0;background-image:var(--register-photo);background-size:cover;background-position:center}
.register87-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,35,65,.18),rgba(4,35,65,.62) 58%,rgba(3,25,48,.92))}
.register87-brandcontent{position:absolute;inset:auto 28px 38px;text-align:center;display:flex;flex-direction:column;align-items:center}
.register87-brandcontent img{width:92px;height:92px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.9);box-shadow:0 7px 24px rgba(0,0,0,.25);margin-bottom:18px}
.register87-brandcontent span{font-size:14px;text-transform:uppercase;letter-spacing:.14em;color:#e9f3fb}
.register87-brandcontent h1{margin:5px 0 10px;font:700 31px/1.05 Georgia,serif;color:#fff}
.register87-gold{width:75%;display:grid;grid-template-columns:1fr auto 1fr;gap:9px;align-items:center;color:#e2b854;margin:5px 0 13px}
.register87-gold i{height:1px;background:#e2b854}.register87-gold b{font-size:21px}
.register87-brandcontent p{margin:0;color:#fff;font-weight:700}.register87-brandcontent em{margin-top:18px;font:italic 15px/1.4 Georgia,serif;color:#eef6fc}
.register87-card{padding:38px 54px 40px;overflow:auto}
.register87-card>h2{margin:18px 0 4px;font:700 34px/1.1 Georgia,serif;color:#123f67}
.register87-card>p{margin:0 0 16px;color:#6c7d8c}
@media(max-width:700px){
 .register87-wrap{padding:0;background:#fff}
 .register87-shell{width:100%;min-height:100svh;border-radius:0;display:block;box-shadow:none}
 .register87-brand{min-height:230px;height:230px}
 .register87-photo{background-position:center 42%}
 .register87-shade{background:linear-gradient(180deg,rgba(4,35,65,.18),rgba(3,25,48,.86))}
 .register87-brandcontent{inset:18px 20px 20px}
 .register87-brandcontent img{width:64px;height:64px;margin-bottom:8px}
 .register87-brandcontent span{font-size:11px}.register87-brandcontent h1{font-size:25px;margin:3px 0 5px}
 .register87-gold{width:48%;margin:2px 0 5px}.register87-brandcontent p{font-size:13px}.register87-brandcontent em{display:none}
 .register87-card{min-height:calc(100svh - 230px);padding:20px 20px 30px}
 .register87-card>h2{font-size:29px;margin-top:17px}
}


/* V4.88 — registro integrado a la identidad visual del inicio */
.register87-wrap{padding:14px;background:linear-gradient(135deg,#0a3f70,#0d5f96)}
.register87-shell{width:min(920px,96vw);max-width:920px;min-height:690px;grid-template-columns:38% 62%;background:transparent;box-shadow:0 22px 60px rgba(3,25,48,.26)}
.register87-brand{min-height:690px}
.register87-photo{background-size:cover;background-position:center center}
.register87-shade{background:linear-gradient(90deg,rgba(5,35,61,.64),rgba(5,35,61,.22)),linear-gradient(180deg,rgba(4,35,65,.08),rgba(3,25,48,.72))}
.register87-brandcontent{inset:28px 24px auto;text-align:left;align-items:flex-start}
.register87-brandcontent img{width:72px;height:72px;margin:0 0 10px}
.register87-brandcontent span{font-size:13px;text-transform:none;letter-spacing:0}
.register87-brandcontent h1{font-size:29px;max-width:240px;margin:2px 0 8px}
.register87-gold{width:145px;margin:3px 0 8px}
.register87-brandcontent p{font-size:14px}
.register87-brandcontent em{font-size:15px;margin-top:10px;max-width:245px}
.register87-card{background:rgba(255,255,255,.94);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);padding:26px 38px 30px}
.register87-card>h2{font-family:Georgia,serif;font-size:31px;margin:12px 0 3px}
.register87-card>p{margin-bottom:10px}
.register87-card .register86-progress{margin:5px 0 14px}
.register87-card .register86-field{margin-bottom:8px}
.register87-card .register86-field input{height:45px}
.register87-card .register86-main{min-height:46px}
@media(max-width:700px){
 .register87-wrap{padding:10px;background:linear-gradient(180deg,#0b4678,#0e5b91)}
 .register87-shell{width:100%;min-height:calc(100svh - 20px);border-radius:24px;overflow:hidden;display:block;background-image:var(--register-photo)}
 .register87-brand{height:205px;min-height:205px}
 .register87-photo{background-position:center center}
 .register87-brandcontent{inset:18px 22px auto}
 .register87-brandcontent img{width:58px;height:58px;margin-bottom:6px}
 .register87-brandcontent h1{font-size:23px;max-width:210px}
 .register87-gold{width:115px;margin:1px 0 4px}
 .register87-brandcontent p{font-size:12px}
 .register87-card{min-height:auto;padding:18px 20px 26px;background:rgba(255,255,255,.95)}
 .register87-card>h2{font-size:27px;margin-top:12px}
 .register87-card .register86-field input{height:50px}
}


/* V4.89 — registro sobre la MISMA composición fotográfica del inicio */
.register89-page{min-height:100svh;display:grid;place-items:center;background:#0e4778;padding:14px 0;box-sizing:border-box}
.register89-frame{position:relative;width:min(100vw,66.6667svh,720px);aspect-ratio:2/3;overflow:hidden;border-radius:clamp(0px,3vw,30px);box-shadow:0 18px 54px rgba(0,0,0,.28);container-type:inline-size;isolation:isolate}
.register89-photo{position:absolute;inset:0;z-index:-4;background:#07539c var(--parish-photo) no-repeat right center;background-size:auto 100%;filter:saturate(.94) sepia(.05) brightness(1.03) contrast(1.02)}
.register89-frame:before{content:"";position:absolute;inset:0;z-index:-3;background:linear-gradient(90deg,rgba(5,35,68,.38),rgba(5,35,68,.18) 38%,transparent 65%),linear-gradient(180deg,transparent 48%,rgba(0,15,28,.45));pointer-events:none}
.register89-brand{position:absolute;left:9.4%;top:7.7%;width:44%;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.34)}
.register89-logo{width:36%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#fff;margin-bottom:4.2%;box-shadow:0 7px 24px rgba(0,0,0,.22)}
.register89-logo img{width:100%;height:100%;object-fit:cover}
.register89-kicker{font:400 3.75cqw/1.05 Arial,sans-serif}
.register89-brand h1{margin:1.2% 0 0;font-family:Georgia,"Times New Roman",serif;font-size:6.45cqw;line-height:.94;letter-spacing:-.02em}
.register89-rule{width:74%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:4%;margin:4.8% 0 3.5%;color:#efb43e;font-size:4.6cqw}
.register89-rule span{height:2px;background:#efb43e}
.register89-subtitle{font:400 3.65cqw/1.05 Arial,sans-serif}
.register89-motto{width:100%;margin-top:6.2%;font:italic 3.85cqw/1.18 Georgia,"Times New Roman",serif}
.register89-card{position:absolute;z-index:3;left:10%;right:10%;top:42%;bottom:3%;padding:3.3% 5.2%;box-sizing:border-box;overflow:auto;color:#0b3f74;background:rgba(250,250,248,.90);border:1.4px solid rgba(255,255,255,.96);border-radius:5cqw;box-shadow:0 14px 40px rgba(0,0,0,.25);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.register89-back{width:100%;height:6.2cqw;border:1px solid #0b3f74;border-radius:1.8cqw;background:rgba(255,255,255,.45);color:#0b3f74;font-weight:800}
.register89-card>h2{margin:2.2cqw 0 .3cqw;font-family:Georgia,"Times New Roman",serif;font-size:5.2cqw;line-height:1;color:#083766}
.register89-card>p{margin:0 0 1.6cqw;color:#68778a;font-size:2.7cqw}
.register89-card .register86-progress{margin:.8cqw 0 1.4cqw}
.register89-card .register86-field{margin-bottom:1.15cqw}
.register89-card .register86-field label{font-size:2.5cqw}
.register89-card .register86-field input{height:7.4cqw;border-radius:1.9cqw;font-size:2.8cqw;background:rgba(255,255,255,.94)}
.register89-card .register86-main{min-height:7.4cqw;border-radius:1.9cqw}
@media(max-width:600px){
 .register89-page{padding:0;place-items:start center}
 .register89-frame{width:100vw;max-width:none;min-height:100svh;border-radius:0}
 .register89-card{left:7%;right:7%;top:40.5%;bottom:2.2%}
}


/* V4.90 — corrección estructural: sin ventana/scroll interno */
.register89-page{min-height:100svh;display:block;background:#0e4778;padding:0}
.register89-frame{width:min(100%,720px);max-width:720px;min-height:100svh;aspect-ratio:auto;margin:0 auto;border-radius:0;overflow:visible;box-shadow:none;background:#fff}
.register89-photo{position:absolute;inset:0 0 auto 0;height:100svh;background-position:right center;background-size:auto 100%}
.register89-frame:before{height:100svh;bottom:auto}
.register89-brand{position:relative;left:auto;top:auto;width:46%;min-height:40svh;padding:7.5% 0 2% 9.5%;box-sizing:border-box}
.register89-card{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:82%;margin:0 auto 5%;padding:4.2% 5.5%;overflow:visible;max-height:none;border-radius:4cqw;background:rgba(250,250,248,.94)}
@media(max-width:600px){
 .register89-page{background:#0e4778}
 .register89-frame{width:100%;min-height:100svh;overflow:visible}
 .register89-photo{height:430px;background-position:right top;background-size:auto 430px}
 .register89-frame:before{height:430px}
 .register89-brand{width:58%;min-height:310px;padding:34px 0 12px 9%}
 .register89-logo{width:68px;height:68px;margin-bottom:10px}
 .register89-kicker{font-size:16px}
 .register89-brand h1{font-size:30px;line-height:.92}
 .register89-rule{width:150px;font-size:22px;margin:14px 0 9px}
 .register89-subtitle{font-size:15px}
 .register89-motto{font-size:16px;margin-top:13px}
 .register89-card{width:92%;margin:0 auto 22px;padding:22px 20px 28px;border-radius:24px;overflow:visible}
 .register89-back{height:48px;border-radius:12px}
 .register89-card>h2{font-size:31px;margin:18px 0 3px}
 .register89-card>p{font-size:15px;margin-bottom:14px}
 .register89-card .register86-field{margin-bottom:12px}
 .register89-card .register86-field label{font-size:13px}
 .register89-card .register86-field input{height:52px;border-radius:13px;font-size:16px}
 .register89-card .register86-main{min-height:52px;border-radius:13px}
}


/* V4.91 — referencia exacta aprobada: fondo completo + panel vidrio */
.register89-page{min-height:100svh;display:grid;place-items:center;background:#092f54;padding:10px;overflow:auto}
.register89-frame{position:relative;width:min(100vw - 20px,66.67svh,640px);min-height:0;aspect-ratio:2/3;margin:auto;overflow:hidden;border-radius:0;box-shadow:0 16px 48px rgba(0,0,0,.32);background:transparent}
.register89-photo{position:absolute;inset:0;width:100%;height:100%;background-position:center center;background-size:cover;filter:saturate(.95) brightness(.92) contrast(1.04)}
.register89-frame:before{position:absolute;inset:0;width:auto;height:auto;background:linear-gradient(90deg,rgba(2,27,52,.58) 0%,rgba(2,27,52,.28) 34%,rgba(2,27,52,.04) 70%),linear-gradient(180deg,rgba(0,20,40,.05),rgba(0,20,40,.22));z-index:-3}
.register89-brand{position:absolute;z-index:2;left:6.5%;top:10.5%;width:29%;min-height:0;padding:0;color:#fff}
.register89-logo{width:43%;height:auto;aspect-ratio:1;margin:0 0 6%;border:0}
.register89-kicker{font-size:2.65cqw;line-height:1.05}
.register89-brand h1{font-size:5.15cqw;line-height:.91;margin:2% 0 7%;font-family:Georgia,"Times New Roman",serif}
.register89-rule{width:90%;font-size:3.8cqw;margin:4% 0 7%;gap:5%}
.register89-subtitle{font-size:2.55cqw;line-height:1.1}
.register89-motto{font-size:2.75cqw;line-height:1.18;margin-top:9%}
.register89-card{position:absolute;z-index:3;left:31%;right:auto;top:15.5%;bottom:auto;width:47%;height:auto;max-height:none;margin:0;padding:3.1% 3.5% 3.4%;overflow:visible;border-radius:3.5cqw;background:linear-gradient(135deg,rgba(16,38,62,.80),rgba(54,48,43,.66));border:1px solid rgba(255,255,255,.48);box-shadow:0 14px 38px rgba(0,0,0,.32);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);color:#fff}
.register89-back{position:absolute;left:104%;top:-14%;width:56%;height:5.8cqw;border:1px solid rgba(255,255,255,.45);border-radius:1.4cqw;background:rgba(9,55,96,.45);color:#fff;font-size:2.35cqw}
.register89-card>h2{margin:0 0 .4cqw;font-size:4.9cqw;line-height:1;font-family:Georgia,"Times New Roman",serif;color:#fff}
.register89-card>p{margin:0 0 1.2cqw;color:rgba(255,255,255,.88);font-size:2.25cqw}
.register89-card .register86-progress{margin:.5cqw 0 .8cqw}
.register89-card .register86-progress:before{background:rgba(255,255,255,.45)}
.register89-card .register86-progress span{width:5.2cqw;height:5.2cqw;font-size:2.4cqw}
.register89-card .register86-step-label{color:rgba(255,255,255,.88);font-size:1.9cqw;margin-bottom:.8cqw}
.register89-card .register86-field{margin-bottom:.85cqw}
.register89-card .register86-field label{font-size:1.95cqw;color:#fff;margin-bottom:.3cqw}
.register89-card .register86-field input{height:5.8cqw;min-height:0;border:1px solid rgba(255,255,255,.55);border-radius:1.25cqw;background:rgba(255,255,255,.10);color:#fff;font-size:2.05cqw;padding-top:0;padding-bottom:0}
.register89-card .register86-field input::placeholder{color:rgba(255,255,255,.74)}
.register89-card .register86-field .register86-icon{color:#fff}
.register89-card .register86-main{min-height:5.8cqw;height:5.8cqw;border-radius:1.25cqw;font-size:2.05cqw;margin-top:.6cqw}
.register89-card .register86-help{color:rgba(255,255,255,.82);font-size:1.55cqw}
@media(max-width:600px){
 .register89-page{padding:0;background:#092f54;display:grid;place-items:start center}
 .register89-frame{width:100vw;max-width:none;min-height:150vw;aspect-ratio:2/3;overflow:hidden}
 .register89-photo{height:100%;background-size:cover;background-position:center center}
 .register89-frame:before{height:auto}
 .register89-brand{left:6.5%;top:10.5%;width:29%;padding:0;min-height:0}
 .register89-logo{width:43%;height:auto}
 .register89-kicker{font-size:2.65cqw}.register89-brand h1{font-size:5.15cqw}
 .register89-rule{width:90%;font-size:3.8cqw}.register89-subtitle{font-size:2.55cqw}.register89-motto{font-size:2.75cqw}
 .register89-card{left:31%;top:15.5%;width:47%;margin:0;padding:3.1% 3.5% 3.4%;border-radius:3.5cqw;overflow:visible}
 .register89-back{left:104%;top:-14%;width:56%;height:5.8cqw;border-radius:1.4cqw;font-size:2.35cqw}
 .register89-card>h2{font-size:4.9cqw;margin:0 0 .4cqw}.register89-card>p{font-size:2.25cqw;margin-bottom:1.2cqw}
 .register89-card .register86-field{margin-bottom:.85cqw}.register89-card .register86-field label{font-size:1.95cqw}
 .register89-card .register86-field input{height:5.8cqw;min-height:0;border-radius:1.25cqw;font-size:2.05cqw}
 .register89-card .register86-main{height:5.8cqw;min-height:5.8cqw;border-radius:1.25cqw;font-size:2.05cqw}
}


/* V4.92 — escala general menor, formulario mayor y sin tapar identidad */
.register89-page{padding:18px}
.register89-frame{width:min(88vw,58.5svh,560px)}
.register89-brand{left:6.2%;top:10%;width:27%}
.register89-card{left:37%;top:15%;width:52%;padding:3.5% 4% 3.7%;border-radius:3.6cqw}
.register89-card>h2{font-size:5.25cqw}
.register89-card>p{font-size:2.35cqw}
.register89-card .register86-field{margin-bottom:1cqw}
.register89-card .register86-field label{font-size:2.05cqw}
.register89-card .register86-field input{height:6.35cqw;font-size:2.2cqw}
.register89-card .register86-main{height:6.35cqw;min-height:6.35cqw;font-size:2.15cqw}
.register89-back{left:102%;width:50%}
@media(max-width:600px){
 .register89-page{padding:8px}
 .register89-frame{width:min(96vw,58.5svh);min-height:0;aspect-ratio:2/3}
 .register89-brand{left:6.2%;top:10%;width:27%}
 .register89-card{left:37%;top:15%;width:52%;padding:3.5% 4% 3.7%}
 .register89-card>h2{font-size:5.25cqw}.register89-card>p{font-size:2.35cqw}
 .register89-card .register86-field{margin-bottom:1cqw}.register89-card .register86-field label{font-size:2.05cqw}
 .register89-card .register86-field input{height:6.35cqw;font-size:2.2cqw}
 .register89-card .register86-main{height:6.35cqw;min-height:6.35cqw;font-size:2.15cqw}
}


/* V4.93 — tarjeta de registro más larga, conservando ancho y posición */
.register89-card{
  padding-top:4.5%;
  padding-bottom:5.2%;
}
.register89-card>p{margin-bottom:1.7cqw}
.register89-card .register86-progress{margin-top:1cqw;margin-bottom:1.3cqw}
.register89-card .register86-step-label{margin-bottom:1.3cqw}
.register89-card .register86-field{margin-bottom:1.25cqw}
.register89-card .register86-main{margin-top:1.1cqw}
@media(max-width:600px){
 .register89-card{padding-top:4.5%;padding-bottom:5.2%}
 .register89-card .register86-field{margin-bottom:1.25cqw}
}


/* V4.94 — terminar ajuste pedido: tarjeta más larga, siguiente visible y volver legible */
.register89-card{
  top:14%;
  padding-top:4.6%;
  padding-bottom:6.2%;
}
.register89-card .register86-main{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  margin-top:1.4cqw;
  margin-bottom:.4cqw;
  overflow:visible;
  position:relative;
  z-index:5;
}
.register89-back{
  left:101%;
  top:-12%;
  width:54%;
  background:rgba(5,48,87,.88);
  border:1.5px solid rgba(255,255,255,.88);
  color:#fff;
  font-weight:800;
  box-shadow:0 4px 14px rgba(0,0,0,.24);
  z-index:10;
}
@media(max-width:600px){
 .register89-card{top:14%;padding-top:4.6%;padding-bottom:6.2%}
 .register89-card .register86-main{margin-top:1.4cqw;margin-bottom:.4cqw}
 .register89-back{left:101%;top:-12%;width:54%;background:rgba(5,48,87,.88);color:#fff}
}


/* V4.94 — corregir exclusivamente botón Volver */
.register89-back{
  left:auto !important;
  right:3.5% !important;
  top:-12.5% !important;
  width:42% !important;
  min-width:0 !important;
  height:5.8cqw !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 1.2cqw !important;
  overflow:visible !important;
  white-space:nowrap !important;
  color:#fff !important;
  font-size:2.25cqw !important;
  font-weight:800 !important;
  opacity:1 !important;
  background:rgba(8,55,96,.78) !important;
  border:1px solid rgba(255,255,255,.78) !important;
  z-index:20 !important;
}


/* V4.94 — Volver visible y tarjeta con aire definitivo */
.register89-card{
  padding-top:4.8%;
  padding-bottom:5.6%;
}
.register89-card .register86-field{margin-bottom:1.3cqw}
.register89-card .register86-main{margin-top:1.15cqw;margin-bottom:.4cqw}

/* Botón Volver: dentro del marco, visible y legible */
.register89-back{
  position:fixed !important;
  left:auto !important;
  right:max(4vw,18px) !important;
  top:max(4vh,18px) !important;
  width:auto !important;
  min-width:118px !important;
  height:44px !important;
  padding:0 20px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  z-index:50 !important;
  border:1.5px solid rgba(255,255,255,.92) !important;
  border-radius:12px !important;
  background:rgba(5,48,86,.88) !important;
  color:#fff !important;
  font-size:15px !important;
  font-weight:800 !important;
  line-height:1 !important;
  box-shadow:0 5px 18px rgba(0,0,0,.25) !important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.register89-back::before{content:"← ";font-weight:900}
@media(max-width:600px){
 .register89-card{padding-top:4.8%;padding-bottom:5.6%}
 .register89-back{
   right:18px !important;
   top:18px !important;
   min-width:104px !important;
   height:40px !important;
   padding:0 15px !important;
   font-size:14px !important;
 }
}


/* V4.94 — VOLVER fuera del formulario, visible y sin superposición */
.register89-back{
  position:fixed !important;
  top:22px !important;
  right:calc(50% - min(44vw,29.25svh,280px) + 18px) !important;
  left:auto !important;
  width:118px !important;
  height:42px !important;
  min-height:42px !important;
  z-index:20 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:rgba(8,58,101,.88) !important;
  border:1px solid rgba(255,255,255,.78) !important;
  border-radius:11px !important;
  color:#fff !important;
  font-size:16px !important;
  font-weight:800 !important;
  line-height:1 !important;
  box-shadow:0 5px 16px rgba(0,0,0,.22) !important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
@media(max-width:600px){
 .register89-back{
   position:absolute !important;
   top:3.2% !important;
   right:4% !important;
   left:auto !important;
   width:112px !important;
   height:40px !important;
   min-height:40px !important;
   font-size:15px !important;
 }
}


/* V4.94 — corregir definitivamente Volver: dentro del panel, sin superponer título */
.register89-back,
@media(max-width:600px){.register89-back}{
  position:static !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:5.4cqw !important;
  min-height:32px !important;
  margin:0 0 2.2cqw 0 !important;
  padding:0 1cqw !important;
  border:1px solid rgba(255,255,255,.75) !important;
  border-radius:1.25cqw !important;
  background:rgba(8,72,118,.82) !important;
  color:#fff !important;
  font-size:2.15cqw !important;
  font-weight:800 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  box-sizing:border-box !important;
  transform:none !important;
}
.register89-card>h2{clear:both;margin-top:0 !important}


/* V4.94 — Volver integrado arriba de la tarjeta, sin superponer ni cortar */
.register89-card{top:17.5%}
.register89-back{
  position:relative;
  left:auto;
  top:auto;
  width:100%;
  height:5.8cqw;
  margin:0 0 2.1cqw 0;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.72);
  border-radius:1.25cqw;
  background:rgba(8,69,116,.72);
  color:#fff;
  font-size:2.15cqw;
  font-weight:800;
  white-space:nowrap;
  overflow:visible;
}
@media(max-width:600px){
 .register89-card{top:17.5%}
 .register89-back{
   position:relative;
   left:auto;
   top:auto;
   width:100%;
   height:5.8cqw;
   margin:0 0 2.1cqw 0;
   font-size:2.15cqw;
 }
}


/* V4.94 — corrección definitiva del botón Volver: dentro del panel */
.register89-back,
@media(max-width:600px){.register89-back}{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  width:100% !important;
  height:5.8cqw !important;
  margin:0 0 2.2cqw 0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
  overflow:visible !important;
  z-index:5 !important;
  border:1px solid rgba(255,255,255,.65) !important;
  background:rgba(9,55,96,.78) !important;
  color:#fff !important;
  font-size:2.15cqw !important;
  font-weight:800 !important;
}

/* V4.95 — Volver fijo dentro del marco, visible y sin superponer el formulario */
.register89-back{
  position:absolute !important;
  top:4.2% !important;
  right:4.5% !important;
  left:auto !important;
  width:25% !important;
  min-width:0 !important;
  height:6.2cqw !important;
  min-height:34px !important;
  margin:0 !important;
  padding:0 1.4cqw !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  white-space:nowrap !important;
  z-index:30 !important;
  border:1.4px solid rgba(255,255,255,.9) !important;
  border-radius:1.4cqw !important;
  background:rgba(7,59,103,.9) !important;
  color:#fff !important;
  font-size:2.25cqw !important;
  font-weight:800 !important;
  line-height:1 !important;
  box-shadow:0 5px 16px rgba(0,0,0,.25) !important;
  transform:none !important;
}
.register89-back::before{content:none !important}
@media(max-width:600px){
  .register89-back{
    top:4.2% !important;
    right:4.5% !important;
    width:25% !important;
    height:6.2cqw !important;
    min-height:34px !important;
    font-size:2.25cqw !important;
  }
}

/* V4.96 — Paso 2 compacto y coherente con la identidad visual del Paso 1 */
.register89-card #registerStep2{
  color:#fff;
}
.register89-card #registerStep2 .register86-field{
  margin-bottom:1.05cqw !important;
}
.register89-card #registerStep2 .register86-field label{
  margin-bottom:.3cqw !important;
  color:#fff !important;
  font-family:Arial,sans-serif !important;
  font-size:1.95cqw !important;
  font-weight:750 !important;
  line-height:1.05 !important;
}
.register89-card #registerStep2 .register86-field input{
  height:5.8cqw !important;
  min-height:0 !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:1.25cqw !important;
  background:rgba(255,255,255,.10) !important;
  color:#fff !important;
  font-family:Arial,sans-serif !important;
  font-size:2.05cqw !important;
}
.register89-card #registerStep2 .register86-field input::placeholder{
  color:rgba(255,255,255,.78) !important;
}
.register89-card #registerStep2 .register86-check{
  display:grid !important;
  grid-template-columns:3.6cqw 1fr !important;
  gap:1.2cqw !important;
  align-items:start !important;
  margin:1.15cqw 0 !important;
  color:#fff !important;
  font-family:Arial,sans-serif !important;
  font-size:1.9cqw !important;
  font-weight:500 !important;
  line-height:1.22 !important;
}
.register89-card #registerStep2 .register86-check input{
  width:3.2cqw !important;
  height:3.2cqw !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:.05cqw 0 0 !important;
  accent-color:#0b69a8 !important;
}
.register89-card #registerStep2 .register86-actions{
  display:grid !important;
  grid-template-columns:1fr 1.25fr !important;
  gap:1.4cqw !important;
  margin-top:1.4cqw !important;
}
.register89-card #registerStep2 .register86-actions button{
  width:100% !important;
  height:6.35cqw !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 .8cqw !important;
  border-radius:1.35cqw !important;
  font-family:Arial,sans-serif !important;
  font-size:1.85cqw !important;
  font-weight:850 !important;
  line-height:1 !important;
  white-space:nowrap !important;
}
.register89-card #registerStep2 .register86-actions .secondary{
  border:1px solid rgba(255,255,255,.75) !important;
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
}
.register89-card #registerStep2 .register86-actions .primary{
  border:1px solid rgba(255,255,255,.28) !important;
  background:linear-gradient(90deg,#0a4f87,#0b6aa9) !important;
  color:#fff !important;
}
.register89-card #registerStep2 .register86-role{
  margin:1.3cqw 0 0 !important;
  padding:1.2cqw 1.45cqw !important;
  border:0 !important;
  border-left:2px solid #efb43e !important;
  border-radius:1cqw !important;
  background:rgba(4,35,63,.34) !important;
  color:rgba(255,255,255,.9) !important;
  font-family:Arial,sans-serif !important;
  font-size:1.55cqw !important;
  line-height:1.25 !important;
}
.register89-card #registerStep2 .register86-role b{
  color:#efb43e !important;
}


/* V4.120 — experiencia móvil legible para acceso y registro */
@media (max-width:600px){
  .login40-page{
    display:block !important;
    min-height:100svh !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    background:#0b3f70 !important;
  }
  .login40-frame{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-height:100svh !important;
    height:auto !important;
    aspect-ratio:auto !important;
    overflow:visible !important;
    border-radius:0 !important;
    padding:0 0 calc(26px + env(safe-area-inset-bottom)) !important;
    box-shadow:none !important;
  }
  .login40-photo{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-height:100svh !important;
    background-size:cover !important;
    background-position:56% top !important;
  }
  .login40-frame::before,
  .login40-frame::after{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-height:100svh !important;
  }
  .login40-frame::before{
    background:
      linear-gradient(90deg,rgba(2,27,53,.76) 0%,rgba(3,31,58,.42) 55%,rgba(3,25,46,.12) 100%),
      linear-gradient(180deg,rgba(0,18,34,.08) 0%,rgba(0,17,32,.08) 38%,rgba(0,15,29,.44) 61%,rgba(0,11,22,.84) 100%) !important;
  }
  .login40-brand{
    position:relative !important;
    left:auto !important;
    top:auto !important;
    width:72% !important;
    min-height:365px !important;
    box-sizing:border-box !important;
    padding:42px 0 26px 28px !important;
  }
  .login40-logo{
    width:88px !important;
    height:88px !important;
    margin:0 0 16px !important;
  }
  .login40-kicker{
    margin:0 0 4px !important;
    font-size:18px !important;
  }
  .login40-name{
    font-size:37px !important;
    line-height:.94 !important;
  }
  .login40-rule{
    width:78% !important;
    margin:18px 0 14px !important;
    font-size:27px !important;
  }
  .login40-subtitle{
    font-size:19px !important;
    line-height:1.15 !important;
  }
  .login40-motto{
    margin-top:16px !important;
    font-size:20px !important;
    line-height:1.22 !important;
  }
  .login40-card{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:calc(100% - 28px) !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 14px !important;
    padding:25px 18px 19px !important;
    overflow:visible !important;
    border-radius:26px !important;
    background:rgba(57,54,52,.62) !important;
    box-shadow:0 16px 36px rgba(0,0,0,.34) !important;
  }
  .login40-card h2{
    font-size:32px !important;
    line-height:1.05 !important;
  }
  .login40-help{
    margin:7px 0 19px !important;
    font-size:17px !important;
    line-height:1.2 !important;
  }
  .login40-form{
    gap:12px !important;
  }
  .login40-field{
    height:58px !important;
  }
  .login40-field input{
    border-radius:15px !important;
    padding:0 51px 0 49px !important;
    font-size:18px !important;
  }
  .login40-icon{
    left:17px !important;
    font-size:20px !important;
  }
  .login40-eye{
    right:16px !important;
    min-width:34px !important;
    min-height:34px !important;
    font-size:18px !important;
  }
  .login40-primary,
  .login40-secondary{
    height:56px !important;
    min-height:56px !important;
    border-radius:15px !important;
    font-size:17px !important;
  }
  .login40-primary b{font-size:24px !important}
  .login40-link{
    min-height:45px !important;
    padding:12px 4px 7px !important;
    font-size:16px !important;
    line-height:1.25 !important;
  }
  .login40-masses{
    min-height:48px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:10px 4px !important;
    color:#fff !important;
    font-size:17px !important;
    line-height:1.25 !important;
  }
  .login40-foot{
    margin-top:8px !important;
    column-gap:8px !important;
    row-gap:4px !important;
    font-size:12px !important;
  }
  .login40-foot b{font-size:21px !important}
  .login40-message{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    width:calc(100% - 28px) !important;
    box-sizing:border-box !important;
    margin:14px auto -4px !important;
    font-size:15px !important;
  }

  .register89-page{
    display:block !important;
    min-height:100svh !important;
    padding:0 !important;
    overflow-x:hidden !important;
    background:#0b3f70 !important;
  }
  .register89-frame{
    position:relative !important;
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-height:100svh !important;
    height:auto !important;
    aspect-ratio:auto !important;
    margin:0 !important;
    padding:0 0 calc(28px + env(safe-area-inset-bottom)) !important;
    overflow:visible !important;
    border-radius:0 !important;
    background:#0b3f70 !important;
  }
  .register89-photo{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-height:100svh !important;
    background-size:cover !important;
    background-position:58% top !important;
  }
  .register89-frame::before{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-height:100svh !important;
    background:
      linear-gradient(90deg,rgba(2,27,53,.78),rgba(3,31,58,.38) 58%,rgba(3,25,46,.12)),
      linear-gradient(180deg,rgba(0,16,31,.08) 0%,rgba(0,15,29,.18) 30%,rgba(0,12,24,.72) 100%) !important;
  }
  .register89-brand{
    position:absolute !important;
    z-index:2 !important;
    left:25px !important;
    top:33px !important;
    width:64% !important;
    min-height:0 !important;
    padding:0 !important;
  }
  .register89-logo{
    width:76px !important;
    height:76px !important;
    margin:0 0 12px !important;
  }
  .register89-kicker{font-size:16px !important}
  .register89-brand h1{
    margin-top:4px !important;
    font-size:31px !important;
    line-height:.94 !important;
  }
  .register89-rule{
    width:72% !important;
    margin:14px 0 11px !important;
    font-size:23px !important;
  }
  .register89-subtitle{font-size:17px !important}
  .register89-motto{
    margin-top:12px !important;
    font-size:17px !important;
    line-height:1.2 !important;
  }
  .register89-back{
    position:absolute !important;
    z-index:20 !important;
    top:22px !important;
    right:16px !important;
    left:auto !important;
    width:auto !important;
    min-width:100px !important;
    height:46px !important;
    min-height:46px !important;
    margin:0 !important;
    padding:0 16px !important;
    border-radius:13px !important;
    font-size:16px !important;
  }
  .register89-card{
    position:relative !important;
    z-index:3 !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:calc(100% - 24px) !important;
    max-width:520px !important;
    min-height:0 !important;
    max-height:none !important;
    margin:315px auto 0 !important;
    padding:24px 18px 22px !important;
    overflow:visible !important;
    border-radius:24px !important;
    background:rgba(42,46,49,.76) !important;
    color:#fff !important;
    box-shadow:0 17px 38px rgba(0,0,0,.36) !important;
  }
  .register89-card>h2{
    margin:0 0 4px !important;
    color:#fff !important;
    font-size:31px !important;
    line-height:1.05 !important;
  }
  .register89-card>p{
    margin:0 0 17px !important;
    color:rgba(255,255,255,.88) !important;
    font-size:16px !important;
    line-height:1.25 !important;
  }
  .register89-card .register86-progress{
    display:grid !important;
    grid-template-columns:40px 1fr 40px !important;
    gap:10px !important;
    align-items:center !important;
    margin:0 0 15px !important;
  }
  .register89-card .register86-progress span{
    width:40px !important;
    height:40px !important;
    font-size:16px !important;
  }
  .register89-card .register86-progress i{height:3px !important}
  .register89-card .register86-progress b{
    grid-column:1/-1 !important;
    margin-top:3px !important;
    color:rgba(255,255,255,.88) !important;
    font-size:16px !important;
    text-align:center !important;
  }
  .register89-card .register86-field,
  .register89-card #registerStep2 .register86-field{
    margin-bottom:13px !important;
  }
  .register89-card .register86-field label,
  .register89-card #registerStep2 .register86-field label{
    display:block !important;
    margin:0 0 6px !important;
    color:#fff !important;
    font-size:16px !important;
    line-height:1.2 !important;
  }
  .register89-card .register86-field>div{
    position:relative !important;
  }
  .register89-card .register86-field>div>span{
    left:15px !important;
    font-size:19px !important;
  }
  .register89-card .register86-field input,
  .register89-card #registerStep2 .register86-field input{
    width:100% !important;
    height:55px !important;
    min-height:55px !important;
    box-sizing:border-box !important;
    padding-left:47px !important;
    border:1px solid rgba(255,255,255,.64) !important;
    border-radius:14px !important;
    background:rgba(255,255,255,.13) !important;
    color:#fff !important;
    font-size:17px !important;
  }
  .register89-card .register86-field input::placeholder,
  .register89-card #registerStep2 .register86-field input::placeholder{
    color:rgba(255,255,255,.72) !important;
  }
  .register89-card .register86-eye{
    right:12px !important;
    width:38px !important;
    height:38px !important;
    font-size:18px !important;
  }
  .register89-card .register86-main{
    width:100% !important;
    height:56px !important;
    min-height:56px !important;
    margin:17px 0 0 !important;
    border-radius:14px !important;
    font-size:17px !important;
  }
  .register89-card #registerStep2 .register86-check{
    display:grid !important;
    grid-template-columns:30px 1fr !important;
    gap:10px !important;
    margin:14px 0 !important;
    font-size:15px !important;
    line-height:1.38 !important;
  }
  .register89-card #registerStep2 .register86-check input{
    width:25px !important;
    height:25px !important;
    margin:0 !important;
  }
  .register89-card #registerStep2 .register86-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    margin-top:17px !important;
  }
  .register89-card #registerStep2 .register86-actions button{
    width:100% !important;
    height:55px !important;
    min-height:55px !important;
    border-radius:14px !important;
    font-size:16px !important;
  }
  .register89-card #registerStep2 .register86-role{
    margin:15px 0 0 !important;
    padding:13px 14px !important;
    border-radius:12px !important;
    font-size:14px !important;
    line-height:1.4 !important;
  }
}


/* V4.121 — escala móvil equilibrada y lema libre de superposición */
@media (max-width:600px){
  .login40-brand{
    width:68% !important;
    min-height:322px !important;
    padding:32px 0 20px 24px !important;
  }
  .login40-logo{
    width:74px !important;
    height:74px !important;
    margin-bottom:12px !important;
  }
  .login40-kicker{font-size:16px !important}
  .login40-name{
    font-size:32px !important;
    line-height:.96 !important;
  }
  .login40-rule{
    width:75% !important;
    margin:14px 0 11px !important;
    font-size:23px !important;
  }
  .login40-subtitle{font-size:17px !important}
  .login40-motto{
    margin-top:13px !important;
    font-size:17px !important;
    line-height:1.2 !important;
  }
  .login40-card{
    width:calc(100% - 32px) !important;
    margin:0 16px !important;
    padding:21px 17px 16px !important;
    border-radius:23px !important;
  }
  .login40-card h2{font-size:28px !important}
  .login40-help{
    margin:6px 0 15px !important;
    font-size:16px !important;
  }
  .login40-form{gap:10px !important}
  .login40-field{height:52px !important}
  .login40-field input{
    padding-left:46px !important;
    font-size:17px !important;
  }
  .login40-icon{left:15px !important;font-size:18px !important}
  .login40-primary,
  .login40-secondary{
    height:52px !important;
    min-height:52px !important;
    font-size:16px !important;
  }
  .login40-link{
    min-height:42px !important;
    padding:10px 3px 5px !important;
    font-size:15px !important;
  }
  .login40-masses{
    min-height:45px !important;
    padding:8px 3px !important;
    font-size:16px !important;
  }
  .login40-foot{
    margin-top:5px !important;
    font-size:11px !important;
  }

  .register89-brand{
    left:22px !important;
    top:26px !important;
    width:61% !important;
  }
  .register89-logo{
    width:66px !important;
    height:66px !important;
    margin-bottom:9px !important;
  }
  .register89-kicker{font-size:15px !important}
  .register89-brand h1{
    font-size:27px !important;
    line-height:.95 !important;
  }
  .register89-rule{
    width:70% !important;
    margin:11px 0 8px !important;
    font-size:20px !important;
  }
  .register89-subtitle{font-size:15px !important}
  .register89-motto{
    width:270px !important;
    max-width:78vw !important;
    margin-top:9px !important;
    font-size:15px !important;
    line-height:1.18 !important;
  }
  .register89-back{
    top:18px !important;
    right:14px !important;
    min-width:92px !important;
    height:42px !important;
    min-height:42px !important;
    padding:0 14px !important;
    font-size:15px !important;
  }
  .register89-card{
    width:calc(100% - 28px) !important;
    margin:330px auto 0 !important;
    padding:21px 17px 19px !important;
    border-radius:22px !important;
  }
  .register89-card>h2{font-size:28px !important}
  .register89-card>p{
    margin-bottom:14px !important;
    font-size:15px !important;
  }
  .register89-card .register86-progress{
    grid-template-columns:35px 1fr 35px !important;
    gap:9px !important;
    margin-bottom:13px !important;
  }
  .register89-card .register86-progress span{
    width:35px !important;
    height:35px !important;
    font-size:15px !important;
  }
  .register89-card .register86-progress b{
    margin-top:1px !important;
    font-size:15px !important;
  }
  .register89-card .register86-field,
  .register89-card #registerStep2 .register86-field{
    margin-bottom:11px !important;
  }
  .register89-card .register86-field label,
  .register89-card #registerStep2 .register86-field label{
    margin-bottom:5px !important;
    font-size:15px !important;
  }
  .register89-card .register86-field input,
  .register89-card #registerStep2 .register86-field input{
    height:50px !important;
    min-height:50px !important;
    padding-left:44px !important;
    border-radius:13px !important;
    font-size:16px !important;
  }
  .register89-card .register86-field>div>span{
    left:14px !important;
    font-size:18px !important;
  }
  .register89-card .register86-main{
    height:52px !important;
    min-height:52px !important;
    margin-top:14px !important;
    font-size:16px !important;
  }
  .register89-card #registerStep2 .register86-actions button{
    height:52px !important;
    min-height:52px !important;
    font-size:15px !important;
  }
}


/* V4.124 — escritorio estable con escalado proporcional, sin alterar la composición */
@media (min-width:601px){
  .login40-page,
  .register89-page{
    min-height:100svh !important;
    padding:16px 0 !important;
    box-sizing:border-box !important;
    overflow:auto !important;
  }
  .login40-frame{
    width:min(92vw,70svh,760px) !important;
    max-width:760px !important;
    max-height:none !important;
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:2/3 !important;
  }
  .register89-frame{
    width:min(90vw,64svh,640px) !important;
    max-width:640px !important;
    max-height:none !important;
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:2/3 !important;
    margin:0 auto !important;
    overflow:hidden !important;
  }
}


/* V4.125 — registro legible en PC y recuperación integrada */
@media (min-width: 601px){
  .register89-frame{
    width:min(90vw,68svh,680px)!important;
    max-width:680px!important;
  }
  .register89-brand{
    left:5.5%!important;
    top:8.5%!important;
    width:25%!important;
  }
  .register89-card{
    left:32%!important;
    right:auto!important;
    top:13.5%!important;
    bottom:3.5%!important;
    width:64%!important;
    padding:3.4% 4%!important;
    overflow:visible!important;
  }
  .register89-card h2{
    font-size:clamp(27px,2.4vw,34px)!important;
    line-height:1!important;
    margin:0 0 4px!important;
  }
  .register89-card > p{
    font-size:14px!important;
    line-height:1.25!important;
    margin:0 0 8px!important;
  }
  .register89-progress{
    margin:4px 0 7px!important;
  }
  .register89-progress-line{
    height:2px!important;
  }
  .register89-step{
    width:32px!important;
    height:32px!important;
    font-size:14px!important;
  }
  .register89-step-label{
    font-size:14px!important;
    margin:0 0 8px!important;
  }
  .register89-field{
    margin-bottom:7px!important;
  }
  .register89-field label{
    font-size:13px!important;
    line-height:1.2!important;
    margin-bottom:4px!important;
  }
  .register89-input{
    min-height:40px!important;
    height:40px!important;
    border-radius:10px!important;
  }
  .register89-input input,
  .register89-input select{
    font-size:14px!important;
  }
  .register89-primary{
    min-height:42px!important;
    height:42px!important;
    margin-top:7px!important;
    font-size:14px!important;
  }
  .register89-back{
    min-height:46px!important;
    padding:0 24px!important;
    font-size:15px!important;
  }
}

.recovery40-page{
  min-height:100svh;
  display:grid;
  place-items:center;
  padding:28px;
  background:linear-gradient(145deg,#062b4d,#0b4d78);
  color:#fff;
}
.recovery40-frame{
  position:relative;
  width:min(94vw,1000px);
  min-height:min(720px,calc(100svh - 56px));
  overflow:hidden;
  border-radius:30px;
  box-shadow:0 24px 70px rgba(0,23,43,.38);
  isolation:isolate;
}
.recovery40-photo{
  position:absolute;
  inset:0;
  z-index:-2;
  background-image:var(--parish-photo);
  background-size:cover;
  background-position:center;
}
.recovery40-frame::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(0,35,65,.93) 0%,rgba(0,35,65,.72) 34%,rgba(0,20,37,.18) 64%,rgba(0,20,37,.06) 100%);
}
.recovery40-brand{
  position:absolute;
  left:6%;
  top:10%;
  width:28%;
  text-shadow:0 2px 12px rgba(0,0,0,.38);
}
.recovery40-logo{
  width:82px;
  height:82px;
  border-radius:50%;
  overflow:hidden;
  background:#fff;
  margin-bottom:15px;
  box-shadow:0 8px 22px rgba(0,0,0,.28);
}
.recovery40-logo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.recovery40-kicker{
  font-size:18px;
}
.recovery40-brand h1{
  margin:3px 0 16px;
  font-family:Georgia,serif;
  font-size:clamp(32px,4vw,49px);
  line-height:.92;
}
.recovery40-rule{
  display:flex;
  align-items:center;
  gap:10px;
  color:#f4b928;
  margin:0 0 14px;
}
.recovery40-rule span{
  height:3px;
  flex:1;
  background:#f4b928;
}
.recovery40-rule b{
  font-size:28px;
}
.recovery40-brand p{
  margin:0;
  font-size:20px;
}
.recovery40-card{
  position:absolute;
  right:5%;
  top:10%;
  width:52%;
  max-width:520px;
  padding:32px 34px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:28px;
  background:linear-gradient(145deg,rgba(22,35,51,.93),rgba(73,64,52,.88));
  box-shadow:0 20px 55px rgba(0,0,0,.34);
  backdrop-filter:blur(10px);
}
.recovery40-back{
  min-height:48px;
  padding:0 20px;
  margin:0 0 22px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:14px;
  background:rgba(4,66,105,.68);
  color:#fff;
  font-size:16px;
  font-weight:800;
  cursor:pointer;
}
.recovery40-eyebrow{
  color:#f4c34f;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
}
.recovery40-card h2{
  margin:5px 0 5px;
  color:#fff;
  font-family:Georgia,serif;
  font-size:clamp(34px,4vw,46px);
  line-height:1;
}
.recovery40-lead{
  margin:0 0 18px;
  color:#eef5fb;
  font-size:17px;
}
.recovery40-note{
  display:grid;
  gap:6px;
  margin:0 0 20px;
  padding:15px 16px;
  border:1px solid rgba(244,185,40,.7);
  border-radius:16px;
  background:rgba(255,244,211,.94);
  color:#553b00;
  font-size:14px;
  line-height:1.4;
}
.recovery40-field label{
  display:block;
  margin:0 0 7px;
  color:#fff;
  font-size:15px;
  font-weight:800;
}
.recovery40-input{
  display:flex;
  align-items:center;
  min-height:56px;
  padding:0 16px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:14px;
  background:rgba(255,255,255,.96);
  color:#07588e;
}
.recovery40-input input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  padding:0 0 0 12px;
  background:transparent;
  color:#17354c;
  font-size:17px;
}
.recovery40-primary,
.recovery40-secondary{
  width:100%;
  min-height:54px;
  margin-top:13px;
  border-radius:14px;
  color:#fff;
  font-size:16px;
  font-weight:900;
  cursor:pointer;
}
.recovery40-primary{
  border:1px solid #fff;
  background:linear-gradient(90deg,#0b4f89,#087cb6);
}
.recovery40-secondary{
  border:1px solid rgba(255,255,255,.85);
  background:transparent;
}
.recovery40-primary span{
  margin-left:10px;
  color:#f4c34f;
  font-size:22px;
}

@media (max-width: 600px){
  .recovery40-page{
    display:block;
    min-height:100svh;
    padding:0;
    background:#062b4d;
  }
  .recovery40-frame{
    width:100%;
    min-height:100svh;
    border-radius:0;
    overflow:visible;
    padding:34px 14px 30px;
  }
  .recovery40-frame::after{
    position:fixed;
    background:linear-gradient(180deg,rgba(0,37,68,.3) 0%,rgba(0,28,52,.68) 34%,rgba(0,20,38,.94) 100%);
  }
  .recovery40-photo{
    position:fixed;
    background-position:center top;
  }
  .recovery40-brand{
    position:relative;
    left:auto;
    top:auto;
    width:72%;
    margin:0 0 30px 12px;
  }
  .recovery40-logo{
    width:78px;
    height:78px;
    margin-bottom:12px;
  }
  .recovery40-kicker{
    font-size:17px;
  }
  .recovery40-brand h1{
    font-size:38px;
    margin-bottom:14px;
  }
  .recovery40-brand p{
    font-size:18px;
  }
  .recovery40-card{
    position:relative;
    inset:auto;
    width:100%;
    max-width:none;
    padding:25px 20px 26px;
    border-radius:26px;
  }
  .recovery40-back{
    min-height:52px;
    margin-bottom:22px;
    font-size:16px;
  }
  .recovery40-card h2{
    font-size:38px;
  }
  .recovery40-lead{
    font-size:17px;
  }
  .recovery40-note{
    font-size:15px;
  }
  .recovery40-input{
    min-height:58px;
  }
  .recovery40-input input{
    font-size:17px;
  }
  .recovery40-primary,
  .recovery40-secondary{
    min-height:58px;
    font-size:16px;
  }
}


/* V4.126 — composición final de escritorio: encuadre completo y tarjetas de altura natural */
@media (min-width:601px){
  .login40-page,
  .register89-page{
    min-height:100svh!important;
    padding:8px 0!important;
    overflow:auto!important;
  }

  .login40-frame,
  .register89-frame{
    width:min(94vw,calc((100svh - 16px) * .666667),700px)!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:2/3!important;
    margin:0 auto!important;
    overflow:hidden!important;
  }

  .login40-brand{
    left:9.4%!important;
    top:8.2%!important;
    width:45%!important;
  }
  .login40-card{
    position:absolute!important;
    left:13%!important;
    right:auto!important;
    top:auto!important;
    bottom:3.2%!important;
    width:74%!important;
    height:auto!important;
    min-height:0!important;
    padding:3.2% 5% 2.8%!important;
    margin:0!important;
    overflow:visible!important;
  }
  .login40-card h2{
    font-size:max(27px,6.1cqw)!important;
    line-height:1!important;
  }
  .login40-help{
    margin:1.2% 0 3.2%!important;
    font-size:max(14px,2.9cqw)!important;
  }
  .login40-form{
    gap:max(7px,1.35cqw)!important;
  }
  .login40-field{
    height:max(38px,7cqw)!important;
    min-height:0!important;
  }
  .login40-field input{
    font-size:max(15px,2.9cqw)!important;
  }
  .login40-primary,
  .login40-secondary{
    height:max(36px,6.3cqw)!important;
    min-height:0!important;
    font-size:max(14px,2.8cqw)!important;
  }
  .login40-link{
    min-height:max(34px,6cqw)!important;
    padding:6px 2px!important;
    font-size:max(14px,2.6cqw)!important;
  }
  .login40-masses{
    min-height:max(38px,6.8cqw)!important;
    padding:6px 2px!important;
    font-size:max(14px,2.7cqw)!important;
  }
  .login40-foot{
    margin-top:5px!important;
  }

  .register89-brand{
    left:5.5%!important;
    top:8%!important;
    width:25%!important;
  }
  .register89-back{
    top:4.5%!important;
    right:4.5%!important;
    min-width:112px!important;
    min-height:46px!important;
    height:46px!important;
    padding:0 20px!important;
    font-size:15px!important;
  }
  .register89-card{
    position:absolute!important;
    left:31.5%!important;
    right:auto!important;
    top:15.5%!important;
    bottom:auto!important;
    width:64%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:20px 21px 21px!important;
    overflow:visible!important;
    border-radius:22px!important;
  }
  .register89-card h2{
    margin:0 0 4px!important;
    font-size:32px!important;
    line-height:1!important;
  }
  .register89-card > p{
    margin:0 0 9px!important;
    font-size:14px!important;
    line-height:1.25!important;
  }
  .register89-card .register86-progress{
    margin:4px 0 8px!important;
  }
  .register89-card .register86-step{
    width:32px!important;
    height:32px!important;
    font-size:14px!important;
  }
  .register89-card .register86-step-label{
    margin:0 0 8px!important;
    font-size:14px!important;
  }
  .register89-card .register86-field{
    margin-bottom:7px!important;
  }
  .register89-card .register86-field label{
    margin-bottom:4px!important;
    font-size:13px!important;
    line-height:1.2!important;
  }
  .register89-card .register86-field input,
  .register89-card .register86-field select{
    height:42px!important;
    min-height:42px!important;
    border-radius:10px!important;
    font-size:15px!important;
  }
  .register89-card .register86-main{
    height:43px!important;
    min-height:43px!important;
    margin-top:7px!important;
    border-radius:10px!important;
    font-size:14px!important;
  }
}


/* V4.127 — reparación inmediata del registro y separación limpia del acceso */
@media (min-width:601px){
  /* register86-step es el panel completo, nunca un círculo del progreso */
  .register89-card .register86-step{
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    font-size:inherit!important;
  }
  .register89-card .register86-progress > span{
    width:32px!important;
    height:32px!important;
    font-size:14px!important;
  }
  .register89-card .register86-field,
  .register89-card .register86-field > div,
  .register89-card .register86-field input{
    width:100%!important;
    box-sizing:border-box!important;
  }

  /* La identidad queda completa arriba, sin quedar detrás del formulario */
  .login40-brand{
    top:5.5%!important;
  }
  .login40-logo{
    width:34%!important;
    margin-bottom:3.5%!important;
  }
  .login40-kicker{
    font-size:3.45cqw!important;
    margin-bottom:1%!important;
  }
  .login40-name{
    font-size:6.35cqw!important;
    line-height:.94!important;
  }
  .login40-rule{
    margin:3.4% 0 2.7%!important;
    font-size:4.5cqw!important;
  }
  .login40-subtitle{
    font-size:3.45cqw!important;
  }
  .login40-motto{
    margin-top:4.2%!important;
    font-size:3.45cqw!important;
    line-height:1.12!important;
  }
}


/* V4.128 — ajuste puntual solicitado, sin cambiar tamaños */
@media (min-width:601px){
  .login40-motto{
    width:112%!important;
    margin-top:1.2%!important;
    font-size:2.9cqw!important;
    line-height:1.06!important;
  }
  .register89-card{
    top:12.5%!important;
  }
}


/* V4.129 — escritorio horizontal real; móvil conserva su composición vertical */
@media (min-width:769px){
  .login40-page,
  .register89-page{
    min-height:100svh!important;
    display:grid!important;
    place-items:center!important;
    padding:16px!important;
    overflow:auto!important;
    box-sizing:border-box!important;
    background:linear-gradient(145deg,#062b4d,#0b4d78)!important;
  }

  .login40-frame,
  .register89-frame{
    position:relative!important;
    width:min(94vw,1060px)!important;
    height:min(680px,calc(100svh - 32px))!important;
    min-height:620px!important;
    max-width:1060px!important;
    max-height:680px!important;
    aspect-ratio:auto!important;
    margin:0 auto!important;
    overflow:hidden!important;
    border-radius:28px!important;
    box-shadow:0 24px 70px rgba(0,23,43,.38)!important;
    container-type:normal!important;
  }

  .login40-photo,
  .register89-photo{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    background-size:cover!important;
    background-position:center!important;
  }

  .login40-frame::before,
  .register89-frame::before{
    background:linear-gradient(90deg,rgba(0,35,65,.96) 0%,rgba(0,35,65,.82) 31%,rgba(0,26,49,.35) 50%,rgba(0,18,34,.08) 100%)!important;
  }

  .login40-brand,
  .register89-brand{
    position:absolute!important;
    z-index:2!important;
    left:6%!important;
    top:9%!important;
    width:29%!important;
    color:#fff!important;
    text-shadow:0 2px 12px rgba(0,0,0,.38)!important;
  }

  .login40-logo,
  .register89-logo{
    width:82px!important;
    height:82px!important;
    aspect-ratio:1!important;
    margin:0 0 15px!important;
  }

  .login40-kicker,
  .register89-kicker{
    margin:0 0 4px!important;
    font:400 18px/1.05 Arial,sans-serif!important;
  }

  .login40-name,
  .register89-brand h1{
    margin:0!important;
    max-width:100%!important;
    font:700 46px/.94 Georgia,"Times New Roman",serif!important;
    letter-spacing:-.02em!important;
  }

  .login40-rule,
  .register89-rule{
    width:86%!important;
    margin:21px 0 15px!important;
    gap:10px!important;
    font-size:27px!important;
  }

  .login40-subtitle,
  .register89-subtitle{
    font:400 20px/1.1 Arial,sans-serif!important;
  }

  .login40-motto,
  .register89-motto{
    width:100%!important;
    max-width:300px!important;
    margin-top:18px!important;
    white-space:normal!important;
    font:italic 19px/1.2 Georgia,"Times New Roman",serif!important;
  }

  .login40-card{
    position:absolute!important;
    z-index:3!important;
    left:auto!important;
    right:5%!important;
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
    width:52%!important;
    max-width:530px!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:30px 34px 26px!important;
    overflow:visible!important;
    border-radius:28px!important;
    background:linear-gradient(145deg,rgba(25,37,52,.94),rgba(79,67,53,.90))!important;
    box-sizing:border-box!important;
  }

  .login40-card h2{
    margin:0!important;
    font-size:42px!important;
    line-height:1!important;
  }

  .login40-help{
    margin:5px 0 18px!important;
    font-size:17px!important;
    line-height:1.2!important;
  }

  .login40-form{
    gap:11px!important;
  }

  .login40-field{
    width:100%!important;
    height:54px!important;
    min-height:54px!important;
  }

  .login40-field input{
    padding-left:50px!important;
    font-size:17px!important;
    border-radius:14px!important;
  }

  .login40-icon{
    left:17px!important;
    font-size:19px!important;
  }

  .login40-primary,
  .login40-secondary{
    height:52px!important;
    min-height:52px!important;
    border-radius:14px!important;
    font-size:16px!important;
  }

  .login40-link{
    min-height:45px!important;
    padding:10px 4px!important;
    font-size:15px!important;
  }

  .login40-masses{
    min-height:50px!important;
    padding:9px 4px!important;
    font-size:16px!important;
  }

  .login40-foot{
    margin-top:7px!important;
    font-size:11px!important;
  }

  .register89-back{
    position:absolute!important;
    z-index:20!important;
    top:5%!important;
    right:5%!important;
    left:auto!important;
    width:auto!important;
    min-width:132px!important;
    height:48px!important;
    min-height:48px!important;
    margin:0!important;
    padding:0 22px!important;
    border-radius:14px!important;
    color:#fff!important;
    border-color:rgba(255,255,255,.9)!important;
    background:rgba(4,66,105,.76)!important;
    font-size:16px!important;
  }

  .register89-card{
    position:absolute!important;
    z-index:3!important;
    left:auto!important;
    right:5%!important;
    top:51%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
    width:56%!important;
    max-width:570px!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:24px 28px 25px!important;
    overflow:visible!important;
    border-radius:28px!important;
    box-sizing:border-box!important;
    background:linear-gradient(145deg,rgba(25,37,52,.94),rgba(79,67,53,.90))!important;
  }

  .register89-card > h2{
    margin:0 0 4px!important;
    color:#fff!important;
    font-size:40px!important;
    line-height:1!important;
  }

  .register89-card > p{
    margin:0 0 8px!important;
    color:#eef5fb!important;
    font-size:16px!important;
  }

  .register89-card .register86-progress{
    margin:5px 0 8px!important;
  }

  .register89-card .register86-progress > span{
    width:34px!important;
    height:34px!important;
    font-size:15px!important;
  }

  .register89-card .register86-step{
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    font-size:inherit!important;
  }

  .register89-card .register86-field{
    width:100%!important;
    margin-bottom:7px!important;
  }

  .register89-card .register86-field label{
    margin:0 0 4px!important;
    color:#fff!important;
    font-size:14px!important;
    line-height:1.15!important;
  }

  .register89-card .register86-field > div{
    width:100%!important;
    height:44px!important;
    min-height:44px!important;
    box-sizing:border-box!important;
  }

  .register89-card .register86-field input{
    width:100%!important;
    height:44px!important;
    min-height:44px!important;
    padding-left:46px!important;
    border-radius:11px!important;
    font-size:16px!important;
    box-sizing:border-box!important;
  }

  .register89-card .register86-main{
    width:100%!important;
    height:46px!important;
    min-height:46px!important;
    margin-top:8px!important;
    border-radius:11px!important;
    font-size:15px!important;
  }

  .register89-card #registerStep2 .register86-field input{
    height:48px!important;
    min-height:48px!important;
  }

  .register89-card #registerStep2 .register86-check{
    font-size:14px!important;
    line-height:1.3!important;
  }

  .register89-card #registerStep2 .register86-actions button{
    min-height:48px!important;
    font-size:14px!important;
  }
}

@media (min-width:769px) and (max-height:660px){
  .login40-frame,
  .register89-frame{
    min-height:600px!important;
    height:calc(100svh - 20px)!important;
  }
  .login40-page,
  .register89-page{
    padding:10px!important;
  }
  .register89-card{
    top:50%!important;
    padding-top:18px!important;
    padding-bottom:18px!important;
  }
  .register89-card .register86-field{
    margin-bottom:5px!important;
  }
  .register89-card .register86-field > div,
  .register89-card .register86-field input{
    height:40px!important;
    min-height:40px!important;
  }
}


/* V4.130 — foto completa en PC y registro contenido */
@media (min-width:769px){
  .login40-photo,
  .register89-photo{
    background-color:#052d52!important;
    background-size:auto 100%!important;
    background-position:right center!important;
  }

  .register89-card{
    top:49%!important;
    padding:20px 28px 20px!important;
  }

  .register89-card .register86-field{
    margin-bottom:5px!important;
  }

  .register89-card .register86-main{
    margin-top:6px!important;
  }
}


/* V4.131 — escritorio multiparroquia: identidad, templo visible e ingreso */
@media (min-width:769px){
  .login40-frame,
  .register89-frame{
    background:#052d52!important;
  }

  .login40-photo,
  .register89-photo{
    left:27%!important;
    right:auto!important;
    width:46%!important;
    height:100%!important;
    background-size:cover!important;
    background-position:center center!important;
    filter:saturate(.96) brightness(1.02) contrast(1.03)!important;
  }

  .login40-frame::before,
  .register89-frame::before{
    background:
      linear-gradient(90deg,
        rgba(0,36,66,.98) 0%,
        rgba(0,36,66,.91) 25%,
        rgba(0,31,57,.20) 39%,
        rgba(0,22,40,.05) 66%,
        rgba(0,18,34,.34) 100%)!important;
  }

  .login40-brand,
  .register89-brand{
    left:5%!important;
    top:9%!important;
    width:24%!important;
  }

  .login40-name,
  .register89-brand h1{
    font-size:42px!important;
  }

  .login40-rule,
  .register89-rule{
    width:92%!important;
  }

  .login40-motto,
  .register89-motto{
    max-width:260px!important;
    font-size:18px!important;
  }

  .login40-card{
    right:3%!important;
    width:45%!important;
    max-width:480px!important;
    padding-left:28px!important;
    padding-right:28px!important;
  }

  .register89-card{
    right:2.5%!important;
    width:47%!important;
    max-width:500px!important;
    padding-left:24px!important;
    padding-right:24px!important;
  }

  .register89-back{
    right:3%!important;
  }
}


/* V4.132 — composición PC compacta con fotografía completa */
@media (min-width:769px){
  .login40-page,
  .register89-page{
    padding:20px!important;
  }

  .login40-frame,
  .register89-frame{
    width:min(90vw,930px)!important;
    height:min(620px,calc(100svh - 40px))!important;
    min-height:580px!important;
    max-width:930px!important;
    max-height:620px!important;
  }

  .login40-photo,
  .register89-photo{
    inset:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    height:100%!important;
    background-color:#052d52!important;
    background-size:contain!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
  }

  .login40-frame::before,
  .register89-frame::before{
    background:
      linear-gradient(90deg,
        rgba(0,36,66,.99) 0%,
        rgba(0,36,66,.92) 27%,
        rgba(0,31,57,.18) 40%,
        rgba(0,24,44,.06) 61%,
        rgba(0,20,37,.58) 77%,
        rgba(0,20,37,.78) 100%)!important;
  }

  .login40-brand,
  .register89-brand{
    left:5.5%!important;
    top:9%!important;
    width:25%!important;
  }

  .login40-logo,
  .register89-logo{
    width:72px!important;
    height:72px!important;
    margin-bottom:12px!important;
  }

  .login40-kicker,
  .register89-kicker{
    font-size:16px!important;
  }

  .login40-name,
  .register89-brand h1{
    font-size:38px!important;
    line-height:.95!important;
  }

  .login40-rule,
  .register89-rule{
    width:90%!important;
    margin:17px 0 12px!important;
    font-size:24px!important;
  }

  .login40-subtitle,
  .register89-subtitle{
    font-size:18px!important;
  }

  .login40-motto,
  .register89-motto{
    max-width:235px!important;
    margin-top:14px!important;
    font-size:16px!important;
    line-height:1.18!important;
  }

  .login40-card{
    right:4%!important;
    width:42%!important;
    max-width:410px!important;
    padding:24px 26px 21px!important;
    border-radius:24px!important;
  }

  .login40-card h2{
    font-size:36px!important;
  }

  .login40-help{
    margin:4px 0 14px!important;
    font-size:15px!important;
  }

  .login40-form{
    gap:9px!important;
  }

  .login40-field{
    height:48px!important;
    min-height:48px!important;
  }

  .login40-field input{
    padding-left:46px!important;
    font-size:16px!important;
    border-radius:12px!important;
  }

  .login40-icon{
    left:15px!important;
    font-size:17px!important;
  }

  .login40-primary,
  .login40-secondary{
    height:46px!important;
    min-height:46px!important;
    border-radius:12px!important;
    font-size:15px!important;
  }

  .login40-link{
    min-height:39px!important;
    padding:7px 3px!important;
    font-size:14px!important;
  }

  .login40-masses{
    min-height:44px!important;
    padding:7px 3px!important;
    font-size:14px!important;
  }

  .login40-foot{
    margin-top:5px!important;
    font-size:10px!important;
  }

  .register89-card{
    right:3%!important;
    top:50%!important;
    width:46%!important;
    max-width:440px!important;
    padding:18px 22px 18px!important;
    border-radius:24px!important;
  }

  .register89-back{
    top:4%!important;
    right:3.5%!important;
    min-width:110px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0 17px!important;
    font-size:14px!important;
  }

  .register89-card > h2{
    font-size:34px!important;
  }

  .register89-card > p{
    font-size:14px!important;
    margin-bottom:5px!important;
  }

  .register89-card .register86-progress{
    margin:3px 0 5px!important;
  }

  .register89-card .register86-progress > span{
    width:30px!important;
    height:30px!important;
    font-size:14px!important;
  }

  .register89-card .register86-field{
    margin-bottom:4px!important;
  }

  .register89-card .register86-field label{
    margin-bottom:3px!important;
    font-size:13px!important;
  }

  .register89-card .register86-field > div,
  .register89-card .register86-field input{
    height:40px!important;
    min-height:40px!important;
  }

  .register89-card .register86-field input{
    padding-left:43px!important;
    font-size:15px!important;
    border-radius:10px!important;
  }

  .register89-card .register86-main{
    height:42px!important;
    min-height:42px!important;
    margin-top:5px!important;
    font-size:14px!important;
  }
}


/* V4.133 — escritorio definitivo en dos planos: templo + formulario */
@media (min-width:769px){
  .login40-frame,
  .register89-frame{
    width:min(92vw,980px)!important;
    height:min(620px,calc(100svh - 40px))!important;
    min-height:580px!important;
    max-width:980px!important;
    max-height:620px!important;
    background:#062e52!important;
  }

  .login40-photo,
  .register89-photo{
    inset:0 auto 0 0!important;
    width:58%!important;
    height:100%!important;
    background-color:#062e52!important;
    background-size:auto 100%!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
  }

  .login40-frame::before,
  .register89-frame::before{
    background:
      linear-gradient(90deg,
        rgba(0,35,64,.96) 0%,
        rgba(0,35,64,.82) 24%,
        rgba(0,30,55,.18) 43%,
        rgba(0,24,44,.05) 56%,
        rgba(0,22,40,.58) 62%,
        rgba(0,22,40,.90) 100%)!important;
  }

  .login40-brand,
  .register89-brand{
    left:4.5%!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:25%!important;
  }

  .login40-logo,
  .register89-logo{
    width:72px!important;
    height:72px!important;
  }

  .login40-name,
  .register89-brand h1{
    font-size:37px!important;
  }

  .login40-card{
    right:2.5%!important;
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
    width:44%!important;
    max-width:430px!important;
    height:auto!important;
    min-height:0!important;
    padding:23px 25px 20px!important;
    border-radius:24px!important;
    overflow:hidden!important;
  }

  .login40-card h2{
    font-size:35px!important;
  }

  .login40-form{
    gap:8px!important;
  }

  .login40-field{
    height:47px!important;
    min-height:47px!important;
  }

  .login40-primary,
  .login40-secondary{
    height:45px!important;
    min-height:45px!important;
  }

  .login40-link{
    min-height:37px!important;
    padding:6px 2px!important;
  }

  .login40-masses{
    min-height:42px!important;
    padding:6px 2px!important;
  }

  .login40-foot{
    display:grid!important;
    grid-template-columns:1fr auto 1fr!important;
    align-items:center!important;
    gap:7px!important;
    width:100%!important;
    margin-top:5px!important;
    overflow:hidden!important;
  }

  .login40-foot em{
    grid-column:1 / -1!important;
    grid-row:2!important;
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    text-align:center!important;
    font-size:10px!important;
    line-height:1.15!important;
  }

  .login40-foot b{
    grid-column:2!important;
    grid-row:1!important;
  }

  .login40-foot span{
    grid-row:1!important;
    min-width:0!important;
  }

  .register89-card{
    right:2.5%!important;
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
    width:47%!important;
    max-width:460px!important;
    height:auto!important;
    min-height:0!important;
    max-height:calc(100% - 28px)!important;
    padding:18px 22px!important;
    overflow:hidden!important;
    border-radius:24px!important;
  }

  .register89-back{
    top:4%!important;
    right:3.5%!important;
    z-index:30!important;
  }

  .register89-card > h2{
    padding-right:100px!important;
    font-size:33px!important;
  }

  .register89-card .register86-field{
    margin-bottom:4px!important;
  }

  .register89-card .register86-field > div,
  .register89-card .register86-field input{
    height:40px!important;
    min-height:40px!important;
  }

  .register89-card .register86-main{
    height:42px!important;
    min-height:42px!important;
  }
}


/* V4.134 — transición suave entre fotografía y panel */
@media (min-width:769px){
  .login40-photo,
  .register89-photo{
    width:63%!important;
    -webkit-mask-image:linear-gradient(to right,#000 0%,#000 82%,rgba(0,0,0,.82) 88%,rgba(0,0,0,.35) 95%,transparent 100%)!important;
    mask-image:linear-gradient(to right,#000 0%,#000 82%,rgba(0,0,0,.82) 88%,rgba(0,0,0,.35) 95%,transparent 100%)!important;
  }
}


/* V4.135 — fotografía integrada al fondo, sin cortes laterales */
@media (min-width:769px){
  .login40-photo,
  .register89-photo{
    width:72%!important;
    background-position:center center!important;
    -webkit-mask-image:linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,.18) 5%,
      rgba(0,0,0,.55) 12%,
      rgba(0,0,0,.88) 20%,
      #000 29%,
      #000 72%,
      rgba(0,0,0,.90) 80%,
      rgba(0,0,0,.58) 88%,
      rgba(0,0,0,.20) 96%,
      transparent 100%
    )!important;
    mask-image:linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,.18) 5%,
      rgba(0,0,0,.55) 12%,
      rgba(0,0,0,.88) 20%,
      #000 29%,
      #000 72%,
      rgba(0,0,0,.90) 80%,
      rgba(0,0,0,.58) 88%,
      rgba(0,0,0,.20) 96%,
      transparent 100%
    )!important;
  }

  .login40-frame::before,
  .register89-frame::before{
    background:
      linear-gradient(
        90deg,
        rgba(0,35,64,.96) 0%,
        rgba(0,35,64,.82) 18%,
        rgba(0,31,57,.42) 27%,
        rgba(0,27,50,.10) 39%,
        rgba(0,24,44,.06) 58%,
        rgba(0,22,40,.34) 69%,
        rgba(0,22,40,.78) 82%,
        rgba(0,22,40,.94) 100%
      )!important;
  }
}


/* V4.136 — elimina los cortes rectos internos de la fotografía en escritorio */
@media (min-width:769px){
  .login40-photo,
  .register89-photo{
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }

  .login40-frame::before,
  .register89-frame::before{
    background:linear-gradient(
      90deg,
      #062e52 0%,
      rgba(6,46,82,.99) 17%,
      rgba(6,46,82,.94) 20%,
      rgba(6,46,82,.76) 24%,
      rgba(6,46,82,.48) 29%,
      rgba(6,46,82,.20) 34%,
      rgba(6,46,82,0) 40%,
      rgba(6,46,82,0) 48%,
      rgba(6,46,82,.16) 53%,
      rgba(6,46,82,.46) 58%,
      rgba(6,46,82,.76) 63%,
      rgba(6,46,82,.94) 69%,
      #062e52 76%,
      #062e52 100%
    )!important;
  }
}


/* V4.137 — fusión visual real: capa sobre la foto y borde del panel suavizado */
@media (min-width:769px){
  .login40-frame::before,
  .register89-frame::before{
    z-index:1!important;
    background:
      linear-gradient(
        90deg,
        rgba(5,43,76,.98) 0%,
        rgba(5,43,76,.96) 14%,
        rgba(5,43,76,.82) 19%,
        rgba(5,43,76,.56) 24%,
        rgba(5,43,76,.28) 30%,
        rgba(5,43,76,.08) 35%,
        transparent 40%,
        transparent 48%,
        rgba(17,34,50,.08) 52%,
        rgba(17,34,50,.30) 57%,
        rgba(17,34,50,.58) 63%,
        rgba(17,34,50,.84) 70%,
        rgba(17,34,50,.96) 78%,
        rgba(17,34,50,.98) 100%
      )!important;
  }

  .login40-card,
  .register89-card{
    border-left-color:rgba(255,255,255,.16)!important;
    box-shadow:
      -48px 0 64px rgba(17,34,50,.58),
      0 16px 42px rgba(0,0,0,.30)!important;
  }
}


/* V4.138 — difuminado verdadero aplicado directamente a ambos lados de la foto */
@media (min-width:769px){
  .login40-frame,
  .register89-frame{
    background:linear-gradient(90deg,#062e52 0%,#062e52 48%,#1b2835 62%,#1b2835 100%)!important;
  }

  .login40-photo,
  .register89-photo{
    width:72%!important;
    background-size:auto 100%!important;
    background-position:center center!important;
    -webkit-mask-image:linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,.10) 17%,
      rgba(0,0,0,.42) 25%,
      rgba(0,0,0,.78) 34%,
      #000 43%,
      #000 66%,
      rgba(0,0,0,.82) 73%,
      rgba(0,0,0,.48) 82%,
      rgba(0,0,0,.16) 92%,
      transparent 100%
    )!important;
    mask-image:linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,.10) 17%,
      rgba(0,0,0,.42) 25%,
      rgba(0,0,0,.78) 34%,
      #000 43%,
      #000 66%,
      rgba(0,0,0,.82) 73%,
      rgba(0,0,0,.48) 82%,
      rgba(0,0,0,.16) 92%,
      transparent 100%
    )!important;
  }

  .login40-frame::before,
  .register89-frame::before{
    z-index:-3!important;
    background:linear-gradient(180deg,rgba(0,15,29,.02),rgba(0,15,29,.16))!important;
  }

  .login40-card,
  .register89-card{
    border-left-color:rgba(255,255,255,.42)!important;
    box-shadow:0 16px 42px rgba(0,0,0,.30)!important;
  }

  .login40-eye{
    font-size:21px!important;
    line-height:1!important;
  }

  .login40-primary b{
    font-size:22px!important;
    font-weight:700!important;
    margin-left:14px!important;
  }
}


/* V4.139 — restaura la tarjeta flotante del ingreso con el acceso inicial */
.login40-first-setup{
  color:#8bd8ff!important;
  font-weight:800!important;
}

@media (min-width:769px){
  .login40-card{
    top:28px!important;
    bottom:28px!important;
    height:auto!important;
    max-height:none!important;
    transform:none!important;
    overflow:hidden!important;
  }

  .login40-form{
    gap:8px!important;
  }

  .login40-forgot{
    min-height:34px!important;
    margin:4px 0 0!important;
    padding:5px 2px!important;
  }

  .login40-first-setup{
    min-height:34px!important;
    margin:0!important;
    padding:5px 2px!important;
    border-top:1px solid rgba(255,255,255,.13)!important;
  }

  .login40-masses{
    min-height:38px!important;
    margin:1px 0 0!important;
    padding:5px 2px!important;
  }

  .login40-foot{
    margin-top:auto!important;
    padding-top:4px!important;
    row-gap:5px!important;
  }
}

@media (max-width:768px){
  .login40-first-setup{
    margin:.5cqw 0!important;
    padding:.65cqw 1cqw!important;
  }
}
/* V4.151 — registro multiparroquia estable, sin recortes */
@media (min-width:769px){
  .register89-frame{
    height:min(640px,calc(100svh - 24px))!important;
    min-height:min(600px,calc(100svh - 24px))!important;
  }
  .register89-card{
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
    max-height:calc(100% - 32px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scrollbar-width:thin;
    scrollbar-color:rgba(139,216,255,.7) transparent;
    padding-top:18px!important;
    padding-bottom:20px!important;
  }
  .register89-card::-webkit-scrollbar{width:7px}
  .register89-card::-webkit-scrollbar-thumb{background:rgba(139,216,255,.65);border-radius:20px}
  .register89-card .parish-picker{margin-bottom:7px!important}
  .register89-card .parish-picker > div{
    height:42px!important;
    min-height:42px!important;
    overflow:hidden!important;
  }
  .register89-card .parish-picker select{
    width:100%!important;
    height:42px!important;
    min-height:42px!important;
    padding:0 36px 0 45px!important;
    border:0!important;
    outline:0!important;
    background:transparent!important;
    color:#fff!important;
    font-size:14px!important;
    line-height:42px!important;
  }
  .register89-card .parish-picker select option{color:#10233b;background:#fff}
  .register89-card .parish-picker > small{
    display:block!important;
    margin:4px 2px 6px!important;
    color:#a9c1d4!important;
    font-size:11px!important;
    line-height:1.25!important;
  }
}
@media (max-width:768px){
  .register89-page{overflow:auto!important}
  .register89-frame{min-height:100svh!important;height:auto!important;overflow:visible!important}
  .register89-card{height:auto!important;max-height:none!important;overflow:visible!important}
  .register89-card .parish-picker select{width:100%!important;min-height:48px!important;padding:0 36px 0 46px!important}
  .register89-card .parish-picker > small{display:block!important;margin:5px 2px 10px!important;color:#667f94!important;font-size:12px!important;line-height:1.35!important}
}

/* Small developer signature: beneath the mobile form, beside it on desktop. */
@media (max-width:768px){
  .login-developer-credit--mobile{margin-top:10px!important}
  .login-developer-credit--mobile img{width:88px!important;max-width:32vw!important}
  .login-developer-credit--mobile small{font-size:.68rem!important}
  .login-developer-credit--desktop{display:none!important}
}
@media (min-width:769px){
  .login-developer-credit--mobile{display:none!important}
  .login-developer-credit--desktop{
    position:absolute;
    left:2%;
    bottom:5%;
    z-index:8;
    width:19%;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:2px;
    color:#e4edf6;
    pointer-events:none;
  }
  .login-developer-credit--desktop small{font-size:12px}
  .login-developer-credit--desktop img{display:block;width:110px;height:auto}
}
