/* =========================================================================
   WebClinic — TEMA ESCURO
   -------------------------------------------------------------------------
   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 puxado para o verde-água da marca, NÃO preto.
   O fundo mais escuro da tela é #151d21; as superfícies sobem em degraus
   (#1d2830 → #24333a → #2e3f47) para dar profundidade sem contraste extremo.

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

/* ===== TOKENS ===== */
html[data-tema="escuro"] {
  /* Teal da marca clareado: em fundo escuro o tom original (#1a7385) não
     alcança contraste de leitura. */
  --c-primary:        #4fa3b8;
  --c-primary-lt:     #63b6ca;
  --c-primary-ltr:    #86ccdc;
  --c-primary-dk:     #2f7a8e;
  --c-primary-dkr:    #1d5b6b;

  --c-accent:         #16a8c0;
  --c-accent-hover:   #22bcd4;
  --c-hover-text:     #93bfc4;

  --c-bg-body:        #151d21;
  --c-bg-login:       #151d21;
  --c-text:           #dbe7ea;
  --c-text-muted:     #91a7ad;
  --c-text-light:     #f1f7f8;
  --c-border:         #32474e;
  --c-row-hover:      #2a3a40;

  /* Superfícies (só existem no tema escuro; no claro o branco do Bootstrap
     cumpre esse papel). */
  --c-surface:        #1d2830;   /* cards, modais, painéis                */
  --c-surface-2:      #24333a;   /* card-header/footer, inputs, dropdowns */
  --c-surface-3:      #2e3f47;   /* hover, elementos elevados             */
  --c-surface-inset:  #121a1e;   /* á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);

  /* Apelidos legados (ver ux.css): os fragmentos os usam como FUNDO em style
     inline, então aqui recebem os tons escuros — e não os --c-primary*
     clareados, que só servem como texto sobre fundo escuro. */
  --clr-primary:     #1e353d;
  --clr-primary-dk:  #16272d;
  --clr-primary-lt:  #2b4d58;
  --clr-surface:     var(--c-surface-2);
  --clr-surface-dk:  var(--c-border);

  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: #101619; }
html[data-tema="escuro"] ::-webkit-scrollbar-thumb       { background: #3a4d55; }
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 / SIDENAV =====
   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 {
  background: linear-gradient(90deg, #14242a 0%, #1b333b 60%, #22414b 100%) !important;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

html[data-tema="escuro"] #menuindex {
  background: linear-gradient(90deg, #14242a 0%, #1e4048 100%);
}

html[data-tema="escuro"] .rodape-site { background: #14242a; }

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

/* `html[data-tema=escuro] a` (regra genérica acima) é mais específica que o
   `.sidenav a` do ux.css e pintava os itens de primeiro nível de teal claro —
   só os que NÃO abrem submenu, porque .nav-link.dropdown-toggle escapava.
   O resultado era metade do menu numa cor e metade noutra. */
html[data-tema="escuro"] .sidenav a { color: rgba(255,255,255,.88); }
html[data-tema="escuro"] .sidenav a:hover { color: var(--c-text-light); }

/* Painel de submenu dentro da barra lateral (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: var(--c-text-light);
}
html[data-tema="escuro"] .sidenav .dropdown-header { color: var(--c-primary-ltr); }
html[data-tema="escuro"] .sidenav .dropdown-menu .dropdown-divider { border-color: rgba(255,255,255,.14); }
html[data-tema="escuro"] .sidenav .dropdown-divider { border-color: rgba(255,255,255,.14); }

/* ===== SUPERFÍCIES QUE USAM O TEAL 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: #24383f;
  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, #1e353d 0%, #2b4d58 100%);
}

html[data-tema="escuro"] .custom-modal-content {
  background: linear-gradient(140deg, #1c3138 0%, #2d525e 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: #35798c;
  border-color: #35798c;
  color: #fff;
}
html[data-tema="escuro"] .btn-primary:hover { background: #3f8b9f; border-color: #3f8b9f; }

html[data-tema="escuro"] .dataTables_wrapper .dataTables_paginate .paginate_button.current,
html[data-tema="escuro"] .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: #35798c;
  border-color: #35798c;
}
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(22,168,192,.22);
}
html[data-tema="escuro"] .form-control::placeholder { color: #6c848c; }

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

/* 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='%2391a7ad' 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: #384c55; }

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

html[data-tema="escuro"] .form-check-input {
  background-color: var(--c-surface-3);
  border-color: #465c65;
}
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 #f2f9fa — 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. */
html[data-tema="escuro"] tr.linha-excluida > td {
  background-color: #212a2e !important;
  color: #74838a !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: #58686f !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); }

/* Ícones de expandir/recolher da consulta (queclients.css usa PNG escuro). */
html[data-tema="escuro"] td.details-control { filter: invert(1) brightness(1.5); }

/* 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: #384c55 !important; }

/* ===== MODAIS ===== */
html[data-tema="escuro"] .modal-content {
  background-color: var(--c-surface);
  color: var(--c-text);
}
html[data-tema="escuro"] .modal-header { background: #1e353d; }
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 sidenav) ===== */
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: #384c55; color: #fff; }

html[data-tema="escuro"] .btn-secondary {
  background: #465c65;
  border-color: #465c65;
  color: #fff;
}
html[data-tema="escuro"] .btn-secondary:hover { background: #526b76; border-color: #526b76; }

html[data-tema="escuro"] .btn-outline-secondary { color: #a4bcc2; border-color: #465c65; }
html[data-tema="escuro"] .btn-outline-secondary:hover {
  background: #465c65;
  border-color: #465c65;
  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: #a4bcc2; border-color: #465c65; }
html[data-tema="escuro"] .btn-outline-dark:hover { background: #465c65; 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; }
/* .form-text é a dica sob um campo, e o Bootstrap 5 a pinta com a variável
   PRÓPRIA dele (--bs-secondary-color: rgba(33,37,41,.75)) — quase preta. Sobre
   o fundo escuro (#151d21) o texto ficava ilegível, e como ele não usa a classe
   .text-muted, nenhuma regra acima o alcançava.

   Descoberto em 31/08 ao pôr as dicas de e-mail e celular no cadastro de
   Pacientes; mas o defeito é ANTIGO — "Desconto padrão do paciente…" e
   "Parentesco e papéis pertencem ao vínculo…" já estavam invisíveis no tema
   escuro, na mesma tela. Uma dica que ninguém lê é pior que nenhuma: ocupa o
   espaço e não avisa. */
html[data-tema="escuro"] .form-text      { 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: #465c65 !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: #51686f !important; }
html[data-tema="escuro"] .badge.bg-warning   { color: #17202a !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: #16303a; border-color: #235061; 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: #242e32; border-color: #3a494f; color: #b2c3c8; }
html[data-tema="escuro"] .alert-primary   { background: #182c33; border-color: #2b4c57; color: #9dcbd8; }

/* ===== PÁGINA DE LOGIN ===== */
html[data-tema="escuro"] #boxinfo.card,
html[data-tema="escuro"] #boxlogin.card { box-shadow: var(--shadow-lg); }
html[data-tema="escuro"] .close-btn        { color: var(--c-text-muted); }
html[data-tema="escuro"] .close-btn:hover  { color: var(--c-text); }

/* ===== 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 (usado nos card-body das consultas) */
html[data-tema="escuro"] [style*="#fcfbfc"] { background-color: var(--c-surface-inset) !important; }
html[data-tema="escuro"] [style*="#ffffff"] { background-color: var(--c-surface) !important; color: var(--c-text) !important; }
html[data-tema="escuro"] [style*="#e9ecef"] { background-color: var(--c-surface-2) !important; }
html[data-tema="escuro"] [style*="#e8f5f7"] { background-color: var(--c-surface-2) !important; }

/* Header do modal de troca de senha (cor fixa no fragmento) */
html[data-tema="escuro"] [style*="#1a7385"] { background-color: #1e353d !important; }

/* Fundos do azul antigo herdado do webgescomercial nos modais de acesso */
html[data-tema="escuro"] [style*="#446884"] { background-color: #23404d !important; }

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

/* Painel SaaS no tema escuro. */
html[data-tema="escuro"] .adm-cota {
  background: #1b2528;
  border-color: #2c3a3f;
}

html[data-tema="escuro"] .adm-cota-estourada {
  background: #3a1f1c;
  border-color: #6b3128;
  color: #ef9a8f;
}

html[data-tema="escuro"] tr.adm-estourado > td {
  background-color: #241a19;
}

/* Home no tema escuro. */
html[data-tema="escuro"] .home-kpi {
  background: #161f22;
  border-color: #2c3a3f;
}
