/* Sidebar premium modular */
:root {
    --aass-sidebar-shell-bg: linear-gradient(180deg, rgba(8, 18, 45, 0.98) 0%, rgba(10, 26, 62, 0.97) 100%);
    --aass-sidebar-shell-border: rgba(255, 255, 255, 0.12);
    --aass-sidebar-shell-shadow: 0 24px 40px rgba(8, 20, 47, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1);
    --aass-sidebar-link-bg: rgba(255, 255, 255, 0.05);
    --aass-sidebar-link-border: rgba(255, 255, 255, 0.12);
    --aass-sidebar-link-hover-bg: rgba(255, 255, 255, 0.10);
    --aass-sidebar-link-hover-border: rgba(255, 255, 255, 0.24);
    --aass-sidebar-link-active-bg: linear-gradient(135deg, rgba(64, 147, 255, 0.34) 0%, rgba(95, 176, 255, 0.24) 100%);
    --aass-sidebar-link-active-border: rgba(170, 213, 255, 0.60);
    --aass-sidebar-focus-ring: rgba(69, 200, 105, 0.48);
}

.sidebar {
    background: transparent;
    border-right: 0;
    box-shadow: none;
    padding: 10px 8px 14px;
}

.foundation-v1 .sidebar-v2 {
    padding: 10px 8px 14px;
}

#sidebarMenu {
    --sidebar-width: clamp(194px, 12.1vw, 214px);
    flex: 0 0 var(--sidebar-width);
    width: var(--sidebar-width);
    max-width: var(--sidebar-width);
    min-width: 0;
    color: var(--aass-sidebar-text-strong);
}

.foundation-v1 #sidebarMenu {
    max-width: min(var(--sidebar-width), calc(100vw - 8px));
}

.sidebar__sticky-shell {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-radius: 22px;
    background: var(--aass-sidebar-shell-bg);
    border: 1px solid var(--aass-sidebar-shell-border);
    box-shadow: var(--aass-sidebar-shell-shadow);
    padding: 10px 10px 12px;
    min-height: calc(100vh - 92px);
}

.foundation-v1 .sidebar-v2 .sidebar__sticky-shell {
    min-height: calc(100dvh - var(--ff-topbar-height) - var(--ff-space-4));
}

.sidebar__nav-scroll {
    flex: 1 1 auto;
    overflow-y: auto;
    padding-right: 2px;
}

.sidebar__nav-scroll::-webkit-scrollbar {
    width: 6px;
}

.sidebar__nav-scroll::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.22);
    border-radius: 999px;
}

.sidebar__nav-list {
    gap: 4px;
    padding-bottom: 4px;
}

.sidebar .nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 8px 10px;
    margin: 0;
    border-radius: 14px;
    border: 1px solid var(--aass-sidebar-link-border);
    background: var(--aass-sidebar-link-bg);
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.18s ease, color 0.2s ease;
}

.sidebar .nav-link:hover {
    color: #ffffff;
    background: var(--aass-sidebar-link-hover-bg);
    border-color: var(--aass-sidebar-link-hover-border);
    box-shadow: 0 8px 16px rgba(7, 19, 49, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.14);
    transform: translateY(-1px);
}

