/*
 Lossless v114 GitHub-master visual stylesheet.
 Golden references: final Library/floating player, Road Trip Party, 18:34 Settings,
 WILDCHILD Now Playing vinyl, and black Lossless launch screen captures.
 Redundant v103-v112 same-selector declarations were removed without changing cascade semantics.
*/
:root{color-scheme:dark;--panel-elev:#1b1b22;--muted2:#777780;--line-soft:rgba(255,255,255,.09)}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
html{background:#08080b}
body{overflow-x:hidden}
html,body{touch-action:manipulation;-ms-touch-action:manipulation}
button,input{font:inherit}
button{color:inherit;-webkit-tap-highlight-color:transparent}
button:focus-visible,input:focus-visible{outline:2px solid rgba(255,255,255,.35);outline-offset:2px}
.hidden{display:none!important}
.sr-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}
.boot-splash{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .24s ease,visibility .24s ease}
.boot-splash.done{opacity:0;visibility:hidden;pointer-events:none}
.boot-title{line-height:1;color:#f4f4f5}
.boot-spinner{border-radius:50%;border:3px solid #35363c;animation:bootspin .85s linear infinite}
@keyframes bootspin{to{transform:rotate(360deg)}}
.topbar{display:flex;justify-content:space-between}
.brand-block{min-width:0}
.eyebrow{line-height:1;font-weight:760}
.topbar h1{margin:0}
.header-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.round-more{width:48px;height:48px;border-radius:50%;border:1px solid #35353d;background:#232329;color:#e5e5e8;font-size:16px;font-weight:800;letter-spacing:2px;padding-bottom:7px}
.primary-btn{border:0;background:#fafafa;color:#08080b;line-height:1;box-shadow:none;white-space:nowrap}
.primary-btn:active{transform:scale(.98)}
.stats-card{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #37373f;overflow:hidden}
.stats-card>div{min-width:0;display:flex;flex-direction:column}
.stats-card>div+div{border-left:1px solid #34343b}
.stats-card strong{letter-spacing:-.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stats-card span{line-height:1.2}
.storage-card{border:1px solid #33333a}
.storage-card__row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.storage-card__head>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.storage-label{color:#92929a;line-height:1;font-weight:760}
.storage-card strong{line-height:1.1;letter-spacing:-.02em}
.persist-badge,.local-pill{border:1px solid #356645;color:#c7efd0;border-radius:999px;padding:7px 11px;font-size:10px;letter-spacing:.08em;white-space:nowrap;background:rgba(70,170,90,.06)}
.storage-meter{border-radius:99px;overflow:hidden}
.storage-meter span{display:block;height:100%;width:0;background:#f0f0f2;border-radius:99px;transition:width .25s ease}
.storage-small{align-items:flex-start}
.link-btn,.text-action{border:0;background:none;color:#ceced2;padding:0;font-size:11px;white-space:nowrap}
.controls-row{display:flex}
.search-wrap{height:54px;flex:1;display:flex;align-items:center;background:#1b1b21;border:1px solid #34343b;border-radius:17px;color:#83838c;overflow:hidden}
.search-wrap input{width:100%;border:0;outline:0;background:transparent;color:#f3f3f5;min-width:0}
.search-wrap input::placeholder{color:#7f7f88}
.search-svg{fill:none;stroke:#8f8f97;stroke-width:1.8;flex:0 0 auto}
.square-btn{height:54px;border:1px solid #34343b;border-radius:17px;background:#1b1b21;display:grid;place-items:center;padding:0}
.square-btn svg{fill:none;stroke:#e3e3e6;stroke-width:1.5;stroke-linecap:round}
.tabs{display:flex;align-items:center;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{border:1px solid #313138;line-height:1;white-space:nowrap}
.tab.active{font-weight:730}
.tab-count{opacity:.8;margin-left:2px}
.library-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.library-head h2{line-height:1;margin:0}
.library-actions{display:flex;align-items:center;gap:28px}
.library-actions button,.text-action{border:0;background:none;color:#aaaab1;font-size:14px;padding:6px 0}
.library-actions button.active{color:#fff;font-weight:680}
.track-list{display:flex;flex-direction:column}
.track{display:grid;align-items:center;border-bottom:1px solid #202026}
.track-cover{background:#15151a;display:grid;place-items:center;background-size:cover;background-position:center;color:#777;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.track-main{min-width:0;border:0;background:none;text-align:left;padding:0}
.track-title,.track-artist{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track-title{letter-spacing:-.015em}
.track-fav,.track-more{width:36px;height:44px;border:0;background:none;color:#96969e;place-items:center;padding:0}
.track-fav{font-weight:250;line-height:1}
.track-fav.active{color:#f1f1f3}
.track-more{letter-spacing:1px}
.track.selecting{grid-template-columns:28px 49px minmax(0,1fr) 30px}
.track.selecting .track-fav{display:none}
.select-dot{width:21px;height:21px;border:1.5px solid #65656d;border-radius:50%;display:grid;place-items:center;font-size:12px;color:#08080b;background:transparent}
.track.selected .select-dot{background:#f5f5f6;border-color:#f5f5f6}
.favorite-dot{display:none}
.empty-state{text-align:left;color:#8e8e96}
.empty-state h2{margin:0 0 7px;color:#d9d9dd}
.empty-state p{margin:0 0 18px;line-height:1.45;max-width:340px}
.empty-state .primary-btn{font-size:13px;padding:11px 15px}
.playlist-list{display:flex;flex-direction:column;gap:10px}
.playlist-card{border:1px solid #303038;border-radius:17px;background:#121216;padding:16px;display:flex;justify-content:space-between;align-items:center;text-align:left}
.playlist-card strong{display:block;font-size:15px}
.playlist-card span{display:block;color:#92929a;font-size:12px;margin-top:4px}
.party-view{overflow-y:auto}
.party-title-row p{margin:7px 0 0;color:#9999a1}
.party-actions{overflow-x:auto;scrollbar-width:none}
.party-actions::-webkit-scrollbar{display:none}
.mini-player{position:fixed;left:50%;transform:translateX(-50%);overflow:hidden}
.mini-collapsed{display:flex;align-items:center;gap:7px;position:relative}
.mini-meta{border:0;background:none;display:flex;align-items:center;text-align:left;flex:1;padding:0}
.mini-cover{flex:0 0 auto;background:#111115;display:grid;place-items:center;background-size:cover;background-position:center;overflow:hidden}
.mini-text{min-width:0;display:flex;flex-direction:column}
.mini-text strong,.mini-text span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-icon,.mini-play{width:34px;height:44px;border:0;background:none;font-size:20px;flex:0 0 auto}
.mini-play{font-size:25px;color:#f5f5f6}
.mini-progress{position:absolute;background:#38383f;border-radius:99px;overflow:hidden}
.mini-progress span{display:block;height:100%;width:0;background:var(--accent)}
.wave-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.wave-icon i{display:block;border-radius:9px;background:currentColor;animation:wave 1.1s ease-in-out infinite}
.wave-icon i:nth-child(1){height:10px}
.wave-icon i:nth-child(2){height:19px;animation-delay:-.35s}
.wave-icon i:nth-child(3){height:24px;animation-delay:-.6s}
.wave-icon i:nth-child(4){height:14px;animation-delay:-.2s}
@keyframes wave{0%,100%{transform:scaleY(.5)}50%{transform:scaleY(1)}}
.mini-expanded__head{display:flex;align-items:center}
.seek{width:100%;height:18px;accent-color:#fff}
.mini-times,.times{display:flex;justify-content:space-between;color:#92929a;font-size:10px}
.mini-controls{display:grid;align-items:center;place-items:center}
.mini-controls button{border:0;background:none}
.play-circle{width:82px;height:82px;border-radius:50%;border:0;background:#fafafa;color:#08080b;font-size:30px;display:grid;place-items:center;padding-left:5px}
.now-playing{position:fixed;inset:0;z-index:80;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}
.np-header{display:grid;align-items:center}
.np-header>span{text-align:center;font-weight:760}
.plain-icon{border:0;background:none;color:#d0d0d5;font-size:23px}
.np-header .plain-icon:first-child{text-align:left}
.np-header .dots{text-align:right;letter-spacing:2px}
@keyframes vinylspin{to{transform:rotate(360deg)}}
.vinyl-label{background:#17171b;display:grid;place-items:center;color:#6e6e76;font-size:28px}
.np-info-row{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.np-info{min-width:0}
.np-info h2{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.np-info p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quality-badge{align-self:flex-start;border:1px solid #44444d;border-radius:999px;color:#e0e0e4;line-height:1;font-weight:730;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.seek{-webkit-appearance:none;appearance:none;background:transparent}
.seek::-webkit-slider-runnable-track{border-radius:99px}
.seek::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;border-radius:50%;background:#f7f7f8;border:0}
.seek::-moz-range-track{height:4px;border-radius:99px;background:#35353c}
.seek::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#f7f7f8;border:0}
.transport{display:grid;align-items:center;place-items:center}
.transport button{border:0;background:none}
.transport-btn{color:#f2f2f4}
.transport .play-circle{background:#fafafa;color:#08080b}
.np-actions{grid-template-columns:repeat(4,1fr);border-top:1px solid #26262d;margin-top:auto;padding-top:14px}
.np-actions button{border:0;background:none;color:#e7e7ea;display:flex;flex-direction:column;align-items:center;gap:4px}
.np-actions span{font-size:23px}
.np-actions small{font-size:9px;color:#8e8e96}
.np-actions button.active span{color:#fff}
.sheet-backdrop{position:fixed;inset:0}
.settings-sheet{position:fixed;left:50%;transform:translateX(-50%)}
.settings-title{display:flex;justify-content:space-between;gap:12px}
.settings-scroll{overflow:auto}
.settings-scroll h3:first-child{margin-top:0}
.setting-row,.settings-link{display:flex;align-items:center;justify-content:space-between;text-align:left}
.setting-row>span:first-child,.settings-link>span{min-width:0;display:flex;flex-direction:column}
.setting-row input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;flex:0 0 auto}
.setting-row input[type=checkbox]:checked:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#08080b;font-weight:850}
.range-row{display:grid}
.danger-btn{width:100%;border:1px solid #5e2b35;background:#2b1118;color:#ff858f;border-radius:15px;font-weight:730}
.modal{border:0;padding:0;background:transparent;color:var(--text);width:min(430px,calc(100% - 26px))}
.modal::backdrop{background:rgba(0,0,0,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal-card{border:1px solid #3a3942;border-radius:22px;padding:18px;box-shadow:0 20px 70px rgba(0,0,0,.55)}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.modal-head h2{margin:0;font-size:20px}
.technical-info{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:14px}
.technical-info dt,.technical-info dd{margin:0;padding:9px 0;border-bottom:1px solid #313039}
.technical-info dt{color:#9b99a5}
.technical-info dd{text-align:right}
.action-sheet{display:flex;flex-direction:column;padding:9px 15px 14px}
.action-title{padding:12px 4px;color:#aaa8b3;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.action-sheet button{border:0;border-top:1px solid #313039;background:none;text-align:left;padding:15px 4px;font-size:15px}
.action-sheet .danger-text{color:#ff7d86}
.toast{position:fixed;left:50%;bottom:calc(118px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:120;background:#e9e9eb;color:#111114;border-radius:999px;padding:10px 15px;font-size:12px;font-weight:700;box-shadow:0 8px 30px rgba(0,0,0,.35);max-width:calc(100% - 30px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:620px){
  .app-shell{padding-left:28px;padding-right:28px}
  .topbar h1{font-size:42px}
  .track{grid-template-columns:54px minmax(0,1fr) 40px 34px}
  .track-cover{width:54px;height:54px}
  .vinyl{width:min(52vw,420px)}
}
@media (max-width:390px){
  .app-shell{padding-left:15px;padding-right:15px}
  .topbar h1{font-size:34px}
  .primary-btn{padding:12px 15px}
  .round-more{width:44px;height:44px}
  .stats-card>div{padding:13px 10px}
  .stats-card strong{font-size:17px}
  .storage-card strong{font-size:15px}
  .search-wrap,.square-btn{height:50px}
  .square-btn{width:50px}
  .track{grid-template-columns:46px minmax(0,1fr) 34px 28px;gap:9px}
  .track-cover{width:46px;height:46px}
  .library-actions{gap:18px}
  .vinyl{width:min(80vw,340px)}
  .np-info h2{font-size:27px}
  .np-info p{font-size:16px}
  .now-playing{padding-left:20px;padding-right:20px}
  .transport{grid-template-columns:1fr 1fr 82px 1fr 1fr}
  .transport .play-circle{width:74px;height:74px}
}
.header-actions{align-self:center}
.library-head{margin:0 0 13px}
.mini-player{border-color:#4b4b54}
.mini-meta{min-width:0}
.mini-title-line strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#miniInlineFavorite{flex:0 0 auto;font-weight:300}
.wave-icon{color:#e6e6e8}
.np-info-row{margin-bottom:11px}
.np-info h2{text-transform:none}
@media (max-width:390px){
  .app-shell{padding-left:16px;padding-right:16px;padding-bottom:190px}
  .topbar h1{font-size:38px}
  .stats-card strong{font-size:19px}
  .track{grid-template-columns:48px minmax(0,1fr);gap:11px}
  .track-cover{width:48px;height:48px}
  .vinyl{width:min(85vw,350px)}
  .np-info h2{font-size:30px}
  .now-playing{padding-left:18px;padding-right:18px}
}
body{padding-top:env(safe-area-inset-top);padding-bottom:0}
.topbar{margin-bottom:25px}
.eyebrow{margin-bottom:11px}
.storage-meter{background:#202026}
.controls-row{margin-top:17px}
.artist-group{padding:16px 2px 6px}
.track{border-color:#202025}
.track-fav,.track-more{display:none!important}
.track-list{padding-bottom:8px}
.mini-cover.large-cover{width:49px;height:49px;border-radius:9px}
#miniInlineFavorite{line-height:.9}
.wave-icon{gap:2.5px}
.mini-icon{color:#d6d6da}
.mini-expanded .seek::-webkit-slider-runnable-track{height:3px;background:#44444a}
.mini-expanded .seek::-webkit-slider-thumb{width:18px;height:18px;margin-top:-7.5px}
.mini-times{color:#8d8d96}
.mini-controls button{color:#f0f0f2}
.mini-big{background:#fafafa;color:#08080b}
.party-title-row{margin-bottom:15px}
.vinyl{isolation:isolate}
.vinyl:before{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),inset 0 0 35px rgba(0,0,0,.28);pointer-events:none}
.vinyl:after{content:"";position:absolute;inset:2%;border-radius:50%;background:radial-gradient(circle,transparent 0 62%,rgba(255,255,255,.025) 63%,transparent 64% 100%);pointer-events:none}
.seek::-webkit-slider-runnable-track{background:#34343a}
.times{color:#9a99a2}
.settings-sheet{z-index:60}
.sheet-backdrop{z-index:59}
@media (max-width:390px){
  .app-shell{padding:27px 15px 164px}
  .topbar h1{font-size:38px}
  .primary-btn{min-height:47px;padding:0 17px}
  .stats-card strong{font-size:18px}
  .storage-card strong{font-size:16.5px}
  .track{grid-template-columns:46px minmax(0,1fr);gap:10px}
  .track-cover{width:46px;height:46px}
  .vinyl{width:min(84vw,350px)}
  .np-info h2{font-size:29px}
  .np-info p{font-size:16.5px}
}
.party-view{padding-top:calc(env(safe-area-inset-top) + 42px);padding-left:16px;padding-right:16px;padding-bottom:calc(270px + env(safe-area-inset-bottom))}
.party-title-row p{margin-top:7px;font-size:13px}
.party-actions{margin-bottom:24px}
.now-playing{padding-top:calc(env(safe-area-inset-top) + 20px)}
.vinyl{max-width:405px}
.np-info p{margin-top:9px}
.transport{margin-top:24px}
.sheet-handle{margin-bottom:22px}
.range-row input[type=range]{margin-top:5px}
@media (max-width:390px){
  .party-view{padding-top:calc(env(safe-area-inset-top) + 34px);padding-bottom:calc(255px + env(safe-area-inset-bottom))}
  .node-row{min-height:94px;padding:18px 0}
  .party-track{min-height:76px;padding:14px 0}
  .vinyl{width:min(85vw,350px)}
  .settings-sheet{height:88dvh;max-height:88dvh}
  .settings-scroll{height:calc(88dvh - 94px - env(safe-area-inset-bottom))}
}
.party-view{z-index:auto}
.party-kicker{line-height:1;font-weight:800}
.party-page-title{margin:0;line-height:1.02;font-weight:790}
.party-description{max-width:560px}
.party-setup-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.party-setup-head h3{margin:0;line-height:1.1}
.party-setup-head span{color:#8f8d98;white-space:nowrap}
.party-create-btn{width:100%;height:55px;border:0;border-radius:999px;background:#fafafa;color:#09090c;font-size:16px;font-weight:780}
.party-join-input{display:block;width:100%;border:1px solid #3a3942;background:#242329;color:#f4f4f6;padding:0 15px;outline:none;margin:0 0 10px;text-transform:uppercase}
.party-join-input::placeholder{color:#98969f;opacity:1}
.party-join-btn{width:100%;height:49px;border:1px solid #3a3942;border-radius:999px;background:#2a292d;color:#f2f2f4;font-size:15px;font-weight:760}
.party-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.party-title-row>div{min-width:0}
.party-title-row h2{margin:0;letter-spacing:-.045em;font-weight:790}
.party-title-row p:not(.party-kicker){margin:8px 0 0;color:#96949f}
.party-code{margin-top:0;border:1px solid #37363f;background:#1d1c22;color:#dedde3;text-align:center;font-weight:800;letter-spacing:.2em}
.party-actions{display:grid;align-items:center;overflow:visible}
.party-actions button{border-radius:999px;font-weight:760;white-space:nowrap}
.party-primary{border:0;background:#fafafa;color:#09090c}
.party-secondary{border:1px solid #3a3942;background:#1d1c22;color:#f1f1f3}
.party-leave{font-size:15px!important;font-weight:560!important}
.party-card{border:1px solid #303039}
.party-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.party-card-head h3{margin:0;letter-spacing:-.025em}
.party-card-head span{color:#8e8c97;white-space:nowrap}
.node-row{display:grid;align-items:center;border-bottom:1px solid #29282f}
.node-row:last-child{border-bottom:0}
.node-row strong{display:block;line-height:1.15}
.node-row small{display:block;color:#8f8d98;line-height:1.3}
.node-dot{border-radius:50%;background:#70707b;margin-left:2px}
.node-dot.online{background:#70dc91;box-shadow:0 0 0 8px rgba(112,220,145,.08)}
.role-pill{border:1px solid #37363f;border-radius:999px;color:#aaa8b2;font-weight:800;letter-spacing:.2em}
.party-playlist{display:flex;flex-direction:column}
.party-track{display:grid;align-items:center;border-bottom:1px solid #28272e}
.party-track:last-child{border-bottom:0}
.party-index{color:#85838e;text-align:center}
.party-track strong{line-height:1.15}
.party-track small{display:block;color:#8d8b96;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.party-remove{border:0;background:none;color:#8c8a95;padding:0}
.party-empty{color:#91909a;line-height:1.45}
.party-empty-copy strong{color:#aaa8b2}
.party-source-strip{margin:14px 0 14px;display:grid;align-items:center;gap:10px;border:1px solid #34333c;background:#18171d}
.party-source-cover{background:#222129 center/cover no-repeat;display:grid;place-items:center;color:#8f8e98;overflow:hidden}
.party-source-copy{display:flex;flex-direction:column;min-width:0;gap:3px}
.party-source-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.party-source-copy span{color:#96949f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.party-source-queue{color:#96949f;font-size:18px;text-align:center}
.party-source-play{border:0;border-radius:50%;background:#fafafa;color:#09090c;font-weight:800}
.party-view:not(.hidden) ~ .mini-player{bottom:max(6px,env(safe-area-inset-bottom))}
@media (max-width:390px){
  .party-view{padding-top:20px;padding-bottom:calc(165px + env(safe-area-inset-bottom))}
  .party-description{font-size:12.5px}
  .party-setup-head span,.party-card-head span{font-size:10px}
  .party-actions button{padding:0 12px;font-size:13px}
  .party-source-strip{grid-template-columns:46px minmax(0,1fr) 22px 48px;min-height:63px}
  .party-source-cover{width:46px;height:46px}
  .party-source-play{width:44px;height:44px}
}
.settings-sheet .sheet-handle{flex:0 0 auto}
.track-actions-dialog{position:fixed!important;max-height:92dvh!important}
.action-track-head{display:grid;align-items:center}
.action-track-cover{background:#24232a center/cover no-repeat;display:grid;place-items:center;color:#8d8c96;overflow:hidden}
.action-track-head>div:last-child{min-width:0;display:flex;flex-direction:column;gap:4px}
.action-track-head strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.action-track-head span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cancel-action{width:100%;border:0!important;border-radius:15px!important;background:#27262d!important;text-align:center!important;margin-top:10px!important;font-weight:700}
.editor-dialog{position:fixed!important;inset:auto 0 0!important;margin:0 auto!important;width:min(var(--content-max),100%)!important;max-width:none!important;max-height:94dvh!important}
.editor-dialog[open]{display:block}
.editor-card{width:100%;max-height:94dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;border-radius:27px 27px 0 0!important;border-bottom:0!important;background:#19181f!important;padding:18px 18px calc(18px + env(safe-area-inset-bottom))!important}
.editor-kicker{display:block;color:#9997a4;font-size:10px;font-weight:800;letter-spacing:.18em;margin-bottom:5px}
.editor-cover-row{display:flex;align-items:center;gap:14px;margin:18px 0}
.editor-cover{border-radius:14px;background:#24232a center/cover no-repeat;display:grid;place-items:center;color:#8d8c96;overflow:hidden;flex:0 0 auto}
.secondary-action,.primary-editor-action{border:1px solid #3c3b44;border-radius:14px;min-height:44px;padding:0 15px;font-size:14px;font-weight:700}
.secondary-action{background:#242329;color:#f2f2f4}
.primary-editor-action{background:#f7f7f8;color:#0a0a0d;border-color:#f7f7f8}
.editor-field{display:flex;flex-direction:column;gap:7px;margin:13px 0}
.editor-field>span{color:#9b99a5;font-size:10.5px;font-weight:780;letter-spacing:.08em;text-transform:uppercase}
.editor-field input{width:100%;border:1px solid #3a3942;border-radius:13px;background:#242329;color:#f3f3f4;padding:0 13px;outline:none}
.editor-field input:focus{border-color:#6c6a76}
.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.cover-dialog-preview{width:min(64vw,260px);aspect-ratio:1;margin:18px auto 24px;border-radius:20px;background:#24232a center/cover no-repeat;display:grid;place-items:center;color:#8d8c96;font-size:40px;overflow:hidden}
.compact-link{min-height:66px!important;padding:11px 3px!important}
.compact-link.danger-text strong{color:#ff7d86}
.cover-cancel{min-height:48px;padding:12px 14px;font-size:15px}
.history-list{margin-top:15px}
.history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 2px;border-bottom:1px solid #33323a}
.history-row>div{min-width:0;display:flex;flex-direction:column;gap:5px}
.history-row strong{font-size:13px}
.history-row span{font-size:11px;color:#96949f}
.history-row b{font-size:16px;color:#75d88a}
.history-empty{padding:28px 0;color:#96949f;text-align:center}
@media (max-width:390px){
  .settings-scroll{height:calc(88dvh - 94px - env(safe-area-inset-bottom))!important}
  .editor-card{padding-left:14px!important;padding-right:14px!important}
  .editor-actions{grid-template-columns:1fr}
}
:root{--bg:#08080b;--panel:#111116;--panel-soft:#18181e;--panel-sheet:#19181f;--text:#f7f7f8;--muted:#95939e;--line:#313039;--accent:#62dc7b;--danger:#ff727d;--content-max:706px}
html,body{background:#08080b!important}
body{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)!important}
.boot-splash{background:#08080b!important}
.boot-splash>.boot-title,.boot-splash>.boot-spinner{position:relative;top:82px}
.boot-title{font-size:25px!important;font-weight:760!important;letter-spacing:-.045em!important}
.boot-spinner{width:24px!important;height:24px!important;border-width:3px!important;margin-top:27px!important;border-color:#33343a!important;border-top-color:#aeb0b7!important}
.app-shell{width:min(var(--content-max),100%)!important;margin:0 auto!important;padding:37px 16px calc(190px + env(safe-area-inset-bottom))!important}
.topbar{align-items:center!important;margin:0 0 28px!important;gap:12px!important}
.eyebrow{font-size:9.5px!important;letter-spacing:.205em!important;margin:0 0 9px!important;color:#9896a0!important}
.topbar h1{font-size:34px!important;line-height:1!important;font-weight:790!important;letter-spacing:-.052em!important}
.primary-btn{height:35px!important;min-height:35px!important;padding:0 14px!important;font-size:14px!important;border-radius:999px!important;font-weight:790!important}
.stats-wrap{margin-bottom:15px!important}
.stats-card{border-color:#34333c!important;border-radius:14px!important;background:#0f0f13!important;margin-bottom:10px!important;min-height:48px!important}
.stats-card>div{padding:10px 11px 9px!important;gap:2px!important}
.stats-card>div+div{border-left-color:#303039!important}
.stats-card strong{font-size:17px!important;line-height:1.02!important;font-weight:770!important}
.stats-card span{font-size:10px!important;color:#9997a1!important}
.storage-card{padding:11px 12px 12px!important;border-radius:16px!important;background:#0f0f13!important;border-color:#303039!important}
.storage-label{font-size:8.6px!important;letter-spacing:.18em!important}
.storage-card strong{font-size:15.5px!important;font-weight:750!important}
.persist-badge{padding:6px 10px!important;font-size:9.5px!important;border-radius:999px!important;color:#bfe6c8!important;border-color:#315b3d!important}
.storage-meter{height:4px!important;margin:10px 0 8px!important}
.storage-small{font-size:9.6px!important;line-height:1.35!important;min-height:18px!important;color:#8d8b96!important}
.storage-small+.storage-small{margin-top:3px!important}
.link-btn{font-size:9.7px!important;color:#c9c8cd!important}
.controls-row{gap:8px!important;margin-bottom:10px!important}
.search-wrap,.square-btn{height:40px!important;border-radius:13px!important;background:#1a191f!important;border-color:#34333c!important}
.search-wrap{padding:0 13px!important;gap:8px!important}
.search-wrap input{font-size:15px!important}
.search-svg{width:15px!important;height:15px!important}
.square-btn{width:40px!important}
.square-btn svg{width:21px!important;height:21px!important}
.tabs{gap:7px!important;margin-bottom:21px!important}
.tab{padding:8px 13px!important;font-size:12px!important;border-radius:999px!important;background:#17171c!important;border-color:#313038!important;color:#9a98a2!important}
.tab.active{background:#fafafa!important;color:#09090c!important;border-color:#fafafa!important}
.library-head{margin-bottom:10px!important}
.library-head h2{font-size:21px!important;letter-spacing:-.036em!important;font-weight:770!important}
.library-more{border:0!important;background:none!important;color:#f0eff2!important;font-size:14px!important;letter-spacing:2px!important;line-height:1!important;padding:4px 2px 8px 14px!important}
.artist-group{margin:12px 2px 3px!important;color:#8c8996!important;font-size:9px!important;line-height:1!important;font-weight:790!important;letter-spacing:.21em!important}
.track{grid-template-columns:44px minmax(0,1fr) 31px 27px!important;gap:9px!important;min-height:56px!important;padding:6px 2px!important;border-bottom-color:#202027!important}
.track-cover{width:44px!important;height:44px!important;border-radius:9px!important}
.track-title{font-size:13.7px!important;line-height:1.16!important;font-weight:720!important}
.track-artist{font-size:11px!important;line-height:1.17!important;margin-top:3px!important;color:#9997a0!important}
.track-fav{font-size:23px!important;width:31px!important;height:40px!important}
.track-more{font-size:15px!important;width:27px!important;height:40px!important;padding-bottom:6px!important}
.empty-state{padding:16px 2px 50px!important}
.empty-state h2{font-size:14px!important}
.empty-state p{font-size:12px!important}
.mini-player{z-index:70!important;bottom:max(5px,env(safe-area-inset-bottom))!important;width:min(calc(var(--content-max) - 10px),calc(100% - 10px))!important;background:rgba(20,20,25,.985)!important;border:1px solid #44434c!important;border-radius:18px!important;box-shadow:0 12px 38px rgba(0,0,0,.48)!important;backdrop-filter:blur(28px)!important;-webkit-backdrop-filter:blur(28px)!important}
.mini-expanded{padding:8px 9px 10px!important}
.mini-expanded__head{gap:6px!important}
.mini-meta{gap:9px!important}
.mini-cover{width:48px!important;height:48px!important;border-radius:9px!important}
.large-cover{width:50px!important;height:50px!important}
.mini-text{gap:3px!important}
.mini-text strong{font-size:13px!important;line-height:1.12!important;font-weight:740!important}
.mini-text span{font-size:11px!important;color:#9c9aa4!important}
.mini-title-line{display:flex!important;align-items:center!important;gap:5px!important;min-width:0!important}
#miniInlineFavorite{font-size:18px!important;color:#f4f3f5!important;overflow:visible!important}
.wave-icon{width:27px!important;height:28px!important}
.wave-icon i{width:2.4px!important}
.mini-icon{width:29px!important;height:36px!important;font-size:19px!important}
.mini-expanded .seek{height:15px!important;margin-top:5px!important}
.seek::-webkit-slider-runnable-track{height:3px!important}
.seek::-webkit-slider-thumb{width:17px!important;height:17px!important;margin-top:-7px!important}
.mini-times{font-size:9.8px!important;margin-top:-1px!important}
.mini-controls{grid-template-columns:1fr 1fr 58px 1fr 1fr!important;margin-top:3px!important}
.mini-controls button{font-size:19px!important}
.mini-big{width:48px!important;height:48px!important;font-size:20px!important;padding-left:3px!important}
.mini-collapsed{height:66px!important;padding:8px 9px!important}
.mini-collapsed .mini-cover{width:48px!important;height:48px!important}
.mini-progress{left:8px!important;right:8px!important;bottom:3px!important;height:2px!important}
.now-playing{background:radial-gradient(ellipse at 50% -1%,#292832 0,#1b1a22 18%,#111016 39%,#08080b 72%)!important;padding:calc(env(safe-area-inset-top) + 24px) 18px calc(env(safe-area-inset-bottom) + 20px)!important;overflow:hidden!important}
.np-header{grid-template-columns:38px 1fr 38px!important;min-height:28px!important;margin-bottom:40px!important}
.np-header>span{font-size:10.5px!important;letter-spacing:.16em!important;color:#c3c1c8!important}
.np-header .plain-icon{font-size:20px!important}
.np-header .dots{font-size:14px!important;padding-bottom:6px!important}
.np-info-row{margin:0 0 8px!important}
.np-info h2{font-size:26px!important;line-height:1.03!important;font-weight:790!important;letter-spacing:-.038em!important}
.np-info p{font-size:15.5px!important;line-height:1.08!important;margin:8px 0 0!important;color:#a7a5ae!important}
.quality-badge{padding:6px 10px!important;font-size:10px!important;letter-spacing:.075em!important;margin-bottom:16px!important;border-color:#42414a!important;background:#131318!important}
.scrubber-wrap{margin-top:0!important}
.times{font-size:10px!important;margin-top:1px!important}
.transport{grid-template-columns:1fr 1fr 70px 1fr 1fr!important;margin:16px 0 0!important}
.transport-side{font-size:21px!important;color:#77757f!important}
.transport-btn{font-size:24px!important}
.transport .play-circle{width:68px!important;height:68px!important;font-size:25px!important;padding-left:4px!important}
.np-actions{display:none!important}
.setting-row,.settings-link{border-bottom-color:#33323a!important}
.party-view{position:static!important;inset:auto!important;width:auto!important;left:auto!important;transform:none!important;background:transparent!important;padding:4px 0 calc(178px + env(safe-area-inset-bottom))!important;overflow:visible!important}
.party-kicker{font-size:9px!important;letter-spacing:.215em!important;margin:0 0 10px!important;color:#918e9b!important}
.party-page-title{font-size:28px!important;letter-spacing:-.045em!important}
.party-description{font-size:12px!important;line-height:1.42!important;margin:9px 0 16px!important;color:#9a97a3!important}
.party-setup-card{border-radius:18px!important;padding:14px 13px 13px!important;margin-bottom:14px!important}
.party-setup-head{margin-bottom:15px!important}
.party-setup-head h3{font-size:14px!important}
.party-setup-head span{font-size:9.8px!important}
.party-create-btn,.party-join-btn{min-height:43px!important;border-radius:999px!important;font-size:14px!important}
.party-join-input{height:43px!important;border-radius:14px!important;font-size:15px!important}
.party-room{padding-top:0!important}
.party-title-row{margin:0 0 17px!important}
.party-title-row h2{font-size:29px!important;line-height:1.02!important}
.party-title-row p:not(.party-kicker){font-size:12px!important;margin-top:7px!important}
.party-code{padding:9px 13px!important;min-width:88px!important;border-radius:15px!important;font-size:9.7px!important}
.party-actions{grid-template-columns:auto auto 1fr!important;gap:8px!important;margin:0 0 16px!important}
.party-actions button{height:43px!important;padding:0 13px!important;font-size:13px!important}
.party-leave{justify-self:end!important;border:0!important;background:transparent!important;color:#ff777f!important;padding:0 2px!important;border-radius:0!important}
.party-card{border-radius:18px!important;padding:14px 14px 15px!important;margin-bottom:14px!important;background:#111116!important}
.party-card-head{margin-bottom:7px!important}
.party-card-head h3{font-size:17px!important}
.party-card-head span{font-size:10px!important}
.node-row{grid-template-columns:18px minmax(0,1fr) auto!important;gap:9px!important;min-height:62px!important;padding:12px 0!important}
.node-row+.node-row{border-top:1px solid #29282f!important}
.node-row strong{font-size:13.5px!important}
.node-row small{font-size:10.5px!important;margin-top:4px!important}
.node-dot{width:9px!important;height:9px!important}
.role-pill{padding:7px 11px!important;font-size:8.5px!important}
.party-track{grid-template-columns:28px minmax(0,1fr) 28px!important;min-height:61px!important;padding:10px 0!important;gap:8px!important}
.party-index{font-size:10px!important}
.party-track strong{font-size:13px!important}
.party-track small{font-size:10.2px!important;margin-top:4px!important}
.party-remove{font-size:19px!important}
.party-empty{padding:16px 0!important;font-size:11px!important}
.party-upnext{padding-bottom:14px!important}
.party-source-strip{min-height:57px!important;border-radius:17px!important;padding:8px 9px!important;margin-bottom:11px!important;grid-template-columns:46px minmax(0,1fr) 22px 44px!important}
.party-source-cover{width:46px!important;height:46px!important;border-radius:10px!important}
.party-source-copy strong{font-size:13px!important}
.party-source-copy span{font-size:10.5px!important}
.party-source-play{width:44px!important;height:44px!important;font-size:14px!important}
.track-actions-sheet,.editor-card{background:#19181f!important;border-color:#393841!important;border-radius:18px 18px 0 0!important}
.track-actions-sheet.action-sheet button{font-size:14px!important;min-height:48px!important;padding:12px 4px!important}
.modal-card{background:#19181f!important;border-color:#393841!important}
.technical-info dt,.technical-info dd{font-size:11px!important}
.editor-field input{height:44px!important;font-size:15px!important}
.editor-cover{width:68px!important;height:68px!important}
@media (max-width:430px){
  .app-shell{padding-left:16px!important;padding-right:16px!important}
  .track{grid-template-columns:44px minmax(0,1fr) 31px 27px!important}
  .vinyl{width:min(85vw,350px)!important}
}
@media (max-width:370px){
  .app-shell{padding-left:14px!important;padding-right:14px!important}
  .topbar h1{font-size:32px!important}
  .primary-btn{height:34px!important;padding:0 12px!important;font-size:13px!important}
  .tab{padding-left:11px!important;padding-right:11px!important;font-size:11.5px!important}
  .track{grid-template-columns:42px minmax(0,1fr) 29px 25px!important;gap:8px!important}
  .track-cover{width:42px!important;height:42px!important}
  .vinyl{width:min(84vw,330px)!important}
}
.storage-card .storage-small:last-child{justify-content:space-between!important}
.sort-swap{font-size:22px!important;font-weight:300!important;color:#e3e2e6!important;line-height:1!important;padding:0 0 2px!important}
.sort-swap svg{display:none!important}
.track:not(.selecting){grid-template-columns:44px minmax(0,1fr)!important}
.track:not(.selecting) .track-fav,.track:not(.selecting) .track-more{display:none!important}
body.settings-open .mini-player,
body.detail-sheet-open .mini-player{display:none!important}
body.settings-open .settings-sheet{display:flex!important}
.sheet-handle{width:45px!important;height:5px!important;margin:1px auto 22px!important;border-radius:99px!important;background:#5b5a66!important}
.danger-btn{margin-top:25px!important;padding:14px!important;font-size:14px!important}
.track-actions-dialog{width:min(var(--content-max),100%)!important;max-width:none!important;inset:auto 0 0!important;margin:0 auto!important}
.track-actions-dialog[open]{display:block!important}
.track-actions-dialog::backdrop{background:rgba(4,4,7,.61)!important;backdrop-filter:blur(13px)!important;-webkit-backdrop-filter:blur(13px)!important}
.track-actions-sheet{width:100%!important;max-height:82dvh!important;overflow-y:auto!important;padding:9px 16px calc(16px + env(safe-area-inset-bottom))!important;border-radius:28px 28px 0 0!important;border-bottom:0!important;background:#16151b!important;border-color:#3b3a43!important;box-shadow:0 -22px 70px rgba(0,0,0,.48)!important}
.action-handle{width:45px!important;height:5px!important;margin:1px auto 18px!important;background:#5b5a66!important;border-radius:99px!important}
.action-track-head{grid-template-columns:58px minmax(0,1fr)!important;gap:13px!important;padding:0 4px 16px!important;border-bottom:0!important}
.action-track-cover{width:58px!important;height:58px!important;border-radius:12px!important}
.action-track-head strong{font-size:18px!important;line-height:1.12!important;font-weight:760!important}
.action-track-head span{font-size:12px!important;color:#9c9aa5!important}
.track-action-group{overflow:hidden;border:1px solid #34333b;border-radius:17px;background:#1c1b22;margin:0 0 12px}
.track-actions-sheet.action-sheet .track-action-row{width:100%!important;min-height:58px!important;display:grid!important;grid-template-columns:34px minmax(0,1fr) 20px!important;align-items:center!important;gap:10px!important;margin:0!important;padding:10px 12px!important;border:0!important;border-top:1px solid #34333b!important;border-radius:0!important;background:transparent!important;color:#f2f2f4!important;text-align:left!important;font-size:15px!important;box-shadow:none!important;outline:none!important;-webkit-tap-highlight-color:transparent!important}
.track-actions-sheet.action-sheet .track-action-row:first-child{border-top:0!important}
.track-actions-sheet.action-sheet .track-action-row:focus,
.track-actions-sheet.action-sheet .track-action-row:focus-visible{outline:none!important;box-shadow:none!important}
.track-action-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#292831;color:#ececf0;font-size:17px;font-weight:650}
.track-action-icon.action-info{border-radius:50%;font-family:Georgia,serif;font-size:16px}
.track-action-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.track-action-copy strong{font-size:15.5px;line-height:1.15;font-weight:650}
.track-action-copy small{font-size:10.5px;line-height:1.25;color:#94929d;white-space:normal}
.track-action-chevron{font-size:23px;font-weight:300;color:#85838e;text-align:right}
.track-action-remove{margin-top:1px!important;border:1px solid #4e3036!important;border-radius:17px!important;background:#24161b!important;color:#ff7d86!important}
.track-action-remove .track-action-icon{background:#351d23;color:#ff858d}
.track-action-remove .track-action-copy strong{color:#ff858d}
.scan-dialog{z-index:101!important}
.scan-dialog::backdrop{background:rgba(4,4,7,.62)!important;backdrop-filter:blur(13px)!important;-webkit-backdrop-filter:blur(13px)!important}
.scan-card{max-height:88dvh!important;padding:9px 17px calc(18px + env(safe-area-inset-bottom))!important;border-radius:28px 28px 0 0!important;background:#16151b!important;border-color:#3b3a43!important}
.scan-handle{margin-bottom:18px!important}
.scan-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.scan-head h2{font-size:24px;line-height:1.05;letter-spacing:-.035em;margin:0}
.scan-close{width:38px;height:38px;border-radius:50%;background:#24232a!important;font-size:25px!important;display:grid;place-items:center}
.scan-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #383740;background:#111116;border-radius:18px;padding:14px 14px;margin-bottom:13px}
.scan-summary-copy{min-width:0;display:flex;flex-direction:column;gap:5px}
.scan-summary-copy strong{font-size:17px;line-height:1.1}
.scan-summary-copy span{font-size:11px;line-height:1.35;color:#97949f}
.scan-health-pill{flex:0 0 auto;border:1px solid #356540;color:#9bd5a6;background:#122018;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:800;letter-spacing:.11em}
.scan-health-pill.warning{border-color:#705b32;color:#e3ca8c;background:#241f13}
.scan-results{overflow:hidden;border:1px solid #34333b;border-radius:18px;background:#111116}
.scan-result-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:66px;padding:10px 13px;border-top:1px solid #303038}
.scan-result-row:first-child{border-top:0}
.scan-result-icon{width:30px;height:30px;border-radius:9px;background:#24232b;display:grid;place-items:center;color:#d7d6dc;font-weight:750;font-size:13px}
.scan-result-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.scan-result-copy strong{font-size:14.5px;line-height:1.12}
.scan-result-copy small{font-size:10.5px;line-height:1.3;color:#94929e}
.scan-result-count{font-size:18px;font-weight:760;font-variant-numeric:tabular-nums;color:#f1f1f3}
.scan-result-count.ok{color:#7bd98d}
.scan-issue-list{margin-top:13px}
.scan-issue-title{font-size:10px;letter-spacing:.18em;color:#9895a1;font-weight:800;margin:0 0 8px}
.scan-issue{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 2px;border-bottom:1px solid #303038}
.scan-issue-art{width:38px;height:38px;border-radius:8px;background:#24232a center/cover no-repeat;display:grid;place-items:center;color:#84828d;flex:0 0 auto;overflow:hidden}
.scan-issue-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.scan-issue-copy strong{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scan-issue-copy span{font-size:10px;color:#92909b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scan-primary{width:100%;height:48px;margin-top:16px;border:0;border-radius:999px;background:#f4f4f5;color:#09090c;font-size:15px;font-weight:760}
.scan-footnote{margin:11px 3px 0;color:#8f8d98;font-size:9.5px;line-height:1.35;text-align:center}
@media (max-width:390px){
  .track-actions-sheet{padding-left:14px!important;padding-right:14px!important}
}
.storage-card .storage-small{justify-content:flex-start!important}
.storage-card .storage-capacity-row{justify-content:space-between!important}
.metadata-cover-only .editor-cover{margin:0!important}
body.settings-open .mini-player,
.mini-player.settings-suppressed{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}
.sheet-backdrop{background:rgba(4,4,7,.56)!important;backdrop-filter:blur(11px)!important;-webkit-backdrop-filter:blur(11px)!important}
.settings-sheet{display:flex!important;flex-direction:column!important;width:min(var(--content-max),100%)!important;height:88dvh!important;max-height:88dvh!important;overflow:hidden!important;bottom:0!important;padding:9px 14px calc(18px + env(safe-area-inset-bottom))!important;background:#16151b!important;border:1px solid #3a3942!important;border-bottom:0!important;border-radius:28px 28px 0 0!important;box-shadow:0 -24px 70px rgba(0,0,0,.46)!important}
.settings-sheet.hidden{display:none!important}
.settings-sheet>.sheet-handle{flex:0 0 auto!important;width:42px!important;height:4px!important;margin:3px auto 12px!important;border-radius:99px!important;background:#55535f!important}
.settings-title{flex:0 0 auto!important;margin:0 0 27px!important;align-items:center!important}
.settings-title h2{margin:0!important;font-size:17px!important;line-height:1.08!important;font-weight:740!important;letter-spacing:-.03em!important}
.local-pill{padding:5px 9px!important;border-radius:999px!important;font-size:8px!important;line-height:1!important;letter-spacing:.14em!important}
.settings-scroll{flex:1 1 auto!important;min-height:0!important;height:auto!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;padding:0 0 24px!important;scroll-behavior:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;scrollbar-width:none!important}
.settings-scroll h3{margin:20px 0 9px!important;color:#9b99a8!important;font-size:9px!important;line-height:1!important;font-weight:780!important;letter-spacing:.18em!important}
.settings-scroll::-webkit-scrollbar{display:none!important}
.settings-scroll>h3:first-child{margin-top:0!important}
.settings-scroll>h3:nth-of-type(2),.settings-scroll>h3:nth-of-type(3){margin-top:18.5px!important}
.setting-row,.settings-link{width:100%!important;min-height:47.5px!important;padding:7px 2px!important;gap:12px!important;border:0!important;border-bottom:1px solid #2f2e34!important;background:none!important}
.setting-row>span:first-child,.settings-link>span{gap:4px!important}
.setting-row strong,.settings-link strong{font-size:11.5px!important;line-height:1.12!important;font-weight:700!important}
.setting-row small,.settings-link small{font-size:9.2px!important;line-height:1.3!important;color:#96949f!important}
.setting-row input[type=checkbox]{width:18px!important;height:18px!important;border-radius:6px!important;background:#f5f5f6!important}
.setting-row input[type=checkbox]:checked:after{font-size:14px!important}
.range-row{min-height:55px!important;padding:7px 2px!important;grid-template-columns:1fr auto!important}
.range-row input[type=range]{grid-column:1/-1!important;width:100%!important;height:17px!important;margin:3px 0 0!important;accent-color:#fff!important;position:relative!important;top:-5.5px!important}
.setting-value{font-size:9px!important;color:#9b99a5!important}
.settings-link b{font-size:17px!important;font-weight:300!important;color:#8c8b96!important}
.vinyl{width:min(85vw,405px)!important;aspect-ratio:1!important;margin:0 auto 39px!important;border-radius:50%!important;overflow:hidden!important;position:relative!important;display:grid!important;place-items:center!important;background:#08080b url("vinyl-disc-reference.png") center/100% 100% no-repeat!important;box-shadow:none!important;transform-origin:50% 50%!important}
.vinyl:before,.vinyl:after{display:none!important}
.vinyl-label{width:38.67%!important;aspect-ratio:1!important;border-radius:50%!important;position:relative!important;z-index:2!important;overflow:hidden!important;border:0!important;box-shadow:none!important;background-color:#08080b!important;background-size:cover!important;background-position:center!important}
.vinyl.playing{animation:vinylspin var(--vinyl-speed,2.5s) linear infinite!important}
.vinyl.paused{animation-play-state:paused!important}
.metadata-cover-only{justify-content:flex-start!important}
@media (max-width:390px){
  .settings-sheet{padding-left:14px!important;padding-right:14px!important}
  .setting-row,.settings-link{min-height:47.5px!important;padding:7px 2px!important}
  .range-row{min-height:55px!important}
  .vinyl{width:min(85vw,350px)!important}
}

/* v114: golden 18:34 iOS Settings controls */
.settings-sheet .range-row input[type=range]{-webkit-appearance:none!important;appearance:none!important;background:transparent!important}
.settings-sheet .range-row input[type=range]::-webkit-slider-runnable-track{height:6px!important;border:1px solid #050508!important;border-radius:999px!important;background:#0b0b0e!important;box-shadow:inset 0 0 0 1px #34333a!important}
.settings-sheet .range-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none!important;appearance:none!important;width:21px!important;height:14px!important;margin-top:-5px!important;border:0!important;border-radius:999px!important;background:#f7f7f8!important;box-shadow:none!important}
.settings-sheet .range-row input[type=range]::-moz-range-track{height:6px!important;border:1px solid #050508!important;border-radius:999px!important;background:#0b0b0e!important}
.settings-sheet .range-row input[type=range]::-moz-range-thumb{width:21px!important;height:14px!important;border:0!important;border-radius:999px!important;background:#f7f7f8!important}

/* v116 — the Search-side ⇄ is playback shuffle, while library ordering lives in Settings. */
.sort-swap.shuffle-active{color:#fff!important;border-color:#55545d!important;background:#26252d!important}
.library-order-setting{cursor:pointer!important}
.library-order-setting .library-order-value{margin-left:auto!important;display:block!important;flex:0 0 auto!important;max-width:48%!important;text-align:right!important;font-size:9.8px!important;line-height:1.2!important;color:#aaa8b2!important;white-space:normal!important}

/* v116 — restore the compact current-track action sheet. One continuous action list,
   no oversized grouped cards, no extra Cancel slab, and no focus rectangle. */
.track-actions-sheet{max-height:76dvh!important;padding:9px 16px calc(12px + env(safe-area-inset-bottom))!important;border-radius:28px 28px 0 0!important;background:#17161c!important}
.track-actions-sheet .action-handle{margin-bottom:13px!important}
.track-actions-sheet .action-track-head{grid-template-columns:52px minmax(0,1fr)!important;gap:12px!important;padding:0 3px 14px!important;border-bottom:1px solid #302f36!important}
.track-actions-sheet .action-track-cover{width:52px!important;height:52px!important;border-radius:11px!important}
.track-actions-sheet .action-track-head strong{font-size:17px!important;line-height:1.15!important;font-weight:720!important}
.track-actions-sheet .action-track-head span{font-size:11.5px!important;line-height:1.2!important;color:#9a98a3!important}
.track-action-list{display:flex!important;flex-direction:column!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;overflow:visible!important}
.track-actions-sheet.action-sheet .track-action-list .track-action-row{position:relative!important;width:100%!important;min-height:48px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:0!important;padding:12px 4px!important;border:0!important;border-bottom:1px solid #302f36!important;border-radius:0!important;background:transparent!important;color:#f3f2f5!important;text-align:left!important;font-size:14.5px!important;line-height:1.2!important;font-weight:520!important;box-shadow:none!important;outline:none!important;-webkit-tap-highlight-color:transparent!important}
.track-actions-sheet.action-sheet .track-action-list .track-action-row:focus,
.track-actions-sheet.action-sheet .track-action-list .track-action-row:focus-visible{outline:none!important;box-shadow:none!important}
.track-actions-sheet .track-action-chevron{margin-left:auto!important;font-size:20px!important;line-height:1!important;font-weight:300!important;color:#7f7d87!important}
.track-actions-sheet.action-sheet .track-action-list .track-action-remove{margin:0!important;border:0!important;border-bottom:0!important;border-radius:0!important;background:transparent!important;color:#ff7d86!important;min-height:50px!important}

/* v119: visible, non-blocking bulk-import progress. Normal launch splash is unchanged. */
.boot-splash.importing{padding:calc(20px + env(safe-area-inset-top)) 22px calc(20px + env(safe-area-inset-bottom));justify-content:center}
.boot-splash.importing>.boot-title{position:relative!important;top:0!important;font-size:28px!important}
.boot-splash.importing>.boot-spinner{display:none!important}
.import-progress{width:min(100%,390px);margin-top:30px;padding:18px 17px 16px;border:1px solid #34343c;border-radius:18px;background:#111116;box-shadow:0 18px 55px rgba(0,0,0,.42);text-align:left}
.import-progress__head{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.import-progress__head strong{font-size:16px;line-height:1.15;font-weight:760;letter-spacing:-.02em}
.import-progress__head span{font-size:12px;color:#aaa8b1;font-variant-numeric:tabular-nums;white-space:nowrap}
.import-progress__bar{height:5px;margin:14px 0 13px;border-radius:999px;background:#2d2d34;overflow:hidden}
.import-progress__bar span{display:block;width:0;height:100%;border-radius:999px;background:#f4f4f5;transition:width .12s linear}
.import-progress.preparing .import-progress__bar span{width:34%!important;animation:importprepare 1.05s ease-in-out infinite alternate}
@keyframes importprepare{from{transform:translateX(-38%);opacity:.55}to{transform:translateX(195%);opacity:1}}
.import-progress__file{min-height:32px;font-size:12px;line-height:1.35;color:#d7d6db;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.import-progress__stats{margin-top:7px;font-size:11px;color:#93919b;font-variant-numeric:tabular-nums}
.import-progress__hint{margin:13px 0 0;font-size:10.5px;line-height:1.4;color:#77757f}
.import-progress__cancel{width:100%;height:42px;margin-top:14px;border:1px solid #37363f;border-radius:13px;background:#202026;color:#efeff1;font-size:13px;font-weight:700}
.import-progress__cancel:disabled{opacity:.55}
.library-render-sentinel{height:1px;width:100%;pointer-events:none}

/* v123 — restored Library Select workflow */
.library-head-actions{display:flex;align-items:center;gap:12px}
.library-select{border:0!important;background:none!important;color:#aaa8b1!important;font-size:12px!important;font-weight:650!important;line-height:1!important;padding:5px 2px 8px!important}
.library-select.active{color:#f4f3f5!important;font-weight:760!important}
.track.selecting{grid-template-columns:24px 44px minmax(0,1fr)!important;gap:9px!important}
.track.selecting .track-fav,.track.selecting .track-more{display:none!important}
.track.selecting .select-dot{width:20px!important;height:20px!important;border:1.5px solid #66646e!important;color:#09090c!important;font-size:11px!important;font-weight:800!important}
.track.selected .select-dot{background:#f6f5f7!important;border-color:#f6f5f7!important}
.selection-bar{position:fixed;z-index:76;left:50%;transform:translateX(-50%);bottom:max(5px,env(safe-area-inset-bottom));width:min(calc(var(--content-max) - 10px),calc(100% - 10px));padding:9px 10px 10px;background:rgba(20,20,25,.985);border:1px solid #44434c;border-radius:18px;box-shadow:0 12px 38px rgba(0,0,0,.48);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}
.selection-bar-copy{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:1px 2px 8px}
.selection-bar-copy strong{font-size:12px;line-height:1.1;color:#f5f4f6}
.selection-bar-copy span{font-size:9.5px;line-height:1.1;color:#888690;white-space:nowrap}
.selection-bar-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
.selection-bar-actions button{height:36px;border:1px solid #37363f;border-radius:11px;background:#1b1a20;color:#f2f1f4;font-size:11.5px;font-weight:700}
.selection-bar-actions button:disabled{opacity:.38}
.selection-bar-actions .selection-danger{color:#ff7b86;border-color:#493038}
body.selection-mode .mini-player{display:none!important}
body.selection-mode .app-shell{padding-bottom:calc(122px + env(safe-area-inset-bottom))!important}
@media(max-width:420px){.library-head-actions{gap:9px}.selection-bar-copy span{display:none}}


/* Samsung alternate player style — AVEE-inspired neon visualizer reference.
   The main iPhone vinyl remains untouched because it is server-locked to player_style=vinyl. */
.avee-backdrop,.avee-orbit,.avee-spectrum,.avee-floor,.avee-coreglow{display:none}
html[data-player-style="avee"] .now-playing{background:
  radial-gradient(circle at 50% 10%,rgba(85,255,248,.18) 0,rgba(85,255,248,0) 24%),
  radial-gradient(circle at 50% 24%,rgba(129,69,255,.16) 0,rgba(129,69,255,0) 28%),
  linear-gradient(180deg,#060910 0%,#080713 26%,#06070d 64%,#030407 100%)!important}
html[data-player-style="avee"] .np-header>span{color:#a8ffff!important;text-shadow:0 0 14px rgba(109,255,249,.25)}
html[data-player-style="avee"] .np-header .plain-icon,
html[data-player-style="avee"] .transport-side,
html[data-player-style="avee"] .transport-btn{color:#ecfdff!important;text-shadow:0 0 12px rgba(99,250,255,.14)}
html[data-player-style="avee"] .quality-badge{border-color:rgba(107,255,249,.26)!important;background:rgba(6,16,21,.82)!important;color:#cfffff!important;box-shadow:0 0 0 1px rgba(112,251,255,.07),0 12px 26px rgba(0,0,0,.25)}
html[data-player-style="avee"] .mini-player{background:linear-gradient(135deg,rgba(11,19,25,.985),rgba(13,10,20,.985))!important;border-color:#254553!important;box-shadow:0 18px 48px rgba(0,0,0,.56),0 0 0 1px rgba(108,250,255,.08)!important}
html[data-player-style="avee"] .mini-progress span,
html[data-player-style="avee"] .wave-icon i{background:linear-gradient(180deg,#75fff9 0%,#7f56ff 100%)!important;box-shadow:0 0 10px rgba(117,255,249,.34)}
html[data-player-style="avee"] .vinyl{width:min(86vw,405px)!important;aspect-ratio:1!important;margin:2px auto 39px!important;border-radius:28px!important;overflow:hidden!important;position:relative!important;display:grid!important;place-items:center!important;background:
  radial-gradient(circle at 50% 42%,rgba(94,255,250,.12) 0,rgba(94,255,250,0) 22%),
  linear-gradient(180deg,rgba(8,24,29,.96) 0%,rgba(8,10,19,.96) 52%,rgba(7,8,14,.98) 100%)!important;
  border:1px solid rgba(112,252,255,.16)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 24px 60px rgba(0,0,0,.42),0 0 0 1px rgba(113,252,255,.06)!important;transform:none!important}
html[data-player-style="avee"] .vinyl:before{content:"";position:absolute;inset:8% 10% 14%;display:block!important;border-radius:22px;background:
  linear-gradient(180deg,rgba(146,69,255,.16) 0,rgba(146,69,255,0) 40%),
  radial-gradient(circle at 50% 58%,rgba(96,255,247,.16) 0,rgba(96,255,247,0) 26%),
  linear-gradient(180deg,rgba(6,13,18,.72) 0%,rgba(11,7,18,.18) 48%,rgba(7,7,12,.84) 100%);
  box-shadow:inset 0 0 0 1px rgba(103,250,255,.12),inset 0 -48px 64px rgba(0,0,0,.34),0 0 50px rgba(95,255,248,.08);pointer-events:none!important}
html[data-player-style="avee"] .vinyl:after{content:"";position:absolute;inset:16% 22% auto;display:block!important;height:42%;background:linear-gradient(90deg,rgba(0,0,0,0) 0%,rgba(99,255,249,.11) 12%,rgba(0,0,0,0) 26%,rgba(129,69,255,.12) 52%,rgba(0,0,0,0) 74%,rgba(99,255,249,.1) 88%,rgba(0,0,0,0) 100%);filter:blur(12px);opacity:.75;pointer-events:none!important}
html[data-player-style="avee"] .avee-backdrop,
html[data-player-style="avee"] .avee-orbit,
html[data-player-style="avee"] .avee-spectrum,
html[data-player-style="avee"] .avee-floor,
html[data-player-style="avee"] .avee-coreglow{display:block!important;position:absolute;pointer-events:none}
html[data-player-style="avee"] .avee-backdrop{inset:12% 11% 14%;border-radius:24px;background:
  linear-gradient(180deg,rgba(5,11,18,.35),rgba(9,10,16,.05) 40%,rgba(7,8,13,.45)),
  repeating-linear-gradient(180deg,rgba(255,255,255,.045) 0 1px,rgba(255,255,255,0) 1px 14px);
  mix-blend-mode:screen;opacity:.42}
html[data-player-style="avee"] .avee-orbit{width:58%;aspect-ratio:1;left:21%;top:20%;border-radius:50%;border:1px solid rgba(109,251,255,.18);box-shadow:inset 0 0 20px rgba(113,250,255,.08),0 0 22px rgba(129,69,255,.15)}
html[data-player-style="avee"] .avee-orbit-a{transform:rotate(16deg)}
html[data-player-style="avee"] .avee-orbit-b{transform:rotate(-18deg) scale(1.12);border-color:rgba(129,69,255,.16)}
html[data-player-style="avee"] .vinyl.playing .avee-orbit-a{animation:aveeorbit 8s linear infinite}
html[data-player-style="avee"] .vinyl.playing .avee-orbit-b{animation:aveeorbitreverse 10s linear infinite}
html[data-player-style="avee"] .vinyl.paused .avee-orbit-a,
html[data-player-style="avee"] .vinyl.paused .avee-orbit-b{animation-play-state:paused}
html[data-player-style="avee"] .avee-spectrum{left:14%;right:14%;bottom:19%;height:40%;display:flex!important;align-items:flex-end;justify-content:center;gap:8px;z-index:3}
html[data-player-style="avee"] .avee-spectrum i{flex:0 0 7px;border-radius:999px 999px 3px 3px;background:linear-gradient(180deg,#a0fffb 0%,#50c7ff 45%,#7c52ff 100%);box-shadow:0 0 12px rgba(102,255,249,.34),0 0 26px rgba(129,69,255,.13);opacity:.95;animation:aveebar 1.28s ease-in-out infinite;transform-origin:50% 100%}
html[data-player-style="avee"] .avee-spectrum i:nth-child(1){height:30%;animation-delay:-1.16s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(2){height:52%;animation-delay:-.95s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(3){height:72%;animation-delay:-1.08s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(4){height:44%;animation-delay:-.74s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(5){height:78%;animation-delay:-.62s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(6){height:92%;animation-delay:-.38s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(7){height:100%;animation-delay:-.18s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(8){height:92%;animation-delay:-.42s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(9){height:78%;animation-delay:-.22s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(10){height:44%;animation-delay:-.66s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(11){height:72%;animation-delay:-.86s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(12){height:52%;animation-delay:-.55s}
html[data-player-style="avee"] .avee-spectrum i:nth-child(13){height:30%;animation-delay:-.98s}
html[data-player-style="avee"] .vinyl.paused .avee-spectrum i{animation-play-state:paused;opacity:.65}
html[data-player-style="avee"] .avee-floor{left:12%;right:12%;bottom:11%;height:14%;border-radius:0 0 20px 20px;background:
  linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.08) 20%,rgba(0,0,0,.55) 100%),
  linear-gradient(90deg,rgba(0,0,0,0) 0%,rgba(106,255,249,.85) 12%,rgba(145,75,255,.9) 50%,rgba(106,255,249,.85) 88%,rgba(0,0,0,0) 100%);
  clip-path:polygon(8% 16%,92% 16%,100% 100%,0 100%);filter:blur(.2px);opacity:.92;box-shadow:0 -6px 18px rgba(106,255,249,.18)}
html[data-player-style="avee"] .avee-coreglow{width:36%;aspect-ratio:1;left:32%;top:32%;border-radius:50%;background:radial-gradient(circle,rgba(105,255,249,.28) 0,rgba(129,69,255,.16) 38%,rgba(129,69,255,0) 72%);filter:blur(14px);opacity:.75;z-index:1}
html[data-player-style="avee"] .vinyl-label{width:34%!important;aspect-ratio:1!important;border-radius:24px!important;position:relative!important;z-index:4!important;overflow:hidden!important;border:1px solid rgba(111,252,255,.22)!important;box-shadow:0 0 0 1px rgba(255,255,255,.04),0 0 30px rgba(111,252,255,.12),0 18px 28px rgba(0,0,0,.3)!important;background-color:#0a0d13!important;background-size:cover!important;background-position:center!important}
html[data-player-style="avee"] .vinyl.playing .vinyl-label{animation:aveepulse 2.2s ease-in-out infinite}
html[data-player-style="avee"] .vinyl.paused .vinyl-label{animation-play-state:paused}
html[data-player-style="avee"] .scrubber-wrap input[type=range]{accent-color:#88fffa!important}
html[data-player-style="avee"] .times,
html[data-player-style="avee"] .np-info p{color:#a3b7bf!important}
html[data-player-style="avee"] .transport .play-circle{background:linear-gradient(180deg,#8ffffa 0%,#74d8ff 45%,#9b70ff 100%)!important;color:#061015!important;box-shadow:0 0 20px rgba(111,252,255,.24),0 18px 26px rgba(0,0,0,.32)!important}
html[data-player-style="avee"] .np-info h2{color:#f5ffff!important;text-shadow:0 0 16px rgba(111,252,255,.08)}
@keyframes aveebar{0%,100%{transform:scaleY(.45);opacity:.6}30%{transform:scaleY(1);opacity:1}60%{transform:scaleY(.7);opacity:.82}}
@keyframes aveeorbit{from{transform:rotate(16deg)}to{transform:rotate(376deg)}}
@keyframes aveeorbitreverse{from{transform:rotate(-18deg) scale(1.12)}to{transform:rotate(-378deg) scale(1.12)}}
@keyframes aveepulse{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}


/* v126 — restore the stronger pre-cloud Lossless launch treatment. */
.boot-splash:not(.importing){background:#08080b!important}
.boot-splash:not(.importing)>.boot-title{position:relative!important;top:-20px!important;font-size:34px!important;line-height:1!important;font-weight:780!important;letter-spacing:-.05em!important;color:#f7f7f8!important;text-shadow:0 1px 18px rgba(255,255,255,.035)}
.boot-splash:not(.importing)>.boot-spinner{position:relative!important;top:-20px!important;width:25px!important;height:25px!important;margin-top:26px!important;border-width:3px!important;border-color:#2c2d32!important;border-top-color:#d3d4d8!important}

/* v127 — Samsung AVEE is a true local live renderer. The vinyl path is unchanged. */
.avee-canvas{display:none;position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
html[data-player-style="avee"] .avee-canvas{display:block!important}
html[data-player-style="avee"] .vinyl{animation:none!important;transform:none!important}
html[data-player-style="avee"] .vinyl.playing,
html[data-player-style="avee"] .vinyl.paused{animation:none!important;transform:none!important}
/* Canvas owns the live spectrum/wave/tunnel. Disable the old decorative fake motion. */
html[data-player-style="avee"] .avee-spectrum,
html[data-player-style="avee"] .avee-orbit,
html[data-player-style="avee"] .avee-floor,
html[data-player-style="avee"] .avee-coreglow{display:none!important;animation:none!important}
html[data-player-style="avee"] .avee-backdrop{z-index:0!important;opacity:.18!important}
html[data-player-style="avee"] .vinyl-label{z-index:4!important;animation:none!important;transform:scale(calc(1 + var(--avee-live-energy,0) * .018))!important;transition:transform .08s linear!important}
/* Samsung AVEE mini player: remove the recovered chevron buttons; swipe remains active. */
html[data-player-style="avee"] #miniExpand,
html[data-player-style="avee"] #miniCollapse{display:none!important}
html[data-player-style="avee"] .mini-collapsed{grid-template-columns:minmax(0,1fr) auto 46px!important}
html[data-player-style="avee"] .mini-expanded__head{grid-template-columns:minmax(0,1fr) auto!important}
html[data-player-style="avee"] .wave-icon i{transform-origin:50% 50%;transition:transform .06s linear,opacity .06s linear}
/* Samsung installed-PWA layout stays standalone; never force immersive fullscreen. */
html.samsung-device,html.samsung-device body{min-height:100%;background:#08080b}


/* v129 — Samsung AVEE player is coverless and chevron-free in every mini-player state. */
html[data-player-style="avee"] #npArtwork,
html[data-player-style="avee"] #miniCover,
html[data-player-style="avee"] #miniExpandedCover{display:none!important;background-image:none!important;background:transparent!important;box-shadow:none!important;border:0!important}
html[data-player-style="avee"] #miniExpand,
html[data-player-style="avee"] #miniCollapse{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important;width:0!important;min-width:0!important;padding:0!important;margin:0!important}
html[data-player-style="avee"] .mini-collapsed{gap:9px!important}
html[data-player-style="avee"] .mini-meta{min-width:0!important}

/* Samsung library scroll stays inside the app viewport without changing OS navigation mode. */
html.samsung-device,html.samsung-device body{height:100%!important;min-height:100%!important;overflow:hidden!important;overscroll-behavior:none!important;background:#08080b!important}
html.samsung-device .app-shell{height:100dvh!important;max-height:100dvh!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior-y:contain!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important}
html.samsung-device .app-shell::-webkit-scrollbar{display:none!important}
html.samsung-device[data-player-style="avee"] .app-shell{touch-action:pan-y!important}


/* v131 — AVEE V22 template renderer owns every pixel in the Samsung visualizer stage. */
html[data-player-style="avee"] .vinyl{background:#03040a!important;border:0!important;box-shadow:0 24px 62px rgba(0,0,0,.48)!important}
html[data-player-style="avee"] .vinyl:before,
html[data-player-style="avee"] .vinyl:after,
html[data-player-style="avee"] .avee-backdrop,
html[data-player-style="avee"] .avee-orbit,
html[data-player-style="avee"] .avee-spectrum,
html[data-player-style="avee"] .avee-floor,
html[data-player-style="avee"] .avee-coreglow{display:none!important;content:none!important;animation:none!important}
html[data-player-style="avee"] .avee-canvas{display:block!important;inset:0!important;width:100%!important;height:100%!important;z-index:2!important;background:#03040a!important}
html[data-player-style="avee"] #npArtwork{display:none!important}
html[data-player-style="avee"] .now-playing{background:radial-gradient(ellipse at 50% 0%,#151421 0,#0b0a10 30%,#07070a 68%,#050507 100%)!important}
html[data-player-style="avee"] .wave-icon i{animation:none!important}

/* v132 — AVEE renderer follows the original Avee architecture: FFT + GPU/OpenGL-style rendering.
   The WebGL canvas is isolated from layout/paint and renders at a capped mobile back-buffer resolution. */
html[data-player-style="avee"] .vinyl{contain:layout paint size!important;isolation:isolate!important}
html[data-player-style="avee"] .avee-canvas{contain:strict!important;will-change:contents!important;transform:translateZ(0)!important}


/* v133 — AVEE audio analysis is decoupled from GPU frames; no procedural sparkle pixels. */
html[data-player-style="avee"] .wave-icon i{transition:transform .035s linear,opacity .035s linear!important}


/* v138 — fixed wolf reference over AVEE pixel/spectrum field. */
.avee-wolf{display:none;position:absolute;z-index:5;left:50%;top:50%;width:38%;height:auto;max-height:45%;object-fit:contain;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 0 8px rgba(105,72,255,.28)) drop-shadow(0 0 7px rgba(255,24,88,.18));clip-path:polygon(12% 3%,88% 3%,100% 30%,96% 78%,72% 100%,28% 100%,4% 78%,0 30%)}
html[data-player-style="avee"] .avee-wolf{display:block!important}
html[data-player-style="avee"] .vinyl{background:#000!important}
html[data-player-style="avee"] .avee-canvas{background:#000!important}
html[data-player-style="avee"] #npArtwork{display:none!important}
html[data-player-style="avee"] .avee-wolf{animation:none!important}


/* v139 — reference-correct AVEE wolf + white moving tunnel. */
html[data-player-style="avee"] .vinyl{background:#000!important;border-radius:22px!important}
html[data-player-style="avee"] .avee-canvas{background:#000!important}
html[data-player-style="avee"] .avee-wolf{width:48%!important;max-height:52%!important;filter:drop-shadow(0 0 11px rgba(111,76,255,.34)) drop-shadow(0 0 9px rgba(255,20,88,.26))!important;clip-path:polygon(10% 2%,90% 2%,100% 28%,97% 78%,72% 100%,28% 100%,3% 78%,0 28%)!important}


/* v140 — reference correction from physical Samsung frame: denser tunnel, smaller fixed wolf/blob. */
html[data-player-style="avee"] .avee-wolf{width:31%!important;max-height:36%!important;filter:drop-shadow(0 0 8px rgba(94,66,255,.34)) drop-shadow(0 0 7px rgba(255,18,88,.25))!important}
html[data-player-style="avee"] .vinyl{border-radius:18px!important}

/* v141 — AVEE reference-frame correction from the supplied video captures.
   Only the Samsung/AVEE player is changed; the recovered vinyl UI remains untouched. */
html[data-player-style="avee"] .now-playing{background:#000!important}
html[data-player-style="avee"] .vinyl{
  width:min(94vw,520px)!important;
  aspect-ratio:16/9!important;
  margin:8px auto 30px!important;
  border-radius:12px!important;
  background:#000!important;
  box-shadow:none!important;
}
html[data-player-style="avee"] .avee-canvas{background:#000!important}
html[data-player-style="avee"] .avee-wolf{
  width:29%!important;
  max-height:50%!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  filter:drop-shadow(0 0 9px rgba(60,39,255,.42)) drop-shadow(0 0 8px rgba(255,10,72,.30))!important;
  clip-path:polygon(10% 2%,90% 2%,100% 28%,97% 78%,72% 100%,28% 100%,3% 78%,0 28%)!important;
}

/* v142 — restore the full-size Now Playing composition while preserving the
   supplied 16:9 AVEE reference inside the visualizer.  The outer player stage
   is square again (same vertical footprint as before v141); only the live AVEE
   canvas is letterboxed to 16:9 in its centre. */
html[data-player-style="avee"] .vinyl{
  width:min(86vw,405px)!important;
  aspect-ratio:1!important;
  margin:2px auto 39px!important;
  border-radius:18px!important;
  background:#000!important;
  box-shadow:none!important;
}
html[data-player-style="avee"] .avee-canvas{
  inset:auto 0!important;
  top:50%!important;
  width:100%!important;
  height:56.25%!important;
  transform:translateY(-50%) translateZ(0)!important;
  background:#000!important;
}
html[data-player-style="avee"] .avee-wolf{
  width:29%!important;
  max-height:29%!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
}

/* v143 — physical Samsung correction: keep the original full Now Playing scale,
   but make the AVEE stage high-DPI and keep the supplied wolf exactly centred.
   The wolf asset is the user's reference image with only the black exterior made
   transparent; no polygon crop is applied. */
html[data-player-style="avee"] .avee-canvas{
  image-rendering:auto!important;
}
html[data-player-style="avee"] .avee-wolf{
  width:31%!important;
  max-height:31%!important;
  left:50%!important;
  top:50%!important;
  transform:translate3d(-50%,-50%,0)!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
  clip-path:none!important;
  image-rendering:auto!important;
  backface-visibility:hidden!important;
  filter:drop-shadow(0 0 8px rgba(65,42,255,.38)) drop-shadow(0 0 7px rgba(255,12,82,.26))!important;
}

/* v144 — physical Samsung anti-flicker pass.
   Keep the AVEE canvas at full native DPR without an extra compositor-resampled
   translateZ layer. The wolf is static, centered and likewise avoids forced 3D
   resampling; the WebGL renderer itself owns all per-frame motion. */
html[data-player-style="avee"] .avee-canvas{
  transform:translateY(-50%)!important;
  will-change:auto!important;
  backface-visibility:visible!important;
  image-rendering:auto!important;
}
html[data-player-style="avee"] .avee-wolf{
  transform:translate(-50%,-50%)!important;
  will-change:auto!important;
  image-rendering:auto!important;
}

/* v146 — approved larger wolf + fuller AVEE hero stage.
   Enlarge the centred wolf/ring and let the live neon stage occupy more of the square
   player so the scene no longer feels empty on the phone. */
html[data-player-style="avee"] .vinyl{
  width:min(88vw,420px)!important;
  aspect-ratio:1!important;
  margin:2px auto 34px!important;
  border-radius:18px!important;
  background:#000!important;
  overflow:hidden!important;
}
html[data-player-style="avee"] .avee-canvas{
  inset:auto!important;
  left:-4%!important;
  right:-4%!important;
  top:49%!important;
  width:auto!important;
  height:72%!important;
  transform:translateY(-50%)!important;
  background:#000!important;
}
html[data-player-style="avee"] .avee-wolf{
  width:40%!important;
  max-height:40%!important;
  left:50%!important;
  top:49.6%!important;
  transform:translate(-50%,-50%)!important;
  filter:drop-shadow(0 0 14px rgba(111,76,255,.42)) drop-shadow(0 0 12px rgba(255,18,88,.28))!important;
}

/* v147 — exact approved hero-stage direction from the first accepted mockup.
   AVEE gets a tall, full-bleed visual field instead of a square with letterboxed black space. */
html[data-player-style="avee"] .vinyl{
  width:min(92vw,440px)!important;
  height:min(58vh,520px)!important;
  aspect-ratio:auto!important;
  margin:0 auto 22px!important;
  border-radius:18px!important;
  background:#020108!important;
  overflow:hidden!important;
  box-shadow:0 22px 62px rgba(0,0,0,.46),0 0 48px rgba(119,40,255,.08)!important;
}
html[data-player-style="avee"] .avee-canvas{
  inset:0!important;
  left:0!important;
  right:0!important;
  top:0!important;
  width:100%!important;
  height:100%!important;
  transform:none!important;
  background:#020108!important;
}
html[data-player-style="avee"] .avee-wolf{
  width:48%!important;
  max-height:48%!important;
  left:50%!important;
  top:49%!important;
  transform:translate(-50%,-50%)!important;
  filter:drop-shadow(0 0 16px rgba(104,61,255,.48)) drop-shadow(0 0 14px rgba(255,19,118,.34))!important;
}
html[data-player-style="avee"] .np-header{
  margin-bottom:8px!important;
}

/* v150 — approved mockup tunnel integrated edge-to-edge inside Now Playing.
   Remove the visible inserted-card rectangle and give the high-resolution neon
   background room to bleed into the black page just like the approved mockup. */
html[data-player-style="avee"] .vinyl{
  width:calc(100% + 48px)!important;
  max-width:none!important;
  height:min(64dvh,590px)!important;
  margin:0 -24px 6px!important;
  border-radius:0!important;
  background:#000 url("assets/avee/hero-tunnel-v155.png?v=155-avee-native-samsung-controls") center 42%/cover no-repeat!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
html[data-player-style="avee"] .avee-canvas{
  inset:-2% -2% 0 -2%!important;
  width:104%!important;
  height:102%!important;
  background:transparent!important;
  image-rendering:auto!important;
}
html[data-player-style="avee"] .avee-wolf{
  width:54%!important;
  max-height:54%!important;
  left:50%!important;
  top:48.4%!important;
  transform:translate(-50%,-50%)!important;
  image-rendering:auto!important;
  filter:drop-shadow(0 0 22px rgba(104,61,255,.54)) drop-shadow(0 0 18px rgba(255,19,118,.40))!important;
}

/* v152 — carry the approved neon tunnel through the whole Samsung Now Playing
   composition, not just a rectangular visualizer card.  The image fades into black
   around the transport like the approved mockup while the live WebGL ring/wolf stays
   layered above the same tunnel texture. */
html[data-player-style="avee"] .now-playing{
  background:
    linear-gradient(to bottom,
      rgba(0,0,0,.88) 0%,
      rgba(0,0,0,.42) 8%,
      rgba(0,0,0,.08) 18%,
      rgba(0,0,0,.05) 57%,
      rgba(0,0,0,.30) 68%,
      rgba(0,0,0,.76) 82%,
      #000 94%),
    url("assets/avee/hero-tunnel-v155.png?v=155-avee-native-samsung-controls") center 8%/100% auto no-repeat,
    #000!important;
}
html[data-player-style="avee"] .vinyl{
  width:calc(100% + 48px)!important;
  max-width:none!important;
  height:min(62dvh,570px)!important;
  margin:0 -24px -10px!important;
  background:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
html[data-player-style="avee"] .avee-canvas{
  inset:-1.5% -2% -4% -2%!important;
  width:104%!important;
  height:105.5%!important;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 91%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 91%,transparent 100%);
}
html[data-player-style="avee"] .avee-wolf{
  width:53%!important;
  max-height:53%!important;
  top:48.2%!important;
}
html[data-player-style="avee"] .np-info-row,
html[data-player-style="avee"] .quality-badge,
html[data-player-style="avee"] .scrubber-wrap,
html[data-player-style="avee"] .transport{
  position:relative;
  z-index:7;
}

/* v153 — true audio-reactive background + exact wolf/ring alignment.
   The full Samsung Now Playing tunnel drifts/zooms with the same live energy variables
   as WebGL instead of remaining a static wallpaper. The wolf's visible alpha bounds
   are compensated so its artwork centre lands on the shader ring centre. */
html[data-player-style="avee"] .now-playing{
  background-position:
    center,
    calc(50% + var(--avee-bg-x,0px)) calc(8% + var(--avee-bg-y,0px)),
    center!important;
  background-size:
    auto,
    calc(100% + var(--avee-bg-grow,8px)) auto,
    auto!important;
}
html[data-player-style="avee"] .avee-wolf{
  left:49.4%!important;
  top:50.7%!important;
  width:52%!important;
  max-height:52%!important;
  object-position:50% 50%!important;
}

/* v154 — exact live-ring centering and single coordinate system.
   The WebGL ring and the supplied wolf now share the exact 50%/50% stage centre.
   Older AVEE passes used oversized/inset canvases plus a 48.x% wolf top, which made
   the wolf look visibly off-centre inside the closed contour on the Samsung screen. */
html[data-player-style="avee"] .avee-canvas{
  inset:0!important;
  left:0!important;
  right:0!important;
  top:0!important;
  bottom:0!important;
  width:100%!important;
  height:100%!important;
  transform:none!important;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 92%,transparent 100%)!important;
  mask-image:linear-gradient(to bottom,#000 0%,#000 92%,transparent 100%)!important;
}
html[data-player-style="avee"] .avee-wolf{
  left:50%!important;
  top:50%!important;
  width:51%!important;
  max-height:51%!important;
  transform:translate(-50%,-50%)!important;
  object-position:50% 50%!important;
}

/* v155 — Samsung AVEE transport cleanup.
   Keep the pause/play control as a plain white glyph; remove the cyan/purple orb
   without changing the hit target or any of the now-correct AVEE animation. */
html[data-player-style="avee"] .transport .play-circle{
  background:transparent!important;
  box-shadow:none!important;
  color:#f7f7f8!important;
  text-shadow:none!important;
  border:0!important;
  padding:0!important;
  font-size:32px!important;
}

/* v172 UI repairs only. No Samsung AVEE selector is modified below this line. */
.party-source-strip{display:none!important}
.tabs .tab[data-tab="party"].active{
  background:#fafafa!important;
  color:#09090c!important;
  border-color:#fafafa!important;
  font-weight:730!important;
}
/* Keep the first artist closer to Library without affecting later groups. */
.library-head{margin-bottom:3px!important}
#librarySection{margin-top:0!important;padding-top:0!important}
.track-list>.artist-group:first-child{margin-top:4px!important;padding-top:2px!important}

/* iPhone mini-player: full card visible, no black gap underneath.
   The card sits 1px inside the viewport so its lower border is visible; a same-card
   shadow fills that 1px and the iOS safe-area below it, so there is no visual gap. */
html.iphone-device .mini-player{
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
  bottom:1px!important;
  width:min(calc(var(--content-max) - 10px),calc(100% - 10px))!important;
  max-width:calc(100% - 10px)!important;
  margin:0!important;
  box-sizing:border-box!important;
  border:1px solid #44434c!important;
  border-radius:18px!important;
  overflow:hidden!important;
  background:rgba(20,20,25,.995)!important;
  box-shadow:0 22px 0 16px rgba(20,20,25,.995),0 12px 38px rgba(0,0,0,.48)!important;
}
html.iphone-device .mini-expanded{
  padding:8px 9px calc(10px + max(0px,env(safe-area-inset-bottom)))!important;
}
html.iphone-device .mini-collapsed{
  height:auto!important;
  min-height:calc(66px + max(0px,env(safe-area-inset-bottom)))!important;
  padding:8px 9px calc(8px + max(0px,env(safe-area-inset-bottom)))!important;
}
html.iphone-device .app-shell{padding-bottom:calc(190px + env(safe-area-inset-bottom))!important}
@supports (-webkit-touch-callout:none){
  @media (hover:none) and (pointer:coarse){
    html:not(.samsung-device) .mini-player{
      bottom:1px!important;
      box-shadow:0 22px 0 16px rgba(20,20,25,.995),0 12px 38px rgba(0,0,0,.48)!important;
    }
  }
}


/* v175 — iPhone mini-player compact card + stable selection + Party rename.
   Samsung AVEE selectors and renderer CSS above are intentionally untouched. */
.party-name-row{display:flex;align-items:center;gap:8px;min-width:0}
.party-name-row h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.party-rename-btn{border:0;background:transparent;color:#aaa8b2;font-size:16px;line-height:1;padding:4px 2px;flex:0 0 auto}
html.iphone-device .mini-player{bottom:0!important;box-shadow:0 12px 38px rgba(0,0,0,.48)!important}
html.iphone-device .mini-expanded{height:auto!important;min-height:0!important;padding:8px 9px 10px!important}
html.iphone-device .mini-controls{margin-bottom:0!important;padding-bottom:0!important}
html.iphone-device .mini-collapsed{height:66px!important;min-height:66px!important;padding:8px 9px!important}
html.iphone-device body.selection-mode .app-shell{padding-bottom:calc(190px + env(safe-area-inset-bottom))!important}
@supports (-webkit-touch-callout:none){
  @media (hover:none) and (pointer:coarse){
    html:not(.samsung-device) .mini-player{bottom:0!important;box-shadow:0 12px 38px rgba(0,0,0,.48)!important}
    html:not(.samsung-device) .mini-expanded{height:auto!important;min-height:0!important;padding-bottom:10px!important}
    html:not(.samsung-device) body.selection-mode .app-shell{padding-bottom:calc(190px + env(safe-area-inset-bottom))!important}
  }
}

/* v176 — AVEE-style Audio Provider DSP editor. */
.audio-provider-dialog{padding:0!important}
.audio-provider-card{width:min(720px,calc(100vw - 18px))!important;max-height:90dvh!important;padding:15px 16px calc(18px + env(safe-area-inset-bottom))!important;overflow:hidden!important;background:#16151b!important;border:1px solid #3a3942!important;border-radius:26px!important}
.audio-provider-head{flex:0 0 auto!important;margin-bottom:10px!important}
.audio-provider-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:2px 0 10px}
.audio-provider-tab{height:34px;border:1px solid #34333b;border-radius:11px;background:#1e1d23;color:#9896a1;font-size:10px;font-weight:720}
.audio-provider-tab.active{background:#f2f2f4;color:#09090c;border-color:#f2f2f4}
.audio-provider-note{margin:0 1px 11px;color:#8f8d98;font-size:9.5px;line-height:1.35}
.audio-provider-form{min-height:0;max-height:calc(90dvh - 188px);overflow-y:auto;overflow-x:hidden;padding-right:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.audio-provider-form::-webkit-scrollbar{display:none}
.audio-provider-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:55px;padding:8px 1px;border-bottom:1px solid #2f2e34}
.audio-provider-control-copy{display:flex;min-width:0;flex-direction:column;gap:3px}
.audio-provider-control-copy strong{font-size:11.5px;line-height:1.15;font-weight:710;color:#f0eff2}
.audio-provider-control-value{font-size:9px;line-height:1.15;color:#96949f;font-variant-numeric:tabular-nums}
.audio-provider-control input[type=range]{grid-column:1/-1;width:100%;height:17px;margin:-1px 0 0;-webkit-appearance:none;appearance:none;background:transparent;accent-color:#fff}
.audio-provider-control input[type=range]::-webkit-slider-runnable-track{height:6px;border:1px solid #050508;border-radius:999px;background:#0b0b0e;box-shadow:inset 0 0 0 1px #34333a}
.audio-provider-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:21px;height:14px;margin-top:-5px;border:0;border-radius:999px;background:#f7f7f8}
.audio-provider-control input[type=range]::-moz-range-track{height:6px;border:1px solid #050508;border-radius:999px;background:#0b0b0e}
.audio-provider-control input[type=range]::-moz-range-thumb{width:21px;height:14px;border:0;border-radius:999px;background:#f7f7f8}
.audio-provider-control select{min-width:118px;height:32px;padding:0 28px 0 10px;border:1px solid #3b3a43;border-radius:10px;background:#201f25;color:#f4f3f5;font-size:10.5px;font-weight:680}
.audio-provider-toggle{grid-template-columns:minmax(0,1fr) auto}
.audio-provider-toggle input[type=checkbox]{width:19px;height:19px;accent-color:#f5f5f6}
.audio-provider-reset{width:100%;height:40px;margin-top:11px;border:1px solid #3a3942;border-radius:12px;background:#1e1d23;color:#c9c7cf;font-size:10.5px;font-weight:700}
@media(max-width:420px){.audio-provider-card{width:calc(100vw - 10px)!important;padding-left:14px!important;padding-right:14px!important}.audio-provider-tabs{gap:4px}.audio-provider-tab{font-size:9px}}

/* v177 — force-visible AVEE Audio Provider settings after PWA cache reset. */
.avee-settings-version{display:inline-flex;vertical-align:middle;margin-left:5px;padding:2px 5px;border:1px solid #3a3941;border-radius:999px;color:#aaa8b2;font-size:8px;font-weight:750;letter-spacing:.04em}
#audioProviderBtn{display:flex!important;visibility:visible!important;opacity:1!important}

/* v178 zero-copy source state */
.track.source-missing .track-title,.track.source-missing .track-artist{opacity:.48}
.track.source-missing .track-cover{filter:saturate(.35);opacity:.55}
