*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f4f7fa;color:#092d4d}.topbar{background:#103b61;color:#fff;padding:24px 30px;display:flex;justify-content:space-between}.brand{font-size:32px;font-weight:700}.subtitle{margin-top:4px}.local-pill{background:#315b7e;padding:12px 20px;border-radius:24px}.version{text-align:right;margin-top:6px}.tabs{display:flex;gap:8px;padding:12px 22px;background:#fff;border-bottom:1px solid #ccd8e2;flex-wrap:wrap}.tab,button{border:0;border-radius:10px;padding:12px 18px;font-size:16px;cursor:pointer}.tab{background:#e7eef5}.tab.active,.primary{background:#1676b8;color:#fff}.secondary{background:#e7eef5;color:#092d4d}.danger{background:#f8d9d9;color:#a71919}.login-bar{padding:10px 22px;background:#eaf3f9;display:flex;gap:10px;align-items:center}.login-bar select{max-width:260px}main{padding:22px}.panel{display:none}.active-panel{display:block}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card{background:#fff;border:1px solid #d5e0e9;border-radius:14px;padding:18px;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.span2{grid-column:span 2}label{font-weight:600;display:flex;flex-direction:column;gap:6px}input,select,textarea{padding:11px;border:1px solid #bdccd8;border-radius:9px;font:inherit;background:#fff}.toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.kpis{display:flex;gap:12px;flex-wrap:wrap}.kpi{background:#fff;border:1px solid #d5e0e9;border-radius:12px;padding:15px;min-width:150px}.kpi span{display:block;color:#62788b}.kpi strong{font-size:24px}.timer{font-size:42px;font-weight:700;margin:20px 0}.timer-state{font-weight:700}.running{color:#147a46}.idle{color:#718394}.actions{display:flex;gap:10px;margin-top:15px}.left{justify-content:flex-start}.hint,.summary-line,.client-meta{color:#61798c;margin:10px 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:12px;border-bottom:1px solid #dbe4eb;text-align:left;white-space:nowrap}.hidden{display:none!important}.checks{display:flex;gap:12px;flex-wrap:wrap}.checks label{flex-direction:row}.client-row{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid #e2e8ee}.progress-wrap{height:10px;background:#dfe8ef;border-radius:8px;margin:14px 0}.progress-bar{height:100%;background:#1676b8;border-radius:8px}.alert-box,.warning{padding:14px;background:#fff5d8;border-radius:10px;margin-bottom:16px}.toast{position:fixed;right:20px;bottom:20px;background:#173b59;color:#fff;padding:14px 18px;border-radius:10px;opacity:0;pointer-events:none}.toast.show{opacity:1}.break-row{display:flex;justify-content:space-between;padding:8px 0}@media(max-width:900px){.grid.two,.form-grid{grid-template-columns:1fr}.span2{grid-column:span 1}.topbar{padding:18px}.brand{font-size:26px}}

