.ncsgx-efb-form-wrap { max-width: 640px; margin: 0 auto; font-family: inherit; }
.ncsgx-efb-form { display: flex; flex-wrap: wrap; column-gap: 16px; }
.ncsgx-efb-field { margin-bottom: 16px; flex: 0 0 100%; max-width: 100%; }
.ncsgx-efb-field-half { flex: 1 1 calc(50% - 8px); max-width: calc(50% - 8px); }
.ncsgx-efb-field-third { flex: 1 1 calc(33.333% - 11px); max-width: calc(33.333% - 11px); }
.ncsgx-efb-field-quarter { flex: 1 1 calc(25% - 12px); max-width: calc(25% - 12px); }
.ncsgx-efb-field-custom { flex-grow: 1; }
@media (max-width: 480px) {
	.ncsgx-efb-field-half, .ncsgx-efb-field-third, .ncsgx-efb-field-quarter, .ncsgx-efb-field-custom {
		flex: 0 0 100% !important; max-width: 100% !important;
	}
}
.ncsgx-efb-hp, .ncsgx-efb-submit-row, .ncsgx-efb-form-message { flex: 0 0 100%; max-width: 100%; }
.ncsgx-efb-field label { display: block; font-weight: 600; margin-bottom: 4px; color: #1a1a4e; }
.ncsgx-efb-field .req { color: #c00; }
.ncsgx-efb-field input[type="text"],
.ncsgx-efb-field input[type="email"],
.ncsgx-efb-field input[type="number"],
.ncsgx-efb-field input[type="tel"],
.ncsgx-efb-field input[type="url"],
.ncsgx-efb-field input[type="date"],
.ncsgx-efb-field input[type="time"],
.ncsgx-efb-field input[type="password"],
.ncsgx-efb-field textarea,
.ncsgx-efb-field select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ccd6d6;
	border-radius: 4px;
	font-size: 14px;
}
.ncsgx-efb-field input:focus, .ncsgx-efb-field textarea:focus, .ncsgx-efb-field select:focus {
	outline: none;
	border-color: #00a5a8;
	box-shadow: 0 0 0 2px rgba(0,165,168,0.2);
}
.ncsgx-efb-inline { display: inline-flex; align-items: center; gap: 4px; margin-right: 14px; font-weight: 400; }
.ncsgx-efb-field.has-error input, .ncsgx-efb-field.has-error textarea, .ncsgx-efb-field.has-error select { border-color: #c00; }
.ncsgx-efb-field-error { color: #c00; font-size: 12px; display: block; margin-top: 4px; }
.ncsgx-efb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.ncsgx-efb-submit-row { display: flex; align-items: center; gap: 10px; }
.ncsgx-efb-submit-btn {
	background: #00a5a8;
	color: #fff;
	border: none;
	padding: 12px 28px;
	border-radius: 4px;
	font-weight: 600;
	cursor: pointer;
}
.ncsgx-efb-submit-btn:hover { background: #1a1a4e; }
.ncsgx-efb-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.ncsgx-efb-spinner {
	width: 18px; height: 18px; border: 2px solid #ccd6d6; border-top-color: #00a5a8;
	border-radius: 50%; animation: ncsgx-efb-spin 0.7s linear infinite;
}
@keyframes ncsgx-efb-spin { to { transform: rotate(360deg); } }

.ncsgx-efb-form-message { margin-top: 14px; font-weight: 600; }
.ncsgx-efb-form-message.success { color: #00a5a8; }
.ncsgx-efb-form-message.error { color: #c00; }

/* ---- Post-submit confirmation panel ---- */
.ncsgx-efb-confirmation {
	text-align: center;
	padding: 36px 24px;
	border: 1px solid #d9f0ef;
	background: #f3fbfb;
	border-radius: 8px;
}
.ncsgx-efb-confirmation-icon {
	width: 48px; height: 48px; line-height: 48px;
	margin: 0 auto 14px; border-radius: 50%;
	background: #00a5a8; color: #fff;
	font-size: 22px; font-weight: 700;
}
.ncsgx-efb-confirmation-heading { margin: 0 0 8px; font-size: 20px; color: #1a1a4e; }
.ncsgx-efb-confirmation-message { color: #444; line-height: 1.6; }
.ncsgx-efb-confirmation-message p { margin: 0 0 8px; }
.ncsgx-efb-confirmation-message p:last-child { margin-bottom: 0; }

/* ---- Advanced fields: rating, signature, image, slider, datetime ---- */

/* Rating: pure-CSS star widget (radios visually hidden, labels flipped via row-reverse) */
.ncsgx-efb-rating {
	display: inline-flex !important;
	flex-direction: row-reverse !important;
	justify-content: flex-end;
	align-items: center;
	gap: 2px;
}
.ncsgx-efb-rating input {
	position: absolute !important;
	opacity: 0 !important;
	width: 0 !important;
	height: 0 !important;
	pointer-events: none;
}
.ncsgx-efb-rating label {
	display: inline-block !important;
	font-size: 30px;
	line-height: 1;
	color: #d5dcdc;
	cursor: pointer;
	transition: color 0.15s ease;
}
.ncsgx-efb-rating label:hover,
.ncsgx-efb-rating label:hover ~ label,
.ncsgx-efb-rating input:checked ~ label {
	color: #C96A2B;
}
.ncsgx-efb-field.has-error .ncsgx-efb-rating label { color: #f2c0c0; }

/* Slider */
.ncsgx-efb-slider-wrap { display: flex; align-items: center; gap: 12px; }
.ncsgx-efb-slider { flex: 1; accent-color: #00a5a8; }
.ncsgx-efb-slider-value {
	min-width: 34px;
	text-align: center;
	font-weight: 600;
	color: #1a1a4e;
	background: #f2f7f7;
	border-radius: 4px;
	padding: 2px 8px;
}

/* Signature: upload-only */
.ncsgx-efb-signature-wrap { display: flex; flex-direction: column; gap: 8px; }
.ncsgx-efb-signature-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ncsgx-efb-signature-upload-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: #5c6666;
	cursor: pointer;
}
.ncsgx-efb-signature-upload {
	font-size: 12px;
	max-width: 220px;
}
.ncsgx-efb-signature-preview {
	display: none;
	max-width: 220px;
	border: 1px solid #d7dcdc;
	border-radius: 4px;
	padding: 4px;
}
.ncsgx-efb-signature-preview.has-image { display: block; }
.ncsgx-efb-signature-preview img { display: block; max-width: 100%; height: auto; border-radius: 2px; }

/* Image upload preview */
.ncsgx-efb-image-wrap { display: flex; flex-direction: column; gap: 8px; }
.ncsgx-efb-image-preview {
	display: none;
	max-width: 220px;
	border: 1px solid #d7dcdc;
	border-radius: 4px;
	padding: 4px;
}
.ncsgx-efb-image-preview.has-image { display: block; }
.ncsgx-efb-image-preview img { display: block; max-width: 100%; height: auto; border-radius: 2px; }

/* Datetime-local: keep consistent with other text inputs */
input[type="datetime-local"].ncsgx-efb-input { font-family: inherit; }
