.progress-ring{flex-shrink:0;display:block}.progress-ring__track{stroke:var(--border-secondary)}.progress-ring__arc{stroke:var(--accent-primary);transform-box:fill-box;transform-origin:50%;transition:stroke-dashoffset var(--dur-300) var(--ease-primary);transform:rotate(-90deg)}.progress-ring--indeterminate{animation:.8s linear infinite progress-ring-spin}@keyframes progress-ring-spin{to{transform:rotate(360deg)}}
.upload-tray{z-index:1500;border-radius:var(--radius-12);background:var(--bg-modal);border:1px solid var(--border-tertiary);width:320px;box-shadow:var(--shadow-12dp);animation:tray-enter var(--dur-250) var(--ease-out) both;position:fixed;bottom:24px;right:24px;overflow:hidden}@keyframes tray-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.upload-tray__header{background:var(--bg-card);border-bottom:1px solid var(--border-container);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:12px 14px;display:flex}.upload-tray__title{min-width:0;font-size:var(--t-body-size);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-weight:600;overflow:hidden}.upload-tray__eta-row{background:var(--bg-popover);border-bottom:1px solid var(--border-container);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:2px 14px;display:flex}.upload-tray__eta-text{min-width:0;font-size:var(--t-body-sm-size);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;flex:auto;overflow:hidden}.upload-tray__eta-cancel{cursor:pointer;font-size:var(--t-body-sm-size);color:var(--text-secondary);border-radius:var(--radius-4);transition:color var(--dur-150), background var(--dur-150);background:0 0;border:none;flex-shrink:0;margin-right:-8px;padding:2px 8px;font-weight:500}.upload-tray__eta-cancel:hover{color:var(--text-primary);background:var(--bg-hover)}.upload-tray__icon-btn{width:24px;height:24px;color:var(--text-tertiary);border-radius:var(--radius-4);cursor:pointer;transition:color var(--dur-150), background var(--dur-150);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.upload-tray__icon-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.upload-tray__icon-btn svg{width:14px;height:14px}.upload-tray__list{transition:grid-template-rows var(--dur-250) var(--ease-in-out);grid-template-rows:1fr;display:grid}.upload-tray__list--collapsed{grid-template-rows:0fr}.upload-tray__list-clip{min-height:0;overflow:hidden}.upload-tray__list-scroll{max-height:320px;overflow-y:auto}.upload-tray__file{border-bottom:1px solid var(--border-container);grid-template-columns:1fr 20px;align-items:center;gap:8px;padding:8px 14px;display:grid}.upload-tray__file:last-child{border-bottom:0}.upload-tray__file--openable{cursor:pointer}.upload-tray__file--openable:hover{background:var(--bg-hover)}.upload-tray__file--openable:focus-visible{background:var(--bg-hover);outline:2px solid var(--border-focused);outline-offset:-2px}.upload-tray__name-cell{align-items:center;gap:8px;min-width:0;display:flex}.upload-tray__name-cell--pending{opacity:.55}.upload-tray__type-icon{width:16px;height:16px;color:var(--text-tertiary);flex-shrink:0}.upload-tray__filename{min-width:0;font-size:var(--t-body-sm-size);color:var(--text-body);white-space:nowrap;text-overflow:ellipsis;line-height:var(--t-body-sm-lh);overflow:hidden}.upload-tray__status{width:20px;height:20px;color:var(--text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.upload-tray__status--done{color:var(--text-success)}.upload-tray__status--failed{color:var(--text-error)}.upload-tray__status--cancelled{color:var(--text-disabled)}.upload-tray__status svg{width:19.7px;height:19.7px}.upload-tray__status svg.upload-tray__glyph--prohibit{width:19px;height:19px}.upload-tray__glyph{justify-content:center;align-items:center;display:flex}.upload-tray__cancel{cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-4);transition:color var(--dur-150), background var(--dur-150);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:none;position:absolute;inset:0}.upload-tray__cancel:hover{color:var(--text-primary);background:var(--bg-hover)}.upload-tray__file:hover .upload-tray__status--cancellable .upload-tray__glyph{visibility:hidden}.upload-tray__file:hover .upload-tray__status--cancellable .upload-tray__cancel{display:flex}.upload-tray__retry{cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-4);transition:color var(--dur-150), background var(--dur-150);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:none;position:absolute;inset:0}.upload-tray__retry:hover{color:var(--text-primary);background:var(--bg-hover)}.upload-tray__status .upload-tray__retry svg{width:16px;height:16px}.upload-tray__file:hover .upload-tray__status--retryable .upload-tray__glyph{visibility:hidden}.upload-tray__file:hover .upload-tray__status--retryable .upload-tray__retry{display:flex}.upload-tray__group-row{grid-template-columns:1fr auto 20px}.upload-tray__group-count{font-size:var(--t-body-sm-size);color:var(--text-tertiary);white-space:nowrap}
