.kalm-booking-calendar {
	position: fixed;
	z-index: 100000;
	width: min(320px, calc(100vw - 24px));
	padding: 14px;
	border: 1px solid #d7dde4;
	border-radius: 10px;
	background: #fff;
	color: #1f2933;
	box-shadow: 0 18px 45px rgba(15, 23, 42, .24);
	font: 400 14px/1.35 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.kalm-booking-calendar[hidden] {
	display: none;
}

.kalm-booking-calendar *,
.kalm-booking-calendar *::before,
.kalm-booking-calendar *::after {
	box-sizing: border-box;
}

.kalm-booking-calendar__header {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr) 36px;
	align-items: center;
	gap: 8px;
	margin-bottom: 10px;
}

.kalm-booking-calendar__title {
	margin: 0;
	color: inherit;
	font: 700 15px/1.25 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	text-align: center;
}

.kalm-booking-calendar__nav,
.kalm-booking-calendar__day {
	margin: 0;
	border: 0;
	font: inherit;
	cursor: pointer;
}

.kalm-booking-calendar__nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border-radius: 999px;
	background: #f1f4f6;
	color: #263238;
	font-size: 20px;
}

.kalm-booking-calendar__nav:hover {
	background: #e4e9ed;
}

.kalm-booking-calendar__weekdays,
.kalm-booking-calendar__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 3px;
}

.kalm-booking-calendar__weekdays {
	margin-bottom: 4px;
	color: #646970;
	font-size: 11px;
	font-weight: 700;
	text-align: center;
	text-transform: uppercase;
}

.kalm-booking-calendar__weekday {
	padding: 4px 0;
}

.kalm-booking-calendar__day {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	height: 36px;
	padding: 0;
	border-radius: 6px;
	background: transparent;
	color: #1f2933;
}

.kalm-booking-calendar__day:hover:not(:disabled),
.kalm-booking-calendar__day:focus-visible {
	background: #edf7f4;
	color: #214f46;
}

.kalm-booking-calendar__day.is-outside {
	color: #8c959f;
}

.kalm-booking-calendar__day.is-today {
	box-shadow: inset 0 0 0 1px #2f6f62;
}

.kalm-booking-calendar__day.is-selected {
	background: #2f6f62;
	color: #fff;
	font-weight: 700;
}

.kalm-booking-calendar__day:disabled {
	color: #b7bdc4;
	cursor: not-allowed;
}

.kalm-booking-calendar button:focus-visible {
	outline: 3px solid #f2c94c;
	outline-offset: 2px;
}

@media (max-width: 480px) {
	.kalm-booking-calendar {
		left: 12px !important;
		width: calc(100vw - 24px);
	}

	.kalm-booking-calendar__day {
		height: 40px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.kalm-booking-calendar * {
		scroll-behavior: auto !important;
	}
}