.auth-gate{position:fixed;inset:0;background:rgba(9,45,77,.72);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}.auth-gate.hidden{display:none}.auth-card{width:min(440px,100%);background:#fff;border-radius:16px;padding:26px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.auth-card label{margin:12px 0}.auth-error{margin-top:12px;color:#a71919;font-weight:700}.admin-only-hidden{display:none!important}

/* ============================================================
   LUMUS 0.3.16 REV B - CABECALHO GLOBAL FIXO
   ============================================================ */

:root{
  --lumus-topbar-h:96px;
  --lumus-tabs-h:65px;
  --lumus-login-h:58px;
  --lumus-header-total:219px;
}

html,body{max-width:100%;overflow-x:hidden}
.topbar{position:fixed;top:0;left:0;right:0;height:var(--lumus-topbar-h);z-index:1200}
.tabs{position:fixed;top:var(--lumus-topbar-h);left:0;right:0;min-height:var(--lumus-tabs-h);z-index:1190}
.login-bar{position:fixed;top:calc(var(--lumus-topbar-h) + var(--lumus-tabs-h));left:0;right:0;min-height:var(--lumus-login-h);z-index:1180;border-bottom:1px solid #d5e0e9}
main{padding:22px;padding-top:calc(var(--lumus-header-total) + 22px)}
.auth-gate{z-index:9999}
main,.panel,.grid,.card,.form-grid,.toolbar,.table-wrap{min-width:0;max-width:100%}
.grid.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.card{min-width:0;overflow:hidden}
label{min-width:0}
input,select,textarea{width:100%;max-width:100%;min-width:0}
.actions{max-width:100%;flex-wrap:wrap}
.client-row{gap:12px;align-items:center;min-width:0}
.client-row>div:first-child{min-width:0;overflow-wrap:anywhere}
.toolbar>*{min-width:0}
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
table{min-width:max-content}

@media(max-width:1200px){
  :root{--lumus-topbar-h:82px;--lumus-tabs-h:61px;--lumus-login-h:56px;--lumus-header-total:199px}
  .topbar{padding:16px 20px}.brand{font-size:28px}.grid.two{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:900px){
  :root{--lumus-topbar-h:76px;--lumus-tabs-h:49px;--lumus-login-h:52px;--lumus-header-total:177px}
  .topbar{padding:12px 14px;gap:10px;align-items:flex-start}.brand{font-size:24px}.subtitle{font-size:14px}
  .local-pill{padding:8px 12px;font-size:14px}.version{font-size:13px}.tabs{padding:8px 10px;gap:6px;flex-wrap:nowrap;overflow-x:auto}
  .tab{flex:0 0 auto;padding:8px 11px;font-size:14px}.login-bar{padding:7px 12px;overflow-x:auto}
  main{padding-left:12px;padding-right:12px}.grid.two,.form-grid{grid-template-columns:minmax(0,1fr)}.span2{grid-column:span 1}
  .card{padding:14px}.client-row{align-items:flex-start;flex-direction:column}.client-row .actions{margin-top:4px}
}
@media(max-width:600px){
  :root{--lumus-topbar-h:119px;--lumus-tabs-h:49px;--lumus-login-h:52px;--lumus-header-total:220px}
  .topbar{flex-direction:column}.topbar>div:last-child{width:100%}.local-pill{display:inline-block}.version{text-align:left}
  .toolbar{align-items:stretch}.toolbar label,.toolbar input,.toolbar select{width:100%}
}


/* REV ATD-03B 22/09/2026 — somente módulo Atendimento */
#atendimento #descricao,
#atendimento #faturavel,
#atendimento #status{display:none!important}

/* Esconde também os containers/labels desses três campos, sem afetar outros módulos */
#atendimento label:has(#descricao),
#atendimento label:has(#faturavel),
#atendimento label:has(#status){display:none!important}

/* Chamado aberto: usa o próprio grid existente; não move elementos via JavaScript */
#atendimento #chamadoDetalheCard{
  position:relative;
}
#atendimento #novaEvolucaoTexto{min-height:180px}

@media(min-width:901px){
  #atendimento #chamadoDetalheCard .grid.two{
    grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);
    align-items:start;
  }
}


/* REV ATD-04 22/09/2026 — chamado em andamento sem rolagem operacional */
#atendimento .chamado-operacao-host{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);
  gap:18px;
  align-items:start;
}
#atendimento .chamado-operacao-host > #chamadoDetalheCard,
#atendimento .chamado-operacao-host > #timerCard{margin-bottom:18px}
#atendimento #chamadoDetalheCard .grid.two{display:none!important}
#atendimento #chamadoDetalheCard > h3{display:none!important}
#atendimento #chamadoDetalheCard #chamadoEvolucoesLista{margin-top:14px}
#atendimento #chamadoDetalheCard .form-grid{margin-top:8px!important}
#atendimento #chamadoDetalheCard #novaEvolucaoTexto{min-height:180px}
#atendimento #salvarNovaEvolucao,
#atendimento #salvarStatusChamado{display:none!important}
#atendimento .chamado-operacao-host #timerCard{display:block}
@media(max-width:900px){
  #atendimento .chamado-operacao-host{grid-template-columns:1fr}
}


/* REV ATD-05 22/09/2026 — acabamento final Atendimento */
#atendimento #chamadoEvolucoesLista{display:none!important}
#atendimento .status-operacional-box{
  margin:12px 0 10px;
  padding:12px;
  background:#f4f8fb;
  border:1px solid #d5e0e9;
  border-radius:10px;
}
#atendimento .status-operacional-box label{
  font-weight:700;
  gap:7px;
}
#atendimento .status-operacional-box select{width:100%}
#atendimento .chamado-operacao-host #timerCard .actions{margin-top:10px}


/* REV ATD-08 22/09/2026 — acabamento visual final do Atendimento */

/* Reserva espaço para a faixa de Pendências fixa e evita cobrir botões/conteúdo. */
#atendimento{
  padding-bottom:92px;
}
#atendimento #pendenciasCard{
  max-height:180px;
  overflow-y:auto;
}

/* Cliente primeiro, número LUMUS abaixo. */
#atendimento .atd-cliente-titulo{
  display:block;
  font-size:15px;
  font-weight:700;
  color:#61798c;
  margin-bottom:4px;
}
#atendimento .atd-lumus-numero{
  display:block;
  font-size:28px;
  font-weight:700;
  color:#092d4d;
}

