@charset "UTF-8";

#calendar {
}

#calendar #calendarElements {
	display: flex;	
}

#calendar #calendarElements #days {
	width: 100%;
	user-select: none;
	overflow-x: auto;
	display: flex; /* public - have tables next to each other*/
}

#calendar .calendarDayColumn {
	width: 100%;
	text-align: center;
	padding: 0 2px 0 2px;
}

#calendar .calendarDayColumn[displayStatus=loaded] {
	display: none;
}

#calendar .calendarDayColumn[displayStatus=displayed] {
	display: visible;
}

#calendar .calendarDayColumn input {
	font-family: 'Baloo';
	font-size: 100%;
	width: 100%;
	text-align: center;
	border: 0 !important;
	background-color: transparent;
	padding: 0 !important;
	box-shadow: 0 0 0 0 #fff;
}

#calendarContainer {
	width: 100%;
}

#navigation {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 0 10px 0;
	margin-bottom: 20px;
	border-radius: 10px;
	background-color:#FFF;
	user-select: none;
}

#navigation #currentWeekTitle {
    background-color: #e4e6eb;
    padding: 4px 10px 4px 10px;
   	border-radius: 10px;
   	text-align: center;
}

#navigation #weekPrevious {
	margin: 0 10px 0 10px;
    cursor: pointer;
    background-color: #e4e6eb;
	width: 32px;
	height: 32px;
	border-radius: 100%;
	padding: 4px;
	text-align: center;
}

#navigation #weekNext {
	margin: 0 10px 0 10px;
    cursor: pointer;
    background-color: #e4e6eb;
    width: 32px;
	height: 32px;
	border-radius: 100%;
	padding: 4px;
	text-align: center;
}

#calendar .slot {
	border-radius: 10px;
    padding: 4px;
    margin-top: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    word-break: break-word;
    box-sizing: border-box;
    transition: 0.22s;
}

#calendar .slot:not([status="free"]):not([status="freePublic"]):hover {
	filter: brightness(86%); /* Darken the element; adjust percentage as needed */
}

#calendar .slot:first-child {
    margin-top: 0;
}

#calendar .slot[status=free] {
	background-color: #75ddc0;
	border-left: 10px solid #17aa89;
}

#calendar .slot[status=free]:hover{
	background-color: #59d3b1;
}

#calendar .slot[status=freePublic] {
	background-color: #48d197;
	border: 1px solid #48d197;
}

#calendar .slot[status=freePublic]:hover {
	background-color: #39c292;
}

#calendar .slot[status=free][isDefaultAndDisabled='1'] {
	background-color: #e4e6eb;
	border-left: 10px solid #aeaeae;
}

#calendar .slot[status=free][isDefaultAndDisabled='1']:hover {
	background-color: #d8dadf;
}

#calendar .slot[status=free] .remove {
	display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    width: 28px;
    height: 28px;
    margin: 0 4px 0 4px;
    font-size: 80%;
    background-color: rgba(255, 255, 255, .5);
    color:red;
}

/* Handle display of free slot(s) overlapped by previous occupied reservation */
#calendar .freeSlotGroupisOverlappedByOccupiedReservation {
	background-color: red;
	padding: 3px 6px 3px 6px;
}

#calendar .freeSlotGroupisOverlappedByOccupiedReservation .overlappedSlot {
	width: 100%;
    border-radius: 10px;
	padding: 4px 0 4px 0;
    display: flex; /* Required for cross/delete icon display in proAgendaDefaultSlot.php */
    align-items: center; /* Required for cross/delete icon display in proAgendaDefaultSlot.php */
    justify-content: center; /* Required for cross/delete icon display in proAgendaDefaultSlot.php */
	background-color: pink;
}	

#calendar .endTime {
	border-radius: 0 0 10px 10px;
	padding: 0 0 4px 0;
	text-align: center;
	display: flex;
	margin: auto;
	align-items: center;
	color: white;
	justify-content: center;
	background-color: red;
}

/* / Handle display of free slot(s) overlapped by previous occupied reservation */

#calendar .slot[status=occupied] {
/*	background-color: red;
	color: #FFF;*/
    flex-direction: column; /* Used when both stime and reservation name are displayed */
}

#calendar .slot[status=occupied]:hover {
/*	background-color: #f00f1f;*/
}

