/* ---------------------------------------------------------------------------
   Ajustes próprios sobre o Tabler.

   Deliberadamente curto. O sistema antigo carregava um tabler-compat.css que
   existia só para remendar marcação do AdminLTE — como aqui não há legado a
   sustentar, todo componente usa as classes do Tabler direto.
   --------------------------------------------------------------------------- */

:root {
    --gestor-primaria: #667eea;
    --gestor-secundaria: #764ba2;
}

/* Marca da aplicação, usada no login e no instalador. */
.bg-gestor-gradiente {
    background: linear-gradient(135deg, var(--gestor-primaria) 0%, var(--gestor-secundaria) 100%);
}

/* --- Tela de login -------------------------------------------------------- */

/* O gradiente fica embaixo da imagem de propósito: se o SVG não carregar, a
   tela continua escura e com a cara da marca, em vez de um branco sem
   contexto — e o texto claro por cima continua legível, que é o que
   importa. */
.pagina-login {
    background-color: #0a0f1f;
    background-image: linear-gradient(135deg, #0a0f1f 0%, #111a35 45%, #1b1740 100%);
}

.pagina-login::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background-image: url("../img/login-fundo.svg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Cartão do formulário sobre o fundo: um pouco translúcido para a arte
   aparecer, com desfoque para o texto continuar legível por cima dela.
   O fallback importa — sem backdrop-filter (Firefox antigo, alguns webviews),
   .96 de opacidade já garante contraste sozinho. */
.pagina-login .card {
    background-color: rgba(255, 255, 255, .96);
    backdrop-filter: blur(6px);
    border: 0;
    box-shadow: 0 1.5rem 3rem rgba(23, 15, 48, .28);
}

/* A logo é escura; sobre o fundo colorido some. A versão branca horizontal
   (cubo à esquerda) existe justamente para isto. */
.pagina-login .marca {
    max-width: 260px;
    height: auto;
    filter: drop-shadow(0 2px 6px rgba(23, 15, 48, .35));
}

.pagina-login .rodape-login {
    color: rgba(255, 255, 255, .75);
}

.pagina-login .rodape-login a {
    color: #fff;
}

/* --- Barra lateral -------------------------------------------------------- */

.navbar-vertical .nav-link-icon {
    width: 1.25rem;
    text-align: center;
}

/* Submenu: um filete à esquerda torna a hierarquia legível sem depender só do
   recuo, que fica ambíguo a partir do terceiro nível. */
.navbar-vertical .nav-sm {
    border-left: 1px solid rgba(255, 255, 255, .12);
    margin-left: .35rem;
}

.navbar-vertical .nav-link.disabled {
    opacity: .45;
    cursor: default;
}

/* --- Matriz de permissões ------------------------------------------------- */

/* A matriz é larga e alta: o cabeçalho e a coluna do módulo ficam fixos para
   não se perder de vista qual linha/coluna se está marcando. */
.matriz-permissoes {
    max-height: 65vh;
    overflow: auto;
}

.matriz-permissoes thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--tblr-bg-surface);
}

.matriz-permissoes tbody th {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--tblr-bg-surface);
}

.matriz-permissoes .linha-modulo > * {
    background: var(--tblr-bg-surface-secondary);
}

/* Indentação dos subsistemas dentro do seu Sistema. */
.matriz-permissoes .nivel-1 { padding-left: 1.5rem; }
.matriz-permissoes .nivel-2 { padding-left: 3rem; }
.matriz-permissoes .nivel-3 { padding-left: 4.5rem; }

/* --- Formulários ---------------------------------------------------------- */

.campo-obrigatorio::after {
    content: " *";
    color: var(--tblr-danger);
}

/* O Select2 nasce com a altura errada dentro do Bootstrap 5; alinha com os
   demais campos da linha. */
.select2-container .select2-selection--single {
    height: calc(1.4285714em + .875rem + 2px);
    display: flex;
    align-items: center;
}

/* --- Impressão ------------------------------------------------------------ */

@media print {
    .navbar-vertical,
    .page-header .col-auto,
    .card-footer {
        display: none !important;
    }
}
