/* =========================[ SIDEBAR STYLESHEET ]========================= */

#sidebar {
    width: 250px;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    background-color: white;
    padding: 20px 10px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 20px;
    font-family: var(--font-primary);
    z-index: 999;
    color: inherit;

    box-shadow: 2px 0 6px rgba(0, 0, 0, 0.1);

    /* Smooth collapse */
    transition: width 0.3s ease;
}

.sidebar-header {
    display: flex;
    align-items: center;
    justify-content: center;

    padding: 10px 0 14px;
    margin-bottom: 6px;

    border-bottom: 1px solid #f1f3f5;
}

#sidebar i {
  font-size: var(--font-size-small);
    max-width: 8px;
}

#sidebar.collapsed i {
  font-size: var(--font-size-small);
    max-width: 18px;
}


#sidebar-top .dropdown i {
  font-size: var(--font-size-small);
}

#sidebar i {
  font-size: var(--font-size-small);
}

.sidebar-logo {
    max-width: 120px;
    height: auto;

    opacity: 0.9;

    transition:
        max-width 0.3s ease,
        opacity 0.2s ease,
        transform 0.2s ease;
}

.sidebar-logo:hover {
    opacity: 1;
    transform: scale(1.03);
}


#sidebar-modules {
    display: flex;
    flex-direction: column;
}


/* =========================[ BUTTONS IN SIDEBAR ]========================= */

.sidebar-btn {
    all: unset; /* reset ALL styles */
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0px 15px 10px;
    font-size: small;
    cursor: pointer;
    color: var(--color-gray);
    border-radius: 0;
    font-weight: 500;
    transition: all 0.2s ease;
    position: relative; /* needed for collapsed tooltip */
}

.sidebar-btn:hover {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 5px 15px 10px;
    font-size: small;
    cursor: pointer;
    color: white;
    font-weight: 500;
    
    background-color: var(--color-blue-primary);    
}

/* Active button */
.sidebar-btn.active {
    background-color: #eef6ff; /* soft blue */
    border-left: 3px solid var(--color-blue);
    color: var(--color-blue);
    font-weight: 600;
    box-shadow: inset 2px 0 6px rgba(0, 0, 0, 0.05);
}

/* =========================[ LOGOUT BUTTON ]========================= */
.logout-btn {
    all: unset;
    margin-top: auto;
    padding: 10px 5px 15px 10px;
    cursor: pointer;
    color: #f87171;
    font-weight: 500;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 10px;
}

.logout-btn:hover {   
    margin-top: auto;
    padding: 10px 5px 15px 10px;
    cursor: pointer;
    color: white;
    font-weight: 500;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: var(--color-red);
}

/* =========================[ COLLAPSED STATE - LOGOUT ]========================= */
#sidebar.collapsed .logout-btn {
    width: 60px;
    justify-content: center;
    padding: 12px 0;
    position: relative;
}

/* Esconde o texto no collapsed */
#sidebar.collapsed .logout-btn span {
    display: none;
}

/* Mostra igual tooltip quando hover */
#sidebar.collapsed .logout-btn:hover span {
    display: block;
    position: absolute;
    top: 50%;
    left: 100%;
    transform: translateY(-50%);
    white-space: nowrap;
    background-color: var(--color-dark);
    color: var(--color-text-light);
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 12px;
    margin-left: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    z-index: 1000;
}


/* =========================[ SIDEBAR TOP - HEADER BAR ]========================= */

#sidebar-top {
    width: 100%;
    height: 50px;
    position: fixed;
    top: 0;
    left: 0;

    /* Light FEX blue - matches headers and DataList */
    background: linear-gradient(
        180deg,
        var(--color-blue-primary),
        var(--color-blue)
    );

    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    z-index: 998;

    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.sidebar-top-content {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 26px;
    font-size: small;
    color: #ffffff;

    transition: padding-left 0.3s ease;
}

