#container {
	display: flex;
	overflow-x: auto;
	max-width: 100%;
	width: calc(100% - 20px);
	background: #fff;
}

#rowHeaders {
	flex-shrink: 0;
	min-width: 100px;
}

#calendar {
	overflow-x: auto;
	width: 100%;
	position: relative;
}

#calendarTable {
	display: flex;
	flex-direction: column;
	border: 0;
	border-collapse: collapse;
	white-space: nowrap;
	min-width: fit-content;
	overflow: hidden;
}

.calendarRow {
	display: flex;
}

.calendarCell {
	flex-grow: 1;
	border-right: 1px solid #eaeaea;
	transition: border-color 0.3s ease-in-out;
	text-align: center;
	width: 80px;
	height: 80px;
	position: relative;
	vertical-align: bottom;
}

.calendarCell.rowHeader::after {
	content: ' ';
	position: absolute;
	right: -1px;
	top: 0;
	height: 100%;
	width: 1px;
	background: #000;
}

.calendar-room-row .calendarCell.rowHeader {
	white-space: normal;
	font-size: 16px;
	font-weight: 300;
}

.calendarCell:first-child {
	border-left: none;
}

.availability-room-warning-notice {
	font-size: 11px;
	color: #fff;
	background: #ff0000;
	display: inline-block;
	padding: 5px 10px;
	border-radius: 5px;
	font-weight: 500;
	margin-top: 4px;
	margin-bottom: 0;
}

.calendarRow .rowHeader {
	font-weight: bold;
	background-color: #131313;
	position: sticky;
	left: 0;
	z-index: 1;
	width: 290px;
	font-size: 12px;
	padding: 20px;
	color: #cacaca;
}

.calendarRow .rowHeader:first-child {
	border-top: none;
}

.calendarRow .rowHeader::before {
	content: "";
	position: absolute;
	bottom: -1px;
	left: -1px;
	height: 1px;
	width: 100%;
	background-color: #3e3e3e;
	z-index: -1;
}


#calendarTable {
	display: table;
	table-layout: fixed;
	width: 100%;
}

.calendarRow {
	display: table-row;
}

.calendarCell {
	display: table-cell;
	border-bottom: 1px solid #3a3a3a;
	text-align: left;
}

.rowHeader {
	font-weight: bold;
}

.status {
	margin-bottom: 5px;
}

.quantity,
.rate {
	font-size: 12px;
}

.reserved-tab-wrap {
	position: relative;
	z-index: 0;
}

.reserved-tab-wrap::before {
	position: absolute;

}

.reserved-tab {
	position: absolute;
	overflow: hidden;
	border-radius: 20px;
	box-shadow: 1px 2px 5px transparent;
	transition: box-shadow 0.3s ease-in-out;
}

.reserved-from-past .reserved-tab {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.reserved-tab:hover {
	position: absolute;
	overflow: hidden;
	box-shadow: 1px 2px 5px #0000004f;
}

.quantity-link,
.rate-link {
	display: block;
}

.calendar-info-wrap {
	position: absolute;
	top: 0;
	left: 0;
}

.calendar-info {
	position: relative;
	height: 100px;
}

.reservation-tab-wrap {
	padding-top: 60px;
}

.reserved-tab-inner {
	border: 1px solid #000;
	font-size: 11px;
	padding: 3px 3px 3px 7px;
	border-radius: 30px;
	transition: opacity 1s ease-in, width 1s ease-in;
	opacity: 0;
}

.reserved-extended {
	width: 80px;
}

.reserved-extended .reserved-tab-inner {
	border: 1px solid transparent;
	font-size: 11px;
	padding: 3px 3px 3px 7px;
	border-radius: 4px;
}

.reserved-from-past .reserved-tab-inner {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}


.calendarCell.fully-booked {
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAQElEQVQYV2NkIALsU1Y2ZiSkDqTI6e7ds3gVwhSBDMOpEFkRToXoirAqxKYIQyEuRSgK8SmCKySkCKyQGEUghQCl2yVCPSoUNwAAAABJRU5ErkJggg==) repeat;
}

