/*ANIMATIONS*/

.animate.prev.out {
    animation-name: slide-right-out;
    -webkit-animation-name: slide-right-out;
}
.animate.prev.in {
    animation-name: slide-right-in;
    -webkit-animation-name: slide-right-in;
}
.animate.next.out {
    animation-name: slide-left-out;
    -webkit-animation-name: slide-left-out;
}
.animate.next.in {
    animation-name: slide-left-in;
    -webkit-animation-name: slide-left-in;
}
.animate {
    animation-duration: 0.3s;
    animation-timing-function: ease-in-out;
    -webkit-animation-duration: 0.3s;
    -webkit-animation-timing-function: ease-in-out;
}

/* Lumina only: fades the calendar grid in from the swipe direction on period change. Keyframe names are
   matched in changePeriod's animationend handler. */
.CalendarControl--lumina .fc-view-harness.animate.lumina-fade {
    will-change: opacity, transform;
}
.CalendarControl--lumina .fc-view-harness.animate.lumina-fade.next {
    animation-name: lumina-fade-in-next;
    -webkit-animation-name: lumina-fade-in-next;
}
.CalendarControl--lumina .fc-view-harness.animate.lumina-fade.prev {
    animation-name: lumina-fade-in-prev;
    -webkit-animation-name: lumina-fade-in-prev;
}

/* Next: grid enters from the right (starts 6% right, faded out) and settles into place. */
@-webkit-keyframes lumina-fade-in-next {
    0%   { opacity: 0; -webkit-transform: translateX(6%); transform: translateX(6%); }
    100% { opacity: 1; -webkit-transform: translateX(0); transform: translateX(0); }
}
@keyframes lumina-fade-in-next {
    0%   { opacity: 0; -webkit-transform: translateX(6%); transform: translateX(6%); }
    100% { opacity: 1; -webkit-transform: translateX(0); transform: translateX(0); }
}
/* Prev: grid enters from the left (starts 6% left, faded out) and settles into place. */
@-webkit-keyframes lumina-fade-in-prev {
    0%   { opacity: 0; -webkit-transform: translateX(-6%); transform: translateX(-6%); }
    100% { opacity: 1; -webkit-transform: translateX(0); transform: translateX(0); }
}
@keyframes lumina-fade-in-prev {
    0%   { opacity: 0; -webkit-transform: translateX(-6%); transform: translateX(-6%); }
    100% { opacity: 1; -webkit-transform: translateX(0); transform: translateX(0); }
}
.animateZoom.zoomOut {
    animation-name: zoomIn;
    -webkit-animation-name: zoomIn;
}
.animateZoom.zoomOut {
    animation-name: zoomOut;
    -webkit-animation-name: zoomOut;
}
.animateZoom {
    position: relative;
    overflow: hidden;
    animation-duration: 0.9s;
    animation-timing-function: ease-in-out;
    -webkit-animation-duration: 0.9s;
    -webkit-animation-timing-function: ease-in-out;
}
/* SLIDE RIGHT */

@-webkit-keyframes slide-right-out {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
    100% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }
}
@keyframes slide-right-out {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
    100% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }
}
@-webkit-keyframes slide-right-in {
    0% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}
@keyframes slide-right-in {
    0% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}
/* SLIDE RIGHT */

@-webkit-keyframes slide-left-out {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
    100% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
}
@keyframes slide-left-out {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
    100% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
}
@-webkit-keyframes slide-left-in {
    0% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }
    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}
@keyframes slide-left-in {
    0% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }
    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}
/* SLIDE LEFT */

@-webkit-keyframes slide-left {
    0% {
        -webkit-transform: translateX(0%);
    }
    50% {
        -webkit-transform: translateX(-100%);
    }
    51% {
        -webkit-transform: translateX(100%);
    }
    100% {
        -webkit-transform: translateX(0%);
    }
}
@keyframes slide-left {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
    50% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
    51% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }
    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}
/* SLIDE RIGHT */

