/* =====================================================================
   TRADESIS · LAYOUT MODERNO DOS PROGRAMAS (baseados em templates)
   - Aplica um visual moderno e consistente com o novo menu.
   - Usa as variáveis de tema (claro/escuro) definidas em estilo.css.
   - Não altera o código dos programas: apenas estiliza classes já usadas
     pelos templates (ts-tableFiltros, ts-divContador, ts-headertabelafixo,
     ts-tituloPrincipal) e componentes Bootstrap (btn, form-control, modal).
   ===================================================================== */

/* ---------- espaçamento geral da página do programa ---------- */
.container-fluid {
    padding-top: 16px;
    padding-bottom: 16px;
}

/* ---------- título do programa ---------- */
.ts-tituloPrincipal {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.2px;
    display: inline-flex;
    align-items: center;
}

/* ---------- TABELA em formato "card" ---------- */
.ts-tableFiltros,
.ts-tableCard {
    background: var(--ts-surface);
    border: 1px solid var(--ts-border);
    border-radius: 14px;
    box-shadow: 0 10px 30px -20px rgba(19, 33, 106, 0.22);
    padding: 0;
    /* rolagem própria: a tabela se ajusta ao espaço restante (sidebar aberta ou
       recolhida) e as colunas ficam sempre acessíveis dentro do card, em vez de
       serem "cortadas" à direita quando o iframe estreita. */
    max-width: 100%;
    overflow: auto;
    max-height: calc(100vh - 13rem);
    scrollbar-width: thin;
}
.ts-tableFiltros > table.table {
    margin: 0;
    --bs-table-bg: transparent;
    border-color: var(--ts-border);
    /* não força largura mínima: a tabela usa a largura disponível e só rola
       horizontalmente quando o conteúdo realmente não couber. */
    width: 100%;
}
/* barra de rolagem discreta dentro do card */
.ts-tableFiltros::-webkit-scrollbar { width: 9px; height: 9px; }
.ts-tableFiltros::-webkit-scrollbar-track { background: transparent; }
.ts-tableFiltros::-webkit-scrollbar-thumb {
    background: var(--ts-border-2);
    border-radius: 8px;
    border: 2px solid var(--ts-surface);
}
/* cabeçalho fixo com a cor da empresa, tipografia mais limpa */
.ts-tableFiltros thead.ts-headertabelafixo th,
.ts-tableCard thead.ts-headertabelafixo th {
    font-weight: 600;
    padding: 7px 12px;
    border-bottom: none;
    vertical-align: middle;
}
/* arredonda os cantos superiores do header dentro do card */
.ts-tableFiltros thead.ts-headertabelafixo tr:first-child th:first-child { border-top-left-radius: 13px; }
.ts-tableFiltros thead.ts-headertabelafixo tr:first-child th:last-child { border-top-right-radius: 13px; }

.ts-tableFiltros tbody td {
    padding: 4px 12px;
    border-color: var(--ts-border);
    vertical-align: middle;
    line-height: 1.35;
}
.ts-tableFiltros tbody tr {
    transition: background-color 0.12s ease;
}
.ts-tableFiltros tbody tr:hover > * {
    background-color: var(--ts-surface-hover);
}
.ts-tableFiltros tbody tr:last-child td { border-bottom: none; }

/* ---------- BARRA DE PAGINAÇÃO / CONTADOR ---------- */
.ts-divContador {
    background: var(--ts-surface) !important;
    border-top: 1px solid var(--ts-border);
    box-shadow: 0 -6px 22px -10px rgba(0, 0, 0, 0.18);
    padding: 10px 18px !important;
    gap: 10px;
    z-index: 15;
}
.ts-divContador h6 {
    margin: 0;
    font-size: 13px;
    font-weight: 500;
    color: var(--ts-text-2) !important;
}
.ts-divContador .btn {
    border-radius: 8px;
    padding: 5px 11px;
    font-weight: 600;
    line-height: 1;
}
.ts-divContador a#paginacontador {
    color: var(--ts-text) !important;
    font-weight: 600;
}
/* botões de paginação neutros/limpos (sobrepõe warning/primary do template) */
.ts-divContador #inicioPagina,
.ts-divContador #ultimaPagina,
.ts-divContador #voltarPagina,
.ts-divContador #avancarPagina {
    --bs-btn-bg: var(--ts-surface-2);
    --bs-btn-border-color: var(--ts-border);
    --bs-btn-color: var(--ts-text-2);
    --bs-btn-hover-bg: var(--ts-surface-hover);
    --bs-btn-hover-border-color: var(--ts-border-2);
    --bs-btn-hover-color: var(--ts-text);
    --bs-btn-active-bg: var(--ts-surface-hover);
    --bs-btn-active-border-color: var(--ts-border-2);
    --bs-btn-active-color: var(--ts-text);
}

