.upload-files-input {
    width           : 100%;
    height          : 150px;
    background-color: #f5f5f5;
    border          : 2px dashed #ccc;
    border-radius   : 5px;
    overflow        : hidden;
    position        : relative;
    cursor          : pointer;
    margin-bottom   : 5px;
    display         : flex;
    flex-direction  : column;
    align-items     : center;
    justify-content : center;
}

.upload-files-input.active {
    border: 2px dashed #2271b1 !important;
    background-color: #d6e8f7;
}
.upload-files-input.active .file-icon {
    color: #2271b1;
}

.upload-files-input:hover {
    border-color: #aaa;
}

.upload-files-input input[type=file] {
    position: absolute;
    top     : 0;
    left    : 0;
    width   : 100%;
    height  : 100%;
    opacity : 0;
    cursor  : pointer;
}

.upload-files-input .file-icon {
    font-size    : 48px;
    color        : #888;
    margin-bottom: 8px;
}

.upload-files-input .file-name {
    color      : #444;
    font-weight: bold;
    text-align : center;
}

.selected-files,
.selected-images {
    display: none;
}

.selected-files-grid,
.selected-images-grid {
    display       : flex;
    flex-wrap     : wrap;
    gap           : 15px;
    margin-bottom : 20px;
}

.image-preview-container {
    position  : relative;
    height    : 200px;
    width     : 32%;
    max-width : 100%;
}

.files-preview-container {
    position         : relative;
    width            : 32%;
    max-width        : 100%;
    background-color : white;
}

.image-preview {
    display        : flex;
    align-items    : center;
    justify-content: center;
    height         : 100%;
    width          : 100%;
    border         : 1px solid var(--border);
    background     : repeating-conic-gradient(rgb(248,249,251) 0, rgb(248,249,251) 25%, transparent 0, transparent 50%) 50% / 20px 20px;
}

.image-preview img {
    height: 100%;
    width : auto;
}

.image-preview-delete,
.file-preview-delete {
    display         : flex;
    align-items     : center;
    justify-content : center;
    position        : absolute;
    top             : 10px;
    right           : 10px;
    color           : var(--red-500);
    background-color: var(--slate-200);
    border-radius   : 50px;
    height          : 36px;
    width           : 36px;
    cursor          : pointer;
    box-shadow      : var(--shadow-xs);
}

.image-preview-delete svg,
.file-preview-delete svg {
    height: 20px;
    width : 20px;
}

.image-preview-delete:hover,
.file-preview-delete:hover {
    color           : white;
    background-color: var(--red-600);
}

.file-preview-delete {
    top      : 50%;
    transform: translateY(-50%);
}