@-webkit-keyframes slide-right {
    0% {
        -webkit-transform: translateX(0%);
    }
    50% {
        -webkit-transform: translateX(100%);
    }
    51% {
        -webkit-transform: translateX(-100%);
    }
    100% {
        -webkit-transform: translateX(0%);
    }
}
@keyframes slide-right {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
    50% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }
    51% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}
/* SLIDE LEFT */

@-webkit-keyframes slide-left {
    0% {
        -webkit-transform: translateX(0%);
    }
    50% {
        -webkit-transform: translateX(-100%);
    }
    51% {
        -webkit-transform: translateX(100%);
    }
    100% {
        -webkit-transform: translateX(0%);
    }
}
@keyframes slide-left {
    0% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
    50% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
    51% {
        -webkit-transform: translateX(100%);
        transform: translateX(100%);
    }
    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }
}
/* ZOOM IN */

@-webkit-keyframes zoomIn {
    0% {
        -webkit-transform: scale(1, 1);
    }
    50% {
        -webkit-transform: scale(2, 2);
    }
    51% {
        -webkit-transform: scale(0.2, 0.2);
    }
    100% {
        -webkit-transform: scale(1, 1);
    }
}
@keyframes zoomIn {
    0% {
        -webkit-transform: scale(1, 1);
    }
    50% {
        -webkit-transform: scale(2, 2);
    }
    51% {
        -webkit-transform: scale(0.2, 0.2);
    }
    100% {
        -webkit-transform: scale(1, 1);
    }
}
/* ZOOM OUT */

@-webkit-keyframes zoomOut {
    0% {
        -webkit-transform: scale(1, 1);
    }
    50% {
        -webkit-transform: scale(0.2, 0.2);
    }
    51% {
        -webkit-transform: scale(2, 2);
    }
    100% {
        -webkit-transform: scale(1, 1);
    }
}
@keyframes zoomOut {
    0% {
        -webkit-transform: scale(1, 1);
    }
    50% {
        -webkit-transform: scale(0.2, 0.2);
    }
    51% {
        -webkit-transform: scale(2, 2);
    }
    100% {
        -webkit-transform: scale(1, 1);
    }
}
/************ Context Menu ***********/

.context-menu .fa {
    margin-right: 1em;
}
.header {

    height: 2.6em;
    background-color:@bg-dark-tone;
    padding-top: 0.3em;
}
.hidden {
    display: none;
}
.calendar-title {
    font-size: 1.5em;
    line-height: 45px;
}
.header .btn {
    margin: 3px;
}
/************** Bootstrap replacements ******/

.btn {
    display: inline-block;
    padding: 6px 12px;
    margin-bottom: 0;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.42857143;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;
}
.btn:focus {
    outline: none;
}
:focus {
    outline: none;
}
.header .btn-primary {
    color: @prime-fg;
    background-color: @prime-bg;
    border-color: @prime-bg;
}
.btn-lg {
    padding: 10px 16px;
    font-size: 18px;
    line-height: 1.33;
    border-radius: 6px;
}
.col-xs-9, .col-xs-3, .col-md-9, .col-md-3 {
    position: relative;
    min-height: 1px;
    float: left;
}
.col-xs-9, .col-md-9 {
    width: 75%;
}
.col-xs-3, .col-md-3 {
    width: 25%;
}
.pull-left {
    float: left;
    display: flex;
}
.pull-right {
    float: right;
    display: flex;
}
.pull-right.hidden {
    display: none;
}
.text-center {
    text-align: center;
}
.clearfix:before, .clearfix:after {
    display: table;
    content: " ";
}
.clearfix:after {
    clear: both;
}
.dropdown {
    position: relative;
    background: @background;
    z-index: 2;
    border-radius: 0.3em;
}


.CalendarPreviousButton,.CalendarNextButton,.CalendarDatePickerButton{
    width:5.35em;
    background:transparent;
    color:@prime-bg;
}

.CalendarControl{
    background-color: var(--fc-page-bg-color);
    color: var(--calendar-font-color);
}

/************** Event Custom Style ******/

