html.dark-mode-loading,
html.dark-mode-loading body {
    background-color: #1e1e1e !important;
}

body.dark-mode {
    background-color: #1e1e1e !important;
    color: #e0e0e0 !important;
}

/* NAVBAR */
body.dark-mode .navbar-inverse {
    background-color: #111111 !important;
    border-color: #333333 !important;
}

body.dark-mode .navbar-inverse .navbar-brand,
body.dark-mode .navbar-inverse .navbar-nav > li > a {
    color: #c9d1d9 !important;
}

body.dark-mode .navbar-inverse .navbar-nav > li > a:hover,
body.dark-mode .navbar-inverse .navbar-nav > li > a:focus {
    color: #ffffff !important;
    background-color: #3a3a3a !important;
}

body.dark-mode .navbar-inverse .navbar-nav > .open > a,
body.dark-mode .navbar-inverse .navbar-nav > .open > a:hover,
body.dark-mode .navbar-inverse .navbar-nav > .open > a:focus {
    background-color: #3a3a3a !important;
    color: #ffffff !important;
}

/* DROPDOWN MENU */
body.dark-mode .dropdown-menu {
    background-color: #2a2a2a !important;
    border-color: #444444 !important;
}

body.dark-mode .dropdown-menu > li > a {
    color: #c9d1d9 !important;
}

body.dark-mode .dropdown-menu > li > a:hover,
body.dark-mode .dropdown-menu > li > a:focus {
    background-color: #444444 !important;
    color: #ffffff !important;
}

body.dark-mode .dropdown-menu .divider {
    background-color: #444444 !important;
}

body.dark-mode .dropdown-header {
    color: #8b949e !important;
}

/* CONTAINER / BODY CONTENT */
body.dark-mode .container.body-content {
    background-color: transparent !important;
}

/* CARDS / PANELS */
body.dark-mode .panel {
    background-color: #2a2a2a !important;
    border-color: #444444 !important;
}

body.dark-mode .panel-default > .panel-heading {
    background-color: #111111 !important;
    color: #e0e0e0 !important;
    border-color: #444444 !important;
}

body.dark-mode .panel-body {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
}

body.dark-mode .panel-footer {
    background-color: #1e1e1e !important;
    border-top-color: #444444 !important;
    color: #c9d1d9 !important;
}

body.dark-mode .panel-footer small,
body.dark-mode .panel-footer .text-muted {
    color: #9aa5b1 !important;
}

/* =====================================================
   NAV TABS - dark mode
   ===================================================== */

body.dark-mode .nav-tabs {
    border-bottom-color: #444444 !important;
}

body.dark-mode .nav-tabs > li > a {
    color: #c9d1d9 !important;
    background-color: transparent !important;
    border-color: transparent !important;
}

body.dark-mode .nav-tabs > li > a:hover,
body.dark-mode .nav-tabs > li > a:focus {
    background-color: #333333 !important;
    border-color: #555555 #555555 #444444 !important;
    color: #ffffff !important;
}

body.dark-mode .nav-tabs > li.active > a,
body.dark-mode .nav-tabs > li.active > a:hover,
body.dark-mode .nav-tabs > li.active > a:focus {
    background-color: #2a2a2a !important;
    color: #ffffff !important;
    border-color: #444444 #444444 transparent !important;
}

body.dark-mode .tab-content {
    color: #e0e0e0 !important;
}

/* LIST GROUP */
body.dark-mode .list-group-item {
    background-color: #242424 !important;
    border-color: #444444 !important;
    color: #d7e7f7 !important;
}

body.dark-mode a.list-group-item,
body.dark-mode button.list-group-item {
    color: #7db7e8 !important;
}

body.dark-mode a.list-group-item:hover,
body.dark-mode a.list-group-item:focus,
body.dark-mode button.list-group-item:hover,
body.dark-mode button.list-group-item:focus {
    background-color: #333333 !important;
    border-color: #555555 !important;
    color: #b8dcff !important;
}

body.dark-mode .list-group-item .badge {
    background-color: #555555 !important;
    color: #ffffff !important;
}

/* TABELAS */
body.dark-mode .table {
    color: #e0e0e0 !important;
}

