.recovery-page { background: #f7f8fc; color: #172b46; }
.recovery-main { width: min(100% - 40px, 820px); margin: 0 auto; padding: clamp(28px, 5vw, 64px) 0 72px; }
.recovery-back, .recovery-text-button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-bottom: 12px; color: #304dca; font-weight: 750; text-decoration: underline; }
.recovery-card { --visibility-heading: #172b46; --visibility-body: #40516a; padding: clamp(22px, 5vw, 46px); background: #fff; border: 1px solid #d7dfef; border-radius: 28px; box-shadow: 0 18px 48px #172b4610; }
.recovery-card [hidden] { display: none !important; }
.recovery-card h1 { font-size: clamp(2rem, 5.5vw, 3.3rem); line-height: 1.18; margin: 16px 0; color: #172b46 !important; overflow-wrap: anywhere; }
.recovery-card h2, .recovery-card label { color: #172b46 !important; }
.recovery-card p, .recovery-card small { color: #40516a !important; line-height: 1.65; }
.recovery-kicker { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; padding: 8px 14px; background: #edf0ff; color: #304dca !important; font-weight: 750; font-size: .85rem; }
.recovery-steps { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 24px 0; }
.recovery-steps li { padding: 8px 12px; border: 1px solid #d7dfef; border-radius: 999px; color: #40516a; font-size: .85rem; }
.recovery-page .recovery-card .recovery-steps li[aria-current] { --visibility-body: #fff; color: #fff !important; -webkit-text-fill-color: #fff !important; background: #304dca; border-color: #304dca; }
.recovery-notice { padding: 14px 16px; border-radius: 16px; background: #fff8e8; border: 1px solid #edce8d; color: #654306 !important; margin-bottom: 24px; line-height: 1.55; }
.recovery-notice.is-ready { background: #edf8f4; color: #125b43 !important; border-color: #a9d9c7; }
.recovery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.recovery-card .field { min-width: 0; display: grid; gap: 8px; margin: 0 0 20px; }
.recovery-card .field label, .recovery-card label { display: block; font-size: .95rem; font-weight: 750; }
.recovery-card input { box-sizing: border-box; display: block; width: 100%; min-width: 0; min-height: 52px; border: 1px solid #b8c6de; background: #fff !important; color: #172b46 !important; padding: 12px 14px; border-radius: 14px; font-size: 1rem; font-family: inherit; }
.recovery-card input::placeholder { color: #5d6b80; opacity: 1; }
.recovery-card input:focus { outline: 3px solid #304dca40; border-color: #304dca; outline-offset: 2px; }
.recovery-card .btn { min-height: 48px; border-radius: 16px; white-space: normal; text-align: center; }
.recovery-card .btn-primary { background: #304dca !important; border-color: #304dca !important; color: #fff !important; }
.recovery-card .btn-primary * { color: #fff !important; }
.recovery-card .btn[disabled] { opacity: .65; cursor: wait; }
.recovery-text-button { border: 0; background: none; margin: 12px; padding: 0 8px; font: inherit; cursor: pointer; }
.recovery-card .recovery-help { font-size: .9rem; margin: 8px 0 24px; }
.recovery-card .recovery-status { min-height: 24px; margin: 14px 0; font-weight: 650; overflow-wrap: anywhere; }
.recovery-card .recovery-status.is-error { color: #a12222 !important; }
.recovery-card .recovery-status.is-success { color: #125b43 !important; }
.recovery-support { border-top: 1px solid #d7dfef; margin-top: 28px; padding-top: 20px; font-size: .9rem; }
.recovery-support a { color: #304dca !important; text-decoration: underline; font-weight: 750; }
#temporaryPassword { margin: 12px 0; font-family: ui-monospace, monospace; font-size: clamp(.9rem, 2.6vw, 1.15rem); }
@media (max-width: 600px) {
  .recovery-main { width: min(100% - 24px, 820px); padding-top: 24px; }
  .recovery-card { padding: 22px 18px; border-radius: 22px; }
  .recovery-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .recovery-card .btn-primary { width: 100%; justify-content: center; }
}
