/* Admin: estatísticas do site (assets/js/admin.js). Só tokens do tokens.css; letra no mínimo 13 px (rótulos em maiúsculas).
   Cores dos gráficos validadas com o validador do método de dataviz (CVD, contraste e faixa de luminosidade) contra a
   superfície de cada modo (#FFFFFF claro, #14294A escuro): série 1 azul, série 2 laranja; funil em degradê de um azul só. */
.adm{
  --viz-1:#2a78d6;
  --viz-2:#eb6834;
  --fun-1:#104281;--fun-2:#1c5cab;--fun-3:#2a78d6;--fun-4:#5598e7;--fun-5:#86b6ef;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .adm{
    --viz-1:#3987e5;
    --viz-2:#d95926;
    --fun-1:#cde2fb;--fun-2:#9ec5f4;--fun-3:#6da7ec;--fun-4:#3987e5;--fun-5:#256abf;
  }
}
:root[data-theme="dark"] .adm{
  --viz-1:#3987e5;
  --viz-2:#d95926;
  --fun-1:#cde2fb;--fun-2:#9ec5f4;--fun-3:#6da7ec;--fun-4:#3987e5;--fun-5:#256abf;
}

.adm-corpo{display:grid;gap:var(--space-4);min-width:0}
.adm .painel-in{position:relative;min-width:0}
.adm p{margin:0}
.adm-mudo{color:var(--muted);font-size:var(--fs-meta)}

/* Aviso de origem dos dados e período */
.adm-nota{background:var(--surface);border-left:4px solid var(--navy-mid);border-radius:var(--r);box-shadow:var(--shadow);padding:var(--space-4);display:grid;gap:.4rem}
.adm-barra{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem var(--space-4)}
.adm-faixa{color:var(--muted);font-size:var(--fs-meta)}

/* KPIs: número grande com algarismos proporcionais */
.adm-kpis{margin-top:var(--space-2)}
.adm-kpis .kpi b{font-variant-numeric:normal;overflow-wrap:anywhere}

/* Grade de painéis: uma coluna no celular, duas a partir de 960 px */
.adm-grade{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);min-width:0}
@media (min-width:960px){.adm-grade{grid-template-columns:repeat(2,minmax(0,1fr))}.adm-largo{grid-column:1/-1}}

/* Funil: barra da etapa sobre a fração do total (trilho), cor em degradê pela ordem das etapas */
.adm-funil{list-style:none;margin:0;padding:0;display:grid}
.fun-etapa{display:grid;gap:.35rem;padding:.7rem 0 .7rem .75rem;border-left:3px solid transparent;border-bottom:1px solid var(--line)}
.fun-etapa:last-child{border-bottom:0}
.fun-etapa.maior-queda{border-left-color:var(--erro)}
.fun-cab{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);min-width:0}
.fun-nome{min-width:0}
.fun-nome b{display:block}
.fun-nome small{display:block;color:var(--muted);font-size:var(--fs-meta)}
.fun-val{font-size:var(--fs-h3);font-weight:var(--fw-black);color:var(--heading-on-surface);white-space:nowrap}
.fun-trilho{height:14px;background:var(--surface-2);border-radius:0 4px 4px 0;overflow:hidden}
.fun-barra{display:block;height:100%;border-radius:0 4px 4px 0}
.fun-meta{color:var(--muted);font-size:var(--fs-meta)}
.fun-queda{justify-self:start;font-size:var(--fs-meta);font-weight:var(--fw-black);color:var(--erro);background:var(--erro-bg);border-radius:var(--r-md);padding:.15rem .65rem}
@media (min-width:720px){
  .fun-etapa{grid-template-columns:minmax(12rem,18rem) minmax(0,1fr) minmax(4.5rem,auto);column-gap:var(--space-4);align-items:center}
  .fun-cab{display:contents}
  .fun-nome{grid-column:1;grid-row:1 / span 2;align-self:start}
  .fun-val{grid-column:3;grid-row:1;text-align:right}
  .fun-trilho{grid-column:2;grid-row:1}
  .fun-meta,.fun-queda{grid-column:2}
}