/* Painel direito: estrutura limpa e sem quebra excessiva. */
#atendimento .chamado-operacao-host{
  grid-template-columns:minmax(0,1.15fr) minmax(500px,.85fr);
}
#atendimento .chamado-operacao-host #timerCard{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(190px,240px);
  grid-template-areas:
    "titulo status"
    "estado status"
    "relogio status"
    "meta meta"
    "acoes acoes"
    "banco banco";
  column-gap:18px;
  align-items:start;
}
#atendimento .chamado-operacao-host #timerTitle{grid-area:titulo;margin-bottom:6px}
#atendimento .chamado-operacao-host #timerState{grid-area:estado}
#atendimento .chamado-operacao-host #timer{grid-area:relogio;margin:12px 0}
#atendimento .chamado-operacao-host #timerMeta{grid-area:meta;margin:4px 0 8px}
#atendimento .chamado-operacao-host #statusOperacionalBox{grid-area:status;margin:0}
#atendimento .chamado-operacao-host #timerCard .actions{
  grid-area:acoes;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  margin:4px 0 10px;
}
#atendimento .chamado-operacao-host #consumoAtual{
  grid-area:banco;
  width:100%;
  line-height:1.35;
}
#atendimento .chamado-operacao-host #consumoAtual br{
  display:none;
}
#atendimento .chamado-operacao-host #consumoAtual{
  overflow-wrap:normal;
  word-break:normal;
}

/* Tela de novo atendimento: garante folga antes da faixa de Pendências. */
#atendimento #novoAtendimentoCard{
  margin-bottom:28px;
}
#atendimento #novoAtendimentoCard .actions{
  margin-bottom:8px;
}

@media(max-width:1200px){
  #atendimento .chamado-operacao-host{
    grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);
  }
}
@media(max-width:900px){
  #atendimento{padding-bottom:110px}
  #atendimento .chamado-operacao-host{grid-template-columns:1fr}
  #atendimento .chamado-operacao-host #timerCard{
    grid-template-columns:1fr;
    grid-template-areas:
      "titulo"
      "estado"
      "relogio"
      "meta"
      "status"
      "acoes"
      "banco";
  }
  #atendimento .chamado-operacao-host #statusOperacionalBox{margin:10px 0}
}


/* REV ATD-09 22/09/2026 — Pendências no fluxo normal da página
   Correção exclusivamente visual. */
#atendimento{
  padding-bottom:0!important;
}
#atendimento #pendenciasCard{
  position:static!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
  top:auto!important;
  width:100%!important;
  max-height:none!important;
  overflow:visible!important;
  z-index:auto!important;
  margin-top:18px!important;
  margin-bottom:18px!important;
  transform:none!important;
}

/* Garante que o bloco principal termine antes de Pendências. */
#atendimento > .grid.two{
  margin-bottom:0!important;
}
#atendimento #novoAtendimentoCard{
  margin-bottom:18px!important;
}


/* REV ATD-10 22/09/2026 — Pendências definitiva */
#atendimento #pendenciasCard{
  position:static!important;
  width:100%!important;
  margin:18px 0!important;
  max-height:none!important;
  overflow:visible!important;
  z-index:auto!important;
}
#atendimento .pendencias-toggle{
  cursor:pointer;
  user-select:none;
}
#atendimento .pendencias-toggle:hover{
  text-decoration:underline;
}
#atendimento .pendencias-recolhida{
  display:none!important;
}


/* REV ATD-11 22/09/2026 — abertura compacta + Pendências visível */

/* Nº chamado externo continua no DOM, mas sai da abertura operacional. */
#atendimento #novoAtendimentoCard label:has(#chamado){
  display:none!important;
}

/* Assunto ocupa a largura total logo após Tipo/Categoria. */
#atendimento #novoAtendimentoCard label:has(#assunto){
  grid-column:1 / -1!important;
}

/* Compacta a abertura para a faixa Pendências caber na primeira tela. */
#atendimento #novoAtendimentoCard{
  padding:14px 18px!important;
  margin-bottom:0!important;
}
#atendimento #novoAtendimentoCard h2{
  margin:0 0 12px!important;
}
#atendimento #novoAtendimentoCard .form-grid{
  gap:10px 14px!important;
}
#atendimento #novoAtendimentoCard input,
#atendimento #novoAtendimentoCard select{
  padding:9px 11px!important;
}
#atendimento #novoAtendimentoCard .hint{
  margin:7px 0!important;
  line-height:1.25;
}
#atendimento #novoAtendimentoCard .actions{
  margin-top:8px!important;
}