.sidebar .nav-link.active {
    color: #ffffff;
    background: var(--aass-sidebar-link-active-bg);
    border-color: var(--aass-sidebar-link-active-border);
    box-shadow: 0 10px 20px rgba(7, 19, 49, 0.30), inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.sidebar .nav-link:focus-visible,
.sidebar .submenu-link:focus-visible {
    outline: 3px solid var(--aass-sidebar-focus-ring);
    outline-offset: 2px;
}

.sidebar .nav-link i:not(.bi-chevron-down) {
    width: 24px;
    height: 24px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, #ffffff, #edf3ff);
    border: 1px solid #d0dcef;
    color: #11224a;
    font-size: 0.82rem;
    box-shadow: 0 4px 12px rgba(8, 20, 47, 0.18);
}

.sidebar .nav-link .bi-chevron-down {
    margin-left: auto;
    opacity: 0.85;
    font-size: 0.82rem;
    transition: transform 0.2s ease;
}

.sidebar .nav-link:not(.collapsed) .bi-chevron-down {
    transform: rotate(180deg);
}

.sidebar .submenu-link {
    min-height: 40px;
    font-size: 0.84rem;
    font-weight: 550;
    border-radius: 11px;
    padding: 8px 10px;
    margin-top: 3px;
}

.sidebar .submenu-link i:not(.bi-chevron-down) {
    width: 22px;
    height: 22px;
    border-radius: 7px;
    font-size: 0.76rem;
}

.sidebar .nav-item > .collapse {
    margin: 4px 0 8px 6px;
    border-left: 1px solid rgba(255, 255, 255, 0.14);
    padding-left: 6px;
}

.sidebar .ms-4 .submenu-link {
    font-size: 0.8rem;
    padding: 8px 10px;
}

.sidebar .nav-link [data-chat-unread-badge] {
    font-size: 0.66rem;
    min-width: 1.35rem;
}

@media (min-width: 1025px) {
    #sidebarMenu {
        position: relative;
        align-self: flex-start;
        transition: width 0.25s ease, max-width 0.25s ease, flex-basis 0.25s ease, opacity 0.2s ease;
    }

    #sidebarMenu .sidebar__sticky-shell {
        position: fixed !important;
        top: calc(var(--app-topbar-height, 74px) + 8px);
        left: 6px;
        width: calc(var(--sidebar-width) - 12px);
        height: calc(100dvh - var(--app-topbar-height, 74px) - 12px);
        min-height: 0;
        max-height: calc(100dvh - var(--app-topbar-height, 74px) - 12px);
        z-index: 1020;
    }

    .layout-row > main.main-content {
        transition: width 0.25s ease, max-width 0.25s ease, flex-basis 0.25s ease, box-shadow 0.2s ease;
    }

    body.sidebar-collapsed #sidebarMenu {
        flex: 0 0 0 !important;
        width: 0 !important;
        max-width: 0 !important;
        min-width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        overflow: hidden;
    }

    body.sidebar-collapsed .layout-row > main.main-content {
        width: 100%;
        max-width: 100%;
        flex: 1 1 100%;
    }
}

@media (max-width: 1199.98px) and (min-width: 1025px) {
    #sidebarMenu {
        --sidebar-width: clamp(190px, 15.8vw, 206px);
    }

    .sidebar__sticky-shell {
        border-radius: 18px;
        padding: 10px 8px 8px;
    }

    .sidebar .nav-link {
        padding: 9px 10px;
        font-size: 0.86rem;
    }
}

@media (max-width: 1024.98px) {
    #sidebarMenu {
        position: fixed !important;
        top: calc(var(--aass-mobile-nav-height) + var(--aass-mobile-safe-top));
        left: 0;
        width: min(86vw, 320px) !important;
        max-width: 320px !important;
        height: calc(100dvh - var(--aass-mobile-nav-height) - var(--aass-mobile-safe-top)) !important;
        margin: 0;
        z-index: 1050;
        display: block !important;
        background: transparent !important;
        transform: translateX(-104%);
        opacity: 0;
        pointer-events: none;
        transition: transform 0.24s ease, opacity 0.2s ease;
    }

    #sidebarMenu.collapse,
    #sidebarMenu.collapsing,
    #sidebarMenu.collapse:not(.show) {
        display: block !important;
    }

    #sidebarMenu.show {
        transform: translateX(0);
        opacity: 1;
        pointer-events: auto;
    }


/* Sidebar stability guard: keep premium shell style deterministic over legacy rules. */
body.foundation-v1 #sidebarMenu .sidebar,
body.foundation-v1 #sidebarMenu .sidebar.sidebar-v2 {
    background: transparent !important;
    border-right: 0 !important;
    box-shadow: none !important;
}

body.foundation-v1 #sidebarMenu .sidebar__sticky-shell {
    background: var(--aass-sidebar-shell-bg) !important;
    border: 1px solid var(--aass-sidebar-shell-border) !important;
    box-shadow: var(--aass-sidebar-shell-shadow) !important;
}

body.foundation-v1 #sidebarMenu .sidebar .nav-link {
    background: var(--aass-sidebar-link-bg) !important;
    border-color: var(--aass-sidebar-link-border) !important;
}