body.dark-mode .table > thead > tr > th {
    background-color: #111111 !important;
    color: #cccccc !important;
    border-color: #444444 !important;
}

body.dark-mode .table > tbody > tr > td,
body.dark-mode .table > tbody > tr > th {
    border-color: #444444 !important;
    background-color: #2a2a2a !important;
}

body.dark-mode .table-striped > tbody > tr:nth-of-type(odd) > td {
    background-color: #242424 !important;
}

body.dark-mode .table-hover > tbody > tr:hover > td {
    background-color: #3a3a3a !important;
}

body.dark-mode .table-bordered {
    border-color: #444444 !important;
}

/* FORMULARIOS */
body.dark-mode .form-control {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
    border-color: #555555 !important;
}

body.dark-mode .form-control:focus {
    background-color: #333333 !important;
    color: #ffffff !important;
    border-color: #888888 !important;
    box-shadow: 0 0 0 0.2rem rgba(136, 136, 136, 0.25) !important;
}

body.dark-mode .form-control[readonly] {
    background-color: #1e1e1e !important;
    color: #888888 !important;
}

body.dark-mode label,
body.dark-mode .control-label {
    color: #c9d1d9 !important;
}

body.dark-mode textarea {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
    border-color: #555555 !important;
}

/* SELECT2 */
body.dark-mode .select2-container--default .select2-selection--single {
    background-color: #2a2a2a !important;
    border-color: #555555 !important;
    color: #e0e0e0 !important;
}

body.dark-mode .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #e0e0e0 !important;
}

body.dark-mode .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #cccccc transparent transparent transparent !important;
}

body.dark-mode .select2-dropdown {
    background-color: #2a2a2a !important;
    border-color: #555555 !important;
}

body.dark-mode .select2-container--default .select2-results__option {
    color: #c9d1d9 !important;
}

body.dark-mode .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: #444444 !important;
    color: #ffffff !important;
}

body.dark-mode .select2-search--dropdown .select2-search__field {
    background-color: #1e1e1e !important;
    color: #e0e0e0 !important;
    border-color: #555555 !important;
}

/* MODAIS */
body.dark-mode .modal-content {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
    border-color: #444444 !important;
}

body.dark-mode .modal-header {
    border-color: #444444 !important;
}

body.dark-mode .modal-footer {
    border-color: #444444 !important;
}

body.dark-mode .modal-title {
    color: #e0e0e0 !important;
}

body.dark-mode .close {
    color: #c9d1d9 !important;
    opacity: 0.8 !important;
}

/* ALERTAS */
body.dark-mode .alert-success {
    background-color: #0f2e1f !important;
    border-color: #155724 !important;
    color: #75c98b !important;
}

body.dark-mode .alert-danger {
    background-color: #2e0f0f !important;
    border-color: #721c24 !important;
    color: #f1aeb5 !important;
}

body.dark-mode .alert-warning {
    background-color: #2e220f !important;
    border-color: #856404 !important;
    color: #ffc966 !important;
}

body.dark-mode .alert-info {
    background-color: #0f1e2e !important;
    border-color: #0c5460 !important;
    color: #6dd4e4 !important;
}

/* BOTOES */
body.dark-mode .btn-default {
    background-color: #3a3a3a !important;
    border-color: #555555 !important;
    color: #e0e0e0 !important;
}

body.dark-mode .btn-default:hover {
    background-color: #555555 !important;
    color: #ffffff !important;
}

body.dark-mode .btn-secondary,
body.dark-mode .btn-default.disabled,
body.dark-mode .btn-default[disabled],
body.dark-mode .btn-secondary.disabled,
body.dark-mode .btn-secondary[disabled] {
    background-color: #3a3a3a !important;
    border-color: #555555 !important;
    color: #d8d8d8 !important;
}

body.dark-mode .btn-secondary:hover,
body.dark-mode .btn-secondary:focus {
    background-color: #4a4a4a !important;
    border-color: #666666 !important;
    color: #ffffff !important;
}

/* HR / DIVISORES */
body.dark-mode hr {
    border-color: #444444 !important;
}

/* FOOTER */
body.dark-mode footer p {
    color: #8b949e !important;
}

