/* -------------  Root & Utils ------------- */
:root{
	--cb-primary:#0d6efd;       /* blu bootstrap */
	--cb-success:#198754;       /* verde */
	--cb-danger:#dc3545;        /* rosso */
	--cb-light:#f8f9fa;
	--cb-gray:#6c757d;
	--cb-radius: .5rem;
	--cb-shadow:0 .125rem .25rem rgba(0,0,0,.075);
	--cb-transition: all .15s ease-in-out;
	font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;
}

/* -------------  Card Wrapper ------------- */
.cb-booking-card{
	max-width:640px;margin:2.5rem auto;padding:2rem 1.5rem;
	background:#fff;border:1px solid #dee2e6;border-radius:var(--cb-radius);
	box-shadow:var(--cb-shadow);
}
.cb-booking-card h2{
	margin-top:0;margin-bottom:1.25rem;font-size:1.6rem;font-weight:600;text-align:center;
}

/* -------------  Inputs ------------- */
.cb-form-group{margin-bottom:1.25rem}
.cb-form-group label{display:block;font-weight:600;margin-bottom:.35rem}
.cb-form-select{
	width:100%;padding:.55rem .75rem;font-size:1rem;
	border:1px solid #ced4da;border-radius:var(--cb-radius);
	background:var(--cb-light);transition:var(--cb-transition);
}
.cb-form-select:focus{
	border-color:var(--cb-primary);box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0;background:#fff;
}

/* -------------  Month Nav ------------- */
.cb-month-nav{
	display:flex;justify-content:space-between;align-items:center;
	margin:-.25rem 0 1rem 0;
}
.cb-month-nav .cb-btn{
	display:flex;align-items:center;justify-content:center;
	width:2.3rem;height:2.3rem;font-size:1.1rem;font-weight:700;
	color:var(--cb-primary);background:#fff;border:1px solid var(--cb-primary);
	border-radius:50%;cursor:pointer;transition:var(--cb-transition);
}
.cb-month-nav .cb-btn:hover{background:var(--cb-primary);color:#fff}
.cb-month-label{font-weight:600;font-size:1.1rem;color:#212529}

/* -------------  Calendar Grid ------------- */
.cb-cal-table{
	display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem;
}
.cb-cal-header{
	color:var(--cb-gray);font-size:.85rem;font-weight:600;text-align:center;
}
.cb-cal-cell{
	padding:.55rem 0;text-align:center;border-radius:var(--cb-radius);
	font-weight:600;user-select:none;transition:var(--cb-transition);
}

/* Stati */
.cb-free{background:var(--cb-success);color:#fff;cursor:pointer}
.cb-free:hover{filter:brightness(1.1);transform:translateY(-2px)}
.cb-full{background:var(--cb-danger);color:#fff;opacity:.85;cursor:not-allowed}
.cb-empty{visibility:hidden}

/* -------------  Responsive ------------- */
@media(max-width:480px){
	.cb-cal-cell{font-size:.85rem;padding:.45rem 0}
	.cb-month-nav .cb-btn{width:2rem;height:2rem;font-size:1rem}
}

/* selezione data/range */
.cb-start,.cb-end{background:#0d6efd !important}
.cb-range{background:#66b5ff !important;color:#fff}

/* riepilogo */
.cb-summary{
	margin-top:1rem;padding:.6rem .8rem;border:1px solid #ced4da;
	border-radius:var(--cb-radius);background:#f1f8ff;font-size:.95rem;
	display:flex;align-items:center;gap:.6rem;flex-wrap:wrap
}
#cb-reset{
	border:none;background:#dc3545;color:#fff;padding:.3rem .6rem;
	border-radius:var(--cb-radius);cursor:pointer;font-size:.85rem
}
#cb-reset:hover{filter:brightness(1.1)}

.cb-past{
	background:#e9ecef !important;       /* grigio chiaro */
	color:#adb5bd !important;
	cursor:not-allowed;
}

/* loader circolare piccolo */
.cb-loader{
	width:26px;height:26px;border:3px solid var(--cb-light);
	border-top-color:var(--cb-primary);border-radius:50%;
	animation:cb-spin .8s linear infinite;margin:1rem auto;
}
@keyframes cb-spin{to{transform:rotate(360deg)}}