/* Barras horizontais (listas de um valor só): rótulo e valor em cima, barra fina embaixo */
.adm-barras{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.adm-barras li{display:grid;gap:.25rem;padding:.4rem .5rem;border-radius:var(--r-sm)}
.adm-barras li:hover{background:var(--surface-2)}
.adm-b-cab{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);min-width:0}
.adm-b-rot{min-width:0;overflow-wrap:anywhere}
a.adm-b-rot{color:var(--link)}
.adm-b-val{font-weight:var(--fw-black);font-variant-numeric:tabular-nums;white-space:nowrap}
.adm-b-trilho{height:10px}
.adm-b-barra{display:block;height:100%;background:var(--viz-1);border-radius:0 4px 4px 0}
.adm-b-meta{color:var(--muted);font-size:var(--fs-meta)}

/* Dica ao passar o mouse (e no foco do gráfico) */
.adm-dica{position:absolute;z-index:5;pointer-events:none;background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:.45rem .7rem;display:grid;gap:.15rem;width:max-content;max-width:min(18rem,100%)}
.adm-dica[hidden]{display:none}
.adm-dica-t{font-size:var(--fs-meta);color:var(--muted);font-weight:var(--fw-semibold);overflow-wrap:anywhere}
.adm-dica-l{display:flex;align-items:center;gap:.45rem;font-size:var(--fs-meta)}
.adm-dica-l b{font-size:var(--fs-body);font-variant-numeric:tabular-nums}
.adm-dica-l span{color:var(--muted)}
.adm-chave{display:inline-block;flex:none;width:16px;height:3px;border-radius:2px}

