/* The recovery page shares the register/login shell, typography and controls. */
.forgot-page{background:#edf3f8}
.forgot-shell{width:100%;min-height:100svh}
.forgot-visual{background:linear-gradient(145deg,#071827 0%,#0a253c 50%,#06101b 100%)}
.forgot-grid{position:absolute;inset:0;opacity:.35;background-image:linear-gradient(rgba(139,211,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(139,211,255,.08) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(145deg,#000,transparent 82%)}
.forgot-orb{position:absolute;border-radius:50%;filter:blur(4px);pointer-events:none}
.forgot-orb-one{top:-100px;right:-100px;width:360px;height:360px;background:radial-gradient(circle,rgba(0,139,254,.34),transparent 68%)}
.forgot-orb-two{bottom:40px;left:-170px;width:430px;height:430px;background:radial-gradient(circle,rgba(0,139,254,.2),transparent 68%)}
.forgot-logo,.forgot-visual-copy,.forgot-visual-points,.forgot-disclaimer{position:relative;z-index:1}
.forgot-logo{display:inline-flex;width:max-content;max-width:100%;align-items:center}
.forgot-logo img{display:block;width:min(205px,100%);height:auto;max-height:47px;object-fit:contain}
.forgot-visual-copy{max-width:410px;margin:54px 0 38px}
.forgot-kicker{color:#8bd3ff}
.forgot-visual-copy h1{margin:17px 0 16px;font-size:clamp(38px,4.5vw,60px);line-height:1.02;letter-spacing:-.07em}
.forgot-visual-copy h1 span{color:#8bd3ff}
.forgot-visual-copy p{max-width:370px;margin:0;color:#b8c9d8;font-size:15px;line-height:1.7}
.forgot-visual-points{display:grid;gap:17px;max-width:410px}
.forgot-visual-point{display:flex;align-items:center;gap:13px}
.forgot-point-icon{font-size:13px}
.forgot-visual-point small{max-width:300px}
.forgot-disclaimer{margin:28px 0 0}

.forgot-form-wrap{width:min(100%,390px)}
.forgot-progress{position:relative;display:flex;justify-content:space-between;margin:0 0 27px}
.forgot-progress-line{position:absolute;top:13px;right:13%;left:13%;height:1px;background:#dce5ed}
.forgot-progress-line span{display:block;width:0;height:100%;background:#008AFE;transition:width .25s ease}
.forgot-progress-step{position:relative;z-index:1;display:flex;align-items:center;gap:7px;color:#a2adb6;font-size:9px;font-weight:700}
.forgot-progress-step span{display:grid;width:27px;height:27px;place-items:center;border:1px solid #dce5ed;border-radius:50%;background:#fff;color:#8a99a5;font-size:10px}
.forgot-progress-step.is-active{color:#008AFE}
.forgot-progress-step.is-active span{border-color:#008AFE;background:#008AFE;color:#fff}
.forgot-step[hidden]{display:none}
.forgot-step h3{margin:0 0 7px;color:#14212d;font-size:17px;letter-spacing:-.035em}
.forgot-step-copy{margin:0 0 20px;color:#7b8995;font-size:11px;line-height:1.65}
.forgot-step-copy strong{color:#425361;font-weight:800}
.forgot-field-group{margin-bottom:15px}
.forgot-field-group input{height:40px}
.forgot-field-error{display:block;min-height:0;margin-top:3px;color:#cf4655;font-size:9px;line-height:1.4}
.forgot-code-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-3px 0 18px}
.forgot-resend,.forgot-back{padding:0;border:0;background:none;color:#70808c;font:700 10px var(--register-font);cursor:pointer}
.forgot-resend:not(:disabled),.forgot-back:hover{color:#008AFE}
.forgot-resend:disabled{cursor:default;color:#aab4bc}
.forgot-password-field{position:relative}
.forgot-password-field input{padding-right:60px}
.forgot-password-toggle{cursor:pointer}
.forgot-form-note{min-height:17px;margin:0;color:#008AFE;font-size:10px;line-height:1.5}
.forgot-success-step{text-align:center}
.forgot-success-icon{display:grid;width:54px;height:54px;margin:0 auto 19px;place-items:center;border:1px solid rgba(0,139,254,.25);border-radius:50%;background:rgba(0,139,254,.08);color:#008AFE;font-size:20px}
.forgot-success-step h3{font-size:25px}
.forgot-success-step .forgot-step-copy{max-width:330px;margin:10px auto 24px}
.forgot-submit-link{display:flex;text-align:left}
.forgot-signin-note{margin-top:22px}
.forgot-language-row{display:flex;justify-content:flex-end;margin-top:17px}
.forgot-language-switcher{position:relative;z-index:4;display:flex;flex:0 0 auto;justify-content:flex-end;margin:0;color:#526474;font-size:11px}
.forgot-language-switcher summary{display:flex;min-height:32px;align-items:center;gap:6px;cursor:pointer;list-style:none;user-select:none}
.forgot-language-switcher summary::-webkit-details-marker{display:none}
.forgot-language-switcher summary svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.forgot-language-switcher summary:after{content:"";width:5px;height:5px;margin:-3px 0 0 2px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);transition:transform .2s ease}
.forgot-language-switcher[open] summary:after{transform:rotate(225deg) translate(-1px,-1px)}
.forgot-language-switcher summary:hover{color:#008AFE}
.forgot-language-menu{position:absolute;right:0;bottom:calc(100% + 7px);z-index:10;display:grid;width:min(185px,calc(100vw - 44px));min-width:0;padding:6px;border:1px solid #dce5ed;border-radius:10px;background:#fff;box-shadow:0 16px 35px rgba(15,23,42,.16)}
.forgot-language-menu a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:9px 10px;border-radius:6px;color:#526474;font-size:11px;line-height:1.2;text-decoration:none}
.forgot-language-menu a:hover,.forgot-language-menu a[aria-current="page"]{background:#eef7ff;color:#006bc5}
.forgot-language-menu small{color:#8b98a4;font-size:9px;letter-spacing:.08em}
.forgot-language-menu a[aria-current="page"] small{color:#008AFE}
.forgot-legal{margin-top:24px}
.forgot-toast{position:fixed;z-index:60;right:22px;top:22px;bottom:auto;max-width:min(360px,calc(100% - 44px));padding:13px 16px;border:1px solid #b9ddf7;border-radius:9px;background:#f4faff;color:#07558d;font-size:11px;box-shadow:0 12px 30px rgba(15,23,42,.15);opacity:0;pointer-events:none;transform:translateY(-12px);transition:opacity .25s,transform .25s}
.forgot-toast.is-visible{opacity:1;transform:none}.forgot-toast.is-error{border-color:#fecaca;background:#fff1f2;color:#b42318}

@media(max-width:820px){.forgot-shell{grid-template-columns:1fr;min-height:0}.forgot-visual{min-height:355px;padding:28px}.forgot-panel{padding:42px 34px}.forgot-form-wrap{width:min(100%,430px)}.forgot-visual-copy{margin:40px 0 28px}.forgot-visual-points{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.forgot-visual-point{align-items:flex-start;flex-direction:column;gap:8px}.forgot-visual-point small{max-width:130px}}
@media(max-width:520px){.forgot-page{display:block;padding:0;background:#fff}.forgot-shell{width:100%;border:0;border-radius:0;box-shadow:none}.forgot-visual{min-height:340px;padding:24px 22px 25px}.forgot-logo img{width:170px}.forgot-visual-copy{margin:36px 0 26px}.forgot-visual-copy h1{font-size:42px}.forgot-visual-copy p{font-size:13px}.forgot-visual-points{display:none}.forgot-disclaimer{margin-top:auto}.forgot-panel{padding:34px 22px 42px}.forgot-heading h2{font-size:28px}.forgot-code-actions{align-items:flex-start;flex-direction:column;gap:9px}.forgot-language-menu{right:0;left:auto}.forgot-toast{right:14px;top:14px;bottom:auto;max-width:calc(100% - 28px)}}

/* ==========================================================================
   Visual panel refresh: mirrors the register.css upgrade. These .forgot-*
   duplicates load after register.css, so they must be overridden here to
   stay in sync with the shared access-pages design (celeste/blue identity).
   ========================================================================== */
.forgot-visual{background:linear-gradient(165deg,#0b1420 0%,#070d14 46%,#050a12 100%)}
.forgot-grid{opacity:.5;background-image:linear-gradient(rgba(139,211,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(139,211,255,.07) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at 26% 16%,#000 0%,transparent 74%)}
.forgot-orb{filter:blur(58px)}
.forgot-orb-one{top:-120px;right:-110px;width:400px;height:400px;background:radial-gradient(circle,rgba(0,139,254,.34),transparent 66%)}
.forgot-orb-two{bottom:-70px;left:-150px;width:470px;height:470px;background:radial-gradient(circle,rgba(0,139,254,.24),transparent 66%)}
.forgot-kicker{color:#8bd3ff}
.forgot-visual-copy h1 span{color:#8bd3ff;text-shadow:0 0 30px rgba(0,139,254,.4)}
.forgot-visual-copy p{color:#a9bac9}

/* ==========================================================================
   Desktop & Large Screen Scaling (1024px, 1400px, 1920x1080+)
   ========================================================================== */
@media (min-width: 1024px) {
  .forgot-panel {
    padding: 48px 56px;
    overflow-y: auto;
    max-height: 100svh;
  }
  .forgot-visual {
    padding: clamp(32px, 4vh, 44px) clamp(36px, 4vw, 52px);
    overflow: hidden !important;
    max-height: 100svh;
  }
  .forgot-form-wrap {
    width: min(100%, 450px);
  }
  .forgot-visual-copy {
    max-width: 440px;
    margin: clamp(20px, 3vh, 36px) 0 clamp(16px, 2.5vh, 28px);
  }
  .forgot-visual-copy p {
    font-size: 15.5px;
  }
  .forgot-visual-points {
    max-width: 440px;
    gap: clamp(12px, 1.8vh, 18px);
  }
  .forgot-point-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    font-size: 16px;
    border-radius: 10px;
  }
  .forgot-visual-point strong {
    font-size: 13.5px;
  }
  .forgot-visual-point small {
    font-size: 11.5px;
  }
  .forgot-disclaimer {
    font-size: 10.5px;
    margin-top: clamp(16px, 2.2vh, 24px);
  }
  .forgot-progress {
    margin-bottom: 28px;
  }
  .forgot-progress-step {
    font-size: 11px;
    gap: 8px;
  }
  .forgot-progress-step span {
    width: 30px;
    height: 30px;
    font-size: 11px;
  }
  .forgot-progress-line {
    top: 15px;
  }
  .forgot-heading {
    margin-bottom: 26px;
  }
  .forgot-heading h2 {
    font-size: 32px;
  }
  .forgot-heading p {
    font-size: 14px;
  }
  .forgot-step h3 {
    font-size: 19px;
  }
  .forgot-step-copy {
    font-size: 13px;
  }
  .forgot-field-group {
    margin-bottom: 16px;
  }
  .forgot-field-group label {
    font-size: 12.5px;
    margin-bottom: 5px;
  }
  .forgot-field-group input {
    height: 46px;
    font-size: 13.5px;
    padding: 0 15px;
    border-radius: 9px;
  }
  .forgot-code-actions {
    font-size: 11.5px;
    margin: -2px 0 18px;
  }
  .forgot-resend, .forgot-back {
    font-size: 11.5px;
  }
  .forgot-submit {
    min-height: 50px;
    font-size: 13.5px;
    border-radius: 10px;
    padding: 0 20px;
  }
  .forgot-field-error {
    font-size: 10.5px;
  }
  .forgot-signin-note {
    font-size: 12.5px;
    margin-top: 24px;
  }
  .forgot-legal {
    font-size: 10.5px;
    margin-top: 24px;
  }
  .forgot-language-row {
    margin-top: 18px;
  }
  .forgot-language-switcher {
    font-size: 12px;
  }
  .forgot-language-menu a {
    font-size: 12px;
  }
  .forgot-success-icon {
    width: 62px;
    height: 62px;
    font-size: 24px;
  }
  .forgot-success-step h3 {
    font-size: 26px;
  }
  .forgot-success-step .forgot-step-copy {
    font-size: 13.5px;
  }
}

@media (min-width: 1400px) {
  .forgot-panel {
    padding: 60px 72px;
    overflow-y: auto;
    max-height: 100svh;
  }
  .forgot-visual {
    padding: clamp(36px, 4.5vh, 52px) clamp(44px, 4.5vw, 68px);
    overflow: hidden !important;
    max-height: 100svh;
  }
  .forgot-form-wrap {
    width: min(100%, 500px);
  }
  .forgot-logo img {
    width: min(230px, 100%);
    max-height: 50px;
  }
  .forgot-visual-copy {
    max-width: 500px;
    margin: clamp(24px, 3.5vh, 44px) 0 clamp(20px, 3vh, 34px);
  }
  .forgot-kicker {
    font-size: 11.5px;
    letter-spacing: .18em;
  }
  .forgot-visual-copy h1 {
    font-size: clamp(38px, 3.2vw, 56px);
    margin: 14px 0 14px;
  }
  .forgot-visual-copy p {
    max-width: 450px;
    font-size: 15.5px;
    line-height: 1.65;
  }
  .forgot-visual-points {
    max-width: 500px;
    gap: clamp(14px, 2vh, 20px);
  }
  .forgot-point-icon {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    font-size: 16px;
    border-radius: 11px;
  }
  .forgot-visual-point strong {
    font-size: 13.5px;
  }
  .forgot-visual-point small {
    font-size: 11.5px;
    line-height: 1.4;
  }
  .forgot-disclaimer {
    font-size: 11px;
    margin-top: clamp(16px, 2.5vh, 28px);
    line-height: 1.5;
  }
  .forgot-progress {
    margin-bottom: 34px;
  }
  .forgot-progress-step {
    font-size: 12.5px;
    gap: 10px;
    font-weight: 700;
  }
  .forgot-progress-step span {
    width: 34px;
    height: 34px;
    font-size: 13px;
  }
  .forgot-progress-line {
    top: 17px;
  }
  .forgot-heading {
    margin-bottom: 30px;
  }
  .forgot-form-kicker {
    font-size: 12px;
    letter-spacing: .18em;
  }
  .forgot-heading h2 {
    font-size: 36px;
    margin: 14px 0 10px;
  }
  .forgot-heading p {
    font-size: 15px;
    line-height: 1.65;
  }
  .forgot-step h3 {
    font-size: 21px;
    margin-bottom: 9px;
  }
  .forgot-step-copy {
    font-size: 14.5px;
    line-height: 1.7;
    margin-bottom: 24px;
  }
  .forgot-field-group {
    margin-bottom: 20px;
  }
  .forgot-field-group label {
    font-size: 13.5px;
    margin-bottom: 7px;
    font-weight: 700;
  }
  .forgot-field-group input {
    height: 50px;
    padding: 0 16px;
    font-size: 14.5px;
    border-radius: 10px;
  }
  .forgot-password-field input {
    padding-right: 70px;
  }
  .forgot-password-toggle {
    font-size: 12.5px;
    right: 14px;
    padding: 6px 10px;
  }
  .forgot-field-error {
    font-size: 11.5px;
    margin-top: 5px;
  }
  .forgot-code-actions {
    margin: 2px 0 22px;
    gap: 16px;
  }
  .forgot-resend, .forgot-back {
    font-size: 12.5px;
  }
  .forgot-submit {
    min-height: 52px;
    font-size: 15px;
    border-radius: 10px;
    padding: 0 22px;
  }
  .forgot-submit i {
    font-size: 14px;
  }
  .forgot-form-note {
    font-size: 13px;
    min-height: 20px;
  }
  .forgot-signin-note {
    font-size: 14px;
    margin-top: 28px;
  }
  .forgot-language-row {
    margin-top: 20px;
  }
  .forgot-language-switcher {
    font-size: 12.5px;
  }
  .forgot-language-switcher summary {
    min-height: 36px;
  }
  .forgot-language-switcher summary svg {
    width: 18px;
    height: 18px;
  }
  .forgot-language-menu {
    width: min(200px, calc(100vw - 44px));
    padding: 8px;
    border-radius: 12px;
  }
  .forgot-language-menu a {
    font-size: 12.5px;
    padding: 10px 12px;
  }
  .forgot-language-menu small {
    font-size: 10px;
  }
  .forgot-legal {
    font-size: 11.5px;
    line-height: 1.6;
    margin-top: 28px;
  }
  .forgot-success-icon {
    width: 70px;
    height: 70px;
    font-size: 28px;
    margin-bottom: 22px;
  }
  .forgot-success-step h3 {
    font-size: 30px;
  }
  .forgot-success-step .forgot-step-copy {
    font-size: 15px;
    max-width: 400px;
    margin: 12px auto 28px;
  }
  .forgot-submit-link {
    min-height: 52px;
    font-size: 15px;
  }
  .forgot-toast {
    font-size: 13px;
    padding: 15px 20px;
    border-radius: 10px;
  }
}
