/*
 * Dropdowns globais — menus sempre acima do conteúdo seguinte.
 *
 * Vários shells do KOREOS recortam o conteúdo para preservar cantos, tabelas
 * responsivas e ilustrações de cabeçalho. Um z-index alto no menu não atravessa
 * esse recorte. Enquanto um dropdown estiver aberto, liberamos somente a cadeia
 * de containers que realmente contém o menu e elevamos essa cadeia acima dos
 * irmãos. Ao fechar, todas as regras deixam de corresponder automaticamente.
 */

:root {
    --app-z-dropdown-content: 12020;
    --app-z-dropdown-menu: 12050;
}

.dropdown-menu.show {
    z-index: var(--app-z-dropdown-menu) !important;
}

.dropdown.show,
.btn-group:has(> .dropdown-menu.show),
.dropup:has(> .dropdown-menu.show),
.dropend:has(> .dropdown-menu.show),
.dropstart:has(> .dropdown-menu.show) {
    position: relative !important;
    z-index: var(--app-z-dropdown-menu) !important;
}

/* Containers estruturais e variações mais comuns dos módulos. */
#page-content-wrapper :is(
    .card,
    .card-body,
    .card-header,
    .sl-shell,
    .sl-panel,
    .sl-hero,
    .dx2,
    .dx2-page-head,
    .dx2-card,
    .dx2-360,
    .dx2-pane,
    .dx2-feed-item,
    .dx2-sect,
    .dx2-tbl-wrap,
    .dxv-acc-item,
    .table-scroll-wrapper,
    .table-responsive,
    .accordion,
    .accordion-item,
    .accordion-body,
    .tab-content,
    .tab-pane,
    [class$="-hero"],
    [class$="-card"],
    [class$="-panel"],
    [class$="-table-wrap"]
):has(.dropdown-menu.show) {
    position: relative !important;
    overflow: visible !important;
    z-index: var(--app-z-dropdown-content) !important;
}

/* Tabelas usam às vezes um wrapper cujo nome contém, mas não termina em, table-wrap. */
#page-content-wrapper [class*="table-wrap"]:has(.dropdown-menu.show) {
    position: relative !important;
    overflow: visible !important;
    z-index: var(--app-z-dropdown-content) !important;
}

/* O menu DX era estilizado apenas enquanto descendente de .dx2. Mantém o
   acabamento mesmo em cabeçalhos com uma camada especialmente elevada. */
.dropdown-menu.dx2-menu.show {
    z-index: var(--app-z-dropdown-menu) !important;
}

/* Linhas de tabela criam uma camada própria em alguns navegadores quando há
   células com fundo/hover. Eleva somente a linha aberta para o menu não ficar
   atrás da linha seguinte ou do painel da aba. */
#page-content-wrapper table tr:has(.dropdown-menu.show),
#page-content-wrapper table td:has(.dropdown-menu.show) {
    position: relative !important;
    overflow: visible !important;
    z-index: var(--app-z-dropdown-content) !important;
}