/* Painel de espera também mais compacto, sem alterar chamado ativo. */
#atendimento > .grid.two > #timerCard{
  padding:14px 18px!important;
}

/* Pendências: logo abaixo dos dois painéis, faixa compacta sempre visível. */
#atendimento #pendenciasCard{
  margin:10px 0 16px!important;
  padding:10px 14px!important;
}
#atendimento #pendenciasCard .actions{
  min-height:34px;
}
#atendimento #pendenciasCard h2{
  font-size:18px!important;
}
#atendimento #pendenciasCard #recarregarPendencias{
  padding:8px 12px!important;
  font-size:14px!important;
}

/* Ao expandir, a fila abre para baixo sem deslocar o cabeçalho para fora. */
#atendimento #pendenciasResumo:not(.pendencias-recolhida){
  margin:8px 0 4px!important;
}
#atendimento #pendenciasList:not(.pendencias-recolhida){
  margin-top:4px!important;
}


/* REV ATD-14 22/09/2026 — abrir Pendências sem ambiguidade
   Somente visibilidade da fila; nenhum layout/fluxo alterado. */
#atendimento #pendenciasCard:not(.pendencias-aberta) #pendenciasResumo,
#atendimento #pendenciasCard:not(.pendencias-aberta) #pendenciasList{
  display:none!important;
}
#atendimento #pendenciasCard.pendencias-aberta #pendenciasResumo,
#atendimento #pendenciasCard.pendencias-aberta #pendenciasList{
  display:block!important;
}


/* ============================================================
   JOR-01 22/09/2026 — JORNADA COMPACTA
   ESCOPO EXCLUSIVO: #jornada
   Atendimento 1.0.14 permanece congelado.
   ============================================================ */

/* Remove Translado e Valor do Translado somente da Jornada manual. */
#jornada label:has(#jTranslado),
#jornada label:has(#jTransladoValue){
  display:none!important;
}

/* Campos restantes do lançamento manual aproveitam a área sem espaços vazios. */
#jornada .form-grid{
  gap:10px 14px!important;
}
#jornada .form-grid label{
  min-width:0;
}
#jornada input,
#jornada select{
  padding:9px 11px!important;
}

/* Compacta os dois cards superiores mantendo-os lado a lado. */
#jornada > .grid.two{
  align-items:start!important;
  gap:16px!important;
}
#jornada > .grid.two > .card{
  padding:16px 18px!important;
  min-height:0!important;
  height:auto!important;
}
#jornada > .grid.two > .card h2{
  margin:0 0 14px!important;
}
#jornada #journeyClock{
  margin:12px 0!important;
}
#jornada #journeyState{
  margin:8px 0!important;
}
#jornada > .grid.two > .card .actions{
  margin-top:10px!important;
}
#jornada > .grid.two > .card .hint{
  margin:8px 0!important;
  line-height:1.25!important;
}

/* Resumo do período: reduz espaços verticais e aproxima filtros/KPIs. */
#jornada .toolbar{
  gap:10px!important;
  margin-bottom:10px!important;
  align-items:end!important;
}
#jornada .kpis{
  gap:10px!important;
}
#jornada .kpi{
  padding:10px 14px!important;
  min-width:130px!important;
}
#jornada .kpi strong{
  font-size:22px!important;
}

/* Oculta somente o KPI de Translados dentro da Jornada.
   Os dados históricos permanecem intactos no sistema. */
#jornada .kpis .kpi:last-child{
  display:none!important;
}

/* Histórico sobe, reduzindo necessidade de rolagem. */
#jornada .card{
  margin-bottom:14px!important;
}

@media(max-width:900px){
  #jornada > .grid.two{
    grid-template-columns:1fr!important;
  }
}


/* ============================================================
   JOR-02 22/09/2026 — Jornada final compacta
   ESCOPO EXCLUSIVO: #jornada
   Atendimento 1.0.14 permanece congelado.
   ============================================================ */

/* Texto antigo sobre translado não é mais exibido. */
#jornada #manualJourneySave{
  margin-top:2px!important;
}
#jornada #manualJourneySave + *{
  margin-top:0!important;
}

