/* Browser top layer keeps recovery above the fixed login screen. */
.recovery-dialog {
  width: min(440px, calc(100vw - 32px));
  max-height: calc(100dvh - 40px);
  margin: auto; padding: 28px;
  border: 1px solid #dedbe9; border-radius: 18px;
  background: #fff; color: #211c38;
  box-shadow: 0 24px 80px rgba(33, 28, 56, .22);
  overflow: auto;
}
.recovery-dialog::backdrop { background: rgba(24, 20, 44, .5); }
.recovery-dialog header { display: flex; align-items: center; gap: 12px; }
.recovery-dialog h2 { margin: 0; font-size: 22px; line-height: 1.25; }
.recovery-dialog p { margin: 16px 0 0; font-size: 15px; line-height: 1.55; }
.recovery-dialog .recovery-close {
  flex: 0 0 44px; min-height: 44px; margin-left: auto;
  border: 0; border-radius: 8px; background: #f4f2f8;
  color: #34277f; font-size: 26px; cursor: pointer;
}
.recovery-dialog .recovery-done {
  width: 100%; min-height: 48px; margin-top: 22px;
  border: 0; border-radius: 10px; background: #34277f;
  color: #fff; font: inherit; font-weight: 600; cursor: pointer;
}
.recovery-dialog button:focus-visible { outline: 3px solid #9d90db; outline-offset: 3px; }
.login-input input { font-size: 16px; min-width: 0; }
.login-options #restoreAccess { min-height: 44px; }
@media (max-width: 430px) {
  .recovery-dialog { padding: 20px; }
  .recovery-dialog h2 { font-size: 21px; }
  .login-options { flex-wrap: wrap; gap: 8px; }
}
