.file-upload{background-image:url(/file-uploader.svg);border-radius:4px;transition:border-color .3s ease-in-out,transform .2s ease-in-out,box-shadow .3s ease-in-out,opacity .2s ease-in-out}.file-upload__info{flex-direction:column;align-items:center;gap:4px;animation:.3s ease-in-out fadeInUp;display:flex}.file-upload--dragging{background-color:var(--color-background-active)}.file-upload--loading{opacity:.7;pointer-events:none}.file-upload--loading .file-upload__icon{animation:1.5s ease-in-out infinite pulse}.file-upload--full{opacity:.6;cursor:not-allowed;border-color:#ccc}.file-upload__overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:inherit;z-index:10;border:2px solid;justify-content:center;align-items:center;animation:.2s ease-in-out fadeIn;display:flex;position:absolute;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.file-upload input[type=file]:focus-visible+*{outline:2px solid var(--color-green-500);outline-offset:2px}