/* ---------- BOTÕES ---------- */
.btn {
    border-radius: 10px;
    font-weight: 500;
}
.btn-sm { border-radius: 8px; }
/* botão primário adota a cor da empresa (consistência com o menu) */
.btn-primary {
    --bs-btn-bg: var(--color-bg-primary);
    --bs-btn-border-color: var(--color-bg-primary);
    --bs-btn-hover-bg: color-mix(in srgb, var(--color-bg-primary) 87%, #000);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--color-bg-primary) 87%, #000);
    --bs-btn-active-bg: color-mix(in srgb, var(--color-bg-primary) 78%, #000);
    --bs-btn-active-border-color: color-mix(in srgb, var(--color-bg-primary) 78%, #000);
    --bs-btn-disabled-bg: var(--color-bg-primary);
    --bs-btn-disabled-border-color: var(--color-bg-primary);
}

/* ---------- INPUTS / SELECTS ---------- */
.form-control,
.form-select,
.ts-input {
    border-radius: 10px;
}
.form-control:focus,
.form-select:focus,
.ts-input:focus {
    border-color: var(--color-bg-primary);
    box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--color-bg-primary) 25%, transparent);
}
/* grupo de busca (inputs/buscarComBotao) mais coeso */
.input-group .ts-input {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

/* ---------- MODAIS ---------- */
.modal-content {
    border: none;
    border-radius: 16px;
    box-shadow: 0 30px 80px -35px rgba(0, 0, 0, 0.55);
}
.modal-header {
    border-bottom: 1px solid var(--ts-border);
    padding: 16px 20px;
}
.modal-footer {
    border-top: 1px solid var(--ts-border);
    padding: 14px 20px;
    gap: 6px;
}
.modal-body { padding: 20px; }
.modal-title { font-weight: 700; font-size: 17px; }

/* ---------- CARDS genéricos (templates cards/headers) ---------- */
.card {
    border-radius: 14px;
    border-color: var(--ts-border);
}
.card-header {
    border-bottom: 1px solid var(--ts-border);
    font-weight: 600;
}

/* ---------- MODAL DE PERFIL (dados de acesso + senha) ---------- */
.ts-perfil-modal .modal-content { overflow: hidden; }
.ts-perfil-head {
    background: linear-gradient(135deg,
        var(--color-bg-primary),
        color-mix(in srgb, var(--color-bg-primary) 78%, #000));
    color: #fff;
    border-bottom: none;
    padding: 20px 22px;
}
.ts-perfil-head-user {
    display: flex;
    align-items: center;
    gap: 14px;
}
.ts-perfil-avatar-lg {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.35);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}
.ts-perfil-head-name {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.15;
}
.ts-perfil-head-sub {
    font-size: 12.5px;
    opacity: 0.85;
    margin-top: 2px;
}
.ts-perfil-head .btn-close { align-self: flex-start; }

.ts-perfil-section {
    background: var(--ts-surface-2);
    border: 1px solid var(--ts-border);
    border-radius: 12px;
    padding: 16px 18px;
    margin-bottom: 16px;
}
.ts-perfil-section:last-child { margin-bottom: 0; }
.ts-perfil-section-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--ts-text);
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
}
.ts-perfil-section-title i { color: var(--color-bg-primary); }
.ts-perfil-section .form-label {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ts-text-2);
    margin-bottom: 4px;
}
.ts-perfil-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}
.ts-perfil-alert { border-radius: 10px; }
/* no tema escuro o título de seção usa a cor da empresa em tom claro */
.ts-theme-dark .ts-perfil-section-title i { color: #fff; }


/* =========================================================================
   VISAOCLI (KANBAN) — AJUSTES DE TEMA ESCURO (EXCLUSIVO DESTE PROGRAMA)
   Programa: servicos/visaocli/index.php
   Escopo: html.ts-theme-dark  +  body.ts-visaocli
   (as classes ts-kanban* nao ganhavam cor no modo noite, ficando com fundo
    branco/cinza claro e texto ilegivel)
   ========================================================================= */

/* fundo geral da tela */
.ts-theme-dark .ts-visaocli.ts-kanbanFundo,
.ts-theme-dark .ts-visaocli .ts-kanbanFundo {
    background: var(--ts-surface-2);
}

/* container de cada coluna (Bootstrap .card) */
.ts-theme-dark .ts-visaocli .ts-kanban .card {
    background-color: var(--ts-surface);
    border-color: var(--ts-border);
}

/* cabecalho sticky de cada coluna */
.ts-theme-dark .ts-visaocli .ts-kanbanTitulo {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-bottom: 1px solid var(--ts-border);
}
.ts-theme-dark .ts-visaocli .ts-kanbanTitulo h6 {
    color: var(--ts-text);
    margin-bottom: 0;
}

/* cards das demandas */
.ts-theme-dark .ts-visaocli .ts-kanbanQuadro {
    background: var(--ts-surface-hover);
    color: var(--ts-text);
    border-color: var(--ts-border) !important;
    box-shadow: 0 6px 14px -8px rgba(0, 0, 0, 0.65);
}
.ts-theme-dark .ts-visaocli .ts-kanbanQuadro:hover {
    background: var(--ts-border);
}
.ts-theme-dark .ts-visaocli .ts-kanbanQuadro hr {
    border-color: var(--ts-border);
    opacity: 0.6;
}

/* card atrasado: mantem o alerta vermelho, porem legivel no escuro */
.ts-theme-dark .ts-visaocli .ts-kanbanQuadro.ts-cardAtrasado {
    background: rgba(220, 53, 69, 0.38);
    border-color: rgba(220, 53, 69, 0.65) !important;
    color: var(--ts-text);
}
.ts-theme-dark .ts-visaocli .ts-kanbanQuadro.ts-cardAtrasado:hover {
    background: rgba(220, 53, 69, 0.5);
}

/* selects de filtro (Todos / Clientes / Contrato) */
.ts-theme-dark .ts-visaocli .form-select.ts-input {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-color: var(--ts-border);
    /* seta do select em tom claro para aparecer no fundo escuro */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23aab8c5' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}
.ts-theme-dark .ts-visaocli .form-select.ts-input:disabled {
    color: var(--ts-text-muted);
    opacity: 1;
}

/* =========================================================================
   VISAOCLI — VISUALIZAR + MODAL INSERIR (tema escuro exclusivo)
   Programas: servicos/visaocli/visualizar.php e modalDemanda_inserir.php
   Escopo: html.ts-theme-dark + body.ts-visaocli
   (fundos cinza/branco, titulos #172B4D, abas, Quill e comentarios
    nao reagiam ao modo noite)
   ========================================================================= */

/* fundo da pagina e do painel principal (antes inline #F1F2F4) */
.ts-visaocli .ts-visaocli-painel {
    background-color: #F1F2F4;
}
.ts-theme-dark .ts-visaocli,
.ts-theme-dark .ts-visaocli .container-fluid {
    background-color: var(--ts-surface-2);
    color: var(--ts-text);
}
.ts-theme-dark .ts-visaocli .ts-visaocli-painel,
.ts-theme-dark .ts-visaocli .modal-content {
    background-color: var(--ts-surface-2);
    color: var(--ts-text);
    border-color: var(--ts-border);
}

/* barra lateral da demanda (Prioridade, datas, acoes) */
.ts-theme-dark .ts-visaocli .ts-divLateralModalDemanda {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-color: var(--ts-border);
}
.ts-theme-dark .ts-visaocli .ts-divLateralModalDemanda .modal-header,
.ts-theme-dark .ts-visaocli .ts-divLateralModalDemanda .modal-footer {
    background-color: var(--ts-surface);
    border-color: var(--ts-border);
}

/* titulos, subtitulos e labels que tinham cor fixa clara */
.ts-theme-dark .ts-visaocli .ts-tituloPrincipalModal,
.ts-theme-dark .ts-visaocli .ts-subTitulo,
.ts-theme-dark .ts-visaocli .ts-subTitulo span,
.ts-theme-dark .ts-visaocli .tituloEditor,
.ts-theme-dark .ts-visaocli .ts-label,
.ts-theme-dark .ts-visaocli .form-label,
.ts-theme-dark .ts-visaocli .form-check-label {
    color: var(--ts-text) !important;
}
.ts-theme-dark .ts-visaocli .ts-label,
.ts-theme-dark .ts-visaocli .tituloEditor {
    color: var(--ts-text-2) !important;
}
.ts-theme-dark .ts-visaocli .ts-btnDescricaoEditar {
    color: var(--ts-text-2);
}
.ts-theme-dark .ts-visaocli .ts-btnDescricaoEditar:hover {
    color: var(--ts-text);
}

/* inputs sem borda (fundo cinza fixo #F1F2F4) */
.ts-theme-dark .ts-visaocli .ts-inputSemBorda,
.ts-theme-dark .ts-visaocli .form-control.ts-input,
.ts-theme-dark .ts-visaocli .form-select.ts-input,
.ts-theme-dark .ts-visaocli .form-control {
    background-color: var(--ts-surface) !important;
    color: var(--ts-text) !important;
    border-color: var(--ts-border);
    color-scheme: dark;
}
.ts-theme-dark .ts-visaocli .form-control:disabled,
.ts-theme-dark .ts-visaocli .form-select:disabled,
.ts-theme-dark .ts-visaocli .form-control[readonly] {
    background-color: var(--ts-surface-2) !important;
    color: var(--ts-text-2) !important;
    opacity: 1;
}

/* abas Demanda */
.ts-theme-dark .ts-visaocli .line {
    border-bottom-color: var(--ts-border);
}
.ts-theme-dark .ts-visaocli #ts-tabs .tab {
    background-color: var(--ts-surface-hover);
    color: var(--ts-text-2);
}
.ts-theme-dark .ts-visaocli #ts-tabs .whiteborder {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-color: var(--ts-border);
    border-bottom-color: var(--ts-surface);
}
.ts-theme-dark .ts-visaocli #ts-tabs .tabContent {
    color: var(--ts-text);
    background-color: transparent;
}

