/* Sidebar styles based on Bootstrap sidebar examples - Light theme */
body {
    min-height: 100vh;
    min-height: -webkit-fill-available;
}

html {
    height: -webkit-fill-available;
}

main {
    height: 100vh;
    height: -webkit-fill-available;
    max-height: 100vh;
    overflow-x: auto;
    overflow-y: hidden;
}

.sidebar {
    transition: width 0.3s ease-in-out;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    overflow-x: hidden;
    box-shadow: 2px 0 5px rgba(0,0,0,0.1);
    width: 280px;
    height: 100vh;
    overflow-y: auto;
}

/* Collapsed sidebar styles */
.sidebar.collapsed {
    width: 80px !important;
}

/* Hide text when sidebar is collapsed */
.sidebar.collapsed .sidebar-text {
    display: none;
}

/* Hide dropdown text when collapsed */
.sidebar.collapsed .dropdown-toggle strong {
    display: none;
}

/* Adjust toggle button when collapsed */
.sidebar.collapsed .sidebar-toggle {
    padding: 0.375rem 0.5rem;
    width: auto;
}

/* Center icons when collapsed */
.sidebar.collapsed .nav-link,
.sidebar.collapsed .btn-toggle {
    justify-content: center;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

/* Hide collapse sections when sidebar is collapsed */
.sidebar.collapsed .collapse {
    display: none !important;
}

/* Adjust logo/brand when collapsed */
.sidebar.collapsed .d-flex.align-items-center.mb-3 .sidebar-text {
    display: none;
}

/* Main content default margin - always present when user is authenticated */
body:has(.sidebar) .main-content {
    margin-left: 280px;
    transition: margin-left 0.3s ease-in-out;
    min-height: 100vh;
    padding: 1rem;
}

/* Main content adjustment when sidebar is collapsed */
body:has(.sidebar.collapsed) .main-content {
    margin-left: 80px;
}

/* Main content for non-authenticated users */
.main-content {
    min-height: 100vh;
    padding: 1rem;
}

/* Bootstrap icon alignment */
.bi {
    vertical-align: -.125em;
    fill: currentColor;
}

.btn-toggle {
    padding: .25rem .5rem;
    font-weight: 600;
    color: rgba(0, 0, 0, .65);
    background-color: transparent;
    border: 0;
}

.btn-toggle:hover,
.btn-toggle:focus {
    color: rgba(0, 0, 0, .85);
    background-color: #d2f4ea;
}

.btn-toggle::before {
    width: 1.25em;
    line-height: 0;
    content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%280,0,0,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e");
    transition: transform .35s ease;
    transform-origin: .5em 50%;
}

.btn-toggle[aria-expanded="true"] {
    color: rgba(0, 0, 0, .85);
}

.btn-toggle[aria-expanded="true"]::before {
    transform: rotate(90deg);
}

.btn-toggle-nav a {
    padding: .1875rem .5rem;
    margin-top: .125rem;
    margin-left: 1.25rem;
}

.btn-toggle-nav a:hover,
.btn-toggle-nav a:focus {
    background-color: #d2f4ea;
    border-radius: .25rem;
}

/* Ensure nav-link icons are properly aligned */
.nav-link svg {
    vertical-align: -.125em;
}

/* Responsive behavior */
@media (max-width: 768px) {
    .sidebar {
        margin-left: -280px;
        width: 280px !important;
    }

    .sidebar.show {
        margin-left: 0;
    }

    body:has(.sidebar) .main-content,
    .main-content {
        margin-left: 0 !important;
    }

    /* Mobile overlay when sidebar is shown */
    .sidebar-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 999;
        display: none;
    }

    .sidebar-overlay.show {
        display: block;
    }
}

/* Fallback for browsers that don't support :has() */
@supports not (selector(:has(*))) {
    .main-content {
        margin-left: 280px;
        transition: margin-left 0.3s ease-in-out;
    }

    .main-content.sidebar-collapsed {
        margin-left: 80px;
    }

    @media (max-width: 768px) {
        .main-content,
        .main-content.sidebar-collapsed {
            margin-left: 0 !important;
        }
    }
}

/* Toggle button styling */
.sidebar-toggle {
    border: 1px solid #dee2e6;
    background-color: transparent;
    color: RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;
}

.sidebar-toggle:hover {
    background-color: #f8f9fa;
    border-color: #adb5bd;
}

/* Light theme dropdown menu styling */
.dropdown-menu .dropdown-item form button {
    background: none;
    border: none;
    color: inherit;
    width: 100%;
    text-align: left;
    padding: 0;
}

.dropdown-menu .dropdown-item form button:hover {
    background: none;
}
