@media not print {
    body {
        padding-top: 20px;
        padding-bottom: 20px;
    }
}

.navbar {
    margin-bottom: 20px;
}

.fixed-column {
    position: absolute;
    display: inline-block;
    width: auto;
    border-right: 1px solid #ddd;
    background-color: #fff;
    /* bootstrap v3 fix for fixed column background color*/
    min-width: 7em;
}

.fixed-column:nth-of-type(2) {
    background-color: #f9f9f9;
}

@media(min-width:768px) {
    .fixed-column {
        display: none;
    }
}

.dropdown-menu {
    min-width: 12rem;
}

.table-responsive table.table {
    /* border-collapse: separate; */
    border-collapse: separate;
    border-spacing: 0;
    margin-bottom: 0;
}

.table-responsive thead th {
    position: -webkit-sticky;
    /* for Safari */
    position: sticky;
    top: 0;
    z-index: 2;
    background: white;
}

.table-responsive tfoot th {
    position: -webkit-sticky;
    /* for Safari */
    position: sticky;
    bottom: 0;
    z-index: 2;
    background: white;
    border: 1px solid #dee2e6;
    border-bottom-width: 2px;
}

.table-responsive tbody th, .table-responsive tbody .th {
    position: -webkit-sticky;
    /* for Safari */
    position: sticky;
    left: 0;
    background: white;
    border: 1px solid #dee2e6;
}

.table-responsive thead th:first-child {
    left: 0;
    z-index: 3;
    background: white;
    border: 1px solid #dee2e6;
    border-bottom-width: 2px;
}

.table-responsive.fixed-last thead th:last-child {
    right: 0;
    z-index: 2;
    background: white;
    border-left: 1px solid #dee2e6;
}

.table-responsive tfoot th:first-child {
    left: 0;
    z-index: 3;
    background: white;
    border: 1px solid #dee2e6;
    border-bottom-width: 2px;
}

.table-responsive.fixed-last tfoot th:last-child {
    right: 0;
    z-index: 2;
    background: white;
    border-left: 1px solid #dee2e6;
}

.table-responsive.fixed-last tbody th:last-child, .table-responsive.fixed-last tbody .th:last-child {
    right: 0;
    z-index: 1;
    background: white;
    border-left: 1px solid #dee2e6;
}

.table-responsive {
    max-height: 80vh;
}

.table-responsive tbody {
    overflow-y: auto;
}

@media print {
    .table-responsive {
        max-height: 100%;
    }
    .print-display-none {
        display: none;
    }
}

.sortable-col {
    display: flex;
    justify-content: space-between;
    min-width: 8em;
}

.sortable-col .sortButton {
    color: gray;
}

.sortable-col .sortButton span {
    margin-left: 0.25em;
    margin-right: 0.25em;
    cursor: pointer;
}

.table-responsive table.table.table-striped tbody tr:nth-of-type(odd) th:first-child, .table-responsive.fixed-last tbody tr:nth-of-type(odd) th:last-child {
    /* border-collapse: separate; */
    background-color: #f8f8f8;
}