/* Padding depends on sidebar state */
body:not(.sidebar-collapsed) .sidebar-top-content {
    padding-left: 280px;
}

body.sidebar-collapsed .sidebar-top-content {
    padding-left: 70px;
}

/* =========================[ LEFT SIDE ]========================= */

.top-left {
    display: flex;
    align-items: center;
    gap: 14px;
}

/* Profile name */
.profile-role {
    color: #ffffff;
}

/* =========================[ RIGHT SIDE ]========================= */

.user-info {
    display: flex;
    align-items: center;
    gap: 14px;
}

#user-name {
    font-size: 13px;
    font-weight: 500;
    color: #ffffff;
}

/* User photo */
.user-photo {
    width: 24px;
    height: 24px;
    border-radius: 50%; /* default FEX avatar */
    object-fit: cover;
    border: 2px solid rgba(255, 255, 255, 0.8);

    transition:
        border-radius 0.2s ease,
        transform 0.2s ease;

    cursor: pointer;
}

.user-photo:hover {
    border-radius: var(--radius-large); /* FEX standard hover */
    transform: scale(1.05);
}


/* =========================[ ICONS - FLAT & LIGHT ]========================= */

#sidebar-top .btn-icon.icon {
    background: transparent;
    color: #ffffff;
    padding: 6px;

    transition: transform 0.2s ease, opacity 0.2s ease;
}

#sidebar-top .btn-icon.icon:hover {
    transform: translateY(-1px);
    opacity: 0.85;
}

/* Sidebar toggle */
#sidebar-toggle {
    color: #ffffff;
    font-size: 18px;
}

#sidebar-toggle:hover {
    opacity: 0.85;
}

#sidebar-toggle.btn-icon {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 6px;
}



/* =========================[ COLLAPSED STATE ]========================= */

#sidebar.collapsed {
    width: 60px;
}

/* Ajuste da logo no modo collapsed */
#sidebar.collapsed .sidebar-logo {
    max-width: 30px;
    margin: 0 auto;
    display: block;
    opacity: 0.85;
}


/* =========================[ COLLAPSED BUTTONS ]========================= */

#sidebar.collapsed .sidebar-btn {
    width: 40px;
    justify-content: center;
    padding: 10px 0;
}

#sidebar.collapsed .sidebar-btn i {
    padding: 1px 1px 1px 4px;
}

/* Esconde labels normalmente */
#sidebar.collapsed .sidebar-btn span {
    display: none;
}

.sidebar-btn span {
    transition: opacity 0.2s ease, width 0.2s ease, margin 0.2s ease;
    overflow: hidden;
    white-space: nowrap;
    display: inline-block;
}

#sidebar.collapsing .sidebar-btn span {
    opacity: 0;
    width: 0;
    margin: 0;
}

/* Sidebar jÃ¡ colapsado: nÃ£o mostra o texto */
#sidebar.collapsed .sidebar-btn span {
    display: none;
}

/* Mostra label estilo tooltip quando hover */
#sidebar.collapsed .sidebar-btn:hover span {
    display: block;
    position: absolute;
    top: 50%;
    left: 100%;
    transform: translateY(-50%);
    white-space: nowrap;
    background-color: var(--color-dark);
    color: var(--color-text-light);
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 12px;
    margin-left: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    z-index: 1000;
}



/* =========================[ EXTRA ]========================= */

.top-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* =========================[ SIDEBAR BRAND ]========================= */

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Logo no tamanho do avatar */
.sidebar-logo-small {
    width: 36px;
    height: 36px;
    object-fit: contain;

    border-radius: var(--radius-small); /* tiny radius */
    opacity: 0.9;

    transition:
        transform 0.2s ease,
        opacity 0.2s ease,
        border-radius 0.2s ease;
}

.sidebar-logo-small:hover {
    opacity: 1;
    transform: scale(1.05);
    border-radius: var(--radius-medium); /* mesmo efeito do avatar */
}

/* Texto da marca */
.sidebar-brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.sidebar-brand-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text-dark);
    letter-spacing: 0.3px;
}

