/* We don't use 2xl, 3xl, 4xl map keys because in some Intellij configurations, these keys are reformatted */
.joy-dropzone {
  --spinner-size: 20px;
  font-family: var(--joy-font-family-base);
  font-size: var(--joy-font-size-primary-300);
}
.joy-dropzone label {
  width: 100%;
}
.joy-dropzone input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.joy-dropzone__area {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  background-color: white;
  border: var(--joy-form-border-width) dashed var(--joy-color-neutral-40);
  padding: var(--joy-core-spacing-4);
  border-radius: var(--joy-core-radius-3);
  transition: all 0.3s ease;
  font-size: var(--joy-font-size-primary-400);
  color: var(--joy-color-text-body);
  width: 100%;
}
@media screen and (max-width: 700px) {
  .joy-dropzone__area {
    padding: var(--joy-core-spacing-2);
  }
}
.joy-dropzone__description {
  font-weight: var(--joy-font-weight-normal);
  font-size: var(--joy-font-size-primary-400);
  line-height: var(--joy-line-height-large);
  font-family: var(--joy-font-family-base);
  margin: 0;
  text-align: left;
  flex: 1 0;
  min-width: 100px;
}
.joy-dropzone__description strong {
  cursor: pointer;
}
.joy-dropzone__plus-icon, .joy-dropzone__file-icon {
  --dropzone-icon-size: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--dropzone-icon-size);
  height: var(--dropzone-icon-size);
  border-radius: var(--joy-core-radius-2);
  flex: 0 0 auto;
}
.joy-dropzone__plus-icon {
  background-color: var(--joy-color-secondary-10);
}
.joy-dropzone__file-icon {
  background-color: var(--joy-color-success-10);
}
.joy-dropzone__file-icon joy-icon {
  color: var(--joy-color-neutral-60);
}
.joy-dropzone__cta {
  margin-left: auto;
}
.joy-dropzone__cta joy-icon {
  cursor: pointer;
  color: var(--joy-color-neutral-60);
  transition: color 0.3s ease;
}
.joy-dropzone__cta joy-icon:hover {
  color: var(--joy-color-neutral-40);
}
.joy-dropzone__info {
  margin-top: var(--joy-core-spacing-2);
  color: var(--joy-color-neutral-40);
  font-size: var(--joy-font-size-primary-200);
}
.joy-dropzone__loader {
  position: relative;
  left: calc(var(--spinner-size) / -2);
  height: var(--spinner-size);
  width: var(--spinner-size);
  margin: 0 auto var(--joy-core-spacing-4);
}
.joy-dropzone__item {
  display: flex;
  justify-content: flex-start;
  flex: 1 0;
  min-width: 100px;
  align-items: baseline;
  text-align: left;
}
.joy-dropzone__item span {
  display: block;
  color: var(--joy-color-neutral-60);
  margin-right: var(--joy-core-spacing-2);
  font-weight: var(--joy-font-weight-bold);
  font-size: var(--joy-font-size-primary-300);
  line-height: var(--joy-line-height-large);
  font-family: var(--joy-font-family-base);
}
.joy-dropzone__file___wrapper:not(:last-child) {
  margin-bottom: var(--joy-core-spacing-4);
}
.joy-dropzone__file___wrapper:last-child {
  margin-bottom: 0;
}
.joy-dropzone:hover:not(.joy-dropzone--disabled, .joy-dropzone--invalid) .joy-dropzone__area, .joy-dropzone--focusing .joy-dropzone__area {
  border-color: var(--joy-color-secondary-30);
}
.joy-dropzone--invalid .joy-dropzone__area {
  border-color: var(--joy-color-error-50);
  border-style: solid;
}
.joy-dropzone--valid .joy-dropzone__area {
  border-style: solid;
  border-color: var(--joy-color-neutral-30);
}
.joy-dropzone--disabled label {
  cursor: not-allowed;
}
.joy-dropzone--disabled .joy-dropzone__area {
  cursor: not-allowed;
  border-color: var(--joy-color-neutral-30);
}