:root {
    --sidebar-width-full: 280px;
    --sidebar-width-mini: 80px;
    --primary-active-border-color: #00bfff;
    --secondary-active-border-color: #FF5733;
    --default-sidebar-border-color: #add8e6;
    --navbar-height: 56px; /* ارتفاع پیش‌فرض نوار ناوبری بوت‌استرپ */
}

/* --- ساختار کلی سایدبار (Offcanvas) --- */
#sidebar-wrapper {
    position: fixed; /* سایدبار ثابت است */
    top: 0; /* از بالای صفحه شروع می‌شود */
    bottom: 0;
    right: 0;
    width: var(--sidebar-width-full); /* عرض پیش‌فرض کامل */
    background: #fff;
    border-left: 1px solid #ddd;
    z-index: 1040; /* زیر نوار ناوبری (1050) */
    transition: width 0.3s ease, margin-right 0.3s ease;
    overflow-y: auto;
    box-shadow: -2px 0 5px rgba(0,0,0,0.1);

    /* این دو خط برای حالت Offcanvas (موبایل) لازم است */
    --bs-offcanvas-width: var(--sidebar-width-full);
    --bs-offcanvas-bg: #fff;
}

/* --- حالت دسکتاپ: سایدبار بسته (mini) --- */
/* وقتی #wrapper کلاس 'toggled' را دارد، سایدبار کوچک می‌شود */
#wrapper.toggled #sidebar-wrapper {
    width: var(--sidebar-width-mini);
}

/* محتوای offcanvas-body (منوهای سایدبار) */
#sidebar-wrapper .offcanvas-body {
    padding-top: var(--navbar-height); /* محتوای سایدبار از زیر هدر سایدبار شروع می‌شود */
    opacity: 1; /* پیش‌فرض: قابل مشاهده */
    pointer-events: all; /* پیش‌فرض: قابل تعامل */
    transition: opacity 0.3s ease;
}

/* وقتی سایدبار کوچک است، محتوای آن پنهان می‌شود */
#wrapper.toggled #sidebar-wrapper .offcanvas-body {
    opacity: 0;
    pointer-events: none;
}

/* --- هدر سایدبار --- */
#sidebar-wrapper .offcanvas-header {
    background-color: #0d6efd;
    color: white;
    border-bottom: 1px solid #bbb;
    height: var(--navbar-height); /* ارتفاع هدر سایدبار به اندازه نوار ناوبری */
    display: flex;
    align-items: center;
    position: relative; /* اصلاح مهم: از fixed به relative تغییر یافت */
    width: 100%; /* عرض کامل والد خود را بگیرد */
    padding: 0;
    transition: width 0.3s ease; /* برای انیمیشن تغییر عرض */
}

/* وقتی سایدبار کوچک است، هدر آن هم کوچک می‌شود */
#wrapper.toggled #sidebar-wrapper .offcanvas-header {
    width: var(--sidebar-width-mini);
}

.offcanvas-title {
    color: white;
    margin-left: auto;
    padding-right: 15px;
}

/* پنهان کردن عنوان وقتی سایدبار کوچک است (بر اساس #wrapper.toggled) */
#wrapper.toggled .offcanvas-title.sidebar-title-text {
    display: none;
}

#wrapper:not(.toggled) .offcanvas-title.sidebar-title-text {
    display: block;
}

/* دکمه بستن Offcanvas در موبایل */
#sidebar-wrapper .offcanvas-header .btn-close {
    margin-left: 1rem; /* فاصله از سمت راست */
    opacity: 1; /* اطمینان از نمایش */
    filter: invert(1) grayscale(1) brightness(2); /* روشن‌تر کردن آیکون */
}

/* --- دکمه تاگل سایدبار (در هدر نوار ناوبری قرار گرفت) --- */
/* این استایل‌ها دیگر مستقیماً به دکمه داخل سایدبار اعمال نمی‌شوند */
/* به header.html منتقل شدند */

