.scheduler {
	height: calc(80vh);
	width: calc(100%);
	/* max-height: 700px;
	max-width: 1000px; */
	min-height: 500px;
	box-shadow: 0 0 2rem 0 rgba(136, 152, 170, 0.15);
	border-radius: 1rem;
	background-color: white;
	--border: 1px solid lightgray;
	--row-border: 1px solid rgb(230, 230, 230);
	--rowHeight: 60px;
	overflow-x: auto;
	overflow-y: hidden;
}
.schedulerParent {
	/* max-width: 1000px !important; */
	position: relative;
}

.scheduler::-webkit-scrollbar,
.scheduler *::-webkit-scrollbar {
	width: 0px;
	height: 0;
}

.scheduler * {
	user-select: none;
}

.schedulerHeader {
	display: flex;
	min-width: 800px;
}
.schedulerDays {
	width: 100%;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	height: fit-content;
	border-bottom: var(--border);
	box-sizing: border-box;
}
.schedulerDay {
	text-align: center;
	display: grid;
	place-items: center;
	width: 100%;
	/* max-width: 125px; */
	min-width: 100px;
	height: 50px;
	border-left: var(--border);
}
.schedulerDay:nth-child(2) {
	border-left: 1px solid transparent;
}
.schedulerDaySpacer {
	width: 100%;
	max-width: 100px;
	min-width: 100px;
	height: 50px;
	text-align: center;
}

.schedulerBody {
	width: 100%;
	min-width: 800px;
	height: 100%;
	display: flex;
	max-height: calc(100% - 50px);
	overflow-y: auto;
	overflow-x: hidden;
	position: relative;
}
.schedulerTimes {
	width: 100%;
	max-width: 100px;
	min-width: 100px;
	padding-top: 16px;
	position: relative;
}
.schedulerTimeStamp {
	height: var(--rowHeight);
	text-align: right;
	margin-right: 0.5rem;
	font-size: 14px;
}
.schedulerContent {
	width: 100%;
	display: flex;
	position: relative;
}
.schedulerColumn {
	height: 100%;
	width: 100%;
	min-width: 100px;
}

.schedulerHover {
	height: 15px;
	width: 100%;
	position: absolute;
	left: 0;
	opacity: 0;
	background-color: rgba(173, 216, 230, 0.2);
	pointer-events: none;
	border-radius: 10px;
}

.schedulerRow {
	border-bottom: var(--row-border);
	border-left: var(--row-border);
	height: var(--rowHeight);
	box-sizing: border-box;
	position: relative;
	cursor: pointer;
}

.schedulerRowSpacer {
	height: 25px;
	border-bottom: var(--row-border);
	border-left: var(--row-border);
	box-sizing: border-box;
}

.schedulerCurrentTimeLine {
	height: 2px;
	width: calc(100% - 100px);
	background-color: blue;
	position: absolute;
	top: 23px;
	right: 0;
	transition: transform 0.2s;
	pointer-events: none;
	user-select: none;
	z-index: 4;
}

.schedulerCurrentTimeLine::after {
	content: attr(data-currenttime);
	position: absolute;
	left: 0px;
	font-size: 12px;
	top: -9px;
	color: white;
	background-color: blue;
	border-radius: 2px;
	padding: 2px 5px;
}

.schedulerHoverTime {
	position: absolute;
	top: -9px;
	right: 8px;
	color: blue;
	font-size: 14px;
	text-align: right;
	transition: transform 0.1s;
	opacity: 0;
}

.schedulerEvent {
	position: absolute;
	top: 0;
	left: 4px;
	width: calc(100% - 8px);
	min-height: 15px;
	background-color: rgb(89, 89, 255);
	transform: translateY(2px);
	border-radius: 5px;
	cursor: pointer;
	z-index: 3;
	contain: paint;
	transition: 0.15s;
}

.schedulerEvent.videoEvent {
	background-color: #2DBEBD;
}
.schedulerEvent.videoEvent:hover {
	background-color: #1da5a5;
}

.schedulerEvent:hover {
	background-color: rgb(72, 72, 255);
	z-index: 5 !important;
}
.schedulerEvent:hover .schedulerEventGrabber,
.schedulerEvent:hover .schedulerEventResizer {
	visibility: visible;
}

