/* 侧边栏组件样式 */    
.sidebar {    
    grid-area: sidebar;    
    background: var(--surface-color);    
    border-right: 1px solid var(--border-color);    
    min-height: 0;
    height: calc(100vh - var(--header-height) - var(--footer-height));
    max-height: calc(100vh - var(--header-height) - var(--footer-height));
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    z-index: 5;
    transition: all 0.3s ease;    
    padding-bottom: 20px;
    align-self: stretch;
}    
    
.nav-menu {    
    list-style: none;    
    min-height: 100%;
    padding: 12px 0 20px;
}

.nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
}    
    
.nav-item {    
    margin: 0;    
}    
    
.nav-link {    
    display: flex;    
    align-items: center;    
    gap: 12px;    
    padding: 12px 20px;    
    color: var(--text-secondary);    
    text-decoration: none;    
    transition: background-color 0.15s ease, color 0.15s ease, border-left-color 0.15s ease;    
    border-left: 3px solid transparent;    
}    
    
.nav-link:hover {    
    background: rgba(var(--primary-color-rgb), 0.08);    
    color: var(--text-primary);    
    border-left-color: var(--primary-color);    
}    
    
.nav-link.active {    
    background: rgba(var(--primary-color-rgb), 0.12);    
    color: var(--primary-color);    
    border-left-color: var(--primary-color);    
    font-weight: 500;    
}    
    
.nav-icon {    
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    padding: 5px;
    box-sizing: border-box;
    border-radius: 7px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    background: rgba(100, 116, 139, 0.08);
    transition: color 0.15s ease, background-color 0.15s ease, transform 0.15s ease;
}

.nav-link:hover .nav-icon {
    background: rgba(var(--primary-color-rgb), 0.12);
    transform: translateY(-1px);
}

.nav-link.active .nav-icon {
    color: #fff;
    background: var(--primary-color);
}    
    
/* 二级菜单样式 */    
.nav-item-expandable .nav-arrow {    
    width: 16px;    
    height: 16px;    
    margin-left: auto;    
    transition: transform 0.2s ease;    
}    
    
.nav-arrow {    
    width: 16px;    
    height: 16px;    
    margin-left: auto;    
    transition: transform 0.2s ease;    
    fill: currentColor;    
    stroke: currentColor;    
    stroke-width: 2;    
}    
    
.nav-item-expandable.expanded .nav-arrow {    
    transform: rotate(90deg);    
}    
    
.nav-submenu {    
    max-height: 0;    
    overflow: hidden;    
    transition: max-height 0.3s ease;    
    background: rgba(0, 0, 0, 0.1);    
}    
    
.nav-item-expandable.expanded .nav-submenu {    
    max-height: 2000px;
}

.nav-subitem {
    list-style: none;
}    
    
.nav-sublink {    
    display: flex;    
    align-items: center;    
    padding: 8px 16px 8px 48px;    
    color: var(--text-secondary);    
    text-decoration: none;    
    font-size: 14px;    
    transition: all 0.2s ease;    
    border-left: 3px solid transparent;    
}    
    
.nav-sublink:hover {    
    background: rgba(var(--primary-color-rgb), 0.06);    
    color: var(--text-primary);    
    border-left-color: var(--primary-color);    
}    
    
.nav-sublink.active {    
    background: rgba(var(--primary-color-rgb), 0.1);    
    color: var(--primary-color);    
    border-left-color: var(--primary-color);    
    font-weight: 500;    
}    
    
.config-required {    
    color: var(--error-color);    
    font-size: 12px;    
    margin-left: 4px;    
}
