/* WRAPPER */
#wrapper {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* LOADER */
#loader {
    position: fixed;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: #F5F5F5;
    z-index: 99;
}  
#loader-image {
    width: 12.5rem;
    height: 12.5rem;
    margin-bottom: 2.75rem;
    z-index: 100;
}
#loader-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #616161;
}

/* MAIN */
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
    background-color: #FFFFFF;
}

/*iOS Disable Double Tap to Zoom*/
button {
    touch-action: manipulation;
}

/*Hide Mobile + Button*/
.fc-btnNewHolidayMobile-button {
    display: none;
}

/*Scrolling*/
.fc-scrollgrid-section-header .fc-scroller, .fc-scrollgrid-section-body:first-child .fc-scroller {
    overflow: unset!important;
}

/*Toolbar Height*/
.fc-header-toolbar {
    height: 2.9rem!important;
    margin-bottom: 0!important;
}

/*Day Row Height*/
.fc-col-header th {
    height: 3.75rem;
}

/*30min Cell Height*/
.fc-timegrid-slot {
    height: 2.531rem!important;
}

/*First-Hour Column Width*/
#calendar colgroup col {
    width: 3.188rem!important;
}

/*Sticky Controls*/
.fc-header-toolbar {
    position: static;
    top: 0;
    background-color: #FFFFFF;
    z-index: 10;
}

/*Sticky Date Row*/
thead:first-child {
    background-color: #FFFFFF;
    z-index: 10;
    position: sticky;
    top: 2.9rem;  /* Height of .fc-header-toolbar */
}

/*Sticky Full Day Row*/
.fc-scrollgrid-section-body:first-child  {
    position: sticky;
    top: 6.8rem;
    background-color: #FFFFFF;
    z-index: 10;
}
.fc-timegrid .fc-daygrid-day-top {
    display: none!important;
}
.fc-daygrid-body {
    width: 100%!important;
}

/*Remove Divider Between Full Day Row and Calendar*/
.fc-scrollgrid > tbody > tr:nth-child(2) {
    display: none;
}

/*Remove Today Highlight*/
.fc-day-today {
    background-color: unset!important;
}

/*BORDERS*/
* {
    border-color: #E0E0E0!important;
}
button, .fc-scrollgrid, .fc-scrollgrid-section-body > td, .fc-timegrid-slots td, .fc-timegrid .fc-daygrid-body .fc-day {
    border: none!important;
}
.fc-scrollgrid-section-header > th {
    border-left: none!important;
    border-right: none!important;
}
.fc-scroller th, .fc-event {
    border-top: none!important;
    border-right: none!important;
    border-bottom: none!important;
}
.fc-timegrid-now-indicator-arrow {
    border-bottom: none!important
}
.fc-timegrid thead th, .fc-col-header-cell, .fc-daygrid-day, .fc-timegrid-cols td, .fc-scrollgrid-sync-table {
    border-width: 0.1rem!important;
}
/*All-Day Row Border*/
.fc-daygrid-body {
    border-bottom: 0.1rem solid #E0E0E0!important;
}
/*Rows Whole Hour Border*/
.fc-timegrid-slots tr:nth-child(even) .fc-timegrid-slot-lane {
    border-bottom: 0.1rem solid #E0E0E0!important;
}
/*Rows Half Hour Border*/
.fc-timegrid-slots tr:nth-child(odd) .fc-timegrid-slot-lane {
    border-bottom: 0.1rem dashed #E0E0E0!important;
}
/*Month View Borders*/
.fc-dayGridMonth-view .fc-scrollgrid-section-header > th {
    border-top: 0.1rem solid #E0E0E0!important;
    border-bottom: 0.1rem solid #E0E0E0!important;
}

/*Remove Month View Event Dot*/
.fc-daygrid-event-dot {
    display: none!important;
}

/*Non Business Background*/
.fc-non-business {
    background-color: rgba(239,239,239,0.3)!important;
}

/*Hour Column Text*/
.fc-timegrid-slots tr td:first-child {
    padding-top: 0.2rem;
    vertical-align: top;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1rem;
    color: #616161;
}
.fc-timegrid-slots tr td:first-child .fc-timegrid-slot-label-frame {
    text-align: center;
}

