.btn-default {
    --bs-btn-color: #212529;
    --bs-btn-bg: #fff;
    --bs-btn-border-color: #ced4da;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #e9ecef;
    --bs-btn-hover-border-color: #adb5bd;
    --bs-btn-active-color: #212529;
    --bs-btn-active-bg: #dee2e6;
    --bs-btn-active-border-color: #adb5bd;
    --bs-btn-disabled-color: #6c757d;
    --bs-btn-disabled-bg: #fff;
    --bs-btn-disabled-border-color: #ced4da;
    color: var(--bs-btn-color);
    background-color: var(--bs-btn-bg);
    border-color: var(--bs-btn-border-color);
}

.btn-default:hover {
    color: var(--bs-btn-hover-color);
    background-color: var(--bs-btn-hover-bg);
    border-color: var(--bs-btn-hover-border-color);
}

.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
    color: var(--bs-btn-active-color);
    background-color: var(--bs-btn-active-bg);
    border-color: var(--bs-btn-active-border-color);
}

.panel {
    margin-bottom: 20px;
    background-color: #fff;
    border: 1px solid transparent;
    border-radius: 4px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
}

.panel-default {
    border-color: #ddd;
}

.panel-body {
    padding: 15px;
}

.panel-heading {
    padding: 10px 15px;
    border-bottom: 1px solid #ddd;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
}

.panel-footer {
    padding: 10px 15px;
    background-color: #f8f9fa;
    border-top: 1px solid #ddd;
}

/* BS3 panel variants from panels.less baseline. */
.panel-default > .panel-heading {
    color: #333;
    background-color: #f5f5f5;
    border-color: #ddd;
}

.panel-default > .panel-heading + .panel-collapse > .panel-body,
.panel-default > .panel-heading + .panel-body {
    border-top-color: #ddd;
}

.panel-default > .panel-footer + .panel-collapse > .panel-body,
.panel-default > .panel-footer + .panel-body {
    border-bottom-color: #ddd;
}

.panel-default > .panel-footer {
    background-color: #f5f5f5;
    border-color: #ddd;
}

.pull-left {
    float: left !important;
}

.pull-right {
    float: right !important;
}

/* BS3 btn-block removed in BS5 */
.btn-block {
    display: block;
    width: 100%;
}

/* BS3 dropdown compat: .btn-group.open used to show dropdown-menu */
.btn-group.open > .dropdown-menu,
.dropup.open > .dropdown-menu {
    display: block;
}