/* editor Quill (toolbar + area de texto) */
.ts-theme-dark .ts-visaocli .ql-toolbar.ql-snow,
.ts-theme-dark .ts-visaocli [id^="ql-toolbar"] {
    background-color: var(--ts-surface);
    border-color: var(--ts-border);
    color: var(--ts-text);
}
.ts-theme-dark .ts-visaocli .ql-container.ql-snow,
.ts-theme-dark .ts-visaocli [id^="ql-editor"] {
    background-color: var(--ts-surface);
    border-color: var(--ts-border);
    color: var(--ts-text);
}
.ts-theme-dark .ts-visaocli .ql-editor,
.ts-theme-dark .ts-visaocli .ql-editor.ql-blank::before {
    color: var(--ts-text);
}
.ts-theme-dark .ts-visaocli .ql-editor.ql-blank::before {
    color: var(--ts-text-faint);
}
.ts-theme-dark .ts-visaocli .ts-displayDisable {
    background: var(--ts-surface-2) !important;
    color: var(--ts-text);
}
.ts-theme-dark .ts-visaocli .ql-snow .ql-stroke {
    stroke: var(--ts-text-2);
}
.ts-theme-dark .ts-visaocli .ql-snow .ql-fill,
.ts-theme-dark .ts-visaocli .ql-snow .ql-stroke.ql-fill {
    fill: var(--ts-text-2);
}
.ts-theme-dark .ts-visaocli .ql-snow .ql-picker {
    color: var(--ts-text-2);
}
.ts-theme-dark .ts-visaocli .ql-snow .ql-picker-options {
    background-color: var(--ts-surface);
    border-color: var(--ts-border);
    color: var(--ts-text);
}
.ts-theme-dark .ts-visaocli .ql-snow button:hover .ql-stroke,
.ts-theme-dark .ts-visaocli .ql-snow .ql-picker-label:hover .ql-stroke {
    stroke: var(--ts-text);
}
.ts-theme-dark .ts-visaocli .ql-snow a {
    color: #8ab4f8;
}