/*Date Row Text and Styling*/
thead .fc-scrollgrid-sync-inner {
    padding-left: 0.625rem!important;
    padding-right: 0.625rem!important;
    padding-top: 0.313rem!important;
    padding-bottom: 0.438rem!important;
    text-align: left!important;
    font-weight: 400;
    color: #616161;
}
.fc-col-header-cell-cushion {
    padding: 0!important;
}
.fc-col-header-cell .fc-day-number {
    font-size: 1.5rem;
    line-height: 2rem;
}
.fc-col-header-cell .fc-weekday-name {
    font-size: 0.75rem;
    line-height: 0.938rem;
}

/*Today Date Cell Text and Styling*/
thead .fc-day-today .fc-scrollgrid-sync-inner {
    border-top: 0.125rem solid #5B5FC7!important;
    padding-top: 0.188rem!important;
    font-weight: 700;
    color: #5B5FC7;
}
.fc-col-header-cell.fc-day-today .fc-day-number {
    font-weight: 700;
}
.fc-col-header-cell.fc-day-today .fc-day-number {
    font-weight: 600;
}

/*Full Day Cell*/
.fc-daygrid-day-events {
    margin-top: 1px!important;
    margin-bottom: 0.125rem!important;
}

/*Top Toolbar - Padding*/
.fc-header-toolbar {
    padding-left: 1.25rem;
    padding-right: 1.875rem;
}

/*Top Toolbar - Hide Title*/
.fc-toolbar-chunk:nth-child(2) {
    /*.fc-toolbar-title*/
    display: none;
}

/*Top Toolbar - Buttons*/
.fc-toolbar-chunk {
    display: flex;
}
.fc-today-button svg, .fc-btnNewHoliday-button svg, .fc-btnView-button svg {
    margin-right: 0.625rem;
}
.fc-btnDate-button svg {
    margin-left: 0.625rem;
}
.fc .fc-button {
    margin: 0!important;
    height: 2rem;
    display: flex!important;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 400;
}
.fc .fc-button svg {
    width: 1rem;
    height: 1rem;
}
.fc .fc-button:hover {
    color: #5B5FC7!important;
}


/*Top Toolbar - Today Button*/
.fc .fc-today-button {
    padding: 0 0.75rem!important;
    opacity: 1!important;
    cursor: pointer;
    background-color: unset!important;
    color: #616161!important;

}

/*Top Toolbar - Prev and Next Buttons*/
.fc .fc-prev-button, .fc-next-button {
    padding: 0.25rem 0.125rem 0.125rem!important;
    width: 2.125rem;
    background-color: unset!important;
    color: #616161!important;
}
.fc .fc-prev-button svg, .fc-next-button svg {
    height: 1.25rem!important;
    width: 1.25rem!important;
}

/*Top Toolbar - Date Button*/
.fc .fc-btnDate-button {
    background-color: unset!important;
    color: #242424!important;
    font-weight: 700!important;
    text-wrap: nowrap;
}

/*Top Toolbar - New Holiday Button*/
.fc .fc-btnNewHoliday-button {
    margin-left: 0.625rem!important;
    padding: 0.313rem 0.75rem!important;
    border-radius: 0.25rem!important;
    background-color: #5B5FC7!important;
    color: #FFFFFF!important;
    font-weight: 500!important;
}
.fc .fc-btnNewHoliday-button svg {
    margin-right: 0.375rem!important;
}
.fc .fc-btnNewHoliday-button:hover {
    color: #FFFFFF!important;
    background-color: #4348A3!important;
}

/*Top Toolbar - View Button*/
.fc .fc-btnView-button {
    background-color: unset!important;
    color: #616161!important;
}

/*Top Toolbar - Date Picker Hide*/
#date-picker {
    opacity: 0;
    width: 0;
    margin: 0;
    z-index: -1;
}

