/* Componentes compartilhados — Painel Empresa + Admin CIV9 */

/* ── Layout painel ── */
main { max-width: 1180px; margin: 0 auto; padding: 0 var(--space-4) var(--space-16); }
main.main-estreita { max-width: 640px; }
main.main-larga { max-width: 1120px; }

.layout-painel { display: flex; min-height: 100vh; align-items: stretch; }

.sidebar-civ {
  --bg: #0A1B2E; --surface: #16314D; --text: #D6E8FF; --text-3: #90A2B9;
  --accent: #6AA1F7; --on-accent: #06182B;
  --accent-soft: rgba(106, 161, 247, .32); --line: rgba(106, 161, 247, .18);

  width: 260px; flex-shrink: 0;
  background: var(--bg); color: var(--text);
  display: flex; flex-direction: column;
  padding: var(--space-6) var(--space-4);
  font-family: var(--f-ui);
}

.sidebar-civ .marca { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-8); }
.sidebar-civ .marca svg { width: 32px; height: 32px; color: var(--accent); flex-shrink: 0; }
.sidebar-civ .marca .icone-civ { width: 32px; height: 32px; }
.sidebar-civ .marca-texto { line-height: var(--lh-snug); }
.sidebar-civ .marca-nome { font-weight: var(--fw-bold); font-size: var(--fs-body); }
.sidebar-civ .marca-nome .tag-segmento { font-weight: var(--fw-medium); font-size: var(--fs-sm); color: var(--text-3); margin-left: var(--space-2); }
.sidebar-civ .marca-sub { font-size: var(--fs-sm); color: var(--text-3); }

.sidebar-civ nav { display: flex; flex-direction: column; gap: var(--space-1); flex: 1; }
.sidebar-civ nav a, .sidebar-civ nav span.desabilitado {
  display: flex; align-items: center; gap: var(--space-3);
  padding: var(--space-3);
  border-radius: var(--r-md);
  text-decoration: none; color: var(--text);
  font-size: var(--fs-base);
}
.sidebar-civ nav a svg, .sidebar-civ nav span.desabilitado svg { width: 20px; height: 20px; flex-shrink: 0; }
.sidebar-civ nav a .icone-civ, .sidebar-civ nav span.desabilitado .icone-civ { width: 20px; height: 20px; flex-shrink: 0; }
.sidebar-civ nav a:hover { background: var(--accent-soft); }
.sidebar-civ nav a.ativo { background: var(--accent); color: var(--on-accent); font-weight: var(--fw-semibold); }
.sidebar-civ nav span.desabilitado { color: var(--text-3); cursor: default; }
.sidebar-civ nav span.desabilitado .tag-em-breve {
  margin-left: auto; font-size: var(--fs-2xs); font-family: var(--f-mono);
  border: 1px solid var(--line); border-radius: var(--r-full);
  padding: 2px 8px;
}
.sidebar-civ nav .divisor { border: none; border-top: 1px solid var(--line); margin: var(--space-3) 0; }

.usuario-logado {
  margin-top: auto;
  padding: var(--space-3);
  border-top: 1px solid var(--line);
  background: var(--surface-2);
  border-radius: var(--r-md);
}
.usuario-logado-nome {
  font-family: var(--f-ui);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text);
  line-height: 1.3;
}
.usuario-logado-credencial {
  font-family: var(--f-mono);
  font-size: var(--fs-2xs);
  color: var(--text-2);
  margin-top: 2px;
  word-break: break-all;
}
.usuario-logado-meta {
  font-size: var(--fs-2xs);
  color: var(--text-3);
  margin-top: var(--space-1);
}

.sidebar-civ .sidebar-rodape {
  display: flex; flex-direction: column; gap: var(--space-2);
  margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--line);
}
.sidebar-civ .versao-app {
  font-family: var(--f-mono); font-size: var(--fs-2xs); color: var(--text-3);
  padding: 0 var(--space-3) var(--space-1); letter-spacing: 0.04em;
}
.sidebar-civ .sidebar-rodape button {
  display: flex; align-items: center; gap: var(--space-3);
  background: none; border: none; color: var(--text-3);
  font-family: var(--f-ui); font-size: var(--fs-base); cursor: pointer;
  padding: var(--space-2) var(--space-3); border-radius: var(--r-md); text-align: left;
}
.sidebar-civ .sidebar-rodape button svg { width: 20px; height: 20px; flex-shrink: 0; }
.sidebar-civ .sidebar-rodape button:hover { background: var(--accent-soft); color: var(--text); }

