.modal-backdrop{position:fixed;inset:0;background:var(--modal-backdrop);z-index:9999;display:flex;justify-content:center;align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-content{background:var(--surface-card-strong);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);color:var(--text-primary);padding:0;border-radius:16px;border-color:var(--border-glass-bottom);border-top:1px solid var(--border-glass-top);border-left:1px solid var(--border-glass-side);border-right:1px solid var(--border-glass-bottom);border-bottom:1px solid var(--border-glass-bottom);max-width:90vw;max-height:85vh;overflow:hidden;box-shadow:var(--shadow-card);animation:modalSlideUp .25s ease forwards;display:flex;flex-direction:column}@keyframes modalSlideUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close-button{background:transparent;color:color-mix(in srgb,var(--text-secondary) 65%,transparent);border:1px solid var(--input-border);border-radius:8px;font-size:.875rem;font-family:inherit;cursor:pointer;padding:8px 20px;margin-top:8px;transition:color .15s,border-color .15s,background .15s}.modal-close-button:hover{color:var(--text-primary);border-color:color-mix(in srgb,var(--text-secondary) 40%,transparent);background:var(--border-glass-bottom)}.gallery-modal-content{width:450px}.gallery-modal-header{display:flex;align-items:center;justify-content:space-between;padding:22px 20px 18px;border-bottom:1px solid var(--border-primary);flex-shrink:0}.gallery-modal-title{font-family:Manrope,sans-serif;font-size:1rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.gallery-modal-close{background:none;border:none;color:color-mix(in srgb,var(--text-secondary) 45%,transparent);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;transition:color .15s,background .15s}.gallery-modal-close:hover{color:var(--text-primary);background:var(--border-glass-bottom)}.gallery-modal-close .material-symbols-outlined{font-size:1.1rem}.gallery-search-wrap{position:relative;padding:14px 20px 10px;flex-shrink:0}.gallery-search-icon{position:absolute;left:32px;top:50%;transform:translateY(-50%);color:color-mix(in srgb,var(--text-secondary) 40%,transparent);font-size:1.05rem;pointer-events:none}.gallery-search-input{width:100%;box-sizing:border-box;background:var(--input-bg);border:1px solid var(--input-border);border-radius:10px;padding:9px 36px;font-size:.875rem;font-family:inherit;color:var(--text-primary);outline:none;transition:border-color .15s,background .15s}.gallery-search-input:focus{border-color:color-mix(in srgb,var(--brand-primary) 40%,transparent);background:color-mix(in srgb,var(--brand-primary) 3%,transparent)}.gallery-search-input::placeholder{color:color-mix(in srgb,var(--text-secondary) 30%,transparent)}.gallery-search-clear{position:absolute;right:34px;top:50%;transform:translateY(-50%);background:none;border:none;color:color-mix(in srgb,var(--text-secondary) 35%,transparent);cursor:pointer;display:flex;align-items:center;padding:2px;border-radius:4px;transition:color .15s}.gallery-search-clear:hover{color:var(--text-primary)}.gallery-search-clear .material-symbols-outlined{font-size:.95rem}[dir=rtl] .gallery-search-icon{left:auto;right:32px}[dir=rtl] .gallery-search-clear{right:auto;left:30px}.gallery-list-wrap{flex:1 1;overflow-y:auto;padding:8px 20px 12px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--brand-primary) 20%,transparent) transparent}.gallery-list-wrap::-webkit-scrollbar{width:4px}.gallery-list-wrap::-webkit-scrollbar-track{background:transparent}.gallery-list-wrap::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--brand-primary) 20%,transparent);border-radius:2px}.single-loader{color:var(--text-secondary);text-align:center;padding:32px 0;font-size:.875rem}.song-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:5px}.song-list li{display:flex;align-items:center;gap:6px;border-radius:10px;border:1px solid var(--border-primary);background:var(--border-glass-bottom);padding:6px 6px 6px 4px;transition:border-color .15s,background .15s}.song-list li:hover{border-color:color-mix(in srgb,var(--brand-primary) 20%,transparent);background:color-mix(in srgb,var(--brand-primary) 3%,transparent)}.song-list li.dragging{opacity:.45;cursor:-webkit-grabbing;cursor:grabbing}.drag-handle{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;padding:4px 2px;color:color-mix(in srgb,var(--text-secondary) 20%,transparent);flex-shrink:0;display:flex;align-items:center;transition:color .15s}.drag-handle .material-symbols-outlined{font-size:1.1rem}.drag-handle:hover{color:var(--scrollbar-thumb-hover)}.drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.song-load-button{flex:1 1;min-width:0;background:none;border:none;color:var(--text-primary);padding:2px 4px;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:12px;font-size:.875rem;direction:ltr;transition:color .15s}.song-load-button:hover{color:var(--text-bright);background:none}.song-load-button:focus{outline:none;background:none}.song-gallery-image{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid color-mix(in srgb,var(--brand-primary) 18%,transparent);flex-shrink:0}.song-gallery-placeholder{width:44px;height:44px;border-radius:8px;border:1px solid var(--border-primary);background:var(--border-glass-bottom);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--text-secondary) 25%,transparent)}.song-gallery-placeholder .material-symbols-outlined{font-size:1.1rem}.song-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left}.song-title-text{font-size:.875rem;font-weight:600}.song-artist-text,.song-composer-text,.song-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-artist-text,.song-composer-text{font-size:.75rem;color:var(--text-secondary)}.song-delete-button{background:none;border:none;color:color-mix(in srgb,var(--text-secondary) 25%,transparent);padding:6px;border-radius:6px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;transition:color .15s,background .15s}.song-delete-button:hover{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent)}.song-delete-button .material-symbols-outlined{font-size:1.05rem}.song-list li.has-confirm{flex-wrap:wrap}.song-delete-confirm{display:flex;align-items:center;gap:8px;flex-basis:100%;padding:6px 8px 2px;border-top:1px solid var(--input-border);margin-top:2px}.song-delete-confirm-text{flex:1 1;font-size:.8rem;color:color-mix(in srgb,var(--text-secondary) 65%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-delete-confirm-yes{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 25%,transparent);padding:3px 12px;border-radius:6px;font-size:.78rem;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.song-delete-confirm-yes:hover{background:color-mix(in srgb,var(--danger) 22%,transparent);color:color-mix(in srgb,var(--danger) 80%,white)}.song-delete-confirm-no{background:none;border:1px solid color-mix(in srgb,var(--text-secondary) 15%,transparent);color:color-mix(in srgb,var(--text-secondary) 45%,transparent);padding:3px 12px;border-radius:6px;font-size:.78rem;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.song-delete-confirm-no:hover{background:color-mix(in srgb,var(--text-secondary) 6%,transparent);color:var(--text-primary)}.gallery-modal-footer{padding:12px 20px 16px;border-top:1px solid var(--border-primary);display:flex;align-items:center;flex-shrink:0}.modal-import-button{display:inline-flex;align-items:center;gap:6px;cursor:pointer;background:transparent;color:color-mix(in srgb,var(--text-secondary) 50%,transparent);border:1px solid var(--input-border);border-radius:8px;font-size:.8rem;font-family:inherit;padding:7px 14px;transition:color .15s,border-color .15s,background .15s}.modal-import-button:hover{color:var(--text-bright);border-color:color-mix(in srgb,var(--brand-primary) 30%,transparent);background:color-mix(in srgb,var(--brand-primary) 5%,transparent)}[dir=rtl] .song-load-button{flex-direction:row-reverse}[dir=rtl] .song-info{text-align:right}[dir=rtl] .song-list{direction:rtl}