/* ============================================================
   SmartForm AI — Frontend v1.7.0  (Production Polish)
   LogicalFrame
   ============================================================ */

.sfai-form-container {
  --sfai-primary:      #6366f1;
  --sfai-primary-h:   #4f46e5;
  --sfai-primary-rgb: 99,102,241;
  --sfai-heading:     #0f172a;
  --sfai-label:       #1e293b;
  --sfai-muted:       #64748b;
  --sfai-input-bg:    #ffffff;
  --sfai-input-bdr:   #e2e8f0;
  --sfai-surface:     #ffffff;
  --sfai-page-bg:     #f7f9fc;
  --sfai-card-bdr:    #f1f5f9;
  --sfai-card-shadow: 0 4px 24px rgba(0,0,0,.06), 0 1px 4px rgba(0,0,0,.04);
  --sfai-input-focus: #6366f1;
  --sfai-radius:      10px;
  --sfai-radius-sm:   7px;
  --sfai-error:       #ef4444;
  --sfai-success:     #22c55e;
  --sfai-warn:        #f59e0b;
  --sfai-btn-bg:      #6366f1;
  --sfai-btn-text:    #ffffff;
  --sfai-btn-radius:  10px;
  --sfai-btn-pad:     12px 28px;
  --sfai-title-size:  22px;
  --sfai-font:        'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --sfai-font-size:   15px;
  --sfai-gap:         20px;
  --sfai-shadow:      0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.05);
  --sfai-shadow-focus:0 0 0 3px rgba(var(--sfai-primary-rgb),.18);
  box-sizing: border-box;
  font-family: var(--sfai-font);
  font-size: var(--sfai-font-size);
  color: var(--sfai-label);
  line-height: 1.5;
  width: 100%;
}
*, *::before, *::after { box-sizing: inherit; }

/* ── Form Wrapper Card ───────────────────────────────────────── */
.sfai-form-wrap {
  background: var(--sfai-surface);
  border-radius: var(--sfai-radius);
  box-shadow: var(--sfai-card-shadow);
  border: 1px solid var(--sfai-card-bdr);
  padding: 36px 40px 40px;
  max-width: 100%;
}
@media (max-width: 640px) { .sfai-form-wrap { padding: 24px 18px; border-radius: 12px; } }

/* ── Form Title ──────────────────────────────────────────────── */
.sfai-form-title {
  font-size: var(--sfai-title-size); font-weight: 800; color: var(--sfai-heading);
  font-family: var(--sfai-heading-font, var(--sfai-font));
  margin: 0 0 8px; letter-spacing: -.035em; line-height: 1.15;
}
.sfai-form-desc {
  font-size: 14px; color: var(--sfai-muted); margin: 0 0 28px; line-height: 1.6;
}

/* ── Layout Grid ─────────────────────────────────────────────── */
.sfai-form { display: flex; flex-wrap: wrap; gap: var(--sfai-gap); }
.sfai-field-wrap { display: contents; }
.sfai-field {
  display: flex; flex-direction: column; gap: 6px; min-width: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .sfai-form.sfai-multistep .sfai-step[aria-hidden="false"] .sfai-field { animation: sfai-field-in .18s ease both; }
}
@keyframes sfai-field-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }

.sfai-col-25  { flex: 0 0 calc(25%  - var(--sfai-gap)*.75); }
.sfai-col-33  { flex: 0 0 calc(33.333% - var(--sfai-gap)*.67); }
.sfai-col-50  { flex: 0 0 calc(50%  - var(--sfai-gap)*.5); }
.sfai-col-66  { flex: 0 0 calc(66.666% - var(--sfai-gap)*.34); }
.sfai-col-75  { flex: 0 0 calc(75%  - var(--sfai-gap)*.25); }
.sfai-col-100 { flex: 0 0 100%; }

@media (max-width: 700px) {
  .sfai-col-25,.sfai-col-33,.sfai-col-50,.sfai-col-66,.sfai-col-75 { flex: 0 0 100%; }
}

/* ── Visual Row / Column Layout (v1.5) ───────────────────────── */
.sfai-layout-row {
  flex: 0 0 100%; width: 100%;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--sfai-gap);
  align-items: start;
}
.sfai-layout-col {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sfai-gap);
}
.sfai-layout-span-3  { grid-column: span 3; }
.sfai-layout-span-4  { grid-column: span 4; }
.sfai-layout-span-6  { grid-column: span 6; }
.sfai-layout-span-8  { grid-column: span 8; }
.sfai-layout-span-9  { grid-column: span 9; }
.sfai-layout-span-12 { grid-column: span 12; }
.sfai-layout-col .sfai-field-wrap { display: block; min-width: 0; }
.sfai-layout-col .sfai-field { width: 100%; flex: 0 0 auto; }
.sfai-layout-col .sfai-field-wrap.sfai-hidden { display: none !important; }
@media (max-width: 700px) {
  .sfai-layout-row { grid-template-columns: 1fr; gap: 16px; }
  .sfai-layout-span-3,.sfai-layout-span-4,.sfai-layout-span-6,.sfai-layout-span-8,.sfai-layout-span-9,.sfai-layout-span-12 { grid-column: 1 / -1; }
}

/* ── Labels ──────────────────────────────────────────────────── */
.sfai-label {
  font-size: 13px; font-weight: 600; color: var(--sfai-label);
  letter-spacing: .01em; display: flex; align-items: center; gap: 4px;
}
.sfai-required { color: var(--sfai-error); font-size: 15px; line-height: 1; }
.sfai-field-desc {
  font-size: 12px; color: var(--sfai-muted); line-height: 1.5; margin: 0;
}