/* Resumo: transforma filtros + KPIs em faixa compacta no desktop. */
@media(min-width:901px){
  #jornada .card:has(#journeyPeriodType){
    padding:14px 18px!important;
  }
  #jornada .card:has(#journeyPeriodType) h2{
    margin:0 0 10px!important;
  }
  #jornada .card:has(#journeyPeriodType) .toolbar{
    display:grid!important;
    grid-template-columns:150px minmax(240px,1fr) 220px auto!important;
    gap:10px!important;
    align-items:end!important;
    margin:0!important;
  }
  #jornada .card:has(#journeyPeriodType) .toolbar label{
    margin:0!important;
  }
  #jornada .card:has(#journeyPeriodType) .kpis{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:8px!important;
    margin-top:10px!important;
  }
  #jornada .card:has(#journeyPeriodType) .kpi{
    min-width:125px!important;
    padding:8px 12px!important;
  }
}

/* Histórico: translado agora pertence à OS Presencial.
   Oculta colunas 6 e 7 somente na tabela da Jornada. */
#jornada #journeyTable th:nth-child(6),
#jornada #journeyTable td:nth-child(6),
#jornada #journeyTable th:nth-child(7),
#jornada #journeyTable td:nth-child(7){
  display:none!important;
}

/* Botão de exportação junto ao título do histórico. */
#jornada .jor-export-btn{
  float:right;
  margin-top:-46px!important;
  margin-bottom:8px!important;
  padding:9px 14px!important;
}

/* Cards superiores ainda mais enxutos, sem alterar estrutura lado a lado. */
#jornada > .grid.two > .card{
  padding-top:14px!important;
  padding-bottom:14px!important;
}
#jornada > .grid.two > .card h2{
  margin-bottom:10px!important;
}
#jornada #journeyClock{
  margin:8px 0!important;
}
#jornada #journeyState{
  margin:6px 0!important;
}

@media(max-width:900px){
  #jornada .jor-export-btn{
    float:none;
    margin:0 0 10px!important;
  }
}


/* ============================================================
   JOR-03 22/09/2026 — acabamento final da Jornada
   ESCOPO EXCLUSIVO: #jornada
   ============================================================ */

/* Dois cards superiores terminam logo após seu conteúdo real. */
#jornada > .grid.two{
  align-items:start!important;
}
#jornada > .grid.two > .card{
  min-height:0!important;
  height:auto!important;
  padding:12px 18px!important;
}
#jornada > .grid.two > .card h2{
  margin:0 0 8px!important;
}
#jornada > .grid.two > .card .actions{
  margin-top:8px!important;
  margin-bottom:0!important;
}
#jornada > .grid.two > .card .hint{
  margin:6px 0!important;
  line-height:1.2!important;
}
#jornada #journeyClock{
  margin:6px 0!important;
}
#jornada #journeyState{
  margin:4px 0 6px!important;
}

/* Lançamento manual: reduz altura sem alterar campos ou funções. */
#jornada #manualJourneySave{
  margin-top:4px!important;
  margin-bottom:0!important;
}
#jornada .form-grid{
  gap:8px 14px!important;
}

/* Não altera Resumo nem Histórico homologados na JOR-02. */


/* ============================================================
   DASH-01 22/09/2026 — Dashboard compacto
   ESCOPO EXCLUSIVO: #dashboard
   Atendimento/Jornada homologados permanecem congelados.
   ============================================================ */

#dashboard .dash01-topo{
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr);
  gap:16px;
  align-items:start;
  margin-bottom:16px;
}
#dashboard .dash01-topo>.card{
  margin:0!important;
  min-width:0;
  height:100%;
}

/* Resumo/filtros: compactação sem alterar IDs nem eventos. */
#dashboard .dash01-resumo{
  padding:14px 18px!important;
}
#dashboard .dash01-resumo .toolbar{
  display:grid!important;
  grid-template-columns:150px minmax(260px,1fr) minmax(190px,260px) minmax(190px,260px);
  gap:10px 12px!important;
  align-items:end!important;
  margin-bottom:10px!important;
}
#dashboard .dash01-resumo .toolbar label{
  min-width:0;
  margin:0!important;
}
#dashboard .dash01-resumo .kpis{
  gap:8px!important;
  flex-wrap:nowrap!important;
}
#dashboard .dash01-resumo .kpi{
  min-width:0!important;
  flex:1 1 0!important;
  padding:9px 12px!important;
}
#dashboard .dash01-resumo .kpi strong{
  font-size:22px!important;
}
#dashboard .dash01-resumo .progress-wrap{
  margin:10px 0!important;
}
#dashboard .dash01-resumo .alert-box,
#dashboard .dash01-resumo .warning{
  margin:8px 0 0!important;
  padding:10px 12px!important;
}

/* Consumo por Tipo passa a ocupar a lateral direita. */
#dashboard .dash01-tipos{
  padding:14px 18px!important;
}
#dashboard .dash01-tipos h2{
  margin:0 0 12px!important;
  font-size:22px!important;
}
#dashboard .dash01-tipos .client-row{
  padding:9px 0!important;
}

