
/* ── Tema (Claro/Escuro) ───────────────────────────────────────────
   Escuro é o padrão (:root, sem atributo). data-theme="light" na <html>
   liga o tema claro — ver toggleTheme() mais abaixo no bloco de script principal.
   Praticamente todo o "chrome" do app (menu lateral, cards, inputs,
   tabelas, badges, kanban, modais, painel do Consultor de IA) usa essas
   variáveis. Exceção deliberada: o "Modo Sombra"/War Room do Funil
   (#modal-funil-sombra e afins) e a tela cheia do JOE (orbe/Modo Show)
   continuam sempre escuros — são experiências imersivas tipo "cockpit",
   não telas de trabalho comuns. */
:root{
  /* Paleta "Inteligência Comercial": fundo matte com viés azul-marinho em
     vez de preto puro (premium/tech, não "app escuro genérico"), degraus
     página→superfície→card→card-elevado ficando progressivamente mais
     claros. Ver diretriz de design system compartilhada em 2026-09-08. */
  --bg-page:#05070d;
  --bg-surface:#0d111c;
  --bg-surface-alt:#141a29;
  --bg-chip:#101522;
  --bg-sunken:#080b14;
  --bg-hover:#141a29;
  --bg-row-alt:#0d111c;
  --bg-row-hover:#141a29;
  --bg-row-group:#101522;
  --border-default:rgba(255,255,255,.09);
  --border-strong:rgba(255,255,255,.16);
  --border-subtle:rgba(255,255,255,.06);
  --border-faint:rgba(255,255,255,.045);
  /* Hierarquia de texto: text-primary/secondary/muted são conteúdo real e
     sempre ≥4.5:1 (WCAG 1.4.3). text-faint/dim são a camada "chrome"
     (ícones, glifos decorativos, divisores) e seguem o limiar de 3:1 pra
     componentes não-textuais (WCAG 1.4.11) — por isso ficam mais claras
     que o mínimo de texto, de propósito. */
  --text-primary:#f5f7fa;
  --text-secondary:#a7b0c0;
  --text-muted:#8b95a8;
  --text-faint:#687386;
  --text-dim:#687386;
  --text-quiet:#c3cad6;
  --text-quiet2:#a7b0c0;
  /* Cores de marca/feedback calibradas pra uso como TEXTO (rótulos, ícones
     de status) — sempre ≥4.5:1 na superfície de cartão. As cores "puras"
     (#22d3ee, #8b5cf6, #2fe08a, #fbbf24, #ff5470) continuam existindo como
     estão pra preenchimento sólido (botões, badges, pontos de status),
     onde o contraste que importa é o do texto EM CIMA delas, não delas
     contra o fundo da página. */
  --brand-cyan-text:#22d3ee;
  --brand-blue-text:#60a5fa;
  --brand-purple-text:#a78bfa;
  --success-text:#2fe08a;
  --warning-text:#fbbf24;
  --danger-text:#ff5470;
  --tint-cyan-bg:rgba(34,211,238,.08);
  --tint-cyan-bg-2:rgba(34,211,238,.12);
  --tint-cyan-border:rgba(34,211,238,.30);
  --tint-green-bg:#0c2e1e;
  --tint-green-bg-2:#0b241a;
  --tint-green-border:#1d4d35;
  --tint-red-bg:#3a1220;
  --tint-amber-bg:#33280b;
  --tint-amber-bg-2:#2b230b;
  --tint-purple-bg:rgba(139,92,246,.10);
  --tint-purple-border:rgba(139,92,246,.30);
  --card-border-color:rgba(255,255,255,.07);
  /* ── Tokens de gráfico ─────────────────────────────────────────────
     Paleta fechada em ciano→azul→roxo (a identidade do produto). Nenhum
     gráfico deve inventar cor fora daqui: é o que impede o board virar
     arco-íris e o que faz dois gráficos de telas diferentes parecerem
     desenhados pela mesma equipe. Status (verde/âmbar/vermelho) existe
     à parte, só pra semântica — nunca como cor decorativa de série. */
  --chart-cyan:#22d3ee;
  --chart-cyan-light:#67e8f9;
  --chart-blue:#3b82f6;
  --chart-blue-light:#60a5fa;
  --chart-purple:#8b5cf6;
  --chart-purple-light:#a78bfa;
  --chart-success:#10b981;
  --chart-warning:#f59e0b;
  --chart-danger:#ef4444;
  --chart-grid:rgba(148,163,184,.09);
  --chart-axis:#8b95a8;
  --chart-tooltip-bg:#141a29;
  --chart-tooltip-text:#f5f7fa;
  /* Halo do número central (só no tema escuro) e trilha do medidor. */
  --hud-glow:rgba(34,211,238,.30);
  --hud-track:rgba(255,255,255,.05);
  /* Gradiente oficial: ciano → azul → roxo. Reservado pra destaque real
     (CTA principal, dado em evidência), nunca em tudo. */
  --gradient-brand:linear-gradient(135deg,#22d3ee 0%,#3b82f6 50%,#8b5cf6 100%);
  /* Efeito 3D: luz "pegando" a borda superior interna do cartão (como se a
     superfície fosse levemente curva/elevada) + sombra de contato embaixo —
     duas camadas em vez de uma só é o que lê como profundidade real, não
     só "cartão escuro com sombra". */
  --shadow-surface:inset 0 1px 0 rgba(255,255,255,.06),0 1px 0 rgba(255,255,255,.03),0 14px 34px rgba(0,0,0,.28);
  --focus-ring:0 0 0 3px rgba(34,211,238,.35);
}
html[data-theme="light"]{
  --bg-page:#f7f9fc;
  --bg-surface:#ffffff;
  --bg-surface-alt:#f7f9fc;
  --bg-chip:#f1f5f9;
  --bg-sunken:#f7f9fc;
  --bg-hover:#f1f5f9;
  --bg-row-alt:#f8fafc;
  --bg-row-hover:#f1f5f9;
  --bg-row-group:#f1f5f9;
  --border-default:#e7ebf2;
  --border-strong:#cbd5e1;
  --border-subtle:#e7ebf2;
  --border-faint:#eef2f7;
  --text-primary:#172033;
  --text-secondary:#64748b;
  --text-muted:#64748b;
  --text-faint:#94a3b8;
  --text-dim:#94a3b8;
  --text-quiet:#334155;
  --text-quiet2:#475569;
  --brand-cyan-text:#0e7490;
  --brand-blue-text:#2563eb;
  --brand-purple-text:#7c3aed;
  --success-text:#15803d;
  --warning-text:#b45309;
  --danger-text:#dc2626;
  --tint-cyan-bg:rgba(6,182,212,.08);
  --tint-cyan-bg-2:rgba(6,182,212,.12);
  --tint-cyan-border:#a5f3fc;
  --tint-green-bg:#ecfdf5;
  --tint-green-bg-2:#ecfdf5;
  --tint-green-border:#a7f3d0;
  --tint-red-bg:#fef2f2;
  --tint-amber-bg:#fffbeb;
  --tint-amber-bg-2:#fffbeb;
  --tint-purple-bg:#f5f3ff;
  --tint-purple-border:#ddd6fe;
  --card-border-color:#e7ebf2;
  /* Mesma identidade de gráfico no tema claro: as cores de marca NÃO
     mudam entre temas (é o que faz o usuário reconhecer o mesmo produto);
     só grade, eixo e tooltip se adaptam à superfície clara. */
  --chart-cyan:#06b6d4;
  --chart-cyan-light:#22d3ee;
  --chart-blue:#3b82f6;
  --chart-blue-light:#60a5fa;
  --chart-purple:#7c3aed;
  --chart-purple-light:#a78bfa;
  --chart-success:#059669;
  --chart-warning:#d97706;
  --chart-danger:#dc2626;
  --chart-grid:rgba(15,23,42,.055);
  --chart-axis:#64748b;
  --chart-tooltip-bg:#ffffff;
  --chart-tooltip-text:#172033;
  --hud-glow:rgba(6,182,212,.14);
  --hud-track:#e2e8f0;
  --gradient-brand:linear-gradient(135deg,#06b6d4 0%,#3b82f6 50%,#7c3aed 100%);
  /* "Interface do Crescimento": cartões brancos flutuando sobre um cinza
     ultra suave — sombra em duas camadas (contato fino + halo difuso),
     tingida de slate em vez de preto puro, pra ler como elevação e não
     como sujeira. */
  --shadow-surface:inset 0 1px 0 rgba(255,255,255,.85),0 1px 2px rgba(15,23,42,.04),0 14px 28px -6px rgba(15,23,42,.10);
  --focus-ring:0 0 0 3px rgba(6,182,212,.25);
}
/* ── Retrofit AA: cores "cruas" usadas como color: inline ──────────────────
   O código tinha centenas de trechos com color:#hex fixo (estático e
   também gerado depois via innerHTML/template literals). Em vez de editar
   cada função de renderização, os seletores de atributo abaixo casam contra
   o style="" real do DOM em tempo de render — cobrindo os dois casos de uma
   vez só — e mapeiam pros tokens semânticos calibrados em WCAG AA acima.
   !important é necessário pra vencer o color inline original (especifici-
   dade 1,0,0,0), que do contrário venceria por estar mais "perto" do nó.
   Cobre os hex de maior frequência (~92% das ocorrências); hex de cauda
   muito longa (1–2 usos, cores de terceiros como ícone do Google/Meta,
   texto sobre chip colorido, etc.) foram deixados como estão de propósito. */
[style*="color:#ededed"],[style*="color: #ededed"]{color:var(--text-primary)!important}
[style*="color:#a1a1a1"],[style*="color: #a1a1a1"]{color:var(--text-secondary)!important}
[style*="color:#8a8a8a"],[style*="color: #8a8a8a"]{color:var(--text-muted)!important}
[style*="color:#7a7a7a"],[style*="color: #7a7a7a"]{color:var(--text-faint)!important}
[style*="color:#d4d4d4"],[style*="color: #d4d4d4"]{color:var(--text-quiet)!important}
[style*="color:#b3b3b3"],[style*="color: #b3b3b3"]{color:var(--text-quiet2)!important}
[style*="color:#5c6a6c"],[style*="color: #5c6a6c"]{color:var(--text-dim)!important}
[style*="color:#22d3ee"],[style*="color: #22d3ee"]{color:var(--brand-cyan-text)!important}
[style*="color:#38bdf8"],[style*="color: #38bdf8"]{color:var(--brand-cyan-text)!important}
[style*="color:#00d5e0"],[style*="color: #00d5e0"]{color:var(--brand-cyan-text)!important}
[style*="color:#22b8c4"],[style*="color: #22b8c4"]{color:var(--brand-cyan-text)!important}
[style*="color:#00b8cc"],[style*="color: #00b8cc"]{color:var(--brand-cyan-text)!important}
[style*="color:#22d3ee"],[style*="color: #22d3ee"]{color:var(--brand-cyan-text)!important}
[style*="color:#8b5cf6"],[style*="color: #8b5cf6"]{color:var(--brand-purple-text)!important}
[style*="color:#7c3aed"],[style*="color: #7c3aed"]{color:var(--brand-purple-text)!important}
[style*="color:#6366f1"],[style*="color: #6366f1"]{color:var(--brand-purple-text)!important}
[style*="color:#2fe08a"],[style*="color: #2fe08a"]{color:var(--success-text)!important}
[style*="color:#4ade80"],[style*="color: #4ade80"]{color:var(--success-text)!important}
[style*="color:#86efac"],[style*="color: #86efac"]{color:var(--success-text)!important}
[style*="color:#2dd4bf"],[style*="color: #2dd4bf"]{color:var(--success-text)!important}
[style*="color:#14b8a6"],[style*="color: #14b8a6"]{color:var(--success-text)!important}
[style*="color:#fbbf24"],[style*="color: #fbbf24"]{color:var(--warning-text)!important}
[style*="color:#ff5470"],[style*="color: #ff5470"]{color:var(--danger-text)!important}
/* Zonas propositalmente sempre escuras (War Room do Funil e o palco/cockpit
   do JOE) ficam de fora do tema claro por design (ver nota no topo deste
   bloco). Como os overrides acima usam var(), reatribuir esses tokens aqui,
   escopado a essas raízes, "trava" o resultado final nos tons vívidos de
   sempre — em vez de precisar excluir cada seletor de atributo uma a uma. */
#modal-funil-sombra,.joe-cockpit,#joe-orb-container,#joe-fullscreen-stage{
  --text-primary:#f5f7fa;--text-secondary:#a7b0c0;--text-muted:#8b95a8;
  --text-faint:#687386;--text-quiet:#c3cad6;--text-quiet2:#a7b0c0;--text-dim:#687386;
  --brand-cyan-text:#22d3ee;--brand-purple-text:#a78bfa;--success-text:#2fe08a;
  --warning-text:#fbbf24;--danger-text:#ff5470;
  --bg-page:#05070d;--bg-surface:#0d111c;--bg-surface-alt:#141a29;--bg-chip:#101522;
  --bg-sunken:#080b14;--bg-hover:#141a29;
  --border-default:rgba(255,255,255,.09);--border-strong:rgba(255,255,255,.16);--border-subtle:rgba(255,255,255,.06);--border-faint:rgba(255,255,255,.045);
  --tint-cyan-bg:rgba(34,211,238,.08);--tint-cyan-bg-2:rgba(34,211,238,.12);--tint-cyan-border:rgba(34,211,238,.30);
  --tint-green-bg:#0c2e1e;--tint-green-bg-2:#0b241a;--tint-green-border:#1d4d35;
  --tint-red-bg:#3a1220;--tint-amber-bg:#33280b;--tint-amber-bg-2:#2b230b;
  --tint-purple-bg:rgba(139,92,246,.10);--tint-purple-border:rgba(139,92,246,.30);
}
*,*::before,*::after{box-sizing:border-box}
/* Trava de segurança: canvas de gráfico (Chart.js) nunca pode ficar mais
   largo que o contêiner dele. Sem isso, quando o gráfico fica dentro de um
   flex/grid mais apertado (caso da coluna nova de "Participação na
   Receita"), o Chart.js pode calcular uma largura própria maior que a
   coluna disponível e o canvas literalmente escapa pra fora do cartão. */
canvas{max-width:100%}
/* ── Perfil do Lead: Timeline (fonte única de verdade) ──────────────
   Duas colunas: à esquerda o retrato do negócio (temperatura, BANT,
   ações), à direita a história em ordem. O objetivo é escaneabilidade:
   quem assume a negociação entende o cliente sem abrir mais nada. */
.tl-grid{display:grid;grid-template-columns:minmax(230px,30%) 1fr;gap:16px;align-items:start}
@media(max-width:820px){.tl-grid{grid-template-columns:1fr}}
.tl-side{position:sticky;top:0}
.tl-side-card{background:var(--bg-surface-alt);border:1px solid var(--border-subtle);border-radius:12px;padding:14px;margin-bottom:10px}
.tl-side-lbl{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin:0 0 9px}
.tl-bant-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border-subtle)}
.tl-bant-row:last-child{border-bottom:none}
.tl-bant-dot{width:16px;height:16px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:8px;flex-shrink:0}
.tl-acoes{display:flex;gap:7px}
.tl-acao{flex:1;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:9px;padding:9px 0;
  cursor:pointer;color:var(--text-secondary);font-size:13px;transition:all .13s}
.tl-acao:hover{border-color:var(--chart-cyan);color:var(--chart-cyan);background:var(--tint-cyan-bg)}
/* A linha vertical que costura os eventos. Fica no ::before do container
   para não precisar de um elemento por conexão. */
.tl-feed{position:relative;padding-left:26px}
.tl-feed::before{content:'';position:absolute;left:8px;top:6px;bottom:6px;width:1.5px;background:var(--border-subtle)}
.tl-ev{position:relative;margin-bottom:14px}
.tl-ev::before{content:'';position:absolute;left:-22px;top:13px;width:9px;height:9px;border-radius:99px;
  background:var(--bg-surface);border:2px solid var(--border-strong)}
.tl-ev.destaque::before{border-color:var(--chart-cyan);box-shadow:0 0 0 3px var(--tint-cyan-bg)}
/* Evento simples (etapa movida, e-mail, nota): uma linha, sem cartão —
   só o card de reunião ganha peso visual, pra ele saltar na varredura. */
.tl-simples{display:flex;align-items:baseline;gap:9px;padding:7px 0;font-size:12px;flex-wrap:wrap}
.tl-simples-t{color:var(--text-primary);font-weight:600}
.tl-simples-d{color:var(--text-muted);font-size:10.5px;margin-left:auto;white-space:nowrap}
/* Cartão de reunião analisada: o destaque da timeline. */
.tl-card{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:12px;
  box-shadow:var(--shadow-surface);overflow:hidden}
.tl-card-head{display:flex;align-items:center;gap:9px;padding:12px 14px;border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}
.tl-card-ico{width:26px;height:26px;border-radius:8px;background:var(--tint-cyan-bg);color:var(--chart-cyan);
  display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}
.tl-card-body{padding:13px 14px}
/* O resumo da IA num bloco tingido: sinaliza "isto foi gerado", sem
   precisar de um rótulo gritando isso em cada cartão. */
.tl-resumo{background:var(--tint-purple-bg);border:1px solid var(--tint-purple-border);border-radius:9px;
  padding:11px 13px;font-size:12px;line-height:1.65;color:var(--text-secondary)}
.tl-passos{margin:11px 0 0;padding:0;list-style:none}
.tl-passo{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:11.5px;color:var(--text-secondary);line-height:1.5}
.tl-passo i{color:var(--text-dim);font-size:10px;margin-top:3px;flex-shrink:0}
.tl-transc{margin-top:11px;background:var(--bg-sunken);border:1px solid var(--border-subtle);border-radius:9px;
  padding:12px 14px;max-height:320px;overflow-y:auto;font-size:11.5px;line-height:1.75;color:var(--text-secondary);
  white-space:pre-wrap;font-family:'JetBrains Mono',ui-monospace,monospace}
.tl-link{background:none;border:none;color:var(--chart-cyan);font-size:11px;font-weight:700;cursor:pointer;
  padding:8px 0 0;font-family:inherit}
