/* ============================================================
   小雫网盘 — 音乐播放器
   结构：① 官方播放器 iframe  ② 歌词区  ③ 歌单
   三块从上到下依次排列，互不遮挡
   ============================================================ */
.player{ position:fixed; right:22px; bottom:22px; z-index:600; }

.player-dock{
  width:56px; height:56px; border:0; border-radius:50%;
  background:linear-gradient(140deg,var(--pink),var(--pink-deep));
  color:#fff; cursor:pointer;
  display:grid; place-items:center;
  box-shadow:0 10px 26px rgba(242,119,159,.42);
  transition:transform .2s ease, box-shadow .2s ease;
  position:relative;
}
.player-dock:hover{ transform:translateY(-2px) scale(1.04); box-shadow:0 14px 32px rgba(242,119,159,.5); }
.player-dock .icon{ width:24px; height:24px; }
.player-dock-wave{
  position:absolute; inset:-4px; border-radius:50%;
  border:2px solid rgba(255,158,196,.5);
  opacity:0; pointer-events:none;
}
.player-dock.is-open .player-dock-wave{ animation:pulse 1.8s ease-out infinite; }
@keyframes pulse{ 0%{ opacity:.7; transform:scale(.92); } 100%{ opacity:0; transform:scale(1.25); } }

.player-panel{
  position:absolute; right:0; bottom:70px;
  width:340px; max-height:min(76vh, 640px);
  display:flex; flex-direction:column;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.9);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  padding:14px 16px 12px;
  animation:cardIn .26s cubic-bezier(.2,.9,.3,1.1);
}
.player-head{ display:flex; align-items:center; gap:8px; margin-bottom:10px; flex:none; }
.player-head-title{ font-size:13px; font-weight:700; color:var(--ink-2); display:flex; align-items:center; gap:6px; }
.player-head-title .icon{ color:var(--pink-deep); }
.player-head-spacer{ flex:1; }
.player-icon-btn{
  width:30px; height:30px; border:0; border-radius:50%;
  background:transparent; color:var(--ink-2); cursor:pointer;
  display:grid; place-items:center; transition:all .16s ease;
}
.player-icon-btn:hover{ background:var(--pink-mist); color:var(--pink-deep); }

/* ① 播放器框架 */
.player-frame-box{
  flex:none;
  padding:7px; margin-bottom:10px;
  border-radius:14px;
  background:linear-gradient(140deg,var(--pink-mist),#fff);
  box-shadow:inset 0 0 0 1px var(--line-2);
}
.official-frame{
  display:block; width:100%; height:86px;
  border:0; border-radius:10px; background:#fff;
}

/* ② 歌词区（独立滚动，不跟播放器抢空间） */
.player-lyric-box{
  flex:1 1 auto; min-height:120px; max-height:230px;
  display:flex; flex-direction:column;
  border-radius:14px;
  background:#fffafc;
  border:1px solid var(--line-2);
  overflow:hidden;
}
.player-lyric-head{
  flex:none; display:flex; align-items:center; gap:6px;
  padding:8px 12px;
  font-size:12px; font-weight:600; color:var(--ink-2);
  background:var(--pink-mist);
  border-bottom:1px solid var(--line-2);
}
.player-lyric-head .icon{ color:var(--pink-deep); flex:none; }
.player-lyric-head span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.player-lyric-list{
  flex:1; overflow-y:auto;
  padding:12px 14px;
  font-size:13.5px; line-height:1.9;
  color:var(--ink-2);
  text-align:center;
}
.player-lyric-list .lyric-line{ margin:0 0 6px; }
.player-lyric-list .lyric-line:hover{ color:var(--pink-dark); }
.player-lyric-list .lyric-empty{ color:var(--ink-3); font-size:13px; padding:24px 0; margin:0; }

/* ③ 歌单 */
.player-list{
  flex:none;
  list-style:none; margin:10px 0 0; padding:8px 0 0;
  max-height:132px; overflow-y:auto;
  border-top:1px solid var(--line-2);
}
.player-list-item{
  display:flex; align-items:center; gap:8px;
  padding:7px 8px; border-radius:10px; cursor:pointer;
  font-size:13px; transition:background .14s ease;
}
.player-list-item:hover{ background:var(--pink-mist); }
.player-list-item.is-active{ background:var(--pink-soft); color:var(--pink-dark); }
.pli-index{ width:16px; font-size:11px; color:var(--ink-3); flex:none; }
.pli-text{ flex:1; min-width:0; display:flex; flex-direction:column; }
.pli-text b{ font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pli-text em{ font-style:normal; font-size:11.5px; color:var(--ink-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.player-tip{ flex:none; font-size:12px; color:var(--ink-3); margin-top:6px; min-height:15px; }
.player-tip.is-error{ color:var(--danger); }

@media (max-width:560px){
  .player{ right:12px; bottom:12px; }
  .player-panel{ width:min(90vw, 330px); max-height:72vh; right:0; }
  .player-lyric-box{ max-height:170px; }
}

/* 后台试听弹窗 */
.try-listen-body{ padding:22px; text-align:center; }
.try-listen-body iframe{
  width:100%; max-width:400px; height:96px; border:0; border-radius:12px;
  background:#fff; box-shadow:var(--shadow-sm);
}
.try-listen-name{ margin-bottom:14px; font-weight:600; }
.try-listen-tip{ margin-top:12px; font-size:12.5px; color:var(--ink-3); }
