/* =========================================================================
   TEMA ESCURO — webgescomercial
   -------------------------------------------------------------------------
   Ativado por `data-tema="escuro"` no <html> (ver js_system/tema.js).
   Sem esse atributo nada aqui se aplica e o tema claro de ux.css continua
   valendo — este arquivo é puramente aditivo.

   Paleta: cinza-azulado escuro (mesma família do azul da marca), NÃO preto.
   O fundo mais escuro da tela é #161d25; superfícies sobem em degraus
   (#1e2731 → #26313d → #303c4a) para dar profundidade sem contraste extremo.

   Carregar SEMPRE depois de ux.css.
   ========================================================================= */

/* ===== TOKENS ===== */
html[data-tema="escuro"] {
  /* Azuis da marca clareados: em fundo escuro o tom original (#305272)
     não alcança contraste de leitura. */
  --c-primary:        #5b8fb0;
  --c-primary-lt:     #6ea3c4;
  --c-primary-ltr:    #8bbcd8;
  --c-primary-dk:     #3d6a8a;
  --c-primary-dkr:    #2c4e70;

  --c-accent:         #1d97a7;
  --c-accent-hover:   #25aebf;
  --c-hover-text:     #93bfc4;

  --c-bg-body:        #161d25;
  --c-bg-login:       #161d25;
  --c-text:           #dce4ee;
  --c-text-muted:     #93a4b8;
  --c-text-light:     #f1f5f9;
  --c-border:         #35455a;
  --c-row-hover:      #2c3947;

  /* Superfícies (só existem no tema escuro; no claro o branco do Bootstrap
     cumpre esse papel). */
  --c-surface:        #1e2731;   /* cards, modais, painéis                */
  --c-surface-2:      #26313d;   /* card-header/footer, inputs, dropdowns */
  --c-surface-3:      #303c4a;   /* hover, elementos elevados             */
  --c-surface-inset:  #131920;   /* áreas rebaixadas (listas roláveis)    */

  /* Sombras precisam ser mais densas para aparecer sobre fundo escuro. */
  --shadow-sm:  0 1px 4px rgba(0,0,0,.40);
  --shadow-md:  0 3px 10px rgba(0,0,0,.50);
  --shadow-lg:  0 6px 24px rgba(0,0,0,.60);

  color-scheme: dark;   /* controles nativos (scroll, date picker, select) */
}

/* ===== BASE ===== */
html[data-tema="escuro"] body {
  background-color: var(--c-bg-body);
  color: var(--c-text);
}