.tl-link:hover{text-decoration:underline}
/* Memória de objeções (ficha do negócio, aba Histórico) — o 4º motor do JOE */
.ob-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.ob-cab .tl-side-lbl{margin:0}
.ob-qtd{font-size:9.5px;font-weight:800;color:var(--warning-text);margin-left:6px;letter-spacing:0;text-transform:none;white-space:nowrap}
.ob-add{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:7px;width:24px;height:24px;cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ob-add:hover{border-color:var(--chart-cyan);color:var(--chart-cyan)}
.ob-vazio{color:var(--text-muted);font-size:11px;margin:0;line-height:1.6}
.ob-grupo{padding:9px 0;border-bottom:1px solid var(--border-subtle)}
.ob-grupo:first-child{padding-top:0}
.ob-grupo:last-child{border-bottom:none;padding-bottom:0}
.ob-topo{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ob-cat{font-size:11.5px;font-weight:700;color:var(--text-primary)}
.ob-vezes{font-size:9.5px;font-weight:800;color:var(--text-secondary);background:var(--bg-chip);border-radius:99px;padding:1px 6px;font-variant-numeric:tabular-nums}
.ob-status{margin-left:auto;font-size:9.5px;font-weight:700;border-radius:99px;padding:1px 7px}
.ob-grupo.aberta .ob-status{background:var(--tint-amber-bg);color:var(--warning-text)}
.ob-grupo.contornada .ob-status{background:var(--tint-green-bg);color:var(--success-text)}
.ob-grupo.contornada .ob-cat,.ob-grupo.contornada .ob-texto{color:var(--text-muted)}
.ob-texto{margin:5px 0 2px;font-size:11.5px;line-height:1.5;color:var(--text-secondary);overflow-wrap:anywhere}
.ob-meta{margin:0;font-size:10px;color:var(--text-dim);line-height:1.5;overflow-wrap:anywhere}
.ob-acao{margin:6px 0 0;font-size:10.5px;line-height:1.5;color:var(--text-secondary);display:flex;gap:6px}
.ob-acao i{color:var(--warning-text);margin-top:3px;font-size:9.5px}
.ob-contorno{margin:5px 0 0;font-size:10.5px;color:var(--success-text);line-height:1.5;overflow-wrap:anywhere}
.ob-botoes{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}
.ob-btn{background:none;border:1px solid var(--border-default);color:var(--text-secondary);border-radius:7px;padding:3px 8px;font-size:10px;font-weight:700;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px}
.ob-btn:hover{border-color:var(--chart-cyan);color:var(--chart-cyan)}
.ob-btn.ok:hover{border-color:var(--success-text);color:var(--success-text)}
.ob-btn.perigo:hover{border-color:var(--danger-text);color:var(--danger-text)}
.ob-btn:focus-visible,.ob-add:focus-visible{outline:2px solid var(--chart-cyan);outline-offset:1px}
.ob-contornar{margin-top:7px}
.ob-itens{margin-top:8px;border-left:2px solid var(--border-subtle);padding-left:9px;display:flex;flex-direction:column;gap:9px}
.ob-item-t{margin:0;font-size:11px;color:var(--text-secondary);line-height:1.5;overflow-wrap:anywhere}
.ob-item-acoes{display:flex;gap:6px;margin-top:4px;align-items:center}
.ob-item-acoes .inp{padding:3px 6px;font-size:10.5px;width:auto}
.ob-form{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.ob-sugestao{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:-4px 0 13px;padding:9px 12px;border-radius:10px;background:var(--tint-amber-bg);color:var(--text-primary);font-size:11.5px;line-height:1.5}
.ob-sugestao>i{color:var(--warning-text)}
.ob-sug-botoes{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
/* Kanban: a objeção principal em aberto no card */
.kb-obj{font-size:9px;font-weight:700;color:var(--warning-text);background:var(--tint-amber-bg);border-radius:99px;padding:1px 6px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}
.kb-obj i{font-size:8px}
/* Motivo da perda: as objeções em aberto do negócio */
.mp-objecoes{margin:-6px 0 12px;font-size:11px;line-height:1.5;color:var(--text-secondary);background:var(--tint-amber-bg);border-radius:8px;padding:8px 10px}
/* Tela baixa: a coluna da esquerda da ficha rola junto, em vez de grudar no topo
   e esconder o fim (o card de objeções deixou a coluna mais alta). */
@media (max-height:820px){.tl-side{position:static}}
/* ── JOE Copilot — análise pós-reunião ──────────────────────────────
   Reaproveita tokens, .card, .btn-p e o medidor radial (renderGauge) do
   resto do app: a tela nova nasce dentro do design system, não ao lado. */
.cp-drop{border:2px dashed var(--border-strong);border-radius:16px;padding:38px 24px;text-align:center;
  cursor:pointer;transition:border-color .15s,background .15s;background:var(--bg-surface-alt)}
.cp-drop:hover,.cp-drop.dragover{border-color:var(--chart-cyan);background:var(--tint-cyan-bg)}
.cp-drop.dragover{transform:scale(1.005)}
.cp-drop-ico{font-size:30px;color:var(--chart-cyan);margin-bottom:12px}
.cp-tabs{display:flex;gap:4px;background:var(--bg-chip);border-radius:10px;padding:3px;width:fit-content;margin-bottom:14px}
.cp-tab{background:none;border:none;padding:7px 15px;border-radius:8px;font-size:12px;font-weight:700;
  color:var(--text-muted);cursor:pointer;font-family:inherit;transition:all .13s}
.cp-tab.active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-surface)}
/* Cartão de item (oportunidade, risco, objeção) com faixa lateral de cor
   semântica — a cor diz a natureza antes de o texto ser lido. */
.cp-item{background:var(--bg-surface-alt);border:1px solid var(--border-subtle);border-left:3px solid var(--text-dim);
  border-radius:10px;padding:12px 14px;margin-bottom:9px}
.cp-item.ok{border-left-color:var(--success-text)}
.cp-item.warn{border-left-color:var(--warning-text)}
.cp-item.bad{border-left-color:var(--danger-text)}
.cp-item.opp{border-left-color:var(--chart-purple)}
.cp-item h5{margin:0 0 5px;font-size:12.5px;font-weight:700;color:var(--text-primary);line-height:1.4}
.cp-item p{margin:0;font-size:11.5px;color:var(--text-secondary);line-height:1.55}
/* Citação da transcrição: é o que sustenta cada afirmação da IA, então tem
   tratamento visual próprio (monoespaçada, recuada) e nunca some. */
.cp-quote{margin:7px 0 0;padding:6px 10px;border-left:2px solid var(--border-strong);
  background:var(--bg-sunken);border-radius:0 6px 6px 0;font-size:10.5px;color:var(--text-muted);
  font-style:italic;line-height:1.5}
.cp-bant{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.cp-bant-card{background:var(--bg-surface-alt);border:1px solid var(--border-subtle);border-radius:12px;padding:14px}
.cp-bant-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.cp-bant-ico{width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}
.cp-bant-card h5{margin:0;font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-primary)}
.cp-chip{font-size:9px;font-weight:800;padding:2px 7px;border-radius:99px;letter-spacing:.04em;text-transform:uppercase}
.cp-passo{display:flex;gap:11px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--border-subtle)}
.cp-passo:last-child{border-bottom:none}
.cp-passo-n{width:21px;height:21px;border-radius:99px;background:var(--tint-cyan-bg);color:var(--chart-cyan);
  font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.cp-vazio{color:var(--text-muted);font-size:11.5px;text-align:center;padding:22px 0;line-height:1.6}
/* Etapas do processamento: mostra em que passo está, porque análise de
   gravação longa leva tempo e barra genérica não informa nada. */
.cp-step{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:12px;color:var(--text-muted)}
.cp-step.on{color:var(--text-primary);font-weight:600}
.cp-step.done{color:var(--success-text)}
.cp-step-dot{width:16px;text-align:center;flex-shrink:0}
@keyframes cpPulse{0%,100%{opacity:.35}50%{opacity:1}}
.cp-step.on .cp-step-dot{animation:cpPulse 1.1s ease-in-out infinite}
/* ── Copilot ao vivo ────────────────────────────────────────────────
   Estado da captura e fila de alertas. Isto aqui fica na aba do CRM;
   a versão que o vendedor realmente olha durante a call é a janela
   flutuante (Document Picture-in-Picture), estilizada em VIVO_PIP_CSS
   lá no JS — aquele documento é separado e não herda nada daqui. */
.vv-barra{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:12px;
  background:var(--bg-surface-alt);border:1px solid var(--border-subtle);flex-wrap:wrap}
.vv-rec{width:9px;height:9px;border-radius:50%;background:var(--danger-text);flex-shrink:0;
  animation:cpPulse 1.4s ease-in-out infinite}
.vv-tempo{font-size:19px;font-weight:800;color:var(--text-primary);font-variant-numeric:tabular-nums}
.vv-meta{font-size:10.5px;color:var(--text-muted);line-height:1.5}
.vv-bant{display:flex;gap:6px;flex-wrap:wrap}
.vv-pill{font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  padding:3px 9px;border-radius:99px;border:1px solid var(--border-subtle);color:var(--text-muted);background:var(--bg-chip)}
.vv-pill.parcial{color:var(--warning-text);border-color:var(--warning-text)}
.vv-pill.confirmado{color:var(--success-text);border-color:var(--success-text)}
/* Alerta: a faixa lateral classifica por URGÊNCIA, não por tipo — durante a
   call o vendedor tem meio segundo, e o que ele precisa saber é "reajo agora
   ou depois", não se aquilo é objeção ou risco. */
.vv-sinal{border:1px solid var(--border-subtle);border-left:3px solid var(--text-dim);border-radius:10px;
  padding:11px 13px;margin-bottom:8px;background:var(--bg-surface-alt);animation:vvEntra .22s ease}
.vv-sinal.alta{border-left-color:var(--danger-text)}
.vv-sinal.media{border-left-color:var(--warning-text)}
.vv-sinal.baixa{border-left-color:var(--chart-blue)}
.vv-sinal h5{margin:0 0 4px;font-size:12.5px;font-weight:700;color:var(--text-primary);line-height:1.35}
.vv-sinal p{margin:0;font-size:11.5px;color:var(--text-secondary);line-height:1.5}
.vv-acao{margin-top:7px;padding:7px 10px;border-radius:8px;background:var(--tint-cyan-bg);
  border:1px solid var(--tint-cyan-border);font-size:11.5px;color:var(--text-primary);line-height:1.5}
.vv-cit{margin:6px 0 0;padding:6px 10px;border-left:2px solid var(--border-strong);background:var(--bg-chip);
  border-radius:0 7px 7px 0;font-size:11px;color:var(--text-muted);line-height:1.5;font-style:italic}
.vv-tag{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);
  display:block;margin-bottom:3px}
/* O rótulo do alerta usa a família de cor do pop-up de 8 s: roxo e dourado
   para oportunidade (gap, expansão), laranja suave para alerta (BANT, SPIN).
   A faixa lateral continua sendo da urgência. */
.vv-sinal.t-gap{--vv-cor-tipo:#b57bff}
.vv-sinal.t-upsell{--vv-cor-tipo:#f2c14e}
.vv-sinal.t-bant,.vv-sinal.t-spin{--vv-cor-tipo:#f7a766}
html[data-theme="light"] .vv-sinal.t-gap{--vv-cor-tipo:#7c3aed}
html[data-theme="light"] .vv-sinal.t-upsell{--vv-cor-tipo:#8f6208}
html[data-theme="light"] .vv-sinal.t-bant,html[data-theme="light"] .vv-sinal.t-spin{--vv-cor-tipo:#b04a0a}
.vv-sinal[class*=" t-"] .vv-tag{color:var(--vv-cor-tipo)}
.vv-pill.vv-temp{display:inline-flex;align-items:center;gap:5px}
.vv-pill.vv-temp::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.vv-pill.vv-temp.frio{color:var(--chart-blue);border-color:var(--chart-blue)}
.vv-pill.vv-temp.morno{color:var(--warning-text);border-color:var(--warning-text)}
.vv-pill.vv-temp.quente{color:var(--danger-text);border-color:var(--danger-text)}
@keyframes vvEntra{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
/* ── Redefinir senha (Usuários & Acessos) e "Crie a sua senha" ─────────
   Tudo em token: o mesmo modal serve ao tema escuro e ao claro. Âmbar é a
   cor de "ação sensível" do app (aviso, chave); ciano, a de confirmação. */
.rs-botao-chave{background:var(--tint-amber-bg);color:var(--warning-text)}
.rs-botao-chave:hover{filter:brightness(1.12)}
.rs-pill{display:inline-block;background:var(--tint-amber-bg);color:var(--warning-text);font-weight:700;font-size:10px;padding:2px 7px;border-radius:99px;margin-left:5px;white-space:nowrap}
.rs-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.rs-titulo{color:var(--text-primary);font-weight:700;font-size:15px;margin:0}
.rs-titulo i{color:var(--warning-text);margin-right:8px}
.rs-x{flex:none;border:0;background:transparent;color:var(--text-muted);font-size:22px;line-height:1;width:30px;height:30px;border-radius:8px;cursor:pointer}
.rs-x:hover{background:var(--bg-hover);color:var(--text-primary)}
.rs-x:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.rs-pessoa{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--border-default);border-radius:11px;background:var(--bg-surface-alt);margin-bottom:12px}
.rs-avatar{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;color:var(--brand-cyan-text);background:var(--tint-cyan-bg-2)}
.rs-nome{display:block;color:var(--text-primary);font-weight:700;font-size:13px;line-height:1.3}
.rs-sub{display:block;color:var(--text-muted);font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.rs-aviso{display:flex;gap:8px;align-items:flex-start;color:var(--text-secondary);font-size:11.5px;line-height:1.5;margin:0 0 12px}
.rs-aviso i{color:var(--warning-text);margin-top:3px}
.rs-aviso b{color:var(--text-primary)}
.rs-opcoes{display:grid;gap:7px;margin-bottom:12px}
.rs-opcao{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border-default);border-radius:10px;cursor:pointer;background:var(--bg-surface);transition:border-color .13s,background .13s}
.rs-opcao:hover{border-color:var(--border-strong)}
.rs-opcao:has(input:checked){border-color:var(--tint-cyan-border);background:var(--tint-cyan-bg)}
.rs-opcao:has(input:focus-visible){box-shadow:var(--focus-ring)}
.rs-opcao input{margin-top:2px;accent-color:#22d3ee;width:15px;height:15px;flex:none}
.rs-opcao b{display:block;color:var(--text-primary);font-size:12.5px}
.rs-opcao small{display:block;color:var(--text-muted);font-size:11px;line-height:1.45;margin-top:1px}
.rs-digitar{display:grid;gap:9px;margin:0 0 12px}
.rs-marca{display:flex;gap:9px;align-items:flex-start;color:var(--text-secondary);font-size:11.5px;line-height:1.45;cursor:pointer}
.rs-marca input{accent-color:#22d3ee;width:15px;height:15px;margin-top:1px;flex:none}
.rs-erro{color:var(--danger-text);font-size:11.5px;line-height:1.45;min-height:17px;margin:8px 0 0}
.rs-ok{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}
.rs-ok>i{color:var(--success-text);font-size:18px;margin-top:1px}
.rs-senha{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 14px;border:1px dashed var(--tint-cyan-border);border-radius:11px;background:var(--tint-cyan-bg);margin-bottom:7px}
.rs-senha code{flex:1;min-width:0;font:700 18px/1.25 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;color:var(--text-primary);overflow-wrap:anywhere;user-select:all}
.rs-nota{color:var(--text-muted);font-size:10.5px;line-height:1.5;margin:0 0 14px}
.rs-envio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:14px}
.rs-envio .btn-g{justify-content:center;padding:8px 6px;min-width:0}
.rs-envio .btn-g:disabled{opacity:.45;cursor:not-allowed}
.rs-acao-senha{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--border-default);border-radius:9px;background:var(--bg-surface-alt);color:var(--text-muted);font-size:11.5px;line-height:1.4}
.rs-acao-senha .btn-g{flex:none;padding:6px 11px}
.ts-icone{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--tint-amber-bg);color:var(--warning-text);font-size:18px;margin-bottom:12px}
.ts-texto{color:var(--text-secondary);font-size:12px;line-height:1.55;margin:4px 0 14px}
.ts-sair{display:block;margin:12px auto 0;border:0;background:transparent;color:var(--text-muted);font-size:11.5px;text-decoration:underline;cursor:pointer}
.ts-sair:hover{color:var(--text-primary)}
@media (max-width:420px){.rs-envio{grid-template-columns:1fr}.rs-senha code{font-size:16px}}
/* "Esqueci minha senha" e "Crie uma senha nova" (tela de login) */
.login-senha-rotulo{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.login-esqueci{font-size:11px;font-weight:600;color:var(--brand-cyan-text);text-decoration:none;white-space:nowrap}
.login-esqueci:hover{text-decoration:underline}
.login-esqueci:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}
.esq-titulo{color:var(--text-primary);font-weight:800;font-size:15px;margin:0 0 4px}
.esq-texto{color:var(--text-secondary);font-size:12px;line-height:1.55;margin:0}
.esq-ok{display:flex;gap:9px;align-items:flex-start;padding:11px 12px;border-radius:10px;border:1px solid var(--tint-green-border);background:var(--tint-green-bg);color:var(--text-primary);font-size:12px;line-height:1.5}
.esq-ok i{color:var(--success-text);margin-top:2px}
.esq-rodape{text-align:center;font-size:11px;color:var(--text-secondary);margin:0}
.esq-rodape a{color:var(--brand-cyan-text);font-weight:700;text-decoration:none}
.esq-rodape a:hover{text-decoration:underline}
#forgot-erro:empty,#reset-erro:empty,#cv-erro:empty{display:none}
/* ── Aceite do convite (#convite=...) ─────────────────────────────── */
.cv-carregando{display:flex;align-items:center;gap:9px;color:var(--text-secondary);font-size:12.5px;padding:6px 0}
.cv-carregando i{color:var(--brand-cyan-text)}
.cv-login{display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:9px;background:var(--tint-cyan-bg);border:1px solid var(--tint-cyan-border);color:var(--text-secondary);font-size:11.5px}
.cv-login b{color:var(--text-primary);font-weight:700;overflow-wrap:anywhere}
.cv-login input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.cv-forca{height:5px;border-radius:99px;background:var(--border-default);overflow:hidden;margin-top:7px}
.cv-forca span{display:block;height:100%;width:0;border-radius:99px;background:var(--danger-text);transition:width .25s ease,background-color .25s ease}
.cv-forca[data-nivel="2"] span{background:#f59e0b}
.cv-forca[data-nivel="3"] span,.cv-forca[data-nivel="4"] span{background:var(--success-text)}
.cv-forca-txt{display:block;text-align:right;font-size:10.5px;color:var(--text-muted);margin-top:3px;min-height:14px}
.cv-regras{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.cv-regras li{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text-muted);transition:color .2s ease}
.cv-regras li i{font-size:12px;width:14px;text-align:center}
.cv-regras li.ok{color:var(--success-text)}
.cv-invalido{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:10px;border:1px solid var(--tint-red-border, rgba(255,84,112,.35));background:var(--tint-red-bg);color:var(--text-primary);font-size:12px;line-height:1.55}
.cv-invalido i{color:var(--danger-text);margin-top:2px}
@media (prefers-reduced-motion:reduce){.cv-forca span,.cv-regras li{transition:none}}
/* ── Convite enviado (modal) ──────────────────────────────────────── */
.cv-link{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 12px;border:1px dashed var(--tint-cyan-border);border-radius:11px;background:var(--tint-cyan-bg);margin-bottom:7px}
.cv-link code{flex:1;min-width:0;font:600 11px/1.4 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text-primary);overflow-wrap:anywhere;user-select:all;max-height:3.2em;overflow:hidden}
.cv-aviso{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:10px;border:1px solid rgba(245,158,11,.35);background:rgba(245,158,11,.10);color:var(--text-primary);font-size:11.5px;line-height:1.5;margin-bottom:12px}
.cv-aviso i{color:#f59e0b;margin-top:2px}
.rs-pill.convite{background:rgba(245,158,11,.14);color:#d97706}
.rs-pill.convite.expirado{background:var(--tint-red-bg);color:var(--danger-text)}
/* Login sem cadastro na Equipe: abre o Kanban vazio até alguém ligar. */
.rs-pill.sem-equipe{border:none;cursor:pointer;font-family:inherit}
/* Importar planilha (clientes e negócios) */
/* ── Produtos → Precificação: a tabela de custos, o preço sugerido, a margem real
   e o simulador reverso. Cores do gráfico de decomposição validadas (CVD e
   contraste) nos dois temas; o cinza do custo é neutro de propósito. */
:root{--prc-custo:#7d889c;--prc-dv:#e3456f;--prc-df:#c4870f;--prc-lucro:#15824a;--prc-tinta-custo:#0b1220;--prc-tinta-dv:#0b1220;--prc-tinta-df:#0b1220;--prc-tinta-lucro:#ffffff;--prc-dica-fundo:#0b0f1a;--prc-dica-texto:#eef2f8}
html[data-theme="light"]{--prc-custo:#8a95a9;--prc-dv:#d33852;--prc-df:#c78408;--prc-lucro:#13804a;--prc-tinta-dv:#ffffff;--prc-dica-fundo:#111827;--prc-dica-texto:#f8fafc}
.prc-vistas{display:inline-flex;gap:4px;padding:4px;border-radius:10px;background:var(--bg-surface-alt);border:1px solid var(--border-subtle);margin:0 0 14px}
.prc-vistas button{border:none;background:none;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-muted);padding:7px 14px;border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.prc-vistas button[aria-selected="true"]{background:var(--bg-surface);color:var(--text-primary);box-shadow:0 1px 2px rgba(15,23,42,.14)}
.prc-vistas button:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.prc-num{font-variant-numeric:tabular-nums}

/* O painel de indicadores */
.prc-painel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.prc-ind{display:flex;flex-direction:column;gap:2px;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface);font:inherit;color:inherit;cursor:pointer;transition:border-color .15s}
.prc-ind:hover{border-color:var(--border-default)}
.prc-ind[aria-pressed="true"]{border-color:var(--tint-cyan-border);box-shadow:0 0 0 3px var(--tint-cyan-bg)}
.prc-ind:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.prc-ind span{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);display:flex;align-items:center;gap:6px}
.prc-ind b{font-size:22px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.prc-ind small{font-size:11.5px;color:var(--text-muted)}
.prc-ind.ok span i{color:var(--success-text)}
.prc-ind.abaixo span i{color:var(--warning-text)}
.prc-ind.prejuizo span i{color:var(--danger-text)}
.prc-ind.prejuizo b{color:var(--danger-text)}

/* Os padrões da empresa */
.prc-padroes{border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-surface);margin-bottom:14px}
.prc-padroes>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:12px 14px;font-size:12.5px;color:var(--text-secondary)}
.prc-padroes>summary::-webkit-details-marker{display:none}
.prc-padroes>summary b{color:var(--text-primary)}
.prc-padroes>summary .prc-seta{margin-left:auto;transition:transform .15s;color:var(--text-muted)}
.prc-padroes[open]>summary .prc-seta{transform:rotate(180deg)}
.prc-padroes-corpo{padding:4px 14px 14px;display:flex;flex-direction:column;gap:12px}
.prc-padroes-campos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}

/* A barra de ferramentas e a grade */
.prc-barra-ferr{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.prc-barra-ferr p{margin:0;flex:1;min-width:220px;font-size:12px;color:var(--text-muted);line-height:1.5}
.prc-grade{border:1px solid var(--border-default);border-radius:12px;overflow:hidden;background:var(--bg-surface)}
.prc-cols{display:grid;grid-template-columns:minmax(0,2.2fr) repeat(4,minmax(0,1fr)) repeat(2,minmax(0,1.2fr)) minmax(0,1.3fr) 28px;align-items:center;gap:10px}
.prc-cab{padding:9px 14px;background:var(--bg-sunken);border-bottom:1px solid var(--border-subtle);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.prc-cab span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prc-item{border-bottom:1px solid var(--border-faint)}
.prc-item:last-child{border-bottom:none}
.prc-linha{width:100%;padding:11px 14px;border:none;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.prc-linha:hover{background:var(--bg-hover)}
.prc-linha:focus-visible{outline:none;box-shadow:inset var(--focus-ring)}
.prc-linha .prc-nome b{display:block;font-size:13px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prc-linha .prc-nome small{display:block;font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prc-linha .prc-v{font-size:12.5px;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prc-linha .prc-v.forte{color:var(--text-primary);font-weight:700}
.prc-linha .prc-v.prc-apagado{color:var(--text-faint)}
#products-grid[hidden],#prc-vista[hidden]{display:none!important}
/* ── Produtos › Serviços (melhorias-42): o preço por m² a partir dos custos ── */
#srv-vista[hidden],#prc-tab-servicos[hidden]{display:none!important}
.srv-intro{margin:0 0 10px;font-size:12.5px;color:var(--text-muted);line-height:1.5}
.srv-sub{margin-bottom:14px}
.srv-grade{display:flex;flex-direction:column;gap:14px}
.srv-dupla-blocos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.srv-ajuda{margin:0;font-size:12px;color:var(--text-muted);line-height:1.5}
.srv-vazio{margin:0;font-size:12.5px;color:var(--text-muted)}
.srv-alerta{margin:0;font-size:12px;color:var(--warning-text);background:var(--tint-amber-bg);border-radius:8px;padding:8px 10px}
.srv-linhas{display:flex;flex-direction:column;gap:8px}
.srv-linha{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-bottom:8px;border-bottom:1px dashed var(--border-faint)}
.srv-linha>.srv-texto{flex:2 1 170px;min-width:0}
.srv-linha>.srv-sel{flex:1 1 120px;min-width:0;width:auto}
.srv-linha>.srv-in{flex:1 1 110px;min-width:0}
.srv-in input{text-align:right}
.srv-deriv{flex:0 0 auto;min-width:96px;display:flex;flex-direction:column;align-items:flex-end;font-size:13px;font-weight:700;color:var(--text-primary)}
.srv-deriv small{font-size:10.5px;font-weight:600;color:var(--text-muted)}
.srv-x{flex:0 0 28px;width:28px;height:28px;border:none;background:none;color:var(--text-muted);border-radius:7px;cursor:pointer;font:inherit;font-size:19px;line-height:1}
.srv-x:hover{background:var(--bg-hover);color:var(--danger-text)}
.srv-x:focus-visible,.srv-chip:focus-visible,.srv-servico:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.srv-chips{display:flex;flex-wrap:wrap;gap:6px}
.srv-chip{border:1px dashed var(--border-default);background:var(--bg-surface);color:var(--text-secondary);font:inherit;font-size:11.5px;border-radius:999px;padding:4px 10px;cursor:pointer}
.srv-chip:hover{border-style:solid;border-color:var(--tint-cyan-border);background:var(--tint-cyan-bg)}
.srv-cinco{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.srv-tres{grid-template-columns:repeat(3,minmax(0,1fr))}
.srv-taxas{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--text-secondary);padding:10px 12px;border-radius:10px;background:var(--bg-surface-alt)}
.srv-simples summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--text-secondary)}
.srv-simples[open]{display:flex;flex-direction:column;gap:10px}
.srv-arred{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}
.srv-arred .srv-sel{width:auto}
.srv-acoes{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.srv-status{font-size:12px;color:var(--text-muted)}
.srv-status.ok{color:var(--success-text)}
.srv-status.erro{color:var(--danger-text)}
.srv-perigo{color:var(--danger-text)}
.srv-dica{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--bg-surface-alt);color:var(--text-muted);font-size:10px;font-weight:700;cursor:help}
.srv-lista{border:1px solid var(--border-default);border-radius:12px;overflow:hidden;background:var(--bg-surface)}
.srv-servico{width:100%;display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,1fr) 20px;gap:10px;align-items:center;padding:12px 14px;border:none;border-bottom:1px solid var(--border-faint);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.srv-servico:hover{background:var(--bg-hover)}
.srv-servico .srv-nome b{display:block;font-size:13px;color:var(--text-primary)}
.srv-servico small{display:block;font-size:11px;color:var(--text-muted)}
.srv-servico>.prc-num{display:flex;flex-direction:column;font-size:13px;color:var(--text-secondary)}
.srv-servico>.prc-num.forte{color:var(--text-primary);font-weight:700}
.srv-eq-lista{display:flex;flex-wrap:wrap;gap:8px}
.srv-eq-op{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--border-subtle);border-radius:999px;font-size:12.5px;color:var(--text-secondary)}
.srv-qtd{width:52px;padding:3px 6px;border:1px solid var(--border-default);border-radius:7px;background:var(--bg-surface);color:var(--text-primary);font:inherit}
.srv-desc{width:100%;resize:vertical}
.srv-m2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
.srv-m2>div{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--text-secondary)}
.srv-m2 .srv-total,.srv-m2 .srv-preco{padding-top:6px;border-top:1px solid var(--border-subtle);font-weight:700;color:var(--text-primary)}
.srv-m2 .srv-preco b{color:var(--success-text);font-size:15px}
.srv-grande{display:flex;flex-direction:column;gap:4px}
.srv-grande>b{font-size:30px;letter-spacing:-.02em;color:var(--text-primary)}
.srv-grande>span{font-size:12.5px;color:var(--text-muted)}
.srv-grande .prc-st{align-self:flex-start}
.srv-barra{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--bg-surface-alt);gap:2px}
.srv-barra span{height:100%}
.srv-legenda{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--text-muted)}
.srv-legenda i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.srv-tabela,.srv-hist{display:flex;flex-direction:column}
.srv-l{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:12.5px;color:var(--text-secondary);padding:6px 0;border-bottom:1px dashed var(--border-faint)}
.srv-l small{color:var(--text-muted);font-size:11px}
.srv-l b{color:var(--text-primary)}
.srv-sub-total{font-weight:700;color:var(--text-primary);border-bottom:1px solid var(--border-subtle)}
.srv-lucro b{color:var(--success-text)}
.srv-historico{margin-top:14px}
/* melhorias-44: a calculadora por m², no molde da Precificação */
.srv-sub-tit{margin:2px 0 -4px;display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}
.srv-sub-tit i{color:var(--brand-cyan-text)}
.prc-soma.srv-soma-forte{border-top:1px solid var(--border-default);padding-top:8px;font-size:12.5px;color:var(--text-secondary)}
.prc-soma.srv-soma-forte b{font-size:15px}
.prc-soma small{font-size:11px;color:var(--text-faint)}
.srv-acoes.srv-acoes-esq{justify-content:flex-start}
.srv-eq-op>span{display:flex;flex-direction:column;line-height:1.25}
.srv-eq-op>span small{font-size:10.5px;color:var(--text-muted)}
.srv-minimo{display:flex;gap:7px;align-items:baseline}
.srv-minimo:empty{display:none}
.srv-minimo i{color:var(--brand-cyan-text)}
.srv-pd-campos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end}
#srv-form-custos{margin:0}
.srv-mat .srv-deriv{min-width:84px}
.srv-mat>.srv-in{flex:1 1 150px}
@media (max-width:1100px){.srv-pd-campos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.srv-pd-campos{grid-template-columns:repeat(2,minmax(0,1fr))}}
#srv-o-res{display:flex;flex-direction:column;gap:12px}
@media (max-width:760px){.srv-dupla-blocos,.srv-cinco,.srv-tres,.srv-m2{grid-template-columns:1fr}.srv-servico{grid-template-columns:1fr 1fr}.srv-servico .srv-nome{grid-column:1/-1}.prc-calc.srv-orc{grid-template-columns:1fr}}
.prc-linha .prc-abre{color:var(--text-muted);transition:transform .15s;justify-self:end}
.prc-item.aberto .prc-linha .prc-abre{transform:rotate(180deg)}
.prc-item.aberto .prc-linha{background:var(--bg-surface-alt)}
.prc-rotulo-m{display:none}
.prc-nao-salvo{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--warning-text);margin-left:6px;vertical-align:1px}

/* Os estados (ícone + texto: nunca só a cor) */
.prc-st{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap}
.prc-st.ok{color:var(--success-text);background:var(--tint-green-bg)}
.prc-st.abaixo{color:var(--warning-text);background:var(--tint-amber-bg)}
.prc-st.prejuizo,.prc-st.impossivel{color:var(--danger-text);background:var(--tint-red-bg)}
.prc-st.sem_custo,.prc-st.sem_preco{color:var(--text-muted);background:var(--bg-surface-alt)}
.prc-so-leitor{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* A calculadora (a linha aberta) */
.prc-detalhe{padding:16px 14px 18px;background:var(--bg-surface-alt);border-top:1px solid var(--border-subtle)}
.prc-calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:16px;align-items:start}
.prc-bloco{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:12px}
.prc-bloco h4{margin:0;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);display:flex;align-items:center;gap:6px}
.prc-dupla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.prc-campo{display:flex;flex-direction:column;gap:5px;min-width:0}
.prc-campo label,.prc-rot{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--text-secondary)}
.prc-campo .prc-padrao-tag{font-size:10px;font-weight:700;color:var(--brand-cyan-text);background:var(--tint-cyan-bg);border-radius:999px;padding:1px 7px;margin-left:auto}
.prc-in{display:flex;align-items:stretch;border:1px solid var(--border-default);border-radius:9px;background:var(--bg-surface);overflow:hidden;transition:border-color .15s,box-shadow .15s}
.prc-in:focus-within{border-color:var(--tint-cyan-border);box-shadow:0 0 0 3px var(--tint-cyan-bg)}
.prc-in.erro{border-color:var(--danger-text)}
.prc-in>span{display:flex;align-items:center;padding:0 9px;font-size:12px;font-weight:600;color:var(--text-muted);background:var(--bg-sunken)}
.prc-in input{flex:1;min-width:0;border:none;background:transparent;color:var(--text-primary);font:inherit;font-size:13.5px;font-variant-numeric:tabular-nums;padding:8px 10px;outline:none;text-align:right}
.prc-in input::placeholder{color:var(--text-faint)}
.prc-in input[type="text"].prc-texto{text-align:left}
.prc-soma{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--text-muted);padding-top:2px;border-top:1px dashed var(--border-subtle)}
.prc-soma b{color:var(--text-primary);font-variant-numeric:tabular-nums}
/* Os impostos sobre a venda, um por um */
.prc-imp{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface-alt)}
.prc-imp-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;font-weight:700;color:var(--text-secondary)}
.prc-imp-cab>span:first-child{display:inline-flex;align-items:center;gap:6px}
.prc-imp-regime{font-weight:500;color:var(--text-muted)}
.prc-imp-regime b{color:var(--text-primary);font-weight:700}
.prc-imp-grade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}
.prc-imp-aviso{margin:0;font-size:11.5px;color:var(--text-muted);line-height:1.5}
.prc-link{border:none;background:none;padding:0;font:inherit;font-weight:600;color:var(--brand-cyan-text);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.prc-link:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:3px}
.prc-in select{flex:1;min-width:0;border:none;background:transparent;color:var(--text-primary);font:inherit;font-size:13px;padding:8px 10px;outline:none;cursor:pointer}
.prc-in select option{background:var(--bg-surface);color:var(--text-primary)}
.prc-pd-regime{grid-column:1/-1;max-width:320px}
.prc-pd-impostos{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}
.prc-pd-impostos:empty{display:none}
/* Impostos por categoria, lucro desejado e taxas por forma de pagamento */
.prc-campo .prc-padrao-tag.cat{color:var(--brand-purple-text);background:var(--tint-purple-bg)}
.prc-bloco-cat .prc-campo{max-width:380px}
.prc-bloco-lucro{border-color:var(--tint-cyan-border)}
.prc-lucro-linha{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:end}
.prc-lucro-preco{display:flex;flex-direction:column;gap:1px;padding:8px 12px;border-radius:10px;background:var(--tint-cyan-bg-2);border:1px solid var(--tint-cyan-border);min-width:0}
.prc-lucro-preco span{font-size:11px;font-weight:600;color:var(--text-muted)}
.prc-lucro-preco b{font-size:20px;font-weight:800;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prc-lucro-preco small{font-size:11px;color:var(--text-muted)}
.prc-lucro-nota{margin:0;font-size:11.5px;color:var(--text-muted);line-height:1.5}
.prc-taxas{margin-top:2px}
.prc-forma{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;font-size:12px;color:var(--text-secondary)}
.prc-forma-op{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;border:1px solid var(--border-default);background:var(--bg-surface);cursor:pointer;font-weight:600;color:var(--text-secondary)}
.prc-forma-op:has(input:checked){border-color:var(--tint-cyan-border);background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text)}
.prc-forma-op:has(input:focus-visible){box-shadow:var(--focus-ring)}
.prc-forma-op input{margin:0;accent-color:var(--brand-cyan-text)}
.prc-formas{list-style:none;margin:8px 0 0;padding:8px 0 0;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px;font-size:12px}
.prc-formas:empty{display:none}
.prc-formas li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:8px;color:var(--text-secondary)}
.prc-formas li b{font-variant-numeric:tabular-nums;color:var(--text-primary)}
.prc-formas li.usada span{color:var(--brand-cyan-text);font-weight:700}
.prc-formas li em{font-style:normal;font-size:10.5px;color:var(--text-faint)}
.prc-cat-acao{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:0;font-size:12px;color:var(--text-muted);line-height:1.5}
.prc-cat-acao i{color:var(--text-faint)}
.prc-cat-acao.ok i{color:var(--brand-purple-text)}
.prc-cat-acao b{color:var(--text-secondary)}
.prc-pd-sub{margin:0 0 6px;font-size:12px;font-weight:700;color:var(--text-secondary);display:flex;align-items:center;gap:6px}
.prc-pd-taxas,.prc-pd-cats{grid-column:1/-1}
.prc-pd-taxas-grade{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}
.prc-pd-cats-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.prc-pd-cats-lista li{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;padding:7px 10px;border:1px solid var(--border-subtle);border-radius:9px;font-size:12px;color:var(--text-secondary)}
.prc-pd-cats-lista li b{color:var(--text-primary)}
.prc-pd-cats-lista li .prc-link{margin-left:auto}
.prc-pd-vazio{margin:0;font-size:12px;color:var(--text-muted);line-height:1.5}
@media (max-width:1100px){.prc-pd-taxas-grade{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.prc-lucro-linha{grid-template-columns:minmax(0,1fr)}}
.prc-df-calc{font-size:11.5px;color:var(--text-muted)}
.prc-df-calc summary{cursor:pointer;color:var(--brand-cyan-text);font-weight:600;list-style:none}
.prc-df-calc summary::-webkit-details-marker{display:none}
.prc-df-calc[open]>div{margin-top:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:8px;align-items:end}

/* O "?" e o balão escuro */
.prc-ajuda{display:inline-grid;place-items:center;width:16px;height:16px;flex:none;border-radius:50%;border:1px solid var(--border-strong);color:var(--text-muted);font-size:10px;font-weight:800;line-height:1;cursor:help;background:var(--bg-surface);padding:0;font-family:inherit}
.prc-ajuda:hover,.prc-ajuda:focus-visible,.prc-ajuda[aria-expanded="true"]{color:var(--prc-dica-texto);background:var(--prc-dica-fundo);border-color:var(--prc-dica-fundo);outline:none}
.prc-dica{position:fixed;z-index:400;max-width:min(300px,calc(100vw - 24px));padding:9px 12px;border-radius:9px;background:var(--prc-dica-fundo);color:var(--prc-dica-texto);font-size:12px;line-height:1.5;box-shadow:0 12px 32px rgba(2,6,23,.4);pointer-events:none}
.prc-dica[hidden]{display:none}

/* Os resultados */
.prc-saidas{display:flex;flex-direction:column;gap:12px;min-width:0}
.prc-cards{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:10px}
.prc-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:13px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.prc-card>b{font-size:26px;font-weight:800;letter-spacing:-.025em;color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1.15;overflow-wrap:anywhere}
.prc-card.prc-preco{border-color:var(--tint-cyan-border);background:linear-gradient(180deg,var(--tint-cyan-bg),var(--bg-surface) 70%)}
.prc-card.prc-preco>b{font-size:30px}
.prc-card.prc-lucro>b{color:var(--success-text)}
.prc-card.prc-lucro.neg>b{color:var(--danger-text)}
.prc-card small{font-size:11.5px;color:var(--text-muted);line-height:1.45}
.prc-card .btn-s{align-self:flex-start;margin-top:6px}
.prc-trava{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--tint-red-bg);border:1px solid rgba(255,84,112,.4);color:var(--danger-text);font-size:12.5px;line-height:1.5}
.prc-trava b{color:var(--danger-text)}
.prc-trava[hidden]{display:none}

/* O gráfico de decomposição (parte do todo: 100% do preço) */
.prc-decomp{margin:0;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:13px 14px;display:flex;flex-direction:column;gap:10px}
.prc-decomp figcaption{font-size:11.5px;font-weight:700;color:var(--text-secondary);display:flex;align-items:center;gap:6px}
.prc-barra{display:flex;gap:2px;height:30px;position:relative}
.prc-seg{display:flex;align-items:center;justify-content:center;min-width:3px;font-size:11px;font-weight:700;white-space:nowrap;cursor:default;font-variant-numeric:tabular-nums}
.prc-seg:first-child{border-radius:4px 0 0 4px}
.prc-seg:last-child{border-radius:0 4px 4px 0}
.prc-seg:only-child{border-radius:4px}
.prc-seg.custo{background:var(--prc-custo);color:var(--prc-tinta-custo)}
.prc-seg.dv{background:var(--prc-dv);color:var(--prc-tinta-dv)}
.prc-seg.df{background:var(--prc-df);color:var(--prc-tinta-df)}
.prc-seg.lucro{background:var(--prc-lucro);color:var(--prc-tinta-lucro)}
.prc-seg.falta{background:repeating-linear-gradient(135deg,var(--prc-dv) 0 4px,transparent 4px 8px);border:1.5px solid var(--danger-text);color:var(--danger-text)}
.prc-marca{position:absolute;top:-6px;bottom:-6px;width:2px;margin-left:-1px;background:var(--text-primary);border-radius:2px}
.prc-falta-zona{position:absolute;top:0;bottom:0;right:0;background:repeating-linear-gradient(135deg,rgba(255,84,112,.6) 0 4px,rgba(255,84,112,.08) 4px 8px);border-radius:0 4px 4px 0;pointer-events:none}
.prc-marca span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-size:10px;font-weight:700;color:var(--text-primary);white-space:nowrap;margin-bottom:2px}
.prc-legenda{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}
.prc-legenda li{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);min-width:0}
.prc-legenda li i{width:10px;height:10px;border-radius:3px;flex:none}
.prc-legenda li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prc-legenda li b{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:700}
.prc-legenda li em{font-style:normal;color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:46px;text-align:right}
.prc-legenda i.custo{background:var(--prc-custo)}.prc-legenda i.dv{background:var(--prc-dv)}.prc-legenda i.df{background:var(--prc-df)}.prc-legenda i.lucro{background:var(--prc-lucro)}
.prc-legenda i.falta{background:repeating-linear-gradient(135deg,var(--prc-dv) 0 3px,transparent 3px 6px);border:1px solid var(--danger-text)}

/* Markup × margem */
.prc-edu{border-radius:12px;padding:12px 14px;background:var(--tint-purple-bg);border:1px solid rgba(139,92,246,.28);font-size:12.5px;line-height:1.6;color:var(--text-secondary);display:flex;flex-direction:column;gap:6px}
.prc-edu p{margin:0}
.prc-edu b{color:var(--text-primary)}
.prc-edu .prc-indice{font-variant-numeric:tabular-nums}

