/* Slowbooks app shell and responsive navigation */
.app-topbar .navbar { min-height: 60px; z-index: 1040; }
.app-main { min-width: 0; }
.app-content { padding: 82px 1.25rem 2rem; }
.app-sidebar {
    --bs-offcanvas-width: 272px;
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
}
.app-sidebar .offcanvas-body { overflow-y: auto; }
.app-sidebar-heading {
    color: var(--bs-secondary-color);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    padding: .6rem .75rem .35rem;
}
.app-sidebar-link,
.app-sidebar-section-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: .6rem .75rem;
    border: 0;
    border-radius: .45rem;
    color: var(--bs-body-color);
    background: transparent;
    text-align: left;
    text-decoration: none;
    font-size: .92rem;
    font-weight: 500;
    transition: background-color .15s ease, color .15s ease;
}
.app-sidebar-section-toggle { margin-top: .2rem; }
.app-sidebar-link:hover,
.app-sidebar-section-toggle:hover { color: var(--bs-primary); background: var(--bs-tertiary-bg); }
.app-sidebar-link.active,
.app-sidebar-section-toggle.active { color: var(--bs-primary-text-emphasis); background: var(--bs-primary-bg-subtle); font-weight: 650; }
.app-sidebar-section-toggle:focus-visible,
.app-sidebar-link:focus-visible { outline: 2px solid var(--bs-primary); outline-offset: 2px; }
.app-sidebar-chevron { color: var(--bs-secondary-color); transition: transform .15s ease; }
.app-sidebar-section-toggle[aria-expanded="true"] .app-sidebar-chevron { transform: rotate(180deg); }
.app-sidebar-subnav { display: grid; gap: .1rem; padding: .2rem 0 .5rem .8rem; }
.app-sidebar-subnav .app-sidebar-link { padding-top: .48rem; padding-bottom: .48rem; font-size: .875rem; }
.app-footer { transition: margin-left .2s ease; }

@media (min-width: 992px) {
    .app-sidebar.offcanvas-lg {
        position: fixed;
        top: 60px;
        right: auto;
        bottom: 0;
        left: 0;
        width: 272px;
        height: auto;
        visibility: visible;
        transform: none;
        border-right: 1px solid var(--bs-border-color);
        z-index: 1020;
        transition: transform .2s ease, visibility .2s ease;
    }
    .app-sidebar.offcanvas-lg .offcanvas-body { height: 100%; }
    .app-authenticated .app-main,
    .app-authenticated .app-footer { margin-left: 272px; transition: margin-left .2s ease; }
    .app-authenticated.sidebar-hidden .app-sidebar.offcanvas-lg { transform: translateX(-100%); visibility: hidden; }
    .app-authenticated.sidebar-hidden .app-main,
    .app-authenticated.sidebar-hidden .app-footer { margin-left: 0; }
}

@media (max-width: 575.98px) {
    .app-content { padding-right: .85rem; padding-left: .85rem; }
    .app-topbar .navbar { padding-right: .65rem !important; padding-left: .65rem !important; }
}