.schedulerEventBackground {
	display: none;
	position: absolute;
	top: -20px;
	left: -20px;
	width: 150%;
	height: 150%;
	pointer-events: none;
	user-select: none;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: top;
	filter: blur(30px);
}
.schedulerEventInfo {
	position: sticky;
	top: 10px;
	padding: 0 8px;
	padding-bottom: 10px;
	margin-top: 14px;
	pointer-events: none;
	user-select: none;
}

.schedulerEventTitle {
	font-size: 13px;
	color: white;
	text-align: left;
	user-select: none;
	pointer-events: none;
	font-weight: bold;
	line-height: 15px;
	margin: 0;
	margin-bottom: 3px;
	max-width: 100%;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
}

.schedulerEventPlaylist {
	font-size: 11px;
	color: white;
	text-align: left;
	margin: 0;
	margin-bottom: 3px;
	user-select: none;
	pointer-events: none;
	line-height: 13px;
	max-width: 100%;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
}

.schedulerEventTime {
	font-size: 11px;
	/* color: rgba(255, 255, 255, 0.7); */
	color: white;
	text-align: left;
	margin-top: 0px;
	margin-bottom: 6px;
	user-select: none;
	pointer-events: none;
	line-height: 14px;
	width: 100%;
	border-bottom: 1px solid rgba(255, 255, 255, 0.3);
	padding-bottom: 6px;
}
.schedulerEventGrabber {
	display: flex;
	justify-content: center;
	gap: 2px;
	position: absolute;
	width: 100%;
	top: 5px;
	left: 0;
	cursor: grab;
	visibility: hidden;
	pointer-events: all;
}

.schedulerEventIsGrabbed {
	opacity: 0.3;
}

.schedulerEventGrabber:hover svg {
	opacity: 0.5;
}
.schedulerEventGrabber svg {
	height: 0.4rem;
	opacity: 0.2;
	fill: rgb(188, 193, 252);
	pointer-events: none;
	user-select: none;
}
.schedulerEvent.videoEvent .schedulerEventGrabber svg {
	fill: rgb(255, 247, 231);
}

.schedulerEventResizer {
	position: absolute;
	width: 80%;
	height: 4px;
	bottom: 5px;
	left: 50%;
	cursor: ns-resize;
	background-color: rgb(188, 193, 252);
	opacity: 0.2;
	transform: translateX(-50%);
	border-radius: 50px;
	visibility: hidden;
}
.schedulerEvent.videoEvent .schedulerEventResizer {
	background-color: rgb(255, 247, 231);
}
.schedulerEventResizer:hover {
	opacity: 0.5;
}

.schedulerModalContainer {
	position: absolute;
	width: 250px;
	min-height: 300px;
	max-height: 380px;
	background-color: white;
	border-radius: 10px;
	box-shadow: 0 0 2rem 0 rgba(42, 36, 36, 0.1);
	z-index: 6;
	pointer-events: all;
}

.schedulerModalInputContainer {
	display: flex;
	margin: 4px 0;
	position: relative;
}

.schedulerModalInputLabel {
	font-weight: bolder;
	margin: 5px 10px;
	font-size: 13px;
	min-width: 80px;
}
.schedulerModalInputLabelRequired::after {
	content: "*";
	color: red;
	position: absolute;
	top: 5px;
	opacity: 0.6;
	font-size: 9px;
}

.schedulerModalTitle {
	font-weight: bolder;
	text-align: center;
	pointer-events: all;
	overflow: hidden;
	max-width: 78%;
	white-space: nowrap;
	text-overflow: ellipsis;
	margin: 10px auto;
}
.schedulerModalInputTitle {
	border: none;
	/* border-bottom: 1px solid black; */
	font-size: 12px !important;
	max-width: 150px;
}
.schedulerModalInputTitle:focus {
	outline: none;
}
.schedulerModalInputTime {
	border: none;
	/* border-bottom: 1px solid black; */
	font-size: 12px !important;
	position: relative;
	left: -2px;
}
.schedulerModalInputTime:focus {
	outline: none;
}
.schedulerModalInputSelect {
	border: none;
	max-width: 145px;
	/* border-bottom: 1px solid black; */
	font-size: 12px !important;
	position: relative;
	left: -2px;
}
.schedulerModalInputSelect:focus {
	outline: none;
}

.schedulerModalInputSelect * {
	margin-left: 0;
}

.schedulerModalFooter {
	display: flex;
	align-items: center;
	justify-content: center;
}

.schedulerModalButton {
	margin: 10px 8px 0 8px;
	white-space: nowrap;
	padding: 0.5rem 1.5rem !important;
}

