/* Scoped recovery components: palette and geometry of the NeuroCatalog profile. */
.recovery-page { --recovery-surface: #0b1725; --recovery-text: #edf7fb; --recovery-muted: #c5d7df; --recovery-border: #355267; --recovery-accent: #087bb5; width:100%; padding:clamp(28px,6vw,68px) 16px; color:var(--recovery-text); }
.recovery-page, .recovery-page * { box-sizing:border-box; }
.recovery-page .recovery-card { width:100%; max-width:480px; min-width:0; margin:0 auto; padding:32px; background:rgba(11,23,37,.97); border:1px solid rgba(101,211,242,.24); border-radius:22px; box-shadow:0 16px 48px rgba(0,0,0,.24); }
@supports ((backdrop-filter:blur(12px)) or (-webkit-backdrop-filter:blur(12px))) { .recovery-page .recovery-card { background:rgba(11,23,37,.84); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); } }
.recovery-page .recovery-icon { display:grid; place-items:center; width:44px; height:44px; margin-bottom:20px; color:#8beaff; background:#172b3c; border:1px solid var(--recovery-border); border-radius:12px; }
.recovery-page .recovery-kicker { margin:0 0 8px; color:#9fb7c3; font-size:.75rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.recovery-page h1 { margin:0 0 12px; color:var(--recovery-text); font-size:clamp(1.5rem,3vw,1.85rem); line-height:1.25; font-weight:700; letter-spacing:-.025em; text-shadow:none; overflow-wrap:anywhere; }
.recovery-page .recovery-description { margin:0 0 26px; color:var(--recovery-muted); font-size:.95rem; line-height:1.65; }
.recovery-page p { margin:0; }
.recovery-page .recovery-field { margin-bottom:18px; min-width:0; }
.recovery-page label { display:block; margin:0 0 8px; color:var(--recovery-text); font-size:.875rem; font-weight:600; }
.recovery-page .recovery-input-wrap { display:flex; align-items:center; gap:8px; min-width:0; }
.recovery-page .recovery-input { display:block; width:100%; min-width:0; min-height:48px; padding:11px 13px; border:1px solid #537689; border-radius:10px; background:#152a3a; color:#f4fbff; font-size:16px; line-height:1.4; box-shadow:none; transition:border-color .15s; }
.recovery-page .recovery-input::placeholder { color:#a2bac7; opacity:1; }
.recovery-page .recovery-input[aria-invalid=true] { border-color:#ed9ca8; }
.recovery-page .recovery-input:focus-visible, .recovery-page a:focus-visible, .recovery-page button:focus-visible, .recovery-page summary:focus-visible { outline:3px solid #8beaff; outline-offset:3px; }
.recovery-page .recovery-button { display:flex; align-items:center; justify-content:center; width:100%; min-height:48px; margin:8px 0 0; padding:12px 18px; border:1px solid var(--recovery-accent); border-radius:10px; background:var(--recovery-accent); color:#fff; font-size:1rem; line-height:1.4; font-weight:600; text-align:center; text-decoration:none; white-space:normal; text-shadow:none; box-shadow:none; transition:background-color .15s,border-color .15s; }
.recovery-page .recovery-button:hover { background:#096c9d; border-color:#096c9d; color:#fff; box-shadow:none; transform:none; }
.recovery-page .recovery-button:disabled { opacity:.7; cursor:wait; box-shadow:none; }
.recovery-page .recovery-link { display:block; width:fit-content; margin:22px auto 0; color:#92eaff; font-size:.875rem; line-height:1.5; text-decoration:underline; text-underline-offset:4px; }
.recovery-page .recovery-link:hover { color:#fff; }
.recovery-page { --password-toggle-color:#92eaff; --password-toggle-hover:#fff; --password-toggle-focus:#8beaff; --password-toggle-background:#172b3c; --password-toggle-border:#355267; }
.recovery-page [hidden] { display:none!important; }
.recovery-page .recovery-error { margin-top:8px; padding:10px 12px; border-left:3px solid #ed9ca8; border-radius:4px; background:#3c2835; color:#ffe0e2; font-size:.85rem; line-height:1.5; overflow-wrap:anywhere; }
.recovery-page .errorlist { margin:0; padding:0; list-style:none; }
.recovery-page .recovery-help { margin:0 0 20px; color:var(--recovery-muted); font-size:.85rem; line-height:1.5; }
.recovery-page .recovery-help summary { width:fit-content; cursor:pointer; color:#92eaff; }
.recovery-page .recovery-help ul { margin:10px 0 0; padding-left:20px; }
@media (max-width:480px) { .recovery-page { padding:28px 12px 40px; } .recovery-page .recovery-card { padding:24px 20px; border-radius:18px; } }
@media (prefers-reduced-motion:reduce) { .recovery-page .recovery-input, .recovery-page .recovery-button { transition:none; } }

/* Login and registration reuse the recovery card, fields and focus states. */
.recovery-page--auth { display:grid; align-items:center; min-height:calc(100vh - 140px); min-height:calc(100svh - 140px); padding-block:32px; }
.recovery-page .auth-form-error { margin:0 0 18px; }
.recovery-page .auth-forgot { display:block; width:fit-content; margin:-2px 0 20px auto; color:#92eaff; font-size:.85rem; text-underline-offset:4px; }
.recovery-page .auth-divider { display:flex; align-items:center; gap:12px; margin:24px 0 18px; color:#9fb7c3; font-size:.8rem; }
.recovery-page .auth-divider::before, .recovery-page .auth-divider::after { content:""; flex:1; height:1px; background:#355267; }
.recovery-page .auth-socials { display:grid; gap:12px; }
.recovery-page .auth-social { display:flex; justify-content:center; align-items:center; gap:12px; min-height:48px; padding:12px 16px; border:1px solid rgba(153,198,222,.35); border-radius:10px; color:#fff; font-size:.95rem; font-weight:600; line-height:1.4; text-decoration:none; box-shadow:none; transition:border-color .15s,background-position .2s; }
.recovery-page .auth-social--google { background-image:linear-gradient(rgba(9,23,37,.65),rgba(9,23,37,.65)),linear-gradient(100deg,#4285f4,#34a853,#fbbc05,#ea4335); background-size:100% 100%,180% 100%; }
.recovery-page .auth-social--github { background-image:linear-gradient(110deg,#24292e,#465e75); }
.recovery-page .auth-social img { flex-shrink:0; }
.recovery-page .auth-social i { font-size:22px; }
.recovery-page .auth-social:hover { color:#fff; border-color:#92eaff; background-position:0 0,100% 0; box-shadow:none; }
.recovery-page .auth-switch { margin:24px 0 0; color:var(--recovery-muted); font-size:.85rem; line-height:1.65; text-align:center; overflow-wrap:anywhere; }
.recovery-page .auth-switch a, .recovery-page .auth-terms a { color:#92eaff; text-underline-offset:3px; }
.recovery-page .auth-terms { display:flex; align-items:flex-start; gap:10px; margin:4px 0 22px; }
.recovery-page .auth-terms input { flex:0 0 20px; width:20px; height:20px; margin-top:2px; accent-color:#087bb5; }
.recovery-page .auth-terms label { min-width:0; margin:0; color:var(--recovery-muted); font-size:.8rem; line-height:1.65; font-weight:400; overflow-wrap:anywhere; }
.recovery-page .auth-terms input:focus-visible { outline:3px solid #8beaff; outline-offset:3px; }
@media (max-width:480px) { .recovery-page--auth { padding-block:24px; } }
@media (prefers-reduced-motion:reduce) { .recovery-page .auth-social { transition:none; } }
