.fto-order-form { max-width: 640px; }
.fto-order-form p { margin-bottom: 1em; }
.fto-order-form label { font-weight: 600; }
.fto-order-form input[type="text"],
.fto-order-form input[type="email"],
.fto-order-form input[type="tel"],
.fto-order-form input[type="number"],
.fto-order-form select,
.fto-order-form textarea {
	width: 100%;
	max-width: 400px;
	padding: 0.5em;
	box-sizing: border-box;
}
.fto-req { color: #c00; }
.fto-help { font-size: 0.9em; opacity: 0.8; }
.fto-hp { position: absolute; left: -9999px; }

.fto-items { width: 100%; border-collapse: collapse; margin-bottom: 1em; }
.fto-items th, .fto-items td { text-align: left; padding: 0.4em 0.5em; border-bottom: 1px solid #ddd; }
.fto-items select, .fto-items input[type="number"] { max-width: none; width: auto; }
.fto-remove-item {
	background: none; border: 1px solid #c00; color: #c00; border-radius: 4px;
	width: 28px; height: 28px; cursor: pointer; font-size: 1.1em; line-height: 1;
}

.fto-button, .fto-button-secondary {
	display: inline-block; padding: 0.6em 1.2em; border-radius: 4px; border: 1px solid #2271b1;
	cursor: pointer; font-size: 1em; font-family: inherit; text-decoration: none;
}
.fto-button { background: #2271b1; color: #fff; }
.fto-button-secondary { background: #fff; color: #2271b1; }
.fto-inline-form { display: inline-block; margin: 0; }

.fto-review-actions { display: flex; align-items: center; gap: 1em; margin-top: 1.5em; }

.fto-notice, .fto-success, .fto-errors { padding: 1em; border-radius: 4px; margin-bottom: 1em; }
.fto-notice { background: #f0f0f1; }
.fto-success { background: #edfaef; border: 1px solid #46b450; }
.fto-errors { background: #fbeaea; border: 1px solid #c00; }
.fto-errors ul { margin: 0; padding-left: 1.2em; }
.fto-duplicate-warning { background: #fff8e5; border: 1px solid #dba617; color: #5c4400; }
.fto-duplicate-warning a { color: #5c4400; }

.fto-order-summary { margin-bottom: 1.5em; }
.fto-total { font-size: 1.1em; }

.fto-payment { margin-top: 2em; padding-top: 1.5em; border-top: 1px solid #ddd; }
.fto-payment-instructions { margin-top: 1.5em; }
.fto-payment-choice { font-size: 1.05em; }

.fto-payment-options { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8em; margin: 1em 0; }

.fto-venmo-button {
	display: inline-flex; align-items: center; gap: 0.6em;
	background: #008CFF; color: #fff; border: none; text-decoration: none;
	padding: 0.8em 1.4em; border-radius: 8px; font-weight: 600; font-size: 1.05em;
	font-family: inherit; cursor: pointer;
}
.fto-venmo-button:hover { background: #0074d1; color: #fff; }
.fto-venmo-mark {
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.6em; height: 1.6em; border-radius: 50%;
	background: #fff; color: #008CFF; font-weight: 800; font-family: Georgia, serif; font-size: 1.1em;
}
.fto-venmo-button.fto-venmo-mock {
	background: repeating-linear-gradient(135deg, #008CFF, #008CFF 10px, #0074d1 10px, #0074d1 20px);
	cursor: default; opacity: 0.85;
}
.fto-payment-selected { outline: 3px solid #2a7a2a; outline-offset: 2px; }