/*Now Indicator Line https://github.com/fullcalendar/fullcalendar/issues/4609*/
.fc-timegrid-now-indicator-container {
    overflow: visible!important;
}
.fc-timegrid-now-indicator-arrow {
    margin: 0!important;
    width: calc(100vw - 3.188rem)!important;
    left: 3.188rem!important;
    border-top: 0.063rem dashed #DA3B01!important;
}
.fc-timegrid-now-indicator-line {
    border-top: 0.125rem solid #DA3B01!important;
}
.fc-timegrid-now-indicator-line::before,
.fc-timegrid-now-indicator-line::after {
    background-color: #DA3B01;
    content: "";
    width: 0.25rem;
    height: 0.25rem;
    border-radius: 50%;
    position: absolute;
}
.fc-timegrid-now-indicator-line::before {
    top: -0.188rem; /* Position dot at the beginning */
    left: -0.03rem;
}
.fc-timegrid-now-indicator-line::after {
    top: -0.188rem; /* Position dot at the end */
    right: -0.015rem;
}

/*All Event Boxes*/
.fc-event {
    margin-top: 0.0625rem!important;
    margin-bottom: 0.125rem!important;
    border-left: 0.25rem solid!important;
    border-radius: 0.25rem;
    padding: 0.25rem;
}
.fc-event-title {
    font-size: 0.75rem!important;
    font-weight: 600!important;
    line-height: 1.125rem!important;
    color: #3D3E78!important;
    flex-grow: 1;
}
.fc-event-title-container {
    order: 1;
    min-height: 1rem!important;
    flex-grow: unset!important;
    display: flex;
    align-items: center;
}
.fc-event-time {
    order: 2;
    font-size: 0.75rem!important;
    font-weight: 400!important;
    color: #3D3E78;
}
.fc-event .fc-event-main {
    padding: 0!important;
}

/*All-Day Event Boxes*/
.fc-event.fc-daygrid-event {
    padding-top: 1px;
    padding-bottom: 1px;
}
.fc-daygrid-day-frame, .fc-daygrid-day-events {
    min-height: unset!important;
}

/*Short Event Boxes*/
.fc-timegrid-event-short {
    padding: 0 0.25rem;
}
.fc-timegrid-event-short .fc-event-main-frame {
    align-items: center;
}
.fc-timegrid-event-short .fc-event-title {
    padding-right: 0.25rem;
    text-wrap: nowrap;
}
.fc-timegrid-event-short .fc-event-time::after {
    display: none;
}

/* PREVENT CHANGING EVENT COLORS */
.fc-v-event {
    background-color: inherit !important;
    border-color: inherit !important;
    color: inherit !important;
}

/* EVENT COLORS FOR USERS' EVENTS (https://paletton.com/ a https://coolors.co/0a3847-b5042f-ff3cc7-f0f600-00e5e8)*/
.fc-timegrid-event.category-adrien-decruyenaere, .fc-daygrid-event.category-adrien-decruyenaere {
    border-color: #DF9A57!important;
    background-color: #FFE9D3!important;
}
.fc-list-event.category-adrien-decruyenaere {
    border-color: #DF9A57!important;
}
.fc-timegrid-event.category-ralf-gutbrod, .fc-daygrid-event.category-ralf-gutbrod {
    border-color: #EEFC57!important;
    background-color: #FBFFD3!important;
}
.fc-list-event.category-ralf-gutbrod {
    border-color: #EEFC57!important;
}
.fc-timegrid-event.category-oliver-kundt,.fc-daygrid-event.category-oliver-kundt {
    border-color: #00B9AE!important;
    background-color: #CAF4F1!important;
}
.fc-list-event.category-oliver-kundt {
    border-color: #00B9AE!important;
}
.fc-timegrid-event.category-alexander-martinez, .fc-daygrid-event.category-alexander-martinez {
    border-color: #5FAD41!important;
    background-color: #DCFBD0!important;
}
.fc-list-event.category-alexander-martinez {
    border-color: #5FAD41!important;
}
.fc-timegrid-event.category-jan-roller, .fc-daygrid-event.category-jan-roller {
    border-color: #3F88C5!important;
    background-color: #CDE3F5!important;
}
.fc-list-event.category-jan-roller {
    border-color: #3F88C5!important;
}
.fc-timegrid-event.category-edith-waldvogel, .fc-daygrid-event.category-edith-waldvogel {
    border-color: #FF3CC7!important;
    background-color: #F8CDEC!important;
}
.fc-list-event.category-edith-waldvogel {
    border-color: #FF3CC7!important;
}