#calendar .slot[status=occupied][isDefaultAndDisabled='1'] {
	color: darkred;
	background-color: #f3a7aa;
}

#calendar .slot[status=semiOccupied] {
	background-color: orange;
	text-overflow: ellipsis; /* If name is to long for div */
	white-space: nowrap; /* If name is to long for div */
	overflow: hidden; /* If name is to long for div */
    flex-direction: column; /* Used when both stime and reservation name are displayed */
}

#calendar .slot[status=semiOccupied]:hover {
	background-color: #ff9b15;
}

#calendar .slot[status=semiOccupied][isDefaultAndDisabled='1'] {
	color: saddlebrown;
	background-color: #f8ceaf;
}

/* Used in proPublic */
#calendar .slot[isPending='1'] {
	background-color: #f1f1f1 !important;
	/*color: grey;
	text-overflow: ellipsis; /* If name is to long for div */
	/*white-space: nowrap; /* If name is to long for div */
/*	overflow: hidden; /* If name is to long for div */
/*	pointer-events: none;*/ /* Depreciated, pending slots are clickable and display a msg */
}

/* Used in proPublic */
#calendar .slot[isOverlapping='1'] {
	background-color: #f1f1f1 !important;
	/*color: grey;
	text-overflow: ellipsis; /* If name is to long for div */
	/*white-space: nowrap; /* If name is to long for div */
/*	overflow: hidden; /* If name is to long for div */
/*	pointer-events: none;*/ /* Depreciated, Overlapping slots are clickable and display a msg */
}

#calendar .updateSlot {
	background-color: #e4e6eb;
	color: #000;
	border-radius: 10px;
	padding: 4px;
    margin: 4px 0 0 0;
	cursor: pointer;
	transition: background-color 0.3s ease;
}

#calendar .updateSlot:hover {
	background-color: #d8dadf;
}

/* Pro Editor */

#timetable {
	font-size: 90%;
	width: 100%;
	text-align: center;
}

#timetable .actions {
	display: flex;
    justify-content: center;
    align-items: baseline;
    align-content: space-evenly;
    margin-left: 2px;
    align-items: center;
}

#timetable .actions .insert {
	display: flex;
    justify-content: center;
    align-items: center;
    width: 24px;
    height: 24px;
    border-radius: 10px;
    cursor: pointer;
    font-size: 132%;
    border-radius: 100%;
    font-decoration: bold;
    cursor: pointer;
    background-color: white;
    color: #0d755b;
    padding: 4px;
    margin-right: 4px;
    box-shadow: 0 0 20px -10px #3d3d3d;
}

#timetable .actions .remove {
	margin-left: 4px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 24px;
    font-size: 50%;
    height: 24px;
    border-radius: 50%;
    cursor: pointer;
    background-color: white;
    padding: 4px;
    box-shadow: 0 0 20px -10px #3d3d3d;
}

#timetable td {
	padding: 2px !important;
}

#timetable td input {
	padding: 6px 0px 6px 0 !important;
	border: 1px solid lightgrey;
	border-radius: 10px;
	text-align: center;
}

.timezoneInformation {
	float: right;
	background-color: rgba(255, 255, 255, .5);
    border-radius: 10px;
    margin-top: 12px;
    padding: 2px 8px 2px 8px;
    font-size: 80%;
}

.formSub {
	display: none;
	padding-top: 14px; /* Required to leave space for the close button */
}

.agendaNext {
	margin-left: 2px;
}

.agendaPrevious .button {
	background-color: #e4e6eb;
	border-radius: 100%;
    height: 32px;
    min-width: 32px;
	text-align: center;
	display: table-cell;
	vertical-align: middle;
	cursor: pointer;
	user-select: none; /* Disable accidental selection*/
}

.agendaPrevious .button:hover {
	background-color: #d8dadf;
}

.agendaPrevious .button::after {
	content: '◀';
	font-size: 120%;
}

.agendaPrevious[status=disabled] .button {
	background-color: #F6F6F6;
	cursor: default;
	color: grey;
}

.agendaPrevious[status=disabled] .button::after {
	content: '⛒';
	color: #ABABAB;
	font-size: 110%;
}

.agendaPrevious {
	margin-right: 2px;
}

