/* Music → per-song listening links (YouTube, Spotify, iTunes, Amazon Music). All selectors are .song-link* scoped.
   Brand marks: wwwroot/img/song-links/*.svg (see CREDITS.txt). */
.song-links { display: inline-flex; flex-wrap: wrap; gap: .4rem; margin-left: auto; align-items: center; flex-shrink: 0; }
.song-link {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 2.1rem; height: 2.1rem; border-radius: 999px;
  color: var(--sl-brand, #f3f0ea); background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12); text-decoration: none;
  transition: background-color .15s, color .15s, border-color .15s, transform .15s;
}
.song-link-svg { width: 1.1rem; height: 1.1rem; display: block; fill: currentColor; }
.song-link--youtube .song-link-svg { width: 1.2rem; }
.song-link--amazonmusic .song-link-svg { width: 1.25rem; height: 1.25rem; }
.song-link-fallback { font: 700 .8rem/1 system-ui, sans-serif; }
.song-link:hover, .song-link:focus-visible {
  background: var(--sl-brand, #38bdf8); border-color: var(--sl-brand, #38bdf8); color: #fff; transform: translateY(-1px);
}
.song-link--spotify:hover, .song-link--spotify:focus-visible,
.song-link--amazonmusic:hover, .song-link--amazonmusic:focus-visible { color: #0b0a10; }
.song-link:focus-visible { outline: 2px solid #f3f0ea; outline-offset: 2px; }
/* Tooltip (hover + keyboard focus); the accessible name comes from aria-label. */
.song-link[data-tip]::after {
  content: attr(data-tip); position: absolute; bottom: calc(100% + .45rem); left: 50%; transform: translate(-50%, .2rem);
  white-space: nowrap; pointer-events: none; opacity: 0; z-index: 5;
  font: 600 .72rem/1 system-ui, sans-serif; letter-spacing: .02em; color: #f3f0ea;
  background: #0b0a10; border: 1px solid rgba(255,255,255,.18); border-radius: .4rem; padding: .35rem .5rem;
  transition: opacity .12s, transform .12s;
}
.song-link:hover::after, .song-link:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
.music-tracklist li.song-has-links { align-items: center; }
/* Let tooltips escape the rounded list (it clips with overflow:hidden); keep the rounded corners on the rows instead. */
.music-tracklist:has(.song-links) { overflow: visible; }
.music-tracklist:has(.song-links) > li:first-child { border-top-left-radius: .75rem; border-top-right-radius: .75rem; }
.music-tracklist:has(.song-links) > li:last-child { border-bottom-left-radius: .75rem; border-bottom-right-radius: .75rem; }
.music-tracklist li.song-has-links .music-track-title { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .music-tracklist li.song-has-links { flex-wrap: wrap; row-gap: .5rem; }
  .music-tracklist li.song-has-links .music-track-title { flex: 1 1 0; }
  .music-tracklist li.song-has-links .song-links { flex-basis: 100%; margin-left: 2.5rem; gap: .5rem; }
  .song-link { width: 2.6rem; height: 2.6rem; }
  .song-link-svg { width: 1.3rem; height: 1.3rem; }
  .song-link--youtube .song-link-svg, .song-link--amazonmusic .song-link-svg { width: 1.45rem; height: 1.45rem; }
  .song-link[data-tip]::after { display: none; }
}
@media (prefers-reduced-motion: reduce) { .song-link, .song-link[data-tip]::after { transition: none; } .song-link:hover, .song-link:focus-visible { transform: none; } }

/* Admin: track editor + track list */
.song-links-admin { border: 1px solid rgba(127,127,127,.3); border-radius: .5rem; padding: 1rem 1rem .25rem; }
.song-link-badge { display: inline-flex; width: 1.5rem; height: 1.5rem; border-radius: 999px; align-items: center; justify-content: center; color: var(--sl-brand); background: rgba(127,127,127,.15); }
.song-link-badge .song-link-svg { width: .95rem; height: .95rem; }
.song-link-hint.is-ok { color: #16a34a; }
.song-link-hint.is-warning { color: #d97706; }
.song-link-hint.is-invalid { color: #dc3545; }
.song-link-mini { display: inline-flex; flex-wrap: wrap; gap: .3rem; }
@media (max-width: 480px) { .song-link-mini { max-width: 3.4rem; } }