.fc-timegrid-event.category-petr-cervinka, .fc-daygrid-event.category-petr-cervinka {
    border-color: #A27035!important;
    background-color: #FFEBD3!important;
}
.fc-list-event.category-petr-cervinka {
    border-color: #A27035!important;
}
.fc-timegrid-event.category-matthias-mächler, .fc-daygrid-event.category-matthias-mächler {
    border-color: #9CAFB7!important;
    background-color: #CCE8F4!important;
}
.fc-list-event.category-matthias-mächler {
    border-color: #9CAFB7!important;
}
.fc-timegrid-event.category-tommy-ransmark, .fc-daygrid-event.category-tommy-ransmark {
    border-color: #947BD3!important;
    background-color: #DBD0F6!important;
}
.fc-list-event.category-tommy-ransmark {
    border-color: #947BD3!important;
}

/* EVENT COLORS FOR PUBLIC HOLIDAYS */
.fc-event.rd-public-holidays {
    border-color: #5B5FC7!important;
    background-color: #DCE0FA!important;
}

/* EVENT COLORS FOR VACATIONS */
.fc-timegrid-event.rd-vacations, .fc-daygrid-event.rd-vacations {
    border-color: #B5042F!important;
    background-color: #FCD1DC!important;
    cursor: pointer;
}
.fc-list-event.rd-vacations {
    border-color: #B5042F!important;
}


/* HOLIDAY AND VACATION ICONS */
.rd-public-holidays svg {
    color: #5B5FC7;
    width: 0.875rem!important;
    height: auto!important;
    margin-right: 0.25rem;
}
.rd-vacations svg {
    color: #B5042F;
    width: 0.875rem!important;
    height: auto!important;
    margin-right: 0.25rem;
}

/*DAY AND WEEK VIEW*/
.fc-timegrid .fc-event-time {
    white-space: nowrap;
}

/* MONTH VIEW */
.fc-dayGridMonth-view .fc-daygrid-body, .fc-dayGridMonth-view .fc-scrollgrid-sync-table, .fc-dayGridMonth-view .fc-scrollgrid-section-header .fc-col-header {
    width: 100%!important;
}
.fc-dayGridMonth-view .fc-col-header .fc-day {
    height: 1.75rem;
}
.fc-dayGridMonth-view thead .fc-scrollgrid-sync-inner {
    padding-top: 0!important;
    padding-bottom: 0.313rem!important;
    padding-left: 0.5rem!important;
    padding-right: 0!important;
    position: absolute;
    bottom: 0;
}
.fc-dayGridMonth-view .fc-day-past {
    background-color: rgba(239,239,239,0.3)!important;
}
.fc-dayGridMonth-view .fc-non-business {
    background-color: unset!important;
}
.fc-dayGridMonth-view .fc-daygrid-day-top {
    flex-direction: unset!important;
    opacity: unset!important;
    margin-bottom: 0.25rem;
}
.fc-dayGridMonth-view .fc-daygrid-day-number {
    margin-left: 0.25rem;
    margin-top: 0.1rem;
    font-size: 0.875rem!important;
    font-weight: 400!important;
    color: #616161!important;
}
.fc-dayGridMonth-view .fc-day-today {
    background-color: rgba(91, 95, 199, 0.04)!important;
    border-color: #5B5FC7!important;
    border-width: 0.125rem!important;
}
.fc-dayGridMonth-view .fc-day-today .fc-daygrid-day-number {
    font-weight: 600!important;
    border-radius: 100%;
    background-color: #5B5FC7;
    height: 1.375rem;
    width: 1.375rem;
    color: white!important;
    margin-left: 0.25rem!important;
    margin-top: 0.3rem!important;
    padding-left: 0.188rem;
    padding-top: 0.125rem;
}
.fc-dayGridMonth-view .fc-daygrid-block-event .fc-event-main {
    display: flex;
    align-items: center;
}
.fc-dayGridMonth-view .fc-event-main-frame {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
}
.fc-dayGridMonth-view .fc-event-title-container {
    flex-grow: 1!important;
    min-height: 1.5rem!important;
    overflow: hidden;
    display: flex;
    align-items: center;
}
/* Month View - "+2 more" Text */
.fc-daygrid-more-link {
    height: 1.625rem;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #F0F0F0;
    color: #616161;
    font-size: 0.75rem!important;
}
.fc-daygrid-more-link:hover {
    background-color: #E7E7E7!important;
}
/* Month View - More Events Popover */
.fc-more-popover {
    border-radius:0.25rem;
    position: sticky!important;
}
.fc-more-popover-misc {
    display: none;
}
.fc-more-popover .fc-event-main-frame {
    display: flex;
    flex-direction: column;
}
.fc-more-popover .fc-popover-header {
    background-color: unset;
    padding: 0.78rem 0.625rem;
    border-bottom: 0.1rem solid #E0E0E0;
    font-size: 1.063rem;
    font-weight: 600;
    color: #616161;
}
.fc-more-popover .fc-popover-body {
    min-width: unset!important;
}

