/* ==========================================================================
   自定义音乐播放器 —— 前台样式
   音源：QQ 音乐官方（经本站 /music-api/ 同源反代）
   ========================================================================== */

/* 无刷新切页时的轻微加载提示（音乐不中断） */
html.lxp-pjaxing { cursor: progress; }
html.lxp-pjaxing .container { opacity: .55; transition: opacity .15s ease; }

#lx-music-player.lxp {
  --lxp-accent: #6d5efc;
  --lxp-accent2: #22d3ee;
  --lxp-bg: rgba(20, 20, 32, 0.82);
  --lxp-bg2: rgba(38, 38, 58, 0.72);
  --lxp-line: rgba(255, 255, 255, 0.1);
  --lxp-txt: #f2f3f8;
  --lxp-sub: rgba(242, 243, 248, 0.58);
  position: fixed;
  z-index: 2147482000;
  bottom: 22px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--lxp-txt);
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
}
#lx-music-player.lxp *,
#lx-music-player.lxp *::before,
#lx-music-player.lxp *::after { box-sizing: border-box; }

#lx-music-player.lxp-right { right: 22px; }
#lx-music-player.lxp-left  { left: 22px; }

/* 未启用 JS 时彻底隐藏，避免原样露出 */
#lx-music-player.lxp-nojs { display: none; }

/* ---------------- 折叠态悬浮按钮 ---------------- */
.lxp-fab {
  position: relative;
  width: 58px;
  height: 58px;
  padding: 0;
  border: 1px solid var(--lxp-line);
  border-radius: 50%;
  background: linear-gradient(145deg, #2b2b45, #17172a);
  color: #fff;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.42), 0 0 0 0 rgba(109, 94, 252, 0.42);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
  animation: lxp-fab-pulse 3.2s ease-in-out infinite;
}
#lx-music-player.lxp-collapsed .lxp-fab { display: flex; }
.lxp-fab:hover { transform: scale(1.07); }
.lxp-fab:active { transform: scale(0.96); }

@keyframes lxp-fab-pulse {
  0%, 100% { box-shadow: 0 10px 30px rgba(0,0,0,.42), 0 0 0 0 rgba(109,94,252,.42); }
  55%      { box-shadow: 0 10px 30px rgba(0,0,0,.42), 0 0 0 12px rgba(109,94,252,0); }
}

.lxp-fab-ring {
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, var(--lxp-accent), var(--lxp-accent2), var(--lxp-accent));
  opacity: 0;
  filter: blur(7px);
  z-index: -1;
}
.lxp-now-playing .lxp-fab-ring { opacity: 0.75; animation: lxp-rot 3.4s linear infinite; }

.lxp-fab-icon { display: flex; position: relative; z-index: 1; }

/* 自动播放被浏览器拦截：悬浮球给出「点我」提示 */
#lx-music-player.lxp-need-tap .lxp-fab {
  animation: lxp-fab-pulse 1.5s ease-in-out infinite;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.42), 0 0 0 3px rgba(34, 211, 238, 0.4);
}
#lx-music-player.lxp-need-tap .lxp-fab::after {
  content: "▶";
  position: absolute;
  top: -5px;
  right: -5px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--lxp-accent), var(--lxp-accent2));
  color: #fff;
  font-size: 9px;
  line-height: 20px;
  text-align: center;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
  z-index: 2;
}

.lxp-fab-wave {
  position: absolute;
  bottom: 9px;
  display: none;
  gap: 2px;
  align-items: flex-end;
  height: 10px;
}
.lxp-now-playing .lxp-fab-wave { display: flex; }
.lxp-fab-wave i {
  width: 2px;
  background: var(--lxp-accent2);
  border-radius: 2px;
  animation: lxp-eq 0.9s ease-in-out infinite;
}
.lxp-fab-wave i:nth-child(1) { height: 5px;  animation-delay: 0s; }
.lxp-fab-wave i:nth-child(2) { height: 10px; animation-delay: 0.18s; }
.lxp-fab-wave i:nth-child(3) { height: 7px;  animation-delay: 0.36s; }

