/* Área de upload (static/js/dropzone.js): o input de arquivo vira uma caixa tracejada com prévia. */
.dz {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 18px 14px; width: 100%;
  border: 2px dashed var(--c-border); border-radius: 16px; background: var(--c-bg);
  text-align: center; cursor: pointer; color: var(--text-secondary);
  transition: border-color .15s, background .15s;
}
.dz:hover, .dz-over { border-color: var(--c-accent); background: var(--c-accent-pale); }
.dz:focus-within { border-color: var(--c-accent); box-shadow: 0 0 0 3px rgba(39, 197, 113, .18); }
.dz-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.dz-ico { width: 34px; height: 34px; color: var(--c-accent-dk); }
.dz-title { font-weight: 700; font-size: 14px; color: var(--text-primary); }
.dz-hint { font-size: 12px; color: var(--text-quiet); }
.dz-preview { width: 84px; height: 84px; object-fit: cover; border-radius: 12px; box-shadow: 0 4px 12px var(--c-shadow); margin-bottom: 4px; }
.dz-file { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; font-weight: 600; color: var(--c-accent-dk); }

/* Variante compacta (data-dz-compact): uma linha, para formulários apertados como o do CSV do sorteio. */
.dz-compact { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 4px 10px; padding: 12px 16px; width: auto; flex: 1; min-width: 220px; }
.dz-compact .dz-ico { width: 24px; height: 24px; }
.dz-compact .dz-hint { flex-basis: 100%; }
.dz-compact .dz-file { max-width: 220px; }
