/* 浮动迷你播放器 —— 所有页面共用；播过歌之后才出现。
   收起态是一条紧凑横条，展开后沿用音乐页完整播放器的那套视觉。 */
.mini-player{
  position:fixed;right:calc(50% - min(1280px,100vw - 96px)/2);bottom:20px;z-index:70;
  display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;
  width:min(380px,calc(100vw - 32px));
  padding:10px 12px 10px 10px;
  border-radius:16px;
  background:rgba(18,18,18,.92);
  border:1px solid #2b2b2b;
  box-shadow:0 24px 60px -22px #000,0 0 0 .5px rgba(255,255,255,.06);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  color:#fff;font-family:inherit;
  animation:mini-in .3s cubic-bezier(.2,.7,.3,1);
}
.mini-player[hidden]{display:none!important}
@keyframes mini-in{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.mini-cover{
  grid-area:cover;box-sizing:border-box;flex:0 0 auto;width:46px;height:46px;padding:0;border:0;
  border-radius:10px;overflow:hidden;position:relative;background:#222;cursor:pointer;
}
.mini-cover img{width:100%;height:100%;object-fit:cover;display:block}
.mini-hole{display:none}
.mini-main{flex:0 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.mini-head{display:flex;align-items:baseline;gap:7px;min-width:0}
.mini-title{flex:0 1 auto;min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;
  font-size:13.5px;font-weight:600;letter-spacing:-.01em;text-align:left;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .16s}
.mini-artist{flex:0 1 auto;min-width:0;font-size:11.5px;color:#9a9a9a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-bar{display:block;width:104px;height:3px;margin-top:4px;border-radius:2px;background:#2c2c2c;cursor:pointer;position:relative}
.mini-bar b{display:block;height:100%;width:0;border-radius:2px;background:#fff;transition:width .18s linear}
.mini-lyric{display:none}
.mini-error{margin:6px 0 0;color:#f3bccb;font-size:11px;line-height:1.5;max-width:280px;max-height:100px;overflow:auto;white-space:normal;overflow-wrap:anywhere}
.mini-error[hidden]{display:none}
.mini-seekrow{display:none}
.mini-spectrum{display:none}
.mini-canvas{display:block;width:100%;height:100%}
.mini-vol{display:none}
.mini-controls{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex:0 0 auto}
.mini-btn{
  display:grid;place-items:center;width:32px;height:32px;padding:0;
  border:0;border-radius:50%;background:transparent;color:#cfcfcf;cursor:pointer;
  transition:background .16s,color .16s;
}
.mini-btn:hover{background:#262626;color:#fff}
.mini-btn svg{width:14px;height:14px;fill:currentColor;stroke:none}
.mini-btn-play{width:38px;height:38px;background:#fff;color:#000}
.mini-btn-play:hover{background:#e6e6e6;color:#000}
.mini-btn-play .ico-pause{display:none}
.mini-player.is-playing .mini-btn-play .ico-play{display:none}
.mini-player.is-playing .mini-btn-play .ico-pause{display:block}
.mini-mode{display:none}
.mini-close{display:none}
.mini-player.is-expanded .mini-close{
  display:grid;place-items:center;position:absolute;top:8px;right:10px;grid-area:auto;
  width:30px;height:30px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.06);
  color:#c3b9d4;font-size:20px;line-height:1;cursor:pointer;transition:background .16s,color .16s;
}
.mini-player.is-expanded .mini-close:hover{background:rgba(255,255,255,.16);color:#fff}
body.has-mini{padding-bottom:96px}

/* ── 展开：和音乐页的完整播放器同款卡片 ─────────────────────── */
.mini-player.is-expanded{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:"cover main" "seek seek" "controls controls";
  align-items:start;gap:0 18px;cursor:default;overflow:hidden;
  width:min(440px,calc(100vw - 32px));
  padding:20px 20px 16px;border-radius:22px;
  background:radial-gradient(110% 150% at 0 0,rgba(125,91,228,.52),rgba(49,31,112,.32) 50%,rgba(15,12,26,.95)),#101017;
  border-color:#30283f;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  box-shadow:0 30px 70px -26px #000;
}
.mini-player.is-expanded .mini-cover{
  grid-area:cover;align-self:start;width:84px;height:84px;padding:5px;border-radius:50%;background:#0a0a0a;
  box-shadow:0 0 0 1px rgba(255,255,255,.12),0 18px 34px -18px #000;
}
.mini-player.is-expanded .mini-cover img{border-radius:50%}
.mini-player.is-expanded .mini-hole{
  display:block;position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px;border-radius:50%;
  background:#0a0a0a;box-shadow:0 0 0 2px rgba(0,0,0,.5);
}
.mini-player.is-expanded .mini-main{gap:0;grid-area:main;position:relative;isolation:isolate}
.mini-player.is-expanded .mini-head{position:relative;display:block}
.mini-player.is-expanded .mini-spectrum{
  display:block;position:absolute;left:-8px;right:-8px;top:0;bottom:-2px;z-index:-1;
  pointer-events:none;opacity:.5;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.28) 30%,rgba(0,0,0,.92) 62%,#000 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.28) 30%,rgba(0,0,0,.92) 62%,#000 100%);
}
.mini-player.is-expanded .mini-title{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  white-space:normal;font-size:19px;font-weight:600;letter-spacing:-.03em;line-height:1.2;
}
.mini-player.is-expanded .mini-title:hover{color:#e9dcff}
.mini-player.is-expanded .mini-artist{display:block;margin-top:4px;font-size:12px;color:#c2b9d0}
.mini-player.is-expanded .mini-bar{display:none}
.mini-player.is-expanded .mini-lyric{
  display:block;margin:12px 0 0;font-size:12.5px;line-height:1.6;color:#c2b9d0;
  white-space:nowrap;overflow:hidden;text-overflow:clip;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 76%,rgba(0,0,0,.4) 90%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0,#000 76%,rgba(0,0,0,.4) 90%,transparent 100%);
}
.mini-player.is-expanded .mini-lyric.is-live{color:#efe7ff}
.mini-player.is-expanded .mini-seekrow{display:block;grid-area:seek;margin:14px 0 0}
.mini-player.is-expanded .mini-seek{
  display:block;box-sizing:border-box;width:100%;height:20px;margin:0;padding:0;border:0;border-radius:0;
  background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer;--mini-progress:0%;
}
.mini-player.is-expanded .mini-seek::-webkit-slider-runnable-track{height:3px;border-radius:20px;
  background:linear-gradient(to right,#d6c5fb 0 var(--mini-progress),rgba(255,255,255,.2) var(--mini-progress) 100%)}
.mini-player.is-expanded .mini-seek::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:9px;height:9px;margin-top:-3px;
  border:0;border-radius:50%;background:#f6f2ff;box-shadow:0 0 0 3px rgba(196,181,253,.13)}
.mini-player.is-expanded .mini-seek::-moz-range-track{height:3px;border-radius:20px;background:rgba(255,255,255,.2)}
.mini-player.is-expanded .mini-seek::-moz-range-progress{height:3px;border-radius:20px;background:#d6c5fb}
.mini-player.is-expanded .mini-seek::-moz-range-thumb{width:9px;height:9px;border:0;border-radius:50%;background:#f6f2ff}
.mini-times{display:flex;justify-content:space-between;font-size:10.5px;color:#b3a9c4;font-variant-numeric:tabular-nums}
.mini-player.is-expanded .mini-controls{
  display:grid;grid-area:controls;grid-template-columns:minmax(38px,1fr) auto minmax(38px,1fr);align-items:center;gap:8px;margin-top:12px;
}
.mini-transport{display:flex;align-items:center;justify-content:center;gap:6px}
.mini-player.is-expanded .mini-mode{display:grid;justify-self:start}
.mini-mode svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.mini-mode .ico-one,.mini-mode .ico-shuffle{display:none}
.mini-mode[data-mode="one"] .ico-list,.mini-mode[data-mode="one"] .ico-shuffle{display:none}
.mini-mode[data-mode="one"] .ico-one{display:block}
.mini-mode[data-mode="shuffle"] .ico-list,.mini-mode[data-mode="shuffle"] .ico-one{display:none}
.mini-mode[data-mode="shuffle"] .ico-shuffle{display:block}
.mini-player.is-expanded .mini-btn{width:38px;height:38px;color:#ddd4ed}
.mini-player.is-expanded .mini-btn:hover{background:rgba(255,255,255,.1);color:#fff}
.mini-player.is-expanded .mini-btn svg{width:17px;height:17px}
.mini-player.is-expanded .mini-btn-play{width:46px;height:46px;background:#f3effa;color:#21162f;box-shadow:0 4px 18px rgba(0,0,0,.18)}
.mini-player.is-expanded .mini-btn-play:hover{background:#ddcff8;color:#21162f}
.mini-player.is-expanded .mini-vol{display:flex;align-items:center;justify-self:end;gap:2px;min-width:0}
.mini-player.is-expanded .mini-mute svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.mini-player.is-expanded .mini-mute .ico-mute{display:none}
.mini-player.is-expanded .mini-mute.is-muted .ico-vol{display:none}
.mini-player.is-expanded .mini-mute.is-muted .ico-mute{display:block}
.mini-player.is-expanded .mini-mute[data-volume="low"] .ico-vol,
.mini-player.is-expanded .mini-mute[data-volume="medium"] .ico-vol-outer{display:none}
.mini-player.is-expanded .mini-volume{
  box-sizing:border-box;width:56px;height:20px;margin:0;padding:0;border:0;background:transparent;
  appearance:none;-webkit-appearance:none;cursor:pointer;--mini-progress:80%;
}
.mini-player.is-expanded .mini-volume::-webkit-slider-runnable-track{height:3px;border-radius:20px;
  background:linear-gradient(to right,#d6c5fb 0 var(--mini-progress),rgba(255,255,255,.2) var(--mini-progress) 100%)}
.mini-player.is-expanded .mini-volume::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:9px;height:9px;margin-top:-3px;
  border:0;border-radius:50%;background:#f6f2ff}
.mini-player.is-expanded .mini-volume::-moz-range-track{height:3px;border-radius:20px;background:rgba(255,255,255,.2)}
.mini-player.is-expanded .mini-volume::-moz-range-progress{height:3px;border-radius:20px;background:#d6c5fb}
.mini-player.is-expanded .mini-volume::-moz-range-thumb{width:9px;height:9px;border:0;border-radius:50%;background:#f6f2ff}

/* 与页面内容栏（.wrap）对齐：按内容栏宽度反推左右边距 */
@media(max-width:1050px) and (min-width:721px){.mini-player{right:calc(50% - min(1280px,100vw - 48px)/2)}}
@media(max-width:720px){
  .mini-player{left:calc(50% - min(1280px,100vw - 36px)/2);right:calc(50% - min(1280px,100vw - 36px)/2);bottom:12px;width:auto;border-radius:14px;gap:9px}
  .mini-player.is-expanded{width:auto;padding:16px;border-radius:20px;gap:14px}
  .mini-player.is-expanded .mini-cover{width:56px;height:56px}
  .mini-player.is-expanded .mini-title{font-size:17px}
  .mini-player.is-expanded .mini-vol{display:none}
  .mini-player.is-expanded .mini-controls{grid-template-columns:minmax(34px,1fr) auto minmax(34px,1fr)}
}
@media(prefers-reduced-motion:reduce){.mini-player{animation:none}.mini-cover,.mini-btn,.mini-bar b{transition:none}}

/* 切页时的顶部进度条 */
#pjax-progress{position:fixed;top:0;left:0;height:2px;width:0;background:#fff;z-index:99;opacity:0;transition:width .35s ease,opacity .3s ease;pointer-events:none}
#pjax-progress.is-on{width:72%;opacity:1}

.mini-quality{font-size:10px;color:#b3a3c4;line-height:1.4}
.mini-quality[hidden]{display:none}
