/* ═══════════════════════════════════════════════════════════════
   NEWSLETTERS — do envio à venda (js/pages/nlPainel.js)
   Tudo sai dos tokens do base.css. As únicas cores próprias são as do
   DESFECHO da oportunidade e do "acima/abaixo da média": são séries de
   gráfico, validadas para daltonismo nos dois temas (28/09/2026), e
   nunca aparecem sem rótulo ao lado.
   ═══════════════════════════════════════════════════════════════ */
.nlp {
  --nlp-andamento: #3B82F6;
  --nlp-ganha:     #16A34A;
  --nlp-atendido:  #7C6BE0;
  --nlp-perdida:   #E04848;
  --nlp-acima:     #60A5FA;
  --nlp-abaixo:    #FB923C;
  --nlp-destaque:  var(--brand-gold);
}
:root[data-palette="portal"] .nlp,
:root[data-theme="light"] .nlp {
  --nlp-atendido:  #6D5BD0;
  --nlp-perdida:   #DC2626;
  --nlp-acima:     #2563EB;
  --nlp-abaixo:    #EA580C;
}

.nlp { color: var(--text-primary); }
.nlp .num { font-variant-numeric: tabular-nums; }
.nlp-muted { color: var(--text-muted); }

/* Cabeçalho */
.nlp-topo { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 0; }
.nlp-topo h1 { margin: 0; font-size: 1.5rem; font-weight: 700; }
.nlp-topo p { margin: 4px 0 0; color: var(--text-muted); font-size: 0.875rem; }
.nlp-acoes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.nlp-frescor { display: inline-flex; align-items: center; gap: 6px; font-size: 0.75rem; color: var(--text-secondary);
  padding: 5px 10px; border: 1px solid var(--border-subtle); border-radius: var(--radius-full); background: var(--bg-card); white-space: nowrap; }
