/* Navigation Collapsible Accordion Styles */

/* Mobile-friendly touch targets - minimum 44px height recommended by WCAG */
@media (max-width: 768px) {
    .nav-group-title.collapsible-header {
        padding: var(--spacing-md) var(--spacing-md) !important;
        font-size: 1.1rem;
        min-height: 48px;
        display: flex;
        align-items: center;
    }

    .nav-link {
        padding: var(--spacing-md) var(--spacing-md) !important;
        font-size: 1rem;
        min-height: 48px;
        display: flex;
        align-items: center;
    }

    .sidebar {
        font-size: 1rem;
    }
}

/* Add visual container for each nav group */
.nav-group {
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-md);
    background-color: transparent;
    box-shadow: 0 1px 3px var(--theme-shadow-light);
    overflow: hidden;
}

/* Make nav group titles clickable and styled like accordion headers */
.nav-group-title.collapsible-header {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-sm) var(--spacing-md);
    margin-bottom: 0;
    border-radius: var(--radius-md);
    transition: all 0.2s ease;
    background-color: var(--theme-shadow-subtle);
}

.nav-group-title.collapsible-header:hover {
    background-color: var(--bg-hover);
    color: var(--text-primary);
}

.nav-group-title.collapsible-header:active {
    transform: scale(0.98);
}

/* Toggle icon styling */
.nav-group-title .toggle-icon {
    font-size: var(--font-size-xs);
    transition: transform 0.3s ease;
    color: var(--text-muted);
}

.nav-group-title.collapsible-header:hover .toggle-icon {
    color: var(--text-primary);
}

/* Rotate icon when section is expanded */
.nav-group-title.expanded .toggle-icon {
    transform: rotate(180deg);
}

/* Collapsible content styling */
.collapsible-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
    opacity: 0;
}

.collapsible-content.expanded {
    max-height: 500px; /* Adjust based on your needs */
    opacity: 1;
    transition: max-height 0.3s ease-in, opacity 0.2s ease-in 0.1s;
}

/* Ensure nav items within collapsed sections are hidden properly */
.collapsible-content:not(.expanded) .nav-item {
    visibility: hidden;
}

.collapsible-content.expanded .nav-item {
    visibility: visible;
}

/* Add some padding to the content when expanded */
.collapsible-content.expanded {
    padding: var(--spacing-sm) 0;
}

/* Style the nav items within the container */
.collapsible-content .nav-item {
    margin-bottom: 0;
}

.collapsible-content .nav-link {
    margin: 0 var(--spacing-sm);
    border-radius: var(--radius-md);
}

/* Active state for nav group when it contains an active nav item */
.nav-group.has-active {
    box-shadow: 0 2px 6px var(--surface-info-tint);
}

.nav-group.has-active .nav-group-title.collapsible-header {
    background-color: var(--primary-color);
    color: var(--text-inverse);
}

.nav-group.has-active .nav-group-title.collapsible-header .toggle-icon {
    color: var(--text-inverse);
}

/* Accessible focus states for keyboard navigation */
.nav-group + .nav-group {
    margin-top: var(--spacing-md);
}



/* Animation improvements for smoother transitions */
@media (prefers-reduced-motion: no-preference) {
    .collapsible-content {
        transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), 
                    opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }
    
    .toggle-icon {
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }
}

/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
    .collapsible-content,
    .toggle-icon,
    .nav-group-title.collapsible-header {
        transition: none;
    }
}

/* Focus states for accessibility */
.nav-group-title.collapsible-header:focus {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

.nav-group-title.collapsible-header:focus-visible {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .nav-group-title.collapsible-header {
        border: 1px solid var(--border-color);
    }
    
    .nav-group-title.collapsible-header:hover {
        border-color: var(--primary-color);
    }
}