/* Force 100% height for all parent tags */
html, body {
    height: 100%;
    min-height: 100%;
}

html {
}

/* prevent horizontal overflow and set default background colour */
body {
    /*overflow-x: hidden;
    background: #eee;*/
}

/* hide asp.net tags. otherwise layout breaks */
.aspNetHidden {
    display: none;
}

/* Style .NET RadioButtonList and .NET CheckBoxList to match layout of Inline Bootstrap radio buttons */
/* RADIOS AND CHECKBOXES */
.dotNETRadio input[type="radio"],
.dotNETCheckbox input[type="checkbox"] {
    /*margin: 0 0.5em;*/
}

/* Style .NET RadioButtonList and .NET CheckBoxList to match layout of Inline Bootstrap radio buttons */
.dotNETRadioButtonList,
.dotNETCheckBoxList {
    padding-left: 0;
}

    .dotNETRadioButtonList input[type="radio"],
    .dotNETCheckBoxList input[type="checkbox"] {
        display: inline-block;
        float: none;
        position: relative;
        margin-right: 0.5rem;
        margin-left: 0;
    }

    .dotNETRadioButtonList label:not(:last-child),
    .dotNETCheckBoxList label:not(:last-child) {
        margin-right: 1rem;
    }

    /* Apply checkbox disabled styling only to the label immediately following a checkbox */
    .dotNETCheckBoxList .form-check-input[disabled] ~ .form-check-label,
    .dotNETCheckBoxList .form-check-input:disabled ~ .form-check-label {
        cursor: default !important;
        opacity: unset !important;
    }

    .dotNETCheckBoxList .form-check-input[disabled] + .form-check-label,
    .dotNETCheckBoxList .form-check-input:disabled + .form-check-label {
        cursor: not-allowed !important;
        opacity: .5 !important;
    }

/* Hide scrollbar for Chrome, Safari and Opera */
.scrollbar-none::-webkit-scrollbar {
    display: none;
}

/* Hide scrollbar for IE and Edge */
.scrollbar-none {
    -ms-overflow-style: none;
}

/* Required Field Icon */
label.requiredField::after,
span.requiredField::after {
    margin-left: 0.5em;
    font-family: "Font Awesome 5 Pro";
    content: "*";
    color: var(--bs-danger);
}


/* Allow inline font awesome classes */
/* base button */
.btn {
    font-family: inherit !important;
}

    /* padding between font awesome and button / textbox text */
    .btn.fas::before,
    .btn.far::before,
    .btn.fal::before {
        font-family: "Font Awesome 5 Pro";
        margin-right: 0.3em;
        display: inline-flex;
        width: 1em;
        height: 1em;
        align-items: center;
        justify-content: center;
    }

    .btn.fas::before { /* Font Awesome Solid icon weight */
        font-weight: 900;
    }

    .btn.far::before { /* Font Awesome Regular icon weight */
        font-weight: 400;
    }

    .btn.fal::before { /* Font Awesome Light icon weight */
        font-weight: 300;
    }

    .btn.iconOnly.fas::before,
    .btn.iconOnly.far::before,
    .btn.iconOnly.fal::before {
        margin-right: 0;
    }

    /*prevent entire button from spinning */
    .btn.fa-spin {
        -webkit-animation: unset;
        animation: unset;
    }

        .btn.fa-spin::before {
            /*add spin to button icon */
            -webkit-animation: fa-spin 2s linear infinite !important;
            animation: fa-spin 2s linear infinite !important;
        }

/*.selectize-control .selectize-input.disabled {
    background-color: #e9ecef !important;
    opacity: 1 !important;
}*/

.form-row {
    margin-bottom: 0.5rem;
}

.form-gutter {
    /*--bs-gutter-x: 0.5rem;*/
    --bs-gutter-y: 0.5rem;
}

/* position items over top of bootstrap sticky positioned items */
.z-index-abovesticky {
    z-index: 1021;
}

.border-transparent {
    border-color: transparent !important;
}

/*************
Tablesorter - Default Theme - minimal styles
*************/
/* overall */
.tablesorter-default {
}

    /* header */
    .tablesorter-default th,
    .tablesorter-default thead td {
    }

    .tablesorter-default tfoot th,
    .tablesorter-default tfoot td {
        border: 0;
    }

    .tablesorter-default .header:not(.sorter-false),
    .tablesorter-default .tablesorter-header:not(.sorter-false) {
        background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
        background-position: center right;
        background-repeat: no-repeat;
        cursor: pointer;
        white-space: normal;
        padding-right: 1em;
        vertical-align: middle;
    }

    .tablesorter-default thead .headerSortUp,
    .tablesorter-default thead .tablesorter-headerSortUp,
    .tablesorter-default thead .tablesorter-headerAsc {
        background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7) !important;
        border-bottom-width: 2px !important;
    }

    .tablesorter-default thead .headerSortDown,
    .tablesorter-default thead .tablesorter-headerSortDown,
    .tablesorter-default thead .tablesorter-headerDesc {
        background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7) !important;
        border-bottom-width: 2px !important;
    }

    .tablesorter-default thead .sorter-false {
        background-image: none;
        cursor: default;
    }

    /* tfoot */
    .tablesorter-default tfoot .tablesorter-headerSortUp,
    .tablesorter-default tfoot .tablesorter-headerSortDown,
    .tablesorter-default tfoot .tablesorter-headerAsc,
    .tablesorter-default tfoot .tablesorter-headerDesc {
        border-top: #000 2px solid;
    }