/* O simulador reverso */
.prc-sim{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:13px 14px;display:flex;flex-direction:column;gap:10px}
.prc-sim-topo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px;align-items:end}
.prc-sim-res{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.prc-sim-res div{border-radius:10px;padding:9px 11px;background:var(--bg-surface-alt);display:flex;flex-direction:column;gap:1px;min-width:0}
.prc-sim-res span{font-size:11px;color:var(--text-muted)}
.prc-sim-res b{font-size:16px;font-weight:800;color:var(--text-primary);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.prc-sim-res .neg b{color:var(--danger-text)}
.prc-sim-res .pos b{color:var(--success-text)}
.prc-sim-res .atencao b{color:var(--warning-text)}
.prc-sim-nota{margin:0;font-size:12px;color:var(--text-muted);line-height:1.5}
.prc-sim-nota b{color:var(--text-primary)}
.prc-prejuizo{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--tint-red-bg);border:1.5px solid var(--danger-text);color:var(--danger-text);font-size:13px;line-height:1.45;animation:prc-pulsa 1.4s ease-in-out infinite}
.prc-prejuizo i{font-size:22px}
.prc-prejuizo strong{display:block;font-size:15px;letter-spacing:.06em}
.prc-prejuizo[hidden]{display:none}
@keyframes prc-pulsa{0%,100%{box-shadow:0 0 0 0 rgba(255,84,112,.5)}50%{box-shadow:0 0 0 7px rgba(255,84,112,0)}}

.prc-acoes{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.prc-acoes .prc-estado{font-size:11.5px;color:var(--text-muted);margin-right:auto}
.prc-acoes .btn-s[disabled]{opacity:.5;cursor:not-allowed}
.prc-vazio{padding:34px 14px;text-align:center;color:var(--text-muted);font-size:12.5px;line-height:1.6}
.prc-vazio b{color:var(--text-primary)}
.prc-novo-nome{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px}

@media (max-width:1100px){
  .prc-cols{grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr)) minmax(0,1.3fr) 28px}
  .prc-cols>.prc-x{display:none}
}
@media (max-width:860px){
  .prc-calc{grid-template-columns:1fr}
  .prc-painel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prc-padroes-campos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prc-imp-grade,.prc-pd-impostos{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){
  .prc-cab{display:none}
  .prc-linha.prc-cols{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}
  .prc-linha .prc-nome{grid-column:1}
  .prc-linha .prc-v.prc-x{display:none}
  .prc-linha .prc-v:not(.prc-x){display:flex;gap:6px;align-items:baseline}
  .prc-rotulo-m{display:inline;font-size:10.5px;font-weight:600;color:var(--text-muted)}
  .prc-linha .prc-abre{grid-column:2;grid-row:1}
  .prc-cards,.prc-sim-topo,.prc-dupla,.prc-novo-nome{grid-template-columns:1fr}
  .prc-legenda{grid-template-columns:1fr}
  .prc-detalhe{padding:12px 10px 14px}
}
@media (prefers-reduced-motion:reduce){.prc-prejuizo{animation:none}.prc-linha .prc-abre,.prc-padroes>summary .prc-seta,.prc-ind,.prc-in{transition:none}}
/* ── Financeiro: caixa, split, contas a pagar e a receber, recebedores.
   Cores do fluxo de caixa validadas (CVD, contraste e faixa de luminosidade)
   nos dois temas: entradas, saídas e a receita projetada. Texto e números
   usam os tokens de texto; o estado (pendente, pago) tem ícone e palavra. */
:root{--fin-entrada:#15824a;--fin-saida:#e3456f;--fin-forecast:#1aa3c2;--fin-superficie:#0d111c}
html[data-theme="light"]{--fin-entrada:#0c6f3d;--fin-saida:#e55b74;--fin-forecast:#0b8fb5;--fin-superficie:#ffffff}
.fin-num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.fin-mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.92em;letter-spacing:0}
.fin-so-leitor{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
#tab-financeiro [hidden],#fin-modal [hidden],#fin-modal-2 [hidden]{display:none!important}

/* O topo e a barra (vistas + mês) */
.fin-topo{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.fin-intro{margin:0;font-size:12px;color:var(--text-secondary);max-width:62ch;line-height:1.5}
.fin-acoes-topo{display:flex;gap:7px;flex-wrap:wrap}
.fin-acoes-topo .btn-s i,.fin-acoes-topo .btn-p i{margin-right:5px}
.fin-btn-sec{background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text);border:1px solid var(--tint-cyan-border)}
.fin-btn-sec:hover{background:var(--tint-cyan-bg)}
.fin-barra{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.fin-vistas{display:inline-flex;gap:4px;padding:4px;border-radius:10px;background:var(--bg-surface-alt);border:1px solid var(--border-subtle);max-width:100%;overflow-x:auto}
.fin-vistas button{border:none;background:none;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-muted);padding:7px 13px;border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.fin-vistas button[aria-selected="true"]{background:var(--bg-surface);color:var(--text-primary);box-shadow:0 1px 2px rgba(15,23,42,.14)}
.fin-vistas button:focus-visible,.fin-mes button:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.fin-cont{min-width:18px;padding:1px 6px;border-radius:999px;background:var(--tint-amber-bg);color:var(--warning-text);font-size:10.5px;font-weight:800;font-variant-numeric:tabular-nums}
.fin-cont:empty{display:none}
.fin-mes{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--border-default);border-radius:9px;background:var(--bg-surface);padding:2px}
.fin-mes button{width:30px;height:30px;border:none;background:none;border-radius:7px;color:var(--text-secondary);cursor:pointer;font-size:15px;line-height:1}
.fin-mes button:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}
.fin-mes button:disabled{opacity:.35;cursor:default}
.fin-mes span{min-width:132px;text-align:center;font-size:12.5px;font-weight:600;color:var(--text-primary)}
.fin-mes span::first-letter{text-transform:uppercase}

/* Os indicadores */
.fin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.fin-kpi{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface);min-width:0}
.fin-kpi-rot{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--text-secondary)}
.fin-kpi-rot i{color:var(--text-faint)}
.fin-kpi>b{font-size:23px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-kpi small{font-size:11.5px;color:var(--text-muted);line-height:1.45}
.fin-kpi small b{font-weight:700;color:var(--text-secondary)}
.fin-kpi.pos>b{color:var(--success-text)}
.fin-kpi.neg>b{color:var(--danger-text)}
.fin-link{border:none;background:none;padding:0;font:inherit;font-weight:600;color:var(--brand-cyan-text);cursor:pointer;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.fin-card-cab>.fin-link{font-size:12px;white-space:nowrap}
.fin-link:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:3px}

/* Cartões da visão geral */
.fin-geral{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:14px;align-items:start}
.fin-lado{display:flex;flex-direction:column;gap:14px;min-width:0}
.fin-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:14px;padding:16px;min-width:0}
.fin-card-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.fin-card h3{margin:0;font-size:13.5px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px}
.fin-card h3 i{color:var(--text-faint);font-size:12px}
.fin-card-sub{margin:3px 0 0;font-size:11.5px;color:var(--text-muted);line-height:1.5;max-width:60ch}
.fin-legenda{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 6px;font-size:11.5px;color:var(--text-secondary)}
.fin-legenda span{display:inline-flex;align-items:center;gap:7px}
.fin-legenda .fin-legenda-un{margin-left:auto;color:var(--text-faint);font-size:11px}
body.privacy-on #fin-grafico .apexcharts-yaxis-texts-g{filter:blur(5px)}
.fin-amostra{width:11px;height:11px;border-radius:3px;display:inline-block}
.fin-amostra.entrada{background:var(--fin-entrada)}
.fin-amostra.saida{background:var(--fin-saida)}
.fin-amostra.forecast{width:18px;height:0;border-radius:0;border-top:2.5px dashed var(--fin-forecast)}
#fin-grafico{min-height:280px}
.fin-tabela-wrap{overflow-x:auto;margin-top:6px}
table.fin-tabela{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums;min-width:460px}
table.fin-tabela th,table.fin-tabela td{padding:8px 10px;border-bottom:1px solid var(--border-subtle);text-align:right;white-space:nowrap}
table.fin-tabela th:first-child,table.fin-tabela td:first-child{text-align:left}
table.fin-tabela thead th{color:var(--text-muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
table.fin-tabela td{color:var(--text-secondary)}
table.fin-tabela tbody tr:last-child td{border-bottom:none}
.fin-crm b.fin-num{display:block;font-size:22px;font-weight:700;color:var(--text-primary);margin:4px 0 2px}
.fin-crm p{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.5}
.fin-crm-compara{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border-subtle);display:grid;gap:5px;font-size:12px;color:var(--text-muted)}
.fin-crm-compara div{display:flex;justify-content:space-between;gap:10px}
.fin-crm-compara b{color:var(--text-primary);font-variant-numeric:tabular-nums}
.fin-crm-compara small{font-size:11px;color:var(--text-faint);line-height:1.45}
.fin-crm-compara small:empty{display:none}
.fin-prox{display:flex;flex-direction:column}
.fin-prox-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border-faint)}
.fin-prox-item:last-of-type{border-bottom:none}
.fin-prox-item b{display:block;font-size:12.5px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-prox-item small{display:block;font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-atrasado{color:var(--danger-text);font-weight:600}
.fin-prox-item .fin-valor{font-size:12.5px;font-weight:700;color:var(--text-primary);text-align:right}
.fin-prox-vazio{margin:4px 0 0;font-size:12px;color:var(--text-muted)}
.fin-comeco{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.fin-passo{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:12px;border:1px dashed var(--border-strong);background:var(--bg-surface)}
.fin-passo b{font-size:12.5px;color:var(--text-primary)}
.fin-passo p{margin:0;font-size:11.5px;color:var(--text-muted);line-height:1.5;flex:1}
.fin-passo .btn-s{align-self:flex-start}
.fin-passo.feito{border-style:solid;border-color:var(--tint-green-border)}
.fin-passo.feito b::after{content:" ✓";color:var(--success-text)}

/* Estados: ícone + palavra, nunca só a cor */
.fin-st{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;letter-spacing:.05em;padding:3px 8px;border-radius:999px;white-space:nowrap}
.fin-st.pendente,.fin-st.vence_hoje{color:var(--warning-text);background:var(--tint-amber-bg)}
.fin-st.vencido{color:var(--danger-text);background:var(--tint-red-bg)}
.fin-st.pago,.fin-st.recebido{color:var(--success-text);background:var(--tint-green-bg)}
.fin-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--tint-purple-bg);color:var(--brand-purple-text);vertical-align:1px}
.fin-tag.cinza{background:var(--bg-surface-alt);color:var(--text-muted)}

/* Contas a pagar e a receber */
.fin-resumo-contas{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.fin-chip{display:flex;flex-direction:column;gap:1px;padding:9px 13px;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-surface);min-width:150px}
.fin-chip span{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.fin-chip b{font-size:15px;color:var(--text-primary);font-variant-numeric:tabular-nums}
.fin-chip small{font-size:11px;color:var(--text-muted)}
.fin-chip.alerta{border-color:rgba(255,84,112,.35)}
.fin-chip.alerta b{color:var(--danger-text)}
.fin-filtros{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.fin-seg{display:inline-flex;gap:2px;padding:3px;border-radius:9px;background:var(--bg-surface-alt);border:1px solid var(--border-subtle)}
.fin-seg button{border:none;background:none;font:inherit;font-size:12px;font-weight:600;color:var(--text-muted);padding:5px 10px;border-radius:6px;cursor:pointer;white-space:nowrap}
.fin-seg button[aria-pressed="true"],.fin-seg button[aria-checked="true"]{background:var(--bg-surface);color:var(--text-primary);box-shadow:0 1px 2px rgba(15,23,42,.14)}
.fin-seg button:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.fin-busca{flex:1;min-width:180px;max-width:320px}
.fin-busca .inp{padding-left:30px;background-image:none}
.fin-busca{position:relative}
.fin-busca i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-faint);font-size:11.5px;pointer-events:none}
.fin-lista{border:1px solid var(--border-default);border-radius:12px;overflow:hidden;background:var(--bg-surface)}
.fin-cols{display:grid;grid-template-columns:92px minmax(0,2.3fr) minmax(0,1.4fr) 148px 104px 216px;align-items:center;gap:12px}
.fin-cab{padding:9px 14px;background:var(--bg-sunken);border-bottom:1px solid var(--border-subtle);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.fin-cab .fin-dir{text-align:right}
.fin-linha{padding:11px 14px;border-bottom:1px solid var(--border-faint)}
.fin-linha:last-child{border-bottom:none}
.fin-linha:hover{background:var(--bg-hover)}
.fin-data b{display:block;font-size:12.5px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}
.fin-data small{display:block;font-size:10.5px;color:var(--text-muted);white-space:nowrap}
.fin-data small.atrasado{color:var(--danger-text);font-weight:600}
.fin-desc{min-width:0}
.fin-desc b{display:block;font-size:12.5px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-desc small{display:block;font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-quem{min-width:0;font-size:12px;color:var(--text-secondary)}
.fin-quem b{display:block;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-quem small{display:block;font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-valor{text-align:right;font-variant-numeric:tabular-nums}
.fin-valor b{display:block;font-size:13px;font-weight:700;color:var(--text-primary)}
.fin-valor b.entra{color:var(--success-text)}
.fin-valor small{display:block;font-size:10.5px;color:var(--text-muted);white-space:nowrap}
.fin-acoes{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.fin-acoes .btn-s{white-space:nowrap}
.fin-ic{width:28px;height:28px;border-radius:8px;border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-muted);display:inline-grid;place-items:center;cursor:pointer;font-size:11.5px;flex:none}
.fin-ic:hover{color:var(--text-primary);border-color:var(--border-strong)}
.fin-ic:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.fin-ic.confirmar{width:auto;padding:0 9px;font-size:11px;font-weight:700;color:#fff;background:var(--danger-text);border-color:var(--danger-text)}
.fin-aprovar{background:var(--success-text);color:#04150c;border:none}
html[data-theme="light"] .fin-aprovar{color:#fff}
.fin-aprovar:hover{filter:brightness(1.06)}
.fin-sem-dados{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:34px 18px;color:var(--text-muted);font-size:12.5px}
.fin-sem-dados i{font-size:22px;color:var(--text-faint)}
.fin-sem-dados b{color:var(--text-primary);font-size:13.5px}
.fin-sem-dados p{margin:0;max-width:52ch;line-height:1.55}
.fin-aviso-lista{padding:9px 14px;font-size:11.5px;color:var(--text-muted);background:var(--bg-sunken);border-top:1px solid var(--border-subtle)}

/* Recebedores */
.fin-rec-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.1fr) minmax(0,1.7fr) 86px 120px 92px;gap:12px;align-items:center}
.fin-rec-arquivado{opacity:.62}

/* Os modais */
.modal-ov.fin-ov{padding:16px;align-items:flex-start;overflow-y:auto}
#fin-modal-2.fin-ov{z-index:210}
.fin-modal{width:100%;max-width:560px;margin:auto;background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:16px;box-shadow:0 24px 64px rgba(0,0,0,.4);display:flex;flex-direction:column;max-height:calc(100vh - 32px);overflow:hidden}
.fin-modal.largo{max-width:920px}
.fin-modal-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 12px;border-bottom:1px solid var(--border-subtle)}
.fin-modal-cab h2{margin:0;font-size:16px;font-weight:700;color:var(--text-primary)}
.fin-modal-cab p{margin:4px 0 0;font-size:12px;color:var(--text-muted);line-height:1.5}
.fin-fechar{width:32px;height:32px;border-radius:9px;border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;font-size:15px;line-height:1;flex:none}
.fin-fechar:hover{color:var(--text-primary)}
.fin-fechar:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.fin-modal-corpo{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}
.fin-modal-pe{padding:12px 20px 16px;border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;background:var(--bg-surface)}
.fin-modal-pe .fin-pe-txt{margin-right:auto;font-size:11.5px;color:var(--text-muted);max-width:48ch;line-height:1.45}
.fin-modal-pe .btn-p i,.fin-modal-pe .btn-g i{margin-right:6px}
.fin-grade2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fin-grade3{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr));gap:12px}
.fin-campo{display:flex;flex-direction:column;gap:5px;min-width:0}
.fin-campo>label,.fin-rot{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--text-secondary)}
.fin-campo .fin-opc{font-weight:500;color:var(--text-faint)}
.fin-in{display:flex;align-items:stretch;border:1px solid var(--border-default);border-radius:9px;background:var(--bg-surface);overflow:hidden;transition:border-color .15s,box-shadow .15s}
.fin-in:focus-within{border-color:var(--tint-cyan-border);box-shadow:0 0 0 3px var(--tint-cyan-bg)}
.fin-in.erro{border-color:var(--danger-text)}
.fin-in>span{display:flex;align-items:center;padding:0 9px;font-size:12px;font-weight:600;color:var(--text-muted);background:var(--bg-sunken)}
.fin-in input,.fin-in select{flex:1;min-width:0;border:none;background:transparent;color:var(--text-primary);font:inherit;font-size:13px;padding:8px 10px;outline:none}
.fin-in input.dir{text-align:right;font-variant-numeric:tabular-nums}
.fin-in select{cursor:pointer}
.fin-in select option{background:var(--bg-surface);color:var(--text-primary)}
.fin-in input::placeholder{color:var(--text-faint)}
.fin-in.grande input{font-size:20px;font-weight:700;padding:10px 12px;letter-spacing:-.01em}
.fin-in.grande>span{font-size:14px;padding:0 12px}
.fin-msg{font-size:11px;line-height:1.4;color:var(--text-muted)}
.fin-msg.erro{color:var(--danger-text)}
.fin-msg.ok{color:var(--success-text)}
.fin-msg:empty{display:none}
.fin-detalhes{border:1px solid var(--border-subtle);border-radius:10px;padding:0 12px}
.fin-detalhes>summary{cursor:pointer;list-style:none;padding:10px 0;font-size:12px;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:8px}
.fin-detalhes>summary::-webkit-details-marker{display:none}
.fin-detalhes>summary i{transition:transform .15s;color:var(--text-faint)}
.fin-detalhes[open]>summary i{transform:rotate(90deg)}
.fin-detalhes[open]{padding-bottom:12px}
.fin-check{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}
.fin-check input{width:15px;height:15px;accent-color:var(--brand-cyan-text)}
.fin-aviso{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.5;background:var(--tint-amber-bg);color:var(--text-primary);border:1px solid rgba(251,191,36,.28)}
.fin-aviso i{color:var(--warning-text);margin-top:2px}
.fin-aviso.erro{background:var(--tint-red-bg);border-color:rgba(255,84,112,.35)}
.fin-aviso.erro i{color:var(--danger-text)}
.fin-aviso.info{background:var(--tint-cyan-bg);border-color:var(--tint-cyan-border)}
.fin-aviso.info i{color:var(--brand-cyan-text)}

/* O split */
.fin-split-linhas{display:flex;flex-direction:column;gap:8px}
.fin-split-tit{display:flex;align-items:center;justify-content:space-between;gap:10px}
.fin-split-tit h4{margin:0;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}
.fin-ls{border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-surface-alt);padding:12px;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1.3fr) minmax(0,1fr) 32px;gap:10px;align-items:end}
.fin-ls>.fin-ic{grid-column:4;grid-row:1}
.fin-ls>.fin-ls-quem{grid-column:1/4;grid-row:2;flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px 12px}
.fin-ls>.fin-ls-quem .fin-quem-seg{display:inline-grid;grid-template-columns:auto auto}
.fin-ls>.fin-ls-quem .fin-quem-seg button{padding:6px 12px;white-space:nowrap}
.fin-ls.erro{border-color:rgba(255,84,112,.45)}
.fin-ls .fin-ls-res{grid-column:1/-1;grid-row:3;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:12px;color:var(--text-muted);padding-top:2px}
.fin-ls .fin-ls-res b{color:var(--text-primary);font-variant-numeric:tabular-nums}
.fin-ls .fin-ls-res .fin-msg{width:100%}
.fin-ajuste{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted)}
.fin-ajuste i{color:var(--text-faint);font-size:10px}
.fin-ls .fin-ic{margin-bottom:3px}
.fin-modo{display:flex;gap:6px;align-items:stretch}
.fin-modo .fin-seg{flex:none}
.fin-modo .fin-in{flex:1}
.fin-quem-seg{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:3px;border-radius:9px;background:var(--bg-surface);border:1px solid var(--border-default)}
.fin-quem-seg button{border:none;background:none;font:inherit;font-size:11.5px;font-weight:600;color:var(--text-muted);padding:6px 6px;border-radius:6px;cursor:pointer;line-height:1.25}
.fin-quem-seg button[aria-checked="true"]{background:var(--tint-cyan-bg-2);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--tint-cyan-border)}
.fin-quem-seg button:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.fin-add{align-self:flex-start;border:1px dashed var(--border-strong);background:none;color:var(--brand-cyan-text);font:inherit;font-size:12px;font-weight:600;padding:7px 12px;border-radius:9px;cursor:pointer}
.fin-add:hover{background:var(--tint-cyan-bg)}
.fin-add:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.fin-rodape{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:12px;background:var(--bg-sunken);border:1px solid var(--border-subtle)}
.fin-equacao{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-variant-numeric:tabular-nums}
.fin-termo{display:flex;flex-direction:column;gap:1px;padding:8px 12px;border-radius:10px;background:var(--bg-surface);border:1px solid var(--border-subtle);min-width:0}
.fin-termo span{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap}
.fin-termo b{font-size:14px;font-weight:700;color:var(--text-primary);white-space:nowrap}
.fin-termo.final{border-color:var(--tint-green-border);background:var(--tint-green-bg-2)}
.fin-termo.final b{color:var(--success-text);font-size:16px}
.fin-termo.final.neg{border-color:rgba(255,84,112,.45);background:var(--tint-red-bg)}
.fin-termo.final.neg b{color:var(--danger-text)}
.fin-seta{color:var(--text-faint);font-size:13px}
.fin-quem-recebe{display:flex;flex-wrap:wrap;gap:6px}
.fin-qr{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);padding:5px 10px;border-radius:999px;background:var(--bg-surface);border:1px solid var(--border-subtle)}
.fin-qr b{color:var(--text-primary);font-variant-numeric:tabular-nums}
.fin-qr i{color:var(--text-faint);font-size:11px}
.fin-confere{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}
.fin-confere.ok i{color:var(--success-text)}
.fin-confere.nao i{color:var(--danger-text)}

/* Aprovar e liquidar */
.fin-pag{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface-alt)}
.fin-pag-quem{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.fin-pag-quem b{display:block;font-size:14px;color:var(--text-primary)}
.fin-pag-quem small{display:block;font-size:11.5px;color:var(--text-muted)}
.fin-pag-valor{font-size:26px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.fin-chave{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:9px;background:var(--bg-surface);border:1px solid var(--border-default)}
.fin-chave span{flex:1;min-width:0;overflow-wrap:anywhere;color:var(--text-primary)}
.fin-chave small{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);flex:none}
.fin-pag-linhas{display:grid;gap:6px;font-size:12.5px;color:var(--text-secondary)}
.fin-pag-linhas div{display:flex;justify-content:space-between;gap:10px}
.fin-pag-linhas b{color:var(--text-primary);font-variant-numeric:tabular-nums}
.fin-pag-linhas .total{padding-top:6px;border-top:1px dashed var(--border-subtle)}

@media (max-width:1100px){
  .fin-geral{grid-template-columns:1fr}
  .fin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fin-cols{grid-template-columns:86px minmax(0,2fr) 140px 104px 216px}
  .fin-cols .fin-quem{display:none}
  .fin-rec-cols{grid-template-columns:minmax(0,1.5fr) minmax(0,1.6fr) 80px 92px}
  .fin-rec-cols .fin-rec-doc,.fin-rec-cols .fin-rec-uso{display:none}
}
@media (max-width:760px){
  .fin-ls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);position:relative}
  .fin-ls>.fin-campo:first-child{grid-column:1/-1;grid-row:1;padding-right:40px}
  .fin-ls>.fin-campo:nth-child(2){grid-column:1;grid-row:2}
  .fin-ls>.fin-campo:nth-child(3){grid-column:2;grid-row:2}
  .fin-ls>.fin-ls-quem{grid-column:1/-1;grid-row:3}
  .fin-ls>.fin-ls-quem .fin-quem-seg{display:grid;width:100%}
  .fin-ls>.fin-ls-quem .fin-quem-seg button{white-space:normal}
  .fin-ls>.fin-ic{position:absolute;right:10px;top:10px}
  .fin-ls .fin-ls-res{grid-row:4}
  .fin-grade3{grid-template-columns:1fr 1fr}
  .fin-grade3>.fin-campo:first-child{grid-column:1/-1}
}
@media (max-width:640px){
  .fin-kpis{grid-template-columns:1fr 1fr;gap:8px}
  .fin-kpi{padding:12px}
  .fin-kpi>b{font-size:18px}
  .fin-comeco{grid-template-columns:1fr}
  .fin-cab{display:none}
  .fin-cols{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}
  .fin-cols .fin-data{grid-column:1;grid-row:2}
  .fin-cols .fin-desc{grid-column:1/-1;grid-row:1}
  .fin-cols .fin-valor{grid-column:2;grid-row:2}
  .fin-cols .fin-st-cel{grid-column:1;grid-row:3}
  .fin-cols .fin-acoes{grid-column:2;grid-row:3}
  .fin-data b,.fin-data small{display:inline;margin-right:6px}
  .fin-rec-cols{grid-template-columns:minmax(0,1fr) auto}
  .fin-rec-cols .fin-rec-pix{grid-column:1/-1;grid-row:2}
  .fin-rec-cols .fin-rec-pct{display:none}
  .fin-grade2{grid-template-columns:1fr}
  .fin-mes span{min-width:110px}
  .fin-equacao .fin-seta{display:none}
  .fin-equacao{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .fin-termo.final{grid-column:1/-1}
  .fin-modal-pe{justify-content:stretch}
  .fin-modal-pe .btn-p,.fin-modal-pe .btn-g{flex:1;justify-content:center}
  .fin-modal-pe .fin-pe-txt{flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){
  .fin-detalhes>summary i,.fin-in{transition:none}
}
/* ── Governança e Auditoria Financeira: a linha do tempo da trilha (estilo
   extrato de alta densidade), o diff antes/depois, os filtros e o selo da
   corrente. E a Central de Relatórios dentro do Financeiro. Cores só por
   token: o alerta é âmbar com ícone e palavra, o "antes" é vermelho riscado e
   o "depois" verde — nunca só a cor. */
#tab-governanca [hidden]{display:none!important}
.gov-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.gov-intro{margin:0;font-size:12px;color:var(--text-secondary);max-width:70ch;line-height:1.55}
.gov-acoes{display:flex;gap:7px;flex-wrap:wrap}
.gov-acoes .btn-s i{margin-right:5px}

.gov-integ{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface);font-size:12.5px;color:var(--text-secondary);line-height:1.5;margin-bottom:12px}
.gov-integ>i{margin-top:2px;font-size:14px;color:var(--text-faint)}
.gov-integ b{color:var(--text-primary)}
.gov-integ.ok{border-color:var(--tint-green-border);background:var(--tint-green-bg)}
.gov-integ.ok>i,.gov-integ.ok b{color:var(--success-text)}
.gov-integ.violada{border-color:var(--tint-red-border,var(--danger-text));background:var(--tint-red-bg)}
.gov-integ.violada>i,.gov-integ.violada b{color:var(--danger-text)}

.gov-filtros{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface-alt);margin-bottom:10px}
.gov-filtros label{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--text-secondary)}
.gov-filtros select,.gov-filtros input[type="date"]{height:32px;padding:0 9px;border-radius:8px;border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-size:12.5px}
.gov-filtros select{max-width:240px}
.gov-filtros select:focus-visible,.gov-filtros input:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.gov-periodos{display:inline-flex;gap:3px;padding:3px;border-radius:9px;background:var(--bg-surface);border:1px solid var(--border-subtle)}
.gov-periodos button{border:none;background:none;font:inherit;font-size:12px;font-weight:600;color:var(--text-muted);padding:5px 10px;border-radius:6px;cursor:pointer;white-space:nowrap}
.gov-periodos button[aria-pressed="true"]{background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text)}
.gov-periodos button:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.gov-datas{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}
.gov-so{cursor:pointer;margin-left:auto}
.gov-so input{width:15px;height:15px;accent-color:var(--warning-text);margin:0}

.gov-resumo{display:flex;align-items:center;gap:6px 16px;flex-wrap:wrap;font-size:12px;color:var(--text-muted);margin:0 2px 12px}
.gov-resumo b{color:var(--text-primary);font-weight:700}
.gov-resumo .gov-res-alerta b{color:var(--warning-text)}

.gov-dia{margin-bottom:14px}
.gov-dia-tit{display:flex;align-items:baseline;gap:10px;margin:0 0 6px;padding:0 2px;font-size:12px;font-weight:700;color:var(--text-primary);text-transform:none}
.gov-dia-tit small{font-size:11px;font-weight:600;color:var(--text-faint)}
.gov-linhas{list-style:none;margin:0;padding:0;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-surface);overflow:hidden}
.gov-linha+.gov-linha{border-top:1px solid var(--border-subtle)}
.gov-linha.alerta{box-shadow:inset 3px 0 0 var(--warning-text)}
.gov-linha-btn{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto 18px;align-items:center;gap:12px;padding:10px 14px;border:none;background:none;font:inherit;text-align:left;color:inherit;cursor:default}
button.gov-linha-btn{cursor:pointer}
button.gov-linha-btn:hover{background:var(--bg-hover)}
button.gov-linha-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--brand-cyan-text)}
.gov-seta{font-size:11px;color:var(--text-faint);transition:transform .15s ease}
.gov-linha.aberta .gov-seta{transform:rotate(180deg)}
.gov-av{position:relative;width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden;font-size:12px;font-weight:700;letter-spacing:.02em;color:hsl(var(--av-h) 70% 92%);background:hsl(var(--av-h) 42% 34%)}
html[data-theme="light"] .gov-av{color:hsl(var(--av-h) 55% 24%);background:hsl(var(--av-h) 60% 88%)}
.gov-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gov-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.gov-frase{font-size:13px;color:var(--text-secondary);line-height:1.45;overflow-wrap:anywhere}
.gov-frase b{color:var(--text-primary);font-weight:700}
.gov-papel{display:inline-block;margin:0 4px 0 6px;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:700;background:var(--bg-surface-alt);color:var(--text-muted);border:1px solid var(--border-subtle);vertical-align:1px}
.gov-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:11.5px;color:var(--text-muted)}
.gov-meta>i{font-size:10.5px;color:var(--text-faint);margin-right:2px}
.gov-alerta{display:inline-flex;align-items:center;gap:5px;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--tint-amber-bg);color:var(--warning-text);font-size:11px;font-weight:700}
.gov-valor{font-size:13.5px;font-weight:700;color:var(--text-primary);white-space:nowrap}
.gov-valor.saida{color:var(--danger-text)}
.gov-valor.entrada{color:var(--success-text)}

