/* QuemTáLá Admin — tema escuro com acentos roxo, rosa, ciano e amarelo. */
:root {
  --fundo: #160a30;
  --fundo-2: #1c0e3d;
  --painel: #1f1043;
  --painel-2: #26154f;
  --borda: #3a2774;
  --borda-forte: #4d3596;

  --texto: #ffffff;
  --texto-2: #d6ccf5;
  --texto-3: #a597d4;

  --roxo: #7b2ff7;
  --roxo-claro: #a36bff;
  --roxo-escuro: #5a16cf;
  --rosa: #f0288f;
  --rosa-escuro: #c4126f;
  --ciano: #22e1ef;
  --ciano-escuro: #10b6c6;
  --amarelo: #ffcf1f;
  --amarelo-escuro: #f2b705;
  --verde: #2fe0a2;

  --raio: 14px;
  --raio-p: 10px;
  --sombra: 0 10px 30px rgba(8, 2, 28, 0.45);
  --fonte: "Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { color-scheme: dark; }
body {
  margin: 0;
  font-family: var(--fonte);
  font-size: 16px;
  line-height: 1.45;
  color: var(--texto);
  background: var(--fundo);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
h1, h2, h3 { margin: 0; line-height: 1.15; }
button, input, select { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--ciano); outline-offset: 2px; }

.ico { width: 22px; height: 22px; flex: none; }

/* ---------- Estrutura ---------- */
/* Menu lateral recolhido (só ícones); expande sobre o conteúdo quando o mouse se aproxima ou recebe foco. */
.painel-admin {
  --lateral-fechada: 88px;
  --lateral-aberta: 296px;
  --lateral-proximidade: 24px; /* faixa invisível à direita que já dispara a expansão */
  display: grid; grid-template-columns: var(--lateral-fechada) minmax(0, 1fr); min-height: 100vh;
}

.lateral {
  position: fixed; top: 0; left: 0; z-index: 40; height: 100vh;
  width: calc(var(--lateral-fechada) + var(--lateral-proximidade));
  display: flex; flex-direction: column;
  padding: 30px 16px 24px;
  overflow: hidden; white-space: nowrap;
  border-right: var(--lateral-proximidade) solid transparent;
  background: linear-gradient(180deg, #4a10b8 0%, #3a0c92 55%, #2c0a72 100%) padding-box;
  transition: width 0.22s ease 0.15s, filter 0.22s ease 0.15s;
}
.lateral:hover, .lateral:focus-within {
  width: calc(var(--lateral-aberta) + var(--lateral-proximidade));
  filter: drop-shadow(10px 0 28px rgba(8, 2, 28, 0.6));
  transition-delay: 0.05s;
}
.lateral :is(.marca-nome, .marca-selo, .menu span, .lateral-rodape span:not(.avatar)) {
  opacity: 0; transition: opacity 0.12s ease;
}
.lateral:is(:hover, :focus-within) :is(.marca-nome, .marca-selo, .menu span, .lateral-rodape span:not(.avatar)) {
  opacity: 1; transition-delay: 0.12s;
}
.marca { display: flex; align-items: center; gap: 10px; padding: 0 9px 32px; text-decoration: none; }
.marca-logo { width: 38px; height: 38px; color: var(--amarelo); }
.marca-nome { font-size: 24px; font-weight: 700; letter-spacing: -0.01em; }
.marca-selo {
  margin-left: 6px; padding: 3px 10px; border-radius: 6px;
  font-size: 12px; font-weight: 600; letter-spacing: 0.04em;
  background: var(--roxo); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
}

.menu { display: flex; flex-direction: column; gap: 10px; }
.menu a, .menu-item, .menu-item-estatico {
  position: relative;
  display: flex; align-items: center; gap: 16px;
  padding: 14px 15px; border-radius: 12px;
  font-size: 18px; color: var(--texto-2); text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.menu .ico, .menu-item .ico { width: 26px; height: 26px; }
.menu a:hover, .menu-item:hover { background: rgba(255, 255, 255, 0.07); color: var(--texto); }
.menu a.ativo { background: var(--roxo); color: var(--texto); font-weight: 500; box-shadow: 0 8px 22px rgba(123, 47, 247, 0.45); }
.menu a.ativo::before {
  content: ""; position: absolute; left: -2px; top: 10px; bottom: 10px;
  width: 5px; border-radius: 4px; background: var(--amarelo);
}
.lateral-rodape {
  margin-top: auto; padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  display: flex; flex-direction: column; gap: 4px;
}
.menu-item-estatico { color: var(--texto); padding-left: 8px; }

.avatar {
  display: inline-grid; place-items: center; flex: none;
  width: 40px; height: 40px; border-radius: 50%;
  background: #d9c8ff; color: #2a0a6b; font-weight: 700; font-size: 17px;
}

.area { grid-column: 2; min-width: 0; display: flex; flex-direction: column; }
.topo {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 12px 34px; min-height: 64px;
  border-bottom: 2px solid transparent;
  border-image: linear-gradient(90deg, var(--roxo), var(--rosa)) 1;
  background: var(--fundo);
}
.trilha { display: flex; align-items: center; gap: 10px; font-size: 17px; color: var(--texto-2); }
.trilha strong { color: var(--texto); font-weight: 600; }
.trilha-sep { color: var(--texto-3); }

.conta { position: relative; }
.conta summary {
  display: flex; align-items: center; gap: 12px;
  list-style: none; cursor: pointer; font-size: 17px;
}
.conta summary::-webkit-details-marker { display: none; }
.conta summary .avatar { background: #5b3aa8; color: #fff; }
.conta summary .ico { width: 18px; height: 18px; }
.conta-menu {
  position: absolute; right: 0; top: calc(100% + 10px); z-index: 10;
  min-width: 200px; padding: 8px;
  background: var(--painel-2); border: 1px solid var(--borda-forte);
  border-radius: var(--raio-p); box-shadow: var(--sombra);
}
.conta-menu a {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: 8px; text-decoration: none; color: var(--texto-2);
}
.conta-menu a:hover { background: rgba(255, 255, 255, 0.07); color: var(--texto); }
.conta-menu .ico { width: 18px; height: 18px; }

.conteudo { padding: 30px 34px 48px; display: flex; flex-direction: column; gap: 24px; max-width: 1360px; width: 100%; }

/* ---------- Cabeçalho de página ---------- */
.cabecalho { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.cabecalho h1 { font-size: 46px; font-weight: 800; letter-spacing: -0.02em; }
.cabecalho p { margin: 8px 0 0; font-size: 21px; color: var(--texto-2); font-weight: 300; }
.cabecalho-com-foto { align-items: center; }
.foto-cabecalho { width: 96px; height: 96px; border-radius: 16px; object-fit: cover; flex-shrink: 0; }

/* ---------- Botões ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 12px 24px; border-radius: 10px; border: 2px solid transparent;
  font-size: 18px; font-weight: 600; text-decoration: none; cursor: pointer;
  transition: transform 0.12s, filter 0.15s, background 0.15s;
}
.botao:hover { filter: brightness(1.08); }
.botao:active { transform: translateY(1px); }
.botao-primario { background: var(--amarelo); color: #1a0b3b; box-shadow: 0 8px 22px rgba(255, 207, 31, 0.25); }
.botao-primario .ico { color: #1a0b3b; }
.botao-primario:disabled { background: #b3901a; color: #6b5310; box-shadow: none; cursor: not-allowed; filter: none; transform: none; }
.botao-contorno { background: rgba(255, 255, 255, 0.02); border-color: var(--roxo-claro); color: var(--texto); }
.botao-contorno:hover { background: rgba(163, 107, 255, 0.12); }
.botao-pequeno { padding: 9px 18px; font-size: 16px; }
.botao-largo { width: 100%; }
/* Variações sólidas (sem borda colorida): secundário, confirmação (verde) e destrutivo (vermelho). */
.botao-secundario { background: var(--roxo); color: #fff; }
.botao-ok { background: var(--verde); color: #06281d; }
.botao-ok .ico { color: #06281d; }
.botao-perigo { background: #e5262f; color: #fff; }

/* ---------- Cards de métrica ---------- */
.metricas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.metrica {
  display: flex; align-items: center; gap: 22px;
  padding: 22px 24px; border-radius: var(--raio);
  box-shadow: var(--sombra);
}
.metrica-icone {
  display: grid; place-items: center; flex: none;
  width: 68px; height: 68px; border-radius: 12px;
  background: rgba(0, 0, 0, 0.16);
}
.metrica-icone .ico { width: 32px; height: 32px; }
.metrica strong { display: block; font-size: 42px; font-weight: 800; line-height: 1; }
.metrica > div > span { display: block; margin-top: 6px; font-size: 20px; }
.metrica-roxo { background: linear-gradient(135deg, #8a3cff, #6a1cf0); }
.metrica-roxo .metrica-icone { background: #5a12d6; }
.metrica-rosa { background: linear-gradient(135deg, #ff3a9e, #e3157f); }
.metrica-rosa .metrica-icone { background: #c10f6c; }
.metrica-ciano { background: linear-gradient(135deg, #3cf0f7, #19d3e6); color: #091a3a; }
.metrica-ciano .metrica-icone { background: #14c3d6; }
.metrica-amarelo { background: linear-gradient(135deg, #ffdd3d, #ffc312); color: #1d0f3f; }
.metrica-amarelo .metrica-icone { background: #f5a50a; }
.metrica-verde { background: linear-gradient(135deg, #3de088, #12c26a); color: #042616; }
.metrica-verde .metrica-icone { background: #0fa85c; }

/* ---------- Painéis ---------- */
.grade-2-1 { display: grid; grid-template-columns: minmax(0, 1.85fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.painel {
  background: var(--painel);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  padding: 22px;
}
.painel-cabecalho { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.titulo-secao {
  position: relative; padding-left: 22px;
  font-size: 26px; font-weight: 700;
}
.titulo-secao::before {
  content: ""; position: absolute; left: 0; top: 2px; bottom: 2px;
  width: 6px; border-radius: 4px; background: var(--roxo-claro);
}
.titulo-secao.acento-rosa::before { background: var(--rosa); }
.titulo-secao.acento-ciano::before { background: var(--ciano); }
.titulo-secao.acento-amarelo::before { background: var(--amarelo); }
.titulo-secao small { display: block; margin-top: 4px; font-size: 18px; font-weight: 400; color: var(--texto-2); }
.titulo-secao.menor { font-size: 22px; }
.titulo-linha { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

.selo {
  display: inline-flex; align-items: center; padding: 3px 12px; border-radius: 8px;
  font-size: 14px; font-weight: 500; background: rgba(123, 47, 247, 0.35); color: var(--texto);
}
.selo-amarelo { background: var(--amarelo); color: #1d0f3f; }
.selo-claro { background: rgba(255, 255, 255, 0.22); }
.selo-ciano { background: var(--ciano); color: #0a1f24; }

.texto-suave { color: var(--texto-2); }
.rodape-painel { margin: 18px 0 0; font-size: 18px; color: var(--texto-2); }

/* ---------- Tabelas ---------- */
.tabela-caixa { border: 1px solid var(--borda); border-radius: 12px; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 14px 22px; }
thead th { font-weight: 500; font-size: 17px; background: rgba(255, 255, 255, 0.02); border-bottom: 1px solid var(--borda); }
tbody tr + tr td { border-top: 1px solid var(--borda); }
tbody td { font-size: 17px; }
.celula-situacao { display: flex; align-items: center; gap: 16px; }
.celula-vazia { text-align: center; color: var(--texto-3); padding: 28px; }

.ponto { width: 16px; height: 16px; border-radius: 50%; flex: none; background: var(--texto-3); }
.pilula {
  display: inline-flex; align-items: center; padding: 5px 20px; border-radius: 999px;
  font-size: 17px; white-space: nowrap; background: rgba(255, 255, 255, 0.1); color: var(--texto-2);
}
.ponto-concluida { background: var(--verde); }
.pilula-concluida { background: rgba(47, 224, 162, 0.2); color: var(--verde); }
.ponto-falhou { background: var(--rosa); }
.pilula-falhou { background: rgba(240, 40, 143, 0.28); color: #ff9fcf; }
.ponto-em_execucao { background: var(--ciano); }
.pilula-em_execucao { background: rgba(34, 225, 239, 0.18); color: var(--ciano); }
.ponto-pendente { background: var(--amarelo); }
.pilula-pendente { background: rgba(255, 207, 31, 0.18); color: var(--amarelo); }
.ponto-cancelada { background: var(--texto-3); }

.link-acao {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--roxo-claro); text-decoration: none; font-size: 17px; font-weight: 500; white-space: nowrap;
}
.link-acao:hover { text-decoration: underline; }
.link-acao .ico { width: 18px; height: 18px; }
.link-acao.ciano { color: var(--ciano); }

.progresso { display: flex; align-items: center; gap: 10px; min-width: 120px; }
.progresso-trilho { flex: 1; height: 8px; border-radius: 99px; background: rgba(255, 255, 255, 0.1); overflow: hidden; }
.progresso-barra { height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--roxo), var(--rosa)); }
.progresso span { font-size: 15px; color: var(--texto-2); min-width: 38px; text-align: right; }
.progresso-indeterminado .progresso-barra {
  width: 100% !important; background: linear-gradient(90deg, var(--roxo), var(--rosa), var(--roxo)); background-size: 200% 100%;
  animation: deslizar 1.6s linear infinite;
}
@keyframes deslizar { to { background-position: -200% 0; } }
.andamento-etapa { margin: 10px 0 0; font-size: 16px; color: var(--texto-2); }

/* ---------- Ações rápidas ---------- */
.acoes { display: flex; flex-direction: column; gap: 14px; }
.acao {
  display: flex; align-items: center; gap: 22px;
  padding: 12px 22px 12px 14px; border-radius: 12px;
  border: 2px solid var(--roxo); background: rgba(123, 47, 247, 0.08);
  text-decoration: none; transition: background 0.15s, transform 0.12s;
}
.acao:hover { background: rgba(123, 47, 247, 0.2); transform: translateX(2px); }
.acao-icone { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 10px; background: var(--roxo); flex: none; }
.acao-texto { flex: 1; min-width: 0; }
.acao strong { display: block; font-size: 19px; font-weight: 600; }
.acao small { display: block; font-size: 16px; color: var(--texto-2); }
.acao > .ico { width: 20px; height: 20px; }
.acao.rosa { border-color: var(--rosa); background: rgba(240, 40, 143, 0.07); }
.acao.rosa:hover { background: rgba(240, 40, 143, 0.18); }
.acao.rosa .acao-icone { background: var(--rosa); }
.acao.ciano { border-color: var(--ciano); background: rgba(34, 225, 239, 0.06); }
.acao.ciano:hover { background: rgba(34, 225, 239, 0.15); }
.acao.ciano .acao-icone { background: var(--ciano); color: #091a3a; }

/* ---------- Atividade ---------- */
.chip {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 7px 16px; border-radius: 10px;
  border: 1px solid var(--borda-forte); font-size: 16px; color: var(--texto);
}
.chip .ico { width: 20px; height: 20px; }
.grafico { position: relative; height: 300px; }
.vazio { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 18px 16px 24px; }
.vazio-icone { display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; background: rgba(123, 47, 247, 0.45); margin-bottom: 18px; }
.vazio-icone .ico { width: 30px; height: 30px; }
.vazio strong { font-size: 21px; font-weight: 600; }
.vazio p { margin: 4px 0 0; color: var(--texto-2); font-size: 17px; }

/* ---------- Avisos ---------- */
.aviso {
  display: flex; align-items: center; gap: 16px; margin: 0;
  padding: 18px 22px; border-radius: 12px; font-size: 17px;
  border: 2px solid var(--ciano); background: rgba(34, 225, 239, 0.08); color: var(--texto-2);
}
.aviso .ico { width: 26px; height: 26px; color: var(--ciano); }
.aviso-ok { border-color: var(--verde); background: rgba(47, 224, 162, 0.1); }
.aviso-ok .ico { color: var(--verde); }
.aviso-erro { border-color: var(--rosa); background: rgba(240, 40, 143, 0.1); color: #ffd1e8; }
.aviso-erro .ico { color: var(--rosa); }
.aviso-compacto { padding: 14px 18px; font-size: 16px; color: var(--ciano); }
.aviso-compacto.pronto { border-color: var(--verde); color: var(--verde); background: rgba(47, 224, 162, 0.08); }
.aviso-compacto.pronto .ico { color: var(--verde); }

/* ---------- Formulários ---------- */
.campo { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.campo > span, .rotulo { font-size: 18px; font-weight: 500; }
.ajuda { margin: 0; font-size: 16px; color: var(--texto-2); }
.entrada, .selecao {
  width: 100%; padding: 10px 16px;
  border: 1px solid var(--borda-forte); border-radius: 8px;
  background: var(--fundo-2); color: var(--texto); font-size: 17px;
}
.entrada::placeholder { color: var(--texto-3); }
.entrada:focus, .selecao:focus { outline: none; border-color: var(--roxo-claro); box-shadow: 0 0 0 3px rgba(163, 107, 255, 0.25); }
.selecao {
  appearance: none; cursor: pointer; padding-right: 48px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; background-size: 20px;
}
.selecao option { background: var(--painel-2); }
.selecao-grande { padding: 13px 20px; border: 2px solid var(--roxo); font-size: 18px; border-radius: 10px; }
.com-sufixo { display: flex; }
.com-sufixo .entrada { border-radius: 8px 0 0 8px; }
.sufixo {
  display: grid; place-items: center; padding: 0 16px;
  border: 1px solid var(--borda-forte); border-left: 0; border-radius: 0 8px 8px 0;
  background: var(--fundo-2); color: var(--texto-2);
}
.busca { position: relative; }
.busca .ico { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; color: var(--texto-2); }
.busca .entrada { padding-left: 46px; }
.grade-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }

/* Segmentos (nível de raciocínio) */
.segmentos {
  display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column;
  padding: 3px; border: 1px solid var(--borda-forte); border-radius: 10px; background: var(--fundo-2);
}
.segmentos label { position: relative; }
.segmentos input { position: absolute; opacity: 0; pointer-events: none; }
.segmentos span {
  display: grid; place-items: center; height: 44px; padding: 0 6px; border-radius: 8px;
  font-size: 17px; text-align: center; cursor: pointer; color: var(--texto-2); transition: background 0.15s;
}
.segmentos span:hover { color: var(--texto); }
.segmentos input:checked + span { background: var(--segmento, var(--roxo)); color: var(--texto); }
.segmentos input:focus-visible + span { outline: 2px solid var(--ciano); outline-offset: 1px; }

/* Opções em cartão (radio) */
.opcoes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.opcao { position: relative; display: block; cursor: pointer; }
.opcao input { position: absolute; opacity: 0; }
.opcao-corpo {
  display: flex; align-items: flex-start; gap: 14px; height: 100%;
  padding: 14px 16px; border: 1px solid var(--borda-forte); border-radius: 10px;
  background: rgba(255, 255, 255, 0.015); transition: background 0.15s, border-color 0.15s;
}
.opcao-corpo:hover { border-color: var(--roxo-claro); }
.opcao-corpo.centro { align-items: center; }
.opcao-radio {
  flex: none; width: 20px; height: 20px; margin-top: 2px; border-radius: 50%;
  border: 2px solid var(--texto-2); display: grid; place-items: center;
}
.opcao-corpo.centro .opcao-radio { margin-top: 0; }
.opcao-texto strong { display: block; font-size: 17px; font-weight: 500; }
.opcao-texto small { display: block; margin-top: 2px; font-size: 14px; color: var(--texto-2); line-height: 1.4; }
.opcao input:checked + .opcao-corpo { background: var(--roxo); border-color: var(--roxo); box-shadow: 0 6px 20px rgba(123, 47, 247, 0.35); }
.opcao input:checked + .opcao-corpo strong { font-weight: 600; }
.opcao input:checked + .opcao-corpo .opcao-radio { border-color: #fff; background: #fff; box-shadow: inset 0 0 0 4px var(--roxo); }
.opcao input:focus-visible + .opcao-corpo { outline: 2px solid var(--ciano); outline-offset: 2px; }
.opcoes.rosa .opcao input:checked + .opcao-corpo { background: rgba(240, 40, 143, 0.14); border: 2px solid var(--rosa); box-shadow: none; }
.opcoes.rosa .opcao input:checked + .opcao-corpo .opcao-radio { background: #fff; box-shadow: inset 0 0 0 4px var(--rosa); }
.opcoes.rosa .opcao input:checked + .opcao-corpo > .ico { color: var(--rosa); }

/* Caixas de seleção */
.marcadores { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 20px; margin-top: 16px; }
.marcador { display: flex; align-items: center; gap: 12px; padding: 3px 0; cursor: pointer; font-size: 17px; }
.marcador input {
  appearance: none; flex: none; width: 20px; height: 20px; margin: 0;
  border: 2px solid var(--texto-2); border-radius: 4px; cursor: pointer; display: grid; place-items: center;
}
.marcador input:checked { background: var(--ciano); border-color: var(--ciano); }
.marcador input:checked::after {
  content: ""; width: 5px; height: 10px; margin-top: -2px;
  border: solid #091a3a; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
}
.marcador[hidden] { display: none; }

/* ---------- Abas ---------- */
.abas { display: flex; gap: 6px; border-bottom: 1px solid var(--borda); overflow-x: auto; }
.aba {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 12px 18px; border-radius: 6px 6px 0 0; border-bottom: 3px solid transparent;
  font-size: 18px; color: var(--texto-2); text-decoration: none; white-space: nowrap;
}
.aba.ativa { background: var(--roxo); color: var(--texto); font-weight: 600; border-bottom-color: #fff; }
.aba[aria-disabled="true"] { cursor: not-allowed; }
.aba-breve { font-size: 12px; padding: 1px 8px; border-radius: 6px; background: rgba(255, 255, 255, 0.1); color: var(--texto-3); }

/* ---------- Coleta (catálogo) ---------- */
.coleta { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 20px; align-items: start; }
.coleta-form { display: flex; flex-direction: column; }
.coleta-form > .bloco + .bloco { border-top: 1px solid var(--borda); margin-top: 22px; padding-top: 22px; }
.bloco > .titulo-secao, .bloco > .titulo-linha { margin-bottom: 16px; }
.campos-modo { display: none; margin-top: 18px; }
.coleta-form:has(input[name="modo"][value="cidade"]:checked) [data-modo="cidade"],
.coleta-form:has(input[name="modo"][value="uf"]:checked) [data-modo="uf"] { display: block; }
.marcadores-rodape { margin: 14px 0 0; font-size: 15px; color: var(--texto-2); }
/* Período: sempre visível (trocar o alvo não pode mover os blocos de baixo); em estabelecimentos
   o fieldset fica desabilitado em vez de sumir. */
.periodo { margin: 0; padding: 0; border: 0; min-width: 0; }
.periodo:disabled { opacity: 0.5; }
.periodo:disabled .segmentos span { cursor: not-allowed; }
.periodo-datas { margin-top: 16px; }
@media (max-width: 560px) {
  .periodo .segmentos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.resumo { position: sticky; top: 24px; padding: 0; overflow: hidden; }
.resumo-topo { padding: 18px 20px; background: linear-gradient(90deg, var(--roxo), var(--rosa)); }
.resumo-topo h2 { font-size: 26px; font-weight: 700; }
.resumo-corpo { padding: 6px 20px 20px; display: flex; flex-direction: column; gap: 16px; }
.resumo dl { margin: 0; }
.resumo-linha {
  display: grid; grid-template-columns: 26px 110px minmax(0, 1fr); align-items: center; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid var(--borda); font-size: 17px;
}
.resumo-linha[hidden] { display: none; }
.resumo-linha .ico { color: var(--texto-2); }
.resumo-linha dt { color: var(--texto-2); }
.resumo-linha dd { margin: 0; overflow-wrap: anywhere; }
.resumo-nota { display: flex; align-items: center; gap: 12px; margin: 0; padding-top: 16px; border-top: 1px solid var(--borda); font-size: 15px; color: var(--texto-2); }
.resumo-nota .ico { width: 20px; height: 20px; }

/* ---------- Motor de IA ---------- */
/* Mesma trilha de 3 colunas e mesmo gap dos cards de perfil logo abaixo — os cartões do painel
   geral alinham nas mesmas linhas de grade; só o 2º cartão ocupa 2 colunas (tem 3 campos contra
   o 1 do primeiro). Cada cartão é um `.painel` próprio (borda/fundo iguais aos cards de perfil),
   não um bloco dividido dentro de um painel só. */
.config-geral { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.config-bloco { display: flex; flex-direction: column; gap: 16px; }
.config-bloco-largo { grid-column: span 2; }
.perfis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.perfil { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.perfil-topo { display: flex; gap: 22px; align-items: center; padding: 26px; background: linear-gradient(135deg, #8a3cff, #6a1cf0); }
.perfil-topo .metrica-icone { width: 72px; height: 72px; background: rgba(0, 0, 0, 0.2); }
.perfil-topo h2 { font-size: 28px; font-weight: 700; letter-spacing: -0.01em; }
.perfil-topo p { margin: 6px 0 0; font-size: 17px; color: rgba(255, 255, 255, 0.85); }
.perfil-corpo { padding: 26px; display: flex; flex-direction: column; gap: 0; }
.perfil-corpo .bloco { display: flex; flex-direction: column; gap: 16px; }
.perfil-corpo .bloco + .bloco { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--borda); }
.perfil-corpo .bloco[hidden] { display: none; }
.perfil-corpo .titulo-secao.menor { font-size: 17px; }

/* Ajuda longa escondida atrás de um link, pra não competir com o campo em si. */
.saiba-mais { margin: -6px 0 0; }
.saiba-mais summary {
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer; list-style: none;
  font-size: 15px; font-weight: 500; color: var(--roxo-claro);
}
.saiba-mais summary::-webkit-details-marker { display: none; }
.saiba-mais summary .ico { width: 15px; height: 15px; transition: transform 0.15s; }
.saiba-mais[open] summary .ico { transform: rotate(180deg); }
.saiba-mais .ajuda { margin-top: 8px; }
.saiba-mais .ajuda strong { color: var(--texto); font-weight: 600; }
/* Campo + resumo + "Entenda este campo": uma unidade só, pra a ajuda nunca parecer de outro campo. */
.campo-ajuda { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.campo-ajuda[hidden] { display: none; }
.campo-ajuda .saiba-mais { margin: 0; }
/* Glossário do topo da tela "Motor de IA". */
.glossario-painel { margin-bottom: 22px; }
.glossario { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; }
.glossario dt { font-size: 17px; font-weight: 600; }
.glossario dd { margin: 4px 0 0; font-size: 16px; color: var(--texto-2); }
@media (max-width: 1080px) { .glossario { grid-template-columns: minmax(0, 1fr); } }
.perfil-rosa .perfil-topo { background: linear-gradient(135deg, #ff3a9e, #e3157f); }
.perfil-rosa .selecao-grande { border-color: var(--roxo-claro); }
.perfil-rosa { --segmento: var(--rosa); }
.perfil-ciano .perfil-topo { background: linear-gradient(135deg, #22e1ef, #10b6c6); color: #0a1f24; }
.perfil-ciano .perfil-topo p { color: rgba(10, 31, 36, 0.75); }
.perfil-ciano .perfil-topo .metrica-icone { color: #fff; }
.perfil-ciano .selecao-grande { border-color: var(--ciano-escuro); }
.perfil-ciano { --segmento: var(--ciano); }
.rodape-acoes { display: flex; justify-content: flex-end; gap: 14px; flex-wrap: wrap; }
.rodape-acoes .botao { min-width: 150px; }

/* ---------- Acompanhar coleta ---------- */
.voltar { display: inline-flex; align-items: center; gap: 8px; color: var(--texto-2); text-decoration: none; font-size: 16px; }
.voltar:hover { color: var(--texto); }
.voltar .ico { width: 18px; height: 18px; }
.detalhes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.detalhe { display: flex; gap: 14px; align-items: center; }
.detalhe .acao-icone { width: 46px; height: 46px; }
.detalhe .ico { width: 22px; height: 22px; }
.detalhe small { display: block; font-size: 14px; color: var(--texto-2); }
.detalhe strong { display: block; font-size: 17px; font-weight: 500; overflow-wrap: anywhere; }
.codigo {
  margin: 0; padding: 16px 18px; border-radius: 10px; overflow-x: auto;
  background: #120827; border: 1px solid var(--borda); color: var(--texto-2);
  font: 14px/1.55 ui-monospace, "Cascadia Code", Consolas, monospace;
}
.progresso-grande .progresso-trilho { height: 12px; }
.atualizacao-auto { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; color: var(--ciano); }
.atualizacao-auto .ico { width: 18px; height: 18px; animation: girar 2.4s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }

/* ---------- Login ---------- */
.tela-entrada {
  min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px;
  padding: 24px 16px;
  background:
    radial-gradient(circle at 15% 10%, rgba(123, 47, 247, 0.45), transparent 45%),
    radial-gradient(circle at 90% 90%, rgba(240, 40, 143, 0.3), transparent 45%),
    var(--fundo);
}
.tela-entrada .aviso { width: 100%; max-width: 420px; }
.caixa-login { width: 100%; max-width: 420px; padding: 36px 32px; box-shadow: var(--sombra); }
.caixa-login .marca { justify-content: center; padding: 0 0 8px; }
.caixa-login > p { margin: 0 0 26px; text-align: center; color: var(--texto-2); }
.caixa-login form { display: flex; flex-direction: column; gap: 18px; }
.caixa-login .botao { margin-top: 6px; }
.separador-ou { display: flex; align-items: center; gap: 12px; margin: 22px 0; color: var(--texto-2); font-size: 13px; }
.separador-ou::before, .separador-ou::after { content: ""; flex: 1; height: 1px; background: var(--borda); }
.caixa-login .g_id_signin { display: flex; justify-content: center; }

/* ---------- Responsivo ---------- */
@media (max-width: 1280px) {
  .metricas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .coleta { grid-template-columns: minmax(0, 1fr); }
  .resumo { position: static; }
  .detalhes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1080px) {
  .grade-2-1, .perfis, .config-geral { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .painel-admin { grid-template-columns: minmax(0, 1fr); }
  .area { grid-column: 1; }
  .lateral, .lateral:hover, .lateral:focus-within {
    position: static; width: auto; height: auto; overflow: visible; border-right: 0; filter: none;
    background-clip: border-box;
    flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 16px;
  }
  .lateral :is(.marca-nome, .marca-selo, .menu span, .lateral-rodape span:not(.avatar)) { opacity: 1; }
  .marca { padding: 0 8px 0 0; }
  .menu { flex-direction: row; gap: 4px; overflow-x: auto; flex: 1 1 100%; order: 3; }
  .menu a { padding: 10px 14px; font-size: 16px; white-space: nowrap; }
  .menu a.ativo::before { display: none; }
  .lateral-rodape { display: none; }
  .topo, .conteudo { padding-left: 16px; padding-right: 16px; }
  .cabecalho h1 { font-size: 36px; }
  .cabecalho p { font-size: 18px; }
  .opcoes, .marcadores, .grade-campos { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .metricas, .detalhes { grid-template-columns: minmax(0, 1fr); }
  .conta-nome { display: none; }
  .perfil-topo { padding: 20px; }
  .perfil-topo .metrica-icone { display: none; }
  .perfil-corpo { padding: 20px; }
  .segmentos { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  th, td { padding: 12px 14px; }
}

/* Utilitários */
.form-contents { display: contents; }
.grupo-campo { border: 0; margin: 0; padding: 0; }
.grupo-campo legend { padding: 0; margin-bottom: 8px; }
.grupo-campo[hidden] { display: none; }

/* ---------- Combo de seleção múltipla ---------- */
.combo { position: relative; }
.combo-campo {
  position: relative; display: flex; align-items: center; min-height: 48px;
  padding: 6px 46px 6px 10px; cursor: pointer;
  border: 1px solid var(--borda-forte); border-radius: 8px; background: var(--fundo-2);
}
.combo-campo:focus-visible, .combo.aberto .combo-campo { outline: none; border-color: var(--roxo-claro); box-shadow: 0 0 0 3px rgba(163, 107, 255, 0.25); }
.combo-campo > .ico { position: absolute; right: 14px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); transition: transform 0.15s; }
.combo.aberto .combo-campo > .ico { transform: translateY(-50%) rotate(180deg); }
.combo.desabilitado .combo-campo { cursor: not-allowed; opacity: 0.65; }
.combo.carregando .combo-campo { cursor: progress; }
.combo.carregando .combo-placeholder::after { content: " (carregando…)"; }
.combo-chips { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.combo-placeholder { padding-left: 6px; color: var(--texto-3); font-size: 17px; }
.combo-chip {
  display: inline-flex; align-items: center; gap: 2px; padding: 3px 3px 3px 10px;
  border-radius: 6px; background: rgba(123, 47, 247, 0.4); font-size: 15px; white-space: nowrap;
}
.combo-chip.mais { padding-right: 10px; background: rgba(255, 255, 255, 0.12); }
.combo-chip button {
  display: grid; place-items: center; width: 22px; height: 22px; padding: 0;
  border: 0; border-radius: 4px; background: none; color: var(--texto-2); cursor: pointer; font-size: 17px; line-height: 1;
}
.combo-chip button:hover { background: rgba(255, 255, 255, 0.18); color: var(--texto); }
.combo-painel {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 30;
  background: var(--painel-2); border: 1px solid var(--borda-forte); border-radius: 10px;
  box-shadow: var(--sombra); overflow: hidden;
}
.combo-busca { padding: 10px; border-bottom: 1px solid var(--borda); }
.combo-busca .entrada { padding: 8px 12px; font-size: 16px; }
.combo-opcoes { max-height: 280px; overflow-y: auto; padding: 6px; }
.marcador.combo-opcao { padding: 8px 10px; border-radius: 6px; font-size: 16px; }
.combo-opcao:hover { background: rgba(255, 255, 255, 0.06); }
.combo-opcao small { margin-left: auto; color: var(--texto-3); font-size: 14px; }
.combo-aviso { margin: 0; padding: 10px 12px; color: var(--texto-3); font-size: 15px; }
.combo-rodape { display: flex; justify-content: space-between; padding: 6px 8px; border-top: 1px solid var(--borda); }
.combo-rodape button {
  padding: 6px 8px; border: 0; border-radius: 6px; background: none;
  color: var(--roxo-claro); font-size: 15px; font-weight: 500; cursor: pointer;
}
.combo-rodape button:hover { background: rgba(163, 107, 255, 0.12); }
.ajuda-modo { margin-top: 10px; }

/* ---------- Mapa (ficha do estabelecimento) ---------- */
/* Sobrou da varredura por raio, removida em 2026-10-07; quem usa agora é `catalogo/estabelecimento.html`,
   que só exibe a localização do lugar. As partes que eram do formulário (barra de busca de endereço,
   status e o slider de raio) saíram junto. */
.mapa {
  position: relative; z-index: 0; isolation: isolate;
  height: 380px; border-radius: 12px; border: 1px solid var(--borda-forte); overflow: hidden;
}
.mapa.leaflet-container { background: #120827; font-family: var(--fonte); }
/* Tiles claros do OpenStreetMap escurecidos para combinar com o tema. */
.mapa .leaflet-tile-pane { filter: invert(1) hue-rotate(200deg) brightness(0.9) contrast(0.85) saturate(0.6); }
.mapa .leaflet-bar a { background: var(--painel-2); color: var(--texto); border-bottom-color: var(--borda); }
.mapa .leaflet-bar a:hover { background: var(--borda); }
.mapa .leaflet-bar { border: 1px solid var(--borda-forte); box-shadow: var(--sombra); }
.mapa.leaflet-container .leaflet-control-attribution { background: rgba(18, 8, 39, 0.75); color: var(--texto-3); }
.mapa.leaflet-container .leaflet-control-attribution a { color: var(--texto-2); }
.mapa-pino span {
  display: block; width: 24px; height: 24px; border-radius: 50%;
  background: var(--rosa); border: 4px solid #fff; box-shadow: 0 0 0 6px rgba(240, 40, 143, 0.35), 0 4px 12px rgba(0, 0, 0, 0.5);
}

/* ---------- Resultado da coleta (cartões no estilo do app) ---------- */
.detalhes-espacados { margin-top: 22px; }
.contadores { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.contador {
  display: flex; align-items: center; gap: 14px; padding: 14px 16px;
  border: 1px solid var(--borda); border-radius: 12px; background: rgba(255, 255, 255, 0.02);
}
.contador strong { display: block; font-size: 28px; font-weight: 800; line-height: 1; }
.contador small { display: block; margin-top: 4px; font-size: 14px; color: var(--texto-2); }
.contador-icone { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 10px; }
.contador-icone.roxo { background: rgba(123, 47, 247, 0.35); color: var(--roxo-claro); }
.contador-icone.rosa { background: rgba(240, 40, 143, 0.25); color: #ff8cc6; }
#encontrados > .aviso { margin-bottom: 18px; }

.filtro-itens { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.filtro-itens a {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 999px;
  border: 1px solid var(--borda-forte); color: var(--texto-2); text-decoration: none; font-weight: 500;
}
.filtro-itens a:hover { color: var(--texto); border-color: var(--roxo-claro); }
.filtro-itens a.ativo { background: var(--roxo); border-color: var(--roxo); color: var(--texto); }
.filtro-itens a span { padding: 0 8px; border-radius: 999px; background: rgba(255, 255, 255, 0.14); font-size: 14px; }

.cartoes-app { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; align-items: start; }
.cartao-app {
  display: flex; flex-direction: column; overflow: hidden;
  border: 1.5px solid var(--borda); border-radius: 18px; background: var(--painel-2);
  transition: transform 0.15s, border-color 0.15s;
}
.cartao-app:hover { transform: translateY(-2px); border-color: var(--borda-forte); }
.cartao-faixa {
  display: flex; align-items: center; gap: 10px; padding: 12px 16px;
  background: linear-gradient(90deg, var(--cor) 0%, #ef7ba3 140%);
}
.cartao-faixa.com-imagem {
  background: linear-gradient(90deg, rgba(20, 8, 40, 0.55), rgba(20, 8, 40, 0.3)), var(--imagem) center / cover no-repeat;
}
.cartao-faixa strong { font-size: 15px; font-weight: 600; letter-spacing: 0.01em; }
.cartao-emoji { font-size: 22px; line-height: 1; }
.selo-item {
  margin-left: auto; padding: 3px 10px; border-radius: 999px; font-size: 13px; font-weight: 600;
  background: rgba(255, 255, 255, 0.9); color: #231a36;
}
.selo-item.novo { background: var(--amarelo); color: #1d0f3f; }
.cartao-faixa.com-imagem strong,
.cartao-faixa.com-imagem .cartao-emoji { text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); }
.cartao-flyer {
  position: relative; display: flex; flex-direction: column; justify-content: flex-end;
  height: 150px; padding: 16px;
  background: linear-gradient(135deg, var(--g1), var(--g2));
}
.cartao-flyer.com-imagem {
  background: linear-gradient(180deg, rgba(20, 8, 40, 0.05) 30%, rgba(20, 8, 40, 0.85) 100%), var(--imagem) center / cover no-repeat, linear-gradient(135deg, var(--g1), var(--g2));
}
.cartao-flyer .selo-item { position: absolute; top: 12px; left: 12px; margin: 0; }
.cartao-flyer h3 { max-width: 82%; font-size: 21px; font-weight: 700; line-height: 1.2; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35); }
.cartao-data {
  position: absolute; top: 12px; right: 12px; display: flex; flex-direction: column; align-items: center;
  padding: 6px 10px; border-radius: 14px; background: rgba(255, 255, 255, 0.92); color: #231a36; line-height: 1;
}
.cartao-data strong { font-size: 20px; font-weight: 800; }
.cartao-data small { font-size: 11px; font-weight: 600; }
.cartao-corpo { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; }
.cartao-corpo h3 { font-size: 19px; font-weight: 700; line-height: 1.25; }
.cartao-titulo-local { margin: 0; font-size: 17px; font-weight: 600; }
.cartao-linha { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 15px; color: var(--texto-2); }
.cartao-linha .ico { width: 16px; height: 16px; margin-top: 2px; color: var(--texto-3); }
.cartao-descricao {
  margin: 4px 0 0; font-size: 15px; color: var(--texto-3);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.cartao-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.cartao-links a, .cartao-links span {
  padding: 3px 10px; border-radius: 6px; font-size: 14px; text-decoration: none;
  background: rgba(34, 225, 239, 0.1); color: var(--ciano);
}
.cartao-links span { background: rgba(255, 255, 255, 0.06); color: var(--texto-2); }
.cartao-links a:hover { background: rgba(34, 225, 239, 0.2); }

.paginacao { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 22px; }
.paginas { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.paginas a {
  display: grid; place-items: center; min-width: 40px; height: 40px; padding: 0 12px;
  border: 1px solid var(--borda-forte); border-radius: 8px; color: var(--texto-2); text-decoration: none;
}
.paginas a:hover { border-color: var(--roxo-claro); color: var(--texto); }
.paginas a.atual { background: var(--roxo); border-color: var(--roxo); color: var(--texto); font-weight: 600; }
.paginas span { color: var(--texto-3); padding: 0 4px; }

.detalhes-tecnicos summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; }
.detalhes-tecnicos summary::-webkit-details-marker { display: none; }
.detalhes-tecnicos[open] summary .ico { transform: rotate(180deg); }
.detalhes-tecnicos-corpo { margin-top: 18px; }
.detalhes-tecnicos .rotulo { margin: 0 0 8px; }
@media (max-width: 1080px) { .contadores { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Log da execução: uma linha por registro; mensagem multilinha (pedido à IA, traceback) em pre-wrap. */
.log-execucao {
  list-style: none; margin: 0; padding: 0; max-height: 520px; overflow-y: auto;
  background: #120827; border: 1px solid var(--borda); border-radius: 10px;
}
.log-linha {
  display: grid; grid-template-columns: 76px 56px minmax(0, 1fr); gap: 14px; align-items: baseline;
  padding: 10px 18px; border-bottom: 1px solid var(--borda);
  font: 14px/1.55 ui-monospace, "Cascadia Code", Consolas, monospace; color: var(--texto-2);
}
.log-linha:last-child { border-bottom: 0; }
.log-linha time { color: var(--texto-3); }
.log-nivel { font-weight: 600; }
.log-msg { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; color: inherit; }
.log-aviso .log-nivel { color: var(--amarelo); }
.log-erro { background: rgba(240, 40, 143, 0.1); color: #ffd1e8; }
.log-erro .log-nivel { color: var(--rosa); }
@media (max-width: 640px) {
  .log-linha { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* ---------- Catálogo: listagens e detalhes ---------- */
.metricas-compactas .metrica { padding: 16px 20px; gap: 16px; }
.metricas-compactas .metrica-icone { width: 52px; height: 52px; }
.metricas-compactas .metrica-icone .ico { width: 26px; height: 26px; }
.metricas-compactas .metrica strong { font-size: 32px; }
.metricas-compactas .metrica > div > span { font-size: 16px; margin-top: 4px; }
.metricas-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.metricas-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.de-total { font-size: 18px; font-weight: 600; opacity: 0.7; }

.filtros { display: flex; flex-direction: column; gap: 16px; }
.filtros-topo { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.filtros-busca { flex: 1 1 320px; }
.filtros-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px 14px; }
.filtros-grade .campo > span { font-size: 14px; color: var(--texto-2); font-weight: 500; }
.filtros-grade .selecao { padding: 9px 40px 9px 12px; font-size: 15px; background-position: right 12px center; background-size: 16px; }
.filtros-grade .selecao:disabled { opacity: 0.5; cursor: not-allowed; }

.painel-tabela { padding: 0; overflow: hidden; }
.painel-tabela .tabela-caixa { border: 0; border-radius: 0; }
.painel-tabela .paginacao { margin: 0; padding: 16px 22px; border-top: 1px solid var(--borda); }
.tabela-catalogo th, .tabela-catalogo td { padding: 12px 16px; vertical-align: middle; }
.tabela-catalogo th { font-size: 14px; color: var(--texto-2); white-space: nowrap; }
.tabela-catalogo td { font-size: 15px; }
.linha-clicavel { cursor: pointer; transition: background 0.12s; }
.linha-clicavel:hover { background: rgba(163, 107, 255, 0.07); }
.celula-item { display: flex; align-items: center; gap: 12px; min-width: 240px; }
.item-emoji { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 10px; background: rgba(255, 255, 255, 0.06); font-size: 20px; }
.item-nome { color: var(--texto); font-weight: 600; text-decoration: none; }
.item-nome:hover { color: var(--roxo-claro); text-decoration: underline; }
.celula-item small, small.bloco { display: block; font-size: 13px; color: var(--texto-3); margin-top: 2px; }
.sem-quebra { white-space: nowrap; }
.celula-num { text-align: center; }
.contagem {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 38px;
  padding: 3px 10px; border-radius: 999px; font-weight: 700; color: var(--texto-3); background: rgba(255, 255, 255, 0.05);
}
.contagem.agora { color: var(--verde); background: rgba(47, 224, 162, 0.14); }
.contagem.vao { color: #ff8cc6; background: rgba(240, 40, 143, 0.16); }
.ponto-vivo { width: 8px; height: 8px; border-radius: 50%; background: var(--verde); animation: pulsar 1.6s ease-in-out infinite; }
@keyframes pulsar { 50% { opacity: 0.35; transform: scale(0.75); } }
.tabela-catalogo .pilula, .etiquetas .pilula { padding: 3px 12px; font-size: 13px; }
.pilula-situacao-ativo, .pilula-publicacao-publicado { background: rgba(47, 224, 162, 0.16); color: var(--verde); }
.pilula-situacao-fechado_temporariamente, .pilula-publicacao-rascunho { background: rgba(255, 207, 31, 0.16); color: var(--amarelo); }
.pilula-situacao-fechado_permanentemente, .pilula-publicacao-cancelado { background: rgba(240, 40, 143, 0.2); color: #ff9fcf; }
.pilula-situacao-suspenso { background: rgba(255, 207, 31, 0.16); color: var(--amarelo); }
.pilula-situacao-excluido { background: rgba(240, 40, 143, 0.2); color: #ff9fcf; }
.pilula-origem-coleta { background: rgba(34, 225, 239, 0.14); color: var(--ciano); }
.pilula-origem-usuario { background: rgba(163, 107, 255, 0.22); color: #cbb2ff; }
.pilula-origem-admin { background: rgba(255, 207, 31, 0.14); color: var(--amarelo); }
.pilula-origem-seed_dev { background: rgba(255, 255, 255, 0.08); color: var(--texto-3); }
.pilula-provedor-anthropic { background: rgba(34, 225, 239, 0.14); color: var(--ciano); }
.pilula-provedor-openai { background: rgba(255, 207, 31, 0.14); color: var(--amarelo); }

.tabela-licencas td { vertical-align: top; }
.tabela-licencas-grupo td { padding: 8px 16px; font-size: 12px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--texto-2); background: rgba(255, 255, 255, 0.03); border-top: 1px solid var(--borda); }
.licenca-celula { display: flex; flex-direction: column; gap: 10px; min-width: 220px; }
.licenca-habilitada { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.licenca-limite { display: grid; grid-template-columns: 1fr 90px 1fr; gap: 6px; }
.licenca-limite .selecao, .licenca-limite .entrada { padding: 7px 10px; font-size: 13px; }
.licenca-limite .selecao { padding-right: 32px; background-size: 16px; background-position: right 10px center; }
.licenca-limite .selecao:disabled, .licenca-limite .entrada:disabled { opacity: 0.5; cursor: not-allowed; }
.pilula-clara { background: rgba(255, 255, 255, 0.85); color: #231a36; }

.etiquetas { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.grade-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.ficha { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 22px; margin: 0; }
.ficha dt { font-size: 13px; color: var(--texto-3); margin-bottom: 2px; }
.ficha dd { margin: 0; font-size: 16px; overflow-wrap: anywhere; }
.ficha a { color: var(--ciano); }
.ficha-larga { grid-column: 1 / -1; }
.texto-corrido { margin: 0 0 18px; color: var(--texto-2); line-height: 1.6; white-space: pre-line; }
.mapa-pequeno { height: 220px; margin-bottom: 16px; cursor: grab; }
.horarios { list-style: none; margin: 0; padding: 0; }
.horarios li { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--borda); font-size: 15px; }
.horarios li:last-child { border-bottom: 0; }
.lista-simples { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.lista-simples a { color: var(--ciano); }
.pessoa { display: flex; align-items: center; gap: 10px; }
.pessoa strong { display: block; font-size: 15px; font-weight: 600; }
.pessoa small { display: block; font-size: 13px; color: var(--texto-3); }
.avatar-pequeno { width: 34px; height: 34px; font-size: 14px; }
.linha-passada td { opacity: 0.55; }

.evento-capa {
  display: flex; align-items: flex-end; min-height: 220px; padding: 28px; border-radius: var(--raio);
  background: linear-gradient(135deg, #6228d7, #ee2a7b);
}
.evento-capa.com-imagem { background: linear-gradient(180deg, rgba(20, 8, 40, 0.1) 20%, rgba(20, 8, 40, 0.9) 100%), var(--imagem) center / cover no-repeat; }
.evento-capa h1 { margin-top: 12px; font-size: 42px; font-weight: 800; letter-spacing: -0.02em; text-shadow: 0 2px 14px rgba(0, 0, 0, 0.35); }
.evento-capa p { margin: 8px 0 0; color: rgba(255, 255, 255, 0.85); }
.evento-capa .etiquetas { margin-top: 0; }

@media (max-width: 1080px) {
  .grade-2 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .metricas-3 { grid-template-columns: minmax(0, 1fr); }
  .ficha { grid-template-columns: minmax(0, 1fr); }
  .evento-capa h1 { font-size: 30px; }
}

/* ---------- Rotinas agendadas ---------- */
.acoes-linha { display: flex; flex-wrap: wrap; gap: 8px; }
.acoes-linha form { margin: 0; }
.rotina-nome strong { display: block; font-size: 18px; font-weight: 600; }
.rotina-nome small { display: block; margin-top: 4px; font-size: 14px; color: var(--texto-2); line-height: 1.4; }
.dias-semana { grid-auto-flow: column; }
.dias-semana span { height: 48px; }
.resumo-execucao { font-size: 15px; color: var(--texto-2); max-width: 520px; white-space: normal; }
.erro-execucao { font-size: 14px; color: #ffd1e8; max-width: 520px; white-space: normal; }
.linha-acoes-topo { display: flex; flex-wrap: wrap; gap: 12px; }
/* Detalhes da rodada: data/hora e situação são texto, não número grande. */
.metricas-compactas .metrica strong.metrica-texto { font-size: 20px; line-height: 1.2; white-space: nowrap; }
.erro-completo { max-width: none; font-size: 16px; white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; }
@media (max-width: 760px) { .dias-semana span { font-size: 15px; } }
