.recovery-page { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:40px 20px; background:radial-gradient(ellipse at top left,#286d47 0,#123e2a 55%,#0a291e 100%); color:#20312a; }
.recovery-shell { width:100%; max-width:460px; }
.recovery-brand { display:block; text-align:center; color:#fff; text-decoration:none; margin-bottom:26px; }
.recovery-brand strong { display:block; font-size:30px; font-weight:800; letter-spacing:3px; }
.recovery-brand span { display:block; margin-top:4px; font-size:12px; color:#d1e5d9; line-height:1.6; }
.recovery-card { background:#fff; border:1px solid #e1e9e4; border-radius:18px; padding:36px; box-shadow:0 24px 64px #04170e40; }
.recovery-icon { width:52px; height:52px; display:flex; align-items:center; justify-content:center; background:#eaf5ed; color:#166534; border-radius:14px; margin-bottom:22px; font-size:21px; }
.recovery-card h1 { font-size:26px; font-weight:800; margin:0 0 10px; letter-spacing:-.5px; color:#173b27; }
.recovery-intro { color:#63736a; font-size:14px; line-height:1.7; margin-bottom:26px; }
.recovery-card label { display:block; font-size:13px; font-weight:700; margin-bottom:8px; }
.recovery-field { margin-bottom:20px; }
.recovery-card .form-control { width:100%; height:48px; border:1px solid #d5e0d8; border-radius:8px; font-size:14px; padding:12px 14px; }
.recovery-card .form-control:focus { border-color:#27844b; box-shadow:0 0 0 3px #16653418; }
.recovery-help { display:block; color:#728078; margin-top:7px; font-size:12px; line-height:1.6; }
.recovery-submit { width:100%; min-height:48px; border:0; border-radius:8px; background:#166534; color:#fff; font-size:14px; font-weight:700; padding:12px 16px; cursor:pointer; }
.recovery-submit:hover { background:#104c28; }
.recovery-submit:focus-visible,.recovery-back:focus-visible { outline:3px solid #68b584; outline-offset:3px; }
.recovery-back { display:block; text-align:center; color:#166534; font-size:13px; font-weight:700; margin-top:22px; text-decoration:none; }
.recovery-back:hover { color:#104c28; text-decoration:underline; }
.recovery-notice { padding:14px 16px; border-radius:8px; background:#eef8f0; color:#245437; border:1px solid #cce7d3; font-size:13px; line-height:1.7; margin-bottom:22px; }
.recovery-notice strong { display:block; margin-bottom:3px; }
.recovery-footer { text-align:center; margin:22px 0 0; font-size:11px; line-height:1.7; color:#c4d9cb; }
@media(max-width:480px) { .recovery-page { padding:28px 16px; } .recovery-card { padding:28px 22px; } .recovery-card h1 { font-size:24px; } }
