/* UChef Class Booking — frontend calendar */

/* Hide WooCommerce's default quantity + Add to Cart on bookable products.
   This stylesheet only loads on bookable single-product pages, so these rules
   are already scoped to them. Booking goes through the calendar's own form
   below; the server also rejects any default-form add as a fallback. */
form.cart:not(.uchef-add-to-cart-form),
.wp-block-woocommerce-add-to-cart-form,
.wc-block-add-to-cart-form {
	display: none !important;
}

.uchef-booking {
	margin: 0 0 1.5em;
	max-width: 480px;
}

.uchef-calendar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
}

.uchef-month-label {
	font-weight: 700;
	font-size: 1.1em;
}

/* !important guards against themes that force white button text/background.
   Shared by the calendar month nav and the seat-quantity stepper. */
.uchef-nav,
.uchef-stepper button {
	align-items: center;
	background: #fff !important;
	border: 1px solid #ccc !important;
	border-radius: 4px;
	box-shadow: none !important;
	color: #333 !important;
	cursor: pointer;
	display: inline-flex;
	font-size: 1.4em;
	font-weight: 700;
	justify-content: center;
	line-height: 1;
	min-height: 36px;
	min-width: 40px;
	padding: 2px 10px;
	text-align: center;
	text-shadow: none !important;
}

.uchef-nav:hover,
.uchef-nav:focus,
.uchef-stepper button:hover,
.uchef-stepper button:focus {
	background: #f0f0f0 !important;
	color: #000 !important;
}

.uchef-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 3px;
}

.uchef-cell {
	background: #f2f2f2;
	border-radius: 4px;
	color: #999;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-size: 0.8em;
	min-height: 52px;
	padding: 4px 2px;
	text-align: center;
}

.uchef-cell-weekday {
	background: none;
	color: inherit;
	font-weight: 700;
	min-height: auto;
}

.uchef-cell-empty {
	background: none;
}

.uchef-cell-day {
	font-weight: 700;
	font-size: 1.15em;
}

.uchef-cell-note {
	font-size: 0.85em;
	line-height: 1.2;
}

.uchef-cell-green {
	background: #dff5e1;
	color: #1e7a2e;
}

.uchef-cell-yellow {
	background: #fdf0d5;
	color: #9a6700;
}

.uchef-cell-red {
	background: #fbe3e4;
	color: #b32d2e;
}

.uchef-cell-past {
	background: #e3edf9;
	color: #2b5c9b;
	cursor: default;
}

.uchef-cell-clickable {
	cursor: pointer;
}

.uchef-cell-clickable:hover,
.uchef-cell-clickable:focus {
	outline: 2px solid #333;
	outline-offset: 1px;
}

.uchef-cell-selected {
	outline: 2px solid #111;
	outline-offset: 1px;
	font-weight: 700;
}

.uchef-legend {
	display: flex;
	gap: 14px;
	font-size: 0.8em;
	margin: 8px 0 14px;
}

.uchef-legend-item {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.uchef-dot {
	border-radius: 50%;
	display: inline-block;
	height: 10px;
	width: 10px;
}

.uchef-dot-green { background: #4caf50; }
.uchef-dot-yellow { background: #f0ad00; }
.uchef-dot-red { background: #d63638; }
.uchef-dot-blue { background: #3a6fb0; }

.uchef-slot-picker,
.uchef-quantity-picker {
	margin: 12px 0;
}

.uchef-slot-picker label,
.uchef-quantity-picker label {
	display: block;
	font-weight: 700;
	margin-bottom: 4px;
}

.uchef-slot-picker select {
	max-width: 100%;
}

.uchef-stepper {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.uchef-stepper input {
	text-align: center;
	width: 64px;
}

.uchef-seats-note {
	color: #666;
	font-size: 0.85em;
	margin-left: 10px;
}

.uchef-tier-picker {
	margin: 12px 0;
}

.uchef-tier-picker > label {
	display: block;
	font-weight: 700;
	margin-bottom: 6px;
}

.uchef-tier-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 8px;
}

.uchef-tier-label {
	flex: 1;
}

.uchef-addons {
	margin: 12px 0;
}

.uchef-addons > label {
	display: block;
	font-weight: 700;
	margin-bottom: 6px;
}

.uchef-addon-item {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 6px;
	cursor: pointer;
}

.uchef-order-total {
	font-weight: 700;
	margin: 10px 0;
}

.uchef-add-to-cart-form {
	margin-top: 10px;
}

.uchef-error {
	color: #b32d2e;
}

.uchef-calendar-loading {
	color: #666;
	font-style: italic;
	padding: 12px 0;
}
