/* =====================================================================
   CondoGestor — tema visual
   Paleta: índigo (primária) + grafite (menu) + azul-celeste (positivo)
   Para trocar a cor do sistema, altere apenas as variáveis abaixo.
   ===================================================================== */
:root, [data-bs-theme="light"] {
  --cor-primaria: #4f46e5;
  --cor-primaria-escura: #4338ca;
  --cor-primaria-rgb: 79, 70, 229;
  --cor-destaque: #eef2ff;          /* fundo suave de títulos/realces */
  --cor-hover-linha: #f1f5ff;
  --topo-bg: linear-gradient(90deg, #4338ca 0%, #6366f1 100%);
  --menu-bg: #111827;
  --menu-sub-bg: #0b111d;
  --menu-hover: #1f2937;
  --menu-texto: #d1d5db;
  --menu-icone: #9ca3af;
  --menu-borda: rgba(255, 255, 255, .06);
  --menu-largura: 250px;
  --topo-altura: 54px;
  --borda-suave: #e2e8f0;
  --sombra: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .05);

  /* Bootstrap: primária e "sucesso" sem verde */
  --bs-primary: #4f46e5; --bs-primary-rgb: 79, 70, 229;
  --bs-primary-text-emphasis: #3730a3; --bs-primary-bg-subtle: #e0e7ff; --bs-primary-border-subtle: #c7d2fe;
  --bs-success: #0369a1; --bs-success-rgb: 3, 105, 161;
  --bs-success-text-emphasis: #075985; --bs-success-bg-subtle: #e0f2fe; --bs-success-border-subtle: #bae6fd;
  --bs-link-color: #4f46e5; --bs-link-color-rgb: 79, 70, 229;
  --bs-link-hover-color: #3730a3; --bs-link-hover-color-rgb: 55, 48, 163;
  --bs-body-bg-app: #f1f5f9;
  --fundo-liquidada: #ecfdf3;
  --borda-liquidada: #34d399;
}
[data-bs-theme="dark"] {
  --cor-primaria: #6366f1;
  --cor-primaria-escura: #4f46e5;
  --cor-primaria-rgb: 99, 102, 241;
  --cor-destaque: #1e1b4b;
  --cor-hover-linha: #1c1f3a;
  --topo-bg: linear-gradient(90deg, #312e81 0%, #4338ca 100%);
  --menu-bg: #0b0f19;
  --menu-sub-bg: #070a12;
  --menu-hover: #161b2a;
  --borda-suave: #2b3240;
  --sombra: none;
  --bs-primary: #6366f1; --bs-primary-rgb: 99, 102, 241;
  --bs-primary-text-emphasis: #c7d2fe; --bs-primary-bg-subtle: #1e1b4b; --bs-primary-border-subtle: #3730a3;
  --bs-success: #38bdf8; --bs-success-rgb: 56, 189, 248;
  --bs-success-text-emphasis: #7dd3fc; --bs-success-bg-subtle: #082f49; --bs-success-border-subtle: #075985;
  --bs-link-color: #a5b4fc; --bs-link-color-rgb: 165, 180, 252;
  --bs-link-hover-color: #c7d2fe; --bs-link-hover-color-rgb: 199, 210, 254;
  --bs-body-bg-app: #0f141f;
  --fundo-liquidada: #0f2a1f;
  --borda-liquidada: #10b981;
}

body { font-size: .875rem; background: var(--bs-body-bg-app); }
.bg-destaque { background: var(--cor-destaque) !important; }
a { text-decoration: none; }

/* ---------- Botões e controles ---------- */
.btn-primary {
  --bs-btn-bg: var(--cor-primaria); --bs-btn-border-color: var(--cor-primaria);
  --bs-btn-hover-bg: var(--cor-primaria-escura); --bs-btn-hover-border-color: var(--cor-primaria-escura);
  --bs-btn-active-bg: var(--cor-primaria-escura); --bs-btn-active-border-color: var(--cor-primaria-escura);
  --bs-btn-disabled-bg: var(--cor-primaria); --bs-btn-disabled-border-color: var(--cor-primaria);
  --bs-btn-focus-shadow-rgb: var(--cor-primaria-rgb);
}
.btn-outline-primary {
  --bs-btn-color: var(--cor-primaria); --bs-btn-border-color: var(--cor-primaria);
  --bs-btn-hover-bg: var(--cor-primaria); --bs-btn-hover-border-color: var(--cor-primaria);
  --bs-btn-active-bg: var(--cor-primaria-escura); --bs-btn-active-border-color: var(--cor-primaria-escura);
  --bs-btn-focus-shadow-rgb: var(--cor-primaria-rgb);
}
.btn-outline-secondary { --bs-btn-color: var(--bs-body-color); --bs-btn-border-color: var(--borda-suave); --bs-btn-bg: var(--bs-body-bg);
  --bs-btn-hover-bg: var(--cor-destaque); --bs-btn-hover-color: var(--bs-primary-text-emphasis); --bs-btn-hover-border-color: var(--bs-primary-border-subtle);
  --bs-btn-active-bg: var(--bs-primary-bg-subtle); --bs-btn-active-color: var(--bs-primary-text-emphasis); }
.btn { border-radius: .45rem; }
.form-check-input:checked { background-color: var(--cor-primaria); border-color: var(--cor-primaria); }
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: rgba(var(--cor-primaria-rgb), .55); box-shadow: 0 0 0 .2rem rgba(var(--cor-primaria-rgb), .18); }
.form-control, .form-select { border-color: var(--borda-suave); border-radius: .45rem; }
.page-link { color: var(--cor-primaria); }
.list-group-item.active, .dropdown-item:active, .nav-pills .nav-link.active { background-color: var(--cor-primaria); border-color: var(--cor-primaria); }
.progress-bar { background-color: var(--cor-primaria); }
.form-label { margin-bottom: .2rem; font-size: .82rem; font-weight: 500; }

