.file-uploader { width: 100%; }
.file-uploader .file-uploader__label { display: block; color: #404040; margin: 15px 0 15px 0; }
.file-uploader .file-uploader__label span { color: #c62828; }
.file-uploader .file-uploader__dropzone { position: relative; padding: 26px 20px; border: 2px dashed #d2cdd5; border-radius: 12px; box-sizing: border-box; background: #fcfbfd; text-align: center; cursor: pointer; transition: border-color 150ms ease, background-color 150ms ease; }
.file-uploader .file-uploader__dropzone:hover, .file-uploader .file-uploader__dropzone.is-over { border-color: #8a3492; background: #f7edf8; }
.file-uploader .file-uploader__dropzone:focus-visible { outline: 3px solid rgba(138, 52, 146, 0.2); outline-offset: 2px; border-color: #8a3492; }
.file-uploader .file-uploader__dropzone-icon { font-size: 30px; line-height: 1; }
.file-uploader .file-uploader__dropzone-title { margin-top: 6px; font-size: 14.5px; font-weight: 700; }
.file-uploader .file-uploader__dropzone-title u { color: #42984a; cursor: pointer; }
.file-uploader .file-uploader__dropzone-description { margin-top: 4px; color: #77727c; font-size: 12px; line-height: 1.5; }
.file-uploader .file-uploader__dropzone input[type="file"] { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; opacity: 0; pointer-events: none; }
.file-uploader .file-uploader__files { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px; }
.file-uploader .file-uploader__file { position: relative; flex: 0 0 120px; width: 120px; overflow: visible; border: 1px solid #ddd; border-radius: 12px; background: #fff; }
.file-uploader .file-uploader__preview { display: flex; align-items: center; justify-content: center; width: 120px; height: 90px; overflow: hidden; border-radius: 11px 11px 0 0; background: linear-gradient(160deg, #e4d8e8, #d5e6d8); }
.file-uploader .file-uploader__preview img, .file-uploader .file-uploader__preview video { display: block; width: 100%; height: 100%; object-fit: cover; }
.file-uploader .file-uploader__extension { color: #8a3492; font-size: 20px; font-weight: 800; text-transform: uppercase; }
.file-uploader .file-uploader__details { padding: 8px; }
.file-uploader .file-uploader__name { overflow: hidden; font-size: 11px; font-weight: 700; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.file-uploader .file-uploader__status { min-height: 15px; margin-top: 3px; color: #77727c; font-size: 10px; }
.file-uploader .file-uploader__progress { height: 4px; margin-top: 5px; overflow: hidden; border-radius: 4px; background: #e5e5e5; }
.file-uploader .file-uploader__progress-bar { width: 0; height: 100%; background: #8a3492; transition: width 150ms linear; }
.file-uploader .file-uploader__remove { position: absolute; top: -8px; right: -8px; z-index: 3; display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin: 0; padding: 0; border: 2px solid #fff; border-radius: 50%; background: #333038; color: #fff; font-size: 16px; line-height: 1; cursor: pointer; }
.file-uploader .file-uploader__remove:hover { background: #9b2fa6; }
.file-uploader .file-uploader__file.is-complete { border-color: #75a97b; }
.file-uploader .file-uploader__file.is-complete .file-uploader__progress-bar { background: #42984a; }
.file-uploader .file-uploader__file.is-error { border-color: #c62828; }
.file-uploader .file-uploader__file.is-error .file-uploader__status { color: #c62828; }
.file-uploader .file-uploader__error { margin-top: 12px; padding: 10px 12px; border: 1px solid #e2a0a0; border-radius: 8px; background: #fff1f1; color: #a00000; font-size: 13px; }

@media (max-width: 40rem) {
	.file-uploader .file-uploader__dropzone { padding: 22px 14px; }
	.file-uploader .file-uploader__dropzone-title { font-size: 14px; }
	.file-uploader .file-uploader__files { gap: 10px; }
	.file-uploader .file-uploader__file { flex-basis: calc(32.333% - 7px); width: calc(32.333% - 7px); min-width: 90px; }
	.file-uploader .file-uploader__preview { width: 100%; height: 80px; }
}