/* Revisão visual horizontal da V1.1. Sem alterações nas regras de negócio. */
body:not(.login-page){
  --fundo:#f6f9f7;
  --texto:#173229;
  --cinza:#60756b;
  --borda:#dce8e0;
  --verde:#14784d;
  --azul:#173229;
  --azul2:#14784d;
  --sombra-leve:0 5px 18px rgba(22,60,38,.04);
  background:#f6f9f7;
}

body:not(.login-page) .topo{
  height:62px;
  padding:0 max(22px,calc((100vw - 1440px)/2));
  background:#fff;
  box-shadow:none;
}
body:not(.login-page) .topo>div{font-size:16px;letter-spacing:-.02em}
body:not(.login-page) .ambiente{font-size:10px;letter-spacing:.04em}
body:not(.login-page) main{width:min(1440px,calc(100% - 44px));margin:0 auto 60px}

/* Menu horizontal: conserva toda a largura para as tabelas. */
#appView .barra{
  position:sticky;
  top:62px;
  z-index:45;
  display:flex;
  align-items:center;
  gap:16px;
  min-height:58px;
  margin:0 0 26px;
  padding:7px 0;
  border:0;
  border-bottom:1px solid var(--borda);
  border-radius:0;
  background:rgba(246,249,247,.96);
  box-shadow:none;
  backdrop-filter:blur(14px);
}
#appView .barra>div:first-child{display:flex;align-items:center;flex:none;min-width:120px}
#appView .barra small{display:none}
#appView .barra h1{margin:0;color:#3d594a;font-size:12px;font-weight:800;letter-spacing:.01em;white-space:nowrap}
#appView .acoes-topo{display:flex;flex:1;min-width:0;flex-wrap:nowrap;justify-content:flex-start;gap:3px;overflow-x:auto;padding:3px 1px;scrollbar-width:thin}
#appView .acoes-topo button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:none;
  height:37px;
  min-height:37px;
  padding:0 11px;
  border:0;
  border-radius:9px;
  background:transparent;
  box-shadow:none;
  color:#526b5b;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
  transform:none;
}
#appView .acoes-topo button:hover{background:#edf6f0;color:#12643f;transform:none}
#appView .acoes-topo button[id^="ir"].oculto{display:inline-flex!important}
#appView:has(#dashboardView:not(.oculto)) #irDashboard,
#appView:has(#relatoriosView:not(.oculto)) #irRelatorios,
#appView:has(#gestaoMensalidadesView:not(.oculto)) #irMensalidades,
#appView:has(#cadastrosView:not(.oculto) #cadClientesConteudo:not(.oculto)) #irCadastros,
#appView:has(#cadastrosView:not(.oculto) #cadCadastroConteudo:not(.oculto)) #irCadastro,
#appView:has(#cadastrosView:not(.oculto) #cadContratoPainel:not(.oculto)) #irContratos,
#appView:has(#cadastrosView:not(.oculto) #cadVinculosPainel:not(.oculto)) #irVinculos,
#appView:has(#gastosView:not(.oculto)) #irGastos,
#appView:has(#dadosView:not(.oculto)) #irDados{
  background:#e6f6ed;
  color:#11613f;
}
#appView .acoes-topo #sair{margin-left:auto;color:#65746a}
#appView .acoes-topo #sair:hover{background:#fcebec;color:#a82e3a}
#appView .acoes-topo #previewCliente.oculto{display:none!important}

