.create-wizard{max-width:760px;margin:2.5rem auto;background:var(--ffm-surface);border:1px solid var(--ffm-border);border-radius:18px;box-shadow:var(--ffm-shadow-lg);padding:2rem}
.create-wizard h2{font-weight:700;margin-bottom:.3rem}
.create-wizard .sub{color:var(--ffm-muted);margin-bottom:1.4rem}
.steps{display:flex;justify-content:space-between;margin-bottom:1.8rem;gap:.5rem}
.steps .step{flex:1;text-align:center;font-size:.78rem;color:var(--ffm-muted);position:relative;padding-top:32px}
.steps .step:before{content:attr(data-n);position:absolute;top:0;left:50%;transform:translateX(-50%);width:26px;height:26px;border-radius:50%;background:#e9eef6;color:var(--ffm-muted);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}
.steps .step.active:before{background:var(--ffm-primary);color:#fff}
.steps .step.done:before{background:var(--ffm-accent);color:#fff;content:"✓"}
.steps .step.active{color:var(--ffm-text);font-weight:600}
.steps .step + .step:after{content:"";position:absolute;left:-50%;top:13px;width:100%;height:2px;background:#e9eef6;z-index:-1}
.warning-box{background:#fff4ee;border:1px solid #f3c5b3;color:#7d2e1f;padding:.9rem 1rem;border-radius:12px;font-size:.9rem;display:flex;gap:.6rem;align-items:flex-start}

/* Password status banners + criteria checklist */
.pw-status{display:flex;align-items:center;gap:.5rem;padding:.55rem .8rem;border-radius:10px;font-size:.88rem;border:1px solid transparent}
.pw-status .bi{font-size:1rem}
.pw-status.ok{background:#eaf6f1;border-color:#bfe2d3;color:#1b6a55}
.pw-status.warn{background:#fff4ee;border-color:#f3c5b3;color:#7d4a1f}
.pw-status.err{background:#fdecea;border-color:#f5c0bb;color:#8a2a1f}
.pw-criteria ul li{display:flex;align-items:center;gap:.45rem;padding:.1rem 0;color:#6b7280}
.pw-criteria ul li .bi{font-size:.95rem;color:#9ca3af}
.pw-criteria ul li.ok{color:#1b6a55}
.pw-criteria ul li.ok .bi{color:#2e8a78}

/* Sub-tables inside forms (e.g. Insurance Riders) */
.ffm-subtable { background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; padding:.5rem .75rem; }
.ffm-mini-table { margin-bottom:.5rem; background:transparent; }
.ffm-mini-table th { font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; color:#64748b; font-weight:600; }
.ffm-mini-table td { vertical-align:middle; }

/* Open-map hint link */
.ffm-hint-link { font-weight:500; text-decoration:none; }
.ffm-hint-link:hover { text-decoration:underline; }

/* Multi-select hint */
select[multiple].form-select { min-height:6.5rem; }