/* ---------------- 展开态卡片 ---------------- */
.lxp-card {
  position: relative;
  width: 322px;
  padding: 12px 14px 12px;
  border: 1px solid var(--lxp-line);
  border-radius: 18px;
  background: var(--lxp-bg);
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
  overflow: hidden;
  display: none;
  animation: lxp-in 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
#lx-music-player:not(.lxp-collapsed) .lxp-card { display: block; }
#lx-music-player:not(.lxp-collapsed) .lxp-fab  { display: none; }

@keyframes lxp-in {
  from { opacity: 0; transform: translateY(14px) scale(0.97); }
  to   { opacity: 1; transform: none; }
}
@keyframes lxp-rot { to { transform: rotate(360deg); } }
@keyframes lxp-eq {
  0%, 100% { transform: scaleY(0.42); }
  50%      { transform: scaleY(1); }
}

.lxp-glow {
  position: absolute;
  top: -70px; right: -70px;
  width: 190px; height: 190px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(109, 94, 252, 0.55), transparent 68%);
  filter: blur(20px);
  pointer-events: none;
}
.lxp-now-playing .lxp-glow { animation: lxp-breathe 4s ease-in-out infinite; }
@keyframes lxp-breathe {
  0%, 100% { opacity: 0.55; transform: scale(1); }
  50%      { opacity: 1;    transform: scale(1.16); }
}

.lxp-head {
  position: relative;
  display: flex;
  align-items: center;
  gap: 7px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--lxp-line);
}
.lxp-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--lxp-accent2);
  box-shadow: 0 0 8px var(--lxp-accent2);
  flex: none;
}
.lxp-brand {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lxp-count {
  margin-left: auto;
  font-size: 11px;
  color: var(--lxp-sub);
  flex: none;
}
.lxp-ico {
  border: 0;
  background: transparent;
  color: var(--lxp-sub);
  width: 30px; height: 30px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: color 0.18s, background 0.18s, transform 0.18s;
  flex: none;
}
.lxp-ico:hover { color: #fff; background: rgba(255, 255, 255, 0.09); }
.lxp-ico:active { transform: scale(0.92); }
.lxp-min { margin-left: 2px; }

/* 封面 + 信息 */
.lxp-body {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0 10px;
}
.lxp-cover {
  position: relative;
  width: 74px; height: 74px;
  flex: none;
  border-radius: 50%;
  overflow: hidden;
  background: #101020;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}
.lxp-cover img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 1;
}
.lxp-vinyl {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background:
    repeating-radial-gradient(circle at 50% 50%, rgba(255,255,255,.055) 0 1px, transparent 1px 4px),
    #0b0b14;
  z-index: 0;
}
.lxp-cover::after {
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  width: 20px; height: 20px;
  margin: -10px 0 0 -10px;
  border-radius: 50%;
  background: #17172a;
  border: 2px solid rgba(255, 255, 255, 0.16);
  z-index: 2;
}
.lxp-now-playing .lxp-cover img,
.lxp-now-playing .lxp-vinyl { animation: lxp-rot 9s linear infinite; }
.lxp-cover-mask {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 26%, rgba(255,255,255,.22), transparent 46%);
  pointer-events: none;
  z-index: 3;
}

.lxp-info { flex: 1; min-width: 0; }
.lxp-title {
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  animation: lxp-slide 0.35s ease;
}
.lxp-singer {
  margin-top: 3px;
  font-size: 12px;
  color: var(--lxp-sub);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@keyframes lxp-slide {
  from { opacity: 0; transform: translateX(8px); }
  to   { opacity: 1; transform: none; }
}
.lxp-tag {
  display: inline-block;
  margin-top: 6px;
  font-size: 10px;
  line-height: 1;
  padding: 3px 7px;
  border-radius: 20px;
  color: #c7c2ff;
  background: rgba(109, 94, 252, 0.18);
  border: 1px solid rgba(109, 94, 252, 0.32);
}
.lxp-tag:empty { display: none; }

.lxp-lyric {
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.45;
  color: #a9e9f7;
  height: 34px;
  overflow: hidden;
  text-shadow: 0 0 10px rgba(34, 211, 238, 0.35);
}
.lxp-lyric span { display: block; animation: lxp-slide 0.3s ease; }

/* 进度条 */
.lxp-prog {
  padding: 6px 0 2px;
  cursor: pointer;
  touch-action: none;
}
.lxp-prog-track {
  position: relative;
  display: block;
  height: 5px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.13);
  transition: height 0.16s;
}
.lxp-prog:hover .lxp-prog-track { height: 7px; }
.lxp-prog-load,
.lxp-prog-now {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  border-radius: 5px;
  width: 0;
}
.lxp-prog-load { background: rgba(255, 255, 255, 0.14); }
.lxp-prog-now {
  background: linear-gradient(90deg, var(--lxp-accent), var(--lxp-accent2));
  box-shadow: 0 0 10px rgba(109, 94, 252, 0.6);
}
.lxp-prog-knob {
  position: absolute;
  top: 50%; left: 0;
  width: 11px; height: 11px;
  margin: -5.5px 0 0 -5.5px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 8px rgba(109, 94, 252, 0.9);
  opacity: 0;
  transition: opacity 0.16s;
}
.lxp-prog:hover .lxp-prog-knob,
.lxp-seeking .lxp-prog-knob { opacity: 1; }

.lxp-time {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--lxp-sub);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.03em;
}