.CalendarEventOuterContainer{
    height: 100%;
    display: flex;
    flex-direction: row;
    font-size: 0.95em;
    overflow: hidden;
}

.CalendarEventContextMenu{
    flex: 0 0 2em;
    background-size: 1.8em;
    background-repeat: no-repeat;
    border: none;
    height: 100%;
    padding:0;
    background-color:transparent;
    img{
        margin-right:0;
        height:1.65em;
        width:1.65em;
    }
}

.CalendarEventTextContainer{
    flex: 1 1 auto;
    overflow: hidden;
}

.CalendarEventFirstLineContainerAllDay{
    flex: 1 1 auto;
    height: 100%;
    overflow: hidden;
    word-break: normal;
    white-space: normal;
    img{
        margin-right: 0.2em;
    }
}
.CalendarEventFirstLineContainer{
    overflow: hidden;
    word-break: normal;
    img{
        margin-right: 0.2em;
    }
}

.CalendarEventSecondLineContainer{
    overflow: hidden;
    word-break: normal;
}

.CalendarEventPaddingTab{
    padding: 0.5em 0em 0.5em 0.5em;
}
.CalendarEventPaddingTabNoMenu{
    padding: 0.5em;
}
.CalendarEventPaddingPhone{
    padding: 0.3em;
}

/* Lumina rules for our own DOM. FC-DOM rules live in fullcalendar-custom.css. */

.CalendarControl--lumina {
    background-color: var(--slds-g-color-surface-1);
    color: var(--slds-g-color-on-surface-2);
    font-family: var(--slds-g-font-family);
}

/* Built-in header nav buttons (prev/next/date-picker) in Lumina; icons inherit the button color. */
.CalendarControl--lumina .CalendarPreviousButton,
.CalendarControl--lumina .CalendarNextButton,
.CalendarControl--lumina .CalendarDatePickerButton {
    color: var(--slds-g-color-accent-2);
}

.CalendarControl--lumina .CalendarDayHeader--lumina {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--slds-g-spacing-1);
}

.CalendarControl--lumina .CalendarDayHeader__number {
    font-family: var(--slds-g-font-family);
    font-size: var(--slds-g-font-scale-4);
    font-weight: var(--slds-g-font-weight-4);
    line-height: 32px;
    color: var(--slds-g-color-on-surface-2);
}

.CalendarControl--lumina .CalendarDayHeader__name {
    font-family: var(--slds-g-font-family);
    font-size: 17px;
    font-weight: var(--slds-g-font-weight-4);
    line-height: 22px;
    letter-spacing: 0.006em;
    color: var(--slds-g-color-on-surface-1);
}

.CalendarControl--lumina .CalendarDayHeader--today .CalendarDayHeader__number,
.CalendarControl--lumina .CalendarDayHeader--today .CalendarDayHeader__name {
    color: var(--slds-g-color-accent-2);
}

/* Tighter than legacy 0.5em. */
.CalendarControl--lumina .CalendarEventPaddingTabNoMenu {
    padding: var(--slds-g-spacing-1);
}

/* Event text sits on the contract-coloured event fill, so it uses the on-accent token
   (text/icon on a coloured surface) rather than surface-1 (a white background token). */
.CalendarControl--lumina .CalendarEventFirstLineContainer,
.CalendarControl--lumina .CalendarEventFirstLineContainerAllDay,
.CalendarControl--lumina .CalendarEventSecondLineContainer {
    color: var(--slds-g-color-on-accent-1);
    font-family: var(--slds-g-font-family);
    font-size: var(--slds-g-font-scale-1);
    font-weight: var(--slds-g-font-weight-6);
    line-height: 19px;
}

/* Second line (time) is regular weight; */
.CalendarControl--lumina .CalendarEventSecondLineContainer {
    font-weight: var(--slds-g-font-weight-4);
}

/* "+N more" overflow link */
.CalendarControl--lumina .fc-more-link {
    background-color: var(--slds-g-color-neutral-base-50); /* #757575 */
    color: var(--slds-g-color-surface-1);
    font-size: var(--slds-g-font-scale-1);
}