/* Responsividade: em telas menores volta a empilhar naturalmente. */
@media(max-width:1100px){
  #dashboard .dash01-topo{
    grid-template-columns:1fr!important;
  }
  #dashboard .dash01-resumo .toolbar{
    grid-template-columns:1fr 1fr!important;
  }
}
@media(max-width:700px){
  #dashboard .dash01-resumo .toolbar{
    grid-template-columns:1fr!important;
  }
  #dashboard .dash01-resumo .kpis{
    flex-wrap:wrap!important;
  }
  #dashboard .dash01-resumo .kpi{
    flex:1 1 130px!important;
  }
}


/* ============================================================
   DASH-02 22/09/2026 — Dashboard lado a lado pela estrutura real
   ESCOPO EXCLUSIVO: #dashboard
   ============================================================ */
#dashboard .dash02-topo{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(330px,.8fr);
  gap:16px;
  align-items:stretch;
  width:100%;
}
#dashboard .dash02-resumo,
#dashboard .dash02-tipos{
  min-width:0;
}
#dashboard .dash02-resumo{
  background:#fff;
  border:1px solid #d5e0e9;
  border-radius:14px;
  padding:14px 18px;
}
#dashboard .dash02-tipos>.card{
  margin:0!important;
  height:100%;
  padding:14px 18px!important;
}

/* Filtros em grade compacta: Período, referência, Cliente, Atendente */
#dashboard .dash02-resumo>.toolbar{
  display:grid!important;
  grid-template-columns:150px minmax(220px,1fr) minmax(180px,240px) minmax(180px,240px);
  gap:10px 12px!important;
  align-items:end!important;
  margin-bottom:10px!important;
}
#dashboard .dash02-resumo>.toolbar>*{
  min-width:0;
  margin:0!important;
}

/* KPIs numa única faixa. */
#dashboard .dash02-resumo>.kpis{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:8px!important;
}
#dashboard .dash02-resumo>.kpis .kpi{
  flex:1 1 0!important;
  min-width:0!important;
  padding:9px 10px!important;
}
#dashboard .dash02-resumo>.kpis .kpi strong{
  font-size:21px!important;
}
#dashboard .dash02-resumo>.progress-wrap{
  margin:10px 0!important;
}
#dashboard .dash02-resumo>#alertaBanco{
  margin:0!important;
  padding:10px 12px!important;
}

/* Tipos de atendimento na lateral direita. */
#dashboard .dash02-tipos h2{
  margin:0 0 12px!important;
  font-size:22px!important;
}
#dashboard .dash02-tipos .client-row{
  padding:9px 0!important;
}

/* Neutraliza somente classes da tentativa DASH-01 dentro do novo host. */
#dashboard .dash02-topo .dash01-resumo,
#dashboard .dash02-topo .dash01-tipos{
  display:block!important;
}

@media(max-width:1100px){
  #dashboard .dash02-topo{grid-template-columns:1fr!important}
  #dashboard .dash02-resumo>.toolbar{grid-template-columns:1fr 1fr!important}
}
@media(max-width:700px){
  #dashboard .dash02-resumo>.toolbar{grid-template-columns:1fr!important}
  #dashboard .dash02-resumo>.kpis{flex-wrap:wrap!important}
  #dashboard .dash02-resumo>.kpis .kpi{flex:1 1 130px!important}
}


/* ============================================================
   DASH-03 22/09/2026 — gráfico dinâmico na área inferior
   ESCOPO EXCLUSIVO: #dashboard
   ============================================================ */
#dashboard .dash03-chart-card{
  margin-top:16px!important;
  padding:16px 20px!important;
}
#dashboard .dash03-chart-card h2{
  margin:0 0 16px!important;
  font-size:23px!important;
}
#dashboard .dash03-chart{
  display:flex;
  flex-direction:column;
  gap:13px;
  max-width:1100px;
}
#dashboard .dash03-row{
  display:grid;
  grid-template-columns:minmax(130px,220px) minmax(180px,1fr) 75px;
  gap:12px;
  align-items:center;
}
#dashboard .dash03-label{
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#dashboard .dash03-track{
  height:24px;
  background:#e6edf3;
  border-radius:8px;
  overflow:hidden;
}
#dashboard .dash03-bar{
  height:100%;
  background:#1881c2;
  border-radius:8px;
  min-width:3px;
}
#dashboard .dash03-value{
  font-weight:700;
  text-align:right;
  font-variant-numeric:tabular-nums;
}
#dashboard .dash03-empty{
  color:#60758a;
  padding:8px 0;
}
@media(max-width:700px){
  #dashboard .dash03-row{
    grid-template-columns:100px minmax(100px,1fr) 60px;
    gap:8px;
  }
}


