.admin-app {
    height: 100vh;
    height: 100dvh;
    min-height: 0;
}

.admin-topbar-inner {
    display: flex;
    flex-wrap: nowrap;
    gap: 1rem;
    min-width: 0;
}

.admin-brand {
    flex: 0 0 auto;
    margin-right: 0;
    font-weight: 600;
}

.admin-page-title {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    color: #fff;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-account-menu {
    flex: 0 0 auto;
    min-width: 0;
}

.admin-account-menu .btn {
    display: flex;
    align-items: center;
    gap: .5rem;
    max-width: 240px;
}

.admin-account-menu .btn span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-mobile-menu-button {
    align-items: center;
    gap: .5rem;
    white-space: nowrap;
}

.admin-workspace {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
}

.admin-sidebar {
    flex: 0 0 240px;
    flex-direction: column;
    width: 240px;
    min-height: 0;
    overflow: hidden;
    background: #fff;
    border-right: 1px solid #dce4ee;
}

#page-container.admin-content {
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    max-width: none;
    overflow: auto;
}

.admin-menu {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 1rem .75rem;
}

.admin-menu-home,
.admin-menu-group-toggle {
    display: flex;
    align-items: center;
    gap: .75rem;
    width: 100%;
    min-height: 42px;
    padding: .55rem .75rem;
    color: #34445a;
    font-weight: 600;
    text-align: left;
    text-decoration: none;
    background: transparent;
    border: 0;
    border-radius: .5rem;
    cursor: pointer;
}

.admin-menu-home > .fa-home,
.admin-menu-group-toggle > .svg-inline--fa:first-child,
.admin-menu-group-toggle > .fas:first-child {
    flex: 0 0 18px;
    width: 18px;
    text-align: center;
}

.admin-menu-group {
    margin-top: .25rem;
}

.admin-menu-home:hover,
.admin-menu-group-toggle:hover,
.admin-menu-link:hover,
.admin-sidebar-collapse:hover {
    color: #084298;
    background: #edf3fb;
}

.admin-menu-home.is-active,
.admin-menu-group.is-active > .admin-menu-group-toggle,
.admin-menu-link.is-active {
    color: #084298;
    background: #e6f0ff;
}

.admin-menu-chevron {
    width: 12px;
    margin-left: auto;
    transition: transform .18s ease;
}

.admin-menu-group-toggle[aria-expanded="true"] .admin-menu-chevron {
    transform: rotate(180deg);
}

.admin-menu-submenu {
    padding: .2rem 0 .45rem 2.3rem;
}

.admin-menu-submenu[hidden] {
    display: none;
}

.admin-menu-link {
    display: block;
    padding: .48rem .65rem;
    color: #49586b;
    text-decoration: none;
    border-radius: .4rem;
}

.admin-menu-link + .admin-menu-link {
    margin-top: .1rem;
}

.admin-menu-home:focus-visible,
.admin-menu-group-toggle:focus-visible,
.admin-menu-link:focus-visible,
.admin-sidebar-collapse:focus-visible,
.admin-mobile-menu-button:focus-visible {
    outline: 3px solid #fdc55a;
    outline-offset: 2px;
}

.admin-sidebar-collapse {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    width: 100%;
    min-height: 48px;
    color: #34445a;
    background: #fff;
    border: 0;
    border-top: 1px solid #dce4ee;
    cursor: pointer;
}

.admin-sidebar-collapse .svg-inline--fa,
.admin-sidebar-collapse .fas {
    transition: transform .18s ease;
}

html.admin-sidebar-collapsed .admin-sidebar {
    flex-basis: 64px;
    width: 64px;
}

html.admin-sidebar-collapsed .admin-sidebar .admin-menu {
    padding-right: .5rem;
    padding-left: .5rem;
}

html.admin-sidebar-collapsed .admin-sidebar .admin-menu-home,
html.admin-sidebar-collapsed .admin-sidebar .admin-menu-group-toggle {
    justify-content: center;
    padding-right: 0;
    padding-left: 0;
}

html.admin-sidebar-collapsed .admin-sidebar .admin-menu-label,
html.admin-sidebar-collapsed .admin-sidebar .admin-menu-chevron,
html.admin-sidebar-collapsed .admin-sidebar .admin-menu-submenu {
    display: none;
}

html.admin-sidebar-collapsed .admin-sidebar-collapse .svg-inline--fa,
html.admin-sidebar-collapsed .admin-sidebar-collapse .fas {
    transform: rotate(180deg);
}

.admin-mobile-menu {
    width: min(320px, 88vw);
}

.admin-mobile-menu .offcanvas-body {
    display: flex;
    min-height: 0;
    padding: 0;
}

.admin-mobile-menu .admin-menu {
    width: 100%;
}

@media (max-width: 1199.98px) {
    .admin-mobile-menu-button {
        display: inline-flex;
    }
}

@media (max-width: 767.98px) {
    #topNavBar > .admin-topbar-inner > .admin-account-menu {
        margin-top: 0;
    }
}

@media (max-width: 575.98px) {
    .admin-topbar-inner {
        gap: .55rem;
    }

    .admin-brand {
        font-size: 1rem;
    }

    .admin-page-title {
        font-size: .875rem;
    }

    .admin-mobile-menu-button {
        padding-right: .55rem;
        padding-left: .55rem;
    }

    .admin-account-menu .btn {
        padding-right: .55rem;
        padding-left: .55rem;
    }
}