/* comentarios */
.ts-theme-dark .ts-visaocli .ts-inputComentario .input-group-text,
.ts-theme-dark .ts-visaocli .ts-inputComentario .form-control,
.ts-theme-dark .ts-visaocli .btnAdicionarComentario {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-color: var(--ts-border);
}
.ts-theme-dark .ts-visaocli .ts-comentario,
.ts-theme-dark .ts-visaocli .ts-comentario p,
.ts-theme-dark .ts-visaocli .ts-comentario span {
    color: var(--ts-text);
}
.ts-theme-dark .ts-visaocli .ts-comentario a {
    color: #8ab4f8;
}

/* modal Inserir (incluido no index; classe extra no proprio modal) */
.ts-theme-dark .ts-visaocli-modal .modal-content,
.ts-theme-dark .ts-visaocli .ts-visaocli-modal .modal-content {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-color: var(--ts-border);
}

/* dashboard demandas: modal em tela cheia (nao usar o 75vw do visualizar) */
.modal-dialog.modal-fullscreen.ts-modal-tela-cheia {
    max-width: 100vw !important;
    width: 100vw;
    height: 100vh;
    margin: 0;
}
.modal-dialog.modal-fullscreen.ts-modal-tela-cheia .modal-content {
    height: 100%;
    border-radius: 0;
    border: 0;
}


