#calendarFiltersWrapper .card-header{
	cursor: pointer;
	background-color: #f8f9fa;
	transition: background-color 0.2s ease;
}

#calendarFiltersWrapper .card-header:hover{
	background-color: #e9ecef;
}

a[data-bs-toggle="collapse"] i{
	display: inline-block;
	transition: transform .25s ease;
	transform-origin: center;
}

a[data-bs-toggle="collapse"].collapsed i{
	transform: rotate(0deg);
}

a[data-bs-toggle="collapse"]:not(.collapsed) i{
	transform: rotate(180deg);
}

#calendarFiltersWrapper{
	overflow: hidden;
}

/* Fade + slide effect on collapse content */
#calendarFiltersWrapper .collapse{
	transition: height 0.35s ease, opacity 0.35s ease;
}

#calendarFiltersWrapper .collapsing{
	opacity: 0;
}

#calendarFiltersWrapper .collapse.show{
	opacity: 1;
	transition: height 0.35s ease, opacity 0.35s ease;
}

#calendarFiltersOptions .card-body{
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.35s ease, transform 0.35s ease;
}

#calendarFiltersOptions.show .card-body{
	opacity: 1;
	transform: translateY(0);
}

/*
.select2-container {
	z-index: 9999 !important;
}
*/

/* Allow dropdowns to show outside their containers */
#calendarFiltersWrapper,
#calendarFiltersOptions,
.card-body{
	overflow: visible !important;
}

#calendarFiltersSidebar .fc-event{
	cursor: move;
	margin: 3px 0;
}

#calendarContainer{
	width: 100%;
	min-width: 0;
}

.fc-timegrid-slot{
	height: 1.7em !important;
}

.fc-event:not(.fc-bg-event):not(.fc-event--background) .remove-btn{
	position: absolute;
	top: 0px;
	right: 4px;
	color: #fff;
	background: rgba(0,0,0,0.4);
	border-radius: 50%;
	width: 16px;
	height: 16px;
	line-height: 14px;
	text-align: center;
	font-size: 12px;
	cursor: pointer;
	z-index: 10;
}

.fc-event:hover .remove-btn{
	display: inline;
}

.fc-event .remove-btn:hover{
	color: #f00;
}

/* Restore background events (e.g., OFF) to full-block rendering */
.fc-bg-event,
.fc-event--background{
	position: absolute !important;
	top: 0;
	bottom: 0;
	z-index: 1 !important;
	pointer-events: none;
}

.fc-bg-event .remove-btn,
.fc-event--background .remove-btn{
	display: none !important;
}

#editAppointment_Modal .modal-dialog{
	max-height: 90vh; /* make modal fit 90% of viewport height */
}

#editAppointment_Modal .modal-dialog-scrollable .modal-body{
	overflow-y: auto;
	max-height: calc(90vh - 200px); /* adjust for header + footer */
}

.compact_ul{
	padding-left: 1rem;
}