/*
 * EEVJuris — contrato global de camadas visuais v1.1 (2.1.8)
 *
 * Regra: qualquer modal Filament deve ocupar o viewport completo e ficar
 * acima da topbar, sidebar, toggle lateral, dropdowns e conteúdo da página.
 *
 * IMPORTANTE:
 * O z-index do próprio modal não resolve o problema se algum ancestral
 * criar um stacking context inferior. O shell EEVJuris atribui classes
 * AdminLTE ao .fi-main e, historicamente, .fi-main/.fi-main-ctn receberam
 * position: relative + z-index: 1. Isso aprisionava os modais dentro da
 * camada do conteúdo. Por isso este arquivo também neutraliza esse stacking
 * context, preservando o posicionamento relativo mas devolvendo o z-index
 * dos containers ao fluxo normal.
 */
:root {
    --eev-z-modal-backdrop: 200000;
    --eev-z-modal-window: 200010;
    --eev-z-modal-stacked-backdrop: 200020;
    --eev-z-modal-stacked-window: 200030;
}

/*
 * O conteúdo principal não pode formar um stacking context próprio.
 * Sem esta regra, filhos position: fixed com z-index alto continuam abaixo
 * da topbar/sidebar porque o ancestral inteiro está preso em z-index: 1.
 */
body.eev-adminlte-app .fi-main-ctn,
body.eev-adminlte-app .fi-main {
    z-index: auto !important;
}

/*
 * AdminLTE aplica overflow:auto ao elemento que recebe .app-main.
 * Durante um modal aberto, removemos qualquer recorte nos ancestrais do
 * modal para garantir cobertura física de todo o viewport, inclusive sobre
 * a topbar e a sidebar. Fora do estado modal, o comportamento do shell não
 * é alterado.
 */
body.eev-adminlte-app:has(.fi-modal.fi-modal-open) .fi-layout,
body.eev-adminlte-app:has(.fi-modal.fi-modal-open) .fi-main-ctn,
body.eev-adminlte-app:has(.fi-modal.fi-modal-open) .fi-main {
    overflow: visible !important;
}

/* Backdrop e janela base de qualquer modal Filament. */
body.eev-adminlte-app .fi-modal > .fi-modal-close-overlay {
    inset: 0 !important;
    z-index: var(--eev-z-modal-backdrop) !important;
}

body.eev-adminlte-app .fi-modal > .fi-modal-window-ctn {
    inset: 0 !important;
    z-index: var(--eev-z-modal-window) !important;
}

/* Quando Filament empilha modais, o mais recente continua acima do anterior. */
body.eev-adminlte-app .fi-modal.fi-modal-open ~ .fi-modal.fi-modal-open > .fi-modal-close-overlay {
    z-index: var(--eev-z-modal-stacked-backdrop) !important;
}

body.eev-adminlte-app .fi-modal.fi-modal-open ~ .fi-modal.fi-modal-open > .fi-modal-window-ctn {
    z-index: var(--eev-z-modal-stacked-window) !important;
}
