:root{--file-uploader-overlay:var(--dna-overlay-strong);--file-uploader-surface:var(--dna-surface);--file-uploader-surface-muted:var(--dna-surface-muted);--file-uploader-surface-soft:var(--dna-surface-soft);--file-uploader-text:var(--dna-ink);--file-uploader-muted:var(--dna-ink-muted);--file-uploader-subtle:var(--dna-line-strong);--file-uploader-line:var(--dna-line);--file-uploader-line-soft:var(--dna-line-soft);--file-uploader-accent:var(--dna-accent);--file-uploader-accent-muted:var(--dna-accent-muted);--file-uploader-accent-soft:var(--dna-mint-18);--file-uploader-accent-ring:var(--dna-mint-42);--file-uploader-danger:var(--dna-danger);--file-uploader-danger-soft:var(--dna-red-10);--file-uploader-danger-line:var(--dna-red-20);--file-uploader-success:var(--dna-success);--file-uploader-success-soft:var(--dna-success-12);--file-uploader-success-line:var(--dna-success-32);--file-uploader-warning:var(--dna-warning);--file-uploader-warning-soft:var(--dna-warning-18);--file-uploader-gradient:var(--dna-gradient-green-mint);--file-uploader-shine:var(--dna-white-45);--file-uploader-shadow:var(--dna-shadow-modal);--file-uploader-widget-shadow:var(--dna-shadow-medium);--file-uploader-font:var(--dna-font-primary);--file-uploader-radius:var(--dna-radius-md);--file-uploader-radius-soft:16px;--file-uploader-radius-small:12px}#uploadFileOverlay{position:fixed;inset:0;background:var(--file-uploader-overlay);z-index:100500;display:flex;align-items:center;justify-content:center;padding:24px;font-family:var(--file-uploader-font);animation:.18s ease-out uploadFileFadeIn}@keyframes uploadFileFadeIn{from{opacity:0}to{opacity:1}}.uploadFileModal{width:min(640px,100%);max-height:88vh;background:var(--file-uploader-surface);border-radius:var(--file-uploader-radius);box-shadow:var(--file-uploader-shadow);display:flex;flex-direction:column;overflow:hidden;color:var(--file-uploader-text);animation:.32s cubic-bezier(.175,.885,.32,1.275) uploadFilePopIn}@keyframes uploadFilePopIn{from{transform:scale(.92) translateY(8px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.uploadFileHeader{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px 18px;border-bottom:1px solid var(--file-uploader-line-soft);flex-shrink:0;gap:16px}.uploadFileHeaderText{flex:1;min-width:0}.uploadFileTitle{margin:0 0 4px;font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--file-uploader-text)}.uploadFileSubtitle{margin:0;font-size:13px;color:var(--file-uploader-muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.uploadFileFolderTag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;background:var(--file-uploader-accent-soft);color:var(--file-uploader-text);border-radius:12px;font-size:12px;font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploadFileHeaderActions{display:flex;gap:4px;flex-shrink:0}.uploadFileIconBtn{background:0 0;border:none;width:36px;height:36px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--file-uploader-muted);transition:background .15s,color .15s,transform .15s;padding:0}.uploadFileIconBtn:hover{background:var(--file-uploader-surface-muted);color:var(--file-uploader-text)}.uploadFileIconBtn:active{transform:scale(.94)}.uploadFileBody{padding:20px 24px 24px;overflow-y:auto;flex:1}.uploadFileDropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 24px;border:2px dashed var(--file-uploader-subtle);border-radius:14px;background:var(--file-uploader-surface-muted);cursor:pointer;transition:.2s;text-align:center}.uploadFileDropzone:hover,.uploadFileDropzoneActive{border-color:var(--file-uploader-accent);background:var(--file-uploader-accent-soft)}.uploadFileDropzoneActive{transform:scale(1.01);box-shadow:0 0 0 4px var(--file-uploader-accent-ring)}.uploadFileDropzoneIcon{color:var(--file-uploader-accent);margin-bottom:14px;transition:transform .2s}.uploadFileDropzone:hover .uploadFileDropzoneIcon,.uploadFileDropzoneActive .uploadFileDropzoneIcon{transform:translateY(-3px)}.uploadFileDropzoneTitle{font-size:15px;font-weight:600;color:var(--file-uploader-text);margin-bottom:4px}.uploadFileDropzoneSubtitle{font-size:12px;color:var(--file-uploader-muted)}.uploadFileStats{margin-top:18px;padding:14px 16px;background:var(--file-uploader-surface-muted);border:1px solid var(--file-uploader-line-soft);border-radius:12px;animation:.25s ease-out uploadFileFadeSlide}@keyframes uploadFileFadeSlide{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.uploadFileStatsRow{display:flex;justify-content:space-around;align-items:center;margin-bottom:10px;gap:12px}.uploadFileStatsItem{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.uploadFileStatsValue{font-size:16px;font-weight:700;color:var(--file-uploader-text);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.uploadFileStatsLabel{font-size:11px;color:var(--file-uploader-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.uploadFileGlobalProgressTrack{width:100%;height:5px;background:var(--file-uploader-line);border-radius:3px;overflow:hidden}.uploadFileGlobalProgressBar{height:100%;width:0;background:var(--file-uploader-gradient);border-radius:3px;transition:width .4s cubic-bezier(.25, .1, .25, 1);position:relative;overflow:hidden}.uploadFileGlobalProgressBar::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--file-uploader-shine),transparent);animation:1.6s infinite uploadFileShimmer}@keyframes uploadFileShimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}.uploadFileList{margin-top:16px;display:flex;flex-direction:column;gap:8px}.uploadFileTask{padding:12px 14px;background:var(--file-uploader-surface);border:1px solid var(--file-uploader-line-soft);border-radius:12px;transition:.2s;animation:.3s cubic-bezier(.175,.885,.32,1.275) uploadFileTaskIn}@keyframes uploadFileTaskIn{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}.uploadFileTaskTop{display:flex;align-items:center;gap:12px}.uploadFileTaskIcon{width:38px;height:38px;border-radius:10px;background:var(--file-uploader-surface-muted);color:var(--file-uploader-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.2s}.uploadFileTaskInfo{flex:1;min-width:0}.uploadFileTaskName{font-size:14px;font-weight:600;color:var(--file-uploader-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}.uploadFileTaskMeta{font-size:12px;color:var(--file-uploader-muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.uploadFileTaskSize{color:var(--file-uploader-muted);font-variant-numeric:tabular-nums}.uploadFileTaskSep{color:var(--file-uploader-subtle)}.uploadFileTaskStatus{color:var(--file-uploader-muted)}.uploadFileTaskSpeed{color:var(--file-uploader-accent);font-weight:600;font-variant-numeric:tabular-nums}.uploadFileTaskActions{flex-shrink:0}.uploadFileTaskCancel{background:0 0;border:none;width:28px;height:28px;border-radius:8px;cursor:pointer;color:var(--file-uploader-muted);display:inline-flex;align-items:center;justify-content:center;transition:.15s;padding:0}.uploadFileTaskCancel:hover{background:var(--file-uploader-danger-soft);color:var(--file-uploader-danger);transform:scale(1.05)}.uploadFileTaskProgressTrack{margin-top:10px;width:100%;height:4px;background:var(--file-uploader-line);border-radius:2px;overflow:hidden}.uploadFileTaskProgressBar{height:100%;width:0;background:var(--file-uploader-gradient);border-radius:2px;transition:width .3s cubic-bezier(.25, .1, .25, 1)}.uploadFileTaskSettingUp .uploadFileTaskIcon{background:var(--file-uploader-warning-soft);color:var(--file-uploader-warning)}.uploadFileTaskUploading .uploadFileTaskIcon{background:var(--file-uploader-accent-soft);color:var(--file-uploader-accent)}.uploadFileTaskComplete{background:var(--file-uploader-success-soft);border-color:var(--file-uploader-success-line)}.uploadFileTaskComplete .uploadFileTaskIcon{background:var(--file-uploader-success-soft);color:var(--file-uploader-success)}.uploadFileTaskComplete .uploadFileTaskProgressBar{background:var(--file-uploader-success)}.uploadFileTaskComplete .uploadFileTaskStatus{color:var(--file-uploader-success);font-weight:600}.uploadFileTaskError{background:var(--file-uploader-danger-soft);border-color:var(--file-uploader-danger-line)}.uploadFileTaskError .uploadFileTaskIcon{background:var(--file-uploader-danger-soft);color:var(--file-uploader-danger)}.uploadFileTaskError .uploadFileTaskProgressBar{background:var(--file-uploader-danger)}.uploadFileTaskError .uploadFileTaskStatus{color:var(--file-uploader-danger);font-weight:600}.uploadFileTaskAborted{opacity:.6}.uploadFileTaskAborted .uploadFileTaskStatus{color:var(--file-uploader-muted);font-style:italic}.uploadFileWidget{position:fixed;bottom:24px;left:24px;width:320px;max-width:calc(100vw - 48px);background:var(--file-uploader-surface);border-radius:14px;box-shadow:var(--file-uploader-widget-shadow);border:1px solid var(--dna-black-06);z-index:100499;overflow:hidden;font-family:var(--file-uploader-font);color:var(--file-uploader-text);animation:.32s cubic-bezier(.175,.885,.32,1.275) uploadFileWidgetIn}@keyframes uploadFileWidgetIn{from{opacity:0;transform:translateY(20px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.uploadFileWidgetHeader{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;gap:10px;background:var(--file-uploader-surface);border-bottom:1px solid var(--file-uploader-line-soft);transition:background .15s}.uploadFileWidgetHeader:hover{background:var(--file-uploader-surface-muted)}.uploadFileWidgetTitleArea{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.uploadFileWidgetSpinner{width:28px;height:28px;border-radius:8px;background:var(--file-uploader-accent-soft);color:var(--file-uploader-accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;animation:1.6s ease-in-out infinite uploadFilePulse}@keyframes uploadFilePulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 var(--file-uploader-accent-ring)}50%{transform:scale(1.04);box-shadow:0 0 0 6px transparent}}.uploadFileWidgetSpinnerDone{background:var(--file-uploader-success-soft);color:var(--file-uploader-success);animation:none}.uploadFileWidgetTitle{font-size:13px;font-weight:600;color:var(--file-uploader-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.uploadFileWidgetActions{display:flex;gap:2px;flex-shrink:0}.uploadFileWidgetIconBtn{background:0 0;border:none;width:26px;height:26px;border-radius:6px;cursor:pointer;color:var(--file-uploader-muted);display:inline-flex;align-items:center;justify-content:center;transition:.15s;padding:0}.uploadFileWidgetIconBtn:hover{background:var(--file-uploader-surface-muted);color:var(--file-uploader-text)}.uploadFileWidgetBody{padding:10px 14px 14px}.uploadFileWidgetMeta{font-size:12px;color:var(--file-uploader-muted);display:flex;align-items:center;gap:6px;margin-bottom:8px;font-variant-numeric:tabular-nums}.uploadFileWidgetMeta span#uploadFileWidgetSpeed{color:var(--file-uploader-accent);font-weight:600}.uploadFileWidgetDot{color:var(--file-uploader-subtle)}.uploadFileWidgetProgressTrack{width:100%;height:5px;background:var(--file-uploader-line);border-radius:3px;overflow:hidden}.uploadFileWidgetProgressBar{height:100%;width:0;background:var(--file-uploader-gradient);border-radius:3px;transition:width .4s cubic-bezier(.25, .1, .25, 1);position:relative;overflow:hidden}.uploadFileWidgetProgressBar::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--file-uploader-shine),transparent);animation:1.6s infinite uploadFileShimmer}.uploadFileWidgetProgressBarDone{background:var(--file-uploader-success)}.uploadFileWidgetProgressBarDone::after{animation:none;opacity:0}@media (max-width:640px){#uploadFileOverlay{padding:12px}.uploadFileModal{width:100%;max-height:96vh;border-radius:16px}.uploadFileHeader{padding:16px 18px 14px}.uploadFileBody{padding:14px 18px 18px}.uploadFileDropzone{padding:26px 16px}.uploadFileStatsRow{flex-wrap:wrap}.uploadFileWidget{left:12px;right:12px;bottom:12px;width:auto}}