body.foundation-v1 #sidebarMenu .sidebar .nav-link.active {
    background: var(--aass-sidebar-link-active-bg) !important;
    border-color: var(--aass-sidebar-link-active-border) !important;
}
    #sidebarMenu .position-sticky {
        position: relative !important;
    }

    .sidebar {
        padding: 0;
    }

    .sidebar__sticky-shell {
        min-height: 100%;
        height: 100%;
        border-radius: 0 24px 24px 0;
        border-left: 0;
        padding: 14px 10px calc(14px + var(--aass-mobile-safe-bottom));
    }

    .sidebar__nav-scroll {
        padding-right: 4px;
    }

    .sidebar .nav-link {
        min-height: 42px;
        font-size: 0.86rem;
        color: rgba(255, 255, 255, 0.92) !important;
        background: var(--aass-sidebar-link-bg) !important;
        border-color: var(--aass-sidebar-link-border) !important;
    }

    .sidebar .submenu-link {
        font-size: 0.8rem;
        min-height: 38px;
        color: rgba(255, 255, 255, 0.92) !important;
        background: var(--aass-sidebar-link-bg) !important;
        border-color: var(--aass-sidebar-link-border) !important;
    }

    .sidebar .nav-link.active,
    .sidebar .submenu-link.active {
        color: #ffffff !important;
        background: var(--aass-sidebar-link-active-bg) !important;
        border-color: var(--aass-sidebar-link-active-border) !important;
    }

    body.menu-open #scrollTopBtn,
    body.menu-open .aass-tabbar,
    body.menu-open #ai-floating-widget {
        visibility: hidden;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sidebar .nav-link,
    #sidebarMenu {
        transition: none;
    }
}

