:root {
    /* heights & widths */
    --banner-height: 100px;
    --banner-fixed-height: 100px;
    --mud-appbar-height: 20px;
    --modern-layout-top-padding: 0px;
    --logo-container-width: 200px;
    --client-logo-height: 300px;
    --client-logo-width: 500px;
    --page-title-height: 46px;
    /* top menu */
    --menu-icon-size: 24px;
    --user-icon-size: 24px;
    /* Banner logo animation */
    --anime-time: 8s;
    --box-width: 200px;
    --box-height: 70px;
    --clip-distance: 0.0;
    --path-width: 1px;
    --main-color: var(--mud-palette-primary);
    /* derived sizes for logoContainer */
    --clip-width: calc( var(--box-width) * (1 + (var(--clip-distance) * 2)) );
    --clip-height: calc( var(--box-height) * (1 + (var(--clip-distance) * 2)) );
    /*logo name and path*/
    --app-logo-height: 50px;
    --app-logo-width: 208px;
    --app-logo-full-path: "/img/logo/optix_light.png";
    --app-logo-path: "/img/logo/";
    --app-logo-name: "optix";
    --client-logo-path: "/img/logo/";
    --client-logo-name: "car_light";
    /*bkg gradient*/
    --app-gradient-start: var(--mud-palette-primary-darken);
    --app-gradient-end: var(--mud-palette-tertiary-darken);
    /*opacity*/
    --page-title-opacity: 0.09;
    --page-title-animation-duration: 2000ms;
    --theme-toggle-transition-time: 300ms;
    --global-transition-time: 200ms;
}

/*** TRANSITIONS ***/
* {
    /*transition: background var(--theme-toggle-transition-time) linear, background-color var(--theme-toggle-transition-time) linear;*/
    -webkit-transition: background var(--theme-toggle-transition-time) linear, background-color var(--theme-toggle-transition-time) linear;
    -ms-transition: background var(--theme-toggle-transition-time) linear, background-color var(--theme-toggle-transition-time) linear;
    -o-transition: background var(--theme-toggle-transition-time) linear, background-color var(--theme-toggle-transition-time) linear;
    -ms-transition: background var(--theme-toggle-transition-time) linear, background-color var(--theme-toggle-transition-time) linear;
}

html,
body {
    height: 100%;
    margin: 0;
}

footer {
    height: 17px;
    width: 100%;
    position: absolute;
    bottom: 0px;

    * {
        font-size: 0.7rem;
        color: var(--mud-palette-gray-default);
        cursor: default;
    }
}