/* ── Base Input ──────────────────────────────────────────────── */
.sfai-input {
  width: 100%; display: block;
  background: var(--sfai-input-bg);
  border: 1.5px solid var(--sfai-input-bdr);
  border-radius: var(--sfai-radius-sm);
  padding: var(--sfai-input-pad);
  font-size: var(--sfai-font-size);
  font-family: var(--sfai-font);
  color: var(--sfai-label);
  outline: none;
  transition: border-color .15s, box-shadow .15s, background .15s;
  appearance: none; -webkit-appearance: none;
  line-height: 1.4;
}
.sfai-input:hover:not(:focus) { border-color: #c4c9d4; }
.sfai-input:focus {
  border-color: var(--sfai-input-focus);
  box-shadow: var(--sfai-shadow-focus);
  background: var(--sfai-input-bg);
}
.sfai-input::placeholder { color: #a0aec0; font-size: 14px; }
.sfai-input[aria-invalid="true"] { border-color: var(--sfai-error); background: #fff8f8; }
.sfai-input[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgba(239,68,68,.18); }
.sfai-input:disabled { opacity: .55; cursor: not-allowed; background: #f8fafc; }

/* Number - hide spinners */
input[type=number].sfai-input::-webkit-inner-spin-button,
input[type=number].sfai-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number].sfai-input { -moz-appearance: textfield; }

/* Textarea */
textarea.sfai-input { resize: vertical; min-height: 108px; line-height: 1.6; }

/* Select */
select.sfai-input {
  cursor: pointer; padding-right: 38px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
select.sfai-input:focus { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236366f1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); }



/* ── Compound Fields ─────────────────────────────────────────── */
.sfai-compound {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.sfai-compound-address {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sfai-compound-address input:nth-child(1),
.sfai-compound-address input:nth-child(2) {
  grid-column: 1 / -1;
}
@media (max-width: 640px) {
  .sfai-compound,
  .sfai-compound-address { grid-template-columns: 1fr; }
}

/* ── Consent / Toggle / Color ───────────────────────────────── */
.sfai-consent-label,
.sfai-toggle-field {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1.5px solid var(--sfai-input-bdr);
  border-radius: var(--sfai-radius-sm);
  background: #fff;
  padding: 12px 14px;
}
.sfai-consent-label:hover,
.sfai-toggle-field:hover { border-color: var(--sfai-primary); background: #fafbff; }
.sfai-consent-label input,
.sfai-toggle-field input { flex-shrink: 0; }
.sfai-toggle-field input { position: absolute; opacity: 0; pointer-events: none; }
.sfai-toggle-ui {
  width: 44px; height: 24px; background: #d1d5db; border-radius: 999px; position: relative; transition: all .18s ease; flex-shrink: 0;
}
.sfai-toggle-ui::after {
  content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 999px; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.15); transition: all .18s ease;
}
.sfai-toggle-field input:checked + .sfai-toggle-ui { background: var(--sfai-primary); }
.sfai-toggle-field input:checked + .sfai-toggle-ui::after { left: 23px; }
.sfai-toggle-copy { font-weight: 500; }
input[type=color].sfai-color-input { min-height: 48px; padding: 6px; }

/* ── Section Block ───────────────────────────────────────────── */
.sfai-section-block {
  display: flex; align-items: center; gap: 14px; padding: 4px 0 2px;
}
.sfai-section-line {
  width: 36px; height: 2px; border-radius: 999px; background: linear-gradient(90deg, var(--sfai-primary), rgba(var(--sfai-primary-rgb), .18));
}
.sfai-section-copy h3 { margin: 0; font-size: 16px; font-weight: 700; color: var(--sfai-label); }
.sfai-section-copy p { margin: 4px 0 0; color: var(--sfai-muted); font-size: 13px; }

/* ── Character Counter ───────────────────────────────────────── */
.sfai-char-counter,
.sfai-word-counter {
  font-size: 11px; color: var(--sfai-muted); text-align: right; margin-top: -2px;
  transition: color .2s;
}
.sfai-char-counter.near, .sfai-word-counter.near { color: var(--sfai-warn); }
.sfai-char-counter.limit, .sfai-word-counter.limit { color: var(--sfai-error); font-weight: 600; }

/* ── Radio / Checkbox ─────────────────────────────────────────── */
.sfai-radio-group, .sfai-checkbox-group {
  display: flex; flex-direction: column; gap: 8px;
}
.sfai-radio-group.sfai-layout-horizontal,
.sfai-checkbox-group.sfai-layout-horizontal {
  flex-direction: row; flex-wrap: wrap; gap: 10px;
}
.sfai-radio-group.sfai-layout-grid,
.sfai-checkbox-group.sfai-layout-grid {
  display: grid; grid-template-columns: repeat(auto-fill,minmax(150px,1fr)); gap: 8px;
}

.sfai-radio-label, .sfai-checkbox-label {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; border-radius: var(--sfai-radius-sm);
  border: 1.5px solid var(--sfai-input-bdr); background: #fff;
  cursor: pointer; font-size: 14px; font-weight: 500; color: var(--sfai-label);
  transition: all .15s; user-select: none; position: relative;
}
.sfai-radio-label:hover, .sfai-checkbox-label:hover {
  border-color: var(--sfai-primary); background: #fafbff;
}
.sfai-radio-label input, .sfai-checkbox-label input {
  width: 17px; height: 17px; flex-shrink: 0;
  accent-color: var(--sfai-primary); cursor: pointer;
}
.sfai-radio-label:has(input:checked),
.sfai-checkbox-label:has(input:checked) {
  border-color: var(--sfai-primary);
  background: #f0f0fe;
  color: var(--sfai-primary);
}
.sfai-choice-img { width: 36px; height: 36px; object-fit: cover; border-radius: 5px; }

/* ── File Upload ─────────────────────────────────────────────── */
.sfai-file-drop {
  border: 2px dashed var(--sfai-input-bdr);
  border-radius: var(--sfai-radius);
  padding: 28px 20px; text-align: center;
  transition: all .2s; cursor: pointer; position: relative;
  background: #fafcff;
}
.sfai-file-drop:hover, .sfai-file-drop.dragging {
  border-color: var(--sfai-primary);
  background: #f0f0fe;
}
.sfai-file-input {
  position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%;
}
.sfai-file-ui { pointer-events: none; }
.sfai-file-icon {
  display: block; margin: 0 auto 10px; color: var(--sfai-primary); opacity: .7;
}
.sfai-file-ui p { margin: 0 0 4px; font-weight: 600; font-size: 14px; color: var(--sfai-label); }
.sfai-file-ui small { font-size: 12px; color: var(--sfai-muted); }
.sfai-file-list { margin-top: 12px; text-align: left; }
.sfai-file-item {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 7px 12px; background: #f0f0fe; border-radius: 6px; margin-top: 6px;
  font-size: 13px; border: 1px solid #e0e0fa;
}
.sfai-file-item-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sfai-file-remove {
  cursor: pointer; color: var(--sfai-error); font-size: 16px; line-height: 1;
  flex-shrink: 0; opacity: .7; transition: opacity .15s;
}
.sfai-file-remove:hover { opacity: 1; }

/* ── Date ──────────────────────────────────────────────────────── */
input[type="date"].sfai-input,
input[type="datetime-local"].sfai-input,
input[type="time"].sfai-input {
  color-scheme: light;
}

/* ── Star Rating ─────────────────────────────────────────────── */
.sfai-rating { display: flex; flex-direction: row-reverse; gap: 3px; width: fit-content; }
.sfai-rating input { display: none; }
.sfai-rating label {
  font-size: 30px; cursor: pointer; color: #e2e8f0;
  transition: color .1s, transform .1s; line-height: 1;
}
.sfai-rating label:hover { transform: scale(1.15); }
.sfai-rating input:checked ~ label,
.sfai-rating label:hover,
.sfai-rating label:hover ~ label { color: #f59e0b; }

/* ── Slider ──────────────────────────────────────────────────── */
.sfai-slider-wrap { display: flex; align-items: center; gap: 14px; }
.sfai-slider {
  -webkit-appearance: none; flex: 1; height: 6px;
  background: linear-gradient(to right, var(--sfai-primary) 0%, var(--sfai-primary) var(--sfai-slider-pct,50%), #e2e8f0 var(--sfai-slider-pct,50%), #e2e8f0 100%);
  border-radius: 99px; outline: none; cursor: pointer; border: none;
}
.sfai-slider::-webkit-slider-thumb {
  -webkit-appearance: none; width: 22px; height: 22px;
  background: #fff; border: 2.5px solid var(--sfai-primary); border-radius: 50%;
  box-shadow: 0 2px 8px rgba(99,102,241,.3); cursor: pointer;
  transition: box-shadow .15s, transform .15s;
}
.sfai-slider::-webkit-slider-thumb:hover { transform: scale(1.15); box-shadow: 0 3px 14px rgba(99,102,241,.4); }
.sfai-slider::-moz-range-thumb {
  width: 22px; height: 22px; background: #fff; border: 2.5px solid var(--sfai-primary);
  border-radius: 50%; cursor: pointer; box-shadow: 0 2px 8px rgba(99,102,241,.3);
}
.sfai-slider-value {
  min-width: 56px; text-align: right; font-weight: 700;
  font-size: 14px; color: var(--sfai-primary);
  background: #f0f0fe; padding: 4px 10px; border-radius: 6px; border: 1px solid #e0e0fa;
}

/* ── Signature ───────────────────────────────────────────────── */
.sfai-signature-pad {
  border: 1.5px solid var(--sfai-input-bdr); border-radius: var(--sfai-radius);
  overflow: hidden; background: #fff; transition: border-color .15s;
}
.sfai-signature-pad:focus-within { border-color: var(--sfai-primary); box-shadow: var(--sfai-shadow-focus); }
.sfai-signature-pad canvas {
  display: block; width: 100%; height: 160px;
  cursor: crosshair; touch-action: none; background: #fff;
}
.sfai-sig-actions {
  display: flex; justify-content: space-between; align-items: center;
  padding: 8px 12px; background: #fafcff; border-top: 1px solid var(--sfai-input-bdr);
}
.sfai-sig-hint { font-size: 11px; color: var(--sfai-muted); }
.sfai-sig-clear {
  background: none; border: 1.5px solid var(--sfai-input-bdr); border-radius: 5px;
  padding: 4px 12px; font-size: 12px; cursor: pointer; color: var(--sfai-muted);
  transition: all .15s; font-family: var(--sfai-font);
}
.sfai-sig-clear:hover { border-color: var(--sfai-error); color: var(--sfai-error); }

/* ── Matrix ──────────────────────────────────────────────────── */
.sfai-matrix-wrap { overflow-x: auto; border-radius: var(--sfai-radius); border: 1.5px solid var(--sfai-input-bdr); }
.sfai-matrix { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.sfai-matrix th {
  padding: 10px 14px; text-align: center; background: #f8fafc;
  font-weight: 700; font-size: 12px; color: var(--sfai-muted);
  text-transform: uppercase; letter-spacing: .4px;
  border-bottom: 1.5px solid var(--sfai-input-bdr);
}
.sfai-matrix td { padding: 10px 14px; text-align: center; border-bottom: 1px solid #f1f5f9; }
.sfai-matrix td:first-child { text-align: left; font-weight: 600; color: var(--sfai-label); }
.sfai-matrix tr:last-child td { border-bottom: none; }
.sfai-matrix tr:hover td { background: #f8fafc; }
.sfai-matrix input { accent-color: var(--sfai-primary); width: 16px; height: 16px; cursor: pointer; }

/* ── Repeater ────────────────────────────────────────────────── */
.sfai-repeater-row {
  display: flex; gap: 10px; align-items: flex-start; padding: 14px;
  background: #fafcff; border-radius: var(--sfai-radius-sm);
  border: 1.5px solid var(--sfai-input-bdr); margin-bottom: 8px;
  transition: border-color .15s;
}
.sfai-repeater-row:hover { border-color: #c4c9d4; }
.sfai-repeater-row-fields { flex: 1; display: flex; flex-wrap: wrap; gap: 10px; }
.sfai-repeater-remove {
  color: var(--sfai-error); cursor: pointer; padding: 4px 6px; font-size: 18px;
  line-height: 1; opacity: .6; transition: opacity .15s; margin-top: 6px;
}
.sfai-repeater-remove:hover { opacity: 1; }
.sfai-repeater-add {
  background: none; border: 2px dashed var(--sfai-primary); color: var(--sfai-primary);
  border-radius: var(--sfai-radius-sm); padding: 9px 20px; cursor: pointer;
  font-size: 13px; font-weight: 700; transition: all .15s;
  font-family: var(--sfai-font);
  display: flex; align-items: center; gap: 6px;
}
.sfai-repeater-add:hover { background: #f0f0fe; }

/* ── Payment ─────────────────────────────────────────────────── */
.sfai-payment-amount { display: flex; align-items: center; gap: 8px; }
.sfai-currency-symbol {
  font-size: 20px; font-weight: 800; color: var(--sfai-primary);
  background: #f0f0fe; padding: 8px 12px; border-radius: var(--sfai-radius-sm);
  border: 1.5px solid #e0e0fa;
}
.sfai-payment-display .sfai-amount {
  font-size: 26px; font-weight: 900; color: var(--sfai-primary); letter-spacing: -.5px;
}
.sfai-stripe-embed, .sfai-paypal-embed {
  padding: 16px; border: 1.5px solid var(--sfai-input-bdr);
  border-radius: var(--sfai-radius); margin-top: 8px; background: #fafcff;
}
#sfai-card-errors { color: var(--sfai-error); font-size: 12px; margin-top: 6px; font-weight: 500; }

/* ── AI Field ────────────────────────────────────────────────── */
.sfai-ai-field { position: relative; }
.sfai-ai-suggest {
  position: absolute; top: 8px; right: 8px; z-index: 2;
  background: linear-gradient(135deg, #7c3aed, #4f46e5);
  color: #fff; border: none; border-radius: 6px; padding: 4px 11px;
  font-size: 11px; font-weight: 700; cursor: pointer; letter-spacing: .3px;
  transition: opacity .15s, transform .1s; font-family: var(--sfai-font);
  box-shadow: 0 2px 8px rgba(99,102,241,.35);
}
.sfai-ai-suggest:hover { opacity: .88; transform: translateY(-1px); }
.sfai-ai-suggestions {
  margin-top: 8px; padding: 12px 14px; background: linear-gradient(135deg,#f0f0fe,#f5f3ff);
  border-radius: 8px; border: 1px solid #c7d2fe; font-size: 13px; line-height: 1.6;
  color: #3730a3; animation: sfai-field-in .2s ease both;
}
.sfai-use-suggestion {
  margin-top: 8px; background: var(--sfai-primary); color: #fff; border: none;
  border-radius: 5px; padding: 5px 14px; font-size: 12px; font-weight: 700;
  cursor: pointer; font-family: var(--sfai-font); transition: opacity .15s;
}
.sfai-use-suggestion:hover { opacity: .85; }

/* ── Multi-step Progress ─────────────────────────────────────── */
.sfai-steps-progress { margin-bottom: 28px; }
.sfai-steps-nav {
  display: flex; align-items: center; margin-bottom: 14px; gap: 0;
}
.sfai-step-indicator {
  display: flex; flex-direction: column; align-items: center; flex: 1; position: relative;
}
.sfai-step-indicator:not(:last-child)::after {
  content: ''; position: absolute; top: 16px; left: 50%; width: 100%;
  height: 2px; background: #e2e8f0; z-index: 0; transition: background .3s;
}
.sfai-step-indicator.completed:not(:last-child)::after { background: var(--sfai-primary); }
.sfai-step-dot {
  width: 32px; height: 32px; border-radius: 50%; border: 2px solid #e2e8f0;
  background: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; color: var(--sfai-muted);
  position: relative; z-index: 1; transition: all .3s;
}
.sfai-step-indicator.active .sfai-step-dot {
  border-color: var(--sfai-primary); background: var(--sfai-primary); color: #fff;
  box-shadow: 0 0 0 4px rgba(99,102,241,.2);
}
.sfai-step-indicator.completed .sfai-step-dot {
  border-color: var(--sfai-primary); background: var(--sfai-primary); color: #fff;
}
.sfai-step-label {
  font-size: 11px; font-weight: 600; color: var(--sfai-muted); margin-top: 6px;
  text-align: center; max-width: 80px; overflow: hidden; text-overflow: ellipsis;
}
.sfai-step-indicator.active .sfai-step-label { color: var(--sfai-primary); }
.sfai-step-title { font-size: 18px; font-weight: 800; margin: 0 0 4px; }
.sfai-step-desc { font-size: 14px; color: var(--sfai-muted); margin: 0 0 20px; }
.sfai-step-nav { display: flex; gap: 12px; justify-content: space-between; flex: 0 0 100%; margin-top: 8px; }

/* ── Submit Row ──────────────────────────────────────────────── */
.sfai-submit-row { flex: 0 0 100%; display: flex; align-items: center; gap: 14px; }
.sfai-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 28px; background: var(--sfai-btn-bg); color: var(--sfai-btn-text);
  border: none; border-radius: var(--sfai-btn-radius);
  font-size: 15px; font-weight: 700; cursor: pointer;
  transition: all .2s; font-family: var(--sfai-font); line-height: 1.2;
  box-shadow: 0 4px 14px rgba(var(--sfai-primary-rgb),.35);
  position: relative; overflow: hidden;
}
.sfai-btn::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,0));
  opacity: 0; transition: opacity .2s;
}
.sfai-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(var(--sfai-primary-rgb),.45); }
.sfai-btn:hover::before { opacity: 1; }
.sfai-btn:active { transform: translateY(0); box-shadow: 0 2px 8px rgba(var(--sfai-primary-rgb),.3); }
.sfai-btn:disabled { opacity: .6; cursor: not-allowed; transform: none; box-shadow: none; }
.sfai-btn-prev {
  background: #f1f5f9; color: var(--sfai-label);
  box-shadow: none; border: 1.5px solid var(--sfai-input-bdr);
}
.sfai-btn-prev:hover { background: #e2e8f0; box-shadow: none; transform: none; }
.sfai-btn-loading { pointer-events: none; }
.sfai-btn-loading .sfai-btn-label { opacity: 0; }
.sfai-btn-loading::after {
  content: ''; position: absolute;
  width: 18px; height: 18px;
  border: 2.5px solid rgba(255,255,255,.4); border-top-color: #fff;
  border-radius: 50%; animation: sfai-spin .7s linear infinite;
}

/* ── Errors & Success ────────────────────────────────────────── */
.sfai-field-error {
  font-size: 12px; color: var(--sfai-error); font-weight: 500;
  min-height: 16px; display: flex; align-items: center; gap: 4px;
  animation: sfai-field-in .15s ease both;
}
.sfai-field-error::before { content: '⚠'; font-size: 11px; }

.sfai-form-messages { margin-top: 16px; }
.sfai-msg-success {
  padding: 16px 20px; background: #f0fdf4; border: 1.5px solid #86efac;
  border-radius: var(--sfai-radius); color: #15803d; font-weight: 600;
  display: flex; align-items: flex-start; gap: 12px; font-size: 14px;
  animation: sfai-slide-in .3s ease both;
}
.sfai-msg-success-icon {
  width: 22px; height: 22px; background: var(--sfai-success); border-radius: 50%;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  color: #fff; font-size: 13px; margin-top: 1px;
}
.sfai-msg-error {
  padding: 14px 18px; background: #fef2f2; border: 1.5px solid #fca5a5;
  border-radius: var(--sfai-radius); color: #991b1b; font-weight: 500; font-size: 14px;
  animation: sfai-shake .4s ease both;
}
@keyframes sfai-slide-in { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
@keyframes sfai-shake {
  0%,100%{transform:translateX(0)} 15%{transform:translateX(-8px)} 35%{transform:translateX(8px)}
  55%{transform:translateX(-5px)} 75%{transform:translateX(5px)}
}

/* ── HTML Block ──────────────────────────────────────────────── */
.sfai-html-block { flex: 0 0 100%; }

/* ── Closed / Restricted ─────────────────────────────────────── */
.sfai-closed, .sfai-restricted, .sfai-error {
  padding: 14px 18px; border-radius: var(--sfai-radius);
  font-size: 14px; font-weight: 500; border: 1.5px solid;
}
.sfai-closed     { background: #fef9c3; border-color: #fde68a; color: #a16207; }
.sfai-restricted { background: #fef2f2; border-color: #fca5a5; color: #991b1b; }
.sfai-error      { background: #fef2f2; border-color: #fca5a5; color: #991b1b; }

/* ── Conditional hidden ──────────────────────────────────────── */
.sfai-field-wrap.sfai-hidden { display: none !important; }

/* ── Animations ──────────────────────────────────────────────── */
@keyframes sfai-spin { to { transform: rotate(360deg); } }

/* ═══════════════════════════════════════════════════════════════
   THEME PRESETS
═══════════════════════════════════════════════════════════════ */

/* Minimal */
.sfai-theme-minimal .sfai-input { border-radius: 0; border-width: 0 0 2px 0; background: transparent; padding-left: 0; box-shadow: none; }
.sfai-theme-minimal .sfai-input:focus { background: transparent; box-shadow: none; }
.sfai-theme-minimal .sfai-btn { border-radius: 0; box-shadow: none; }
.sfai-theme-minimal .sfai-form-wrap { border: none; box-shadow: none; background: transparent; padding: 0; }

/* Rounded */
.sfai-theme-rounded .sfai-input { border-radius: 99px; padding-left: 18px; padding-right: 18px; }
.sfai-theme-rounded textarea.sfai-input { border-radius: 14px; }
.sfai-theme-rounded .sfai-btn { border-radius: 99px; }
.sfai-theme-rounded .sfai-form-wrap { border-radius: 24px; }

/* Glass */
.sfai-theme-glass .sfai-form-wrap {
  background: rgba(255,255,255,.15); backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,.3); box-shadow: 0 8px 32px rgba(0,0,0,.12);
}
.sfai-theme-glass .sfai-input { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.3); color: #fff; }
.sfai-theme-glass .sfai-input::placeholder { color: rgba(255,255,255,.6); }
.sfai-theme-glass .sfai-label { color: #fff; }
.sfai-theme-glass .sfai-field-desc, .sfai-theme-glass .sfai-muted { color: rgba(255,255,255,.7); }

/* Neon */
.sfai-theme-neon { background: #060714; }
.sfai-theme-neon .sfai-form-wrap { background: #0d0d1e; border-color: rgba(99,102,241,.4); box-shadow: 0 0 40px rgba(99,102,241,.2); }
.sfai-theme-neon .sfai-input { background: rgba(255,255,255,.05); border-color: rgba(99,102,241,.5); color: #e0e7ff; box-shadow: 0 0 8px rgba(99,102,241,.15); }
.sfai-theme-neon .sfai-input:focus { box-shadow: 0 0 20px rgba(99,102,241,.5); border-color: #818cf8; }
.sfai-theme-neon .sfai-label, .sfai-theme-neon .sfai-form-title { color: #c7d2fe; }

/* Brutalist */
.sfai-theme-brutalist .sfai-input { border: 3px solid #000; border-radius: 0; box-shadow: 4px 4px 0 #000; background: #fffbe6; }
.sfai-theme-brutalist .sfai-input:focus { background: #fff; box-shadow: 6px 6px 0 #000; }
.sfai-theme-brutalist .sfai-btn { border: 3px solid #000; border-radius: 0; box-shadow: 4px 4px 0 #000; background: #facc15; color: #000; }
.sfai-theme-brutalist .sfai-btn:hover { transform: translate(-2px,-2px); box-shadow: 6px 6px 0 #000; }
.sfai-theme-brutalist .sfai-form-wrap { border: 3px solid #000; border-radius: 0; box-shadow: 8px 8px 0 #000; }

/* Corporate */
.sfai-theme-corporate { --sfai-primary: #1e40af; --sfai-primary-rgb: 30,64,175; }
.sfai-theme-corporate .sfai-form-wrap { background: #fff; border-radius: 4px; border-color: #dbeafe; }
.sfai-theme-corporate .sfai-input { border-radius: 4px; }
.sfai-theme-corporate .sfai-btn { border-radius: 4px; letter-spacing: .5px; text-transform: uppercase; font-size: 13px; }

/* Soft / Pastel */
.sfai-theme-soft .sfai-form-wrap { background: #fdf4ff; border-color: #e9d5ff; }
.sfai-theme-soft { --sfai-primary: #a855f7; --sfai-primary-rgb: 168,85,247; }
.sfai-theme-soft .sfai-input { border-color: #e9d5ff; background: #fff; }
.sfai-theme-soft .sfai-radio-label, .sfai-theme-soft .sfai-checkbox-label { border-color: #e9d5ff; }

/* ── Password Toggle ─────────────────────────────────────────── */
.sfai-password-wrap { position: relative; }
.sfai-password-wrap .sfai-input { padding-right: 42px; }
.sfai-password-toggle {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  background: none; border: none; cursor: pointer; font-size: 16px;
  color: var(--sfai-muted); opacity: .6; transition: opacity .15s;
  padding: 4px; line-height: 1;
}
.sfai-password-toggle:hover { opacity: 1; }

/* ============================================================
   SmartForm AI v1.3.1 — Frontend Premium Visual Polish
   ============================================================ */
.sfai-form-container {
  --sfai-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --sfai-radius: 16px;
  --sfai-radius-sm: 12px;
  --sfai-gap: 22px;
  --sfai-shadow: 0 1px 2px rgba(16,24,40,.05), 0 18px 48px rgba(16,24,40,.08);
}
.sfai-form-wrap {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(226,232,240,.92);
  border-radius: 24px;
  background:
    radial-gradient(circle at top left, rgba(var(--sfai-primary-rgb),.10), transparent 24rem),
    linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
  box-shadow: var(--sfai-shadow);
}
.sfai-form-wrap::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg,var(--sfai-primary),#8b5cf6,#06b6d4);
}
.sfai-form-title {
  font-size: clamp(24px,3vw,32px);
  letter-spacing: -.7px;
  line-height: 1.12;
}
.sfai-form-desc {
  max-width: 680px;
  color: #667085;
}
.sfai-label {
  font-weight: 800;
  color: #243043;
}
.sfai-input {
  min-height: 48px;
  border-color: #dbe4f0;
  border-radius: var(--sfai-radius-sm);
  background: rgba(255,255,255,.95);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.sfai-input:hover:not(:focus) {
  border-color: #cbd5e1;
  background: #fff;
}
.sfai-input:focus {
  background: #fff;
  box-shadow: 0 0 0 4px rgba(var(--sfai-primary-rgb),.14), 0 8px 18px rgba(var(--sfai-primary-rgb),.08);
}
.sfai-radio-label,
.sfai-checkbox-label {
  min-height: 46px;
  border-color: #dbe4f0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
}
.sfai-radio-label:hover,
.sfai-checkbox-label:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(var(--sfai-primary-rgb),.10);
}
.sfai-radio-label:has(input:checked),
.sfai-checkbox-label:has(input:checked) {
  box-shadow: inset 0 0 0 1px rgba(var(--sfai-primary-rgb),.14), 0 10px 24px rgba(var(--sfai-primary-rgb),.10);
}
.sfai-file-drop {
  border-radius: 18px;
  background: linear-gradient(180deg,#fbfdff,#f8fafc);
  border-color: #dbe4f0;
}
.sfai-file-drop:hover,
.sfai-file-drop.dragging {
  box-shadow: 0 14px 34px rgba(var(--sfai-primary-rgb),.12);
}
.sfai-slider::-webkit-slider-thumb {
  box-shadow: 0 8px 18px rgba(var(--sfai-primary-rgb),.25);
}
.sfai-btn,
.sfai-btn-submit,
.sfai-step-nav .sfai-btn {
  min-height: 48px;
  border-radius: var(--sfai-btn-radius);
  font-weight: 800;
  letter-spacing: -.12px;
  box-shadow: 0 14px 28px rgba(var(--sfai-primary-rgb),.20);
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.sfai-btn:hover,
.sfai-btn-submit:hover,
.sfai-step-nav .sfai-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 36px rgba(var(--sfai-primary-rgb),.28);
}
.sfai-steps-progress {
  border-radius: 18px;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.sfai-step-dot {
  box-shadow: 0 8px 18px rgba(var(--sfai-primary-rgb),.20);
}
.sfai-form-messages .sfai-success,
.sfai-success-message {
  border-radius: 18px;
  box-shadow: 0 18px 42px rgba(16,185,129,.14);
}
@media (max-width: 640px) {
  .sfai-form-wrap { border-radius: 18px; padding: 28px 18px 30px; }
  .sfai-input, .sfai-btn, .sfai-btn-submit { min-height: 46px; }
}

/* ============================================================
   SmartForm AI v1.6.0 — Enterprise Field Library
   ============================================================ */

/* Numeric business fields */
.sfai-number-affix { position: relative; display: flex; align-items: center; }
.sfai-number-affix .sfai-input { padding-left: 52px; padding-right: 58px; }
.sfai-number-affix .sfai-input-affix,
.sfai-number-affix .sfai-input-code {
  position: absolute; z-index: 1; pointer-events: none; color: #475467; font-weight: 800; font-size: 13px;
}
.sfai-number-affix .sfai-input-affix { left: 14px; }
.sfai-number-affix .sfai-input-affix.right { left: auto; right: 15px; }
.sfai-number-affix .sfai-input-code { right: 14px; color: var(--sfai-muted); font-size: 10px; letter-spacing: .08em; }
.sfai-currency-field .sfai-input { padding-right: 58px; }
.sfai-percentage-field .sfai-input { padding-left: 14px; padding-right: 44px; }

/* Image choice cards */
.sfai-field--image_choice .sfai-radio-group {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  align-items: stretch;
}
.sfai-field--image_choice .sfai-radio-label {
  display: flex; flex-direction: column; align-items: stretch; gap: 10px; padding: 10px; overflow: hidden;
}
.sfai-field--image_choice .sfai-radio-label input { position: absolute; opacity: 0; pointer-events: none; }
.sfai-field--image_choice .sfai-choice-img {
  width: 100%; height: 120px; border-radius: 10px; object-fit: cover; background: #f1f5f9;
}
.sfai-field--image_choice .sfai-radio-label span { text-align: center; font-weight: 700; }
.sfai-field--image_choice .sfai-radio-label:has(input:focus-visible) { outline: 3px solid rgba(var(--sfai-primary-rgb), .24); outline-offset: 2px; }

/* NPS */
.sfai-nps { border: 1.5px solid #dbe4f0; border-radius: 16px; padding: 14px; background: linear-gradient(180deg,#fff,#fbfdff); }
.sfai-nps-scale { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 7px; }
.sfai-nps-scale label { position: relative; min-width: 0; cursor: pointer; }
.sfai-nps-scale input { position: absolute; opacity: 0; pointer-events: none; }
.sfai-nps-scale span { display:flex; min-height: 40px; align-items:center; justify-content:center; border:1.5px solid #dbe4f0; border-radius: 10px; font-weight:800; color:#475467; background:#fff; transition: all .16s ease; }
.sfai-nps-scale label:hover span { border-color:var(--sfai-primary); color:var(--sfai-primary); transform:translateY(-1px); }
.sfai-nps-scale input:checked + span { background: var(--sfai-primary); border-color:var(--sfai-primary); color:#fff; box-shadow:0 8px 16px rgba(var(--sfai-primary-rgb),.22); }
.sfai-nps-scale input:focus-visible + span { outline:3px solid rgba(var(--sfai-primary-rgb),.22); outline-offset:2px; }
.sfai-nps-labels { margin-top:9px; display:flex; justify-content:space-between; gap:16px; color:var(--sfai-muted); font-size:12px; }

/* Matrix and Likert */
.sfai-matrix-wrap { background:#fff; border-color:#dbe4f0; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.sfai-matrix th:first-child { text-align:left; min-width:190px; }
.sfai-matrix td { vertical-align:middle; }
.sfai-matrix tr th[scope="row"] { text-align:left; color:var(--sfai-label); text-transform:none; letter-spacing:0; font-size:13px; background:#fff; }
.sfai-matrix-control { display:flex; align-items:center; justify-content:center; min-height:24px; cursor:pointer; }
.sfai-matrix-mobile-label { display:none; }
.sfai-matrix .sfai-input { min-height:40px; }
.sfai-likert-wrap .sfai-matrix th:not(:first-child) { min-width:110px; }
.sfai-field.sfai-has-error .sfai-matrix-wrap,
.sfai-field.sfai-has-error .sfai-nps,
.sfai-field.sfai-has-error .sfai-repeater { border-color:var(--sfai-error); box-shadow:0 0 0 3px rgba(239,68,68,.12); }

/* Repeater */
.sfai-repeater { display:flex; flex-direction:column; gap:10px; }
.sfai-repeater-row { align-items:stretch; background:linear-gradient(180deg,#fcfdff,#f8fafc); border-color:#dbe4f0; box-shadow:0 1px 2px rgba(16,24,40,.03); }
.sfai-repeater-row-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.sfai-repeater-cell { display:flex; flex-direction:column; gap:6px; color:var(--sfai-label); font-size:12px; font-weight:700; }
.sfai-repeater-cell textarea.sfai-input { min-height:88px; }
.sfai-repeater-remove { border:0; background:#fff1f2; border-radius:9px; width:32px; height:32px; flex:0 0 32px; margin:0; display:flex; justify-content:center; align-items:center; font-weight:800; }
.sfai-repeater-remove:hover { background:#ffe4e6; }
.sfai-repeater-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sfai-repeater-add { border:1.5px dashed var(--sfai-primary); background:#f8faff; min-height:42px; }
.sfai-repeater-add:disabled { opacity:.55; cursor:not-allowed; }
.sfai-repeater-counter { color:var(--sfai-muted); font-size:12px; }

@media (max-width: 720px) {
  .sfai-nps-scale { grid-template-columns: repeat(6, minmax(0,1fr)); }
  .sfai-matrix thead { display:none; }
  .sfai-matrix, .sfai-matrix tbody, .sfai-matrix tr, .sfai-matrix th, .sfai-matrix td { display:block; width:100%; }
  .sfai-matrix tr { padding:12px; border-bottom:1px solid #e5e7eb; }
  .sfai-matrix tr:last-child { border-bottom:0; }
  .sfai-matrix tr th[scope="row"] { padding:0 0 8px; }
  .sfai-matrix td { padding:6px 0; text-align:left; border:0; }
  .sfai-matrix-control { justify-content:flex-start; gap:10px; }
  .sfai-matrix-mobile-label { display:inline; color:var(--sfai-muted); font-size:13px; }
  .sfai-matrix td[colspan] { padding:0; }
  .sfai-repeater-row { flex-direction:column; }
  .sfai-repeater-remove { align-self:flex-end; }
}


/* ============================================================
   SmartForm AI — Premium Design Studio v1.7.0
   Professional shells, typography, color systems, buttons,
   progress treatments and mobile-safe visual controls.
   ============================================================ */
.sfai-form-container {
  position: relative;
  isolation: isolate;
}
.sfai-form-container .sfai-form-wrap {
  position: relative;
  overflow: hidden;
  transition: box-shadow .22s ease, transform .22s ease, border-color .22s ease;
}
.sfai-form-container .sfai-form-title,
.sfai-form-container .sfai-step-title {
  font-family: var(--sfai-heading-font, var(--sfai-font));
  color: var(--sfai-heading);
}
.sfai-form-container .sfai-form-desc,
.sfai-form-container .sfai-step-desc { color: var(--sfai-muted); }

/* Form shell treatments */
.sfai-shell-elevated {
  background: var(--sfai-page-bg);
  padding: clamp(16px, 3vw, 34px);
  border-radius: calc(var(--sfai-radius) + 6px);
}
.sfai-shell-elevated .sfai-form-wrap::before,
.sfai-shell-glass .sfai-form-wrap::before {
  content: ''; display: block; position: absolute; left: 0; right: 0; top: 0; height: 4px;
  background: linear-gradient(90deg, var(--sfai-primary), var(--sfai-primary-h), rgba(var(--sfai-primary-rgb),.72));
}
.sfai-shell-elevated .sfai-form-wrap:hover { transform: translateY(-1px); }
.sfai-shell-outlined { background: transparent; padding: 0; }
.sfai-shell-outlined .sfai-form-wrap { box-shadow: none; border-width: 1px; }
.sfai-shell-minimal { background: transparent; padding: 0; }
.sfai-shell-minimal .sfai-form-wrap { box-shadow: none; border: 0; padding: 8px 0; background: transparent; }
.sfai-shell-editorial { background: var(--sfai-page-bg); padding: clamp(14px, 2.5vw, 28px); }
.sfai-shell-editorial .sfai-form-wrap { border-width: 1px; border-radius: 2px; }
.sfai-shell-editorial .sfai-form-title { font-weight: 600; letter-spacing: -.025em; }
.sfai-shell-editorial .sfai-form-title::after { content:''; display:block; width:42px; height:2px; background:var(--sfai-primary); margin-top:15px; }
.sfai-shell-glass { background: linear-gradient(135deg, var(--sfai-page-bg), rgba(var(--sfai-primary-rgb), .13)); padding: clamp(16px, 3vw, 34px); border-radius: calc(var(--sfai-radius) + 8px); }
.sfai-shell-glass .sfai-form-wrap { backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.sfai-shell-dark-surface { background: var(--sfai-page-bg); padding: clamp(16px, 3vw, 34px); border-radius: calc(var(--sfai-radius) + 8px); }
.sfai-shell-dark-surface .sfai-form-wrap { color: var(--sfai-label); }

/* Density */
.sfai-density-compact .sfai-form-wrap { padding: 28px 30px 30px; }
.sfai-density-compact .sfai-field { gap: 4px; }
.sfai-density-spacious .sfai-form-wrap { padding: 44px 46px 48px; }
.sfai-density-spacious .sfai-field { gap: 8px; }
.sfai-density-spacious .sfai-form-desc { margin-bottom: 34px; }

/* Premium inputs */
.sfai-form-container .sfai-input {
  padding: var(--sfai-input-pad);
  border-width: 1px;
  border-color: var(--sfai-input-bdr);
  box-shadow: 0 1px 0 rgba(15,23,42,.015);
}
.sfai-form-container .sfai-input:hover:not(:focus) {
  border-color: var(--sfai-primary);
  box-shadow: 0 0 0 3px rgba(var(--sfai-primary-rgb), .055);
}
.sfai-form-container .sfai-input:focus {
  border-color: var(--sfai-primary);
  box-shadow: 0 0 0 4px rgba(var(--sfai-primary-rgb), .14), 0 4px 12px rgba(var(--sfai-primary-rgb), .07);
}
.sfai-form-container .sfai-label { color: var(--sfai-label); font-family: var(--sfai-font); }
.sfai-form-container .sfai-field-desc { color: var(--sfai-muted); }

/* Button treatments */
.sfai-form-container .sfai-btn {
  padding: var(--sfai-btn-pad);
  border-radius: var(--sfai-btn-radius);
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  min-height: 46px;
  font-family: var(--sfai-font);
  font-weight: 700;
  letter-spacing: -.01em;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.sfai-form-container .sfai-btn:hover { transform: translateY(-1px); }
.sfai-form-container .sfai-btn:active { transform: translateY(0); }
.sfai-form-container .sfai-btn-icon { font-size: 1.15em; line-height: 1; transition: transform .18s ease; }
.sfai-form-container .sfai-btn:hover .sfai-btn-icon { transform: translateX(2px); }
.sfai-button-solid .sfai-btn-submit,
.sfai-button-solid .sfai-btn-next { box-shadow: 0 10px 20px rgba(var(--sfai-primary-rgb), .23); }
.sfai-button-soft .sfai-btn-submit,
.sfai-button-soft .sfai-btn-next {
  color: var(--sfai-primary); background: rgba(var(--sfai-primary-rgb), .12); border: 1px solid rgba(var(--sfai-primary-rgb), .18); box-shadow: none;
}
.sfai-button-soft .sfai-btn-submit:hover,
.sfai-button-soft .sfai-btn-next:hover { background: var(--sfai-primary); color: var(--sfai-btn-text); box-shadow: 0 10px 20px rgba(var(--sfai-primary-rgb), .20); }
.sfai-button-outline .sfai-btn-submit,
.sfai-button-outline .sfai-btn-next { color: var(--sfai-primary); background: transparent; border: 1.5px solid var(--sfai-primary); box-shadow: none; }
.sfai-button-outline .sfai-btn-submit:hover,
.sfai-button-outline .sfai-btn-next:hover { color: var(--sfai-btn-text); background: var(--sfai-primary); box-shadow: 0 10px 20px rgba(var(--sfai-primary-rgb), .20); }
.sfai-button-gradient .sfai-btn-submit,
.sfai-button-gradient .sfai-btn-next { background: linear-gradient(135deg, var(--sfai-btn-bg), var(--sfai-primary-h)); box-shadow: 0 12px 24px rgba(var(--sfai-primary-rgb), .28); }
.sfai-button-width-full .sfai-submit-row,
.sfai-button-width-full .sfai-step-nav { display: flex; width: 100%; }
.sfai-button-width-full .sfai-btn-submit,
.sfai-button-width-full .sfai-btn-next { width: 100%; }

/* Choices, files and interactive field controls */
.sfai-form-container .sfai-radio-label,
.sfai-form-container .sfai-checkbox-label,
.sfai-form-container .sfai-consent-label,
.sfai-form-container .sfai-toggle-field {
  background: var(--sfai-input-bg);
  border-color: var(--sfai-input-bdr);
  border-radius: var(--sfai-radius-sm);
}
.sfai-form-container .sfai-radio-label:hover,
.sfai-form-container .sfai-checkbox-label:hover,
.sfai-form-container .sfai-consent-label:hover,
.sfai-form-container .sfai-toggle-field:hover { background: rgba(var(--sfai-primary-rgb),.045); }
.sfai-form-container .sfai-file-drop { background: rgba(var(--sfai-primary-rgb), .025); border-color: var(--sfai-input-bdr); }
.sfai-form-container .sfai-file-drop:hover { border-color: var(--sfai-primary); background: rgba(var(--sfai-primary-rgb), .07); }

/* Multi-step visual systems */
.sfai-steps-progress { margin: 0 0 28px; }
.sfai-progress-line .sfai-progress-bar { height: 6px; border-radius: 999px; background: rgba(var(--sfai-primary-rgb),.11); overflow: hidden; }
.sfai-progress-line .sfai-progress-bar-fill { background: linear-gradient(90deg,var(--sfai-primary),var(--sfai-primary-h)); border-radius:999px; }
.sfai-progress-line .sfai-step-dot { border-color: var(--sfai-primary); }
.sfai-progress-pills .sfai-progress-bar { display:none; }
.sfai-progress-pills .sfai-steps-nav { gap: 8px; align-items:center; }
.sfai-progress-pills .sfai-step-indicator { flex: 1; display:flex; align-items:center; justify-content:center; gap:7px; padding: 8px 10px; border:1px solid var(--sfai-input-bdr); border-radius:999px; background:var(--sfai-input-bg); }
.sfai-progress-pills .sfai-step-indicator.active { background: rgba(var(--sfai-primary-rgb),.11); border-color:var(--sfai-primary); color:var(--sfai-primary); }
.sfai-progress-pills .sfai-step-dot { display:none; }
.sfai-progress-steps .sfai-progress-bar { height:3px; margin: 0 12px -20px; }
.sfai-progress-steps .sfai-step-dot { box-shadow:0 0 0 4px var(--sfai-surface); }
.sfai-progress-minimal .sfai-progress-bar { height: 2px; background:var(--sfai-input-bdr); }
.sfai-progress-minimal .sfai-steps-nav { display:none; }

/* Theme-specific signature refinements */
.sfai-theme-luxury-gold .sfai-form-wrap,
.sfai-theme-editorial-rose .sfai-form-wrap,
.sfai-theme-paper-editorial .sfai-form-wrap,
.sfai-theme-obsidian-gold .sfai-form-wrap { border-top: 3px solid var(--sfai-primary); }
.sfai-theme-saas-indigo .sfai-form-title,
.sfai-theme-agency-cobalt .sfai-form-title,
.sfai-theme-earth-energetics .sfai-form-title { font-weight: 850; }
.sfai-theme-earth-energetics .sfai-form-wrap::after,
.sfai-theme-ocean-glass .sfai-form-wrap::after {
  content:''; pointer-events:none; position:absolute; width:190px; height:190px; right:-90px; top:-90px; border-radius:50%; background:radial-gradient(circle, rgba(var(--sfai-primary-rgb),.17), transparent 66%); z-index:-1;
}
.sfai-theme-dark-noir,
.sfai-theme-midnight-blue,
.sfai-theme-obsidian-gold { --sfai-muted: #B8C2D3; }
.sfai-theme-dark-noir .sfai-input,
.sfai-theme-midnight-blue .sfai-input,
.sfai-theme-obsidian-gold .sfai-input { color: var(--sfai-label); }
.sfai-theme-dark-noir .sfai-input::placeholder,
.sfai-theme-midnight-blue .sfai-input::placeholder,
.sfai-theme-obsidian-gold .sfai-input::placeholder { color: rgba(226,232,240,.58); }
.sfai-theme-dark-noir .sfai-radio-label,
.sfai-theme-dark-noir .sfai-checkbox-label,
.sfai-theme-midnight-blue .sfai-radio-label,
.sfai-theme-midnight-blue .sfai-checkbox-label,
.sfai-theme-obsidian-gold .sfai-radio-label,
.sfai-theme-obsidian-gold .sfai-checkbox-label { color: var(--sfai-label); }
.sfai-theme-minimal-mono .sfai-input { border-width:0 0 1px; border-radius:0; padding-left:0; padding-right:0; box-shadow:none; }
.sfai-theme-minimal-mono .sfai-input:focus { box-shadow: 0 2px 0 var(--sfai-primary); }

@media (max-width: 640px) {
  .sfai-shell-elevated,.sfai-shell-glass,.sfai-shell-dark-surface,.sfai-shell-editorial { padding: 12px; border-radius: calc(var(--sfai-radius) + 2px); }
  .sfai-density-spacious .sfai-form-wrap { padding: 28px 20px 30px; }
  .sfai-density-compact .sfai-form-wrap { padding: 22px 18px 24px; }
  .sfai-progress-pills .sfai-step-indicator { min-width:0; padding:8px; }
  .sfai-progress-pills .sfai-step-label { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
}

/* ── v1.7.1 multi-step journey styles ───────────────────────── */
.sfai-progress-cards .sfai-progress-bar { display:none; }
.sfai-progress-cards .sfai-steps-nav { display:grid; grid-template-columns:repeat(auto-fit,minmax(116px,1fr)); gap:10px; }
.sfai-progress-cards .sfai-step-indicator { min-height:58px; display:flex; align-items:center; gap:9px; padding:10px 12px; border:1px solid var(--sfai-input-bdr); background:var(--sfai-input-bg); border-radius:var(--sfai-radius-sm); }
.sfai-progress-cards .sfai-step-indicator::after { display:none; }
.sfai-progress-cards .sfai-step-indicator.active { border-color:var(--sfai-primary); background:rgba(var(--sfai-primary-rgb),.09); box-shadow:0 5px 14px rgba(var(--sfai-primary-rgb),.10); }
.sfai-progress-cards .sfai-step-indicator.completed { border-color:rgba(var(--sfai-primary-rgb),.35); }
.sfai-progress-cards .sfai-step-dot { width:26px; height:26px; font-size:11px; flex:0 0 26px; }
.sfai-progress-cards .sfai-step-label { font-size:11px; text-align:left; line-height:1.25; }
.sfai-progress-timeline .sfai-progress-bar { display:none; }
.sfai-progress-timeline .sfai-steps-nav { display:flex; align-items:stretch; gap:0; padding-left:2px; }
.sfai-progress-timeline .sfai-step-indicator { position:relative; min-width:0; flex:1; display:flex; flex-direction:column; align-items:flex-start; padding:0 14px 0 23px; }
.sfai-progress-timeline .sfai-step-indicator::before { content:""; position:absolute; left:5px; top:5px; bottom:-18px; width:2px; background:var(--sfai-input-bdr); }
.sfai-progress-timeline .sfai-step-indicator:last-child::before { bottom:12px; }
.sfai-progress-timeline .sfai-step-indicator.completed::before { background:var(--sfai-primary); }
.sfai-progress-timeline .sfai-step-indicator::after { display:none; }
.sfai-progress-timeline .sfai-step-dot { position:absolute; left:-2px; top:0; width:16px; height:16px; font-size:0; border-width:2px; background:var(--sfai-surface); z-index:1; }
.sfai-progress-timeline .sfai-step-indicator.active .sfai-step-dot, .sfai-progress-timeline .sfai-step-indicator.completed .sfai-step-dot { background:var(--sfai-primary); border-color:var(--sfai-primary); }
.sfai-progress-timeline .sfai-step-label { min-height:34px; font-size:11px; text-align:left; line-height:1.3; }
@media (max-width:600px) { .sfai-progress-cards .sfai-steps-nav { grid-template-columns:1fr 1fr; } .sfai-progress-timeline .sfai-steps-nav { flex-direction:column; gap:12px; } .sfai-progress-timeline .sfai-step-indicator { min-height:26px; flex:none; } }

/* ── Smart Workflows & Conversion Automation ───────────────── */
.sfai-draft-status {
  display: none;
  margin: 0 0 16px;
  padding: 10px 12px;
  border: 1px solid #c7d2fe;
  border-radius: var(--sfai-radius-sm);
  background: rgba(var(--sfai-primary-rgb), .07);
  color: var(--sfai-primary);
  font-size: 12px;
  font-weight: 600;
}
.sfai-draft-status.restored,
.sfai-draft-status.saved { display: block; }
.sfai-draft-status.restored::before { content: '↺'; margin-right: 7px; font-size: 14px; }
.sfai-draft-status.saved::before { content: '✓'; margin-right: 7px; }
.sfai-calculation,
.sfai-calculated-payment {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 12px 14px;
  border: 1.5px solid var(--sfai-input-bdr);
  border-radius: var(--sfai-radius-sm);
  background: linear-gradient(135deg, rgba(var(--sfai-primary-rgb), .075), rgba(255,255,255,.92));
}
.sfai-calculation-value { display:flex; align-items:baseline; gap:4px; color:var(--sfai-heading); }
.sfai-calculation-value strong,
.sfai-calculated-payment .sfai-amount { font-size: 20px; letter-spacing:-.02em; color:var(--sfai-heading); }
.sfai-calculation-caption,
.sfai-calculated-note { margin-left:auto; font-size:11px; color:var(--sfai-muted); font-weight:600; }
.sfai-calculated-payment { flex-wrap:wrap; }
.sfai-calculated-payment .sfai-calculated-note { margin-left:0; flex-basis:100%; }
.sfai-step[aria-hidden="true"] { display:none !important; }

/* ── SmartForm Guard ───────────────────────────────────────── */
.sfai-security-challenge{width:100%;margin:0 0 12px;}
.sfai-security-challenge:empty{display:none!important;}
.sfai-turnstile-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.sfai-security-note{margin:0;font-size:11px;line-height:1.4;color:var(--sfai-label,#64748b);}
.sfai-turnstile.sfai-guard-error{outline:2px solid var(--sfai-error,#dc2626);outline-offset:4px;border-radius:8px;}
.sfai-step-nav .sfai-security-challenge{flex-basis:100%;}
.sfai-submit-row .sfai-security-challenge{display:flex;justify-content:flex-start;}
@media (max-width:640px){
  .sfai-turnstile-wrap{max-width:100%;overflow-x:auto;}
  .sfai-security-challenge{margin-bottom:10px;}
}


/* ============================================================
   SmartForm AI v1.9.6 — Executive Form Experience
   Typography, responsive control lengths, accessible focus and vector actions.
   ============================================================ */
.sfai-form-container {
  font-family: var(--sfai-font);
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 100%;
}
.sfai-form-container .sfai-form-wrap {
  container-type: inline-size;
  width: 100%;
}
.sfai-form-container .sfai-form-title {
  font-weight: 720;
  letter-spacing: -.032em;
  line-height: 1.12;
}
.sfai-form-container .sfai-step-title {
  font-weight: 700;
  letter-spacing: -.022em;
  line-height: 1.22;
}
.sfai-form-container .sfai-form-desc,
.sfai-form-container .sfai-step-desc {
  font-size: calc(var(--sfai-font-size) - 1px);
  line-height: 1.65;
  max-width: 68ch;
}
.sfai-form-container .sfai-label {
  font-weight: 650;
  line-height: 1.35;
  margin-bottom: 1px;
}
.sfai-form-container .sfai-field-desc {
  line-height: 1.55;
}
.sfai-form-container .sfai-input {
  min-height: var(--sfai-input-min-height, 50px);
  font-weight: 460;
  letter-spacing: .002em;
  border-width: 1px;
  border-color: var(--sfai-input-bdr);
}
.sfai-form-container textarea.sfai-input {
  min-height: max(118px, calc(var(--sfai-input-min-height, 50px) * 2.35));
}
.sfai-form-container select.sfai-input { min-height: var(--sfai-input-min-height, 50px); }
.sfai-form-container .sfai-input::placeholder { color: color-mix(in srgb, var(--sfai-muted) 72%, transparent); opacity: 1; }
.sfai-form-container .sfai-input:focus-visible,
.sfai-form-container .sfai-file-input:focus-visible + .sfai-file-ui,
.sfai-form-container .sfai-radio-label:has(input:focus-visible),
.sfai-form-container .sfai-checkbox-label:has(input:focus-visible),
.sfai-form-container .sfai-consent-label:has(input:focus-visible),
.sfai-form-container .sfai-toggle-field:has(input:focus-visible) {
  outline: 3px solid rgba(var(--sfai-primary-rgb), .25);
  outline-offset: 2px;
}
.sfai-form-container .sfai-btn,
.sfai-form-container .sfai-btn-submit,
.sfai-form-container .sfai-step-nav .sfai-btn {
  min-height: var(--sfai-input-min-height, 50px);
  padding: var(--sfai-btn-pad);
  font-family: var(--sfai-heading-font, var(--sfai-font));
  font-weight: 680;
  letter-spacing: .006em;
  line-height: 1.1;
}
.sfai-form-container .sfai-btn:focus-visible {
  outline: 3px solid rgba(var(--sfai-primary-rgb), .35);
  outline-offset: 3px;
}
.sfai-form-container .sfai-btn-icon {
  display: inline-flex;
  width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
  flex: 0 0 18px;
}
.sfai-form-container .sfai-btn-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sfai-form-container .sfai-radio-label,
.sfai-form-container .sfai-checkbox-label,
.sfai-form-container .sfai-consent-label,
.sfai-form-container .sfai-toggle-field {
  min-height: var(--sfai-input-min-height, 50px);
  font-weight: 570;
  line-height: 1.4;
}
.sfai-form-container .sfai-radio-label:has(input:checked),
.sfai-form-container .sfai-checkbox-label:has(input:checked) {
  box-shadow: 0 0 0 1px rgba(var(--sfai-primary-rgb),.14), 0 6px 16px rgba(var(--sfai-primary-rgb),.08);
}
.sfai-form-container .sfai-file-drop {
  min-height: 154px;
  display: grid;
  place-items: center;
}
.sfai-form-container .sfai-file-drop:has(.sfai-file-input:focus-visible) {
  outline: 3px solid rgba(var(--sfai-primary-rgb), .25);
  outline-offset: 3px;
}
.sfai-form-container .sfai-field-error:empty {
  display: none !important;
  min-height: 0;
  margin: 0;
}
.sfai-form-container .sfai-field-error:not(:empty) {
  margin-top: 1px;
  min-height: 16px;
}
.sfai-form-container .sfai-field-error:not(:empty)::before { content: '⚠'; }
.sfai-form-container .sfai-field-error:empty::before { content: none; }
.sfai-form-container .sfai-progress-bar { height: 5px; border-radius: 999px; }
.sfai-form-container .sfai-steps-progress { padding: 18px; }

/* Actual container width, not viewport width, controls columns. This prevents
   unusably short half-width fields inside a narrow content column on desktop. */
@container (max-width: 720px) {
  .sfai-form-container .sfai-col-25,
  .sfai-form-container .sfai-col-33,
  .sfai-form-container .sfai-col-50,
  .sfai-form-container .sfai-col-66,
  .sfai-form-container .sfai-col-75 { flex: 0 0 100%; }
  .sfai-form-container .sfai-layout-row { grid-template-columns: 1fr; gap: 16px; }
  .sfai-form-container .sfai-layout-span-3,
  .sfai-form-container .sfai-layout-span-4,
  .sfai-form-container .sfai-layout-span-6,
  .sfai-form-container .sfai-layout-span-8,
  .sfai-form-container .sfai-layout-span-9,
  .sfai-form-container .sfai-layout-span-12 { grid-column: 1 / -1; }
  .sfai-form-container .sfai-radio-group.sfai-layout-horizontal,
  .sfai-form-container .sfai-checkbox-group.sfai-layout-horizontal { flex-direction: column; }
  .sfai-form-container .sfai-step-nav { gap: 10px; }
}
@container (max-width: 480px) {
  .sfai-form-container .sfai-form-wrap { padding: 24px 18px 28px; }
  .sfai-form-container .sfai-steps-progress { padding: 14px 12px; }
  .sfai-form-container .sfai-step-label { max-width: 72px; font-size: 10px; }
  .sfai-form-container .sfai-btn,
  .sfai-form-container .sfai-btn-submit,
  .sfai-form-container .sfai-step-nav .sfai-btn { flex: 1 1 auto; }
  .sfai-form-container .sfai-step-nav { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .sfai-form-container *,
  .sfai-form-container *::before,
  .sfai-form-container *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  .sfai-form-container .sfai-input,
  .sfai-form-container .sfai-btn,
  .sfai-form-container .sfai-radio-label,
  .sfai-form-container .sfai-checkbox-label { border: 1px solid CanvasText; }
}

/* ============================================================
   SmartForm AI v1.9.7 — Public Form Canvas & Premium Layout System
   A true form canvas: multi-step progress, content grid and actions are
   deliberately separated so public forms never collapse into narrow columns.
   ============================================================ */
.sfai-form-container.sfai-public-layout-guided,
.sfai-form-container.sfai-public-layout-standard,
.sfai-form-container.sfai-public-layout-compact {
  max-width: 1120px;
  margin: 0 auto;
  padding: clamp(12px, 2vw, 26px);
  background:
    radial-gradient(800px 260px at 12% -8%, rgba(var(--sfai-primary-rgb), .10), transparent 64%),
    linear-gradient(180deg, color-mix(in srgb, var(--sfai-page-bg) 94%, #fff) 0%, var(--sfai-page-bg) 100%);
  border-radius: calc(var(--sfai-radius) + 8px);
}

.sfai-form-container.sfai-public-layout-guided .sfai-form-wrap,
.sfai-form-container.sfai-public-layout-standard .sfai-form-wrap {
  width: min(100%, 1020px);
  margin: 0 auto;
  padding: clamp(32px, 5vw, 58px);
  border-color: color-mix(in srgb, var(--sfai-card-bdr) 80%, var(--sfai-primary) 20%);
  box-shadow: 0 26px 80px rgba(15, 23, 42, .10), 0 4px 14px rgba(15, 23, 42, .04);
}
.sfai-form-container.sfai-public-layout-compact .sfai-form-wrap {
  width: min(100%, 650px);
  margin: 0 auto;
  padding: clamp(28px, 5vw, 44px);
}

.sfai-form-container .sfai-form-header {
  max-width: 760px;
  margin: 0 0 clamp(26px, 4vw, 38px);
}
.sfai-form-container .sfai-form-header .sfai-form-title {
  font-size: clamp(30px, 4vw, var(--sfai-title-size));
  margin-bottom: 10px;
}
.sfai-form-container .sfai-form-header .sfai-form-desc {
  margin: 0;
  font-size: clamp(14px, 1.5vw, 16px);
}

/* The public multi-step form is a real full-width flow, never a row where
   progress and fields compete for width. This fixes narrow desktop inputs. */
.sfai-form.sfai-multistep {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0;
}
.sfai-form.sfai-multistep > .sfai-draft-status,
.sfai-form.sfai-multistep > .sfai-steps-progress,
.sfai-form.sfai-multistep > .sfai-step,
.sfai-form.sfai-multistep > .sfai-step-nav,
.sfai-form.sfai-multistep > .sfai-payment-embed,
.sfai-form.sfai-multistep > .sfai-security-challenge,
.sfai-form.sfai-multistep > input[type="hidden"] {
  flex: 0 0 100%;
  width: 100%;
}
.sfai-form.sfai-multistep > .sfai-step {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  column-gap: var(--sfai-gap);
  row-gap: 18px;
  min-width: 0;
}
.sfai-form.sfai-multistep > .sfai-step .sfai-field-wrap { display: contents; }
.sfai-form.sfai-multistep > .sfai-step > .sfai-layout-row { flex: 0 0 100%; }
.sfai-form.sfai-multistep > .sfai-step .sfai-step-title,
.sfai-form.sfai-multistep > .sfai-step .sfai-step-desc { flex: 0 0 100%; }
.sfai-form.sfai-multistep > .sfai-step .sfai-field { min-width: 0; }

/* Guided journey progress: compact, readable stage cards above the content. */
.sfai-form-container.sfai-public-layout-guided .sfai-steps-progress {
  margin: 0 0 clamp(28px, 4vw, 42px);
  padding: 18px 20px 20px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--sfai-input-bg) 93%, var(--sfai-primary) 7%), var(--sfai-input-bg));
  border: 1px solid color-mix(in srgb, var(--sfai-input-bdr) 84%, var(--sfai-primary) 16%);
  border-radius: min(18px, var(--sfai-radius));
}
.sfai-form-container.sfai-public-layout-guided .sfai-progress-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px;
  color: var(--sfai-muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.sfai-form-container.sfai-public-layout-guided .sfai-progress-meta span:last-child {
  color: color-mix(in srgb, var(--sfai-primary) 74%, var(--sfai-heading));
}
.sfai-form-container.sfai-public-layout-guided .sfai-progress-bar {
  height: 4px;
  margin: 0 0 15px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--sfai-input-bdr) 88%, #fff);
  overflow: hidden;
}
.sfai-form-container.sfai-public-layout-guided .sfai-progress-bar-fill {
  height: 100%;
  border-radius: inherit;
  background: var(--sfai-primary);
}
.sfai-form-container.sfai-public-layout-guided .sfai-steps-nav,
.sfai-form-container.sfai-public-layout-guided.sfai-progress-pills .sfai-steps-nav,
.sfai-form-container.sfai-public-layout-guided.sfai-progress-cards .sfai-steps-nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}
.sfai-form-container.sfai-public-layout-guided .sfai-step-indicator,
.sfai-form-container.sfai-public-layout-guided.sfai-progress-pills .sfai-step-indicator,
.sfai-form-container.sfai-public-layout-guided.sfai-progress-cards .sfai-step-indicator {
  min-width: 0;
  min-height: 58px;
  display: flex;
  flex: 1 1 auto;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  padding: 11px 13px;
  background: color-mix(in srgb, var(--sfai-surface) 96%, var(--sfai-primary) 4%);
  border: 1px solid var(--sfai-input-bdr);
  border-radius: 13px;
  color: var(--sfai-muted);
}
.sfai-form-container.sfai-public-layout-guided .sfai-step-indicator::before,
.sfai-form-container.sfai-public-layout-guided .sfai-step-indicator::after { display: none; }
.sfai-form-container.sfai-public-layout-guided .sfai-step-indicator.active {
  color: var(--sfai-primary);
  border-color: color-mix(in srgb, var(--sfai-primary) 68%, #fff);
  background: color-mix(in srgb, var(--sfai-primary) 9%, var(--sfai-input-bg));
  box-shadow: 0 7px 18px rgba(var(--sfai-primary-rgb), .10);
}
.sfai-form-container.sfai-public-layout-guided .sfai-step-indicator.completed {
  color: color-mix(in srgb, var(--sfai-primary) 74%, var(--sfai-heading));
  border-color: color-mix(in srgb, var(--sfai-primary) 36%, var(--sfai-input-bdr));
}
.sfai-form-container.sfai-public-layout-guided .sfai-step-dot,
.sfai-form-container.sfai-public-layout-guided.sfai-progress-pills .sfai-step-dot {
  display: inline-flex;
  flex: 0 0 27px;
  width: 27px;
  height: 27px;
  border-width: 1px;
  border-color: var(--sfai-input-bdr);
  background: var(--sfai-input-bg);
  box-shadow: none;
  font-size: 11px;
}
.sfai-form-container.sfai-public-layout-guided .sfai-step-indicator.active .sfai-step-dot,
.sfai-form-container.sfai-public-layout-guided .sfai-step-indicator.completed .sfai-step-dot {
  border-color: var(--sfai-primary);
  background: var(--sfai-primary);
  color: var(--sfai-btn-text);
  box-shadow: none;
}
.sfai-form-container.sfai-public-layout-guided .sfai-step-label {
  max-width: none;
  margin: 0;
  overflow: visible;
  white-space: normal;
  text-align: left;
  font-size: 12px;
  line-height: 1.28;
  font-weight: 700;
}

/* A spacious content stage with a useful desktop field grid. */
.sfai-form-container.sfai-public-layout-guided .sfai-step {
  padding: clamp(2px, 1vw, 8px) 0 0;
}
.sfai-form-container.sfai-public-layout-guided .sfai-step-title {
  margin: 0;
  font-size: clamp(22px, 2.6vw, 30px);
  color: var(--sfai-heading);
}
.sfai-form-container.sfai-public-layout-guided .sfai-step-desc {
  margin: -8px 0 10px;
  font-size: 15px;
  color: var(--sfai-muted);
}
.sfai-form-container.sfai-public-layout-guided .sfai-field {
  gap: 8px;
}
.sfai-form-container.sfai-public-layout-guided .sfai-label {
  font-size: 13px;
  font-weight: 700;
  color: color-mix(in srgb, var(--sfai-label) 94%, #000);
}
.sfai-form-container.sfai-public-layout-guided .sfai-input {
  min-height: max(52px, var(--sfai-input-min-height));
  padding: 14px 16px;
  background: color-mix(in srgb, var(--sfai-input-bg) 98%, var(--sfai-page-bg));
  border-color: color-mix(in srgb, var(--sfai-input-bdr) 92%, var(--sfai-primary) 8%);
  border-radius: min(12px, var(--sfai-radius-sm));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72);
}
.sfai-form-container.sfai-public-layout-guided .sfai-input:hover:not(:focus) {
  border-color: color-mix(in srgb, var(--sfai-primary) 34%, var(--sfai-input-bdr));
}
.sfai-form-container.sfai-public-layout-guided .sfai-input:focus {
  border-color: var(--sfai-primary);
  box-shadow: 0 0 0 4px rgba(var(--sfai-primary-rgb), .12), inset 0 1px 0 rgba(255,255,255,.85);
}
.sfai-form-container.sfai-public-layout-guided textarea.sfai-input { min-height: 150px; }

/* Actions live directly after the stage instead of floating in an empty column. */
.sfai-form-container.sfai-public-layout-guided .sfai-step-nav {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 14px;
  margin-top: clamp(28px, 4vw, 40px);
  padding-top: 24px;
  border-top: 1px solid color-mix(in srgb, var(--sfai-card-bdr) 82%, var(--sfai-primary) 18%);
}
.sfai-form-container.sfai-public-layout-guided .sfai-step-nav .sfai-security-challenge { grid-column: 1 / -1; }
.sfai-form-container.sfai-public-layout-guided .sfai-step-nav .sfai-btn-prev { grid-column: 1; justify-self: start; }
.sfai-form-container.sfai-public-layout-guided .sfai-step-nav .sfai-btn-next,
.sfai-form-container.sfai-public-layout-guided .sfai-step-nav .sfai-btn-submit { grid-column: 2; justify-self: end; }
.sfai-form-container.sfai-public-layout-guided .sfai-step-nav .sfai-btn,
.sfai-form-container.sfai-public-layout-guided .sfai-submit-row .sfai-btn {
  min-width: 148px;
  padding: 14px 22px;
  box-shadow: 0 12px 22px rgba(var(--sfai-primary-rgb), .20);
}
.sfai-form-container.sfai-public-layout-standard .sfai-submit-row,
.sfai-form-container.sfai-public-layout-guided .sfai-submit-row {
  justify-content: flex-end;
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid color-mix(in srgb, var(--sfai-card-bdr) 86%, var(--sfai-primary) 14%);
}

/* Compact capture reduces chrome while retaining the same accessible controls. */
.sfai-form-container.sfai-public-layout-compact .sfai-form-header { margin-bottom: 24px; }
.sfai-form-container.sfai-public-layout-compact .sfai-form-title { font-size: clamp(26px, 4vw, 36px); }
.sfai-form-container.sfai-public-layout-compact .sfai-submit-row { justify-content: stretch; }
.sfai-form-container.sfai-public-layout-compact .sfai-submit-row .sfai-btn { width: 100%; }

@media (max-width: 760px) {
  .sfai-form-container.sfai-public-layout-guided,
  .sfai-form-container.sfai-public-layout-standard,
  .sfai-form-container.sfai-public-layout-compact { padding: 0; border-radius: 0; background: transparent; }
  .sfai-form-container.sfai-public-layout-guided .sfai-form-wrap,
  .sfai-form-container.sfai-public-layout-standard .sfai-form-wrap,
  .sfai-form-container.sfai-public-layout-compact .sfai-form-wrap { padding: 28px 20px 30px; border-radius: 18px; }
  .sfai-form-container.sfai-public-layout-guided .sfai-steps-progress { padding: 14px; }
  .sfai-form-container.sfai-public-layout-guided .sfai-steps-nav,
  .sfai-form-container.sfai-public-layout-guided.sfai-progress-pills .sfai-steps-nav,
  .sfai-form-container.sfai-public-layout-guided.sfai-progress-cards .sfai-steps-nav { grid-template-columns: 1fr; }
  .sfai-form-container.sfai-public-layout-guided .sfai-step-indicator { min-height: 48px; }
  .sfai-form-container.sfai-public-layout-guided .sfai-step-nav { grid-template-columns: 1fr; }
  .sfai-form-container.sfai-public-layout-guided .sfai-step-nav .sfai-btn-prev,
  .sfai-form-container.sfai-public-layout-guided .sfai-step-nav .sfai-btn-next,
  .sfai-form-container.sfai-public-layout-guided .sfai-step-nav .sfai-btn-submit { grid-column: 1; justify-self: stretch; width: 100%; }
  .sfai-form-container.sfai-public-layout-guided .sfai-step-nav .sfai-btn { min-width: 0; }
}

/* ============================================================
   SmartForm AI v1.9.9 — Accessibility, Mobile UX & Performance Certification
   This layer provides durable interaction semantics without forcing a visual
   redesign. It is intentionally scoped to public SmartForm output only.
   ============================================================ */
.sfai-form-container {
  color-scheme: light;
  -webkit-tap-highlight-color: transparent;
}
.sfai-form-container .sfai-validation-summary {
  display: block;
  margin: 0 0 18px;
  padding: 13px 15px;
  border: 1px solid var(--sfai-error, #b42318);
  border-left-width: 4px;
  border-radius: var(--sfai-radius-sm);
  color: color-mix(in srgb, var(--sfai-error, #b42318) 84%, #1f2937);
  background: color-mix(in srgb, var(--sfai-error, #b42318) 7%, #fff);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
}
.sfai-form-container .sfai-validation-summary[hidden] { display: none !important; }
.sfai-form-container .sfai-validation-summary:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--sfai-error, #b42318) 32%, transparent);
  outline-offset: 3px;
}
.sfai-form-container .sfai-field.sfai-has-error .sfai-input,
.sfai-form-container .sfai-field.sfai-has-error .sfai-file-drop,
.sfai-form-container .sfai-field .sfai-input.sfai-has-error {
  border-color: var(--sfai-error, #b42318);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sfai-error, #b42318) 16%, transparent);
}
.sfai-form-container .sfai-field-error:not(:empty) {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin-top: 7px;
  color: var(--sfai-error, #b42318);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.42;
}
.sfai-form-container .sfai-field-error:not(:empty)::before {
  content: '!';
  display: inline-grid;
  place-items: center;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  border-radius: 999px;
  color: #fff;
  background: currentColor;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}
.sfai-form-container .sfai-field-error:empty { display: none !important; }
.sfai-form-container .sfai-required { color: var(--sfai-error, #b42318); }

/* Every action and choice remains touch-safe. */
.sfai-form-container button,
.sfai-form-container input,
.sfai-form-container select,
.sfai-form-container textarea { touch-action: manipulation; }
.sfai-form-container input[type='checkbox'],
.sfai-form-container input[type='radio'] {
  inline-size: 20px;
  block-size: 20px;
  flex: 0 0 20px;
  accent-color: var(--sfai-primary);
}
.sfai-form-container .sfai-radio-label,
.sfai-form-container .sfai-checkbox-label,
.sfai-form-container .sfai-consent-label,
.sfai-form-container .sfai-toggle-field {
  min-height: max(44px, var(--sfai-input-min-height, 50px));
  padding-block: 11px;
}
.sfai-form-container .sfai-password-toggle,
.sfai-form-container .sfai-file-remove,
.sfai-form-container .sfai-sig-clear,
.sfai-form-container .sfai-repeater-remove {
  min-height: 36px;
  min-width: 36px;
  border-radius: 8px;
}
.sfai-form-container .sfai-password-toggle {
  border: 1px solid var(--sfai-input-bdr);
  background: var(--sfai-input-bg);
  color: var(--sfai-label);
  padding: 7px 10px;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.sfai-form-container .sfai-password-toggle:focus-visible,
.sfai-form-container .sfai-file-remove:focus-visible,
.sfai-form-container .sfai-sig-clear:focus-visible,
.sfai-form-container .sfai-repeater-add:focus-visible {
  outline: 3px solid rgba(var(--sfai-primary-rgb), .28);
  outline-offset: 3px;
}
.sfai-form-container .sfai-file-item {
  align-items: center;
  gap: 10px;
}
.sfai-form-container .sfai-file-item-name { min-width: 0; overflow-wrap: anywhere; }
.sfai-form-container .sfai-file-item-name small { color: var(--sfai-muted); }
.sfai-form-container .sfai-file-remove {
  margin-left: auto;
  padding: 5px 9px;
  border: 1px solid color-mix(in srgb, var(--sfai-error, #b42318) 35%, var(--sfai-input-bdr));
  background: transparent;
  color: var(--sfai-error, #b42318);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

/* Keyboard focus is visible even where a custom theme changes form colours. */
.sfai-form-container :is(.sfai-input, .sfai-btn, .sfai-radio-label, .sfai-checkbox-label, .sfai-consent-label, .sfai-toggle-field, .sfai-repeater-add, .sfai-sig-clear):focus-visible,
.sfai-form-container :is(.sfai-radio-label, .sfai-checkbox-label, .sfai-consent-label, .sfai-toggle-field):has(input:focus-visible) {
  outline: 3px solid rgba(var(--sfai-primary-rgb), .32);
  outline-offset: 3px;
}
.sfai-form-container .sfai-step-title[tabindex='-1']:focus { outline: none; }
.sfai-form-container .sfai-step-title[tabindex='-1']:focus-visible {
  outline: 3px solid rgba(var(--sfai-primary-rgb), .28);
  outline-offset: 5px;
  border-radius: 5px;
}

/* Progress cards remain informative on narrow screens without cutting off labels. */
.sfai-form-container .sfai-step-indicator .screen-reader-text { clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; width: 1px; word-wrap: normal; }
.sfai-form-container .sfai-steps-progress { overflow: clip; }
.sfai-form-container .sfai-steps-nav { min-width: 0; }
.sfai-form-container .sfai-step-label { overflow-wrap: anywhere; }

/* Better date and native-select tap targets. */
.sfai-form-container input[type='date'],
.sfai-form-container input[type='time'],
.sfai-form-container input[type='datetime-local'],
.sfai-form-container select { cursor: pointer; }
.sfai-form-container input[type='date']::-webkit-calendar-picker-indicator,
.sfai-form-container input[type='time']::-webkit-calendar-picker-indicator,
.sfai-form-container input[type='datetime-local']::-webkit-calendar-picker-indicator {
  cursor: pointer;
  padding: 6px;
}

/* Matrix tables retain their semantics and use intentional horizontal scrolling on small devices. */
.sfai-form-container .sfai-matrix-wrap {
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-color: color-mix(in srgb, var(--sfai-primary) 42%, transparent) transparent;
}
.sfai-form-container .sfai-matrix caption { text-align: left; }

/* Success/error messages are robust for long translations and narrow screens. */
.sfai-form-container .sfai-form-messages { scroll-margin-top: 24px; }
.sfai-form-container .sfai-msg-success,
.sfai-form-container .sfai-msg-error { overflow-wrap: anywhere; }

@media (max-width: 760px) {
  .sfai-form-container.sfai-public-layout-guided,
  .sfai-form-container.sfai-public-layout-standard,
  .sfai-form-container.sfai-public-layout-compact {
    padding-inline: max(10px, env(safe-area-inset-left));
    padding-right: max(10px, env(safe-area-inset-right));
    border-radius: 0;
  }
  .sfai-form-container.sfai-public-layout-guided .sfai-form-wrap,
  .sfai-form-container.sfai-public-layout-standard .sfai-form-wrap,
  .sfai-form-container.sfai-public-layout-compact .sfai-form-wrap {
    padding: 28px 20px 30px;
    border-radius: min(20px, var(--sfai-radius));
  }
  .sfai-form-container .sfai-form-header .sfai-form-title { font-size: clamp(28px, 8vw, 38px); }
  .sfai-form-container .sfai-steps-nav,
  .sfai-form-container.sfai-public-layout-guided .sfai-steps-nav { grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); }
  .sfai-form-container .sfai-step-nav {
    align-items: stretch;
    gap: 10px;
  }
  .sfai-form-container .sfai-step-nav .sfai-btn { min-width: 0; flex: 1 1 0; }
  .sfai-form-container .sfai-matrix { min-width: 580px; }
  .sfai-form-container .sfai-signature-pad canvas { height: 142px; }
}

@media (max-width: 480px) {
  .sfai-form-container.sfai-public-layout-guided .sfai-form-wrap,
  .sfai-form-container.sfai-public-layout-standard .sfai-form-wrap,
  .sfai-form-container.sfai-public-layout-compact .sfai-form-wrap { padding: 24px 16px 26px; }
  .sfai-form-container .sfai-form-header { margin-bottom: 22px; }
  .sfai-form-container .sfai-steps-progress { padding: 14px; }
  .sfai-form-container .sfai-progress-meta { font-size: 10px; }
  .sfai-form-container .sfai-steps-nav,
  .sfai-form-container.sfai-public-layout-guided .sfai-steps-nav { grid-template-columns: 1fr; }
  .sfai-form-container .sfai-step-indicator { min-height: 48px; }
  .sfai-form-container .sfai-step-label { max-width: none; font-size: 12px; }
  .sfai-form-container .sfai-step-nav .sfai-btn { flex: 1 1 100%; }
  .sfai-form-container .sfai-btn-prev + .sfai-btn-next { flex-basis: calc(50% - 5px); }
  .sfai-form-container .sfai-btn-prev ~ .sfai-btn-submit { flex-basis: calc(50% - 5px); }
  .sfai-form-container .sfai-compound { grid-template-columns: 1fr; }
  .sfai-form-container .sfai-file-drop { min-height: 132px; }
  .sfai-form-container .sfai-matrix { min-width: 520px; font-size: 12px; }
}

@media (prefers-contrast: more) {
  .sfai-form-container .sfai-input,
  .sfai-form-container .sfai-radio-label,
  .sfai-form-container .sfai-checkbox-label,
  .sfai-form-container .sfai-consent-label,
  .sfai-form-container .sfai-toggle-field { border-width: 2px; }
  .sfai-form-container .sfai-btn { box-shadow: none; }
}


/* ============================================================
   SmartForm AI v1.9.9.1 — Mobile Select Rendering Hotfix
   Android/Chromium theme styles may reset individual background
   properties on focused native selects. Re-declare the complete
   background stack at component scope so the disclosure icon can
   never tile across the control.
   ============================================================ */
.sfai-form-container[data-form-id] select.sfai-input,
.sfai-form-container[data-form-id] select.sfai-input:focus,
.sfai-form-container[data-form-id] select.sfai-input:active {
  -webkit-appearance: none;
  appearance: none;
  background-color: var(--sfai-input-bg, #ffffff);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236366f1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 18px 18px;
  background-clip: padding-box;
  padding-right: 48px;
}

@media (max-width: 480px) {
  .sfai-form-container[data-form-id] select.sfai-input,
  .sfai-form-container[data-form-id] select.sfai-input:focus,
  .sfai-form-container[data-form-id] select.sfai-input:active {
    background-position: right 12px center;
    padding-right: 44px;
  }
}


/* ============================================================
   SmartForm AI v1.9.9.3 — File Upload Persistence & Delivery
   ============================================================ */
.sfai-form-container .sfai-file-drop {
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  overflow: hidden;
}
.sfai-form-container .sfai-file-ui,
.sfai-form-container .sfai-file-list {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.sfai-form-container .sfai-file-ui { position: relative; z-index: 0; }
.sfai-form-container .sfai-file-ui p,
.sfai-form-container .sfai-file-ui small { overflow-wrap: anywhere; }
.sfai-form-container .sfai-file-list {
  position: relative;
  z-index: 2;
  align-self: stretch;
  overflow: hidden;
}
.sfai-form-container .sfai-file-input { z-index: 1; }
.sfai-form-container .sfai-file-item {
  min-width: 0;
  max-width: 100%;
  flex-wrap: wrap;
}
.sfai-form-container .sfai-file-item-name {
  white-space: normal;
  word-break: break-word;
}
.sfai-form-container .sfai-file-item-success { background: #f0fdf4; border-color: #bbf7d0; }
.sfai-form-container .sfai-file-item-error { background: #fef2f2; border-color: #fecaca; }
.sfai-form-container .sfai-file-item-pending { background: #eff6ff; border-color: #bfdbfe; }
.sfai-form-container .sfai-file-drop.sfai-uploading { cursor: wait; }
.sfai-form-container .sfai-file-drop.sfai-uploading .sfai-file-input { cursor: wait; }
@media (max-width: 480px) {
  .sfai-form-container .sfai-file-drop { padding: 22px 14px; }
  .sfai-form-container .sfai-file-ui p { font-size: 13px; line-height: 1.35; }
  .sfai-form-container .sfai-file-item { align-items: flex-start; }
  .sfai-form-container .sfai-file-remove { margin-left: 0; }
}


/* ============================================================
   SmartForm AI v1.9.9.4 — File Upload Pipeline & Mobile Layout
   The file-picker hit area is confined to .sfai-file-select. The rendered
   upload list is a normal flow element, so lengthy names never sit beneath
   the invisible native input on Android/Chromium.
   ============================================================ */
.sfai-form-container .sfai-file-drop {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  min-width: 0;
  width: 100%;
  overflow: visible;
}
.sfai-form-container .sfai-file-select {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 128px;
  min-width: 0;
  width: 100%;
}
.sfai-form-container .sfai-file-select .sfai-file-input {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.sfai-form-container .sfai-file-select .sfai-file-ui {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  min-width: 0;
  pointer-events: none;
}
.sfai-form-container .sfai-file-list {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  width: 100%;
  min-width: 0;
  margin: 0;
  overflow: visible;
}
.sfai-form-container .sfai-file-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  box-sizing: border-box;
}
.sfai-form-container .sfai-file-item-name {
  display: block;
  min-width: 0;
  overflow: visible;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
  line-height: 1.4;
}
.sfai-form-container .sfai-file-remove {
  position: relative;
  z-index: 4;
  min-height: 34px;
  padding: 6px 8px;
  border: 0;
  background: transparent;
  white-space: nowrap;
}
@media (max-width: 480px) {
  .sfai-form-container .sfai-file-drop { padding: 14px; gap: 10px; }
  .sfai-form-container .sfai-file-select { min-height: 120px; }
  .sfai-form-container .sfai-file-item { grid-template-columns: minmax(0, 1fr); }
  .sfai-form-container .sfai-file-remove { justify-self: start; margin: 0; }
}


/* v2.0 RC2 performance baseline: isolate paint work to the public form without
   changing external page layout or hiding content before it is ready. */
.sfai-form-container .sfai-form-wrap {
  isolation: isolate;
}
.sfai-form-container .sfai-step[aria-hidden="true"] {
  content-visibility: hidden;
}


/* Form-level disclosure displayed after the submit action. */
.sfai-form-footer-note { flex:0 0 100%; width:100%; margin:4px 0 0; font-size:12px; line-height:1.6; color:var(--sfai-muted); }
.sfai-form-footer-note p { margin:0; }
.sfai-form-footer-note a { color:var(--sfai-primary); }

/* SmartForm AI v2.2.0-rc.32 — presentation controls remain author-overridable */
.sfai-theme-no-theme .sfai-form-wrap {
  box-shadow: none;
}
.sfai-theme-no-theme .sfai-form-wrap::after,
.sfai-effect-glow-off .sfai-form-wrap::after {
  display: none;
}
.sfai-effect-focus-off .sfai-input:focus,
.sfai-effect-focus-off .sfai-file-drop:focus-within,
.sfai-effect-focus-off .sfai-signature-pad:focus-within {
  box-shadow: none;
}
.sfai-effect-button-shadow-off .sfai-btn,
.sfai-effect-button-shadow-off .sfai-btn:hover,
.sfai-effect-button-shadow-off .sfai-btn:active {
  box-shadow: none;
  transform: none;
}
.sfai-effect-border-hidden .sfai-form-wrap {
  border-color: transparent;
  border-width: 0;
}
.sfai-effect-progress-shadow-off .sfai-step-indicator,
.sfai-effect-progress-shadow-off .sfai-step-indicator.active,
.sfai-effect-progress-shadow-off .sfai-step-dot,
.sfai-effect-progress-shadow-off .sfai-progress-bar-fill {
  box-shadow: none;
}