.nlp-frescor i { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.nlp-frescor.ok i { background: var(--color-success); }
.nlp-frescor.atencao i { background: var(--color-warning); }
.nlp-frescor.critico i { background: var(--color-danger); }

/* Barra de filtros fixa + navegação das seções */
.nlp-barra { position: sticky; top: calc(-1 * var(--space-6) - 1px); z-index: 20; background: var(--bg-dark); border-bottom: 1px solid var(--border-subtle);
  margin: 0 calc(-1 * var(--space-2)); padding: var(--space-4) var(--space-2) 0; }
.nlp-barra-linha { display: flex; align-items: center; gap: 20px; padding: 10px 0 8px; flex-wrap: wrap; }
.nlp-filtro { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nlp-rot { font-size: 0.6875rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em; }
.nlp-seg { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; background: var(--bg-surface); border-radius: var(--radius-md); }
.nlp-seg button { border: 0; background: none; padding: 5px 12px; border-radius: var(--radius-sm); font: inherit; font-size: 0.8125rem;
  color: var(--text-secondary); cursor: pointer; white-space: nowrap; }
.nlp-seg button:hover { color: var(--text-primary); }
.nlp-seg button[aria-pressed="true"] { background: var(--bg-card); color: var(--text-primary); font-weight: 600; box-shadow: var(--shadow-sm); }
.nlp-seg button small { color: var(--text-muted); font-weight: 400; margin-left: 4px; }
.nlp-periodo { font-size: 0.75rem; color: var(--text-muted); }
.nlp-nav { display: flex; gap: 2px; overflow-x: auto; padding-bottom: 8px; scrollbar-width: none; }
.nlp-nav::-webkit-scrollbar { display: none; }
.nlp-nav button { border: 0; background: none; font: inherit; font-size: 0.8125rem; color: var(--text-muted); padding: 6px 12px;
  border-radius: var(--radius-full); white-space: nowrap; cursor: pointer; }
.nlp-nav button:hover { color: var(--text-primary); background: var(--bg-surface); }
/* a seção atual acende: o NL marca com .ativo, o Comercial com aria-current (06/10/2026 — sem o
   segundo seletor, a régua do Comercial nunca acendia) */
.nlp-nav button.ativo, .nlp-nav button[aria-current="true"] { color: var(--text-primary); background: var(--bg-surface); font-weight: 600; }
.nlp-conta { display: inline-block; min-width: 18px; padding: 0 5px; margin-left: 4px; border-radius: var(--radius-full);
  background: var(--color-warning-bg); color: var(--color-warning); font-size: 0.6875rem; font-weight: 700; text-align: center; }

/* Seções. O vão entre seções (06/10/2026): precisa ser bem maior que os gaps internos dos cards
   (16px), senão a página de 7–10 seções vira um bloco só — o olho não acha onde um grupo termina. */
.nlp-secao { margin-top: var(--space-12); scroll-margin-top: calc(var(--nlp-barra-h, 130px) + 12px); }
.nlp-secao:first-of-type { margin-top: var(--space-5); }
.nlp-cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.nlp-cab h2 { margin: 0; font-size: 1.125rem; font-weight: 600; }
.nlp-cab p { margin: 2px 0 0; color: var(--text-secondary); font-size: 0.8125rem; }
.nlp .card.nlp-pad { padding: var(--space-5) var(--space-6); }   /* o Card do DS: space-5 space-6 */

/* Resumo */
.nlp-sintese { font-size: 1.0625rem; line-height: 1.65; margin: 0 0 var(--space-4); max-width: 1000px; }
.nlp-sintese b { font-weight: 600; }
.nlp-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.nlp .card.nlp-kpi { padding: 16px 18px; }
.nlp-kpi-rot { font-size: 0.75rem; color: var(--text-secondary); font-weight: 500; display: flex; align-items: center; gap: 6px; }
.nlp-kpi-val { font-size: 1.75rem; font-weight: 600; line-height: 1.15; margin-top: 6px; letter-spacing: -.02em; }
.nlp-kpi-sub { font-size: 0.75rem; color: var(--text-muted); margin-top: 2px; min-height: 18px; }
.nlp-delta { display: inline-flex; align-items: center; gap: 3px; font-size: 0.75rem; font-weight: 600; margin-top: 10px; padding: 2px 8px; border-radius: var(--radius-full); }
.nlp-delta.bom { color: var(--color-success); background: var(--color-success-bg); }
.nlp-delta.ruim { color: var(--color-danger); background: var(--color-danger-bg); }
.nlp-delta.neutro { color: var(--text-secondary); background: var(--bg-surface); font-weight: 500; }
.nlp-delta-ctx { font-size: 0.6875rem; color: var(--text-muted); margin-left: 6px; }
.nlp-ajuda { width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--border-default); background: none; font-size: 10px; line-height: 14px;
  color: var(--text-muted); padding: 0; display: inline-flex; align-items: center; justify-content: center; cursor: help; font-family: inherit; }
.nlp-ajuda:hover, .nlp-ajuda:focus-visible { color: var(--text-primary); border-color: var(--text-muted); }
.nlp-nota { font-size: 0.75rem; color: var(--text-muted); margin: 10px 0 0; line-height: 1.5; }
/* Até onde o número vale (06/10/2026): a venda como está no Salesforce; Envision, OS e financeiro não voltam. */
.nlp-garantia { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 14px; padding: 10px 14px; border-radius: var(--radius-md);
  background: var(--bg-surface); border: 1px solid var(--border-subtle); border-left: 3px solid var(--brand-gold); font-size: 0.8125rem; line-height: 1.45; color: var(--text-secondary); }
.nlp-garantia > i, .nlp-garantia > svg { flex: none; width: 16px; height: 16px; margin-top: 1px; color: var(--brand-gold); }
.nlp-garantia p { margin: 0; }
.nlp-garantia b { color: var(--text-primary); font-weight: 600; }
.nlp-saude { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 12px; font-size: 0.75rem; color: var(--text-muted); padding: 0 4px; }
.nlp-saude b { color: var(--text-secondary); font-weight: 600; }

/* Tooltip (definições e barras) */
.nlp-tip { position: fixed; z-index: var(--z-toast); max-width: 300px; background: var(--bg-elevated); color: var(--text-primary);
  border: 1px solid var(--border-default); font-size: 0.75rem; line-height: 1.45; padding: 8px 11px; border-radius: var(--radius-sm);
  pointer-events: none; opacity: 0; transition: opacity .12s; box-shadow: var(--shadow-md); }
.nlp-tip.on { opacity: 1; }

/* Precisa de atenção */
.nlp-alertas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.nlp .card.nlp-alerta { display: flex; gap: 14px; padding: 16px 18px; border-left: 4px solid var(--border-default); }
.nlp-alerta.critico { border-left-color: var(--color-danger); }
.nlp-alerta.atencao { border-left-color: var(--color-warning); }
.nlp-alerta-ico { flex: 0 0 28px; height: 28px; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-weight: 700; }
.critico .nlp-alerta-ico { background: var(--color-danger-bg); color: var(--color-danger); }
.atencao .nlp-alerta-ico { background: var(--color-warning-bg); color: var(--color-warning); }
.nlp-alerta-corpo { min-width: 0; flex: 1; }
.nlp-nivel { font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.critico .nlp-nivel { color: var(--color-danger); }
.atencao .nlp-nivel { color: var(--color-warning); }
.nlp-alerta h3 { margin: 2px 0 4px; font-size: 0.9375rem; font-weight: 600; line-height: 1.35; }
.nlp-alerta p { margin: 0; color: var(--text-secondary); font-size: 0.8125rem; }
.nlp-link { border: 0; background: none; padding: 0; margin-top: 10px; font: inherit; font-size: 0.8125rem; font-weight: 500; color: var(--text-primary);
  text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.nlp .card.nlp-infos { margin-top: 12px; padding: 4px 18px; }
.nlp-info { display: flex; gap: 10px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid var(--border-subtle); font-size: 0.8125rem; }
.nlp-info:last-child { border-bottom: 0; }
.nlp-info .nlp-nivel { color: var(--color-info); flex: 0 0 auto; }
.nlp-info span.x { color: var(--text-secondary); }
.nlp-vazio { padding: 28px 22px; text-align: center; color: var(--text-secondary); font-size: 0.8125rem; }
.nlp-vazio b { display: block; color: var(--text-primary); font-size: 0.9375rem; margin-bottom: 4px; }

/* Do envio à venda */
.nlp-funil { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 12px; }
.nlp-bloco-rot { font-size: 0.6875rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em;
  margin: 0 0 12px; display: flex; justify-content: space-between; gap: 8px; }
.nlp-bloco-rot span { text-transform: none; letter-spacing: 0; font-weight: 400; }
.nlp-passo { display: grid; grid-template-columns: 1fr auto; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--border-subtle); gap: 12px; }
.nlp-passo:last-child { border-bottom: 0; }
.nlp-passo small { display: block; color: var(--text-muted); font-size: 0.75rem; }
.nlp-passo-val { font-size: 1.375rem; font-weight: 600; text-align: right; }
.nlp-passo-val small { font-weight: 500; color: var(--text-secondary); }
.nlp-tipo { padding: 14px 0; border-bottom: 1px solid var(--border-subtle); }
.nlp-tipo:first-of-type { padding-top: 0; }
.nlp-tipo:last-of-type { border-bottom: 0; }
.nlp-tipo-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.nlp-tipo-cab h3 { margin: 0; font-size: 0.9375rem; font-weight: 600; }
.nlp-tipo-cab h3 small { font-weight: 400; color: var(--text-muted); font-size: 0.8125rem; margin-left: 6px; }
.nlp-taxa { font-size: 0.8125rem; color: var(--text-secondary); }
.nlp-taxa b { font-size: 0.9375rem; color: var(--text-primary); }
.nlp-desf { display: flex; gap: 2px; height: 14px; margin: 12px 0 8px; }
.nlp-desf span { display: block; height: 100%; min-width: 3px; }
.nlp-desf span:first-child { border-radius: 4px 0 0 4px; }
.nlp-desf span:last-child { border-radius: 0 4px 4px 0; }
.nlp-desf span:only-child { border-radius: 4px; }
.nlp-legenda { display: flex; gap: 16px; flex-wrap: wrap; font-size: 0.75rem; color: var(--text-secondary); }
.nlp-legenda i { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 6px; }
.nlp-legenda b { color: var(--text-primary); font-weight: 600; margin-left: 3px; }
.nlp-motivos { margin-top: 10px; font-size: 0.75rem; color: var(--text-muted); }
.nlp-motivos b { color: var(--text-secondary); font-weight: 500; }
.nlp details.nlp-mais { margin-top: 8px; font-size: 0.75rem; }
.nlp details.nlp-mais summary { cursor: pointer; color: var(--text-muted); }
.nlp-fases { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 4px 16px; margin-top: 8px; }
.nlp-fases div { display: flex; justify-content: space-between; color: var(--text-secondary); border-bottom: 1px solid var(--border-subtle); padding: 2px 0; }

/* Tabelas */
.nlp-tabela { overflow-x: auto; }
.nlp table { width: 100%; border-collapse: collapse; }
.nlp th { text-align: left; font-size: 0.6875rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em;
  padding: 10px 12px; border-bottom: 1px solid var(--border-subtle); white-space: nowrap; }
.nlp th.n, .nlp td.n { text-align: right; }
.nlp th button { border: 0; background: none; padding: 0; color: inherit; font: inherit; text-transform: inherit; letter-spacing: inherit; cursor: pointer; }
.nlp th button:hover, .nlp th[aria-sort] button { color: var(--text-primary); }
.nlp td { padding: 10px 12px; border-bottom: 1px solid var(--border-subtle); vertical-align: middle; font-size: 0.8125rem; }
.nlp tr.nlp-linha { cursor: pointer; }
.nlp tr.nlp-linha:hover td { background: var(--bg-hover); }
.nlp tr.nlp-linha:focus-visible { outline: 2px solid var(--brand-gold); outline-offset: -2px; }
.nlp-cod { font-weight: 600; white-space: nowrap; }
.nlp-ass { color: var(--text-secondary); display: block; max-width: 480px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nlp-chip { display: inline-block; font-size: 0.6875rem; font-weight: 500; padding: 1px 8px; border-radius: var(--radius-full);
  background: var(--bg-surface); color: var(--text-secondary); white-space: nowrap; vertical-align: 1px; }
.nlp-marca { font-size: 0.6875rem; margin-left: 4px; font-weight: 700; }
.nlp-marca.acima { color: var(--nlp-acima); }
.nlp-marca.abaixo { color: var(--nlp-abaixo); }
.nlp-zero { color: var(--text-muted); }
.nlp-seta { color: var(--text-muted); width: 20px; text-align: center; transition: transform .15s; }
.nlp tr[aria-expanded="true"] .nlp-seta { transform: rotate(90deg); }
.nlp tr.nlp-det > td { background: var(--bg-surface); padding: 16px 20px 18px; cursor: default; }
.nlp-det-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
.nlp-det-grid h4 { margin: 0 0 8px; font-size: 0.6875rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; }
.nlp table.nlp-mini td, .nlp table.nlp-mini th { padding: 6px 8px; background: none; font-size: 0.75rem; }
.nlp-rodape { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; font-size: 0.75rem; color: var(--text-muted); flex-wrap: wrap; }
.nlp-topo-tab { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 16px 12px; flex-wrap: wrap; }
.nlp-check { display: inline-flex; gap: 6px; align-items: center; font-size: 0.8125rem; color: var(--text-secondary); cursor: pointer; }
.nlp-busca { width: 240px; }

/* Situação do cliente (sempre com texto) */
.nlp-sit { display: inline-flex; align-items: center; gap: 5px; font-size: 0.75rem; font-weight: 500; padding: 2px 9px; border-radius: var(--radius-full); white-space: nowrap; }
.nlp-sit::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.nlp-sit.sem { color: var(--color-warning); background: var(--color-warning-bg); }
.nlp-sit.negociando { color: var(--color-info); background: var(--color-info-bg); }
.nlp-sit.comprou { color: var(--color-success); background: var(--color-success-bg); }
.nlp-sit.perdeu { color: var(--color-danger); background: var(--color-danger-bg); }
.nlp-quente { color: var(--color-warning); font-weight: 700; }

/* Conteúdo — acima / abaixo da média */
.nlp-div { display: grid; grid-template-columns: 180px 60px minmax(0, 1fr) 70px 70px 90px; gap: 12px; align-items: center;
  padding: 9px 0; border-bottom: 1px solid var(--border-subtle); font-size: 0.8125rem; }
.nlp-div.cab { font-size: 0.6875rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; padding-top: 0; }
.nlp-div > .r { text-align: right; }
.nlp-div-nome { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nlp-trilho { position: relative; height: 12px; }
.nlp-trilho::before { content: ''; position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--border-default); }
.nlp-trilho span { position: absolute; top: 0; height: 100%; }
.nlp-trilho span.pos { left: 50%; background: var(--nlp-acima); border-radius: 0 4px 4px 0; }
.nlp-trilho span.neg { right: 50%; background: var(--nlp-abaixo); border-radius: 4px 0 0 4px; }
.nlp-div.fraco .nlp-trilho span { opacity: .4; }
.nlp-div.fraco .nlp-div-nome { color: var(--text-secondary); font-weight: 400; }
.nlp-trilho-cab { display: flex; justify-content: space-between; text-transform: none; letter-spacing: 0; }

/* Qualidade dos dados */
.nlp details.nlp-qualidade > summary { list-style: none; cursor: pointer; padding: 18px 22px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.nlp details.nlp-qualidade > summary::-webkit-details-marker { display: none; }
.nlp details.nlp-qualidade > summary h2 { margin: 0; font-size: 1rem; font-weight: 600; }
.nlp details.nlp-qualidade > summary p { margin: 2px 0 0; color: var(--text-secondary); font-size: 0.8125rem; }
.nlp-q-seta { color: var(--text-muted); transition: transform .15s; }
.nlp details.nlp-qualidade[open] .nlp-q-seta { transform: rotate(90deg); }
.nlp-q { padding: 0 22px 20px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; }
.nlp-q-item { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--border-subtle); font-size: 0.8125rem; }
.nlp-q-item:last-child { border-bottom: 0; }
.nlp-q-ico { flex: 0 0 18px; font-weight: 700; }
.nlp-q-ico.ok { color: var(--color-success); } .nlp-q-ico.aviso { color: var(--color-warning); } .nlp-q-ico.erro { color: var(--color-danger); }
.nlp-q-item p { margin: 0; color: var(--text-secondary); }
.nlp-q-item b { font-weight: 500; }
.nlp dl.nlp-gloss { margin: 0; font-size: 0.8125rem; }
.nlp dl.nlp-gloss dt { font-weight: 600; margin-top: 10px; }
.nlp dl.nlp-gloss dd { margin: 2px 0 0; color: var(--text-secondary); }

/* Jornada (dentro do modal padrão) */
.nlp-j-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.nlp-j-stat { background: var(--bg-surface); border-radius: var(--radius-md); padding: 10px 12px; min-width: 0; overflow-wrap: anywhere; }
/* no celular, duas colunas (14/10/2026: a 390 px o valor em reais passava 21 px da ficha do cliente) */
@media (max-width: 600px) { .nlp-j-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nlp-j-stat b { display: block; font-size: 1.25rem; font-weight: 600; }
.nlp-j-stat span { font-size: 0.75rem; color: var(--text-secondary); }
.nlp-prox { border: 1px solid var(--border-subtle); border-left: 4px solid var(--color-warning); border-radius: var(--radius-md); padding: 12px 14px; margin-bottom: 18px; }
.nlp-prox.ok { border-left-color: var(--color-success); }
.nlp-prox.neutro { border-left-color: var(--color-info); }
.nlp-prox h3 { margin: 0 0 4px; font-size: 0.875rem; }
.nlp-prox p { margin: 0 0 10px; color: var(--text-secondary); font-size: 0.8125rem; }
.nlp-prox p:last-child { margin-bottom: 0; }
.nlp-j-sec { margin: 20px 0 8px; font-size: 0.6875rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; }
.nlp-lt { list-style: none; margin: 0; padding: 0; }
.nlp-lt li { position: relative; padding: 0 0 14px 22px; font-size: 0.8125rem; }
.nlp-lt li::before { content: ''; position: absolute; left: 5px; top: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--text-muted); }
.nlp-lt li::after { content: ''; position: absolute; left: 8.5px; top: 18px; bottom: 0; width: 1px; background: var(--border-subtle); }
.nlp-lt li:last-child::after { display: none; }
.nlp-lt li.opp::before { background: var(--nlp-andamento); }
.nlp-lt li.ganha::before { background: var(--nlp-ganha); }
.nlp-lt li.perdida::before, .nlp-lt li.nao-logrado::before { background: var(--nlp-perdida); }
.nlp-lt li.logrado::before { background: var(--nlp-atendido); }
.nlp-lt li.abandono::before { background: var(--nlp-abaixo); }   /* o abandono: clicou e não abriu conversa (07/10/2026) */
.nlp-lt li.abandono .nlp-lt-tit { color: var(--nlp-abaixo); }
.ficha-sem-conversa { color: var(--nlp-abaixo); font-weight: 600; }
.nlp-lt-data { font-size: 0.75rem; color: var(--text-muted); }
.nlp-lt-tit { font-weight: 500; }
.nlp-lt-sub { color: var(--text-secondary); }

@media (max-width: 1180px) {
  .nlp-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nlp-ass { max-width: 300px; }
  .nlp-funil { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .nlp-alertas, .nlp-det-grid, .nlp-q { grid-template-columns: 1fr; }
  .nlp-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nlp-div { grid-template-columns: 120px 44px minmax(0, 1fr) 60px; }
  .nlp-div > :nth-child(5), .nlp-div > :nth-child(6) { display: none; }
  .nlp-busca { width: 100%; }
  .nlp-barra { position: static; }
  .nlp-ass { max-width: 190px; }
}
@media (max-width: 560px) {
  .nlp-kpi-val { font-size: 1.375rem; }
  .nlp-cli th:nth-child(4), .nlp-cli td:nth-child(4), .nlp-cli th:nth-child(6), .nlp-cli td:nth-child(6) { display: none; }
}

/* ═══ 02/10/2026 — A BASE É O FUNIL (pedido da diretoria) ═══════════
   O funil desenhado volta ao topo; a esteira (chevrons) mostra Viagem e
   Concierge fase a fase; a explicação vai para o (i). */
.nlp-topo h1 { display: flex; align-items: center; gap: 8px; }
.nlp-cab h2 { display: flex; align-items: center; gap: 8px; }
.nlp-ajuda { font-style: italic; font-weight: 600; font-family: Georgia, serif; }
.nlp-aviso { margin: 0 0 12px; padding: 10px 14px; border: 1px solid var(--color-warning); border-left-width: 4px; border-radius: var(--radius-md);
  background: var(--color-warning-bg); color: var(--text-secondary); font-size: 0.8125rem; line-height: 1.5; }
.nlp-aviso b { color: var(--text-primary); }

/* o funil */
.nlp-fu-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.nlp-fu-cab h2 { margin: 0; font-size: 1.125rem; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.nlp-fu-leg { display: flex; gap: 16px; flex-wrap: wrap; font-size: 0.75rem; color: var(--text-muted); }
.nlp-fu-leg span { display: inline-flex; align-items: center; gap: 6px; }
.nlp-fu-fonte { width: 9px; height: 9px; border-radius: 2px; display: inline-block; flex: 0 0 auto; }
.nlp-fu-fonte.mkt, .nlp-fu-faixa.mkt { background: var(--brand-gold); }
.nlp-fu-fonte.crm, .nlp-fu-faixa.crm { background: var(--color-info); }
.nlp-fu { display: flex; flex-direction: column; }
.nlp-fu-linha, .nlp-fu-degrau { display: grid; grid-template-columns: 190px minmax(0, 1fr) 260px; gap: 18px; align-items: center; }
.nlp-fu-degrau { min-height: 10px; }
.nlp-fu-chip { grid-column: 2; justify-self: center; display: inline-flex; align-items: center; gap: 5px; margin: 5px 0;
  font-size: 0.75rem; color: var(--text-secondary); background: var(--bg-surface); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-full); padding: 2px 12px; white-space: nowrap; }
.nlp-fu-chip b { color: var(--text-primary); }
.nlp-fu-chip .nlp-ajuda { width: 14px; height: 14px; font-size: 9px; }
.nlp-fu-rot { text-align: right; font-size: 0.9375rem; font-weight: 600; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.nlp-fu-rot > .nlp-ajuda { position: relative; top: -1px; }
.nlp-fu-rot { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; align-items: center; column-gap: 6px; }
.nlp-fu-rot small { flex-basis: 100%; display: inline-flex; justify-content: flex-end; align-items: center; gap: 5px;
  font-size: 0.6875rem; font-weight: 500; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; }
.nlp-fu-caixa { display: flex; justify-content: center; height: 46px; }
.nlp-fu-faixa { height: 100%; }
.nlp-fu-val { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; column-gap: 10px; row-gap: 2px; }
.nlp-fu-val b { font-size: 1.5rem; font-weight: 700; line-height: 1.1; letter-spacing: -.01em; }
.nlp-fu-val b.ganho { color: var(--color-success); }
.nlp-fu-val .nlp-delta { margin-top: 0; }
.nlp-fu-val small { flex-basis: 100%; font-size: 0.75rem; color: var(--text-muted); line-height: 1.35; }
/* O geral do CRM ao lado do marketing (05/10/2026): segunda linha, discreta — o número grande é o da newsletter. */
.nlp-fu-geral { flex-basis: 100%; font-size: 0.75rem; color: var(--text-secondary); line-height: 1.35; padding-left: 8px; border-left: 2px solid var(--border-default); margin-top: 2px; }
.nlp-fu-geral b { font-size: 0.8125rem; font-weight: 600; color: var(--text-primary); letter-spacing: 0; }
.nlp-fu-aviso { margin: 0 0 12px; padding: 10px 14px; border-radius: var(--radius-md); background: var(--bg-surface); font-size: 0.8125rem; color: var(--text-secondary); line-height: 1.5; }
.nlp-fu-aviso b { color: var(--text-primary); }
.nlp-geral-faixa { display: flex; align-items: stretch; gap: 16px; flex-wrap: wrap; margin: 0 0 16px; }
.nlp-geral-faixa.carregando { font-size: 0.75rem; color: var(--text-muted); padding: 6px 2px; }
.nlp-gf-item { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; border-radius: var(--radius-md); background: var(--bg-surface); border-left: 3px solid var(--border-strong, var(--border-default)); min-width: 200px; }
.nlp-gf-item.nl { border-left-color: var(--nlp-ganha); }
/* `>` nos rótulos (06/10/2026): o número de "Conferir os números" é um <span> dentro do <b>/<small> e encolhia como rótulo */
.nlp-gf-item > span { font-size: 0.6875rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); font-weight: 600; }
.nlp-gf-item b { font-size: 1.25rem; font-weight: 700; color: var(--text-primary); line-height: 1.15; }
.nlp-gf-item small { font-size: 0.75rem; color: var(--text-secondary); }
.nlp-geral-faixa > .nlp-info, .nlp-geral-faixa > button { align-self: center; }
.nlp-s-funil .nlp-saude, #nlp-funil .nlp-saude { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--border-subtle); align-items: center; }
#nlp-funil .nlp-saude span:first-child { display: inline-flex; align-items: center; gap: 6px; }

/* a esteira */
.nlp-trilha { display: flex; gap: 5px; overflow-x: auto; padding: 12px 2px 4px; scrollbar-width: thin; }
.nlp-tr-passo { flex: 1 1 0; min-width: 92px; }
.nlp-tr-chev { height: 40px; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1rem; color: #fff;
  background: var(--c); clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%); }
.nlp-tr-chev.primeiro { clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%); }
.nlp-tr-passo.zero .nlp-tr-chev { background: var(--bg-surface); color: var(--text-muted); }
.nlp-tr-rot { font-size: 0.6875rem; color: var(--text-secondary); text-align: center; margin-top: 5px; line-height: 1.25; display: flex; flex-direction: column; gap: 1px; }
.nlp-tr-rot > span { color: var(--text-muted); font-size: 0.625rem; }
.nlp-area { display: inline-block; padding: 1px 8px; border-radius: 10px; background: var(--bg-surface); border: 1px solid var(--border-subtle); font-size: 0.6875rem; color: var(--text-secondary); white-space: nowrap; }
.nlp-tr-geral { font-style: normal; font-size: 0.625rem; color: var(--text-muted); white-space: nowrap; }
.nlp-tr-val .nlp-tr-geral { font-size: 0.6875rem; color: var(--text-secondary); margin-top: 2px; }
.nlp-tr-passo.fora .nlp-tr-rot { font-style: italic; }
.nlp-tr-vals { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 16px; }
.nlp-tr-val { flex: 0 0 auto; min-width: 120px; padding: 8px 12px; border-radius: var(--radius-md); background: var(--bg-surface); border-left: 3px solid var(--border-default);
  display: flex; flex-direction: column; gap: 1px; }
.nlp-tr-val > span { font-size: 0.6875rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; }
.nlp-tr-val b { font-size: 1.125rem; font-weight: 700; }
.nlp-tr-val small { font-size: 0.75rem; color: var(--text-secondary); }
.nlp-tr-val.andamento { border-left-color: var(--nlp-andamento); }
.nlp-tr-val.ganha { border-left-color: var(--nlp-ganha); }
.nlp-tr-val.atendido { border-left-color: var(--nlp-atendido); }
.nlp-tr-val.perdida { border-left-color: var(--nlp-perdida); }
.nlp-tr-mot { flex: 1 1 240px; min-width: 0; padding: 8px 12px; font-size: 0.75rem; color: var(--text-secondary); }
.nlp-tr-mot > span { display: block; font-size: 0.6875rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 3px; }
.nlp-tr-mot div { display: flex; justify-content: space-between; gap: 10px; }
.nlp-tr-mot em { font-style: normal; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* a aba Conteúdo & Temas embutida */
.nlp-temas { margin-top: 16px; }

@media (max-width: 900px) {
  .nlp-fu-linha, .nlp-fu-degrau { grid-template-columns: 120px minmax(0, 1fr) 150px; gap: 10px; }
  .nlp-fu-caixa { height: 38px; }
  .nlp-fu-val b { font-size: 1.125rem; }
}

/* Vendas — os cortes dos relatórios do CRM (02/10/2026) */
.nlp-v-total { display: flex; gap: 24px; flex-wrap: wrap; align-items: baseline; margin: 0 0 12px; font-size: 0.875rem; color: var(--text-secondary); }
.nlp-v-total b { font-size: 1.25rem; color: var(--text-primary); font-weight: 700; margin-right: 4px; }
.nlp-v-total span { display: inline-flex; align-items: center; gap: 6px; }
.nlp-v-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.nlp .card.nlp-v-quadro { min-width: 0; }
.nlp-v-linha { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(60px, 1fr) 70px 82px; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--border-subtle); font-size: 0.8125rem; }
.nlp-v-linha:last-of-type { border-bottom: 0; }
.nlp-v-rot { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nlp-v-barra { height: 8px; background: var(--bg-surface); border-radius: var(--radius-full); overflow: hidden; }
.nlp-v-barra i { display: block; height: 100%; background: var(--nlp-ganha); border-radius: var(--radius-full); min-width: 2px; }
.nlp-v-n { text-align: right; color: var(--text-muted); font-size: 0.75rem; white-space: nowrap; }
.nlp-v-v { text-align: right; white-space: nowrap; }
@media (max-width: 1100px) { .nlp-v-grade { grid-template-columns: 1fr; } }
.nlp-v-tit { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }

/* A unidade em destaque: um seletor com a marca, a lista abre no clique (02/10/2026) */
.nlp-unid { position: relative; }
.nlp-unid-btn { display: inline-flex; align-items: center; gap: 12px; padding: 8px 14px 8px 10px; min-width: 260px;
  background: var(--bg-card); border: 1px solid var(--border-default); border-radius: var(--radius-md); box-shadow: var(--shadow-sm);
  font: inherit; color: var(--text-primary); cursor: pointer; text-align: left; }
.nlp-unid-btn:hover, .nlp-unid.aberto .nlp-unid-btn { border-color: var(--text-muted); }
.nlp-unid-txt { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; flex: 1; }
.nlp-unid-txt small { font-size: 0.6875rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; }
.nlp-unid-btn .nlp-unid-txt b { font-size: 1.0625rem; font-weight: 700; }
.nlp-unid-seta { width: 16px; height: 16px; color: var(--text-muted); transition: transform .15s; }
.nlp-unid.aberto .nlp-unid-seta { transform: rotate(180deg); }
.nlp-marca-u { flex: 0 0 64px; height: 34px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--radius-sm); background: var(--bg-surface); overflow: hidden; }
.nlp-marca-u img { max-width: 56px; max-height: 24px; object-fit: contain; }
.nlp-unid-txt b { white-space: nowrap; }
.nlp-marca-u .claro { display: none; }
:root[data-palette="portal"] .nlp-marca-u .claro, :root[data-theme="light"] .nlp-marca-u .claro { display: block; }
:root[data-palette="portal"] .nlp-marca-u .escuro, :root[data-theme="light"] .nlp-marca-u .escuro { display: none; }
.nlp-marca-u.sigla { font-size: 0.75rem; font-weight: 800; letter-spacing: .04em; color: var(--text-secondary); }
.nlp-marca-u.todas { color: var(--text-secondary); }
.nlp-unid-menu { display: none; position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; min-width: 380px; max-height: 70vh; overflow-y: auto;
  padding: 6px; background: var(--bg-elevated); border: 1px solid var(--border-default); border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.nlp-unid.aberto .nlp-unid-menu { display: block; }
.nlp-unid-op { display: flex; align-items: center; gap: 12px; width: 100%; padding: 8px 10px; border: 0; background: none; border-radius: var(--radius-sm);
  font: inherit; color: var(--text-primary); cursor: pointer; text-align: left; }
.nlp-unid-op:hover, .nlp-unid-op:focus-visible { background: var(--bg-surface); outline: none; }
.nlp-unid-op[aria-selected="true"] { background: var(--bg-surface); box-shadow: inset 3px 0 0 var(--brand-gold); }
.nlp-unid-op .nlp-unid-txt b { font-size: 0.9375rem; font-weight: 600; }
.nlp-unid-n { font-size: 0.75rem; color: var(--text-muted); white-space: nowrap; }

/* A barra fixa em azul (02/10/2026: "colocar numa cor azul pra diferenciar, deixar claro que é sticky").
   Na paleta Claro ("portal") é o azul da sidebar com texto claro; nos outros temas, um tom do azul de
   informação sobre o fundo — sempre por token. */
.nlp-barra { background: color-mix(in srgb, var(--color-info) 16%, var(--bg-dark)); border-bottom: 0;
  border-radius: 0 0 var(--radius-md) var(--radius-md); box-shadow: var(--shadow-md); padding-left: var(--space-4); padding-right: var(--space-4); }
:root[data-palette="portal"] .nlp-barra { background: var(--bg-deepest); }
:root[data-palette="portal"] .nlp-barra .nlp-rot,
:root[data-palette="portal"] .nlp-barra .nlp-periodo { color: color-mix(in srgb, var(--text-inverse) 72%, transparent); }
:root[data-palette="portal"] .nlp-barra .nlp-seg { background: color-mix(in srgb, var(--text-inverse) 12%, transparent); }
:root[data-palette="portal"] .nlp-barra .nlp-seg button { color: color-mix(in srgb, var(--text-inverse) 82%, transparent); }
:root[data-palette="portal"] .nlp-barra .nlp-seg button:hover { color: var(--text-inverse); }
:root[data-palette="portal"] .nlp-barra .nlp-seg button[aria-pressed="true"] { background: var(--bg-card); color: var(--text-primary); }
:root[data-palette="portal"] .nlp-barra .nlp-nav button { color: color-mix(in srgb, var(--text-inverse) 72%, transparent); }
:root[data-palette="portal"] .nlp-barra .nlp-nav button:hover,
:root[data-palette="portal"] .nlp-barra .nlp-nav button.ativo,
:root[data-palette="portal"] .nlp-barra .nlp-nav button[aria-current="true"] { color: var(--text-inverse); background: color-mix(in srgb, var(--text-inverse) 14%, transparent); }

/* Filtro de newsletters e período personalizado (02/10/2026) */
.nlp-nl-btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--border-default); border-radius: var(--radius-md);
  background: var(--bg-card); color: var(--text-primary); font: inherit; font-size: 0.8125rem; cursor: pointer; white-space: nowrap; }
.nlp-nl-btn.ativo { border-color: var(--color-info); box-shadow: inset 0 0 0 1px var(--color-info); font-weight: 600; }
.nlp-nl-limpar { width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--border-default); background: var(--bg-card); color: var(--text-secondary);
  font-size: 16px; line-height: 1; cursor: pointer; }