.center-block {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.hidden {
    display: none !important;
}

/* BS3 visibility state used by legacy components (e.g., tooltip class="fade in"). */
.fade.in {
    opacity: 1;
}

.tooltip.in {
    opacity: .9;
    filter: alpha(opacity=90);
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.close {
    float: right;
    font-size: 21px;
    font-weight: bold;
    line-height: 1;
    color: #000;
    text-shadow: 0 1px 0 #fff;
    filter: alpha(opacity=20);
    opacity: .2;
    background: transparent;
    border: 0;
}

.close:hover,
.close:focus {
    color: #000;
    text-decoration: none;
    cursor: pointer;
    filter: alpha(opacity=50);
    opacity: .5;
}

button.close {
    padding: 0;
    cursor: pointer;
    background: transparent;
    border: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* Many templates use <span class="btn-close"></span> inside .close. Render as BS3 x. */
.modal .close .btn-close {
    display: block;
    width: 18px;
    height: 18px;
    padding: 0;
    margin: 0;
    background: url(images/icon/close-white.svg) center center no-repeat !important;
    background-size: 18px 18px !important;
    opacity: 1;
}

.modal .close .btn-close::before {
    content: "";
}

.caret {
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 2px;
    vertical-align: middle;
    border-top: 4px dashed;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
}

.navbar-fixed-bottom {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1030;
    width: 100%;
}

.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
    border-top: 0;
    border-bottom: 4px dashed;
}

/* BS3 input-group-addon removed in BS5, replaced by input-group-text */
.input-group-addon {
    display: flex;
    align-items: center;
    padding: 6px 12px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    color: #555;
    text-align: center;
    white-space: nowrap;
    background-color: #eee;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.input-group > .input-group-addon {
    border-radius: 0;
}

.input-group > .form-control:first-child + .input-group-addon,
.input-group > .input-group-addon:last-child {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.input-group > .input-group-addon:first-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

.input-group-btn {
    position: relative;
    display: flex;
    align-items: stretch;
    width: auto;
}

.input-group-btn > .btn,
.input-group-btn > .btn-group {
    position: relative;
    flex: 0 0 auto;
}

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

.input-group .form-control:first-child,
.input-group .form-select:first-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* Bootstrap Datepicker v1.9.0 compat: restore BS3 dropdown-menu appearance */
.datepicker.dropdown-menu {
    --bs-dropdown-bg: #fff;
    --bs-dropdown-border-color: rgba(0, 0, 0, 0.15);
    --bs-dropdown-border-radius: 4px;
    --bs-dropdown-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
    min-width: 0;
    padding: 4px;
    font-size: 14px;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
}

.dropdown-menu > li > a {
    display: block;
    padding: 3px 20px;
    clear: both;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.42857143;
    color: #333;
    white-space: nowrap;
    text-decoration: none;
}

.dropdown-menu .dropdown-item {
    font-size: 14px;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
    color: #262626;
    text-decoration: none;
    background-color: #f5f5f5;
}

/* BS3 modal layout compatibility */
.modal-dialog {
    position: relative;
    width: auto;
    margin: 10px;
}

@media (min-width: 768px) {
    .modal-dialog {
        width: 600px;
        margin: 30px auto;
    }

    .modal-sm {
        width: 300px;
    }
}

@media (min-width: 992px) {
    .modal-lg {
        width: 900px;
    }
}

.modal-content {
    display: block;
    position: relative;
    background-color: #fff !important;
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, .2) !important;
    border-radius: 6px !important;
    -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
    box-shadow: 0 3px 9px rgba(0, 0, 0, .5) !important;
}

.modal-header {
    display: block;
    min-height: 56px;
    padding: 14px;
    border-bottom: none !important;
    background-color: #404040 !important;
    color: #fff !important;
    border-radius: 16px 16px 0 0 !important;
}

.modal-header .close {
    margin: 4px 0 !important;
    color: inherit;
    text-shadow: none;
    filter: none;
    opacity: 1;
}

.modal-header .close:hover,
.modal-header .close:focus {
    color: inherit;
    filter: none;
    opacity: 1;
}

.modal-title {
    margin: 0;
    line-height: 1.42857143;
}

.modal-body {
    position: relative;
    flex: none;
}

.modal-footer {
    display: block;
    padding: 15px !important;
    text-align: right;
    background: transparent !important;
}

.modal-footer::before,
.modal-footer::after {
    display: table;
    content: " ";
}

.modal-footer::after {
    clear: both;
}

.modal-footer > [class*="col-"] {
    float: left;
}

/* BS3 parity: in modal footers, col-md-* should take effect from >=992px. */
@media (min-width: 992px) {
    .modal-footer > .col-md-1 { width: 8.33333333%; }
    .modal-footer > .col-md-2 { width: 16.66666667%; }
    .modal-footer > .col-md-3 { width: 25%; }
    .modal-footer > .col-md-4 { width: 33.33333333%; }
    .modal-footer > .col-md-5 { width: 41.66666667%; }
    .modal-footer > .col-md-6 { width: 50%; }
    .modal-footer > .col-md-7 { width: 58.33333333%; }
    .modal-footer > .col-md-8 { width: 66.66666667%; }
    .modal-footer > .col-md-9 { width: 75%; }
    .modal-footer > .col-md-10 { width: 83.33333333%; }
    .modal-footer > .col-md-11 { width: 91.66666667%; }
    .modal-footer > .col-md-12 { width: 100%; }
}

.modal-footer .btn + .btn {
    margin-left: 5px;
    margin-bottom: 0;
}

.modal-footer .btn-group .btn + .btn {
    margin-left: -1px;
}

.modal-footer .btn-block + .btn-block {
    margin-left: 0;
}

.navbar {
    position: relative;
    min-height: 50px;
    margin-bottom: 20px;
    border: 1px solid transparent;
}

/* BS3 fixed navbar behavior (must override the generic .navbar rule above). */
.navbar.navbar-fixed-top {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1030;
}

.navbar.navbar-fixed-bottom {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1030;
    margin-bottom: 0;
}

.navbar::before,
.navbar::after {
    display: table;
    content: " ";
}

.navbar::after {
    clear: both;
}

.navbar-inverse {
    background-color: #114071;
    border-color: #0f3a66;
}

.navbar-inverse .navbar-nav > li > a {
    color: #fff;
}

.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
    color: #fff;
}

.navbar-nav {
    margin: 7.5px -15px;
}

.navbar-nav > li {
    position: relative;
    display: block;
}

.navbar-nav > li > a {
    position: relative;
    display: block;
    padding: 10px 15px;
}

/* BS3 mobile navbar toggle/button bars */
.navbar-header::before,
.navbar-header::after {
    display: table;
    content: " ";
}

.navbar-header::after {
    clear: both;
}

.navbar-toggle {
    position: relative;
    float: right;
    padding: 9px 10px;
    margin-top: 8px;
    margin-right: 15px;
    margin-bottom: 8px;
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
}

.navbar-toggle .icon-bar {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 1px;
}

.navbar-toggle .icon-bar + .icon-bar {
    margin-top: 4px;
}

.navbar-inverse .navbar-toggle .icon-bar {
    background-color: #fff;
}

.navbar-inverse .navbar-toggle {
    border-color: #333;
}

/* BS3 small controls */
.input-sm {
    height: 30px;
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 3px;
}

/* BS3 condensed table */
.table-condensed > :not(caption) > * > * {
    padding: 5px;
}

/* BS3 horizontal form label alignment */
.control-label {
    font-weight: 700;
}

.form-horizontal .control-label {
    padding-top: 7px;
    margin-bottom: 0;
    text-align: right;
}

@media (max-width: 767.98px) {
    .form-horizontal .control-label {
        text-align: left;
    }
}

/* BS3 readonly inputs had a grey background; BS5 removed this */
.form-control[readonly] {
    background-color: #eeeeee;
    opacity: 1;
    cursor: not-allowed;
}

@media (min-width: 768px) {
    .navbar-nav {
        float: left;
        margin: 0;
    }

    .navbar-nav > li {
        float: left;
    }

    .navbar-nav > li > a {
        padding-top: 15px;
        padding-bottom: 15px;
    }

    .navbar-collapse.collapse {
        display: block !important;
        height: auto !important;
        padding-bottom: 0;
        overflow: visible !important;
    }
}

@media (max-width: 767.98px) {
    .navbar-collapse.collapse {
        display: none !important;
    }

    .navbar-collapse.collapse.in,
    .navbar-collapse.collapse.show {
        display: block !important;
    }
}

.btn-group {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}

.btn-group > .btn {
    position: relative;
    float: left;
}

/* BS3 visibility utilities default state */
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
    display: none !important;
}

