/* Sistema Carteira: identidade dos PDFs "Visão da Carteira" adaptada à tela. CSS puro, sem build. */
@font-face { font-family:'Space Grotesk'; font-weight:500 700; font-style:normal; font-display:swap; src:url('/fonts/space-grotesk.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-weight:400 700; font-style:normal; font-display:swap; src:url('/fonts/inter.woff2') format('woff2'); }

:root {
  --bg:#0B0E13; --surface:#12161D; --surface-2:#171C25; --line:#22303B; --text:#D7E3EA; --title:#FFFFFF; --muted:#8B96A8;
  --accent:#22D3EE; --accent-2:#0891B2; --accent-bg:#0F2A33;
  --good:#34D399; --good-bg:#10251E; --bad:#F87171; --bad-bg:#2A171B; --warn:#FBBF24; --warn-bg:#29230F;
  --fonte-titulo:'Space Grotesk', system-ui, sans-serif; --fonte-texto:'Inter', system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--text); font-family:var(--fonte-texto); font-size:14px; line-height:1.5; min-height:100vh; }
a { color:var(--accent); text-decoration:none; }
a:hover { text-decoration:underline; }
h1, h2, h3 { font-family:var(--fonte-titulo); color:var(--title); letter-spacing:-.01em; margin:0 0 .5em; }
h1 { font-size:28px; line-height:1.15; font-weight:700; margin-top:.2em; }
h2 { font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:28px 0 10px; display:flex; align-items:center; gap:10px; }
h2::after { content:''; flex:1; height:1px; background:var(--line); }
h2 .h2-nota { font-weight:400; letter-spacing:0; text-transform:none; }
h3 { font-size:16px; font-weight:600; }
p { margin:0 0 .8em; }
small { color:var(--muted); font-size:12px; }
.muted { color:var(--muted); } .acc { color:var(--accent); } .strong { font-weight:700; color:var(--title); }
.num { font-variant-numeric:tabular-nums; }
.r { text-align:right; }

/* Cabeçalho e layout */
.topo { position:sticky; top:0; z-index:10; background:rgba(11,14,19,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.topo-in { max-width:1280px; margin:0 auto; padding:10px 24px; display:flex; align-items:center; gap:28px; }
.topo .logo { display:block; height:30px; width:auto; }
.topo nav { display:flex; gap:4px; flex:1; }
.topo nav a { color:var(--muted); font-weight:500; padding:6px 12px; border-radius:8px; }
.topo nav a:hover { color:var(--title); text-decoration:none; background:var(--surface); }
.topo nav a.ativo { color:var(--accent); background:var(--accent-bg); font-weight:600; }
.usuario { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:13px; }
.usuario form { margin:0; }
.link { background:none; border:0; padding:0; cursor:pointer; font:inherit; color:var(--accent); font-weight:600; }
.link:hover { text-decoration:underline; }
main { max-width:1280px; margin:0 auto; padding:28px 24px 64px; }
.avisos { margin-bottom:16px; }
.aviso { padding:10px 14px; border-radius:12px; border:1px solid var(--line); margin:0 0 8px; }
.aviso.ok { background:var(--good-bg); color:var(--good); border-color:#1B4A39; }
.aviso.erro { background:var(--bad-bg); color:#FCA5A5; border-color:#5A2A31; }
.eyebrow { font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:8px; }
.eyebrow::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--accent); display:inline-block; }
.periodo { color:var(--muted); font-size:13px; }

/* Tabelas */
table { width:100%; border-collapse:separate; border-spacing:0; background:var(--surface); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
th, td { text-align:left; padding:10px 14px; border-bottom:1px solid var(--line); vertical-align:middle; }
th { color:var(--muted); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; background:var(--surface); }
tbody tr:last-child td, tbody tr:last-child th, table > tr:last-child td { border-bottom:0; }
tbody tr:hover td { background:var(--surface-2); }
td small, th small { display:block; text-transform:none; letter-spacing:0; font-weight:400; }
.painel td.r, .painel th.r, table td.num { font-variant-numeric:tabular-nums; }
tr.total td, tr.total th { background:var(--surface-2); }
.tabela-rolagem { overflow-x:auto; border-radius:12px; }

/* Formulários e botões */
label { display:block; margin:14px 0 5px; color:var(--muted); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
input, select, textarea { background:var(--bg); color:var(--text); border:1px solid var(--line); padding:9px 12px; border-radius:10px; width:100%; font:inherit; }
input:focus, select:focus, textarea:focus { outline:2px solid var(--accent); outline-offset:-1px; border-color:var(--accent); }
input[type=checkbox], input[type=radio] { width:auto; }
button, .botao { background:var(--accent); color:#04222B; border:0; padding:9px 18px; border-radius:10px; cursor:pointer; font:inherit; font-weight:700; display:inline-block; text-decoration:none; }
button:hover, .botao:hover { filter:brightness(1.08); text-decoration:none; }
button.link, button.link:hover { background:none; color:var(--accent); padding:0; filter:none; font-weight:600; }
button.secundario, .botao.secundario { background:var(--surface-2); color:var(--text); border:1px solid var(--line); }

/* Cartões e blocos */
.cartao { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:16px 18px; }
.cartao-destaque { border-left:2px solid var(--accent); }
.grade { display:grid; gap:12px; }
.grade-2 { grid-template-columns:repeat(2, 1fr); } .grade-3 { grid-template-columns:repeat(3, 1fr); } .grade-4 { grid-template-columns:repeat(4, 1fr); }
.linha { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.chips { display:flex; flex-wrap:wrap; gap:6px; }
.chip { display:inline-block; font-size:12px; font-weight:600; border:1px solid var(--line); background:var(--surface); border-radius:20px; padding:3px 11px; color:var(--text); }

/* KPI */
.kpi { background:var(--surface-2); border:1px solid var(--line); border-radius:12px; padding:14px 16px; min-width:0; }
.kpi-rotulo { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; font-weight:600; }
.kpi-valor { font-family:var(--fonte-titulo); font-weight:700; font-size:26px; line-height:1.2; margin-top:2px; font-variant-numeric:tabular-nums; color:var(--title); overflow-wrap:anywhere; }
.kpi-sub { font-size:12px; color:var(--muted); margin-top:2px; }
.kpi-accent .kpi-valor { color:var(--accent); } .kpi-good .kpi-valor { color:var(--good); } .kpi-bad .kpi-valor { color:var(--bad); }
.kpi-botao { display:block; width:100%; text-align:left; font:inherit; color:inherit; cursor:pointer; }
.kpi-botao:hover { border-color:var(--accent-2); }
.kpi-botao:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.modal-kpi { border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--text); padding:0; width:min(640px, calc(100% - 32px)); max-height:80vh; }
.modal-kpi::backdrop { background:rgba(0, 0, 0, .6); }
.modal-corpo { padding:18px 20px; }
.modal-cab { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.modal-cab h3 { margin:0; font-size:18px; }
.modal-fechar { background:none; border:0; color:var(--muted); font-size:26px; line-height:1; cursor:pointer; padding:0 4px; }
.modal-fechar:hover { color:var(--title); }
.modal-sub { margin:4px 0 12px; font-size:13px; }
.modal-lista { max-height:52vh; overflow:auto; border:1px solid var(--line); border-radius:10px; }
.modal-lista table { border:0; border-radius:0; margin:0; }
.modal-lista tfoot th { position:sticky; bottom:0; }
.modal-grupo { display:flex; align-items:center; gap:8px; padding:10px 12px 4px; }

/* Selo, ponto, delta */
.dot { display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--muted); flex:none; }
.selo { display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; padding:3px 11px 3px 9px; border-radius:20px; border:1px solid var(--line); background:var(--surface); color:var(--text); white-space:nowrap; }
.selo-verde { color:var(--good); background:var(--good-bg); border-color:#1B4A39; } .selo-verde .dot { background:var(--good); }
.selo-amarelo { color:var(--warn); background:var(--warn-bg); border-color:#4F4318; } .selo-amarelo .dot { background:var(--warn); }
.selo-vermelho { color:var(--bad); background:var(--bad-bg); border-color:#5A2A31; } .selo-vermelho .dot { background:var(--bad); }
.selo-sem-dado { color:var(--muted); } 
.delta-pill { display:inline-block; font-size:12px; font-weight:600; padding:2px 9px; border-radius:20px; white-space:nowrap; text-align:center; }
.delta-bom { background:var(--good-bg); color:var(--good); } .delta-ruim { background:var(--bad-bg); color:var(--bad); } .delta-neutro { background:var(--surface-2); color:var(--muted); }
.tend-good { color:var(--good); } .tend-bad { color:var(--bad); } .tend-muted { color:var(--muted); }
.bad { color:var(--bad); font-weight:600; }

/* Gauge */
.gauge { position:relative; display:inline-block; flex:none; }
.gauge svg { display:block; }
.gauge-trilho { fill:none; stroke:var(--line); stroke-width:7; }
.gauge-arco { fill:none; stroke-width:7; stroke-linecap:round; transform:rotate(-90deg); transform-origin:40px 40px; }
.gauge-verde .gauge-arco { stroke:var(--good); } .gauge-amarelo .gauge-arco { stroke:var(--warn); } .gauge-vermelho .gauge-arco { stroke:var(--bad); }
.gauge-num { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--fonte-titulo); font-weight:700; color:var(--title); }
.gauge-verde .gauge-num { color:var(--good); } .gauge-amarelo .gauge-num { color:var(--warn); } .gauge-vermelho .gauge-num { color:var(--bad); }
.gauge-sem-dado .gauge-num { color:var(--muted); font-family:var(--fonte-texto); font-weight:500; text-align:center; line-height:1.1; }

/* Pilar */
.pilar { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:12px 16px; }
.pilar-top { display:flex; justify-content:space-between; gap:12px; font-size:13px; font-weight:600; color:var(--title); margin-bottom:8px; }
.pilar-pts { color:var(--accent); font-variant-numeric:tabular-nums; }
.pilar-nao-avaliado .pilar-pts { color:var(--muted); font-weight:500; }
.bar { height:6px; background:var(--line); border-radius:3px; overflow:hidden; }
.bar-fill { height:6px; border-radius:3px; background:var(--good); }
.bar-fill.faixa-amarelo { background:var(--warn); } .bar-fill.faixa-vermelho { background:var(--bad); }
.pilar-motivo { font-size:12px; color:var(--muted); line-height:1.45; margin-top:8px; }

/* Gráficos */
.grafico { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:14px 14px 8px; }
.grafico svg { display:block; width:100%; height:auto; overflow:visible; }
.grafico text { font-family:var(--fonte-texto); fill:var(--muted); font-size:11px; }
.grafico .g-val { fill:var(--title); font-weight:700; font-size:11px; font-variant-numeric:tabular-nums; }
.grafico .g-rot { fill:var(--text); font-size:11.5px; font-weight:600; }
.grafico .g-eixo { stroke:var(--line); stroke-width:1; }
.grafico .g-grade { stroke:var(--line); stroke-width:1; stroke-dasharray:3 4; }
.g-accent { fill:var(--accent); } .g-accent-2 { fill:var(--accent-2); } .g-good { fill:var(--good); } .g-warn { fill:var(--warn); } .g-bad { fill:var(--bad); } .g-muted { fill:var(--muted); }
.grafico-leg { display:flex; gap:14px; font-size:12px; color:var(--muted); margin-bottom:6px; flex-wrap:wrap; }
.grafico-leg i { display:inline-block; width:9px; height:9px; border-radius:2px; margin-right:6px; vertical-align:baseline; }
.grafico-vazio { display:flex; align-items:center; justify-content:center; color:var(--muted); font-style:italic; background:var(--surface); border:1px dashed var(--line); border-radius:12px; }
.mini-barras { display:inline-block; vertical-align:middle; }
.mini-barras rect { rx:1.5; }

/* Guia de estilo */
.guia-grupo { margin-bottom:8px; }
.guia-nota { display:flex; flex-wrap:wrap; gap:28px; align-items:flex-end; }
.guia-nota > div { display:flex; flex-direction:column; align-items:center; gap:8px; font-size:12px; color:var(--muted); }
.paleta { display:flex; flex-wrap:wrap; gap:8px; }
.amostra { width:110px; }
.amostra i { display:block; height:36px; border-radius:8px; border:1px solid var(--line); }
.amostra span { display:block; font-size:11px; color:var(--muted); margin-top:3px; }

/* Responsivo */
@media (max-width:1100px) {
  .grade-4 { grid-template-columns:repeat(2, 1fr); }
  .grade-3 { grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:768px) {
  body { font-size:14px; }
  .topo-in { flex-wrap:wrap; gap:8px 16px; padding:10px 16px; }
  .topo nav { order:3; flex-basis:100%; }
  main { padding:20px 16px 48px; }
  h1 { font-size:24px; }
  .grade-2, .grade-3, .grade-4 { grid-template-columns:1fr; }
  table { display:block; overflow-x:auto; white-space:nowrap; }
}
.grafico-leg i.g-accent { background:var(--accent); } .grafico-leg i.g-accent-2 { background:var(--accent-2); } .grafico-leg i.g-good { background:var(--good); }
.grafico-leg i.g-warn { background:var(--warn); } .grafico-leg i.g-bad { background:var(--bad); } .grafico-leg i.g-muted { background:var(--muted); }
.painel td:not(:first-child), .painel th:not(:first-child), td.num { white-space:nowrap; }

/* Visão da Carteira */
.cab { display:flex; justify-content:space-between; align-items:flex-end; gap:16px 24px; flex-wrap:wrap; margin-bottom:20px; }
.cab h1 { margin-bottom:4px; font-size:34px; }
.filtros { display:flex; gap:12px; align-items:flex-end; }
.filtros label { margin:0 0 4px; }
.filtros input, .filtros select { width:auto; min-width:160px; padding:7px 10px; }
.grade-5 { grid-template-columns:repeat(5, minmax(0, 1fr)); }
.totais { margin-bottom:8px; }
.saude-cont { display:flex; gap:14px; font-size:26px; }
.c-verde { color:var(--good); } .c-amarelo { color:var(--warn); } .c-vermelho { color:var(--bad); } .c-sem { color:var(--muted); }

.semaforo { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:12px; }
.cli { display:flex; flex-direction:column; gap:12px; background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--muted); border-radius:14px; padding:14px 16px; color:var(--text); transition:border-color .15s, background .15s; }
.cli:hover { background:var(--surface-2); text-decoration:none; }
.cli-vermelho { border-left-color:var(--bad); } .cli-amarelo { border-left-color:var(--warn); } .cli-verde { border-left-color:var(--good); }
.cli-sem-dado { border-left-color:var(--line); opacity:.85; }
.cli-topo { display:flex; align-items:center; gap:14px; }
.cli-id { min-width:0; display:flex; flex-direction:column; gap:6px; }
.cli-nome { font-family:var(--fonte-titulo); font-weight:700; font-size:16px; color:var(--title); line-height:1.25; overflow-wrap:anywhere; }
.cli-dados { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:8px; }
.cli-dados > div { display:flex; flex-direction:column; gap:2px; align-items:flex-start; min-width:0; }
.cli .rot { font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.cli .val { font-weight:700; color:var(--title); font-size:14px; overflow-wrap:anywhere; }
.cli-dados .delta-pill { font-size:11px; padding:1px 7px; }
.cli-vazio { margin:0; font-size:13px; color:var(--muted); line-height:1.45; }
.cli-serie { display:flex; align-items:flex-end; gap:16px; }
.cli-serie-item { display:flex; flex-direction:column; gap:4px; min-width:0; }

.cab + .cartao, .vazio { text-align:center; padding:40px 20px; }
.tabela-rolagem { border:1px solid var(--line); border-radius:12px; }
.tabela-rolagem table { border:0; border-radius:0; }
.painel tfoot th { background:var(--surface-2); color:var(--title); font-size:13px; text-transform:none; letter-spacing:0; border-bottom:0; border-top:1px solid var(--line); }
.painel td small { margin-top:1px; }
.painel a.strong:hover { color:var(--accent); }
.painel .c-nota { white-space:nowrap; width:72px; }
.painel .c-nota .dot { margin-right:8px; }
.dot-verde { background:var(--good); } .dot-vermelho { background:var(--bad); } .dot-amarelo { background:var(--warn); } .dot-sem-dado { background:var(--muted); }
.nota { font-family:var(--fonte-titulo); font-weight:700; font-size:16px; }
.nota-verde { color:var(--good); } .nota-amarelo { color:var(--warn); } .nota-vermelho { color:var(--bad); } .nota-sem-dado { color:var(--muted); }
.painel.leve td, .painel.leve th { padding:8px 14px; }
.legenda, .legenda-fim { font-size:12px; color:var(--muted); }
.legenda { margin:8px 2px 0; }
.legenda-fim { margin-top:32px; padding-top:14px; border-top:1px solid var(--line); }
.legenda-fim p { margin:0 0 4px; }

@media (max-width:960px) { .grade-5 { grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (max-width:768px) {
  .grade-5 { grid-template-columns:1fr; }
  .semaforo { grid-template-columns:1fr; }
  .cab h1 { font-size:28px; }
  .filtros { width:100%; } .filtros > div { flex:1; } .filtros input, .filtros select { width:100%; }
  .tabela-rolagem table { display:table; white-space:nowrap; }
  .tabela-rolagem { overflow-x:auto; }
}
.painel:not(.leve) th, .painel:not(.leve) td { padding:9px 10px; }
.painel:not(.leve) { font-size:13px; }
.painel td.cli-cel { white-space:normal; min-width:150px; max-width:230px; }
.grafico-carteira { max-width:820px; }

/* Ficha do cliente */
.voltar { margin:0 0 10px; font-size:13px; }
.ficha-cab { display:flex; justify-content:space-between; align-items:center; gap:20px 32px; flex-wrap:wrap; padding:22px 26px; background:linear-gradient(135deg, var(--surface) 0%, var(--accent-bg) 220%); border-radius:16px; }
.ficha-id { min-width:0; flex:1 1 380px; }
.ficha-cab h1 { font-size:36px; margin:6px 0 4px; overflow-wrap:anywhere; }
.ficha-sub { margin:0 0 12px; font-size:15px; }
.chip-acc { color:var(--accent); border-color:var(--accent-2); background:var(--accent-bg); }
.ficha-nota { display:flex; align-items:center; gap:18px; }
.ficha-nota-txt { display:flex; flex-direction:column; gap:8px; align-items:flex-start; max-width:190px; }
.vazio-suave { padding:22px 20px; text-align:center; } .vazio-suave p { margin:0; }
.ficha-graficos { display:grid; grid-template-columns:minmax(0, 1fr) 270px; gap:14px; align-items:start; }
.ficha-graficos-col { min-width:0; }
.grafico-titulo { font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600; margin:0 0 6px 2px; }
.acumulado dl { margin:14px 0 0; display:grid; gap:12px; }
.acumulado dl div { border-top:1px solid var(--line); padding-top:10px; }
.acumulado dt { font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.acumulado dd { margin:2px 0 0; font-family:var(--fonte-titulo); font-weight:700; font-size:22px; color:var(--title); }
.acumulado dd.acc { color:var(--accent); }
.pilares { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.ficha-duas { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:0 24px; align-items:start; }
.lista-ficha { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.lista-ficha li { padding:12px 16px; }
.item-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:6px; font-size:12px; }
.desde { color:var(--muted); font-weight:600; }
.idade { color:var(--muted); background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:1px 9px; }
.pilula-data { background:var(--surface-2); border:1px solid var(--line); color:var(--text); font-weight:600; border-radius:20px; padding:2px 10px; font-variant-numeric:tabular-nums; }
.confirmacao { margin-left:auto; font-size:11.5px; }
.saldos-ficha { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px; }
.saldo-mini { display:flex; flex-direction:column; gap:4px; padding:14px 16px; }
.saldo-topo { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.saldo-mini .kpi-valor { font-size:24px; }
.saldo-form { display:flex; gap:6px; margin-top:8px; }
.saldo-form input { min-width:0; padding:6px 10px; }
.saldo-form button { padding:6px 12px; white-space:nowrap; font-size:13px; }
td.acoes { white-space:nowrap; }
td.acoes form { display:inline; margin-left:12px; }

@media (max-width:1100px) { .ficha-graficos { grid-template-columns:1fr; } .pilares { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:900px) { .ficha-duas { grid-template-columns:1fr; } }
@media (max-width:768px) {
  .ficha-cab h1 { font-size:30px; } .ficha-cab { padding:18px; }
  .pilares { grid-template-columns:1fr; }
  .confirmacao { margin-left:0; flex-basis:100%; }
}
.texto-longo summary { cursor:pointer; list-style:none; }
.texto-longo summary::-webkit-details-marker { display:none; }
.texto-longo .ver-mais { color:var(--accent); font-weight:600; white-space:nowrap; }
.texto-longo[open] summary { display:none; }

/* Grupo de mês (otimizações agrupadas por período) */
.grupo-mes { margin-bottom:10px; }
.grupo-mes summary { cursor:pointer; list-style:none; font-weight:600; color:var(--title); padding:8px 4px; }
.grupo-mes summary::-webkit-details-marker { display:none; }
.grupo-mes summary::before { content:'▸ '; color:var(--accent); }
.grupo-mes[open] summary::before { content:'▾ '; }
.grupo-mes .lista-ficha { margin-top:6px; }
.meses-anteriores > .grupo-mes { margin-left:14px; }

/* Login e 2FA */
body.visitante { background:radial-gradient(ellipse at 50% -10%, var(--accent-bg) 0%, var(--bg) 60%); }
.entrada { max-width:440px; min-height:100vh; padding:48px 20px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.entrada-logo { height:52px; width:auto; margin-bottom:14px; }
.entrada-eyebrow { margin-bottom:22px; }
.entrada-cartao { width:100%; padding:26px 28px 24px; border-radius:16px; }
.entrada-cartao h1 { font-size:26px; margin:0 0 4px; }
.entrada-cartao .avisos { margin:0 0 14px; }
.entrada-acao { margin:20px 0 0; } .entrada-acao button { width:100%; padding:11px 18px; }
.codigo { display:block; background:var(--bg); border:1px solid var(--line); border-radius:8px; padding:8px 10px; font-size:13px; color:var(--accent); }
.texto-linhas { white-space:pre-line; overflow-wrap:anywhere; }
.ficha-uma { grid-template-columns:minmax(0, 1fr); }

/* Administração */
.acoes { display:inline-flex; align-items:center; justify-content:flex-end; gap:14px; flex-wrap:wrap; }
.acoes form { margin:0; }
.confirma { position:relative; display:inline-block; text-align:left; }
.confirma summary { color:var(--bad); font-weight:600; cursor:pointer; list-style:none; }
.confirma summary::-webkit-details-marker { display:none; }
.confirma[open] > form { position:absolute; right:0; top:26px; z-index:5; width:260px; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; padding:12px 14px; box-shadow:0 8px 24px rgba(0,0,0,.4); white-space:normal; }
.aviso-senha { border:1px solid #4F4318; background:var(--warn-bg); color:var(--warn); border-radius:12px; padding:14px 18px; }
.aviso-senha code, .senha-gerada { display:block; font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:18px; letter-spacing:.04em; color:var(--title); background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:10px 14px; margin:10px 0; user-select:all; overflow-wrap:anywhere; }
.form-inline-filtros { display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; margin-bottom:16px; }
.form-inline-filtros > div { flex:0 1 auto; }
.form-inline-filtros label { margin:0 0 4px; }
.form-inline-filtros input, .form-inline-filtros select { width:auto; min-width:150px; padding:7px 10px; }
.cab + .cartao.esq { text-align:left; padding:16px 18px; }
.painel td.quebra { white-space:normal; }
/* Bloco de teste de conexão da conta (checklist de acesso + selo + botão testar), no cadastro, na edição e na ficha. */
.teste-conexao { margin-top:10px; }

/* Fase 6: filtro de período */
.filtro-periodo { display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
.filtro-periodo label { margin:0 0 4px; }
.filtro-periodo select, .filtro-periodo input[type=date] { width:auto; min-width:160px; padding:7px 10px; }
.filtro-periodo-check { text-transform:none; letter-spacing:0; font-size:13px; display:flex; align-items:center; gap:6px; }
.filtro-periodo-rotulo { font-size:12px; align-self:center; }
@media (max-width:720px) { .filtro-periodo > div { flex:1 1 100%; } .filtro-periodo select, .filtro-periodo input[type=date] { width:100%; } }

/* Fase 6: tela de campanhas */
.filtros-campanhas { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:12px; align-items:end; }
.filtros-campanhas select[multiple] { min-height:88px; }
.filtros-campanhas .acoes-filtro { grid-column:1 / -1; display:flex; gap:12px; align-items:center; }
.arvore td, .arvore th { padding:8px 12px; }
.arvore tr.nivel-grupo td { background:var(--surface-2); }
.arvore tr.nivel-anuncio td { background:var(--bg); }
.recuo-1 { display:inline-block; width:18px; }
.recuo-2 { display:inline-block; width:36px; }
.arvore .abrir { width:22px; text-align:center; }
.arvore td.num small { display:block; color:var(--muted); font-size:11px; }
.arvore th a { color:inherit; }
.detalhe-grade { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:12px; padding:6px 0; }
.detalhe dl { margin:0; display:grid; grid-template-columns:auto 1fr; gap:4px 12px; font-size:13px; }
.detalhe dt { color:var(--muted); }
.detalhe dd { margin:0; }
.miniatura { max-width:160px; border-radius:8px; border:1px solid var(--line); display:block; margin-top:6px; }
.colunas summary { cursor:pointer; color:var(--accent); font-weight:600; }
.colunas .lista { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:4px 12px; margin-top:8px; }
.colunas label { text-transform:none; letter-spacing:0; font-size:13px; margin:0; display:flex; gap:6px; align-items:center; }

/* Fase 10: relatórios (revisão em duas colunas) */
.rel-colunas { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:16px; align-items:start; }
.rel-esq, .rel-dir { display:grid; gap:16px; min-width:0; }
.rel-previa { width:100%; height:720px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.rel-lista { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
@media (max-width:960px) { .rel-colunas { grid-template-columns:1fr; } }
.dados-contas { margin:0 0 12px; padding:6px 12px; }
.dados-contas table { margin:0; }
.dados-contas td, .dados-contas th { padding:6px 8px; vertical-align:top; }
.dados-contas td.acoes { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
/* Lista de relatórios por mês e semana */
.rel-mes { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:0 0 14px; }
.rel-mes strong { font-size:18px; color:var(--title); }
.rel-bloco { margin:0 0 16px; }
.rel-bloco-cab { display:flex; align-items:center; gap:8px 14px; flex-wrap:wrap; }
.rel-bloco-cab h2 { flex:1; margin:4px 0 10px; }
.rel-bloco h3 { margin:14px 0 6px; }