.area-principal { flex: 1; min-width: 0; overflow-y: auto; }
.area-principal main { padding-top: var(--space-8); }

.topbar-mobile { display: none; }
.overlay-sidebar { display: none; }
@media (max-width: 840px) {
  .layout-painel { display: block; }
  .sidebar-civ {
    position: fixed; inset: 0 auto 0 0; z-index: 30;
    transform: translateX(-100%); transition: transform .2s ease;
    box-shadow: var(--shadow);
  }
  .sidebar-civ.aberta { transform: translateX(0); }
  .overlay-sidebar {
    position: fixed; inset: 0; background: rgba(10, 27, 46, .45); z-index: 20;
  }
  .overlay-sidebar.ativo { display: block; }
  .topbar-mobile {
    display: flex; align-items: center; justify-content: space-between; gap: var(--space-3);
    background: #0A1B2E; color: #D6E8FF; border-bottom: 1px solid rgba(106, 161, 247, .18);
    padding: var(--space-3) var(--space-4); position: sticky; top: 0; z-index: 10;
    font-family: var(--f-ui);
  }
  .topbar-mobile .marca { display: flex; align-items: center; gap: var(--space-2); }
  .topbar-mobile .marca svg { width: 26px; height: 26px; color: #6AA1F7; flex-shrink: 0; }
  .topbar-mobile .marca .icone-civ { width: 26px; height: 26px; }
  .topbar-mobile .marca-nome { font-weight: var(--fw-bold); font-size: var(--fs-base); }
  .menu-btn-mobile {
    background: transparent; border: 1px solid rgba(106, 161, 247, .32); border-radius: var(--r-sm);
    width: 38px; height: 38px; padding: 0; display: flex; align-items: center; justify-content: center;
    color: #D6E8FF; cursor: pointer;
  }
  .menu-btn-mobile:hover { background: rgba(106, 161, 247, .18); }
  .area-principal { overflow-y: visible; }
}

/* ── Cabeçalhos de página ── */
h1.pagina-principal {
  font-size: var(--fs-3xl);
  letter-spacing: var(--ls-tight);
  margin-bottom: var(--space-2);
}

.cabecalho-pagina { margin-bottom: var(--space-6); }
.cabecalho-pagina .subtitulo { margin: 0; max-width: 52ch; font-size: var(--fs-base); }

.linha-sintese {
  font-size: var(--fs-base);
  color: var(--text-2);
  margin-bottom: var(--space-6);
  padding: var(--space-3) var(--space-4);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
}
.linha-sintese strong { color: var(--text); }

/* ── KPI cards ── */
.grade-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-3);
  margin-bottom: var(--space-8);
}
.stat-card,
.resumo-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: var(--space-4);
}
.stat-card .total,
.resumo-card .total {
  font-family: var(--f-serif);
  font-size: var(--fs-4xl);
  margin: var(--space-2) 0;
  line-height: var(--lh-tight);
}
.stat-card .nota,
.resumo-card .nota { font-size: var(--fs-md); color: var(--text-3); margin: 0; }
.resumo-card .total .de { font-size: var(--fs-lg); color: var(--text-3); }
.resumo-card.disponivel .total { font-size: var(--fs-5xl); }