/* 控制区 */
.lxp-ctrl {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 6px;
}
.lxp-play {
  position: relative;
  width: 46px; height: 46px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex: none;
  transition: transform 0.18s;
}
.lxp-play:active { transform: scale(0.93); }
.lxp-play-bg {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--lxp-accent), var(--lxp-accent2));
  box-shadow: 0 6px 18px rgba(109, 94, 252, 0.48);
}
.lxp-play-bg::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 1px solid rgba(109, 94, 252, 0.45);
  opacity: 0;
}
.lxp-now-playing .lxp-play-bg::after { animation: lxp-halo 2s ease-out infinite; }
@keyframes lxp-halo {
  from { opacity: 0.85; transform: scale(0.94); }
  to   { opacity: 0;    transform: scale(1.32); }
}
.lxp-play svg { position: relative; z-index: 1; }
.lxp-i-pause { display: none; }
#lx-music-player.lxp-playing .lxp-i-play  { display: none; }
#lx-music-player.lxp-playing .lxp-i-pause { display: block; }

.lxp-spin {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 2px solid transparent;
  border-top-color: #fff;
  opacity: 0;
  z-index: 2;
}
.lxp-loading .lxp-spin { opacity: 1; animation: lxp-rot 0.8s linear infinite; }
.lxp-loading .lxp-play-bg { filter: grayscale(0.5) brightness(0.8); }

.lxp-mode-one  { color: var(--lxp-accent2) !important; }
.lxp-mode-shuffle { color: var(--lxp-accent2) !important; }

/* 音量 */
.lxp-vol {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
  padding-top: 8px;
  border-top: 1px solid var(--lxp-line);
}
.lxp-vol-btn { width: 26px; height: 26px; }
.lxp-i-mute { display: none; }
.lxp-muted .lxp-i-vol  { display: none; }
.lxp-muted .lxp-i-mute { display: block; }
.lxp-vol-track {
  position: relative;
  flex: 1;
  height: 4px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.13);
  cursor: pointer;
  touch-action: none;
}
.lxp-vol-now {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 70%;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--lxp-accent), var(--lxp-accent2));
}
.lxp-vol-knob {
  position: absolute;
  top: 50%; left: 70%;
  width: 10px; height: 10px;
  margin: -5px 0 0 -5px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 7px rgba(109, 94, 252, 0.85);
}

