.campanhas-shell {
  width: min(960px, 100% - 24px);
  margin: 0 auto;
  padding: 16px 0 32px;
}

.campanhas-topo {
  margin-bottom: 18px;
}

.campanhas-topo h1 {
  margin: 8px 0 4px;
  font-size: clamp(1.1rem, 2.5vw, 1.35rem);
}

.campanhas-topo p {
  margin: 0;
  color: var(--muted);
}

.campanhas-grid {
  display: grid;
  gap: 14px;
}

@media (min-width: 720px) {
  .campanhas-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.campanha-card {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--panel);
  box-shadow: var(--inner-line);
}

.campanha-card h2 {
  margin: 0;
  font-size: 1.05rem;
}

.campanha-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.45;
}

.campanha-card .botao {
  width: 100%;
  min-height: 44px;
}

.campanha-card .campanha-links {
  display: grid;
  gap: 8px;
}

.campanha-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.campanha-badge.ativo {
  background: rgba(34, 197, 94, 0.18);
  border: 1px solid rgba(34, 197, 94, 0.45);
  color: #86efac;
}

html.light-theme .campanha-badge.ativo,
body.light-theme .campanha-badge.ativo {
  color: #15803d;
}

.campanha-badge.preparacao {
  background: rgba(251, 191, 36, 0.14);
  border: 1px solid rgba(251, 191, 36, 0.45);
  color: #fcd34d;
}

html.light-theme .campanha-badge.preparacao,
body.light-theme .campanha-badge.preparacao {
  color: #b45309;
}

.campanha-voltar {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: var(--blue-light);
  text-decoration: none;
  font-weight: 700;
}

.campanha-voltar:hover {
  text-decoration: underline;
}

.campanha-ferramentas {
  display: grid;
  gap: 10px;
}

.campanha-ferramenta {
  display: grid;
  gap: 6px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--panel-muted);
}

.campanha-ferramenta strong {
  font-size: 0.95rem;
}

.campanha-ferramenta span {
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.4;
}

.campanhas-subtitulo {
  margin: 0 0 8px;
  font-size: 1rem;
}

.campanha-lista-fluxo {
  margin: 0 0 16px;
  padding-left: 1.25rem;
  color: var(--muted);
  line-height: 1.55;
}

.campanha-lista-fluxo li + li {
  margin-top: 4px;
}