.body-container {
    position: relative;
    z-index: 1000 !important;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.pageContainer {
    height: calc(100dvh - var(--mud-appbar-height) - 10px) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    padding-left: 0px;
    padding-right: 0px;
    padding-top: 0px;
    padding-bottom: 8px;
}

.DialogContainer {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    padding-top: 10px;
    padding-bottom: 40px;
}

.scrollContainer {
    flex: 1 1 auto;
    min-height: 0 !important;
    overflow: hidden !important;
    width: 100% !important;
    height: 100%;
}

.stackedScrollContainer {
    flex: 1 1 auto;
    overflow: hidden !important;
    width: 100% !important;
    height: calc(100dvh - var(--mud-appbar-height) - 120px);
    border-radius: var(--mud-default-borderradius);
}

.scrollSection {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    -ms-overflow-style: none !important;
    scrollbar-width: none !important;

    &::-webkit-scrollbar {
        display: none !important;
    }
}

.sectionContainer {
    border: solid 0px var(--mud-palette-tertiary);
    border-radius: var(--mud-default-borderradius) !important;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

    .sectionContainer.light {
        background: url(./img/bkg_light.svg) no-repeat bottom fixed, #a0a7ad;
    }

    .sectionContainer.dark {
        background: url(./img/bkg_dark.svg) no-repeat bottom fixed, radial-gradient(circle at top left, #313a46, #0b0e11);
    }




.pageTitle {
    height: var(--page-title-height);
    width: 100%;
    background-color: var(--mud-palette-primary);
    border-radius: var(--mud-default-borderradius) var(--mud-default-borderradius) 0 0;
}

.pageContent {
    height: calc(100% - var(--page-title-height));
}

.bottomPageIcon {
    position: absolute;
    bottom: 40px;
    right: 25px;
    font-size: 6rem;
    color: var(--mud-palette-dark-text);
    opacity: var(--page-title-opacity);
    animation: fadeIn ease-in-out var(--page-title-animation-duration);
    -webkit-animation: fadeIn ease var(--page-title-animation-duration);
    -moz-animation: fadeIn ease var(--page-title-animation-duration);
    -o-animation: fadeIn ease var(--page-title-animation-duration);
    -ms-animation: fadeIn ease var(--page-title-animation-duration);
}


/*.pageContainer {
    height: 100%;

    &.light {
        background: url(./img/bkg_light.svg) no-repeat bottom fixed, #a0a7ad;
    }

    &.dark {
        background: url(./img/bkg_dark.svg) no-repeat bottom fixed, radial-gradient(circle at top left, #313a46, #0b0e11);
    }
}

.DialogContainer {*/
    /*height: calc(80dvh - var(--mud-appbar-height) - 6px) !important;*/
    /*display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    padding-top: 10px;
    padding-bottom: 40px;
}

.scrollContainer {
    height: 100%;
    width: 100%;
}

.scrollSection {
    height: 100%;
    width: 100%;
    min-height: 0;
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;

    &::-webkit-scrollbar {
        display: none;
    }
}*/

/********************/
/****** LOADER ******/
/********************/
.custom-loader {
    width: 80px;
    height: 80px;
}

/*************************/
/****** MENU BUTTON ******/
/*************************/

.menuPopover {
    border: none !important;
    border-radius: var(--mud-default-borderradius) !important;
    background-color: var(--mud-palette-appbar-background) !important;
    margin-top: 10px !important;
    box-shadow: var(--mud-elevation-8) !important;
}

.menuButton {
    color: var(--mud-palette-text-primary) !important;
    background-color: var(--mud-palette-transparent) !important;
    text-transform: none !important;
    min-width: 0px !important;
    transition: color var(--global-transition-time) ease-in-out;
    -webkit-transition: color var(--global-transition-time) linear;
    -ms-transition: color var(--global-transition-time) linear;
    -o-transition: color var(--global-transition-time) linear;
    -ms-transition: color var(--global-transition-time) linear;
}

    .menuButton > *:first-child * {
        /*color: var(--mud-palette-text-primary) !important;*/
        background-color: var(--mud-palette-transparent) !important;
        min-width: 0px !important;
        transition: color var(--global-transition-time) ease-in-out;
        -webkit-transition: color var(--global-transition-time) linear;
        -ms-transition: color var(--global-transition-time) linear;
        -o-transition: color var(--global-transition-time) linear;
        -ms-transition: color var(--global-transition-time) linear;
    }

    .menuButton:hover {
        background-color: var(--mud-palette-transparent) !important;
        color: var(--mud-palette-primary-text) !important;
    }

        .menuButton:hover > *:first-child * {
            background-color: var(--mud-palette-transparent) !important;
            color: var(--mud-palette-primary-text) !important;
        }

    .menuButton:focus {
        color: var(--mud-palette-primary-text) !important;
    }

        .menuButton:focus > *:first-child * {
            background-color: var(--mud-palette-transparent) !important;
            color: var(--mud-palette-primary-text) !important;
        }

/********************/
/****** BADGES ******/
/********************/

.toolbar .mud-badge.mud-badge-top.right.mud-badge-overlap {
    width: 16px;
    height: 16px;
    min-width: 16px;
    inset: auto calc(100% - 10px) calc(100% - 16px) auto;
    font-size: 0.8em;
}


.menuIcon {
    background-color: var(--mud-palette-transparent) !important;
    color: var(--mud-palette-gray-default) !important;
    font-size: var(--menu-icon-size) !important;
    min-width: 0px !important;
}

    .menuIcon > *:first-child {
        background-color: var(--mud-palette-transparent) !important;
        font-size: var(--menu-icon-size) !important;
    }

    .menuIcon * {
        background-color: var(--mud-palette-transparent) !important;
        font-size: var(--menu-icon-size) !important;
    }


.userIcon {
    background-color: var(--mud-palette-transparent) !important;
    color: var(--mud-palette-gray-default) !important;
    font-size: var(--user-icon-size) !important;
    min-width: 0px !important;
    padding: 0px !important;
}

    .userIcon > *:first-child {
        background-color: var(--mud-palette-transparent) !important;
        font-size: var(--user-icon-size) !important;
    }

    .userIcon * {
        background-color: var(--mud-palette-transparent) !important;
    }

.menuText {
    position: relative;
    top: 1px !important;
}

.menuStack {
    width: 180px !important;
    gap: 0 !important;
    padding: 10px !important;
}

.menuUnderline {
    font-size: 1rem;
    color: #ffffff;
    position: relative;
    display: inline-block;
}

    .menuUnderline::after,
    .menuUnderline::before {
        content: '';
        position: absolute;
        width: 100%;
        height: 2px;
        background: var(--mud-palette-primary);
        bottom: -1px;
        left: 0;
        transform: scaleX(0);
        transform-origin: right;
        transition: transform 0.4s ease-out;
    }

    .menuUnderline::before {
        top: -1px;
        transform-origin: left;
    }

    .menuUnderline:hover::after,
    .menuUnderline:hover::before {
        transform: scaleX(1);
    }

.currentPageTopText {
    font-size: 1.3em !important;
    font-weight: 400 !important;
    color: var(--mud-palette-text-dark) !important;
    letter-spacing: 3px !important;
    right: 6.5rem !important;
    white-space: nowrap;
    cursor: default !important;
    left: 10px;
    position: relative;
    top: 0px;
}

@keyframes fadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: var(--page-title-opacity);
    }
}

@-moz-keyframes fadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: var(--page-title-opacity);
    }
}

