body.rendered{
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.cursor-pointer{
    cursor: pointer;
}

#topbar a{
    text-decoration: none;
}

#topbar a:hover{
    text-decoration: underline;
}

#navbar .logo{
    max-width: 200px;
}

#nav-container > a{
    display: block;
    margin-right: 12px;
    text-decoration: none;
}

#nav-toggler{
    display: none;
    background: none;
    border: 2px solid #333;
    width: 35px;
    height: 35px;
    font-size: 18px;
}

#nav-toggler:not(.open) > i:last-child{
    display: none;
}

#nav-toggler.open > i:first-child{
    display: none;
}

.alert{
    display: none;
    padding-right: 44px;
}

.alert > button{
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    outline: none !important;
    font-size: 22px;
}

.form-select{
    cursor: pointer;
}

.form-control.input-width,
.form-select.input-width{
    flex: 0 1 250px;
}

.form-control.input-width-min,
.form-select.input-width-min{
    flex: 0 1 150px;
}

.inline-edit.hide,
.inline-select.hide{
    display: none;
}

.sort-handle{
    text-align: center;
    cursor: grab;
    font-size: 18px;
    max-width: 50px;
}

.color-input{
    max-width: 90px;
}

.btn-info{
    color: #fff !important;
}

.div-image{
    background-size: cover !important;
    background-position: 50% 50% !important;
    background-repeat: no-repeat !important;
}

.div-image.contain{
    background-size: contain !important;
}

.text-area > *:last-child{
    margin-bottom: 0;
}

.slide-overlay{
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #000;
    z-index: 1;
    opacity: 0;
}

.z-index-2{
    z-index: 2;
}

.owl-carousel{
    display: block !important;
}

.form-check{
    width: 30px;
    min-width: 30px;
    height: 30px;
    min-height: 30px;
    cursor: pointer;
}

.form-check + label{
    cursor: pointer;
}

label.disabled{
    opacity: .5;
}

@media screen and (max-width: 991px){
    .form-control.input-width,
    .form-select.input-width{
        /*flex: 0 1 175px;*/
    }
}

@media screen and (max-width: 767px){
    .alert{
        padding-right: 32px;
    }
    
    .alert > button{
        top: 4px;
        right: 4px;
        transform: none;
    }
    
    div.dataTables_wrapper div.dataTables_length,
    div.dataTables_wrapper div.dataTables_filter,
    div.dataTables_wrapper div.dataTables_info,
    div.dataTables_wrapper div.dataTables_paginate{
        text-align: left;
    }
    
    div.dataTables_wrapper div.dataTables_paginate ul.pagination{
        justify-content: flex-start !important;
    }
    
    div.dataTables_wrapper div.dataTables_length,
    div.dataTables_wrapper div.dataTables_info{
        margin-bottom: 10px;
    }
}

@media screen and (max-width: 575px){
    #nav-container{
        position: absolute;
        top: 78px;
        left: 0;
        right: 0;
        background: #f8f9fa;
        text-align: left;
        padding-left: 12px;
        padding-right: 12px;
        border-bottom: none;
        height: 0;
        max-height: 0;
        overflow: auto;
        transition: max-height .5s;
    }
    
    #topbar + #navbar #nav-container{
        top: 152px;
    }
    
    #nav-container.open{
        display: block;
        height: auto;
        max-height: calc(100vh - 78px);
        border-bottom: 2px solid #333;
    }
    
    #nav-container > a{
        margin-bottom: 12px;
    }
    
    #nav-toggler{
        display: inline-block;
    }
    
    #company-switcher{
        max-width: 150px;
    }
}

@media screen and (min-width: 576px){
    #nav-container{
        display: flex;
        align-items: center;
        justify-content: flex-end;
    }
}