/* ---------- Topo ---------- */
.topo { background: var(--topo-bg); height: var(--topo-altura); position: sticky; top: 0; z-index: 1030;
  box-shadow: 0 2px 6px rgba(15, 23, 42, .18); }
.topo a:hover { text-decoration: none; opacity: .9; }

/* ---------- Menu lateral ----------
   O Bootstrap deixa .offcanvas-lg transparente em telas grandes; forçamos o fundo escuro
   para o menu ficar sempre legível (antes só aparecia ao passar o mouse). */
.menu-lateral, .menu-lateral.offcanvas-lg { background-color: var(--menu-bg) !important; }
.menu-lateral { --bs-offcanvas-width: 280px; --bs-offcanvas-bg: var(--menu-bg); width: var(--menu-largura);
  min-height: calc(100vh - var(--topo-altura)); flex-shrink: 0; }
@media (min-width: 992px) {
  .menu-lateral { position: sticky; top: var(--topo-altura); height: calc(100vh - var(--topo-altura)); }
}
.menu-scroll { overflow-y: auto; height: 100%; padding: .4rem 0 2rem; scrollbar-width: thin; scrollbar-color: #374151 transparent; }
.menu-item { display: flex; align-items: center; gap: .65rem; color: var(--menu-texto); padding: .62rem 1rem;
  text-decoration: none; border-bottom: 1px solid var(--menu-borda); font-size: .9rem; font-weight: 500; }
.menu-item > i:first-child { color: var(--menu-icone); font-size: 1.05rem; width: 1.2rem; text-align: center; }
.menu-item .bi-chevron-down { font-size: .75rem; transition: transform .2s; color: var(--menu-icone); }
.menu-item[aria-expanded="true"] .bi-chevron-down { transform: rotate(180deg); }
.menu-item[aria-expanded="true"] { color: #fff; background: var(--menu-hover); }
.menu-item:hover { background: var(--menu-hover); color: #fff; text-decoration: none; }
.menu-item:hover > i:first-child { color: #fff; }
.menu-item.ativo { background: var(--cor-primaria); color: #fff; }
.menu-item.ativo > i:first-child { color: #fff; }
.submenu { background: var(--menu-sub-bg); }
.submenu a { display: flex; align-items: center; gap: .55rem; color: var(--menu-texto); padding: .5rem 1rem .5rem 1.9rem;
  text-decoration: none; font-size: .85rem; border-left: 3px solid transparent; }
.submenu a i { color: var(--menu-icone); }
.submenu a.n2 { padding-left: 2.7rem; }
.submenu a:hover { background: var(--menu-hover); color: #fff; text-decoration: none; }
.submenu a.ativo { background: rgba(var(--cor-primaria-rgb), .22); color: #fff; border-left-color: #818cf8; }
.submenu a.ativo i, .submenu a:hover i { color: #c7d2fe; }
.sub-titulo { display: block; color: #6b7280; font-size: .7rem; padding: .55rem 1.9rem .2rem; text-transform: uppercase;
  letter-spacing: .05em; font-weight: 600; }

/* ---------- Conteúdo ---------- */
.conteudo { min-width: 0; }
.card-secao { border: 1px solid var(--borda-suave); border-radius: .6rem; background: var(--bs-body-bg); margin-bottom: 1rem;
  box-shadow: var(--sombra); }
.card-secao > .cab { background: var(--cor-destaque); color: var(--bs-primary-text-emphasis); font-weight: 600;
  padding: .55rem .95rem; border-radius: .6rem .6rem 0 0; border-bottom: 1px solid var(--borda-suave); cursor: pointer; }
.card-secao > .corpo { padding: .95rem; }
.barra-acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin-bottom: .75rem; }
.barra-acoes .btn { font-size: .8rem; }
.filtros, .resumo { background: var(--bs-body-bg); border: 1px solid var(--borda-suave); border-radius: .6rem;
  padding: .65rem; margin-bottom: .65rem; box-shadow: var(--sombra); }
.filtros .form-select, .filtros .form-control { font-size: .8rem; }
.filtros .filtro-ativo, .filtros .filtro-ativo + .ts-wrapper .ts-control {
  border-color: rgba(var(--cor-primaria-rgb), .6) !important; background-color: var(--cor-destaque) !important; }
.resumo { display: flex; flex-wrap: wrap; justify-content: space-around; gap: .5rem; font-size: .95rem; }
.resumo small { color: var(--bs-secondary-color); }
.kpi { background: var(--bs-body-bg); border: 1px solid var(--borda-suave); border-radius: .6rem; padding: .95rem; height: 100%;
  box-shadow: var(--sombra); }
.kpi .valor { font-size: 1.35rem; font-weight: 600; }
.nav-mes { display: flex; align-items: center; gap: .25rem; }
.nav-mes .rotulo { min-width: 140px; text-align: center; }
.linha-grupo td { background: var(--cor-destaque) !important; font-weight: 600; }
.ajuda { font-size: .8rem; }
.selecionados-barra { position: sticky; bottom: 0; z-index: 3; }
.icones i { margin-right: 3px; }

/* ---------- Tabelas de listagem ---------- */
.tabela { background: var(--bs-body-bg); font-size: .875rem; margin-bottom: .5rem; }
.tabela > :not(caption) > * > * { padding: .6rem .55rem; border-bottom-color: var(--borda-suave); }
.tabela thead th { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); font-weight: 600; font-size: .8rem;
  white-space: nowrap; border-bottom: 2px solid var(--borda-suave); }
.tabela td.num, .tabela th.num { text-align: right; white-space: nowrap; }
/* Caixa com rolagem própria: o cabeçalho fica fixo no topo da caixa sem cobrir a 1ª linha */
.tabela-rolagem { overflow: auto; border: 1px solid var(--borda-suave); border-radius: .6rem; background: var(--bs-body-bg);
  box-shadow: var(--sombra); margin-bottom: .5rem; }
.tabela-rolagem .tabela { margin-bottom: 0; }
.tabela-rolagem .tabela thead th { position: sticky; top: 0; z-index: 2; }
@media (min-width: 992px) { .tabela-rolagem { max-height: calc(100vh - 150px); } }
/* Linha inteira clicável */
.tabela tbody tr[data-href] { cursor: pointer; }
.tabela tbody tr[data-href]:hover > * { background-color: var(--cor-hover-linha) !important; }
.tabela tbody tr.selecionada > * { background-color: var(--bs-primary-bg-subtle) !important; }
/* Liquidadas: linha inteira com fundo verde suave (pedido do usuário) */
.tabela tr.status-liquidada > * { background-color: var(--fundo-liquidada) !important; }
.tabela tr.status-liquidada td:first-child { box-shadow: inset 3px 0 0 var(--borda-liquidada); }
.tabela tr.status-vencida td:first-child { box-shadow: inset 3px 0 0 var(--bs-danger); }
.tabela tr.status-cancelada { opacity: .55; text-decoration: line-through; }

/* ---------- Select com busca (Tom Select) ---------- */
.ts-wrapper.form-select, .ts-wrapper.form-control { padding: 0 !important; border: 0 !important; background: none !important;
  box-shadow: none !important; min-height: 0; }
.ts-wrapper .ts-control { border: 1px solid var(--borda-suave); border-radius: .45rem; background-color: var(--bs-body-bg);
  color: var(--bs-body-color); padding: .375rem 2rem .375rem .75rem; min-height: calc(1.5em + .75rem + 2px); }
.ts-wrapper.form-select-sm .ts-control, .filtros .ts-wrapper .ts-control { padding: .25rem 1.8rem .25rem .5rem;
  min-height: calc(1.5em + .5rem + 2px); font-size: .8rem; }
.ts-wrapper.focus .ts-control { border-color: rgba(var(--cor-primaria-rgb), .55); box-shadow: 0 0 0 .2rem rgba(var(--cor-primaria-rgb), .18); }
.ts-wrapper .ts-control input { color: var(--bs-body-color); }
.ts-dropdown { background: var(--bs-body-bg); color: var(--bs-body-color); border-color: var(--borda-suave); border-radius: .45rem;
  z-index: 1060; font-size: .85rem; }
.ts-dropdown .active { background: var(--cor-destaque); color: var(--bs-primary-text-emphasis); }
.ts-dropdown .option, .ts-dropdown .no-results { padding: .4rem .65rem; }

/* ---------- Telas pequenas ---------- */
@media (max-width: 991.98px) {
  .conteudo { padding: .75rem !important; }
  .barra-acoes { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding-bottom: .25rem; }
  .barra-acoes > * { flex-shrink: 0; }
  .resumo { font-size: .85rem; justify-content: flex-start; }
}

@media print {
  .topo, .menu-lateral, .no-print, .barra-acoes, .filtros, .alert { display: none !important; }
  body { background: #fff; font-size: 10pt; }
  .conteudo { padding: 0 !important; }
  .tabela-rolagem { max-height: none !important; overflow: visible; border: 0; box-shadow: none; }
}

/* ---------- Planilha na tela (Jspreadsheet) — importações em lote ---------- */
.planilha-cg { width: 100%; }
.planilha-cg .jexcel_container { width: 100%; display: block; padding-right: 0; }
.planilha-cg .jexcel_content { border: 1px solid var(--borda-suave); border-radius: .5rem; background: var(--bs-body-bg);
  box-shadow: var(--sombra); padding: 0; scrollbar-width: thin; }
.planilha-cg .jexcel { font-size: .85rem; border-collapse: separate; border-spacing: 0; border: 0; width: 100%; }
.planilha-cg .jexcel > thead > tr > td { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); font-weight: 600;
  border-color: var(--borda-suave); padding: 6px 4px; }
.planilha-cg .jexcel > thead > tr > td.selected { background: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); }
.planilha-cg .jexcel > tbody > tr > td { border-color: var(--borda-suave); background-color: var(--bs-body-bg);
  color: var(--bs-body-color); padding: 4px 6px; height: 30px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.planilha-cg .jexcel > tbody > tr > td:first-child { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color);
  font-size: .78rem; }
.planilha-cg .jexcel > tbody > tr.selected > td:first-child { background: var(--bs-primary-bg-subtle); }
.planilha-cg .jexcel > tbody > tr > td.highlight { background-color: rgba(var(--cor-primaria-rgb), .08); }
.planilha-cg .jexcel .highlight-top { border-top: 1px solid var(--cor-primaria); box-shadow: 0 -1px var(--cor-primaria); }
.planilha-cg .jexcel .highlight-left { border-left: 1px solid var(--cor-primaria); box-shadow: -1px 0 var(--cor-primaria); }
.planilha-cg .jexcel .highlight-right { border-right: 1px solid var(--cor-primaria); }
.planilha-cg .jexcel .highlight-bottom { border-bottom: 1px solid var(--cor-primaria); }
.planilha-cg .jexcel_corner { background-color: var(--cor-primaria); }
.planilha-cg .jexcel > tbody > tr > td.readonly { color: var(--bs-danger); font-size: .78rem; white-space: normal; }
.planilha-cg .jexcel > tbody > tr > td.pl-invalida { background-color: rgba(220, 53, 69, .14) !important; color: var(--bs-danger); }
.planilha-cg .jexcel > tbody > tr.pl-linha-erro > td { background-color: rgba(220, 53, 69, .10); }
.planilha-cg .jexcel > tbody > tr.pl-linha-erro > td:first-child { background: var(--bs-danger); color: #fff; }
.planilha-cg .jexcel > tbody > tr > td.jexcel_dropdown { background-position: right 4px center; }
.planilha-cg .jexcel > tbody > tr > td > input, .planilha-cg .jexcel > tbody > tr > td > textarea { font: inherit; }
.jexcel_contextmenu, .jcontextmenu { z-index: 2000; font-size: .85rem; }
.jdropdown-container { z-index: 2000; }
[data-bs-theme="dark"] .planilha-cg .jexcel > tbody > tr > td.jexcel_dropdown { filter: none; }
[data-bs-theme="dark"] .jdropdown-container, [data-bs-theme="dark"] .jdropdown-content,
[data-bs-theme="dark"] .jcontextmenu { background: var(--bs-body-bg); color: var(--bs-body-color); }
[data-bs-theme="dark"] .jdropdown-item { color: var(--bs-body-color); }
[data-bs-theme="dark"] .jdropdown-cursor { background: var(--cor-destaque) !important; }
/* Área de "arrastar para preencher": linha vermelha (como no Condomob) mostra até onde o valor será copiado */
.planilha-cg .jexcel > tbody > tr > td.selection { background-color: rgba(225, 29, 72, .05) !important; }
.planilha-cg .jexcel > tbody > tr > td.selection-top { border-top: 1px solid #e11d48 !important; }
.planilha-cg .jexcel > tbody > tr > td.selection-bottom { border-bottom: 1px solid #e11d48 !important; }
.planilha-cg .jexcel > tbody > tr > td.selection-left { border-left: 1px solid #e11d48 !important; }
.planilha-cg .jexcel > tbody > tr > td.selection-right { border-right: 1px solid #e11d48 !important; }