@-webkit-keyframes fadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: var(--page-title-opacity);
    }
}

@-o-keyframes fadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: var(--page-title-opacity);
    }
}

/*************************/
/******** BUTTONS ********/
/*************************/

.svgButton {
    padding: 0 !important;
    margin: 0 !important;
    transform: scale(1);
    transition: transform 0.5s;
    min-width: 0px;
}

    .svgButton:hover {
        background-color: transparent !important;
        transform: scale(1.2);
    }

/*************************/
/****** QUICKSEARCH ******/
/*************************/
.quickSearch * {
    opacity: 1 !important;
}

.quickSearch .mud-input-label-outlined.mud-input-label-margin-dense {
    transform: translate(10px, 1px) scale(1) !important;
    color: var(--mud-palette-primary-text) !important;
    transition: opacity ease-in-out 500ms;
    opacity: 1 !important;
}

.quickSearch .mud-shrink ~ label.mud-input-label.mud-input-label-inputcontrol,
.quickSearch .mud-input:focus-within ~ label.mud-input-label.mud-input-label-inputcontrol {
    transform: translate(10px, 1px) scale(1) !important;
    opacity: 0.1 !important;
}

.quickSearchContainer {
    width: 210px !important;
    background-color: var(--mud-palette-overlay-light) !important;
    padding-top: 0px !important;
    padding-bottom: 0px !important;
    padding-left: 0px !important;
    padding-right: 0px !important;
    height: 35px;
    margin-top: 1px !important;
    margin-left: 10px !important;
}

    .quickSearchContainer:hover {
        background-color: var(--mud-palette-gray-dark) !important;
    }

.quickSearchInput {
    padding-right: 0px !important;
    padding-inline-end: 0px !important;
    padding-top: 0px !important;
    padding-bottom: 0px !important;
    margin: 0px !important;
    line-height: 1.2em !important;
}

    .quickSearchInput > .mud-input-outlined-border {
        border-style: none !important;
    }

    .quickSearchInput > *:first-child {
        padding-top: 2px !important;
        background-color: var(--mud-palette-transparent) !important;
        transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms !important;
    }

    .quickSearchInput > .mud-select {
        /*display: flex;*/
        flex-grow: 0 !important;
        position: relative;
    }

.quickSearchPopover {
    visibility: visible !important;
    width: 210px !important;
    border: none !important;
    border-radius: var(--mud-default-borderradius) !important;
    background-color: var(--mud-palette-appbar-background) !important;
    margin-top: 15px !important;
    box-shadow: var(--mud-elevation-8) !important;
}

.noItemPopover {
    gap: 0px !important;
}

.NoSearchPopover {
    display: none !important;
}

/*************************/
/****** CHECK BOXES ******/
/*************************/

.checkBox {
    color: var(--mud-palette-text-primary) !important;
    background-color: var(--mud-palette-transparent) !important;
    transition: color var(--global-transition-time) ease-in-out;
    -webkit-transition: color var(--global-transition-time) linear;
    -ms-transition: color var(--global-transition-time) linear;
    -o-transition: color var(--global-transition-time) linear;
    -ms-transition: color var(--global-transition-time) linear;
}

    .checkBox > *:first-child * {
        color: var(--mud-palette-text-primary) !important;
        min-width: 0px !important;
        transition: color var(--global-transition-time) ease-in-out;
        -webkit-transition: color var(--global-transition-time) linear;
        -ms-transition: color var(--global-transition-time) linear;
        -o-transition: color var(--global-transition-time) linear;
        -ms-transition: color var(--global-transition-time) linear;
    }

    .checkBox:hover {
        background-color: var(--mud-palette-transparent) !important;
        color: var(--mud-palette-primary-text) !important;
    }

        .checkBox:hover > *:first-child * {
            background-color: var(--mud-palette-transparent) !important;
            color: var(--mud-palette-primary-text) !important;
        }


