.fp-illus {
    z-index: 3;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    padding: 20px 0;
}
.fp-illus-box {
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 20px;
    padding: 32px 36px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
}
.fp-illus-icon {
    width: 72px;
    height: 72px;
    border-radius: 20px;
    background: rgba(255,255,255,.2);
    border: 1px solid rgba(255,255,255,.3);
    display: flex;
    align-items: center;
    justify-content: center;
}
.fp-illus-title {
    font-size: 18px;
    font-weight: 800;
    color: #fff;
    text-align: center;
    line-height: 1.2;
}
.fp-illus-sub {
    font-size: 13px;
    color: rgba(255,255,255,.72);
    text-align: center;
    line-height: 1.6;
    max-width: 260px;
}
.fp-steps {
    display: flex;
    flex-direction: column;
    width: 100%;
}
.fp-step {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 0;
    position: relative;
}
.fp-step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 14px;
    top: 42px;
    bottom: 0;
    width: 1px;
    background: rgba(255,255,255,.15);
}
.fp-step-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.25);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 800;
    color: rgba(255,255,255,.7);
    flex-shrink: 0;
}
.fp-step-body {
    padding-top: 3px;
}
.fp-step-lbl {
    font-size: 13px;
    color: rgba(255,255,255,.7);
    font-weight: 500;
    line-height: 1.3;
}
.fp-step-desc {
    font-size: 11px;
    color: rgba(255,255,255,.45);
    margin-top: 3px;
    line-height: 1.4;
}
.fp-step.active .fp-step-num {
    background: #fff;
    color: var(--green-dark);
    border-color: #fff;
}
.fp-step.active .fp-step-lbl {
    color: #fff;
    font-weight: 700;
}
.fp-step.active .fp-step-desc {
    color: rgba(255,255,255,.65);
}

.form-hint {
    font-size: 11px;
    color: #999;
    margin-top: 6px;
    display: flex;
    align-items: center;
    gap: 5px;
}
.fp-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 16px 0;
}
.fp-divider-line { flex: 1; height: 1px; background: #ececec; }
.fp-divider-text { font-size: 11px; color: #bbb; font-weight: 600; }

.otp-input {
        text-align: center;
        font-size: 32px !important;
        font-weight: 800 !important;
        letter-spacing: 12px !important;
        padding: 15px !important;
        color: #1a4a8a !important;
    }