.calendarCell.is-today {
	background: #ffbf001c;
}

.calendarCell.monthHeader.is-today:not(.occupancy-stats) {
	background: radial-gradient(circle 400px at 6.8% 8.3%, rgba(255, 244, 169, 1) 0%, rgba(255, 244, 234, 1) 100.2%);
}

body .tooltip .tooltip-inner {
	text-align: left;
}

.roomrate-link,
.quantity-link {
	text-decoration: none;
	color: #000;
	font-size: 11px;
	line-height: 1;
	padding: 2px 6px;
	border-radius: 9px;
	transition: 0.2s background-color, 0.2s color;
}

.roomrate-link:hover {
	background: #290bff;
	color: #fff;
}

.quantity-link:hover {
	background: #ff0b8d;
	color: #fff;
}

.calendar-info-wrap {
	position: absolute;
	top: 8px;
	left: 5px;
}

.monthDayinfo-wrap {
	padding: 10px;
	position: relative;
}

.monthDayinfo-wrap .day-letter {
	text-transform: uppercase;
	font-size: 9px;
	float: right;
	top: 0;
	position: absolute;
	left: 11px;
}

.monthDayinfo-wrap .month {
	position: relative;
	top: 3px;
}

.monthDayinfo-wrap .day {
	font-weight: bold;
	position: relative;
	top: 7px;
}

.reserved-tab-inner .fa-solid.fa-arrow-right-from-bracket {
	font-size: 9px;
	position: absolute;
	left: -3px;
	top: 8px;
}

.reserved-tab-inner,
.reserved-extended .reserved-tab-inne {
	height: 38px;
}

.reserved-tab-wrap {
	height: 40px;
}

.ota-sign {
	position: absolute;
	height: 32px;
	width: 32px;
	background: #fff;
	border-radius: 100%;
	left: 3px;
	top: 3px;
}

.guest-name {
	position: absolute;
	top: 8px;
	left: 42px;
	font-size: 9px;
	letter-spacing: -0.1px;
	font-weight: 500;
	text-transform: uppercase;
}

.reserved-tab-inner {
	background-image: linear-gradient(68.4deg, rgba(99, 251, 215, 1) -0.4%, rgba(5, 222, 250, 1) 100.2%);
	border: 0;
}

.reservation-cancelled .reserved-tab-inner {
	background-image: radial-gradient(circle farthest-corner at 10% 20%, rgba(255, 1, 132, 0.04) 20.8%, rgba(201, 255, 250, 0.57) 74.4%);
	border: 0;
}

.reservation-pending .reserved-tab-inner {
	background-image: radial-gradient(circle farthest-corner at 10% 20%, rgba(208, 208, 208, 0.3) 20.8%, rgba(201, 255, 250, 0.57) 74.4%);
	border: 0;
}

.reservation-cancelled .ota-sign {
	background: #ff0c0c69;
}

.reservation-pending .ota-sign {
	background: #0c32ff42;
}

.guest-name span {
	display: block;
	font-size: 7px;
	letter-spacing: 0.4px;
	color: #0000008a;
}

.calendarRow .rowHeader {
	box-shadow: 33px 0px 35px 6px #0000001f;
}

.occupancyStats-wrap {
	font-size: 10px;
	letter-spacing: 1px;
	font-weight: 600;
	padding: 10px;
	color: #ffffff96;
}

.occupancyStats-wrap.occupancy-percentage {
	padding: 0;
}

.occupancy-percentage {
	font-size: 20px;
	color: #fff;
}

.calendarCell.monthHeader.occupancy-stats {
	background-image: linear-gradient(180.8deg, rgb(10, 13, 174) 6.9%, rgb(76, 0, 151) 73.2%);
}

.calendarCell.monthHeader.occupancy-stats {
	border: 0;
}

.occupancy-total {
	font-size: 14px;
	font-weight: 600;
	color: #ffcb00;
}

