﻿.sidebar {
    width: 280px;
    min-height: 100vh;
    background: var(--bs-body-bg);
    position: sticky;
    top: 0;
}

.sidebar-header .navbar-brand {
    text-decoration: none;
}

.sidebar .nav-link {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem 1rem;
    color: var(--bs-body-color);
    border-radius: .375rem;
    margin: 0 .5rem .25rem;
}

    .sidebar .nav-link.active,
    .sidebar .nav-link:hover {
        background: var(--bs-primary-bg-subtle);
        color: var(--bs-primary-text);
    }

.menu-group {
    margin: .25rem 0;
}

.menu-group-btn {
    width: 100%;
    border: 0;
    background: transparent;
    padding: .5rem 1rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--bs-body-color);
    border-radius: .375rem;
    margin: 0 .5rem .25rem;
    text-align: left;
}

    .menu-group-btn:hover {
        background: var(--bs-secondary-bg);
    }

.menu-group-items {
    display: flex;
    flex-direction: column;
    margin: .25rem 0 .5rem;
}

.nav-sublink {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .375rem 1.75rem;
    color: var(--bs-body-color);
    text-decoration: none;
    border-radius: .375rem;
    margin: 0 .5rem .25rem;
}

    .nav-sublink.active,
    .nav-sublink:hover {
        background: var(--bs-secondary-bg);
        color: inherit;
    }

.sidebar-body {
    padding-bottom: 2rem;
}

/* Hide NavMenu's internal mobile toggle when inside offcanvas */
.offcanvas .sidebar-header .btn {
    display: none;
}

@media (max-width: 991.98px) {
    .sidebar {
        position: fixed;
        z-index: 1040;
        transform: translateX(0);
        width: 80%;
        max-width: 320px;
        box-shadow: var(--bs-box-shadow);
    }
}