/* ── Healthcheck ── */
.secao-health { margin-bottom: var(--space-8); }
.secao-health > h2 {
  font-family: var(--f-mono); font-size: var(--fs-xs); letter-spacing: var(--ls-label);
  text-transform: uppercase; color: var(--text-3); margin-bottom: var(--space-3);
}
.grade-health {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-3);
}
.health-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: var(--space-4);
}
.health-card .nome { font-weight: var(--fw-semibold); font-size: var(--fs-base); margin-bottom: var(--space-2); }
.health-card .status {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: var(--fs-2xs);
  letter-spacing: var(--ls-badge);
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: var(--r-full);
  margin-bottom: var(--space-2);
}
.health-card .status.ok {
  background: color-mix(in srgb, var(--success) 12%, transparent);
  color: var(--success);
}
.health-card .status.alerta {
  background: color-mix(in srgb, var(--mtx-mte) 12%, transparent);
  color: var(--mtx-mte);
}
.health-card .detalhe { font-size: var(--fs-md); color: var(--text-3); margin: 0; }

/* ── Barras de progresso ── */
.barra-mes-legenda,
.barra-ativacao-legenda {
  display: flex;
  justify-content: space-between;
  font-size: var(--fs-md);
  color: var(--text-3);
  margin-bottom: var(--space-1);
}
.barra-mes {
  height: 10px;
  border-radius: var(--r-full);
  background: var(--line);
  overflow: hidden;
  margin-bottom: var(--space-6);
}
.barra-mes .preenchido { height: 100%; background: var(--accent); }

/* ── Filtros pill ── */
.filtros-barra {
  display: flex;
  gap: var(--space-4);
  align-items: center;
  margin-bottom: var(--space-6);
  flex-wrap: wrap;
}
.filtros-pills { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.filtros-pills a,
.filtros-pills span {
  text-decoration: none;
  color: var(--text-2);
  font-size: var(--fs-md);
  padding: 6px 14px;
  border-radius: var(--r-full);
  border: 1px solid var(--line);
}
.filtros-pills a.ativo {
  background: var(--accent);
  color: var(--on-accent);
  border-color: var(--accent);
}

/* ── Badges ── */
.badge {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-badge);
  padding: 3px 10px;
  border-radius: var(--r-full);
  white-space: nowrap;
}
.badge-success { background: color-mix(in srgb, var(--success) 12%, transparent); color: var(--success); }
.badge-danger { background: color-mix(in srgb, var(--danger) 12%, transparent); color: var(--danger); }
.badge-trial { background: var(--gold-fill); color: var(--gold-ink, var(--gold)); }
.badge-lente-ceo { background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--accent); }
.badge-lente-gerente { background: var(--gold-fill); color: var(--gold-ink, var(--gold)); }
.badge-lente-tecnico { background: color-mix(in srgb, var(--mtx-mtc) 12%, transparent); color: var(--mtx-mtc); }
.badge-neutro { background: var(--surface-2); color: var(--text-2); border: 1px solid var(--line); }

/* ── Card explicativo ── */
.explicacao {
  background: var(--surface-2);
  border-radius: var(--r-lg);
  padding: var(--space-6);
  margin-bottom: var(--space-6);
}
.explicacao h2 { margin-top: 0; }
.explicacao-grade {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-4);
}
.explicacao-grade h3 { font-size: var(--fs-base); margin: 0 0 var(--space-1); }
.explicacao-grade p { font-size: var(--fs-md); color: var(--text-2); margin: 0; }

/* ── Estado vazio ── */
.estado-vazio {
  text-align: center;
  padding: var(--space-12) var(--space-4);
  color: var(--text-3);
}
.estado-vazio .icone {
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--accent-fill); color: var(--accent);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto var(--space-4);
}
.estado-vazio .icone svg { width: 24px; height: 24px; }
.estado-vazio h3 { color: var(--text); font-size: var(--fs-xl); margin: 0 0 var(--space-2); }
.estado-vazio p { margin: 0 auto; max-width: 36ch; font-size: var(--fs-base); }

/* ── Formulários ── */
textarea {
  width: 100%;
  font-family: var(--f-ui);
  font-size: var(--fs-body);
  color: var(--text);
  background: var(--input);
  border: 1px solid var(--line-2);
  border-radius: var(--r-sm);
  padding: 10px 13px;
  line-height: var(--lh-normal);
  resize: vertical;
  min-height: 96px;
}
textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: var(--focus);
}

