.direct-download-upload {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: stretch;
  margin-top: 12px;
}

.direct-download-dropzone {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  padding: 9px 11px;
  border: 1px dashed rgba(255, 255, 255, .28);
  border-radius: 9px;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}

.direct-download-dropzone:hover,
.direct-download-dropzone.is-dragging {
  border-color: rgba(255, 255, 255, .65);
  background: rgba(255, 255, 255, .07);
}

.direct-download-dropzone.has-files { border-style: solid; }
.direct-download-dropzone input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.direct-download-label {
  font-weight: 700;
  font-size: .86rem;
  line-height: 1.2;
}
.direct-download-dropzone small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  opacity: .78;
}
.direct-download-upload .button {
  align-self: stretch;
  min-width: 72px;
  padding-inline: 11px;
}
.direct-download-upload .button:disabled {
  opacity: .45;
  cursor: default;
}

@media (max-width: 480px) {
  .direct-download-upload { grid-template-columns: 1fr; }
  .direct-download-upload .button { width: 100%; }
}
