/* Setlists: add-to-setlist popup, song picker, reorderable list, summary, play bar. Uses the app's theme variables. */
.song-item{position:relative}
.song-item .sl-add{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:2px 8px;font-size:14px;line-height:1.2;opacity:.55;border-radius:6px}
.song-item:hover .sl-add,.song-item .sl-add:focus{opacity:1}
.song-item.archived{opacity:.55}
.sl-arch{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted);white-space:nowrap}
.sl-member{margin-top:6px;font-size:12.5px;color:var(--muted)}
.sl-member a{color:var(--accent);cursor:pointer}.sl-member a:hover{text-decoration:underline}
.songhead .setname{flex:1;min-width:140px}
.songhead{flex-wrap:wrap;gap:8px}

/* popup menu */
.sl-pop{position:fixed;z-index:120;width:min(320px,calc(100vw - 16px));max-height:min(70vh,460px);overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 36px rgba(0,0,0,.45);padding:6px}
.sl-pop-h{padding:6px 10px;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.sl-pop-empty{padding:8px 10px;font-size:13px;color:var(--muted)}
.sl-pop-row{display:grid;grid-template-columns:20px 1fr;grid-template-rows:auto auto;column-gap:6px;width:100%;text-align:left;padding:7px 10px;border:0;border-radius:7px;background:transparent;color:var(--text);cursor:pointer}
.sl-pop-row:hover{background:rgba(var(--accent-rgb),.14)}
.sl-pop-row .chk{grid-row:1/3;color:var(--accent);font-weight:700}
.sl-pop-row .nm{font-size:14px}.sl-pop-row small{color:var(--muted);font-size:12px}
.sl-pop-row.in .nm{color:var(--accent)}
.sl-pop-new{display:flex;gap:6px;padding:8px 6px 4px;border-top:1px solid var(--border);margin-top:4px}
.sl-pop-new input{flex:1;min-width:0}

/* toast */
.sl-toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translate(-50%,30px);opacity:0;pointer-events:none;z-index:130;display:flex;gap:12px;align-items:center;background:var(--panel);color:var(--text);border:1px solid var(--accent);border-radius:999px;padding:8px 16px;box-shadow:0 8px 28px rgba(0,0,0,.45);transition:.2s;max-width:calc(100vw - 24px);font-size:13.5px}
.sl-toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
body.sl-playing .sl-toast{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
.sl-toast button{padding:2px 10px;border-radius:999px;font-weight:700}

/* setlist page */
.sl-details{margin:10px 0;border:1px solid var(--border);border-radius:8px;padding:6px 12px;background:rgba(127,127,127,.05)}
.sl-details summary{cursor:pointer;color:var(--muted);font-size:13px}
.sl-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:8px 0}
.sl-detail-grid label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}
.sl-detail-grid label.wide,.sl-detail-grid label.chk{grid-column:1/-1}
.sl-detail-grid label.chk{flex-direction:row;align-items:center;gap:6px}
.sl-detail-grid textarea{resize:vertical;font:inherit}
.sl-summary{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0;padding:8px 12px;border-radius:8px;background:rgba(var(--accent-rgb),.10);font-size:13.5px}
.sl-summary small{color:var(--muted)}
.sl-summary .warn{color:var(--danger);font-size:12.5px;flex-basis:100%}
.sl-bulk{position:sticky;top:0;z-index:6;display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0;padding:8px 10px;border:1px solid var(--accent);border-radius:8px;background:var(--panel)}
.sl-bulk .danger,.sl-row .danger{color:var(--danger)}
.linkbtn{background:none;border:0;color:var(--accent);cursor:pointer;text-decoration:underline;padding:4px 6px}
.sl-items{margin:10px 0}
.sl-row{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;margin-bottom:6px;border:1px solid var(--border);border-radius:8px;background:var(--panel);position:relative}
.sl-row.sel{border-color:var(--accent);background:rgba(var(--accent-rgb),.10)}
.sl-row.missing{opacity:.6}
.sl-row .drag{cursor:grab;touch-action:none;user-select:none;color:var(--muted);font-size:18px;line-height:1.2;padding:2px 4px}
.sl-row.dragging{z-index:5;opacity:.9;box-shadow:0 10px 30px rgba(0,0,0,.5);cursor:grabbing;pointer-events:none}
.sl-row.drop-before:before,.sl-row.drop-after:after{content:"";position:absolute;left:0;right:0;height:3px;border-radius:2px;background:var(--accent)}
.sl-row.drop-before:before{top:-5px}.sl-row.drop-after:after{bottom:-5px}
.sl-row .sl-chk{margin-top:5px}
.sl-row .idx{min-width:22px;text-align:right;color:var(--muted);padding-top:2px}
.sl-row .body{flex:1;min-width:0}
.sl-row .meta{color:var(--muted)}
.sl-row .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.sl-row .acts{display:flex;flex-direction:column;gap:4px}
.sl-row .chips{display:inline-flex;gap:4px;flex-wrap:wrap;margin-left:4px}
.chip{display:inline-block;padding:0 8px;border-radius:999px;font-size:11.5px;line-height:18px;border:1px solid var(--border);color:var(--muted)}
.sl-sec{align-items:center;background:rgba(127,127,127,.10)}
.sl-sec .sl-seclabel{flex:1;min-width:100px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:transparent;border:1px solid transparent}
.sl-sec .sl-seclabel:focus{border-color:var(--border)}
.sl-sec .dur{color:var(--muted);white-space:nowrap}
.sl-sec .acts{flex-direction:row}
.sl-row.flash{animation:slflash 1.2s ease-out}
@keyframes slflash{from{background:rgba(var(--accent-rgb),.35)}to{background:var(--panel)}}
.sl-addbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.sl-secadd{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.sl-secadd input{width:130px}

/* picker */
.sl-picker{border:1px solid var(--accent);border-radius:10px;background:var(--panel);margin:8px 0;overflow:hidden}
.sl-pk-bar{display:flex;gap:6px;flex-wrap:wrap;padding:8px;border-bottom:1px solid var(--border)}
.sl-pk-bar input{flex:1;min-width:150px}
.sl-pk-list{max-height:340px;overflow:auto}
.sl-pk-row{display:flex;gap:10px;align-items:center;padding:7px 12px;border-bottom:1px solid var(--border);cursor:pointer}
.sl-pk-row:hover{background:rgba(var(--accent-rgb),.12)}
.sl-pk-row .t{flex:1;min-width:0}.sl-pk-row small{display:block;color:var(--muted)}
.sl-pk-row .in{font-size:11.5px;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:0 8px}

/* play-through bar */
.sl-playbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:10px;align-items:center;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:2px solid var(--accent);box-shadow:0 -6px 24px rgba(0,0,0,.35)}
.sl-playbar .mid{flex:1;min-width:0;text-align:center}
.sl-playbar .t{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sl-playbar .n{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sl-playbar button{padding:10px 16px;font-size:15px}
.sl-playbar button:disabled{opacity:.35}
body.sl-playing #main{padding-bottom:84px}