/* 播放列表抽屉 */
.lxp-drawer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.lxp-open-list .lxp-drawer {
  max-height: 232px;
  margin-top: 8px;
  border-top: 1px solid var(--lxp-line);
  display: flex;
  flex-direction: column;
}
.lxp-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  color: var(--lxp-sub);
  padding: 9px 2px 6px;
  flex: none;
}
.lxp-drawer-head em { font-style: normal; }
.lxp-listbox {
  list-style: none;
  margin: 0;
  padding: 0 2px 4px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
  scrollbar-width: thin;
}
.lxp-listbox::-webkit-scrollbar { width: 5px; }
.lxp-listbox::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 5px;
}
.lxp-listbox li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 8px;
  border-radius: 9px;
  font-size: 12px;
  cursor: pointer;
  color: rgba(242, 243, 248, 0.8);
  transition: background 0.16s, color 0.16s;
}
.lxp-listbox li:hover { background: rgba(255, 255, 255, 0.07); color: #fff; }
.lxp-listbox li.lxp-on {
  background: linear-gradient(90deg, rgba(109, 94, 252, 0.26), rgba(34, 211, 238, 0.12));
  color: #fff;
}
.lxp-listbox li .lxp-idx {
  width: 16px;
  flex: none;
  text-align: center;
  font-size: 10px;
  color: var(--lxp-sub);
  font-variant-numeric: tabular-nums;
}
.lxp-listbox li.lxp-on .lxp-idx { color: var(--lxp-accent2); }
.lxp-listbox li .lxp-nm {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lxp-listbox li .lxp-ar {
  flex: none;
  max-width: 76px;
  font-size: 10px;
  color: var(--lxp-sub);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lxp-listbox li.lxp-on .lxp-ar { color: rgba(169, 233, 247, 0.75); }

.lxp-foot {
  flex: none;
  padding: 6px 2px 2px;
  border-top: 1px solid var(--lxp-line);
  font-size: 10px;
  color: rgba(242, 243, 248, 0.38);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 提示气泡 */
.lxp-toast {
  position: absolute;
  left: 50%;
  bottom: 14px;
  transform: translate(-50%, 10px);
  padding: 7px 14px;
  border-radius: 20px;
  background: rgba(10, 10, 18, 0.94);
  border: 1px solid var(--lxp-line);
  font-size: 12px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.24s, transform 0.24s;
  z-index: 5;
}
.lxp-toast.lxp-show { opacity: 1; transform: translate(-50%, 0); }

/* ---------------- 移动端自适应 ---------------- */
@media (max-width: 768px) {
  #lx-music-player.lxp { bottom: 12px; }
  #lx-music-player.lxp-right { right: 12px; }
  #lx-music-player.lxp-left  { left: 12px; }

  .lxp-fab { width: 50px; height: 50px; }

  .lxp-card {
    width: min(calc(100vw - 24px), 340px);
    border-radius: 16px;
    padding: 11px 12px;
  }
  .lxp-cover { width: 62px; height: 62px; }
  .lxp-title { font-size: 13px; }
  .lxp-ctrl { gap: 6px; }
  .lxp-play { width: 44px; height: 44px; }
  .lxp-ico { width: 28px; height: 28px; }
  .lxp-open-list .lxp-drawer { max-height: 44vh; }
}

@media (max-width: 360px) {
  .lxp-card { width: calc(100vw - 20px); }
  .lxp-cover { width: 54px; height: 54px; }
}

/* 无障碍 / 省电 */
@media (prefers-reduced-motion: reduce) {
  #lx-music-player.lxp,
  #lx-music-player.lxp * {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
}

/* 打印时隐藏 */
@media print {
  #lx-music-player.lxp { display: none !important; }
}

/* ==========================================================================
   歌词外显浮窗（可任意拖动）
   ========================================================================== */

#lx-lyric-float.lxf {
  --lxf-accent: #6d5efc;
  --lxf-accent2: #22d3ee;
  --lxf-size: 16px;
  position: fixed;
  z-index: 2147482100;
  left: 22px;
  bottom: 96px;
  min-width: 216px;
  max-width: min(460px, calc(100vw - 24px));
  padding: 0 0 10px;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  background: rgba(16, 16, 26, 0.74);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  box-shadow: 0 14px 42px rgba(0, 0, 0, 0.46);
  color: #f2f3f8;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  font-size: var(--lxf-size);
  line-height: 1.5;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;              /* 触屏拖动时不滚动页面 */
  transition: opacity 0.24s ease, transform 0.24s ease;
}
#lx-lyric-float.lxf * { box-sizing: border-box; }

#lx-lyric-float.lxf-hidden {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.94) translateY(8px);
}
#lx-lyric-float.lxf-dragging {
  cursor: grabbing;
  transition: none;
  box-shadow: 0 20px 56px rgba(0, 0, 0, 0.6);
}

/* ---------- 顶部拖动条 ---------- */
.lxf-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 8px 6px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  cursor: grab;
}
.lxf-dragging .lxf-bar { cursor: grabbing; }