.agendaNext .button {
	background-color: #e4e6eb;
    border-radius: 100%;
    height: 32px;
    min-width: 32px;
    text-align: center;
    display: table-cell;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
}

.agendaNext .button::after{
	content: '▶';
	font-size: 120%;
}

.agendaNext .button:hover {
	background-color: #d8dadf;
}

.agendaNext[status=disabled] .button {
	background-color: #F6F6F6;
	cursor: default;
	color: grey;
}

.agendaNext[status=disabled] .button::after {
	content: '⛒';
	color: #ABABAB;
	background-color: #F6F6F6;
	font-size: 110%;
}

.calendarDayColumn .dayTitle {
	/*background-color: #f1f1f1;*/
    font-size: 90%;
    border-radius: 10px;
}

.multipleHours {
    padding: 10px;
    background-color: white;
    border: 1px solid #ced0d4;
    border-radius: 0px 10px 10px 10px;
}

.multipleHours #hourslist .hour {
	display: flex;
	flex-direction: row;
	margin-top: 10px;
	width: 100%;
}

.multipleHours #hourslist .hour input{
	border-radius: 10px;
/*	border: 1px solid #e4e6eb;*/
	background-color: #FFF;
}

.multipleHours #hourslist .hour .close {
    font-size: 70%;
    margin-left: 10px;
    min-height: 24px;
    min-width: 24px;
    border-radius: 100%;
   /* box-shadow: 0 0 18px -8px;*/
    cursor: pointer;
   	user-select: none;
}

.multipleHours #hourslist input{
	border-radius: 10px;
	/*border: 1px solid #e4e6eb;*/
	background-color: #FFF;
}

.multipleHours div {
	display: flex; 
	align-items: center;
	flex-direction: column;
	justify-content: center;
	margin-top: 1px; /* display hack */
}

.multipleHours div #insert {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 24px;
	width: 24px;
	font-size: 80%;
	margin: 10px 0 0 0;
	padding: 6px;
	border-radius: 100%;
/*	box-shadow: 0 0 18px -8px;*/
	cursor: pointer;
	user-select: none;
}

.multipleDays {
	padding: 10px;
    background-color: white;
    border: 1px solid #ced0d4;
    border-radius: 0px 10px 10px 10px;
}

.changeDateSlotSelection {
	padding: 10px;
    border-radius: 10px;
    background-color: white;
  /*  box-shadow: 0 0 24px rgb(74 85 95 / 10%);*/
	border-radius: 0 10px 10px 10px;
	border: 1px solid #ced0d4;
}

.changeDateSlotSelection > #slotsList .loadedGroup {
	display: none;	/* Displayed via javascript/ajax */
}

.changeDateSlotSelection > #slotsList .loadedGroup .date {
	margin: 10px 0 4px 0;
	color: rgba(0, 0, 0, 0.8);
}

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots {
	display: flex;
	flex-wrap: wrap;
}

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot{
	cursor: pointer;
	padding: 4px 10px 4px 10px;
	border-radius: 10px;
	margin: 2px;
	user-select: none;
}
/*
.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot:hover {
	background-color: #2abe68;
	border-radius: 10px;
*/

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot[idSlot=none]{
	background-color: #e4e6eb;
}

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot[status=free] {
    background-color: #3ecf8e;
}

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot[status=free]:hover {
    background-color: #2abe68;
}

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot[status=semiOccupied] {
    background-color: orange;
}

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot[isSelected=yes] {
	background-color: black !important; /* overwrite slot color */
	color: #FFF;
}

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot[isPending='1'] {
	background-color: #f1f1f1 !important;
    /*pointer-events: none;*/ /* Commented, a error will be displayed is the slot is selected*/
}

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot[isOverlapping='1'] {
	background-color: #f1f1f1 !important;
    /*pointer-events: none;*/ /* Commented, a error will be displayed is the slot is selected*/
}

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot[isPending='1'][isSelected=yes] {
	background-color: #9f9f9f !important;
    /*pointer-events: none;*/ /* Commented, a error will be displayed is the slot is selected*/
}

.changeDateSlotSelection > #slotsList .loadedGroup .dateSlots .slot[isOverlapping='1'][isSelected=yes] {
	background-color: #9f9f9f !important;
    /*pointer-events: none;*/ /* Commented, a error will be displayed is the slot is selected*/
}

