html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    font-size: 13px;
}

body {
    font-family: 'Helvetica Neue', Helvetica;
    font-weight: normal;
    line-height: 1.4;
    background-color: #fff;
    overflow-y: hidden;
}

a:disabled, a[disabled="disabled"], a[disabled] {
    opacity: 0.6;
    text-decoration: none;
    cursor: default;
}

.container {
    max-width: 100% !important;
    width: 960px !important;
}

.container.narrow {
    max-width: 840px !important;
    width: 840px !important;
}

.container.narrower {
    max-width: 780px !important;
    width: 780px !important;
}

.container.narrowest {
    max-width: 720px !important;
    width: 720px !important;
}

.container.wide {
    max-width: 100% !important;
    width: 1080px !important;
}

.container.wider {
    max-width: 100% !important;
    width: 1185px !important
}

.container.widest {
    max-width: 100% !important;
    width: 1285px !important;
}
    
.col-0.plus-half { flex: 0 0 4.1666666666%; max-width: 4.1666666666%; }
.col-1.plus-half { flex: 0 0 12.499999995%; max-width: 12.499999995%; }
.col-2.plus-half { flex: 0 0 20.833333333%; max-width: 20.833333333%; } 
.col-3.plus-half { flex: 0 0 29.166666666%; max-width: 29.166666666%; }
.col-4.plus-half { flex: 0 0 37.499999999%; max-width: 37.499999999%; }
.col-5.plus-half { flex: 0 0 45.833333333%; max-width: 45.833333333%; }
.col-6.plus-half { flex: 0 0 54.166666666%; max-width: 54.166666666%; }
.col-7.plus-half { flex: 0 0 62.499999999%; max-width: 62.499999999%; }
.col-8.plus-half { flex: 0 0 70.833333333%; max-width: 70.833333333%; }
.col-9.plus-half { flex: 0 0 79.166666666%; max-width: 79.166666666%; }
.col-10.plus-half { flex: 0 0 87.499999999%; max-width: 87.499999999%; }
.col-11.plus-half { flex: 0 0 95.833333332%; max-width: 95.833333332%; }

.form-group label {
    margin-bottom: 0.25rem;
}

    .form-inline label {
        margin-bottom: 0;
    }

.icon-form-group + .icon-form-group.has-label {
    margin-top:  1.5rem;
}

.form-control {
    padding: 7px 10px 5px 10px;
    border: 1px solid #D9D9D9;
    min-height: 31px;
}

.form-control-inline {
    padding: 0;
    border-width: 0 0 1px 0;
    border-radius: 0;
}

    .form-control.form-control-sm {
        padding: 4px 8px 3px 8px;
        min-height: auto;
    }

.form-control:disabled {
    color: #868e96;
}

.form-control[readonly]:disabled {
    color: #495057;
}

.form-control[readonly] {
    background: #fff;
}

.form-control-plaintext {
    width: 100%;
}

.form-control-plaintext:focus {
    cursor: default;
    outline: 0;
}
.form-control-icon-prefix .form-control {
    padding-left: 2.25rem;
}

.form-inline label {
    text-align: left;
    justify-content: left;
}

.form-inline > label {
    width: 63%;
}

.form-inline > .form-inline-control-container {
    display: inline-block;
    width: 37%;
}

.form-inline > .form-inline-control-container > * {
    width: 100%;
}

.custom-select,
select.custom-select.form-control:not([size]):not([multiple]) {
    width: 100%;
    height: 31px;
}

    .custom-select.minimal {
        padding: 7px 9px;
        height: auto !important;
        min-height: 0;
        border: 0;
        border-radius: 0;
    }

.custom-control {
    user-select: none;
}

    .custom-control.minimal {
        margin-bottom: 0 !important;
        min-height: 0;
    }

.custom-control-indicator {
    top: 0.15rem;
    border: 1px solid #D9D9D9;
    background-color: white;
    background-size: 55%;
}

.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator,
.custom-radio .custom-control-input:checked ~ .custom-control-indicator {
    border: none;
}

.custom-checkbox .custom-control-input[readonly] ~ .custom-control-indicator,
.custom-radio .custom-control-input[readonly] ~ .custom-control-indicator {
    background-color: #eceeef;
    cursor: not-allowed;
}

.custom-checkbox .custom-control-input[readonly]:checked ~ .custom-control-indicator,
.custom-radio .custom-control-input[readonly]:checked ~ .custom-control-indicator {
    background-color: #007bff;
}

