:root {
  --bg:#07111f; --panel:#0c1a2d; --panel2:#10223a; --line:#1d3852;
  --text:#f4f8ff; --muted:#91a7bc; --accent:#2ed2f2; --accent2:#8b7cff;
  --danger:#ff6b7c; --sidebar:clamp(190px,15vw,270px); --player:clamp(116px,14vh,156px);
  --top:clamp(70px,8vh,92px); --radius:16px; --font:clamp(15px,1vw,20px);
}
*{box-sizing:border-box} html,body,#tv-vue-app{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:Arial,"Microsoft YaHei",sans-serif;font-size:var(--font)}
[v-cloak]{display:none!important} button,input{font:inherit;color:inherit} button{border:1px solid var(--line);background:#102139;border-radius:12px;cursor:pointer} button:disabled{opacity:.35;cursor:default}
button:focus,input:focus,[tabindex]:focus{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px rgba(46,210,242,.35);z-index:5}
.app-shell{height:100%;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);grid-template-rows:minmax(0,1fr) var(--player);background:linear-gradient(135deg,#07111f,#091827)}
.sidebar{grid-row:1/3;display:flex;flex-direction:column;min-width:0;padding:clamp(12px,1.4vw,24px);border-right:1px solid var(--line);background:#081525}
.brand{display:flex;align-items:center;gap:12px;width:100%;padding:12px;text-align:left;background:transparent}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--accent2),var(--accent));font-size:28px;font-weight:900}.brand span:last-child{min-width:0}.brand strong,.brand small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand small{color:var(--muted);font-size:.65em;margin-top:4px}
.menu-list{display:grid;gap:6px;margin-top:18px;overflow-y:auto;scrollbar-width:none}.menu-list::-webkit-scrollbar{display:none}.menu-item{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:8px 12px;text-align:left;background:transparent}.menu-item.active{background:#12304b;border-color:#2ca5c2}.menu-icon{font-size:1.15em;color:#87e9ff}.menu-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item em{min-width:26px;padding:3px 7px;border-radius:999px;background:#e6587b;font-style:normal;text-align:center;font-size:.72em}
.sidebar-foot{margin-top:auto;display:grid;gap:10px}.sidebar-foot>button{display:flex;align-items:center;gap:10px;width:100%;padding:10px;text-align:left}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#18314b}.sidebar-foot strong,.sidebar-foot small{display:block}.sidebar-foot small,.sidebar-foot p{color:var(--muted);font-size:.65em}.sidebar-foot p{margin:0;line-height:1.45}
.main-area{min-width:0;min-height:0;display:grid;grid-template-rows:var(--top) auto minmax(0,1fr);overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px clamp(14px,2vw,30px);border-bottom:1px solid var(--line);background:#081727}.top-left{min-width:0}.inline-search{display:grid;grid-template-columns:28px minmax(180px,1fr) auto auto;align-items:center;gap:8px;width:min(690px,55vw)}.inline-search .search-icon{font-size:1.25em;color:#67dff4}.inline-search input{min-width:0;height:46px;padding:0 14px;border:2px solid #2f536e;border-radius:12px;background:#071421;color:#fff;font:inherit;outline:none}.inline-search input:focus{border-color:#fff;background:#10263c;box-shadow:0 0 0 3px rgba(80,216,243,.25)}.inline-search button{height:46px;padding:0 15px}.top-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}.top-actions button{min-height:var(--button-min-height,44px);padding:0 18px}.top-actions time{font-size:1.35em;font-weight:900;margin-left:6px}.network{font-size:.7em;color:#71e0a0}.network.bad{color:#ff8995}
.content-head{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:clamp(10px,1.5vh,20px) clamp(14px,2vw,30px);border-bottom:1px solid var(--line)}.content-head small{color:#61d9f3;letter-spacing:.15em}.content-head h1{margin:3px 0 0;font-size:clamp(26px,2.2vw,42px)}.content-head p{margin:5px 0 0;color:var(--muted);font-size:.75em}.pager{display:flex;align-items:center;gap:10px}.pager span{color:var(--muted);margin-right:6px}.pager button{min-width:112px;min-height:48px;padding:0 20px}
.list-stage{min-height:0;overflow:auto;padding:8px clamp(8px,1.2vw,18px) 16px;scrollbar-color:#254a68 transparent}.song-list{display:grid;gap:7px}.song-row{display:grid;grid-template-columns:64px minmax(250px,1fr) minmax(90px,.18fr) minmax(330px,.48fr);align-items:center;gap:12px;min-height:var(--song-min-height,68px);padding:8px 12px;border:1px solid #19334c;border-radius:14px;background:#0c1b2e}.song-row.selected{border-color:#20bcd9;background:#0f2940}.song-row.playing{box-shadow:inset 4px 0 #43d7f1}.song-index{display:grid;place-items:center;height:46px;border-radius:11px;background:#172a40;color:#a9bed1;font-weight:800}.song-main{min-width:0}.song-main strong,.song-main span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-main strong{font-size:1.05em}.song-main span{color:var(--muted);font-size:.78em;margin-top:5px}.song-status{color:#65dff5;font-size:.72em;white-space:nowrap}.song-actions{display:flex;justify-content:flex-end;gap:8px;min-width:0}.song-actions button{min-height:var(--button-min-height,44px);padding:0 clamp(10px,1vw,18px);white-space:nowrap}.song-actions button:nth-child(2){border-color:#8c6cf0}.song-actions button:last-child{border-color:#63394b}
.state-box{height:100%;display:grid;place-items:center;align-content:center;gap:18px;color:var(--muted)}.state-box button{padding:12px 26px}.state-box.error{color:#ff9ba7}.spinner{width:46px;height:46px;border:4px solid #1a3b54;border-top-color:#5ce2fa;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.player-bar{grid-column:2;display:grid;grid-template-columns:minmax(240px,.8fr) minmax(360px,1.1fr) minmax(370px,1fr);align-items:center;gap:18px;padding:12px clamp(14px,2vw,28px);border-top:1px solid #28506d;background:#081421}.now-playing{display:flex;align-items:center;gap:13px;min-width:0}.music-dot{display:grid;place-items:center;flex:0 0 50px;height:50px;border-radius:15px;background:linear-gradient(135deg,#6f5eea,#25bfe2);font-size:27px}.now-playing div{min-width:0}.now-playing strong,.now-playing span,.now-playing small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-playing span,.now-playing small{color:var(--muted);font-size:.72em;margin-top:3px}.player-center{display:grid;gap:8px}.transport{display:flex;justify-content:center;gap:12px}.transport button{width:48px;height:42px}.transport .main-play{width:58px;background:#eafcff;color:#0b1a28;font-weight:900}.progress-line{display:grid;grid-template-columns:48px minmax(80px,1fr) 48px;align-items:center;gap:8px;font-size:.68em;color:var(--muted)}.progress-track{height:12px;padding:3px;border-radius:999px;background:#152d43;overflow:hidden;pointer-events:none;user-select:none}.progress-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent2),var(--accent));transition:width .28s linear;will-change:width}.player-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.player-actions button{min-height:42px;padding:0 13px}
.overlay,.lyrics-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:3vh 4vw;background:rgba(3,9,17,.92)}.dialog{width:min(1100px,94vw);max-height:90vh;overflow:auto;padding:24px;border:1px solid #345875;border-radius:24px;background:#0b1b2d}.dialog header,.lyrics-overlay header,.mv-player>header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.dialog header small,.lyrics-overlay header small,.mv-player header small{color:#50d8f3;letter-spacing:.15em}.dialog header h2,.lyrics-overlay header h2,.mv-player header h2{margin:4px 0 0}.dialog header button,.lyrics-overlay header button,.mv-player header button{min-height:46px;padding:0 22px}
.tabs{display:flex;gap:10px;margin-bottom:18px}.tabs button{min-width:120px;min-height:48px}.tabs button.active{background:#523e9c}.account-dialog label{display:grid;gap:7px;margin:13px 0;color:var(--muted)}.account-dialog input{min-height:52px;padding:0 15px;border:1px solid #345875;border-radius:12px;background:#071421}.primary-wide,.danger-wide{width:100%;min-height:54px;margin-top:15px}.primary-wide{background:#236b84}.danger-wide{border-color:#a84258}.profile{text-align:center}.big-avatar{display:grid;place-items:center;width:80px;height:80px;margin:auto;border-radius:50%;background:#18314b;font-size:32px}.profile h3{font-size:28px;margin:12px 0}.profile p{color:var(--muted)}
.setting-list{display:grid;gap:12px}.setting-list>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,360px);align-items:center;gap:18px;min-height:68px;padding:12px 16px;border:1px solid var(--line);border-radius:14px}.setting-list span strong,.setting-list span small{display:block}.setting-list span small{color:var(--muted);margin-top:5px}.setting-list button{min-height:44px}.setting-list input[type=range]{width:100%}.source-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.source-columns>div{display:grid;align-content:start;gap:8px}.source-columns h3{margin:0 0 6px}.source-columns button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:8px 14px;text-align:left}.source-columns button.active{border-color:#4edcf5;background:#11354b}.source-columns button span strong,.source-columns button span small{display:block}.source-columns button span small{color:var(--muted);font-size:.72em;margin-top:4px}.source-columns em{color:#8feafa;font-style:normal}
.lyrics-overlay{display:block;padding:24px 42px;background:radial-gradient(circle at 25% 40%,#182751,#07111f 55%);contain:layout paint style}.ktv-stage{height:calc(100vh - 120px);display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,4vh,54px);padding:0 7vw;overflow:hidden}.ktv-stage p{margin:0;font-weight:850;line-height:1.4;transform:translateZ(0);backface-visibility:hidden}.past-line{font-size:clamp(24px,2.2vw,42px);color:#6e8094}.active-line{position:relative;font-size:clamp(36px,4vw,72px);color:#f7faff;white-space:pre-wrap}.active-line:after{content:attr(data-text);position:absolute;inset:0;white-space:pre-wrap;color:#ff78d5;text-shadow:0 0 10px rgba(255,120,213,.32);clip-path:inset(0 100% 0 0);will-change:clip-path;pointer-events:none}.active-line.lyric-animate:after{animation:lyricFill var(--lyric-duration,3s) linear both;animation-delay:var(--lyric-delay,0s)}.active-line.lyric-paused:after{animation-play-state:paused}.next-line{font-size:clamp(30px,3.2vw,58px);color:#f1f6ff}.next2-line{font-size:clamp(22px,2.4vw,44px);color:#93a7bc}@keyframes lyricFill{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.mv-player{position:fixed;z-index:60;background:#000;border:0}.mv-player.full{inset:0;padding:clamp(12px,2vw,24px);display:grid;grid-template-rows:auto minmax(0,1fr) auto}.mv-player video{width:100%;height:100%;min-height:0;object-fit:contain;background:#000}.mv-loading{position:absolute;inset:0;display:grid;place-items:center;color:#fff;background:rgba(0,0,0,.72)}.mv-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;padding:12px}.mv-controls button{min-height:44px;padding:0 16px}
.toast{position:fixed;z-index:100;left:50%;top:8%;transform:translate(-50%,-30px);max-width:70vw;padding:14px 24px;border:1px solid #4f6f88;border-radius:16px;background:#0b1929;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media (max-width:1500px){:root{--sidebar:210px;--player:124px;--font:16px}.song-row{grid-template-columns:54px minmax(220px,1fr) 90px minmax(300px,.55fr)}.song-actions button{padding:0 11px}.player-bar{grid-template-columns:minmax(220px,.72fr) minmax(320px,1fr) minmax(330px,.95fr)}}
@media (max-height:760px){:root{--top:64px;--player:108px;--font:14px}.content-head{padding-top:8px;padding-bottom:8px}.content-head p{display:none}.song-row{min-height:56px}.song-index{height:38px}.song-actions button{min-height:38px}.menu-item{min-height:40px}.sidebar-foot p{display:none}}
@media (max-width:1150px){:root{--sidebar:180px}.brand small,.sidebar-foot p,.network{display:none}.song-row{grid-template-columns:48px minmax(180px,1fr) 70px minmax(250px,.7fr)}.song-actions{gap:5px}.song-actions button{font-size:.8em;padding:0 8px}.player-bar{grid-template-columns:minmax(180px,.7fr) minmax(290px,1fr) minmax(280px,.9fr)}.player-actions button{font-size:.8em;padding:0 8px}}
@media (min-width:2500px){:root{--sidebar:330px;--player:190px;--font:25px}.song-row{min-height:92px;grid-template-columns:90px minmax(400px,1fr) 160px minmax(600px,.55fr)}.song-actions button{min-height:60px}.menu-item{min-height:66px}.top-actions button,.inline-search input,.inline-search button{min-height:58px}}
@media (orientation:portrait){body:before{content:'请将电视或设备旋转为横屏';position:fixed;inset:0;z-index:999;display:grid;place-items:center;background:#07111f;color:white;font-size:28px}}

/* TV25 clean responsive inline search */
@media (max-width:1450px){.inline-search{width:min(560px,52vw);grid-template-columns:24px minmax(130px,1fr) auto auto}.inline-search button{padding:0 10px}.top-actions{gap:6px}.top-actions button{padding:0 12px}}
@media (max-width:1100px){.topbar{gap:8px}.inline-search{width:min(480px,58vw)}.network,.top-actions time{display:none}}
@media (max-height:760px){.inline-search input,.inline-search button{height:40px;min-height:40px}.topbar{padding-top:6px;padding-bottom:6px}}

.native-media-title{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}

/* TV26: display-only progress, compositor-friendly lyrics, and every new song starts at 00:00. */

/* TV33: one DPlayer surface, no external MV button panel. */
.main-area{grid-template-rows:var(--top) minmax(0,1fr)}
.content-workspace{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.content-workspace>.content-head{flex:0 0 auto}.content-workspace>.list-stage{flex:1 1 auto;min-height:0}
.sidebar-settings{border-color:#31536e!important;background:#0d2236!important}.sidebar-settings .avatar{font-size:20px;color:#70e4fa}
.setting-buttons{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.setting-buttons button{min-width:128px}
.settings-dialog .setting-list>div:focus-within{border-color:#51dcf5;background:#0e2940}.settings-dialog .setting-list>div>button{justify-self:stretch;min-width:230px}

.app-shell.mv-dock-open{--player:clamp(340px,48vh,560px)}
.player-dock{grid-column:2;min-width:0;min-height:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr) auto;border-top:1px solid #28506d;background:#07121e}
.player-dock.mv-mode-hidden{grid-template-rows:auto}.player-dock.mv-mode-hidden .mv-dock{display:none!important}
.music-player-row{min-width:0;display:grid;grid-template-columns:minmax(230px,.8fr) minmax(340px,1.1fr) minmax(360px,1fr);align-items:center;gap:18px;padding:11px clamp(14px,2vw,28px);border-top:1px solid #24445d;background:#081421}
.player-dock.mv-mode-hidden .music-player-row{border-top:0;height:100%}

.mv-dock{min-width:0;min-height:0;display:block;overflow:hidden;background:#000}
.mv-dock-stage{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:#000}
.mv-dplayer{position:absolute;inset:0;overflow:hidden;background:#000}
.mv-dplayer,.mv-dplayer .dplayer,.mv-dplayer .dplayer-video-wrap{display:block;width:100%;height:100%;min-height:0;background:#000}
.mv-dplayer .dplayer-video{width:100%;height:100%;object-fit:contain!important;background:#000}
.mv-dplayer .dplayer-menu,.mv-dplayer .dplayer-mask{display:none!important}
.mv-dplayer .dplayer-icon,.mv-dplayer .dplayer-bar-wrap,.mv-dplayer .dplayer-volume{outline:none!important}
.mv-dplayer .dplayer-controller{z-index:3;opacity:1!important}
.mv-dplayer .dplayer-controller-mask{opacity:1!important}
.mv-loading{position:absolute;inset:0;z-index:6;display:grid;place-items:center;color:#fff;background:rgba(0,0,0,.68);pointer-events:none}

.mv-remote-surface{position:absolute;inset:0;z-index:5;width:100%;height:100%;padding:0;border:0!important;border-radius:0!important;background:transparent!important;color:transparent;box-shadow:none!important;outline:none!important;cursor:default}
.mv-remote-surface:focus{outline:4px solid rgba(80,216,243,.92)!important;outline-offset:-5px!important;box-shadow:inset 0 0 0 7px rgba(80,216,243,.12)!important}
.screen-reader-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.player-dock.mv-mode-fullscreen{position:fixed;inset:0;z-index:90;width:100%;height:100%;grid-template-rows:minmax(0,1fr);border:0;background:#000}
.player-dock.mv-mode-fullscreen .music-player-row{display:none}.player-dock.mv-mode-fullscreen .mv-dock{height:100%}
.player-dock:fullscreen,.player-dock:-webkit-full-screen{width:100%;height:100%;background:#000}

@media (max-width:1500px){.music-player-row{grid-template-columns:minmax(210px,.72fr) minmax(310px,1fr) minmax(330px,.95fr)}}
@media (max-width:1150px){.music-player-row{grid-template-columns:minmax(175px,.7fr) minmax(280px,1fr) minmax(270px,.9fr);gap:10px;padding-left:12px;padding-right:12px}.music-player-row .player-actions button{font-size:.8em;padding:0 8px}}
@media (max-height:760px){.app-shell.mv-dock-open{--player:clamp(292px,47vh,350px)}.music-player-row{padding-top:7px;padding-bottom:7px}}
@media (min-width:2500px){.app-shell.mv-dock-open{--player:clamp(520px,50vh,760px)}}


/* TV37: global UI scale and performance protection. */
#tv-vue-app{transform-origin:0 0;contain:layout style}
.scale-buttons button{min-width:105px}.performance-record small{white-space:normal;line-height:1.45}
.app-shell.performance-mode{background:#071522}
.performance-mode .sidebar,.performance-mode .topbar,.performance-mode .music-player-row{background:#081522}
.performance-mode .brand-mark,.performance-mode .music-dot{background:#1e7895}
.performance-mode button:focus,.performance-mode input:focus,.performance-mode [tabindex]:focus{box-shadow:0 0 0 4px rgba(46,210,242,.24)}
.performance-mode .song-row,.performance-mode .menu-item,.performance-mode button{transition:none!important}
.performance-mode .progress-track i{transition:none!important;will-change:auto}
.performance-mode .active-line:after{text-shadow:none;will-change:auto}
.performance-mode .lyrics-overlay{background:#081522}
.song-row{contain:layout paint style}
@media (max-height:700px){.settings-dialog{max-height:96vh;padding:16px}.setting-list{gap:8px}.setting-list>div{min-height:58px;padding:8px 12px}}


/* TV38: automatic viewport fitting with manual fine tuning. */
:root{--effective-ui-scale:1}
.scale-setting-row{grid-template-columns:minmax(260px,.85fr) minmax(520px,1.45fr)!important}
.scale-setting-row>span small{white-space:normal;line-height:1.45}
.scale-setting-row .setting-buttons{display:grid;grid-template-columns:repeat(5,minmax(94px,1fr));width:100%}
.scale-setting-row .setting-buttons button{min-width:0;padding-left:10px;padding-right:10px}
html[data-tv-density="compact"] .content-head p{display:none}
html[data-tv-density="compact"] .song-row{min-height:56px}
html[data-tv-density="compact"] .menu-item{min-height:40px}
@media (max-width:1350px){.scale-setting-row{grid-template-columns:1fr!important}.scale-setting-row .setting-buttons{grid-template-columns:repeat(3,minmax(96px,1fr))}}
@media (max-height:680px){.scale-setting-row .setting-buttons{grid-template-columns:repeat(5,minmax(82px,1fr));gap:6px}.scale-setting-row .setting-buttons button{min-height:38px;font-size:.86em}}


/* TV39: safe adaptive layout. Never transform/zoom the full Vue root. */
:root{--song-min-height:68px;--button-min-height:44px}
#tv-vue-app{transform:none!important;zoom:1!important;width:100%!important;height:100%!important}
.tv-boot-status{position:fixed;inset:0;z-index:10000;display:grid;place-content:center;gap:12px;padding:40px;text-align:center;background:#07111f;color:#f4f8ff;font-family:Arial,"Microsoft YaHei",sans-serif}
.tv-boot-status strong{font-size:clamp(24px,3vw,48px)}
.tv-boot-status small{max-width:820px;color:#91a7bc;font-size:clamp(15px,1.4vw,23px);line-height:1.6}
.tv-boot-status.error strong{color:#ff9aa6}
html.tv-app-ready .tv-boot-status{display:none}
html[data-tv-density="compact"] .song-row{min-height:max(50px,var(--song-min-height))}
html[data-tv-density="compact"] .content-head{padding-top:8px;padding-bottom:8px}
html[data-tv-density="large"] .song-main strong{font-size:1.08em}
html[data-tv-density="xlarge"] .song-main strong{font-size:1.12em}


/* TV40: never hide the application after mount; boot overlay closes only after visible shell verification. */
#tv-vue-app.tv-force-visible{display:block!important;position:fixed!important;inset:0!important;width:100%!important;height:100%!important;overflow:hidden!important}
#tv-vue-app.tv-force-visible>.app-shell{display:grid!important;width:100vw!important;height:100vh!important;min-width:320px!important;min-height:240px!important}
html.tv-app-failed .tv-boot-status{display:grid!important}
html.tv-app-failed #tv-vue-app{visibility:hidden!important}
.tv-boot-status em{display:inline-block;margin-top:8px;color:#ffd27d;font-style:normal;word-break:break-all}

/* Web V6: 下拉刷新、自动加载与精确时间歌词 */
.list-stage{position:relative;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.list-tools{align-items:center}.list-tools span{max-width:min(520px,42vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-tools button{min-width:104px}
.pull-refresh{height:0;min-height:0;display:flex;align-items:center;justify-content:center;gap:10px;overflow:hidden;color:#9eb7cb;transition:height .22s ease,color .18s ease;will-change:height}
.pull-refresh.ready{color:#65dff5}.pull-refresh.refreshing{color:#ff78d5}.pull-refresh-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid currentColor;border-radius:50%;font-weight:900}.pull-refresh.refreshing .pull-refresh-icon{animation:pullSpin .8s linear infinite}
.loading-more,.list-finished{min-height:58px;display:flex;align-items:center;justify-content:center;gap:10px;color:#7891a7;font-size:.78em}.loading-more{color:#65dff5}.state-box small{display:block;margin-top:8px;color:#7891a7}
@keyframes pullSpin{to{transform:rotate(360deg)}}

/* 普通 LRC 整句上顶；KRC/QRC 使用真实逐字时间，不再整句匀速假填充。 */
.active-line:after{content:none!important;display:none!important;animation:none!important}
.active-line{display:block;transform-origin:left center;text-shadow:0 8px 28px rgba(0,0,0,.28)}
.active-line.lyric-rise{animation:lyricLineRise .42s cubic-bezier(.2,.9,.25,1) both}
.active-line.sentence-mode{color:#ff78d5;text-shadow:0 0 16px rgba(255,120,213,.28),0 8px 28px rgba(0,0,0,.3)}
.lyric-word{display:inline-block;color:#f7faff;transform:translateY(0) scale(1);transform-origin:center bottom;transition:color .12s linear,transform .16s ease,text-shadow .16s ease}
.lyric-word.sung{color:#65dff5;text-shadow:0 0 12px rgba(101,223,245,.24)}
.lyric-word.current{color:#ff78d5;transform:translateY(-.18em) scale(1.09);text-shadow:0 0 15px rgba(255,120,213,.42);animation:lyricWordJump .34s cubic-bezier(.2,.9,.3,1) both}
.lyric-word.pending{color:#f7faff}
@keyframes lyricLineRise{0%{opacity:.2;transform:translateY(30px) scale(.96)}65%{opacity:1;transform:translateY(-6px) scale(1.015)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes lyricWordJump{0%{transform:translateY(0) scale(1)}60%{transform:translateY(-.24em) scale(1.11)}100%{transform:translateY(-.18em) scale(1.09)}}
.performance-mode .active-line.lyric-rise{animation-duration:.28s}.performance-mode .lyric-word.current{animation:none;transform:translateY(-.12em) scale(1.05)}
