@layer components {
[data-controller="file-upload"] {
  width: 100%;
  position: relative;

  [data-file-upload-target="input"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  [data-file-upload-target="dropZone"] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3);
    background-color: var(--light-gray);
    border: 2px dashed var(--gray);
    border-radius: var(--border-radius);
    cursor: pointer;
    transition: all var(--transition-fast);
    margin-bottom: var(--spacing-3);

    &:hover {
      background-color: var(--lighter-gray);
      border-color: var(--primary-color);
    }

    &.dragover {
      background-color: var(--primary-light);
      border-color: var(--primary-color);
      transform: scale(1.01);
    }

    i {
      font-size: var(--font-size-xl);
      color: var(--primary-color);
    }

    span {
      font-weight: var(--font-weight-medium);
    }
  }

  [data-file-upload-target="preview"] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: var(--spacing-2);
    margin-top: var(--spacing-3);

    @media (min-width: 768px) {
      grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    }
  }
}
.file-preview-item {
  position: relative;
  border-radius: var(--border-radius-sm);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  background-color: var(--white);
  display: flex;
  flex-direction: column;
  height: 180px;

  img {
    width: 100%;
    height: 150px;
    object-fit: cover;
  }
}
.file-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 150px;
  background-color: var(--light-gray);
  color: var(--dark-gray);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
}
.file-name {
  padding: var(--spacing-1) var(--spacing-2);
  font-size: var(--font-size-sm);
  color: var(--dark-gray);
  background-color: var(--white);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
}
.attached-images {
  margin-top: var(--spacing-4);

  h4 {
    margin-bottom: var(--spacing-2);
    font-size: var(--font-size-base);
    color: var(--dark-gray);
  }

  .image-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: var(--spacing-2);

    @media (min-width: 768px) {
      grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    }
  }
}
.image-preview {
  position: relative;
  border-radius: var(--border-radius-sm);
  overflow: hidden;
  box-shadow: var(--shadow-sm);

  img {
    width: 100%;
    height: 150px;
    object-fit: cover;
  }

  .delete-image {
    position: absolute;
    top: var(--spacing-1);
    right: var(--spacing-1);
    background-color: rgba(255, 255, 255, 0.8);
    outline: 1px solid var(--danger-color);
    border-radius: var(--radius-full);
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--danger-color);
    cursor: pointer;
    transition: background-color var(--transition-fast);

    &:hover {
      background-color: rgba(255, 255, 255, 1);
    }

    span {
      display: none;
    }
  }
}
}
