
    html, body { overflow-x: hidden; }
    body { background: var(--gray-50); font-family: Arial, sans-serif; }

    /* ── Hero ── */
    .cu-hero {
      background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
      color: #fff;
      padding: clamp(28px, 4.8vw, 54px) 0;
    }
    .cu-title {
      margin: 0 0 10px 0;
      font-size: clamp(22px, 3vw, 36px);
      line-height: 1.15;
      letter-spacing: -0.01em;
      color: #fff;
      font-weight: 700;
    }
    .cu-subtitle {
      margin: 0;
      max-width: 85ch;
      color: rgba(255,255,255,0.78);
      font-size: 14px;
      line-height: 1.7;
    }

    /* ── Layout ── */
    .cu-main { padding: clamp(20px, 3vw, 40px) 0 clamp(42px, 6vw, 78px); }
    .cu-grid { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 24px; align-items: start; }

    /* ── Aside info panel ── */
    .cu-info { display: grid; gap: 12px; padding: 18px; }
    .cu-info h4 { margin: 0; font-size: 14px; font-weight: 600; color: var(--primary); }
    .cu-info p { margin: 0; font-size: 13px; color: var(--gray-500); line-height: 1.7; }
    .cu-info-item { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border: 1px solid #eef2f7; border-radius: 12px; background: #fff; }
    .cu-ico { width: 34px; height: 34px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: #f1f5f9; border: 1px solid #e2e8f0; color: #334155; flex: 0 0 auto; }
    .cu-ico i { font-size: 14px; opacity: 0.85; }

    /* ── Multi-step form wrapper ── */
    .msf-card {
      background: #fff;
      border: 1px solid #e5e7eb;
      border-radius: 20px;
      box-shadow: 0 4px 24px rgba(2,6,23,0.07);
      overflow: hidden;
    }

    /* ── Progress bar ── */
    .msf-progress {
      padding: 22px 28px 0;
      background: #f8fafc;
      border-bottom: 1px solid #eef2f7;
    }
    .msf-progress-bar-wrap {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 10px;
    }
    .msf-progress-line {
      position: absolute;
      top: 50%;
      left: 0;
      right: 0;
      height: 3px;
      background: #e2e8f0;
      transform: translateY(-50%);
      z-index: 0;
      border-radius: 2px;
    }
    .msf-progress-line-fill {
      height: 100%;
      background: linear-gradient(90deg, #0ea5e9, #38bdf8);
      border-radius: 2px;
      transition: width 0.45s cubic-bezier(0.4,0,0.2,1);
    }
    .msf-step-dot {
      position: relative;
      z-index: 1;
      width: 32px;
      height: 32px;
      border-radius: 50%;
      background: #e2e8f0;
      border: 2px solid #e2e8f0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      font-weight: 700;
      color: #94a3b8;
      transition: background 0.3s, border-color 0.3s, color 0.3s, box-shadow 0.3s;
      flex-shrink: 0;
    }
    .msf-step-dot.done {
      background: #0ea5e9;
      border-color: #0ea5e9;
      color: #fff;
    }
    .msf-step-dot.active {
      background: #fff;
      border-color: #0ea5e9;
      color: #0ea5e9;
      box-shadow: 0 0 0 4px rgba(14,165,233,0.15);
    }
    .msf-step-labels {
      display: flex;
      justify-content: space-between;
      padding-bottom: 14px;
    }
    .msf-step-label {
      font-size: 10px;
      font-weight: 600;
      color: #94a3b8;
      text-align: center;
      width: 32px;
      line-height: 1.3;
      letter-spacing: 0.01em;
      transition: color 0.3s;
    }
    .msf-step-label.active { color: #0ea5e9; }
    .msf-step-label.done { color: #0f172a; }

    /* ── Step container + animation ── */
    .msf-body { padding: 28px; min-height: 320px; }
    .msf-step {
      animation: msfFadeSlide 0.35s cubic-bezier(0.4,0,0.2,1) both;
    }
    @keyframes msfFadeSlide {
      from { opacity: 0; transform: translateX(28px); }
      to   { opacity: 1; transform: translateX(0); }
    }
    .msf-step.going-back {
      animation: msfFadeSlideBack 0.35s cubic-bezier(0.4,0,0.2,1) both;
    }
    @keyframes msfFadeSlideBack {
      from { opacity: 0; transform: translateX(-28px); }
      to   { opacity: 1; transform: translateX(0); }
    }

    /* ── Step heading ── */
    .msf-step-title {
      margin: 0 0 6px 0;
      font-size: 18px;
      font-weight: 700;
      color: #0f172a;
    }
    .msf-step-sub {
      margin: 0 0 22px 0;
      font-size: 13px;
      color: #64748b;
      line-height: 1.6;
    }

    /* ── Category cards (Step 1) ── */
    .msf-cat-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
    }
    .msf-cat-card {
      border: 2px solid #e5e7eb;
      border-radius: 16px;
      padding: 20px 14px 16px;
      cursor: pointer;
      text-align: center;
      background: #fff;
      transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
      position: relative;
      outline: none;
    }
    .msf-cat-card:hover {
      border-color: #0ea5e9;
      box-shadow: 0 4px 18px rgba(14,165,233,0.13);
      transform: translateY(-2px);
    }
    .msf-cat-card.selected {
      border-color: var(--cat-color, #0ea5e9);
      box-shadow: 0 0 0 3px rgba(14,165,233,0.15);
      background: #f0f9ff;
    }
    .msf-cat-check {
      position: absolute;
      top: 9px;
      right: 9px;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: var(--cat-color, #0ea5e9);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transform: scale(0.5);
      transition: opacity 0.2s, transform 0.2s;
    }
    .msf-cat-card.selected .msf-cat-check {
      opacity: 1;
      transform: scale(1);
    }
    .msf-cat-check i { font-size: 10px; color: #fff; }
    .msf-cat-icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 12px;
      font-size: 22px;
    }
    .msf-cat-label {
      font-size: 12px;
      font-weight: 700;
      color: #0f172a;
      line-height: 1.35;
    }

    /* ── Form fields ── */
    .msf-fields {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    .msf-field {
      display: flex;
      flex-direction: column;
      gap: 5px;
    }
    .msf-field.full { grid-column: 1 / -1; }
    .msf-label {
      font-size: 12px;
      font-weight: 700;
      color: #334155;
      letter-spacing: 0.01em;
    }
    .msf-label span.req { color: #ef4444; margin-left: 2px; }
    .msf-input, .msf-select, .msf-textarea {
      width: 100%;
      padding: 10px 13px;
      border: 1.5px solid #e2e8f0;
      border-radius: 10px;
      font-size: 14px;
      color: #0f172a;
      background: #fff;
      outline: none;
      transition: border-color 0.15s, box-shadow 0.15s;
      font-family: inherit;
    }
    .msf-input:focus, .msf-select:focus, .msf-textarea:focus {
      border-color: #0ea5e9;
      box-shadow: 0 0 0 3px rgba(14,165,233,0.15);
    }
    .msf-input.error, .msf-select.error, .msf-textarea.error {
      border-color: #ef4444;
      box-shadow: 0 0 0 3px rgba(239,68,68,0.12);
    }
    .msf-textarea {
      min-height: 110px;
      resize: vertical;
    }
    .msf-err {
      font-size: 11px;
      color: #ef4444;
      font-weight: 600;
      margin-top: 2px;
      display: flex;
      align-items: center;
      gap: 4px;
    }

    /* ── Checkbox group ── */
    .msf-check-group {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 2px;
    }
    .msf-check-pill {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 13px;
      border: 1.5px solid #e2e8f0;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 600;
      color: #475569;
      cursor: pointer;
      transition: border-color 0.15s, background 0.15s, color 0.15s;
      user-select: none;
    }
    .msf-check-pill input { display: none; }
    .msf-check-pill.checked {
      border-color: #0ea5e9;
      background: #e0f2fe;
      color: #0369a1;
    }

    /* ── File input ── */
    .msf-file-wrap {
      border: 1.5px dashed #cbd5e1;
      border-radius: 10px;
      padding: 16px;
      text-align: center;
      cursor: pointer;
      background: #f8fafc;
      transition: border-color 0.2s, background 0.2s;
    }
    .msf-file-wrap:hover { border-color: #0ea5e9; background: #f0f9ff; }
    .msf-file-wrap input { display: none; }
    .msf-file-label {
      font-size: 13px;
      color: #64748b;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
    }
    .msf-file-label i { font-size: 22px; color: #0ea5e9; }
    .msf-file-name {
      font-size: 12px;
      color: #0f172a;
      font-weight: 600;
      margin-top: 4px;
    }

    /* ── Review summary ── */
    .msf-review {
      display: grid;
      gap: 10px;
    }
    .msf-review-section {
      background: #f8fafc;
      border: 1px solid #e5e7eb;
      border-radius: 12px;
      padding: 14px 16px;
    }
    .msf-review-section-title {
      font-size: 11px;
      font-weight: 700;
      color: #94a3b8;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      margin-bottom: 10px;
    }
    .msf-review-row {
      display: flex;
      gap: 8px;
      margin-bottom: 6px;
      font-size: 13px;
    }
    .msf-review-row:last-child { margin-bottom: 0; }
    .msf-review-key {
      font-weight: 700;
      color: #475569;
      min-width: 130px;
      flex-shrink: 0;
    }
    .msf-review-val { color: #0f172a; }

    /* ── Consent checkboxes ── */
    .msf-consent-item {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      padding: 12px 14px;
      border: 1.5px solid #e2e8f0;
      border-radius: 12px;
      margin-bottom: 10px;
      transition: border-color 0.15s, background 0.15s;
    }
    .msf-consent-item.checked-c {
      border-color: #0ea5e9;
      background: #f0f9ff;
    }
    .msf-consent-item input[type="checkbox"] {
      width: 17px;
      height: 17px;
      margin-top: 1px;
      accent-color: #0ea5e9;
      flex-shrink: 0;
      cursor: pointer;
    }
    .msf-consent-text {
      font-size: 13px;
      color: #334155;
      line-height: 1.55;
    }
    .msf-consent-text a { color: #0ea5e9; text-decoration: underline; }

    /* ── Navigation buttons ── */
    .msf-nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 26px;
      gap: 12px;
    }
    .msf-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 11px 22px;
      border-radius: 12px;
      font-weight: 700;
      font-size: 14px;
      border: 1.5px solid transparent;
      cursor: pointer;
      white-space: nowrap;
      transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
    }
    .msf-btn-primary {
      background: #0ea5e9;
      color: #fff;
      border-color: #0ea5e9;
    }
    .msf-btn-primary:hover:not(:disabled) {
      background: #0284c7;
      border-color: #0284c7;
      box-shadow: 0 4px 12px rgba(14,165,233,0.28);
    }
    .msf-btn-primary:disabled {
      opacity: 0.65;
      cursor: not-allowed;
    }
    .msf-btn-secondary {
      background: #fff;
      color: #0f172a;
      border-color: #e2e8f0;
    }
    .msf-btn-secondary:hover {
      border-color: #94a3b8;
      background: #f8fafc;
    }
    .msf-btn-ghost {
      background: transparent;
      color: #64748b;
      border-color: transparent;
      padding-left: 4px;
    }
    .msf-btn-ghost:hover { color: #0f172a; }

    /* ── Status note ── */
    .msf-note {
      padding: 14px 16px;
      border-radius: 14px;
      font-size: 13px;
      line-height: 1.65;
      display: flex;
      gap: 10px;
      align-items: flex-start;
    }
    .msf-note.success {
      background: #f0fdf4;
      border: 1px solid #86efac;
      color: #166534;
    }
    .msf-note.error {
      background: #fef2f2;
      border: 1px solid #fca5a5;
      color: #991b1b;
    }
    .msf-note i { margin-top: 1px; flex-shrink: 0; }

    /* ── Aside card shell ── */
    .cu-card {
      background: #fff;
      border: 1px solid #e5e7eb;
      border-radius: 16px;
      box-shadow: 0 2px 10px rgba(2,6,23,0.05);
      overflow: hidden;
    }

    /* ── Responsive ── */
    @media (max-width: 992px) {
      .cu-grid { grid-template-columns: 1fr; }
      .cu-aside-panel { display: none; }
    }
    @media (max-width: 720px) {
      .msf-cat-grid { grid-template-columns: repeat(2, 1fr); }
      .msf-fields { grid-template-columns: 1fr; }
      .msf-field.full { grid-column: auto; }
      .msf-body { padding: 18px 16px; }
      .msf-progress { padding: 16px 16px 0; }
      .msf-step-label { font-size: 9px; }
      .msf-step-dot { width: 26px; height: 26px; font-size: 11px; }
    }
    @media (max-width: 420px) {
      .msf-cat-grid { grid-template-columns: 1fr 1fr; }
    }
  