/* =========================================================================
   SERVICOS — TEMA ESCURO (modulo inteiro)
   Classes/telas com cor fixa no CSS/PHP que nao acompanhavam o modo noite:
   visualizar demandas, contratos, orcamento, cards totais, abas, agenda,
   dropzone, kanban de tarefas, chat, quill, inputs sem borda.
   ========================================================================= */

/* fundo das telas de visualizar (contratos/orcamento) */
.ts-theme-dark body.ts-fundoVisualizar {
    background: var(--ts-surface-2) !important;
    color: var(--ts-text);
}

/* barra lateral da demanda e painel cinza #F1F2F4 */
.ts-theme-dark .ts-divLateralModalDemanda {
    background-color: var(--ts-surface) !important;
    color: var(--ts-text);
}
.ts-theme-dark .ts-visaocli-painel,
.ts-theme-dark .ts-servicos-painel {
    background-color: var(--ts-surface-2) !important;
    color: var(--ts-text);
}

/* titulos/labels com #172B4D e cinza fixos */
.ts-theme-dark .ts-tituloPrincipalModal,
.ts-theme-dark .ts-subTitulo,
.ts-theme-dark .ts-subTitulo span {
    color: var(--ts-text) !important;
}
.ts-theme-dark .ts-label,
.ts-theme-dark .tituloEditor {
    color: var(--ts-text-2) !important;
}
.ts-theme-dark .ts-btnDescricaoEditar {
    color: var(--ts-text-2);
}

/* inputs com fundo cinza/branco fixo */
.ts-theme-dark .ts-inputSemBorda,
.ts-theme-dark .ts-selectDemandaModalVisualizar {
    background: var(--ts-surface) !important;
    color: var(--ts-text) !important;
    border-color: var(--ts-border);
    color-scheme: dark;
}

/* cards de totais (demandas/contratos/dashboard) */
.ts-theme-dark .ts-cardsTotais,
.ts-theme-dark .ts-cardsTotaisContrato {
    background-color: var(--ts-surface) !important;
    color: var(--ts-text);
}
.ts-theme-dark .ts-cardColor-active {
    background-color: var(--ts-surface-hover) !important;
    box-shadow: none;
}
.ts-theme-dark .text-gray-800 {
    color: var(--ts-text) !important;
}

/* abas (#ts-tabs e #tabs do indexTarefa) */
.ts-theme-dark .line {
    border-bottom-color: var(--ts-border);
}
.ts-theme-dark #ts-tabs .tab,
.ts-theme-dark #tabs .tab,
.ts-theme-dark #tabs .nav-link {
    background-color: var(--ts-surface-hover);
    color: var(--ts-text-2);
}
.ts-theme-dark #ts-tabs .whiteborder,
.ts-theme-dark #tabs .whiteborder,
.ts-theme-dark #tabs .nav-link.active {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-color: var(--ts-border);
    border-bottom-color: var(--ts-surface);
}
.ts-theme-dark #ts-tabs .tabContent,
.ts-theme-dark #tabs .tabContent {
    color: var(--ts-text);
}