/* ============================================================
   HIST-01 22/09/2026 — Histórico compacto + gráfico diário
   ESCOPO EXCLUSIVO: #historico
   ============================================================ */
#historico .hist01-topo{
  display:grid;
  grid-template-columns:minmax(430px,.75fr) minmax(520px,1.25fr);
  gap:16px;
  align-items:stretch;
  margin-bottom:10px;
}
#historico .hist01-filtros,
#historico .hist01-grafico{
  background:#fff;
  border:1px solid #d5e0e9;
  border-radius:14px;
  padding:12px 16px;
  min-width:0;
}
#historico .hist01-filtros>.toolbar{
  display:grid!important;
  grid-template-columns:145px minmax(180px,1fr);
  gap:9px 10px!important;
  align-items:end!important;
  margin:0 0 8px!important;
}
#historico .hist01-filtros>.toolbar>*{
  min-width:0;
  margin:0!important;
}
#historico .hist01-filtros #histClient,
#historico .hist01-filtros #histAnalyst{
  width:100%!important;
}
#historico #histTotal{
  margin:6px 0 0!important;
  padding:8px 10px!important;
  border-radius:8px;
  background:#edf5fb;
}
#historico .hist01-grafico h2{
  margin:0 0 10px!important;
  font-size:21px!important;
}
#historico #histDailyChart{
  display:flex;
  flex-direction:column;
  gap:7px;
  max-height:205px;
  overflow:auto;
}
#historico .hist01-row{
  display:grid;
  grid-template-columns:88px minmax(120px,1fr) 64px;
  gap:9px;
  align-items:center;
}
#historico .hist01-dia{
  font-size:13px;
}
#historico .hist01-track{
  height:16px;
  background:#e5edf4;
  border-radius:6px;
  overflow:hidden;
}
#historico .hist01-bar{
  display:block;
  height:100%;
  background:#1881c2;
  border-radius:6px;
}
#historico .hist01-valor{
  text-align:right;
  font-size:13px;
}
#historico .hist01-empty{color:#60758a;padding:8px 0}

/* Tabela começa imediatamente após o topo. */
#historico>.table-wrap{
  margin-top:0!important;
}

@media(max-width:1050px){
  #historico .hist01-topo{grid-template-columns:1fr!important}
}
@media(max-width:650px){
  #historico .hist01-filtros>.toolbar{grid-template-columns:1fr!important}
}


/* ============================================================
   ANA-01 22/09/2026 — Apontamentos Analistas compacto + gráfico
   ESCOPO EXCLUSIVO: #analistas-rel
   ============================================================ */
#analistas-rel .ana01-topo{
  display:grid;
  grid-template-columns:minmax(430px,.75fr) minmax(520px,1.25fr);
  gap:16px;
  align-items:stretch;
  margin-bottom:10px;
}
#analistas-rel .ana01-filtros,
#analistas-rel .ana01-grafico{
  background:#fff;
  border:1px solid #d5e0e9;
  border-radius:14px;
  padding:12px 16px;
  min-width:0;
}
#analistas-rel .ana01-filtros>.toolbar{
  display:grid!important;
  grid-template-columns:145px minmax(180px,1fr);
  gap:9px 10px!important;
  align-items:end!important;
  margin:0 0 10px!important;
}
#analistas-rel .ana01-filtros>.toolbar>*{min-width:0;margin:0!important}
#analistas-rel .ana01-filtros>.kpis{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:8px!important;
}
#analistas-rel .ana01-filtros>.kpis .kpi{
  flex:1 1 0!important;
  min-width:0!important;
  padding:9px 10px!important;
}
#analistas-rel .ana01-filtros>.kpis .kpi strong{font-size:22px!important}
#analistas-rel .ana01-grafico h2{
  margin:0 0 10px!important;
  font-size:21px!important;
}
#analistas-rel #ana01Chart{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:210px;
  overflow:auto;
}
#analistas-rel .ana01-row{
  display:grid;
  grid-template-columns:minmax(130px,220px) minmax(120px,1fr) 65px;
  gap:9px;
  align-items:center;
}
#analistas-rel .ana01-label{
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#analistas-rel .ana01-track{
  height:17px;background:#e5edf4;border-radius:6px;overflow:hidden;
}
#analistas-rel .ana01-bar{
  display:block;height:100%;background:#1881c2;border-radius:6px;
}
#analistas-rel .ana01-value{text-align:right;font-size:13px}
#analistas-rel .ana01-empty{color:#60758a;padding:8px 0}
#analistas-rel>.card{margin-top:0!important}