.auth-cabecalho { text-align: center; margin-bottom: var(--space-6); }
.auth-cabecalho .eyebrow { margin-bottom: var(--space-3); }
.auth-cabecalho p { margin: var(--space-2) auto 0; max-width: 32ch; }
.auth-links { margin-top: var(--space-6); text-align: center; font-size: var(--fs-base); }
.auth-links p { margin: var(--space-2) 0; }

.form-inline-tabela {
  display: flex;
  gap: var(--space-2);
  margin: 0;
  align-items: center;
  flex-wrap: wrap;
}
.form-inline-tabela input { width: auto; margin: 0; flex: 1; min-width: 140px; }
.form-inline-tabela button { margin: 0; padding: 0.4rem 0.9rem; font-size: var(--fs-md); }

/* ── Listas admin (empresas, segmentos) ── */
.contagem-empresas { font-size: var(--fs-sm); color: var(--text-3); margin: 0 0 var(--space-3); }
.item-empresa-sub { font-size: var(--fs-sm); color: var(--text-3); margin-top: var(--space-1); }
.sem-resultado { color: var(--text-3); font-size: var(--fs-base); }

/* ── Upload ── */
.zona-upload {
  border: 2px dashed var(--line-2);
  border-radius: var(--r-lg);
  padding: var(--space-8) var(--space-4);
  text-align: center;
  background: var(--surface);
  margin-bottom: var(--space-6);
  transition: border-color .15s, background .15s;
}
.zona-upload.drag-ativo { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 6%, var(--surface)); }
.zona-upload form { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); }
.zona-upload .icone-upload { width: 40px; height: 40px; margin: 0 auto var(--space-2); color: var(--text-3); }
.zona-upload p { margin: 0; font-size: var(--fs-base); }
.zona-upload .nota-upload { font-size: var(--fs-sm); color: var(--text-3); margin-top: var(--space-2); max-width: 520px; }
.zona-upload code { font-family: var(--f-mono); font-size: var(--fs-xs); }

/* ── POPs ── */
.pop { margin-top: var(--space-4); }
.pop h3 { font-size: var(--fs-lg); font-weight: var(--fw-bold); margin: var(--space-2) 0 var(--space-3); color: var(--text); }
.pop .conteudo { white-space: pre-wrap; color: var(--text-2); font-size: var(--fs-base); margin-bottom: var(--space-4); }
.pop form { margin: 0; }
.pop .cabecalho-pop { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }

/* ── Memória ── */
.termo { text-align: center; padding: var(--space-8) var(--space-4); }
.termo .numero {
  font-family: var(--f-serif); font-weight: var(--fw-medium); font-size: var(--fs-display); line-height: 1;
  margin: var(--space-3) 0;
}
.termo .numero.alto { color: var(--success); }
.termo .numero.medio { color: var(--gold); }
.termo .numero.baixo { color: var(--danger); }
.termo .quebra { color: var(--text-2); font-size: var(--fs-body); }
.termo .quebra strong { color: var(--text); }

.cartao-ativacao {
  display: flex; align-items: center; gap: var(--space-4);
  background: var(--gold-fill); border: 1px solid var(--line);
  border-left: 3px solid var(--gold); border-radius: var(--r-md);
  padding: var(--space-4) var(--space-6); margin-bottom: var(--space-6);
}
.cartao-ativacao .numero-grande {
  font-family: var(--f-serif); font-size: var(--fs-5xl); color: var(--gold-ink, var(--gold));
  line-height: 1; flex-shrink: 0;
}
.cartao-ativacao p { margin: var(--space-1) 0 0; font-size: var(--fs-md); color: var(--text-2); }
.barra-ativacao {
  height: 8px; border-radius: var(--r-full); background: var(--line); overflow: hidden;
}
.barra-ativacao .preenchido { height: 100%; background: var(--gold); }