/* آیکون دکمه toggle در Navbar */
.sidebar-toggle-button i {
    color: #333; /* رنگ آیکون در نوار ناوبری */
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

/* وقتی سایدبار پین شده (تغییر حالت آیکون) */
.sidebar-toggle-button.btn-pinned i {
    transform: rotate(180deg); /* چرخش برای آیکون پیکان */
}

/* --- آیتم‌های منو --- */
.nav-item.top-level {
    border-right: 4px solid transparent;
    transition: border-color 0.4s ease, background-color 0.3s ease;
}

/* خط پیش‌فرض در حالت باز سایدبار (بر اساس #wrapper:not(.toggled)) */
#wrapper:not(.toggled) .nav-item.top-level {
    border-right: 4px solid var(--default-sidebar-border-color);
}

/* خط فعال برای آیتم فعال (بر اساس #wrapper:not(.toggled)) */
#wrapper:not(.toggled) .nav-item.top-level .nav-link.active {
    border-right: 4px solid var(--primary-active-border-color);
    animation: fadeInBorder 0.4s ease forwards;
}

@keyframes fadeInBorder {
    0% {
        border-color: transparent;
        opacity: 0.5;
    }
    100% {
        border-color: var(--primary-active-border-color);
        opacity: 1;
    }
}

/* --- لینک‌های منو --- */
.nav-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    cursor: pointer;
    color: #333;
    position: relative;
    user-select: none;
    transition: color 0.3s ease, background-color 0.3s ease;
}

/* پنهان کردن متن آیتم‌ها در حالت mini */
#wrapper.toggled .nav-link .menu-content-wrapper span {
    display: none;
}

/* پنهان کردن فلش dropdown در حالت mini */
#wrapper.toggled .nav-link .dropdown-toggle-icon {
    display: none;
}

/* تراز آیکون‌ها در حالت mini */
#wrapper.toggled .nav-link {
    justify-content: center; /* آیکون در مرکز */
    padding: 0.75rem;
}

/* منوهای بدون آیکون، تراز به سمت راست */
.nav-link:not(.menu-with-icon) {
    justify-content: flex-start;
}

/* حذف فلش پیش‌فرض بوت‌استرپ */
.nav-link[data-bs-toggle="collapse"]::after {
    display: none !important;
    content: none !important;
}

/* محتوی آیکون و متن داخل لینک */
.menu-content-wrapper {
    display: flex;
    align-items: center;
    flex-grow: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.menu-content-wrapper i {
    margin-right: 8px;
    font-size: 1.1rem;
}

.menu-content-wrapper span {
    user-select: none;
}

/* حالت فعال */
.nav-link.active {
    color: #ff4c4c !important;
    font-weight: 600;
    background-color: rgba(255, 76, 76, 0.05);
}

/* هاور روی لینک */
.nav-link:hover {
    background-color: rgba(0, 191, 255, 0.1);
    color: #00bfff !important;
    text-decoration: none;
}

/* --- فلش dropdown --- */
.dropdown-toggle-icon {
    display: block;
    margin-right: 0;
    padding-left: 10px;
    flex-shrink: 0;
    color: #666;
    transition: opacity 0.3s ease; /* برای انیمیشن پنهان شدن/نمایش */
}

.dropdown-toggle-icon::after {
    display: inline-block;
    vertical-align: middle;
    content: "";
    border-top: 0.3em solid;
    border-right: 0.3em solid transparent;
    border-bottom: 0;
    border-left: 0.3em solid transparent;
    transition: transform 0.3s ease;
}

/* جهت فلش در حالت بسته */
.menu-with-icon.collapsed .dropdown-toggle-icon::after {
    transform: rotate(-90deg);
}

/* جهت فلش در حالت باز */
.menu-with-icon:not(.collapsed) .dropdown-toggle-icon::after {
    transform: rotate(0deg);
}


/* --- زیرمنوهای چندسطحی (پنهان در حالت mini و باز در حالت عادی) --- */
ul.nav.flex-column > li > ul.nav.flex-column {
    border-right: 2px solid #ddd;
    margin-right: 12px;
    padding-right: 12px;
    position: relative;
    padding-bottom: 5px;
    transition: border-color 0.3s ease, opacity 0.3s ease, height 0.3s ease; /* اضافه کردن height به transition */
}

/* وقتی سایدبار کوچک است، زیرمنوها کاملاً پنهان می‌شوند */
#wrapper.toggled ul.nav.flex-column > li > ul.nav.flex-column {
    opacity: 0;
    height: 0;
    overflow: hidden;
    pointer-events: none;
}