@media (max-width: 767.98px) {
    .hidden-xs {
        display: none !important;
    }

    .visible-xs {
        display: block !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .hidden-sm {
        display: none !important;
    }

    .visible-sm {
        display: block !important;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .hidden-md {
        display: none !important;
    }

    .visible-md {
        display: block !important;
    }
}

@media (min-width: 1200px) {
    .hidden-lg {
        display: none !important;
    }

    .visible-lg {
        display: block !important;
    }
}

/* BS3 dl-horizontal layout */
@media (min-width: 768px) {
    .dl-horizontal dt {
        float: left;
        width: 160px;
        clear: left;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        text-align: right;
    }

    .dl-horizontal dd {
        margin-left: 180px;
    }
}

.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6,
.col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
    position: relative;
    min-height: 1px;
    padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);
    float: left;
}

/* col-xs-* widths/offsets must be scoped to xs screens only (<768px).
   Without max-width, they load after bootstrap.css in the bundle and override
   col-sm-*col-md-*col-lg-* widths at all screen sizes (cascade order issue). */
@media (max-width: 767.98px) {
    .col-xs-1 { flex: 0 0 auto; width: 8.33333333%; }
    .col-xs-2 { flex: 0 0 auto; width: 16.66666667%; }
    .col-xs-3 { flex: 0 0 auto; width: 25%; }
    .col-xs-4 { flex: 0 0 auto; width: 33.33333333%; }
    .col-xs-5 { flex: 0 0 auto; width: 41.66666667%; }
    .col-xs-6 { flex: 0 0 auto; width: 50%; }
    .col-xs-7 { flex: 0 0 auto; width: 58.33333333%; }
    .col-xs-8 { flex: 0 0 auto; width: 66.66666667%; }
    .col-xs-9 { flex: 0 0 auto; width: 75%; }
    .col-xs-10 { flex: 0 0 auto; width: 83.33333333%; }
    .col-xs-11 { flex: 0 0 auto; width: 91.66666667%; }
    .col-xs-12 { flex: 0 0 auto; width: 100%; }

    .col-xs-offset-0 { margin-left: 0; }
    .col-xs-offset-1 { margin-left: 8.33333333%; }
    .col-xs-offset-2 { margin-left: 16.66666667%; }
    .col-xs-offset-3 { margin-left: 25%; }
    .col-xs-offset-4 { margin-left: 33.33333333%; }
    .col-xs-offset-5 { margin-left: 41.66666667%; }
    .col-xs-offset-6 { margin-left: 50%; }
    .col-xs-offset-7 { margin-left: 58.33333333%; }
    .col-xs-offset-8 { margin-left: 66.66666667%; }
    .col-xs-offset-9 { margin-left: 75%; }
    .col-xs-offset-10 { margin-left: 83.33333333%; }
    .col-xs-offset-11 { margin-left: 91.66666667%; }
    .col-xs-offset-12 { margin-left: 100%; }
}