.nlp-per-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.nlp-per-campos label { display: flex; flex-direction: column; gap: 4px; font-size: 0.75rem; color: var(--text-secondary); font-weight: 600; }
.nlp-per-erro { color: var(--color-danger); font-size: 0.8125rem; min-height: 1em; margin: 8px 0 0; }
.nlp-nlm-topo { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.nlp-nlm-topo input { flex: 1; }
.nlp-nlm-lista { max-height: 52vh; overflow-y: auto; border: 1px solid var(--border-subtle); border-radius: var(--radius-md); }
.nlp-nlm-item { display: grid; grid-template-columns: 18px auto auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 12px;
  border-bottom: 1px solid var(--border-subtle); cursor: pointer; font-size: 0.8125rem; }
.nlp-nlm-item:last-child { border-bottom: 0; }
.nlp-nlm-item:hover { background: var(--bg-surface); }
.nlp-nlm-item[hidden] { display: none; }
.nlp-nlm-ass { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-secondary); }
.nlp-nlm-item:not(:has(.nlp-chip)) { grid-template-columns: 18px auto minmax(0, 1fr) auto; }
.nlp-auto { margin-left: 6px; font-size: 0.6875rem; color: var(--text-muted); font-weight: 500; cursor: help; }

/* Funil: valor em destaque e o desfecho das oportunidades em linha (02/10/2026) */
.nlp-fu-valor { font-size: 1.25rem; font-weight: 800; color: var(--color-success); letter-spacing: -.01em; }
.nlp-fds { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin-top: 16px; }
.nlp-fd { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: var(--radius-md); background: var(--bg-surface); border-left: 4px solid var(--border-default); min-width: 0; }
.nlp-fd.ganha { border-left-color: var(--nlp-ganha); }
.nlp-fd.atendido { border-left-color: var(--nlp-atendido); }
.nlp-fd.perdida { border-left-color: var(--nlp-perdida); }
.nlp-fd.andamento { border-left-color: var(--nlp-andamento); }
.nlp-fd-rot { font-size: 0.6875rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); font-weight: 600; }
.nlp-fd b { font-size: 1.5rem; font-weight: 700; line-height: 1.1; }
.nlp-fd-pct { font-size: 0.75rem; color: var(--text-secondary); }
.nlp-fd-valor { font-size: 1.0625rem; font-weight: 800; color: var(--text-primary); }
.nlp-fd.ganha .nlp-fd-valor { color: var(--color-success); font-size: 1.25rem; }
.nlp-fd.perdida .nlp-fd-valor { color: var(--color-danger); }
.nlp-fd small { font-size: 0.75rem; color: var(--text-muted); line-height: 1.35; }
.nlp-v-total b { color: var(--color-success); }
.nlp-tr-mot b small { font-weight: 500; color: var(--text-muted); margin-left: 4px; }
.nlp-tr-val.ganha small { font-size: 1rem; font-weight: 800; color: var(--color-success); }

