.drop-area{position:relative;border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);text-align:center;cursor:pointer;transition:all var(--transition-normal);background:var(--color-bg-secondary);min-height:140px}.drop-area:hover{border-color:var(--color-accent);background:var(--color-accent-lighter)}.drop-area.dragover{border-color:var(--color-accent);border-style:solid;background:var(--color-accent-light);transform:scale(1.01);box-shadow:var(--shadow-medium)}.drop-area.dragover .drop-icon{transform:translateY(-4px) scale(1.1)}.drop-icon{width:56px;height:56px;color:var(--color-text-tertiary);transition:all var(--transition-normal)}.drop-area:hover .drop-icon{color:var(--color-accent)}.drop-area.dragover .drop-icon{color:var(--color-accent)}.drop-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.drop-subtitle{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.drop-hint{font-size:var(--font-size-xs, .75rem);color:var(--color-text-tertiary);margin-top:var(--space-2)}.drop-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center}.preupload-file-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:240px;overflow-y:auto;padding-right:var(--space-2)}.preupload-file-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-sm);transition:background var(--transition-fast)}.preupload-file-item:hover{background:var(--color-bg-tertiary)}.preupload-file-icon{width:20px;height:20px;flex-shrink:0;color:var(--color-text-tertiary)}.preupload-file-names{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.preupload-original{color:var(--color-text-tertiary);text-decoration:line-through;font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preupload-renamed{color:var(--color-accent);font-weight:var(--font-weight-medium);font-family:monospace;font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preupload-arrow{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.progress-file-list{display:flex;flex-direction:column;gap:var(--space-3)}.progress-file-item{display:flex;flex-direction:column;gap:var(--space-1)}.progress-file-header{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-sm)}.progress-file-name{font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;font-family:monospace;font-size:var(--font-size-xs)}.progress-file-status{font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-shrink:0;margin-left:var(--space-2)}.progress-file-status.done{color:var(--color-success);font-weight:var(--font-weight-semibold)}.progress-file-status.error{color:var(--color-warning)}.progress-bar{width:100%;height:6px;background:var(--color-bg-tertiary);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-accent);border-radius:3px;transition:width .2s ease;min-width:0}.progress-bar-fill.done{background:var(--color-success)}.progress-global{padding-top:var(--space-3);border-top:1px solid var(--color-border-light);margin-top:var(--space-3)}.progress-global-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;margin-bottom:var(--space-2)}.progress-global .progress-bar{height:8px;border-radius:4px}.upload-success{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-6) 0;text-align:center}.upload-success-icon{width:64px;height:64px;color:var(--color-success);animation:checkBounce var(--transition-bounce)}.upload-success-text{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.upload-error-icon{color:var(--color-warning)}.upload-error-message{font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:360px;line-height:var(--line-height-relaxed)}@media (max-width:480px){.drop-area{padding:var(--space-8) var(--space-4);min-height:180px}.drop-icon{width:44px;height:44px}.preupload-file-list{max-height:200px}}.tag-section{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.tag-section-label{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.tag-section-icon{display:flex;color:var(--color-text-tertiary)}.tag-section-optional{font-weight:400;color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.tag-quick-area{display:flex;flex-wrap:wrap;gap:6px}.tag-quick-chip{display:inline-flex;align-items:center;padding:5px 12px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);user-select:none}.tag-quick-chip:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-lighter)}.tag-quick-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;box-shadow:0 1px 3px rgba(67,97,238,.3)}.tag-new-toggle{background:0 0;border:none;color:var(--color-text-tertiary);font-size:var(--font-size-sm);cursor:pointer;padding:var(--space-1) 0;transition:color var(--transition-fast)}.tag-new-toggle:hover{color:var(--color-accent)}.tag-input-row{display:flex;gap:var(--space-2);align-items:center}.tag-new-input{font-size:var(--font-size-base)!important;padding:8px 12px!important;background:var(--color-bg-primary);flex:1;min-width:0}.tag-submit-btn{padding:8px 12px!important;min-height:36px;border-radius:var(--radius-md)!important;flex-shrink:0}.preupload-name-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-tertiary);cursor:pointer;user-select:none}.preupload-name-toggle input{accent-color:var(--color-accent)}.tag-feedback{font-size:var(--font-size-xs);color:var(--color-success);font-weight:var(--font-weight-medium);min-height:1.2em;opacity:0;transition:opacity var(--transition-fast)}.tag-feedback.visible{opacity:1}@keyframes tagChipAppear{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}.tag-quick-chip.just-created{animation:tagChipAppear .4s cubic-bezier(.34,1.56,.64,1) both}.tag-manager-btn{display:inline-flex;align-items:center;gap:6px;margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.tag-manager-btn:hover{color:var(--color-accent)}.tag-manager-add-row{display:flex;gap:var(--space-2);align-items:center}.tag-manager-add-row .input{flex:1;min-width:0}.tag-manager-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:300px;overflow-y:auto}.tag-manager-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--color-bg-secondary);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.tag-manager-item:hover{background:var(--color-bg-tertiary)}.tag-manager-item-editing{flex-direction:column;gap:var(--space-2);align-items:stretch}.tag-manager-edit-row{display:flex;gap:var(--space-2);align-items:center}.tag-manager-edit-row .input{flex:1;min-width:0;padding:4px 8px;font-size:var(--font-size-sm)}.tag-manager-item-editing .color-picker-dropdown,.tag-manager-item-editing .tag-color-picker{padding:0}.tag-manager-edit-row .color-toggle-btn{width:28px;height:28px}.tag-manager-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-right:var(--space-2)}.tag-manager-dot-empty{border:2px dashed var(--color-border);background:0 0!important}.tag-manager-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);flex:1;min-width:0}.tag-manager-actions{display:flex;gap:var(--space-1)}.tag-manager-delete{color:var(--color-text-tertiary)}.tag-manager-delete:hover{color:var(--color-warning)!important}.tag-mode-wrapper{display:flex;flex-direction:column;gap:var(--space-1)}.tag-mode-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary)}.tag-mode-selector{display:flex;border-radius:var(--radius-md);overflow:hidden;border:2px solid var(--color-border);background:var(--color-bg-secondary)}.tag-mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);background:0 0;border:none;cursor:pointer;transition:all .25s ease;white-space:nowrap}.tag-mode-btn:hover:not(.active){color:var(--color-text-secondary);background:var(--color-bg-tertiary)}.tag-mode-btn.active{background:#dcfce7;color:#166534;border-radius:var(--radius-sm)}.tag-mode-btn svg{flex-shrink:0}.heic-banner{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#fff8e1;border:1px solid #f9a825;border-radius:var(--radius-md);color:#8a6d00;font-size:var(--font-size-sm);animation:fadeIn var(--transition-fast) ease}.heic-banner-icon{display:inline-flex;color:#f9a825;flex-shrink:0}.heic-banner-text{flex:1;line-height:var(--line-height-relaxed)}.heic-banner .btn{flex-shrink:0}@media (max-width:480px){.heic-banner{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.heic-banner .btn{align-self:stretch}}.heic-cleanup-list{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto;background:var(--color-bg-secondary);border-radius:var(--radius-sm);padding:var(--space-2)}.heic-cleanup-item{padding:4px var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-family:monospace;border-radius:var(--radius-sm)}.heic-cleanup-item:hover{background:var(--color-bg-tertiary)}.tag-section-warning{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background:#fff8e1;border-left:3px solid #f9a825;border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:#8a6d00;line-height:var(--line-height-relaxed)}.tag-section-warning svg{flex-shrink:0;color:#f9a825}.tag-section-warning strong{font-weight:var(--font-weight-semibold)}