/* ============================================= */
/* MELHORIAS VISUAIS DOS FILTROS        */
/* ============================================= */

/* Transforma o container dos filtros em um layout flexível */
.filters-container {
    display: flex; /* Alinha os itens lado a lado */
    flex-wrap: wrap; /* Permite que os itens quebrem para a linha de baixo em telas menores */
    gap: 15px; /* Cria um espaçamento consistente entre os filtros */
    align-items: flex-end; /* Alinha os itens pela base, o que fica ótimo para labels e inputs */
    padding: 20px;
    background-color: #f8f9fa; /* Um fundo sutil para a área de filtros */
    border: 1px solid #dee2e6;
    border-radius: 8px;
    margin-bottom: 20px;
}

/* Estiliza cada grupo de filtro (label + input) */
.filter-group {
    display: flex;
    flex-direction: column; /* Coloca a label acima do input */
}

/* Faz o campo de pesquisa ocupar o espaço restante */
.filter-group-search {
    flex-grow: 1; /* Permite que este item cresça e ocupe o espaço disponível */
}

/* Estiliza os campos de formulário para consistência */
.filters-container .form-control {
    height: 38px;
    border-radius: 5px;
}

/* Posiciona o botão "Limpar" mais à direita */
.filters-container .filter-group:last-child {
    margin-left: auto; /* Truque de mestre para empurrar o último item para o final */
}

.filters-container label {
    font-weight: bold;
    margin-bottom: 5px;
    font-size: 14px;
}

/* Conteúdo para o seu novo arquivo: /css/licit.css */

/* Adiciona um cursor de ponteiro e um leve sombreamento ao passar o mouse, 
   melhorando a indicação de que as colunas são clicáveis para ordenação. */
th[data-sort] {
    cursor: pointer;
    transition: background-color 0.2s ease-in-out;
}

th[data-sort]:hover {
    background-color: #f0f0f0;
}

/* Efeito de hover suave nas linhas da tabela para melhor feedback visual */
#tabela-licitacoes tr {
    transition: background-color 0.2s ease-in-out;
}

#tabela-licitacoes tr:hover {
    background-color: #f8f9fa; /* Um cinza bem claro do Bootstrap */
}

/* alterações homepage */

/* Estilos para a nova página inicial */

/* --- Estilos para os Cards da Página Inicial --- */

.hero-section {
    background-color: #f8f9fa; /* Um cinza bem claro */
    border-radius: 0.5rem;
    margin-bottom: 3rem;
}

.card-custom {
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    border: 1px solid #ddd;
    border-top-width: 4px;
}

