.hs-tasting-calendar {
	width: 100%;
	font-size: 0.95em;
}

.hs-tasting-calendar[data-loading="true"] .hs-tasting-calendar__loading {
	padding: 2em 0;
	text-align: center;
	opacity: 0.7;
}

.hs-tasting-calendar__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5em;
	margin-bottom: 0.75em;
}

.hs-tasting-calendar__range {
	font-weight: 600;
	font-size: 0.85em;
	text-align: center;
	flex: 1;
}

.hs-tasting-calendar__nav {
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	border: 1px solid #d8d3c4;
	background: #fff;
	border-radius: 4px;
	font-size: 1.1em;
	line-height: 1;
	cursor: pointer;
}

.hs-tasting-calendar__nav:hover {
	background: #117e0b;
	color: #fff;
	border-color: #117e0b;
}

.hs-tasting-calendar__grid {
	display: grid;
	grid-template-columns: repeat(var(--hs-day-count, 7), 1fr);
	gap: 0.4em;
}

.hs-tasting-calendar__day {
	border: 1px solid #ebe7da;
	border-radius: 4px;
	min-width: 0;
}

.hs-tasting-calendar__day-head {
	background: #f5f2e9;
	padding: 0.5em 0.2em;
	text-align: center;
	border-bottom: 1px solid #ebe7da;
	border-radius: 4px 4px 0 0;
}

.hs-tasting-calendar__day-name {
	display: block;
	font-size: 0.7em;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	opacity: 0.65;
}

.hs-tasting-calendar__day-num {
	display: block;
	font-weight: 700;
	font-size: 0.85em;
}

.hs-tasting-calendar__slots {
	padding: 0.3em;
	display: flex;
	flex-direction: column;
	gap: 0.3em;
	min-height: 2.5em;
}

.hs-tasting-calendar__none {
	text-align: center;
	opacity: 0.4;
	margin: 0.6em 0 0;
	font-size: 0.8em;
}

.hs-slot {
	display: block;
	width: 100%;
	border: 1px solid #d8d3c4;
	border-radius: 3px;
	background: #fff;
	padding: 0.4em 0.2em;
	font-size: 0.75em;
	font-weight: 600;
	color: #117e0b;
	cursor: pointer;
	text-align: center;
	line-height: 1.3;
}

.hs-slot--open:hover {
	background: #117e0b;
	color: #fff;
}

.hs-slot--selected {
	background: #117e0b;
	color: #fff;
	box-shadow: 0 0 0 2px #0d6408;
}

.hs-slot--closed {
	background: #f5f2e9;
	color: inherit;
	opacity: 0.6;
	cursor: default;
	display: flex;
	flex-direction: column;
	gap: 0.1em;
}

.hs-slot__status {
	display: block;
	font-size: 0.85em;
	font-weight: 400;
	text-transform: none;
}

.hs-tasting-calendar__panel {
	margin-top: 1em;
	padding: 0.85em;
	border: 1px solid #ebe7da;
	border-radius: 4px;
	background: #f9f8f3;
}

.hs-tasting-calendar__panel-hint {
	margin: 0;
	text-align: center;
	opacity: 0.6;
	font-size: 0.85em;
}

.hs-tasting-calendar__panel-details {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.6em;
	font-size: 0.95em;
}

.hs-tasting-calendar__panel-form {
	display: flex;
	align-items: center;
	gap: 0.75em;
	flex-wrap: wrap;
}

.hs-tasting-calendar__panel-form label {
	font-size: 0.85em;
	display: flex;
	align-items: center;
	gap: 0.4em;
}

.hs-slot__qty {
	width: 4em;
	padding: 0.35em 0.4em;
}

.hs-slot__add {
	padding: 0.6em 1.5em;
	background: #117e0b;
	color: #fff;
	border: none;
	border-radius: 3px;
	font-size: 0.85em;
	font-weight: 700;
	text-transform: uppercase;
	cursor: pointer;
}

.hs-slot__add:hover {
	background: #0d6408;
}

.hs-tasting-calendar__empty,
.hs-tasting-calendar__error {
	text-align: center;
	opacity: 0.75;
	padding: 1.5em 0.5em;
}

@media (max-width: 575px) {
	.hs-tasting-calendar__grid {
		gap: 0.3em;
	}

	.hs-slot {
		font-size: 0.72em;
	}

	.hs-tasting-calendar__panel-form {
		flex-direction: column;
		align-items: stretch;
	}

	.hs-slot__add {
		width: 100%;
	}
}