/* MORE EVENTS POPOVER WIDTH */
/* Work Week View */
.fc-timeGridWeek-view + .fc-more-popover {
    width: calc((100% / 5) - 0.8rem);
}
/* Week View */
.fc-timeGridWeek-view + .fc-more-popover {
    width: calc((100% / 5) - 0.8rem);
}
/* Month View */
.fc-dayGridMonth-view + .fc-more-popover {
    width: calc(100% / 7);
}
/* Day View */
.fc-timeGridDay-view + .fc-more-popover {
    width: calc(100% - 3.188rem);
    left: 3.188rem!important;
}

/* AGENDA VIEW - Mobile */
/*Agenda View - No events to display */
.fc-list .fc-list-empty {
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.25rem;
    color: #616161;
    background-color: #FFFFFF!important;
}
/*Agenda View - Styling*/
.fc-list .fc-scroller {
    display: flex!important;
    align-items: flex-start;
    justify-content: flex-start!important;
    padding-left: 4.5vw;
}
.fc-list .fc-list-table, .fc-list .fc-list-table tr {
    width: 91vw!important;
}
.fc-list * {
    background-color: #FFFFFF!important;
}

.fc-list .fc-list-day-cushion, .fc-list .fc-list-day th, .fc-list .fc-list-event td, .fc-list .fc-list-event .fc-list-event-time {
    border: none!important;
    background-color: #FFFFFF!important;
}
.fc-list .fc-list-day th {
    position: sticky!important;
}
.fc-list .fc-list-day-cushion {
    padding: 0!important;
    height: 3rem;
    display: flex;
    align-items: center;
}
.fc-list .fc-list-day-header {
    font-size: 4.3vw!important;
    font-weight: 600;
}
.fc-list .fc-list-day.fc-day-today .fc-list-day-header {
    color: #5B5FC7;
}
.fc-list .fc-list-day.fc-day-today .fc-list-today-divider {
    color: #C7C7C7;
    margin: 0 0.75rem;
}

.fc-list .fc-list-event {
    display: flex;
    height: 3rem;
    border-width: 0.375rem!important;
    margin-top: 2vh!important;
    margin-bottom: 3.2vh!important;
    align-items: center;
}

.fc-list .fc-list-event-graphic, .fc-list .fc-event-time {
    display: none;
}
.fc-list .fc-list-event-time {
    font-size: 3vw;
    font-weight: 500;
    width: 5.625rem!important;
    padding: 0 0 0 2vw!important;
}
.fc-list .fc-event-start-time {
    color: #242424!important;
    padding-bottom: 0.35rem;
}
.fc-list .fc-event-duration {
    color: #616161!important;
}
.fc-list .fc-list-event-title {
    padding: 0!important;
}
.fc-list .fc-list-event-title .fc-event-title {
    font-size: 4vw!important;
    font-weight: 400!important;
    color: #242424!important;
}