.card-custom:hover {
    transform: translateY(-5px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.icon-circle {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f1f1f1;
    color: #555;
    transition: background-color 0.3s, color 0.3s;
}

.card-custom:hover .icon-circle {
    color: #fff;
}

/* Alinhamento dos botões nos cards */
.card-body {
    display: flex;
    flex-direction: column;
}

.card-text {
    flex-grow: 1; /* Faz o parágrafo crescer e empurrar o botão para baixo */
}

/* Garante que a regra de alinhamento afete APENAS os botões dentro do corpo de um card */
.card-body .btn {
    margin-top: auto;
}

/* Cores das bordas e ícones (baseadas nas cores padrão do Bootstrap) */
.card-success { border-top-color: var(--bs-success); }
.card-success:hover .icon-circle { background-color: var(--bs-success); }

.card-danger { border-top-color: var(--bs-danger); }
.card-danger:hover .icon-circle { background-color: var(--bs-danger); }

.card-info { border-top-color: var(--bs-info); }
.card-info:hover .icon-circle { background-color: var(--bs-info); }

.card-primary { border-top-color: var(--bs-primary); }
.card-primary:hover .icon-circle { background-color: var(--bs-primary); }

.card-warning { border-top-color: var(--bs-warning); }
.card-warning:hover .icon-circle { background-color: var(--bs-warning); }

.card-secondary { border-top-color: var(--bs-secondary); }
.card-secondary:hover .icon-circle { background-color: var(--bs-secondary); }

.card-dark { border-top-color: var(--bs-dark); }
.card-dark:hover .icon-circle { background-color: var(--bs-dark); }

/* Classe para esconder os cards da busca na página inicial */
.card-hidden {
    display: none !important;
}

/* --- Estilos para os Controles de Acessibilidade --- */

.accessibility-controls .btn {
    --bs-btn-padding-y: .1rem; 
    --bs-btn-padding-x: .5rem;
    --bs-btn-font-size: .8rem;
    margin: 0 2px;
}

/* --- TEMA DE ALTO CONTRASTE --- */

/* Quando a classe .high-contrast for adicionada ao body... */
body.high-contrast {
    background-color: #000 !important;
    color: #fff !important;
}

body.high-contrast a {
    color: #FFFF00 !important; /* Amarelo para links */
}

body.high-contrast .card,
body.high-contrast .card-header,
body.high-contrast .alert {
    background-color: #111 !important;
    border-color: #fff !important;
    color: #fff !important;
}

body.high-contrast .form-control,
body.high-contrast .form-select {
    background-color: #222 !important;
    border-color: #fff !important;
    color: #fff !important;
}

body.high-contrast .btn-primary {
    background-color: #FFFF00 !important;
    color: #000 !important;
    border-color: #FFFF00 !important;
}

body.high-contrast .btn-secondary {
    background-color: #555 !important;
    color: #fff !important;
}

/* --- Estilos para os Cards de Legislação --- */

.ato-card {
    background-color: #f8f9fa; /* Cinza claro */
    border-left: 5px solid var(--bs-primary); /* Borda azul à esquerda */
    padding: 1.5rem;
    border-radius: 0.25rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.ato-card-title {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
    color: #333;
}

.ato-card-meta {
    font-size: 0.9rem;
    color: #6c757d; /* Cinza do Bootstrap */
    margin-bottom: 1rem;
}

.ato-card-ementa {
    margin-bottom: 1.5rem;
}

/* --- ESTILOS PARA A NOVA LISTA DETALHADA DE LEGISLAÇÃO --- */

.list-item {
    display: flex; /* Alinha ícone, conteúdo e botão lado a lado */
    align-items: flex-start; /*alinha os itens pelo topo */
    padding: 1.5rem 1rem;
    border-bottom: 1px solid #dee2e6; /* Linha separadora */
    background-color: #fff; /* Fundo branco para cada item */
    transition: background-color 0.2s ease-in-out;
}

.list-item:hover {
    background-color: #f8f9fa; /* Leve destaque ao passar o mouse */
}

.list-item:last-child {
    border-bottom: none; /* Remove a borda do último item */
}

.list-item-icon {
    flex-shrink: 0; /* Impede que o ícone encolha */
    margin-right: 1.5rem;
    opacity: 0.6;
}

.list-item-content {
    flex-grow: 1; /* Faz o conteúdo ocupar o espaço restante */
    min-width: 0; /* Permite que o flex-item encolha abaixo do seu conteúdo intrínseco */
    word-wrap: break-word; /* Quebra palavras muito longas */
    overflow-wrap: break-word; /* Outra propriedade para quebra de palavras */
}

.list-item-title {
    font-size: 1.25rem; /* Tamanho um pouco maior para o título */
    margin-bottom: 0.25rem;
    color: var(--bs-primary); /* Cor primária (azul) para o título */
    font-weight: 600;
}

.list-item-meta {
    font-size: 0.85rem;
    color: #6c757d;
    margin-bottom: 0.75rem;
}

.list-item-description {
    font-size: 0.95rem;
    margin-bottom: 0; /* Remove margem inferior da descrição */
    color: #495057;
    /* ADICIONE ESTAS DUAS PROPRIEDADES PARA GARANTIR QUEBRAS DE LINHA NO TEXTO LONGO */
    word-break: break-all; /* Força a quebra de qualquer palavra longa */
    hyphens: auto; /* Tenta adicionar hifens para quebrar palavras de forma mais elegante */
}

.list-item-action {
    flex-shrink: 0;
    margin-left: 1.5rem;
}

.btn-download {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%; /* Botão redondo */
    border: 1px solid #dee2e6;
    color: #6c757d;
    transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.btn-download:hover {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}




