/* ============================================================
   Accordi Sala Prove — Calendar widget
   Colori coordinati con la palette del progetto:
   primary  #14110F  (nero/marrone)
   accent   #C87B3D  (ramato)
   bg       #F3EDE2  (crema)
   surface  #FBF7EE  (crema chiaro)
   success  #3B782F  (verde)
   ============================================================ */

.asp-calendar {
	font-family: 'Inter', system-ui, sans-serif;
	color: #14110F;
	max-width: 1200px;
	margin: 0 auto;
}

/* Step title condiviso con il form (03 — Conferma e dati). */
.asp-step-title {
	font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 1.5rem;
	font-weight: 400;
	margin: 2.5rem 0 1rem;
	color: #14110F;
}
.asp-step-title:first-child { margin-top: 0; }

.asp-calendar__loading,
.asp-calendar__error {
	padding: 2rem;
	text-align: center;
	color: #6B5D4E;
}
.asp-calendar__error { color: #BA3535; }

/* ============================================================
   HEADER (nav settimana + legenda)
   ============================================================ */

.asp-calendar__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
	flex-wrap: wrap;
}

.asp-calendar__nav {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.asp-calendar__nav-btn {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #FBF7EE;
	border: 1px solid rgba(20, 17, 15, 0.1);
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #14110F;
	transition: all 0.15s ease;
}
.asp-calendar__nav-btn:hover {
	background: #14110F;
	color: #fff;
}

.asp-calendar__range {
	font-size: 0.95rem;
	font-weight: 500;
}

.asp-calendar__legend {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 0.8rem;
	color: #6B5D4E;
}

.asp-legend {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	margin-right: 0.25rem;
	vertical-align: middle;
}
.asp-legend--free      { background: #3B782F; }
.asp-legend--pending   { background: #C87B3D; }
.asp-legend--confirmed { background: #999; }

/* ============================================================
   GRID
   ============================================================ */

.asp-calendar__grid {
	border: 1px solid rgba(20, 17, 15, 0.08);
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}

.asp-cal-row {
	display: grid;
	grid-template-columns: 60px repeat(7, 1fr);
	border-bottom: 1px solid rgba(20, 17, 15, 0.06);
}
.asp-cal-row:last-child { border-bottom: 0; }

.asp-cal-row--head {
	background: #FBF7EE;
	border-bottom: 1px solid rgba(20, 17, 15, 0.1);
}

.asp-cal-time {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.75rem;
	color: #6B5D4E;
	padding: 0.5rem;
	border-right: 1px solid rgba(20, 17, 15, 0.06);
}

.asp-cal-col-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0.6rem 0.25rem;
	border-right: 1px solid rgba(20, 17, 15, 0.06);
}
.asp-cal-col-head:last-child { border-right: 0; }
.asp-cal-col-head__name {
	font-size: 0.7rem;
	letter-spacing: 0.06em;
	color: #6B5D4E;
}
.asp-cal-col-head__num {
	font-size: 1.1rem;
	font-weight: 600;
	margin-top: 0.15rem;
}

.asp-cal-cell {
	min-height: 32px;
	border-right: 1px solid rgba(20, 17, 15, 0.04);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.8rem;
	transition: all 0.12s ease;
}
.asp-cal-cell:last-child { border-right: 0; }

.asp-cal-cell--free {
	background: rgba(59, 120, 47, 0.12);
	cursor: pointer;
}
.asp-cal-cell--free:hover {
	background: rgba(59, 120, 47, 0.25);
}

.asp-cal-cell--pending {
	background: rgba(200, 123, 61, 0.25);
	cursor: not-allowed;
}

.asp-cal-cell--confirmed {
	background: rgba(20, 17, 15, 0.15);
	cursor: not-allowed;
	background-image: repeating-linear-gradient(
		45deg,
		transparent,
		transparent 4px,
		rgba(20, 17, 15, 0.08) 4px,
		rgba(20, 17, 15, 0.08) 8px
	);
}

.asp-cal-cell--closed,
.asp-cal-cell--empty {
	background: #fafafa;
}

/* Gap = orario tra fasce (es. pausa pranzo): bianco neutro, niente cursor */
.asp-cal-cell--gap {
	background: #fff;
}

.asp-cal-cell--selected {
	background: #C87B3D !important;
	color: #fff;
	font-weight: 600;
}

.asp-cal-cell:focus-visible {
	outline: 2px solid #C87B3D;
	outline-offset: -2px;
}

/* ============================================================
   DURATA
   ============================================================ */

.asp-calendar__duration {
	margin-top: 1rem;
}

.asp-duration__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 0.75rem;
}

.asp-duration {
	background: #FBF7EE;
	border: 1px solid rgba(20, 17, 15, 0.08);
	border-radius: 8px;
	padding: 1.25rem 1rem;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15rem;
	cursor: pointer;
	transition: all 0.15s ease;
	font-family: inherit;
	color: #14110F;
	text-align: left;
}
.asp-duration:hover:not(:disabled) {
	border-color: #C87B3D;
}

.asp-duration--selected {
	background: #C87B3D;
	border-color: #C87B3D;
	color: #fff;
}

.asp-duration--disabled,
.asp-duration:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.asp-duration__hours {
	font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 2rem;
	line-height: 1;
}
.asp-duration__label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	opacity: 0.7;
}
.asp-duration__price {
	font-size: 0.85rem;
	margin-top: 0.4rem;
}

.asp-duration__hint {
	margin: 0.75rem 0 0;
	font-size: 0.85rem;
	color: #6B5D4E;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 768px) {
	.asp-cal-row {
		grid-template-columns: 45px repeat(7, 1fr);
	}
	.asp-cal-time { font-size: 0.65rem; padding: 0.25rem; }
	.asp-cal-col-head__name { font-size: 0.6rem; }
	.asp-cal-col-head__num  { font-size: 0.9rem; }
	.asp-cal-cell { min-height: 28px; font-size: 0.7rem; }

	.asp-calendar__header { flex-direction: column; align-items: stretch; }
	.asp-calendar__legend { justify-content: center; }
}