/* Títulos, cartões e indicadores. */
#appView .painel-boas-vindas,
#appView .cabecalho-secao{gap:18px}
#appView .painel-boas-vindas h2,
#appView .cabecalho-secao h2{color:#173229;font-size:clamp(25px,2.8vw,34px);letter-spacing:-.045em;line-height:1.12}
#appView .painel-boas-vindas p,
#appView .cabecalho-secao p{color:var(--cinza);font-size:14px}
#appView .dashboard-view,
#appView .relatorios-view,
#appView .gestao-mensalidades{gap:20px}
#appView .cards-dashboard{gap:12px}
#appView .cards-dashboard .card-indicador,
#appView .cards-relatorios article,
#appView .cards-mensalidades article{
  min-height:112px;
  padding:17px 18px;
  border:1px solid var(--borda);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--sombra-leve);
}
#appView .cards-dashboard .card-indicador:before,
#appView .cards-relatorios article:before,
#appView .cards-mensalidades article:before{top:0;right:0;bottom:auto;left:0;width:auto;height:3px}
#appView .card-indicador span,
#appView .cards-relatorios span,
#appView .cards-mensalidades span{color:#60756b;font-size:12px;margin-bottom:10px}
#appView .card-indicador strong,
#appView .cards-relatorios strong,
#appView .cards-mensalidades strong{color:#173229;font-size:clamp(20px,2.1vw,27px);font-variant-numeric:tabular-nums;letter-spacing:-.035em}
#appView .card-indicador small{font-size:11px}
#appView .card-indicador.verde strong,
#appView .cards-relatorios .rel-verde strong,
#appView .cards-mensalidades .gm-verde strong{color:#087549}
#appView .card-indicador.amarelo strong,
#appView .cards-relatorios .rel-amarelo strong,
#appView .cards-mensalidades .gm-amarelo strong{color:#9e670c}
#appView .card-indicador.vermelho strong,
#appView .cards-relatorios .rel-vermelho strong,
#appView .cards-mensalidades .gm-vermelho strong{color:#b5323e}
#appView .cards-relatorios{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
#appView .cards-mensalidades{gap:12px}

/* Comparativo anual com os doze meses na mesma tabela. */
#appView .comparativo-painel{grid-column:1/-1;min-width:0}
#appView .comparativo-painel .titulo-relatorio{align-items:center;gap:18px}
#appView .comparativo-controles{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
#appView .comparativo-controles label{font-size:12px;font-weight:700;color:#526b5b}
#appView .comparativo-controles input{width:92px;height:38px;border:1px solid var(--borda);border-radius:9px;padding:0 10px;background:#fff}
#appView .comparativo-controles button{height:38px}
#appView .comparativo-status{color:var(--cinza);font-size:12px;margin:12px 0}
#appView .comparativo-resumo-anual{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}
#appView .comparativo-resumo-anual>div{background:#f1f8f3;border:1px solid var(--borda);border-radius:12px;padding:14px;min-width:0}
#appView .comparativo-resumo-anual span{display:block;color:var(--cinza);font-size:11px;margin-bottom:7px}
#appView .comparativo-resumo-anual strong{font-size:18px;color:#14784d;white-space:nowrap}
#appView .comparativo-tabela-container{overflow-x:auto}
#appView .comparativo-tabela{min-width:900px;width:100%;font-variant-numeric:tabular-nums}
#appView .comparativo-tabela th:first-child{min-width:105px}
#appView .comparativo-tabela td,#appView .comparativo-tabela th{white-space:nowrap}
#appView .comparativo-tabela td.valor-positivo{font-weight:800;color:#14784d}

/* Painéis, campos e ações compartilhados pelas outras telas. */
#appView .clientes-painel,
#appView .mensalidades-painel,
#appView .painel-relatorio,
#appView .dados-card,
#appView .consulta,
#appView .gastos-view article{
  border:1px solid var(--borda);
  border-radius:15px;
  background:#fff;
  box-shadow:var(--sombra-leve);
}
#appView .clientes-painel,
#appView .mensalidades-painel,
#appView .painel-relatorio,
#appView .dados-card{padding:20px}
#appView .clientes-cabecalho h2,
#appView .titulo-relatorio h2,
#appView .mensalidades-painel h2,
#appView .dados-card h2{color:#173229;font-size:20px;letter-spacing:-.03em}
#appView .filtros-dashboard,
#appView .filtros-mensalidades,
#appView .filtros-auditoria{padding:0;margin:18px 0 16px;gap:10px}
#appView label{color:#40584a}
#appView input:not([type="checkbox"]):not([type="radio"]),
#appView select,
#appView textarea{
  border-color:#cdded3;
  border-radius:9px;
  background:#fff;
  color:#263e31;
}
#appView input::placeholder{color:#82958a}
#appView input:focus,
#appView select:focus,
#appView textarea:focus{border-color:#14784d;box-shadow:0 0 0 3px rgba(20,120,77,.15)}
#appView button:not(.app-lembrar):not(.modal-vinculo-fechar){border-radius:9px}
#appView .secundario{border:1px solid #cdded3;background:#fff;color:#24513a;box-shadow:none}
#appView .secundario:hover{border-color:#14784d;background:#f0faf4;color:#12643f}
#appView button:not(.secundario):not(.botao-perigo):not(.perigo):not(.app-lembrar):not(.modal-vinculo-fechar){background:#14784d;color:#fff}
#appView button:not(.secundario):not(.botao-perigo):not(.perigo):not(.app-lembrar):not(.modal-vinculo-fechar):hover{background:#0d5d3a}
#appView .acoes-topo button:not(.secundario){background:transparent;color:#526b5b}
#appView .acoes-topo button[id^="ir"].oculto{background:#e6f6ed;color:#11613f}
#appView .acoes-topo #sair{background:transparent;color:#65746a}
#appView .acoes-topo #sair:hover{background:#fcebec;color:#a82e3a}

