/* Modos da sidebar (desktop): expandido (padrão) | recolhido (só ícones) | oculto.
   Estado vive em classes no <html> (lw-sb-mini / lw-sb-hidden), aplicadas por script
   inline no <head> do layouts/app.blade.php e persistidas em localStorage.
   Especificidade proposital (html.x body ...) para vencer as regras !important de
   largura/margem em custom-styles.blade.php (250px / 220px em tablet / dental). */

.lw-sb-controls,
.lw-sb-topbar-toggle {
    display: none;
}

@media (min-width: 768px) {
    .lw-sb-controls {
        display: flex;
        gap: .4rem;
        justify-content: flex-end;
        padding: .6rem 0 .5rem;
    }
    .lw-sb-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 2rem;
        height: 2rem;
        padding: 0;
        border: 1px solid rgba(120, 130, 150, .3);
        border-radius: .5rem;
        background: transparent;
        color: #6b7788;
        cursor: pointer;
        line-height: 1;
    }
    .lw-sb-btn i {
        color: inherit;
    }
    .lw-sb-btn:hover {
        background: rgba(120, 130, 150, .15);
    }

    /* Botão hambúrguer na barra superior (mostrar/ocultar) */
    .lw-sb-topbar-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 2.25rem;
        height: 2.25rem;
        margin-right: .75rem;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, .35);
        border-radius: .5rem;
        background: rgba(255, 255, 255, .12);
        color: #fff;
        cursor: pointer;
    }
    .lw-sb-topbar-toggle:hover {
        background: rgba(255, 255, 255, .25);
    }

    .navbar-vertical.fixed-left,
    .main-content {
        transition: width .2s ease, margin-left .2s ease, transform .2s ease;
    }

    /* ── Recolhido: só ícones (72px) ───────────────────────── */
    html.lw-sb-mini body .navbar-vertical.fixed-left {
        width: 72px !important;
        max-width: 72px !important;
        min-width: 72px !important;
    }
    html.lw-sb-mini body:not(.lw-guest-page) .main-content {
        margin-left: 72px !important;
    }
    html.lw-sb-mini body.lw-authenticated-page .main-content #navbar-main {
        width: 100% !important;
        margin-left: 0 !important;
    }
    /* O tema fixa largura no container e usa margens negativas nos links: neutraliza tudo */
    html.lw-sb-mini body .lw-sidebar-container > .container-fluid {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 .5rem !important;
        margin: 0 !important;
    }
    html.lw-sb-mini body .lw-sidebar-container.navbar-vertical {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-collapse {
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav {
        width: 100% !important;
        margin: 0 !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav li .nav-link,
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-sm .nav-link {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-link > i {
        width: auto !important;
        min-width: 0 !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-link {
        margin: 0 !important;
        width: 100% !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-brand {
        display: flex !important;
        justify-content: center;
        margin: 0;
        padding: 0;
    }
    html.lw-sb-mini body .lw-sidebar-container .lw-sidebar-logo-normal,
    html.lw-sb-mini body .lw-sidebar-container .lw-brand-text {
        display: none !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .lw-sidebar-logo-small {
        max-width: 40px;
    }
    html.lw-sb-mini .lw-sb-controls {
        /* sem a logo grande os botões subiriam para trás da barra superior (68px) */
        margin-top: 4.25rem;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    /* Texto solto dentro do link some (font-size 0); ícone volta ao tamanho normal */
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-link {
        font-size: 0 !important;
        display: flex;
        justify-content: center;
        align-items: center;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-link > i,
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-link > .fa,
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-link > .fas,
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-link > .fab {
        font-size: 1.05rem !important;
        margin: 0 !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-link > *:not(i) {
        display: none !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-link::after {
        display: none !important;
    }
    /* Títulos de seção não cabem em modo ícone */
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav > li > span.nav-link,
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav hr {
        display: none !important;
    }
    /* Grupos com submenu: o item-pai (que só abre/fecha) some e todos os subitens aparecem
       como ícones, separados por uma linha, para nenhum menu ficar inacessível. */
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-link[data-toggle="collapse"] {
        display: none !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .collapse,
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .collapsing {
        display: block !important;
        height: auto !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav .nav-sm {
        padding: 0 !important;
        margin: 0 !important;
    }
    html.lw-sb-mini body .lw-sidebar-container .navbar-nav > li:has(> .collapse) {
        margin-top: .5rem;
        padding-top: .5rem;
        border-top: 1px solid rgba(120, 130, 150, .25);
    }

    /* ── Oculto: página inteira ────────────────────────────── */
    html.lw-sb-hidden body .navbar-vertical.fixed-left {
        transform: translateX(-100%) !important;
        visibility: hidden !important;
    }
    html.lw-sb-hidden body:not(.lw-guest-page) .main-content {
        margin-left: 0 !important;
    }
    html.lw-sb-hidden body.lw-authenticated-page .main-content #navbar-main {
        width: 100% !important;
        margin-left: 0 !important;
    }
}