/* BS3 parity: all legacy grid columns keep 15px side padding. */
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6,
.col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12,
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6,
.col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12,
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6,
.col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12,
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6,
.col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    min-height: 1px;
    padding-left: 15px;
    padding-right: 15px;
}

@media (min-width: 992px) {
    .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6,
    .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
        float: left;
    }

    .col-md-offset-0 { margin-left: 0; }
    .col-md-offset-1 { margin-left: 8.33333333%; }
    .col-md-offset-2 { margin-left: 16.66666667%; }
    .col-md-offset-3 { margin-left: 25%; }
    .col-md-offset-4 { margin-left: 33.33333333%; }
    .col-md-offset-5 { margin-left: 41.66666667%; }
    .col-md-offset-6 { margin-left: 50%; }
    .col-md-offset-7 { margin-left: 58.33333333%; }
    .col-md-offset-8 { margin-left: 66.66666667%; }
    .col-md-offset-9 { margin-left: 75%; }
    .col-md-offset-10 { margin-left: 83.33333333%; }
    .col-md-offset-11 { margin-left: 91.66666667%; }
    .col-md-offset-12 { margin-left: 100%; }
}

@media (min-width: 768px) {
    .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6,
    .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
        float: left;
    }

    .col-sm-offset-0 { margin-left: 0; }
    .col-sm-offset-1 { margin-left: 8.33333333%; }
    .col-sm-offset-2 { margin-left: 16.66666667%; }
    .col-sm-offset-3 { margin-left: 25%; }
    .col-sm-offset-4 { margin-left: 33.33333333%; }
    .col-sm-offset-5 { margin-left: 41.66666667%; }
    .col-sm-offset-6 { margin-left: 50%; }
    .col-sm-offset-7 { margin-left: 58.33333333%; }
    .col-sm-offset-8 { margin-left: 66.66666667%; }
    .col-sm-offset-9 { margin-left: 75%; }
    .col-sm-offset-10 { margin-left: 83.33333333%; }
    .col-sm-offset-11 { margin-left: 91.66666667%; }
    .col-sm-offset-12 { margin-left: 100%; }
}