/* PRE / CODE */
body.dark-mode pre {
    background-color: #111111 !important;
    color: #cccccc !important;
    border-color: #444444 !important;
}

/* SINO - manter vermelho visivel */
body.dark-mode .glyphicon-bell {
    color: #c9d1d9 !important;
}

/* SCROLLBAR (Chromium) */
body.dark-mode ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

body.dark-mode ::-webkit-scrollbar-track {
    background: #1e1e1e;
}

body.dark-mode ::-webkit-scrollbar-thumb {
    background: #555555;
    border-radius: 4px;
}

body.dark-mode ::-webkit-scrollbar-thumb:hover {
    background: #777777;
}

/* BOTAO TOGGLE DARK MODE */
#btnDarkMode {
    cursor: pointer;
    font-size: 18px;
    padding: 0 8px;
    color: #9d9d9d;
    background: none;
    border: none;
    line-height: 50px;
    height: 50px;
    display: inline-block;
    vertical-align: middle;
}

#btnDarkMode:hover {
    color: #ffffff;
}

/* =====================================================
   FAIXAS - Overrides de estilos inline
   ===================================================== */

body.dark-mode .faixa-grupo-card {
    background-color: #2a2a2a !important;
    border-color: #444444 !important;
}

body.dark-mode .faixa-grupo-header {
    background-color: #222222 !important;
    color: #e0e0e0 !important;
    border-color: #444444 !important;
}

body.dark-mode .faixa-grupo-header:hover {
    background-color: #2e2e2e !important;
}

body.dark-mode .faixa-grupo-header[aria-expanded="true"] {
    background-color: #2e2e2e !important;
}

body.dark-mode .faixa-grupo-header strong,
body.dark-mode .faixa-grupo-header .text-muted {
    color: #cccccc !important;
}

body.dark-mode .faixa-grupo-body {
    background-color: #2a2a2a !important;
}

body.dark-mode .faixa-grupo-header .btn-outline-secondary {
    color: #aaaaaa !important;
    border-color: #555555 !important;
}

body.dark-mode .faixa-grupo-header .btn-outline-secondary:hover {
    background-color: #444444 !important;
    color: #ffffff !important;
}

body.dark-mode .btn-light {
    background-color: #3a3a3a !important;
    border-color: #555555 !important;
    color: #e0e0e0 !important;
}

body.dark-mode .btn-light:hover {
    background-color: #4a4a4a !important;
    color: #ffffff !important;
}

body.dark-mode .btn-link.text-dark {
    color: #aaaaaa !important;
}

body.dark-mode .btn-link.text-dark:hover {
    color: #ffffff !important;
}

body.dark-mode .card {
    background-color: #2a2a2a !important;
    border-color: #444444 !important;
}

body.dark-mode .card-header {
    background-color: #222222 !important;
    border-color: #444444 !important;
    color: #e0e0e0 !important;
}

body.dark-mode .card-body {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
}

/* =====================================================
   DATATABLES - Paginacao Bootstrap 3 + controles
   ===================================================== */

body.dark-mode .dataTables_wrapper .pagination > li > a,
body.dark-mode .dataTables_wrapper .pagination > li > span {
    background-color: #2a2a2a !important;
    border-color: #555555 !important;
    color: #cccccc !important;
}

body.dark-mode .dataTables_wrapper .pagination > li > a:hover,
body.dark-mode .dataTables_wrapper .pagination > li > span:hover {
    background-color: #444444 !important;
    border-color: #666666 !important;
    color: #ffffff !important;
}

body.dark-mode .dataTables_wrapper .pagination > .active > a,
body.dark-mode .dataTables_wrapper .pagination > .active > span,
body.dark-mode .dataTables_wrapper .pagination > .active > a:hover,
body.dark-mode .dataTables_wrapper .pagination > .active > span:hover {
    background-color: #555555 !important;
    border-color: #777777 !important;
    color: #ffffff !important;
}

body.dark-mode .dataTables_wrapper .pagination > .disabled > a,
body.dark-mode .dataTables_wrapper .pagination > .disabled > a:hover,
body.dark-mode .dataTables_wrapper .pagination > .disabled > span {
    background-color: #1e1e1e !important;
    border-color: #444444 !important;
    color: #666666 !important;
}