/* editor Quill (demandas/visualizar, inserir, status) */
.ts-theme-dark .ql-toolbar.ql-snow,
.ts-theme-dark [id^="ql-toolbar"] {
    background-color: var(--ts-surface);
    border-color: var(--ts-border);
}
.ts-theme-dark .ql-container.ql-snow,
.ts-theme-dark [id^="ql-editor"] {
    background-color: var(--ts-surface);
    border-color: var(--ts-border);
    color: var(--ts-text);
}
.ts-theme-dark .ql-editor,
.ts-theme-dark .ql-editor.ql-blank::before {
    color: var(--ts-text-faint);
}
.ts-theme-dark .ql-editor { color: var(--ts-text); }
.ts-theme-dark .ts-displayDisable {
    background: var(--ts-surface-2) !important;
    color: var(--ts-text);
}
.ts-theme-dark .ql-snow .ql-stroke { stroke: var(--ts-text-2); }
.ts-theme-dark .ql-snow .ql-fill,
.ts-theme-dark .ql-snow .ql-stroke.ql-fill { fill: var(--ts-text-2); }
.ts-theme-dark .ql-snow .ql-picker { color: var(--ts-text-2); }
.ts-theme-dark .ql-snow .ql-picker-options {
    background-color: var(--ts-surface);
    border-color: var(--ts-border);
}

/* dropzone de arquivo (visaocli/tarefa e configuracao/modeloanexo) */
.ts-dropzone {
    cursor: pointer;
    min-height: 38px;
    border: 2px dashed #ced4da;
    background: #f8f9fa;
}
.ts-theme-dark .ts-dropzone {
    border-color: var(--ts-border);
    background: var(--ts-surface) !important;
    color: var(--ts-text-2);
}
.ts-theme-dark .ts-dropzone:hover,
.ts-theme-dark #dropZone:hover {
    border-color: var(--color-bg-primary) !important;
    background: var(--ts-surface-hover) !important;
}

