body, .form-control, .input-group-text, .btn, .tooltip, .dropdown-item, .dropdown-header, .form-control-plaintext {
    font-size: .8125rem;
}

.form-check-input {
    margin-top: .175rem;
}

.body-overlay {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255,255,255,.5);
    z-index: 1029;
    animation: body-overlay 1s linear;
}
@keyframes body-overlay { from { opacity: 0; } to { opacity: 1; } }

.loading {
    opacity: .75;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" viewBox="0 0 32 32"><path d="M16,0H0V16Z" fill="%23EEE"/><path d="M32,0V16L16,32H0Z" fill="%23EEE"/></svg>');
    animation: loading-animation .5s linear infinite;
}
@keyframes loading-animation {
    from { background-position: 0 0; }
    to { background-position: 32px 0; }
}

body, html {
    min-height: 100%;
}

.leaflet-container {
    background-color: rgb(202, 210, 211);
}
.jv-main-nav {
    top: 0;
    position: sticky;
    height: 51px;
    z-index: 1028;
}

.jv-wrap {
    position: relative;
    /*max-width: 1420px;*/
    height: 100%;
}
.jv-menu {
    position: fixed;
    will-change: transform;
    top: 51px;
    bottom: 0;
    left: 0;
    width: 25%;
    /*height: 100%;*/
    overflow-y: auto;
    padding: 15px;
}
.jv-menu > .jv-buttons {
    position: sticky;
    position: -webkit-sticky;
    bottom: -15px;
    background-color: #fff;
    margin: -15px;
    padding: 15px;
}
.jv-content {
    position: relative;
    will-change: transform;
    top: 0;
    bottom: 0;
    left: 25%;
    width: 75%;
    /*overflow-y: auto;*/
    padding: 15px;
}
@media screen and (min-width: 1420px) {
    .jv-menu {
        /*TODO exact: calc(-1 * var(--scrollbar-width));*/
        /*width: 355px;*/
        width: 351px;
    }
    .jv-content {
        /*left: 355px;*/
        /*width: 1065px;*/
        left: 351px;
        width: 1053px;
    }
    .jv-alt-content {
        width: 1053px;
    }
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-y: scroll;
}
body {
    /*padding: 15px 0;*/
}

body > .container-xl {
    max-width: 1420px;
}

.form-control:disabled, .form-control[readonly] {
    background-color: #fff;
}
.toggle-password-input {
    cursor: pointer;
}
th, td {
    cursor: default;
    /*text-overflow: ellipsis;*/
    /* TODO: re-enable ellipsis after investigate inline-block */
    white-space: nowrap;
    overflow: hidden;
}

.toggle + div {
    display: inline-block;
}
.toggle {
    display: inline-block;
    width: 30px;
    height: 30px;
    margin: -17px -5px -13px -11px;
    /*margin: -15px -5px;*/
    vertical-align: middle;
    /*background-color: rgba(255,0,0,.03);*/
    background-repeat: no-repeat;
    background-position: center;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 16 16"><path d="M12,8l-8,5v-10z" fill="%23BBB"/></svg>');
}
.toggle-open {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 16 16"><path d="M8,12l5,-8h-10z" fill="%23BBB"/></svg>');
}
.toggle-password-input > span {
    filter: grayscale(100%) contrast(200%) brightness(1.5);
}
.form-check-inline {
    padding-top: .375rem;
    padding-bottom: .375rem;
}
.table {
    table-layout: fixed;
}
.form-control::placeholder, .form-control-plaintext.placeholder {
    /*color: #6c757d;*/
    color: #bcc1c5;
}
a.form-control-plaintext {
    color: #007bff;
}
.fixed-top {
    width: 480px; margin: 8px auto;
}
.alert .close {
    font-size: 1.25rem;
    outline: none;
}

.form-control.is-invalid, .was-validated .form-control:invalid {
    padding-right: inherit;
    background-image: inherit;
}

/* ---- */
.dropdown-menu {
    padding-top: .25rem;
    padding-bottom: .25rem;
    z-index: 1026;
}
.dropdown-header,
.dropdown-item {
    padding: .5rem 1rem;
}

/* ---- */
.ui-menu {
    background-color: #FFF;
    border: 1px solid #ced4da;
}
.ui-menu-item-wrapper.ui-state-active {
    margin: 0;
    background-color: #b8daff;
}
.ui-menu .ui-menu-item-wrapper {
    padding: 0;
}
.ui-menu-item-wrapper > p {
    padding-top: calc(.375rem + 1px);
    padding-bottom: calc(.375rem + 1px);
    padding-right: .75rem;
    padding-left: .75rem;
    margin-bottom: 0;
    line-height: 1.5;
}

.ui-autocomplete {
    max-height: 332px;
    overflow-x: hidden;
    overflow-y: auto;
}

/* ---- */
th.sortable {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 16 16"><path d="M6,3l4,4h-8z" fill="%23BBB"/><path d="M6,13l4,-4h-8z" fill="%23BBB"/></svg>');
    background-position: right 50%;
    background-repeat: no-repeat;
    cursor: pointer;
    padding-right: 18px;
}
th.sortable.asc {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 16 16"><path d="M6,3l4,4h-8z" fill="%23BBB"/><path d="M6,13l4,-4h-8z" fill="%23000"/></svg>');
}
th.sortable.desc {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 16 16"><path d="M6,3l4,4h-8z" fill="%23000"/><path d="M6,13l4,-4h-8z" fill="%23BBB"/></svg>');
}

/* ---- */
td.dirty {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 16 16"><path d="M8,0l8,8v-8z" fill="%23ffc107"/></svg>');
    background-repeat: no-repeat;
    background-position: top right;
}

a {
    cursor: pointer;
}

input[type=number].form-control {
    padding-right: 0;
}

.tooltip-inner {
    max-width: 400px;
    text-align: left;
    white-space: pre-wrap;
}

pre.pretty {
    overflow-x: auto;
    min-height: 1.5rem;

    word-wrap: break-word;
    white-space: pre-wrap;
}


/* ------ */

.lsf-number {
    font-size: 1.75rem;
    line-height: 1;
}

.multi-level-list > div {
    padding: .75rem;
    border-top: 1px solid #dee2e6;
    border-bottom: 1px solid #dee2e6;
    margin: 0 0 -1px 0;
}

.uplot .legend {
    font-size: .75rem;
}


.status-client-table a {
    color: #007bff !important;
}

a.form-control-plaintext > svg {
    margin-left: 5px;
    margin-bottom: 1px;
}

/*.uplot .legend.inline .series.off {*/
/*    display: none;*/
/*}*/