.lxf-grip {
  flex: none;
  display: grid;
  grid-template-columns: repeat(2, 3px);
  gap: 2px 3px;
  opacity: 0.45;
}
.lxf-grip i {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: currentColor;
}

.lxf-song {
  flex: 1;
  min-width: 0;
  font-size: 11px;
  color: rgba(242, 243, 248, 0.62);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.lxf-tools { flex: none; display: inline-flex; align-items: center; gap: 2px; }

.lxf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: rgba(242, 243, 248, 0.7);
  cursor: pointer;
  transition: color 0.16s, background 0.16s;
}
.lxf-btn:hover { color: #fff; background: rgba(255, 255, 255, 0.12); }
.lxf-btn:active { transform: scale(0.92); }
.lxf-close:hover { color: #ff8a8a; background: rgba(229, 72, 77, 0.18); }

.lxf-i-pause { display: none; }
#lx-lyric-float.lxf-playing .lxf-i-play  { display: none; }
#lx-lyric-float.lxf-playing .lxf-i-pause { display: block; }

/* ---------- 歌词区 ---------- */
.lxf-body {
  padding: 10px 14px 2px;
  overflow: hidden;
}
.lxf-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
}
.lxf-cur {
  font-size: var(--lxf-size);
  font-weight: 600;
  color: #fff;
  text-shadow: 0 0 14px rgba(109, 94, 252, 0.55), 0 1px 2px rgba(0, 0, 0, 0.5);
  animation: lxf-in 0.3s ease;
}
.lxf-next {
  margin-top: 3px;
  font-size: calc(var(--lxf-size) * 0.78);
  color: rgba(242, 243, 248, 0.45);
  min-height: 1.2em;
}
.lxf-empty .lxf-cur { font-weight: 500; color: rgba(242, 243, 248, 0.75); text-shadow: none; }

@keyframes lxf-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}

/* 歌词外显按钮的激活态（在播放器面板里） */
.lxp-lxfbtn.lxp-on { color: var(--lxp-accent2); }

/* ---------- 响应式 ---------- */
@media (max-width: 768px) {
  #lx-lyric-float.lxf {
    min-width: 180px;
    max-width: calc(100vw - 16px);
    border-radius: 12px;
    padding-bottom: 8px;
  }
  .lxf-body { padding: 8px 11px 2px; }
  .lxf-song { font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  #lx-lyric-float.lxf { transition: none; }
  .lxf-cur { animation: none; }
}

@media print {
  #lx-lyric-float.lxf { display: none !important; }
}

/* ==========================================================================
   播放器本体：任意拖动
   ========================================================================== */

.lxp-grip {
  flex: none;
  display: grid;
  grid-template-columns: repeat(2, 3px);
  gap: 2px 3px;
  margin-right: 2px;
  opacity: 0.35;
}
.lxp-grip i {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: currentColor;
}

/* 可拖动区域给出「抓手」手势；触屏上禁止滚动以便拖动 */
.lxp-head,
.lxp-body,
.lxp-fab { cursor: grab; touch-action: none; }

#lx-music-player.lxp-dragging .lxp-head,
#lx-music-player.lxp-dragging .lxp-body,
#lx-music-player.lxp-dragging .lxp-fab { cursor: grabbing; }

#lx-music-player.lxp-dragging {
  transition: none;
  user-select: none;
  -webkit-user-select: none;
}
#lx-music-player.lxp-dragging .lxp-card {
  box-shadow: 0 26px 64px rgba(0, 0, 0, 0.58), 0 0 0 1px rgba(109, 94, 252, 0.35);
}
#lx-music-player.lxp-dragging .lxp-fab {
  animation: none;
  transform: scale(1.06);
}

/* 播放列表抽屉仍可正常滚动 */
.lxp-drawer,
.lxp-listbox { touch-action: auto; }

@media (max-width: 768px) {
  .lxp-grip { display: none; }   /* 小屏省空间 */
}