.changeDateSlotSelection > #slotNext {
	background-color: #e4e6eb;
	cursor: pointer;
	width: 50px;
	text-align: center;
	padding: 4px;
	margin-top: 8px;
	border-radius: 10px;
}

#proAgendaCustomInformation {
	margin-top: 20px;	
}

.proAgendaContactElement {
    margin-top: 10px;
    padding: 10px;
    background-color: #e4e6eb;
    border-radius: 10px;
    box-shadow: 0 0 24px rgb(74 85 95 / 10%);
    cursor: pointer;
}

.proAgendaContactElement:hover {
	background-color: #d8dadf;
}

.servicesList {
	width: 100%;
	display: inline-block;
	background-color: white;
	padding: 10px;
	border-radius: 0 10px 10px 10px;
/*	box-shadow: 0 0 24px rgb(74 85 95 / 10%);*/
    border: 1px solid #ced0d4;
	box-sizing: border-box;
}

#proAgengaContactAutoCompleteNotif {
	display: none;
}

#trigger_proAgendaUpdateServicesCancel {
	background-color: #e4e6eb;
    color: #000;
}

#trigger_proAgendaUpdateServicesCancel:hover {
	background-color: #d8dadf;
}

#proAgendaSlotSelectionReservationsResults .result {
	margin-top: 10px;
    padding: 10px;
    background-color: #e4e6eb;
    border-radius: 10px;
    cursor: pointer;
}

#proAgendaSlotSelectionReservationsResults .result_overlap {
	margin-top: 10px;
    padding: 10px;
    background-color: #fff;
    border-radius: 10px;
    cursor: pointer;
    border: 1px solid #d3d3d3;
}

#proAgendaSlotSelectionReservationsResults .result[color=occupiedFull] {
	background-color:red;
}

#proAgendaSlotSelectionReservationsResults .result[color=occupiedSemi] {
	background-color:orange;
}

#proAgendaSlotSelectionReservationsResults .result:hover {
	background-color: #d8dadf;
}

#proAgendaSlotSelectionReservationsResults .resultPaymentMissing {
	display:flex;
	margin-top: 10px;
    padding: 10px;
    background-color: #eef2f7;
    border-radius: 10px;
  /*  box-shadow: 0 0 24px rgb(74 85 95 / 10%);*/
}

#proAgendaSlotSelectionReservationsResults .resultPaymentMissing:first-child {
	margin-top: 0; /* Required to remove margin-top from first .proAgendaSlotSelectionReservationsResults child div (.result) */
}

#proAgendaSlotSelectionReservationsResults .resultPaymentMissing .blinkingElement {
	margin-right: 10px;
}

.proAgendaSlotInformation {
	display: flex;
	align-items: center; 
    background-color: #FFF;
    border-radius: 10px;
    padding: 10px;
    box-shadow: 0 0 24px rgb(74 85 95 / 10%);
    color: rgba(0, 0, 0, 0.8);
    margin-bottom: 10px;
}

.proAgendaSlotInformation img {
	width: 20px;
    height: 20px;
    margin-right: 12px;
    margin-left: 3px;
    transform: rotate(-20deg);
}

.proAgendaSlotInformation .imgUTF8 {
	border-radius: 10px;
	padding-left: 7px;
	padding-right: 7px;
	margin-right: 8px;
	background-color: #e4e6eb;
	box-shadow: 0 0 24px rgb(74 85 95 / 10%);
}

.proAgendaSlotInformation #copyInClipboard {
	cursor: pointer;
	margin-left: auto;
	padding: 0 4px 0 4px;
	border-radius: 100px;
	font-size: 100%;
}

.proAgendaSlotInformation a {
	color: #0d755b;
}

.proAgendaSlotInformation a:hover {
	color: black;
}

.proAgendaSlotReturn {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
    margin-bottom: 10px;
    cursor: pointer;
}

.proAgendaSlotReturn #icon {
	width: 40px;
	height: 40px;
	text-align: center;
	font-size: 180%;
	border-radius: 100px;
	background-color: white;
	box-shadow: 0 0 24px rgb(74 85 95 / 10%);
}

.proAgendaSlotReturn #text {
	margin-left: 10px;
}

/* Used by reservation form, specific services are displayed when/if an address is selected */
#selectMultipleServices {
	display: none;
	margin-top: 10px;
}