/* css/modules/sidebar.css */

/* Sidebar Container Styling */
.sidebar {
    background-color: var(--clr-surface);
    border-right: 1px solid var(--clr-border);
    padding: 1rem;
    overflow-y: auto;
    height: 100%; /* Ensure sidebar takes full height of its grid area */
}

/* Navigation container */
.sidebar nav {
    width: 100%;
}

/* CRITICAL: Remove ALL list styling from sidebar */
.sidebar ul,
.sidebar ol,
.sidebar-group-content ul,
.sidebar-group-content ol {
    list-style: none !important;
    list-style-type: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
    margin: 0;
    padding: 0;
}

.sidebar li,
.sidebar-group-content li {
    list-style: none !important;
    list-style-type: none !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
}

/* Sidebar Group Container */
.sidebar-group {
    margin-bottom: 1rem;
    border: 1px solid var(--clr-border);
    border-radius: 0.5rem;
    overflow: hidden; /* Ensure rounded corners are clean */
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.sidebar-group:hover {
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}

.sidebar-group:last-child {
    margin-bottom: 0;
}

/* Group Toggle Button */
.sidebar-group-toggle {
    width: 100%;
    text-align: left;
    padding: 0.65rem 0.875rem;
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.3;
    color: var(--clr-indigo);
    background-color: var(--clr-surface);
    border: none;
    border-bottom: 1px solid var(--clr-border);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    min-height: 44px; /* Ensure consistent height for accessibility */
}

/* Remove border-bottom from toggle when group is last child or expanded */
.sidebar-group:last-child .sidebar-group-toggle,
.sidebar-group-toggle[aria-expanded="true"] {
    border-bottom: none;
}

.sidebar-group-toggle:hover {
    background-color: var(--clr-lavender);
    color: var(--clr-indigo);
}

.sidebar-group-toggle:focus-visible {
    outline: 2px solid var(--clr-highlight);
    outline-offset: -2px;
    background-color: var(--clr-lavender);
}

/* Toggle Icons (+ and −) */
.sidebar-group-toggle::after {
    content: '+';
    font-size: 1.2em;
    font-weight: 400;
    color: var(--clr-indigo);
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), color 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    line-height: 1;
    min-width: 1.2em;
    text-align: center;
}

.sidebar-group-toggle[aria-expanded="true"]::after {
    content: '−';
    transform: none; /* Reset any transform */
}

.sidebar-group-toggle:hover::after {
    color: var(--clr-indigo);
}

/* Group Content Container */
.sidebar-group-content {
    background-color: var(--clr-surface);
    border-top: 1px solid var(--clr-border);
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

/* When expanded via JavaScript */
.sidebar-group-content.is-expanded {
    max-height: 500px; /* Reasonable max-height for content */
}

/* Navigation Links - Simplified without decorative dots */
.sidebar-group-content li a {
    display: flex !important;
    align-items: center;
    padding: 0.6rem 1rem;
    text-decoration: none;
    color: var(--clr-ink);
    font-size: 0.95rem;
    font-weight: 400;
    border-bottom: 1px solid var(--clr-border);
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    margin: 0;
}

/* Remove decorative dots/::before elements completely */
.sidebar-group-content li a::before {
    display: none !important;
}

/* Remove ::after elements as well */
.sidebar-group-content li a::after {
    display: none !important;
}

/* Remove border from last link */
.sidebar-group-content li:last-child a {
    border-bottom: none;
}

/* Number styling - this is the only "bullet" we want */
.sidebar-group-content li a .nav-number {
    display: inline-block;
    min-width: 1.5em;
    margin-right: 0.5rem;
    color: var(--clr-indigo);
    font-weight: 500;
    font-size: 0.85rem;
    opacity: 0.75;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}

/* Link hover state - simplified */
.sidebar-group-content li a:hover {
    background-color: var(--clr-lavender);
    color: var(--clr-indigo);
    text-decoration: none;
}

/* Link focus state */
.sidebar-group-content li a:focus-visible {
    outline: 2px solid var(--clr-highlight);
    outline-offset: -2px;
    background-color: var(--clr-lavender);
    color: var(--clr-indigo);
}

/* Active/current page link styling - using left border instead of pseudo-elements */
.sidebar-group-content li a.current,
.sidebar-group-content li a[aria-current="page"] {
    background-color: var(--clr-indigo);
    color: var(--clr-surface);
    font-weight: 600;
    border-left: 4px solid var(--clr-mint);
    padding-left: calc(1rem - 4px); /* Adjust padding to account for border */
}

/* Active state number */
.sidebar-group-content li a.current .nav-number,
.sidebar-group-content li a[aria-current="page"] .nav-number {
    color: var(--clr-surface);
    opacity: 0.9;
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    .sidebar {
        padding: 0.75rem;
        border-right: none;
        border-bottom: 1px solid var(--clr-border);
    }
    
    .sidebar-group-toggle {
        padding: 0.6rem 0.75rem;
        font-size: 0.85rem;
        min-height: 42px;
    }
    
    .sidebar-group-content li a {
        padding: 0.5rem 0.75rem;
        font-size: 0.9rem;
    }
    
    .sidebar-group-content li a.current,
    .sidebar-group-content li a[aria-current="page"] {
        padding-left: calc(0.75rem - 4px);
    }
    
    .sidebar-group-content li a .nav-number {
        min-width: 1.25em;
        margin-right: 0.4rem;
    }
}

/* Enhanced visual hierarchy for nested content */
.sidebar-group-content {
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.05);
}

/* Alternative: if using display property via JS */
.sidebar-group[data-expanded="true"] .sidebar-group-content {
    display: block;
    animation: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}