/* Vendas: a parte do marketing e a performance por consultor (02/10/2026) */
.nlp .card.nlp-mkt { margin-bottom: 12px; }
.nlp-mkt-destaque { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 4px 0 12px; }
.nlp-mkt-destaque > div { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: var(--radius-md); background: var(--bg-surface); border-left: 4px solid var(--nlp-ganha); }
.nlp-mkt-destaque > div > span { font-size: 0.6875rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); font-weight: 600; }
.nlp-mkt-destaque b { font-size: 1.75rem; font-weight: 800; color: var(--color-success); line-height: 1.1; }
.nlp-mkt-destaque small { font-size: 0.8125rem; color: var(--text-secondary); }
.nlp-mkt-nota { margin: 10px 0 0; font-size: 0.75rem; line-height: 1.45; color: var(--text-muted); }
.nlp .card.nlp-cons { margin-top: 12px; }
.nlp-cons .nlp-topo-tab { padding-bottom: 10px; }
.nlp-ganho { color: var(--color-success); font-weight: 700; }
.nlp-cons th button, .nlp-cons th { white-space: nowrap; }

/* Jornada: os cliques dentro de cada newsletter, com hora e botão (02/10/2026) */
.nlp-lt-cliques { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.nlp-lt-cliques li { font-size: 0.75rem; color: var(--text-secondary); display: flex; gap: 8px; align-items: baseline; padding: 0; }
.nlp-lt-cliques li::before { display: none; }
.nlp-lt-cliques li span { color: var(--text-primary); font-weight: 600; min-width: 64px; }
.nlp-lt-cliques li.auto { color: var(--text-muted); opacity: .75; }
.nlp-lt-cliques li.auto span { color: var(--text-muted); font-weight: 500; }
.nlp-lt-cliques em { font-style: normal; font-size: 0.6875rem; padding: 0 6px; border-radius: var(--radius-full); background: var(--bg-surface); border: 1px solid var(--border-subtle); cursor: help; }
.nlp-lt > li.auto .nlp-lt-tit { color: var(--text-muted); }
.nlp-j-stat small { font-size: 0.6875rem; color: var(--text-muted); font-weight: 500; }
.nlp-lt .nlp-lt-cliques li { padding: 0; }
.nlp-lt .nlp-lt-cliques li::before, .nlp-lt .nlp-lt-cliques li::after { display: none; }
.nlp-fu-sub2 { flex-basis: 100%; text-align: right; font-size: 0.75rem; font-weight: 500; color: var(--text-secondary); font-style: italic; }

/* As perdidas, clicáveis (02/10/2026) */
.nlp-tr-perda { display: flex; justify-content: space-between; gap: 10px; width: 100%; border: 0; background: none; padding: 2px 4px; margin: 0 -4px; border-radius: var(--radius-sm);
  font: inherit; font-size: 0.75rem; color: var(--text-secondary); cursor: pointer; text-align: left; }
.nlp-tr-perda:hover, .nlp-tr-perda:focus-visible { background: var(--bg-card); color: var(--text-primary); outline: none; }
.nlp-tr-perda em { font-style: normal; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: underline dotted; text-underline-offset: 3px; }
.nlp-tr-todas, .nlp-fd-ver { margin-top: 6px; font-size: 0.75rem; align-self: flex-start; }
.nlp-pe-filtros { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 10px; }
.nlp-pe-filtros label { display: flex; flex-direction: column; gap: 4px; font-size: 0.75rem; color: var(--text-secondary); font-weight: 600; }
.nlp-pe-filtros b { margin-left: auto; font-size: 0.8125rem; }
.nlp-pe-tabela { max-height: 60vh; overflow-y: auto; }
.nlp-pe-tabela tr.nlp-linha { cursor: pointer; }
.nlp-pe-tabela tr.nlp-linha:hover td { background: var(--bg-surface); }

/* Jornada: o que comprou e quando (02/10/2026) */
.nlp-cps { display: flex; flex-direction: column; gap: 10px; margin-bottom: 6px; }
.nlp-cp { border: 1px solid var(--border-subtle); border-left: 4px solid var(--nlp-andamento); border-radius: var(--radius-md); padding: 12px 14px; background: var(--bg-surface); }
.nlp-cp.ganha { border-left-color: var(--nlp-ganha); }
.nlp-cp.logrado { border-left-color: var(--nlp-atendido); }
.nlp-cp.perdida, .nlp-cp.nao-logrado, .nlp-cp.encerrada { border-left-color: var(--nlp-perdida); }
.nlp-cp-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.nlp-cp-st { font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-secondary); }
.nlp-cp-valor { font-size: 1.25rem; font-weight: 800; color: var(--color-success); }
.nlp-cp-nome { font-size: 0.875rem; font-weight: 600; margin: 4px 0 8px; }
.nlp-cp-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 16px; }
.nlp-cp-grade div { display: flex; flex-direction: column; min-width: 0; }
.nlp-cp-grade span { font-size: 0.6875rem; color: var(--text-muted); }
.nlp-cp-grade b { font-size: 0.8125rem; font-weight: 500; color: var(--text-primary); overflow-wrap: anywhere; }
.nlp-cp-fases { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--border-subtle); font-size: 0.75rem; color: var(--text-secondary); }
.nlp-cp-fases span { padding: 1px 8px; border-radius: var(--radius-full); background: var(--bg-card); border: 1px solid var(--border-subtle); }
.nlp-cp-fases small { color: var(--text-muted); margin-left: 3px; }
.nlp-cp-fases i { font-style: normal; color: var(--text-muted); }

