/* ========================================
   재사용 가능한 사이드바 CSS
   common-side.css
   ======================================== */

/* 사이드바 컨테이너 */
.common-sidebar {
    width: 200px; /* 기본 너비 */
    flex-shrink: 0;
    position: relative;
    margin-left: -200px; /* 값만 조정해서 로고와 맞춤 */
}

/* 화면 크기별 사이드바 너비 조정 */
@media (max-width: 1200px) {
    .common-sidebar {
        width: 220px; /* 1200px 이하에서 조금 작게 */
    }
}

@media (max-width: 1100px) {
    .common-sidebar {
        width: 200px; /* 1100px 이하에서 더 작게 */
    }
}

/* 사이드바 네비게이션 - 배경/테두리 제거 */
.sidebar-nav {
    background: transparent;
    border-radius: 0;
    padding: 20px 0;
    border: none;
}

/* 화면 크기별 패딩 조정 */
@media (max-width: 1200px) {
    .sidebar-nav {
        padding: 16px 0; /* 패딩 축소 */
    }
}

@media (max-width: 1100px) {
    .sidebar-nav {
        padding: 12px 0; /* 더 작은 패딩 */
    }
}

/* 네비게이션 리스트 */
.sidebar-nav .nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* 네비게이션 아이템 */
.sidebar-nav .nav-item {
    border-bottom: 1px solid #EEEEEE;
    padding-left: 10px;
}

.sidebar-nav .nav-item:last-child {
    border-bottom: none;
}

/* 네비게이션 링크 */
.sidebar-nav .nav-link {
    display: block;
    padding: 16px 0;
    color: var(--font-light);
    text-decoration: none;
    font-size: 15px;
    font-weight: 400;
    transition: color 0.2s ease;
    border-radius: 0;
    background: transparent;
}

/* 화면 크기별 폰트 및 패딩 조정 */
@media (max-width: 1200px) {
    .sidebar-nav .nav-link {
        font-size: 14px; /* 폰트 크기 축소 */
        padding: 14px 0;
    }
}

@media (max-width: 1100px) {
    .sidebar-nav .nav-link {
        font-size: 13px; /* 더 작은 폰트 */
        padding: 12px 0;
    }
}

/* 호버 효과 제거 */
.sidebar-nav .nav-link:hover {
    background: transparent;
    color: var(--font-light);
}

/* 활성 상태 - 파란색 글씨만 */
.sidebar-nav .nav-item.active .nav-link {
    background: transparent;
    color: var(--btn-primary-bg);
    font-weight: 700;
}

/* 아이콘이 있는 링크 */
.sidebar-nav .nav-link i {
    margin-right: 8px;
    width: 16px;
    text-align: center;
}

/* 서브메뉴 지원 */
.sidebar-nav .nav-submenu {
    list-style: none;
    padding: 0;
    margin: 0;
    background: #F5F5F5;
}

.sidebar-nav .nav-submenu .nav-item {
    border-bottom: 1px solid #E8E8E8;
}

.sidebar-nav .nav-submenu .nav-link {
    padding: 12px 24px 12px 40px;
    font-size: 14px;
    color: var(--font-light);
}

.sidebar-nav .nav-submenu .nav-link:hover {
    background: #E8F0FF;
    color: var(--btn-primary-bg);
}

.sidebar-nav .nav-submenu .nav-item.active .nav-link {
    background: var(--btn-primary-bg);
    color: white;
    font-weight: 400;
}

/* ========================================
   사이드바 변형 스타일
   ======================================== */

/* 컴팩트 사이드바 */
.common-sidebar.compact {
    width: 200px;
}

.common-sidebar.compact .nav-link {
    padding: 14px 20px;
    font-size: 14px;
}

/* 와이드 사이드바 */
.common-sidebar.wide {
    width: 280px;
}

.common-sidebar.wide .nav-link {
    padding: 18px 28px;
    font-size: 16px;
}

/* 다크 테마 사이드바 */
.common-sidebar.dark .sidebar-nav {
    background: #2A2A2A;
    border-color: #404040;
}

.common-sidebar.dark .nav-link {
    color: #CCCCCC;
}

.common-sidebar.dark .nav-link:hover {
    background: #404040;
    color: white;
}

.common-sidebar.dark .nav-item.active .nav-link {
    background: var(--btn-primary-bg);
    color: white;
}

.common-sidebar.dark .nav-item {
    border-bottom-color: #404040;
}

/* ========================================
   반응형 사이드바
   ======================================== */

/* 태블릿 (1024px 이하) */
@media (max-width: 1024px) {
    .common-sidebar {
        width: 100%;
    }

    .sidebar-nav {
        padding: 0;
        border-radius: 8px 8px 0 0;
    }

    .sidebar-nav .nav-list {
        display: flex;
        overflow-x: auto;
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE/Edge */
    }

    .sidebar-nav .nav-list::-webkit-scrollbar {
        display: none; /* Chrome/Safari */
    }

    .sidebar-nav .nav-item {
        border-bottom: none;
        border-right: 1px solid #EEEEEE;
        flex-shrink: 0;
    }

    .sidebar-nav .nav-item:last-child {
        border-right: none;
    }

    .sidebar-nav .nav-link {
        padding: 12px 20px;
        white-space: nowrap;
        border-radius: 0;
    }

    /* 서브메뉴는 태블릿에서 숨김 */
    .sidebar-nav .nav-submenu {
        display: none;
    }
}

/* 모바일 (768px 이하) */
@media (max-width: 768px) {
    .common-sidebar {
        width: 100%;
        margin-bottom: 20px;
    }

    .sidebar-nav .nav-link {
        padding: 12px 16px;
        font-size: 14px;
    }
}

/* 작은 모바일 (480px 이하) */
@media (max-width: 480px) {
    .sidebar-nav .nav-link {
        padding: 10px 12px;
        font-size: 13px;
    }

    .sidebar-nav .nav-link i {
        margin-right: 6px;
    }
}

/* ========================================
   사이드바 유틸리티 클래스
   ======================================== */

/* 사이드바 숨김 */
.common-sidebar.hidden {
    display: none;
}

/* 사이드바 고정 */
.common-sidebar.sticky {
    position: sticky;
    top: 20px;
}

/* 사이드바 그림자 */
.common-sidebar.shadow .sidebar-nav {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* 보더 제거 */
.common-sidebar.no-border .sidebar-nav {
    border: none;
}

/* 배경 투명 */
.common-sidebar.transparent .sidebar-nav {
    background: transparent;
}

/* ========================================
   사이드바 애니메이션
   ======================================== */

/* 슬라이드 인 애니메이션 */
.common-sidebar.slide-in {
    animation: slideInFromLeft 0.3s ease-out;
}

@keyframes slideInFromLeft {
    from {
        transform: translateX(-100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* 페이드 인 애니메이션 */
.common-sidebar.fade-in {
    animation: fadeIn 0.3s ease-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}