
/* ═══ CVQ v5 — Play This Week + album track sessions ═══ */
.cvq-pill{background:none;border:1px solid var(--border2);border-radius:6px;color:var(--text-dim);font-size:11px;padding:6px 11px;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;-webkit-tap-highlight-color:transparent;text-transform:none;letter-spacing:0;line-height:1}
.cvq-pill:hover{border-color:var(--gold);color:var(--text)}
#cvqVideoWrap{position:fixed;right:14px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:69;width:min(340px,80vw);border:1px solid var(--border2);border-radius:12px;overflow:hidden;background:#0d0d10;box-shadow:0 12px 40px rgba(0,0,0,.55);display:none}
#cvqVideoWrap.on{display:block}
.cvq-strip{display:flex;align-items:center;gap:6px;padding:7px 8px;background:rgba(13,13,16,.97)}
.cvq-strip.cvq-strip-top{border-bottom:1px solid var(--border)}
.cvq-strip.cvq-strip-bot{border-top:1px solid var(--border);justify-content:center;flex-wrap:wrap}
#cvqNowRank{font-size:11px;font-weight:800;color:var(--gold);flex-shrink:0}
#cvqNowTitle{flex:1;min-width:0;font-size:11px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
#cvqNowTitle:hover{color:var(--gold)}
#cvqVideoWrap.cvq-mode-tracks #cvqNowTitle{cursor:default}
#cvqVideoWrap.cvq-mode-tracks #cvqNowTitle:hover{color:var(--text)}
#cvqVideo{position:relative;width:100%;aspect-ratio:16/9;background:#000}
#cvqVideo iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
#cvqVideoWrap.cvq-mini #cvqVideo,#cvqVideoWrap.cvq-finished #cvqVideo{display:none}
#cvqVideoWrap.cvq-finished .cvq-hidewhendone{display:none}
#cvqBar{position:fixed;left:0;right:0;bottom:0;z-index:68;display:none;align-items:center;gap:12px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(13,13,16,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border2);font-family:'DM Sans',sans-serif}
#cvqBar.on{display:flex}
.cvq-rank{min-width:44px;height:34px;border-radius:8px;background:var(--gold);color:#111;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;padding:0 8px}
.cvq-meta{flex:1;min-width:0}
.cvq-title{font-weight:700;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.cvq-title:hover{color:var(--gold)}
.cvq-sub{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cvq-sub .cvq-dim{color:var(--text-faint)}
.cvq-ctl{display:flex;align-items:center;gap:7px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
body.cvq-active .main{padding-bottom:calc(120px + env(safe-area-inset-bottom))}
.cvq-week-play{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.cvq-play-btn{padding:8px 16px;border-radius:8px;border:1px solid var(--border2);background:var(--bg3);color:var(--text);font-weight:700;font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s;-webkit-tap-highlight-color:transparent}
.cvq-play-btn:hover{border-color:var(--gold);color:var(--gold)}
.cvq-play-note{font-size:11px;color:var(--text-faint)}
.cvq-row-play{margin-left:10px;min-width:32px;height:30px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text-ghost);cursor:pointer;flex-shrink:0;align-self:center;transition:all .2s;font-family:'DM Sans',sans-serif;font-size:12px;padding:0 6px;-webkit-tap-highlight-color:transparent}
.chart-entry:hover .cvq-row-play{color:var(--text-dim);border-color:var(--border2)}
.cvq-row-play:hover{color:var(--gold)!important;border-color:var(--gold)!important}
.chart-entry.cvq-now{background:linear-gradient(90deg,rgba(155,138,191,.12),transparent);border-radius:10px;box-shadow:inset 3px 0 0 var(--gold)}
.chart-entry.cvq-skip .cvq-row-play{color:var(--down)}
.cvq-song-close{position:absolute;top:6px;right:6px;z-index:3;min-width:30px;height:30px;border-radius:6px;border:none;background:rgba(0,0,0,.6);color:#ddd;cursor:pointer;font-size:13px;line-height:1;padding:0 8px;font-family:'DM Sans',sans-serif;-webkit-tap-highlight-color:transparent}
.cvq-song-close:hover{background:rgba(0,0,0,.85)}
.tracklist-title .cvqt-playall{margin-left:auto}
.cvqt-play{margin-left:8px;min-width:26px;height:24px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text-ghost);cursor:pointer;flex-shrink:0;font-family:'DM Sans',sans-serif;font-size:10px;padding:0 5px;-webkit-tap-highlight-color:transparent;transition:all .2s}
.track-item:hover .cvqt-play{color:var(--text-dim);border-color:var(--border2)}
.cvqt-play:hover{color:var(--gold)!important;border-color:var(--gold)!important}
.track-item.cvq-now{background:linear-gradient(90deg,rgba(155,138,191,.14),transparent);border-radius:8px;box-shadow:inset 3px 0 0 var(--gold)}
.track-item.cvq-skip .cvqt-play{color:var(--down)}
/* artist-page play affordances */
.cvqa-playall-row{display:flex;align-items:center;gap:10px;margin:6px 0 12px}
.cvqa-play{margin-left:8px;min-width:28px;height:26px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text-ghost);cursor:pointer;flex-shrink:0;font-family:'DM Sans',sans-serif;font-size:11px;padding:0 6px;-webkit-tap-highlight-color:transparent;transition:all .2s;align-self:center;position:relative;z-index:1}
.artist-hit:hover .cvqa-play{color:var(--text-dim);border-color:var(--border2)}
.cvqa-play:hover{color:var(--gold)!important;border-color:var(--gold)!important}
.artist-hit.cvq-now{background:linear-gradient(90deg,rgba(155,138,191,.16),transparent);box-shadow:inset 3px 0 0 var(--gold)}
.artist-hit.cvq-skip .cvqa-play{color:var(--down)}
/* Touch devices have no hover state: keep chart/artist play controls visibly tappable. */
@media (hover:none),(pointer:coarse){
  .cvq-row-play,.cvqa-play{color:var(--text-dim);border-color:var(--border2);background:rgba(255,255,255,.025)}
  .cvq-row-play:active,.cvqa-play:active{color:var(--gold);border-color:var(--gold);background:rgba(155,138,191,.08)}
}
@media (max-width:560px){#cvqVideoWrap{right:8px;width:min(340px,92vw)}}