.sidebar-brand-subtitle {
    font-size: 13px;
    font-weight: 500;
    color: var(--color-gray);
    opacity: 0.85;
}

/* =========================[ COLLAPSED STATE - BRAND ]========================= */

#sidebar.collapsed .sidebar-brand-text {
    display: none;
}

#sidebar.collapsed .sidebar-brand {
    justify-content: center;
}

#sidebar.collapsed .sidebar-logo-small {
    margin: 0 auto;
}

.top-module {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--font-size-small);
    font-weight: 600;
    color: #ffffff;
    padding-left: 4px;
}

.top-module i {
    font-size: 12px;
    background: rgba(255, 255, 255, 0.15);
    padding: 8px;
    border-radius: var(--radius-small);
}

.top-module-subtitle {
    margin-left: 6px;
    font-weight: 500;
    opacity: 0.85;
}

.top-module-subtitle::before {
    content: ">";
    margin-right: 6px;
    opacity: 0.6;
}

.top-subitem {
    font-weight: 400;
    opacity: 0.85;
    margin-left: 6px;
}

/* =========================[ MOBILE MODE ]========================= */

@media (max-width: 768px) {

    /* Sidebar vira off-canvas */
    #sidebar {
        top: 56px; /* abaixo da topbar */
        height: calc(100vh - 56px);

        width: 100vw;
        left: -100vw;

        transition: left 0.3s ease;
        z-index: 1001;
    }

    /* Sidebar aberta via toggle */
    body.sidebar-mobile-open #sidebar {
        left: 0;
    }    

    /* Topbar sempre full */
    #sidebar-top {
        z-index: 1002;
    }

    /* App ocupa tela inteira */
     #app {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: 16px;
    }

    /* Remove lÃ³gica de collapsed no mobile */
    #sidebar.collapsed {
        width: 100vw;
    }

    /* Esconde textos sÃ³ se quiser futuramente */
    #sidebar.collapsed .sidebar-btn span {
        display: inline-block;
    }

    #sidebar-toggle {
        font-size: 20px;
    }
}

/* =========================[ SIDEBAR TOP - MOBILE ]========================= */

@media (max-width: 768px) {

    #sidebar-top {
        height: 56px;
    }

    .sidebar-top-content {
        padding: 0 12px;
        gap: 12px;
    }

    /* LEFT: toggle sempre Ã  esquerda */
    .top-left {
        gap: 10px;
        flex-shrink: 0;
    }

    #sidebar-toggle {
        position: relative;
        z-index: 1100;
    }

    /* CENTER: profile name */
    .profile-role {
        display: block;
        font-size: 13px;
        font-weight: 500;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 140px;
    }

    /* RIGHT: icons + avatar */
    .user-info {
        gap: 10px;
        flex-shrink: 0;
    }

    /* Esconde apenas o nome do usuÃ¡rio (avatar jÃ¡ identifica) */
    #user-name {
        display: none;
    }

    /* Avatar menor */
    .user-photo {
        width: 30px;
        height: 30px;
    }

    /* Ãcones mais compactos */
    #sidebar-top .btn-icon.icon {
        padding: 4px;
    }

    /* Remove qualquer deslocamento desktop */
    body:not(.sidebar-collapsed) .sidebar-top-content,
    body.sidebar-collapsed .sidebar-top-content {
        padding-left: 12px !important;
    }

    .sidebar-top-content {
        justify-content: space-between;
    }

    #sidebar-top .btn-icon,
    #sidebar-top .btn-icon.icon {
        display: inline-flex !important;
        opacity: 1 !important;
    }

    .profile-role {
        display: none !important;
    }

    .top-module {
        font-size: 12px;
        gap: 4px;
    }

    .top-module i {
        padding: 4px;
        font-size: 12px;
    }

    .top-module-subtitle {
        display: none;
    }

    .top-subitem {
        display: none;
    }
}

