.cwb-app {
	background: #0b0b0b;
	color: #fff;
	padding: 30px;
	border-radius: 8px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
.cwb-title { font-size: 32px; font-weight: 700; margin-bottom: 5px; }
.cwb-subtitle { color: #ccc; margin-bottom: 20px; }
.cwb-filters { display: flex; gap: 20px; margin-bottom: 25px; flex-wrap: wrap; }
.cwb-field { margin-bottom: 14px; }
.cwb-field label { display: block; font-size: 13px; color: #ccc; margin-bottom: 5px; }
.cwb-app select, .cwb-app input[type="text"], .cwb-app input[type="email"], .cwb-app textarea {
	background: #000;
	border: 1px solid #555;
	color: #fff;
	padding: 10px 12px;
	border-radius: 4px;
	width: 100%;
	box-sizing: border-box;
}
.cwb-app textarea { min-height: 70px; }

.cwb-columns { display: flex; gap: 30px; flex-wrap: wrap; }
.cwb-col-calendar { flex: 1; min-width: 300px; }
.cwb-col-slots { flex: 1; min-width: 260px; }
.cwb-col-summary { flex: 0 0 280px; }
.cwb-col-fields { flex: 1; min-width: 320px; }

.cwb-calendar-header { display:flex; align-items:center; justify-content:space-between; margin-bottom: 10px; font-weight:600; }
.cwb-calendar-header button { background:none; border:none; color:#fff; font-size:18px; cursor:pointer; }
.cwb-weekdays { display:grid; grid-template-columns: repeat(7,1fr); text-align:center; color:#999; font-size:13px; margin-bottom:5px; }
.cwb-days { display:grid; grid-template-columns: repeat(7,1fr); gap:4px; }
.cwb-day {
	position: relative;
	text-align:center;
	padding: 10px 0;
	border-radius: 4px;
	cursor: pointer;
	color: #ccc;
}
.cwb-day.disabled { color: #444; cursor: not-allowed; }
.cwb-day.has-availability::after {
	content: '';
	width: 4px; height:4px; border-radius:50%;
	background: #ccc;
	display:block;
	margin: 3px auto 0;
}
.cwb-day.selected { background: #4fe0f2; color:#000; font-weight:700; }
.cwb-day:not(.disabled):hover { background:#333; }
.cwb-day.empty { visibility:hidden; }

.cwb-slots { display:grid; grid-template-columns: 1fr 1fr; gap:10px; }
.cwb-slot-btn {
	border: 1px solid #555;
	background: #000;
	color:#fff;
	padding: 12px;
	border-radius: 4px;
	cursor:pointer;
	text-align:center;
	font-weight: 600;
}
.cwb-slot-btn.selected { background:#4fe0f2; color:#000; border-color:#4fe0f2; }
.cwb-slot-btn:hover { border-color:#4fe0f2; }
.cwb-muted { color:#888; }

.cwb-col-summary h3 { margin-top:0; }
.cwb-payment-options label { display:block; margin-bottom:8px; }

.cwb-btn {
	display:block;
	width:100%;
	padding: 14px;
	border-radius: 4px;
	border: none;
	font-weight: 700;
	cursor: pointer;
	margin-top: 10px;
	font-size: 15px;
}
.cwb-btn-primary { background:#4fe0f2; color:#000; }
.cwb-btn-primary:hover { background:#3bc8db; }
.cwb-btn-secondary { background:transparent; color:#fff; border:1px solid #555; }

.cwb-summary-row { display:flex; justify-content:space-between; padding:4px 0; font-size: 14px; }
.cwb-summary-total { font-weight:700; border-top:1px solid #444; margin-top:8px; padding-top:8px; }

.cwb-thankyou-box {
	max-width: 600px;
	margin: 0 auto;
	border: 1px solid #444;
	padding: 25px;
	border-radius: 6px;
	text-align: center;
}
.cwb-thankyou-box h2 { font-size: 28px; }
#cwb-ty-details { text-align:left; margin-top:15px; }

.cwb-addon-item { display:flex; align-items:center; gap:8px; margin-bottom:6px; }

.cwb-error {
	color: #ff6b6b;
	background: rgba(255,107,107,0.08);
	border: 1px solid rgba(255,107,107,0.4);
	padding: 8px 10px;
	border-radius: 4px;
	font-size: 13px;
	margin-top: 8px;
}

.cwb-app a { color: #4fe0f2; }
.cwb-day.has-availability::after { background: #4fe0f2; }
#cwb-square-card-wrap { max-width: 100%; }
#cwb-square-card-container { background:#fff; border-radius:4px; padding:8px; margin-bottom:10px; }

@media (max-width: 782px) {
	.cwb-columns { flex-direction: column; }
	.cwb-col-summary { flex-basis: auto; }
}
