.edukacepbv-reservation-calendar {
	box-sizing: border-box;
	min-width: 0;
	padding: clamp(1rem, 2.5vw, 1.5rem);
	border: 1px solid #c9d6df;
	border-radius: 0.75rem;
	background: #fff;
	box-shadow: 0 0.5rem 1.5rem rgb(23 50 77 / 8%);
	color: #17324d;
}

.edukacepbv-reservation-calendar__intro h2 {
	margin: 0 0 0.35rem;
	font-size: clamp(1.25rem, 2.2vw, 1.55rem);
	color: #17324d;
}

.edukacepbv-reservation-calendar__intro p,
.edukacepbv-reservation-calendar__status,
.edukacepbv-reservation-calendar__noscript {
	margin: 0;
	color: #42576b;
	line-height: 1.45;
}

.edukacepbv-reservation-calendar__controls {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) minmax(5rem, 0.7fr) auto;
	gap: 0.45rem;
	align-items: end;
	margin: 1rem 0 0.65rem;
}

.edukacepbv-reservation-calendar__controls label {
	display: grid;
	gap: 0.2rem;
	min-width: 0;
	font-size: 0.83rem;
	font-weight: 700;
}

.edukacepbv-reservation-calendar__controls select,
.edukacepbv-reservation-calendar__controls button {
	box-sizing: border-box;
	min-height: 2.65rem;
	border: 1px solid #7890a2;
	border-radius: 0.35rem;
	background: #fff;
	color: #17324d;
	font: inherit;
}

.edukacepbv-reservation-calendar__controls select {
	width: 100%;
	padding: 0.45rem;
}

.edukacepbv-reservation-calendar__controls button {
	width: 2.65rem;
	padding: 0;
	font-size: 1.65rem;
	line-height: 1;
	cursor: pointer;
}

.edukacepbv-reservation-calendar__controls button:disabled {
	cursor: not-allowed;
	opacity: 0.45;
}

.edukacepbv-reservation-calendar__status {
	min-height: 1.45em;
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
}

.edukacepbv-reservation-calendar__table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0.22rem;
	table-layout: fixed;
}

.edukacepbv-reservation-calendar__table th {
	padding: 4px 2px !important;
	font-size: 0.78rem;
	text-align: center;
	white-space: nowrap;
}

.edukacepbv-reservation-calendar .edukacepbv-reservation-calendar__table td {
	width: 14.285714%;
	padding: 2px !important;
	text-align: center;
}

.edukacepbv-reservation-calendar__day,
.edukacepbv-reservation-calendar__blank {
	box-sizing: border-box;
	display: grid;
	place-items: center;
	width: 100%;
	min-width: 0;
	min-height: 2.45rem;
	border: 1px solid #30363a;
	border-radius: 4px;
	font: inherit;
	font-weight: 700;
}

.edukacepbv-reservation-calendar__blank {
	visibility: hidden;
	border: 0;
	background: transparent;
}

.edukacepbv-reservation-calendar__day {
	background: #e9edf0;
	color: #40515e;
}

.edukacepbv-reservation-calendar__day[data-status="available"] {
	background: #bfe3c7;
	color: #174d29;
	cursor: pointer;
}

.edukacepbv-reservation-calendar__day[data-status="pending"] {
	background: #f6c96b;
	color: #5f4000;
}

.edukacepbv-reservation-calendar__day[data-status="approved"] {
	background: #eca6a1;
	color: #691f1b;
}

.edukacepbv-reservation-calendar__day[data-status="unavailable"],
.edukacepbv-reservation-calendar__day[data-status="out_of_range"] {
	background: #d5d8da;
	color: #42484c;
}

.edukacepbv-reservation-calendar__day[data-status="past"] {
	background: #eceeef;
	color: #737a7f;
}

.edukacepbv-reservation-calendar__day[aria-pressed="true"] {
	outline: 3px solid #005c78;
	outline-offset: 1px;
}

.edukacepbv-reservation-calendar__day[aria-current="date"] {
	box-shadow: inset 0 0 0 2px rgb(255 255 255 / 75%);
}

.edukacepbv-reservation-calendar button:focus-visible,
.edukacepbv-reservation-calendar select:focus-visible {
	outline: 3px solid #006f93;
	outline-offset: 2px;
}

.edukacepbv-reservation-calendar__legend {
	display: flex;
	flex-wrap: wrap;
	column-gap: 1rem;
	row-gap: 0.6rem;
	margin: 0.9rem 0 0;
	margin-left: 0;
	padding-left: 0 !important;
	list-style: none !important;
	font-size: 0.82rem;
}

.edukacepbv-reservation-calendar__legend li {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	white-space: nowrap;
}

.edukacepbv-reservation-calendar__legend li::marker {
	content: "";
}

.edukacepbv-reservation-calendar__legend li::before {
	display: inline-block;
	width: 0.75rem;
	height: 0.75rem;
	margin-right: 0;
	border: 1px solid;
	border-radius: 0.16rem;
	content: "";
}

.edukacepbv-reservation-calendar__legend li[data-status="available"]::before { border-color: #30363a; background: #bfe3c7; }
.edukacepbv-reservation-calendar__legend li[data-status="pending"]::before { border-color: #30363a; background: #f6c96b; }
.edukacepbv-reservation-calendar__legend li[data-status="approved"]::before { border-color: #30363a; background: #eca6a1; }
.edukacepbv-reservation-calendar__legend li[data-status="unavailable"]::before { border-color: #30363a; background: #d5d8da; }
.edukacepbv-reservation-calendar__legend li[data-status="past"]::before { border-color: #30363a; background: #eceeef; }

@media (min-width: 980px) {
	.edukacepbv-reservation-calendar {
		grid-area: calendar;
	}
}

@media (max-width: 480px) {
	.edukacepbv-reservation-calendar {
		padding: 0.85rem;
	}

	.edukacepbv-reservation-calendar__controls {
		gap: 0.3rem;
	}

	.edukacepbv-reservation-calendar__table {
		border-spacing: 0.12rem;
	}

	.edukacepbv-reservation-calendar__day,
	.edukacepbv-reservation-calendar__blank {
		min-height: 2.2rem;
		font-size: 0.9rem;
	}
}
