:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#171719;background:#fff;accent-color:#ff375f;--accent:#ff375f;--muted:#949499;--line:#e9e9eb;--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}button,input,select{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:wait}[hidden]{display:none!important}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.icon{width:24px;height:24px;display:block;flex-shrink:0;stroke-width:1.9;pointer-events:none}.app{height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-width:900px;margin:auto;background:#fff}.topbar{position:relative;display:flex;align-items:center;justify-content:center;height:calc(57px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 15px 0;border-bottom:1px solid #d8d8dc;background:#fff;z-index:5}.topbar h1{font-size:20px;font-weight:650;margin:0;max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.headeractions{position:absolute;right:13px;bottom:7px;display:flex;gap:7px}.iconbutton{width:42px;height:42px;display:grid;place-items:center;padding:8px;border-radius:10px}.iconbutton .icon{width:25px;height:25px}.accent{color:var(--accent)}#import .icon{width:29px;height:29px;stroke-width:1.6}#headerback{position:absolute;left:8px;bottom:7px;color:var(--accent)}#content{min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#c2c2c7 transparent;padding-bottom:12px}.track{display:flex;align-items:center;gap:11px;position:relative;min-height:69px;padding:0 15px}.track:after{content:"";position:absolute;left:73px;right:0;bottom:0;height:1px;background:var(--line)}.track .song-body{display:flex;align-items:center;gap:12px;min-width:0;flex:1;text-align:left;padding:12px 0}.art{display:grid;place-items:center;background:#ededf0;color:#c5c5cb;border-radius:6px;flex-shrink:0;width:44px;height:44px}.art .icon{width:29px;height:29px;stroke-width:2;fill:currentColor;stroke:currentColor}.track .info{min-width:0;flex:1}.track h3{font-size:15px;font-weight:400;line-height:1.45;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track p{font-size:11px;color:var(--muted);margin:3px 0 0;line-height:1.3}.track.current h3,.track.current .art{color:var(--accent)}.track.current .art{background:#fff0f4}.row-menu{width:35px;height:44px;color:#a0a0a6;display:grid;place-items:center;flex-shrink:0}.row-menu .icon{width:23px}.track>input{width:21px;height:21px;flex-shrink:0;margin:0 1px 0 0}.track>input:checked{accent-color:var(--accent)}.bottom-dock{z-index:8;background:#fafafa}.mini-player{height:63px;background:#f8f8f9;position:relative;display:flex;align-items:center;padding:4px 13px 0;gap:5px;border-bottom:1px solid var(--line)}.mini-progress{position:absolute;top:0;left:0;right:0;height:2px;background:#ededf0}.mini-progress>div{height:100%;width:0;background:#ff7591}.mini-info{display:flex;align-items:center;gap:11px;flex:1;min-width:0;text-align:left;padding:4px 0;height:100%}.art.small{width:39px;height:39px;border-radius:8px}.art.small .icon{width:24px;height:24px}.mini-copy{min-width:0;display:block;flex:1}.mini-copy strong{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600}.mini-copy>span{display:block;font-size:10px;color:#909095;margin-top:3px}.transport .icon{fill:currentColor;stroke-width:1.4}#mini-play,#mini-next{width:39px;height:45px;padding:7px}.tabbar{display:flex;align-items:flex-start;padding:8px 5px calc(7px + var(--safe-bottom));background:#fafafa;min-height:66px}.tabbar button{display:flex;align-items:center;justify-content:flex-start;flex-direction:column;gap:5px;flex:1;color:#99999f;min-height:46px;padding:0;font-size:11px}.tabbar button>.icon{height:23px;width:25px;stroke-width:2}.tabbar button.active{color:var(--accent)}.tabbar button.active .icon{stroke-width:2.4}.textbutton{color:var(--accent);font-size:14px;padding:9px 7px}.list-heading{display:flex;justify-content:space-between;align-items:center;padding:13px 15px 5px;color:#77777e;font-size:13px}#playlists{padding:0 15px}#playlists>button,.album-row{display:flex;align-items:center;gap:13px;width:100%;padding:13px 0;border-bottom:1px solid var(--line);text-align:left}.playlist-art,.album-art{width:55px;height:55px;border-radius:8px;background:#f1f1f4;color:var(--accent);display:grid;place-items:center;flex-shrink:0}.playlist-art .icon,.album-art .icon{width:29px;height:29px}.playlist-info{flex:1;min-width:0}.playlist-info strong{display:block;font-size:16px;font-weight:500}.playlist-info small{display:block;font-size:12px;color:#98989d;margin-top:5px}.playlist-info+.icon{color:#c2c2c7;width:19px}#listactions{display:flex;gap:10px;padding:5px 12px;border-bottom:1px solid var(--line)}#listactions #deletelist{margin-left:auto}#albums{padding:5px 15px}#selectionbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;padding:4px 15px;gap:15px;border-bottom:1px solid var(--line);background:#fff;min-height:45px;font-size:13px}#selectionbar label{display:flex;align-items:center;gap:8px}#selectionbar input{width:18px;height:18px;margin:0}#selected-count{color:#8d8d94;flex:1}#batch-actions{display:flex;align-items:center;justify-content:space-around;padding:9px 6px;background:#fff;border-top:1px solid var(--line)}#batch-actions button{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;color:var(--accent);padding:1px 7px}#batch-actions button .icon{width:20px;height:20px}#download-summary{padding:19px 17px 10px}#download-summary h2{font-size:23px;margin:0 0 7px}#download-summary p{font-size:12px;color:#949499;margin:0}#empty{text-align:center;color:#98989d;padding:65px 24px;font-size:14px;line-height:1.9}.settings-heading{font-size:29px;font-weight:650;padding:30px 20px 22px}.settings-card{margin:0 17px;background:#f6f6f8;border-radius:12px;padding:0 13px}.settings-card button{display:flex;align-items:center;gap:13px;text-align:left;width:100%;min-height:55px;font-size:15px;border-bottom:1px solid #e3e3e8}.settings-card button:last-child{border-bottom:0}.settings-card button>.icon:first-child{color:var(--accent);width:22px}.settings-card button>.icon:last-child{margin-left:auto;color:#b2b2b8;width:17px}.settings-note{font-size:12px;line-height:1.9;color:#929299;margin:22px 22px}.toast{position:fixed;z-index:50;left:50%;transform:translateX(-50%);bottom:calc(145px + var(--safe-bottom));padding:12px 17px;max-width:min(85vw,480px);background:#333338;color:#fff;border-radius:12px;font-size:13px;line-height:1.6;box-shadow:0 5px 24px #0002;pointer-events:none}dialog{color:#171719;border:0;padding:0}dialog::backdrop{background:#0005}.player-dialog{position:fixed;inset:0;margin:0 auto;width:min(100%,620px);height:100vh;height:100dvh;max-width:100%;max-height:100%;background:#fafafa;overflow:hidden}.player-screen{height:100%;display:flex;flex-direction:column;padding:env(safe-area-inset-top,0px) 26px calc(23px + var(--safe-bottom));overflow-y:auto}.player-top{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;height:65px;margin:0 -12px}.player-top>div{text-align:center;font-size:12px;color:#7f7f85}.player-top small{display:block;font-size:10px;max-width:240px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-top:5px;color:#9d9da3}.player-art{width:min(64vw,290px);height:min(64vw,290px);min-height:120px;flex-shrink:0;align-self:center;margin:auto 0 24px;display:grid;place-items:center;background:#eeeef1;color:#c7c7cf;border-radius:12px;box-shadow:0 12px 25px #0000000a}.player-art .icon{width:38%;height:38%;fill:currentColor;stroke-width:1.5}.player-title{margin-top:0;flex-shrink:0}.player-title h2{font-size:21px;line-height:1.5;margin:0 0 4px;font-weight:650}.player-title p{font-size:12px;color:#95959d;margin:0}.seek{margin-top:22px;flex-shrink:0}.seek input{display:block;width:100%;height:24px;margin:0;cursor:pointer;accent-color:#777780}.seek>div{display:flex;justify-content:space-between;font-size:11px;color:#8a8a93;margin-top:4px;font-variant-numeric:tabular-nums}.controls{display:flex;justify-content:space-between;align-items:center;margin:20px 0 18px;flex-shrink:0}.controls .iconbutton{width:47px;height:52px}.controls .iconbutton .icon{width:28px;height:28px}.controls .play-large{width:72px;height:72px}.controls .play-large .icon{width:49px;height:49px}.jump{width:39px;height:46px;position:relative;padding:0;display:grid;place-items:center}.jump .icon{width:33px;height:33px;stroke-width:1.8}.jump span{position:absolute;left:0;right:0;top:18px;font-size:10px;font-weight:600}.options{display:flex;justify-content:space-between;margin-top:2px;flex-shrink:0;padding-bottom:7px;gap:12px}.options label{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10px;color:#93939b}.options label>.icon{width:21px;height:21px}.options select{border:0;background:transparent;color:#50505b;font-size:12px;max-width:95px;text-align:center;padding:4px 0}.sheet{position:fixed;inset:auto 10px calc(10px + var(--safe-bottom));width:min(calc(100% - 20px),500px);max-height:75dvh;margin:0 auto;border-radius:16px;background:#f8f8fa;overflow-y:auto;padding-bottom:8px}.sheet h2{font-size:13px;font-weight:400;color:#8e8e96;text-align:center;margin:0;padding:17px 24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet #action-items button{width:100%;min-height:54px;display:flex;align-items:center;gap:14px;border-top:1px solid #e0e0e5;padding:12px 21px;text-align:left;font-size:16px;color:var(--accent)}.sheet #action-items button.danger{color:#ef3650}.sheet-cancel{width:100%;margin-top:8px;background:#fff;padding:16px;font-size:17px;font-weight:600;color:var(--accent)}.text-dialog{width:min(300px,85vw);border-radius:16px;background:#f8f8fa}.text-dialog form{padding:20px 18px 0}.text-dialog h2{font-size:17px;text-align:center;margin:0 0 18px}.text-dialog input{width:100%;border:1px solid #d5d5da;padding:10px;border-radius:7px;background:#fff;font-size:15px}.text-dialog form>div{display:flex;margin:20px -18px 0;border-top:1px solid #d9d9df}.text-dialog form button{width:50%;padding:14px;color:var(--accent)}#text-confirm{border-left:1px solid #d9d9df;font-weight:600}@media(min-width:700px){body{background:#f2f2f5}.app{box-shadow:0 0 40px #00000008}.track{min-height:75px}.topbar{height:65px}.tabbar{min-height:72px}.tabbar button{font-size:12px}.player-art{margin-top:20px;margin-bottom:28px}}@media(max-height:680px){.player-art{width:145px;height:145px;margin:0 auto 17px}.player-title h2{font-size:17px}.controls{margin:10px 0}.options label>span{display:none}.seek{margin-top:12px}.player-top{height:52px}}@media(prefers-reduced-motion:no-preference){.song-body:active,.tabbar button:active,.iconbutton:active{opacity:.55}.player-dialog[open]{animation:slidein .2s ease-out}@keyframes slidein{from{transform:translateY(50px);opacity:.8}to{transform:translateY(0);opacity:1}}}
:root{--player-interface-version:2}
#tracks[data-view="all"] .track p{display:none}
@media(max-width:699px){.track{min-height:60px}.track .song-body{padding:8px 0}}

