.songs-table{flex-direction:column;display:flex}.songs-header-row{grid-template-columns:1fr 140px 80px var(--control-lg);background:var(--color-surface-alt);border-bottom:var(--songs-divider);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.78rem;font-weight:600;display:grid}.songs-header-row .header-sortable{width:100%;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:.35rem;margin:0;padding:0;transition:color .15s,background-color .15s;display:inline-flex}.songs-header-row .header-sortable:hover,.songs-header-row .header-sortable:focus-visible{color:var(--color-text);background:var(--color-surface-hover);outline:none}.songs-header-row .header-sortable.is-active{color:var(--color-primary)}.songs-header-row .header-sortable .sort-indicator{font-size:.65rem;line-height:1}.songs-list{flex-direction:column;display:flex}.song-row{grid-template-columns:1fr 140px 80px var(--control-lg);border-bottom:1px solid var(--color-border);cursor:pointer;min-height:var(--songs-row-height);align-items:center;gap:.5rem;padding:.35rem .6rem;transition:background-color .2s,transform .1s;display:grid;position:relative}.song-row.is-reorderable{cursor:grab;will-change:transform}.song-row.is-dragging,.song-row.is-reorderable:active{cursor:grabbing}.song-row.is-dragging{z-index:2;background:var(--color-background);will-change:transform;transition:background-color .2s;box-shadow:0 8px 16px #00000026}.song-row:nth-child(2n){background:#00000005}.song-row:hover{background:var(--color-surface-hover)}.song-main-link{color:inherit;text-decoration:none;display:contents}.song-title-cell{font-size:var(--songs-font-title);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.35rem;font-weight:500;display:flex;overflow:hidden}.song-title-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.song-drag-handle{width:1.2rem;height:1.2rem;color:var(--color-text-muted);-webkit-user-select:none;user-select:none;visibility:hidden;touch-action:none;border-radius:4px;justify-content:center;align-items:center;font-size:1rem;display:inline-flex}.song-row.is-reorderable .song-drag-handle{visibility:visible;cursor:grab}.song-row.is-dragging .song-drag-handle{cursor:grabbing}.song-drag-placeholder{visibility:hidden}.song-main-link:hover .song-title-cell{color:var(--color-primary)}.song-artist-cell{font-size:var(--songs-font-meta);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty-field{opacity:.5}.song-date-cell{font-size:var(--songs-font-meta);color:var(--color-text-muted);text-align:right}.song-actions-cell{opacity:0;justify-content:center;align-items:center;gap:.35rem;transition:opacity .2s;display:flex}.song-actions-cell.visible{opacity:1}.song-row.is-dragging .song-actions-cell{opacity:0}.song-row.is-drop-target:after{content:"";background:var(--color-primary);opacity:.8;border-radius:2px;height:3px;position:absolute;bottom:-3px;left:0;right:0}.songs-drop-tail{background:0 0;border-radius:2px;height:4px;transition:background .15s}.songs-drop-tail.is-active{background:var(--color-primary);opacity:.8}.action-btn{cursor:pointer;width:var(--icon-xl);height:var(--icon-xl);background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:.2rem;font-size:1rem;transition:all .2s;display:flex}.action-btn.setlist-toggle{width:var(--icon-xl);height:var(--icon-xl);color:var(--color-text-muted);background:0 0;border:none;border-radius:3px}.action-btn.setlist-toggle.is-add:hover{background:var(--color-primary-alpha);color:var(--color-primary)}.action-btn.setlist-toggle.is-remove{color:var(--color-error)}.action-btn.setlist-toggle.is-remove:hover{background:var(--color-error-alpha);color:var(--color-error);transform:scale(1.1)}.action-btn.setlist-toggle:disabled{opacity:.6;cursor:not-allowed}.setlist-toggle-icon{width:18px;height:18px;display:block}.delete-btn{color:var(--color-error)}.delete-btn:hover{background:var(--color-error-alpha);color:var(--color-error);transform:scale(1.1)}