.sk-avail__fields {
	position: relative;
}

.sk-calendar {
	position: absolute;
	left: 0;
	top: auto;
	bottom: calc(100% + 0.6rem);
	z-index: 6;
	width: min(100%, 22.5rem);
	padding: 1rem;
	background: var(--sk-bg-2);
	border: 1px solid var(--sk-line);
	border-radius: 0;
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}

.sk-calendar.is-constrained {
	overflow-y: auto;
	overscroll-behavior: contain;
}

.sk-calendar[hidden] {
	display: none;
}

.sk-calendar__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.8rem;
}

.sk-calendar__month {
	font-family: var(--sk-font-heading);
	font-size: 1.05rem;
	font-weight: 650;
	letter-spacing: -0.02em;
}

.sk-calendar__nav {
	display: grid;
	place-items: center;
	width: 2.2rem;
	height: 2.2rem;
	border: 1px solid var(--sk-line);
	border-radius: 0;
	background: transparent;
	color: var(--sk-text);
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.sk-calendar__nav:hover {
	border-color: color-mix(in srgb, var(--sk-accent) 45%, transparent);
	color: var(--sk-accent);
}

.sk-calendar__nav[data-sk-cal-prev] svg {
	transform: rotate(90deg);
}

.sk-calendar__nav[data-sk-cal-next] svg {
	transform: rotate(-90deg);
}

.sk-calendar__week,
.sk-calendar__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 0.15rem;
	text-align: center;
}

.sk-calendar__week {
	margin-bottom: 0.35rem;
	color: var(--sk-muted);
	font-size: 0.68rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sk-calendar__day {
	min-height: 2.15rem;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--sk-text);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.sk-calendar__day:hover:not(:disabled) {
	background: rgba(255, 255, 255, 0.08);
	color: var(--sk-text);
}

.sk-calendar__day:disabled {
	color: #4a5360;
	cursor: not-allowed;
}

.sk-calendar__day.is-outside {
	visibility: hidden;
}

.sk-calendar__day.is-in-range {
	background: rgba(255, 255, 255, 0.08);
}

.sk-calendar__day.is-start,
.sk-calendar__day.is-end,
.sk-calendar__day.is-selected {
	background: var(--sk-text);
	color: var(--sk-bg);
	font-weight: 700;
}

.sk-calendar__day.is-busy {
	box-shadow: inset 0 -2px 0 #8a5a5a;
}

.sk-calendar__foot {
	display: flex;
	justify-content: space-between;
	gap: 0.6rem;
	margin-top: 0.85rem;
}

@media (max-width: 799px) {
	.sk-calendar {
		right: 0;
		width: auto;
	}
}

html.sk-calendar-open,
html.sk-calendar-open body {
	overflow: hidden;
	overscroll-behavior: none;
}
