    .tc-storage-upload { display: grid; gap: 1rem; }
    .tc-storage-upload-help { color: #64748b; font-size: .875rem; }
    .tc-storage-upload-dropzone { display: grid; justify-items: center; gap: .4rem; padding: 2rem 1rem; border: 2px dashed #94a3b8; border-radius: .75rem; background: #f8fafc; cursor: pointer; text-align: center; transition: background .15s, border-color .15s; }
    .tc-storage-upload-dropzone:hover, .tc-storage-upload-dropzone:focus-visible, .tc-storage-upload-dropzone-active { border-color: var(--primary-500, #3b82f6); background: #eff6ff; outline: none; }
    .tc-storage-upload-dropzone-disabled { cursor: wait; opacity: .65; }
    .tc-storage-upload-icon { width: 2rem; height: 2rem; color: var(--primary-600, #2563eb); }
    .tc-storage-upload-hint { color: #64748b; font-size: .8rem; }
    .tc-storage-upload-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
    .tc-storage-upload-list { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
    .tc-storage-upload-file { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .55rem .75rem; border: 1px solid #e2e8f0; border-radius: .5rem; }
    .tc-storage-upload-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .875rem; }
    .tc-storage-upload-size { flex: none; color: #64748b; font-size: .75rem; }
    .tc-storage-upload-remove { flex: none; color: #64748b; cursor: pointer; font-size: .75rem; }
    .tc-storage-upload-remove:hover { color: #dc2626; }
    .tc-storage-upload-progress-head { display: flex; justify-content: space-between; gap: .75rem; margin-bottom: .4rem; font-size: .8rem; }
    .tc-storage-upload-track { height: .6rem; overflow: hidden; border-radius: 999px; background: #e2e8f0; }
    .tc-storage-upload-fill { height: 100%; border-radius: 999px; background: var(--primary-500, #3b82f6); transition: width .15s ease-out; }
    .tc-storage-upload-fill-processing { width: 35%; animation: tc-storage-upload-processing 1.2s ease-in-out infinite alternate; }
    @keyframes tc-storage-upload-processing { from { transform: translateX(-100%); } to { transform: translateX(290%); } }
    .tc-storage-upload-actions { display: flex; justify-content: space-between; gap: .75rem; margin-top: .25rem; padding-top: 1rem; border-top: 1px solid #e5e7eb; }
    .tc-storage-upload-actions-primary { margin-left: auto; }
    .tc-storage-upload-success { color: #15803d; font-size: .875rem; }
    .tc-storage-upload-error { color: #b91c1c; font-size: .875rem; }
    .dark .tc-storage-upload-help, .dark .tc-storage-upload-hint, .dark .tc-storage-upload-size, .dark .tc-storage-upload-remove { color: #94a3b8; }
    .dark .tc-storage-upload-dropzone { border-color: #64748b; background: #1f2937; }
    .dark .tc-storage-upload-dropzone:hover, .dark .tc-storage-upload-dropzone:focus-visible, .dark .tc-storage-upload-dropzone-active { border-color: var(--primary-400, #60a5fa); background: #172554; }
    .dark .tc-storage-upload-file { border-color: #475569; }
    .dark .tc-storage-upload-track { background: #334155; }
    .dark .tc-storage-upload-actions { border-color: #475569; }
    .dark .tc-storage-upload-success { color: #4ade80; }
    .dark .tc-storage-upload-error { color: #f87171; }
    @media (prefers-reduced-motion: reduce) { .tc-storage-upload-fill-processing { animation: none; width: 100%; } }