.fc-list .rd-common-calendar .fc-list-event-title::after {
    content: 'Microsoft Teams Meeting';
    font-size: 3vw;
    font-weight: 400;
    line-height: 1rem;
    color: #616161;
}

.fc-list .rd-public-holidays.fc-list-event {
    background-color: #FFFFFF!important;
    height: 2rem;
}
.fc-list .rd-public-holidays .fc-list-event-time {
    display: none
}
.fc-list .rd-public-holidays .fc-list-event-title {
    padding: 0 0 0 2vw!important;
    width: 100%;
}
.fc-list .rd-public-holidays .fc-list-event-title .fc-event-title {
    font-size: 3vw!important;
    padding-left: 1vw;
    overflow: hidden;
}

/* ------------------------------------------ */

/* RESPONSIVITY - SMALL SCREENS */
@media screen and (max-width: 800px) {
    .fc-header-toolbar {
        padding-left: 1rem!important;
        padding-right: 1rem!important;
    }
    .fc-toolbar-chunk:first-child {
        width: 100%;
    }
    .fc-header-toolbar .fc-btnDate-button {
        margin-left: auto!important;
    }
}

/* RESPONSIVITY - MOBILE DEVICES */
body.mobile-device #loader-image {
    width: 35vw; /*12.5rem*/
    height: 35vw; /*12.5rem*/
    margin-bottom: 3vh; /*2.75rem*/
}
body.mobile-device .fc-header-toolbar {
    padding-left: 4vw!important; /*0.75rem*/
    padding-right: 3vw!important; /*1.25rem*/
    height: 3.25rem!important;
}
body.mobile-device .fc-header-toolbar .fc-btnView-button, body.mobile-device .fc-header-toolbar .fc-btnNewHoliday-button {
    display: none!important;
}
body.mobile-device .fc-toolbar-chunk:first-child {
    width: 100%;
}

body.mobile-device .fc .fc-today-button {
    order: 4;
    margin-left: 3vw!important; /*1rem*/
    font-size: 0!important;
}
body.mobile-device .fc-today-button svg {
    width: 5.5vw!important; /*1.8rem*/
    height: 5.5vw!important; /*1.8rem*/
    margin-right: 0!important;
    color: #000000!important;
}
body.mobile-device .fc .fc-prev-button {
    order: 2;
    margin-right: 0.75vw!important; /*0.25rem*/
}
body.mobile-device .fc .fc-next-button {
    order: 3;
    margin-left: 0.75vw!important; /*0.25rem*/
}
body.mobile-device .fc .fc-prev-button svg, body.mobile-device .fc .fc-next-button svg {
    height: 6.5vw!important; /*2.5rem*/
    width: 6.5vw!important; /*2.5rem*/
    color: #000000!important;
}
body.mobile-device .fc-header-toolbar .fc-btnDate-button {
    order: 1;
    margin-right: auto!important;
    margin-left: 0!important;
    padding-left: 0!important;
    font-size: 6.6vw!important; /*2.25rem*/
    color: #000000!important;
}
body.mobile-device .fc .fc-prev-button:hover svg, body.mobile-device .fc .fc-next-button:hover svg, body.mobile-device .fc-today-button:hover svg {
    color: #5B5FC7!important;
}

/* Mobile - Add New Holiday Button */
.fc .fc-btnNewHolidayMobile-button {
    display: none!important;
}
body.mobile-device .fc .fc-btnNewHolidayMobile-button {
    display: flex!important;
    position: fixed;
    z-index: 98;
    right: 4.1vw;
    bottom: 4.1vw;
    width: 14.25vw!important;
    height: 14.25vw!important;
    border-radius: 100%!important;
    background-color: #5B5FC7!important;
    box-shadow: rgba(0, 0, 0, 0.5) 2px 2px 8px;
    color: #FFFFFF;
}
body.mobile-device .fc .fc-btnNewHolidayMobile-button:hover {
    color: #FFFFFF!important;
}
body.mobile-device .fc .fc-btnNewHolidayMobile-button svg {
    width: 4.5vw;
    height: 4.5vw;
}