@media (min-width: 1200px) {
    .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6,
    .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
        float: left;
    }

    .col-lg-offset-0 { margin-left: 0; }
    .col-lg-offset-1 { margin-left: 8.33333333%; }
    .col-lg-offset-2 { margin-left: 16.66666667%; }
    .col-lg-offset-3 { margin-left: 25%; }
    .col-lg-offset-4 { margin-left: 33.33333333%; }
    .col-lg-offset-5 { margin-left: 41.66666667%; }
    .col-lg-offset-6 { margin-left: 50%; }
    .col-lg-offset-7 { margin-left: 58.33333333%; }
    .col-lg-offset-8 { margin-left: 66.66666667%; }
    .col-lg-offset-9 { margin-left: 75%; }
    .col-lg-offset-10 { margin-left: 83.33333333%; }
    .col-lg-offset-11 { margin-left: 91.66666667%; }
    .col-lg-offset-12 { margin-left: 100%; }
}

/* Graph page visual parity on Bootstrap 5 (without loading Bootstrap 3 files). */
.graph-page .container {
    width: auto;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

.graph-page .row {
    display: block;
    margin-right: -15px;
    margin-left: -15px;
}

.graph-page .row::before,
.graph-page .row::after {
    display: table;
    content: " ";
}

.graph-page .row::after {
    clear: both;
}

.graph-page [class*="col-"] {
    position: relative;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;
}

.graph-page .layout-header.navbar {
    border: 0;
    margin-bottom: 0;
    background: transparent;
    height: 51px;
    min-height: 51px;
}

.graph-page .navbar {
    min-height: 51px;
    padding-top: 0;
    padding-bottom: 0;
}

.graph-page .navbar-brand {
    height: 50px;
    padding-top: 15px;
    padding-bottom: 15px;
}

.graph-page .navbar-toggle {
    margin-top: 8px;
    margin-bottom: 8px;
}

.graph-page .navbar-inverse {
    border-color: transparent;
    background-color: transparent;
}

.graph-page .navbar-collapse {
    padding-right: 15px;
    padding-left: 15px;
}

.graph-page .navbar-nav {
    margin: 7.5px -15px;
}

.graph-page .navbar-nav > li {
    float: none;
}

.graph-page .navbar-nav > li > a {
    padding-top: 10px;
    padding-bottom: 10px;
    line-height: 20px;
}

@media (min-width: 768px) {
    .graph-page .navbar-nav {
        float: left;
        margin: 0;
    }

    .graph-page .navbar-nav > li {
        float: left;
    }

    .graph-page .navbar-nav > li > a {
        padding-top: 15px;
        padding-bottom: 15px;
    }

    .graph-page .navbar-collapse.collapse {
        display: block !important;
        height: auto !important;
        padding-bottom: 0;
        overflow: visible !important;
    }
}

.graph-page .btn-sm {
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 3px;
}

.graph-page .btn-block {
    display: block;
    width: 100%;
}

.graph-page .form-control {
    display: block;
    width: 100%;
    height: 34px;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.42857143;
    border-radius: 4px;
}

.graph-page .input-sm {
    height: 30px;
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 3px;
}

.graph-page .table-condensed > thead > tr > th,
.graph-page .table-condensed > tbody > tr > th,
.graph-page .table-condensed > tfoot > tr > th,
.graph-page .table-condensed > thead > tr > td,
.graph-page .table-condensed > tbody > tr > td,
.graph-page .table-condensed > tfoot > tr > td {
    padding: 5px;
}

.graph-page #footer .container {
    margin: auto;
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    background-color: #000;
}