/* ── Equipe ── */
.grade-lentes {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-4); margin-bottom: var(--space-6);
}
.lente-card { background: var(--surface-2); border-radius: var(--r-lg); padding: var(--space-4); border: 1px solid var(--line); }
.lente-card h3 { font-size: var(--fs-base); margin: 0 0 var(--space-1); }
.lente-card p { font-size: var(--fs-md); color: var(--text-2); margin: 0; }
.tabela-equipe { overflow-x: auto; }
.tabela-equipe .mono { font-family: var(--f-mono); font-size: var(--fs-sm); color: var(--text-3); }
.tabela-equipe .acoes-telegram { white-space: nowrap; }
.tabela-equipe .acoes-telegram form { display: inline; margin-left: var(--space-2); }
.tabela-equipe .botao-compacto {
  font-size: var(--fs-sm); padding: var(--space-1) var(--space-2); margin-top: 0;
}
.codigo-telegram-valor {
  font-family: var(--f-mono); font-size: var(--fs-lg); letter-spacing: 0.08em;
  margin: var(--space-3) 0;
}

/* ── Canônico ── */
.tabela-planos { width: 100%; border-collapse: collapse; margin-top: var(--space-2); font-size: var(--fs-base); }
.tabela-planos th {
  text-align: left; font-family: var(--f-mono); font-size: var(--fs-2xs); letter-spacing: var(--ls-badge);
  text-transform: uppercase; color: var(--text-3); padding: var(--space-2);
  border-bottom: 1px solid var(--line);
}
.tabela-planos td { padding: var(--space-2); vertical-align: middle; }
.tabela-planos input { margin: 0; }
.tabela-planos-wrap .btn-add-plano { margin-top: var(--space-3); }
.campo-cidade-select, .cidades-multiplas .linha-cidade, .campo-cidade {
  display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap;
  margin-top: var(--space-2);
}
.campo-cidade-select .select-uf { flex: 0 0 140px; }
.campo-cidade-select .select-cidade, .linha-cidade .select-cidade { flex: 1; min-width: 180px; }
.cidades-multiplas .btn-add-cidade { margin-top: var(--space-3); }

/* ── Planos e créditos ── */
.plano-card .preco { font-family: var(--f-serif); font-size: var(--fs-3xl); margin: var(--space-2) 0; }
.plano-card .preco-sufixo { font-size: var(--fs-md); font-family: var(--f-ui); }
.plano-card .cota { color: var(--text-3); font-size: var(--fs-md); margin-bottom: var(--space-4); }
.pacote-card .preco-unitario { font-size: var(--fs-sm); color: var(--text-3); margin: var(--space-1) 0 var(--space-3); }
.linha-consumo { margin-bottom: var(--space-2); font-size: var(--fs-base); }

.item-complexidade {
  font-family: var(--f-mono); font-weight: var(--fw-semibold); font-size: var(--fs-base);
}
.item-complexidade .texto strong { display: block; font-size: var(--fs-base); font-family: var(--f-ui); font-weight: var(--fw-semibold); }
.item-complexidade .texto span { font-size: var(--fs-md); color: var(--text-3); font-family: var(--f-ui); font-weight: var(--fw-normal); }
.item-complexidade .creditos { flex-shrink: 0; font-family: var(--f-mono); color: var(--text-3); font-size: var(--fs-md); white-space: nowrap; }

/* ── Admin POPs ── */
.chips-resumo { display: flex; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--space-6); }
.grupo-pop {
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  margin-bottom: var(--space-4);
  background: var(--surface);
  overflow: hidden;
}
.grupo-pop > summary {
  cursor: pointer;
  padding: var(--space-4) var(--space-6);
  font-weight: var(--fw-bold);
  font-size: var(--fs-body);
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.grupo-pop > summary::-webkit-details-marker { display: none; }
.grupo-pop > summary::after { content: "▾"; color: var(--text-3); font-size: var(--fs-sm); }
.grupo-pop[open] > summary::after { content: "▴"; }
.grupo-pop > summary:hover { background: var(--surface-2); }
.grupo-area {
  border-top: 1px solid var(--line);
  margin: 0 var(--space-4) var(--space-4);
  border-radius: var(--r-md);
  background: var(--surface-2);
}
.grupo-area > summary {
  cursor: pointer;
  padding: var(--space-3) var(--space-4);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-md);
  list-style: none;
}
.grupo-area > summary::-webkit-details-marker { display: none; }
.grupo-area > summary::after { content: " ▾"; color: var(--text-3); font-size: var(--fs-xs); }
.grupo-area[open] > summary::after { content: " ▴"; }
.grupo-area .pop { margin: 0 var(--space-4) var(--space-4); }

