
.campaigns-badge-ab[data-v-bb443683] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  border-radius: 9999px;
  padding: 0.125rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  white-space: nowrap;
  background: hsl(var(--primary) / 0.12);
  color: hsl(var(--primary));
}
.campaigns-badge-ab[data-v-bb443683] svg { width: 0.75rem; height: 0.75rem;
}
.campaigns-tag-chip[data-v-bb443683] {
  border-radius: 9999px;
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  padding: 0.125rem 0.375rem;
  font-size: 11px;
  white-space: nowrap;
}

/* Icone do canal por tipo — mesmas imagens/paleta dos cards de tipo de canal
   da tela de criacao (CampaignStepConfig). O fundo vem inline (iconBg). */
.campaigns-channel-icon[data-v-9536b45b] {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  overflow: hidden;
}
.campaigns-channel-icon__img[data-v-9536b45b] {
  width: 1.125rem;
  height: 1.125rem;
  -o-object-fit: contain;
     object-fit: contain;
}
/* sms_image.png tem muito padding branco (~1.7:1): zoom pra preencher o box,
   igual ao --cover da tela de criacao. */
.campaigns-channel-icon__img--cover[data-v-9536b45b] {
  width: 1.25rem;
  height: 1.25rem;
  -o-object-fit: cover;
     object-fit: cover;
  transform: scale(1.55);
}

/* Chip com borda (estilo "botao" do mockup); o icone carrega a cor do tipo. */
.campaigns-strategy-chip[data-v-84991690] {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border: 1px solid hsl(var(--border));
  border-radius: 0.5rem;
  background: hsl(var(--card));
  padding: 0.3rem 0.625rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: hsl(var(--foreground));
  white-space: nowrap;
  max-width: 100%;
}
.campaigns-strategy-chip__icon[data-v-84991690] {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
}
/* Envio Direto */
.campaigns-strategy-chip--direct .campaigns-strategy-chip__icon[data-v-84991690] { color: #3b82f6;
}
/* Agendado */
.campaigns-strategy-chip--scheduled .campaigns-strategy-chip__icon[data-v-84991690] { color: #f59e0b;
}
/* Automático */
.campaigns-strategy-chip--auto .campaigns-strategy-chip__icon[data-v-84991690] { color: #eab308;
}

.campaigns-status-cell[data-v-f4c8ce79] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}
.campaigns-status-cell__date[data-v-f4c8ce79] {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* Mesmo padrao do relatorio de chamadas (ReportsCalls): pill com dot colorido,
   fundo tint-50 + texto -700 e dot solido -500. */
.campaigns-status-badge[data-v-f4c8ce79] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  border-radius: 9999px;
  padding: 0.125rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  white-space: nowrap;
}
.campaigns-status-badge__dot[data-v-f4c8ce79] {
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 9999px;
  flex-shrink: 0;
  background: currentColor;
}

/* Concluida */
.campaigns-status-badge--success[data-v-f4c8ce79] {
  background: #ecfdf5; /* emerald-50 */
  color: #047857;      /* emerald-700 */
}
.campaigns-status-badge--success .campaigns-status-badge__dot[data-v-f4c8ce79] {
  background: #10b981; /* emerald-500 */
}

/* Pendente / Agendada */
.campaigns-status-badge--warning[data-v-f4c8ce79] {
  background: #fffbeb; /* amber-50 */
  color: #b45309;      /* amber-700 */
}
.campaigns-status-badge--warning .campaigns-status-badge__dot[data-v-f4c8ce79] {
  background: #f59e0b; /* amber-500 */
}

/* Em andamento */
.campaigns-status-badge--info[data-v-f4c8ce79] {
  background: #f0f9ff; /* sky-50 */
  color: #0369a1;      /* sky-700 */
}
.campaigns-status-badge--info .campaigns-status-badge__dot[data-v-f4c8ce79] {
  background: #0ea5e9; /* sky-500 */
}

/* Falha */
.campaigns-status-badge--destructive[data-v-f4c8ce79] {
  background: #fff1f2; /* rose-50 */
  color: #be123c;      /* rose-700 */
}
.campaigns-status-badge--destructive .campaigns-status-badge__dot[data-v-f4c8ce79] {
  background: #f43f5e; /* rose-500 */
}

/* Na fila / Pausada */
.campaigns-status-badge--secondary[data-v-f4c8ce79] {
  background: #f1f5f9; /* slate-100 */
  color: #475569;      /* slate-600 */
}
.campaigns-status-badge--secondary .campaigns-status-badge__dot[data-v-f4c8ce79] {
  background: #94a3b8; /* slate-400 */
}

.campaigns-perf[data-v-128b3dd6] {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 0;
  width: 100%;
}
.campaigns-perf__head[data-v-128b3dd6] {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.75rem;
  min-width: 0;
}
.campaigns-perf__counts[data-v-128b3dd6] {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.campaigns-perf__delivered[data-v-128b3dd6] {
  font-size: 0.8125rem;
  font-weight: 700;
  color: hsl(var(--foreground));
}
.campaigns-perf__total[data-v-128b3dd6] {
  color: hsl(var(--muted-foreground));
  white-space: nowrap;
}
.campaigns-perf__rate[data-v-128b3dd6] {
  font-weight: 700;
  color: hsl(var(--primary));
  flex-shrink: 0;
}
.campaigns-perf__rate--full[data-v-128b3dd6] {
  color: #16a34a; /* green-600 */
}
.campaigns-perf__rate--muted[data-v-128b3dd6] {
  color: hsl(var(--muted-foreground));
}
.campaigns-perf__waiting[data-v-128b3dd6] {
  color: hsl(var(--muted-foreground));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Rodape agrupa os sinais secundarios (entrega pendente, respostas, falhas). */
.campaigns-perf__foot[data-v-128b3dd6] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  min-width: 0;
}
.campaigns-perf__replied[data-v-128b3dd6] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.7rem;
  color: #7c3aed; /* violet-600 */
  white-space: nowrap;
}
.campaigns-perf__replied-icon[data-v-128b3dd6] {
  width: 0.75rem;
  height: 0.75rem;
  flex-shrink: 0;
}
/* Barra do DISPARO (antes da confirmacao de entrega) fica neutra, pra nao
   competir visualmente com a barra de entrega, que e a metrica final. */
.campaigns-delivery-fill--dispatch[data-v-128b3dd6] {
  background: hsl(var(--muted-foreground) / 0.45);
}
.campaigns-perf__failed[data-v-128b3dd6] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.7rem;
  color: #e11d48; /* rose-600 */
  white-space: nowrap;
}
.campaigns-perf__failed-icon[data-v-128b3dd6] {
  width: 0.75rem;
  height: 0.75rem;
  flex-shrink: 0;
}
.campaigns-perf__base[data-v-128b3dd6] {
  font-size: 0.7rem;
  color: hsl(var(--muted-foreground));
  white-space: nowrap;
}
.campaigns-delivery-track[data-v-128b3dd6] {
  height: 0.375rem;
  width: 100%;
  overflow: hidden;
  border-radius: 9999px;
  background: hsl(var(--muted));
}
.campaigns-delivery-fill[data-v-128b3dd6] {
  height: 100%;
  border-radius: 9999px;
  background: hsl(var(--primary));
  transition: width 200ms ease;
}
/* Entrega completa (100%) fica verde, como no mockup. */
.campaigns-delivery-fill--full[data-v-128b3dd6] {
  background: #22c55e; /* green-500 */
}
