body { min-height:100vh; display:flex; flex-direction:column; }
.fp-header { padding:18px 0; border-bottom:1px solid var(--border-light); background:rgba(255,253,245,0.96); }
.header-inner { max-width:1200px; margin:0 auto; padding:0 28px; display:flex; justify-content:space-between; align-items:center; }
.header-inner .back-link { font-size:0.85rem; color:var(--gray-mid); }
.header-inner .back-link i { margin-right:4px; }
.header-inner .back-link:hover { color:var(--brand-green); }

.fp-main { flex:1; display:flex; align-items:center; justify-content:center; padding:40px 20px; }
.fp-card { background:var(--white); border-radius:24px; box-shadow:0 12px 40px rgba(0,0,0,0.04); border:1px solid var(--border-light); padding:44px 44px 36px; max-width:480px; width:100%; }

.fp-title { text-align:center; margin-bottom:28px; }
.fp-title h1 { font-size:1.3rem; font-weight:700; color:#1F3E3B; margin-bottom:4px; }
.fp-title p { font-size:0.82rem; color:var(--gray-mid); }

.step-panel { }
.step-panel .form-group { margin-bottom:18px; }
.step-panel .form-group label { display:block; font-size:0.82rem; font-weight:500; color:var(--gray-deep); margin-bottom:4px; }
.step-panel .form-group .input-wrap { display:flex; border:1px solid #E4DDCF; border-radius:10px; overflow:hidden; background:#FAFAF7; transition:.2s; }
.step-panel .form-group .input-wrap:focus-within { border-color:var(--brand-green); background:var(--white); }
.step-panel .form-group .input-wrap .icon { padding:11px 0 11px 14px; color:#bbb; font-size:0.9rem; }
.step-panel .form-group .input-wrap input { flex:1; padding:11px 14px 11px 8px; border:none; background:transparent; font-size:0.9rem; outline:none; }
.step-panel .form-group .input-wrap .code-btn { padding:0 14px; background:var(--brand-light-green); color:var(--brand-green); font-size:0.78rem; font-weight:600; border:none; cursor:pointer; white-space:nowrap; }
.step-panel .form-group .input-wrap .code-btn:disabled { opacity:0.5; cursor:not-allowed; }
.form-error { font-size:0.72rem; color:#E53935; margin-top:4px; display:none; }

.step-panel .action-btn { width:100%; padding:12px; border:none; border-radius:12px; background:linear-gradient(135deg,var(--brand-green),#38A169); color:white; font-size:1rem; font-weight:600; cursor:pointer; transition:.2s; margin-top:6px; }
.step-panel .action-btn:hover { background:var(--brand-dark-green); transform:translateY(-1px); }
.step-panel .action-btn:disabled { opacity:0.5; cursor:not-allowed; transform:none; }

.alternate-help { text-align:center; margin-top:16px; font-size:0.78rem; color:var(--gray-mid); line-height:1.8; }
.alternate-help a { color:var(--brand-green); }
.alternate-help a:hover { color:var(--accent-orange); }

.pwd-strength { display:flex; gap:4px; margin-top:6px; align-items:center; }
.pwd-strength .bar { flex:1; height:4px; border-radius:2px; background:#EDE8DE; overflow:hidden; }
.pwd-strength .bar .fill { height:100%; border-radius:2px; width:0; transition:.3s; }
.pwd-strength .bar .fill.weak { width:33%; background:#E53935; }
.pwd-strength .bar .fill.medium { width:66%; background:#F39C12; }
.pwd-strength .bar .fill.strong { width:100%; background:var(--brand-green); }
.pwd-strength .label { font-size:0.7rem; color:#bbb; min-width:36px; text-align:right; }
.pwd-hint { font-size:0.72rem; color:#bbb; margin-top:4px; }

.success-wrap { text-align:center; padding:20px 0; }
.success-wrap .check-icon { width:64px; height:64px; border-radius:50%; background:var(--brand-light-green); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; font-size:1.8rem; color:var(--brand-green); }
.success-wrap h2 { font-size:1.2rem; font-weight:700; color:#1F3E3B; margin-bottom:6px; }
.success-wrap p { font-size:0.85rem; color:var(--gray-mid); margin-bottom:24px; }
.success-wrap .countdown { font-size:0.8rem; color:#bbb; margin-top:12px; }
.success-wrap .countdown strong { color:var(--accent-orange); }

.step-panel { display:none; }
.step-panel.active { display:block; }

@media (max-width:480px) {
    .fp-card { padding:32px 24px; }
}
