:root{
  --brand:#227c3d;
  --brand-ink:#165a2c;
  --ink:#0f172a;
  --muted:#64748b;
  --bg:#f8fafc;
  --card:#ffffff;
  --ring:rgba(34,124,61,.25);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}

/* Container / card */
.form-card{
  max-width:820px;margin:32px auto;padding:28px 28px 32px;
  background:var(--card);border-radius:20px;box-shadow:0 10px 30px rgba(2,8,20,.06);
}

/* Header + progress */
.form-header{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.form-title{font-size:1.4rem;font-weight:700;margin:0}
.stepper{display:flex;gap:10px;margin-left:auto}
.step{
  width:34px;height:34px;border-radius:999px;display:grid;place-items:center;
  background:#e2e8f0;color:#334155;font-weight:700;font-size:.95rem;
}
.step.is-active{background:var(--brand);color:#fff;box-shadow:0 0 0 6px var(--ring)}
.step.is-done{background:var(--brand-ink);color:#fff}

/* Grid for fields */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:720px){.form-grid{grid-template-columns:1fr}}

/* Labels + inputs */
.label{font-weight:600;font-size:.95rem;margin-bottom:6px;color:#0b1220}
.input,.select,.textarea{
  width:100%;padding:12px 14px;border:1.5px solid #e2e8f0;border-radius:12px;background:#fff;
  transition:border .16s ease, box-shadow .16s ease;
}
.input:focus,.select:focus,.textarea:focus{
  outline:0;border-color:var(--brand);box-shadow:0 0 0 6px var(--ring)
}

/* Radio/choice tiles */
.choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
@media (max-width:920px){.choices{grid-template-columns:repeat(3,1fr)}}
@media (max-width:620px){.choices{grid-template-columns:repeat(2,1fr)}}
.choice{
  border:1.5px solid #e2e8f0;border-radius:16px;padding:14px;cursor:pointer;background:#fff;
  text-align:center;user-select:none;transition:transform .08s ease, border .16s ease, box-shadow .16s ease;
}
.choice:hover{transform:translateY(-1px)}
.choice.is-selected{border-color:var(--brand);box-shadow:0 0 0 6px var(--ring)}
.choice img{max-width:56px;height:56px;object-fit:contain;display:block;margin:0 auto 8px}
.choice span{font-weight:600;color:#0b1220}

/* Helper text / errors */
.help{color:var(--muted);font-size:.9rem;margin-top:6px}
.error{color:#b91c1c;font-size:.9rem;margin-top:6px}

/* Buttons */
.actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}
.btn{
  padding:12px 18px;border-radius:12px;border:1.5px solid transparent;font-weight:700;cursor:pointer;
  transition:transform .08s ease, box-shadow .16s ease, background .16s ease, color .16s ease;
}
.btn:active{transform:translateY(1px)}

.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-ink)}
.btn-outline{background:#fff;color:var(--brand);border-color:var(--brand)}
.btn-outline:hover{background:#f0fdf4}

.btn-full{width:100%;justify-content:center}

/* Success / error states */
.notice{
  margin-top:18px;padding:14px 16px;border-radius:14px;background:#f0fdf4;border:1.5px solid #dcfce7;color:#166534;
}
.notice.error{background:#fef2f2;border-color:#fee2e2;color:#991b1b}

/* Utility spacing */
.row{display:flex;gap:12px}
.col{display:flex;flex-direction:column}

/* Hide steps (JS toggles .is-active on section) */
.step-pane{display:none}
.step-pane.is-active{display:block}