/* Tabelas e estados. */
#appView .tabela-container{border:1px solid var(--borda);border-radius:12px;overflow:auto}
#appView .tabela-clientes th{padding:12px 13px;background:#f7faf8;color:#60756b;font-size:10px;letter-spacing:.07em}
#appView .tabela-clientes td{padding:12px 13px;border-top:1px solid #e5eee8;color:#263e31;font-size:12px}
#appView .tabela-clientes tr:hover td{background:#f9fcfa}
#appView .tabela-clientes td strong{font-weight:750}
#appView .tabela-clientes td small{color:#698074}
#appView .badge-situacao{font-size:10px;letter-spacing:.01em}
#appView .badge-situacao.regular,
#appView .badge-situacao.paga{background:#e6f7ed;color:#087549}
#appView .badge-situacao.pendente{background:#fff4de;color:#976112}
#appView .badge-situacao.vencida,
#appView .badge-situacao.bloqueado{background:#ffe9ea;color:#ac313c}
#appView .acoes-linha{gap:6px}
#appView .acoes-linha button,
#appView .abrir-central{min-height:34px;font-size:11px}
#appView .avatar-cliente{border-radius:10px;background:#e6f6ed;color:#11613f}

/* Formulários, importações e diálogos. */
#appView .dados-grid,
#appView .cadastros-grid{gap:16px}
#appView .dados-card-cabecalho,
#appView .solicitacoes-cabecalho{gap:12px}
#appView .solicitacoes-cadastro{background:#f9fcfa;border-color:var(--borda)}
#appView .modal-financeiro,
#appView .modal-vinculo-card{border:1px solid var(--borda);border-radius:18px;box-shadow:0 24px 72px rgba(13,45,29,.18)}
#appView .modal-overlay,
#appView .modal-vinculo-fundo{background:rgba(8,32,20,.58)}
#appView .resumo-competencia>div,
#appView .lista-resumo>div{background:#f6faf7}
#appView .bar-track{background:#e8f1eb}

@media(max-width:1180px){
  #appView .comparativo-resumo-anual{grid-template-columns:repeat(3,minmax(0,1fr))}
  #appView .cards-dashboard{grid-template-columns:repeat(3,minmax(0,1fr))}
  #appView .cards-relatorios{grid-template-columns:repeat(3,minmax(0,1fr))}
  #appView .barra>div:first-child{min-width:100px}
}
@media(max-width:850px){
  body:not(.login-page) main{width:calc(100% - 28px)}
  #appView .barra{position:sticky;top:58px;display:block;padding:7px 0}
  #appView .barra>div:first-child{display:none}
  #appView .acoes-topo{width:100%}
  #appView .cards-dashboard,
  #appView .cards-relatorios,
  #appView .cards-mensalidades{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  #appView .comparativo-resumo-anual{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not(.login-page) main{width:calc(100% - 20px)}
  #appView .cards-dashboard,
  #appView .cards-relatorios,
  #appView .cards-mensalidades{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  #appView .cards-dashboard .card-indicador,
  #appView .cards-relatorios article,
  #appView .cards-mensalidades article{padding:13px;min-height:100px}
  #appView .card-indicador strong,
  #appView .cards-relatorios strong,
  #appView .cards-mensalidades strong{font-size:19px;overflow-wrap:anywhere}
  #appView .clientes-painel,
  #appView .mensalidades-painel,
  #appView .painel-relatorio,
  #appView .dados-card{padding:15px}
}
