﻿:root {
    --grid-component-border-radius: 10px;
    --grid-component-border-colour: #DCDCDC;
    --grid-component-shadow-colour: #d3d3d345;
}

.grid-component {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.grid-component .grid-filter-container,
.grid-component .grid-data-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.grid-component .subcontent > div 
{
    margin-bottom: 10px;
}

    .grid-component .grid-data-column, .grid-component .grid-data-row .grid-data-column {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        flex-direction: column;
    }

    .grid-component .grid-filter-container > .grid-filter-box,
    .grid-component .grid-data-row > div {
        flex: 1 1 204px;
        min-width: 200px;
        max-width: 100%;
        display: flex;
        flex-direction: row;
        align-items: center;

        word-break: break-word;
        overflow-wrap: break-word;
    }

    .grid-component .grid-data-column > div, .grid-component .grid-data-column > a {
        width: 100%;
        flex-grow: 1;

        flex-direction: row;
        align-content: center;
        justify-content: center;
        align-items: center;
    }

    .grid-component .no-grow, .grid-component .grid-data-row .no-grow {
        flex: 0 0 auto;
    }

    @media (max-width: 991.98px) {

        .grid-component .no-grow.grow-on-medium,
        .grid-component .grid-data-row .no-grow.grow-on-medium {
            flex: 1 1 auto;
            min-width: 0;
        }
    }

    .grid-component .grid-filter-container > .grid-filter-box > div {
        width: 100%;
    }

    .grid-component .no-min-width, .grid-component .grid-data-row .no-min-width {
        min-width: 0px;
    }

.grid-component .card {
    flex-direction: column;
    background-color: #fff;
    box-shadow: 0px 0px 10px var(--grid-component-shadow-colour) !important;
    border-radius: var(--grid-component-border-radius);
    border: 1px solid var(--grid-component-border-colour);
}

.grid-component > .data-section {

    display: flex;
    flex-direction: column;
    gap: 10px;
}

.grid-component .alternate-children-bg > div:nth-child(odd) {
    background-color: #d2eeeb45; /* Light grey for odd items */
}

.grid-component .alternate-children-bg > div:nth-child(even) {
    background-color: #ffffff; /* White for even items */
}

.grid-component .thin-padding 
{
    padding: 10px;
}

.grid-component .medium-padding {
    padding: 15px;
}

.grid-component .thick-padding {
    padding: 20px;
}
.grid-component .data-section .paging {
    text-align: center;
    margin-top: 10px;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    gap: 0px;
    flex-wrap: wrap;
}

    .grid-component .data-section .paging .paging-button:first-child {
        border-top-left-radius: 5px;
        border-bottom-left-radius: 5px;
    }

    .grid-component .data-section .paging .paging-button:last-child {
        border-top-right-radius: 5px;
        border-bottom-right-radius: 5px;
    }

.grid-component .data-section .paging-button, .grid-component .data-section .paging-ellipsis {
    border: 1px solid var(--default-border-color);
    padding: 5px 10px;
    background-color: #fff;
}

    .grid-component .data-section .paging-button.disabled {
    pointer-events: none;
    background-color: #ccc;
    color: grey;
        }

    .grid-component .data-section .paging-button:not(.paging:first-child):not(.paging:last-child), .grid-component .data-section .paging-ellipsis {
        border-right: 0px solid var(--default-border-color);
    }

.grid-component .loader-placeholder {
    display: none;
}

.grid-component .show-placeholder {
    display: block !important;
}

.grid-component .placeholder-content {
    background-color: #afafaf;
    border-radius: 0px;
}



.grid-component .placeholder-content {
    background: linear-gradient(270deg, #b0b0b0, #e3e3e3, #d2d2d2);
    background-size: 400% 400%;
    -webkit-animation: LoadContentAnimation 3s ease infinite;
    -moz-animation: LoadContentAnimation 3s ease infinite;
    -o-animation: LoadContentAnimation 3s ease infinite;
    animation: LoadContentAnimation 3s ease infinite;
}

.grid-component .placeholder-content-warning {
    background: linear-gradient(270deg, #d7c694, #eee4a8, #e6d5a291);
    background-size: 400% 400%;
    -webkit-animation: LoadContentAnimation 3s ease infinite;
    -moz-animation: LoadContentAnimation 3s ease infinite;
    -o-animation: LoadContentAnimation 3s ease infinite;
    animation: LoadContentAnimation 3s ease infinite;
}

.grid-component .placeholder-content-info {
    background: linear-gradient(270deg, #cedde5, #bde1f4, #b1d1e1);
    background-size: 400% 400%;
    -webkit-animation: LoadContentAnimation 3s ease infinite;
    -moz-animation: LoadContentAnimation 3s ease infinite;
    -o-animation: LoadContentAnimation 3s ease infinite;
    animation: LoadContentAnimation 3s ease infinite;
}

@-webkit-keyframes LoadContentAnimation {
    0% {
        background-position: 0% 39%
    }

    50% {
        background-position: 100% 62%
    }

    100% {
        background-position: 0% 39%
    }
}

@-moz-keyframes LoadContentAnimation {
    0% {
        background-position: 0% 39%
    }

    50% {
        background-position: 100% 62%
    }

    100% {
        background-position: 0% 39%
    }
}

@-o-keyframes LoadContentAnimation {
    0% {
        background-position: 0% 39%
    }

    50% {
        background-position: 100% 62%
    }

    100% {
        background-position: 0% 39%
    }
}

@keyframes LoadContentAnimation {
    0% {
        background-position: 0% 39%
    }

    50% {
        background-position: 100% 62%
    }

    100% {
        background-position: 0% 39%
    }
}

[data-grid-content-type="subcontent"] {
    display: none;
}

[data-grid-content-type="subcontent"].isVisible {
    display: block;
}

.loader-placeholder.show-placeholder + .subcontent-rows {

    display: none;
}

.grid-component .accordion-arrow {

    display: flex;
    flex-direction: row;
    justify-content: center;
    padding: 3px 15px;
}

.grid-component .paging-button:not(.paging-button.disabled) {

    cursor: pointer;
}

@media (max-width: 768px) {

    .grid-component .grid-data-column, .grid-component .grid-data-row .grid-data-column {
        flex: auto;
        width: 100%;
    }
}

.grid-component .icon {
    width: 24px;
    height: 24px;
    margin-right: 5px;
}