body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button {
    background-color: #2a2a2a !important;
    border-color: #555555 !important;
    color: #e0e0e0 !important;
}

body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: #444444 !important;
    border-color: #666666 !important;
    color: #ffffff !important;
}

body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button.current,
body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: #555555 !important;
    border-color: #777777 !important;
    color: #ffffff !important;
}

body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
body.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover {
    background-color: #1e1e1e !important;
    border-color: #444444 !important;
    color: #666666 !important;
}

body.dark-mode .dataTables_wrapper .dataTables_info {
    color: #aaaaaa !important;
}

body.dark-mode .dataTables_wrapper .dataTables_length,
body.dark-mode .dataTables_wrapper .dataTables_filter {
    color: #cccccc !important;
}

body.dark-mode .dataTables_wrapper .dataTables_length select,
body.dark-mode .dataTables_wrapper .dataTables_filter input {
    background-color: #2a2a2a !important;
    border-color: #555555 !important;
    color: #e0e0e0 !important;
}

/* =====================================================
   DATATABLES - Linha selecionada (.selected)
   ===================================================== */

body.dark-mode table.dataTable tbody tr.selected > td,
body.dark-mode table.dataTable tbody tr.odd.selected > td,
body.dark-mode table.dataTable tbody tr.even.selected > td {
    background-color: #1a3a5c !important;
    color: #ffffff !important;
    border-color: #2a5a8c !important;
}

body.dark-mode table.dataTable tbody tr.selected:hover > td {
    background-color: #1e4570 !important;
}

/* =====================================================
   COMPARAR FAIXAS - Overrides de estilos inline
   ===================================================== */

/* Cabecalho sticky da tabela (background: #e9ecef hardcoded) */
body.dark-mode #tabelaComparar thead th {
    background-color: #111111 !important;
    color: #cccccc !important;
}

/* Linha de grupo/modulo (background: #f8f9fa hardcoded) */
body.dark-mode .group-header td {
    background-color: #1a1a1a !important;
    color: #ffffff !important;
}

/* Hover nas linhas de funcionalidade */
body.dark-mode .linha-funcionalidade:hover td {
    background-color: #2e2e2e !important;
}

/* Rodape fixo com botao Salvar */
body.dark-mode .rodape-fixo {
    background-color: #111111 !important;
    border-color: #444444 !important;
}

/* =====================================================
   SELECT2 MULTIPLO - tags/pills e container
   ===================================================== */

body.dark-mode .select2-container--default .select2-selection--multiple {
    background-color: #2a2a2a !important;
    border-color: #555555 !important;
}

body.dark-mode .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #444444 !important;
    border-color: #666666 !important;
    color: #e0e0e0 !important;
}

body.dark-mode .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: #aaaaaa !important;
}

body.dark-mode .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: #ffffff !important;
}

body.dark-mode .select2-container--default .select2-selection--multiple .select2-search__field {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
}

body.dark-mode .select2-container--default .select2-selection--multiple .select2-search__field::placeholder {
    color: #888888 !important;
}

body.dark-mode .select2-container--default.select2-container--focus .select2-selection--multiple {
    background-color: #333333 !important;
    border-color: #888888 !important;
}

/* =====================================================
   FIXES GERAIS - inputs sem .form-control, fontes, badges inline
   ===================================================== */

/* Badge "Em progresso" com background-color:yellow inline */
body.dark-mode span[style*="yellow"] {
    background-color: #7a6500 !important;
    color: #ffe680 !important;
}

/* Badge "Finalizado" com background-color:green inline */
body.dark-mode span[style*="green"] {
    background-color: #1a4d1a !important;
    color: #90ee90 !important;
}

/* Inputs/selects sem .form-control */
body.dark-mode input[type="text"],
body.dark-mode input[type="email"],
body.dark-mode input[type="password"],
body.dark-mode input[type="number"],
body.dark-mode input[type="search"],
body.dark-mode input[type="url"],
body.dark-mode input[type="tel"],
body.dark-mode select {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
    border-color: #555555 !important;
}

