@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap');

/* =========================================================================
   PRECIFICADORA V3 - CSS GLOBAL LIMPO E NATIVO BOOTSTRAP 5.3
========================================================================= */

:root {
    /* 1. PALETA DE CORES DA MARCA (DNA) */
    --brand-primary: #004B8D; /* Azul Elétrico */
    --brand-teal: #00A9B5;    /* Teal Generativo */
    --brand-cyan: #4DE1C1;    /* Ciano Scale */

    /* 2. INJEÇÃO NATIVA NO BOOTSTRAP (Modo Claro) */
    --bs-primary: var(--brand-primary);
    --bs-primary-rgb: 0, 75, 141;
    --bs-info: var(--brand-teal);
    --bs-info-rgb: 0, 169, 181;
    
    /* 3. TIPOGRAFIA */
    --bs-font-sans-serif: 'Montserrat', -apple-system, sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
}

/* =========================================================================
   MODO ESCURO (DARK THEME) - VARIÁVEIS NATIVAS
========================================================================= */
[data-bs-theme="dark"] {
    --bs-body-bg: #1a1d20;
    --bs-tertiary-bg: #2b3035;
    /* Ajuste de contraste para o Azul em fundos escuros */
    --bs-primary-text-emphasis: #8cbdf0;
    --bs-primary-bg-subtle: rgba(0, 75, 141, 0.4);
}

/* =========================================================================
   BASE E TIPOGRAFIA
========================================================================= */
body { font-family: var(--bs-font-sans-serif); }
h1, h2, h3, h4, h5, h6, .fw-bold { font-weight: 700 !important; }
.x-small { font-size: 0.72rem; }
.opacity-50 { opacity: 0.55; }
.shrink-0 { flex-shrink: 0; }
.transition-all { transition: all 0.2s ease-in-out; }

/* =========================================================================
   HEADER / NAVBAR E DROPDOWNS (Correção de Contraste e Hover)
========================================================================= */
/* O Header assume o Azul Elétrico com uma borda Ciano */
.navbar.bg-dark {
    background-color: var(--brand-primary) !important;
    border-bottom: 2px solid var(--brand-cyan);
}

/* Letras do Menu Claritas por padrão (O !important anula o text-white-50 do PHP) */
.navbar-dark .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.85) !important; 
    transition: color 0.3s;
}

/* Hover e Menu Ativo usam o Ciano Vibrante para contraste perfeito nas opções principais */
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .show > .nav-link {
    color: var(--brand-cyan) !important;
}

/* ESTILIZAÇÃO MESTRE: Submenus (As gavetas dos Dropdowns) */
.dropdown-menu-dark {
    background-color: var(--brand-primary) !important;
    border: 1px solid var(--brand-cyan) !important;
    box-shadow: 0 8px 25px rgba(0,0,0,0.3);
}

.dropdown-menu-dark .dropdown-item {
    color: rgba(255, 255, 255, 0.85);
    transition: all 0.2s ease;
    font-size: 0.9rem;
}

/* O Efeito de UI Premium ao passar o rato nas opções do Dropdown */
.dropdown-menu-dark .dropdown-item:hover,
.dropdown-menu-dark .dropdown-item:focus {
    background-color: var(--brand-cyan) !important;
    color: #1a1d20 !important; /* Texto escuro sobre Ciano */
    font-weight: 600;
    transform: translateX(6px); /* Efeito deslizar ligeiramente para a direita */
}

/* Opção ativa no Submenu (Ex: Página que o utilizador está a visitar) */
.dropdown-menu-dark .dropdown-item.active {
    background-color: var(--brand-teal) !important;
    color: #fff !important;
    font-weight: 600;
}

/* =========================================================================
   TABELAS E DATATABLES (Design Limpo)
========================================================================= */
/* Cabeçalho das Tabelas em Azul com sublinhado Teal */
thead.table-dark {
    --bs-table-bg: var(--brand-primary);
    --bs-table-color: #ffffff;
    --bs-table-border-color: var(--brand-teal);
    border-bottom: 2px solid var(--brand-teal);
}

/* Ajustes nativos DataTables */
div.dataTables_wrapper div.dataTables_filter { text-align: left !important; }
div.dataTables_wrapper div.dataTables_length { text-align: right !important; }