@media(max-width:1050px){
 #analistas-rel .ana01-topo{grid-template-columns:1fr!important}
}
@media(max-width:650px){
 #analistas-rel .ana01-filtros>.toolbar{grid-template-columns:1fr!important}
 #analistas-rel .ana01-filtros>.kpis{flex-wrap:wrap!important}
}


/* ============================================================
   ANA-02 22/09/2026 — largura do seletor Analista
   ESCOPO EXCLUSIVO: #analistas-rel
   ============================================================ */

/* Na coluna esquerda, a linha do Analista passa a reservar
   espaço suficiente para nomes completos, sem prejudicar Excel. */
#analistas-rel .ana01-filtros>.toolbar{
  grid-template-columns:minmax(260px,1fr) minmax(190px,.72fr)!important;
}

/* O select ocupa integralmente sua célula e não estoura. */
#analistas-rel #arAnalyst{
  width:100%!important;
  min-width:260px!important;
  max-width:100%!important;
}

/* Botão de exportação continua compacto e alinhado. */
#analistas-rel #arCsv{
  width:100%!important;
  min-width:190px!important;
}

/* Em telas menores, volta ao empilhamento seguro. */
@media(max-width:700px){
  #analistas-rel .ana01-filtros>.toolbar{
    grid-template-columns:1fr!important;
  }
  #analistas-rel #arAnalyst,
  #analistas-rel #arCsv{
    min-width:0!important;
    width:100%!important;
  }
}


/* ============================================================
   CLI-01 22/09/2026 — Apontamentos Clientes + gráfico + Excel
   ESCOPO EXCLUSIVO: #clientes-rel
   ============================================================ */
#clientes-rel .cli01-topo{
  display:grid;
  grid-template-columns:minmax(560px,1.45fr) minmax(380px,.85fr);
  gap:16px;
  align-items:stretch;
  margin-bottom:12px;
}
#clientes-rel .cli01-resumo,
#clientes-rel .cli01-grafico{
  background:#fff;
  border:1px solid #d5e0e9;
  border-radius:14px;
  padding:12px 16px;
  min-width:0;
}
#clientes-rel .cli01-resumo>.toolbar{
  display:grid!important;
  grid-template-columns:220px minmax(300px,1fr) 170px;
  gap:10px 12px!important;
  align-items:end!important;
  margin:0 0 10px!important;
}
#clientes-rel .cli01-resumo>.toolbar>*{min-width:0;margin:0!important}
#clientes-rel .cli01-resumo>.kpis{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:8px!important;
}
#clientes-rel .cli01-resumo>.kpis .kpi{
  flex:1 1 0!important;
  min-width:0!important;
  padding:9px 10px!important;
}
#clientes-rel .cli01-resumo>.kpis .kpi strong{font-size:22px!important}
#clientes-rel #crBilling{
  margin:10px 0 0!important;
  padding:10px 12px!important;
}
#clientes-rel .cli01-grafico h2{
  margin:0 0 12px!important;
  font-size:21px!important;
}
#clientes-rel #cli01Chart{
  display:flex;
  flex-direction:column;
  gap:10px;
}
#clientes-rel .cli01-row{
  display:grid;
  grid-template-columns:minmax(110px,180px) minmax(120px,1fr) 65px;
  gap:9px;
  align-items:center;
}
#clientes-rel .cli01-label{
  font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
#clientes-rel .cli01-track{
  height:18px;background:#e5edf4;border-radius:6px;overflow:hidden;
}
#clientes-rel .cli01-bar{
  display:block;height:100%;background:#1881c2;border-radius:6px;
}
#clientes-rel .cli01-value{text-align:right;font-size:13px}
#clientes-rel .cli01-empty{color:#60758a;padding:8px 0}
#clientes-rel>.card{margin-top:0!important}

@media(max-width:1100px){
 #clientes-rel .cli01-topo{grid-template-columns:1fr!important}
}
@media(max-width:760px){
 #clientes-rel .cli01-resumo>.toolbar{grid-template-columns:1fr!important}
 #clientes-rel .cli01-resumo>.kpis{flex-wrap:wrap!important}
}


/* FINAL-PEND 22/09/2026 — somente Atendimento/Pendências */
#atendimento #pendenciasCard{margin-top:12px}
#atendimento #pendenciasCard #pendenciasResumo,
#atendimento #pendenciasCard #pendenciasList{display:none}
#atendimento #pendenciasCard.pending-open #pendenciasResumo,
#atendimento #pendenciasCard.pending-open #pendenciasList{display:block}
