@import "tailwindcss" prefix(tw) source("../../../app/templates/");
@custom-variant dark (&:where([data-bs-theme=dark], [data-bs-theme=dark] *));
@custom-variant hover (&:hover);

.sidebar-active {
    @apply tw:bg-gray-700 tw:text-white;
}

.sidebar-item:not(.sidebar-active) {
    @apply tw:text-gray-300 tw:hover:text-white;
}

@layer components {
    .sidebar {
        @apply tw:z-1020 tw:fixed tw:top-0 tw:start-0 tw:h-full tw:transition-all tw:duration-100;
    }

    .sidebar-floating {
        /* Establishes the hover group and sets the collapsed/hover widths for the container */
        @apply tw:lg:w-16 tw:lg:hover:w-112;
    }

    .sidebar-floating #sidebar {
        /* Sets the collapsed/hover widths for the inner navigation element */
        @apply tw:lg:w-16 tw:lg:group-hover:w-104 tw:transition-all tw:duration-100 tw:overflow-hidden;
    }

    .sidebar-floating + main {
        /* Adjusts the main content margin to account for the collapsed sidebar */
        @apply tw:lg:ml-16 tw:transition-all tw:duration-100;
    }

    .sidebar-floating .sidebar-item span {
        /* Hides the text labels and reveals them only on hover */
        @apply tw:lg:invisible tw:lg:group-hover:visible;
    }

    .sidebar-floating .sidebar-invisible {
        /* Hides the text labels and reveals them only on hover */
        @apply tw:lg:invisible tw:lg:group-hover:visible;
    }

    .sidebar-floating .sidebar-menu-header {
        /* Hides the menu headers and reveals them only on hover */
        @apply tw:lg:hidden tw:lg:group-hover:inline;
    }

    .sidebar-floating #sidebar-toggle-btn .fa-thumbtack-slash {
        /* Hides the 'pin' icon in the floating state */
        @apply tw:hidden!;
    }

    .sidebar-floating #sidebar-toggle-btn .fa-thumbtack {
        /* Shows the 'expand' icon in the floating state */
        @apply tw:inline-block!;
    }

    .sidebar-floating .sidebar-title span {
        @apply tw:lg:invisible tw:lg:group-hover:visible
    }

    .sidebar-submenu-header {
        @apply tw:flex;
    }

    .sidebar-floating .sidebar-submenu-header {
        @apply tw:lg:hidden tw:lg:group-hover:flex;
    }

    .sidebar-floating .sidebar-submenu-header h5 {
        @apply tw:lg:invisible tw:lg:group-hover:visible;
    }

    .sidebar-floating .sidebar-submenu-header button {
        @apply tw:lg:hidden tw:lg:group-hover:inline;
    }

    .sidebar-floating .list-unstyled {
        @apply tw:group-hover:lg:overflow-y-auto tw:lg:overflow-y-hidden tw:overflow-y-auto tw:overflow-x-hidden;
    }

    .sidebar-floating .sidebar-item {
        @apply tw:text-wrap tw:lg:text-nowrap ;
    }


    /* --- STATE 2: Fixed (Permanently Expanded) --- */
    .sidebar-fixed {
        /* Sets the fixed, expanded width for the container */
        @apply tw:lg:w-[17%] tw:transition-all tw:duration-100;
    }

    .sidebar-fixed #sidebar {
        /* Sets the fixed, expanded width for the inner navigation */
        @apply tw:lg:w-[17%] tw:transition-all tw:duration-100;
    }

    .sidebar-fixed + main {
        /* Adjusts the main content margin to account for the expanded sidebar */
        @apply tw:lg:ml-[17%] tw:transition-all tw:duration-100;

        /* Using 16vw to account for padding/margins */
    }

    .sidebar-fixed .sidebar-item {
        @apply tw:text-wrap;
    }

    .sidebar-fixed .sidebar-item span {
        /* Ensures text labels are always visible */
        @apply tw:lg:visible;
    }

    .sidebar-fixed .sidebar-menu-header {
        /* Ensures menu headers are always visible */
        @apply tw:lg:inline;
    }

    .sidebar-fixed #sidebar-toggle-btn .fa-thumbtack-slash {
        /* Shows the 'pin' icon in the fixed state */
        @apply tw:inline-block!;
    }

    .sidebar-fixed #sidebar-toggle-btn .fa-thumbtack {
        /* Hides the 'expand' icon in the fixed state */
        @apply tw:hidden!;
    }

    .sidebar-fixed .sidebar-title span {
        @apply tw:lg:visible;
    }

    .sidebar-fixed .sidebar-submenu-header {
        /* Ensures menu headers are always visible */
        @apply tw:lg:flex;
    }

    .sidebar-fixed .list-unstyled  {
        @apply tw:overflow-y-auto tw:overflow-x-hidden;
    }
}
