/* base */
.ff-research-form{max-width:780px;margin:28px auto;font-family:system-ui;padding:0 16px}
.ff-card{background:#fff;border-radius:14px;padding:22px 22px 26px;box-shadow:0 18px 50px rgba(2,6,23,0.06)}
.ff-research-form h2{text-align:center;margin-bottom:6px}
.subtitle{text-align:center;color:#64748b;margin-bottom:18px;font-size:14px}

/* steps indicator */
.ff-steps{display:flex;gap:10px;justify-content:center;margin-bottom:16px}
.ff-step-dot{width:36px;height:36px;border-radius:50%;background:#eef2ff;color:#314155;display:flex;align-items:center;justify-content:center;font-weight:700}
.ff-step-dot.active{background:#6366f1;color:#fff}

/* IMPORTANT: hide steps by default, show only active */
.ff-step{display:none}
.ff-step.active{display:block}

/* fields */
.ff-label{display:block;margin-top:10px;font-weight:700;color:#0f172a}
.ff-input,.ff-textarea{width:100%;padding:12px;border-radius:10px;border:1px solid #e6e8ff;margin-top:8px;font-size:14px}
.ff-textarea{min-height:120px;resize:vertical}
.ff-row{display:flex;gap:10px;margin-top:8px}
.ff-radio{flex:1;background:#f8fafc;border-radius:10px;padding:12px;display:flex;align-items:center;gap:10px;border:1px solid #eef2ff;cursor:pointer}
.ff-radio input{transform:scale(1.05);margin-right:6px}
.ff-file{margin-top:8px}

/* price and badge */
.price-box{margin-top:12px;padding:12px;border-radius:10px;background:#f0fdf4;border:1px dashed #22c55e;font-weight:700;color:#065f46;text-align:center}
.badge-box{margin-top:8px;background:#eefbf5;color:#064e3b;padding:8px;border-radius:8px;font-size:13px;text-align:center;color:#064e3b}

/* summary + errors */
.summary-box{margin-top:12px;padding:12px;background:#f8fafc;border-radius:10px}
.ff-error{color:#dc2626;margin-top:8px;font-size:13px}
.char-row{text-align:right;color:#64748b;margin-top:6px;font-size:13px}

/* actions */
.ff-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.ff-btn{background:#6366f1;color:#fff;padding:10px 14px;border-radius:10px;border:none;cursor:pointer}
.ff-prev{background:#94a3b8}
.ff-pay{display:inline-block;padding:11px 16px;border-radius:10px;background:#0ea5a4;color:#fff;text-decoration:none;font-weight:700}

/* responsive */
@media(max-width:640px){
  .ff-row{flex-direction:column}
  .ff-actions{flex-direction:column;align-items:stretch}
}