.custom-control-input:focus ~ .custom-control-indicator {
    box-shadow: none;
}

.custom-control-input:disabled ~ .custom-control-indicator {
    background-color: #E9ECEF;
}

.custom-radio-group {
    padding-top: 3px;
    padding-left: 5px;
    margin-top: -3px;
}

.custom-radio-group.focus {
    outline: 1px solid #80bdff;
    border-radius: 0.25rem;
}

.file-input-group input[type="file"] {
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    position: absolute;
    z-index: -1;
}

.file-input-group .file-selector {
    cursor: pointer;
    min-width: 120px;
    padding-left: 14px;
    padding-right: 14px;
}

.file-input-group .file-clear {
    position: relative;
    top: -2px;
}

.modal {
    align-items: center;
    justify-content: center;
}

.modal.show {
    display: flex;
}

.modal-dialog {
    width: 520px;
    max-width: none;
    margin: 5% auto;
}

.modal-content {
    border-radius: 0.4rem;
    box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.5);
}

.btn {
    padding: 7px 12px 6px 12px;
}

.btn-sm {
    padding: 7px 10px;
}

.btn-inline {
    padding: 3px 10px;
    line-height: 1.5;
    font-size: 11px;
}

.btn-pill {
    padding: 4px 0.5rem;
    font-size: 10px;
    line-height: 1;
}

.btn-toggler {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-left: 2px;
    padding-right: 2px;
}

    .btn-toggler > .fa {
        font-size: 24px;
        cursor: pointer;
    }
    
    /** Checked */
    .btn-toggler > .fa.checked {
        color: #007BFF !important;
    }
    
    /** Unchecked */
    .btn-toggler > .fa {
        color: #b5bfc9 !important;
    }
    
    /** Checked Disabled */
    .btn-toggler > .fa.checked.disabled {
        color: #007BFF88 !important;
    }
    
    /** Unchecked Disabled */
    .btn-toggler > .fa.disabled {
        cursor: default;
        color: #b5bfc948 !important;
    }

.btn-wider {
    padding: 0.55rem 1.3rem 0.45rem 1.3rem;
}

.btn-outline {
    color: #111;
    border-color: #D9D9D9;
    background-color: transparent;
}

.btn-outline[href]:hover {
    color: #111;
    background-color: #f8f9fa;
    border-color: #dae0e5;
}

.btn-outline:focus, .btn-outline.focus {
    box-shadow: 0 0 0 3px rgba(218, 224, 229, 0.5);
}

.btn-outline.disabled, .btn-outline:disabled {
    background-color: #e9ecef;
    border-color: #D9D9D9;
    opacity: 1;
    color: #868e96;
}

.btn-outline:active, .btn-outline.active,
.show > .btn-outline.dropdown-toggle {
    background-color: #e2e6ea;
    background-image: none;
    border-color: #dae0e5;
}

.btn.is-invalid {
    box-shadow: 0 0 0 1px #dc3545 !important;
}

.btn-white {
    color: #111;
    border-color: #fafafa;
    background-color: white;
}

.btn-white:hover {
    color: #111;
    background-color: #f8f9fa;
    border-color: #f3f3f3;
}

.btn-white:focus, .btn-white.focus {
    box-shadow: none;
}

.btn-white.disabled, .btn-white:disabled {
    background-color: #f8f9fa;
    border-color: #fafafa;
}

.btn-white:active, .btn-white.active,
.show > .btn-white.dropdown-toggle {
    background-color: #e2e6ea;
    background-image: none;
    border-color: #f3f3f3;
}

.btn-purple {
    color: #fff;
    border-color: #4A148C;
    background-color: #6A1C9A;
    opacity: 0.85;
}

.btn-purple:hover {
    color: #fff;
    opacity: 1;
}

.btn-purple:focus, 
.btn-purple.focus {
    box-shadow: none;
}

.btn-purple.disabled, 
.btn-purple:disabled {
    background-color: #9C27B0;
    border-color: #8E24AA;
}

.btn-purple:active, 
.btn-purple.active,
.show > .btn-purple.dropdown-toggle {
    opacity: 1;
}

.btn-light {
    border-color: #f2f3f4;
}

a.text-muted[href="#"]:hover {
    color: #555 !important;
}

.dropdown-toggle.no-caret::after,
.no-caret[data-toggle="dropdown"]::after {
    display: none;
}

