.upload-container,.upload-field{display:flex;flex-direction:column;gap:var(--spacing-xs,4px);width:100%}.upload-label{font-size:var(--font-size-sm,.8rem);font-weight:500;color:var(--label-color,#6b7280);margin-bottom:2px}.upload-dropzone{display:flex;align-items:center;gap:var(--spacing-sm,6px);padding:6px 10px;border:1.5px dashed var(--border-color,#d1d5db);border-radius:var(--border-radius,6px);background:var(--background-light,#f9fafb);cursor:pointer;transition:border-color .15s,background .15s;min-height:38px;user-select:none}.upload-dropzone.dragging,.upload-dropzone:hover:not(.disabled){border-color:var(--primary-color,#3b82f6);background:rgba(59,130,246,.04)}.upload-dropzone.disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.upload-hidden-input,.upload-input{display:none}.upload-dz-icon,.upload-icon-symbol{font-size:20px;color:var(--primary-color,#3b82f6);line-height:1;flex-shrink:0}.upload-dz-text,.upload-text{font-size:var(--font-size-sm,.82rem);color:var(--secondary-color,#6b7280)}.upload-dz-action{font-size:var(--font-size-sm,.82rem);color:var(--primary-color,#3b82f6);font-weight:500;text-decoration:underline;text-decoration-style:dotted}.upload-dz-hint,.upload-hint{font-size:var(--font-size-xs,.73rem);color:#9ca3af;margin-left:auto}.upload-file-list{display:flex;flex-direction:column;gap:3px;margin-top:4px}.upload-file{display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--background-color,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:5px;min-height:36px;transition:background .1s}.upload-file:hover {background:var(--background-light,#f9fafb)}.upload-file--saved{background:#f0f9ff;border-color:#bae6fd}.upload-file--saved:hover {background:#e0f2fe}.file-type-icon{font-size:18px;color:var(--secondary-color,#6b7280);flex-shrink:0;line-height:1}.file-info{flex:1;display:flex;align-items:baseline;gap:8px;min-width:0}.file-name{font-size:var(--font-size-sm,.82rem);color:var(--text-color,#1f2937);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.file-size{font-size:var(--font-size-xs,.73rem);color:#9ca3af;flex-shrink:0}.file-upload-status{display:flex;flex-direction:column;gap:2px}.file-progress{height:3px;background:var(--background-color,#e5e7eb);border-radius:2px;overflow:hidden;width:80px}.progress-bar{height:100%;background:var(--primary-color,#3b82f6);transition:width .2s ease;border-radius:2px}.file-status-text{font-size:.7rem;color:var(--primary-color,#3b82f6)}.file-upload-error{font-size:.7rem;color:var(--error-color,#ef4444)}.remove-file,.upload-file-action,.upload-file-download{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background:none;color:#9ca3af;cursor:pointer;flex-shrink:0;text-decoration:none;transition:color .15s,background .15s}.upload-file-download:hover {color:var(--primary-color,#3b82f6);background:rgba(59,130,246,.08)}.remove-file:hover:not(:disabled){color:var(--error-color,#ef4444);background:rgba(239,68,68,.08)}.remove-file:disabled {opacity:.4;cursor:not-allowed}.remove-file .material-symbols-outlined,.upload-file-action .material-symbols-outlined{font-size:16px}.upload-button{margin-top:4px;padding:5px 12px;background:var(--primary-color,#3b82f6);color:#fff;border:none;border-radius:5px;font-size:var(--font-size-sm,.82rem);cursor:pointer;transition:opacity .15s;align-self:flex-start}.upload-button:hover:not(:disabled){opacity:.88}.upload-button:disabled {opacity:.5;cursor:not-allowed}.upload-error{font-size:var(--font-size-xs,.73rem);color:var(--error-color,#ef4444);padding:2px 0}.upload-error-placeholder{min-height:0}.upload-sm .upload-dropzone{min-height:30px;padding:4px 8px}.upload-sm .upload-icon-symbol{font-size:16px}.upload-sm .upload-file{min-height:30px}.upload-lg .upload-dropzone{min-height:54px;padding:10px 14px}.upload-lg .upload-icon-symbol{font-size:24px}@media (max-width: 600px){.file-name{max-width:140px}}.upload-container{display:flex;flex-direction:column;gap:var(--spacing-md);font-family:system-ui,-apple-system,sans-serif;width:100%}.upload-label{display:flex;flex-direction:column;gap:var(--spacing-sm)}.upload-label-text{font-size:var(--font-size-md);font-weight:500;color:var(--secondary-color)}.upload-required{color:var(--error-color);margin-left:2px}.upload-dropzone{border:2px dashed var(--border-color);border-radius:6px;padding:var(--spacing-lg);text-align:center;background-color:var(--background-light);transition:all .2s ease;cursor:pointer}.upload-dropzone:hover:not(.disabled){border-color:var(--primary-color);background-color:rgba(59,130,246,.05)}.upload-dropzone.dragging{border-color:var(--primary-color);background-color:rgba(59,130,246,.1)}.upload-dropzone.disabled{background-color:var(--background-color);cursor:not-allowed;opacity:.65}.upload-input{display:none}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.upload-text{font-size:var(--font-size-md);color:var(--secondary-color)}.upload-hint{font-size:var(--font-size-sm);color:#6b7280}.upload-file-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.upload-file{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);background-color:#fff;border:1px solid var(--border-color);border-radius:6px}.file-icon,.file-preview{width:48px;height:48px;border-radius:4px;overflow:hidden}.file-preview img{width:100%;height:100%;object-fit:cover}.file-icon{display:flex;align-items:center;justify-content:center;color:var(--secondary-color)}.file-info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-sm);min-width:0}.file-name{font-size:var(--font-size-md);color:var(--secondary-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:var(--font-size-sm);color:#6b7280}.file-progress{height:4px;background-color:var(--background-color);border-radius:2px;overflow:hidden;margin-top:var(--spacing-sm)}.progress-bar{height:100%;background-color:var(--primary-color);transition:width .2s ease}.remove-file{display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);border:none;background:none;color:#6b7280;cursor:pointer;transition:all .2s ease;border-radius:4px}.remove-file:hover:not(:disabled){color:var(--error-color);background-color:rgba(220,38,38,.1)}.remove-file:disabled {opacity:.65;cursor:not-allowed}.upload-error{font-size:var(--font-size-sm);color:var(--error-color);min-height:1rem}.upload-sm .upload-dropzone{padding:var(--spacing-sm)}.upload-sm .file-icon,.upload-sm .file-preview,.upload-sm .upload-placeholder svg{width:36px;height:36px}.upload-lg .upload-dropzone{padding:calc(var(--spacing-lg) * 1.5)}.upload-lg .file-icon,.upload-lg .file-preview,.upload-lg .upload-placeholder svg{width:64px;height:64px}.upload-button{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--primary-color);color:white;border:none;border-radius:6px;font-size:var(--font-size-md);cursor:pointer;transition:all .2s ease}.upload-button:disabled {opacity:.65;cursor:not-allowed}.upload-button:hover:not(:disabled){opacity:.9}@media (max-width: 768px){.upload-dropzone{padding:var(--spacing-md)}.file-icon,.file-preview{width:36px;height:36px}.upload-text{font-size:var(--font-size-sm)}}