.file-upload-component{width:100%}.file-upload-trigger{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.file-upload-trigger .composer-attach{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:.85rem;font-weight:500;cursor:pointer;padding:4px 10px;border-radius:6px;transition:all .2s ease;position:relative;border:1px solid transparent;background:0 0}.file-upload-trigger .composer-attach:hover{color:#06f;background:#f0f7ff;border-color:#bfdbfe}.file-upload-trigger .composer-attach:focus-visible{outline:2px solid #06f;outline-offset:2px}.file-upload-trigger .composer-attach svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;color:inherit}.file-upload-trigger .composer-attach input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-upload-trigger .composer-attach .file-count{background:#06f;color:#fff;border-radius:50%;font-size:.65rem;padding:1px 6px;font-weight:700;min-width:18px;text-align:center;display:inline-block;line-height:1.4}.file-upload-hint{font-size:.78rem;color:#94a3b8;font-weight:400}.file-preview-container{margin:10px 0}.file-preview-list{display:flex;flex-wrap:wrap;gap:6px;min-height:0}.file-preview-list:empty{display:none}.file-preview-list .file-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 6px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;font-size:.78rem;color:#0c1a2e;text-decoration:none;transition:all .2s ease;max-width:250px;position:relative;padding-right:24px;animation:fileSlideIn .25s ease}.file-preview-list .file-chip .file-icon{display:flex;align-items:center;color:#64748b;flex-shrink:0}.file-preview-list .file-chip .file-icon svg{width:14px;height:14px;fill:none;stroke:currentColor}.file-preview-list .file-chip .file-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.file-preview-list .file-chip .file-size{color:#94a3b8;font-size:.7rem;white-space:nowrap;flex-shrink:0}.file-preview-list .file-chip .file-remove{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:0 0;border:none;color:#94a3b8;cursor:pointer;padding:2px;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1}.file-preview-list .file-chip .file-remove:hover{color:#ef4444;background:#fef2f2}.file-preview-list .file-chip .file-remove svg{width:12px;height:12px;fill:none;stroke:currentColor}.file-preview-list .file-chip:hover{border-color:#06f;background:#f0f7ff}.file-error-message{margin-top:8px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:.85rem;font-weight:500;display:flex;align-items:center;gap:8px}.file-error-message.show{display:flex!important}.file-error-message svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor}@keyframes fileSlideIn{from{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fileSlideOut{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.95)}}.file-preview-list .file-chip.removing{animation:fileSlideOut .2s ease forwards}@media (max-width:600px){.file-preview-list .file-chip{max-width:180px;font-size:.72rem;padding:3px 20px 3px 4px}.file-preview-list .file-chip .file-icon svg{width:12px;height:12px}.file-upload-trigger .composer-attach{font-size:.78rem;padding:3px 8px}.file-upload-trigger .composer-attach span:not(.file-count){display:none}}