.full-page {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.navbar.fixed-top {
    z-index: 300;
}

.nav-item {
    font-size: 14px;
}

.navbar-expand .navbar-nav .nav-link {
    padding: 11px 14px 10px 14px;
}

.navbar-dark .navbar-nav .nav-link.highlight {
    background: #DC3545;
}

.navbar .nav-divider {
    display: block;
    margin: 1rem;
    border-right: 1px solid white;
    opacity: 0.2;
}

.sub-nav {
    font-weight: 400;
}

.table.table-border-muted th,
.table.table-border-muted td {
    border-color: #E0E0E0;
}

.table.table-border-e0 th,
.table.table-border-e0 td {
    border-color: #E0E0E0;
}


.table-border-300 th,
.table-border-300 td {
    border-color: #e0e0e0;
}


.table.table-padded th,
.table.table-padded td {
    padding: 12px 14px 11px 14px;
}

.table.table-no-padding th,
.table.table-no-padding td {
    padding: 0px;
}

.table.table-condensed th,
.table.table-condensed td {
    padding: 4px 6px;
}

.table.table-more-condensed th,
.table.table-more-condensed td {
    padding: 2px 4px;
}

.table.table-row-border tbody tr:first-child, th,
.table.table-row-border tbody tr:first-child, td {
    border-top: 1px solid #E0E0E0;
}

.table.table-row-border th:first-child,
.table.table-row-border td:first-child {
    border-left: 1px solid #E0E0E0;
}

.table.table-row-border th:last-child,
.table.table-row-border td:last-child {
    border-right: 1px solid #E0E0E0;
}

.table.table-row-border tr:last-child td {
    border-bottom: 1px solid #E0E0E0;
}

.table.table-muted-header {
    border-top: 0;
}

.table.table-muted-header th {
    border-top: 0;
    border-left: 0;
    border-right: 0;
    border-bottom-width: 1px;
    border-bottom-color: #E0E0E0;
    font-weight: normal;
    font-size: 80%;
    text-transform: uppercase;
}
    .table.table-muted-header thead th:first-child {
        border-left: none;
    }
    
    .table.table-muted-header thead th:last-child {
        border-right: none;
    }

.table.table-muted-header th,
.table.table-muted-header td {
    border-color: #E0E0E0;
}

tr.no-top-border th,
tr.no-top-border td {
    border-top: 0 !important;
}

tr.no-bottom-border th,
tr.no-bottom-border td {
    border-bottom: 0 !important;
}

tr.pt-0 th,
tr.pt-0 td, {
    padding-top: 0 !important;
}

tr.pb-0 th,
tr.pb-0 td {
    padding-bottom: 0 !important;
}

tr.py-0 th,
tr.px-0 td {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

tr.no-top th,
tr.no-top td {
    border-top: 0 !important;
    padding-top: 0 !important;
}

tr.no-bottom th,
tr.no-bottom td {
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.table-hover tbody tr:hover {
    background-color: #f8f8f8;
}

.table th,
.table td {
    padding: 6px 10px;
}

.table-borderless > thead > tr > th,
.table-borderless > thead > tr > td,
.table-borderless > tbody > tr > td {
    border: none;
}

.table-input input {
    border: 0;
    padding: 0;
    min-height: 17px;
    line-height: 18.2px;
    background-color: transparent;
}

.table-input input:focus {
    box-shadow: none !important;
    background-color: transparent;
}


.table.table-sticky-header,
.table.table-sticky-first,
.table.table-sticky-last,
.table.table-sticky-footer {
    border-collapse: separate;
    border-spacing: 0px;
    width: 100%;
}

.table.table-sticky-header thead th {
    position: sticky;
    top: 0;
    background: white;
    z-index: 2;
}

    .table.table-sticky-header.table-sticky-first thead th:first-child,
    .table.table-sticky-header.table-sticky-last thead th:last-child {
        z-index: 3;
    }

.table.table-sticky-footer tfoot th {
    position: sticky;
    bottom: 0;
    background: white;
    z-index: 2;
}

    .table.table-sticky-footer.table-sticky-first tfoot th:first-child,
    .table.table-sticky-footer.table-sticky-last tfoot th:last-child {
        z-index: 3;
    }
    
.table.table-sticky-first thead th:first-child,
.table.table-sticky-first tbody td:first-child {
    position: sticky;
    left: 0;
    background: white;
    z-index: 1;
}

.table.table-sticky-last thead th:last-child,
.table.table-sticky-last tbody td:last-child {
    position: sticky;
    right: 0;
    background: white;
    z-index: 1;
}

.table.table-no-bottom-border tbody:last-child tr:last-child td,
.table.table-no-bottom-border tbody:last-child tr:last-child th {
    border-bottom: none;
}

tfoot.borderless tr td {
    border: none !important;
}

.dropdown-item {
    padding: 5px 20px 3px 20px;
}

.typeahead .typeahead-results {
    border-bottom: 1px solid #e0e0e0;
    box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.1);
}

.typeahead .list-group-item {
    border-color: #e0e0e0;
}

.typeahead .list-group-item:last-child {
    border-bottom: 0;
}

.no-select {
    user-select: none;
}

.display-none {
    display: none !important;
}

.display-block {
    display: block;
}

.display-inline-block {
    display: inline-block;
}

.display-inline {
    display: inline;
}

.hoverable {
    cursor: pointer;
}

.bg-hover:hover { background: rgba(0, 0, 0, 0.075); }

.bg-f3 { background: #f3f3f3 !important; }
.bg-f4 { background: #f4f4f4 !important; }
.bg-f5 { background: #f5f5f5 !important; }
.bg-f6 { background: #f6f6f6 !important; }
.bg-f7 { background: #f7f7f7 !important; }
.bg-f8 { background: #f8f8f8 !important; }
.bg-f9 { background: #f9f9f9 !important; }
.bg-fa { background: #fafafa !important; }
.bg-fb { background: #fbfbfb !important; }
.bg-fc { background: #fcfcfc !important; }
.bg-fd { background: #fdfdfd !important; }
.bg-fe { background: #fefefe !important; }
.bg-ff { background: #ffffff !important; }
.bg-transparent, .bg-none { background: transparent !important; }
.bg-red { background: #DC3546 !important; }

.hoverable-bg-f3:hover { background: #f3f3f3 !important; }
.hoverable-bg-f4:hover { background: #f4f4f4 !important; }
.hoverable-bg-f5:hover { background: #f5f5f5 !important; }
.hoverable-bg-f6:hover { background: #f6f6f6 !important; }
.hoverable-bg-f7:hover { background: #f7f7f7 !important; }
.hoverable-bg-f8:hover { background: #f8f8f8 !important; }
.hoverable-bg-f9:hover { background: #f9f9f9 !important; }
.hoverable-bg-fa:hover { background: #fafafa !important; }
.hoverable-bg-fb:hover { background: #fbfbfb !important; }
.hoverable-bg-fc:hover { background: #fcfcfc !important; }
.hoverable-bg-fd:hover { background: #fdfdfd !important; }
.hoverable-bg-fe:hover { background: #fefefe !important; }
.hoverable-bg-ff:hover { background: #ffffff !important; }
.hoverable-bg-green-50:hover { background: #C8E6C9 !important; }
.hoverable-bg-blue-50:hover { background: #cbe7fb !important; }
.hoverable-bg-orange-50:hover { background: #FFE0B2 !important; }
.hoverable-bg-red-50:hover { background: #FFCDD2 !important; }

.hover-opacity-100:hover { opacity: 1 !important; }
.hover-opacity-90:hover { opacity: 0.9 !important; }
.hover-opacity-80:hover { opacity: 0.8 !important; }
.hover-opacity-70:hover { opacity: 0.7 !important; }
.hover-opacity-60:hover { opacity: 0.6 !important; }
.hover-opacity-50:hover { opacity: 0.5 !important; }
.hover-opacity-40:hover { opacity: 0.4 !important; }
.hover-opacity-30:hover { opacity: 0.3 !important; }
.hover-opacity-20:hover { opacity: 0.2 !important; }
.hover-opacity-10:hover { opacity: 0.1 !important; }
.hover-opacity-0:hover { opacity: 0 !important; }

.dropdown-toggle.no-caret::after {
    display: none;
}

.text-spaced {
    letter-spacing: 1px;
}

.text-spaced[data-spacing="2"] {
    letter-spacing: 2px;
}

.text-spaced[data-spacing="3"] {
    letter-spacing: 3px;
}

.text-normal {
    font-weight: 400;
}

.text-strong {
    font-weight: 700;
}

.text-weak {
    font-weight: 300;
}

.text-underline {
    text-decoration: underline;
}

.text-dashline,
.text-dash,
.text-dash-underline,
.text-dashed {
    border-bottom: 1px dashed #aaa;
}

    .text-hover-dash:hover,
    .text-hover-dashed:hover {
        border-bottom: 1px dashed #aaa !important;
    }

.text-strike-through,
.text-strike {
    text-decoration: line-through;
}

.text-italic {
    font-style: italic;
}

.text-serif {
    font-family: Georgia;
}

.text-monospace {
    font-family: Courier New;
    font-size: 90%;
}

.text-uppercase {
    text-transform: uppercase;
}

.text-propercase {
    text-transform: capitalize;
}

.text-normal-case {
    text-transform: none;
}

.text-small {
    font-size: 80%;
}

.text-smaller {
    font-size: 64%;
}

.text-large {
    font-size: 120%;
}

.text-larger {
    font-size: 136%;
}

.text-largest {
    font-size: 152%;
}

.text-small-muted {
    font-size: 80%;
    color: #868e96;
}

.text-black {
    color: #000;
}

.text-placeholder {
    color: #868E96;
}

a.text-dark {
    color: #545a60 !important;
}

    a.text-dark:hover {
        color: #242a30 !important;
    }

a.text-black {
    opacity: 0.8;
}

    a.text-black:hover {
        opacity: 1 !important;
        color: #000 !important;
    }

a.dashed-link {
    text-decoration: underline;
    text-decoration-style: dashed;
}
    
    a.dashed-link:hover {
        text-decoration-style: solid;
    }

.no-underline {
    text-decoration: none !important;
}

.dotted-underline {
    border-bottom: 1px dotted #ccc;
}

.dashed-underline {
    border-bottom: 1px dashed #ccc;
}

.truncate-flex {
    flex: 1;
    min-width: 0px;
}

.truncate-flex > * {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.truncate-push {
    display: inline-block;
    width: 1px;
    white-space: nowrap;
}

.truncate-auto { /* use with window.truncateAuto(el) function */
    display: block;
    text-overflow: ellipsis;
    overflow:  hidden;
    opacity: 0;
}

.truncate {
    display: block;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.truncate-100 { width: 100px; }
.truncate-140 { width: 140px; }
.truncate-180 { width: 180px; }
.truncate-220 { width: 220px; }
.truncate-260 { width: 260px; }
.truncate-300 { width: 300px; }
.truncate-340 { width: 340px; }
.truncate-380 { width: 380px; }

.truncate-10-pc { width: 10%; }
.truncate-20-pc { width: 20%; }
.truncate-30-pc { width: 30%; }
.truncate-40-pc { width: 40%; }
.truncate-50-pc { width: 50%; }
.truncate-60-pc { width: 60%; }
.truncate-70-pc { width: 70%; }
.truncate-80-pc { width: 80%; }
.truncate-90-pc { width: 90%; }
.truncate-100-pc { width: 100%; }

.opacity-0 { opacity: .0 !important; }
.opacity-10 { opacity: .1 !important; }
.opacity-20 { opacity: .2 !important; }
.opacity-30 { opacity: .3 !important; }
.opacity-40 { opacity: .4 !important; }
.opacity-50 { opacity: .5 !important; }
.opacity-60 { opacity: .6 !important; }
.opacity-70 { opacity: .7 !important; }
.opacity-80 { opacity: .8 !important; }
.opacity-90 { opacity: .9 !important; }
.opacity-100 { opacity: 1 !important; }

.opacity-transition {
    -webkit-transition: opacity .3s ease-out;
         -o-transition: opacity .3s ease-out;
            transition: opacity .3s ease-out;
}

.table-typeahead th,
.table-typeahead td {
    padding: 0.55rem 0.75rem 0.45rem 0.75rem;
}

.root {
    padding-top: 40px;
}

.main-wrapper {
    overflow: auto;
}

.list-group-item {
    padding: 10px 14px;
}
    
    .list-group-spacer,
    .list-group-divider {
        height: 3px;
    }

.load-bar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    border-radius: 0;
    z-index: 9000;
    background: transparent;
    transition: opacity 0.25s;
}

.pipe-divider {
    position: relative;
    top: -1px;
    font-size: 80%;
    margin: 0 0.3rem;
}

.table-header {
    position: relative;
}

    .table-header > h2 {
        margin-left: 3px;
    }

.table-filters {
    float: right;
    margin-top: 2px;
    margin-right: 10px;
}

    .table-filters.no-title {
        float: none;
        margin: 0 0 -3px 3px;
    }

    .table-filter-item {
        display: inline-block;
        margin-left: 1.5rem;
    }
    
        .table-filter-item:first-child {
            margin-left: 0;
        }

    .table-filter-label {
        margin-right: 0.5rem;
    }
    
    .table-filter-control {
        text-align: left;
    }

.table-component .table {
    width: calc(100% + 1px);
    max-width: none;
    margin: -1px 0 -1px -1px;
}

    .table-component .table th,
    .table-component .table td {
        padding: 8px 12px;
    }

.table-fixed-header {
    position: fixed;
}

    .table-fixed-header + .table {
        position: relative;
    }

.tooltip-inner {
    padding: 7px 9px;
    line-height: 1.3;
}

.badge {
    padding: 0.3em 0.4em;
}

.badge.badge-unread {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 10px;
    background: white;
    box-shadow: rgb(0 0 0 / 30%) 1px 1px 3px 0px;
    font-size: 11px;
    font-weight: 400;
    color: rgb(244, 67, 54);
    z-index: 2;
}

.popover {
    max-width: 250px;
    width: 250px;
}

legend {
    margin-top: 1.25rem;
    margin-bottom: 1rem;
    font-size: 1rem;
    text-transform: uppercase;
    color: #868e96;
}

    legend:first-child {
        margin-top: 0;
    }

.token-input-container {
    position: relative;
    display: block;
    width: 100%;
    min-height: 31px;
    padding: 4px 4px 0px 4px;
    border: 1px solid #D9D9D9;
    font-size: 1rem;
    color: #495057;
    cursor: text;
    background: white;
    box-shadow: none;
    border-radius: 0.25rem;
    transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}

    .token-input-container.disabled {
        cursor: default;
        background: #EAECEF;
    }
    
    .token-input-container.focus {
            color: #495057;
            border-color: #80bdff;
            outline: none;
    }
    
    .token-input-container input.form-control[type="text"] {
        float: left;
        display: inline-block;
        width: auto;
        min-height: 19px;
        border: 0;
        padding: 3px 3px 2px 3px;
        margin: 0px 0px 4px 3px;
    }

    .token-item {
        float: left;
        position: relative;
        display: inline-block;
        padding: 3px 7px 2px 10px;
        margin: 0px 3px 4px 0px;
        font-size: 12px;
        background: #eceeef;
        border-radius: 0.25rem;
    }
    
    .token-remove {
        display: inline-block;
        padding: 0px 3px;
        margin-left: 3px;
    }
    
    .token-input-container.is-invalid,
    .pseudo-input.is-invalid {
        color: #dc3545;
        border-color: #dc3545;
    }

.p-2-5 { padding: 0.75rem !important; }
.pt-2-5 { padding-top: 0.75rem !important; }
.pb-2-5 { padding-bottom: 0.75rem !important; }
.pl-2-5 { padding-left: 0.75rem !important; }
.pr-2-5 { padding-right: 0.75rem !important; }
.px-2-5 { padding-left: 0.75rem !important; padding-right: 0.75rem !important; }
.py-2-5 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; }

.m-2-5 { margin: 0.75rem !important; }
.mt-2-5 { margin-top: 0.75rem !important; }
.mb-2-5 { margin-bottom: 0.75rem !important; }
.ml-2-5 { margin-left: 0.75rem !important; }
.mr-2-5 { margin-right: 0.75rem !important; }
.mx-2-5 { margin-left: 0.75rem !important; margin-right: 0.75rem !important; }
.my-2-5 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; }

.p-3-5 { padding: 1.25rem !important; }
.pt-3-5 { padding-top: 1.25rem !important; }
.pb-3-5 { padding-bottom: 1.25rem !important; }
.pl-3-5 { padding-left: 1.25rem !important; }
.pr-3-5 { padding-right: 1.25rem !important; }
.px-3-5 { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
.py-3-5 { padding-top: 1.25rem !important; padding-bottom: 1.25rem !important; }

.m-3-5 { margin: 1.25rem !important; }
.mt-3-5 { margin-top: 1.25rem !important; }
.mb-3-5 { margin-bottom: 1.25rem !important; }
.ml-3-5 { margin-left: 1.25rem !important; }
.mr-3-5 { margin-right: 1.25rem !important; }
.mx-3-5 { margin-left: 1.25rem !important; margin-right: 1.25rem !important; }
.my-3-5 { margin-top: 1.25rem !important; margin-bottom: 1.25rem !important; }

.p-4-5 { padding: 2rem !important; }
.pt-4-5 { padding-top: 2rem !important; }
.pb-4-5 { padding-bottom: 2rem !important; }
.pl-4-5 { padding-left: 2rem !important; }
.pr-4-5 { padding-right: 2rem !important; }
.px-4-5 { padding-left: 2rem !important; padding-right: 2rem !important; }
.py-4-5 { padding-top: 2rem !important; padding-bottom: 2rem !important; }

.m-4-5 { margin: 2rem !important; }
.mt-4-5 { margin-top: 2rem !important; }
.mb-4-5 { margin-bottom: 2rem !important; }
.ml-4-5 { margin-left: 2rem !important; }
.mr-4-5 { margin-right: 2rem !important; }
.mx-4-5 { margin-left: 2rem !important; margin-right: 2rem !important; }
.my-4-5 { margin-top: 2rem !important; margin-bottom: 2rem !important; }

.p-4-75 { padding: 2.5rem !important; }
.pt-4-75 { padding-top: 2.5rem !important; }
.pb-4-75 { padding-bottom: 2.5rem !important; }
.pl-4-75 { padding-left: 2.5rem !important; }
.pr-4-75 { padding-right: 2.5rem !important; }
.px-4-75 { padding-left: 2.5rem !important; padding-right: 2.5rem !important; }
.py-4-75 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }

.m-4-75 { margin: 2.5rem !important; }
.mt-4-75 { margin-top: 2.5rem !important; }
.mb-4-75 { margin-bottom: 2.5rem !important; }
.ml-4-75 { margin-left: 2.5rem !important; }
.mr-4-75 { margin-right: 2.5rem !important; }
.mx-4-75 { margin-left: 2.5rem !important; margin-right: 2.5rem !important; }
.my-4-75 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; }

.input-group > * {
    position: relative;
    display: flex;
    align-items: center;
    flex-grow: 1;
}

.input-group > *:focus {
    z-index: 4 !important;
}

.input-group > * + * {
    margin-left: -1px;
}

    .input-group .custom-select,
    .input-group select.custom-select.form-control:not([size]):not([multiple]) {
        width: auto;
    }

.input-group-vertical .form-control {
    position: relative;
    border-radius: 0;
    margin-top: -1px;
    z-index: 1;
}

.input-group-vertical .form-control:focus {
    z-index: 2;
}

.input-group-vertical .form-control:first-child {
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
}

.input-group-vertical .form-control:last-child {
    border-bottom-left-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
}

.no-top-left-radius {
    border-top-left-radius: 0px !important;
}

.no-top-right-radius {
    border-top-right-radius: 0px !important;
}

.no-bottom-left-radius {
    border-bottom-left-radius: 0px !important;
}

.no-bottom-right-radius {
    border-bottom-right-radius: 0px !important;
}

.no-top-radius {
    border-top-left-radius: 0px !important;
    border-top-right-radius: 0px !important;
}

.no-bottom-radius {
    border-bottom-left-radius: 0px !important;
    border-bottom-right-radius: 0px !important;
}

.no-left-radius {
    border-top-left-radius: 0px !important;
    border-bottom-left-radius: 0px !important;
}

.no-right-radius {
    border-top-right-radius: 0px !important;
    border-bottom-right-radius: 0px !important;
}

.no-border-radius {
    border-radius: 0px !important;
}

tbody.space-after::after {
    content: '';
    display: block;
    height: 1rem;
}

tbody.space-after + tbody {
    border-top-width: 1px;
}

.visible-on-hover > .visible-on-hover {
    visibility: hidden;
}

.visible-on-hover:hover > .visible-on-hover {
    visibility: visible;
}

.visible-on-hover-deep .visible-on-hover {
    opacity: 0;
}

.visible-on-hover-deep:hover .visible-on-hover {
    opacity: 1;
}

*:hover > .d-hover-none { display: none !important; }
*:hover > .d-hover-block { display: block !important; }
*:hover > .d-hover-inline-block { display: inline-block !important; }
*:hover > .d-hover-inline { display: inline !important; }
*:hover > .d-hover-flex { display: flex !important; }

*:hover > .o-hover-10 { opacity: 0.1 !important; }
*:hover > .o-hover-20 { opacity: 0.2 !important; }
*:hover > .o-hover-30 { opacity: 0.3 !important; }
*:hover > .o-hover-40 { opacity: 0.4 !important; }
*:hover > .o-hover-50 { opacity: 0.5 !important; }
*:hover > .o-hover-60 { opacity: 0.6 !important; }
*:hover > .o-hover-70 { opacity: 0.7 !important; }
*:hover > .o-hover-80 { opacity: 0.8 !important; }
*:hover > .o-hover-90 { opacity: 0.9 !important; }
*:hover > .o-hover-100 { opacity: 1 !important; }

*:focus + .d-focus-none { display: none !important; }
*:focus + .d-focus-block { display: block !important; }
*:focus + .d-focus-inline-block { display: inline-block !important; }
*:focus + .d-focus-inline { display: inline !important; }

.d-hover-opacity-10:hover, .opacity-hover-10:hover { opacity: 0.1 !important; }
.d-hover-opacity-20:hover, .opacity-hover-20:hover { opacity: 0.2 !important; }
.d-hover-opacity-30:hover, .opacity-hover-30:hover { opacity: 0.3 !important; }
.d-hover-opacity-40:hover, .opacity-hover-40:hover { opacity: 0.4 !important; }
.d-hover-opacity-50:hover, .opacity-hover-50:hover { opacity: 0.5 !important; }
.d-hover-opacity-60:hover, .opacity-hover-60:hover { opacity: 0.6 !important; }
.d-hover-opacity-70:hover, .opacity-hover-70:hover { opacity: 0.7 !important; }
.d-hover-opacity-80:hover, .opacity-hover-80:hover { opacity: 0.8 !important; }
.d-hover-opacity-90:hover, .opacity-hover-90:hover { opacity: 0.9 !important; }
.d-hover-opacity-100:hover, .opacity-hover-100:hover { opacity: 1 !important; }

.dropdown-menu.context-menu {
    display: block;
    position: absolute;
    min-width: 170px;
    max-width: 230px;
    box-shadow: 0px 0px 4px 1px rgba(0, 0, 0, 0.3);
    border: none;
}

.dropdown-menu p {
    padding: 0.5rem 1.5rem;
}

.drag-enter * {
    pointer-events: none;
}

span.icon {
    display: inline-block;
    position: relative;
    font-size: 1rem;
    letter-spacing: -1px;
    line-height: 1;
}

.toolbar {
    position: sticky;
    top: -1px;
    padding: 1rem 0;
    margin-right: -1px;
    border-bottom: 1px solid #E0E0E0;
    background: white;
    font-size: 120%;
    z-index: 1;
}

.pseudo-radio {
    cursor: pointer;
    margin-bottom: 0.5rem;
}
    
    .pseudo-radio.disabled:not(.active) {
        opacity: 0.4;
        cursor: default;
    }

.pseudo-radio-icon {
    color: #007bff !important;
    margin-right: 0.5rem;
}

    .pseudo-radio.disabled:not([readonly]):not(.active) .pseudo-radio-icon,
    .pseudo-radio[readonly]:not(.active) .pseudo-radio-icon {
        color: #555 !important;
    }
    
    .pseudo-radio.disabled.active .pseudo-radio-icon,
    .pseudo-radio.active[readonly] .pseudo-radio-icon {
        color: #aaa !important;
    }
    
    .pseudo-radio.is-invalid .pseudo-radio-icon {
        color: #DC3545 !important;
    }

.markdown-content *:last-child {
    margin-bottom: 0;
}

.markdown-content ul,
.markdown-content ol {
    
}
    
.markdown-content p + ul,
.markdown-content p + ol {
    margin-top: 0.75rem;
}

.markdown-content ul:last-child,
.markdown-content ol:last-child {
    
}

.markdown-content blockquote {
    padding-left: 1rem;
    border-left: 3px solid #eaeaea;
}

.dropright {
    position: relative;
}
    
.dropright .dropdown-menu {
    top: 0;
    right: auto;
    left: 100%;
    margin-top: 0;
    margin-left: 0.125rem;
}

.dropright .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    content: "";
    border-top: 0.3em solid transparent;
    border-right: 0;
    border-bottom: 0.3em solid transparent;
    border-left: 0.3em solid;
}

.dropright .dropdown-toggle:empty::after {
    margin-left: 0;
}

.dropright .dropdown-toggle::after {
    vertical-align: 0;
}