/* ==========================================================================
   WIFICOR ADMIN ˇ¤ Recuperaci¨®n de acceso
   Modal compacto, responsive y aislado.
   ========================================================================== */

.wfr-modal{
  position:fixed;
  inset:0;
  z-index:100100;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(15,25,34,.60);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .15s ease,visibility .15s ease;
}
.wfr-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.wfr-dialog{
  position:relative;
  width:min(520px,100%);
  max-height:min(720px,calc(100dvh - 36px));
  overflow:auto;
  background:#fff;
  border:1px solid #d9e2e7;
  border-radius:4px;
  box-shadow:0 24px 70px rgba(15,25,34,.24);
}
.wfr-close{
  appearance:none;
  position:absolute;
  top:10px;
  right:10px;
  z-index:2;
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  padding:0;
  color:#73848f;
  cursor:pointer;
  background:#f5f7f8;
  border:1px solid #d9e2e7;
  border-radius:3px;
}
.wfr-close:hover,.wfr-close:focus-visible{
  color:#078d8f;
  border-color:#08aeb0;
  outline:none;
}
.wfr-head{
  display:flex;
  align-items:center;
  gap:12px;
  padding:22px 54px 16px 22px;
  border-bottom:1px solid #edf1f2;
}
.wfr-head-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  color:#08aeb0;
  background:#edfafa;
  border:1px solid #ccebec;
  border-radius:50%;
}
.wfr-head-copy{min-width:0}
.wfr-kicker{
  display:block;
  margin-bottom:2px;
  color:#078d8f;
  font-size:9.5px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.wfr-title{
  margin:0;
  color:#263746;
  font-size:18px;
  font-weight:700;
  line-height:1.2;
}
.wfr-subtitle{
  margin:4px 0 0;
  color:#748792;
  font-size:11.5px;
  line-height:1.5;
}
.wfr-body{padding:18px 22px 20px}
.wfr-step[hidden]{display:none!important}
.wfr-field{margin-bottom:13px}
.wfr-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:5px;
  color:#425563;
  font-size:10.5px;
  font-weight:600;
}
.wfr-label small{
  color:#83939d;
  font-size:9.5px;
  font-weight:400;
}
.wfr-control-wrap{
  position:relative;
  display:flex;
  align-items:center;
}
.wfr-control-icon{
  position:absolute;
  left:12px;
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  color:#8ca0ad;
  pointer-events:none;
}
.wfr-control{
  width:100%;
  height:40px;
  min-height:40px;
  padding:0 12px 0 40px;
  color:#263746;
  background:#fff;
  border:1px solid #cfdbe1;
  border-radius:3px;
  outline:none;
  font:400 13px Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  transition:border-color .14s ease,box-shadow .14s ease;
}
.wfr-control.is-password{padding-right:42px}
.wfr-control:focus{
  border-color:#08aeb0;
  box-shadow:0 0 0 3px rgba(8,174,176,.09);
}
.wfr-control::placeholder{color:#a4b1b9}
.wfr-eye{
  appearance:none;
  position:absolute;
  right:6px;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  padding:0;
  color:#81939f;
  cursor:pointer;
  background:transparent;
  border:0;
}
.wfr-eye:hover,.wfr-eye:focus-visible{color:#078d8f;outline:none}
.wfr-note{
  margin:0 0 14px;
  padding:10px 11px;
  color:#607482;
  background:#f7f9fa;
  border:1px solid #e1e8eb;
  border-radius:3px;
  font-size:10.5px;
  line-height:1.55;
}
.wfr-note strong{color:#263746;font-weight:600}
.wfr-message{
  display:none;
  margin:0 0 13px;
  padding:9px 10px;
  border:1px solid #d9e2e7;
  border-radius:3px;
  font-size:10.5px;
  line-height:1.5;
}
.wfr-message.is-visible{display:block}
.wfr-message.is-info{color:#526772;background:#f7f9fa}
.wfr-message.is-error{color:#9b3139;background:#fff4f5;border-color:#efcfd2}
.wfr-message.is-success{color:#176948;background:#f2faf6;border-color:#cbe6d7}
.wfr-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:15px;
}
.wfr-btn{
  appearance:none;
  height:40px;
  padding:0 15px;
  cursor:pointer;
  border-radius:3px;
  font:600 12px Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}
.wfr-btn:disabled{opacity:.55;cursor:not-allowed}
.wfr-btn-secondary{
  color:#425563;
  background:#fff;
  border:1px solid #ccd8de;
}
.wfr-btn-secondary:hover{background:#f7f9fa}
.wfr-btn-primary{
  color:#fff;
  background:#08aeb0;
  border:1px solid #08aeb0;
}
.wfr-btn-primary:hover{background:#078d8f;border-color:#078d8f}
.wfr-otp{
  width:100%;
  height:48px;
  padding:0 14px;
  color:#263746;
  text-align:center;
  letter-spacing:.38em;
  background:#fff;
  border:1px solid #cfdbe1;
  border-radius:3px;
  outline:none;
  font:600 20px Inter,system-ui,sans-serif;
}
.wfr-otp:focus{
  border-color:#08aeb0;
  box-shadow:0 0 0 3px rgba(8,174,176,.09);
}
.wfr-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:7px;
  color:#7a8d98;
  font-size:9.5px;
}
.wfr-link{
  appearance:none;
  padding:0;
  color:#078d8f;
  cursor:pointer;
  background:transparent;
  border:0;
  font:600 10px Inter,system-ui,sans-serif;
}
.wfr-support{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:14px;
  padding:10px 11px;
  color:#607482;
  background:#f7f9fa;
  border:1px solid #e1e8eb;
  border-radius:3px;
  font-size:10.5px;
}
.wfr-support a{
  flex:0 0 auto;
  color:#078d8f;
  font-weight:600;
  text-decoration:none;
}
.wfr-success{
  padding:8px 0 2px;
  text-align:center;
}
.wfr-success-mark{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  margin:0 auto 12px;
  color:#fff;
  background:#08aeb0;
  border-radius:50%;
  font-size:24px;
  font-weight:700;
}
.wfr-success h3{
  margin:0;
  color:#263746;
  font-size:18px;
  font-weight:700;
}
.wfr-success p{
  max-width:360px;
  margin:7px auto 0;
  color:#6f818c;
  font-size:11.5px;
  line-height:1.55;
}

@media(max-width:600px){
  /*
   * Modal real centrado.
   * No bottom-sheet, no pegado al borde inferior.
   */
  .wfr-modal{
    display:grid;
    place-items:center;
    align-items:center;
    justify-items:center;
    padding:
      max(14px,env(safe-area-inset-top,0px))
      14px
      max(14px,env(safe-area-inset-bottom,0px));
    overflow:hidden;
  }

  .wfr-dialog{
    width:min(100%,500px);
    max-height:calc(100dvh - 28px);
    margin:auto;
    overflow:auto;
    overscroll-behavior:contain;
    border:1px solid #d9e2e7;
    border-radius:4px;
    box-shadow:0 24px 70px rgba(15,25,34,.28);
  }

  .wfr-head{
    padding:18px 50px 13px 16px;
  }

  .wfr-head-icon{
    width:38px;
    height:38px;
    flex-basis:38px;
  }

  .wfr-body{
    padding:15px 16px 16px;
  }

  .wfr-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  .wfr-btn{width:100%}

  .wfr-support{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* No cruzar instalador PWA con recuperaci¨®n / Passkey / errores */
.wfl-modal-open .wfl-pwa{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Medidor flexible: orienta, no bloquea */
.wfr-strength{
  margin:-2px 0 13px;
}
.wfr-strength-bars{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:4px;
}
.wfr-strength-bars span{
  height:3px;
  background:#dfe6e9;
  border-radius:3px;
}
.wfr-strength-copy{
  margin-top:5px;
  color:#7a8d98;
  font-size:9.5px;
}
.wfr-strength-copy strong{
  color:#607482;
  font-weight:600;
}
.wfr-strength[data-score="1"] .wfr-strength-bars span:nth-child(-n+1),
.wfr-strength[data-score="2"] .wfr-strength-bars span:nth-child(-n+2),
.wfr-strength[data-score="3"] .wfr-strength-bars span:nth-child(-n+3),
.wfr-strength[data-score="4"] .wfr-strength-bars span:nth-child(-n+4){
  background:#08aeb0;
}
.wfr-strength[data-score="4"] .wfr-strength-copy strong{
  color:#078d8f;
}