.graph-page #footer > .navbar-fixed-bottom {
    height: 50px;
    min-height: 50px;
    margin-bottom: 0;
}

.graph-page #footer .row.banner {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Global fallback for legacy BS3 spinner icon/classes used by loading modals. */
@-webkit-keyframes bs3-spin2 {
    from { -webkit-transform: rotate(0deg); }
    to { -webkit-transform: rotate(360deg); }
}

@keyframes bs3-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@font-face {
    font-family: 'Glyphicons Halflings';
    src: url('../fonts/glyphicons-halflings-regular.eot');
    src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),
         url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),
         url('../fonts/glyphicons-halflings-regular.woff') format('woff'),
         url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),
         url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}

.glyphicon {
    position: relative;
    top: 1px;
    display: inline-block;
    font-family: 'Glyphicons Halflings';
    font-style: normal;
    font-weight: 400;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.glyphicon-search:before { content: "\e003"; }
.glyphicon-user:before { content: "\e008"; }
.glyphicon-th-large:before { content: "\e010"; }
.glyphicon-th:before { content: "\e011"; }
.glyphicon-ok:before { content: "\e013"; }
.glyphicon-remove:before { content: "\e014"; }
.glyphicon-file:before { content: "\e022"; }
.glyphicon-refresh:before { content: "\e031"; }
.glyphicon-list-alt:before { content: "\e032"; }
.glyphicon-flag:before { content: "\e034"; }
.glyphicon-chevron-left:before { content: "\e079"; }
.glyphicon-chevron-right:before { content: "\e080"; }
.glyphicon-plus-sign:before { content: "\e081"; }
.glyphicon-minus-sign:before { content: "\e082"; }
.glyphicon-question-sign:before { content: "\e085"; }
.glyphicon-share-alt:before { content: "\e095"; }
.glyphicon-resize-full:before { content: "\e096"; }
.glyphicon-resize-small:before { content: "\e097"; }
.glyphicon-exclamation-sign:before { content: "\e101"; }
.glyphicon-check:before { content: "\e067"; }
.glyphicon-edit:before { content: "\e065"; }
.glyphicon-eye-open:before { content: "\e105"; }
.glyphicon-eye-close:before { content: "\e106"; }
.glyphicon-calendar:before { content: "\e109"; }
.glyphicon-random:before { content: "\e110"; }
.glyphicon-chevron-down:before { content: "\e114"; }
.glyphicon-bullhorn:before { content: "\e122"; }
.glyphicon-wrench:before { content: "\e136"; }
.glyphicon-link:before { content: "\e144"; }
.glyphicon-phone:before { content: "\e145"; }
.glyphicon-unchecked:before { content: "\e157"; }
.glyphicon-log-in:before { content: "\e161"; }
.glyphicon-log-out:before { content: "\e163"; }
.glyphicon-save:before { content: "\e166"; }
.glyphicon-saved:before { content: "\e168"; }
.glyphicon-export:before { content: "\e170"; }
.glyphicon-floppy-disk:before { content: "\e172"; }
.glyphicon-floppy-saved:before { content: "\e173"; }
.glyphicon-pause:before { content: "\e073"; }
.glyphicon-plus:before { content: "\002b"; }
.glyphicon-minus:before { content: "\2212"; }
}

.glyphicon-refresh-animate {
    display: inline-block;
    -webkit-animation: bs3-spin2 .7s infinite linear;
    animation: bs3-spin .7s infinite linear;
}