body.dark-mode input[type="text"]:focus,
body.dark-mode input[type="email"]:focus,
body.dark-mode input[type="number"]:focus,
body.dark-mode select:focus {
    background-color: #333333 !important;
    color: #ffffff !important;
    border-color: #888888 !important;
}

/* Paragrafos usados como label */
body.dark-mode p {
    color: #e0e0e0 !important;
}

/* Headings */
body.dark-mode h1, body.dark-mode h2,
body.dark-mode h3, body.dark-mode h4,
body.dark-mode h5, body.dark-mode h6 {
    color: #e0e0e0 !important;
}

/* Links gerais (exceto botoes) */
body.dark-mode a:not(.btn) {
    color: #6aa9d8 !important;
}

body.dark-mode a:not(.btn):hover {
    color: #90c4e8 !important;
}

/* =====================================================
   LOGIN - form-signin-container
   ===================================================== */

body.dark-mode .form-signin-container {
    background-color: #2a2a2a !important;
    border-color: #444444 !important;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5) !important;
    color: #e0e0e0 !important;
}

body.dark-mode .form-signin-container label {
    color: #c9d1d9 !important;
}

body.dark-mode .form-signin-container h2 {
    color: #e0e0e0 !important;
}

/* =====================================================
   BOOTSTRAP UTILITIES - bg-white, bg-light, thead-light
   ===================================================== */

body.dark-mode .bg-white {
    background-color: #2a2a2a !important;
}

body.dark-mode .bg-light {
    background-color: #222222 !important;
}

body.dark-mode .thead-light th,
body.dark-mode .thead-light td {
    background-color: #111111 !important;
    color: #cccccc !important;
    border-color: #444444 !important;
}

body.dark-mode .thead-dark th,
body.dark-mode .thead-dark td {
    background-color: #0a0a0a !important;
    color: #cccccc !important;
    border-color: #333333 !important;
}

body.dark-mode .border {
    border-color: #444444 !important;
}

body.dark-mode .shadow-sm {
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.5) !important;
}

/* =====================================================
   COMPARAR FAIXAS - dataTables_filter input inline override
   ===================================================== */

body.dark-mode .dataTables_filter input[type="search"] {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
    border-color: #555555 !important;
}

/* Alert info (Modo Visualização) */
body.dark-mode .alert-light {
    background-color: #2a2a2a !important;
    border-color: #444444 !important;
    color: #cccccc !important;
}

/* =====================================================
   WELL / CODE / TEXT-MUTED - melhora contraste no dark
   ===================================================== */

body.dark-mode .well {
    background-color: #222222 !important;
    border-color: #444444 !important;
    color: #e0e0e0 !important;
    box-shadow: none !important;
}

body.dark-mode .well-lg,
body.dark-mode .well-sm {
    background-color: #222222 !important;
    border-color: #444444 !important;
    color: #e0e0e0 !important;
}

/* <code> inline (Bootstrap default tem fundo claro com texto rosa) */
body.dark-mode code {
    background-color: #1a1a1a !important;
    color: #ffb86c !important;
    border: 1px solid #3a3a3a !important;
    padding: 1px 6px !important;
    border-radius: 3px !important;
}

/* <kbd> segue o mesmo padrao */
body.dark-mode kbd {
    background-color: #1a1a1a !important;
    color: #cccccc !important;
    border: 1px solid #444444 !important;
    box-shadow: none !important;
}

/* .text-muted vira cinza claro o suficiente para ficar legivel sobre #1e1e1e/#2a2a2a */
body.dark-mode .text-muted,
body.dark-mode small.text-muted,
body.dark-mode .help-block {
    color: #9aa5b1 !important;
}

/* .text-success/danger/warning ja existentes - reforco para serem legiveis */
body.dark-mode .text-success {
    color: #75c98b !important;
}

body.dark-mode .text-danger {
    color: #f1aeb5 !important;
}

body.dark-mode .text-warning {
    color: #ffc966 !important;
}

body.dark-mode .text-info {
    color: #6dd4e4 !important;
}

/* Wells/code dentro de .alert-info devem casar com o alert (azul-escuro) */
body.dark-mode .alert-info code,
body.dark-mode .alert-info .well code {
    background-color: rgba(0, 0, 0, 0.35) !important;
    color: #ffd28a !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}