/* ajax error row */
.tablesorter .tablesorter-errorRow td {
    text-align: center;
    cursor: pointer;
    background-color: #e6bf99;
}

/*************
Line clamp styles
*************/
.line-clamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    -webkit-line-clamp: 3;
    line-clamp: 3;
}

.line-clamp-1 {
    -webkit-line-clamp: 1 !important;
    line-clamp: 1 !important;
}

.line-clamp-2 {
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
}

.line-clamp-3 {
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
}

.line-clamp-4 {
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
}

.line-clamp-5 {
    -webkit-line-clamp: 5 !important;
    line-clamp: 5 !important;
}

/*************
Image Gallery. Thumbnail display with hoverable controls
*************/
.image-gallery {
    display: flex;
    flex-wrap: wrap;
    justify-content: start;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

    .image-gallery > li {
        list-style: none;
        margin: 0;
        padding: 0;
        height: clamp(100px, 12em, 200px);
        position: relative;
        overflow: hidden;
    }

    .image-gallery li img {
        object-fit: cover;
        width: 100%;
        height: 100%;
        vertical-align: middle;
        border-radius: 5px;
        transform: scale(1.0);
        transition: -webkit-transform 300ms ease;
        transition: transform 300ms ease;
        transition: transform 300ms ease, -webkit-transform 300ms ease;
    }

    .image-gallery li:hover img {
        -webkit-transform: scale(1.3);
        transform: scale(1.3);
    }

    .image-gallery li .overlay-lower {
        padding: 0.25em;
        display: flex;
        flex-direction: row;
        align-items: center;
        position: absolute;
        bottom: 0;
        left: 0;
        background-color: rgba(255,255,255,0.7);
        width: 100%;
    }

        .image-gallery li .overlay-lower .imgName {
            flex-grow: 1;
            color: inherit;
            text-decoration: none;
        }

        .image-gallery li .overlay-lower .buttons {
            flex-grow: 0;
        }

    .image-gallery li .overlay-upper {
        padding: 0.25em;
        position: absolute;
        top: 0;
        right: 0;
        display: none;
    }

    .image-gallery li:hover .overlay-upper {
        display: block;
    }


/*************
Bootstrap Accordion modifiers for Image Gallery nested in folders
*************/
.accordion.accordion-image-gallery {
    --bs-accordion-btn-padding-x: 0.5rem;
    --bs-accordion-btn-padding-y: 0.5rem;
    --bs-accordion-btn-bg: var(--bs-gray-200);
    --bs-accordion-btn-color: var(--bs-dark);
    --bs-accordion-body-padding-x: 0.5rem;
    --bs-accordion-body-padding-y: 0.5rem;
    --bs-accordion-border-radius: 0;
    --bs-accordion-inner-border-radius: 0;
    --bs-accordion-border-color: var(--bs-gray-400);
}

    .accordion.accordion-image-gallery .accordion-body {
        padding-bottom: 1rem !important;
    }

    .accordion.accordion-image-gallery .accordion-button:hover {
        background-color: var(--bs-gray-300) !important;
        color: var(--bs-dark) !important;
    }

    .accordion.accordion-image-gallery .accordion-button .icon-folder {
        color: #FFE894;
        -webkit-text-stroke-width: 1px;
        -webkit-text-stroke-color: #EECB4A;
        display: none;
        margin-right: 0.5em;
    }

    .accordion.accordion-image-gallery .accordion-button.collapsed .icon-folder-closed {
        display: block !important;
    }

    .accordion.accordion-image-gallery .accordion-button:not(.collapsed) .icon-folder-opened {
        display: block !important;
    }

    .accordion.accordion-image-gallery .accordion-button:not(.collapsed) {
        background-color: var(--bs-gray-200) !important;
        color: var(--bs-dark) !important;
    }

        .accordion.accordion-image-gallery .accordion-button:not(.collapsed)::after {
            background-image: var(--bs-accordion-btn-icon);
        }

/*************
Custom nav tabs 
*************/
.nav-tabs.nav-tabs-custom {
    --bs-nav-link-color: var(--bs-white);
    --bs-nav-link-hover-color: var(--bs-white);
    --bs-nav-tabs-link-active-color: var(--bs-primary);
    --bs-nav-tabs-link-active-bg: var(--bs-white);
    --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-border-color);
    --crm-nav-margin: 0 0.125rem 0 0;
    --crm-nav-link-bg: var(--bs-gray-600);
    --crm-nav-link-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-border-color);
}

.nav-tabs-custom .nav-item {
    margin: var(--crm-nav-margin);
}

.nav-tabs-custom .nav-link {
    background-color: var(--crm-nav-link-bg);
    border-color: var(--crm-nav-link-border-color);
}

.nav-tabs.nav-tabs-custom .nav-link:hover {
    
}

.nav-tabs-custom .nav-link.active,
.nav-tabs-custom .nav-item.show .nav-link {
    border-color: var(--bs-nav-tabs-link-active-border-color);
}

.nowrap {
    white-space: nowrap;
}


/*************
Custom tables 
*************/
.table.table-crm > thead >  tr > th,
.table.table-crm > tbody >  tr > th {
    background-color: var(--bs-gray-300) !important;
}


/* match selectize disabled style to standard input/select controls */
.selectize-control .selectize-input.disabled {
    background-color: var(--bs-secondary-bg) !important;
    opacity: 1 !important;
}