.gov-det{padding:0 14px 14px 60px}
.gov-diff{border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface-alt);padding:10px 12px}
.gov-diff-tit{margin:0 0 6px;font-size:11.5px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}
.gov-diff-tabela{overflow-x:auto}
.gov-diff table{width:100%;border-collapse:collapse;font-size:12.5px}
.gov-diff th,.gov-diff td{padding:6px 8px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border-subtle)}
.gov-diff thead th{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}
.gov-diff tbody th{font-weight:600;color:var(--text-secondary);white-space:nowrap;width:22%}
.gov-diff tbody tr:last-child th,.gov-diff tbody tr:last-child td{border-bottom:none}
.gov-antes{display:inline;text-decoration:line-through;text-decoration-thickness:1.5px;color:var(--danger-text);background:var(--tint-red-bg);padding:1px 5px;border-radius:4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.gov-depois{display:inline;text-decoration:none;color:var(--success-text);background:var(--tint-green-bg);padding:1px 5px;border-radius:4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.gov-nada{color:var(--text-faint);font-style:italic}
.gov-diff-pe{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0 0;font-size:11px;color:var(--text-muted)}
.gov-diff-pe b{color:var(--text-secondary)}

.gov-vazio{display:flex;flex-direction:column;align-items:center;gap:6px;padding:40px 16px;text-align:center;border:1px dashed var(--border-default);border-radius:12px;color:var(--text-muted)}
.gov-vazio>i{font-size:22px;color:var(--text-faint)}
.gov-vazio b{color:var(--text-primary);font-size:13.5px}
.gov-vazio p{margin:0;font-size:12px;max-width:52ch;line-height:1.5}
.gov-mais-wrap{display:flex;justify-content:center;margin:4px 0 8px}

.gov-codigo{font-size:16px;letter-spacing:.08em;text-transform:uppercase;height:42px}
.gov-verif{margin:10px 0 0;font-size:12.5px;color:var(--text-secondary);line-height:1.5}
.gov-verif p{margin:0;display:flex;gap:8px;align-items:flex-start}
p.gov-verif{display:flex;gap:8px;align-items:flex-start}
.gov-verif.bom{border:1px solid var(--tint-green-border);background:var(--tint-green-bg);border-radius:10px;padding:10px 12px}
.gov-verif.bom>p>i,.gov-verif.bom>p>b{color:var(--success-text)}
.gov-verif.ruim>i,.gov-verif.ruim>p>i{color:var(--danger-text)}
div.gov-verif.ruim{border:1px solid var(--tint-red-border,var(--danger-text));background:var(--tint-red-bg);border-radius:10px;padding:10px 12px}
.gov-verif-dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:10px 0 6px;font-size:12.5px}
.gov-verif-dl dt{color:var(--text-muted)}
.gov-verif-dl dd{margin:0;color:var(--text-primary)}
.gov-verif-nota{font-size:11.5px!important;color:var(--text-muted)}

/* ── Central de Relatórios (aba do Financeiro) ── */
.rel-topo{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.rel-subs{display:inline-flex;gap:4px;flex-wrap:wrap}
.rel-subs button{border:1px solid var(--border-subtle);background:var(--bg-surface);font:inherit;font-size:12px;font-weight:600;color:var(--text-muted);padding:6px 11px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.rel-subs button[aria-selected="true"]{border-color:var(--tint-cyan-border);background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text)}
.rel-subs button:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.rel-grade{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:start}
.rel-grafico{min-height:240px}
.rel-grafico.alto{min-height:280px}
body.privacy-on .rel-grafico .apexcharts-xaxis-texts-g,body.privacy-on .rel-grafico .apexcharts-yaxis-texts-g{filter:blur(5px)}
.rel-dre{width:100%;border-collapse:collapse;font-size:13px}
.rel-dre th,.rel-dre td{padding:8px 4px;border-bottom:1px solid var(--border-subtle);text-align:left;font-weight:500;color:var(--text-secondary);vertical-align:top}
.rel-dre td{text-align:right;white-space:nowrap;color:var(--text-primary)}
.rel-dre th small{display:block;font-size:11px;color:var(--text-faint);font-weight:500;margin-top:1px}
.rel-dre tr.menos td{color:var(--text-secondary)}
.rel-dre tr.cat th{padding-left:14px}
.rel-dre tr.sub th,.rel-dre tr.sub td{font-weight:700;color:var(--text-primary)}
.rel-dre tr.total th,.rel-dre tr.total td{font-weight:800;font-size:14px;color:var(--text-primary);border-top:1.5px solid var(--text-secondary);border-bottom:none}
.rel-dre tr.total.pos td{color:var(--success-text)}
.rel-dre tr.total.neg td{color:var(--danger-text)}
.rel-tabela{overflow-x:auto}
.rel-tabela table{width:100%;border-collapse:collapse;font-size:12.5px}
.rel-tabela th,.rel-tabela td{padding:7px 8px;border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:top;color:var(--text-secondary)}
.rel-tabela thead th{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);white-space:nowrap}
.rel-tabela td small{display:block;font-size:11px;color:var(--text-faint)}
.rel-tabela .dir{text-align:right;white-space:nowrap}
.rel-tabela td.pos{color:var(--success-text)}
.rel-tabela td.neg{color:var(--danger-text)}
.rel-sit{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700}
.rel-sit.pago{background:var(--tint-green-bg);color:var(--success-text)}
.rel-sit.pendente{background:var(--tint-amber-bg);color:var(--warning-text)}
.rel-sit.vencido{background:var(--tint-red-bg);color:var(--danger-text)}
.fin-amostra.rel-pago{background:#748ffc}
.fin-amostra.rel-aberto{background:#f6c453}
html[data-theme="light"] .fin-amostra.rel-pago{background:#3b5bdb}
html[data-theme="light"] .fin-amostra.rel-aberto{background:#b7791f}
.rel-vazio{display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px 16px;text-align:center;color:var(--text-muted)}
.rel-vazio>i{font-size:20px;color:var(--text-faint)}
.rel-vazio b{color:var(--text-primary);font-size:13px}
.rel-vazio p{margin:0;font-size:12px}
.rel-exp-nota{display:flex;gap:10px;align-items:flex-start;margin:0;font-size:12.5px;color:var(--text-secondary);line-height:1.5}
.rel-exp-nota>i{color:var(--brand-cyan-text);margin-top:3px}
.rel-formatos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rel-formato{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border-radius:12px;border:1px solid var(--border-default);background:var(--bg-surface);font:inherit;text-align:left;cursor:pointer;color:var(--text-secondary)}
.rel-formato:hover:not(:disabled){border-color:var(--tint-cyan-border);background:var(--tint-cyan-bg-2)}
.rel-formato:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.rel-formato:disabled{opacity:.55;cursor:progress}
.rel-formato i{font-size:20px;color:var(--brand-cyan-text)}
.rel-formato b{font-size:14px;color:var(--text-primary)}
.rel-formato span{font-size:11.5px;line-height:1.45}
.rel-exp-status{margin:0;font-size:12px;color:var(--text-muted);min-height:1em}
.ua-papel.diretor_financeiro{background:var(--tint-green-bg);color:var(--success-text)}

@media (max-width:1100px){
  .rel-grade{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px){
  .gov-linha-btn{grid-template-columns:auto minmax(0,1fr) 16px;gap:10px;padding:10px 12px}
  .gov-valor{grid-column:2;justify-self:start}
  .gov-seta,.gov-seta-vazia{grid-row:1;grid-column:3}
  .gov-det{padding:0 12px 12px}
  .gov-so{margin-left:0}
  .rel-formatos{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.gov-seta{transition:none}}
.kb-vend{display:inline-flex;align-items:center;gap:7px;padding:0 4px 0 10px;border:1px solid var(--border-default);border-radius:9px;background:var(--bg-surface);color:var(--text-muted)}
.kb-vend select{border:none!important;background:transparent!important;box-shadow:none!important;padding:6px 6px!important;min-width:190px;font-weight:600;color:var(--text-primary)}
.kb-vend:focus-within{box-shadow:var(--focus-ring)}
.kb-vend-campo{grid-column:span 2}
.sem-modulos{display:flex;flex-direction:column;align-items:center;gap:8px;padding:60px 16px;text-align:center;color:var(--text-muted)}
.sem-modulos i{font-size:28px;color:var(--text-faint)}
.sem-modulos b{color:var(--text-primary);font-size:15px}
/* ── Marketing & Tráfego: KPIs, campanhas, os leads chegando, as fontes. E a
   Gestão de Acessos e Departamentos. O gasto é rosa (não é saída do caixa,
   é investimento em atenção); estado sempre com palavra além da cor. */
#tab-marketing [hidden]{display:none!important}
.mkt-topo{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.mkt-intro{margin:0;font-size:12px;color:var(--text-secondary);max-width:66ch;line-height:1.5}
.mkt-acoes{display:flex;gap:7px;flex-wrap:wrap}
.mkt-acoes .btn-s i,.mkt-acoes .btn-p i{margin-right:6px}
.mkt-barra{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;margin-bottom:14px}
.mkt-barra input[type="date"]{height:32px;padding:0 9px;border-radius:8px;border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-size:12.5px}
.mkt-datas{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}
.mkt-grade{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:14px;align-items:start;margin-bottom:14px}
/* o texto só para leitor de tela é absoluto: sem isto ele escapa da rolagem da tabela e alarga a página no celular */
#tab-marketing .rel-tabela{position:relative}
.mkt-tab td,.mkt-tab th{white-space:nowrap}
.mkt-tab tr.pausada td{opacity:.6}
.mkt-camp{display:inline-flex;align-items:center;gap:9px;white-space:normal}
.mkt-camp>i{width:26px;height:26px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-surface-alt);color:var(--text-secondary);font-size:12px;flex:none}
.mkt-camp b{display:block;color:var(--text-primary);font-size:12.5px;max-width:28ch;overflow:hidden;text-overflow:ellipsis}
.mkt-camp small{display:block;font-size:10.5px;color:var(--text-faint)}
.mkt-icone{width:28px;height:28px;border-radius:7px;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-muted);cursor:pointer}
.mkt-icone:hover{color:var(--text-primary)}
.mkt-icone:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.mkt-pulso{width:9px;height:9px;border-radius:50%;background:var(--success-text);display:inline-block;box-shadow:0 0 0 0 color-mix(in srgb,var(--success-text) 55%,transparent);animation:mkt-pulso 2s infinite}
@keyframes mkt-pulso{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--success-text) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.mkt-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.mkt-feed li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"txt quando" "fonte fonte";gap:4px 10px;padding:9px 2px;border-top:1px solid var(--border-subtle)}
.mkt-feed li:first-child{border-top:none}
.mkt-feed li.novo{animation:mkt-novo 2.4s ease-out}
@keyframes mkt-novo{0%{background:var(--tint-green-bg)}100%{background:transparent}}
.mkt-feed-txt{grid-area:txt;min-width:0}
.mkt-feed-txt b{display:block;font-size:12.5px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mkt-feed-txt small{display:block;font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mkt-feed time{grid-area:quando;font-size:11px;color:var(--text-faint);white-space:nowrap}
.mkt-feed .mkt-chip{grid-area:fonte;justify-self:start}
.mkt-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mkt-chip.pago{background:color-mix(in srgb,#f06595 16%,transparent);color:#faa2c1}
html[data-theme="light"] .mkt-chip.pago{color:#c2255c}
.mkt-chip.utm{background:var(--tint-amber-bg);color:var(--warning-text)}
.mkt-chip.org{background:var(--bg-surface-alt);color:var(--text-muted);border:1px solid var(--border-subtle)}
.mkt-chip.novo{background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text);margin-left:6px}
.mkt-grafico{min-height:230px}
body.privacy-on #mkt-grafico .apexcharts-yaxis-texts-g{filter:blur(5px)}
.mkt-semcamp{margin-bottom:14px;border-color:var(--tint-amber-bg)}
.mkt-utms{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.mkt-utms li{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--text-secondary)}
.mkt-utms li .fin-mono{color:var(--text-primary);font-weight:600}
.mkt-utms li .btn-s{margin-left:auto}
.mkt-fontes{margin-top:14px}
.mkt-fontes-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mkt-fonte{border:1px solid var(--border-subtle);border-radius:12px;padding:14px;background:var(--bg-surface-alt);display:flex;flex-direction:column;gap:8px;min-width:0}
.mkt-fonte h4{margin:0;font-size:13px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px}
.mkt-fonte p,.mkt-fonte ol{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.55}
.mkt-fonte ol{padding-left:18px}
.mkt-fonte .btn-s{align-self:flex-start}
.mkt-fonte .btn-s i{margin-right:6px}
.mkt-snippet{margin:0;max-height:180px;overflow:auto;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;line-height:1.5;padding:10px 12px;border-radius:9px;background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);white-space:pre}
.mkt-fonte-acoes{display:flex;gap:7px;flex-wrap:wrap}
.mkt-link-saida{display:flex;align-items:center;gap:8px;min-width:0}
.mkt-link-saida code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;padding:7px 9px;border-radius:8px;background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary)}
.mkt-dupla{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mkt-erro{margin:0;font-size:12px;color:var(--danger-text);min-height:1em}
.mkt-excluir{color:var(--danger-text);border:1px solid var(--tint-red-bg);background:transparent}
.mkt-ativa{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-secondary)}
.mkt-previa-res{margin:0 0 8px;font-size:12.5px;color:var(--text-secondary)}
.mkt-previa-res b{color:var(--text-primary)}

/* ── Gestão de Acessos e Departamentos ── */
.dep-grade{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:14px;align-items:start}
.dep-pessoas{border:1px solid var(--border-subtle);border-radius:14px;background:var(--bg-surface);padding:10px;display:flex;flex-direction:column;gap:8px;position:sticky;top:12px}
.dep-pessoas ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:60vh;overflow:auto}
.dep-pessoa{width:100%;display:flex;align-items:center;gap:10px;padding:8px;border-radius:9px;border:none;background:none;font:inherit;text-align:left;cursor:pointer;color:inherit}
.dep-pessoa:hover{background:var(--bg-hover)}
.dep-pessoa.sel{background:var(--tint-cyan-bg-2)}
.dep-pessoa:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.dep-pessoa b{display:block;font-size:12.5px;color:var(--text-primary)}
.dep-pessoa small{display:block;font-size:11px;color:var(--text-muted)}
.dep-fixos{margin:0;font-size:11px;color:var(--text-muted);line-height:1.5;display:flex;gap:6px}
.dep-painel{min-width:0}
.dep-cab{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.dep-cab h3{margin:0;font-size:15px;color:var(--text-primary)}
.dep-cab p{margin:2px 0 0;font-size:12px;color:var(--text-muted);max-width:70ch;line-height:1.5}
.gov-av.grande{width:44px;height:44px;font-size:14px}
.dep-blocos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dep-bloco{border:1px solid var(--border-subtle);border-radius:14px;background:var(--bg-surface);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.dep-bloco.on{border-color:var(--tint-cyan-border)}
.dep-bloco.breve{opacity:.75;background:var(--bg-surface-alt)}
.dep-bloco-cab{display:flex;align-items:flex-start;gap:10px}
.dep-ic{width:32px;height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-surface-alt);color:var(--brand-cyan-text);flex:none}
.dep-tit{flex:1;min-width:0}
.dep-tit b{display:block;font-size:13px;color:var(--text-primary)}
.dep-tit small{display:block;font-size:11.5px;color:var(--text-muted);line-height:1.45}
.dep-breve{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px;background:var(--tint-purple-bg);color:var(--brand-blue-text)}
.dep-mods{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.dep-mod{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--border-subtle)}
.dep-mod>span:first-child{flex:1;min-width:0}
.dep-mod b{display:block;font-size:12px;font-weight:600;color:var(--text-primary)}
.dep-mod small{display:block;font-size:11px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dep-motivo{font-size:10.5px;color:var(--text-faint);white-space:nowrap}
.dep-sw{position:relative;width:34px;height:20px;border-radius:999px;border:none;background:var(--border-default);cursor:pointer;flex:none;padding:0;transition:background .15s}
.dep-sw span{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.dep-sw[aria-checked="true"]{background:var(--brand-cyan-text)}
.dep-sw[aria-checked="true"] span{transform:translateX(14px)}
.dep-sw.grande{width:40px;height:23px}
.dep-sw.grande span{width:19px;height:19px}
.dep-sw.grande[aria-checked="true"] span{transform:translateX(17px)}
.dep-sw.parcial{background:color-mix(in srgb,var(--brand-cyan-text) 45%,var(--border-default))}
.dep-sw.parcial span{transform:translateX(9px)}
.dep-sw:focus-visible{outline:none;box-shadow:var(--focus-ring)}
@media (max-width:1100px){.mkt-grade,.dep-blocos{grid-template-columns:minmax(0,1fr)}.mkt-fontes-grade{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){.dep-grade{grid-template-columns:minmax(0,1fr)}.dep-pessoas{position:static}.mkt-dupla{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.mkt-pulso,.mkt-feed li.novo{animation:none}.dep-sw,.dep-sw span{transition:none}}
/* ── Implantação (Customer Success): o quadro do onboarding. Cada coluna é
   uma fase; cada card, um cliente ganho, com o health score sempre em
   palavra + ícone + número (nunca só a cor). Cores pelos tokens do tema. */
#tab-cs [hidden]{display:none!important}
.cs-topo{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.cs-intro{margin:0;font-size:12px;color:var(--text-secondary);max-width:70ch;line-height:1.5}
.cs-acoes{display:flex;gap:7px;flex-wrap:wrap}
.cs-acoes .btn-s i{margin-right:6px}
.cs-kpi-risco b.fin-num{color:var(--danger-text)}
.cs-barra{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 12px}
.cs-barra .inp{height:34px;font-size:12.5px;width:auto;min-width:0}
.cs-barra #cs-busca{flex:1;max-width:280px;min-width:150px}
.cs-quadro{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding-bottom:6px;align-items:start}
.cs-col{display:flex;flex-direction:column;gap:8px;min-width:0;padding:10px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface-alt);transition:border-color .15s,background .15s}
.cs-col.alvo{border-color:var(--brand-cyan-text);background:var(--tint-cyan-bg-soft,var(--bg-surface-alt))}
.cs-col-cab{display:flex;align-items:center;gap:7px;padding:2px 2px 6px;border-bottom:1px solid var(--border-subtle)}
.cs-col-cab i{color:var(--text-muted);font-size:12px}
.cs-col-cab b{font-size:12.5px;color:var(--text-primary);flex:1;min-width:0}
.cs-cont{font-size:11px;font-weight:700;color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:999px;padding:1px 8px;font-variant-numeric:tabular-nums}
.cs-col-prazo{font-size:10.5px;color:var(--text-faint);margin:-2px 2px 2px}
.cs-cards{display:flex;flex-direction:column;gap:8px;min-height:60px}
.cs-vazio{margin:0;padding:14px 8px;text-align:center;font-size:11.5px;color:var(--text-faint);border:1px dashed var(--border-subtle);border-radius:10px}
.cs-card{display:flex;flex-direction:column;gap:7px;padding:11px 12px;border-radius:10px;border:1px solid var(--border-default);background:var(--bg-surface);cursor:pointer;text-align:left;transition:transform .12s,border-color .12s,box-shadow .12s}
.cs-card:hover{border-color:var(--brand-cyan-text)}
.cs-card:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.cs-card.arrastando{opacity:.5}
.cs-card.risco{border-left:3px solid var(--danger-text)}
.cs-card.atencao{border-left:3px solid var(--warning-text)}
.cs-card-topo{display:flex;align-items:flex-start;gap:8px}
.cs-cliente{flex:1;min-width:0;font-size:13px;color:var(--text-primary);line-height:1.3;overflow-wrap:anywhere}
.cs-card-sub{margin:0;font-size:11.5px;color:var(--text-secondary);overflow-wrap:anywhere}
.cs-card-meta{display:flex;flex-wrap:wrap;gap:5px}
.cs-chip{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:var(--text-secondary);background:var(--bg-surface-alt);border:1px solid var(--border-subtle);border-radius:999px;padding:2px 8px}
.cs-chip i{font-size:10px}
.cs-chip.falta{color:var(--warning-text);background:var(--tint-amber-bg);border-color:transparent}
.cs-chip.alerta{color:var(--danger-text);background:var(--tint-red-bg);border-color:transparent}
.cs-card-pe{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-secondary)}
.cs-avatar{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:9.5px;font-weight:700;color:var(--text-primary);background:var(--tint-cyan-bg-strong,var(--bg-surface-alt));border:1px solid var(--border-default)}
.cs-sem-resp{display:inline-flex;align-items:center;gap:5px;color:var(--text-faint)}
.cs-saude{display:inline-flex;align-items:center;gap:4px;flex:none;font-size:10.5px;font-weight:600;border-radius:999px;padding:2px 8px;white-space:nowrap}
.cs-saude b{font-variant-numeric:tabular-nums;font-size:11px}
.cs-saude.saudavel{color:var(--success-text);background:var(--tint-green-bg)}
.cs-saude.atencao{color:var(--warning-text);background:var(--tint-amber-bg)}
.cs-saude.risco{color:var(--danger-text);background:var(--tint-red-bg)}
.cs-saude.grande{font-size:12px;padding:6px 12px;gap:7px}
.cs-saude.grande b{font-size:20px}
/* O detalhe */
.cs-det{gap:14px}
.cs-det-saude{display:flex;align-items:flex-start;gap:14px;padding:12px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface-alt)}
.cs-det-saude>div{flex:1;min-width:0}
.cs-motivos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.cs-motivos li{display:flex;gap:10px;justify-content:space-between;font-size:12px;color:var(--text-secondary)}
.cs-motivos li b{color:var(--danger-text);font-variant-numeric:tabular-nums}
.cs-ok{margin:0;font-size:12px;color:var(--success-text)}
.cs-det-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cs-sent{display:flex;gap:6px;flex-wrap:wrap}
.cs-sent-op{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);border:1px solid var(--border-default);border-radius:999px;padding:6px 11px;cursor:pointer;background:var(--bg-surface)}
.cs-sent-op input{position:absolute;opacity:0;pointer-events:none}
.cs-sent-op:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:2px}
.cs-sent-op.positivo:has(input:checked){color:var(--success-text);background:var(--tint-green-bg);border-color:transparent}
.cs-sent-op.neutro:has(input:checked){color:var(--warning-text);background:var(--tint-amber-bg);border-color:transparent}
.cs-sent-op.negativo:has(input:checked){color:var(--danger-text);background:var(--tint-red-bg);border-color:transparent}
.cs-sec-tit{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.cs-sec-tit i{margin-right:6px}
.cs-passagem{padding:12px;border-radius:12px;border:1px solid var(--border-subtle)}
.cs-passagem dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}
.cs-passagem dt{font-size:10.5px;color:var(--text-faint)}
.cs-passagem dd{margin:2px 0 0;font-size:12.5px;color:var(--text-primary);overflow-wrap:anywhere}
.cs-passagem a{color:var(--brand-cyan-text)}
.cs-obs{margin:10px 0 0;font-size:12px;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.cs-contato-linha{display:flex;gap:6px;align-items:center}
.cs-contato-linha select{width:auto;flex:none}
.cs-contato-linha input{flex:1;min-width:0}
.cs-hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;max-height:220px;overflow-y:auto}
.cs-hist li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid var(--border-subtle);font-size:12px;color:var(--text-secondary)}
.cs-hist li:first-child{border-top:none}
.cs-hist i{color:var(--text-muted);margin-top:2px;text-align:center}
.cs-hist small{display:block;color:var(--text-faint);font-size:10.5px;margin-top:2px}
.cs-hist span{color:var(--text-primary);overflow-wrap:anywhere}
@media (max-width:640px){.cs-det-grade,.cs-passagem dl{grid-template-columns:minmax(0,1fr)}.cs-quadro{grid-auto-columns:minmax(240px,82vw)}.cs-contato-linha{flex-wrap:wrap}}
@media (prefers-reduced-motion:reduce){.cs-card,.cs-col{transition:none}}
/* ── Carteira (Farming): o MRR, as renovações, o engajamento e o Radar de
   Upsell & Churn. Estado sempre em palavra + ícone (nunca só a cor); as
   cores vêm dos tokens do tema. */
#tab-carteira [hidden]{display:none!important}
.cart-topo{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.cart-intro{margin:0;font-size:12px;color:var(--text-secondary);max-width:70ch;line-height:1.5}
.cart-acoes{display:flex;gap:7px;flex-wrap:wrap}
.cart-acoes .btn-s i,.cart-acoes .btn-p i{margin-right:6px}
.cart-radar{margin:0 0 14px;padding:14px 16px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface)}
.cart-radar-cab{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.cart-radar-cab h3{margin:0;font-size:14px;color:var(--text-primary)}
.cart-radar-cab i{color:var(--brand-cyan-text);margin-right:6px}
.cart-radar-sub{margin:0 0 10px;font-size:11.5px;color:var(--text-muted)}
.cart-radar-resumo{margin:0 0 12px;font-size:12.5px;color:var(--text-secondary);line-height:1.55;max-width:90ch}
.cart-radar-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cart-radar-col h4{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.cart-radar-col h4 i{margin-right:6px}
.cart-radar-col.churn h4 i{color:var(--danger-text)}
.cart-radar-col.upsell h4 i{color:var(--success-text)}
.cart-radar-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.cart-radar-item{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-surface-alt)}
.cart-radar-item button{all:unset;cursor:pointer;font-size:12.5px;font-weight:700;color:var(--text-primary)}
.cart-radar-item button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:4px}
.cart-radar-item button:hover{color:var(--brand-cyan-text)}
.cart-radar-item small{font-size:11.5px;color:var(--text-secondary);line-height:1.45}
.cart-radar-item .cart-acao{color:var(--text-primary)}
.cart-radar-vazio{margin:0;font-size:12px;color:var(--text-faint)}
.cart-barra{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.cart-barra .inp{height:34px;font-size:12.5px;width:auto;min-width:0}
.cart-barra #cart-busca{flex:1;max-width:260px;min-width:150px}
#tab-carteira .rel-tabela{position:relative}
.cart-tab td,.cart-tab th{white-space:nowrap}
.cart-tab tbody tr{cursor:pointer}
.cart-tab tbody tr:hover td{background:var(--bg-surface-alt)}
.cart-tab tbody tr:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}
.cart-tab tr.cancelado td{opacity:.6}
.cart-tab td b{color:var(--text-primary);font-weight:600}
.cart-chip{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;border-radius:999px;padding:2px 8px;white-space:nowrap;color:var(--text-secondary);background:var(--bg-surface-alt);border:1px solid var(--border-subtle)}
.cart-chip i{font-size:10px}
.cart-chip.ok{color:var(--success-text);background:var(--tint-green-bg);border-color:transparent}
.cart-chip.at{color:var(--warning-text);background:var(--tint-amber-bg);border-color:transparent}
.cart-chip.ri{color:var(--danger-text);background:var(--tint-red-bg);border-color:transparent}
.cart-mais{display:flex;justify-content:center;margin-top:10px}
.cart-sinais{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cart-sinais>div{padding:12px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--bg-surface-alt)}
.cart-sinais ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.cart-sinais li{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--text-secondary)}
.cart-sinais li b{font-variant-numeric:tabular-nums}
.cart-sinais .churn li b{color:var(--danger-text)}
.cart-sinais .upsell li b{color:var(--success-text)}
.cart-sinais p{margin:6px 0 0;font-size:12px;color:var(--text-faint)}
.cart-cancelar{display:flex;gap:6px;align-items:center;flex:1;min-width:0}
.cart-cancelar input{flex:1;min-width:0}
@media (max-width:760px){.cart-radar-grade,.cart-sinais{grid-template-columns:minmax(0,1fr)}}
/* ── Planos: uma chave por funcionalidade em cada plano (Command Center e
   Usuários & Acessos). Mesmo desenho das chaves de Departamentos. */
.pl-sw{position:relative;display:inline-block;vertical-align:middle;width:36px;height:21px;border-radius:999px;border:none;background:var(--border-default);cursor:pointer;padding:0;transition:background .15s}
.pl-sw>span{position:absolute;top:2.5px;left:2.5px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.pl-sw[aria-checked="true"],.pl-sw.on{background:var(--brand-cyan-text)}
.pl-sw[aria-checked="true"]>span,.pl-sw.on>span{transform:translateX(15px)}
.pl-sw:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.pl-legenda .pl-sw{width:28px;height:16px;margin-right:6px;cursor:default}
.pl-legenda .pl-sw>span{width:11px;height:11px;top:2.5px;left:2.5px}
.pl-legenda .pl-sw.on>span{transform:translateX(12px)}
#ua-sec-planos .pl-intro{max-width:78ch}
@media (prefers-reduced-motion:reduce){.pl-sw,.pl-sw>span{transition:none}}
/* ── Fazer o teste virar cliente: quem está testando, no Command Center.
   Estado sempre com palavra + ícone (nunca só a cor), cores pelos tokens. */
.atv-topo{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.apr-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;margin:0 0 12px;border:1px dashed var(--border-default);border-radius:12px;background:var(--bg-surface)}
.apr-box>i{font-size:18px;color:var(--brand-cyan-text)}
.apr-box.ativa{border-style:solid;border-color:var(--tint-cyan-border);background:var(--tint-cyan-bg)}
.apr-txt{flex:1 1 320px;display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--text-secondary)}
.apr-txt b{color:var(--text-primary)}
.apr-txt small{font-size:11.5px;color:var(--text-muted);line-height:1.45}
.apr-txt code{font-size:11.5px;color:var(--brand-cyan-text);background:none;padding:0}
.apr-acoes{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--text-secondary)}
.apr-acoes select{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-default);border-radius:7px;padding:4px 6px;font:inherit}
.atv-numeros{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:12px;color:var(--text-secondary)}
.atv-numeros b{font-size:15px;color:var(--text-primary);margin-right:4px;font-variant-numeric:tabular-nums}
.atv-numeros .risco b{color:var(--danger-text)}
.atv-numeros .atencao b{color:var(--warning-text)}
.atv-numeros .ok b{color:var(--success-text)}
.atv-acoes{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.atv-todos{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);cursor:pointer}
.atv-aviso{display:flex;gap:8px;align-items:flex-start;margin:0 0 8px;padding:8px 10px;border-radius:8px;font-size:12px;color:var(--warning-text);background:var(--tint-amber-bg)}
.atv-rolar{position:relative;overflow-x:auto}
table.atv-tab{width:100%;border-collapse:collapse;font-size:12px;min-width:860px}
table.atv-tab th{text-align:left;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:800;padding:8px 10px;border-bottom:1px solid var(--border-default);background:var(--bg-surface-alt)}
table.atv-tab td{padding:10px;border-bottom:1px solid var(--border-subtle);vertical-align:top;color:var(--text-secondary)}
table.atv-tab tr.atv-fim td{opacity:.72}
table.atv-tab small{display:block;font-size:10.5px;color:var(--text-faint);margin-top:2px}
.atv-emp b{display:block;color:var(--text-primary);font-size:12.5px}
.atv-tag{display:inline-block;margin-top:3px;font-size:10px;color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:999px;padding:1px 7px}
.atv-dia b{color:var(--text-primary);font-variant-numeric:tabular-nums}
.atv-nivel{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;border-radius:999px;padding:2px 9px}
.atv-nivel.ok{color:var(--success-text);background:var(--tint-green-bg)}
.atv-nivel.atencao{color:var(--warning-text);background:var(--tint-amber-bg)}
.atv-nivel.risco{color:var(--danger-text);background:var(--tint-red-bg)}
.atv-passos{max-width:30ch}
.atv-alerta{color:var(--danger-text);font-weight:600}
.atv-mudo{color:var(--text-faint)}
.atv-dicas{display:flex;gap:4px}
.atv-dica{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;font-size:10.5px;font-weight:700;border:1px dashed var(--border-default);color:var(--text-faint);font-variant-numeric:tabular-nums}
.atv-dica.enviado{border:1px solid transparent;background:var(--tint-green-bg);color:var(--success-text)}
.atv-dica.erro{border:1px solid transparent;background:var(--tint-red-bg);color:var(--danger-text)}
.atv-dica.sem_canal,.atv-dica.enviando{border:1px solid transparent;background:var(--tint-amber-bg);color:var(--warning-text)}
.atv-contato{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.atv-contato>span:first-child{color:var(--text-primary);min-width:0;overflow-wrap:anywhere}
.atv-bts{display:flex;gap:4px;flex:none}
.atv-bt{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;border:1px solid var(--border-default);color:var(--text-secondary);text-decoration:none}
.atv-bt:hover{border-color:var(--brand-cyan-text);color:var(--brand-cyan-text)}
.atv-bt:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.pl-imp-resumo{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.5}
.pl-imp-resumo b{color:var(--text-primary)}
/* ── Migração: "Importar dados (HubSpot / CSV)" ─────────────────────────────
   O assistente em 3 passos (fonte → de/para → importar) e a pílula de
   progresso. Tudo pelos tokens do tema: claro e escuro saem do mesmo CSS. */
.modal-ov.mi-ov{padding:16px}
.mi-caixa{max-width:1000px!important;width:100%;max-height:min(880px,calc(100vh - 32px));display:flex;flex-direction:column;padding:0!important;overflow:hidden}
.mi-cab{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:18px 22px 16px;border-bottom:1px solid var(--border-subtle)}
.mi-cab .mi-sobre{margin:0 0 3px;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--brand-cyan-text)}
.mi-cab h2{margin:0;font-size:17px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em;text-wrap:balance}
.mi-passos{display:flex;gap:6px;list-style:none;margin:0;padding:0;counter-reset:mi}
.mi-passos li{counter-increment:mi;display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;color:var(--text-muted);padding:5px 10px 5px 6px;border-radius:999px;border:1px solid var(--border-subtle);white-space:nowrap}
.mi-passos li::before{content:counter(mi);display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--bg-surface-alt);color:var(--text-muted);font-size:10.5px;font-variant-numeric:tabular-nums}
.mi-passos li[aria-current="step"]{color:var(--text-primary);border-color:var(--tint-cyan-border);background:var(--tint-cyan-bg)}
.mi-passos li[aria-current="step"]::before{background:var(--brand-cyan-text);color:var(--bg-surface)}
.mi-passos li.feito{color:var(--text-secondary)}
.mi-passos li.feito::before{content:"✓";background:var(--tint-green-bg);color:var(--success-text)}
.mi-x{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:18px;line-height:1;padding:6px;border-radius:8px}
.mi-x:hover{color:var(--text-primary);background:var(--bg-hover)}
.mi-x:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.mi-corpo{flex:1;overflow-y:auto;padding:20px 22px 24px;display:flex;flex-direction:column;gap:18px;scrollbar-width:thin}
.mi-pe{display:flex;align-items:center;gap:10px;padding:13px 22px;border-top:1px solid var(--border-subtle);background:var(--bg-sunken)}
.mi-pe .mi-pe-txt{flex:1;min-width:0;font-size:11.5px;color:var(--text-muted);line-height:1.45}
.mi-pe .mi-pe-txt b{color:var(--text-secondary)}
.mi-pe:empty{display:none}
.mi-tit{margin:0 0 4px;font-size:13.5px;font-weight:700;color:var(--text-primary)}
.mi-sub{margin:0;font-size:12px;color:var(--text-muted);line-height:1.55;max-width:72ch}
.mi-rotulo{margin:0 0 8px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}

/* Passo 1: as duas fontes */
.mi-fontes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.mi-fonte{position:relative;display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--border-default);border-radius:14px;background:var(--bg-surface);text-align:left;font:inherit;color:inherit;transition:border-color .15s,box-shadow .15s}
.mi-fonte.ativa{border-color:var(--tint-cyan-border);box-shadow:0 0 0 3px var(--tint-cyan-bg)}
.mi-fonte[aria-disabled="true"]{opacity:.62}
.mi-fonte-cab{display:flex;align-items:flex-start;gap:12px}
.mi-fonte-ico{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:11px;font-size:19px}
.mi-fonte-ico.hs{background:rgba(255,122,89,.13);color:#ff7a59}
.mi-fonte-ico.arq{background:var(--tint-green-bg);color:var(--success-text)}
.mi-fonte h3{margin:0;font-size:14px;font-weight:700;color:var(--text-primary)}
.mi-fonte p{margin:3px 0 0;font-size:12px;line-height:1.5;color:var(--text-muted)}
.mi-num{font-variant-numeric:tabular-nums}
.mi-selo{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:10.5px;font-weight:700;color:var(--brand-cyan-text);background:var(--tint-cyan-bg);border-radius:999px;padding:2px 8px}
.mi-zona{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:150px;padding:20px 14px;border:2px dashed var(--border-strong);border-radius:12px;text-align:center;color:var(--text-muted);font-size:12px;line-height:1.45;cursor:pointer;transition:border-color .15s,background .15s}
.mi-zona i{font-size:26px;color:var(--brand-cyan-text)}
.mi-zona b{color:var(--text-primary);font-size:13px}
.mi-zona:hover,.mi-zona.arrastando{border-color:var(--brand-cyan-text);background:var(--tint-cyan-bg)}
.mi-zona:focus-within{box-shadow:var(--focus-ring)}
.mi-linha-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mi-token{display:flex;gap:8px}
.mi-token .inp{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px}
.mi-como{font-size:11.5px;color:var(--text-muted);line-height:1.55}
.mi-como summary{cursor:pointer;color:var(--brand-cyan-text);font-weight:600;list-style:none}
.mi-como summary::-webkit-details-marker{display:none}
.mi-como ol{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.mi-como code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;background:var(--bg-surface-alt);padding:1px 5px;border-radius:5px;color:var(--text-secondary)}
.mi-escopos{display:flex;flex-wrap:wrap;gap:6px}
.mi-escopo{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid var(--border-subtle);color:var(--text-secondary)}
.mi-escopo.ok i{color:var(--success-text)}
.mi-escopo.nao{border-color:rgba(255,84,112,.35);color:var(--danger-text)}
.mi-objetos{display:flex;flex-direction:column;gap:8px}
.mi-check{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:10px;cursor:pointer;font-size:12.5px;color:var(--text-primary)}
.mi-check input{width:16px;height:16px;accent-color:#22d3ee}
.mi-check small{margin-left:auto;color:var(--text-muted);font-size:11.5px}
.mi-check.desligado{opacity:.55;cursor:not-allowed}

/* Avisos */
.mi-aviso{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-radius:10px;font-size:12px;line-height:1.55;color:var(--text-secondary);border:1px solid var(--border-subtle);background:var(--bg-surface-alt)}
.mi-aviso i{margin-top:2px}
.mi-aviso.atencao{background:var(--tint-amber-bg);border-color:rgba(245,158,11,.3)}
.mi-aviso.atencao i{color:var(--warning-text)}
.mi-aviso.erro{background:var(--tint-red-bg);border-color:rgba(255,84,112,.3);color:var(--danger-text)}
.mi-aviso.ok{background:var(--tint-green-bg);border-color:var(--tint-green-border)}
.mi-aviso.ok i{color:var(--success-text)}
.mi-aviso b{color:var(--text-primary)}

/* Passo 2: o de → para */
.mi-abas{display:inline-flex;gap:4px;padding:4px;border-radius:10px;background:var(--bg-surface-alt);align-self:flex-start}
.mi-abas button{border:none;background:none;font:inherit;font-size:12px;font-weight:600;color:var(--text-muted);padding:6px 12px;border-radius:7px;cursor:pointer}
.mi-abas button[aria-selected="true"]{background:var(--bg-surface);color:var(--text-primary);box-shadow:0 1px 2px rgba(15,23,42,.12)}
.mi-mapa{border:1px solid var(--border-default);border-radius:12px;overflow:hidden}
.mi-mapa-cab,.mi-par{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) 96px;align-items:center;gap:10px;padding:9px 14px}
.mi-mapa-cab{background:var(--bg-sunken);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-subtle)}
.mi-par{border-bottom:1px solid var(--border-faint)}
.mi-par:last-child{border-bottom:none}
.mi-par.ignorado .mi-de b{color:var(--text-muted)}
.mi-de{min-width:0}
.mi-de b{display:block;font-size:12.5px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mi-de span{display:block;margin-top:1px;font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'JetBrains Mono',ui-monospace,monospace}
.mi-seta{color:var(--text-faint);text-align:center}
.mi-par select{width:100%}
.mi-estado{justify-self:end;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.mi-estado.auto{color:var(--success-text);background:var(--tint-green-bg)}
.mi-estado.manual{color:var(--brand-purple-text);background:var(--tint-purple-bg)}
.mi-estado.fora{color:var(--text-faint);background:var(--bg-surface-alt)}
.mi-formato{display:inline-flex;align-items:center;gap:6px;margin-top:5px;font-size:11px;color:var(--text-muted)}
.mi-formato button{border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);font:inherit;font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:6px;cursor:pointer}
.mi-etapas{display:flex;flex-direction:column;gap:0;border:1px solid var(--border-default);border-radius:12px;overflow:hidden}
.mi-etapa{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border-faint)}
.mi-etapa:last-child{border-bottom:none}
.mi-etapa b{font-size:12.5px;color:var(--text-primary);font-weight:600}
.mi-etapa small{display:block;font-size:11px;color:var(--text-muted)}
.mi-tipo{display:inline-block;margin-left:6px;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;vertical-align:1px}
.mi-tipo.ganho{color:var(--success-text);background:var(--tint-green-bg)}
.mi-tipo.perdido{color:var(--danger-text);background:var(--tint-red-bg)}
.mi-politica{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mi-opcao{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--border-default);border-radius:11px;cursor:pointer;font-size:12px;color:var(--text-secondary);line-height:1.45}
.mi-opcao input{margin-top:2px;accent-color:#22d3ee}
.mi-opcao b{display:block;color:var(--text-primary);font-size:12.5px;margin-bottom:2px}
.mi-opcao:has(input:checked){border-color:var(--tint-cyan-border);background:var(--tint-cyan-bg)}
.mi-previa{overflow-x:auto;border:1px solid var(--border-default);border-radius:12px}
.mi-previa table{border-collapse:collapse;width:100%;font-size:11.5px;font-variant-numeric:tabular-nums}
.mi-previa th,.mi-previa td{padding:8px 11px;text-align:left;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--border-faint);color:var(--text-secondary)}
.mi-previa th{background:var(--bg-sunken);color:var(--text-muted);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.mi-previa tr:last-child td{border-bottom:none}
.mi-previa td.data{color:var(--brand-cyan-text);font-weight:600}
.mi-previa td.mi-vazio{color:var(--text-faint)}

/* Passo 3 e o relatório */
.mi-resumo{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.mi-cifra{padding:13px 14px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-surface-alt)}
.mi-cifra b{display:block;font-size:22px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.mi-cifra span{font-size:11.5px;color:var(--text-muted)}
.mi-cifra.verde b{color:var(--success-text)}
.mi-cifra.roxo b{color:var(--brand-purple-text)}
.mi-cifra.vermelho b{color:var(--danger-text)}
.mi-itens{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px}
.mi-itens li{display:flex;gap:9px;font-size:12.5px;color:var(--text-secondary);line-height:1.5}
.mi-itens li i{margin-top:3px;color:var(--brand-cyan-text);width:14px;text-align:center}
.mi-barra{height:7px;border-radius:99px;background:var(--bg-surface-alt);overflow:hidden}
.mi-barra>i{display:block;height:100%;width:0;background:var(--brand-cyan-text);border-radius:inherit;transition:width .25s}
.mi-lista{margin:6px 0 0;padding:0;list-style:none;max-height:190px;overflow:auto;border:1px solid var(--border-subtle);border-radius:10px}
.mi-lista li{display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px;padding:7px 11px;font-size:11.5px;color:var(--text-secondary);border-bottom:1px solid var(--border-faint)}
.mi-lista li:last-child{border-bottom:none}
.mi-lista li span:first-child{color:var(--text-muted);font-variant-numeric:tabular-nums}
.mi-pronto{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:26px 10px}
.mi-pronto i{font-size:34px;color:var(--success-text)}
.mi-pronto h3{margin:0;font-size:16px;color:var(--text-primary)}

/* A pílula de progresso: segue a pessoa por todas as telas */
.mi-prog{position:fixed;right:20px;bottom:88px;z-index:190;width:min(330px,calc(100vw - 32px));padding:12px 14px;border-radius:14px;background:var(--bg-surface);border:1px solid var(--border-default);box-shadow:0 14px 38px rgba(2,6,23,.28);display:flex;flex-direction:column;gap:8px}
.mi-prog[hidden]{display:none}
.mi-prog-topo{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;color:var(--text-primary)}
.mi-prog-topo .mi-prog-ico{color:var(--brand-cyan-text)}
.mi-prog.ok .mi-prog-ico{color:var(--success-text)}
.mi-prog.erro .mi-prog-ico{color:var(--danger-text)}
.mi-prog-topo span{flex:1;min-width:0}
.mi-prog small{font-size:11.5px;color:var(--text-muted);line-height:1.45}
.mi-prog-acoes{display:flex;gap:6px;justify-content:flex-end}
.mi-prog-acoes button{font:inherit;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:7px;border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}
.mi-prog-acoes button.forte{background:var(--tint-cyan-bg);border-color:var(--tint-cyan-border);color:var(--brand-cyan-text)}
.mi-prog-x{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:2px 4px}

@media (max-width:720px){
  .modal-ov.mi-ov{padding:0}
  .mi-caixa{max-height:100vh;height:100vh;border-radius:0!important}
  .mi-cab{grid-template-columns:minmax(0,1fr) auto;padding:14px 16px 12px}
  .mi-passos{grid-column:1/-1;order:3;overflow-x:auto}
  .mi-corpo{padding:16px}
  .mi-pe{padding:12px 16px;flex-wrap:wrap}
  .mi-fontes,.mi-politica{grid-template-columns:1fr}
  .mi-mapa-cab{display:none}
  .mi-par{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}
  .mi-par .mi-seta{display:none}
  .mi-par .mi-para{grid-column:1/-1;grid-row:2}
  .mi-par .mi-estado{grid-column:2;grid-row:1}
  .mi-etapa{grid-template-columns:1fr}
  .mi-etapa .mi-seta{display:none}
  .mi-prog{right:16px;bottom:80px}
}
@media (prefers-reduced-motion:reduce){.mi-barra>i,.mi-fonte{transition:none}}
.mi-carregando{display:flex;align-items:center;gap:10px;padding:34px 4px;color:var(--text-muted);font-size:12.5px}
.mi-carregando i{color:var(--brand-cyan-text)}
.mi-bloco{display:flex;flex-direction:column;gap:10px}
.mi-topo{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.mi-arq{display:flex;align-items:center;gap:11px;min-width:0}
.mi-arq>i{font-size:21px;color:var(--success-text)}
.mi-arq b{display:block;font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46ch}
.mi-arq span{font-size:11.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}
.mi-soltos>summary{cursor:pointer;list-style:none;font-size:12px;font-weight:600;color:var(--text-muted);padding:4px 2px}
.mi-soltos>summary::-webkit-details-marker{display:none}
.mi-soltos>summary::before{content:"▸";display:inline-block;width:14px;transition:transform .15s}
.mi-soltos[open]>summary::before{transform:rotate(90deg)}
.mi-soltos[open]>summary{margin-bottom:8px}
.mi-formato button[aria-pressed="true"]{background:var(--tint-cyan-bg);border-color:var(--tint-cyan-border);color:var(--brand-cyan-text)}
.mi-padrao{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;color:var(--text-secondary)}
.mi-padrao select{width:auto;min-width:210px}
.mi-pe .btn-s[disabled],.mi-fonte .btn-s[disabled]{opacity:.55;cursor:not-allowed}
.mi-prog .mi-barra{height:5px}
.mi-prog-acoes button.perigo{color:var(--danger-text);border-color:rgba(255,84,112,.45)}
.mi-hs-ok{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--success-text)}
@media (prefers-reduced-motion:reduce){.mi-soltos>summary::before{transition:none}}
/* Primeiros passos (gestão) */
.pp-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:12px;padding:16px 18px;margin-bottom:14px}
.pp-topo{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.pp-topo h3{margin:0;font-size:14px;color:var(--text-primary)}
.pp-topo .pp-sub{display:block;font-size:11.5px;color:var(--text-muted);margin-top:2px}
.pp-barra{flex:1;min-width:120px;height:6px;border-radius:99px;background:var(--bg-surface-alt);overflow:hidden}
.pp-barra>i{display:block;height:100%;background:var(--brand-cyan-text)}
.pp-lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px}
.pp-passo{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface-alt)}
.pp-marca{width:20px;height:20px;border-radius:99px;border:2px solid var(--border-default);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:transparent}
.pp-passo.feito .pp-marca{background:var(--success-text);border-color:var(--success-text);color:var(--bg-surface)}
.pp-passo b{display:block;font-size:12px;color:var(--text-primary)}
.pp-passo span{display:block;font-size:11px;color:var(--text-muted);line-height:1.45;margin-top:2px}
.pp-passo.feito b{color:var(--text-muted);text-decoration:line-through}
.pp-acoes{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.pp-link{background:none;border:none;padding:0;color:var(--brand-cyan-text);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline}
/* Painel do vendedor */
.mp-topo{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.mp-topo p{margin:0;font-size:12px;color:var(--text-secondary)}
.mp-topo b{color:var(--text-primary)}
.mp-acoes{display:flex;gap:8px;flex-wrap:wrap}
.mp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:12px}
.mp-rot{margin:0 0 6px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.mp-kpis .kpi-num{margin:0 0 4px}
.mp-kpis small{display:block;font-size:10.5px;color:var(--text-muted);margin-bottom:7px}
.mp-linha{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:12px}
.mp-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.mp-tit{margin:0;font-size:13px;font-weight:700;color:var(--text-primary)}
.mp-funil{display:flex;flex-direction:column;gap:10px}
.mp-fl{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--text-secondary);margin-bottom:4px}
.mp-fl b{color:var(--text-primary);font-variant-numeric:tabular-nums}
.mp-frase{margin:10px 0 0;font-size:12px;line-height:1.55;color:var(--text-secondary)}
.mp-frase b{color:var(--text-primary)}
.mp-pos{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--border-subtle);font-size:12px;color:var(--text-secondary)}
.mp-parados{display:flex;flex-direction:column;gap:7px}
.mp-parado{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;width:100%;text-align:left;padding:9px 11px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--bg-surface-alt);color:inherit;font-family:inherit;cursor:pointer}
.mp-parado:hover,.mp-parado:focus-visible{border-color:var(--brand-cyan-text)}
.mp-parado b{font-size:12px;color:var(--text-primary)}
.mp-parado span{grid-column:1;font-size:10.5px;color:var(--text-muted)}
.mp-parado em{grid-column:2;grid-row:1 / span 2;font-style:normal;font-size:10px;font-weight:800;color:#ff5470;background:var(--tint-red-bg);border-radius:99px;padding:2px 8px}
.mp-vazio{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:30px 20px}
.mp-vazio i{font-size:24px;color:var(--brand-cyan-text)}
.mp-vazio b{font-size:14px;color:var(--text-primary)}
.mp-vazio p{margin:0;font-size:12px;color:var(--text-muted);max-width:52ch;line-height:1.5}
/* Resumo semanal (Meu Perfil) */
.rs-linha{display:flex;gap:9px;align-items:flex-start;font-size:12px;color:var(--text-secondary);line-height:1.45;cursor:pointer}
.rs-linha input{margin-top:2px;accent-color:#22d3ee;width:16px;height:16px;flex-shrink:0;cursor:pointer}
/* Verificação em duas etapas */
.df-codigo{letter-spacing:.32em;text-align:center;font-size:18px;font-variant-numeric:tabular-nums}
.df-passos{margin:0 0 12px;padding-left:18px;font-size:12px;line-height:1.6;color:var(--text-secondary)}
.df-passos b{color:var(--text-primary)}
.df-qr{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.df-qr img{width:150px;height:150px;border-radius:10px;background:#fff;padding:6px;flex-shrink:0}
.df-chave{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--text-primary);word-break:break-all;background:var(--bg-surface-alt);border:1px solid var(--border-subtle);border-radius:8px;padding:8px 10px}
.df-codigos{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:0 0 12px;padding:12px;border:1px dashed var(--border-default);border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;color:var(--text-primary);text-align:center}
.df-estado{font-size:12px;color:var(--text-secondary);line-height:1.5;margin:0 0 10px}
.df-estado b{color:var(--success-text)}
.df-acoes{display:flex;gap:8px;flex-wrap:wrap}
/* Acessos do suporte JOE (Usuários & Acessos) */
.vs-intro{margin:0 0 14px;font-size:12px;line-height:1.55;color:var(--text-secondary);max-width:72ch}
.vs-lista{display:flex;flex-direction:column;gap:10px}
.vs-visita{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;padding:12px 14px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface-alt)}
.vs-quando{grid-row:1 / span 2;text-align:center;min-width:58px}
.vs-quando b{display:block;font-size:18px;color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1.1}
.vs-quando span{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}
.vs-linha{font-size:12px;color:var(--text-primary)}
.vs-linha small{color:var(--text-muted);font-size:11px}
.vs-areas{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.vs-area{font-size:10.5px;padding:2px 8px;border-radius:99px;background:var(--bg-chip);color:var(--text-secondary)}
.vs-area.alterou{background:var(--tint-amber-bg);color:#fbbf24}
.vs-vazio{font-size:12px;color:var(--text-muted);padding:18px 0;text-align:center}
.rs-pill.sem-equipe:hover{filter:brightness(1.15)}
.ua-aviso-equipe{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;padding:10px 12px;border-radius:10px;background:var(--tint-amber-bg);color:var(--warning-text);font-size:12px;line-height:1.45}
.ua-aviso-equipe .btn-g{flex:none;padding:6px 11px}
.ua-equipe-nota{margin:5px 0 0;color:var(--text-muted);font-size:10.5px;line-height:1.45}
/* ── Popover (menu ancorado) ────────────────────────────────────────
   Painel que abre grudado no botão que o chamou, no lugar do prompt()
   do navegador. Primeiro componente desse tipo no app — foi feito
   genérico (abrirPopover/fecharPopover) pra qualquer outro menu do
   sistema reaproveitar em vez de criar um novo do zero. */
.pop-ov{position:fixed;inset:0;z-index:300;background:transparent}
.pop{position:fixed;z-index:301;width:284px;max-height:min(78vh,620px);overflow-y:auto;
  background:var(--bg-surface);border:1px solid var(--border-default);border-radius:12px;
  box-shadow:0 18px 46px rgba(0,0,0,.45);padding:6px 0 8px;animation:popIn .12s ease}
html[data-theme="light"] .pop{box-shadow:0 18px 44px rgba(15,23,42,.16)}
@keyframes popIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.pop-head{display:flex;align-items:center;justify-content:center;position:relative;padding:8px 34px 10px}
.pop-head h4{margin:0;font-size:12px;font-weight:700;color:var(--text-secondary)}
.pop-x{position:absolute;right:8px;top:5px;background:none;border:none;color:var(--text-muted);
  font-size:14px;cursor:pointer;padding:4px 7px;border-radius:6px;line-height:1}
.pop-x:hover{background:var(--bg-chip);color:var(--text-primary)}
.pop-item{display:flex;align-items:center;gap:9px;width:100%;background:none;border:none;
  text-align:left;padding:9px 14px;font-size:12.5px;color:var(--text-primary);cursor:pointer;font-family:inherit}
.pop-item:hover{background:var(--bg-chip)}
.pop-item i{width:15px;text-align:center;font-size:11.5px;color:var(--text-muted);flex-shrink:0}
.pop-item .pop-hint{margin-left:auto;font-size:10px;color:var(--text-dim);font-weight:600}
.pop-item.danger{color:var(--danger-text)}
.pop-item.danger i{color:var(--danger-text)}
.pop-sep{height:1px;background:var(--border-subtle);margin:6px 0}
.pop-lbl{padding:7px 14px;font-size:9.5px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-dim)}
.pop-sw-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:2px 14px 10px}
.pop-sw{width:100%;aspect-ratio:1;border-radius:7px;border:2px solid transparent;cursor:pointer;
  padding:0;position:relative;transition:transform .1s}
.pop-sw:hover{transform:scale(1.14)}
.pop-sw.sel{border-color:var(--text-primary)}
.pop-sw.sel::after{content:'';position:absolute;left:50%;top:46%;width:5px;height:9px;
  border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%,-50%) rotate(45deg);
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.55))}
.brandmark{font-family:'Orbitron','Inter',system-ui,sans-serif;font-weight:800;color:var(--text-primary);letter-spacing:.04em}
html,body{margin:0;padding:0;height:100%;font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg-page);color:var(--text-primary)}
#app{display:flex;height:100vh;width:100vw;overflow:hidden}
#sidebar{width:224px;min-width:224px;height:100vh;overflow-y:auto;overflow-x:hidden;background:var(--bg-surface);border-right:1px solid var(--border-default);display:flex;flex-direction:column;flex-shrink:0}
#main-col{flex:1;min-width:0;height:100vh;display:flex;flex-direction:column;overflow:hidden}
#topbar{height:52px;min-height:52px;background:var(--bg-surface);border-bottom:1px solid var(--border-default);display:flex;align-items:center;padding:0 20px;gap:10px;flex-shrink:0}
/* O botão flutuante do JOE fica fixo no canto inferior direito (54px +
   22px de margem). Sem esta folga embaixo, qualquer controle que termine
   naquele canto some atrás dele — foi o que acontecia com o botão de
   próxima página dos Contatos. A folga vale pra TODAS as abas, então o
   problema não volta em nenhuma tela nova. */