.occupancy-total .occupancy-total-stats {
	font-size: 25px;
	font-weight: 100;
}

.occupancy-total .occupancy-percent-symbol {
	margin-right: 10px;
}

.guest-name,
a.reservation-edit-link {
	color: #000;
}

a.reservation-edit-link:focus {
	box-shadow: none;
}

.tooltip.fade:not(.show) {
	opacity: 0;
}

.tooltip.fade.show {
	transition: opacity 0.2s linear;
	opacity: 1;
}

#calendarTable .hovered-mousecolumn {
	border-right-color: #0000006d;
}

#guest-age {
	margin-top: 10px;
}

.notify-number-over-max {
	color: #ff0000;
	margin-top: 10px;
	margin-bottom: 10px;
}

.adult-number-max-notice,
.child-number-max-notice {
	margin-top: 10px;
	color: #5e5e5e;
}

.notify-number-over-max,
.adult-number-max-notice,
.child-number-max-notice,
.combined-adult-number-max-notice,
.combined-child-number-max-notice {
	display: none;
}

.combined-child-number-max-notice,
.combined-adult-number-max-notice {
	margin-top: 10px;
}

ul.existing-customer li {
	margin: 0 0 10px;
}

#result {
	width: auto;
	font-size: 8px;
}

#result table {
	font-size: 8px;
}

#sync-form {
	float: left;
	width: 50%;
}

.calendarCell.start-of-month {
	background: #0040ff0d;
}

#result-notice ol {
	padding: 0;
	margin: 0 0 20px 26px;
	font-size: 9px;
}

#result p {
	font-size: 9px;
}

.process-ical-booking-sync {
	margin-top: 20px;
}

.before-importing-content {
	margin-bottom: 16px;
}

#result-missing-bookings {
	font-size: 8px;
}

/* Booking Button */
#invoiceActivityDetails,
#invoiceDetails,
#booking_details,
#bookingSearch {
	background: #000;
	color: #fff;
	padding: 10px 20px;
	border: none;
	cursor: pointer;
	width: 120px;
	text-align: center;
	border-radius: 5px;
	font-size: 15px;
	font-weight: 500;
	transition: 0.4s background-color;
}

#invoiceActivityDetails:hover,
#invoiceDetails:hover,
#booking_details:hover,
#bookingSearch:hover {
	/* Styles for when the button is hovered */
	background-color: #012aff;
	/* Example hover background color */
}

#invoiceActivityDetails:active,
#invoiceDetails:active,
#booking_details:active,
#bookingSearch:active {
	/* Styles for when the button is clicked/active */
	background-color: #012aff;
	/* Example active background color */
}

/* Invoice Form */
.admin-staylodgic-content {
	max-width: 645px;
	margin: 0 auto;
}

.calendar-insights-wrap {
	display: grid;
	grid-template-columns: 1fr 1fr;
	/* Creates two columns */
	grid-gap: 10px;
	/* Sets gap between grid items */
	padding: 15px 20px;
	/* Optional padding for better spacing */
	background: #eeeeee4d;
	border-radius: 6px;
	margin-bottom: 5px;
}

.calendar-insights-wrap span {
	font-weight: 500;
}

.front-booking-search {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background-color: #fff;
	padding: 10px;
	border: 1px solid #ccccccba;
	border-radius: 5px;
	box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.2);
}

.front-booking-details-wrap,
.front-booking-calendar-wrap {
	flex: 1;
	/* Occupy 50% of the available space */
	display: flex;
	align-items: center;
	height: 42px;
}

.front-booking-calendar-icon {
	margin-right: 10px;
	color: #000;
	margin-left: 20px;
}

.front-booking-calendar-date {
	font-size: 14px;
	letter-spacing: 0.4px;
	font-weight: 400;
}

.staylodgic-content .form-floating>.form-control {
	transition: none;
}

.front-booking-number-wrap,
.front-booking-guests-wrap {
	flex: 1;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	padding-left: 50px;
	border-left: 1px dotted #0000004f;
}

.front-booking-number-wrap {
	padding: 0;
	border: 0;
}

