.formsaz-wrapper {
	--formsaz-primary: #2563eb;
	direction: rtl;
	text-align: right;
	font-family: inherit;
	max-width: 100%;
	box-sizing: border-box;
}
.formsaz-wrapper * { box-sizing: border-box; }

.formsaz-error { color: #dc2626; }

.formsaz-message {
	padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; font-size: 14px;
}
.formsaz-message.success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.formsaz-message.error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

.formsaz-steps-indicator { display: flex; gap: 8px; margin-bottom: 24px; flex-wrap: wrap; }
.formsaz-step-dot { display: flex; align-items: center; gap: 6px; opacity: .45; font-size: 13px; }
.formsaz-step-dot.active, .formsaz-step-dot.completed { opacity: 1; }
.formsaz-step-number {
	width: 26px; height: 26px; border-radius: 50%; background: #e5e7eb; color: #374151;
	display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700;
}
.formsaz-step-dot.active .formsaz-step-number { background: var(--formsaz-primary); color: #fff; }
.formsaz-step-dot.completed .formsaz-step-number { background: #16a34a; color: #fff; }

.formsaz-fields-grid { display: flex; flex-wrap: wrap; gap: 14px 12px; }

.formsaz-field { width: var(--w, 100%); display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 640px) { .formsaz-field { width: 100% !important; } }

.formsaz-field label { font-size: 14px; font-weight: 600; color: #1f2937; }
.formsaz-required { color: #dc2626; margin-right: 2px; }
.formsaz-help { font-size: 12px; color: #6b7280; margin: 0; }

.formsaz-field input[type=text],
.formsaz-field input[type=email],
.formsaz-field input[type=tel],
.formsaz-field input[type=number],
.formsaz-field input[type=file],
.formsaz-field textarea,
.formsaz-field select {
	width: 100%; padding: 10px 14px; border: 1px solid #d1d5db; border-radius: 10px; font-size: 14px;
	transition: border-color .15s, box-shadow .15s; background: #fff; color: #111827;
}
.formsaz-field input:focus, .formsaz-field textarea:focus, .formsaz-field select:focus {
	outline: none; border-color: var(--formsaz-primary); box-shadow: 0 0 0 3px rgba(37,99,235,.15);
}
.formsaz-field textarea { resize: vertical; min-height: 90px; }

.formsaz-choice-group { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.formsaz-choice { display: flex; align-items: center; gap: 6px; font-size: 14px; cursor: pointer; }
.formsaz-single-checkbox { font-weight: 600; }

.formsaz-field-divider hr { border: none; border-top: 1px solid #e5e7eb; margin: 6px 0; }

.formsaz-mobile-verify-group { display: flex; flex-direction: column; gap: 8px; }
.formsaz-mobile-row, .formsaz-otp-row { display: flex; gap: 8px; }
.formsaz-mobile-row input, .formsaz-otp-row input { flex: 1; }
.formsaz-otp-status { font-size: 12px; align-self: center; }
.formsaz-otp-status.ok { color: #16a34a; }
.formsaz-otp-status.err { color: #dc2626; }

.formsaz-step-nav { display: flex; justify-content: space-between; margin-top: 20px; }

.formsaz-btn {
	padding: 10px 22px; border-radius: 10px; border: 1px solid #d1d5db; background: #fff; cursor: pointer; font-size: 14px;
}
.formsaz-btn-prev { margin-inline-end: auto; }
.formsaz-btn-next, .formsaz-btn-submit {
	background: var(--formsaz-primary); color: #fff; border-color: var(--formsaz-primary); margin-inline-start: auto;
	font-weight: 600;
}
.formsaz-btn-next:hover, .formsaz-btn-submit:hover, .formsaz-send-otp:hover, .formsaz-verify-otp:hover { filter: brightness(0.92); }
.formsaz-send-otp, .formsaz-verify-otp { background: #f3f4f6; white-space: nowrap; }

/* تقویم شمسی سفارشی */
.formsaz-jalali-calendar {
	position: absolute; z-index: 9999; background: #fff; border: 1px solid #e5e7eb; border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0,0,0,.12); padding: 12px; width: 280px; direction: rtl;
}
.formsaz-jalali-cal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.formsaz-jalali-cal-header button { border: none; background: #f3f4f6; border-radius: 6px; width: 28px; height: 28px; cursor: pointer; }
.formsaz-jalali-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.formsaz-jalali-cal-grid span { font-size: 11px; color: #9ca3af; padding: 4px 0; }
.formsaz-jalali-cal-grid button {
	border: none; background: none; padding: 6px 0; border-radius: 6px; cursor: pointer; font-size: 13px;
}
.formsaz-jalali-cal-grid button:hover { background: #eef2ff; }
.formsaz-jalali-cal-grid button.today { border: 1px solid var(--formsaz-primary); }
.formsaz-jalali-cal-grid button.selected { background: var(--formsaz-primary); color: #fff; }

.formsaz-loading { opacity: .6; pointer-events: none; }

/* پاپ‌آپ پیام موفقیت ارسال فرم */
.formsaz-success-modal {
	position: fixed; inset: 0; z-index: 100000;
	display: flex; align-items: center; justify-content: center;
}
.formsaz-success-modal-overlay {
	position: absolute; inset: 0; background: rgba(17, 24, 39, .55);
}
.formsaz-success-modal-box {
	position: relative; z-index: 1; background: #fff; border-radius: 16px;
	padding: 32px 28px 28px; width: min(90%, 380px); text-align: center;
	box-shadow: 0 20px 50px rgba(0,0,0,.25);
	animation: formsaz-modal-in .18s ease-out;
}
@keyframes formsaz-modal-in {
	from { opacity: 0; transform: translateY(10px) scale(.97); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}
.formsaz-success-modal-close {
	position: absolute; top: 10px; left: 10px; width: 30px; height: 30px;
	border: none; background: #f3f4f6; border-radius: 50%; font-size: 18px;
	line-height: 1; cursor: pointer; color: #6b7280;
}
.formsaz-success-modal-close:hover { background: #e5e7eb; color: #111827; }
.formsaz-success-modal-icon {
	width: 56px; height: 56px; margin: 0 auto 14px; border-radius: 50%;
	background: #ecfdf5; color: #059669; display: flex; align-items: center;
	justify-content: center; font-size: 28px; font-weight: bold;
}
.formsaz-success-modal-text { font-size: 15px; color: #1f2937; line-height: 1.8; }
