/* Recuperacao de senha: utiliza o mesmo card e tema visual do login.
   Seletor com ID isola este painel das regras globais de temas da intranet. */

.login-card [hidden],
#recoveryPanel[hidden],
#recoveryPanel [hidden] {
  display: none !important;
}

/* No mobile, permitir scroll inclusive quando o teclado estiver aberto. */
body.login-body.recovery-open {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  place-items: safe center !important;
}

body.login-body #recoveryPanel {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--login-ink, #eef7ff) !important;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.login-body #recoveryPanel::before,
body.login-body #recoveryPanel::after {
  content: none !important;
}

body.login-body #recoveryBack {
  display: inline-flex;
  align-items: center;
  width: auto;
  gap: 6px;
  margin: 0 0 21px !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: rgba(220, 237, 255, .78) !important;
  font-family: inherit;
  font-size: .84rem;
  font-weight: 630;
  text-decoration: none;
  cursor: pointer;
  transition: color .2s ease;
}
body.login-body #recoveryBack:hover,
body.login-body #recoveryBack:focus-visible {
  color: #ffffff !important;
}

body.login-body #recoveryPanel #recoveryTitle {
  margin: 0 0 11px !important;
  padding: 0 !important;
  color: #ffffff !important;
  background: transparent !important;
  font-size: clamp(1.95rem, 5vw, 2.35rem) !important;
  font-weight: 780 !important;
  letter-spacing: -.04em;
  line-height: 1.1 !important;
}

body.login-body #recoveryPanel #recoveryDescription {
  max-width: 40ch;
  margin: 0 0 24px !important;
  padding: 0 !important;
  color: var(--login-muted, rgba(223, 238, 255, .74)) !important;
  background: none !important;
  font-size: .94rem !important;
  line-height: 1.55 !important;
  font-weight: 450;
}

body.login-body #recoveryPanel .form-stack {
  width: 100%;
  display: grid;
  gap: 17px;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.login-body #recoveryPanel .login-field {
  display: grid;
  gap: 8px;
  min-width: 0;
  margin: 0;
  color: rgba(230, 243, 255, .86) !important;
  font-size: .78rem;
  font-weight: 740;
  line-height: 1.35;
}

body.login-body #recoveryPanel .login-input-wrap {
  display: flex;
  position: relative;
  width: 100%;
  min-width: 0;
  align-items: center;
}

body.login-body #recoveryPanel .login-input-icon {
  color: rgba(177, 215, 255, .65);
}

body.login-body #recoveryPanel input:not(#recoveryCode) {
  width: 100% !important;
  min-width: 0;
  min-height: 50px !important;
  padding: 0 15px 0 44px !important;
  font-size: .92rem !important;
}

body.login-body #recoveryPanel .btn-primary {
  width: 100%;
  min-height: 51px;
  margin-top: 2px;
}

body.login-body #forgotPasswordButton {
  display: inline-flex;
  width: max-content;
  justify-self: end;
  align-self: center;
  margin: -5px 0 -3px;
  padding: 5px 0;
  color: rgba(225, 239, 255, .75) !important;
  font-size: .84rem;
  font-weight: 680;
  text-decoration: none;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
}
body.login-body #forgotPasswordButton:hover {
  color: #fff !important;
}

body.login-body #recoveryPanel #recoveryMessage {
  display: block;
  min-height: 0;
  margin: 15px 0 0 !important;
  padding: 0 !important;
  color: rgba(202, 229, 252, .86) !important;
  font-size: .81rem !important;
  line-height: 1.5 !important;
  overflow-wrap: anywhere;
}
body.login-body #recoveryPanel #recoveryMessage:empty {
  display: none;
}
body.login-body #recoveryPanel #recoveryMessage[data-state="error"] {
  color: #ffb5bf !important;
}

/* Campos animados do codigo (estilo CodeSlots, adaptado ao azul do login). */
body.login-body #recoveryCodeStep {
  text-align: center;
}
body.login-body #recoveryCodeSlots {
  position: relative;
  width: max-content;
  max-width: 100%;
  margin: 6px auto 14px;
  cursor: text;
}

body.login-body #recoveryDigits {
  display: flex;
  justify-content: center;
  gap: clamp(5px, 2vw, 8px);
  max-width: 100%;
}

body.login-body #recoveryDigits .recovery-digit {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  position: relative;
  width: clamp(34px, calc((100vw - 126px) / 6), 44px);
  height: clamp(46px, 13.4vw, 52px);
  min-width: 0;
  border: 1px solid rgba(149, 206, 252, .22);
  border-radius: 11px;
  background: rgba(7, 25, 51, .75);
  color: #082442;
  font-size: 1.25rem;
  font-weight: 730;
  font-variant-numeric: tabular-nums;
  user-select: none;
  -webkit-user-select: none;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

body.login-body #recoveryDigits .recovery-digit.filled {
  background: #eaf5ff;
  border-color: rgba(226, 248, 255, .9);
  animation: recovery-land .3s both;
}
body.login-body #recoveryDigits .recovery-digit.active {
  border-color: #8cdbff;
  box-shadow: 0 0 0 2px rgba(81, 176, 248, .2);
}
body.login-body #recoveryDigits .recovery-digit.active:not(.filled)::after {
  content: "";
  width: 2px;
  height: 22px;
  background: #abebff;
  animation: recovery-caret 1s step-end infinite;
}

body.login-body #recoveryDigits[data-status="error"] .recovery-digit {
  background: rgba(255, 76, 97, .3);
  border-color: #ff6979;
  color: #fff;
  animation: recovery-error .3s;
}
body.login-body #recoveryDigits[data-status="success"] .recovery-digit {
  background: #eaf5ff;
  border-color: #eaf5ff;
  transform: scale(1.025);
}

/* O tema global define input com !important; nao permitir que ele apareca
   sobre os seis slots nem capture a aparencia de foco do formulario. */
html[data-site-theme] body.login-body .login-card #recoveryCode,
html[data-site-theme] body.login-body .login-card #recoveryCode:focus {
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  outline: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  caret-color: transparent !important;
  opacity: 0 !important;
  cursor: text;
}

body.login-body #recoveryResend {
  padding: 4px 8px;
  margin: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: rgba(210, 234, 255, .80) !important;
  font-size: .84rem;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}
body.login-body #recoveryResend:hover {
  color: #fff !important;
}

@keyframes recovery-land {
  from { transform: translateY(8px) scale(.8); opacity: .55; }
  to { transform: translateY(0) scale(1); opacity: 1; }
}
@keyframes recovery-caret {
  50% { opacity: 0; }
}
@keyframes recovery-error {
  20%, 60% { transform: translateX(-3px); }
  40%, 80% { transform: translateX(3px); }
}

@media (max-width: 560px) {
  body.login-body #recoveryBack { margin-bottom: 19px !important; }
  body.login-body #recoveryPanel #recoveryTitle {
    font-size: clamp(1.9rem, 8vw, 2.2rem) !important;
  }
  body.login-body #recoveryPanel #recoveryDescription {
    margin-bottom: 22px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.login-body #recoveryDigits .recovery-digit,
  body.login-body #recoveryDigits .recovery-digit.active::after {
    animation: none !important;
    transition: none !important;
  }
}
