﻿/* ========================================
   FIX SIDEBAR MENU PER BOOTSTRAP 5
   ======================================== */

/* Sidebar principale */
.sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1030;
    width: 260px;
    background: #002742;
    box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.42), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
}

    /* Logo */
    .sidebar .logo {
        padding: 15px 0;
        margin: 0;
        background-color: white;
        position: relative;
        z-index: 4;
    }

        .sidebar .logo .simple-text {
            text-transform: uppercase;
            padding: 5px 0;
            display: inline-block;
            font-size: 18px;
            color: #002742;
            font-weight: 400;
            line-height: 30px;
        }

    /* Wrapper del menu */
    .sidebar .sidebar-wrapper {
        position: relative;
        height: calc(100vh - 75px);
        overflow: auto;
        width: 260px;
        z-index: 4;
        padding-bottom: 30px;
    }

    /* Menu principale */
    .sidebar .nav {
        margin-top: 15px;
        display: flex;
        flex-direction: column;
    }

        .sidebar .nav li {
            list-style: none;
        }

            .sidebar .nav li > a {
                margin: 10px 15px 0;
                border-radius: 3px;
                color: #FFFFFF;
                display: flex;
                align-items: center;
                padding: 10px 15px;
                font-size: 14px;
                font-weight: 500;
                text-decoration: none;
                transition: background-color 0.2s;
                position: relative;
            }

                /*.sidebar .nav li > a:hover {
                    background-color: rgba(255, 255, 255, 0.1);
                }*/

                /* Icone nel menu */
                .sidebar .nav li > a img {
                    width: 24px;
                    height: 24px;
                    margin-right: 15px;
                    vertical-align: middle;
                }

                .sidebar .nav li > a i.material-icons {
                    font-size: 20px;
                    width: 24px;
                    height: 24px;
                    margin-right: 15px;
                    color: #a9afbb;
                    line-height: 24px;
                    text-align: center;
                    display: inline-block;
                    vertical-align: middle;
                }

                /* Fix per icone Material Icons outlined */
                .sidebar .nav li > a i.material-icons-outlined,
                .sidebar .nav li > a i.material-icons-round {
                    font-size: 20px;
                    width: 24px;
                    height: 24px;
                }

                /* Testo del menu */
                .sidebar .nav li > a p,
                .sidebar .nav li > a span {
                    margin: 0;
                    line-height: 30px;
                    font-size: 14px;
                    color: #FFFFFF;
                    font-weight: 500;
                    flex: 1;
                }

                /* Freccia per i menu espandibili */
                .sidebar .nav li > a .caret,
                .sidebar .nav li > a b.caret {
                    position: absolute;
                    right: 18px;
                    top: 50%;
                    transform: translateY(-50%);
                    margin: 0;
                    border: none;
                    width: 16px;
                    height: 16px;
                }

                    .sidebar .nav li > a .caret:after,
                    .sidebar .nav li > a b.caret:after {
                        content: '\e313'; /* keyboard_arrow_down */
                        font-family: 'Material Icons';
                        font-size: 18px;
                        color: #FFFFFF;
                        transition: transform 0.3s;
                        display: block;
                        line-height: 16px;
                    }

                /* Rotazione freccia quando menu è aperto */
                .sidebar .nav li > a[aria-expanded="true"] .caret:after,
                .sidebar .nav li > a[aria-expanded="true"] b.caret:after {
                    transform: rotate(180deg);
                }

            /* Stato attivo */
            .sidebar .nav li.active > a,
            .sidebar .nav li.active > a i {
                background-color: #007BC0;
                color: #FFFFFF;
                box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(0, 123, 192, 0.4);
            }

            /* Hover su menu */
            /*.sidebar .nav li:hover > a {
                background-color: #003E64;
                color: #FFFFFF;
            }*/

            /* Submenu livello 2 */
            .sidebar .nav li .collapse,
            .sidebar .nav li .collapsing {
                background-color: rgba(0, 0, 0, 0.1);
                position: relative;
            }

                .sidebar .nav li .collapse ul,
                .sidebar .nav li .collapsing ul {
                    list-style: none;
                    padding: 0;
                    margin: 0;
                }

                    .sidebar .nav li .collapse ul li a,
                    .sidebar .nav li .collapsing ul li a {
                        padding: 10px 10px 10px 50px;
                        margin: 5px 15px 0;
                        border-radius: 3px;
                        color: rgba(255, 255, 255, 0.8);
                        font-size: 13px;
                        display: flex;
                        align-items: center;
                        text-decoration: none;
                        transition: background-color 0.2s, color 0.2s;
                        will-change: auto;
                    }

                        /*.sidebar .nav li .collapse ul li a:hover,
                        .sidebar .nav li .collapsing ul li a:hover {
                            background-color: rgba(255, 255, 255, 0.05);
                            color: #FFFFFF;
                        }*/

                        .sidebar .nav li .collapse ul li a i.material-icons {
                            font-size: 16px;
                            width: 18px;
                            height: 18px;
                            margin-right: 10px;
                            line-height: 18px;
                        }

                    /* Submenu livello 3 */
                    .sidebar .nav li .collapse ul li .collapse ul li a,
                    .sidebar .nav li .collapsing ul li .collapse ul li a {
                        padding-left: 70px;
                        font-size: 12px;
                    }

        /* Classe per elementi di menu senza icona */
        .sidebar .nav .left-menu-livello2,
        .sidebar .nav .left-menu-livello3 {
            padding-left: 50px;
        }

