.tf-form-wrapper { max-width: 640px; }
.tf-form { display: flex; flex-direction: column; gap: 18px; }

.tf-field { display: flex; flex-direction: column; gap: 6px; }
.tf-label { font-weight: 600; }
.tf-required { color: #d63638; }

.tf-input {
	padding: 10px 12px;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	font-size: 15px;
	width: 100%;
	box-sizing: border-box;
}
.tf-input:focus { outline: none; border-color: #2271b1; box-shadow: 0 0 0 1px #2271b1; }

.tf-choice { display: flex; align-items: center; gap: 6px; font-weight: 400; }

.tf-field-desc, .tf-field-note { font-size: 13px; color: #666; margin: 0; }

.tf-file-preview {
	max-width: 200px;
	max-height: 200px;
	margin-top: 8px;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	display: block;
}

.tf-field-divider .tf-divider-title { margin-bottom: 4px; }
.tf-field-divider hr { border: none; border-top: 1px solid #dcdcde; margin: 8px 0; }

.tf-rating { display: flex; gap: 4px; }
.tf-rating input { display: none; }
.tf-star { font-size: 22px; color: #ccc; cursor: pointer; }
.tf-rating input:checked ~ .tf-star,
.tf-rating label:has(input:checked) .tf-star { color: #dba617; }

.tf-payment-field { border: 1px solid #dcdcde; border-radius: 4px; padding: 12px; }
.tf-payment-amount { font-size: 18px; font-weight: 700; margin: 0 0 10px; }
.tf-card-element { padding: 10px; border: 1px solid #c3c4c7; border-radius: 4px; background: #fff; }

.tf-coupon-row { display: flex; gap: 8px; margin: 10px 0; }
.tf-coupon-input { flex: 1; padding: 8px 10px; border: 1px solid #c3c4c7; border-radius: 4px; }
.tf-coupon-message { font-size: 13px; margin: 0 0 8px; }
.tf-coupon-message.tf-coupon-success { color: #007017; }
.tf-coupon-message.tf-coupon-error { color: #b32d2e; }

.tf-form-buttons { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.tf-save-continue-button {
	background: transparent;
	color: #2271b1;
	border: 1px solid #2271b1;
	padding: 12px 20px;
	font-size: 14px;
	border-radius: 4px;
	cursor: pointer;
}
.tf-save-continue-button:hover { background: #f0f6fc; }
.tf-save-continue-message { display: none; font-size: 13px; margin-top: 10px; padding: 10px 12px; background: #f0f6fc; border: 1px solid #c5d9ed; border-radius: 4px; word-break: break-all; }
.tf-save-continue-message.tf-has-message { display: block; }

.tf-submit-button {
	background: #2271b1;
	color: #fff;
	border: none;
	padding: 12px 24px;
	font-size: 15px;
	border-radius: 4px;
	cursor: pointer;
	align-self: flex-start;
}
.tf-submit-button:hover { background: #135e96; }
.tf-submit-button:disabled { opacity: .6; cursor: not-allowed; }

.tf-form-messages { display: none; }
.tf-form-messages.tf-has-message {
	display: block;
	padding: 12px 14px;
	border-radius: 4px;
}
.tf-form-messages.tf-success { background: #edfaef; color: #007017; border: 1px solid #b8e6bd; }
.tf-form-messages.tf-error { background: #fcf0f1; color: #b32d2e; border: 1px solid #f5c2c7; }

.tf-field-error { color: #d63638; font-size: 13px; margin: 0; }
.tf-field.tf-has-error .tf-input { border-color: #d63638; }

.tf-field[data-tf-hidden="true"] { display: none !important; }
