.pb-booking-widget {
	--pb-primary-color: #0073e6;
	--pb-border-color: #e5e7eb;
	--pb-avail-color: #f3f4f6;
	--pb-sel-color: #10b981;
	--pb-book-color: #ef4444;
	font-family: sans-serif;
	color: #374151;
}

.pb-steps-nav {
	display: flex;
	margin-bottom: 20px;
	border-bottom: 2px solid var(--pb-border-color);
}
.pb-step-item {
	flex: 1;
	text-align: center;
	padding: 10px;
	color: #9ca3af;
}
.pb-step-item.active {
	color: var(--pb-primary-color);
	border-bottom: 2px solid var(--pb-primary-color);
	margin-bottom: -2px;
	font-weight: bold;
}

.pb-step-content {
	display: none;
}
.pb-step-content.active {
	display: block;
}

.pb-date-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 15px;
}

.pb-btn {
	padding: 8px 16px;
	border: 1px solid var(--pb-border-color);
	background: #fff;
	cursor: pointer;
	border-radius: 4px;
}
.pb-btn-primary {
	background: var(--pb-primary-color);
	color: #fff;
	border: none;
}
.pb-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.pb-legend {
	display: flex;
	gap: 15px;
	margin-bottom: 15px;
	font-size: 14px;
}
.pb-leg-item {
	display: flex;
	align-items: center;
	gap: 5px;
}
.pb-box {
	width: 16px;
	height: 16px;
	border-radius: 3px;
	display: inline-block;
}
.pb-box.avail { background: var(--pb-avail-color); border: 1px solid #ccc; }
.pb-box.sel { background: var(--pb-sel-color); }
.pb-box.book { background: var(--pb-book-color); }

.pb-grid-container {
	border: 1px solid var(--pb-border-color);
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 20px;
}
.pb-grid-header {
	display: flex;
	background: #f9fafb;
	border-bottom: 1px solid var(--pb-border-color);
	font-weight: bold;
}
.pb-col-time, .pb-col-court {
	flex: 1;
	padding: 10px;
	text-align: center;
	border-right: 1px solid var(--pb-border-color);
}
.pb-grid-header > div:last-child { border-right: none; }

.pb-grid-row {
	display: flex;
	border-bottom: 1px solid var(--pb-border-color);
}
.pb-grid-row:last-child { border-bottom: none; }

.pb-slot {
	flex: 1;
	padding: 15px 10px;
	text-align: center;
	border-right: 1px solid var(--pb-border-color);
	cursor: pointer;
	background: var(--pb-avail-color);
	transition: 0.2s;
}
.pb-slot:last-child { border-right: none; }
.pb-slot.booked { background: var(--pb-book-color); cursor: not-allowed; color: #fff; }
.pb-slot.selected { background: var(--pb-sel-color); color: #fff; }
.pb-col-time { background: #fff; cursor: default; }

.pb-summary-panel {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 15px;
	background: #f9fafb;
	border-radius: 8px;
	font-weight: bold;
}

.pb-input {
	width: 100%;
	padding: 10px;
	margin-bottom: 15px;
	border: 1px solid var(--pb-border-color);
	border-radius: 4px;
}
.pb-nav-btns {
	display: flex;
	justify-content: space-between;
	margin-top: 20px;
}
