/**
 * Layout global — sidebar + topbar (complementa saas-topbar.css)
 */

/* Dimensões estáveis: evita 1px de diferença com/sem border-box por página */
body.app-layout,
body.app-layout *,
body.app-layout *::before,
body.app-layout *::after {
    box-sizing: border-box;
}

body.app-layout {
    overflow-x: clip;
}

body.app-layout .saas-main,
body.app-layout .main-container,
body.app-layout .container-main {
    margin-left: var(--sidebar-width) !important;
    margin-top: var(--app-chrome-top) !important;
    box-sizing: border-box;
}

/* Páginas com wrapper .main antes do conteúdo */
body.app-layout .main > .main-container {
    margin-left: var(--sidebar-width) !important;
    margin-top: var(--app-chrome-top) !important;
}

@media (max-width: 992px) {
    body.app-layout .saas-main,
    body.app-layout .main-container,
    body.app-layout .container-main,
    body.app-layout .main > .main-container {
        margin-left: var(--sidebar-width-collapsed) !important;
    }
}

body.app-layout .right-sidebar {
    top: calc(var(--app-chrome-top) + 1rem) !important;
    height: calc(100vh - var(--app-chrome-top) - 2rem) !important;
}

/* Evita conteúdo largo demais sob a topbar em wrappers sem .main-container */
body.app-layout > .main-container:first-of-type,
body.app-layout > main.saas-main:first-of-type {
    min-height: calc(100vh - var(--app-chrome-top));
}