/*************************/
/********* TABS **********/
/*************************/

.tabs .mud-tab {
    background-color: var(--mud-palette-transparent) !important;
    color: var(--mud-palette-text-primary) !important;
    transition: color var(--global-transition-time) ease-in-out;
    -webkit-transition: color var(--global-transition-time) linear;
    -ms-transition: color var(--global-transition-time) linear;
    -o-transition: color var(--global-transition-time) linear;
    -ms-transition: color var(--global-transition-time) linear;
}

    .tabs .mud-tab:hover {
        cursor: pointer;
        background-color: var(--mud-palette-transparent) !important;
        color: var(--mud-palette-primary-text) !important;
    }

.tabs .mud-tab-slider {
    background: var(--mud-palette-primary-text);
}

    .tabs .mud-tab-slider.mud-tab-slider-horizontal {
        height: 1px;
        bottom: 0;
        transition: left .3s cubic-bezier(0.64, 0.09, 0.08, 1);
        will-change: left;
    }

.tabs .mud-tab-active .treeViewLabel {
    color: var(--mud-palette-text-primary) !important;
}

.mud-tab {
    width: 100%;
    display: inline-flex;
    padding: 6px 12px;
    min-height: 48px;
    flex-shrink: 0;
    font-weight: 100 !important;
    line-height: 1.75;
    user-select: none;
    white-space: normal;
    letter-spacing: .02857em;
    text-transform: none !important;
    text-align: center;
    align-items: center;
    justify-content: center;
    transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
}


/*************************/
/****** TREE VIEW * ******/
/*************************/
/*mud-treeview-item-content*/

.appTreeView .mud-treeview-item-content {
    background-color: var(--mud-palette-transparent) !important;
    color: var(--mud-palette-text-primary) !important;
    transition: color var(--global-transition-time) ease-in-out;
    -webkit-transition: color var(--global-transition-time) linear;
    -ms-transition: color var(--global-transition-time) linear;
    -o-transition: color var(--global-transition-time) linear;
    -ms-transition: color var(--global-transition-time) linear;
}

    .appTreeView .mud-treeview-item-content:hover {
        cursor: pointer;
        background-color: var(--mud-palette-transparent) !important;
        color: var(--mud-palette-primary-text) !important;
    }

.appTreeView .mud-treeview.mud-treeview-selected-primary .mud-treeview-item-content.mud-treeview-item-selected {
    color: var(--mud-palette-primary-text) !important;
    /*--mud-ripple-color: var(--mud-palette-primary);
    background-color: var(--mud-palette-primary-hover);*/
}

.appTreeView .mud-input-control {
    margin-top: 0px;
    margin-bottom: 0px;
    padding: 0px 0px; 
}

/*************************/
/******* DROPZONES *******/
/*************************/

.dropZone {
    background-color: var(--mud-palette-transparent) !important;
    flex-grow: 1;
    border: 1px solid transparent;
    border-radius: var(--mud-default-borderradius);
    /*border-radius: 0px !important;*/
    padding: 10px;
}

/*.dropZone .mud-list-item > *:first-child * {
        background-color: var(--mud-palette-transparent);
        color: var(--mud-palette-text-primary);
        transition: color 300ms ease-in-out;
        -webkit-transition: color 300ms linear;
        -ms-transition: color 300ms linear;
        -o-transition: color 300ms linear;
        -ms-transition: color 300ms linear;
    }

    .dropZone .mud-list-item:hover {
        background-color: var(--mud-palette-transparent);
        color: var(--mud-palette-primary-text);
    }

        .dropZone .mud-list-item:hover > *:first-child * {
            background-color: var(--mud-palette-transparent);
            color: var(--mud-palette-primary-text);
        }*/

.dropZoneDrag {
    background-color: var(--mud-palette-surface) !important;
    margin: 10px;
    /*border: 1px solid var(--mud-palette-primary);
    border-radius: var(--mud-default-borderradius)*/
}

.dropContainer {
    display: flex;
    flex-grow: 1;
    width: 100%;
    border-color: transparent;
}



/*************************/
/******* LOADING ********/
/*************************/
.mud-progress-circular-svg {
    color: var(--mud-palette-primary-text) !important;
}