/* Responsive - Mobile */
@media (max-width: 991px) {
    .sidebar {
        position: fixed;
        display: block;
        top: 0;
        height: 100vh;
        width: 260px;
        right: 0;
        left: auto;
        z-index: 1032;
        visibility: visible;
        overflow-y: visible;
        padding: 0;
        transform: translate3d(260px, 0, 0);
        transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);
    }

    .nav-open .sidebar {
        transform: translate3d(0, 0, 0);
        box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.42), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
    }
}

/* Scrollbar personalizzata per il menu */
.sidebar .sidebar-wrapper::-webkit-scrollbar {
    width: 6px;
}

.sidebar .sidebar-wrapper::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
}

.sidebar .sidebar-wrapper::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.3);
    border-radius: 3px;
}

    /*.sidebar .sidebar-wrapper::-webkit-scrollbar-thumb:hover {
        background: rgba(255, 255, 255, 0.5);
    }*/

/* Fix per Bootstrap 5 collapse - nessuna transizione */
.sidebar .nav .collapse {
    transition: none !important;
}

    .sidebar .nav .collapse.show {
        display: block !important;
        height: auto !important;
    }

    .sidebar .nav .collapse:not(.show) {
        display: none !important;
    }

.sidebar .nav .collapsing {
    transition: none !important;
    height: auto !important;
    display: block !important;
    overflow: visible !important;
}


/*--------------------------*/

/* ========================================
   NASCONDI PROFILO UTENTE SU MOBILE
   ======================================== */

@media (max-width: 991px) {
    /* Nascondi il profilo utente nel navbar superiore */
    .navbar .navbar-collapse .navbar-nav.ms-auto {
        display: none !important;
    }

    /* Nascondi i menu nav-mobile-menu nella sidebar */
    .sidebar .nav-mobile-menu {
        display: none !important;
    }

    /* Nascondi il menu profilo utente nella sidebar (menu99999) */
    /*.sidebar .nav > li:has(#menu99999),
    .sidebar .nav > li.active:has(a[href="#menu99999"]) {
        display: none !important;
    }*/

    /* Fallback se :has non è supportato */
    /*.sidebar .nav > li > a[href="#menu99999"] {
        display: none !important;
    }

        .sidebar .nav > li > a[href="#menu99999"] + div.collapse,
        .sidebar #menu99999 {
            display: none !important;
        }*/

    /* Nascondi anche il form di logout se presente nella sidebar */
    .sidebar #logoutForm {
        display: none !important;
    }
}

/* ========================================
   CLOSE LAYER - Overlay per chiudere menu
   ======================================== */

.close-layer {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1031;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

    .close-layer.visible {
        opacity: 1;
        visibility: visible;
    }

/* Assicurati che la sidebar sia sopra il close-layer */
@media (max-width: 991px) {
    .sidebar {
        z-index: 1032;
    }
}

/* Pulsante X per chiudere la sidebar */
.sidebar-close-btn {
    display: none;
    position: absolute;
    top: 20px;
    right: 280px;
    width: 40px;
    height: 40px;
    border: none;
    background: rgba(255, 255, 255, 0.1);
    color: white;
    font-size: 36px;
    line-height: 36px;
    border-radius: 50%;
    cursor: pointer;
    z-index: 1033;
    transition: background 0.2s;
    padding: 0;
    font-weight: 300;
}

    /*.sidebar-close-btn:hover {
        background: rgba(255, 255, 255, 0.2);
    }*/

@media (max-width: 991px) {
    .sidebar-close-btn {
        display: block;
    }
}
/* ========================================
   FIX LAYOUT PRINCIPALE - Offset per sidebar
   ======================================== */

/* Desktop: main-panel e main-card con margine per la sidebar */
@media (min-width: 992px) {
    .main-panel {
        margin-left: 260px;
        width: calc(100% - 260px);
    }

    .main-card {
        margin-left: 260px;
    }

    /* Navbar superiore */
    /*.navbar {
        margin-left: 260px;
        width: calc(100% - 260px);
    }*/

    .nav-mobile-menu {
        display:none !important;
    }
}

/* Mobile: nessun margine, full width */
@media (max-width: 991px) {
    .main-panel,
    .main-card {
        margin-left: 0 !important;
        width: 100% !important;
    }

    .navbar {
        margin-left: 0 !important;
        width: 100% !important;
    }
}