.form-group.form-floating.form-bookingnumber-request {
	padding-right: 10px;
}


.form-floating.form-floating-booking-number>.form-control,
.form-floating.form-floating-booking-number>.form-control-plaintext {
	height: 43px;
	min-height: 43px;
	font-size: 13px;
}

.form-floating.form-floating-booking-number>.form-control-plaintext:focus,
.form-floating.form-floating-booking-number>.form-control-plaintext:not(:placeholder-shown),
.form-floating.form-floating-booking-number>.form-control:focus,
.form-floating.form-floating-booking-number>.form-control:not(:placeholder-shown) {
	padding-top: 30px;
	padding-bottom: .625rem;
}

.front-booking-number-container,
.front-booking-guests-container {
	display: flex;
	/* Create a new container for the adult and child wraps */
	width: 66%;
	/* Occupy 66% of the available space within .front-booking-guests-wrap */
	justify-content: space-between;
	/* Distribute space evenly between child elements */
	align-items: flex-end;
	/* Center align items vertically */
}

.staylodgic-content .form-floating>.form-control {
	transition: none;
}

.front-booking-number-container,
.form-group.form-floating.form-bookingnumber-request,
.form-group.form-floating.form-fullname-request {
	width: 100%;
}

.front-booking-guest-adult-wrap,
.front-booking-guest-child-wrap,
.front-booking-booking-search {
	flex-grow: 1;
	/* Equal flex-grow for each child to evenly distribute space */
}

.front-booking-guest-adult-icon,
.front-booking-guest-child-icon {
	margin-right: 5px;
}

.front-booking-adult-adult-value,
.front-booking-adult-child-value {
	font-weight: bold;
	font-size: 16px;
	color: #333;
	/* Change the color as needed */
}


.calendar-controls-wrap {
	margin-bottom: 0;
	background: #000;
	padding-top: 15px;
	padding-bottom: 11px;
	width: calc(100% - 20px);
}

.calendar-controls-list li {
	display: inline-block;
	position: relative;
}

.preloader-element-outer {
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
}

.calendar-controls {
	text-align: left;
}

.calendar-controls-wrap ul {
	margin-bottom: 0;
	padding-left: 63px;
}

.calendar-nav-buttons {
	border: 0;
	display: block;
	border-radius: 6px;
	width: 30px;
	height: 30px;
	line-height: 30px;
	font-size: 13px;
	text-align: center;
	background: #3437ff;
	color: #fff;
	transition: background-color 0.3s ease-in-out;
}

.calendar-nav-buttons:hover {
	background: #5255ff;
	cursor: pointer;
}

.calendar-text-button {
	width: 120px;
	font-size: 13px;
}

.calendar-text-button i {
	margin-right: 5px;
}

.calendar-controls-list {
	margin-right: 30px;
}

#availabilitycalendar {
	background: #444;
	color: #fff;
	font-size: 12px;
	width: 70px;
	border: 0;
	position: relative;
	top: 0;
	transition: background-color 0.3s ease-in-out;
}

#availabilitycalendar:hover {
	background-color: #111;
	border: 0;
}

#availabilitycalendar:active {
	border: 0;
}

.nav-item.nav-item-seperator {
	margin-left: 80px;
}

.flatpickr-innerContainer .flatpickr-monthSelect-month.selected,
.flatpickr-innerContainer .flatpickr-monthSelect-month.startRange,
.flatpickr-innerContainer .flatpickr-monthSelect-month.endRange {
	background-color: #7b00ff;
	border-color: #7b00ff;
}

.toast-square {
	width: 12px;
	height: 12px;
	background: #ff0083;
	border-radius: 4px;
	position: relative;
	top: 1px;
	left: -3px;
}

#quantityToast .toast-square {
	background: #0087ff;
}

#calendarToast .toast-square {
	background: #7b00ff;
}

#quantity-modal .modal-body,
#rates-modal .modal-body {
	width: 100%;
	margin: 0 auto;
	padding: 30px 120px 40px;
	background: #f0f0f0;
}

