:root {
    --app-sidebar-width: 15rem;
    --app-navbar-height: 3.5rem;
}
.page {
    min-height: 100vh;
}
.page-wrapper {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.page-body {
    flex: 1 0 auto;
}
.app-footer {
    flex: 0 0 auto;
    width: 100%;
    margin-top: auto;
    padding: 1rem;
    text-align: center;
}
.app-resize-handle {
    position: absolute;
    z-index: 1080;
    transition: background-color .15s ease;
}
.app-resize-handle:hover,
.app-resize-handle.is-resizing {
    background: var(--tblr-primary);
}
#sidebar-resizer {
    top: 0;
    right: -3px;
    width: 7px;
    height: 100%;
    cursor: col-resize;
}
#navbar-resizer {
    left: 0;
    bottom: -3px;
    width: 100%;
    height: 7px;
    cursor: row-resize;
}
.app-flag {
    width: 1.5rem;
    height: 1rem;
    display: inline-block;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .15);
    overflow: hidden;
    vertical-align: -.15rem;
}
.app-flag svg {
    display: block;
    width: 100%;
    height: 100%;
}
@media (min-width: 992px) {
    .navbar-vertical.navbar-expand-lg {
        width: var(--app-sidebar-width) !important;
        overflow: hidden !important;
    }
    .navbar-vertical.navbar-expand-lg .navbar-collapse {
        overflow: hidden !important;
    }
    .navbar-vertical.navbar-expand-lg ~ .app-top-navbar {
        margin-left: var(--app-sidebar-width) !important;
    }
    .navbar-vertical.navbar-expand-lg ~ .page-wrapper {
        margin-left: var(--app-sidebar-width) !important;
    }
    .app-top-navbar {
        min-height: var(--app-navbar-height);
        height: var(--app-navbar-height);
    }
}
@media (max-width: 991.98px) {
    .app-resize-handle {
        display: none;
    }
}