/* Shell fidelity global: sidebar aligned to the dashboard shell. */
body.foundation-v1:not([data-page-namespace='chat']) #sidebarMenu,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] #sidebarMenu,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] #sidebarMenu,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] #sidebarMenu,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] #sidebarMenu {
    --sidebar-width: clamp(216px, 16.2vw, 246px);
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar {
    padding: 8px 7px 12px;
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar__sticky-shell,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar__sticky-shell,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar__sticky-shell,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar__sticky-shell,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar__sticky-shell {
    gap: 7px;
    border-radius: 16px;
    border-color: rgba(171, 197, 240, 0.18);
    background: linear-gradient(180deg, var(--dashboard-shell-blue-start, #173b74) 0%, var(--dashboard-shell-blue-end, #173b74) 100%);
    box-shadow: 0 18px 30px rgba(8, 20, 48, 0.3);
    padding: 9px 9px 11px;
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar__nav-list,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar__nav-list,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar__nav-list,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar__nav-list,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar__nav-list {
    gap: 3px;
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar .nav-link,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar .nav-link,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar .nav-link,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar .nav-link,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar .nav-link {
    min-height: 39px;
    padding: 7px 9px;
    border-radius: 10px;
    border-color: rgba(182, 209, 250, 0.16);
    background: rgba(255, 255, 255, 0.03);
    font-size: 0.86rem;
    font-weight: 600;
    box-shadow: none;
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar .nav-link:hover,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar .nav-link:hover,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar .nav-link:hover,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar .nav-link:hover,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar .nav-link:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(182, 209, 250, 0.34);
    box-shadow: none;
    transform: none;
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar .nav-link.active,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar .nav-link.active,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar .nav-link.active,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar .nav-link.active,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar .nav-link.active {
    background: linear-gradient(135deg, rgba(63, 117, 214, 0.44), rgba(108, 163, 255, 0.24));
    border-color: rgba(176, 211, 255, 0.6);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 6px 12px rgba(7, 19, 49, 0.24);
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar .nav-link i:not(.bi-chevron-down),
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar .nav-link i:not(.bi-chevron-down),
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar .nav-link i:not(.bi-chevron-down),
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar .nav-link i:not(.bi-chevron-down),
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar .nav-link i:not(.bi-chevron-down) {
    width: 20px;
    height: 20px;
    border-radius: 999px;
    border: 0;
    font-size: 0.64rem;
    background: rgba(232, 242, 255, 0.98);
    box-shadow: none;
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar .nav-link .bi-chevron-down,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar .nav-link .bi-chevron-down,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar .nav-link .bi-chevron-down,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar .nav-link .bi-chevron-down,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar .nav-link .bi-chevron-down {
    font-size: 0.62rem;
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar .submenu-link,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar .submenu-link,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar .submenu-link,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar .submenu-link,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar .submenu-link {
    min-height: 34px;
    padding: 6px 9px;
    border-radius: 8px;
    font-size: 0.79rem;
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar .submenu-link i:not(.bi-chevron-down),
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar .submenu-link i:not(.bi-chevron-down),
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar .submenu-link i:not(.bi-chevron-down),
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar .submenu-link i:not(.bi-chevron-down),
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar .submenu-link i:not(.bi-chevron-down) {
    width: 15px;
    height: 15px;
    font-size: 0.52rem;
}

body.foundation-v1:not([data-page-namespace='chat']) .sidebar .nav-item > .collapse,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] .sidebar .nav-item > .collapse,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] .sidebar .nav-item > .collapse,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] .sidebar .nav-item > .collapse,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] .sidebar .nav-item > .collapse {
    margin: 3px 0 6px 4px;
    padding-left: 5px;
}

@media (min-width: 1025px) {
    body.foundation-v1:not([data-page-namespace='chat']) #sidebarMenu .sidebar__sticky-shell,
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] #sidebarMenu .sidebar__sticky-shell,
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] #sidebarMenu .sidebar__sticky-shell,
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] #sidebarMenu .sidebar__sticky-shell,
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] #sidebarMenu .sidebar__sticky-shell {
        top: calc(var(--app-topbar-height, 56px) + 6px);
        left: 4px;
        width: calc(var(--sidebar-width) - 8px);
        height: calc(100dvh - var(--app-topbar-height, 56px) - 8px);
        max-height: calc(100dvh - var(--app-topbar-height, 56px) - 8px);
    }
}

@media (max-width: 1199.98px) and (min-width: 1025px) {
    body.foundation-v1:not([data-page-namespace='chat']) #sidebarMenu,
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_list'] #sidebarMenu,
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='conversa_detail'] #sidebarMenu,
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_create'] #sidebarMenu,
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_edit'] #sidebarMenu {
        --sidebar-width: clamp(208px, 18vw, 232px);
    }
}

/* Chat macros list fidelity: keep sidebar identical to dashboard/conversa_list. */
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_list'] #sidebarMenu,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_schedule_list'] #sidebarMenu {
    --sidebar-width: clamp(214px, 13.4vw, 236px);
}

body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_list'] .sidebar,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_schedule_list'] .sidebar {
    padding: 8px 7px 12px;
}

body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_list'] .sidebar__sticky-shell,
body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_schedule_list'] .sidebar__sticky-shell {
    gap: 7px;
    border-radius: 16px;
    border-color: rgba(171, 197, 240, 0.18);
    background: linear-gradient(180deg, var(--dashboard-shell-blue-start, #173b74) 0%, var(--dashboard-shell-blue-end, #173b74) 100%);
    box-shadow: 0 18px 30px rgba(8, 20, 48, 0.3);
    padding: 9px 9px 11px;
}

@media (min-width: 1025px) {
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_list'] #sidebarMenu .sidebar__sticky-shell,
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_schedule_list'] #sidebarMenu .sidebar__sticky-shell {
        top: calc(var(--app-topbar-height, 56px) + 6px);
        left: 4px;
        width: calc(var(--sidebar-width) - 8px) !important;
        height: calc(100dvh - var(--app-topbar-height, 56px) - 8px);
        max-height: calc(100dvh - var(--app-topbar-height, 56px) - 8px);
    }
}

@media (max-width: 1199.98px) and (min-width: 1025px) {
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_list'] #sidebarMenu,
    body.foundation-v1[data-page-namespace='chat'][data-page-url-name='macro_schedule_list'] #sidebarMenu {
        --sidebar-width: clamp(208px, 18vw, 232px);
    }
}
