html, body, app {
    height: 100%;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

.truncate {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#bottom-aligned-container {
    display: flex;
    flex-flow: column nowrap;
    height: 100%;
}

#bottom-aligned-container > :first-child {
    margin-top: auto !important;
}

#right-aligned-container {
    display: flex;
    flex-flow: column nowrap;
    width: 100%;
    height: 100%;
}

.mud-table-root .mud-table-head .mud-table-cell {
    font-weight: 700;
}

.mud-list-item-icon {
    min-width: 10px;
    margin-right: 8px;
}

.scrollbar {
    --scrollbar-color-thumb: var(--mud-palette-primary);
}

/* Modern browsers with `scrollbar-*` support */
@supports (scrollbar-width: auto) {
    .scrollbar {
        scrollbar-color: var(--mud-palette-primary) var(--mud-palette-background-gray);
    }
}

/* Legacy browsers with `::-webkit-scrollbar-*` support */
@supports selector(::-webkit-scrollbar) {
    .scrollbar::-webkit-scrollbar-thumb {
        background: var(--mud-palette-primary);
    }
}

.scroll-x {
    overflow-x: auto;
    scrollbar-gutter: stable;
    touch-action: pan-x;
    overscroll-behavior: none;
}

.scroll-y {
    overflow-y: auto;
    scrollbar-gutter: stable;
    touch-action: pan-y;
    overscroll-behavior: none;
}

.pulse {
    transform-origin: center center;
    animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.3);
        opacity: 0.7;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}