/* ── Curadoria ── */
.candidato-curadoria { margin-bottom: var(--space-4); }
.candidato-curadoria .meta {
  font-family: var(--f-mono);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: var(--space-4);
}
.candidato-curadoria .rotulo-campo {
  font-family: var(--f-mono); font-size: var(--fs-2xs); letter-spacing: var(--ls-label);
  text-transform: uppercase; color: var(--text-3); margin-bottom: var(--space-1);
}
.candidato-curadoria .texto-campo {
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: var(--r-sm); padding: var(--space-3) var(--space-4);
  font-size: var(--fs-base); line-height: var(--lh-normal); color: var(--text); margin-bottom: var(--space-4);
  white-space: pre-wrap;
}
.candidato-curadoria .acoes-candidato {
  display: flex; gap: var(--space-3); flex-wrap: wrap; align-items: center;
}
.candidato-curadoria .form-revisao { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--line); }
.candidato-curadoria .form-revisao[hidden] { display: none; }

/* ── Admin empresa detalhe ── */
.cartao-topo strong,
.grade-stats strong { display: block; font-size: var(--fs-lg); font-weight: var(--fw-bold); margin-top: var(--space-1); }
.usuario-card .papel { font-size: var(--fs-sm); color: var(--text-3); margin: 2px 0 var(--space-2); }
.usuario-card .email { font-size: var(--fs-md); }
.usuario-card form button { margin: 0; padding: 0.3rem 0.7rem; font-size: var(--fs-sm); }

.item-template .assunto { color: var(--text-2); font-size: var(--fs-base); margin-top: 2px; }
.item-template .data { font-size: var(--fs-sm); color: var(--text-3); white-space: nowrap; }
.item-segmento .chave { font-family: var(--f-mono); font-size: var(--fs-sm); color: var(--text-3); margin-left: auto; }
.item-curadoria strong { font-size: var(--fs-body); }

.paginacao {
  display: flex; align-items: center; justify-content: center;
  gap: var(--space-6); margin-top: var(--space-8);
  color: var(--text-3); font-size: var(--fs-base);
}

.tabela-ranking .mono { font-family: var(--f-mono); font-weight: var(--fw-medium); text-align: right; }

/* ── Dados da empresa (canônico) ── */
.resumo-canonical {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-6);
  padding: var(--space-4);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
}
.resumo-canonical .barra-progresso { flex: 1; height: 8px; border-radius: var(--r-full); background: var(--line); overflow: hidden; }
.resumo-canonical .barra-progresso .preenchido { height: 100%; background: var(--accent); }
.resumo-canonical .texto-progresso { font-size: var(--fs-base); color: var(--text-2); white-space: nowrap; }
.resumo-canonical .texto-progresso strong { color: var(--text); }

.categorias-canonical { margin-bottom: var(--space-6); }
.categorias-canonical .rotulo { margin-bottom: var(--space-3); }

.cartao-formulario { padding: var(--space-6); }
.cartao-formulario .campo-bloco {
  padding-bottom: var(--space-6);
  margin-bottom: var(--space-6);
  border-bottom: 1px solid var(--line);
}
.cartao-formulario .campo-bloco:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.cartao-formulario > button[type="submit"] { margin-top: var(--space-6); }

.prosa-atual {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: var(--space-4);
  margin-top: var(--space-3);
  white-space: pre-wrap;
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  color: var(--text);
}

/* ── Avisos ── */
.painel-avisos-grid {
  display: grid;
  grid-template-columns: minmax(280px, 380px) 1fr;
  gap: var(--space-6);
  align-items: start;
}
@media (max-width: 900px) {
  .painel-avisos-grid { grid-template-columns: 1fr; }
}

.form-aviso .campo-duplo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
}
@media (max-width: 540px) {
  .form-aviso .campo-duplo { grid-template-columns: 1fr; }
}

