/* Disparos da base: estado, fila, campanhas e últimos envios. */

.disparo { max-width: 1120px; margin: 0 auto; padding: var(--e-6) var(--e-6) var(--e-10); display: grid; gap: var(--e-4); }
.disparo-cabeca { display: flex; align-items: center; gap: var(--e-3); flex-wrap: wrap; }
.disparo-cabeca .titulo-tela { margin-right: auto; }

.disparo-colunas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-4); align-items: start; }

.disparo-bloco {
  background: var(--superficie);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  padding: var(--e-4);
  display: grid;
  gap: var(--e-3);
  box-shadow: var(--sombra);
}
.disparo-bloco h2 { font-size: var(--t-12); text-transform: uppercase; letter-spacing: 0.06em; color: var(--suave); font-weight: 600; }
.disparo-sub { text-transform: none; letter-spacing: 0; font-weight: 500; }
.disparo .vazio { padding: var(--e-1) 0; text-align: left; font-size: var(--t-14); }

.disparo-estado { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
.disparo-dados { display: flex; gap: var(--e-6); flex-wrap: wrap; font-size: var(--t-14); }
.disparo-dados dt { font-size: var(--t-12); color: var(--suave); }
.disparo-dados dd { font-weight: 600; }
.disparo-trava, .disparo-freio { grid-column: 1 / -1; padding: var(--e-2) var(--e-3); border-radius: var(--raio-p); font-size: var(--t-14); }
.disparo-trava { background: var(--painel); }
.disparo-freio { background: var(--aviso-fundo); color: var(--aviso-texto); display: grid; gap: 6px; }
.disparo-freio .botao { justify-self: start; border-color: var(--aviso); color: var(--aviso-texto); }

.campanhas, .pulados, .ultimos { display: grid; gap: var(--e-2); }
.campanha { display: grid; gap: 6px; padding: var(--e-3); border: 1px solid var(--borda); border-radius: var(--raio-p); }
.campanha.vigente { border-color: var(--texto); background: var(--fundo); }
.campanha-linha { display: flex; align-items: center; gap: var(--e-2); flex-wrap: wrap; }
.campanha-linha strong { margin-right: auto; }
.campanha-meta { font-size: var(--t-13); color: var(--suave); }
.campanha details { font-size: var(--t-13); }
.campanha summary { cursor: pointer; color: var(--texto); font-weight: 600; }
.campanha-texto { margin-top: var(--e-2); padding: var(--e-2) var(--e-3); background: var(--painel); border-radius: var(--raio-p); white-space: pre-wrap; overflow-wrap: anywhere; }
.campanha-texto .selo { margin-bottom: var(--e-1); }

.disparo-resumo { font-size: var(--t-14); }
.proximo { display: grid; gap: var(--e-2); padding: var(--e-3); border-radius: var(--raio-p); background: var(--fundo); border: 1px dashed var(--borda-forte); }
.proximo-quem { display: flex; align-items: center; gap: var(--e-2); flex-wrap: wrap; }
.proximo-texto { white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--t-14); padding: var(--e-3); background: var(--superficie); border-radius: var(--raio-p); border: 1px solid var(--borda); }
.proximo .botao { justify-self: start; }
.pulados li, .ultimos li { font-size: var(--t-13); display: flex; gap: var(--e-2); flex-wrap: wrap; align-items: baseline; }
.pulados li span:last-child, .ultimos .ultimo-quando { color: var(--suave); }
.ultimo-estado { font-weight: 600; }
.ultimo-estado.enviado { color: var(--ok-texto); }
.ultimo-estado.falhou, .ultimo-estado.incerto { color: var(--perigo-texto); }
.ultimo-estado.seco { color: var(--simulador); }

/* Fase 6: cabeça do bloco com botão, ações da campanha, editor, detalhe e base. */
.disparo-bloco-cabeca { display: flex; align-items: center; gap: var(--e-2); flex-wrap: wrap; }
.disparo-bloco-cabeca h2 { margin-right: auto; }
.campanha-acoes { display: flex; gap: var(--e-2); flex-wrap: wrap; }

.dialogo-campanha { width: min(640px, calc(100% - 32px)); max-height: calc(100dvh - 32px); }
.campanha-form { padding: 0; display: grid; gap: var(--e-3); }
.campanha-dica { font-size: var(--t-13); color: var(--suave); }
.campanha-aviso { font-size: var(--t-13); padding: var(--e-2) var(--e-3); border-radius: var(--raio-p); background: var(--aviso-fundo); color: var(--aviso-texto); }
.campanha-textos { display: grid; gap: var(--e-3); }
.campanha-mais { justify-self: start; }
.ct { display: grid; gap: var(--e-2); padding: var(--e-3); border: 1px solid var(--borda); border-radius: var(--raio-p); background: var(--superficie); }
.ct-cabeca { display: flex; align-items: center; gap: var(--e-2); flex-wrap: wrap; }
.ct-numero { font-size: var(--t-13); font-weight: 600; }
.ct-estagio { flex: 1 1 200px; min-width: 0; }
.ct-texto { min-height: 96px; }
.ct-conta { font-size: var(--t-12); color: var(--suave); }
.ct-conta.ct-conta-falta { color: var(--aviso-texto); }
.ct-previa { display: grid; gap: var(--e-1); font-size: var(--t-13); padding: var(--e-2) var(--e-3); background: var(--painel); border-radius: var(--raio-p); white-space: pre-wrap; overflow-wrap: anywhere; }

.base { gap: var(--e-3); }
.base-importar { display: grid; gap: var(--e-2); }
.base-rotulo { font-size: var(--t-13); font-weight: 600; }
.base-arquivo { max-width: 420px; }
.base-previa { display: grid; gap: var(--e-2); padding: var(--e-3); border: 1px dashed var(--borda-forte); border-radius: var(--raio-p); background: var(--fundo); }
.base-previa-resumo { font-size: var(--t-14); font-weight: 600; }
.base-previa details { font-size: var(--t-13); }
.base-previa summary { cursor: pointer; font-weight: 600; }
.base-lista { display: grid; gap: var(--e-1); }
.base-lista li { font-size: var(--t-13); display: flex; gap: var(--e-2); flex-wrap: wrap; align-items: baseline; }
.base-linha, .base-sha { color: var(--suave); }
.base-acoes { display: flex; gap: var(--e-2); flex-wrap: wrap; justify-content: flex-end; }
.base-sub { font-size: var(--t-12); text-transform: uppercase; letter-spacing: 0.06em; color: var(--suave); font-weight: 600; }

/* No dedo: botões pequenos da campanha e da base ganham o alvo de 32px. */
@media (any-pointer: coarse) {
  .campanha-acoes .botao, .ct-tirar, .campanha-mais, .base-acoes .botao, .campanha summary, .base-previa summary { min-height: var(--alvo-toque); }
  .campanha summary, .base-previa summary { display: flex; align-items: center; }
  .base-arquivo { min-height: var(--alvo-toque); }
}

@media (max-width: 1023px) {
  .disparo-colunas { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767px) {
  .disparo { padding: var(--e-4) var(--e-3) var(--e-8); }
  .disparo-estado { grid-template-columns: minmax(0, 1fr); }
  .disparo-dados { gap: var(--e-4); }
  .base-acoes { justify-content: stretch; }
  .base-acoes .botao { flex: 1 1 auto; }
  .base-arquivo { max-width: none; }
}
