/* lane12.music.css — ng888888 右下角音乐播放器(mplayer)一比一复刻 (r2 H 组)
   尺寸取自 ng 源样式，rem→var(--l12r)=min(100vw,430px)/10 (390 宽 = 39px，与 ng 相同) */
#l01r2-music{display:none!important} /* A 组旧占位气泡由本文件接管 */
#l12-music{--l12r:calc(min(100vw, 430px) / 10);--container-max-width:430px;
 --mplayer-bg:#fff;--mplayer-text:#1f2937;--mplayer-sub-text:#9ca3af;--mplayer-accent:#8462fd;--mplayer-accent-text:#fff;
 --mplayer-track:#e5e7eb;--mplayer-item-active-bg:transparent;--mplayer-cover-bg:linear-gradient(85deg,#ab82ea 0%,#8266f6 100%);--mplayer-bubble-bg:#8462fd;
 font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
 -webkit-tap-highlight-color:transparent;line-height:normal;text-align:left}
#l12-music[hidden]{display:none!important}
#l12-music *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
#l12-music button{font-family:inherit;margin:0;outline:none;-webkit-appearance:none;appearance:none}
#l12-music svg{display:block;flex:none}
@keyframes l12-mspin { 
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
#l12-music .mplayer-layer{ position: fixed; z-index: 1001; bottom: calc(env(safe-area-inset-bottom) + var(--safe-area-bottom, 0px) + calc(4.16 * var(--l12r))); left: 50%; transform: translate(-50%); width: 100%; max-width: var(--container-max-width); padding: 0px calc(0.32 * var(--l12r)); box-sizing: border-box; pointer-events: none; }
#l12-music .mplayer-layer__bubble-row{ display: flex; justify-content: flex-end; }
#l12-music .mplayer-bubble-holder{ pointer-events: auto; transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1); will-change: transform; }
#l12-music .mplayer-bubble{ pointer-events: auto; width: calc(1.17333 * var(--l12r)); height: calc(1.17333 * var(--l12r)); padding: 0px; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 50%; background: var(--mplayer-bubble-bg); color: var(--mplayer-accent-text); box-shadow: rgba(0, 0, 0, 0.18) 0px calc(0.10667 * var(--l12r)) calc(0.32 * var(--l12r)); display: flex; align-items: center; justify-content: center; cursor: pointer; touch-action: none; transform: scale(1); opacity: 1; transition: transform 0.26s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.2s, box-shadow 0.2s; }
#l12-music .mplayer-bubble:active{ transform: scale(0.94); }
#l12-music .mplayer-bubble--hidden{ opacity: 0; pointer-events: none; }
#l12-music .mplayer-bubble--dragging{ transition: none; cursor: grabbing; box-shadow: rgba(0, 0, 0, 0.26) 0px calc(0.21333 * var(--l12r)) calc(0.53333 * var(--l12r)); }
#l12-music .mplayer-bubble__icon{ font-size: calc(0.58667 * var(--l12r)); }
#l12-music .mplayer-bubble--playing .mplayer-bubble__icon{ animation: 3s linear 0s infinite normal none running l12-mspin; }
#l12-music .mplayer-card-holder{ position: absolute; left: calc(0.32 * var(--l12r)); right: calc(0.32 * var(--l12r)); bottom: 0px; z-index: 2; will-change: transform; }
#l12-music .mplayer-card{ position: relative; background: var(--mplayer-bg); border-radius: calc(0.42667 * var(--l12r)); box-shadow: rgba(17, 24, 39, 0.12) 0px calc(0.16 * var(--l12r)) calc(0.53333 * var(--l12r)); padding: calc(0.26667 * var(--l12r)) calc(0.37333 * var(--l12r)) calc(0.37333 * var(--l12r)); pointer-events: none; opacity: 0; transform: translate3d(calc(-1.49333 * var(--l12r)), 0px, 0px); visibility: hidden; transition: transform 0.28s cubic-bezier(0.4, 0, 1, 1), opacity 0.24s, visibility linear 0.28s; will-change: transform, opacity; }
#l12-music .mplayer-card--open{ pointer-events: auto; opacity: 1; transform: translateZ(0px); visibility: visible; transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.24s, visibility; }
#l12-music .mplayer-card__handle{ min-height: calc(0.48 * var(--l12r)); margin: 0px calc(0.74667 * var(--l12r)) calc(0.10667 * var(--l12r)); display: flex; align-items: center; justify-content: center; cursor: grab; touch-action: none; }
#l12-music .mplayer-card__handle--dragging{ cursor: grabbing; }
#l12-music .mplayer-card__handle-bar{ width: calc(0.74667 * var(--l12r)); height: calc(0.10667 * var(--l12r)); border-radius: calc(0.05333 * var(--l12r)); background: var(--mplayer-track); transition: background 0.2s; }
#l12-music .mplayer-card__handle--dragging .mplayer-card__handle-bar,#l12-music .mplayer-card__handle:active .mplayer-card__handle-bar{ background: var(--mplayer-accent); }
#l12-music .mplayer-card__close{ position: absolute; top: calc(0.16 * var(--l12r)); right: calc(0.21333 * var(--l12r)); width: calc(0.64 * var(--l12r)); height: calc(0.64 * var(--l12r)); padding: 0px; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: transparent; color: var(--mplayer-sub-text); font-size: calc(0.42667 * var(--l12r)); display: flex; align-items: center; justify-content: center; cursor: pointer; }
#l12-music .mplayer-card__close:active{ opacity: 0.6; }
#l12-music .mplayer-card__main{ display: flex; align-items: center; gap: calc(0.26667 * var(--l12r)); }
#l12-music .mplayer-cover{ flex: 0 0 auto; width: calc(1.49333 * var(--l12r)); aspect-ratio: 1 / 1; border-radius: calc(0.26667 * var(--l12r)); background: var(--mplayer-cover-bg); color: var(--mplayer-accent-text); display: flex; align-items: center; justify-content: center; overflow: hidden; }
#l12-music .mplayer-cover__img{ width: 100%; height: 100%; object-fit: cover; }
#l12-music .mplayer-cover__placeholder{ font-size: calc(0.58667 * var(--l12r)); opacity: 0.9; }
#l12-music .mplayer-meta{ flex: 1 1 0%; min-width: 0px; }
#l12-music .mplayer-meta__title{ font-size: calc(0.4 * var(--l12r)); font-weight: 600; line-height: 1.4; color: var(--mplayer-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#l12-music .mplayer-meta__artist{ margin-top: calc(0.10667 * var(--l12r)); font-size: calc(0.32 * var(--l12r)); line-height: 1.4; color: var(--mplayer-sub-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#l12-music .mplayer-actions{ flex: 0 0 auto; display: flex; align-items: center; gap: calc(0.26667 * var(--l12r)); }
#l12-music .mplayer-icon-btn{ width: calc(0.64 * var(--l12r)); height: calc(0.64 * var(--l12r)); padding: 0px; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: transparent; color: var(--mplayer-text); font-size: calc(0.50667 * var(--l12r)); display: flex; align-items: center; justify-content: center; cursor: pointer; }
#l12-music .mplayer-icon-btn--active{ color: var(--mplayer-accent); }
#l12-music .mplayer-icon-btn:active{ opacity: 0.6; }
#l12-music .mplayer-play-btn{ width: calc(0.90667 * var(--l12r)); height: calc(0.90667 * var(--l12r)); padding: 0px; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 50%; background: var(--mplayer-accent); color: var(--mplayer-accent-text); font-size: calc(0.4 * var(--l12r)); display: flex; align-items: center; justify-content: center; cursor: pointer; }
#l12-music .mplayer-play-btn:active{ transform: scale(0.94); }
#l12-music .mplayer-progress{ margin-top: calc(0.26667 * var(--l12r)); display: flex; align-items: center; gap: calc(0.26667 * var(--l12r)); }
#l12-music .mplayer-progress__time{ flex: 0 0 auto; min-width: calc(0.90667 * var(--l12r)); font-size: calc(0.29333 * var(--l12r)); line-height: 1.4; color: var(--mplayer-sub-text); }
#l12-music .mplayer-progress__time--right{ text-align: right; }
#l12-music .mplayer-progress__slider{ flex: 1 1 0%; min-width: 0px; }
#l12-music .mplayer-progress__slider .adm-slider{ padding: 0px; --fill-color: var(--mplayer-accent); }
#l12-music .mplayer-progress__slider .adm-slider-track{ height: calc(0.10667 * var(--l12r)); border-radius: calc(0.05333 * var(--l12r)); background-color: var(--mplayer-track); }
#l12-music .mplayer-progress__slider .adm-slider-fill{ height: calc(0.10667 * var(--l12r)); border-radius: calc(0.05333 * var(--l12r)); }
#l12-music .mplayer-progress__slider .adm-slider-thumb-container{ width: calc(0.64 * var(--l12r)); height: calc(0.64 * var(--l12r)); display: flex; align-items: center; justify-content: center; }
#l12-music .mplayer-progress__slider .adm-slider-thumb{ width: calc(0.32 * var(--l12r)); height: calc(0.32 * var(--l12r)); margin: 0px; line-height: 1; background: var(--mplayer-accent); box-shadow: rgba(17, 24, 39, 0.25) 0px calc(0.02667 * var(--l12r)) calc(0.08 * var(--l12r)); }
#l12-music .mplayer-progress__slider .adm-slider-thumb-icon{ display: none; }
#l12-music .mplayer-list-wrap{ overflow: hidden; opacity: 0; transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s; }
#l12-music .mplayer-list-wrap--open{ opacity: 1; }
#l12-music .mplayer-list{ margin-top: calc(0.26667 * var(--l12r)); padding-top: calc(0.26667 * var(--l12r)); border-top: calc(.02667 * var(--l12r)) solid var(--mplayer-track); display: flex; flex-direction: column; }
#l12-music .mplayer-list__items{ display: flex; flex-direction: column; max-height: min(calc(4.8 * var(--l12r)), 40vh); overflow-y: auto; overscroll-behavior: contain; }
#l12-music .mplayer-list__head{ display: flex; align-items: center; justify-content: space-between; gap: calc(0.21333 * var(--l12r)); min-height: calc(0.64 * var(--l12r)); }
#l12-music .mplayer-list__title{ font-size: calc(0.34667 * var(--l12r)); font-weight: 600; line-height: 1.4; color: var(--mplayer-text); }
#l12-music .mplayer-list__mode{ min-height: calc(0.64 * var(--l12r)); padding: 0px calc(0.16 * var(--l12r)); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: transparent; color: var(--mplayer-accent); font-size: calc(0.32 * var(--l12r)); line-height: 1.4; display: flex; align-items: center; gap: calc(0.10667 * var(--l12r)); cursor: pointer; }
#l12-music .mplayer-list__item{ box-sizing: border-box; position: relative; flex: 0 0 auto; min-height: calc(0.96 * var(--l12r)); padding: calc(0.18667 * var(--l12r)) calc(0.21333 * var(--l12r)); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: calc(0.21333 * var(--l12r)); background: transparent; color: var(--mplayer-sub-text); display: grid; grid-template-columns: auto minmax(0px, 1fr) minmax(0px, max-content); align-items: center; gap: calc(0.26667 * var(--l12r)); text-align: left; cursor: pointer; }
#l12-music .mplayer-list__item--active{ color: var(--mplayer-accent); background: var(--mplayer-item-active-bg); }
#l12-music .mplayer-list__item--active::before{ content: ""; position: absolute; inset: 0px; z-index: -1; border-radius: calc(0.21333 * var(--l12r)); background: currentcolor; opacity: 0.12; }
#l12-music .mplayer-list__index{ min-width: calc(0.53333 * var(--l12r)); font-size: calc(0.32 * var(--l12r)); line-height: 1; display: flex; align-items: center; justify-content: center; }
#l12-music .mplayer-list__name{ min-width: 0px; font-size: calc(0.34667 * var(--l12r)); line-height: 1.4; color: inherit; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#l12-music .mplayer-list__tip{ flex: 0 0 auto; min-height: calc(0.85333 * var(--l12r)); padding: calc(0.16 * var(--l12r)) calc(0.21333 * var(--l12r)); display: flex; align-items: center; justify-content: center; font-size: calc(0.32 * var(--l12r)); line-height: 1.4; color: var(--mplayer-sub-text); }
#l12-music .mplayer-list__artist{ min-width: 0px; font-size: calc(0.29333 * var(--l12r)); line-height: 1.4; color: var(--mplayer-sub-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 进度条 (antd-mobile Slider 同尺寸) */
#l12-music .adm-slider{position:relative;touch-action:none;user-select:none;-webkit-user-select:none}
#l12-music .adm-slider-track-container{padding:8px 0;cursor:pointer;position:relative}
#l12-music .adm-slider-track{position:relative;width:100%}
#l12-music .adm-slider-fill{position:absolute;left:0;top:0;background:var(--mplayer-accent)}
#l12-music .adm-slider-thumb-container{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);cursor:grab;touch-action:none}
#l12-music .adm-slider-thumb{border-radius:50%}
/* DotLoading */
#l12-music .l12-dots{display:inline-flex;gap:2px;align-items:center;height:1em}
#l12-music .l12-dots i{width:3px;height:3px;border-radius:50%;background:currentColor;animation:l12-dot 1.2s infinite ease-in-out both}
#l12-music .l12-dots i:nth-child(2){animation-delay:.2s}#l12-music .l12-dots i:nth-child(3){animation-delay:.4s}
@keyframes l12-dot{0%,80%,100%{opacity:.3}40%{opacity:1}}
/* Toast (antd-mobile Toast 同款) */
#l12-toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3100;max-width:204px;padding:12px;border-radius:8px;background:rgba(0,0,0,.7);color:#fff;font-size:15px;line-height:1.5;text-align:center;pointer-events:none;word-break:break-all;opacity:0;transition:opacity .2s}
#l12-toast.on{opacity:1}
@media (prefers-reduced-motion: reduce){
 #l12-music .mplayer-bubble-holder,#l12-music .mplayer-bubble,#l12-music .mplayer-card-holder,#l12-music .mplayer-card,#l12-music .mplayer-list-wrap{transition-duration:.01ms!important}
 #l12-music .mplayer-bubble--playing .mplayer-bubble__icon{animation:none!important}
}

/* 本站页面覆盖层 ngE-ov(999)/ngE-sub(1002)/ngE-top(1003) 上 ng 仍显示气泡 → 1004；低于二维码弹窗2000/登录框3000/底部面板10050/toast */
#l12-music .mplayer-layer{z-index:1004}