/* A ficha do consultor (02/10/2026): quatro números que filtram, a linha de ritmo, três vistas */
.nlp-cons tbody tr.nlp-linha { cursor: pointer; }
.nlp-cons-nome { color: var(--text-primary); font-weight: 600; text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 30%, transparent); text-underline-offset: 3px; }
.nlp-cons tbody tr.nlp-linha:hover .nlp-cons-nome { text-decoration-color: currentColor; }
.nlp-cf-sub { margin: 0 0 14px; font-size: 0.8125rem; }
.nlp-cf-sub b { color: var(--text-primary); }
.nlp-cf-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-bottom: 12px; }
.nlp-cf-card { text-align: left; border: 1px solid transparent; border-top: 3px solid var(--nlp-andamento); background: var(--bg-surface); border-radius: var(--radius-md); padding: 12px 14px; font: inherit; color: inherit; cursor: pointer; display: flex; flex-direction: column; gap: 2px; transition: border-color .15s, box-shadow .15s; }
.nlp-cf-card.todos { border-top-color: var(--text-muted); }
.nlp-cf-card.ganha { border-top-color: var(--nlp-ganha); }
.nlp-cf-card.logrado { border-top-color: var(--nlp-atendido); }
.nlp-cf-card.perdida { border-top-color: var(--nlp-perdida); }
.nlp-cf-card:hover { box-shadow: var(--shadow-sm); border-color: var(--border-subtle); }
.nlp-cf-card[aria-pressed="true"] { border-color: var(--text-primary); background: var(--bg-card); box-shadow: var(--shadow-sm); }
.nlp-cf-card b { font-size: 1.5rem; font-weight: 600; line-height: 1.1; }
.nlp-cf-card span { font-size: 0.8125rem; color: var(--text-secondary); font-weight: 600; }
.nlp-cf-card small { font-size: 0.75rem; color: var(--text-muted); }
.nlp-cf-ritmo { display: flex; flex-wrap: wrap; gap: 6px 22px; padding: 10px 14px; margin-bottom: 18px; background: var(--bg-surface); border-radius: var(--radius-md); font-size: 0.8125rem; color: var(--text-secondary); }
.nlp-cf-ritmo b { color: var(--text-primary); }
.nlp-cf-ritmo small { color: var(--text-muted); }
.nlp-cf-ritmo [data-tip] { cursor: help; text-decoration: underline dotted color-mix(in srgb, currentColor 40%, transparent); text-underline-offset: 3px; }
.nlp-cf-vistas { margin-bottom: 10px; scroll-margin-top: 12px; }
.nlp-cf-filtro { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; font-size: 0.8125rem; }
.nlp-cf-conta { margin-left: auto; }
.nlp-cf-pilula { border: 1px solid var(--border-subtle); background: var(--bg-card); border-radius: 999px; padding: 3px 10px; font: inherit; font-size: 0.75rem; font-weight: 600; color: var(--text-primary); cursor: pointer; }
.nlp-cf-pilula:hover { border-color: var(--text-primary); }
.nlp-cf-pilula span { color: var(--text-muted); margin-left: 4px; }
.nlp-cf-dica { margin: 0 0 8px; font-size: 0.8125rem; }
.nlp-cf-duas { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 760px) { .nlp-cf-duas { grid-template-columns: 1fr; } }
.nlp-cf-barra { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(60px, 1fr) auto 38px; align-items: center; gap: 10px; width: 100%; border: 0; background: none; padding: 7px 8px; border-radius: var(--radius-sm); font: inherit; font-size: 0.8125rem; color: inherit; text-align: left; cursor: pointer; }
.nlp-cf-barra:hover { background: var(--bg-surface); }
.nlp-cf-barra-rot { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nlp-cf-barra-trilho { height: 8px; border-radius: 4px; background: var(--bg-surface); overflow: hidden; }
.nlp-cf-barra-trilho i { display: block; height: 100%; background: var(--nlp-perdida); border-radius: 4px; }
.nlp-cf-barra small { color: var(--text-muted); text-align: right; }
.nlp-cf-semnum { display: block; margin-top: 14px; }
.nlp-cf tbody tr.nlp-linha { cursor: pointer; }
.nlp-cf-opp { display: block; color: var(--text-muted); font-size: 0.75rem; font-weight: 400; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nlp-cf-parada { display: block; color: var(--nlp-perdida); font-size: 0.75rem; font-weight: 600; }
.nlp-cf-card small .nlp-cf-parada { display: inline; }
.nlp-cf-st { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 0.75rem; font-weight: 600; background: color-mix(in srgb, var(--nlp-andamento) 14%, transparent); color: var(--text-primary); white-space: nowrap; }
.nlp-cf-st.ganha { background: color-mix(in srgb, var(--nlp-ganha) 16%, transparent); }
.nlp-cf-st.logrado { background: color-mix(in srgb, var(--nlp-atendido) 16%, transparent); }
.nlp-cf-st.perdida, .nlp-cf-st.nao-logrado, .nlp-cf-st.encerrada { background: color-mix(in srgb, var(--nlp-perdida) 14%, transparent); }
.nlp-nw { white-space: nowrap; }
/* o período da ficha do consultor (02/10/2026): independe do da página */
.nlp-cf-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
.nlp-cf-datas { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin: 0 0 12px; padding: 10px 12px; background: var(--bg-surface); border-radius: var(--radius-md); }
.nlp-cf-datas label { display: flex; flex-direction: column; gap: 4px; font-size: 0.75rem; font-weight: 600; color: var(--text-secondary); }
.nlp-cf-datas .nlp-per-erro { margin: 0; align-self: center; }

/* A ficha do cliente (06/10/2026): todo nome de cliente ou de oportunidade abre o histórico inteiro, de qualquer tela */
.ficha-link { cursor: pointer; text-decoration: underline dotted; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 3px; }
.ficha-link:hover, .ficha-link:focus-visible { text-decoration-color: currentColor; color: var(--color-info); outline: none; }
tr[data-ficha-a], tr[data-ficha-conta] { cursor: pointer; }
.ficha-cab { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.ficha-cab .btn { margin-left: auto; }
/* o cabeçalho com etiquetas (14/10/2026, o desenho do painel da oportunidade do hub): as unidades e as marcas da conta */
.ficha-cab-esq { display: grid; gap: 6px; flex: 1 1 auto; min-width: 0; }
.ficha-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ficha-tags .nlp-chip { margin: 0; }
.ficha-tag-forte { color: var(--color-success); border-color: var(--color-success); background: var(--color-success-bg); }
.ficha-dados { margin: 0; font-size: .8125rem; }
.ficha-dados:empty { display: none; }
.ficha .nlp-lt li.ficha-destaque, .ficha tr.ficha-destaque td { background: color-mix(in srgb, var(--color-warning) 14%, transparent); }

/* ─── Exportar: Excel ou PDF, escolhendo as seções (06/10/2026) ─────────── */
.exp-formatos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 16px; }
.exp-formato, .exp-secao { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--border-subtle); border-radius: var(--radius-md); background: var(--bg-surface); cursor: pointer; }
.exp-formato:hover, .exp-secao:hover { border-color: var(--border-default); }
.exp-formato:has(input:checked) { border-color: var(--color-info); background: color-mix(in srgb, var(--color-info) 7%, var(--bg-surface)); }
.exp-formato input, .exp-secao input { margin-top: 3px; flex-shrink: 0; accent-color: var(--color-info); }
.exp-formato span, .exp-secao span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.exp-formato b, .exp-secao b { font-size: .875rem; font-weight: 600; color: var(--text-primary); }
.exp-formato small, .exp-secao small { font-size: .75rem; color: var(--text-muted); line-height: 1.35; }
.exp-topo { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 8px; font-size: .8125rem; color: var(--text-secondary); }
.exp-topo .nlp-link { margin: 0; }
.exp-secoes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.exp-secao:has(input:not(:checked)) b { color: var(--text-muted); }
.exp-filtros { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 14px 0 0; font-size: .75rem; color: var(--text-muted); }
.exp-filtros b { font-weight: 600; color: var(--text-secondary); }
.exp-acoes { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border-subtle); }
.exp-status { font-size: .8125rem; color: var(--text-secondary); margin-right: auto; }
/* o recorte da exportação: unidade, período, tipo e filtros — começam com os da tela */
.exp-recorte { margin-bottom: 16px; padding: 12px 14px 14px; border: 1px solid var(--border-default); border-radius: var(--radius-md); background: var(--bg-card); }   /* o seletor (.nlp-seg) é cinza: o fundo do bloco fica o do cartão */
.exp-recorte .exp-topo { margin-bottom: 10px; }
.exp-dica { font-size: .75rem; color: var(--text-muted); text-align: right; }
.exp-campos { display: flex; flex-wrap: wrap; gap: 12px 22px; align-items: flex-start; }
.exp-campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.exp-campo > span { font-size: .6875rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.exp-campo .form-select { min-width: 230px; }
.exp-datas { display: flex; gap: 10px; margin-top: 4px; }
.exp-datas[hidden] { display: none; }
.exp-datas label { display: flex; flex-direction: column; gap: 3px; font-size: .75rem; color: var(--text-secondary); }
.exp-checks { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 12px; }
.exp-check { display: inline-flex; gap: 7px; align-items: center; font-size: .8125rem; color: var(--text-secondary); cursor: pointer; }
.exp-check input { margin: 0; accent-color: var(--color-info); }
@media (max-width: 640px) { .exp-formatos, .exp-secoes { grid-template-columns: 1fr; } .exp-campo, .exp-campo .form-select { width: 100%; } }

/* ─── A legenda das cores (07/10/2026; js/components/legendaDeCores.js) ─── */
.leg { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0 0 10px; font-size: .75rem; color: var(--text-secondary); }
.cmp-2col + .leg, .nlp-tipo + .leg { margin: 12px 0 0; }
.leg-item { display: inline-flex; align-items: center; gap: 6px; }
.leg-item > i { flex-shrink: 0; }
.leg-ponto { width: 8px; height: 8px; border-radius: 50%; background: var(--c, var(--text-muted)); }
.leg-vazio { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid var(--c, var(--text-muted)); }
.leg-faixa { width: 14px; height: 8px; border-radius: 2px; background: var(--c, var(--text-muted)); }
.leg-destaque { width: 16px; height: 10px; border-radius: 2px; background: color-mix(in srgb, var(--color-warning) 14%, transparent); border: 1px solid color-mix(in srgb, var(--color-warning) 45%, transparent); }

/* ─── Tabela mais larga que a caixa: setas e sombra na borda (07/10/2026; js/components/rolagemLateral.js) ─── */
.rl { position: relative; }
.rl::before, .rl::after { content: ''; position: absolute; top: 0; bottom: 0; width: 40px; pointer-events: none; opacity: 0; transition: opacity .15s; z-index: 1; }
.rl::before { left: 0; background: linear-gradient(to right, var(--bg-card), transparent); }
.rl::after { right: 0; background: linear-gradient(to left, var(--bg-card), transparent); }
.rl.mais-esq::before, .rl.mais-dir::after { opacity: 1; }
.rl-seta { position: absolute; top: min(50%, 110px); transform: translateY(-50%); z-index: 2; width: 32px; height: 32px; padding: 0; display: grid; place-items: center;
  border-radius: var(--radius-full); border: 1px solid var(--border-default); background: var(--bg-card); color: var(--text-primary); box-shadow: var(--shadow-md);
  font-size: 1.25rem; line-height: 1; cursor: pointer; }
.rl-seta:hover { background: var(--bg-surface); }
.rl-seta:focus-visible { outline: 2px solid var(--color-info); outline-offset: 2px; }
.rl-seta > span { margin-top: -2px; }
.rl-esq { left: 6px; }
.rl-dir { right: 6px; }
.rl-seta[hidden] { display: none; }

/* ─── Ordenar e filtrar as listas dos modais (07/10/2026; js/components/ordemEFiltro.js) ─── */
.of-barra { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; margin: 0 0 10px; }
.of-filtro, .of-busca { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.of-filtro > span, .of-busca > span { font-size: .6875rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.of-filtro .form-select { min-width: 140px; max-width: 230px; padding-top: 5px; padding-bottom: 5px; font-size: .8125rem; }
.of-busca .form-input { width: 210px; padding-top: 5px; padding-bottom: 5px; font-size: .8125rem; }
.of-limpar { margin: 0 0 7px; }
.of-ord { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; font: inherit; color: inherit; text-transform: inherit; letter-spacing: inherit; white-space: nowrap; }
.of-ord > i { font-style: normal; font-size: .8em; opacity: .4; }
.of-ord:hover > i, .of-ord.ativo > i { opacity: 1; }
.of-ord:hover, .of-ord.ativo { color: var(--text-primary); }
.of-ord:focus-visible { outline: 2px solid var(--color-info); outline-offset: 2px; border-radius: 2px; }
@media (max-width: 640px) { .of-filtro, .of-busca, .of-filtro .form-select, .of-busca .form-input { width: 100%; max-width: none; } }