/* Gráfico de linhas: grade fina, eixo discreto, linhas de 2 px */
.adm-legenda{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem var(--space-5);font-size:var(--fs-meta)}
.adm-legenda li{display:flex;align-items:center;gap:.45rem}
.adm-graf{position:relative;min-width:0;width:100%}
.adm-svg{display:block;max-width:100%;touch-action:pan-y;border-radius:var(--r-sm)}
.adm-svg:focus-visible{outline:2px solid var(--link);outline-offset:4px}
.adm-gl{stroke:var(--line);stroke-width:1}
.adm-base{stroke:var(--muted);stroke-opacity:.55;stroke-width:1}
.adm-eixo{fill:var(--muted);font-family:var(--font-sans);font-size:var(--fs-meta);font-variant-numeric:tabular-nums}
.adm-linha{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.adm-ponto{stroke:var(--surface);stroke-width:2}
.adm-ponta{fill:var(--fg);font-family:var(--font-sans);font-size:var(--fs-meta);font-weight:var(--fw-semibold)}
.adm-mira{stroke:var(--muted);stroke-width:1}
.adm-tabela{display:grid;gap:.6rem}
.adm-tabela > summary{justify-self:start;cursor:pointer;list-style:none}
.adm-tabela > summary::-webkit-details-marker{display:none}
.adm-tabela[open] > summary{background:var(--orange);color:var(--navy-deep)}
.adm-tabela .tblwrap{max-height:24rem;overflow:auto}

/* Tabela de páginas */
.adm-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.adm-num::before{white-space:normal}
.adm-tbl td:first-child{display:block}
.adm-tbl a{font-weight:var(--fw-semibold);color:var(--link);overflow-wrap:anywhere}
.adm-caminho{display:block;color:var(--muted);font-size:var(--fs-meta);font-weight:var(--fw-regular);overflow-wrap:anywhere}
.adm-mini-barra{display:inline-block;height:8px;margin-right:.5rem;background:var(--viz-1);border-radius:0 4px 4px 0;vertical-align:middle}
.adm-lento{display:block;font-size:var(--fs-meta);font-weight:var(--fw-black);color:var(--erro)}
@media (min-width:560px){
  .adm-tbl td:first-child{display:table-cell}
  .adm-tbl th:not(:first-child),.adm-tbl td:not(:first-child){text-align:right}
  .tbl-stack.compact th:not(:first-child),.tbl-stack.compact td:not(:first-child){text-align:right}
}

/* Recomendações */
.adm-recs{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.adm-recs li{background:var(--surface-2);border-left:3px solid var(--orange);border-radius:var(--r-md);padding:.6rem .8rem;overflow-wrap:anywhere}
.adm-recs li.adm-rec-vazia{background:transparent;border:1px dashed var(--line);color:var(--muted)}

/* Marcos da jornada */
.adm-marcos{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.adm-marcos li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem;align-items:start;padding:.45rem 0;border-bottom:1px dashed var(--line)}
.adm-marcos li:last-child{border-bottom:0}
.adm-marcos li.adm-mudo{display:block}
.adm-marco-ic{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1.5px dashed var(--line);color:var(--muted);font-weight:var(--fw-black)}
.adm-marcos li.feito .adm-marco-ic{border:0;background:var(--ok-bg);color:var(--ok)}
.adm-marcos b{display:block}
.adm-marco-quando{display:block;color:var(--muted);font-size:var(--fs-meta);overflow-wrap:anywhere}

/* Usuários e perfis */
.adm-dl{margin:0;display:grid}
.adm-dl > div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.2rem var(--space-4);padding:.4rem 0;border-bottom:1px dashed var(--line)}
.adm-dl > div:last-child{border-bottom:0}
.adm-dl dt{color:var(--muted)}
.adm-dl dd{margin:0;font-weight:var(--fw-semibold);text-align:right;overflow-wrap:anywhere;min-width:0}

/* Ferramentas */
.adm-botoes{display:flex;flex-wrap:wrap;gap:.5rem}
.adm-botoes .btn{font-size:var(--fs-small)}
.adm-botoes .btn:disabled{opacity:.5;cursor:not-allowed;filter:none}

/* Modo da página (admin.js põe .adm-nuvem com o servidor, .adm-local sem ele); até o script rodar, nenhum dos dois aparece */
.adm:not(.adm-nuvem) .adm-so-nuvem,.adm:not(.adm-local) .adm-so-local{display:none!important}
.adm-restrito{margin-top:.25rem}
.adm-barra #adm-atualizar{min-height:40px;font-size:var(--fs-small);margin-left:auto}

/* Pessoas e perfis de acesso: filtro em cima; tabela que vira cartões no celular */
.adm-pessoas{display:grid;gap:var(--space-3)}
.adm-pessoas-barra{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.5rem var(--space-4);min-width:0}
.adm-pessoas-busca{flex:1 1 16rem;max-width:26rem}
.adm-pessoas-busca input{font:inherit;font-weight:var(--fw-regular);min-height:42px;padding:.45rem .7rem;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--fg);min-width:0;width:100%}
.adm-tbl-pessoas td:first-child{display:block}
.adm-pessoa-nome{overflow-wrap:anywhere}
.adm-tbl-pessoas .pill{margin-left:.45rem;vertical-align:middle}
.adm-email{overflow-wrap:anywhere;min-width:0}
.adm-tbl-pessoas td.adm-email{word-break:break-word}
/* Celular: e-mail comprido vai para baixo do rótulo (senão espreme o "E-mail") */
@media (max-width:559.98px){.adm-tbl-pessoas td.adm-email{flex-direction:column;align-items:flex-start;gap:.1rem}}
.adm-papel-cx{display:grid;gap:.2rem;justify-items:end;min-width:0}
.adm-papel-sel{font:inherit;font-size:var(--fs-small);min-height:40px;padding:.3rem .5rem;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--fg);max-width:100%}
.adm-papel-sel:disabled{opacity:.6;cursor:not-allowed}
@media (min-width:560px){
  .adm-tbl-pessoas td:first-child{display:table-cell}
  .adm-papel-cx{justify-items:start}
}

/* Tabela das cápsulas */
.adm-tbl-regras td.adm-num{white-space:normal}