#content{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 20px 96px}
.nav-btn{width:100%;display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;font-size:12px;font-weight:600;color:var(--text-secondary);background:transparent;border:none;cursor:pointer;transition:all .13s;text-align:left;white-space:nowrap;position:relative}
.nav-btn:hover{background:var(--bg-surface-alt);color:var(--text-quiet)}
.nav-btn.active{background:var(--tint-purple-bg);color:var(--brand-purple-text);font-weight:700}
.nav-btn.active::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:2px;background:var(--brand-purple-text)}
.nav-btn .ic{width:17px;text-align:center;flex-shrink:0;font-size:12.5px}
/* data-perm sem permissão (applyPermissions): some sem mexer no display que a tela controla */
.perm-negada{display:none!important}
.wpp-so-gestao{display:flex;gap:10px;align-items:flex-start;background:#0f1b2b;border:1px solid #1e3a5f;border-radius:9px;padding:12px 14px;margin-bottom:16px}
.wpp-so-gestao i{color:#38bdf8;font-size:14px;margin-top:1px}
.wpp-so-gestao p{color:#b3b3b3;font-size:12px;margin:0;line-height:1.5}
.nav-section-lbl{margin:14px 0 5px;padding:8px 3px 0;font-size:10px;font-weight:800;letter-spacing:.11em;color:var(--text-dim);border-top:1px solid var(--border-subtle)}
.nav-lk{margin-left:auto;color:var(--text-muted);font-size:10px}
.bai-tab{background:var(--bg-chip);color:var(--text-secondary);border:none;font-weight:700;font-size:12px;padding:8px 15px;border-radius:9px;cursor:pointer;transition:all .13s}
.bai-tab:hover{background:var(--tint-purple-bg);color:#8b5cf6}
.bai-tab.active{background:#8b5cf6;color:#fff}
/* ── JOE (interface neural) ── */
.joe-brain{width:110px;height:110px;object-fit:contain;user-select:none;-webkit-user-drag:none;cursor:pointer;animation:joeIdle 4s ease-in-out infinite;transition:transform .15s}
.joe-brain:hover{transform:scale(1.04)}
@keyframes joeIdle{0%,100%{filter:drop-shadow(0 0 6px rgba(34,211,238,.25))}50%{filter:drop-shadow(0 0 14px rgba(34,211,238,.45))}}
.joe-brain.processing{animation:joeProc 1s ease-in-out infinite}
@keyframes joeProc{0%,100%{filter:drop-shadow(0 0 10px rgba(34,211,238,.55))}50%{filter:drop-shadow(0 0 18px rgba(139,92,246,.6))}}
.joe-brain.speaking{animation:joeSpeak 1.4s ease-in-out infinite}
@keyframes joeSpeak{0%,100%{filter:drop-shadow(0 0 8px rgba(139,92,246,.45))}50%{filter:drop-shadow(0 0 16px rgba(139,92,246,.65))}}
.joe-term{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12.5px;line-height:1.75;color:var(--text-quiet);white-space:pre-wrap;word-wrap:break-word}
.joe-term .cur{display:inline-block;width:7px;height:13px;background:#22d3ee;vertical-align:-2px;animation:joeCur .8s step-end infinite;margin-left:2px}
@keyframes joeCur{0%,100%{opacity:1}50%{opacity:0}}
/* Módulo "cockpit" do orb — permanece escuro de propósito nos dois temas,
   como um mini-palco imersivo dentro do card (já claro) ao redor dele. */
.joe-cockpit{width:100%;max-width:800px;background:radial-gradient(circle at 50% 20%,#161b34 0%,#0a0a12 78%);border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:28px 20px 20px;display:flex;flex-direction:column;align-items:center;margin-bottom:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.joe-cockpit .brandmark{color:#f5f5fa}
.joe-cockpit .joe-term{color:#d4d4dc}
.joe-glass{background:var(--bg-surface);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-default);border-radius:12px;transition:border-color .15s}
.joe-glass:focus-within{border-color:#22d3ee}
.joe-glass input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:13px;font-family:'JetBrains Mono',ui-monospace,monospace;padding:13px 16px}
.joe-glass input::placeholder{color:var(--text-muted)}
.joe-send{width:40px;height:40px;margin:5px;border:none;border-radius:9px;background:#22d3ee;color:#041418;font-size:14px;cursor:pointer;transition:background .15s,transform .1s;flex-shrink:0}
.joe-send:hover{background:#4deaff}.joe-send:active{transform:scale(.96)}.joe-send:disabled{opacity:.45;cursor:not-allowed}
#joe-hud{display:none;position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:400;border:1px solid rgba(34,211,238,.4);border-radius:10px;padding:10px 20px;background:rgba(0,0,0,.85);backdrop-filter:blur(8px);text-align:center;animation:hudIn .25s ease;max-width:min(680px,calc(100vw - 24px))}
@keyframes hudIn{from{opacity:0;transform:translateX(-50%) translateY(-8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
#joe-hud p{margin:0;font-family:'JetBrains Mono',ui-monospace,monospace;font-weight:600;letter-spacing:.06em;font-size:12.5px;color:#22d3ee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:13px;padding:24px;box-shadow:var(--shadow-surface)}

/* ── ESTADO VAZIO ──────────────────────────────────────────────────
   O portal de um cliente novo começa zerado, e por um tempo a maior parte do
   app é isto aqui. Então o vazio não é um caso de borda: é a primeira coisa
   que a pessoa que acabou de assinar vê, em quase toda tela.

   TRÊS DECISÕES:

   1. Ilustração abstrata, não emoji nem ícone de "caixa vazia". A figura
      sugere a FORMA do que vai aparecer ali — barras decrescentes onde vai
      nascer um funil, uma grade onde vai nascer uma agenda. Quem chega
      entende o que aquela tela faz antes de ter qualquer dado nela.

   2. Silenciosa por padrão. O traço é fino e apagado; quem manda no contraste
      é o texto e o botão. Um vazio que grita compete com o resto da tela todo
      dia, muito depois de a pessoa já saber o que ele quer dizer.

   3. Um tom de ATENÇÃO, separado. Nem todo vazio é um convite: "seu login não
      está ligado a um vendedor" é um defeito de configuração com conserto, e
      pintá-lo igual ao "cadastre seu primeiro negócio" manda a pessoa tentar
      justamente o que não vai funcionar. */
.vazio{display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:46px 22px;gap:4px}
.vazio-fig{width:72px;height:72px;margin-bottom:14px;color:var(--text-faint);opacity:.75}
.vazio-fig svg{width:100%;height:100%;display:block}
.vazio-tit{color:var(--text-primary);font-weight:700;font-size:14.5px;margin:0}
.vazio-txt{color:var(--text-secondary);font-size:12px;line-height:1.6;margin:0;
  max-width:42ch}
.vazio-acoes{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin-top:16px}
.vazio-dica{color:var(--text-faint);font-size:10.5px;margin:13px 0 0;max-width:46ch;line-height:1.55}
/* Tom de atenção: a figura ganha a cor de aviso e o bloco, uma moldura suave.
   É o bastante para a pessoa perceber que este vazio é diferente dos outros,
   sem virar um alarme vermelho por algo que o gestor resolve em dez segundos. */
.vazio.atencao{background:var(--tint-amber-bg-2);border:1px solid rgba(251,191,36,.22);
  border-radius:12px;padding:34px 22px}
.vazio.atencao .vazio-fig{color:var(--warning-text);opacity:.9}
.vazio.atencao .vazio-tit{color:var(--warning-text)}
/* No fundo âmbar, --text-faint cai para ~3.2:1 — abaixo do mínimo de 4.5:1
   para texto. E logo esta linha é a que diz o que fazer: é a última que pode
   ficar difícil de ler. */
.vazio.atencao .vazio-dica{color:#d9cfae}
@media (max-width:520px){.vazio{padding:32px 16px}.vazio-fig{width:58px;height:58px}}
@media (prefers-reduced-motion:no-preference){
  .vazio-fig svg [data-pulsa]{animation:vazioPulsa 3.4s ease-in-out infinite}
  @keyframes vazioPulsa{0%,100%{opacity:.25}50%{opacity:.6}}
}

.tab-section{display:none}.tab-section.active{display:block}
.tab-chat-section{display:none}.tab-chat-section.active{display:flex;flex-direction:column}
.inp{width:100%;background:var(--bg-surface-alt);border:1px solid var(--border-strong);border-radius:8px;padding:8px 11px;font-size:12.5px;color:var(--text-primary);outline:none;transition:border-color .13s}
.pw-wrap{position:relative}
.pw-eye{position:absolute;top:50%;right:9px;transform:translateY(-50%);background:none;border:none;padding:0;margin:0;cursor:pointer;color:var(--text-muted);font-size:12.5px;line-height:1;display:flex;align-items:center}
.pw-eye:hover{color:var(--text-quiet2)}
.inp:focus{border-color:#22d3ee;background:var(--bg-surface);box-shadow:var(--focus-ring)}
.inp:disabled{opacity:.5;cursor:not-allowed}
select.inp option{background:var(--bg-surface)}
textarea.inp{resize:vertical}
/* Botão primário com borda inferior sólida (efeito "botão físico" 3D):
   empurra pra baixo e perde a borda no :active, como se fosse pressionado
   de verdade — não é só um retângulo colorido chapado. */
.btn-p{background:#22d3ee;color:#041418;font-weight:600;font-size:12px;padding:8px 16px;border-radius:8px;border:none;cursor:pointer;transition:background .13s,box-shadow .13s,transform .08s;display:inline-flex;align-items:center;box-shadow:0 2px 0 #0891b2,0 3px 8px rgba(34,211,238,.25)}
.btn-p:hover{background:#4deaff}
.btn-p:active{transform:translateY(2px);box-shadow:0 0 0 #0891b2}
.btn-p:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.btn-p:disabled{opacity:.45;cursor:not-allowed;background:#22d3ee;box-shadow:none}
.btn-g{background:var(--bg-surface);color:var(--text-secondary);font-weight:600;font-size:12px;padding:8px 16px;border-radius:8px;border:1px solid var(--border-default);cursor:pointer;transition:all .13s;display:inline-flex;align-items:center}
.btn-g:hover{color:var(--text-quiet);border-color:var(--border-strong);background:var(--bg-surface-alt)}
.btn-g:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.btn-g:disabled{opacity:.45;cursor:not-allowed;color:var(--text-secondary);background:var(--bg-surface)}
.btn-ter{background:transparent;border:none;color:var(--text-secondary);font-weight:600;font-size:12px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:all .13s;display:inline-flex;align-items:center}
.btn-ter:hover{color:var(--text-primary);background:var(--bg-hover)}
.btn-ter:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.btn-ter:disabled{opacity:.45;cursor:not-allowed}
.btn-s{font-size:11px;font-weight:700;padding:5px 10px;border-radius:7px;border:none;cursor:pointer;transition:all .13s;display:inline-flex;align-items:center}
.btn-wa{background:#25d366;color:#fff;font-weight:700;font-size:11px;padding:5px 10px;border-radius:7px;border:none;cursor:pointer;display:inline-flex;align-items:center}
.btn-em{background:#6366f1;color:#fff;font-weight:700;font-size:11px;padding:5px 10px;border-radius:7px;border:none;cursor:pointer;display:inline-flex;align-items:center}
.lbl{display:block;font-size:10px;font-weight:700;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em}
.inbox-item-actions{opacity:0;transition:opacity .12s}
.inbox-item:hover .inbox-item-actions{opacity:1}
.inbox-item-actions i:hover{color:var(--text-primary)!important}
.inbox-item:hover{background:var(--bg-surface-alt)!important}
.inbox-item .fa-star:hover{color:#fbbf24!important}
.inbox-sidebar-item{display:flex;align-items:center;gap:11px;padding:9px 14px;border-radius:0 20px 20px 0;font-size:12.5px;font-weight:600;color:var(--text-quiet);cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}
.inbox-sidebar-item i{width:14px;text-align:center;font-size:12px;color:var(--text-muted)}
.inbox-sidebar-item:hover{background:var(--bg-surface-alt)}
.inbox-sidebar-item.active{background:#243d38;color:#5eead4;font-weight:800}
.inbox-sidebar-item.active i{color:#5eead4}
/* ── Funcionalidades em teste (feature flags) ── */
.func-view-btn{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-muted);font-size:11.5px;font-weight:700;padding:7px 13px;border-radius:8px;cursor:pointer}
.func-view-btn.active{background:var(--tint-cyan-bg);border-color:var(--brand-cyan-text);color:var(--brand-cyan-text)}
.func-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--border-default)}
.func-card-title{font-size:14px;font-weight:700;color:var(--text-primary)}
.func-card-desc{font-size:11.5px;color:var(--text-muted);margin-top:4px;line-height:1.5;max-width:480px}
.func-switch-lbl{display:flex;align-items:center;gap:9px;cursor:pointer;flex-shrink:0;white-space:nowrap}
.func-switch-lbl input{position:absolute;opacity:0;width:0;height:0}
.func-switch{width:34px;height:19px;border-radius:99px;background:var(--bg-chip);position:relative;transition:background .15s;flex-shrink:0}
.func-switch::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:transform .15s}
.func-switch-lbl input:checked + .func-switch{background:#2fe08a}
.func-switch-lbl input:checked + .func-switch::after{transform:translateX(15px)}
.func-switch-txt{font-size:11px;font-weight:600;color:var(--text-muted)}
.func-switch-lbl input:checked ~ .func-switch-txt{color:var(--success-text)}
.func-contas-list{padding:6px 18px}
.func-conta-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-default)}
.func-conta-row:last-child{border-bottom:none}
.func-conta-info{display:flex;align-items:center;gap:9px;min-width:0;flex-wrap:wrap}
.func-conta-nome{font-size:12.5px;font-weight:600;color:var(--text-primary)}
.func-conta-email{font-size:11px;color:var(--text-muted)}
.func-role-badge{font-size:9px;font-weight:800;letter-spacing:.04em;padding:2px 7px;border-radius:99px;text-transform:uppercase;flex-shrink:0}
.func-role-admin{background:var(--tint-purple-bg);color:var(--brand-purple-text)}
.func-role-diretor{background:color-mix(in srgb,var(--brand-blue-text) 14%,transparent);color:var(--brand-blue-text)}
.func-role-gestor{background:var(--tint-cyan-bg);color:var(--brand-cyan-text)}
.func-role-vendedor{background:var(--tint-green-bg);color:var(--success-text)}
.func-sel{background:var(--bg-surface-alt);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:7px;padding:6px 10px;font-size:11.5px;font-weight:600;flex-shrink:0;cursor:pointer}
.func-sel:focus{outline:none;box-shadow:var(--focus-ring)}
.func-matrix-wrap{overflow-x:auto;border:1px solid var(--border-default);border-radius:12px;background:var(--bg-surface)}
table.func-matrix{border-collapse:collapse;width:100%;font-size:11.5px}
table.func-matrix th,table.func-matrix td{padding:10px 12px;border-bottom:1px solid var(--border-default);white-space:nowrap;vertical-align:middle}
table.func-matrix thead th{position:sticky;top:0;background:var(--bg-surface-alt);color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;text-align:left;border-bottom:1px solid var(--border-default)}
table.func-matrix tbody tr:last-child td{border-bottom:none}
table.func-matrix tbody tr:hover{background:var(--bg-row-hover)}
.func-matrix-flag-col{position:sticky;left:0;background:var(--bg-surface);min-width:220px;white-space:normal;z-index:1}
table.func-matrix thead th.func-matrix-flag-col{background:var(--bg-surface-alt);z-index:2}
.func-matrix-flag-nome{font-weight:700;color:var(--text-primary);font-size:12.5px}
.func-matrix-flag-desc{font-size:10.5px;color:var(--text-muted);margin-top:2px;line-height:1.4;max-width:260px;white-space:normal}
.func-matrix-conta-head{text-align:center!important}
.func-matrix-conta-nome{font-size:10.5px;font-weight:700;color:var(--text-primary)}
.func-matrix-conta-role{font-size:8.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:1px}
.func-sel-cell{background:var(--bg-surface-alt);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:6px;padding:5px 7px;font-size:10.5px;font-weight:600;cursor:pointer;width:100%;min-width:104px}
.func-sel-cell.is-on{border-color:var(--success-text);color:var(--success-text)}
.func-sel-cell.is-off{border-color:var(--danger-text);color:var(--danger-text)}
.func-sel-cell.is-padrao{color:var(--text-muted)}
.func-matrix-padrao-cell{text-align:center!important}
.func-vazio{color:var(--text-muted);font-size:11.5px;padding:10px 0}
/* ── Painel de planos (Funcionalidades → Planos e Testes por tempo) ──
   Sóbrio pelo mesmo motivo do painel de assinantes: é onde se muda o produto
   de todos os clientes. Cor só onde carrega sentido — verde é "incluso",
   âmbar é "atenção antes de gravar", roxo é "custa IA a cada uso". */
.pl-abas{display:flex;gap:6px;margin-bottom:13px;flex-wrap:wrap}
.pl-abas .func-view-btn i{margin-right:6px}
.pl-intro{color:var(--text-muted);font-size:11.5px;line-height:1.55;margin:4px 0 0;max-width:720px}
.pl-titulo{color:var(--text-primary);font-weight:700;font-size:13px;margin:0}
table.pl-matriz{border-collapse:collapse;width:100%;font-size:12px;min-width:520px}
table.pl-matriz th,table.pl-matriz td{padding:9px 12px;border-bottom:1px solid var(--border-default);vertical-align:middle}
table.pl-matriz thead th{background:var(--bg-surface-alt);color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;text-align:center}
table.pl-matriz thead th:first-child{text-align:left}
table.pl-matriz tbody tr:last-child td{border-bottom:none}
table.pl-matriz tr.pl-mudou td{background:var(--tint-cyan-bg)}
.pl-qtd{display:block;font-size:9.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text-faint);margin-top:2px;font-variant-numeric:tabular-nums}
.pl-rec-nome{font-weight:700;color:var(--text-primary);font-size:12.5px}
.pl-rec-tags{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-top:4px}
.pl-tag{font-size:9.5px;font-weight:700;padding:1px 7px;border-radius:99px;background:var(--bg-chip);color:var(--text-muted);white-space:nowrap}
.pl-tag.ia{background:var(--tint-purple-bg);color:var(--brand-purple-text)}
.pl-tag.mudou{background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text)}
.pl-tag.fora{background:var(--tint-amber-bg);color:var(--warning-text)}
.pl-link{background:none;border:none;padding:0;color:var(--brand-cyan-text);font-size:10.5px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.pl-link:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}
/* ── Perfis de acesso (Usuários & Acessos) ────────────────────────
   A tela do diretor: em vez de uma chave por pessoa por módulo, uma chave
   por PAPEL. Verde é "aparece no menu", cinza é "não aparece". Os selos de
   plano usam as cores da casa (Gratuito azul, Standard ciano, Pro roxo) e o
   âmbar fica reservado para o que precisa de atenção: exceção e fora do plano. */
.pa-grade{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;align-items:start}
@media(max-width:1100px){.pa-grade{grid-template-columns:minmax(0,1fr)}}
.pa-abas{display:flex;gap:6px;margin:12px 0;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.pa-abas::-webkit-scrollbar{display:none}
.pa-aba{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);font-size:12px;font-weight:700;padding:8px 13px;border-radius:10px;cursor:pointer}
.pa-aba[aria-selected="true"]{border-color:var(--brand-cyan-text);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--brand-cyan-text)}
.pa-qtd{font-size:10px;font-variant-numeric:tabular-nums;color:var(--text-muted);background:var(--bg-chip);border-radius:99px;padding:1px 7px;margin-left:6px}
.pa-aba .pa-qtd{margin-left:0}
.pa-aba[aria-selected="true"] .pa-qtd{background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text)}
.pa-resumo{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:12px;padding:11px 14px;margin-bottom:12px}
.pa-resumo p{flex:1 1 240px;min-width:0;margin:0;color:var(--text-secondary);font-size:12px;line-height:1.5}
.pa-resumo b{color:var(--text-primary)}
.pa-atalhos{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pa-atalhos .lbl{margin:0 2px 0 0}
.pa-chip{border:1px solid var(--border-default);background:var(--bg-chip);color:var(--text-secondary);border-radius:99px;padding:5px 11px;font-size:11.5px;font-weight:700;cursor:pointer}
.pa-chip:hover{color:var(--text-primary);border-color:var(--border-strong)}
.pa-chip[aria-pressed="true"]{background:var(--tint-cyan-bg-2);border-color:var(--brand-cyan-text);color:var(--brand-cyan-text)}
.pa-grupo{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:13px;margin-bottom:12px;overflow:hidden;box-shadow:var(--shadow-surface)}
.pa-grupo-cab{display:flex;align-items:center;gap:11px;width:100%;padding:12px 14px;background:transparent;border:0;border-bottom:1px solid var(--border-default);cursor:pointer;text-align:left;color:inherit;font:inherit}
.pa-grupo[data-fechado] .pa-grupo-cab{border-bottom-color:transparent}
.pa-grupo[data-fechado] .pa-linhas{display:none}
.pa-gi{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--bg-chip);color:var(--brand-cyan-text);flex:0 0 auto}
.pa-gt{display:block;font-weight:700;font-size:13px;color:var(--text-primary)}
.pa-gd{display:block;font-size:11px;color:var(--text-muted);margin-top:1px}
.pa-conta{margin-left:auto;font-size:11px;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.pa-seta{color:var(--text-faint);transition:transform .15s}
.pa-grupo[data-fechado] .pa-seta,.pa-pessoa[data-fechado] .pa-seta{transform:rotate(-90deg)}
.pa-linha{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 14px;border-top:1px solid var(--border-default)}
.pa-linhas > .pa-linha:first-child,.pa-corpo > .pa-linha:first-child{border-top:0}
.pa-mi{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--bg-chip);font-size:13px}
.pa-nome{display:flex;flex-wrap:wrap;align-items:center;gap:5px 7px;font-weight:700;font-size:12.5px;color:var(--text-primary)}
.pa-micro{margin:2px 0 0;font-size:11px;color:var(--text-muted);line-height:1.45}
.pa-nota{margin:4px 0 0;font-size:11px;color:var(--warning-text);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;line-height:1.45}
.pa-linha[data-apagado] .pa-mi,.pa-linha[data-apagado] .pa-nome,.pa-linha[data-apagado] .pa-micro{opacity:.55}
.pa-lado{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.pa-fixo{font-size:11px;font-weight:700;color:var(--text-muted);white-space:nowrap}
.pa-selo{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:1px 7px;border-radius:99px;white-space:nowrap;line-height:1.6}
.pa-selo.free{background:color-mix(in srgb,var(--brand-blue-text) 14%,transparent);color:var(--brand-blue-text)}
.pa-selo.standard{background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text)}
.pa-selo.pro{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff}
.pa-selo.exc{background:var(--tint-amber-bg);color:var(--warning-text)}
.pa-switch{position:relative;width:42px;height:24px;border-radius:99px;border:0;background:var(--border-strong);cursor:pointer;flex:0 0 auto;transition:background .15s;padding:0}
.pa-switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s}
.pa-switch[aria-checked="true"]{background:var(--chart-success)}
.pa-switch[aria-checked="true"]::after{transform:translateX(18px)}
.pa-switch:disabled{cursor:not-allowed;opacity:.45}
.pa-switch:focus-visible,.pa-aba:focus-visible,.pa-chip:focus-visible,.pa-grupo-cab:focus-visible,.pa-pessoa-cab:focus-visible,.pa-link:focus-visible,.pa-upg:focus-visible,.pa-voltar:focus-visible,.pa-nav-item:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.pa-link{background:none;border:0;padding:0;color:var(--brand-purple-text);font-weight:800;font-size:11px;cursor:pointer}
.pa-upg{border:1px solid var(--tint-purple-border);background:var(--tint-purple-bg);color:var(--brand-purple-text);border-radius:99px;padding:4px 10px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}
.pa-ok{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--success-text);white-space:nowrap}
.pa-admin{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:11px 14px;border-top:1px solid var(--border-default);background:var(--bg-sunken)}
.pa-admin .t{font-size:11.5px;font-weight:700;color:var(--text-secondary)}
.pa-mini{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted);border:1px solid var(--border-default);border-radius:99px;padding:2px 9px;background:var(--bg-surface)}
.pa-admin .fim{margin-left:auto;font-size:11px;color:var(--text-muted)}
.pa-aviso{display:flex;gap:10px;align-items:flex-start;background:var(--bg-surface);border:1px solid var(--card-border-color);border-left:3px solid var(--brand-cyan-text);border-radius:10px;padding:11px 13px;color:var(--text-secondary);font-size:12px;margin-bottom:12px;line-height:1.5}
.pa-aviso > i{color:var(--brand-cyan-text);margin-top:2px}
.pa-pessoa{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:12px;margin-bottom:9px;overflow:hidden}
.pa-pessoa-cab{display:flex;align-items:center;gap:11px;width:100%;padding:11px 13px;border:0;background:transparent;text-align:left;cursor:pointer;color:inherit;font:inherit}
.pa-av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text);flex:0 0 auto}
.pa-quem{min-width:0;flex:1}
.pa-quem b{display:block;font-size:12.5px;color:var(--text-primary)}
.pa-quem .sub{display:block;font-size:11px;color:var(--text-muted)}
.pa-difs{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.pa-dif{font-size:10.5px;font-weight:700;border-radius:99px;padding:1px 8px}
.pa-dif.mais{background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text)}
.pa-dif.menos{background:var(--tint-amber-bg);color:var(--warning-text)}
.pa-pessoa[data-fechado] .pa-corpo{display:none}
.pa-pessoa .pa-corpo{border-top:1px solid var(--border-default)}
.pa-voltar{background:none;border:0;color:var(--text-muted);cursor:pointer;font-size:12px;padding:4px 6px;border-radius:6px}
.pa-voltar:hover{color:var(--text-primary)}
.pa-previa{position:sticky;top:12px;display:grid;gap:9px}
@media(max-width:1100px){.pa-previa{position:static}}
.pa-previa .lbl{margin:0}
.pa-nav{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:13px;padding:10px 7px;box-shadow:var(--shadow-surface)}
.pa-nav-sec{font-size:9.5px;font-weight:800;letter-spacing:.1em;color:var(--text-dim);padding:9px 9px 3px}
.pa-nav-item{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;border-radius:8px;padding:6px 9px;font-size:12px;font-weight:600;color:var(--text-secondary);text-align:left;cursor:default;font-family:inherit}
.pa-nav-item .ic{width:15px;text-align:center}
.pa-nav-item.cadeado{cursor:pointer;color:var(--text-muted)}
.pa-nav-item.cadeado:hover{background:var(--bg-hover)}
.pa-nav-item .lk{margin-left:auto;color:var(--text-muted);font-size:10px}
.pa-previa-rodape{font-size:11px;color:var(--text-muted);line-height:1.5;margin:0}
.pa-previa-rodape b{color:var(--text-primary)}
.pa-vazio{color:var(--text-muted);font-size:12px;padding:14px;margin:0}
.pa-erro{color:var(--danger-text);font-size:12px;margin:0}
.ua-nota-perfil{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin-top:14px;border-top:1px solid var(--border-default);padding-top:12px;color:var(--text-muted);font-size:11.5px;line-height:1.5}
.ua-nota-perfil b{color:var(--text-primary)}
.ua-papel{font-weight:700;font-size:10.5px;padding:2px 8px;border-radius:99px;white-space:nowrap}
.ua-papel.admin{background:var(--tint-purple-bg);color:var(--brand-purple-text)}
.ua-papel.diretor{background:color-mix(in srgb,var(--brand-blue-text) 14%,transparent);color:var(--brand-blue-text)}
.ua-papel.gestor{background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text)}
.ua-papel.vendedor{background:var(--tint-green-bg);color:var(--success-text)}
.pl-celula{text-align:center;width:112px}
.pl-opcao{position:relative;display:inline-flex;cursor:pointer}
.pl-opcao input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.pl-marca{width:36px;height:28px;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-faint);display:inline-flex;align-items:center;justify-content:center;font-size:11px;transition:background .12s,border-color .12s,color .12s}
.pl-opcao:hover .pl-marca{border-color:var(--brand-cyan-text)}
.pl-opcao.on .pl-marca{background:var(--tint-green-bg);border-color:var(--tint-green-border);color:var(--success-text)}
.pl-opcao.min .pl-marca{border-width:2px;border-color:var(--success-text)}
.pl-opcao input:focus-visible + .pl-marca{box-shadow:var(--focus-ring)}
.pl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pl-legenda{display:flex;gap:14px;flex-wrap:wrap;color:var(--text-muted);font-size:10.5px;margin:10px 2px 0}
.pl-legenda .pl-marca{width:22px;height:18px;font-size:9px;margin-right:5px;vertical-align:middle}
table.pl-cotas{border-collapse:collapse;font-size:11.5px;margin-top:6px;min-width:420px}
table.pl-cotas th,table.pl-cotas td{padding:6px 12px;border-bottom:1px solid var(--border-subtle);text-align:right;font-variant-numeric:tabular-nums}
table.pl-cotas th{color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:800}
table.pl-cotas td:first-child,table.pl-cotas th:first-child{text-align:left;color:var(--text-secondary)}
table.pl-cotas td{color:var(--text-primary)}
.pl-barra{position:sticky;bottom:10px;z-index:5;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 14px;border-radius:11px;background:var(--bg-surface-alt);border:1px solid var(--tint-cyan-border);box-shadow:0 8px 24px rgba(0,0,0,.25)}
.pl-barra-txt{flex:1;min-width:160px;font-size:12px;color:var(--text-primary);font-weight:600}
.pl-erro{margin-top:12px;padding:11px 14px;border-radius:10px;background:var(--tint-red-bg);color:var(--danger-text);font-size:12px;line-height:1.5}
.pl-previa{margin-top:13px;border:1px solid var(--tint-cyan-border)}
.pl-previa ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-secondary);line-height:1.5}
.pl-previa ul b{color:var(--text-primary)}
.pl-ganha{color:var(--success-text);font-weight:700}
.pl-perde{color:var(--warning-text);font-weight:700}
.pl-sub{margin:14px 0 0;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim)}
.pl-alerta{display:flex;gap:9px;align-items:flex-start;margin-top:8px;padding:9px 12px;border-radius:9px;background:var(--tint-amber-bg);color:var(--warning-text);font-size:11.5px;line-height:1.5}
.pl-alerta i{margin-top:2px}
.pl-acoes{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end;margin-top:14px}
.pl-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px;align-items:start}
.pl-escolha{display:flex;gap:6px;flex-wrap:wrap}
.pl-escolha label{display:inline-flex;position:relative}
.pl-escolha input{position:absolute;opacity:0;width:1px;height:1px}
.pl-escolha span{padding:7px 14px;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:700;cursor:pointer}
.pl-escolha input:checked + span{background:var(--tint-cyan-bg-2);border-color:var(--brand-cyan-text);color:var(--brand-cyan-text)}
.pl-escolha input:disabled + span{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.pl-escolha input:focus-visible + span{box-shadow:var(--focus-ring)}
.pl-chips{display:flex;gap:5px;margin-top:6px}
.pl-chips button{background:var(--bg-chip);border:1px solid var(--border-default);color:var(--text-secondary);font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:99px;cursor:pointer}
.pl-chips button:hover{color:var(--text-primary);border-color:var(--border-strong)}
.pl-resumo{margin:12px 0 0;font-size:12px;line-height:1.55;color:var(--text-secondary)}
.pl-resumo b{color:var(--text-primary)}
.pl-resumo.bloqueado{color:var(--warning-text)}
table.pl-emp{border-collapse:collapse;width:100%;font-size:12px;min-width:640px}
table.pl-emp th{padding:8px 8px;text-align:left;color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;border-bottom:1px solid var(--border-default)}
table.pl-emp td{padding:9px 8px;border-bottom:1px solid var(--border-subtle);vertical-align:middle;color:var(--text-secondary)}
table.pl-emp tr.pl-susp td{opacity:.6}
.pl-plano{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;padding:2px 9px;border-radius:99px;background:var(--bg-chip);color:var(--text-secondary);white-space:nowrap}
.pl-plano.standard{background:var(--tint-cyan-bg-2);color:var(--brand-cyan-text)}
.pl-plano.pro{background:var(--tint-purple-bg);color:var(--brand-purple-text)}
.pl-plano.teste{outline:1px dashed currentColor;outline-offset:1px}
.pl-teste-ativo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--text-primary);padding:2px 0}
.pl-teste-ativo small{color:var(--text-muted);font-size:10.5px;font-variant-numeric:tabular-nums}
.pl-hist td{background:var(--bg-sunken)}
table.pl-hist-t{border-collapse:collapse;width:100%;font-size:11px}
table.pl-hist-t th{text-align:left;color:var(--text-faint);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;padding:5px 6px}
table.pl-hist-t td{padding:5px 6px;border-bottom:1px solid var(--border-faint);color:var(--text-secondary);opacity:1}
.pl-sit{font-size:10px;font-weight:800;padding:1px 8px;border-radius:99px;white-space:nowrap}
.pl-sit.ativo{background:var(--tint-green-bg);color:var(--success-text)}
.pl-sit.encerrado{background:var(--tint-amber-bg);color:var(--warning-text)}
.pl-sit.expirado{background:var(--bg-chip);color:var(--text-muted)}
.pl-busca{max-width:260px;margin:0 0 10px}
/* Aviso de fim de teste, no alto do app — só nos últimos dias. */
.teste-aviso{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:11px 14px;border-radius:11px;background:var(--tint-purple-bg);border:1px solid var(--tint-purple-border);color:var(--text-primary);font-size:12.5px;line-height:1.5}
.teste-aviso > i{color:var(--brand-purple-text);font-size:15px}
.teste-aviso p{margin:0;flex:1;min-width:200px}
.teste-aviso p span{color:var(--text-secondary)}
/* Cobrança automática (#35): o aviso de mensalidade vencida usa a mesma faixa
   do aviso de teste, em âmbar; o cartão da assinatura fica na tela de Planos. */
/* ── A demonstração sem cadastro: a faixa no topo, o convite quando algo fica
   desligado e o recado enquanto a empresa de exemplo é montada. */
.dmo-faixa{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:11px 14px;border-radius:11px;background:var(--tint-cyan-bg,rgba(34,211,238,.08));border:1px solid rgba(34,211,238,.38);color:var(--text-primary);font-size:12.5px;line-height:1.5}
.dmo-faixa > i{color:var(--brand-cyan-text);font-size:16px}
.dmo-faixa p{margin:0;flex:1;min-width:220px}
.dmo-faixa p span{color:var(--text-secondary)}
.dmo-acoes{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dmo-acoes .btn-p{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.dmo-sair{background:none;border:none;padding:6px 8px;font-size:12px;color:var(--text-muted);cursor:pointer;border-radius:8px}
.dmo-sair:hover{color:var(--text-primary)}
.dmo-sair:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.dmo-modal{position:fixed;inset:0;z-index:10050;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(5,7,13,.62)}
.dmo-caixa{width:100%;max-width:420px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:14px;padding:22px 22px 18px;box-shadow:0 24px 60px rgba(0,0,0,.45);text-align:left}
.dmo-caixa > i{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--tint-cyan-bg,rgba(34,211,238,.1));color:var(--brand-cyan-text);font-size:15px;margin-bottom:10px}
.dmo-titulo{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--text-primary)}
.dmo-texto{margin:0 0 16px;font-size:13px;line-height:1.55;color:var(--text-secondary)}
.dmo-pe{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.dmo-login{margin:0;text-align:center;font-size:11.5px}
.dmo-login a{display:inline-flex;align-items:center;gap:6px;color:#00b8cc;font-weight:700;text-decoration:none}
.dmo-login a:hover{text-decoration:underline}
html.dmo-montando body::before{content:"Montando a sua demonstração…";position:fixed;left:0;right:0;top:calc(50% + 26px);text-align:center;color:#8fd3de;font:600 13px/1.4 'Inter',system-ui,sans-serif;z-index:10060}
/* ── Confiança: o aceite dos Termos de Uso e da Política de Privacidade (no
   cadastro, no convite e na entrada) e os links para os documentos. */
.cf-aceite{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.5;color:#a1a1a1;cursor:pointer}
.cf-aceite input{flex:none;width:15px;height:15px;margin-top:2px;accent-color:#00f2fe;cursor:pointer}
.cf-aceite a,.cf-legal a{color:#00b8cc;font-weight:600;text-decoration:none}
.cf-aceite a:hover,.cf-legal a:hover{text-decoration:underline}
.cf-legal{margin:0;text-align:center;font-size:11px;color:#8a8a8a;line-height:1.5}
.cf-modal{position:fixed;inset:0;z-index:10070;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(5,7,13,.72)}
.cf-caixa{width:100%;max-width:460px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:14px;padding:22px 22px 18px;box-shadow:0 24px 60px rgba(0,0,0,.45)}
.cf-caixa > i{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--tint-cyan-bg);color:var(--brand-cyan-text);font-size:15px;margin-bottom:10px}
.cf-titulo{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--text-primary)}
.cf-texto{margin:0 0 10px;font-size:13px;line-height:1.55;color:var(--text-secondary)}
.cf-links{margin:0 0 14px;font-size:13px}
.cf-links a{color:var(--brand-cyan-text);font-weight:600}
.cf-caixa .cf-aceite{color:var(--text-secondary);font-size:12.5px;margin-bottom:16px}
.cf-pe{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.cf-pe .btn-p[disabled]{opacity:.5;cursor:not-allowed}
/* ── O relatório de valor (tela de Planos) e o upgrade em um clique. */
.val-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:14px;padding:18px 18px 16px}
.val-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.val-topo h3{margin:0;font-size:15px;color:var(--text-primary)}
.val-topo small{display:block;margin-top:3px;font-size:11.5px;color:var(--text-muted)}
.val-mes{display:inline-flex;align-items:center;gap:6px}
.val-mes button{width:28px;height:28px;display:inline-grid;place-items:center;border-radius:8px;border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}
.val-mes button[disabled]{opacity:.35;cursor:default}
.val-mes button:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.val-mes span{min-width:122px;text-align:center;font-size:12px;font-weight:600;color:var(--text-secondary)}
.val-grade{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:820px){.val-grade{grid-template-columns:repeat(2,minmax(0,1fr))}}
.val-num{border:1px solid var(--border-subtle);border-radius:11px;padding:11px 12px;background:var(--bg-surface-alt)}
.val-num p{margin:0;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.val-num b{display:block;margin-top:4px;font-size:20px;font-weight:800;color:var(--text-primary);font-variant-numeric:tabular-nums}
.val-num small{display:block;margin-top:2px;font-size:11.5px;color:var(--text-secondary)}
.val-num .sobe{color:var(--success-text)}
.val-num .desce{color:var(--danger-text)}
.val-destaques{margin:14px 0 0;padding:0 0 0 18px;font-size:13px;line-height:1.6;color:var(--text-secondary)}
.val-nota{margin:10px 0 0;font-size:11px;color:var(--text-faint)}
.val-cta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-subtle)}
.val-cta p{margin:0;flex:1;min-width:200px;font-size:12.5px;color:var(--text-secondary)}
.val-vazio{margin:0;font-size:13px;color:var(--text-secondary)}
/* ── O plano anual e os vendedores avulsos (tela de Planos e a assinatura). */
.anu-ciclo{display:flex;width:max-content;max-width:100%;margin:0 auto 18px;padding:4px;gap:4px;border-radius:999px;border:1px solid var(--border-default);background:var(--bg-surface)}
.anu-ciclo button{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:700;cursor:pointer}
.anu-ciclo button span{font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:var(--tint-green-bg,rgba(47,224,138,.12));color:var(--success-text)}
.anu-ciclo button[aria-pressed="true"]{background:#22d3ee;color:#041418}
.anu-ciclo button[aria-pressed="true"] span{background:rgba(4,20,24,.14);color:#041418}
.anu-ciclo button:focus-visible{outline:2px solid var(--brand-cyan-text);outline-offset:2px}
.anu-card-avulso{margin:-14px 0 18px;font-size:11px;color:var(--text-secondary)}
.anu-card-avulso b{color:var(--text-primary);font-variant-numeric:tabular-nums}
.anu-escolha{display:flex;flex-direction:column;gap:10px;margin:0 0 14px}
.anu-opcoes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:520px){.anu-opcoes{grid-template-columns:1fr}}
.anu-opcao{position:relative;display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:10px;border:1px solid var(--border-default);background:var(--bg-surface);cursor:pointer}
.anu-opcao:has(input:checked){border-color:var(--brand-cyan-text);box-shadow:0 0 0 1px var(--brand-cyan-text) inset}
.anu-opcao input{margin:3px 0 0;accent-color:var(--brand-cyan-text)}
.anu-opcao b{display:block;font-size:13px;color:var(--text-primary)}
.anu-opcao small{display:block;margin-top:2px;font-size:11.5px;color:var(--text-secondary);font-variant-numeric:tabular-nums}
.anu-opcao em{font-style:normal;color:var(--success-text);font-weight:700}
.anu-avulsos{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-surface-alt)}
.anu-avulsos b{display:block;font-size:13px;color:var(--text-primary)}
.anu-avulsos small{display:block;margin-top:2px;font-size:11.5px;line-height:1.45;color:var(--text-secondary)}
.anu-passo{display:inline-flex;align-items:center;gap:4px;flex:none}
.anu-passo button{width:30px;height:30px;display:inline-grid;place-items:center;border-radius:8px;border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-primary);font-size:16px;font-weight:700;cursor:pointer}
.anu-passo button[disabled]{opacity:.35;cursor:default}
.anu-passo button:focus-visible{outline:2px solid var(--brand-cyan-text);outline-offset:2px}
.anu-passo output{min-width:30px;text-align:center;font-weight:800;font-size:15px;color:var(--text-primary);font-variant-numeric:tabular-nums}
.anu-quando{margin:0;font-size:12px;line-height:1.55;color:var(--text-secondary)}
.anu-quando b{color:var(--text-primary)}
.as-resumo b small{font-weight:600;color:var(--text-secondary);font-size:11.5px}
.anu-equivale{display:block;white-space:nowrap;text-align:right;font-size:10.5px;font-weight:600;color:var(--text-muted)}
.cob-tit .anu-det{display:block;margin:2px 0 0;font-size:11.5px;font-weight:600;color:var(--text-secondary)}
/* ── WhatsApp › API oficial da Meta (ofi.js). */
.ofi{display:flex;flex-direction:column;gap:14px;max-width:760px}
.ofi-carregando{margin:0;color:var(--text-secondary);font-size:12.5px}
.ofi-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:11px;border:1px solid var(--border-default);background:var(--bg-surface-alt)}
.ofi-topo b{display:block;font-size:13.5px;color:var(--text-primary)}
.ofi-topo small{display:block;margin-top:3px;font-size:11.5px;line-height:1.5;color:var(--text-secondary)}
.ofi-pilula{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.03em;white-space:nowrap}
.ofi-pilula.ligada{background:var(--tint-green-bg,rgba(47,224,138,.12));color:var(--success-text)}
.ofi-pilula.desligada{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-default)}
.ofi-sec{border:1px solid var(--border-subtle);border-radius:11px;padding:14px;background:var(--bg-surface)}
.ofi-sec h4{margin:0 0 4px;font-size:13px;color:var(--text-primary);display:flex;align-items:center;gap:8px}
.ofi-sec h4 span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;background:var(--tint-cyan-bg-2,rgba(34,211,238,.14));color:var(--brand-cyan-text);font-size:11px;font-weight:800}
.ofi-sec>p{margin:0 0 10px;font-size:12px;line-height:1.55;color:var(--text-secondary)}
.ofi-grade{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ofi-grade .ofi-largo{grid-column:1/-1}
@media (max-width:620px){.ofi-grade{grid-template-columns:1fr}}
.ofi-campo-copia{display:flex;gap:6px}
.ofi-campo-copia input{flex:1;min-width:0;font-family:var(--cc-mono,ui-monospace,monospace);font-size:11.5px}
.ofi-acoes{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}
.ofi-erro{margin:10px 0 0;padding:9px 11px;border-radius:9px;font-size:12px;line-height:1.5;background:var(--tint-red-bg,rgba(255,84,112,.12));color:var(--danger-text);display:none}
.ofi-ok{margin:10px 0 0;font-size:12px;color:var(--success-text)}
.ofi-modelos{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}
.ofi-modelo{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border-radius:9px;border:1px solid var(--border-default);cursor:pointer}
.ofi-modelo:has(input:checked){border-color:var(--brand-cyan-text);box-shadow:0 0 0 1px var(--brand-cyan-text) inset}
.ofi-modelo.nao{opacity:.55;cursor:default}
.ofi-modelo input{margin:3px 0 0;accent-color:var(--brand-cyan-text)}
.ofi-modelo b{font-size:12.5px;color:var(--text-primary)}
.ofi-modelo small{display:block;margin-top:2px;font-size:11.5px;line-height:1.45;color:var(--text-secondary)}
.ofi-guia{border:1px solid var(--border-subtle);border-radius:11px;background:var(--bg-surface-alt)}
.ofi-guia summary{cursor:pointer;padding:11px 14px;font-size:12.5px;font-weight:700;color:var(--text-primary)}
.ofi-guia ol{margin:0;padding:0 18px 12px 34px;display:flex;flex-direction:column;gap:7px;font-size:12px;line-height:1.55;color:var(--text-secondary)}
.ofi-guia ol b{color:var(--text-primary)}
.ofi-guia p{margin:0;padding:0 14px 12px;font-size:11.5px;line-height:1.5;color:var(--text-muted)}
.ofi-perigo{color:var(--danger-text)!important;border-color:color-mix(in srgb,var(--danger-text) 45%,transparent)!important}
/* ── O app da loja (Google Play e App Store): a assinatura pela loja (loj.js). */
.loj-txt{margin:0 0 12px;font-size:12.5px;line-height:1.55;color:var(--text-secondary)}
.loj-txt b{color:var(--text-primary)}
.loj-nota{margin:12px 0 0;font-size:11.5px;line-height:1.5;color:var(--text-muted)}
.loj-nota a{color:var(--brand-cyan-text,#22d3ee);text-decoration:underline;text-underline-offset:2px}
.loj-link{display:block;margin:12px auto 0;padding:6px 8px;background:none;border:0;border-radius:6px;color:var(--brand-cyan-text,#22d3ee);font-size:12px;font-weight:600;cursor:pointer}
.loj-link:hover{text-decoration:underline}
.loj-link:focus-visible{outline:2px solid var(--brand-cyan-text,#22d3ee);outline-offset:2px}
.loj-link:disabled{opacity:.5;cursor:default}
.loj-erro{margin:10px 0 0;padding:9px 11px;border-radius:9px;font-size:12px;line-height:1.5;background:var(--tint-red-bg,rgba(255,84,112,.12));color:var(--danger-text);display:none}
.loj-acoes{display:flex;gap:8px;margin-top:14px}
.loj-acoes .btn-p{flex:1;justify-content:center}
/* Meu perfil › Excluir minha conta (a exigência do Google Play; o direito da LGPD). */
.exc-txt{margin:0 0 10px;font-size:12px;line-height:1.55;color:var(--text-secondary)}
.exc-txt b{color:var(--text-primary)}
.exc-txt a{color:var(--brand-cyan-text)}
.exc-pedido{margin:0 0 10px;padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--warning-text) 40%,transparent);background:var(--tint-amber-bg,rgba(245,158,11,.08));font-size:12px;line-height:1.55;color:var(--text-primary)}
.exc-form{display:flex;flex-direction:column;gap:8px}
.exc-form textarea{min-height:60px;resize:vertical}
.exc-check{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.5;color:var(--text-primary);cursor:pointer}
.exc-check input{margin-top:3px;accent-color:var(--danger-text)}
.exc-perigo{color:var(--danger-text)!important;border-color:color-mix(in srgb,var(--danger-text) 45%,transparent)!important}
/* Command Center › Lojas de aplicativo e os pedidos de exclusão de conta. */
.cc-loja-url{display:flex;gap:6px;margin:0 0 6px}
.cc-loja-url input,.cc-loja-campo{flex:1;min-width:0;height:32px;border-radius:7px;border:1px solid var(--cc-borda);background:#0b0b0e;color:var(--cc-txt);font:400 11.5px var(--cc-mono);padding:0 10px}
.cc-loja-txt{width:100%;min-height:58px;border-radius:7px;border:1px solid var(--cc-borda);background:#0b0b0e;color:var(--cc-txt);font:400 11.5px var(--cc-mono);padding:8px 10px;resize:vertical;box-sizing:border-box}
.cc-loja-txt:focus,.cc-loja-campo:focus{outline:none;border-color:var(--cc-roxo);box-shadow:0 0 0 3px rgba(168,85,247,.16)}
.cc-loja-sub{margin:16px 0 8px;font:600 10.5px var(--cc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cc-txt-3)}
.cc-loja-tab td,.cc-loja-tab th{white-space:nowrap}
.cc-loja-bloco+.cc-loja-bloco{margin-top:22px;padding-top:18px;border-top:1px solid var(--cc-borda)}
.cc-loja-loja{display:flex;align-items:baseline;gap:8px;margin:0 0 12px;font-size:13.5px;font-weight:600;color:var(--cc-txt)}
.cc-loja-loja i{color:var(--cc-roxo);font-size:14px}
.cc-loja-loja span{font:400 10.5px var(--cc-mono);letter-spacing:.04em;color:var(--cc-txt-3)}
.cc-exc-acao{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:10px 12px;border-radius:8px;border:1px solid var(--cc-borda);background:#0b0b0e;white-space:normal}
.cc-exc-acao p{margin:0;font-size:12px;line-height:1.5;color:var(--cc-txt-2)}
.cc-exc-motivo{display:block;margin-top:3px;font-size:11.5px;color:var(--cc-txt-3);white-space:normal;max-width:380px}
.cc-exc-nome{color:var(--cc-txt);font-weight:500}
.cc-btn .k{margin-left:6px;opacity:.7;font-size:10px}
/* ── Notificações no celular: Meu perfil, o sino e as propostas (psh.js). */
.psh-txt{margin:0 0 10px;font-size:12px;line-height:1.55;color:var(--text-secondary)}
.psh-txt b{color:var(--text-primary)}
.psh-estado{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.psh-pilula{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;font-size:11.5px;font-weight:700;background:var(--tint-amber-bg,rgba(245,158,11,.1));color:var(--warning-text)}
.psh-pilula.ok{background:rgba(47,224,138,.12);color:var(--chart-success,#2fe08a)}
.psh-acoes{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.psh-acoes .btn-p,.psh-acoes .btn-g{font-size:12px;padding:7px 12px}
.psh-cats{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:2px}
.psh-cat{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border-subtle,#1f1f1f)}
.psh-cat:last-child{border-bottom:0}
.psh-cat span{display:flex;flex-direction:column;min-width:0}
.psh-cat b{font-size:12.5px;color:var(--text-primary);font-weight:600}
.psh-cat small{font-size:11px;color:var(--text-muted);line-height:1.45}
.psh-sub{margin:14px 0 6px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.psh-aparelhos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.psh-aparelho{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border-subtle,#262626);border-radius:9px;font-size:12px;color:var(--text-primary)}
.psh-aparelho i{color:var(--text-muted);width:16px;text-align:center}
.psh-aparelho span{flex:1;min-width:0;display:flex;flex-direction:column}
.psh-aparelho small{color:var(--text-muted);font-size:10.5px}
.psh-aparelho button{background:none;border:0;color:var(--danger-text);font-size:11.5px;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:6px}
.psh-aparelho button:focus-visible{outline:2px solid var(--danger-text);outline-offset:1px}
/* As propostas: quando o cliente abriu. */
.prop-aberta{display:inline-flex;align-items:center;gap:5px;margin:4px 0 0;padding:2px 8px;border-radius:99px;background:rgba(34,211,238,.1);color:var(--brand-cyan-text,#22d3ee);font-size:10.5px;font-weight:600}
/* Command Center › Ajustes & Chaves › Notificações no celular. */
.cc-psh-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:0 0 12px}
.cc-psh-kpi{border:1px solid var(--cc-borda);border-radius:8px;padding:10px 12px;background:#0b0b0e}
.cc-psh-kpi span{display:block;font:600 10px var(--cc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cc-txt-3)}
.cc-psh-kpi b{display:block;margin-top:3px;font-size:18px;font-weight:600;color:var(--cc-txt);font-variant-numeric:tabular-nums}
.cc-psh-kpi small{color:var(--cc-txt-3);font-size:11px}
/* A janela mais alta que a tela rola, com o topo (o título e o fechar) sempre ao alcance:
   o Meu perfil cresceu com as notificações e, no celular, as janelas compridas passavam da altura. */
.modal-ov{overflow-y:auto}
.modal-ov:not(.fin-ov)>.modal-box{margin:auto}
/* O aceite da proposta pelo cliente (melhorias-31): o selo na lista e o aviso na edição. */
.prop-aceite{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:5px 0 0;padding:4px 9px;border-radius:8px;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.28);color:#6ee7b7;font-size:10.5px;font-weight:600;line-height:1.35}
.prop-aceite i{color:#34d399}
.prop-aceite b{color:#d1fae5;font-weight:700}
.prop-aceite-pdf{margin-left:auto;display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(16,185,129,.4);background:transparent;color:#a7f3d0;border-radius:6px;padding:2px 8px;font-family:inherit;font-size:10px;font-weight:600;cursor:pointer}
.prop-aceite-pdf:hover{border-color:#34d399;color:#ecfdf5}
.prop-aceite-pdf:disabled{opacity:.6;cursor:progress}
.prop-aceite-pdf:focus-visible{outline:2px solid #34d399;outline-offset:2px}
#prop-aceite-aviso{display:flex;gap:9px;align-items:flex-start;margin:0 0 12px;padding:9px 11px;border-radius:9px;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.3);color:#a7f3d0;font-size:11.5px;line-height:1.45;text-align:left}
#prop-aceite-aviso i{color:#34d399;margin-top:2px}
/* JOE aberto no computador, ligado ao banco do site (#36): vermelho, sem fechar. */
.bp-aviso{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:11px 14px;border-radius:11px;background:var(--tint-red-bg);border:1px solid color-mix(in srgb,var(--danger-text) 45%,transparent);color:var(--text-primary);font-size:12.5px;line-height:1.5}
.bp-aviso > i{color:var(--danger-text);font-size:16px}
.bp-aviso p{margin:0;flex:1;min-width:200px}
.bp-aviso p span{color:var(--text-secondary)}
/* Saúde da plataforma (Command Center). */
.sd-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:12px}
.sd-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--bg-surface-alt);border:1px solid var(--border-subtle)}
.sd-ponto{width:9px;height:9px;border-radius:99px;margin-top:5px;flex-shrink:0;background:var(--text-muted)}
.sd-ok .sd-ponto{background:var(--success-text)}
.sd-atencao .sd-ponto{background:var(--warning-text)}
.sd-atencao{border-color:color-mix(in srgb,var(--warning-text) 35%,transparent)}
.sd-nome{margin:0;font-size:12px;font-weight:700;color:var(--text-primary)}
.sd-nome small{font-weight:600;color:var(--text-muted);margin-left:6px;font-size:10.5px;white-space:nowrap}
.sd-det{margin:2px 0 0;font-size:11px;color:var(--text-secondary);line-height:1.5}
.sd-monitor{margin:12px 0 0;font-size:11px;color:var(--text-secondary);line-height:1.6}
.sd-monitor code{background:var(--bg-surface-alt);padding:2px 6px;border-radius:6px;color:var(--text-primary);word-break:break-all}
.cob-aviso{background:var(--tint-amber-bg);border-color:color-mix(in srgb,var(--warning-text) 38%,transparent)}
.cob-aviso > i{color:var(--warning-text)}
.cob-quem{color:var(--text-secondary);font-size:11.5px}
.cob-cartao{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.cob-cartao.cob-alerta{background:var(--tint-amber-bg);border-color:color-mix(in srgb,var(--warning-text) 45%,transparent)}
.cob-cab{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cob-pilula{font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:99px;background:var(--bg-chip);color:var(--text-secondary);white-space:nowrap}
.cob-ok .cob-pilula{background:var(--tint-green-bg);color:var(--success-text)}
.cob-alerta .cob-pilula{background:var(--tint-amber-bg-2);color:var(--warning-text)}
.cob-tit{margin:0;font-weight:700;font-size:13.5px;color:var(--text-primary)}
.cob-tit span{color:var(--text-secondary);font-weight:600;font-variant-numeric:tabular-nums;margin-left:4px}
.cob-txt{margin:0;color:var(--text-secondary);font-size:12.5px;line-height:1.55;max-width:72ch}
.cob-acoes{display:flex;gap:8px;flex-wrap:wrap}
.cob-nota{margin:0;color:var(--text-muted);font-size:11px;line-height:1.5}
.cob-nota i{margin-right:4px}
.as-resumo{margin:0 0 14px;padding:12px 14px;border-radius:10px;background:var(--bg-surface-alt);display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.as-resumo b{font-size:13.5px;color:var(--text-primary)}
.as-resumo span{font-variant-numeric:tabular-nums;font-weight:800;color:var(--text-primary);font-size:16px}
.as-resumo small{font-size:11px;font-weight:600;color:var(--text-muted)}
.as-grade{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.as-grade .as-largo{grid-column:1/-1}
@media (max-width:520px){.as-grade{grid-template-columns:1fr}}
.as-txt{margin:0 0 4px;color:var(--text-secondary);font-size:12.5px;line-height:1.55}
.as-txt b{color:var(--text-primary)}
.as-erro{margin:10px 0 0;color:var(--danger-text);font-size:12px;line-height:1.5}
.as-dica{margin:12px 0 0;color:var(--text-muted);font-size:11px;line-height:1.55}
.as-link{background:none;border:none;padding:0;color:var(--brand-cyan-text);font-weight:600;font-size:12px;cursor:pointer;text-decoration:underline}
.as-link:focus-visible,.cob-cartao button:focus-visible{outline:2px solid var(--brand-cyan-text);outline-offset:2px}
/* Card do plano em teste: contorno tracejado, porque é emprestado. */
.plan-card.trial-plan{border-color:#8b5cf6;border-style:dashed;box-shadow:0 8px 32px rgba(139,92,246,.15)}
.plan-trial-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:#8b5cf6;color:#fff;font-size:10px;font-weight:700;padding:3px 14px;border-radius:99px;white-space:nowrap}
.plan-trial-nota{margin:8px 0 0;font-size:10.5px;color:var(--text-muted)}
.joe-quick-btn{background:var(--bg-chip);color:var(--text-primary);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 15px;font-size:12.5px;font-weight:700;cursor:pointer;transition:background .15s,transform .1s}
.joe-quick-btn:hover{background:var(--bg-hover)}
.joe-quick-btn:active{transform:scale(.97)}
#joe-mute-btn.muted{background:var(--tint-red-bg)!important;color:#ff5470!important}
.pbar-wrap{height:5px;background:var(--bg-chip);border-radius:99px;overflow:hidden}
.pbar{height:100%;border-radius:99px;transition:width .7s ease,box-shadow .7s ease;box-shadow:0 0 7px 0 rgba(255,255,255,.22)}
html[data-theme="light"] .pbar{box-shadow:0 0 5px 0 rgba(15,23,42,.12)}
.badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:99px;display:inline-flex;align-items:center;gap:3px}
.bg{background:var(--tint-green-bg);color:#4ade80}.bb{background:var(--tint-cyan-bg-2);color:#00b8cc}.br{background:var(--tint-red-bg);color:#ff5470}.ba{background:var(--tint-amber-bg);color:#fbbf24}.bv{background:var(--tint-purple-bg);color:#7c3aed}.bo{background:var(--tint-cyan-bg-2);color:#22b8c4}
/* Selo de variação (MoM) no formato "pílula" do modelo de referência
   ("+12,5%" com fundo tingido) em vez de só texto colorido solto. */
.mom-badge{font-size:10.5px;font-weight:700;vertical-align:middle;display:inline-flex;align-items:center;gap:2px;padding:2px 7px;border-radius:99px;line-height:1.4}
.mom-badge:empty{padding:0;background:none}
.mom-badge.up{color:var(--success-text);background:var(--tint-green-bg)}
.mom-badge.down{color:var(--danger-text);background:var(--tint-red-bg)}
.mom-badge.flat{color:var(--text-muted);background:var(--bg-chip)}
/* Cartão de KPI no padrão do modelo: ícone num quadrado colorido, rótulo
   pequeno, valor grande, selo de variação — bastante respiro interno. */
.kpi-card{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:14px;padding:16px;box-shadow:var(--shadow-surface)}
.kpi-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.kpi-card-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:13px}
.kpi-card-value{font-size:22px;font-weight:800;color:var(--text-primary);margin:0;letter-spacing:-.02em;line-height:1.15}
.kpi-card-label{font-size:10.5px;color:var(--text-muted);margin:5px 0 0;font-weight:600}
/* Lista "canais" do modelo: ponto colorido + rótulo + barra fina + %. */
.chan-row{display:flex;align-items:center;gap:10px;padding:7px 0}
.chan-dot{width:8px;height:8px;border-radius:99px;flex-shrink:0}
.chan-label{font-size:11.5px;color:var(--text-secondary);width:88px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chan-bar-wrap{flex:1;height:7px;background:var(--bg-chip);border-radius:99px;overflow:hidden}
.chan-bar{height:100%;border-radius:99px;transition:width .6s cubic-bezier(.4,0,.2,1);display:block}
.chan-pct{font-size:12px;font-weight:700;color:var(--text-primary);width:40px;text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}
/* ── Modo de Privacidade: borra os valores em R$ na tela toda ── */
.money-mask{transition:filter .15s ease}
body.privacy-on .money-mask{filter:blur(6px);user-select:none;cursor:default}
body.privacy-on .money-mask:hover{filter:blur(0)}
#privacy-toggle-btn.active{color:#22d3ee}
.modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:12px}
.modal-box{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:16px;padding:24px;width:100%;max-width:480px;box-shadow:0 20px 60px rgba(15,23,42,.15)}
.modal-lg{max-width:860px;height:90vh;display:flex;flex-direction:column}
/* ── Modal: Registrar Follow-up ── */
.fu-icon-btn{width:28px;height:28px;border-radius:8px;border:1px solid var(--border-default);background:var(--bg-surface-alt);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;transition:all .13s;flex-shrink:0}
.fu-icon-btn:hover{border-color:var(--brand-cyan-text);color:var(--brand-cyan-text)}
.fu-icon-btn.wa:hover{background:rgba(37,211,102,.12);border-color:#25d366;color:#25d366}
.fu-icon-btn.mail:hover{background:var(--tint-cyan-bg);border-color:var(--brand-cyan-text)}
.fu-chip-group{display:flex;flex-wrap:wrap;gap:8px}
.fu-chip{position:relative}
.fu-chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.fu-chip span{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--bg-surface-alt);border:1px solid var(--border-strong);border-radius:99px;padding:8px 14px;transition:all .13s;user-select:none}
.fu-chip span::before{content:'';width:8px;height:8px;border-radius:99px;border:1.5px solid var(--border-strong);flex-shrink:0;transition:all .13s}
.fu-chip input:checked+span{border-color:var(--brand-purple-text);color:var(--text-primary);background:var(--tint-purple-bg);font-weight:700}
.fu-chip input:checked+span::before{border-color:var(--brand-purple-text);background:var(--brand-purple-text);box-shadow:inset 0 0 0 2px var(--tint-purple-bg)}
.fu-chip input:focus-visible+span{outline:2px solid var(--focus-ring);outline-offset:1px}
.fu-chip:hover span{border-color:var(--brand-purple-text)}
.btn-purple{background:#7c3aed;color:#fff}
.btn-purple:hover{background:#6d28d9;box-shadow:0 2px 14px rgba(124,58,237,.35)}
#toast{position:fixed;top:16px;right:16px;z-index:999;padding:11px 18px;border-radius:11px;font-size:12px;font-weight:700;box-shadow:0 8px 36px rgba(0,0,0,.15);transform:translateY(-10px);opacity:0;transition:all .22s;pointer-events:none}
#toast.show{transform:translateY(0);opacity:1}
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#333333;border-radius:3px}
.bubble-me{background:var(--tint-cyan-bg-2);border-radius:14px 14px 4px 14px}
.bubble-ot{background:var(--bg-surface-alt);border:1px solid var(--border-default);border-radius:14px 14px 14px 4px}
.hist-dot{width:9px;height:9px;border-radius:99px;flex-shrink:0;margin-top:4px}
.prop-row{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--bg-surface-alt);border:1px solid var(--border-default);border-radius:10px;transition:border-color .13s}
.prop-row:hover{border-color:var(--border-strong)}
/* ── Tabela de Contatos & Clientes ─────────────────────────────── */
.ctab-row{display:flex;gap:6px;padding:12px 14px}
.ctab{background:transparent;border:1px solid var(--border-default);color:var(--text-secondary);font-size:11.5px;font-weight:700;padding:6px 13px;border-radius:99px;cursor:pointer;transition:all .13s}
.ctab:hover{border-color:var(--border-strong);color:var(--text-primary)}
.ctab.active{background:var(--tint-cyan-bg);border-color:#22d3ee;color:#22d3ee}
.ctable-wrap{overflow-x:auto;border-top:1px solid var(--border-subtle)}
.ctable{width:100%;border-collapse:collapse;font-size:12px}
.ctable thead th{text-align:left;padding:9px 14px;color:var(--text-muted);font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--border-default);white-space:nowrap}
.ctable tbody tr{border-bottom:1px solid var(--border-faint);transition:background .1s;cursor:pointer}
.ctable tbody tr:nth-child(even){background:var(--bg-row-alt)}
.ctable tbody tr:hover{background:var(--bg-row-hover)}
.ctable tbody tr.ctable-group-row{cursor:default;background:var(--bg-row-group)!important}
.ctable tbody tr.ctable-group-row:hover{background:var(--bg-row-group)!important}
.ctable tbody tr.ctable-group-row td{padding:5px 14px;font-size:10px;font-weight:800;letter-spacing:.09em;color:#22d3ee;text-transform:uppercase}
.ctable td{padding:10px 14px;vertical-align:middle}
.ctable .c-avatar{width:32px;height:32px;border-radius:8px;background:#ccfbf1;color:#0f766e;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0}
.ctable .c-name{color:var(--text-primary);font-weight:700;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.ctable .c-sub{color:var(--text-muted);font-size:10.5px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.ctable .c-actions{position:relative;text-align:right;width:1%}
.crow-menu-btn{background:transparent;border:none;color:var(--text-faint);font-size:13px;cursor:pointer;padding:6px 9px;border-radius:7px;transition:all .13s;opacity:.55}
.ctable tbody tr:hover .crow-menu-btn{opacity:1}
.crow-menu-btn:hover{background:var(--bg-chip);color:var(--text-primary)}
.crow-menu{position:fixed;background:var(--bg-surface-alt);border:1px solid var(--border-default);border-radius:9px;box-shadow:0 10px 28px rgba(0,0,0,.45);min-width:175px;z-index:400;overflow:hidden;display:none}
.crow-menu.open{display:block}
.crow-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;background:transparent;border:none;color:var(--text-quiet);font-size:12px;text-align:left;cursor:pointer;transition:background .1s}
.crow-menu button:hover{background:var(--bg-chip)}
.crow-menu button.danger{color:#ff5470}
.cpage-btn{background:var(--bg-surface-alt);border:1px solid var(--border-default);color:var(--text-quiet);font-size:11px;padding:6px 11px;border-radius:7px;cursor:pointer;transition:all .13s}
.cpage-btn:hover:not(:disabled){border-color:#22d3ee;color:#22d3ee}
.cpage-btn:disabled{opacity:.35;cursor:not-allowed}
.rank-card{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:14px;transition:all .2s;box-shadow:var(--shadow-surface)}
.rank-card.gold{border-color:#fbbf24;background:var(--tint-amber-bg-2)}
.rank-card.silver{border-color:var(--border-strong);background:var(--bg-surface)}
.rank-card.bronze{border-color:#22b8c4;background:var(--bg-surface)}
.prize-card{background:var(--bg-surface-alt);border:1px solid var(--card-border-color);border-radius:11px;padding:14px;display:flex;gap:12px;align-items:center;transition:all .2s;cursor:pointer;box-shadow:var(--shadow-surface)}
.prize-card:hover{border-color:#22d3ee;transform:translateY(-1px);box-shadow:0 4px 12px rgba(34,211,238,.1)}
.plan-card{background:var(--bg-surface);border:2px solid var(--card-border-color);border-radius:16px;padding:24px;text-align:center;transition:all .2s;position:relative;box-shadow:var(--shadow-surface)}
.plan-card.popular{border-color:#22d3ee;box-shadow:0 8px 32px rgba(34,211,238,.15)}
.plan-card.current-plan{border-color:#2fe08a;box-shadow:0 8px 32px rgba(47,224,138,.15)}
.plan-current-badge{display:none;position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:#2fe08a;color:#06210f;font-size:10px;font-weight:700;padding:3px 14px;border-radius:99px;white-space:nowrap}
.plan-card.current-plan .plan-current-badge{display:block}
.plan-card.current-plan .popular-badge-inner{display:none}
.plan-feat{display:flex;align-items:flex-start;gap:8px;font-size:12px;padding:5px 0;color:var(--text-quiet2);line-height:1.45}
.plan-feat .ok{color:#2fe08a;margin-top:2px}.plan-feat .no{color:var(--text-faint);margin-top:2px}
.plan-feat .fa-star{margin-top:2px}
/* Selo do plano que cabe no uso medido. Fica visualmente abaixo do "seu
   plano atual" de propósito: quando os dois coincidem, quem manda é o atual. */
.plan-fit-badge,.plan-pop-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  font-size:10px;font-weight:700;padding:3px 14px;border-radius:99px;white-space:nowrap}
.plan-fit-badge{background:#22d3ee;color:#04222a}
.plan-pop-badge{background:var(--bg-chip);color:var(--text-secondary);border:1px solid var(--border-default)}
.plan-card.fit-plan{border-color:#22d3ee;box-shadow:0 8px 32px rgba(34,211,238,.15)}
/* Barra de consumo — só aparece no card do plano que a pessoa tem. */
.plan-bar{display:block;height:4px;border-radius:99px;background:var(--bg-chip);overflow:hidden;margin:1px 0 3px 22px}
.plan-bar span{display:block;height:100%;border-radius:99px;transition:width .3s}
.plan-bar-txt{margin:0 0 6px 22px;font-size:10px;color:var(--text-muted);text-align:left}
/* Faixa de uso acima dos cards: o número do cliente antes do preço. */
.plan-uso-box{display:flex;align-items:center;gap:18px;flex-wrap:wrap;text-align:left;
  padding:14px 18px;border-radius:12px;background:var(--bg-surface-alt);border:1px solid var(--border-subtle)}
.plan-uso-box.estourou{border-color:var(--warning-text);background:var(--tint-amber-bg)}
.plan-uso-titulo{margin:0 0 3px;font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}
.plan-uso-nums{margin:0;font-size:12.5px;color:var(--text-secondary)}
.plan-uso-nums b{color:var(--text-primary);font-weight:800}
.plan-uso-veredito{margin:0 0 0 auto;font-size:12px;color:var(--text-secondary);max-width:420px;line-height:1.5}
.lock-overlay{position:absolute;inset:0;background:rgba(248,250,252,.85);border-radius:inherit;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;backdrop-filter:blur(2px)}
.stat-mini{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow-surface);transition:transform .15s ease,box-shadow .15s ease}
/* Cartão clicável "levanta" no hover (mesmo truque de seletor por atributo
   já usado no resto do arquivo) — reforça a profundidade 3D só onde há
   interação de verdade, não em todo cartão estático da tela. */
.stat-mini[style*="cursor:pointer"]:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 20px 40px rgba(0,0,0,.32)}
html[data-theme="light"] .stat-mini[style*="cursor:pointer"]:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 16px 32px -4px rgba(15,23,42,.14)}
.kpi-num{font-size:26px;font-weight:900;color:var(--text-primary);letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.help{position:relative;display:inline-flex;align-items:center;justify-content:center;margin-left:5px;color:var(--text-faint);font-size:11px;cursor:help;vertical-align:middle;line-height:1}
.help:hover,.help:focus{color:#22d3ee;outline:none}
.help .tip{visibility:hidden;opacity:0;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:190px;background:var(--bg-chip);color:var(--text-primary);text-align:left;font-size:10.5px;font-weight:500;line-height:1.4;letter-spacing:0;text-transform:none;padding:8px 10px;border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.25);z-index:200;transition:opacity .15s;pointer-events:none}
.help .tip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--bg-chip)}
.help.down .tip{bottom:auto;top:calc(100% + 8px)}
.help.down .tip::after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--bg-chip)}
.help:hover .tip,.help:focus .tip{visibility:visible;opacity:1}
@media(max-width:720px){.help .tip{width:150px}}
.activity-item{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--border-subtle)}
.activity-item:last-child{border-bottom:none}
.raffle-chip{padding:6px 12px;border-radius:99px;background:var(--tint-cyan-bg);color:#22d3ee;border:2px solid #1e4a52;font-size:11px;font-weight:700;cursor:pointer;transition:all .15s;user-select:none}
.raffle-chip.excluded{background:var(--bg-surface-alt);color:var(--text-muted);border-color:var(--border-default)}
.raffle-display{height:60px;display:flex;align-items:center;justify-content:center;background:var(--tint-cyan-bg);border-radius:12px;border:2px solid #1e4a52;font-size:24px;font-weight:900;color:#22d3ee;transition:all .08s;overflow:hidden}
.wpp-tab-btn{padding:7px 16px;border-radius:7px;background:transparent;color:var(--text-secondary);border:none;cursor:pointer;font-size:11.5px;font-weight:600;transition:all .13s}
.wpp-tab-btn.active{background:#22d3ee;color:#041418;font-weight:700}
.wpp-inbox-tab{display:flex;align-items:center;gap:7px;padding:7px 13px;border-radius:7px;background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-default);cursor:pointer;font-size:11.5px;font-weight:700;transition:all .13s}
.wpp-inbox-tab.active{background:var(--tint-green-bg-2);color:#2fe08a;border-color:var(--tint-green-border)}
.wpp-inbox-tab .cnt-badge{background:#ff5470;color:#fff;font-size:9px;font-weight:800;min-width:16px;height:16px;border-radius:99px;display:none;align-items:center;justify-content:center;padding:0 4px}
.wpp-inbox-tab.active .cnt-badge{background:#2fe08a;color:#04211d}
/* Em "Todas", o que é grupo leva este ícone antes do nome (#39). */
.wpp-marca-grupo{font-size:9.5px;color:var(--text-muted);margin-right:5px}
/* Fechamento de comissões (#40) */
.fc-periodos{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.fc-per{padding:6px 12px;border-radius:99px;border:1px solid var(--border-strong);background:var(--bg-surface-alt);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}
.fc-per.ativo{background:color-mix(in srgb,#14b8a6 16%,transparent);border-color:#14b8a6;color:var(--text-primary)}
.fc-datas{grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}
.fc-resumo{margin:0 0 12px}
.fc-per-nome{margin:0;font-size:12px;font-weight:700;color:var(--text-secondary)}
.fc-per-nome::first-letter{text-transform:uppercase}
.fc-total{margin:2px 0 0;font-size:26px;font-weight:800;color:var(--success-text);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.fc-total span{font-size:12px;font-weight:600;color:var(--text-secondary);margin-left:4px;letter-spacing:0}
.fc-sub{margin:2px 0 0;font-size:12px;color:var(--text-secondary)}
.fc-carregando,.fc-erro{margin:6px 0;font-size:12.5px;color:var(--text-secondary)}
.fc-erro{color:var(--danger-text)}
.fc-tabela-wrap{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:9px}
.fc-tabela{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.fc-tabela th{padding:7px 9px;text-align:left;background:var(--bg-surface-alt);color:var(--text-secondary);font-weight:700}
.fc-tabela td{padding:7px 9px;border-top:1px solid var(--border-subtle);color:var(--text-primary)}
.fc-tabela .c{text-align:center}.fc-tabela .d{text-align:right;white-space:nowrap}
.fc-tabela .fc-com{color:var(--success-text);font-weight:700}
.fc-tabela tfoot td{font-weight:800;background:var(--bg-surface-alt)}
.fc-enviado,.fc-sem-email{display:flex;gap:9px;align-items:flex-start;margin:0 0 12px;padding:10px 12px;border-radius:9px;font-size:12px;line-height:1.5;color:var(--text-primary)}
.fc-enviado{background:color-mix(in srgb,var(--success-text) 10%,transparent);border:1px solid color-mix(in srgb,var(--success-text) 35%,transparent)}
.fc-enviado i{color:var(--success-text);margin-top:2px}
.fc-sem-email{background:var(--tint-amber-bg);border:1px solid color-mix(in srgb,var(--warning-text) 40%,transparent)}
.fc-sem-email i{color:var(--warning-text);margin-top:2px}
.fc-nota{margin:6px 0 0;font-size:11px;color:var(--text-muted);line-height:1.5}
.fc-mais{margin-top:12px;font-size:12px;color:var(--text-secondary)}
.fc-mais summary{cursor:pointer;font-weight:600;color:var(--text-secondary)}
/* Cadeado aberto pelo gestor (#41) */
.lock-nota{margin:-12px 0 18px;font-size:12px;line-height:1.5;color:var(--text-secondary)}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes winner-glow{0%,100%{box-shadow:0 0 0 0 rgba(34,211,238,.3)}50%{box-shadow:0 0 0 12px rgba(34,211,238,0)}}
@keyframes confetti-in{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
/* Notifications */
.notif-wrap{position:relative}
.icon-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:6px;border-radius:8px;font-size:15px;display:inline-flex;align-items:center;justify-content:center;transition:all .13s}
.icon-btn:hover{background:var(--bg-chip);color:var(--text-primary)}
.notif-badge{position:absolute;top:0;right:0;background:#ff5470;color:#fff;font-size:8.5px;font-weight:800;min-width:15px;height:15px;padding:0 3px;border-radius:99px;display:none;align-items:center;justify-content:center;line-height:1}
.notif-panel{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-width:calc(100vw - 24px);max-height:420px;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:13px;box-shadow:0 12px 40px rgba(15,23,42,.16);z-index:150;display:none}
.notif-panel.open{display:block}
.notif-item{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid var(--border-subtle);align-items:flex-start}
.notif-item.unread{background:var(--tint-cyan-bg)}
.notif-item:last-child{border-bottom:none}
.hamburger{display:none}
.sb-backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:99}
.sb-backdrop.open{display:block}
/* Mobile */
@media (max-width:768px){
  #sidebar{position:fixed;left:0;top:0;z-index:100;transform:translateX(-100%);transition:transform .22s ease;box-shadow:0 0 40px rgba(15,23,42,.18)}
  #sidebar.open{transform:translateX(0)}
  #main-col{width:100%}
  #content{padding:12px;padding-bottom:92px}
  #topbar{padding:0 12px;gap:6px}
  .hamburger{display:inline-flex}
  #tab-dashboard>div[style*="grid-template-columns:repeat(4,1fr)"]{grid-template-columns:repeat(2,1fr)!important}
  #tab-dashboard>div[style*="grid-template-columns:repeat(6,1fr)"]{grid-template-columns:repeat(2,1fr)!important}
  #content div[style*="grid-template-columns"]{grid-template-columns:1fr!important}
  #dash-pbi-iframe{height:360px!important}
  .modal-box{padding:18px}
  .modal-lg{height:94vh}
  #kanban-board{overflow-x:auto}
}
@media (max-width:480px){
  #tab-dashboard>div[style*="grid-template-columns:repeat(4,1fr)"]{grid-template-columns:1fr!important}
  #tab-dashboard>div[style*="grid-template-columns:repeat(6,1fr)"]{grid-template-columns:1fr!important}
  .kpi-num{font-size:22px}
}
/* ── Kanban: cards e colunas (progressive disclosure) ────────────────
   Cards mostram só o essencial de cara — título (até 2 linhas), uma linha
   de metadados discretos (contato + data curta) e o valor em destaque.
   Colunas podem ser minimizadas lateralmente pra abrir espaço na tela. */
.kb-col{position:relative;min-width:250px;max-width:270px;flex:0 0 auto;display:flex;flex-direction:column;background:var(--bg-sunken);border:1px solid var(--border-subtle);border-radius:12px;padding:12px 11px;transition:min-width .18s ease,max-width .18s ease,padding .18s ease}
.kb-col.kb-col-won{background:var(--tint-green-bg-2);border-color:var(--tint-green-border)}
.kb-col.kb-col-lost{background:var(--tint-red-bg);border-color:var(--tint-red-border,var(--border-subtle))}
.kb-card-avatar{width:20px;height:20px;border-radius:99px;display:flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:800;color:#fff;flex-shrink:0}
.kb-col.is-collapsed{min-width:44px;max-width:44px;padding:10px 6px}
.kb-col-full{display:flex;flex-direction:column;flex:1;min-height:0}
.kb-col.is-collapsed .kb-col-full{display:none}
.kb-col-mini{display:none}
.kb-col.is-collapsed .kb-col-mini{display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;padding-top:2px}
.kb-col-mini:hover .kb-col-mini-title{color:var(--text-primary)}
.kb-col-mini-title{writing-mode:vertical-rl;text-orientation:mixed;font-size:11px;font-weight:700;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:200px;transition:color .15s}
/* Handle de redimensionar largura da coluna: faixa fina na borda direita,
   arrasta pra ajustar e duplo-clique redefine pro padrão. Some quando a
   coluna está colapsada (não há o que redimensionar). */
.kb-col-resize{position:absolute;top:0;right:-7px;width:14px;height:100%;cursor:col-resize;z-index:6;display:flex;align-items:center;justify-content:center;touch-action:none}
.kb-col-resize::after{content:'';width:3px;height:36px;border-radius:3px;background:#242424;transition:background .15s,height .15s}
.kb-col-resize:hover::after,.kb-col-resize.is-dragging::after{background:#22d3ee;height:52px}
.kb-col.is-collapsed .kb-col-resize{display:none}
.kb-search-wrap{position:relative}
.kb-search-wrap .fa-magnifying-glass{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-dim);font-size:11px;pointer-events:none}
#k-search-clear{display:none;position:absolute;right:5px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:13px;padding:3px 6px;line-height:1;border-radius:5px}
#k-search-clear:hover{background:var(--bg-chip);color:var(--text-primary)}
#k-search-info{color:var(--text-dim);font-weight:400}
.kb-dot{width:9px;height:9px;border-radius:99px;flex-shrink:0}
.kb-col-count{font-size:10px;font-weight:700;background:var(--bg-chip);color:var(--text-quiet2);padding:1px 7px;border-radius:99px;flex-shrink:0}
.kb-col-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;padding:0 2px;gap:6px}
.kb-col-title{font-weight:700;font-size:11.5px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.kb-col-total{font-size:9.5px;color:var(--text-muted);white-space:nowrap}
.kb-col-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11px;padding:3px 5px;border-radius:5px;line-height:1}
.kb-col-btn:hover{background:var(--bg-chip);color:var(--text-primary)}
.kb-cards{display:flex;flex-direction:column;gap:10px;min-height:60px;flex:1;overflow-y:auto}
.kb-card{background:var(--bg-surface);border:1px solid var(--card-border-color);border-left:3px solid transparent;border-radius:10px;padding:13px 14px;cursor:grab;display:flex;flex-direction:column;gap:7px;transition:box-shadow .15s,border-color .15s;box-shadow:var(--shadow-surface)}
.kb-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.32);border-color:#333}
.kb-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.kb-card-title{color:var(--text-primary);font-weight:700;font-size:13.5px;margin:0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.kb-card-score{font-size:9px;font-weight:700;padding:2px 6px;border-radius:99px;flex-shrink:0;white-space:nowrap;margin-top:1px}
.kb-card-meta{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.kb-card-meta-item{display:flex;align-items:center;gap:4px;font-size:9.5px;color:var(--text-muted);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.kb-card-meta-item i{font-size:8.5px;opacity:.75}
.kb-card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:1px}
.kb-card-value{color:#2fe08a;font-weight:800;font-size:14.5px;letter-spacing:-.01em}
.kb-load-more{margin-top:1px;width:100%;background:none;border:1px dashed var(--border-default);color:var(--text-muted);border-radius:8px;padding:6px;font-size:10.5px;font-weight:600;cursor:pointer}
.kb-load-more:hover{background:#161616;color:var(--text-quiet2)}
.kb-add-card{margin-top:8px;width:100%;background:none;border:1px dashed var(--border-default);color:var(--text-muted);border-radius:8px;padding:7px;font-size:11px;font-weight:600;cursor:pointer}
/* Coluna do Kanban em modo tabela — pra colunas grandes tipo Prospect com
   100+ leads, onde rolar cartão a cartão é lento. Mostra tudo de uma vez
   (sem paginação de "carregar mais"), uma linha compacta por negócio. */
.kb-col-btn-suggest{color:#8b5cf6}
.kb-table-wrap{flex:1;overflow:auto;min-height:60px}
.kb-table{width:100%;border-collapse:collapse;font-size:11px}
.kb-table thead th{position:sticky;top:0;background:var(--bg-sunken);text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;padding:4px 6px;border-bottom:1px solid var(--border-subtle)}
.kb-table tbody tr{cursor:grab;border-bottom:1px solid var(--border-subtle);transition:background .12s}
.kb-table tbody tr:hover{background:var(--bg-chip)}
.kb-table td{padding:6px 6px;vertical-align:middle;color:var(--text-primary)}
.kb-tbl-title{font-weight:700;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-tbl-seller{display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px;color:var(--text-muted);font-size:10px}
.kb-tbl-valor{color:#2fe08a;font-weight:800;white-space:nowrap}
/* ── Funil de Vendas: Handoffs + Modo Sombra (tempo real) ────────────── */
#funil-fab{position:fixed;bottom:88px;right:22px;width:48px;height:48px;border-radius:50%;border:1px solid #3a1a22;cursor:pointer;background:linear-gradient(135deg,#2a1014 0%,#1c0c0f 100%);box-shadow:0 8px 24px rgba(255,84,112,.35);z-index:179;display:none;align-items:center;justify-content:center;padding:0;color:#ff5470;font-size:18px}
.funil-fab-badge{position:absolute;top:-4px;right:-4px;background:#ff5470;color:#fff;font-size:10px;font-weight:800;min-width:18px;height:18px;border-radius:99px;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid #10171a}
.funil-hitem{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:10px;padding:11px 12px;cursor:pointer;transition:border-color .15s;box-shadow:var(--shadow-surface)}
.funil-hitem:hover{border-color:var(--border-strong)}
.funil-hitem-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.funil-hitem-title{color:var(--text-primary);font-weight:700;font-size:12.5px;margin:0}
.funil-hitem-sub{color:var(--text-muted);font-size:10.5px;margin:3px 0 0}
.funil-dossie{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.funil-dossie-item{background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:8px;padding:9px 11px;box-shadow:var(--shadow-surface)}
.funil-dossie-item h5{margin:0 0 4px;font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-weight:700}
.funil-dossie-item p{margin:0;font-size:11.5px;color:var(--text-quiet);line-height:1.4}
.funil-transcript{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:2px 2px 4px;min-height:120px}
.funil-msg{max-width:80%;padding:8px 11px;border-radius:12px;font-size:12px;line-height:1.45}
.funil-msg-lead{align-self:flex-start;background:#1c1c1c;color:#ededed;border-bottom-left-radius:3px}
.funil-msg-bot{align-self:flex-end;background:#0f2327;color:#bfeef0;border-bottom-right-radius:3px}
.funil-msg-vendedor{align-self:flex-end;background:#132a17;color:#bdf0c4;border-bottom-right-radius:3px}
/* Sussurro do copiloto agora entra direto no fluxo da conversa (centralizado,
   borda tracejada) em vez de ficar numa caixa separada abaixo — fica claro
   que é uma dica interna, no momento exato em que ela aconteceu. */
.funil-msg-copiloto{align-self:center;max-width:92%;background:rgba(251,191,36,.08);border:1px dashed rgba(251,191,36,.4);color:#f2c879;font-size:11px;line-height:1.4;padding:7px 12px;border-radius:9px}
.funil-msg-copiloto b{color:#ffd98a}
.funil-digitando{font-size:11px;color:#8a8a8a;font-style:italic;padding:2px 4px}
.funil-sussurros{display:none}
.funil-sombra-actions{display:flex;gap:8px;margin-top:12px}
/* ── War Room (Modo Sombra redesenhado): ambiente tático de fechamento ──
   Mesma lógica de sempre (handoff, dossiê, sussurro, áudio, takeover) — só
   deixou de ser um modalzinho central e virou uma tela cheia de 3 colunas:
   radar de leads quentes, chat tático no centro, inteligência do negócio à
   direita. Paleta continua a mesma do resto do JOE (fundo escuro, acento
   ciano #22d3ee), só com um acabamento de vidro mais refinado nos painéis. */
#modal-funil-sombra{align-items:stretch;justify-content:stretch;padding:0;background:rgba(4,6,10,.9);backdrop-filter:blur(6px)}
#modal-funil-sombra .modal-box{max-width:none;width:100%;height:100%;border-radius:0;padding:0;display:grid;grid-template-columns:250px 1fr 290px;background:#08090b;border:none;box-shadow:none;overflow:hidden}
.wr-col{display:flex;flex-direction:column;min-height:0;min-width:0}
.wr-col-radar{background:rgba(17,19,24,.9);border-right:1px solid rgba(255,255,255,.07);padding:14px 12px}
.wr-col-intel{background:rgba(17,19,24,.9);border-left:1px solid rgba(255,255,255,.07);padding:16px 14px;overflow-y:auto}
.wr-search{position:relative;margin-bottom:12px;flex-shrink:0}
.wr-search input{width:100%;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);border-radius:9px;padding:8px 40px 8px 30px;color:#ededed;font-size:12px;outline:none}
.wr-search input:focus{border-color:rgba(34,211,238,.4)}
.wr-search i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#5c6a6c;font-size:11px}
.wr-search kbd{position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:9px;color:#5c6a6c;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:4px;padding:2px 5px;font-family:inherit}
.wr-radar-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:7px}
.wr-lead{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:10px 11px;cursor:pointer;transition:background .15s,border-color .15s}
.wr-lead:hover{background:rgba(255,255,255,.055)}
.wr-lead.is-active{background:rgba(34,211,238,.08);border-color:rgba(34,211,238,.35)}
.wr-lead-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px}
.wr-lead-name{font-size:12px;font-weight:700;color:#ededed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.wr-lead-val{font-size:10.5px;font-weight:700;color:#2fe08a;flex-shrink:0}
.wr-lead-meta{display:flex;align-items:center;gap:6px;font-size:9.5px;color:#8a8a8a}
.wr-pulse{width:6px;height:6px;border-radius:99px;flex-shrink:0;position:relative}
.wr-pulse::after{content:'';position:absolute;inset:-3px;border-radius:99px;background:inherit;opacity:.45;animation:wrpulse 1.8s ease-out infinite}
@keyframes wrpulse{0%{transform:scale(.6);opacity:.5}100%{transform:scale(2.2);opacity:0}}
@media (prefers-reduced-motion:reduce){.wr-pulse::after{animation:none}}
.wr-header{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.015);flex-shrink:0}
.wr-header-name{font-size:15px;font-weight:800;color:#ededed;margin:0}
.wr-header-sub{font-size:10.5px;color:#8a8a8a;margin:2px 0 0}
.wr-score{display:flex;flex-direction:column;align-items:center;padding:2px 14px;border-left:1px solid rgba(255,255,255,.08);border-right:1px solid rgba(255,255,255,.08);flex-shrink:0}
.wr-score b{font-size:17px;color:#22d3ee;line-height:1;font-variant-numeric:tabular-nums}
.wr-score span{font-size:8.5px;color:#7a7a7a;text-transform:uppercase;letter-spacing:.06em;margin-top:3px}
.wr-close{background:none;border:none;color:#8a8a8a;cursor:pointer;font-size:18px;padding:4px 8px;border-radius:6px;flex-shrink:0}
.wr-close:hover{background:rgba(255,255,255,.06);color:#ededed}
.wr-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:16px 18px}
.wr-intel-title{font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5c6a6c;margin:0 0 10px}
.wr-actions{display:flex;flex-direction:column;gap:7px;margin-top:6px}
.wr-action-btn{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);color:#ededed;font-size:11.5px;font-weight:600;padding:9px 12px;border-radius:9px;cursor:pointer;text-align:left;width:100%}
.wr-action-btn:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.wr-action-btn.wr-action-win{color:#2fe08a;border-color:rgba(47,224,138,.28)}
.wr-action-btn.wr-action-win:hover{background:rgba(47,224,138,.09)}
.wr-timeline{display:flex;flex-direction:column;gap:0;margin-top:6px}
.wr-tl-item{display:flex;gap:9px;padding:0 0 14px;position:relative}
.wr-tl-item::before{content:'';position:absolute;left:3px;top:12px;bottom:0;width:1px;background:rgba(255,255,255,.09)}
.wr-tl-item:last-child::before{display:none}
.wr-tl-dot{width:7px;height:7px;border-radius:99px;background:#22d3ee;flex-shrink:0;margin-top:4px}
.wr-tl-text{font-size:11px;color:#c7c7c7;line-height:1.4}
.wr-tl-text b{color:#ededed}
/* Player de áudio próprio (waveform), no lugar do <audio controls> nu do
   navegador — a cor das barras herda do balão (currentColor), então já sai
   combinando com quem mandou a mensagem. */
.funil-audio{display:flex;align-items:center;gap:8px;margin-top:6px;background:rgba(0,0,0,.18);border-radius:10px;padding:6px 9px;min-width:170px}
.funil-audio-play{background:rgba(255,255,255,.12);border:none;color:inherit;width:24px;height:24px;border-radius:99px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9.5px}
.funil-audio-play:hover{background:rgba(255,255,255,.2)}
.funil-audio-bars{flex:1;display:flex;align-items:center;gap:2px;height:22px}
.funil-audio-bar{flex:1;background:currentColor;opacity:.35;border-radius:2px;min-width:2px;cursor:pointer;transition:opacity .1s}
.funil-audio-bar.is-played{opacity:.95}
.funil-audio-time{font-size:9px;opacity:.65;flex-shrink:0;font-variant-numeric:tabular-nums}
@media (max-width:900px){#modal-funil-sombra .modal-box{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.wr-col-radar{display:none}.wr-col-intel{border-left:none;border-top:1px solid rgba(255,255,255,.07);max-height:36vh}}
/* AI Assistant */
#ai-fab{position:fixed;bottom:22px;right:22px;width:54px;height:54px;border-radius:50%;border:1px solid #1e4a52;cursor:pointer;background:linear-gradient(135deg,#0f2327 0%,#12282c 100%);box-shadow:0 8px 28px rgba(34,211,238,.4);z-index:180;align-items:center;justify-content:center;transition:transform .15s;padding:0}
#ai-fab:hover{transform:scale(1.07)}
#ai-panel{position:fixed;bottom:88px;right:22px;width:384px;max-width:calc(100vw - 24px);height:560px;max-height:calc(100vh - 130px);background:var(--bg-surface);border:1px solid var(--card-border-color);border-radius:16px;box-shadow:0 20px 60px rgba(15,23,42,.22);z-index:181;flex-direction:column;overflow:hidden}
.ai-head{background:#22d3ee;color:#fff;padding:13px 15px;display:flex;align-items:center;justify-content:space-between}
.ai-logo{width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:15px}
.ai-x{background:rgba(255,255,255,.15);border:none;color:#fff;width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:14px}
.ai-x:hover{background:rgba(255,255,255,.28)}
.ai-msgs{flex:1;overflow-y:auto;padding:14px;background:var(--bg-surface-alt)}
.ai-bubble{max-width:85%;padding:9px 12px;border-radius:13px;font-size:12.5px;line-height:1.5;overflow-wrap:anywhere}
.ai-user{background:#22d3ee;color:#fff;border-bottom-right-radius:4px}
.ai-bot{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary);border-bottom-left-radius:4px}
.ai-bot p{margin:0 0 8px}.ai-bot p:last-child{margin:0}.ai-bot ul,.ai-bot ol{margin:4px 0;padding-left:18px}.ai-bot li{margin:2px 0}
.ai-bot code{background:var(--bg-chip);padding:1px 5px;border-radius:4px;font-size:11px}
.ai-bot pre{background:#0b0e22;color:var(--text-quiet);padding:10px;border-radius:8px;overflow-x:auto;font-size:11px}.ai-bot pre code{background:none;color:inherit;padding:0}
.ai-bot h1,.ai-bot h2,.ai-bot h3{font-size:13px;margin:6px 0 4px}.ai-bot strong{font-weight:700}
.ai-typing{color:var(--text-muted);letter-spacing:3px}
/* JOE — logomarca animada (leve balanço + halo pulsante no botão) */
@keyframes joeBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.6px)}}
#ai-fab{animation:joeFab 2.6s ease-in-out infinite}
#ai-fab img{display:inline-block;width:72%;height:72%;object-fit:contain;animation:joeBob 3.4s ease-in-out infinite}
@keyframes joeFab{0%,100%{box-shadow:0 8px 28px rgba(34,211,238,.4),0 0 0 0 rgba(34,211,238,.45)}50%{box-shadow:0 8px 28px rgba(34,211,238,.4),0 0 0 11px rgba(34,211,238,0)}}
.ai-suggest{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 10px;background:var(--bg-surface-alt)}
.ai-chip{font-size:10.5px;font-weight:600;color:#22d3ee;background:var(--tint-cyan-bg);border:1px solid #1e4a52;border-radius:99px;padding:5px 10px;cursor:pointer;transition:all .13s}
.ai-chip:hover{background:var(--tint-cyan-bg-2)}
.ai-inbar{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border-default);background:var(--bg-surface);align-items:flex-end}
.ai-ta{flex:1;resize:none;border:1px solid var(--border-strong);border-radius:10px;padding:9px 11px;font-size:12.5px;font-family:inherit;outline:none;max-height:90px;background:var(--bg-surface-alt);color:var(--text-primary)}
.ai-ta::placeholder{color:var(--text-muted)}
.ai-ta:focus{border-color:#22d3ee;background:var(--bg-surface)}
.ai-send{background:#22d3ee;color:#fff;border:none;width:38px;height:38px;border-radius:10px;cursor:pointer;font-size:14px;flex-shrink:0}
.ai-send:hover{background:#22d3ee}
.ai-send:disabled{opacity:.5;cursor:not-allowed}

/* ── Agente JOE ─────────────────────────────────────────────────────
   Divide o painel flutuante que já existia em duas abas: "Ajuda" (o
   suporte de sempre) e "Agente" (o que lê e mexe no CRM). Duas abas, e não
   um segundo botão flutuante: o canto da tela é caro, e quem está vendendo
   não deveria ter que escolher entre dois ícones parecidos antes de digitar. */
.ag-abas{display:flex;background:var(--bg-surface-alt);border-bottom:1px solid var(--border-default);flex-shrink:0}
.ag-aba{flex:1;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-family:inherit;font-size:11.5px;font-weight:700;padding:9px 6px;cursor:pointer;letter-spacing:.02em;transition:color .15s,border-color .15s}
.ag-aba:hover{color:var(--text-secondary)}
.ag-aba[aria-selected="true"]{color:#22d3ee;border-bottom-color:#22d3ee}
.ag-aba i{margin-right:5px}

.ag-corpo{flex:1;display:flex;flex-direction:column;min-height:0}

/* Cartão de confirmação: o momento mais importante da tela inteira. Fica em
   âmbar, e não em ciano, porque não é mais uma bolha de conversa — é uma
   decisão que a pessoa precisa tomar antes de algo sair para um cliente. */
.ag-confirma{background:var(--tint-amber-bg);border:1px solid #7a5a12;border-radius:12px;padding:13px;margin:4px 0 10px}
.ag-confirma-topo{display:flex;align-items:center;gap:7px;color:var(--warning-text);font-weight:800;font-size:11.5px;letter-spacing:.03em;text-transform:uppercase;margin-bottom:7px}
.ag-confirma-motivo{color:var(--text-secondary);font-size:11.5px;line-height:1.5;margin:0 0 9px}
.ag-previa{background:var(--bg-sunken);border:1px solid var(--border-default);border-radius:9px;padding:10px 11px;font-size:12px;line-height:1.55;color:var(--text-primary);white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow-y:auto;margin-bottom:11px}
.ag-previa-rotulo{font-size:9.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);margin-bottom:5px}
.ag-botoes{display:flex;gap:8px}
.ag-sim{flex:1;background:#2fe08a;color:#04180f;border:none;border-radius:9px;padding:9px;font-family:inherit;font-weight:700;font-size:12px;cursor:pointer}
.ag-sim:hover{filter:brightness(1.08)}
.ag-nao{flex:1;background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:9px;padding:9px;font-family:inherit;font-weight:600;font-size:12px;cursor:pointer}
.ag-nao:hover{border-color:var(--border-strong);color:var(--text-primary)}
.ag-sim:disabled,.ag-nao:disabled{opacity:.45;cursor:not-allowed}

/* O que o agente FEZ nesta volta. Some quando não há nada — um rodapé vazio
   dizendo "nenhuma ação" só ocuparia espaço. */
.ag-feitos{display:flex;flex-direction:column;gap:4px;margin:2px 0 10px}
.ag-feito{display:flex;align-items:flex-start;gap:6px;font-size:10.5px;color:var(--success-text);background:var(--tint-green-bg-2);border:1px solid var(--tint-green-border);border-radius:7px;padding:5px 8px;overflow-wrap:anywhere}
.ag-feito i{margin-top:2px;flex-shrink:0}

.ag-aviso{background:var(--tint-cyan-bg);border:1px solid var(--tint-cyan-border);border-radius:11px;padding:14px;margin:10px 0;font-size:12px;line-height:1.55;color:var(--text-secondary)}
.ag-aviso b{color:var(--text-primary)}
.ag-aviso a{color:#22d3ee;text-decoration:none}
.ag-aviso a:hover{text-decoration:underline}

/* Seletor de cérebro. Só aparece quando a conta tem mais de uma chave — com
   uma só, seria um menu de uma opção ocupando a barra. */
.ag-cerebro{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-surface-alt);border-bottom:1px solid var(--border-subtle);font-size:10.5px;color:var(--text-faint)}
.ag-cerebro select{background:var(--bg-chip);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:6px;padding:3px 6px;font-family:inherit;font-size:10.5px;cursor:pointer;outline:none}
.ag-cerebro select:focus{border-color:#22d3ee}
.ag-vazio{text-align:center;padding:28px 16px;color:var(--text-muted)}
.ag-vazio h4{color:var(--text-primary);font-size:13.5px;margin:10px 0 6px;font-weight:700}
.ag-vazio p{font-size:11.5px;line-height:1.6;margin:0 0 14px}
.ag-selo{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--warning-text);background:var(--tint-amber-bg-2);border:1px solid #6b4f10;border-radius:99px;padding:4px 10px}

@media(max-width:480px){#ai-panel{width:calc(100vw - 20px);height:calc(100vh - 110px);bottom:80px;right:10px}#ai-fab{bottom:16px;right:16px}}
