html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    background-color: var(--cui-color-bg, #111111);
    color: var(--cui-color-text-primary, #eeeeee);
    font-family: 'IBM Plex Sans', system-ui, -apple-system, BlinkMacSystemFont, '.SFNSText-Regular', sans-serif;
}

/* Light theme override */
html.cui--white,
html.cds--white {
    background-color: var(--cui-color-bg, #fcfcfc);
    color: var(--cui-color-text-primary, #202020);
}

html.cui--white body,
html.cds--white body {
    background-color: var(--cui-color-bg, #fcfcfc);
    color: var(--cui-color-text-primary, #202020);
}

#root {
    margin: 0;
    padding: 0;
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
}

#loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    text-align: center;
    -webkit-box-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    align-items: center;
    /* We need such high z-index to hide frontEgg loading box*/
    z-index: 2000000001;

    .loading-container {
        margin: auto;
        padding: 2rem;
        width: 100%;
        max-width: 640px;
    }

    .loading-heading {
        font-size: 1.25rem;
        font-weight: 400;
        line-height: 1.4;
        letter-spacing: 0.32px;
    }

    .loading-support {
        display: block;
        text-align: center;
        margin-top: 1rem;
        font-size: 0.875rem;
        font-weight: 400;
        line-height: 1.28572;
        letter-spacing: 0.16px;
        word-wrap: break-word;
        overflow-wrap: break-word;

        a {
            display: inline;
            padding-bottom: 0.25rem;
            white-space: nowrap;
        }
    }

    .loading-card {
        padding: 1.5rem;
        margin-top: 1rem;
    }

    .loading-grid {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 0.5rem;
    }

    .loading-block {
        height: 1rem;
        border-radius: 0.25rem;
        animation: pulse 2s infinite;
    }

    .loading-block:nth-child(5n + 1) {
        animation-delay: 0.1s;
    }

    .loading-block:nth-child(5n + 2) {
        animation-delay: 0.2s;
    }

    .loading-block:nth-child(5n + 3) {
        animation-delay: 0.3s;
    }

    .loading-block:nth-child(5n + 4) {
        animation-delay: 0.4s;
    }

    .loading-block:nth-child(5n + 5) {
        animation-delay: 0.5s;
    }
}

.cds--g100,
.cui--g100 {
    #loading {
        background-color: var(--cui-color-bg, #111111);
        color: var(--cui-color-text-primary, #eeeeee);

        .loading-support {
            color: var(--cui-color-text-secondary, #b4b4b4);
        }

        .loading-support a {
            color: var(--cui-color-loading-link, #9eb1ff);
        }

        .loading-support a:hover {
            color: var(--cui-color-loading-link-hover, #d6e1ff);
        }

        .loading-block {
            background-color: var(--cui-color-loading-block-background, #435db1);
        }

        .loading-block:nth-child(5n + 1) {
            background-color: var(--cui-color-loading-block-background-1, #435db1);
        }

        .loading-block:nth-child(5n + 2) {
            background-color: var(--cui-color-loading-block-background-2, #2870bd);
        }

        .loading-block:nth-child(5n + 3) {
            background-color: var(--cui-color-loading-block-background-3, #11809c);
        }

        .loading-block:nth-child(5n + 4) {
            background-color: var(--cui-color-loading-block-background-4, #207e73);
        }

        .loading-block:nth-child(5n + 5) {
            background-color: var(--cui-color-loading-block-background-5, #2a7e68);
        }
    }
}

.cds--white,
.cui--white {
    #loading {
        background-color: var(--cui-color-bg, #fcfcfc);
        color: var(--cui-color-text-primary, #202020);

        .loading-support {
            color: var(--cui-color-text-secondary, #646464);
        }

        .loading-support a {
            color: var(--cui-color-loading-link, #3a5bc7);
        }

        .loading-support a:hover {
            color: var(--cui-color-loading-link-hover, #1f2d5c);
        }

        .loading-block {
            background-color: var(--cui-color-loading-block-background, #8da4ef);
        }

        .loading-block:nth-child(5n + 1) {
            background-color: var(--cui-color-loading-block-background-1, #8da4ef);
        }

        .loading-block:nth-child(5n + 2) {
            background-color: var(--cui-color-loading-block-background-2, #5eb1ef);
        }

        .loading-block:nth-child(5n + 3) {
            background-color: var(--cui-color-loading-block-background-3, #3db9cf);
        }

        .loading-block:nth-child(5n + 4) {
            background-color: var(--cui-color-loading-block-background-4, #53b9ab);
        }

        .loading-block:nth-child(5n + 5) {
            background-color: var(--cui-color-loading-block-background-5, #56ba9f);
        }

    }
}


@keyframes pulse {

    0%,
    100% {
        opacity: 0.3;
        transform: scale(0.95);
    }

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

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}