.schedulerModalClose {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 12px;
	cursor: pointer;
}

.schedulerModalClose * {
	pointer-events: none;
	user-select: none;
}

.schedulerModalInputPlaylistSearch {
	border: none;
	max-width: 120px;
	position: relative;
	text-align: center;
	margin-top: 10px;
	border-bottom: 1px solid black;
	font-size: 14px !important;
}

.schedulerModalInputPlaylistSearch:focus {
	outline: none;
}

.schedulerModalPlaylistDropdown {
	position: absolute;
	width: 100%;
	height: 100%;
	isolation: isolate;
	z-index: 5;
	background-color: white;
	/* box-shadow: 0 0 1rem 0 rgba(42, 36, 36, 0.1); */
	top: 0px;
	right: 0px;
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.schedulerModalPlaylistDropdownTitle {
	font-size: 16px;
	font-weight: bold;
	width: 100%;
	text-align: center;
	margin: 0;
	padding: 10px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.schedulerModalPlaylistDropdownLists {
	height: 100%;
	width: 100%;
	max-width: 250px;
	overflow-y: auto;
	overflow-x: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.schedulerModalPlaylistDropdownPlaylist {
	display: flex;
	align-items: center;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	max-height: 40px;
	min-height: 40px;
	width: 100%;
	cursor: pointer;
	/* border-radius: 5px; */
}

.schedulerModalPlaylistDropdownPlaylist:hover {
	background-color: rgba(245, 245, 245, 0.6);
}

.schedulerModalPlaylistDropdownPlaylistPicked {
	/* background-color: rgb(241, 243, 255); */
	background-color: rgba(89, 89, 255, 0.1);
	position: relative;
}
.schedulerModalPlaylistDropdownPlaylistPicked::after {
	/* background-color: rgb(241, 243, 255); */
	content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z'/%3E%3C/svg%3E");
	position: absolute;
	right: 10px;
	top: 10px;
	width: 1rem;
	color: var(--bs-body-color);
}
.schedulerModalPlaylistDropdownPlaylistPicked * {
	font-weight: bolder !important;
}

.schedulerModalPlaylistDropdownPlaylistPicked:hover {
	/* background-color: rgb(241, 243, 255) !important; */
	background-color: rgba(89, 89, 255, 0.08) !important;
}

.schedulerModalPlaylistDropdownPlaylistImage {
	height: calc(100% - 10px);
	border-radius: 3px;
	margin: 5px;
	pointer-events: none;
	user-select: none;
	min-width: 29px;
}
.schedulerModalPlaylistDropdownPlaylistTitle {
	font-size: 12px;
	pointer-events: none;
	user-select: none;
	margin: 0;
}
.schedulerModalPlaylistDropdownDivider {
	font-size: 13px;
	font-weight: 700;
	text-align: left;
	width: 100%;
	padding: 10px 0;
	padding-left: 5px;
	border-bottom: 1px solid #dcddf5;
	position: sticky;
	top: 0;
	background: white;
	isolation: isolate;
	z-index: 1;
}

.schedulerModalInputPlaylistPicked {
	display: flex;
	align-items: center;
	max-height: 30px;
	cursor: pointer;
	position: relative;
	margin-left: 1px;
	gap: 5px;
	margin-top: 2px;
}
.schedulerModalInputPlaylistPicked:hover
	.schedulerModalInputPlaylistPickedTitle {
	color: black !important;
}

.schedulerModalInputPlaylistPickedTitle {
	font-size: 12px;
	margin: 0;
	margin-top: 1px;
	cursor: pointer;
	white-space: nowrap;
	max-width: 130px;
	overflow: hidden;
	text-overflow: ellipsis;
}
.schedulerModalInputSpotPickedTitle,
.schedulerModalSpotsDropdownSpotTitle {
	font-size: 12px;
	margin: 0;
	margin-top: 1px;
	cursor: pointer;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 140px;
}
.schedulerModalInputPlaylistPickedImage {
	height: 24px;
	border-radius: 2px;
	display: none;
}

.schedulerModalInputPlaylistPickedAmount,
.schedulerModalInputSpotsPickedAmount {
	position: absolute;
	right: -5px;
	top: 6px;
	font-size: 0.75rem;
	background-color: #344767;
	color: white;
	border-radius: 999px;
	min-width: 24px;
	text-align: center;
	margin: 0;
	transform: translateX(100%);
	padding: 0 5px;
}

.schedulerModalPlaylistDropdownClose {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 12px;
	cursor: pointer;
}

.schedulerModalPlaylistDropdownClose * {
	pointer-events: none;
	user-select: none;
}

.schedulerModalInputSpotsPicked {
	display: flex;
	align-items: center;
	max-height: 30px;
	cursor: pointer;
	position: relative;
	margin-left: 1px;
	gap: 5px;
	margin-top: 2px;
}
.titleMaxWidth {
	max-width: 105px !important;
}

.schedulerModalInputSpotsPicked:hover .schedulerModalInputSpotPickedTitle {
	color: black !important;
}

.schedulerModalInputSpots {
	background-color: #344767;
}

@media screen and (min-width: 1600px) {
	.schedulerEventTitle {
		font-size: 15px !important;
		line-height: 19px;
	}
	.schedulerEventTime {
		font-size: 13px;
	}
	.schedulerEventPlaylist {
		font-size: 13px;
		line-height: 15px;
	}
}

.schedulerModalDropdownDisabled {
	pointer-events: none;
	cursor: not-allowed;
	opacity: 0.5;
	position: relative;
}

.schedulerModalDropdownDisabled .schedulerDropdown {
	display: none;
}

.schedulerModalDropdownDisabled::after {
	content: "";
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath class='fa-secondary' opacity='.4' d='M256 64C150 64 64 150 64 256s86 192 192 192c70.1 0 131.3-37.5 164.9-93.6l.1 .1c-6.9 14.9-1.5 32.8 13 41.2c15.3 8.9 34.9 3.6 43.7-11.7c.2-.3 .4-.6 .5-.9l0 0C434.1 460.1 351.1 512 256 512C114.6 512 0 397.4 0 256S114.6 0 256 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z'/%3E%3Cpath class='fa-primary' d='M224 32c0-17.7 14.3-32 32-32C397.4 0 512 114.6 512 256c0 46.6-12.5 90.4-34.3 128c-8.8 15.3-28.4 20.5-43.7 11.7s-20.5-28.4-11.7-43.7c16.3-28.2 25.7-61 25.7-96c0-106-86-192-192-192c-17.7 0-32-14.3-32-32z'/%3E%3C/svg%3E");
	position: absolute;
	right: 10px;
	transform: rotate(0deg);
	width: 14px;
	aspect-ratio: 1;
	color: var(--bs-body-color);
	animation: rotateProcessing 1s linear infinite;
}
.schedulerModalDropdownDisabled::before {
	content: "Processing...";
	position: absolute;
	right: 1.8rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 12px;
	font-style: italic;
	color: var(--bs-body-color);
}

@keyframes rotateProcessing {
	to {
		transform: rotate(360deg);
	}
}

.schedulerModalSpotDropdownSpot {
	display: flex;
	align-items: center;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	max-height: 70px;
	width: 100%;
	cursor: pointer;
	max-width: 250px;
}

.schedulerModalSpotDropdownSpot:hover {
	background-color: rgba(245, 245, 245, 0.6);
}

.schedulerModalSpotDropdownSpotPicked {
	/* background-color: rgb(241, 243, 255); */
	background-color: rgba(89, 89, 255, 0.1);
	position: relative;
}
.schedulerModalSpotDropdownSpotPicked::after {
	/* background-color: rgb(241, 243, 255); */
	content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z'/%3E%3C/svg%3E");
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-33%);
	width: 1rem;
	color: var(--bs-body-color);
}
.schedulerModalSpotDropdownSpotPicked .schedulerModalSpotsDropdownSpotTitle {
	font-weight: bolder !important;
}

.schedulerModalSpotDropdownSpotPicked:hover {
	/* background-color: rgb(241, 243, 255) !important; */
	background-color: rgba(89, 89, 255, 0.08) !important;
}

.schedulerModalSpotDropdownSpotDraggable {
	cursor: grab;
	padding: 3px 8px;
	padding-right: 5px;
}

.schedulerModalSpotDropdownSpotDraggable .schedulerModalSpotsDropdownSpotLeft {
	max-width: none !important;
}

.schedulerModalSpotDropdownSpotDraggable .schedulerModalSpotsDropdownSpotTitle {
	max-width: 180px !important;
}

.schedulerModalSpotDropdownSpotDragIcon {
	opacity: 0.8;
}

.schedulerModalSpotsDropdownSpotLeft {
	padding: 0 10px;
	margin: 8px 0;
	user-select: none;
	pointer-events: none;
	max-width: 170px;
	width: 100%;
}

.schedulerModalSpotsDropdownSpotLeft * {
	pointer-events: none;
}

.schedulerModalSpotsDropdownSpotTitle {
	width: 100%;
	font-size: 13px;
	line-height: 1.1rem;
	font-weight: 600;
	margin: 0;
}
.schedulerModalSpotsDropdownSpotDuration {
	font-size: 12px;
	margin: 0;
	line-height: 1.1rem;
}

.schedulerModalSpotsDropdownSpotFrequency {
	font-size: 12px;
	line-height: 1rem;
}
.schedulerModalSpotsDropdownSpotFrequencySelect {
	font-size: 12px;
	line-height: 1rem;
	pointer-events: all !important;
	border: none;
	background-color: transparent;
	position: relative;
	left: -2px;
}
.schedulerModalSpotsDropdownSpotFrequencySelect:focus {
	outline: none;
}

.spotDropdown {
	margin-top: 3px;
}

.spotDropdown .dropdown-toggle {
	background-color: transparent !important;
	border: none !important;
	color: var(--bs-body-color);
	width: 30px;
	text-align: center;
}

/* .spotDropdown .dropdown-toggle::after {
	content: "" !important;
	display: none;
} */

.spotDropdown .dropdown-item {
	font-size: 13px;
}
.spotDropdown .dropdown-menu {
	min-width: 8rem;
	box-shadow: 0 0 1rem 0 rgba(136, 152, 170, 0.15);
}

.schedulerModalSpotsDropdownSpotPreview {
	font-size: 1.4rem;
	width: 30px;
	text-align: center;
	position: relative;
	pointer-events: all;
	margin-top: 2px;
}
.schedulerModalSpotsDropdownSpotPreview i {
	position: relative;
}
.schedulerModalSpotsDropdownSpotPreview:hover {
	opacity: 0.9;
}
.preview-circle-progress-bar {
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	background: conic-gradient(#606b80 0deg, transparent 0deg);
	position: absolute;
	top: 4px;
	left: 1px;
	isolation: isolate;
	z-index: 0;
}
.preview-circle-progress-bar:after {
	content: "";
	width: 1rem;
	height: 1rem;
	border-radius: 50%;
	background-color: white;
	position: absolute;
	top: 6px;
	left: 6px;
}
.previewSpotAudio {
	width: 1px;
	height: 1px;
	position: absolute;
	pointer-events: none;
	user-select: none;
	visibility: hidden;
}

.schedulerDropdown {
	position: relative;
}

.schedulerDropdownToggle {
	font-size: 1.1rem;
	background-color: transparent !important;
	border: none !important;
	color: var(--bs-body-color);
	pointer-events: all;
}

.schedulerDropdownToggle:hover {
	color: var(--bs-body-color);
	opacity: 0.8;
}

.schedulerDropdownMenu {
	position: absolute;
	top: 28px;
	right: 0;
	filter: drop-shadow(0 0 0.5rem rgba(136, 152, 170, 0.15));
	background-color: white;
	width: 90px;
	border-radius: 0.3rem;
	isolation: isolate;
	z-index: 2;
	display: none;
}

.schedulerDropdownMenuOpen {
	display: block;
}

.schedulerDropdownMenuOpen:after {
	content: "";
	position: absolute;
	top: -2px;
	right: 3px;
	width: 20px;
	height: 20px;
	border-radius: 0.3rem;
	isolation: isolate;
	z-index: -1;
	transform: rotate(45deg);
	background-color: white;
	pointer-events: none;
}

.schedulerDropdownMenuOpenUp:after {
	content: "";
	position: absolute;
	top: auto !important;
	bottom: -2px !important;
}

.schedulerDropdownMenuOpenUp {
	display: block;
	top: auto;
	bottom: 28px !important;
}

.schedulerDropdownMenuItem {
	font-size: 13px;
	background-color: transparent !important;
	border: none;
	color: var(--bs-body-color);
	width: 100%;
	text-align: left;
	padding: 0.2rem 0.5rem;
	border-bottom: 1px solid rgba(136, 152, 170, 0.15);
}

.schedulerDropdownMenuItem:first-child {
	border-radius: 0.3rem 0.3rem 0 0;
}

.schedulerDropdownMenuItem:last-child {
	border-bottom: none;
	border-radius: 0 0 0.3rem 0.3rem;
}

.schedulerDropdownMenuItem:hover {
	background-color: rgba(89, 89, 255, 0.08) !important;
}
