/* SmartForm Pro — Front-end Styles */
.sfp-form-wrap { max-width: 680px; margin: 0 auto; }
.sfp-form-title { font-size: 1.5rem; font-weight: 600; margin-bottom: 1.5rem; color: #111827; }
.sfp-form { display: block; }
.sfp-fields-wrap { display: flex; flex-wrap: wrap; gap: 16px; }
.sfp-field-wrap { flex: 1 1 100%; display: flex; flex-direction: column; gap: 6px; }
.sfp-label { font-size: 14px; font-weight: 500; color: #374151; }
.sfp-required { color: #ef4444; margin-left: 2px; }
.sfp-input {
    width: 100%; padding: 10px 14px; font-size: 15px; color: #111827;
    background: #fff; border: 1.5px solid #d1d5db; border-radius: 6px;
    transition: border-color .15s, box-shadow .15s; box-sizing: border-box;
}
.sfp-input:focus { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.12); outline: none; }
.sfp-textarea { resize: vertical; min-height: 100px; }
.sfp-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.sfp-option-label { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #374151; cursor: pointer; padding: 4px 0; }
.sfp-option-label input { width: 16px; height: 16px; cursor: pointer; accent-color: #2563eb; }
.sfp-field-type-radio, .sfp-field-type-checkbox { gap: 4px; }
.sfp-rating { display: flex; gap: 4px; align-items: center; }
.sfp-rating-star { background: none; border: none; font-size: 28px; color: #d1d5db; cursor: pointer; padding: 0; line-height: 1; transition: color .1s, transform .1s; }
.sfp-rating-star:hover, .sfp-rating-star.active { color: #f59e0b; transform: scale(1.1); }
.sfp-file { padding: 8px; cursor: pointer; }
.sfp-field-hint { font-size: 12px; color: #6b7280; margin-top: 3px; }
.sfp-field-error { font-size: 12px; color: #ef4444; min-height: 16px; display: none; }
.sfp-field-error.visible { display: block; }
.sfp-field-submit { flex: 1 1 100%; }
.sfp-btn-submit {
    display: inline-block; padding: 12px 32px; font-size: 15px; font-weight: 600;
    background: #2563eb; color: #fff; border: none; border-radius: 6px; cursor: pointer;
    transition: background .15s, transform .1s;
}
.sfp-btn-submit:hover { background: #1d4ed8; }
.sfp-btn-submit:active { transform: scale(.98); }
.sfp-btn-submit:disabled { background: #93c5fd; cursor: not-allowed; }
.sfp-btn-submit.loading::after { content: ' ●●●'; animation: sfp-dots .8s infinite; }
@keyframes sfp-dots { 0%,100%{opacity:1} 50%{opacity:.3} }
.sfp-form-messages { margin-top: 12px; padding: 12px 16px; border-radius: 6px; display: none; font-size: 14px; }
.sfp-form-messages.success { display: block; background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.sfp-form-messages.error   { display: block; background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.sfp-editor-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:40px; background:#f9fafb; border:2px dashed #d1d5db; border-radius:8px; color:#6b7280; text-align:center; }
.sfp-editor-placeholder .dashicons { font-size:32px; width:32px; height:32px; }