.loading-text {
    color: var(--mud-palette-primary-text) !important;
}

.blurBackground {
    /*backdrop-filter: blur(2px) !important;*/
}


/*************************/
/********* LOGO **********/
/*************************/
.clientLogoDark {
    opacity: 0.02;
    height: var(--client-logo-height);
}

.clientLogoLight {
    filter: brightness(0) saturate(0%) invert(100%) sepia(0%) saturate(0%) hue-rotate(138deg) brightness(1%) contrast(50%);
    opacity: 0.1;
}

.bannerAppLogo {
    background: image-set(var(--app-logo-full-path) 3x) left / contain no-repeat;
    height: var(--app-logo-height);
    width: var(--app-logo-width);
}
/*************************/
/***** FLOATING DIV ******/
/*************************/

.centerCenterDiv {
    position: absolute;
    width: 200px;
    height: 200px;
    top: calc(100vh /2);
    margin-top: calc(calc(calc(200px / 2) * -1) - 86px);
    left: 50%;
    margin-left: -100px;
}

/*************************/
/********* CHIP **********/
/*************************/

.claimOverview {
    top: -30px !important;
    position: relative;
}

.chipLabel {
    background-color: transparent !important;
    cursor: default !important;
}
/*************************/
/***** CARD FLIPPING *****/
/*************************/

.flippingCard {
    position: relative;
    width: 100%;
    max-width: 300px;
    height: 220px;
    /*margin: 1rem;*/
    transform-style: preserve-3d;
    perspective: 800px;
}

    .flippingCard .front, .flippingCard .back {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        border: solid 1px var(--mud-palette-transparent);
        border-radius: 25px;
        -webkit-backface-visibility: hidden;
        backface-visibility: hidden;
        transform-style: preserve-3d;
        transition: transform 0.8s ease-in-out;
    }

        .flippingCard .front .img, .flippingCard .back .img {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            -o-object-fit: cover;
            object-fit: cover;
            border-radius: 10px;
            filter: grayscale(70%) brightness(40%);
        }

    .flippingCard .front {
        /*background: var(--mud-palette-appbar-background) url( /img/bkg4.svg) no-repeat bottom;*/
        background-color: var(--mud-palette-appbar-background);
    }

    .flippingCard .back {
        background-color: var(--mud-palette-gray-light);
        transform: rotateY(180deg);
    }

    .flippingCard:hover .front {
        transform: rotateY(-180deg);
    }

    .flippingCard:hover .back {
        transform: rotateY(0deg);
    }

    .flippingCard .contents {
        color: var(--mud-palette-tertiary);
        text-align: center;
        transform: translateZ(50px);
    }

/*************************/
/***** IMAGE PREVIEW *****/
/*************************/

.preview-image-shell {
    position: relative;
    width: 100%;
    max-width: 90vw;
    aspect-ratio: 4 / 3;
    max-height: 75vh;
    overflow: hidden;
}

.preview-image {
    display: block;
    max-width: 100%;
    max-height: 75vh;
    object-fit: contain;
}

.preview-nav {
    position: absolute !important;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background-color: rgba(0, 0, 0, 0.45) !important;
    color: white !important;
}

.preview-nav-left {
    left: 12px;
}

.preview-nav-right {
    right: 12px;
}

.preview-panzoom {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

    .preview-panzoom > div {
        width: 100%;
        height: 100%;
    }

.preview-image-panzoom {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    cursor: grab;
}


/*** CARD TEXT ***/
.cardTitle {
    font-size: 1.2em !important;
    font-weight: 400 !important;
    color: var(--mud-palette-primary-text) !important;
}

.cardSubtitle {
    font-size: 0.8rem !important;
    font-weight: 100 !important;
    color: var(--mud-palette-text-secondary) !important;
}

.cardDescription {
    font-size: 0.9em !important;
    font-weight: 200 !important;
    /*font-style: italic !important;*/
    color: var(--mud-palette-tertiary) !important;
}


/*************************/
/******* DATAGRID ********/
/*************************/
.mud-table {
    /*color: var(--mud-palette-text-primary);*/
    background-color: var(--mud-palette-appbar-background) !important;
    border-radius: var(--mud-default-borderradius);
    transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
}

.clickable-row {
    cursor: pointer;
    transition: background-color 0.15s;
}


/****************************/
/******* STATUS LINE ********/
/****************************/
.statusTimeLine {
    /*background-color: var(--mud-palette-primary-text) !important;*/
}

.teamAvatar {
    height: 18px;
    width: 18px;
    border-radius: 50%;
}