#quantity-modal .form-group,
#rates-modal .form-group {
	margin-bottom: 12px;
}

#quantity-modal .modal-header,
#rates-modal .modal-header {
	background: #3a5de6;
	color: #fff;
}

#quantity-modal .form-group label,
#rates-modal .form-group label {
	font-size: 12px;
	margin-bottom: 2px;
	color: #000;
	text-transform: uppercase;
	letter-spacing: 1px;
}

#quantity-modal i,
#rates-modal i {
	color: #555;
}

#quantity-modal .form-control,
#rates-modal .form-control,
#quantity-modal select,
#rates-modal select {
	font-size: 13px;
	background: #fff;
}

#quantity-modal .spinner-border,
#rates-modal .spinner-border {
	opacity: 0;
}

#quantity-modal .modal-footer,
#rates-modal .modal-footer {
	background: #d9d9d9;
}

/* Tooltip background */
.tooltip .tooltip-inner {
	font-size: 12px;
	line-height: 18px;
}

.calendar-controls-wrap input[type="checkbox"]:checked::before {
	content: '';
}

.calendar-controls-wrap .form-check-input {
	--bs-form-check-bg: var(--bs-body-bg);
	flex-shrink: 0;
	width: 1em;
	height: 1em;
	margin-top: .25em;
	vertical-align: top;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-color: var(--bs-form-check-bg);
	background-image: var(--bs-form-check-bg-image);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	border: var(--bs-border-width) solid var(--bs-border-color);
	-webkit-print-color-adjust: exact;
	print-color-adjust: exact;
}

.calendar-controls-wrap .form-check-label {
	font-size: 12px;
	color: #fff;
	padding-bottom: 3px;
}

.calendar-controls-wrap .form-check.form-switch {
	position: relative;
	top: 8px;
}

.cal-create-reservation {
	position: absolute;
	top: 11px;
	right: 11px;
	width: 14px;
	height: 14px;
	background: #bd06ff;
	border-radius: 10px;
	line-height: 13px;
	font-size: 10px;
	text-align: center;
	color: #fff;
	opacity: 0;
	transition: opacity 0.1s ease-in-out;
}

.calendarCell.room-available:hover .cal-create-reservation {
	opacity: 0.5;
}

.calendarCell.room-available:hover .cal-create-reservation:hover {
	opacity: 1;
}

.cal-create-reservation a {
	color: #fff;
	text-decoration: none;
}

.form-group.form-floating>label {
	top: -4px;
}

/* HTML: <div class="loader"></div> */
.preloader-element-outer {
	display: inline-block;
}

.preloader-element {
	width: 15px;
	aspect-ratio: 1;
	border-radius: 50%;
	display: block;
	position: relative;
	left: -38px;
	border: 2px solid #fff;
	animation: l20-1 0.8s infinite linear alternate, l20-2 1.6s infinite linear;
	opacity: 0;
	top: -7px;
}

@keyframes l20-1 {
	0% {
		clip-path: polygon(50% 50%, 0 0, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%)
	}

	12.5% {
		clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 0%)
	}

	25% {
		clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 100% 100%, 100% 100%)
	}

	50% {
		clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%)
	}

	62.5% {
		clip-path: polygon(50% 50%, 100% 0, 100% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%)
	}

	75% {
		clip-path: polygon(50% 50%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 50% 100%, 0% 100%)
	}

	100% {
		clip-path: polygon(50% 50%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 0% 100%)
	}
}

@keyframes l20-2 {
	0% {
		transform: scaleY(1) rotate(0deg)
	}

	49.99% {
		transform: scaleY(1) rotate(135deg)
	}

	50% {
		transform: scaleY(-1) rotate(0deg)
	}

	100% {
		transform: scaleY(-1) rotate(-135deg)
	}
}

.calendar-nav-buttons.disabled {
	background: #4b4646;
	pointer-events: none;
}

.availabilitycalendar.disabled {
	opacity: 0.4;
	pointer-events: none;
}