div.dataTables_wrapper div.dataTables_filter label,
div.dataTables_wrapper div.dataTables_length label { 
    font-size: 0.875rem; color: var(--bs-secondary-color); 
}

div.dataTables_wrapper div.dataTables_filter input { 
    border-radius: 5px; padding: 0.25rem 0.5rem; 
    border: 1px solid var(--bs-border-color); 
    background-color: var(--bs-body-bg); color: var(--bs-body-color);
    outline: none; margin-left: 0.5rem; max-width: 220px; font-size: 0.875rem; 
}

div.dataTables_wrapper div.dataTables_filter input:focus { 
    border-color: var(--brand-cyan); 
    box-shadow: 0 0 0 0.25rem rgba(77, 225, 193, 0.25); 
}

div.dataTables_wrapper div.dataTables_length select { 
    border-radius: 5px; padding: 0.25rem 2rem 0.25rem 0.5rem; 
    background-color: var(--bs-body-bg); color: var(--bs-body-color);
    border-color: var(--bs-border-color);
    font-size: 0.875rem; margin: 0 0.5rem; 
}

.page-item.active .page-link { 
    background-color: var(--brand-primary); 
    border-color: var(--brand-primary); 
    color: #fff;
}

/* =========================================================================
   CORREÇÕES ESPECÍFICAS DE UX / MODO ESCURO
========================================================================= */
/* 1. Correção Select2 (Precificador e Cadastros) para Modo Escuro */
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection,
[data-bs-theme="dark"] .select2-dropdown,
[data-bs-theme="dark"] .select2-search__field {
    background-color: var(--bs-tertiary-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection__rendered {
    color: var(--bs-body-color) !important;
}
[data-bs-theme="dark"] .select2-results__option--highlighted {
    background-color: var(--brand-primary) !important;
}

/* 2. Correção de Backgrounds Engessados (Evita o fundo branco no modo escuro) */
[data-bs-theme="dark"] .bg-white { background-color: var(--bs-tertiary-bg) !important; }
[data-bs-theme="dark"] .bg-light { background-color: rgba(255, 255, 255, 0.05) !important; }

/* 3. Correção de Avatares e Badges (Lista de Utilizadores) */
[data-bs-theme="dark"] .bg-primary-subtle { background-color: var(--bs-primary-bg-subtle) !important; }
[data-bs-theme="dark"] .text-primary { color: var(--bs-primary-text-emphasis) !important; }

/* 4. PONTE DE COMPATIBILIDADE (Inversão de Textos Camuflados) */
[data-bs-theme="dark"] .text-dark { color: #f8f9fa !important; }
[data-bs-theme="dark"] .text-muted { color: #adb5bd !important; }
[data-bs-theme="dark"] .text-secondary { color: #ced4da !important; }

/* =========================================================================
   COMPONENTES EXTRAS (Scrollbars, Hover Cards, Timeline)
========================================================================= */
.table-responsive::-webkit-scrollbar { width: 8px; height: 8px; }
.table-responsive::-webkit-scrollbar-track { background: var(--bs-secondary-bg); border-radius: 4px; }
.table-responsive::-webkit-scrollbar-thumb { background: var(--bs-secondary-color); border-radius: 4px; opacity: 0.5; }

.timeline::before { content: ''; position: absolute; top: 0; left: 0; height: 100%; width: 2px; background: var(--bs-border-color); }
.hover-shadow:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1rem rgba(0,0,0,.15) !important; transition: 0.3s ease-in-out; }

/* Utilitários Visuais */
.btn-white { background-color: var(--bs-body-bg); color: var(--bs-body-color); border-color: var(--bs-border-color); }
.btn-white:hover { background-color: var(--bs-tertiary-bg); }
.btn-acao { padding: 0.25rem 0.5rem; font-size: 0.875rem; }
.btn-xs { padding: 0.2rem 0.4rem; font-size: 0.75rem; line-height: 1; border-radius: 4px; }
.custom-switch { width: 2.5em !important; height: 1.25em !important; cursor: pointer; }
.blink-alert { animation: blinker 1.5s linear infinite; }
@keyframes blinker { 50% { opacity: 0.2; } }