.cs-wrap {
  --cs-primary: #0f6e5a;
  --cs-primary-dark: #0b5445;
  --cs-border: #dfe6e4;
  --cs-text: #1c2b28;
  --cs-muted: #5c6b68;
  --cs-error: #c0392b;
  max-width: 640px;
  margin: 0 auto;
  font-family: inherit;
  color: var(--cs-text);
}
.cs-wrap * { box-sizing: border-box; }
.cs-progress { display: flex; gap: 6px; margin: 0 0 20px; }
.cs-progress div { flex: 1; height: 4px; border-radius: 2px; background: var(--cs-border); transition: background .2s; }
.cs-progress div.cs-active { background: var(--cs-primary); }
.cs-card {
  background: #fff;
  border: 1px solid var(--cs-border);
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.cs-step { display: none; }
.cs-step.active { display: block; }
.cs-step h2 { font-size: 1.1rem; margin-top: 0; }
.cs-wrap label { display: block; font-weight: 600; font-size: 0.9rem; margin: 16px 0 6px; }
.cs-wrap label.cs-inline { display: inline-flex; align-items: flex-start; gap: 8px; font-weight: 400; }
.cs-wrap input[type=text], .cs-wrap input[type=email], .cs-wrap input[type=tel],
.cs-wrap input[type=date], .cs-wrap textarea, .cs-wrap select {
  width: 100%; padding: 10px 12px; border: 1px solid var(--cs-border); border-radius: 8px;
  font-size: 0.95rem; font-family: inherit; background: #fff;
}
.cs-wrap textarea { resize: vertical; min-height: 80px; }
.cs-radio-group, .cs-checkbox-group { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.cs-radio-group label, .cs-checkbox-group label { font-weight: 400; display: flex; align-items: center; gap: 8px; margin: 0; }
.cs-btn-row { display: flex; justify-content: space-between; margin-top: 28px; gap: 12px; }
.cs-wrap button {
  appearance: none; border: none; border-radius: 8px; padding: 12px 20px;
  font-size: 0.95rem; font-weight: 600; cursor: pointer;
}
.cs-btn-primary { background: var(--cs-primary); color: #fff; }
.cs-btn-primary:hover { background: var(--cs-primary-dark); }
.cs-btn-secondary { background: transparent; color: var(--cs-muted); border: 1px solid var(--cs-border); }
.cs-error-text { color: var(--cs-error); font-size: 0.85rem; margin-top: 4px; display: none; }
#csSuccessPanel, #csErrorPanel { display: none; text-align: center; padding: 40px 20px; }
#csSuccessPanel h2, #csErrorPanel h2 { margin-top: 0; }
.cs-small { font-size: 0.8rem; color: var(--cs-muted); }
.cs-footer-note { text-align: center; margin-top: 20px; color: var(--cs-muted); font-size: 0.75rem; }
