
:root{
  --bg:#000;
  --bg-1:#0a0a0a;
  --bg-2:#121212;
  --bg-3:#181818;
  --bg-hover:#1f1f1f;
  --text:#ffffff;
  --text-muted:#b3b3b3;
  --text-dim:#7a7a7a;
  --accent:#1ed760;
  --accent-2:#1db954;
  --danger:#e63946;
  --pink:#ff5d8f;
  --gradient-1:linear-gradient(180deg,#5038a0 0%,#0a0a0a 80%);
  --player-h:90px;
  --sidebar-w:260px;
  --sidebar-w-collapsed:72px;
  --topbar-h:64px;
  --radius:10px;
  --transition:.18s ease;
  font-synthesis:none;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
button,a,input[type=range],.icon-btn,.fab,.pill-btn,.q-row,.card,.row,.tab,.tracks .row{
  -webkit-tap-highlight-color:transparent;
}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;text-rendering:auto;height:100dvh;overflow:hidden}
a{color:inherit;text-decoration:none;cursor:pointer}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
img{display:block;max-width:100%}
input,select,textarea{font:inherit}
::selection{background:#1ed76066;color:#fff}

.view::-webkit-scrollbar,.playlist-list::-webkit-scrollbar{width:10px}
.view::-webkit-scrollbar-thumb,.playlist-list::-webkit-scrollbar-thumb{
  background:#3a3a3a;border-radius:8px}
.view::-webkit-scrollbar-thumb:hover{background:#555}

.queue-panel{scrollbar-width:thin;scrollbar-color:#ffffff22 transparent}
.queue-panel::-webkit-scrollbar{width:6px;height:6px}
.queue-panel::-webkit-scrollbar-thumb{background:#ffffff22;border-radius:3px}
.queue-panel::-webkit-scrollbar-track{background:transparent}

#root{
  display:grid;
  grid-template-columns:var(--sidebar-w) 1fr;
  grid-template-rows:1fr var(--player-h);
  grid-template-areas:
    "sidebar main"
    "player  player";
  height:100dvh;
  background:#0a0a0a;
  transition:grid-template-columns .25s ease;
}
#root.sidebar-collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}
#root.sidebar-collapsed .sidebar .nav-item span,
#root.sidebar-collapsed .sidebar .lib-actions span,
#root.sidebar-collapsed .sidebar .pl-meta,
#root.sidebar-collapsed .sidebar .brand span{display:none}
.sidebar .playlist-list .dim{transition:opacity 0s linear .26s}
#root.sidebar-collapsed .sidebar .playlist-list .dim{opacity:0;transition:none;pointer-events:none}
#root.sidebar-collapsed .sidebar{padding:16px 0 8px;align-items:center;gap:8px;overflow:hidden}

#root.sidebar-collapsed .sidebar .brand{padding:8px 0 14px;justify-content:center;width:100%;position:relative;flex-direction:row;gap:0;border:0!important;margin-bottom:0}
#root.sidebar-collapsed .sidebar .brand img{width:36px;height:36px;object-fit:contain;transition:opacity .18s;transform:translateY(-4px)}

#root.sidebar-collapsed .sidebar .collapse-btn{position:absolute!important;top:8px;left:50%;
  transform:translate(-50%,-4px);
  margin:0;width:36px;height:36px;border-radius:8px!important;
  opacity:0;pointer-events:none;background:transparent;
  transition:opacity .18s,background .15s}
#root.sidebar-collapsed .sidebar:hover .collapse-btn{opacity:1;pointer-events:auto;background:#1f1f1f}
#root.sidebar-collapsed .sidebar:hover .brand img{opacity:0}

#root.sidebar-just-collapsed.sidebar-collapsed .sidebar:hover .collapse-btn{opacity:0;pointer-events:none;background:transparent}
#root.sidebar-just-collapsed.sidebar-collapsed .sidebar:hover .brand img{opacity:1}
#root.sidebar-collapsed .sidebar .primary-nav{width:100%;padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:4px}
#root.sidebar-collapsed .sidebar .nav-item{justify-content:center;padding:10px;width:48px;height:48px;gap:0}
#root.sidebar-collapsed .sidebar .lib-actions{width:100%;padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:6px}
#root.sidebar-collapsed .sidebar .lib-actions a,
#root.sidebar-collapsed .sidebar .lib-actions button{justify-content:center;padding:0;width:48px;height:48px;gap:0;border-radius:8px}
#root.sidebar-collapsed .sidebar .playlist-list{width:100%;align-items:center;display:flex;flex-direction:column;gap:8px;overflow-y:auto;overflow-x:hidden;padding:6px 0}
#root.sidebar-collapsed .sidebar .pl-item{justify-content:center;padding:0;width:48px;height:48px;gap:0;flex:0 0 auto;background:transparent}
#root.sidebar-collapsed .sidebar .pl-item:hover{background:transparent}
#root.sidebar-collapsed .sidebar .pl-cover{width:48px;height:48px;flex:0 0 auto;border-radius:8px;overflow:hidden;position:relative}
#root.sidebar-collapsed .sidebar .pl-cover img{border-radius:8px}

#root.sidebar-collapsed .sidebar .pl-cover-round,
#root.sidebar-collapsed .sidebar .pl-cover-round img{border-radius:50%}

#root.sidebar-collapsed .sidebar .playlist-list{scrollbar-width:none}
#root.sidebar-collapsed .sidebar .playlist-list::-webkit-scrollbar{width:0;height:0;display:none}
#root.sidebar-collapsed .sidebar .pl-item.playing .pl-cover{box-shadow:0 0 0 2px var(--accent),0 0 12px #1ed76055}
#root.sidebar-collapsed .sidebar .nav-item.active::before{left:-4px}

#root.sidebar-collapsed .sidebar .primary-nav,
#root.sidebar-collapsed .sidebar .lib-actions,
#root.sidebar-collapsed .sidebar .playlist-list{background:transparent;border-radius:0}

#root.sidebar-collapsed .sidebar{gap:24px}

#root.sidebar-collapsed .sidebar .primary-nav{position:relative}
#root.sidebar-collapsed .sidebar .lib-actions{
  position:relative;border-top:none;padding-top:6px;margin:0}
#root.sidebar-collapsed .sidebar .playlist-list{padding-top:6px}
#root.sidebar-collapsed .sidebar .primary-nav::before,
#root.sidebar-collapsed .sidebar .lib-actions::before,
#root.sidebar-collapsed .sidebar .lib-actions::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);
  width:28px;height:2px;border-radius:2px;background:#ffffff22;pointer-events:none}
#root.sidebar-collapsed .sidebar .primary-nav::before{top:-12px}
#root.sidebar-collapsed .sidebar .lib-actions::before{top:-12px}
#root.sidebar-collapsed .sidebar .lib-actions::after{bottom:-12px}
.sidebar{grid-area:sidebar;background:#000;border-right:1px solid #ffffff08;
  display:flex;flex-direction:column;min-height:0;padding:16px 8px 8px;gap:8px;
  transition:width .25s ease}
.brand{display:flex;align-items:center;gap:0;padding:8px 12px 14px;font-weight:700;font-size:18px;letter-spacing:.3px;position:relative}
.brand img{height:36px;width:36px;object-fit:contain;transform:translateY(-4px);filter:drop-shadow(0 0 12px #1ed76055)}
.collapse-btn{margin-left:auto;width:28px;height:28px;border-radius:50%;
  background:#1f1f1f;color:#fff;display:inline-flex;align-items:center;justify-content:center;
  opacity:.6;transition:opacity .15s,background .15s;
  
  transform:translateY(-4px)}
.collapse-btn:hover{opacity:1;background:#2a2a2a}
.collapse-btn svg{width:14px;height:14px}
.main{grid-area:main;min-width:0;min-height:0;display:flex;flex-direction:column;
  background:var(--bg-1);border-radius:8px 0 0 0;overflow:hidden}
.player{grid-area:player;background:#0a0a0a;border-top:1px solid #ffffff10;
  display:grid;grid-template-columns:1fr minmax(420px,720px) 1fr;align-items:center;padding:0 16px;gap:16px}

.brand{display:flex;align-items:center;gap:0;padding:8px 12px 14px;font-weight:700;font-size:18px;letter-spacing:.3px}
.brand img{height:36px;width:36px;object-fit:contain;transform:translateY(-4px);filter:drop-shadow(0 0 12px #1ed76055)}
.primary-nav,.lib-actions,.playlist-list{background:var(--bg-2);border-radius:10px;padding:8px;margin:0}
.primary-nav{padding:6px}
.nav-item,.lib-actions a,.lib-actions button{
  display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:6px;
  color:var(--text-muted);font-weight:600;font-size:14px;width:100%;
  transition:color .15s ease,background .15s ease;
}
.lib-actions a span,.lib-actions button span,.nav-item span{white-space:nowrap}
.nav-item:hover,.lib-actions button:hover{color:#fff;background:#ffffff08}
.nav-item.active{color:#fff;background:#ffffff14;position:relative}
.nav-item.active::before{content:"";position:absolute;left:-8px;top:8px;bottom:8px;width:4px;
  background:var(--accent);border-radius:2px}
.nav-item i{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}
.lib-actions{display:flex;flex-direction:column;gap:2px;padding:6px}
.ghost-btn{justify-content:flex-start}
.fav-link{position:relative;background:transparent;color:var(--text-muted) !important;
  transition:background .18s,color .15s,filter .15s,box-shadow .2s}

.fav-link:hover,
.fav-link.active{background:linear-gradient(135deg,#7000ff 0%,#ff007a 100%);
  color:#fff !important}

.fav-link.playing{color:#1ed760 !important}
.fav-link i{transition:filter .15s,color .2s;
  width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.fav-link i svg{display:block}
.fav-link.playing i{color:#1ed760;filter:drop-shadow(0 0 6px #1ed76099);
  animation:favHeartBeat 1.1s ease-in-out infinite}
.fav-link.playing.paused i{animation:none}

.fav-link.playing:hover,
.fav-link.playing.active{color:#fff !important}
.fav-link.playing:hover i,
.fav-link.playing.active i{color:#fff;filter:drop-shadow(0 0 6px #ffffff66)}
.fav-link.playing.paused:hover i,
.fav-link.playing.paused.active i{animation:none}
@keyframes favHeartBeat{
  0%,100%{transform:scale(1)}
  18%{transform:scale(1.22)}
  32%{transform:scale(1)}
  46%{transform:scale(1.18)}
  60%{transform:scale(1)}
}

.fav-link .fav-eq{display:none;margin-left:auto;align-items:flex-end;gap:2px;height:14px}
.fav-link.playing .fav-eq{display:inline-flex}
.fav-link.playing.paused .fav-eq{display:none}
.fav-link .fav-eq span{display:inline-block;width:3px;background:#1ed760;border-radius:2px;
  animation:qeq 1s ease-in-out infinite}
.fav-link .fav-eq span:nth-child(1){height:60%;animation-delay:-.2s}
.fav-link .fav-eq span:nth-child(2){height:90%;animation-delay:-.5s}
.fav-link .fav-eq span:nth-child(3){height:50%;animation-delay:-.8s}

.fav-link.playing:hover .fav-eq span,
.fav-link.playing.active .fav-eq span{background:#fff}
.playlist-list{flex:1;min-height:0;overflow-y:auto;padding:6px}
.playlist-list .pl-item{
  display:flex;align-items:center;gap:10px;padding:8px;border-radius:6px;cursor:pointer;
  color:var(--text-muted);font-size:14px;transition:background .15s ease,color .15s ease;
}
.playlist-list .pl-item:hover{background:#ffffff08;color:#fff}

.playlist-list .pl-item.active:not(.playing){background:#ffffff14;color:#fff}
.playlist-list .pl-item.active:not(.playing):hover{background:#ffffff1c}
.pl-item .pl-cover{width:46px;height:46px;border-radius:4px;background:#222;flex-shrink:0;
  overflow:hidden;position:relative;
  display:flex;align-items:center;justify-content:center;color:#666;font-size:18px}
.pl-item .pl-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .15s ease,filter .15s ease}

.pl-item:hover .pl-cover img{opacity:.35;filter:brightness(.55)}
.pl-item .pl-play-fab{
  position:absolute;left:50%;top:50%;transform:translate3d(-50%,-50%,0) scale(.85);
  width:34px;height:34px;border:0;background:transparent;padding:0;cursor:pointer;
  color:#fff;display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .12s ease,transform .12s ease;z-index:2;
  filter:drop-shadow(0 1px 3px #000c);
  will-change:transform,opacity;backface-visibility:hidden;transform-origin:center center;
}
.pl-item .pl-play-fab svg{width:22px;height:22px;fill:#fff;transform:translateZ(0);backface-visibility:hidden}
.pl-item:hover .pl-play-fab{opacity:1;transform:translate3d(-50%,-50%,0) scale(1)}
.pl-item .pl-play-fab:hover{transform:translate3d(-50%,-50%,0) scale(1.1)}
.pl-item.pl-item-ghost .pl-play-fab,
body.sb-collapsed .pl-item .pl-play-fab,
#root.sidebar-collapsed .pl-item .pl-play-fab{display:none}
.pl-item .pl-meta{min-width:0}
.pl-item .pl-meta .t{color:#fff;font-weight:600;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:160px}
.pl-item .pl-meta .s{font-size:12px;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}

.playlist-list .pl-item.pl-item-ghost{cursor:default;opacity:.42;pointer-events:none}
.playlist-list .pl-item.pl-item-ghost .pl-cover{background:#1a1a1a}
.playlist-list .pl-item.pl-item-ghost:hover{background:transparent;color:var(--text-muted)}

.topbar{
  height:var(--topbar-h);display:grid;
  grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:0 24px;
  background:linear-gradient(180deg,#101010 0%,#0a0a0a 100%);position:sticky;top:0;z-index:5;
}

.topbar-brand{display:none;align-items:center;gap:0;color:#fff;font-weight:800;
  font-size:18px;letter-spacing:.3px}
.topbar-brand img{width:36px;height:36px;object-fit:contain;transform:translateY(-4px);
  filter:drop-shadow(0 0 10px #1ed76055)}
.nav-arrows{display:flex;gap:8px}
.round-btn{width:34px;height:34px;border-radius:50%;background:#000;color:#fff;
  display:inline-flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .15s}
.round-btn i{display:inline-flex;align-items:center;justify-content:center;line-height:0}
.round-btn i svg{display:block}
.round-btn:hover{opacity:1;background:#1a1a1a}
.searchbar{position:relative;max-width:600px;width:100%;justify-self:center;margin:auto}
.searchbar i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#7a7a7a}
.searchbar input{width:100%;padding:11px 14px 11px 42px;border-radius:999px;
  background:#1f1f1f;border:1px solid transparent;color:#fff;outline:0;font-size:15px;
  transition:background .15s,border-color .15s}
.searchbar input:focus{background:#2a2a2a;border-color:#ffffff35}
.topbar-right{display:flex;align-items:center;gap:10px;justify-self:end}

.mobile-search{display:none}
.pill-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:999px;
  background:#1ed760;color:#000;font-weight:700;font-size:13px;transition:transform .1s ease,filter .15s;
  height:33px}

.topbar-right .pill-btn{width:100px}
.pill-btn > i{display:inline-flex;align-items:center;justify-content:center}
.pill-btn > i svg{display:block;width:16px;height:16px}
.pill-btn:hover{filter:brightness(1.05);transform:scale(1.03)}
.profile{position:relative;width:36px;height:36px;border-radius:50%;overflow:hidden;
  background:#1f1f1f;border:1px solid #ffffff15;display:inline-flex;align-items:center;justify-content:center}
.profile img{width:100%;height:100%;object-fit:cover}
.profile-menu{position:absolute;top:54px;right:18px;width:260px;background:#1a1a1a;
  border:1px solid #ffffff10;border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:2px;z-index:50;
  box-shadow:0 18px 40px #000c}
.profile-menu button{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;
  color:var(--text-muted);font-weight:600;font-size:14px;text-align:left}
.profile-menu button:hover{background:#ffffff08;color:#fff}
.profile-head{display:flex;align-items:center;gap:12px;padding:10px;border-bottom:1px solid #ffffff08;margin-bottom:6px}
.profile-head img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#222}
.profile-head .muted{color:var(--text-dim)}
.small{font-size:12px}

.ai-btn{position:relative;width:38px;height:38px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;color:#cbd5e1;cursor:pointer;
  border:0;padding:0;
  margin:0 4px 0 2px}
.ai-btn-glyph{width:30px;height:30px;display:block;
  filter:drop-shadow(0 0 6px #22d3ee55);
  transition:filter .2s ease;
  
  animation:aiBtnBreathe 3.6s ease-in-out infinite;
  will-change:filter}
.ai-btn:hover .ai-btn-glyph{filter:drop-shadow(0 0 12px #3b82f6cc)}

.ai-btn.is-open .ai-btn-glyph{filter:drop-shadow(0 0 12px #a855f7cc);
  animation:none;transform:none}

.ai-btn:active .ai-btn-glyph{
  animation:none;
  transform:scale(.88);
  transition:transform .08s ease;
  filter:drop-shadow(0 0 14px #a855f7dd)
}

@keyframes aiBtnBreathe{
  
  0%, 100% { transform:scale(1);    filter:drop-shadow(0 0 6px #22d3ee55) }
  50%      { transform:scale(1.05); filter:drop-shadow(0 0 11px #a855f788) }
}

@media (prefers-reduced-motion:reduce){
  .ai-btn-glyph{animation:none !important}
}

.ai-panel{position:fixed;top:64px;right:18px;width:420px;max-width:calc(100vw - 24px);
  max-height:min(560px,calc(100vh - 96px));
  background:rgba(18,18,20,.96);backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border:1px solid #ffffff14;border-radius:18px;padding:0;z-index:120;
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 24px 60px #000c, 0 0 0 1px #ffffff08 inset;
  transform-origin:top right;animation:aiPanelIn .18s ease-out}
@keyframes aiPanelIn{
  from{opacity:0;transform:scale(.96) translateY(-6px)}
  to  {opacity:1;transform:scale(1) translateY(0)}
}

.ai-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,
    #1ed760,#38bdf8,#a855f7,#ec4899,#f59e0b,#1ed760,#38bdf8,#a855f7,#1ed760);
  background-size:300% 100%;animation:aiBarShift 14s linear infinite;
  pointer-events:none}
@keyframes aiBarShift{
  from{background-position:0% 0}
  to  {background-position:300% 0}
}

.ai-head{display:flex;align-items:center;gap:10px;padding:14px 14px 8px 16px}
.ai-head-titles{display:flex;flex-direction:column;gap:1px;margin-right:auto;min-width:0}
.ai-head-title{font-weight:800;letter-spacing:.2px;font-size:14px;color:#fff}
.ai-head-sub{font-size:11px;color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.6px}

.ai-voice-toggle{background:transparent;border:0;color:#bbb;
  width:30px;height:30px;border-radius:50%;display:inline-flex;
  align-items:center;justify-content:center;cursor:pointer;
  transition:background .15s,color .15s}
.ai-voice-toggle:hover{background:#ffffff0d;color:#fff}
.ai-voice-toggle.is-muted{color:#ff7a90}
.ai-head .ai-close{background:transparent;border:0;color:#9aa;
  width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;
  justify-content:center;cursor:pointer}
.ai-head .ai-close:hover{background:#ffffff0d;color:#fff}

.ai-body{padding:6px 14px 8px;overflow-y:auto;flex:1;min-height:0;
  scrollbar-width:thin;scrollbar-color:#ffffff20 transparent}
.ai-body::-webkit-scrollbar{width:6px}
.ai-body::-webkit-scrollbar-thumb{background:#ffffff20;border-radius:3px}

.ai-suggestions{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 8px}
.ai-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;
  background:#ffffff0a;border:1px solid #ffffff14;color:#e7e7e7;font-size:12.5px;
  font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}
.ai-chip:hover{background:#ffffff14;border-color:#ffffff28}
.ai-chip:active{transform:scale(.97)}

.ai-msg{margin:6px 0;display:flex;animation:aiMsgIn .18s ease-out}
.ai-msg.user{justify-content:flex-end}
.ai-msg.bot{justify-content:flex-start}
.ai-msg .bubble{max-width:85%;padding:10px 12px 7px;border-radius:14px;font-size:13.5px;line-height:1.4}
.ai-msg.user .bubble{background:linear-gradient(135deg,#1ed76022,#38bdf822);
  border:1px solid #1ed76040;color:#fff;border-bottom-right-radius:4px}
.ai-msg.bot  .bubble{background:#ffffff0a;border:1px solid #ffffff12;color:#eee;
  border-bottom-left-radius:4px}
.ai-msg.bot.error .bubble{border-color:#ff4d4d40;color:#ffb3b3}
.ai-msg .bubble small{display:block;margin-top:4px;color:var(--text-dim);font-size:11px}
@keyframes aiMsgIn{
  from{opacity:0;transform:translateY(4px)}
  to  {opacity:1;transform:translateY(0)}
}

.ai-thinking{display:inline-flex;gap:4px;align-items:center;padding:10px 12px 7px;border-radius:14px;
  background:#ffffff0a;border:1px solid #ffffff12;border-bottom-left-radius:4px}
.ai-thinking span{width:6px;height:6px;border-radius:50%;background:#aaa;
  animation:aiDot 1.1s ease-in-out infinite}
.ai-thinking span:nth-child(2){animation-delay:.15s}
.ai-thinking span:nth-child(3){animation-delay:.3s}
@keyframes aiDot{
  0%,80%,100%{opacity:.35;transform:translateY(0)}
  40%{opacity:1;transform:translateY(-3px)}
}

.ai-foot{padding:8px 12px 12px;border-top:1px solid #ffffff0a;
  display:flex;align-items:center;gap:8px;background:#0c0c0e}
.ai-input{flex:1;background:#1a1a1d;border:1px solid #ffffff12;color:#fff;
  border-radius:999px;padding:10px 14px;outline:0;font-size:14px;
  transition:border-color .15s,background .15s}
.ai-input:focus{background:#202024;border-color:#a855f755}

.ai-btn-mic{width:38px;height:38px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  border:0;cursor:pointer;color:#fff;background:#ffffff0d;
  transition:background .15s,transform .1s}
.ai-btn-mic:hover{background:#ffffff18}
.ai-btn-send{width:38px;height:38px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  border:0;cursor:pointer;color:#0b1f12;
  background:linear-gradient(135deg,#1ed760,#38bdf8);
  box-shadow:0 6px 18px #1ed76033;
  
  transform:translateZ(0);
  will-change:filter;
  transition:filter .15s ease}

.ai-btn-send:hover{filter:brightness(.7)}
.ai-btn-send:active{filter:brightness(.6)}
.ai-btn-send:disabled{filter:grayscale(.5);opacity:.5;cursor:not-allowed}

.ai-btn-mic.is-listening{
  background:linear-gradient(135deg,#ff3b6b,#ec4899);color:#fff;
  animation:aiMicPulse 1.4s ease-in-out infinite}
@keyframes aiMicPulse{
  0%,100%{box-shadow:0 0 0 0 #ec489966}
  50%    {box-shadow:0 0 0 10px #ec489900}
}

.ai-sheet{position:fixed;left:0;right:0;z-index:120;
  background:#0e0e10;
  border-top:1px solid #ffffff14;border-radius:22px 22px 0 0;
  padding:14px 14px calc(14px + env(safe-area-inset-bottom));
  box-shadow:0 -8px 24px #000a;
  
  animation:aiSheetIn .22s cubic-bezier(.2,.8,.2,1)}
@keyframes aiSheetIn{
  from{transform:translateY(110%)}
  to  {transform:translateY(0)}
}
.ai-sheet::before{content:"";position:absolute;left:50%;top:6px;transform:translateX(-50%);
  width:36px;height:4px;border-radius:2px;background:#ffffff22}

.ai-sheet .ai-sheet-head{display:flex;align-items:center;justify-content:space-between;
  padding:14px 4px 0;gap:8px}
.ai-sheet .ai-sheet-title{font-weight:800;font-size:14px;color:#fff;letter-spacing:.2px}
.ai-sheet .ai-sheet-status{font-size:13px;color:#ddd;text-align:center;
  min-height:36px;padding:12px 12px 6px;font-weight:600;line-height:1.35}
.ai-sheet .ai-sheet-status .muted{color:var(--text-dim);font-weight:500}
.ai-sheet .ai-sheet-transcript{font-size:18px;color:#fff;text-align:center;
  font-weight:700;letter-spacing:.2px;min-height:44px;padding:4px 8px 12px;
  line-height:1.25}
.ai-sheet .ai-sheet-transcript .placeholder{color:#888;font-weight:500;font-size:15px}
.ai-sheet .ai-sheet-actions{display:flex;align-items:center;justify-content:center;
  gap:18px;padding:6px 0 4px}
.ai-sheet .ai-mic-big{width:74px;height:74px;border-radius:50%;border:0;cursor:pointer;
  color:#fff;background:linear-gradient(135deg,#a855f7,#ec4899);
  display:inline-flex;align-items:center;justify-content:center;
  
  transition:transform .12s}
.ai-sheet .ai-mic-big i svg{width:30px;height:30px}
.ai-sheet .ai-mic-big:active{transform:scale(.96)}
.ai-sheet .ai-mic-big.is-listening{
  background:linear-gradient(135deg,#ff3b6b,#ec4899)}
.ai-sheet .ai-mic-cancel{background:transparent;border:0;color:#aaa;font-weight:600;
  font-size:14px;padding:10px 14px;cursor:pointer}
.ai-sheet .ai-mic-cancel:hover{color:#fff}
.ai-sheet .ai-sheet-suggestions{display:flex;flex-wrap:wrap;justify-content:center;
  gap:6px;padding:10px 0 4px}

.ai-backdrop{position:fixed;inset:0;background:#000a;z-index:118;
  animation:aiFadeIn .18s ease-out}
@keyframes aiFadeIn{from{opacity:0}to{opacity:1}}

@media (max-width:720px){
  
  .ai-btn{width:38px;height:38px;margin:0 2px}
  .ai-btn i svg{width:20px;height:20px}
  
  .ai-panel{display:none}
}

@supports (padding:max(0px)){
  .ai-sheet{padding-bottom:max(14px,env(safe-area-inset-bottom))}
}

.view{flex:1;min-height:0;overflow-y:auto;padding:24px 32px 60px;background:var(--bg-1)}
.view .gradient-hero{
  margin:-24px -32px 24px;padding:80px 32px 24px;
  background:var(--gradient-1);
  border-radius:0 0 0 0;
  position:relative;
}

.page-back{
  display:none;
  position:absolute;top:14px;left:14px;z-index:10;
  width:36px;height:36px;border-radius:50%;
  background:#0009;color:#fff;border:0;cursor:pointer;
  padding:0;line-height:0;
  align-items:center;justify-content:center;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:background .15s ease, transform .1s ease;
}
.page-back:hover{background:#000c}
.page-back:active{transform:scale(.94)}

.seeall-page{position:relative}
.page-back svg{width:20px;height:20px;display:block;margin:0 auto;
  
  transform:translateX(-1px)}
.view h1{font-size:clamp(28px,3.5vw,52px);margin:0 0 6px;letter-spacing:-0.02em;font-weight:800;padding-bottom:1.5rem}
@media(max-width:880px){.view h1{padding-bottom:0}}
.view h2{font-size:24px;margin:30px 0 14px;font-weight:700;letter-spacing:-0.01em}

.view .gradient-hero + section > h2:first-child{margin-top:10px}
.view h3{font-size:16px;margin:0;font-weight:600}
.muted{color:var(--text-muted)}
.dim{color:var(--text-dim)}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px}
.card{
  background:#181818;border-radius:8px;padding:14px;cursor:pointer;
  transition:background .18s ease,transform .15s ease;position:relative;
}
.card .cover{position:relative;aspect-ratio:1/1;border-radius:6px;overflow:hidden;
  background:#262626;margin-bottom:24px;box-shadow:0 8px 24px #0009}
.card .cover.round{border-radius:50%}

.card.card-ph{
  background:rgba(255,255,255,.025);
  cursor:default;
  outline:1px dashed rgba(255,255,255,.07);outline-offset:-1px;
}
.card.card-ph:hover{background:rgba(255,255,255,.035)}
.card .cover.cover-ph{
  background:rgba(255,255,255,.04);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.18);
  box-shadow:none;
}
.card.card-ph .title{color:rgba(255,255,255,.45)}
.card.card-ph .subtitle{color:rgba(255,255,255,.3)}
.cards-empty-hint{
  font-size:13px;color:var(--text-muted);
  margin:-4px 0 14px;letter-spacing:.01em;
}

.settings-page{max-width:880px;margin:0 auto}
.settings-page h1{margin-bottom:24px}
.settings-card{
  background:#181818;border-radius:12px;padding:22px 26px;margin-bottom:16px;
  border:1px solid #ffffff08;transition:background .15s ease,border-color .15s ease;
}
.settings-card:hover{background:#1c1c1c;border-color:#ffffff12}
.settings-card .card-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.settings-card .card-head i{display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;background:#ffffff0c;color:var(--accent)}
.settings-card .card-head h2{margin:0;font-size:18px;font-weight:700;letter-spacing:-0.01em}
.settings-card .desc{color:var(--text-muted);font-size:13.5px;margin:0 0 14px;line-height:1.45}
.settings-card .row{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:10px 0;border-top:1px solid #ffffff08;font-size:14px}
.settings-card .row:first-of-type{border-top:0}
.settings-card .row .k{color:var(--text-muted)}
.settings-card .row .v{color:#fff;font-weight:500;font-variant-numeric:tabular-nums;text-align:right}
.settings-card .row .v code{background:#0008;padding:2px 8px;border-radius:5px;font-size:12.5px;color:#ddd}
.settings-card .actions{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}

.xfade-row{display:flex;align-items:center;gap:16px;margin-top:6px}
.xfade-slider{-webkit-appearance:none;appearance:none;flex:1;max-width:340px;height:4px;
  background:#535353;border-radius:2px;outline:none;cursor:pointer}
.xfade-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;
  background:#fff;cursor:pointer;border:0;transition:background .15s,box-shadow .15s,transform .1s}
.xfade-slider:hover::-webkit-slider-thumb{background:var(--accent);box-shadow:0 0 0 6px #1ed76022;transform:scale(1.05)}
.xfade-slider::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:#fff;cursor:pointer}
.xfade-slider:hover::-moz-range-thumb{background:var(--accent)}
.xfade-value{color:#fff;font-weight:600;font-variant-numeric:tabular-nums;min-width:52px;text-align:right;font-size:14px}
.xfade-slider:disabled{opacity:.35;cursor:not-allowed}
.xfade-slider:disabled::-webkit-slider-thumb{background:#888;box-shadow:none;transform:none}
.xfade-row.is-off .xfade-value{color:var(--text-dim)}

.eq-card .desc{color:var(--text-muted);font-size:13px;margin:0 0 6px;font-style:italic}

.eq-card.is-disabled{opacity:.55;pointer-events:none;filter:grayscale(.4)}
.eq-card.is-disabled #eqHint{color:var(--text-muted);font-style:italic;display:block;margin-top:4px;line-height:1.35}
.eq-body{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.eq-mode-row{display:flex;gap:8px}
.pill-btn{flex:0 0 auto;padding:7px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);color:#fff;font-size:13px;font-weight:600;cursor:pointer;
  transition:background .18s,border-color .18s}
.pill-btn:hover{background:rgba(255,255,255,.10)}
.pill-btn.is-active{background:linear-gradient(135deg,#1ed760,#3ce67e);color:#000;border-color:transparent}
.eq-presets{display:flex;flex-wrap:wrap;gap:8px}
.eq-preset-pill{padding:7px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);color:#fff;font-size:12.5px;font-weight:600;cursor:pointer;
  transition:background .18s,border-color .18s,color .18s}
.eq-preset-pill:hover{background:rgba(255,255,255,.10)}
.eq-preset-pill.is-active{background:rgba(30,215,96,.18);border-color:#1ed760;color:#1ed760}
.eq-sliders{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;padding:8px 4px;
  background:rgba(255,255,255,.03);border-radius:10px}
.eq-slider-col{display:flex;flex-direction:column;align-items:center;gap:6px}
.eq-val{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;min-height:14px}
.eq-freq{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}

.eq-slider-wrap{
  width:18px;height:120px;
  display:flex;align-items:center;justify-content:center;
  touch-action:none;
}
.eq-slider{
  -webkit-appearance:none;appearance:none;
  width:120px;height:18px;
  background:transparent;cursor:pointer;
  transform:rotate(-90deg);transform-origin:center;
  margin:0;padding:0;
  
  touch-action:none;
}
.eq-slider:focus{outline:none}
.eq-slider::-webkit-slider-runnable-track{
  height:4px;background:rgba(255,255,255,.10);border-radius:4px;border:none}
.eq-slider::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:14px;height:14px;border-radius:50%;background:#1ed760;border:none;
  margin-top:-5px; 
  box-shadow:0 0 6px rgba(30,215,96,.4);cursor:pointer;
}
.eq-slider::-moz-range-track{
  height:4px;background:rgba(255,255,255,.10);border-radius:4px;border:none}
.eq-slider::-moz-range-thumb{
  width:14px;height:14px;border-radius:50%;background:#1ed760;border:none;
  box-shadow:0 0 6px rgba(30,215,96,.4);cursor:pointer;
}
@media (max-width:720px){
  .eq-sliders{grid-template-columns:repeat(10,1fr);gap:2px;padding:6px 2px}
  .eq-slider-wrap{height:100px;width:14px}
  .eq-slider{width:100px;height:14px}
  .eq-slider::-webkit-slider-thumb{width:12px;height:12px;margin-top:-4px}
  .eq-slider::-moz-range-thumb{width:12px;height:12px}
  .eq-freq{font-size:9px}
  .eq-val{font-size:10px}
  
  .eq-mode-row{justify-content:flex-start}
  .eq-mode-row .pill-btn{flex:1;text-align:center}
  
  .eq-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
  .eq-preset-pill{padding:8px 6px;font-size:12px;text-align:center}
  
  .eq-sliders{justify-items:center;padding:10px 6px}
  .eq-slider-col{width:100%;align-items:center}
}

.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin:6px 0 14px;padding:10px 0;border-bottom:1px solid #ffffff08}
.toggle-row .label{color:#fff;font-weight:500;font-size:14.5px}
.toggle-row .label small{display:block;color:var(--text-muted);font-weight:400;font-size:12.5px;margin-top:2px}
.switch{position:relative;display:inline-block;width:42px;height:24px;flex:0 0 auto}
.switch input{opacity:0;width:0;height:0}
.switch .slider{position:absolute;inset:0;background:#535353;border-radius:999px;cursor:pointer;
  transition:background .18s ease}
.switch .slider::before{content:"";position:absolute;height:18px;width:18px;left:3px;top:3px;
  background:#fff;border-radius:50%;transition:transform .18s ease}
.switch input:checked + .slider{background:var(--accent)}
.switch input:checked + .slider::before{transform:translateX(18px)}
.switch input:focus-visible + .slider{box-shadow:0 0 0 3px #1ed76044}

.pill-btn.ghost{background:transparent;color:var(--text-muted);border:1px solid #ffffff20;font-weight:600}
.pill-btn.ghost:hover{color:#fff;border-color:#ffffff45;filter:none;transform:none;background:#ffffff05}
.pill-btn.danger{background:transparent;color:#ff6b6b;border:1px solid #ff6b6b55;font-weight:600}
.pill-btn.danger:hover{background:#ff6b6b18;border-color:#ff6b6b;color:#ff8585;filter:none;transform:none}
.card .cover img{width:100%;height:100%;object-fit:cover}
.card .title{font-weight:600;color:#fff;font-size:15px;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  word-break:break-word}
.card .subtitle{color:var(--text-muted);font-size:13px;margin-top:4px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .play-fab{
  position:absolute;right:8px;bottom:8px;width:48px;height:48px;border-radius:50%;
  background:var(--accent);color:#000;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,filter .15s;
  box-shadow:0 8px 16px #0009;z-index:2;
}
.card .play-fab svg{width:22px;height:22px}

@media (hover: hover) {
  .card:hover{background:#222}
  .card:hover .play-fab{opacity:1;transform:translateY(0)}
  .card .play-fab:hover{transform:scale(1.06);filter:brightness(1.05)}
}

.hero{display:flex;gap:24px;align-items:stretch;padding:0 0 18px}
.hero-cover{width:232px;height:232px;flex-shrink:0;border-radius:6px;
  background:#262626 center/cover;box-shadow:0 18px 50px #000c}
.hero-meta{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:6px 0;flex:1}
.hero-meta .kind{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff}
.hero-meta h1{font-size:clamp(34px,5vw,72px);font-weight:900;margin:0;line-height:1}

.hero-meta .sub:last-child{margin-top:6px}
.hero-meta .sub{color:var(--text-muted);font-size:14px}

.action-row{display:flex;align-items:center;gap:16px;padding:18px 0}
.action-row .fab{
  width:56px;height:56px;border-radius:50%;background:var(--accent);color:#000;
  display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 18px #0008;
  transition:transform .15s ease,filter .15s;
  will-change:transform;backface-visibility:hidden;transform-origin:center center;
  transform:translateZ(0) scale(1)
}
.action-row .fab svg{width:26px;height:26px}
.action-row .fab:hover{transform:translateZ(0) scale(1.05);filter:brightness(1.05)}
.action-row .icon-btn{width:40px;height:40px;color:var(--text-muted)}
.action-row .icon-btn svg{width:24px;height:24px}
.action-row .icon-btn:hover{color:#fff}

.action-row .icon-btn.active{color:var(--accent)}
.action-row .icon-btn.active:hover{color:var(--accent);filter:brightness(1.1)}

.action-row #plFollow.is-active{color:var(--accent)}
.action-row #artistFollow.is-active{color:var(--accent)}
.action-row #albumFollow.is-active{color:var(--accent)}
.action-row #podFollow.is-active{color:var(--accent)}

.tracks{display:flex;flex-direction:column;gap:2px;margin-top:10px}
.tracks .head,.tracks .row{
  display:grid;grid-template-columns:36px 4fr 3fr 1fr 64px;gap:14px;align-items:center;
  padding:8px 14px;border-radius:6px;color:var(--text-muted);font-size:14px;
}
.tracks.with-added .head,.tracks.with-added .row{
  grid-template-columns:36px 4fr 3fr 1.2fr 1fr 64px;
}
.tracks .row .t-added{color:var(--text-dim);font-size:13px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}

.tracks .tracks-body.v-tracks{display:block;gap:0;margin:0;padding:0}
.tracks .tracks-body.v-tracks .row{height:56px;padding-top:8px;padding-bottom:8px;box-sizing:border-box}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px}

.home-section{max-width:1800px}

.sidebar .pl-cover-round,.sidebar .pl-cover-round img{border-radius:50%}
.sec-head h2{margin:0}
.sec-head h2 a{color:inherit;text-decoration:none}
.sec-head h2 a:hover{text-decoration:underline}
.sec-head .sec-sub{color:var(--text-muted);font-size:13px;margin-top:2px;font-weight:400}
.sec-head .more-link{color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;font-weight:600}
.sec-head .more-link:hover{color:#fff}

.home-section{margin-top:34px}
.home-section:first-of-type{margin-top:18px}

#searchResults > section{margin-top:34px;max-width:1500px}
#searchResults > section:first-child{margin-top:18px}

#recentSec, #genreSec, #histSec{max-width:1500px}
@media (max-width:720px){
  
  #searchResults > section:first-child{margin-top:34px}
}
@media(max-width:1100px){.tracks.with-added .head .h-added,.tracks.with-added .row .t-added{display:none}
  .tracks.with-added .head,.tracks.with-added .row{grid-template-columns:36px 4fr 3fr 1fr 64px}}
.tracks .head{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);
  border-bottom:1px solid #ffffff14;border-radius:0;padding-bottom:10px;margin-bottom:8px}

.tracks .head > div:first-child{width:24px;text-align:right;justify-self:start;padding:0}

.tracks .head > div:nth-child(2){padding-left:52px}

.tracks .row .t-album a{color:inherit;text-decoration:none;transition:color .15s}
.tracks .row .t-album a:hover{color:#fff;text-decoration:underline}

.tracks .head > div:nth-last-child(2),
.tracks .row .t-dur{text-align:center}
.tracks .row{cursor:pointer;transition:background .15s ease}
.tracks .row:hover{background:#ffffff10}
.tracks .row .num{color:var(--text-dim);text-align:right;width:24px;font-variant-numeric:tabular-nums}
.tracks .row:hover .num{color:#fff}
.tracks .row.playing{color:var(--accent)}
.tracks .row.playing .num{color:var(--accent)}

.tracks{position:relative}
.tracks .row.dragging{opacity:.4;background:#ffffff14}
.tracks .drop-line{position:absolute;left:0;right:0;height:2px;background:var(--accent);border-radius:2px;pointer-events:none;display:none;z-index:2;box-shadow:0 0 6px var(--accent)}
.tracks .row .t-main{display:flex;align-items:center;gap:12px;min-width:0}
.tracks .row .t-main img{width:40px;height:40px;border-radius:4px;object-fit:cover;background:#262626}
.tracks .row .t-text{min-width:0}
.tracks .row .t-text .t-title{color:#fff;font-weight:500;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.tracks .row .t-text .t-artist{color:var(--text-muted);font-size:12px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.tracks .row .t-text .t-artist a{color:inherit;text-decoration:none;transition:color .15s}
.tracks .row .t-text .t-artist a:hover{color:#fff;text-decoration:underline}
.tracks .row .t-album,.tracks .row .t-dur{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.tracks .row .t-fav{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.tracks .row .t-fav button{opacity:0;color:var(--text-muted);transition:opacity .15s,color .15s,transform .1s;background:transparent;border:0;padding:0;cursor:pointer}
.tracks .row:hover .t-fav button,.tracks .row .t-fav .fav-btn.on,.tracks.tracks-episodes .row.is-saved .ep-save-btn{opacity:1}
.tracks .row .t-fav button:hover{color:#fff;transform:scale(1.1)}
.tracks .row .t-fav .fav-btn.on{color:var(--accent)}

.tracks .row.playing{background:#ffffff08}
.tracks .row.playing .t-title{color:var(--accent)}
.tracks .row.playing .num{display:none}
.tracks .row.playing .num-eq{display:inline-flex}
.tracks .row .num-eq{display:none;width:24px;justify-content:flex-end}

.tracks .row.playing.paused .num{display:inline;color:var(--accent)}
.tracks .row.playing.paused .num-eq{display:none}

.eq{display:inline-flex;align-items:flex-end;gap:2px;height:14px;contain:layout paint}
.eq span{display:block;width:3px;height:14px;background:var(--accent);border-radius:1px;
  animation:eq 1s ease-in-out infinite;transform-origin:bottom;will-change:transform}
.eq span:nth-child(1){animation-delay:-.6s}
.eq span:nth-child(2){animation-delay:-.3s;background:var(--accent)}
.eq span:nth-child(3){animation-delay:-.9s}
.eq.paused span{animation-play-state:paused;transform:scaleY(.28)}
@keyframes eq{
  0%,100%{transform:scaleY(1)}
  20%{transform:scaleY(.28)}
  50%{transform:scaleY(.72)}
  80%{transform:scaleY(.42)}
}
.eq-mini{display:inline-flex;align-items:flex-end;gap:2px;height:12px;vertical-align:middle;contain:layout paint}
.eq-mini span{display:block;width:2px;height:12px;background:var(--accent);border-radius:1px;
  animation:eq 1s ease-in-out infinite;transform-origin:bottom;will-change:transform}
.eq-mini span:nth-child(1){animation-delay:-.6s}
.eq-mini span:nth-child(2){animation-delay:-.3s}
.eq-mini span:nth-child(3){animation-delay:-.9s}

.card.playing{outline:1px solid var(--accent);outline-offset:-1px;background:#1a2a1a}
.card .now-badge{position:absolute;left:8px;top:8px;background:rgba(0,0,0,.7);
  border-radius:999px;padding:4px 10px 4px 8px;display:none;align-items:center;gap:6px;
  color:var(--accent);font-size:11px;font-weight:600;z-index:4}
.card.playing .now-badge{display:inline-flex}

.card.playing.paused .now-badge{display:none}

.discover-card .cover{overflow:hidden}
.discover-card .mix-rank{
  position:absolute;left:4px;bottom:-16px;
  font-family:'Inter',system-ui,sans-serif;
  font-size:104px;line-height:1;font-weight:900;
  color:transparent;-webkit-text-stroke:3px rgba(255,255,255,.95);
  text-shadow:0 4px 14px rgba(0,0,0,.55);
  pointer-events:none;user-select:none;z-index:2;
  letter-spacing:-.05em;
}
@media (max-width:720px){
  .discover-card .mix-rank{font-size:80px;left:4px;bottom:-12px;-webkit-text-stroke-width:2px}
}

.discover-card .mix-ribbon{
  position:absolute;top:10px;right:-34px;
  width:130px;height:24px;
  display:flex;align-items:center;justify-content:center;
  transform:rotate(35deg);transform-origin:center;
  background:linear-gradient(135deg,#1ed760 0%,#0e8a3c 100%);
  box-shadow:0 4px 10px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.18);
  pointer-events:none;user-select:none;z-index:3;
  overflow:hidden;
}
.discover-card .mix-ribbon::before{
  
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 60%);
  pointer-events:none;
}
.discover-card .mix-ribbon-label{
  font-family:'JetBrains Mono','SF Mono',Menlo,Consolas,monospace;
  font-size:10.5px;font-weight:700;letter-spacing:.14em;
  color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);
  position:relative;z-index:1;
}
.discover-card .mix-ribbon[data-rank="1"]{background:linear-gradient(135deg,#1ed760 0%,#0e8a3c 100%)}
.discover-card .mix-ribbon[data-rank="2"]{background:linear-gradient(135deg,#7c4dff 0%,#3b2a9e 100%)}
.discover-card .mix-ribbon[data-rank="3"]{background:linear-gradient(135deg,#ff4081 0%,#a01250 100%)}
.discover-card .mix-ribbon[data-rank="4"]{background:linear-gradient(135deg,#ffba00 0%,#c46e00 100%)}
.discover-card .mix-ribbon[data-rank="5"]{background:linear-gradient(135deg,#00bcd4 0%,#0a6f80 100%)}
@media (max-width:720px){
  .discover-card .mix-ribbon{width:110px;height:22px;right:-28px;top:8px}
  .discover-card .mix-ribbon-label{font-size:9.5px;letter-spacing:.12em}
}

.home-hero{
  margin-bottom:2px;padding-top:4px;
}
.home-hero .hero-title{
  margin:0;font-weight:300;
  font-size:clamp(28px,5vw,52px);
  line-height:1.05;letter-spacing:-.02em;color:#fff;
  display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .25em;
}
.home-hero .hero-comma{
  font-weight:300;color:#fff;margin-left:-0.18em;
}
.home-hero .hero-name{
  font-weight:800;
  background:linear-gradient(135deg,#1ed760 0%,#3ce67e 50%,#9aff8c 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;
  letter-spacing:-.025em;
}
.home-hero .hero-meta{
  
  min-width:0;display:flex;flex-direction:column;gap:8px;
  padding:8px 0 6px;
  margin:1px 0 0;color:var(--text-muted);
  font-size:13px;font-weight:500;letter-spacing:.02em;
}
.home-hero .hero-meta .hero-meta-when{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.home-hero .hero-meta .hero-meta-stat{
  color:var(--accent);font-weight:600;text-transform:none;
  display:inline-flex;align-items:center;gap:6px;
}
.home-hero .hero-meta .hero-meta-note{
  color:var(--accent);flex:0 0 auto;
  
  transform:translateY(0.5px);
}

.home-hero p.hero-meta .hero-meta-stat{
  display:inline-flex;align-items:center;gap:6px;
  margin-left:18px;
}

.home-hero .hero-meta-stat{
  color:var(--accent);font-weight:600;
  display:inline-flex;align-items:center;gap:6px;
  margin:0;padding:0;
}
.home-hero .hero-meta-stat .hero-meta-note{
  color:var(--accent);flex:0 0 auto;transform:translateY(0.5px);
}
.home-shortcuts{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:10px;margin-bottom:28px;
  
  max-width:1100px;
}
.shortcut-tile{
  display:flex;align-items:center;gap:12px;
  background:rgba(255,255,255,.06);
  border-radius:6px;overflow:hidden;
  text-decoration:none;color:#fff;
  height:60px;padding-right:14px;
  transition:background .18s ease;
  position:relative;
}
.shortcut-tile:hover{background:rgba(255,255,255,.12)}
.shortcut-tile .st-cover{
  width:60px;height:60px;flex:0 0 60px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:#222;
}

.shortcut-tile .st-cover img{
  width:100%!important;height:100%!important;
  object-fit:cover;display:block;
  max-width:none;max-height:none;
}
.shortcut-tile.tile-liked .st-cover{
  background:linear-gradient(135deg,#4502b3 0%,#bf3fff 100%);
}

.shortcut-tile.tile-mix .st-cover{position:relative;overflow:hidden}
.shortcut-tile.tile-mix .mix-ribbon{
  position:absolute;top:5px;right:-22px;
  width:80px;height:14px;
  display:flex;align-items:center;justify-content:center;
  transform:rotate(35deg);transform-origin:center;
  background:linear-gradient(135deg,#1ed760 0%,#0e8a3c 100%);
  box-shadow:0 2px 6px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.18);
  pointer-events:none;user-select:none;z-index:3;
}
.shortcut-tile.tile-mix .mix-ribbon-label{
  font-family:'JetBrains Mono','SF Mono',Menlo,Consolas,monospace;
  font-size:7.5px;font-weight:700;letter-spacing:.1em;
  color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.4);
}
.shortcut-tile.tile-mix .mix-ribbon[data-rank="1"]{background:linear-gradient(135deg,#1ed760 0%,#0e8a3c 100%)}
.shortcut-tile.tile-mix .mix-ribbon[data-rank="2"]{background:linear-gradient(135deg,#7c4dff 0%,#3b2a9e 100%)}
.shortcut-tile.tile-mix .mix-ribbon[data-rank="3"]{background:linear-gradient(135deg,#ff4081 0%,#a01250 100%)}
.shortcut-tile.tile-mix .mix-ribbon[data-rank="4"]{background:linear-gradient(135deg,#ffba00 0%,#c46e00 100%)}
.shortcut-tile.tile-mix .mix-ribbon[data-rank="5"]{background:linear-gradient(135deg,#00bcd4 0%,#0a6f80 100%)}

.shortcut-tile.shortcut-tile-ph{
  background:rgba(255,255,255,.035);
  cursor:default;
  outline:1px dashed rgba(255,255,255,.08);outline-offset:-1px;
}
.shortcut-tile.shortcut-tile-ph:hover{background:rgba(255,255,255,.05)}
.shortcut-tile .st-cover-ph{
  background:rgba(255,255,255,.04);
  color:rgba(255,255,255,.35);
}
.shortcut-tile .st-text{
  display:flex;flex-direction:column;justify-content:center;
  flex:1;min-width:0;
}
.shortcut-tile .st-text .st-title{
  font-size:13px;font-weight:600;color:rgba(255,255,255,.6);
  margin:0;
}
.shortcut-tile .st-text .st-sub{
  font-size:11px;font-weight:500;color:rgba(255,255,255,.35);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  margin-top:2px;
}
.shortcut-tile .st-title{
  font-size:14px;font-weight:700;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  flex:1;min-width:0;
}
@media (max-width:720px){
  .home-shortcuts{
    grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:22px;
    
    padding:0 16px!important;box-sizing:border-box;width:100%;
  }
  .shortcut-tile{height:54px;padding-right:10px;gap:10px}
  .shortcut-tile .st-cover{width:54px;height:54px;flex-basis:54px}
  .shortcut-tile .st-title{font-size:13px}
  .home-hero{padding:18px 16px 0;margin-bottom:18px;}
  
  .home-hero .hero-meta,
  .home-hero .hero-meta-stat{display:none}
}

@media (max-width:320px){
  .home-shortcuts{grid-template-columns:1fr}
}

.chart-flag-badge{
  position:absolute;top:8px;right:8px;
  width:30px;height:30px;border-radius:50%;
  background:rgba(15,15,15,.85);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.12);
  pointer-events:none;z-index:2;
}
.chart-flag-badge img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.chart-flag-badge.is-globe{background:rgba(15,15,15,.9)}
.chart-flag-badge.is-globe svg{
  width:62%;height:62%;color:rgba(255,255,255,.9);
}

.chart-card .cover::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
  border-radius:inherit;
}
.pl-item.playing .pl-cover{box-shadow:inset 0 0 0 2px var(--accent)}
.pl-item.playing .t{color:var(--accent)}

#root:not(.sidebar-collapsed) .sidebar .pl-item.playing .pl-cover,
#root:not(.sidebar-collapsed) .sidebar .pl-item.playing.paused .pl-cover{box-shadow:none}

.pl-item.playing{background:#1a2a1a}
.pl-item.playing:hover{background:#1d301d}
.pl-item .pl-meta{position:relative}

.pl-item .pl-meta{position:relative}

.pl-item .pl-badge{display:none;position:absolute;left:0;right:0;bottom:-4px;
  height:17px;align-items:center;gap:6px;white-space:nowrap;
  color:var(--accent);font-size:12px;font-weight:600;letter-spacing:.02em;line-height:1}
.pl-item .pl-badge > span:not(.eq-mini){white-space:nowrap;transform:translateY(.5px);display:inline-block}
.pl-item .pl-badge .eq-mini{height:11px;flex-shrink:0}
.pl-item.playing .pl-badge{display:inline-flex}
.pl-item.playing .s{visibility:hidden}
.pl-item.playing.paused .pl-badge{display:none}
.pl-item.playing.paused .s{visibility:visible}
.pl-item.playing.paused .t{color:var(--text)}
.pl-item.playing.paused .pl-cover{box-shadow:inset 0 0 0 2px #1ed76066}

.action-row .fab.is-playing svg path{d:path("M6 5h4v14H6zm8 0h4v14h-4z")}

.search-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}

.genre-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:14px}
.genre-card{position:relative;aspect-ratio:16/10;border-radius:8px;padding:14px;display:flex;align-items:flex-start;
  color:#fff;text-decoration:none;font-weight:700;font-size:18px;letter-spacing:-0.01em;overflow:hidden;
  box-shadow:0 4px 12px #0006;transition:transform .15s ease, box-shadow .15s ease}
.genre-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px #0008}
.genre-card .genre-name{position:relative;z-index:1;text-shadow:0 2px 4px #0004}

.genre-hero .genre-cover{box-shadow:0 8px 24px #0008;border-radius:10px;
  display:flex;align-items:center;justify-content:center;padding:18px;
  overflow:hidden;text-align:center}
.genre-hero .genre-cover-label{color:#fff;font-weight:800;
  font-size:clamp(20px,2.6vw,32px);letter-spacing:-0.01em;line-height:1.15;
  text-shadow:0 2px 6px #0006;white-space:normal;word-break:break-word}
.genre-hero .hero-meta h1{font-size:clamp(36px,7vw,72px);letter-spacing:-0.02em}

.genre-hero .hero-meta{padding-top:24px}

.genre-hero .hero-meta .sub:last-child{margin-top:48px}
@media(max-width:880px){
  .genre-hero .genre-cover{display:none}
  .genre-hero .hero-meta h1{font-size:clamp(32px,9vw,46px)}
  
  .playlist-hero .hero-cover{display:none}
}
@media(max-width:880px){
  
  .genre-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px;padding:0 14px 0 0}
  .genre-card{aspect-ratio:auto;min-height:0;height:72px;padding:10px 12px;font-size:14px;border-radius:6px}
  .genre-card::after{display:none}
}
@media(max-width:1100px){.search-grid{grid-template-columns:1fr}}
.search-section h2{margin-top:8px}

.skeleton{background:linear-gradient(90deg,#1e1e1e 0%,#2a2a2a 50%,#1e1e1e 100%);
  background-size:200% 100%;animation:skel 1.4s infinite}
@keyframes skel{from{background-position:200% 0}to{background-position:-200% 0}}
.sk-card{background:#181818;border-radius:8px;padding:14px}
.sk-card .sk-cover{aspect-ratio:1/1;border-radius:6px;margin-bottom:12px}
.sk-line{height:12px;border-radius:4px;margin:6px 0}
.sk-line.short{width:60%}
.sk-row{display:grid;grid-template-columns:36px 4fr 3fr 1fr;gap:14px;padding:10px 14px;align-items:center}
.sk-row .sk-thumb{width:40px;height:40px;border-radius:4px}
.sk-hero-cover{width:220px;height:220px;border-radius:8px;flex:0 0 auto}
@media(max-width:760px){.sk-hero-cover{width:160px;height:160px}}

#pageProgress{position:fixed;top:0;left:0;right:0;height:2px;z-index:1000;
  background:transparent;pointer-events:none}
#pageProgress::after{content:"";display:block;height:100%;background:var(--accent);
  width:30%;border-radius:0 2px 2px 0;box-shadow:0 0 8px var(--accent);
  animation:pp 1s ease-in-out infinite}
@keyframes pp{
  0%{transform:translateX(-100%);width:30%}
  60%{transform:translateX(150%);width:50%}
  100%{transform:translateX(400%);width:20%}
}

.dots-loader{display:inline-flex;gap:6px;padding:6px 0}
.dots-loader span{width:6px;height:6px;border-radius:50%;background:var(--accent);
  animation:dot 1s ease-in-out infinite}
.dots-loader span:nth-child(2){animation-delay:.15s}
.dots-loader span:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,80%,100%{transform:scale(.4);opacity:.4}40%{transform:scale(1);opacity:1}}

.empty{padding:60px 12px;text-align:center;color:var(--text-muted);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:50vh}
.empty .em-emoji{font-size:42px;margin-bottom:8px}

.empty .em-icon{display:inline-flex;align-items:center;justify-content:center;
  margin-bottom:10px;color:var(--text-muted);opacity:.55}
.empty .em-icon svg{width:48px;height:48px}

.now-playing{display:flex;align-items:center;gap:12px;min-width:0}
.now-playing img{width:56px;height:56px;border-radius:6px;background:#222;object-fit:cover}
.np-meta{display:flex;flex-direction:column;min-width:0}
.np-title{font-size:14px;color:#fff;font-weight:500;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:220px}
.np-artist{font-size:11px;color:var(--text-muted);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:220px}
.np-quality{display:inline-flex;align-items:center;gap:0;margin-top:6px;font-size:10px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:#1ed760;
  background:none;border:none;padding:0;width:max-content;max-width:220px;
  cursor:pointer;transition:filter .15s,transform .15s}
.np-quality:hover{filter:brightness(1.25) drop-shadow(0 0 4px #1ed76055)}
.np-quality .q-dot{width:5px;height:5px;border-radius:50%;background:#1ed760;box-shadow:0 0 6px #1ed760}
#devicesBtn.active{color:#1ed760}

body.casting #devicesBtn,
body.airplaying #devicesBtn,
body.controlling-remote #devicesBtn{color:#1ed760}

body.casting #npDevices,
body.airplaying #npDevices,
body.controlling-remote #npDevices{color:#1ed760}

.np-quality.v2{background:none;border:none;padding:2px 0;margin-top:5px;
  font-size:10px;color:#1ed760;letter-spacing:.06em;gap:5px;
  filter:drop-shadow(0 0 4px #1ed76055)}
.np-quality.v2 svg{width:12px;height:12px}

.modal-card.quality-modal{max-width:520px;width:min(520px,calc(100% - 32px));padding:0;overflow:hidden;background:#0f0f0f;
  border:1px solid #ffffff10;border-radius:14px}
.qm-hero{position:relative;padding:32px 28px 22px;text-align:center;
  background:radial-gradient(ellipse at center,#1ed76022,transparent 70%)}
.qm-glow{position:absolute;inset:-40% -10% auto -10%;height:80%;pointer-events:none;
  background:radial-gradient(ellipse at center,#1ed76033,transparent 60%);filter:blur(20px)}
.qm-badge{position:relative;display:inline-flex;align-items:center;gap:10px;
  font-size:30px;font-weight:800;letter-spacing:.04em;color:#1ed760;white-space:nowrap;
  text-shadow:0 0 18px #1ed76066}
.qm-badge span{opacity:.6;font-weight:400}
.qm-tagline{position:relative;margin-top:10px;color:#fff;font-size:14px;opacity:.85}
.qm-grid{padding:18px 28px;display:flex;flex-direction:column;gap:10px}
.qm-row{display:flex;justify-content:space-between;align-items:center;
  padding:10px 14px;background:#ffffff05;border-radius:8px;font-size:13px;gap:10px}
.qm-k{color:var(--text-muted);flex:0 0 auto;white-space:nowrap}
.qm-v{color:#fff;font-weight:600;text-align:right;min-width:0;word-break:break-word;hyphens:auto}
.qm-note{padding:0 28px 18px;color:var(--text-muted);font-size:12px;line-height:1.5}
.modal-card.quality-modal .modal-actions{padding:0 28px 22px;justify-content:flex-end;margin-top:0}

.fav-hero-heart{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.fav-hero-heart svg{width:55%;height:55%;filter:drop-shadow(0 6px 18px #0008)}
.hero-cover.my-eps-hero{background:linear-gradient(135deg,#1ed760,#145a32);display:flex;align-items:center;justify-content:center;color:#fff}
.hero-cover.my-eps-hero svg{width:55%;height:55%;filter:drop-shadow(0 6px 18px #0008)}
.gradient-hero .hero-back-mobile{display:none}
@media(max-width:880px){
  .gradient-hero{position:relative}
  .gradient-hero .hero-back-mobile{
    display:inline-flex;align-items:center;justify-content:center;
    position:absolute;top:12px;left:12px;z-index:5;
    width:36px;height:36px;border-radius:50%;
    background:#00000066;border:0;color:#fff;cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .gradient-hero .hero-back-mobile svg{width:22px;height:22px}
}

@media (hover:hover) and (pointer:fine) {
  .np-title:hover{text-decoration:underline}
  
}
.np-title,.np-artist{text-decoration:none}
.icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;
  color:var(--text-muted);transition:color .15s,transform .1s}
.icon-btn:hover{color:#fff}
.icon-btn.active{color:var(--accent)}
.icon-btn svg{display:block}
.player.is-empty .controls > .seek,
.player.is-empty .ctl-row .icon-btn,
.player.is-empty .play-btn,
.player.is-empty .now-playing .icon-btn,
.player.is-empty .extra .icon-btn{opacity:.35;pointer-events:none}
.player.is-empty .np-title::before{content:"Aucune lecture";color:var(--text-muted);font-style:italic}
.controls{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.ctl-row{display:flex;align-items:center;gap:14px}

.ctl-row #ctlSpeed{min-width:46px;font-size:16px;font-weight:800;letter-spacing:.2px;color:#b3b3b3;
  display:inline-flex;align-items:center;justify-content:center}
.ctl-row #ctlSpeed:hover{color:#fff}
.ctl-row #ctlSpeed:hover .ctl-speed-label{color:#fff}
.ctl-row #ctlSpeed.active,
.ctl-row #ctlSpeed.active .ctl-speed-label{color:var(--accent)}
.ctl-row #ctlSpeed .ctl-speed-label{display:inline-block;line-height:1;font-size:16px;font-weight:800;color:inherit}

.ctl-row #ctlSpeed.active .ctl-speed-label{font-size:13px}
.ctl-row #ctlSleep.active{color:var(--accent)}
.ctl-row .icon-btn[hidden]{display:none !important}
.ctl-row .icon-btn{width:34px;height:34px;transition:color .1s ease;-webkit-tap-highlight-color:transparent}
.ctl-row .icon-btn svg{width:18px;height:18px}
.ctl-row .icon-btn:active{color:#b3b3b3}
.ctl-row .icon-btn.active:active{color:var(--accent);filter:brightness(.85)}

.ctl-row #ctlPrev svg,
.ctl-row #ctlNext svg{width:29px;height:29px}
.ctl-row .icon-btn.active{color:var(--accent);position:relative}
.ctl-row .icon-btn.active::after{content:"";position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);
  width:4px;height:4px;border-radius:50%;background:var(--accent)}
.play-btn{width:38px;height:38px;border-radius:50%;background:#fff;color:#000;
  display:inline-flex;align-items:center;justify-content:center;transition:transform .1s,filter .15s,background .15s;
  transform:translateZ(0);transform-origin:50% 50%;will-change:transform;backface-visibility:hidden}
.play-btn svg{width:25px;height:25px;display:block;transform:translateZ(0);backface-visibility:hidden}
.play-btn i{display:inline-flex;align-items:center;justify-content:center;line-height:0}
.play-btn:hover{transform:scale(1.08) translateZ(0);background:#fff}
.seek{display:flex;align-items:center;gap:10px;width:100%;max-width:640px}
.time{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:11px;min-width:40px;text-align:center}
.seek-track,.vol-track{position:relative;flex:1;height:4px;background:#4a4a4a;border-radius:2px;cursor:pointer}

.seek-track::before,.vol-track::before{
  content:"";position:absolute;left:0;right:0;top:-12px;bottom:-12px;
}
.seek-buffered{position:absolute;left:0;top:0;height:100%;background:#5f5f5f;border-radius:2px;width:0}
.seek-fill,.vol-fill{position:absolute;left:0;top:0;height:100%;background:#fff;border-radius:2px;width:0}
.seek-thumb,.vol-thumb{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:#fff;
  transform:translate(-50%,-50%);left:0;opacity:0;transition:opacity .15s;pointer-events:none}
.seek-track:hover .seek-fill,.vol-track:hover .vol-fill{background:var(--accent)}
.seek-track:hover .seek-thumb,.vol-track:hover .vol-thumb{opacity:1}

.seek-track.dragging .seek-thumb,.vol-track.dragging .vol-thumb{opacity:1}
.seek-track.dragging .seek-fill,.vol-track.dragging .vol-fill{background:var(--accent)}

html.is-ios .seek-track:hover .seek-thumb{opacity:1}

body.controlling-ios .seek-track{cursor:pointer}
.extra{display:flex;align-items:center;gap:10px;justify-content:flex-end}
.vol-track{flex:0 0 100px;width:100px;max-width:100px}

@keyframes _noafy_ios_promotion {
  0%   { transform: translate3d(0, 0, 0); }
  50%  { transform: translate3d(0, 0.5px, 0); }
  100% { transform: translate3d(0, 0, 0); }
}
html.is-ios #lyricsPanel:not([hidden])::after,
html.is-ios body.np-open .np-lyric-ticker:not(:empty)::after {
  content: "";
  position: fixed;
  left: 0; top: 0;
  width: 1px; height: 1px;
  pointer-events: none;
  opacity: 0.01;
  background: transparent;
  will-change: transform;
  animation: _noafy_ios_promotion 333ms linear infinite;
  z-index: 0;
}

.queue-panel{position:fixed;right:16px;bottom:calc(var(--player-h) + 16px);width:380px;max-height:68vh;
  background:linear-gradient(180deg,#1f1f24 0%,#141418 100%);
  border-radius:14px;border:1px solid #ffffff14;display:flex;flex-direction:column;z-index:60;
  box-shadow:0 30px 80px #000d, 0 0 0 1px #ffffff08;overflow:hidden;
  animation:qpPop .22s cubic-bezier(.2,.9,.3,1.2)}
@keyframes qpPop{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.queue-panel header{display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px 14px;border-bottom:1px solid #ffffff10;
  background:linear-gradient(180deg,#ffffff05 0%,transparent 100%)}
.queue-panel header h3{font-size:16px;font-weight:700;letter-spacing:.01em;display:flex;align-items:center;gap:8px}
.queue-panel header h3::before{content:"";width:3px;height:16px;border-radius:2px;background:var(--accent)}
.qp-section{padding:14px 16px 6px}

.qp-section.qp-next{padding:0 16px 6px;flex:1;min-height:0;display:flex;flex-direction:column}
.qp-section.qp-next h4{margin:6px 4px 8px;padding:0;flex:0 0 auto}

.qp-section.qp-next #queueNext{overflow-y:auto;flex:1;min-height:0;
  scrollbar-width:thin;scrollbar-color:#ffffff22 transparent}
.qp-section.qp-next #queueNext::-webkit-scrollbar{width:6px;height:6px}
.qp-section.qp-next #queueNext::-webkit-scrollbar-thumb{background:#ffffff22;border-radius:3px}
.qp-section.qp-next #queueNext::-webkit-scrollbar-track{background:transparent}
#queueCurrent{flex:0 0 auto}
.qp-section h4{margin:6px 4px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--text-muted);font-weight:700}
.q-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;cursor:pointer;
  transition:background .12s,transform .12s;position:relative}
.q-row:hover{background:#ffffff0e}
.q-row:active{transform:scale(.98)}
.q-row img{width:44px;height:44px;border-radius:5px;background:#222;object-fit:cover;flex-shrink:0;
  box-shadow:0 4px 10px #0008}
.q-row .qt{font-size:14px;color:#fff;font-weight:500;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:240px}
.q-row .qa{font-size:12px;color:var(--text-muted);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:240px}

#queueCurrent .q-row{background:transparent;border:none;cursor:default}
#queueCurrent .q-row:hover{background:#ffffff06}
#queueCurrent .q-row .qt{color:var(--accent)}

.q-state{flex:0 0 auto;width:18px;height:18px;display:inline-flex;align-items:center;
  justify-content:center;color:var(--accent);filter:drop-shadow(0 0 4px #1ed76066)}
.q-state.q-eq{gap:2px}
.q-state.q-eq span{display:inline-block;width:3px;background:var(--accent);border-radius:2px;
  animation:qeq 1s ease-in-out infinite}
.q-state.q-eq span:nth-child(1){height:60%;animation-delay:-.2s}
.q-state.q-eq span:nth-child(2){height:90%;animation-delay:-.5s}
.q-state.q-eq span:nth-child(3){height:50%;animation-delay:-.8s}
@keyframes qeq{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}
.q-state.q-pause svg{width:14px;height:14px}

.lyrics-panel{right:auto;left:50%;transform:translateX(-50%);width:560px;max-width:94vw;max-height:80vh;
  animation:lyPop .22s cubic-bezier(.2,.9,.3,1.2)}
@keyframes lyPop{
  from{opacity:0;transform:translateX(-50%) translateY(12px) scale(.97)}
  to  {opacity:1;transform:translateX(-50%) translateY(0)     scale(1)}
}
.lyrics-body{padding:24px 28px 36px;overflow-y:auto;text-align:center;line-height:1.85;
  background:radial-gradient(ellipse at top,#7000ff15,transparent 60%);
  scrollbar-width:none}
.lyrics-body::-webkit-scrollbar{width:0;height:0;display:none}
.ly-line{font-size:18px;color:#ffffff55;padding:8px 0;cursor:pointer;
  transition:color .2s,text-shadow .25s;
  font-weight:600;letter-spacing:.005em}
.ly-line:hover{color:#ffffffaa}

.ly-line.active{color:#fff;text-shadow:0 0 16px #7000ff77,0 0 4px #ffffff55}

@media(max-width:880px){.ly-line.active{text-shadow:none}}

.ly-line.static{cursor:default;color:#ffffff90}
.ly-line.static:hover{color:#ffffff90}
.ly-notice{display:inline-block;margin:0 auto 18px;padding:6px 14px;border-radius:999px;
  background:#ffffff10;color:var(--text-muted);font-size:11px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase}
.lyrics-body .muted{color:var(--text-muted);text-align:center;margin-top:60px;font-size:14px}
.ly-header{display:flex;align-items:center;gap:14px;padding:6px 4px 18px;margin-bottom:12px;
  border-bottom:1px solid #ffffff10;text-align:left}
.ly-header img{width:54px;height:54px;border-radius:6px;object-fit:cover;background:#222;
  box-shadow:0 6px 16px #000a}
.ly-header .ly-meta{min-width:0;flex:1}
.ly-header .ly-title{font-size:15px;font-weight:700;color:#fff;
  text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.ly-header .ly-artist{font-size:12px;color:var(--text-muted);
  text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.ly-writers{margin-top:24px;padding-top:14px;border-top:1px solid #ffffff10;
  font-size:11px;color:var(--text-muted);font-style:italic;text-align:center}

#modalRoot{position:fixed;inset:0;pointer-events:none;z-index:200}
.modal-back{position:absolute;inset:0;background:#000a;backdrop-filter:blur(6px);pointer-events:auto;
  display:flex;align-items:center;justify-content:center;animation:fade .15s ease}
.modal-card{background:#1f1f24;border-radius:12px;padding:22px;width:min(420px,calc(100% - 32px));
  border:1px solid #ffffff14;box-shadow:0 30px 80px #000a}
.modal-card h2{margin:0 0 14px;font-size:20px}
.modal-card label{display:block;font-size:13px;color:var(--text-muted);margin:10px 0 6px}
.modal-card input,.modal-card textarea{width:100%;padding:10px 12px;border-radius:6px;background:#2a2a2a;border:1px solid #ffffff15;color:#fff;outline:0;font-size:14px}
.modal-card textarea{min-height:80px;resize:vertical}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.modal-actions button{padding:10px 16px;border-radius:6px;font-weight:600;font-size:14px;
  display:inline-flex;align-items:center;gap:8px;line-height:1}
.modal-actions button svg{display:block;flex:0 0 auto}
.modal-actions .btn-primary{background:#fff;color:#000}
.modal-actions .btn-primary:hover{transform:scale(1.03)}
.modal-actions .btn-danger{background:#ef4444;color:#fff}
.modal-actions .btn-danger:hover{background:#dc2626;transform:scale(1.03)}
.modal-actions .btn-ghost{color:var(--text-muted)}
.modal-actions .btn-ghost:hover{color:#fff}

.modal-card.install-card{width:min(480px,calc(100% - 32px))}
.install-steps{background:#16161a;border:1px solid #ffffff10;border-radius:8px;
  padding:14px 18px 14px 14px;margin:6px 0 4px}
.install-steps ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}
.install-steps li{color:#e9e9e9;font-size:13.5px;line-height:1.5}
.install-steps li b{color:#fff;font-weight:700}
.install-steps code{background:#0008;padding:1px 6px;border-radius:4px;font-size:12.5px;color:#1ed760}

.btn-primary.install-now{display:inline-flex;align-items:center;gap:8px;line-height:1}
.btn-primary.install-now .ico{display:inline-flex;align-items:center;justify-content:center}
.btn-primary.install-now .ico svg{width:16px;height:16px;display:block}

.modal-card .cta-stack{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.modal-card .cta-import{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:10px;
  background:linear-gradient(135deg,#1ed760 0%,#a238ff 100%);color:#fff;font-weight:600;font-size:15px;
  box-shadow:0 6px 20px #1ed76033;cursor:pointer;transition:transform .15s ease}
.modal-card .cta-import:hover{transform:translateY(-1px) scale(1.02)}
.modal-card .cta-import .ico{width:36px;height:36px;border-radius:8px;background:#0008;
  display:flex;align-items:center;justify-content:center;flex:0 0 36px}
.modal-card .cta-import .cta-text{display:flex;flex-direction:column;text-align:left;line-height:1.25;min-width:0;flex:1}
.modal-card .cta-import small{display:block;font-weight:400;opacity:.85;font-size:12px;margin-top:2px}

.providers{display:flex;gap:10px;margin:10px 0 4px}
.provider{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;
  border-radius:10px;background:#262626;border:1px solid #ffffff10;cursor:pointer;font-size:12px;color:#ccc;transition:all .15s}
.provider:hover{background:#2f2f2f;color:#fff;border-color:#1ed76055}
.provider.active{background:#1ed76018;border-color:#1ed760;color:#fff;box-shadow:0 0 0 1px #1ed76055 inset}
.provider[data-disabled]{opacity:.4;cursor:not-allowed}
.provider[data-disabled]:hover{background:#262626;color:#ccc;border-color:#ffffff10}
.provider svg{display:block}

.file-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  padding:22px 14px;margin:10px 0 6px;border:1.5px dashed #ffffff22;border-radius:12px;
  background:#1a1a1a;color:#bbb;cursor:pointer;text-align:center;transition:all .15s;outline:none}
.file-drop:hover,.file-drop:focus,.file-drop.is-drag{background:#222;border-color:#1ed76088;color:#fff}
.file-drop-ico{opacity:.6;transform:scale(1.6);margin-bottom:4px}
.file-drop-label{font-weight:600;font-size:13px}
.file-drop-hint{font-size:11px;opacity:.8}

.import-progress{margin:6px 0 14px}
.import-progress-bar{height:8px;background:#ffffff14;border-radius:4px;overflow:hidden}
.import-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#1ed760,#1ec0e5);
  border-radius:4px;transition:width .4s ease}
.import-progress-stats{margin-top:8px;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}

.artist-bio-section{margin-top:8px}
.artist-bio{font-size:14px;line-height:1.55;color:#dcdcdc;overflow:hidden;position:relative;
  
  max-width:88ch}
.artist-bio p{margin:0 0 10px}
.artist-bio a{color:#1ed760;text-decoration:none}
.artist-bio a:hover{text-decoration:underline}
.artist-bio.collapsed{max-height:220px;mask-image:linear-gradient(180deg,#000 70%,transparent);
  -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent)}
.artist-bio.open{max-height:none}
.bio-toggle{margin-top:6px;background:transparent;border:1px solid #ffffff22;color:#fff;
  padding:6px 14px;border-radius:999px;font-size:12px;cursor:pointer;font-weight:600}
.bio-toggle:hover{background:#ffffff14;border-color:#ffffff44}

.concerts-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;
  
  max-width:88ch}

.concerts-list-modal{max-width:none}
.concert-item{display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:10px;
  background:#1a1a1a;border:1px solid #ffffff10}
.concert-item:hover{background:#222}
.concert-date{flex:0 0 auto;min-width:170px;font-weight:600;font-size:13px;color:#fff;text-transform:capitalize}
.concert-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.concert-name{font-size:13px;color:#fff;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.concert-where{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.sec-head .more-link.concerts-more{background:none;border:0;padding:0;cursor:pointer;font-family:inherit}

#concertsSection{margin-top:30px}

#concertsSection > .sec-head{max-width:88ch}

.artist-bio-modal{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:14px;
  -webkit-overflow-scrolling:touch}

.modal-card:has(.artist-bio-modal),
.modal-card:has(.concerts-list-modal){
  width:min(640px,calc(100% - 32px));
  max-height:min(720px,calc(100dvh - 32px));
  display:flex;flex-direction:column;gap:12px;padding:18px 18px 16px}
.modal-card:has(.artist-bio-modal) > h2,
.modal-card:has(.concerts-list-modal) > h2{flex:0 0 auto;margin:0}
.modal-card:has(.artist-bio-modal) > .modal-actions,
.modal-card:has(.concerts-list-modal) > .modal-actions{flex:0 0 auto;margin-top:0}
.concerts-list-modal{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px;
  -webkit-overflow-scrolling:touch}
.concerts-list-modal .concert-name,
.concerts-list-modal .concert-where{white-space:normal;overflow:visible;text-overflow:clip}
@media (max-width:600px){
  .concert-item{flex-wrap:wrap}
  .concert-date{min-width:0;flex:1 1 100%;font-size:12px}
  .concert-meta{flex:1 1 100%}
}

@media (max-width:880px){
  .view .artist-bio-section,
  .view #concertsSection{padding:0 16px}
  
  .tracks .row .t-text .t-artist a:hover,
  .tracks .row .t-text .t-artist a:active,
  .tracks .row .t-text .t-artist a:focus,
  .tracks .row .t-album a:hover,
  .tracks .row .t-album a:active,
  .tracks .row .t-album a:focus{text-decoration:none;color:inherit}
}

.cover-edit{position:relative;display:inline-block}
.cover-edit input[type=file]{display:none}
.cover-edit .cover-edit-btn{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:6px;background:#000a;color:#fff;font-size:12px;font-weight:600;
  border-radius:8px;opacity:0;cursor:pointer;transition:opacity .15s}
.cover-edit:hover .cover-edit-btn,.cover-edit .cover-edit-btn:focus{opacity:1}

#muteBtn.muted{color:#ff5252}

#toastRoot{position:fixed;bottom:calc(var(--player-h) + 18px);left:50%;transform:translateX(-50%);
  z-index:9999;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{background:#1ed760;color:#000;padding:10px 18px;border-radius:999px;font-weight:600;font-size:13px;
  box-shadow:0 8px 24px #0008;animation:toast .25s ease}
.toast.err{background:#e63946;color:#fff}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes toast{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.ctx-menu{position:fixed;background:#282828;border:1px solid #ffffff14;border-radius:6px;
  padding:6px;min-width:200px;z-index:200;box-shadow:0 18px 40px #000a;display:flex;flex-direction:column;gap:2px;
  scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain}

.ctx-menu.ctx-scroll{max-height:70vh;overflow-y:auto}
.ctx-menu::-webkit-scrollbar{width:0;height:0;display:none}
.ctx-menu button{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:4px;color:#fff;font-size:14px;text-align:left;width:100%}
.ctx-menu button:hover{background:#ffffff14}
.ctx-menu .sep{height:1px;background:#ffffff10;margin:4px 0}

.ctx-menu .submenu>.sub .sep{margin:2px 0;background:#ffffff08}
.ctx-menu .submenu{position:relative}
.ctx-menu .submenu>.sub{display:none;position:absolute;left:100%;top:auto;bottom:0;background:#282828;border:1px solid #ffffff14;border-radius:6px;padding:6px;min-width:200px;max-height:260px !important;overflow-y:auto;
  box-shadow:0 18px 40px #000a;margin-left:2px;z-index:201;
  scrollbar-width:none;-ms-overflow-style:none}
.ctx-menu .submenu>.sub::-webkit-scrollbar{width:0;height:0;display:none}

.ctx-menu .submenu::after{content:"";position:absolute;left:100%;top:auto;bottom:0;width:6px;height:260px;max-height:100vh;display:none}
.ctx-menu .submenu:hover::after,
.ctx-menu .submenu:focus-within::after{display:block}
.ctx-menu .submenu.flip>.sub{left:auto;right:100%;margin-left:0;margin-right:2px}
.ctx-menu .submenu.flip::after{left:auto;right:100%;width:6px}
.ctx-menu .submenu:hover>.sub,
.ctx-menu .submenu:focus-within>.sub,
.ctx-menu .submenu>.sub:hover{display:flex;flex-direction:column;gap:2px}

.ctx-backdrop{position:fixed;inset:0;background:#000a;z-index:199;
  animation:ctxFadeIn .15s ease both}

.ctx-backdrop.dev-backdrop{background:transparent;animation:none}

.ctx-backdrop.ctx-locked{pointer-events:none}
.ctx-menu.ctx-sheet{position:fixed;left:0;right:0;bottom:0;top:auto;
  border-radius:18px 18px 0 0;background:#181818;border:0;border-top:1px solid #ffffff14;
  padding:6px 10px max(env(safe-area-inset-bottom),18px);min-width:0;
  max-height:80vh;overflow-y:auto;
  animation:ctxSlideUp .2s ease both;gap:0;
  
  touch-action:pan-y;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain}
.ctx-menu.ctx-sheet .ctx-items{display:flex;flex-direction:column;gap:0;
  touch-action:pan-y}
.ctx-menu.ctx-sheet .ctx-grab{align-self:stretch;flex:0 0 auto}

.ctx-menu.ctx-sheet .ctx-items.ctx-locked{pointer-events:none}
.ctx-menu.ctx-sheet button{padding:14px 14px;font-size:15px;border-radius:8px}
.ctx-menu.ctx-sheet button.ctx-back{color:#1ed760;font-weight:700;font-size:14px}
.ctx-menu.ctx-sheet button:hover{background:transparent}
.ctx-menu.ctx-sheet button:active{background:#ffffff14}
.ctx-menu.ctx-sheet .submenu>.sub{position:static;display:none;background:#0f0f0f;
  margin:4px 8px 8px;border:0;padding:4px;max-height:50vh;overflow-y:auto;
  -webkit-overflow-scrolling:touch;border-radius:8px}
.ctx-menu.ctx-sheet .submenu.open>.sub{display:flex;flex-direction:column;gap:2px}
.ctx-menu.ctx-sheet .submenu:hover>.sub{display:none}
.ctx-menu.ctx-sheet .submenu.open:hover>.sub{display:flex;flex-direction:column}
@keyframes ctxFadeIn{from{opacity:0}to{opacity:1}}
@keyframes ctxSlideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}

.player-close{display:none}
.player-more{display:none}
.mobile-nav{display:none}
.player-context{display:none}
.np-lyric-ticker{display:none}
.np-play-mini{display:none}
.np-devices-mini{display:none}
.mini-progress{display:none}

@media(min-width:881px) and (max-width:1320px){
  
  .player{grid-template-columns:minmax(200px,1fr) minmax(360px,2fr) minmax(200px,1fr);
    padding:0 12px;gap:12px}
  .now-playing{min-width:0}
  .now-playing img{width:48px;height:48px;flex:0 0 48px}
  .np-title,.np-artist{max-width:140px}
  .np-quality{font-size:9px;letter-spacing:.04em;padding:2px 0;margin-left:0;max-width:140px}
  .ctl-row{gap:10px}
  .ctl-row .icon-btn{width:30px;height:30px}
  .ctl-row .icon-btn svg{width:16px;height:16px}
  .play-btn{width:34px;height:34px}
  .play-btn svg{width:16px;height:16px}
  .seek{max-width:none}
  .extra{gap:6px;justify-content:flex-end}
  
  .extra .vol-track{flex:0 0 100px;width:100px;min-width:100px}
  
  .extra #immersiveBtn{display:none}
}
@media(min-width:881px) and (max-width:1100px){
  
  .extra .vol-track{flex:0 0 85px;width:85px;min-width:85px}
}

@media(max-width:880px){
  :root{
    --sidebar-w:0px;
    --player-h:68px;       
    
    --mobile-nav-h:calc(82px + env(safe-area-inset-bottom));
  }
  #root{
    grid-template-columns:1fr;
    grid-template-rows:1fr var(--player-h) var(--mobile-nav-h);
    grid-template-areas:"main" "player" "nav";
  }
  
  #root.sidebar-collapsed{
    grid-template-columns:1fr;
    grid-template-rows:1fr var(--player-h) var(--mobile-nav-h);
    grid-template-areas:"main" "player" "nav";
  }
  .sidebar{display:none}
  
  .main{position:relative;border-radius:0}
  .topbar{padding:0 12px;gap:8px;grid-template-columns:1fr auto;
    position:absolute;top:0;left:0;right:0;z-index:10;
    background:linear-gradient(180deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,.65) 100%);
    -webkit-backdrop-filter:saturate(160%) blur(14px);
    backdrop-filter:saturate(160%) blur(14px);
    border-bottom:0}
  
  .topbar.topbar-solid{
    background:rgba(10,10,10,.85);
    border-bottom:1px solid #ffffff10;
  }
  .nav-arrows{display:none}
  
  .topbar .searchbar{display:none}
  .topbar-brand{display:inline-flex}
  .topbar-right{gap:8px}
  .topbar-right .pill-btn span{display:none}
  
  .topbar-right .pill-btn{width:36px;height:36px;padding:0;border-radius:50%;
    justify-content:center}
  
  .view .mobile-search{display:block;max-width:none!important;margin:14px 16px 18px;width:auto;justify-self:stretch}
  .view .mobile-search input{width:100%}
  .view{padding:var(--topbar-h) 0 18px}
  
  .view .gradient-hero{margin:0 0 12px;padding:0;border-radius:0;background:transparent}
  
  .view .gradient-hero.playlist-hero .hero{
    background:linear-gradient(180deg,#2a2034 0%,#0f0f0f 100%) !important;
  }
  
  .gradient-hero .page-back{display:inline-flex;
    top:8px;left:10px;z-index:5}
  
  .seeall-page .page-back{display:inline-flex;
    top:8px;left:10px;z-index:5}
  
  .seeall-page > h1{padding-left:54px;padding-right:14px;padding-top:9px;
    margin-top:0;min-height:44px;display:flex;align-items:center;line-height:1.1}
  
  .seeall-page > .cards{margin-top:28px}
  .cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;padding:0 16px}
  .card .play-fab{top:122px;right:18px;width:42px;height:42px}
  
  .chart-card .play-fab{display:none !important}
  
  .card[data-kind="playlist"] .play-fab{display:none !important}
  
  .card[data-kind="podcast"] .play-fab{display:none !important}

  .hero{
    position:relative;display:block;flex-direction:initial;align-items:initial;
    margin:0 0 14px;padding:0;min-height:88vw;max-height:680px;
    border-radius:0;overflow:hidden;gap:0;
  }
  .hero-cover{
    position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;
    border-radius:0;background-size:cover;background-position:center;box-shadow:none;
  }
  
  .hero .cover-edit{position:absolute;inset:0;display:block}
  .hero .cover-edit .cover-edit-btn{inset:auto 14px 16px auto;width:auto;height:auto;
    padding:6px 10px;border-radius:999px;background:#000a;backdrop-filter:blur(6px);
    flex-direction:row;gap:6px;font-size:12px;opacity:1;z-index:3}
  .hero::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,#0000 0%,#0000 35%,#000a 75%,#000e 100%);
  }
  .hero-meta{
    position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 18px 18px;
    color:#fff;text-shadow:0 2px 12px #000a;
  }
  .hero-meta .kind{font-size:11px;color:#fff;opacity:.95}
  .hero-meta h1{font-size:clamp(28px,8vw,44px);line-height:1.05}
  .hero-meta .sub{color:#ffffffcc}

  
  .view > h1, .view > h2, .view > p, .view > .muted,
  .view > section, .view > .sec-head,
  .view > .action-row,
  .view > .action-bar,
  .view > .streams-list,
  .view > .lib-page > h1,
  .view > .lib-page > section,
  .view .gradient-hero > .action-row{padding-left:14px;padding-right:14px}
  
  .view > .streams-list{margin-top:14px}
  .stream-row .stream-title{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
  .stream-row .stream-title .stream-state{margin-left:0!important;font-size:12px}
  
  .settings-page > .settings-card{margin:1rem 14px !important;width:auto;max-width:none}
  .settings-page > h1{padding:18px 14px 0}
  .view > h1:first-child{padding-top:18px}
  .view > .lib-page > h1:first-child{padding-top:18px}
  
  .view > h1, .view > .lib-page > h1{font-size:clamp(24px,7vw,34px);white-space:nowrap;overflow:hidden;
    text-overflow:ellipsis}
  
  .view > .home-section,.view section{padding-left:14px;padding-right:0}
  .home-section .cards,
  .view section .cards{
    display:flex !important;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;
    gap:12px;padding:2px 14px 6px 0 !important;scroll-snap-type:x mandatory;
    scroll-padding-left:0;
    scrollbar-width:none;-ms-overflow-style:none;margin-left:0;
  }
  
  .home-section .sec-head,
  .view section .sec-head{padding:0 14px 0 0;margin-bottom:14px}
  
  .view .tracks{padding-left:14px;padding-right:14px}
  
  .view section .tracks{padding-left:0;padding-right:16px}
  
  .hero .hero-cover[style*="border-radius"]{border-radius:0 !important}

  .home-section .cards::-webkit-scrollbar,
  .view section .cards::-webkit-scrollbar{display:none}
  .home-section .cards > *,
  .view section .cards > *{flex:0 0 42vw;max-width:150px;scroll-snap-align:start}

  .tracks{padding-left:0;padding-right:0;margin-left:0;margin-right:0}
  
  .tracks.tracks .head,.tracks.tracks .row{
    grid-template-columns:1fr 42px 28px;gap:14px;padding:6px 14px 6px 6px;
    align-items:center;border-radius:6px;
  }
  
  .tracks.tracks .row .num,
  .tracks.tracks .row.playing .num,
  .tracks.tracks .row.playing.paused .num{display:none}
  .tracks.tracks .row{position:relative}
  .tracks.tracks .row .num-eq{display:none}
  .tracks.tracks .row.playing .num-eq{
    display:inline-flex;position:absolute;
    
    left:62px;top:10px;
    width:auto;justify-content:flex-start;padding:0;z-index:2;pointer-events:none;
    height:14px;align-items:flex-end;
  }
  .tracks.tracks .row.playing .num-eq .eq{
    position:relative;display:block;width:13px;height:14px;gap:0;
  }
  .tracks.tracks .row.playing .num-eq .eq span{
    position:absolute;bottom:0;width:3px;
  }
  .tracks.tracks .row.playing .num-eq .eq span:nth-child(1){left:0}
  .tracks.tracks .row.playing .num-eq .eq span:nth-child(2){left:5px}
  .tracks.tracks .row.playing .num-eq .eq span:nth-child(3){left:10px}
  
  .tracks.tracks .row.playing.paused .num-eq .eq span,
  .tracks.tracks .row.playing .num-eq.paused .eq span{
    animation:none!important;transform:scaleY(.28)!important;
  }
  
  .tracks.tracks .row.playing .t-text .t-title{padding-left:18px}
  .tracks .row .t-main{grid-column:1;gap:14px;min-width:0}
  .tracks .row .t-main img{margin-left:0;width:42px;height:42px;flex:0 0 42px}
  .tracks .row .t-album{display:none}
  .tracks .row .t-dur{grid-column:2;text-align:center;font-variant-numeric:tabular-nums;font-size:12px;color:var(--text-muted)}
  .tracks .row .t-fav{grid-column:3;gap:0;justify-content:flex-end;width:28px}
  .tracks .head .h-album{display:none}
  .tracks.tracks .head > *:nth-child(1){display:none}
  
  .tracks .head > *:nth-child(2){grid-column:1;padding-left:52px}
  .tracks .head > *:nth-child(4){grid-column:2;text-align:center}
  .tracks .head > *:nth-child(5){grid-column:3}
  .tracks .row .t-fav .fav-btn{display:none}
  .tracks .row .t-fav .more-btn{display:inline-flex;opacity:1;color:var(--text-muted);
    width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;padding:0;
    -webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;
    -webkit-user-select:none;user-select:none;touch-action:manipulation;background:transparent}
  .tracks .row .t-fav .more-btn:active{background:transparent;color:#fff}
  .tracks.with-added .head,.tracks.with-added .row{
    grid-template-columns:1fr 42px 28px;
  }
  .tracks.with-added .head .h-added,.tracks.with-added .row .t-added{display:none}
  
  .tracks.with-added .head > *:nth-child(5){grid-column:2;text-align:center;padding-left:0}
  .tracks.with-added .head > *:nth-child(6){grid-column:3}
  
  .tracks.tracks-episodes .head,.tracks.tracks-episodes .row{
    grid-template-columns:1fr 58px 28px;gap:14px;padding:6px 14px 6px 6px;
  }
  .tracks.tracks-episodes .head .h-added,
  .tracks.tracks-episodes .row .t-added{display:none}
  
  .tracks.tracks-episodes .head > *:nth-child(1){display:none}
  .tracks.tracks-episodes .head > *:nth-child(2){grid-column:1;padding-left:52px}
  .tracks.tracks-episodes .head > *:nth-child(4){
    grid-column:2;text-align:center;padding-left:14px;padding-right:0;
    
    display:flex;align-items:center;justify-content:center;
  }
  .tracks.tracks-episodes .head .h-dur-cell{
    all:revert;display:block;text-align:center;padding:0;margin:0;
    position:static;width:auto;
  }
  .tracks.tracks-episodes .head .h-dur-cell .h-stat{display:none}
  .tracks.tracks-episodes .head .h-dur-cell .h-dur-lbl{
    display:inline-block;margin:0;text-align:center;
  }
  
  .tracks.tracks-episodes .row .t-dur{
    display:block;position:relative;text-align:center;padding-left:14px;
  }
  .tracks.tracks-episodes .row .t-dur::before{
    position:absolute;left:0;top:50%;transform:translateY(-50%);
    width:7px;height:7px;flex:none;
  }
  .tracks.tracks-episodes .head > *:nth-child(5){grid-column:3}
  .tracks.tracks-episodes .row .t-fav{grid-column:3;gap:0;justify-content:flex-end;width:28px}
  .tracks.tracks-episodes .row .t-fav .ep-save-btn{display:none}
  
  .tracks.tracks-episodes .row .num,
  .tracks.tracks-episodes .row .num-eq{display:none}
  .tracks.tracks-episodes .row{position:relative}
  .tracks.tracks-episodes .row .t-main{grid-column:1;gap:14px;min-width:0;display:flex;align-items:center}
  .tracks.tracks-episodes .row .t-main img{margin-left:0;width:42px;height:42px;flex:0 0 42px;border-radius:6px}
  .tracks.tracks-episodes .row .t-text{min-width:0;flex:1 1 auto}
  .tracks.tracks-episodes .row .t-text .t-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tracks.tracks-episodes .row .t-text .t-artist{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text-muted)}
  .tracks.tracks-episodes .row .t-dur{grid-column:2;text-align:center;font-variant-numeric:tabular-nums;font-size:12px;color:var(--text-muted)}
  .tracks.tracks-episodes .row .t-fav .fav-btn{display:none}
  .tracks.tracks-episodes .row .t-fav .more-btn{display:inline-flex;opacity:1;color:var(--text-muted);width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;padding:0;background:transparent}
  
  .gradient-hero .action-row{padding:14px 16px 18px;gap:14px}
  .gradient-hero .action-row .fab{width:48px;height:48px}
  .queue-panel{right:8px;left:8px;width:auto;
    bottom:calc(var(--player-h) + var(--mobile-nav-h) + 8px);
    background:#181818;
    border:1px solid #ffffff10;
    box-shadow:0 12px 28px #0008;
    max-height:60vh}
  .queue-panel header{padding:12px 14px 10px}
  .queue-panel header h3{font-size:14px}
  .queue-panel .qp-section{padding:10px 12px 4px}
  .queue-panel .qp-section.qp-next{padding:0 12px 6px}
  .queue-panel .qp-section h4{font-size:10px;margin:4px 4px 6px}
  .queue-panel .q-row{padding:6px 8px}
  .queue-panel .q-row img{width:38px;height:38px}
  .queue-panel .q-row .qt{font-size:13px}
  .queue-panel .q-row .qa{font-size:11px}
  
  #toastRoot{bottom:calc(var(--player-h) + var(--mobile-nav-h) + 2px);
    left:12px;right:12px;transform:none;width:auto;align-items:stretch}
  #toastRoot .toast{width:100%;text-align:center;padding:12px 16px;
    border-radius:10px;font-size:13.5px;white-space:normal;line-height:1.35}
  body.np-open #toastRoot{bottom:calc(env(safe-area-inset-bottom) + 14px)}
  
  body:has(#modalRoot .modal-back) #toastRoot{
    bottom:calc(env(safe-area-inset-bottom) + 14px)}

  .mobile-nav{
    grid-area:nav;display:flex;align-items:flex-start;justify-content:space-around;
    background:#0a0a0a;border-top:1px solid #ffffff10;
    padding-top:14px;padding-bottom:env(safe-area-inset-bottom);
    
    position:relative;z-index:125;
  }
  .mn-item{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:3px;color:var(--text-dim);font-size:10.5px;font-weight:600;
    transition:color .15s ease;
  }
  .mn-item i{display:inline-flex;align-items:center;justify-content:center}
  .mn-item i svg{width:22px;height:22px}
  .mn-item.active{color:#fff}
  .mn-item:active{transform:scale(.96)}

  .player{
    grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"np";
    padding:10px 12px;gap:0;height:var(--player-h);
    border:1px solid #ffffff0c;
    background:linear-gradient(135deg,#1f1f1f 0%,#161616 100%);
    border-radius:10px;margin:0 8px 6px;
    width:auto;overflow:hidden;position:relative;cursor:pointer;
    box-shadow:0 6px 18px #000a;
    
    z-index:125;
  }
  
  body:not(.np-open) .player::before{
    content:"";position:absolute;inset:-30px;z-index:0;pointer-events:none;
    background-image:var(--np-cover-bg,none);
    background-size:cover;background-position:center;
    filter:blur(40px) saturate(160%) brightness(.5);
    transform:scale(1.2);
    transition:background-image .4s ease;
  }
  body:not(.np-open) .player::after{
    content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
    background:linear-gradient(135deg,#0a0a0acc 0%,#0a0a0aaa 100%);
  }
  body:not(.np-open) .player > *{position:relative;z-index:1}
  .player .controls,.player .extra,.player-context,.player-close,.player-more{display:none}
  .player .now-playing{
    grid-area:np;display:flex;align-items:center;gap:12px;min-width:0;width:100%;
  }
  .player .now-playing img{width:46px;height:46px;border-radius:5px;flex:0 0 46px;
    box-shadow:0 4px 10px #0008}
  .player .np-meta{flex:1;min-width:0;line-height:1.2;display:flex;flex-direction:column}
  .np-title{font-size:14px;font-weight:600;color:#fff;display:block;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:none;
    user-select:none;-webkit-user-select:none}
  .np-artist{font-size:12px;color:var(--text-muted);display:block;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:none;
    user-select:none;-webkit-user-select:none}
  .np-quality{display:none}
  .player #npLike,.player .np-play-mini{
    flex:0 0 auto;color:#fff;padding:6px;
    display:inline-flex;align-items:center;justify-content:center;
  }
  .player .np-play-mini{width:36px;height:36px}
  .player .np-play-mini svg{width:24px;height:24px}
  
  .player .np-devices-mini{
    display:inline-flex;align-items:center;justify-content:center;
    flex:0 0 auto;width:34px;height:34px;color:#fff;padding:6px;
  }
  .player .np-devices-mini svg{width:20px;height:20px}
  .player .np-devices-mini.active{color:#1ed760}
  body.np-open .player .np-devices-mini{display:none}

  .player .mini-progress{
    display:block;position:absolute;left:0;right:0;bottom:0;height:2px;
    background:#ffffff14;border-radius:0 0 10px 10px;overflow:hidden;
    pointer-events:none;
  }
  .mini-progress-fill{height:100%;background:#fff;width:0%;
    transition:width .25s linear}

  body.np-open{overflow:hidden}
  
  .player,.player *{
    -webkit-user-select:none;user-select:none;
    -webkit-touch-callout:none;
  }
  body.np-open .player{
    position:fixed;inset:0;z-index:120;height:100dvh;width:auto;margin:0;
    border-radius:0;border:0;cursor:default;overflow:hidden;
    background:#0a0a0a;
    box-shadow:none;
    
    display:flex;flex-direction:column;justify-content:flex-start;align-items:center;
    gap:14px;
    padding:max(clamp(40px, 6vh, 80px), calc(env(safe-area-inset-top) + 14px)) 22px calc(96px + env(safe-area-inset-bottom));
    transition:none;
    min-height:0;
  }
  
  body.np-open .player::before{
    content:"";position:absolute;inset:-60px;z-index:0;pointer-events:none;
    background-image:var(--np-cover-bg,none);
    background-size:cover;background-position:center;
    filter:blur(60px) saturate(160%) brightness(.55);
    transform:scale(1.15);
    transition:background-image .4s ease;
  }
  body.np-open .player::after{
    content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
    background:linear-gradient(180deg,#0000 0%,#0006 55%,#0a0a0aee 100%);
  }
  
  body.np-open .player > *{position:relative;z-index:1}
  body.np-open .player:active{background:#0a0a0a}
  body.np-open .player-close{
    display:inline-flex;align-items:center;justify-content:center;
    position:absolute;top:14px;left:18px;z-index:5;
    width:38px;height:38px;border-radius:50%;color:#fff;
    background:transparent;-webkit-tap-highlight-color:transparent;
  }
  
  body.np-open .player-more{
    display:inline-flex;align-items:center;justify-content:center;
    position:absolute;top:14px;right:18px;z-index:5;
    width:38px;height:38px;border-radius:50%;color:#fff;border:0;cursor:pointer;
    background:transparent;-webkit-tap-highlight-color:transparent;
  }
  body.np-open .player-more svg{width:22px;height:22px}
  body.np-open .player-context{
    position:absolute;top:18px;left:60px;right:60px;z-index:4;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;color:#fff;line-height:1.2;min-width:0;pointer-events:none;
  }
  body.np-open .player-context.clickable{pointer-events:auto;cursor:pointer}
  body.np-open .player-context.clickable:active .pc-label{opacity:.7}
  .player-context .pc-eyebrow{font-size:10px;letter-spacing:.12em;color:#ffffffaa;font-weight:700;margin-bottom:2px}
  .player-context .pc-label{font-size:13px;font-weight:700;color:#fff;
    max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  body.np-open .player .now-playing{
    display:grid;grid-template-columns:1fr auto;
    
    grid-template-rows:minmax(0,1.6fr) auto minmax(24px,1fr) auto;
    grid-template-areas:
      "topspace topspace"
      "cover    cover"
      "spacer   spacer"
      "meta     like";
    gap:0 10px;
    width:100%;max-width:480px;flex:1 1 auto;align-items:end;
    min-height:0;
  }
  body.np-open .player .now-playing img{
    grid-area:cover;
    
    width:100%;height:auto;
    max-width:min(78vw,400px);
    max-height:min(48vh,400px);
    min-width:220px;min-height:220px;
    aspect-ratio:1/1;border-radius:12px;justify-self:center;
    box-shadow:0 28px 60px #000d;background:#222;object-fit:cover;margin:0;
  }
  
  @media (max-height:760px) and (orientation:portrait){
    body.np-open .player .now-playing img{
      min-width:140px;min-height:140px;
      
      max-width:clamp(140px, 38vh, 320px);
      max-height:clamp(140px, 38vh, 320px);
    }
  }
  body.np-open .player .now-playing .np-meta{
    grid-area:meta;
    display:flex;flex-direction:column;align-items:flex-start;
    gap:2px;min-width:0;width:100%;padding-right:0;position:static;
    margin-top:-16px;
  }
  body.np-open .np-title{
    font-size:22px;font-weight:800;letter-spacing:-0.01em;color:#fff;
    white-space:normal;overflow:hidden;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    line-height:1.15;
  }
  body.np-open .np-artist{
    font-size:14px;color:var(--text-muted);font-weight:500;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
  }
  body.np-open .player .np-play-mini{display:none}
  
  body.np-open .player #npLike{
    grid-area:like;position:static;
    width:42px;height:42px;color:#fff;padding:8px;align-self:end;
  }

  body.np-open .player .controls{
    display:flex;flex-direction:column-reverse;gap:22px;
    width:100%;max-width:480px;flex:0 0 auto;
  }
  body.np-open .player .controls .seek{
    display:flex;align-items:center;gap:10px;width:100%;
  }
  body.np-open .player .controls .seek .time{font-size:11px;color:var(--text-muted);
    font-variant-numeric:tabular-nums;min-width:34px}
  body.np-open .player .controls .seek .time:first-child{text-align:left;margin-right:6px}
  body.np-open .player .controls .seek .time:last-child{text-align:right;margin-left:6px}
  body.np-open .player .controls .seek .seek-track{flex:1;height:5px}
  body.np-open .player .controls .ctl-row{
    display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  }
  
  body.player-podcast.np-open .player .controls .ctl-row{
    justify-content:center;gap:2px;
  }
  body.player-podcast.np-open .player .controls .ctl-row #ctlSpeed,
  body.player-podcast.np-open .player .controls .ctl-row #ctlSleep,
  body.player-podcast.np-open .player .controls .ctl-row #ctlBack15,
  body.player-podcast.np-open .player .controls .ctl-row #ctlFwd15{
    width:42px;min-width:42px;padding:6px;
  }
  
  body.player-podcast.np-open .player .controls .ctl-row .play-btn{
    margin-left:14px;margin-right:14px;
  }
  body.np-open .player .controls .ctl-row .icon-btn{padding:10px;color:#fff}
  body.np-open .player .controls .ctl-row .icon-btn.active{color:var(--accent)}
  
  body.np-open .player .controls .ctl-row > :first-child{padding-left:0;margin-left:0}
  body.np-open .player .controls .ctl-row > :last-child{padding-right:0;margin-right:0}
  body.np-open .player .controls .ctl-row .icon-btn svg{width:26px;height:26px}
  
  body.np-open .player .controls .ctl-row #ctlPrev,
  body.np-open .player .controls .ctl-row #ctlNext{
    width:40px;height:40px;padding:0;
  }
  
  body.np-open .player .controls .ctl-row #ctlPrev{transform:translateX(8px)}
  body.np-open .player .controls .ctl-row #ctlNext{transform:translateX(-8px)}
  
  body.player-podcast.np-open .player .controls .ctl-row #ctlPrev,
  body.player-podcast.np-open .player .controls .ctl-row #ctlNext{transform:none}
  body.np-open .player .controls .ctl-row #ctlPrev svg,
  body.np-open .player .controls .ctl-row #ctlNext svg{width:35px;height:35px}
  body.np-open .player .controls .ctl-row .play-btn{
    
    width:55px;height:55px;flex:0 0 55px;border-radius:50%;background:#fff;color:#000;
    display:inline-flex;align-items:center;justify-content:center;
  }
  
  body.np-open .player .controls .ctl-row .icon-btn{flex:0 0 auto}
  body.np-open .player .controls .ctl-row .play-btn:hover,
  body.np-open .player .controls .ctl-row .play-btn:active{transform:none;filter:none;background:#fff}
  body.np-open .player .controls .ctl-row .play-btn svg{width:30px;height:30px}

  body.np-open .player .extra{
    display:flex;flex-direction:row;align-items:center;justify-content:flex-end;
    gap:8px;width:100%;max-width:480px;flex:0 0 auto;margin-top:4px;
  }
  
  body.np-open .player .extra > #devicesBtn{order:1}
  body.np-open .player .extra > #npQuality{order:2;margin-right:auto;padding-left:0;margin-left:-6px}
  
  body.np-open .player .extra:has(> #npQuality[hidden]) > #devicesBtn{margin-right:auto}
  body.np-open .player .extra > #lyricsBtn{order:3}
  body.np-open .player .extra > #queueBtn{order:4}

  body.np-open .player .extra > #queueBtn,
  body.np-open .player .extra > #lyricsBtn{transform:translateX(4px)}
  body.np-open .player .extra > #queueBtn{margin-left:0}
  body.np-open #npQuality{
    display:inline-flex;align-items:center;gap:6px;
    margin:0;padding:6px 10px;border-radius:6px;
  }
  
  body.np-open #npQuality{padding-left:6px}
  body.np-open #npQuality .q-flac,
  body.np-open #npQuality .q-sep{display:none}
  
  body.np-open .player .extra > #devicesBtn{
    color:var(--text-muted);padding:10px;margin:0;
    display:inline-flex;align-items:center;justify-content:center;
  }
  body.np-open .player .extra > #devicesBtn:hover{color:#fff}
  body.np-open .player .extra > #devicesBtn.active,
  body.np-open .player .extra > #devicesBtn.active:hover{color:#1ed760}
  
  body.casting.np-open .player .extra > #devicesBtn,
  body.airplaying.np-open .player .extra > #devicesBtn,
  body.controlling-remote.np-open .player .extra > #devicesBtn,
  body.casting.np-open .player .extra > #devicesBtn:hover,
  body.airplaying.np-open .player .extra > #devicesBtn:hover,
  body.controlling-remote.np-open .player .extra > #devicesBtn:hover{color:#1ed760}
  body.np-open .player .extra > #devicesBtn svg{width:22px;height:22px}
  body.np-open #lyricsBtn,
  body.np-open #queueBtn{color:var(--text-muted);padding:10px;margin:0}
  body.np-open #lyricsBtn:hover,body.np-open #queueBtn:hover{color:#fff}
  body.np-open #lyricsBtn svg,body.np-open #queueBtn svg{width:22px;height:22px}
  body.np-open #muteBtn,body.np-open .vol-track{display:none}
  
  body.controlling-pc.np-open #muteBtn{
    display:inline-flex !important;position:fixed !important;left:22px !important;
    bottom:calc(env(safe-area-inset-bottom) + 58px) !important;
    z-index:130 !important;color:var(--text-muted);background:transparent;
    width:auto;height:auto;padding:6px;
  }
  body.controlling-pc.np-open .vol-track{
    display:block !important;position:fixed !important;left:64px !important;right:64px !important;
    bottom:calc(env(safe-area-inset-bottom) + 70px) !important;
    width:auto !important;max-width:none !important;min-width:0 !important;height:6px !important;z-index:130 !important;
    flex:none !important;
  }
  
  body.controlling-mobile.np-open #muteBtn,
  body.controlling-mobile.np-open .vol-track{display:none}
  body.np-open .mini-progress{display:none}

  body.np-open .np-lyric-ticker{
    display:flex;align-items:flex-start;justify-content:center;text-align:center;
    position:absolute;left:22px;right:22px;
    bottom:calc(28px + env(safe-area-inset-bottom));
    max-width:480px;margin:0 auto;padding:0 6px;
    color:#ffffffd0;font-size:17px;font-weight:600;line-height:1.35;
    letter-spacing:.005em;text-shadow:0 1px 12px #0008;cursor:pointer;
    transition:opacity .25s ease,transform .25s ease;
    
    height:calc(17px * 1.35 * 2);max-height:none;overflow:hidden;
  }
  body.np-open .np-lyric-ticker:empty{display:none}
  body.np-open .np-lyric-ticker.fading{opacity:0;transform:translateY(4px)}
  
  body.controlling-remote.np-open .np-lyric-ticker{display:none !important}

  body.np-open .player .controls .ctl-row .icon-btn.active::after{display:none}

  body.np-open .mobile-nav{display:none}
  body.np-open .queue-panel,
  body.np-open .lyrics-panel{
    position:fixed;top:auto;bottom:0;left:0;right:0;width:auto;max-width:none;
    
    height:auto;max-height:calc(88dvh - env(safe-area-inset-top));
    top:max(12dvh, calc(env(safe-area-inset-top) + 10px));
    border-radius:18px 18px 0 0;
    z-index:140;transform:none;animation:none;
    box-shadow:none;
  }
}

@media all and (display-mode:standalone){
  body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  
  body.np-open .player{
    top:env(safe-area-inset-top) !important;
    height:calc(100dvh - env(safe-area-inset-top)) !important;
    
    padding-top:clamp(20px, 4vh, 48px) !important;
  }
}

.qc-code{font-family:monospace;font-size:42px;text-align:center;letter-spacing:.3em;color:var(--accent);background:#0c0c0c;border:1px solid #ffffff15;padding:22px 12px;border-radius:12px;margin-top:8px}

#syncBtn.active{background:linear-gradient(135deg,#7000ff,#1ed760);color:#fff;border-color:transparent}
#syncBtn.active i svg{color:#fff}

.sync-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.sync-big{display:flex;gap:14px;align-items:center;background:#1a1a1a;border:1px solid #ffffff10;color:#fff;padding:14px;border-radius:10px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s}
.sync-big:hover{background:#222;border-color:#1ed76055}
.sync-big .ico{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,#7000ff,#1ed760);color:#fff;flex:0 0 42px}
.sync-big small{display:block;color:#aaa;font-weight:400;font-size:12px;margin-top:2px}
.sync-or{display:flex;align-items:center;gap:10px;color:#666;font-size:12px;margin:6px 0}
.sync-or:before,.sync-or:after{content:"";flex:1;height:1px;background:#ffffff10}
.sync-members{display:flex;flex-wrap:wrap;gap:6px;max-height:160px;overflow:auto}
.sync-member{padding:6px 12px;background:#1ed76018;border:1px solid #1ed76040;color:#fff;border-radius:999px;font-size:13px}

.sync-card{max-width:460px}
.sync-card-head{display:flex;gap:14px;align-items:center;margin-bottom:18px}
.sync-card-icon{width:54px;height:54px;border-radius:50%;flex:0 0 54px;
  background:linear-gradient(135deg,#7000ff,#1ed760);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px #1ed76033}
.sync-card-icon svg{width:26px;height:26px}
.sync-code-row{display:flex;align-items:center;justify-content:space-between;
  background:#0f0f12;border:1px solid #ffffff10;border-radius:10px;padding:12px 14px;margin-bottom:18px}
.sync-code-pill{display:flex;align-items:center;gap:10px}
.sync-code-pill code{font-family:monospace;font-size:20px;color:#1ed760;letter-spacing:.2em;font-weight:700;background:transparent;padding:0}
.sync-code-copy{width:34px;height:34px;border-radius:8px;background:#1ed76018;color:#1ed760;
  border:1px solid #1ed76040;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}
.sync-code-copy:hover{background:#1ed76030}
.sync-code-copy svg{width:16px;height:16px}
.sync-section-title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-dim);margin:0 0 8px}
.sync-members{display:flex;flex-wrap:wrap;gap:6px;max-height:160px;overflow:auto;margin-bottom:6px}
.sync-member{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;
  background:#1ed76012;border:1px solid #1ed76033;color:#fff;border-radius:999px;font-size:13px}
.sync-member-dot{width:8px;height:8px;border-radius:50%;background:#1ed760;
  box-shadow:0 0 8px #1ed760aa;animation:syncPulse 1.6s ease-in-out infinite}
@keyframes syncPulse{0%,100%{opacity:1}50%{opacity:.4}}
.btn-leave{padding:9px 18px;border-radius:999px;font-weight:700;background:#ef4444;color:#fff;
  border:0;cursor:pointer;transition:background .15s,transform .1s}
.btn-leave:hover{background:#dc2626}
.btn-leave:active{transform:translateY(1px)}

.immersive{position:fixed;inset:0;z-index:90;display:grid;grid-template-rows:auto 1fr;
  background:#0a0a0a;color:#fff;overflow:hidden;animation:immFade .25s ease}
.immersive[hidden]{display:none}
@keyframes immFade{from{opacity:0}to{opacity:1}}
@media(max-width:880px){.immersive{display:none !important}}
.imm-bg{position:absolute;inset:-40px;background:#1a1a1a center/cover;
  filter:blur(48px) saturate(140%) brightness(.55);transform:scale(1.08);transition:background-image .4s}
.imm-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at center,#0000 0%,#000a 70%,#000d 100%);
  pointer-events:none}
.imm-top{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;
  padding:18px 28px}
.imm-eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#fff;opacity:.85}
.imm-actions{display:flex;gap:8px}
.imm-actions .icon-btn{width:38px;height:38px;border-radius:50%;background:#ffffff14;color:#fff}
.imm-actions .icon-btn:hover{background:#ffffff22}
.imm-main{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;
  padding:0 40px 140px;min-height:0}
.imm-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;min-width:0;width:100%}
.imm-cover{width:min(46vh,420px);aspect-ratio:1;border-radius:8px;overflow:hidden;
  box-shadow:0 30px 80px #000c;background:#1a1a1a}
.imm-cover img{width:100%;height:100%;object-fit:cover;display:block}
.imm-meta{text-align:center;max-width:560px}
.imm-meta h1{font-size:clamp(28px,3.4vw,44px);font-weight:900;margin:0;line-height:1.1;
  text-shadow:0 2px 12px #000c}
.imm-artist{margin:6px 0 0;font-size:15px;color:#ffffffd0}
.imm-artist a{color:inherit;text-decoration:none;transition:color .15s}
@media (hover:hover) and (pointer:fine){
  .imm-artist a:hover{color:#fff;text-decoration:underline}
}
.imm-side{position:absolute;right:24px;top:80px;bottom:140px;width:340px;
  background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;
  padding:18px;display:flex;flex-direction:column;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.imm-side h3{margin:0 0 12px;font-size:13px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:#ffffffb0}
.imm-queue{flex:1;overflow:auto;display:flex;flex-direction:column;gap:4px}
.imm-queue::-webkit-scrollbar{width:6px}
.imm-queue::-webkit-scrollbar-thumb{background:#ffffff22;border-radius:3px}
.imm-q{display:flex;align-items:center;gap:10px;padding:8px;border-radius:6px;cursor:pointer;
  transition:background .15s}
.imm-q:hover{background:#ffffff10}
.imm-q.playing{background:#1ed76020}
.imm-q img{width:40px;height:40px;border-radius:4px;object-fit:cover;flex-shrink:0;background:#222}
.imm-q-text{min-width:0;flex:1}
.imm-q-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imm-q-artist{font-size:12px;color:#ffffff90;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imm-q-empty{color:#ffffff70;font-size:13px;padding:20px 8px;text-align:center}
@media(max-width:1100px){
  .imm-main{padding-bottom:160px}
  .imm-side{display:none}
}

.immersive ~ .player,
body:has(.immersive:not([hidden])) .player{z-index:91;background:#0a0a0aee;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}

@media(max-width:880px){#immersiveBtn{display:none !important}}

.imm-stage.lyrics-mode .imm-cover{display:none}
.imm-stage.lyrics-mode .imm-meta{display:none}
.imm-lyrics{display:none;width:min(900px,86vw);max-width:900px;height:75vh;
  overflow-y:auto;overflow-x:hidden;
  text-align:center;font-size:clamp(22px,2.6vw,34px);font-weight:800;line-height:1.45;
  color:#fff;text-shadow:0 2px 16px #000c;padding:0 24px;
  align-self:center;flex:0 0 auto;
  position:relative;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 18%,#000 82%,transparent 100%);
          mask-image:linear-gradient(180deg,transparent 0%,#000 18%,#000 82%,transparent 100%)}
.imm-lyrics .imm-lines-wrap{
  
  padding-top:calc(75vh / 2 - .7em);padding-bottom:calc(75vh / 2)}
.imm-lyrics::-webkit-scrollbar{display:none;width:0;height:0}
.imm-lyrics{scrollbar-width:none}
.imm-lyrics .imm-line{padding:8px 4px;color:#ffffff55;cursor:pointer;border-radius:6px;
  transition:color .25s,transform .25s,background .15s}
.imm-lyrics .imm-line:hover{background:#ffffff10;color:#fff}
.imm-lyrics .imm-line.active{color:#fff;transform:scale(1.04)}
.imm-lyrics .imm-line.past{color:#ffffff35}
.imm-lyrics-empty{color:#ffffff80;font-size:18px;font-weight:600;padding:30vh 0}
.imm-stage.lyrics-mode .imm-lyrics{display:block}

.imm-actions .icon-btn.active{background:#1ed76033;color:#1ed760}

.devices-pop{position:fixed;bottom:96px;right:160px;z-index:120;
  background:#1a1a1a;border:1px solid #ffffff14;border-radius:10px;
  width:340px;padding:14px 14px 12px;box-shadow:0 18px 50px #000c;
  color:#fff;animation:devPop .18s ease}
@keyframes devPop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.devices-pop h3{margin:0 0 4px;font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px}
.devices-pop h3 .dev-dot{width:8px;height:8px;border-radius:50%;background:#1ed760;
  box-shadow:0 0 8px #1ed760cc;animation:syncPulse 1.6s ease-in-out infinite}
.devices-pop p.dev-sub{margin:0 0 12px;font-size:12px;color:var(--text-muted)}
.dev-list{display:flex;flex-direction:column;gap:2px;margin:0 -6px}
.dev-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:8px;
  cursor:pointer;transition:background .15s}
.dev-item:hover{background:#ffffff10}
.dev-item.current{background:#1ed76012}
.dev-item .dev-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  border-radius:8px;background:#ffffff10;color:#fff;flex-shrink:0}
.dev-item.current .dev-icon{color:#1ed760}
.dev-text{min-width:0;flex:1}
.dev-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dev-info{font-size:12px;color:var(--text-muted)}
.dev-item.current .dev-info{color:#1ed760}
.dev-actions{margin-top:10px;padding-top:10px;border-top:1px solid #ffffff10;display:flex;gap:8px}
.dev-actions button{flex:1;min-width:0;padding:8px 10px;border-radius:6px;background:#ffffff10;color:#fff;
  border:0;cursor:pointer;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
.dev-actions button > svg{flex:0 0 auto}
.dev-actions button:hover{background:#ffffff20}
.dev-actions button.primary{background:#1ed760;color:#000}
.dev-actions button.primary:hover{background:#1ed760dd}
.dev-row-actions{display:flex;gap:4px;margin-left:auto}
.dev-row-actions button{width:30px;height:30px;border-radius:50%;background:#ffffff14;color:#fff;
  border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.dev-row-actions button:hover{background:#ffffff26}
.dev-row-actions button.primary{background:#1ed760;color:#000}
.dev-row-actions button.primary:hover{background:#1ed760dd}
.dev-row-actions svg{width:14px;height:14px}
.dev-item.controlling{background:#1ed76018;outline:1px solid #1ed76055}

@media(max-width:880px){
  
  .view{scrollbar-width:none;-ms-overflow-style:none}
  .view::-webkit-scrollbar{display:none;width:0;height:0}
  .devices-pop{
    position:fixed;left:0;right:0;bottom:0;top:auto;
    width:auto;max-width:none;border-radius:18px 18px 0 0;
    padding:18px 16px calc(18px + env(safe-area-inset-bottom));
    z-index:210;
    animation:devSheetUp .25s ease;
    
    will-change:transform;transform:translateZ(0);
    
    box-shadow:0 -8px 24px #0009;
  }
  body.np-open .devices-pop{z-index:210}
  
  .ctx-grab{position:relative;display:block;width:100%;height:22px;margin-bottom:6px;
    cursor:grab;touch-action:none;flex:0 0 auto}
  .ctx-grab::before{content:"";position:absolute;left:50%;top:50%;
    transform:translate(-50%,-50%);width:42px;height:4px;border-radius:2px;
    background:#ffffff45}
  
  .devices-pop .dev-actions button{margin-bottom:1rem}
}
@keyframes devSheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}

.remote-banner{
  position:fixed;left:0;right:0;bottom:90px;z-index:92;
  display:flex;align-items:center;gap:10px;justify-content:center;
  padding:8px 14px;background:#1ed760;color:#000;font-weight:700;
  font-size:13px;letter-spacing:.01em;
}
.remote-banner .rb-name{display:inline-flex;align-items:center;gap:6px;flex:1;justify-content:center;text-align:center;padding-left:34px}
.remote-banner .rb-close{
  margin-left:8px;background:#0008;color:#fff;border:0;width:26px;height:26px;
  border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
}
.remote-banner .rb-close:hover{background:#000c}
body.controlling-remote .player{box-shadow:inset 0 2px 0 #1ed760, 0 -8px 24px #1ed76022}

body.controlling-remote:not(.np-open) .player::after{box-shadow:inset 0 2px 0 #1ed760}
body.controlling-remote .player .ctl-row .play-btn{background:#1ed760}

body.controlling-remote.np-open .player .controls .ctl-row .play-btn{background:#1ed760;color:#000}
body.controlling-remote .np-quality{display:none}
@media(max-width:880px){
  .remote-banner{bottom:calc(var(--player-h) + var(--mobile-nav-h) + env(safe-area-inset-bottom) + 8px)}
  body.np-open .remote-banner{bottom:calc(env(safe-area-inset-bottom) + 8px)}
}

body.casting .player{box-shadow:inset 0 2px 0 #1ed760, 0 -8px 24px #1ed76022}
body.casting:not(.np-open) .player::after{box-shadow:inset 0 2px 0 #1ed760}
body.casting .player .ctl-row .play-btn{background:#1ed760}
body.casting.np-open .player .controls .ctl-row .play-btn{background:#1ed760;color:#000}
body.casting .np-quality{display:none}

body.airplaying .player .ctl-row .play-btn{background:#1ed760}
body.airplaying.np-open .player .controls .ctl-row .play-btn{background:#1ed760;color:#000}

.rotate-overlay{display:none}

html.force-landscape .rotate-overlay,
html.force-landscape .app{}
html.force-landscape .rotate-overlay{
  display:flex;position:fixed;inset:0;z-index:99999;
  background:radial-gradient(circle at 50% 35%,#181818 0%,#0a0a0a 70%);
  align-items:center;justify-content:center;padding:24px;
  color:#fff;text-align:center;
  padding-top:calc(env(safe-area-inset-top) + 24px);
  padding-bottom:calc(env(safe-area-inset-bottom) + 24px);
}

html.force-landscape body > *:not(#rotateOverlay){visibility:hidden!important}
html.force-landscape .rotate-inner{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:380px}
html.force-landscape .rotate-overlay svg{color:#1ed760;animation:rotateHint 2.4s ease-in-out infinite;transform-origin:50% 50%}
html.force-landscape .rotate-title{font-size:20px;font-weight:700;letter-spacing:.2px}
html.force-landscape .rotate-sub{font-size:14px;color:#b3b3b3}
@media (orientation:landscape) and (pointer:coarse) and (max-width:1024px){
  .rotate-overlay{
    display:flex;position:fixed;inset:0;z-index:99999;
    background:radial-gradient(circle at 50% 35%,#181818 0%,#0a0a0a 70%);
    align-items:center;justify-content:center;padding:24px;
    color:#fff;text-align:center;
    padding-top:calc(env(safe-area-inset-top) + 24px);
    padding-bottom:calc(env(safe-area-inset-bottom) + 24px);
  }
  .rotate-inner{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:380px}
  .rotate-overlay svg{color:#1ed760;animation:rotateHint 2.4s ease-in-out infinite;transform-origin:50% 50%}
  .rotate-title{font-size:20px;font-weight:700;letter-spacing:.2px}
  .rotate-sub{font-size:14px;color:#b3b3b3}
}
@keyframes rotateHint{
  0%,20%   { transform:rotate(0deg) }
  50%,70%  { transform:rotate(-90deg) }
  100%     { transform:rotate(0deg) }
}

.np-artist a {
  color: inherit;
  text-decoration: none;
  transition: color .15s;
}
@media (hover:hover) and (pointer:fine) {
  .np-artist a:hover { color:#fff; text-decoration:underline; }
}

.mobile-only { display: none; }
@media (max-width: 880px) {
  .mobile-only { display: inline-flex; }
}

.tracks .reorder-grip {
  display: none;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin-left: 8px;
  color: var(--text-muted);
  background: transparent;
  border: 0;
  cursor: grab;
  touch-action: none;            
}

.card.card-podcast .cover{border-radius:10px}
.card.card-podcast .subtitle{font-style:italic}
.podcast-desc{
  max-height:4.6em;overflow:hidden;text-overflow:ellipsis;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  white-space:normal;opacity:.78;margin-top:6px;line-height:1.45;
}
.podcast-episodes{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.ep-row{
  display:flex;align-items:center;gap:14px;padding:12px 14px;
  border-radius:10px;background:#ffffff05;cursor:pointer;
  transition:background .15s ease;
}
.ep-row:hover{background:#ffffff0c}
.ep-row .ep-play{
  flex:0 0 auto;width:40px;height:40px;border-radius:50%;
  background:var(--accent);color:#000;border:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:transform .15s ease;
}
.ep-row .ep-play:hover{transform:scale(1.06)}
.ep-row .ep-play svg{width:18px;height:18px}
.ep-row .ep-meta{flex:1;min-width:0}
.ep-row .ep-title{font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ep-row .ep-sub{font-size:.85em;color:var(--text-muted, #9aa);margin-top:3px}
.ep-row .ep-desc{
  font-size:.85em;color:var(--text-muted, #9aa);
  margin-top:6px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;
}
@media (max-width:880px){
  .ep-row{padding:10px 12px;gap:10px}
  .ep-row .ep-play{width:36px;height:36px}
  .ep-row .ep-desc{-webkit-line-clamp:3}
}
.tracks.editing .row {
  cursor: default;
  pointer-events: none;          
  user-select: none;
}
.tracks.editing .row .reorder-grip {
  display: inline-flex;
  pointer-events: auto;          
}

.tracks.editing .row .t-fav .fav-btn,
.tracks.editing .row .t-fav .more-btn { display: none; }
.tracks .t-fav .reorder-grip { margin-left: 0; }

.tracks.editing .row .t-fav .reorder-grip {
  opacity: 1 !important;
  color: #fff;
}
@media (max-width: 880px) {
  
  .tracks .t-fav .reorder-grip { width: 28px; height: 28px; }
}

.tracks { position: relative; }
.tracks .row.swiping {
  transition: none !important;
  z-index: 2;
  will-change: transform;
}
.tracks .swipe-bg {
  position: absolute;
  left: 0; right: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
  border-radius: 8px;
}
.tracks .swipe-strip {
  position: absolute;
  top: 0; bottom: 0;
  width: 0;            
  overflow: hidden;
  display: flex;
}

.tracks .swipe-strip-left  { left: 0;  background: #1db954; justify-content: flex-end;   }
.tracks .swipe-strip-right { right: 0; background: #e91e63; justify-content: flex-start; }
.tracks .swipe-strip-right.is-liked { background: #6b6b6b; }
.tracks .swipe-strip .swipe-strip-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 22px;
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
  height: 100%;
}
.tracks .swipe-strip .swipe-strip-inner svg { width: 22px; height: 22px; flex: 0 0 auto; }
.tracks .row.swipe-armed-left,
.tracks .row.swipe-armed-right { box-shadow: 0 0 0 1px rgba(255,255,255,.15); }

.ly-artist a { color: inherit; text-decoration: none; }
.ly-artist a:hover { color: #fff; text-decoration: underline; }
.tracks.editing .row.reorder-dragging {
  background: #ffffff10;
  border-radius: 8px;
  opacity: .85;
}

.action-row .action-hint {
  font-size: 13px;
  color: var(--text-muted);
  margin-left: 8px;
  align-self: center;
}

.tracks.tracks-episodes .head,
.tracks.tracks-episodes .row {
  grid-template-columns: 36px 4fr 1.2fr 1fr 88px;
}
.tracks.tracks-episodes .row .t-main img {
  border-radius: 6px;
}
.tracks.tracks-episodes .row .t-fav {
  display: flex; align-items: center; justify-content: flex-end; gap: 6px;
}
.tracks.tracks-episodes .row .ep-save-btn {
  background: transparent; border: 0; padding: 4px; cursor: pointer;
  color: var(--text-muted); display: inline-flex; align-items: center;
  transition: transform .15s ease, color .15s ease;
  will-change: transform;
}
.tracks.tracks-episodes .row.is-saved .ep-save-btn { color: var(--accent, #1ed760); }
.tracks.tracks-episodes .row .ep-save-btn:hover { transform: scale(1.18); }
.tracks.tracks-episodes .row .ep-save-btn:active { transform: scale(0.94); }
.tracks.tracks-episodes .row .more-btn { position: relative; }

@media (max-width: 1100px) {
  .tracks.tracks-episodes .head,
  .tracks.tracks-episodes .row {
    grid-template-columns: 1fr 58px 28px;
    gap: 14px;
    padding: 6px 14px 6px 6px;
  }
  .tracks.tracks-episodes .head .h-added,
  .tracks.tracks-episodes .row .t-added { display: none; }
  
  .tracks.tracks-episodes .head > *:nth-child(1) { display: none; }
  
  .tracks.tracks-episodes .head > *:nth-child(2) { grid-column: 1; padding-left: 56px; }
  
  .tracks.tracks-episodes .head > *:nth-child(4) {
    grid-column: 2; text-align: center;
    padding: 0 0 0 14px;
  }
  .tracks.tracks-episodes .head > *:nth-child(5) { grid-column: 3; }
  .tracks.tracks-episodes .row .num,
  .tracks.tracks-episodes .row .num-eq { display: none; }
  .tracks.tracks-episodes .row { position: relative; }
  .tracks.tracks-episodes .row .t-main {
    grid-column: 1; min-width: 0; display: flex; align-items: center; gap: 14px;
  }
  .tracks.tracks-episodes .row .t-main img {
    margin-left: 0; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 6px;
  }
  .tracks.tracks-episodes .row .t-text {
    min-width: 0; flex: 1 1 auto; overflow: hidden;
  }
  .tracks.tracks-episodes .row .t-text .t-title {
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: 14px; line-height: 1.25;
  }
  .tracks.tracks-episodes .row .t-text .t-artist {
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: 12px; color: var(--text-muted);
  }
  .tracks.tracks-episodes .row .t-dur {
    grid-column: 2; text-align: center; font-variant-numeric: tabular-nums;
    font-size: 12px; color: var(--text-muted);
    
    position: relative; padding-left: 14px;
  }
  .tracks.tracks-episodes .row .t-dur::before{
    position:absolute;left:0;top:50%;transform:translateY(-50%);
    width:7px;height:7px;flex:none;
  }
  .tracks.tracks-episodes .row .t-fav {
    grid-column: 3; gap: 0; justify-content: flex-end;
  }
  .tracks.tracks-episodes .row .t-fav .ep-save-btn,
  .tracks.tracks-episodes .row .t-fav .fav-btn { display: none; }
  .tracks.tracks-episodes .row .t-fav .more-btn {
    display: inline-flex; width: 28px; height: 28px;
    align-items: center; justify-content: center;
  }
}

.ep-loader {
  text-align: center;
  padding: 18px 12px 8px;
  color: var(--text-muted, #9aa);
  font-size: 13px;
}

.card.card-my-episodes .my-eps-cover {
  width: 100%; aspect-ratio: 1/1;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #1ed760 0%, #145a32 100%);
  border-radius: 10px;
  color: #fff;
}
.card.card-my-episodes .my-eps-cover svg { width: 44%; height: 44%; }

.card.show-mobile { display: none; }
@media (max-width: 880px) {
  .card.show-mobile { display: block; }
}

.lib-podcasts-section.has-only-myeps { display: none; }
@media (max-width: 880px) {
  .lib-podcasts-section.has-only-myeps { display: block; }
}

.fav-link.my-eps-link:hover,
.fav-link.my-eps-link.active {
  background: linear-gradient(135deg, #1ed760 0%, #145a32 100%);
}
.fav-link.my-eps-link.playing { color: #1ed760 !important; }
.fav-link.my-eps-link.playing:hover,
.fav-link.my-eps-link.playing.active { color: #fff !important; }
.fav-link.my-eps-link.playing:hover i,
.fav-link.my-eps-link.playing.active i { color: #fff; filter: drop-shadow(0 0 6px #ffffff66); }

.lib-page section + section { margin-top: 30px; }

.ep-search-wrap{margin:14px 0 10px;display:flex;flex-direction:column;gap:6px}
.ep-search{position:relative;display:flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);
  border-radius:12px;padding:8px 10px;transition:border-color .15s,background .15s}
.ep-search:focus-within{border-color:var(--accent);background:rgba(255,255,255,.09)}
.ep-search-icon{display:inline-flex;color:var(--text-muted);flex:0 0 auto}
.ep-search-input{flex:1;min-width:0;background:transparent;border:0;outline:0;
  color:var(--text);font:inherit;font-size:14px;padding:2px 0}
.ep-search-input::placeholder{color:var(--text-muted)}

.ep-search-input::-webkit-search-cancel-button,
.ep-search-input::-webkit-search-decoration,
.ep-search-input::-webkit-search-results-button,
.ep-search-input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none;display:none}
.ep-search-clear{background:transparent;border:0;color:var(--text-muted);
  padding:4px;cursor:pointer;display:inline-flex;align-items:center;border-radius:6px}
.ep-search-clear:hover{color:var(--text);background:rgba(255,255,255,.06)}

.ep-search-clear[hidden]{display:inline-flex!important;visibility:hidden;pointer-events:none}
.ep-search-empty{color:var(--text-muted);font-size:13px;padding:10px 4px}

.tracks.tracks-episodes.is-filtering .tracks-body{min-height:50vh}

.action-row #podNotif.is-active{color:var(--accent)}
.action-row #podNotif{transition:color .15s ease, transform .15s ease}
.action-row #podNotif:hover{transform:scale(1.06)}

.action-row #podNotif.is-active.needs-perm{color:#f5a623;opacity:.6}
.action-row #podNotif.is-active.needs-perm:hover{opacity:.85}

.tracks.tracks-episodes .row .t-dur{
  position:relative;overflow:visible;
}
.tracks.tracks-episodes .row .t-dur::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:7px;height:7px;border-radius:50%;
  background:#3b82f6;pointer-events:none;
}
.tracks.tracks-episodes .row.is-played .t-dur::before{background:var(--accent,#1ed760)}
.tracks.tracks-episodes .row.is-progress .t-dur::before{background:#f5a623}

@media (min-width:721px){

.tracks.tracks-episodes .row .t-dur{
  text-align:right;padding-left:0;padding-right:24px;
}
.tracks.tracks-episodes .row .t-dur .t-dur-val{
  display:inline-block;min-width:60px;text-align:center;
}
.tracks.tracks-episodes .head .h-dur-cell{
  position:relative;text-align:right;overflow:visible;
  padding-left:0;padding-right:24px;
}
.tracks.tracks-episodes .head .h-dur-cell .h-dur-lbl{
  min-width:60px;text-align:center;
}
}
.tracks.tracks-episodes .head .h-dur-cell .h-stat{
  position:absolute;left:3.5px;top:50%;transform:translate(-50%,-50%);
  
  font-size:inherit;color:inherit;opacity:1;
  text-transform:uppercase;letter-spacing:inherit;white-space:nowrap;
}
.tracks.tracks-episodes .head .h-dur-cell .h-dur-lbl{
  display:inline-block;
}

@media (max-width:720px){
  .ep-search{padding:10px 12px;border-radius:14px}
  .ep-search-input{font-size:15px}
  
  .ep-search-wrap{margin-left:14px;margin-right:14px}
  .ep-search-empty{padding:14px;text-align:center}
}