.custom-file-upload-container{width:100%}.custom-file-upload{position:relative;width:35%;min-width:200px;aspect-ratio:1/1;border:2px dashed #d0d0d0;border-radius:.75rem;text-align:center;cursor:pointer;transition:all .3s ease;background:white;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.custom-file-upload:hover:not(.disabled){border-color:#1a1a1a;background:#fafafa}.custom-file-upload.has-file{border-style:solid;border-color:#1a1a1a;padding:0}.custom-file-upload.has-error{border-color:#dc2626}.custom-file-upload.disabled{opacity:.5;cursor:not-allowed}.custom-file-upload.dragging{border-color:#1a1a1a;background:linear-gradient(135deg,rgba(102,126,234,.1),rgba(118,75,162,.1));border-style:solid;transform:scale(1.02);box-shadow:0 8px 24px rgba(102,126,234,.2)}.custom-file-upload.dragging-invalid{border-color:#dc2626;background:linear-gradient(135deg,rgba(220,38,38,.1),rgba(185,28,28,.1));border-style:solid;transform:scale(1.02);box-shadow:0 8px 24px rgba(220,38,38,.3)}.upload-prompt{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem}.upload-icon{color:#666;margin-bottom:.25rem;width:32px;height:32px}.upload-text{font-size:.75rem;font-weight:600;color:var(--text-primary);margin:0}.upload-hint{font-size:.625rem;color:var(--text-secondary);margin:0;line-height:1.2}.file-preview{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:1rem}.preview-image,.preview-video{width:100%;height:100%;object-fit:contain;border-radius:.5rem}.preview-video{object-fit:contain;background:#000}.file-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,rgba(0,0,0,.8) 0,rgba(0,0,0,.6) 70%,transparent);padding:1rem .75rem .75rem;color:white;opacity:0;transition:opacity .3s ease}.custom-file-upload:hover .file-overlay{opacity:1}.file-name-overlay{font-size:.875rem;font-weight:600;margin:0 0 .25rem;word-break:break-word;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.file-size-overlay{font-size:.75rem;opacity:.9;margin:0}.audio-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;width:100%;height:100%;background:#f9fafb}.audio-icon{color:#666;opacity:.7}.audio-player{width:90%;max-width:300px}.upload-error-inside{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem;width:100%;height:100%;justify-content:center}.error-icon{color:#dc2626;opacity:.9}.error-text{font-size:.875rem;font-weight:600;color:#dc2626;margin:0;text-align:center;line-height:1.4}.error-hint{font-size:.75rem;color:#991b1b;margin:0;opacity:.8}.upload-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;z-index:10;border-radius:.75rem}.upload-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#1a1a1a;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}