/* Variáveis CSS baseadas no padrão do projeto */
        :root {
            --primary-color: #2c5aa0;
            --primary-dark: #1e3f73;
            --secondary-color: #6c757d;
            --success-color: #28a745;
            --danger-color: #dc3545;
            --warning-color: #ffc107;
            --info-color: #17a2b8;
            --light-color: #f8f9fa;
            --dark-color: #343a40;
            --white: #ffffff;
            --gray-50: #fafafa;
            --gray-100: #f5f5f5;
            --gray-200: #eeeeee;
            --gray-300: #e0e0e0;
            --gray-400: #bdbdbd;
            --gray-500: #9e9e9e;
            --gray-600: #757575;
            --gray-700: #616161;
            --gray-800: #424242;
            --gray-900: #212121;
            --border-radius: 8px;
            --border-radius-lg: 12px;
            --box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            --box-shadow-hover: 0 4px 12px rgba(0,0,0,0.15);
            --transition: all 0.3s ease;
            --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
            --govbr-blue: #1351b4;
            --govbr-green: #168821;
            --govbr-yellow: #ffcd07;
        }

        body {
            font-family: "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            background-color: var(--gray-100);
            color: var(--gray-700);
            line-height: 1.5;
        }

.btn-primary {
    position: relative;
}
.page-header {
    background: var(--white);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--box-shadow);
    padding: 2rem;
    margin-bottom: 2rem;
    margin-top: 1rem;
    border-left: 4px solid var(--primary-color);
}
.btn-primary .spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1rem;
    display: none;
    pointer-events: none;
    color: white;
}

.btn-primary.loading .spinner {
    display: inline-block;
}

.btn-primary.loading .btn-content {
    visibility: hidden;
}
.TituloPagina {
    font-size: 3vw; /* Define o tamanho baseado na largura da viewport */
    padding-top:10px;
}

@media (min-width: 1200px) {
    .TituloPagina {
        font-size: 30px; /* Limita o tamanho máximo da fonte para monitores muito grandes */
    }
}

.dataTables_wrapper td:before{margin-left: 20px; text-align: left;}
.dataTables_wrapper td{text-align: left;}
.dataTables_wrapper .child{max-width: 100%}
.dataTables_wrapper table.dataTable tbody td{text-align: left; padding-left:30px!important}
.dataTables_filter input[type="search"] {
    padding-left: 25px!important;
}

/* Estilo para o botão */
.btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Indicador de carregamento */
.btn::after {
    content: "";
    position: absolute;
    right: 10px;
    width: 20px;
    height: 20px;
    border: 3px solid #f3f3f3; /* Light grey */
    border-top: 3px solid #3498db; /* Blue */
    border-radius: 50%;
    animation: spin 2s linear infinite;
    display: none;
     padding-right: 40px; /* Ajustar se necessário */
}

/* Loading state */
        .btn.loading {
            pointer-events: none;
            opacity: 0.75;
        }

.fade-in {
            animation: fadeIn 0.5s ease-in;
        }
        
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        .shake {
            animation: shake 0.5s ease-in-out;
        }
        
        @keyframes shake {
            0%, 100% { transform: translateX(0); }
            25% { transform: translateX(-5px); }
            75% { transform: translateX(5px); }
        }
        
        @media (max-width: 576px) {
            .login-card {
                padding: 2rem 1.5rem;
                margin: 1rem;
            }
            
            .login-title {
                font-size: 1.8rem;
            }
        }

        .spinner-border {
            display: inline-block;
            width: 1rem;
            height: 1rem;
            vertical-align: -0.125em;
            border: 0.125em solid currentColor;
            border-right-color: transparent;
            border-radius: 50%;
            animation: spinner-border 0.75s linear infinite;
        }

        .spinner-border-sm {
            width: 0.875rem;
            height: 0.875rem;
            border-width: 0.125em;
        }

        @keyframes spinner-border {
            to {
                transform: rotate(360deg);
            }
        }
.overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.5); /* Cor de fundo do overlay */
    color: white; /* Cor do texto */
    padding: 10px; /* Espaçamento interno */
    border-radius: 0 0 0 10px; /* Curvas na parte inferior */
}

.text {
    margin: 0;
}
.finalMandato {
    background-color: black;
    color: white;
    padding: 3px;
    /* Outras propriedades de estilo, se necessário */
}

@media (max-width: 767.98px) {
  #mainContent.banner-visible {
    padding-top: 60px; /* Altura da barra de instalação */
    z-index: 100000!important;
  }
}
.card-header.bg-primary {
    background: linear-gradient(135deg, #007bff 0%, #0056b3 100%) !important;
    color: #fff !important;
    font-weight: 500;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.1);
}