.dropzone {
  position: relative;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  text-align: center;

  padding: 2.5rem 1.5rem;
  border: 2px dashed #d1d5db;
  border-radius: 0.5rem;
  background-color: #f9fafb;
  color: #4b5563;
  cursor: pointer;

  transition: border-color 200ms ease, background-color 200ms ease;
}

.dropzone:hover,
.dropzone:focus-within,
.dropzone--ativo {
  border-color: #2689fa;
  background-color: #eff6ff;
}

.dark .dropzone {
  border-color: var(--color-cinza-escuro);
  background-color: var(--color-grafite-claro);
  color: var(--color-cinza-quase-branco);
}

.dark .dropzone:hover,
.dark .dropzone:focus-within,
.dark .dropzone--ativo {
  border-color: var(--color-azul-noturno);
  background-color: color-mix(in oklab, var(--color-azul-noturno) 10%, var(--color-grafite-claro));
}

.dropzone__campo {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  opacity: 0;
  pointer-events: none;
}

.dropzone__icone {
  inline-size: 1.75rem;
  block-size: 1.75rem;
  margin-bottom: 0.25rem;
  color: #9ca3af;
}

.dark .dropzone__icone {
  color: var(--color-cinza-medio);
}

.dropzone__titulo {
  font-size: 0.875rem;
  font-weight: 600;
}

.dropzone__descricao {
  font-size: 0.75rem;
  color: #6b7280;
  word-break: break-word;
}

.dark .dropzone__descricao {
  color: var(--color-cinza-claro);
}

.dropzone--compacto {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  text-align: left;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
}

.dropzone--compacto .dropzone__icone {
  width: 1.5rem;
  height: 1.5rem;
  margin: 0;
}

.dropzone--compacto .dropzone__titulo,
.dropzone--compacto .dropzone__descricao {
  flex-basis: 100%;
}

.boleto {
  position: relative;

  display: inline-flex;
  align-items: center;
  gap: 0.5rem;

  block-size: 40px;
  min-inline-size: 0;
  max-inline-size: 100%;
  padding-inline: 0.75rem;

  border: 1px dashed #d1d5db;
  border-radius: 4px;

  font-size: 0.875rem;
  color: #4b5563;
  cursor: pointer;

  transition: border-color 200ms ease, color 200ms ease, background-color 200ms ease;
}

.boleto:hover,
.boleto:focus-within,
.boleto.dropzone--ativo {
  border-color: #2689fa;
  background-color: #eff6ff;
  color: #2689fa;
}

.dark .boleto {
  border-color: var(--color-cinza-escuro);
  color: var(--color-cinza-claro);
}

.dark .boleto:hover,
.dark .boleto:focus-within,
.dark .boleto.dropzone--ativo {
  border-color: var(--color-azul-noturno);
  background-color: color-mix(in oklab, var(--color-azul-noturno) 12%, transparent);
  color: var(--color-cinza-quase-branco);
}

.dropzone-preenchido .boleto,
.boleto--salvo {
  border-style: solid;
}

.boleto--salvo {
  cursor: default;
  gap: 0;
  padding-inline: 0.25rem 0.25rem;
}

.boleto__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;

  min-inline-size: 0;
  padding-inline: 0.5rem;
  block-size: 100%;

  color: inherit;
  text-decoration: none;
  border-radius: 4px;
}

.boleto__link:hover {
  color: #2689fa;
}

.dark .boleto__link:hover {
  color: var(--color-cinza-quase-branco);
}

.boleto--cheio {
  flex: 1;
  inline-size: 100%;
  min-inline-size: 0;
}

.boleto--trocavel {
  border-style: solid;
}

.boleto--menu {
  border-style: solid;
}

.boleto__contagem {
  flex: none;

  min-inline-size: 1.25rem;
  padding-inline: 0.375rem;
  border-radius: 9999px;

  background-color: #f3f4f6;
  font-size: 0.6875rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.125rem;
  text-align: center;
}

.dark .boleto__contagem {
  background-color: var(--color-grafite-claro);
}

.boleto__seta {
  inline-size: 0.75rem;
  block-size: 0.75rem;
  flex: none;
  opacity: 0.7;
}

.boleto__icone {
  inline-size: 1rem;
  block-size: 1rem;
  flex-shrink: 0;
}

.boleto__nome {
  min-inline-size: 0;
  max-inline-size: 8.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.boleto--cheio .boleto__link {
  flex: 1;
  min-inline-size: 0;
}

.boleto--cheio .boleto__nome {
  flex: 1;
  max-inline-size: none;
}

.boleto__acao {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 0.25rem;
  border-radius: 4px;

  color: #9ca3af;
  cursor: pointer;
  transition: color 200ms ease, background-color 200ms ease;
}

.boleto__acao:hover {
  background-color: #fef2f2;
  color: #dc2626;
}

.dark .boleto__acao {
  color: var(--color-cinza-medio);
}

.dark .boleto__acao:hover {
  background-color: color-mix(in oklab, var(--color-vermelho-claro) 12%, transparent);
  color: var(--color-vermelho-claro);
}

.boleto__acao--solta {
  display: none;
}

.dropzone-preenchido .boleto__acao--solta {
  display: inline-flex;
  flex: none;
  inline-size: 40px;
  block-size: 40px;
}

@media (min-width: 640px) {
  .dropzone--compacto .dropzone__titulo {
    flex: 1;
    flex-basis: auto;
  }

  .dropzone--compacto .dropzone__descricao {
    flex-basis: 100%;
    padding-left: 2.25rem;
  }
}

.dropzone-recusado .dropzone,
.dropzone-recusado .boleto {
  border-color: var(--color-vermelho);
  border-style: solid;
  color: var(--color-vermelho);
}

.dropzone-recusado .dropzone__descricao,
.dropzone-recusado .boleto__nome {
  color: var(--color-vermelho);
}

.dark .dropzone-recusado .dropzone,
.dark .dropzone-recusado .boleto,
.dark .dropzone-recusado .dropzone__descricao,
.dark .dropzone-recusado .boleto__nome {
  border-color: var(--color-vermelho-claro);
  color: var(--color-vermelho-claro);
}
