.wsc-booking-widget {
	border: 1px solid var(--wsc-line, #e2e2e2);
	border-radius: 8px;
	padding: 1.25em;
	margin-bottom: 1.5em;
	max-width: 460px;
	background: var(--wsc-surface, #fff);
}

.wsc-booking-widget input[type="date"] {
	padding: 0.5em;
	border: 1px solid var(--wsc-line, #e2e2e2);
	border-radius: 6px;
}

/* -------------------------------------------------------------------
   Always-visible month calendar
------------------------------------------------------------------- */

.wsc-booking-calendar {
	border: 1px solid var(--wsc-line, #e2e2e2);
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 1em;
}

.wsc-booking-calendar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #7a7f85;
	color: #fff;
	padding: 0.75em 1em;
}

.wsc-booking-cal-title {
	font-weight: 700;
	letter-spacing: 0.03em;
	font-size: 0.95rem;
}

.wsc-booking-cal-nav {
	background: transparent;
	border: none;
	color: #fff;
	font-size: 1.2rem;
	cursor: pointer;
	line-height: 1;
	padding: 0.2em 0.5em;
}

.wsc-booking-cal-nav:hover {
	opacity: 0.75;
}

.wsc-booking-calendar-table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.wsc-booking-calendar-table th {
	padding: 0.6em 0;
	text-align: center;
	font-weight: 600;
	color: var(--wsc-muted, #888);
	font-size: 0.85rem;
	border-bottom: 1px solid var(--wsc-line, #eee);
}

.wsc-booking-calendar-table td {
	text-align: center;
	padding: 0.9em 0;
	border: 1px solid var(--wsc-line, #f0f0f0);
	font-size: 0.95rem;
	color: var(--wsc-muted, #999);
}

.wsc-booking-cal-muted {
	color: #ccc;
	background: #fafafa;
}

.wsc-booking-cal-day.is-available {
	color: var(--wsc-ink, #222);
	cursor: pointer;
	font-weight: 600;
}

.wsc-booking-cal-day.is-available:hover {
	background: var(--wsc-accent-tint, #e6f1ea);
}

.wsc-booking-cal-day.is-selected {
	background: var(--wsc-accent, #1f6f43);
	color: #fff !important;
}

.wsc-booking-cal-day.is-today {
	box-shadow: inset 0 0 0 1px var(--wsc-accent, #1f6f43);
}

.wsc-booking-cal-day.is-unavailable {
	background: #fafafa;
	color: #ccc;
}

.wsc-booking-calendar-panel {
	margin-top: 0.5em;
}

.wsc-booking-selected-summary {
	font-weight: 600;
	margin: 0.5em 0;
}

/* -------------------------------------------------------------------
   Time slots (individual slot mode)
------------------------------------------------------------------- */

.wsc-booking-slots { margin: 1em 0; display: flex; flex-wrap: wrap; gap: 0.5em; }
.wsc-booking-hint { color: var(--wsc-muted, #666); font-size: 0.9em; }
.wsc-booking-slot-button {
	border: 1px solid var(--wsc-accent, #1f6f43);
	background: #fff;
	color: var(--wsc-accent, #1f6f43);
	padding: 0.4em 0.8em;
	border-radius: 4px;
	cursor: pointer;
	font-size: 0.9em;
}
.wsc-booking-slot-button.is-selected { background: var(--wsc-accent, #1f6f43); color: #fff; }
.wsc-booking-slot-button:disabled { opacity: 0.4; cursor: not-allowed; border-color: #ccc; color: #999; }

/* -------------------------------------------------------------------
   Submit / messages
------------------------------------------------------------------- */

.wsc-booking-submit {
	background: #7a5fd8;
	color: #fff;
	border: none;
	padding: 0.75em 1.5em;
	border-radius: 6px;
	cursor: pointer;
	font-weight: 700;
	width: 100%;
	margin-top: 0.5em;
}
.wsc-booking-submit:disabled { opacity: 0.5; cursor: not-allowed; }
.wsc-booking-message { display: block; margin-top: 0.5em; font-size: 0.9em; }

.wsc-booking-confirmation-notice {
	margin-top: 1em;
	padding: 0.75em 1em;
	background: var(--wsc-secondary-tint, #faf0dd);
	border-radius: 6px;
	font-size: 0.85rem;
}

/* -------------------------------------------------------------------
   Admin: approve/reject actions
------------------------------------------------------------------- */

.wsc-booking-confirmation-actions { margin-top: 0.75em; }

/* -------------------------------------------------------------------
   Customer cancellation
------------------------------------------------------------------- */

.wsc-booking-cancel-section {
	margin-top: 1.5em;
	padding-top: 1em;
	border-top: 1px solid var(--wsc-line, #eee);
}

.wsc-booking-cancel-button {
	background: #fff;
	color: #b3312d;
	border: 1px solid #b3312d;
	padding: 0.6em 1.2em;
	border-radius: 6px;
	cursor: pointer;
}

.wsc-booking-cancel-button:hover {
	background: #b3312d;
	color: #fff;
}

@media (max-width: 480px) {
	.wsc-booking-widget { max-width: 100%; }
}
