/* ═══════════════════════════════════════════════════════════════
   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: 4px 10px;
  border-radius: var(--radius-full); white-space: nowrap; cursor: pointer; }
.nlp-nav button:hover { color: var(--text-primary); background: var(--bg-surface); }
.nlp-nav button.ativo { 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 */
.nlp-secao { margin-top: var(--space-8); 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: 12px; 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); }

/* 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: 12px; }
.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; }
.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: 12px; }
.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 6px; 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, 1fr); gap: 10px; margin-bottom: 16px; }
.nlp-j-stat { background: var(--bg-surface); border-radius: var(--radius-md); padding: 10px 12px; }
.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-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; }
}