html[data-tema="escuro"] ::-webkit-scrollbar-track { background: #12181f; }
html[data-tema="escuro"] ::-webkit-scrollbar-thumb { background: #3d4d60; }
html[data-tema="escuro"] ::-webkit-scrollbar-thumb:hover { background: var(--c-primary); }

html[data-tema="escuro"] hr { border-color: var(--c-border); opacity: 1; }

html[data-tema="escuro"] a { color: var(--c-primary-lt); }
html[data-tema="escuro"] a:hover { color: var(--c-primary-ltr); }

/* ===== NAVBAR / SIDEBAR =====
   Já são escuras no tema claro; aqui só descem mais um degrau para não
   ficarem *mais claras* que o conteúdo. */
html[data-tema="escuro"] #navbarmenuprincipal,
html[data-tema="escuro"] #menuindex {
  background: linear-gradient(135deg, #1b2733 0%, #2a3f52 100%) !important;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

html[data-tema="escuro"] .sidenav {
  background: linear-gradient(180deg, #1c2733 0%, #141c25 100%);
}

/* Painel de submenu dentro da sidebar (claro no tema padrão). */
html[data-tema="escuro"] .sidenav .dropdown-menu {
  background: var(--c-surface-3);
  box-shadow: var(--shadow-md);
}
html[data-tema="escuro"] .sidenav .dropdown-menu a { color: #cfdae6; }
html[data-tema="escuro"] .sidenav .dropdown-menu a:hover {
  background: rgba(255,255,255,.10);
  color: #fff;
}
html[data-tema="escuro"] .sidenav .dropdown-header { color: var(--c-primary-ltr); }
html[data-tema="escuro"] .sidenav .dropdown-divider { border-color: rgba(255,255,255,.14); }

/* ===== SUPERFÍCIES QUE USAM O AZUL DA MARCA COMO FUNDO =====
   Os tokens --c-primary* foram clareados acima para servirem de TEXTO sobre
   fundo escuro. Onde ux.css os usa como FUNDO, o resultado ficaria claro
   demais — estes blocos devolvem o tom escuro. */
html[data-tema="escuro"] .table thead th {
  background: #263748;
  color: var(--c-text);
}
html[data-tema="escuro"] .table-bordered thead th { border-color: rgba(255,255,255,.08); }

html[data-tema="escuro"] .rec-card-header {
  background: linear-gradient(90deg, #223345 0%, #2f4a63 100%);
}

html[data-tema="escuro"] .custom-modal-content {
  background: linear-gradient(140deg, #1f3044 0%, #33526c 100%);
}
html[data-tema="escuro"] .custom-close-btn { background: rgba(255,255,255,.14); }
html[data-tema="escuro"] .custom-close-btn:hover { background: rgba(255,255,255,.26); }

html[data-tema="escuro"] .btn-primary {
  background: #3f739a;
  border-color: #3f739a;
  color: #fff;
}
html[data-tema="escuro"] .btn-primary:hover { background: #4b83ad; border-color: #4b83ad; }

html[data-tema="escuro"] .dataTables_wrapper .dataTables_paginate .paginate_button.current,
html[data-tema="escuro"] .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: #3f739a;
  border-color: #3f739a;
}
html[data-tema="escuro"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background: var(--c-surface-3);
  color: var(--c-primary-ltr) !important;
}

/* Aba ativa: --c-primary-dk como texto ficaria apagado sobre o fundo escuro. */
html[data-tema="escuro"] #tabregister .nav-link.active { color: var(--c-primary-ltr); }
html[data-tema="escuro"] #tabregister .nav-link:hover { border-bottom-color: var(--c-border); }

/* ===== CARDS ===== */
html[data-tema="escuro"] .card {
  background-color: var(--c-surface);
  border-color: var(--c-border);
  color: var(--c-text);
}
html[data-tema="escuro"] .card-header {
  background: var(--c-surface-2);
  border-bottom-color: var(--c-border);
  color: var(--c-primary-ltr);
}
html[data-tema="escuro"] .card-footer {
  background: var(--c-surface-2);
  border-top-color: var(--c-border);
}
html[data-tema="escuro"] #ConteudoCadastro { background-color: var(--c-bg-body); }

/* ===== FORMULÁRIOS ===== */
html[data-tema="escuro"] .form-control,
html[data-tema="escuro"] .form-select,
html[data-tema="escuro"] textarea.form-control {
  background-color: var(--c-surface-2);
  border-color: var(--c-border);
  color: var(--c-text);
}
html[data-tema="escuro"] .form-control:focus,
html[data-tema="escuro"] .form-select:focus {
  background-color: var(--c-surface-2);
  border-color: var(--c-accent);
  color: var(--c-text);
  box-shadow: 0 0 0 3px rgba(29,151,167,.22);
}
html[data-tema="escuro"] .form-control::placeholder { color: #6d7f93; }

html[data-tema="escuro"] .form-control[readonly],
html[data-tema="escuro"] .form-control:disabled,
html[data-tema="escuro"] .form-select:disabled {
  background-color: #1a222b;
  color: var(--c-text-muted);
  border-color: #2c3846;
}

/* Seta do <select>: o SVG do Bootstrap é escuro e some no fundo escuro. */
html[data-tema="escuro"] .form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2393a4b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}

html[data-tema="escuro"] .input-group-text {
  background: var(--c-surface-3);
  border-color: var(--c-border);
  color: var(--c-text);
}
html[data-tema="escuro"] .input-group-text:hover { background: #3a4757; }

html[data-tema="escuro"] label,
html[data-tema="escuro"] .control-label,
html[data-tema="escuro"] .form-label { color: #a9bbd0; }

html[data-tema="escuro"] .form-check-input {
  background-color: var(--c-surface-3);
  border-color: #4a5a6d;
}
html[data-tema="escuro"] .form-check-input:checked {
  background-color: var(--c-accent);
  border-color: var(--c-accent);
}

/* ===== TABELAS =====
   Bootstrap pinta as linhas com box-shadow (--bs-table-accent-bg); trocar as
   variáveis resolve zebra e hover de uma vez. */
html[data-tema="escuro"] .table {
  color: var(--c-text);
  border-color: var(--c-border);
  --bs-table-bg: transparent;
  --bs-table-color: var(--c-text);
  --bs-table-striped-bg: rgba(255,255,255,.035);
  --bs-table-striped-color: var(--c-text);
  --bs-table-hover-bg: rgba(255,255,255,.07);
  --bs-table-hover-color: var(--c-text);
  --bs-table-border-color: var(--c-border);
}
html[data-tema="escuro"] .table > :not(caption) > * > * { border-bottom-color: var(--c-border); }
html[data-tema="escuro"] .table-bordered,
html[data-tema="escuro"] .table-bordered > :not(caption) > * > * { border-color: var(--c-border); }

/* ux.css fixa a zebra em #f4f8fb — precisa ser desfeito aqui. */
html[data-tema="escuro"] .table-striped tbody tr:nth-of-type(odd) { background: rgba(255,255,255,.035); }
html[data-tema="escuro"] .table-striped tbody tr:nth-of-type(odd):hover,
html[data-tema="escuro"] .table-hover tbody tr:hover { background: var(--c-row-hover); }

html[data-tema="escuro"] .table-light,
html[data-tema="escuro"] .table-light > th,
html[data-tema="escuro"] .table-light > td,
html[data-tema="escuro"] thead.table-light th {
  background-color: var(--c-surface-3) !important;
  color: var(--c-text) !important;
  border-color: var(--c-border) !important;
}

/* Registros excluídos (estilo_dashboard.css usa !important). */
html[data-tema="escuro"] tr.linha-excluida > td {
  background-color: #232a32 !important;
  color: #77828f !important;
}

/* ===== DATATABLES ===== */
html[data-tema="escuro"] .dataTables_wrapper,
html[data-tema="escuro"] .dataTables_wrapper .dataTables_info,
html[data-tema="escuro"] .dataTables_wrapper .dataTables_length,
html[data-tema="escuro"] .dataTables_wrapper .dataTables_filter,
html[data-tema="escuro"] .dataTables_wrapper .dataTables_paginate,
html[data-tema="escuro"] .dataTables_wrapper .dataTables_processing { color: var(--c-text); }

html[data-tema="escuro"] table.dataTable tbody tr,
html[data-tema="escuro"] table.dataTable.stripe tbody tr.odd,
html[data-tema="escuro"] table.dataTable.display tbody tr.odd { background-color: transparent; }
html[data-tema="escuro"] table.dataTable.display tbody tr.odd > .sorting_1,
html[data-tema="escuro"] table.dataTable.display tbody tr.odd > .sorting_2,
html[data-tema="escuro"] table.dataTable.display tbody tr.odd > .sorting_3,
html[data-tema="escuro"] table.dataTable.order-column tbody tr > .sorting_1,
html[data-tema="escuro"] table.dataTable.order-column tbody tr > .sorting_2,
html[data-tema="escuro"] table.dataTable.order-column tbody tr > .sorting_3 {
  background-color: rgba(255,255,255,.03);
}
html[data-tema="escuro"] table.dataTable.hover tbody tr:hover,
html[data-tema="escuro"] table.dataTable.display tbody tr:hover { background-color: var(--c-row-hover); }

html[data-tema="escuro"] .dataTables_wrapper .dataTables_filter input,
html[data-tema="escuro"] .dataTables_wrapper .dataTables_length select {
  background: var(--c-surface-2);
  border-color: var(--c-border);
  color: var(--c-text);
}
html[data-tema="escuro"] .dataTables_wrapper .dataTables_paginate .paginate_button {
  color: var(--c-text) !important;
}
html[data-tema="escuro"] .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
  color: #5c6b7d !important;
}
/* Ícones de ordenação são PNGs escuros — clarear com filtro. */
html[data-tema="escuro"] table.dataTable thead .sorting,
html[data-tema="escuro"] table.dataTable thead .sorting_asc,
html[data-tema="escuro"] table.dataTable thead .sorting_desc { filter: invert(1) brightness(1.6); }

/* Botões de exportação (Copy/Excel/PDF) */
html[data-tema="escuro"] .dt-buttons .dt-button {
  background: var(--c-surface-3) !important;
  border-color: var(--c-border) !important;
  color: var(--c-text) !important;
}
html[data-tema="escuro"] .dt-buttons .dt-button:hover { background: #3a4757 !important; }

/* ===== MODAIS ===== */
html[data-tema="escuro"] .modal-content {
  background-color: var(--c-surface);
  color: var(--c-text);
}
html[data-tema="escuro"] .modal-header { background: #223345; }
html[data-tema="escuro"] .modal-footer {
  background: var(--c-surface-2);
  border-top-color: var(--c-border);
}
html[data-tema="escuro"] .modal-body { color: var(--c-text); }
/* O "x" do Bootstrap é um SVG preto: inverter para ficar visível. */
html[data-tema="escuro"] .btn-close { filter: invert(1) grayscale(100%) brightness(2); }

/* ===== DROPDOWNS (fora da sidebar) ===== */
html[data-tema="escuro"] .dropdown-menu {
  background-color: var(--c-surface-2);
  border-color: var(--c-border);
  color: var(--c-text);
}
html[data-tema="escuro"] .dropdown-item { color: var(--c-text); }
html[data-tema="escuro"] .dropdown-item:hover,
html[data-tema="escuro"] .dropdown-item:focus {
  background: var(--c-surface-3);
  color: var(--c-primary-ltr);
}
html[data-tema="escuro"] .dropdown-divider { border-color: var(--c-border); }
html[data-tema="escuro"] .dropdown-header { color: var(--c-text-muted); }

/* ===== ABAS ===== */
html[data-tema="escuro"] #tabregister { border-bottom-color: var(--c-border); }
html[data-tema="escuro"] .nav-tabs { border-bottom-color: var(--c-border); }
html[data-tema="escuro"] .nav-tabs .nav-link { color: var(--c-primary-lt); }
html[data-tema="escuro"] .nav-tabs .nav-link.active {
  background-color: var(--c-surface);
  border-color: var(--c-border) var(--c-border) var(--c-surface);
  color: var(--c-text);
}

/* ===== BOTÕES ===== */
html[data-tema="escuro"] .btn-light {
  background: var(--c-surface-3);
  border-color: var(--c-border);
  color: var(--c-text);
}
html[data-tema="escuro"] .btn-light:hover { background: #3a4757; color: #fff; }

html[data-tema="escuro"] .btn-secondary {
  background: #4a5a6d;
  border-color: #4a5a6d;
  color: #fff;
}
html[data-tema="escuro"] .btn-secondary:hover { background: #56687d; border-color: #56687d; }

html[data-tema="escuro"] .btn-outline-secondary {
  color: #a9bbd0;
  border-color: #4a5a6d;
}
html[data-tema="escuro"] .btn-outline-secondary:hover {
  background: #4a5a6d;
  border-color: #4a5a6d;
  color: #fff;
}
html[data-tema="escuro"] .btn-outline-primary { color: var(--c-primary-lt); border-color: var(--c-primary-dk); }
html[data-tema="escuro"] .btn-outline-primary:hover { background: var(--c-primary-dk); color: #fff; }
html[data-tema="escuro"] .btn-outline-dark { color: #a9bbd0; border-color: #4a5a6d; }
html[data-tema="escuro"] .btn-outline-dark:hover { background: #4a5a6d; color: #fff; }

/* ===== UTILITÁRIOS BOOTSTRAP QUE ASSUMEM FUNDO CLARO ===== */
html[data-tema="escuro"] .bg-white { background-color: var(--c-surface) !important; }
html[data-tema="escuro"] .bg-light { background-color: var(--c-surface-2) !important; color: var(--c-text); }
html[data-tema="escuro"] .text-dark { color: var(--c-text) !important; }
html[data-tema="escuro"] .text-black { color: var(--c-text) !important; }
html[data-tema="escuro"] .text-muted { color: var(--c-text-muted) !important; }
html[data-tema="escuro"] .text-secondary { color: var(--c-text-muted) !important; }
html[data-tema="escuro"] .border { border-color: var(--c-border) !important; }
html[data-tema="escuro"] .border-top,
html[data-tema="escuro"] .border-bottom,
html[data-tema="escuro"] .border-start,
html[data-tema="escuro"] .border-end { border-color: var(--c-border) !important; }

/* Badge escuro sobre superfície escura ficaria invisível. */
html[data-tema="escuro"] .badge.bg-dark { background-color: #4a5a6d !important; }
html[data-tema="escuro"] .badge.bg-light { background-color: var(--c-surface-3) !important; color: var(--c-text) !important; }
html[data-tema="escuro"] .badge.bg-secondary { background-color: #55677c !important; }
html[data-tema="escuro"] .badge.bg-warning { color: #1a2029 !important; }

html[data-tema="escuro"] .list-group-item {
  background-color: var(--c-surface);
  border-color: var(--c-border);
  color: var(--c-text);
}
html[data-tema="escuro"] .list-group-item-action:hover { background-color: var(--c-surface-3); color: var(--c-text); }

/* Alertas: versões esmaecidas dos pastéis do Bootstrap. */
html[data-tema="escuro"] .alert-info      { background: #17303a; border-color: #245061; color: #96d3e4; }
html[data-tema="escuro"] .alert-warning   { background: #3a3018; border-color: #6a5423; color: #e8c877; }
html[data-tema="escuro"] .alert-danger    { background: #3a1f1f; border-color: #6b3232; color: #eda0a0; }
html[data-tema="escuro"] .alert-success   { background: #17301f; border-color: #285a3a; color: #8fd9ac; }
html[data-tema="escuro"] .alert-secondary { background: #262e38; border-color: #3d4854; color: #b6c2d0; }
html[data-tema="escuro"] .alert-primary   { background: #1b2b3a; border-color: #2e4a63; color: #9dc4e0; }

/* ===== PÁGINA DE LOGIN ===== */
html[data-tema="escuro"] body { background: var(--c-bg-body); }
html[data-tema="escuro"] #boxinformacoes.card,
html[data-tema="escuro"] #boxlogin.card { box-shadow: var(--shadow-lg); }
html[data-tema="escuro"] footer.fixed-bottom { background: #1b2733; }
html[data-tema="escuro"] .close-btn { color: var(--c-text-muted); }
html[data-tema="escuro"] .close-btn:hover { color: var(--c-text); }

/* ===== PAINEL INICIAL / RELATÓRIOS ===== */
html[data-tema="escuro"] #homePainel .home-saudacao,
html[data-tema="escuro"] #homePainel .home-kpi-num,
html[data-tema="escuro"] .rel-card .rel-titulo,
html[data-tema="escuro"] .rel-secao { color: var(--c-primary-ltr); }
html[data-tema="escuro"] #homePainel .home-notif-link:hover { filter: brightness(1.15); }

/* ===== NEUTRALIZAÇÃO DE ESTILOS INLINE LEGADOS =====
   Vários fragmentos trazem cores fixas claras no atributo style, que vence
   qualquer regra sem !important. Enquanto essas cores não migram para os
   tokens, o seletor de atributo as intercepta. */

/* Fundos claros de painel/lista */
html[data-tema="escuro"] [style*="#fcfbfc"] { background-color: var(--c-surface-inset) !important; }
html[data-tema="escuro"] [style*="#f9f9f9"] { background-color: var(--c-surface-inset) !important; }
html[data-tema="escuro"] [style*="#e9ecef"] { background-color: var(--c-surface-2) !important; }
html[data-tema="escuro"] [style*="#e3f3f5"] { background-color: var(--c-surface-2) !important; }
html[data-tema="escuro"] [style*="#b1c4c7"] { background-color: var(--c-surface-3) !important; color: var(--c-text) !important; }

/* Textos escuros/de baixo contraste */
html[data-tema="escuro"] [style*="#3a536a"] { color: var(--c-text) !important; }
html[data-tema="escuro"] [style*="#10707f"] { color: var(--c-accent-hover) !important; }
html[data-tema="escuro"] [style*="#1a8c5e"] { color: #4cc38a !important; }

/* A prévia do cupom fiscal (.pdv-cupom) simula papel térmico: permanece
   branca de propósito nos dois temas. */

/* ===== BOTÃO DE ALTERNÂNCIA DE TEMA ===== */
.btn-tema {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.22);
  color: var(--c-text-light);
  border-radius: var(--r-sm, 6px);
  padding: .3rem .55rem;
  line-height: 1;
  transition: background .18s ease;
}
.btn-tema:hover {
  background: rgba(255,255,255,.26);
  color: #fff;
}
.btn-tema:focus { color: #fff; }