:root{--accent:#7774bd;--muted:#777784;accent-color:#7774bd}.topbar{background:linear-gradient(110deg,#f0edf9,#eaf2f9);border-color:#deddeb}.mini-player{background:#eeeff8}.tabbar,.bottom-dock{background:#f4f2fa}.mini-progress>div{background:#9692cf}.art{overflow:hidden;background:#eeedf8}.art img,.player-art img{width:100%;height:100%;object-fit:cover;display:block}.player-art{overflow:hidden;background:#eeedf8}.track.current .art{background:#eeedf8}.track p,.settings-note{color:#737380}.tabbar button{color:#777581}#update-version{margin:17px 20px 0}.player-dialog{background:linear-gradient(#f0edf9,#fafafd)}

.tabbar{gap:12px;padding-left:16px;padding-right:16px}.tabbar button{position:relative;border-radius:13px;padding:8px 0;min-height:54px;gap:4px;color:#777584;transition:background .15s,color .15s}.tabbar button.active{background:#dedaf4;color:#454087;font-weight:750;box-shadow:inset 0 0 0 1px #c6bfe8}.tabbar button.active:before{content:"";position:absolute;top:0;width:24px;height:3px;border-radius:0 0 3px 3px;background:#6860ad}.tabbar button.active .icon{stroke-width:2.8}.download-version{display:flex;align-items:center;justify-content:space-between;margin-top:16px;gap:12px}.download-version button{padding:9px 17px;border-radius:9px;background:#e8e3f7;color:#51458e;font-weight:650}.download-version span,.download-note{font-size:11px;color:#777380}#download-summary .download-note{margin-top:10px;line-height:1.6}

html,body,.app{touch-action:none;overscroll-behavior:none}#content,.player-screen,.sheet{overflow:hidden;overscroll-behavior:none;touch-action:none}.tabbar button{transform:translateY(10px)}

#close-player{border:0;border-radius:0;background:transparent;box-shadow:none;outline:none}.player-dialog,.player-screen{touch-action:none}.player-art img{pointer-events:none;user-select:none;-webkit-user-drag:none}.player-dialog.dragging{animation:none!important;transition:none!important;user-select:none}

/* Move each complete navigation button, including its active frame. */
.tabbar button{transform:translateY(18px)}

/* Lower the mini-player/navigation boundary by 12px, while lifting nav buttons 4px on screen. */
.tabbar{height:calc(57px + var(--safe-bottom));min-height:0}.tabbar button{transform:translateY(2px)}

/* Raise the boundary and navigation buttons together by 4px. */
.tabbar{height:calc(61px + var(--safe-bottom))}

/* Allow the middle list to scroll inside the fixed app shell. */
html,body,.app{touch-action:pan-y}#content,.sheet{overflow-x:hidden;overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

.online-tools{display:flex;align-items:center;gap:12px;padding:16px 16px 4px}.online-tools button{padding:8px 12px;border-radius:9px;background:#eeebf8;color:#51458e;font-size:13px}.online-tools a{margin-left:auto;color:#7770ac;font-size:12px}#online-path{margin:10px 17px 0;font-size:14px;font-weight:650;line-height:1.7}#online-status{margin:7px 17px 12px;font-size:11px;line-height:1.8;color:#777380}.online-folder{display:flex;align-items:center;gap:12px;width:100%;padding:16px;text-align:left;border-bottom:1px solid var(--line)}.online-folder>.icon{color:#8880ba}.online-folder span{flex:1;font-size:14px;line-height:1.7}.online-media{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:4px 12px 4px 16px;gap:8px}.online-media>button:first-child{display:flex;align-items:center;gap:11px;padding:11px 0;min-width:0;flex:1;text-align:left}.online-media .info{min-width:0;flex:1}.online-media h3{font-size:13px;line-height:1.7;margin:0;font-weight:500;overflow-wrap:anywhere}.online-media p{font-size:11px;color:#85808e;line-height:1.6;margin:3px 0 0}.online-media.current{background:#f1eef9}.online-media.current h3{color:#63579b}.online-media .art{width:36px;height:36px}.tabbar{gap:7px;padding-left:12px;padding-right:12px}.online-empty{padding:25px 18px;color:#88828e;font-size:13px;line-height:1.9}

#download-folders small{display:block;font-size:11px;color:#8b849b;margin-top:4px}#download-sync-status{margin:4px 17px 12px;line-height:1.7}.download-version{flex-wrap:wrap}.download-version #update-version{margin:0}.download-version button{font-size:12px;padding:9px 12px}

/* Preserve the iPhone safe-area layout; keep the full frame visible on screens without a home-indicator inset. */
.tabbar{height:calc(65px + max(0px, calc(var(--safe-bottom) - 4px)))}

.download-meeting>.online-folder[aria-expanded="true"]{background:#eeebf8;color:#51458e}.download-panel{border-left:3px solid #d8d1ee;margin-left:16px}.download-panel .track{padding-left:10px}.download-panel #selectionbar{padding-left:10px}.download-meeting+.download-meeting{border-top:1px solid var(--line)}

.online-group>.online-folder[aria-expanded="true"]{background:#eeebf8;color:#51458e}.online-panel{border-left:2px solid #d8d1ee;margin-left:12px}.online-panel .online-folder{padding:13px 10px;gap:8px}.online-panel .online-media{padding-left:10px;padding-right:6px}.online-branch-note{font-size:11px;line-height:1.8;color:#81788f;margin:0;padding:10px 12px}.online-group+.online-group{border-top:1px solid var(--line)}

/* Grid items must never let long audio titles widen the installed viewport. */
html,body{position:fixed;inset:0;max-width:100%;overflow:hidden}
.app{grid-template-columns:minmax(0,1fr);max-width:min(900px,100%);overflow:hidden}
.app>*,.bottom-dock>*,#online-library,#online-nodes,.online-group,.online-panel,.online-media,.online-folder{min-width:0;max-width:100%}
.online-folder span,.online-media .info{overflow:hidden;overflow-wrap:anywhere;word-break:break-word}
.mini-player{width:100%;overflow:hidden}.mini-info{overflow:hidden}.mini-player>.iconbutton{flex-shrink:0}
/* iOS automatically zooms focused form controls when their text is under 16px. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}input,select,textarea,.options select,.text-dialog input{font-size:16px}button,a,input,select,textarea{touch-action:pan-y}.app{width:100%;min-width:0}.tabbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.tabbar button{min-width:0;width:100%}.online-folder span{min-width:0;overflow-wrap:anywhere}