/* اطمینان از نمایش زیرمنوها وقتی سایدبار باز است و زیرمنو هم باز شده */
#wrapper:not(.toggled) ul.nav.flex-column > li > .collapse.show > ul.nav.flex-column {
    border-right: 2px solid var(--secondary-active-border-color);
    opacity: 1; /* اطمینان از نمایش */
    height: auto; /* اطمینان از نمایش کامل محتوا */
    overflow: visible; /* اطمینان از نمایش محتوا */
    pointer-events: all; /* اطمینان از قابلیت تعامل */
}

/* نقطه اتصال برای زیرمنوها */
ul.nav.flex-column > li > ul.nav.flex-column > li {
    position: relative;
    padding-left: 8px;
}

ul.nav.flex-column > li > ul.nav.flex-column > li:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 12px;
    height: 12px;
    border-bottom: 2px solid #ddd;
    border-right: 2px solid #ddd;
    transform: translateX(100%) translateY(50%) rotate(45deg);
    background: white;
    z-index: 1;
}

/* تغییر رنگ نقطه اتصال وقتی زیرمنو باز است (بر اساس #wrapper:not(.toggled)) */
#wrapper:not(.toggled) ul.nav.flex-column > li > .collapse.show > ul.nav.flex-column > li:not(:last-child)::after {
    border-color: var(--secondary-active-border-color);
}

/* زیرمنوهای عمیق‌تر (سطح ۳) */
ul.nav.flex-column > li > ul.nav.flex-column > li > ul.nav.flex-column {
    margin-right: 24px;
    padding-right: 12px;
    border-right: 2px solid #ddd;
    position: relative;
    transition: border-color 0.3s ease, opacity 0.3s ease, height 0.3s ease; /* اضافه کردن height به transition */
}

#wrapper:not(.toggled) ul.nav.flex-column > li > ul.nav.flex-column > li > .collapse.show > ul.nav.flex-column {
    border-right: 2px solid var(--secondary-active-border-color);
    opacity: 1; /* اطمینان از نمایش */
    height: auto; /* اطمینان از نمایش کامل محتوا */
    overflow: visible; /* اطمینان از نمایش محتوا */
    pointer-events: all; /* اطمینان از قابلیت تعامل */
}

/* --- دکمه موبایل برای باز و بسته کردن سایدبار (به Navbar منتقل شد) --- */
/* این استایل‌ها فقط برای دکمه تاگل اصلی در هدر نوار ناوبری اعمال می‌شود */
/* و Offcanvas خودش رفتار باز و بسته شدن را در موبایل مدیریت می‌کند */
.navbar-toggler {
    z-index: 1051; /* بالاتر از همه چیز در موبایل */
}

/* Force sidebar visibility and position on desktop */
@media (min-width: 992px) {
    #sidebar-wrapper.offcanvas {
        visibility: visible !important; /* Force visible */
        transform: none !important; /* Remove translateX */
        position: fixed !important; /* Ensure it's fixed */
        top: 0 !important; /* Start from top */
        bottom: 0 !important;
        right: 0 !important;
        /* Width is controlled by #wrapper.toggled */
        width: var(--sidebar-width-full) !important; /* Default to full width on desktop */
    }

    #wrapper.toggled #sidebar-wrapper.offcanvas {
        width: var(--sidebar-width-mini) !important; /* Collapse width */
    }

    /* Ensure offcanvas-backdrop is not present on desktop */
    .offcanvas-backdrop {
        display: none !important;
    }
}