/* JetStorm Forms — Frontend v3 — Theme-proof with high specificity */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

/* ═══ WRAPPER ═══ */
.jsf-form-wrapper {
    font-family: var(--jsf-font, 'Plus Jakarta Sans', system-ui, sans-serif) !important;
    font-size: var(--jsf-font-size, 15px) !important;
    color: var(--jsf-text, #1e293b) !important;
    background: var(--jsf-bg, #ffffff) !important;
    border-radius: calc(var(--jsf-radius, 10px) + 6px) !important;
    padding: 40px !important;
    max-width: 720px !important;
    margin: 0 auto !important;
    line-height: 1.6 !important;
    box-sizing: border-box !important;
    animation: jsfIn 0.5s cubic-bezier(0.16,1,0.3,1) !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
}
@keyframes jsfIn { from { opacity:0; transform:translateY(16px); } }
.jsf-form-wrapper *, .jsf-form-wrapper *::before, .jsf-form-wrapper *::after {
    box-sizing: border-box !important;
}
@media (max-width: 600px) {
    .jsf-form-wrapper { padding: 24px 18px !important; }
}

/* ═══ HEADER ═══ */
.jsf-form-wrapper .jsf-form-header { margin-bottom: 28px !important; }
.jsf-form-wrapper .jsf-form-title {
    font-size: 1.75em !important; font-weight: 800 !important; color: var(--jsf-text) !important;
    margin: 0 0 6px !important; letter-spacing: -0.03em !important; line-height: 1.2 !important;
    padding: 0 !important; border: none !important; background: none !important;
}
.jsf-form-wrapper .jsf-form-description {
    color: var(--jsf-text-light, #64748b) !important; margin: 0 !important;
    font-size: 0.95em !important;
}

/* ═══ PROGRESS BAR ═══ */
.jsf-form-wrapper .jsf-progress-bar { margin-bottom: 32px !important; }
.jsf-form-wrapper .jsf-progress-track { height: 4px !important; background: var(--jsf-border, #e2e8f0) !important; border-radius: 2px !important; overflow: hidden !important; margin-bottom: 16px !important; }
.jsf-form-wrapper .jsf-progress-fill {
    height: 100% !important; border-radius: 2px !important; width: 0% !important;
    background: linear-gradient(90deg, var(--jsf-primary), var(--jsf-secondary, var(--jsf-primary))) !important;
    transition: width 0.6s cubic-bezier(0.16,1,0.3,1) !important;
}
.jsf-form-wrapper .jsf-progress-steps { display: flex !important; justify-content: space-between !important; }
.jsf-form-wrapper .jsf-progress-step { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 6px !important; opacity: 0.35 !important; transition: all 0.4s !important; }
.jsf-form-wrapper .jsf-progress-step.active { opacity: 1 !important; }
.jsf-form-wrapper .jsf-progress-step.completed { opacity: 0.75 !important; }
.jsf-form-wrapper .jsf-step-number {
    width: 32px !important; height: 32px !important; border-radius: 50% !important;
    background: var(--jsf-surface, #f1f5f9) !important; border: 2px solid var(--jsf-border) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    font-size: 12px !important; font-weight: 800 !important; color: var(--jsf-text-light) !important; transition: all 0.4s !important;
}
.jsf-form-wrapper .jsf-progress-step.active .jsf-step-number { background: var(--jsf-primary) !important; color: #fff !important; border-color: var(--jsf-primary) !important; box-shadow: 0 4px 14px rgba(99,102,241,0.3) !important; }
.jsf-form-wrapper .jsf-progress-step.completed .jsf-step-number { background: var(--jsf-success, #22c55e) !important; color: #fff !important; border-color: var(--jsf-success) !important; }
.jsf-form-wrapper .jsf-step-label { font-size: 11px !important; color: var(--jsf-text-light) !important; font-weight: 600 !important; }

/* ═══ FIELD LAYOUT ═══ */
.jsf-form-wrapper .jsf-fields-row { display: flex !important; flex-wrap: wrap !important; gap: 20px !important; }
.jsf-form-wrapper .jsf-field {
    margin-bottom: 4px !important; animation: jsfField 0.3s ease both !important;
    box-sizing: border-box !important; min-width: 0 !important;
}
@keyframes jsfField { from { opacity:0; transform:translateY(6px); } }

.jsf-form-wrapper .jsf-width-100 { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; }
.jsf-form-wrapper .jsf-width-50 { flex: 0 0 calc(50% - 10px) !important; max-width: calc(50% - 10px) !important; }
.jsf-form-wrapper .jsf-width-33 { flex: 0 0 calc(33.333% - 14px) !important; max-width: calc(33.333% - 14px) !important; }
.jsf-form-wrapper .jsf-width-25 { flex: 0 0 calc(25% - 15px) !important; max-width: calc(25% - 15px) !important; }
.jsf-form-wrapper .jsf-width-66 { flex: 0 0 calc(66.666% - 7px) !important; max-width: calc(66.666% - 7px) !important; }
.jsf-form-wrapper .jsf-width-75 { flex: 0 0 calc(75% - 5px) !important; max-width: calc(75% - 5px) !important; }
@media (max-width: 600px) {
    .jsf-form-wrapper .jsf-width-50, .jsf-form-wrapper .jsf-width-33,
    .jsf-form-wrapper .jsf-width-25, .jsf-form-wrapper .jsf-width-66,
    .jsf-form-wrapper .jsf-width-75 { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; }
}

/* ═══ LABELS ═══ */
.jsf-form-wrapper .jsf-label {
    display: block !important; font-weight: 700 !important; margin-bottom: 8px !important;
    font-size: 0.88em !important; color: var(--jsf-text) !important; letter-spacing: -0.01em !important;
    padding: 0 !important; background: none !important; border: none !important;
}
.jsf-form-wrapper .jsf-required { color: var(--jsf-error, #ef4444) !important; font-weight: 800 !important; }
.jsf-form-wrapper .jsf-description {
    font-size: 0.78em !important; color: var(--jsf-text-light, #64748b) !important;
    margin-top: 6px !important; line-height: 1.5 !important;
}

/* ═══ TEXT INPUTS ═══ */
.jsf-form-wrapper .jsf-input {
    width: 100% !important; padding: 12px 16px !important;
    border: 2px solid var(--jsf-border, #e2e8f0) !important;
    border-radius: var(--jsf-radius, 10px) !important;
    font-size: 0.95em !important; font-family: inherit !important; font-weight: 500 !important;
    background: var(--jsf-surface, #f8fafc) !important;
    color: var(--jsf-text) !important;
    outline: none !important;
    -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important;
    transition: border-color 0.2s, box-shadow 0.25s, background 0.2s !important;
    box-shadow: none !important;
    height: auto !important; line-height: 1.5 !important;
    margin: 0 !important;
    background-image: none !important;
}
.jsf-form-wrapper .jsf-input:hover { border-color: var(--jsf-primary) !important; }
.jsf-form-wrapper .jsf-input:focus {
    border-color: var(--jsf-primary) !important;
    box-shadow: 0 0 0 4px rgba(99,102,241,0.1) !important;
    background: #fff !important;
}
.jsf-form-wrapper .jsf-input::placeholder { color: var(--jsf-text-light, #94a3b8) !important; font-weight: 400 !important; }
.jsf-form-wrapper .jsf-input.error {
    border-color: var(--jsf-error, #ef4444) !important;
    box-shadow: 0 0 0 4px rgba(239,68,68,0.08) !important;
    animation: jsfShake 0.35s !important;
}
@keyframes jsfShake { 15%,45%,75% { transform: translateX(-3px); } 30%,60%,90% { transform: translateX(3px); } }
.jsf-form-wrapper .jsf-textarea { resize: vertical !important; min-height: 100px !important; }

/* ═══ SELECT DROPDOWN ═══ */
.jsf-form-wrapper .jsf-select {
    -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important;
    padding-right: 48px !important;
    cursor: pointer !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 16px center !important;
    background-size: 16px 16px !important;
}
.jsf-form-wrapper .jsf-select:focus {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%236366f1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

/* ═══ RADIO BUTTONS ═══ */
.jsf-form-wrapper .jsf-radio-group, .jsf-form-wrapper .jsf-checkbox-group {
    display: flex !important; flex-direction: column !important; gap: 8px !important;
}
.jsf-form-wrapper .jsf-layout-horizontal { flex-direction: row !important; flex-wrap: wrap !important; gap: 10px !important; }

.jsf-form-wrapper .jsf-radio-label,
.jsf-form-wrapper .jsf-checkbox-label,
.jsf-form-wrapper .jsf-consent-label {
    display: flex !important; align-items: center !important; gap: 12px !important;
    cursor: pointer !important; font-size: 0.93em !important; font-weight: 500 !important;
    padding: 11px 16px !important;
    border-radius: var(--jsf-radius, 10px) !important;
    border: 2px solid var(--jsf-border, #e2e8f0) !important;
    background: var(--jsf-surface, #f8fafc) !important;
    transition: all 0.2s !important;
    position: relative !important; margin: 0 !important;
}
.jsf-form-wrapper .jsf-radio-label:hover,
.jsf-form-wrapper .jsf-checkbox-label:hover,
.jsf-form-wrapper .jsf-consent-label:hover {
    border-color: var(--jsf-primary) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04) !important;
}
/* Hide native radio/checkbox */
.jsf-form-wrapper .jsf-radio-label input[type="radio"],
.jsf-form-wrapper .jsf-checkbox-label input[type="checkbox"],
.jsf-form-wrapper .jsf-consent-label input[type="checkbox"] {
    position: absolute !important; opacity: 0 !important; pointer-events: none !important;
    width: 0 !important; height: 0 !important; margin: 0 !important; padding: 0 !important;
}

/* ═══ SELECTED LABEL — highlighted container ═══ */
.jsf-form-wrapper .jsf-radio-label:has(input:checked),
.jsf-form-wrapper .jsf-checkbox-label:has(input:checked) {
    border-color: var(--jsf-primary) !important;
    background: linear-gradient(135deg, rgba(99,102,241,0.04), rgba(99,102,241,0.08)) !important;
    box-shadow: 0 0 0 3px rgba(99,102,241,0.1) !important;
}
/* Fallback for browsers without :has() — JS will add this class */
.jsf-form-wrapper .jsf-radio-label.jsf-checked,
.jsf-form-wrapper .jsf-checkbox-label.jsf-checked {
    border-color: var(--jsf-primary) !important;
    background: linear-gradient(135deg, rgba(99,102,241,0.04), rgba(99,102,241,0.08)) !important;
    box-shadow: 0 0 0 3px rgba(99,102,241,0.1) !important;
}
/* Custom radio mark */
.jsf-form-wrapper .jsf-radio-mark {
    width: 22px !important; height: 22px !important; border-radius: 50% !important;
    border: 2px solid var(--jsf-border, #cbd5e1) !important;
    background: #fff !important; flex-shrink: 0 !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    transition: all 0.25s !important; position: relative !important;
}
/* Dot — always in DOM, hidden by default */
.jsf-form-wrapper .jsf-radio-mark::after {
    content: '' !important; display: block !important;
    width: 0 !important; height: 0 !important;
    border-radius: 50% !important; background: var(--jsf-primary, #6366f1) !important;
    transition: all 0.2s cubic-bezier(0.34,1.56,0.64,1) !important;
}
/* Checked — show dot */
.jsf-form-wrapper .jsf-radio-label input:checked ~ .jsf-radio-mark {
    border-color: var(--jsf-primary, #6366f1) !important;
}
.jsf-form-wrapper .jsf-radio-label input:checked ~ .jsf-radio-mark::after {
    width: 10px !important; height: 10px !important;
}
/* Fallback for JS-added class */
.jsf-form-wrapper .jsf-radio-label.jsf-checked .jsf-radio-mark {
    border-color: var(--jsf-primary, #6366f1) !important;
}
.jsf-form-wrapper .jsf-radio-label.jsf-checked .jsf-radio-mark::after {
    width: 10px !important; height: 10px !important;
}
@keyframes jsfPop { from { transform: scale(0); } to { transform: scale(1); } }
.jsf-form-wrapper .jsf-radio-label input:checked ~ .jsf-radio-text,
.jsf-form-wrapper .jsf-radio-label.jsf-checked .jsf-radio-text { font-weight: 700 !important; color: var(--jsf-primary, #6366f1) !important; }

/* Custom checkbox mark */
.jsf-form-wrapper .jsf-checkbox-mark {
    width: 22px !important; height: 22px !important; border-radius: 6px !important;
    border: 2px solid var(--jsf-border, #cbd5e1) !important;
    background: #fff !important; flex-shrink: 0 !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    transition: all 0.25s !important;
}
/* Checked — fill background */
.jsf-form-wrapper .jsf-checkbox-label input:checked ~ .jsf-checkbox-mark,
.jsf-form-wrapper .jsf-consent-label input:checked ~ .jsf-checkbox-mark,
.jsf-form-wrapper .jsf-checkbox-label.jsf-checked .jsf-checkbox-mark {
    background: var(--jsf-primary, #6366f1) !important; border-color: var(--jsf-primary, #6366f1) !important;
    transform: scale(1.05) !important;
}
/* Checkmark — always in DOM, hidden by default */
.jsf-form-wrapper .jsf-checkbox-mark::after {
    content: '' !important; display: block !important;
    width: 0 !important; height: 0 !important; opacity: 0 !important;
    border: solid #fff !important; border-width: 0 2.5px 2.5px 0 !important;
    transform: rotate(45deg) !important; transition: all 0.15s !important;
}
.jsf-form-wrapper .jsf-checkbox-label input:checked ~ .jsf-checkbox-mark::after,
.jsf-form-wrapper .jsf-consent-label input:checked ~ .jsf-checkbox-mark::after,
.jsf-form-wrapper .jsf-checkbox-label.jsf-checked .jsf-checkbox-mark::after {
    width: 6px !important; height: 11px !important; opacity: 1 !important;
}
.jsf-form-wrapper .jsf-checkbox-label input:checked ~ .jsf-checkbox-text,
.jsf-form-wrapper .jsf-checkbox-label.jsf-checked .jsf-checkbox-text { font-weight: 700 !important; color: var(--jsf-primary, #6366f1) !important; }

/* ═══ TOGGLE ═══ */
.jsf-form-wrapper .jsf-toggle-wrap { display: flex !important; align-items: center !important; gap: 12px !important; cursor: pointer !important; }
.jsf-form-wrapper .jsf-toggle-input { position: absolute !important; opacity: 0 !important; pointer-events: none !important; }
.jsf-form-wrapper .jsf-toggle-slider {
    width: 50px !important; height: 28px !important; background: var(--jsf-border, #cbd5e1) !important;
    border-radius: 14px !important; position: relative !important; flex-shrink: 0 !important;
    transition: background 0.3s !important;
}
.jsf-form-wrapper .jsf-toggle-slider::after {
    content: '' !important; position: absolute !important; width: 22px !important; height: 22px !important;
    background: #fff !important; border-radius: 50% !important; top: 3px !important; left: 3px !important;
    transition: transform 0.3s cubic-bezier(0.16,1,0.3,1) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.15) !important;
}
.jsf-form-wrapper .jsf-toggle-input:checked + .jsf-toggle-slider { background: var(--jsf-primary) !important; }
.jsf-form-wrapper .jsf-toggle-input:checked + .jsf-toggle-slider::after { transform: translateX(22px) !important; }

/* ═══ FILE UPLOAD ═══ */
.jsf-form-wrapper .jsf-file-upload { position: relative !important; width: 100% !important; }
.jsf-form-wrapper .jsf-file-input { position: absolute !important; opacity: 0 !important; pointer-events: none !important; }
.jsf-form-wrapper .jsf-file-dropzone {
    border: 2px dashed var(--jsf-border, #cbd5e1) !important;
    border-radius: var(--jsf-radius, 10px) !important;
    padding: 32px 24px !important; text-align: center !important; cursor: pointer !important;
    background: var(--jsf-surface, #f8fafc) !important;
    transition: all 0.3s !important;
    width: 100% !important; box-sizing: border-box !important;
}
.jsf-form-wrapper .jsf-file-dropzone:hover { border-color: var(--jsf-primary) !important; }
.jsf-form-wrapper .jsf-file-icon { font-size: 32px !important; display: block !important; margin-bottom: 10px !important; }
.jsf-form-wrapper .jsf-file-text { display: block !important; font-size: 0.9em !important; font-weight: 600 !important; }
.jsf-form-wrapper .jsf-file-info { display: block !important; font-size: 0.75em !important; color: var(--jsf-text-light) !important; margin-top: 6px !important; }
.jsf-form-wrapper .jsf-file-item {
    display: flex !important; align-items: center !important; justify-content: space-between !important;
    padding: 10px 14px !important; background: var(--jsf-surface) !important;
    border-radius: var(--jsf-radius) !important; font-size: 0.85em !important;
    margin-bottom: 6px !important; border: 1px solid var(--jsf-border) !important;
}

/* ═══ RANGE ═══ */
.jsf-form-wrapper .jsf-range-wrap { display: flex !important; align-items: center !important; gap: 16px !important; }
.jsf-form-wrapper .jsf-range {
    flex: 1 !important; height: 6px !important;
    -webkit-appearance: none !important; appearance: none !important;
    background: var(--jsf-border) !important; border-radius: 3px !important; outline: none !important;
    border: none !important; padding: 0 !important; margin: 0 !important;
}
.jsf-form-wrapper .jsf-range::-webkit-slider-thumb {
    -webkit-appearance: none !important; width: 22px !important; height: 22px !important; border-radius: 50% !important;
    background: var(--jsf-primary) !important; border: 3px solid #fff !important;
    box-shadow: 0 2px 8px rgba(99,102,241,0.3) !important; cursor: grab !important;
}
.jsf-form-wrapper .jsf-range::-moz-range-thumb {
    width: 22px !important; height: 22px !important; border-radius: 50% !important;
    background: var(--jsf-primary) !important; border: 3px solid #fff !important;
    box-shadow: 0 2px 8px rgba(99,102,241,0.3) !important; cursor: grab !important;
}
.jsf-form-wrapper .jsf-range-value {
    font-weight: 800 !important; font-size: 1.1em !important; color: var(--jsf-primary) !important;
    min-width: 48px !important; text-align: center !important; background: var(--jsf-surface) !important;
    padding: 4px 10px !important; border-radius: 8px !important; border: 1px solid var(--jsf-border) !important;
}

/* ═══ RATING ═══ */
.jsf-form-wrapper .jsf-rating { display: flex !important; gap: 6px !important; padding: 4px 0 !important; }
.jsf-form-wrapper .jsf-star {
    font-size: 28px !important; cursor: pointer !important; color: var(--jsf-border, #d1d5db) !important;
    transition: all 0.15s !important; user-select: none !important; line-height: 1 !important; background: none !important; border: none !important; padding: 0 !important;
}
.jsf-form-wrapper .jsf-star:hover { color: #fbbf24 !important; transform: scale(1.3) rotate(-8deg) !important; }
.jsf-form-wrapper .jsf-star.active { color: #f59e0b !important; transform: scale(1.05) !important; }

/* ═══ SIGNATURE ═══ */
.jsf-form-wrapper .jsf-signature-pad { border: 2px solid var(--jsf-border) !important; border-radius: var(--jsf-radius) !important; cursor: crosshair !important; display: block !important; touch-action: none !important; background: var(--jsf-surface) !important; }
.jsf-form-wrapper .jsf-btn-clear-sig {
    margin-top: 8px !important; padding: 7px 18px !important; border: 2px solid var(--jsf-border) !important;
    border-radius: var(--jsf-radius) !important; background: var(--jsf-surface) !important;
    cursor: pointer !important; font-size: 0.82em !important; font-weight: 600 !important; font-family: inherit !important;
}
.jsf-form-wrapper .jsf-btn-clear-sig:hover { border-color: var(--jsf-error) !important; color: var(--jsf-error) !important; }

/* ═══ LAYOUT ═══ */
.jsf-form-wrapper .jsf-heading { font-weight: 800 !important; color: var(--jsf-text) !important; margin: 12px 0 4px !important; letter-spacing: -0.03em !important; }
.jsf-form-wrapper .jsf-heading-desc { color: var(--jsf-text-light) !important; font-size: 0.85em !important; margin: 4px 0 0 !important; }
.jsf-form-wrapper .jsf-paragraph { color: var(--jsf-text-light) !important; font-size: 0.92em !important; line-height: 1.7 !important; }
.jsf-form-wrapper .jsf-divider { border: none !important; border-top: 1px solid var(--jsf-border) !important; margin: 12px 0 !important; }
.jsf-form-wrapper .jsf-section-break { border-left: 3px solid var(--jsf-primary) !important; padding: 14px 20px !important; background: var(--jsf-surface) !important; border-radius: 0 var(--jsf-radius) var(--jsf-radius) 0 !important; margin: 8px 0 !important; }
.jsf-form-wrapper .jsf-section-title { margin: 0 0 4px !important; font-size: 1.05em !important; font-weight: 800 !important; }
.jsf-form-wrapper .jsf-section-desc { margin: 0 !important; font-size: 0.85em !important; color: var(--jsf-text-light) !important; }
.jsf-form-wrapper .jsf-price-display { font-size: 1.6em !important; font-weight: 800 !important; color: var(--jsf-primary) !important; }

/* ═══ DATE / TIME / NUMBER / COLOR ═══ */
.jsf-form-wrapper input[type="date"].jsf-input,
.jsf-form-wrapper input[type="time"].jsf-input { cursor: pointer !important; }
.jsf-form-wrapper input[type="number"].jsf-input { -moz-appearance: textfield !important; }
.jsf-form-wrapper input[type="number"].jsf-input::-webkit-outer-spin-button,
.jsf-form-wrapper input[type="number"].jsf-input::-webkit-inner-spin-button { -webkit-appearance: none !important; margin: 0 !important; }
.jsf-form-wrapper input[type="color"].jsf-input { height: 48px !important; padding: 4px !important; cursor: pointer !important; }

/* ═══ STEP ═══ */
.jsf-form-wrapper .jsf-step-header { margin-bottom: 24px !important; }
.jsf-form-wrapper .jsf-step-title { font-size: 1.3em !important; font-weight: 800 !important; margin: 0 0 6px !important; }
.jsf-form-wrapper .jsf-step-desc { margin: 0 !important; color: var(--jsf-text-light) !important; font-size: 0.9em !important; }
.jsf-form-wrapper .jsf-step { animation: jsfStep 0.4s cubic-bezier(0.16,1,0.3,1) !important; }
@keyframes jsfStep { from { opacity:0; transform:translateX(20px); } }

/* ═══ BUTTONS ═══ */
.jsf-form-wrapper .jsf-btn {
    display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important;
    padding: 13px 32px !important; border: none !important; border-radius: var(--jsf-radius, 10px) !important;
    font-size: 0.95em !important; font-weight: 700 !important; cursor: pointer !important;
    font-family: inherit !important; line-height: 1 !important; letter-spacing: -0.01em !important;
    transition: all 0.25s cubic-bezier(0.16,1,0.3,1) !important;
    text-decoration: none !important; text-transform: none !important;
}
.jsf-form-wrapper .jsf-btn-primary {
    background: var(--jsf-primary, #6366f1) !important;
    background-color: var(--jsf-primary, #6366f1) !important;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(99,102,241,0.25) !important;
    border: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}
.jsf-form-wrapper .jsf-btn-primary:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(99,102,241,0.35) !important;
    filter: brightness(1.08) !important;
}
.jsf-form-wrapper .jsf-btn-primary:active { transform: translateY(0) !important; }
.jsf-form-wrapper .jsf-btn-prev {
    background: var(--jsf-surface, #f1f5f9) !important; color: var(--jsf-text) !important;
    border: 2px solid var(--jsf-border) !important;
}
.jsf-form-wrapper .jsf-btn-prev:hover { background: var(--jsf-border) !important; }

.jsf-form-wrapper .jsf-submit-wrap { display: flex !important; visibility: visible !important; opacity: 1 !important; }
.jsf-form-wrapper .jsf-align-left { justify-content: flex-start !important; }
.jsf-form-wrapper .jsf-align-center { justify-content: center !important; }
.jsf-form-wrapper .jsf-align-right { justify-content: flex-end !important; }
.jsf-form-wrapper .jsf-align-full { justify-content: stretch !important; }
.jsf-form-wrapper .jsf-btn-full { width: 100% !important; justify-content: center !important; }

.jsf-form-wrapper .jsf-step-nav { display: flex !important; justify-content: space-between !important; margin-top: 28px !important; padding-top: 24px !important; border-top: 1px solid var(--jsf-border, #e2e8f0) !important; visibility: visible !important; }
.jsf-form-wrapper .jsf-form-footer { margin-top: 28px !important; padding-top: 24px !important; border-top: 1px solid var(--jsf-border, #e2e8f0) !important; visibility: visible !important; display: block !important; }

/* ═══ SPINNER ═══ */
.jsf-form-wrapper .jsf-spinner { width: 18px !important; height: 18px !important; border: 2.5px solid rgba(255,255,255,0.3) !important; border-top-color: #fff !important; border-radius: 50% !important; animation: jsfSpin 0.6s linear infinite !important; }
@keyframes jsfSpin { to { transform: rotate(360deg); } }

/* ═══ ERROR ═══ */
.jsf-form-wrapper .jsf-error { font-size: 0.78em !important; color: var(--jsf-error, #ef4444) !important; margin-top: 6px !important; font-weight: 600 !important; }

/* ═══ MESSAGES ═══ */
.jsf-form-wrapper .jsf-notice {
    padding: 18px 24px !important; border-radius: var(--jsf-radius) !important;
    font-size: 0.95em !important; font-weight: 600 !important; display: flex !important; align-items: center !important; gap: 10px !important;
    animation: jsfIn 0.4s ease !important;
}
.jsf-form-wrapper .jsf-notice-success { background: linear-gradient(135deg, #ecfdf5, #d1fae5) !important; color: #065f46 !important; border: 1px solid #6ee7b7 !important; }
.jsf-form-wrapper .jsf-notice-success::before { content: '✅' !important; font-size: 1.3em !important; }
.jsf-form-wrapper .jsf-notice-error { background: linear-gradient(135deg, #fef2f2, #fee2e2) !important; color: #991b1b !important; border: 1px solid #fca5a5 !important; }
.jsf-form-wrapper .jsf-notice-error::before { content: '⚠️' !important; font-size: 1.3em !important; }

.jsf-form-wrapper .jsf-conditional-wrap.jsf-hidden { display: none !important; }

/* ═══ PASSWORD STRENGTH ═══ */
.jsf-form-wrapper .jsf-password-strength { margin-top: 10px !important; }
.jsf-form-wrapper .jsf-strength-bar { height: 4px !important; background: var(--jsf-border) !important; border-radius: 2px !important; overflow: hidden !important; }
.jsf-form-wrapper .jsf-strength-fill { height: 100% !important; width: 0 !important; border-radius: 2px !important; transition: all 0.4s !important; }
.jsf-form-wrapper .jsf-strength-fill.weak { width: 25% !important; background: #ef4444 !important; }
.jsf-form-wrapper .jsf-strength-fill.fair { width: 50% !important; background: #f59e0b !important; }
.jsf-form-wrapper .jsf-strength-fill.good { width: 75% !important; background: #3b82f6 !important; }
.jsf-form-wrapper .jsf-strength-fill.strong { width: 100% !important; background: #22c55e !important; }
.jsf-form-wrapper .jsf-strength-label { font-size: 0.75em !important; color: var(--jsf-text-light) !important; margin-top: 4px !important; display: block !important; font-weight: 600 !important; }

/* ═══ Enhanced Responsive ═══ */
@media (max-width: 600px) {
    .jsf-form-wrapper { padding: 24px 16px !important; border-radius: 12px !important; }
    .jsf-form-wrapper .jsf-form-title { font-size: 1.4em !important; }
    .jsf-form-wrapper .jsf-btn { padding: 12px 24px !important; font-size: 0.9em !important; width: 100% !important; justify-content: center !important; }
    .jsf-form-wrapper .jsf-btn-prev { width: auto !important; }
    .jsf-form-wrapper .jsf-step-nav { flex-direction: column !important; gap: 10px !important; }
    .jsf-form-wrapper .jsf-progress-steps { gap: 4px !important; }
    .jsf-form-wrapper .jsf-step-label { font-size: 9px !important; }
    .jsf-form-wrapper .jsf-radio-label,
    .jsf-form-wrapper .jsf-checkbox-label { padding: 10px 12px !important; font-size: 0.88em !important; }
    .jsf-form-wrapper .jsf-layout-horizontal { flex-direction: column !important; }
    .jsf-form-wrapper .jsf-submit-wrap { flex-direction: column !important; }
    .jsf-form-wrapper .jsf-file-dropzone { padding: 24px 16px !important; }
    .jsf-form-wrapper .jsf-input { padding: 11px 14px !important; font-size: 16px !important; }
}
@media (max-width: 400px) {
    .jsf-form-wrapper { padding: 18px 14px !important; }
    .jsf-form-wrapper .jsf-form-title { font-size: 1.2em !important; }
    .jsf-form-wrapper .jsf-input { font-size: 16px !important; }
}

/* ══════════════════════════════════════════════
   THEME ENFORCEMENT — Nuclear overrides
   Ensures no WP theme can break form styling
   ══════════════════════════════════════════════ */
.jsf-form-wrapper,
.jsf-form-wrapper div,
.jsf-form-wrapper span,
.jsf-form-wrapper label,
.jsf-form-wrapper p,
.jsf-form-wrapper h1, .jsf-form-wrapper h2, .jsf-form-wrapper h3, .jsf-form-wrapper h4 {
    font-family: var(--jsf-font) !important;
    line-height: 1.6 !important;
}
.jsf-form-wrapper input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="submit"]),
.jsf-form-wrapper select,
.jsf-form-wrapper textarea {
    font-family: var(--jsf-font, 'Plus Jakarta Sans', sans-serif) !important;
    color: var(--jsf-text, #1e293b) !important;
    border-color: var(--jsf-border, #e2e8f0) !important;
    background-color: var(--jsf-surface, #f8fafc) !important;
    border-radius: var(--jsf-radius, 10px) !important;
    border-width: 2px !important;
    border-style: solid !important;
    box-shadow: none !important;
    outline: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: none !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 12px 16px !important;
    font-size: 0.95em !important;
    height: auto !important;
    min-height: 0 !important;
    line-height: 1.5 !important;
}
.jsf-form-wrapper select.jsf-select,
.jsf-form-wrapper .jsf-field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    background-size: 16px !important;
    padding-right: 44px !important;
    cursor: pointer !important;
}
.jsf-form-wrapper input:focus,
.jsf-form-wrapper select:focus,
.jsf-form-wrapper textarea:focus {
    border-color: var(--jsf-primary) !important;
    box-shadow: 0 0 0 4px rgba(99,102,241,0.1) !important;
    background-color: #fff !important;
}
/* Labels */
.jsf-form-wrapper .jsf-label {
    color: var(--jsf-text) !important;
    font-family: var(--jsf-font) !important;
}
/* Radio/Checkbox container borders use theme */
.jsf-form-wrapper .jsf-radio-label,
.jsf-form-wrapper .jsf-checkbox-label,
.jsf-form-wrapper .jsf-consent-label {
    border-color: var(--jsf-border) !important;
    background-color: var(--jsf-surface) !important;
    color: var(--jsf-text) !important;
}
/* Button — triple enforcement */
.jsf-form-wrapper .jsf-btn-primary,
.jsf-form-wrapper button.jsf-btn-primary,
.jsf-form-wrapper .jsf-btn-submit {
    font-family: var(--jsf-font, 'Plus Jakarta Sans', sans-serif) !important;
    background: var(--jsf-primary, #6366f1) !important;
    background-color: var(--jsf-primary, #6366f1) !important;
    color: #fff !important;
    border: none !important;
    padding: 13px 32px !important;
    border-radius: var(--jsf-radius, 10px) !important;
    font-weight: 700 !important;
    font-size: 0.95em !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: 0 4px 14px rgba(99,102,241,0.25) !important;
}
/* File upload uses theme */
.jsf-form-wrapper .jsf-file-dropzone {
    border-color: var(--jsf-border) !important;
    background-color: var(--jsf-surface) !important;
    color: var(--jsf-text-light) !important;
}
/* All inner elements respect parent field width */
.jsf-form-wrapper .jsf-field > div,
.jsf-form-wrapper .jsf-field .jsf-file-upload,
.jsf-form-wrapper .jsf-field .jsf-file-dropzone,
.jsf-form-wrapper .jsf-field .jsf-radio-group,
.jsf-form-wrapper .jsf-field .jsf-checkbox-group {
    width: 100% !important; max-width: 100% !important; box-sizing: border-box !important;
}
/* Force ALL form elements inside fields to be 100% width */
.jsf-form-wrapper .jsf-field input[type="text"],
.jsf-form-wrapper .jsf-field input[type="email"],
.jsf-form-wrapper .jsf-field input[type="tel"],
.jsf-form-wrapper .jsf-field input[type="url"],
.jsf-form-wrapper .jsf-field input[type="number"],
.jsf-form-wrapper .jsf-field input[type="password"],
.jsf-form-wrapper .jsf-field input[type="date"],
.jsf-form-wrapper .jsf-field input[type="time"],
.jsf-form-wrapper .jsf-field input[type="search"],
.jsf-form-wrapper .jsf-field input.jsf-input,
.jsf-form-wrapper .jsf-field select,
.jsf-form-wrapper .jsf-field select.jsf-select,
.jsf-form-wrapper .jsf-field textarea,
.jsf-form-wrapper .jsf-field textarea.jsf-textarea {
    width: 100% !important; max-width: 100% !important;
    box-sizing: border-box !important; display: block !important;
}

/* ═══ Transparent Container Mode ═══ */
.jsf-form-wrapper.jsf-no-container {
    background: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border: none !important;
}

/* ═══ Success Animation ═══ */
.jsf-success-anim { text-align: center !important; padding: 40px 20px !important; animation: jsfIn 0.5s ease !important; }
.jsf-success-circle { width: 80px !important; height: 80px !important; margin: 0 auto 20px !important; }
.jsf-checkmark { width: 80px !important; height: 80px !important; border-radius: 50% !important; display: block !important; stroke-width: 2 !important; stroke: var(--jsf-success, #22c55e) !important; stroke-miterlimit: 10 !important; }
.jsf-checkmark circle { stroke-dasharray: 166 !important; stroke-dashoffset: 166 !important; animation: jsfStroke 0.6s cubic-bezier(0.65,0,0.45,1) forwards !important; fill: none !important; stroke: var(--jsf-success, #22c55e) !important; }
.jsf-checkmark path { stroke-dasharray: 48 !important; stroke-dashoffset: 48 !important; animation: jsfStroke 0.3s cubic-bezier(0.65,0,0.45,1) 0.4s forwards !important; transform-origin: 50% 50% !important; fill: none !important; stroke: var(--jsf-success, #22c55e) !important; }
@keyframes jsfStroke { to { stroke-dashoffset: 0; } }
.jsf-success-text { font-size: 1.2em !important; font-weight: 700 !important; color: var(--jsf-text) !important; margin: 0 !important; animation: jsfField 0.4s ease 0.5s both !important; }