.tabela-em-cartao { overflow-x: auto; }
.tabela-em-cartao table { margin: 0; }

.badge-status-ativo { background: color-mix(in srgb, var(--success) 12%, transparent); color: var(--success); }
.badge-status-agendado { background: color-mix(in srgb, var(--mtx-mte) 12%, transparent); color: var(--mtx-mte); }
.badge-status-expirado { background: var(--surface-2); color: var(--text-3); border: 1px solid var(--line); }

/* ── Memória ── */
.cartao-ativacao .conteudo-ativacao { flex: 1; min-width: 0; }
.secao-cartao { margin-top: var(--space-8); }
.secao-cartao > h2 { margin-bottom: var(--space-2); }
.secao-cartao > p.texto-secundario { margin-bottom: var(--space-4); }
.cartao-notas textarea { min-height: 120px; }
.cartao-termometro { padding: 0; overflow: hidden; }

.linha-sintese-memoria {
  font-size: var(--fs-base);
  color: var(--text-2);
  margin-bottom: var(--space-6);
  padding: var(--space-3) var(--space-4);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
}
.linha-sintese-memoria strong { color: var(--text); }

/* ── Admin — layout com sidebar (mesma estrutura do painel empresa) ── */
.layout-admin .area-principal main { max-width: 960px; }
.layout-admin .area-principal main.main-larga { max-width: 1280px; }
.layout-admin .area-principal main.main-estreita { max-width: 480px; margin-left: auto; margin-right: auto; }

.admin-empresas-layout { display: flex; gap: var(--space-6); align-items: flex-start; }
.admin-empresas-layout .lista-empresas { width: 280px; flex-shrink: 0; }
.admin-empresas-layout .busca-empresa { display: flex; gap: var(--space-2); margin-bottom: var(--space-3); }
.admin-empresas-layout .busca-empresa input { flex: 1; }
.admin-empresas-layout .busca-empresa button { flex-shrink: 0; padding: 0 var(--space-3); }
.admin-empresas-detalhe-vazia {
  flex: 1; display: flex; align-items: center; justify-content: center;
  min-height: 320px; color: var(--text-3); border: 1px dashed var(--line); border-radius: var(--r-lg);
  background: var(--surface);
}
.admin-empresa-detalhe { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--space-6); }
.admin-cartao-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-4); flex-wrap: wrap; }
.admin-cartao-topo h2 { margin: var(--space-1) 0 var(--space-4); }
.admin-cartao-topo-acao { text-align: right; }
.admin-cartao-topo-acao form { margin-top: var(--space-2); }
.admin-cartao-topo .grade-stats {
  flex-basis: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--space-4); margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--line);
}

.item-template {
  display: flex; justify-content: space-between; align-items: center;
  text-decoration: none; color: var(--text); background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--space-4) var(--space-6); margin-bottom: var(--space-3);
}
.item-template:hover { background: var(--surface-2); }

.item-curadoria {
  display: flex; justify-content: space-between; align-items: center;
  text-decoration: none; color: var(--text); background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--space-4) var(--space-6); margin-bottom: var(--space-3);
}
.item-curadoria:hover { background: var(--surface-2); }
.item-curadoria .chip { font-family: var(--f-mono); }
.item-curadoria .badge { margin-left: var(--space-2); }

.lista-segmentos { display: flex; flex-direction: column; gap: var(--space-2); margin-bottom: var(--space-8); }
.item-segmento {
  display: flex; align-items: center; gap: var(--space-3);
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: var(--space-3) var(--space-4);
}
input[type="color"] { width: 60px; padding: 2px; height: 40px; }

.badge-usado { background: var(--surface-2); color: var(--text-3); }
.badge-expirado { background: color-mix(in srgb, var(--danger) 12%, transparent); color: var(--danger); }

.painel-admin-grid {
  display: grid;
  grid-template-columns: minmax(280px, 380px) 1fr;
  gap: var(--space-6);
  align-items: start;
}
@media (max-width: 900px) {
  .painel-admin-grid { grid-template-columns: 1fr; }
}