/* kanban de tarefas (visaocli/tarefa.php) — cores de status */
.ts-kanban-ok { background-color: #d4edda; }
.ts-kanban-hoje { background-color: #cce5ff; }
.ts-kanban-atrasada { background-color: #f8d7da; }
.ts-kanban-meta { color: #666; }
.ts-kanban-valor { color: #333; font-size: 0.8rem; font-weight: 500; }
.ts-theme-dark .ts-kanban-ok { background-color: rgba(25, 135, 84, 0.28); color: var(--ts-text); }
.ts-theme-dark .ts-kanban-hoje { background-color: rgba(13, 110, 253, 0.28); color: var(--ts-text); }
.ts-theme-dark .ts-kanban-atrasada { background-color: rgba(220, 53, 69, 0.32); color: var(--ts-text); }
.ts-theme-dark .ts-kanban-meta,
.ts-theme-dark .ts-kanban-valor { color: var(--ts-text-muted) !important; }

/* agenda / fullcalendar */
.ts-theme-dark .fc-time,
.ts-theme-dark .fc-title,
.ts-theme-dark .fc-day-number {
    color: var(--ts-text) !important;
    text-decoration: none;
}
.ts-theme-dark .fc-unthemed td,
.ts-theme-dark .fc-unthemed th,
.ts-theme-dark .fc-unthemed .fc-content,
.ts-theme-dark .fc-unthemed .fc-divider,
.ts-theme-dark .fc-unthemed .fc-row,
.ts-theme-dark .fc-unthemed .fc-popover {
    border-color: var(--ts-border);
}
.ts-theme-dark .fc-unthemed .fc-today { background: var(--ts-surface-hover); }

/* chat da demanda */
.ts-theme-dark .chat-section-pequeno .chat-card-pequeno {
    background: var(--ts-surface);
    color: var(--ts-text);
    box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.4);
}
.ts-theme-dark .chat-close { color: var(--ts-text) !important; }
.ts-theme-dark .chat-section-pequeno .chat-msg-pequeno .details .user-img { color: var(--ts-text); }

/* gerartarefa: botoes outline com cinza fixo */
.ts-theme-dark .btn-outline-secondary {
    border-color: var(--ts-border);
    color: var(--ts-text-2);
}
.ts-theme-dark .btn-check:hover + .btn {
    background-color: var(--ts-surface-hover);
}

/* contador tempoatendimento (antes #13216A fixo) */
.ts-theme-dark #textocontador {
    color: var(--ts-text) !important;
}


/* =========================================================================
   FINANCEIRO — TEMA ESCURO
   Telas: dashboard, parcelas, notas, movimento, extrato, relatorios,
   cadastros, importacao e baixas. Cores semanticas (entrada/saida)
   permanecem, so o fundo/texto claro e substituido.
   ========================================================================= */

.ts-periodo-btn {
    min-width: 220px;
    text-align: left;
    background-color: #fff;
    color: #333;
}
.ts-theme-dark .ts-periodo-btn {
    background-color: var(--ts-surface) !important;
    color: var(--ts-text) !important;
}

.ts-theme-dark .btn-light {
    background-color: var(--ts-surface-hover);
    color: var(--ts-text);
    border-color: var(--ts-border);
}
.ts-theme-dark .btn-light:hover {
    background-color: var(--ts-border);
    color: var(--ts-text);
}

.ts-theme-dark .table-light > :not(caption) > * > *,
.ts-theme-dark tr.table-light > * {
    background-color: var(--ts-surface-hover) !important;
    color: var(--ts-text) !important;
}

/* valores (entrada/saida/positivo/negativo) */
.fin-valor-entrada,
.fin-valor-pos { color: #198754 !important; font-weight: 700; }
.fin-valor-saida,
.fin-valor-neg { color: #dc3545 !important; font-weight: 700; }
.fin-valor-custo { color: #c9a227 !important; font-weight: 700; }
.fin-valor-lucro { color: #6f42c1 !important; font-weight: 700; }
.fin-valor-resultado { color: #0d6efd !important; font-weight: 700; }
.ts-theme-dark .fin-valor-entrada,
.ts-theme-dark .fin-valor-pos { color: #81c995 !important; }
.ts-theme-dark .fin-valor-saida,
.ts-theme-dark .fin-valor-neg { color: #f28b82 !important; }
.ts-theme-dark .fin-valor-custo { color: #f0c75e !important; }
.ts-theme-dark .fin-valor-lucro { color: #d0bfff !important; }
.ts-theme-dark .fin-valor-resultado { color: #6ea8fe !important; }

.ts-situacao-aberto-hoje,
.ts-situacao-paga,
.ts-situacao-atrasada,
.ts-situacao-aberto {
    display: inline-block;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit !important;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    white-space: nowrap;
}
.ts-situacao-aberto-hoje {
    background: #f6d06a;
}
.ts-situacao-paga {
    background: #cde688;
}
.ts-situacao-atrasada {
    background: #fde2e6;
}
.ts-situacao-aberto {
    background: #eee4c6;
}
.ts-theme-dark .ts-situacao-aberto-hoje {
    background: #e4b84a;
}
.ts-theme-dark .ts-situacao-paga {
    background: #9ccc65;
}
.ts-theme-dark .ts-situacao-atrasada {
    background: #e8a0ad;
}
.ts-theme-dark .ts-situacao-aberto {
    background: #c9b888;
}

.fin-icon-conciliado { color: #0d6efd; font-weight: bold; }
.ts-theme-dark .fin-icon-conciliado { color: #8ab4f8; }

.fin-linha-resumo { background-color: #f9f9f9; }
.fin-texto-resumo { color: #000; font-weight: bold; text-align: right; }
.ts-theme-dark .fin-linha-resumo > * {
    background-color: var(--ts-surface-hover) !important;
    color: var(--ts-text);
}
.ts-theme-dark .fin-texto-resumo { color: var(--ts-text) !important; }

.fin-diff {
    font-weight: bold;
    font-size: 0.85em;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}
.fin-diff-pos { background-color: #f3e5f5; color: #7b1fa2; }
.fin-diff-neg { background-color: #fff3e0; color: #e65100; }
.ts-theme-dark .fin-diff-pos { background-color: rgba(123, 31, 162, 0.28); color: #ce93d8; }
.ts-theme-dark .fin-diff-neg { background-color: rgba(230, 81, 0, 0.28); color: #ffb74d; }

.fin-campo-readonly,
select.fin-campo-readonly,
.form-select.fin-campo-readonly,
.form-control.fin-campo-readonly,
[data-fin-readonly="1"] {
    background-color: #e9ecef !important;
    pointer-events: none;
}
.ts-theme-dark .fin-campo-readonly,
.ts-theme-dark select.fin-campo-readonly,
.ts-theme-dark .form-select.fin-campo-readonly,
.ts-theme-dark .form-control.fin-campo-readonly,
.ts-theme-dark [data-fin-readonly="1"] {
    background-color: var(--ts-surface-2) !important;
    color: var(--ts-text-2) !important;
    border-color: var(--ts-border);
}

.fin-card-default { background-color: #f8f9fa; border-left: 4px solid #0d6efd; }
.fin-card-conciliar { background-color: #d1e7dd; border-left: 4px solid #198754; }
.fin-card-gerar { background-color: #fff3cd; border-left: 4px solid #ffc107; }
.fin-card-selecionar { background-color: #cff4fc; border-left: 4px solid #0dcaf0; }
.ts-theme-dark .fin-card-default { background-color: var(--ts-surface) !important; }
.ts-theme-dark .fin-card-conciliar { background-color: rgba(25, 135, 84, 0.22) !important; color: var(--ts-text); }
.ts-theme-dark .fin-card-gerar { background-color: rgba(255, 193, 7, 0.18) !important; color: var(--ts-text); }
.ts-theme-dark .fin-card-selecionar { background-color: rgba(13, 202, 240, 0.18) !important; color: var(--ts-text); }
.ts-theme-dark .card-extrato-item,
.ts-theme-dark .gera-parcela-baixa { color: var(--ts-text); }
.ts-theme-dark .card-extrato-item strong,
.ts-theme-dark .gera-parcela-baixa strong { color: var(--ts-text); }

.fin-linha-ok { background-color: #d4edda; }
.fin-linha-parcial { background-color: #d9edf7; }
.ts-theme-dark .fin-linha-ok > * { background-color: rgba(25, 135, 84, 0.22) !important; color: var(--ts-text); }
.ts-theme-dark .fin-linha-parcial > * { background-color: rgba(13, 110, 253, 0.18) !important; color: var(--ts-text); }

/* dashboard */
.ts-theme-dark .dash-card {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}
.ts-theme-dark .dash-card .dash-label,
.ts-theme-dark .dash-card .dash-qtd,
.ts-theme-dark .dash-tabela th { color: var(--ts-text-muted); }
.ts-theme-dark .dash-tabela { background: var(--ts-surface); }
.ts-theme-dark .dash-totais-fixo,
.ts-theme-dark .dash-totais-fixo td {
    background: var(--ts-surface) !important;
    color: var(--ts-text);
    border-color: var(--ts-border);
}
.ts-theme-dark #dashOrigemIframe { background: var(--ts-surface-2); }
.ts-theme-dark .dash-receber,
.ts-theme-dark .dash-secao.dash-receber,
.ts-theme-dark .dash-tabela th.dash-receber,
.ts-theme-dark .dash-tabela td.dash-receber,
.ts-theme-dark .dash-totais-fixo td.dash-receber { color: #8ab4f8; }
.ts-theme-dark .dash-pagar,
.ts-theme-dark .dash-secao.dash-pagar,
.ts-theme-dark .dash-tabela th.dash-pagar,
.ts-theme-dark .dash-tabela td.dash-pagar,
.ts-theme-dark .dash-totais-fixo td.dash-pagar { color: #f28b82; }
.ts-theme-dark .dash-saldo-pos,
.ts-theme-dark .dash-tabela td.dash-saldo-pos,
.ts-theme-dark .dash-totais-fixo td.dash-saldo-pos { color: #81c995; }
.ts-theme-dark .dash-saldo-neg,
.ts-theme-dark .dash-tabela td.dash-saldo-neg,
.ts-theme-dark .dash-totais-fixo td.dash-saldo-neg { color: #ffb74d; }

/* campos valor de nota/parcela (fundo cinza/branco fixo) */
.ts-theme-dark .campoNotaValor { background: var(--ts-surface-2) !important; }
.ts-theme-dark .campoNotaValor.campoNotaValor--habilitado { background: var(--ts-surface) !important; }
.ts-theme-dark .campoDesabilitadoCinza input { background: var(--ts-surface-2) !important; color: var(--ts-text-2); }
