:root {
    /* heights & widths */
    --mud-appbar-height: 20px;
    --page-title-height: 46px;
    /* top menu */
    --menu-icon-size: 24px;
    --user-icon-size: 24px;
    /*logo name and path*/
    --app-logo-height: 50px;
    --app-logo-width: 208px;
    /*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;
}

.emptyLayout {
    height: 100dvh;
    background-color: var(--mud-palette-background-gray);
}

.emptyLayoutActions {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 1;
    display: flex;
    gap: 8px;
}

.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 {
    height: 100%;
    min-height: 0;
    overflow: hidden;

    &.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);
    }
}

.pageTitle {
    height: var(--page-title-height);
    background-color: var(--mud-palette-surface-title);
}

.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 {
    background-image: var(--app-loader-path);
    height: 80px;
    width: 80px;
}

/*************************/
/****** MENU BUTTON ******/
/*************************/

.menuPopover {
    border: none !important;
    border-radius: var(--mud-default-borderradius) !important;
    background-color: var(--mud-palette-background) !important;
    margin-top: 10px !important;
    box-shadow: var(--mud-elevation-8) !important;
}

.menuButton {
    color: var(--mud-palette-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;

    & > *:first-child * {
        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;
    }

    &:hover {
        background-color: var(--mud-palette-transparent) !important;
        color: var(--mud-palette-tertiary) !important;

        & > *:first-child * {
            background-color: var(--mud-palette-transparent) !important;
            color: var(--mud-palette-tertiary) !important;
        }
    }

    &:focus {
        color: var(--mud-palette-tertiary) !important;

        & > *:first-child * {
            background-color: var(--mud-palette-transparent) !important;
            color: var(--mud-palette-tertiary) !important;
        }
    }

    & .menuText {
        position: relative;
        top: 1px !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;
}

.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-tertiary) !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;
}

.quickSearchOuterContainer, .quickSearchInnerContainer {
    width: 210px;
    height: 35px;
    padding: 0;
}

.quickSearchOuterContainer {
    background-color: var(--mud-palette-gray-default);
    margin-top: 1px;
    margin-left: 10px;
}

.quickSearchInnerContainer {
    background-color: var(--mud-palette-overlay-light);

    &:hover {
        background-color: var(--mud-palette-overlay-dark);
    }
}

.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 {
        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-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;
}

/*************************/
/******* DROPZONES *******/
/*************************/

.dropZoneDrag {
    background-color: var(--mud-palette-surface);
    margin: 10px;
    flex-grow: 1;
    border-radius: var(--mud-default-borderradius);
}

/*************************/
/******* 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 **********/
/*************************/
.bannerAppLogo {
    background: image-set(var(--app-logo-path) 3x) left / contain no-repeat;
    height: var(--app-logo-height);
    width: var(--app-logo-width);
}

/*************************/
/***** CARD FLIPPING *****/
/*************************/

.flippingCard {
    position: relative;
    width: 100%;
    max-width: 300px;
    height: 220px;
    transform-style: preserve-3d;
    perspective: 800px;

    & .front, & .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;
    }

    & .front {
        background-color: var(--mud-palette-background);

        & .contents {
            margin-top: 50px;

            & > svg {
                position: absolute;
                top: -80px;
                left: 60px;
            }
        }
    }

    & .back {
        background-color: var(--mud-palette-gray-lighter);
        transform: rotateY(180deg);
    }

    &:hover .front {
        transform: rotateY(-180deg);
    }

    &:hover .back {
        transform: rotateY(0deg);
    }

    & .contents {
        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;
}

/*************************/
/******* DATAGRID ********/
/*************************/
.mud-table {
    /*color: var(--mud-palette-text-primary);*/
    background-color: var(--mud-palette-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%;
}
