/* ── Wavify CSS ── */
:root {
  --bg: #0a0a0f;
  --bg-2: #111118;
  --bg-3: #18181f;
  --bg-4: #22222e;
  --border: rgba(255,255,255,0.06);
  --accent: #1ed760;
  --accent-2: #1ab84e;
  --accent-glow: rgba(30,215,96,0.25);
  --text: #ffffff;
  --text-2: rgba(255,255,255,0.65);
  --text-3: rgba(255,255,255,0.35);
  --player-h: 88px;
  --sidebar-w: 240px;
  --nav-h: 0px;
  --radius: 12px;
  --radius-sm: 8px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}

body{
  font-family:'DM Sans',sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
}

html{
  overflow-x:hidden;
}

.main-content{
  margin-left:var(--sidebar-w);
  padding-bottom:calc(var(--player-h) + 2rem);
  min-height:100vh;
  overflow-x:hidden;
  width:calc(100% - var(--sidebar-w));
}

/* ── SIDEBAR (desktop) ── */
.sidebar{
  position:fixed;
  top:0;left:0;
  width:var(--sidebar-w);
  bottom:var(--player-h);
  background:var(--bg-2);
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;
  overflow-y:auto;
  z-index:100;
  padding:1.25rem 0 1rem;
}

.sidebar-logo{
  font-family:'Syne',sans-serif;
  font-weight:800;font-size:1.25rem;
  color:var(--accent);
  padding:0 1.25rem 1.25rem;
  display:flex;align-items:center;gap:8px;
  letter-spacing:-0.3px;
}
.logo-icon{font-size:1.4rem;}

.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 0.75rem;}
.sidebar-link{
  display:flex;align-items:center;gap:14px;
  padding:11px 14px;border-radius:var(--radius-sm);
  color:var(--text-2);cursor:pointer;
  text-decoration:none;font-weight:500;font-size:0.9rem;
  transition:background 0.15s,color 0.15s;
}
.sidebar-link:hover{background:var(--bg-3);color:var(--text);}
.sidebar-link.active{background:var(--bg-4);color:var(--accent);}
.sidebar-link i{width:20px;text-align:center;font-size:1rem;}

.sidebar-playlists{margin-top:1.5rem;padding:0 0.75rem;flex:1;}
.sidebar-section-title{
  font-size:0.7rem;font-weight:700;letter-spacing:1.5px;
  color:var(--text-3);padding:0 14px;margin-bottom:0.5rem;
}
.sidebar-playlist-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 14px;border-radius:var(--radius-sm);
  color:var(--text-2);cursor:pointer;font-size:0.875rem;
  transition:background 0.15s,color 0.15s;
}
.sidebar-playlist-item:hover{background:var(--bg-3);color:var(--text);}
.sidebar-playlist-item .pi-cover{
  width:32px;height:32px;border-radius:4px;
  background:var(--bg-4);
  display:flex;align-items:center;justify-content:center;
  font-size:0.75rem;color:var(--text-3);flex-shrink:0;
}
.create-playlist-btn{
  display:flex;align-items:center;gap:8px;
  background:none;border:none;color:var(--text-3);cursor:pointer;
  padding:9px 14px;border-radius:var(--radius-sm);
  font-size:0.875rem;font-family:'DM Sans',sans-serif;
  transition:color 0.15s,background 0.15s;width:100%;margin-top:0.5rem;
}
.create-playlist-btn:hover{color:var(--text);background:var(--bg-3);}

/* ── SPLASH SCREEN ── */
#splashScreen {
  position: fixed;
  inset: 0;
  background: var(--bg);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

#splashScreen.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.splash-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.splash-logo {
  font-size: 5rem;
  color: var(--accent);
  animation: splashPulse 1.6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  line-height: 1;
  filter: drop-shadow(0 0 32px rgba(30, 215, 96, 0.5));
  user-select: none;
}

@keyframes splashPulse {
  0%   { transform: scale(0.8)  rotate(0deg);   opacity: 0.6; }
  50%  { transform: scale(1.2)  rotate(180deg); opacity: 1;   }
  100% { transform: scale(0.8)  rotate(360deg); opacity: 0.6; }
}

.splash-fact {
  margin-top: 2rem;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.875rem;
  color: var(--text-3);
  text-align: center;
  width: 100%;
  letter-spacing: 0.2px;
  transition: opacity 0.3s ease, transform 0.3s ease;
  animation: factFadeIn 0.6s ease 0.3s both;
}

@keyframes factFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0);   }
}
@keyframes factFadeIn {
  from { opacity: 0; transform: translateX(-50%) translateY(8px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0);   }
}
.content-section{display:none;}
.content-section.active{display:block;}

/* ── HOME TOP BAR ── */
.home-topbar{
  position:sticky;top:0;z-index:200;
  background:rgba(10,10,15,0.85);
  backdrop-filter:blur(16px);
  padding:14px 20px 0;
}
.home-profile-row{
  display:flex;align-items:center;gap:12px;
  padding-bottom:14px;
}

.home-avatar-wrap{cursor:pointer;flex-shrink:0;position:relative;}
.home-avatar{
  width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,var(--accent),#0ba7e0);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:1rem;color:#000;
  cursor:pointer;
}

/* ── MOBILE PROFILE DROPDOWN ── */
.mobile-profile-dropdown{
  position:fixed;
  top:64px;
  left:12px;
  width:220px;
  background:var(--bg-3);
  border:1px solid var(--border);
  border-radius:var(--radius);
  display:none;
  box-shadow:0 20px 60px rgba(0,0,0,0.6);
  overflow:hidden;
  z-index:9999;
}
.mobile-profile-dropdown.open{display:block;}
.mobile-profile-dropdown .profile-drop-header{
  display:flex;align-items:center;gap:12px;padding:14px;
}
.mobile-profile-dropdown .drop-divider{border:none;border-top:1px solid var(--border);margin:4px 0;}
.mobile-profile-dropdown a{
  display:flex;align-items:center;gap:10px;
  padding:11px 14px;color:var(--text-2);text-decoration:none;
  font-size:0.875rem;transition:background 0.15s,color 0.15s;cursor:pointer;
}
.mobile-profile-dropdown a:hover{background:var(--bg-4);color:var(--text);}
.mobile-profile-dropdown a i{width:16px;text-align:center;}

/* Filter pills */
.home-filter-pills{
  display:flex;gap:8px;flex:1;
  overflow-x:auto;padding-bottom:2px;
}
.home-filter-pills::-webkit-scrollbar{display:none;}
.filter-pill{
  background:var(--bg-3);border:none;
  border-radius:50px;padding:7px 16px;
  color:var(--text-2);cursor:pointer;
  font-family:'DM Sans',sans-serif;font-size:0.875rem;font-weight:500;
  white-space:nowrap;flex-shrink:0;
  transition:background 0.2s,color 0.2s;
}
.filter-pill:hover{background:var(--bg-4);color:var(--text);}
.filter-pill.active{background:var(--accent);color:#000;font-weight:600;}

/* Desktop: search bar + profile in top bar right */
.home-topbar-right{
  display:flex;align-items:center;gap:10px;margin-left:auto;
  flex-shrink:0;
}
.nav-search-inline{
  position:relative;display:flex;align-items:center;
}
.nav-search-inline i{
  position:absolute;left:13px;color:var(--text-3);font-size:0.85rem;
}
.nav-search-inline input{
  width:260px;
  background:var(--bg-3);border:1px solid var(--border);
  border-radius:50px;padding:9px 14px 9px 36px;
  color:var(--text);font-size:0.875rem;
  font-family:'DM Sans',sans-serif;outline:none;
  transition:border-color 0.2s,width 0.3s;
}
.nav-search-inline input:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-glow);
  width:320px;
}
.nav-search-inline input::placeholder{color:var(--text-3);}

.search-results-drop{
  position:absolute;top:calc(100% + 8px);left:0;right:0;
  background:var(--bg-3);border:1px solid var(--border);
  border-radius:var(--radius);display:none;
  max-height:400px;overflow-y:auto;z-index:2000;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
  min-width:300px;
}
.search-results-drop.open{display:block;}
.search-drop-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 14px;cursor:pointer;transition:background 0.15s;
}
.search-drop-item:hover{background:var(--bg-4);}
.search-drop-item img{width:40px;height:40px;border-radius:6px;object-fit:cover;}
.search-drop-item .si-info .si-title{font-size:0.875rem;font-weight:500;}
.search-drop-item .si-info .si-sub{font-size:0.75rem;color:var(--text-3);}

.nav-icon-btn{
  background:none;border:none;cursor:pointer;
  color:var(--text-2);font-size:1rem;
  padding:8px;border-radius:50%;transition:color 0.2s,background 0.2s;
}
.nav-icon-btn:hover{color:var(--text);background:var(--bg-3);}

.avatar{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--accent),#0ba7e0);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:0.85rem;color:#000;cursor:pointer;
}
.avatar.lg{width:44px;height:44px;font-size:1rem;}

.profile-menu{position:relative;}
.profile-btn{
  background:none;border:none;cursor:pointer;
  display:flex;align-items:center;gap:4px;
  padding:4px;border-radius:50px;transition:background 0.2s;color:var(--text-2);
}
.profile-btn:hover{background:var(--bg-3);}

.profile-dropdown{
  position:absolute;top:calc(100% + 10px);right:0;
  width:220px;background:var(--bg-3);border:1px solid var(--border);
  border-radius:var(--radius);display:none;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);overflow:hidden;z-index:3000;
}
.profile-dropdown.open{display:block;}
.profile-drop-header{display:flex;align-items:center;gap:12px;padding:14px;}
.profile-name{font-weight:600;font-size:0.9rem;}
.profile-email{font-size:0.75rem;color:var(--text-3);}
.drop-divider{border:none;border-top:1px solid var(--border);margin:4px 0;}
.profile-dropdown a{
  display:flex;align-items:center;gap:10px;
  padding:11px 14px;color:var(--text-2);text-decoration:none;
  font-size:0.875rem;transition:background 0.15s,color 0.15s;
}
.profile-dropdown a:hover{background:var(--bg-4);color:var(--text);}
.profile-dropdown a i{width:16px;text-align:center;}

/* ── HOME CONTENT PADDING ── */
#section-home .category-block,
.quick-grid,
.quick-grid-footer{
  padding:0 20px;
}

/* ── QUICK GRID (liked + playlists) ── */
.quick-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin-bottom:8px;
}
#quickPlaylistTiles{
  display:contents;
}
.quick-grid-footer{
  margin-bottom:20px;
  display:flex;justify-content:flex-end;
}

.quick-tile{
  display:flex;align-items:center;gap:12px;
  background:var(--bg-3);
  border-radius:var(--radius-sm);
  overflow:hidden;cursor:pointer;
  transition:background 0.2s;
  height:56px;
}
.quick-tile:hover{background:var(--bg-4);}
.quick-tile-cover{
  width:56px;height:56px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;
}
.liked-tile-cover{
  background:linear-gradient(135deg,#4158d0 0%,#c850c0 50%,var(--accent) 100%);
  color:#fff;
}
.quick-tile-cover img{width:100%;height:100%;object-fit:cover;}
.quick-tile-name{
  font-size:0.875rem;font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  flex:1;padding-right:8px;
}
.quick-tile-playing{
  margin-left:auto;margin-right:12px;
  color:var(--accent);font-size:0.8rem;
}

/* ── SECTION TOP BAR (for non-home sections) ── */
.section-topbar-simple{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 20px 0;
  margin-bottom:16px;
}

/* ── TRENDING CARDS ── */
.trending-slider .song-card{
  width:200px;
  flex-shrink:0;
}
.trending-slider .card-cover{
  aspect-ratio:1;
}
.trend-card{
  flex-shrink:0;width:200px;
  cursor:pointer;
  transition:transform 0.2s;
}
.trend-card:hover{transform:scale(1.02);}
.trend-card:hover .card-play-btn{opacity:1;transform:translateY(0);}
.trend-card:hover .card-dots-btn{opacity:1;}

@media(max-width:768px){
  .trend-card .card-play-btn{opacity:1;transform:translateY(0);}
  .trend-card .card-dots-btn{opacity:1;}
}
.trend-card-cover{
  width:100%;aspect-ratio:1;
  border-radius:var(--radius);overflow:hidden;
  position:relative;margin-bottom:10px;
}
.trend-card-cover img{width:100%;height:100%;object-fit:cover;}
.trend-card-cover-placeholder{
  width:100%;height:100%;
  background:linear-gradient(135deg,var(--bg-4),var(--bg-3));
  display:flex;align-items:center;justify-content:center;
  font-size:3rem;color:var(--text-3);
}
.trend-card-title{font-size:0.9rem;font-weight:600;margin-bottom:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.trend-card-sub{font-size:0.78rem;color:var(--text-3);
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  line-height:1.4;}

.section-title{
  font-family:'Syne',sans-serif;
  font-size:1.8rem;font-weight:800;
  margin-bottom:1.5rem;
}

/* ── CATEGORY BLOCKS ── */
.category-block{margin-bottom:2.5rem;}
.category-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:12px;
}
.category-header h2{
  font-family:'Syne',sans-serif;
  font-size:1.3rem;font-weight:700;
}
.view-all-btn{
  background:none;border:none;
  color:var(--text-3);cursor:pointer;
  font-size:0.8rem;font-weight:600;letter-spacing:0.3px;
  padding:4px 0;
  font-family:'DM Sans',sans-serif;
  transition:color 0.2s;
}
.view-all-btn:hover{color:var(--text);}

/* ── CARD SLIDERS ── */
.cards-slider{
  display:flex;gap:14px;
  overflow-x:auto;
  padding-bottom:8px;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
}
.cards-slider::-webkit-scrollbar{height:3px;}
.cards-slider::-webkit-scrollbar-track{background:transparent;}
.cards-slider::-webkit-scrollbar-thumb{background:var(--bg-4);border-radius:2px;}
.cards-slider.wide{flex-wrap:wrap;overflow:visible;}

.song-card{
  flex-shrink:0;
  width:155px;
  background:var(--bg-2);
  border-radius:var(--radius);
  padding:12px;cursor:pointer;
  transition:background 0.2s,transform 0.2s,box-shadow 0.2s;
  position:relative;
}
.song-card:hover{
  background:var(--bg-3);
  transform:translateY(-2px);
  box-shadow:0 12px 40px rgba(0,0,0,0.4);
}
.song-card:hover .card-play-btn{opacity:1;transform:translateY(0);}

.card-cover{
  width:100%;aspect-ratio:1;border-radius:var(--radius-sm);
  background:var(--bg-4);
  margin-bottom:10px;overflow:hidden;position:relative;
}
.card-cover img{width:100%;height:100%;object-fit:cover;}
.card-cover-placeholder{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  font-size:2rem;color:var(--text-3);
  background:linear-gradient(135deg,var(--bg-4),var(--bg-3));
}

.card-play-btn{
  position:absolute;bottom:8px;right:8px;
  width:40px;height:40px;border-radius:50%;
  background:var(--accent);
  border:none;cursor:pointer;color:#000;
  font-size:0.95rem;
  display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(6px);
  transition:opacity 0.2s,transform 0.2s;
  box-shadow:0 8px 24px rgba(30,215,96,0.4);
}

.card-title{
  font-size:0.875rem;font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  margin-bottom:4px;
}
.card-artist{
  font-size:0.75rem;color:var(--text-3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* Playlist card variant */
.playlist-card{
  flex-shrink:0;width:160px;
  background:var(--bg-2);
  border-radius:var(--radius);padding:12px;cursor:pointer;
  transition:background 0.2s,transform 0.2s;
}
.playlist-card:hover{background:var(--bg-3);transform:translateY(-2px);}
.playlist-card-cover{
  width:100%;aspect-ratio:1;
  border-radius:var(--radius-sm);
  background:linear-gradient(135deg,#1a1a2e,var(--bg-4));
  display:flex;align-items:center;justify-content:center;
  font-size:2.5rem;margin-bottom:10px;
}
.playlist-card-title{font-size:0.875rem;font-weight:600;margin-bottom:4px;}
.playlist-card-sub{font-size:0.75rem;color:var(--text-3);}

/* ── SONG LIST ── */
.song-list{display:flex;flex-direction:column;gap:4px;}
.song-row{
  display:grid;
  grid-template-columns:40px 1fr auto;
  align-items:center;gap:12px;
  padding:10px 12px;border-radius:var(--radius-sm);
  cursor:pointer;transition:background 0.15s;
}
.song-row:hover{background:var(--bg-3);}
.song-row.playing .sr-num{color:var(--accent);}
.sr-num{font-size:0.875rem;color:var(--text-3);text-align:center;font-variant-numeric:tabular-nums;}
.sr-cover{width:42px;height:42px;border-radius:6px;object-fit:cover;background:var(--bg-4);}
.sr-cover-placeholder{
  width:42px;height:42px;border-radius:6px;
  background:var(--bg-4);
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;color:var(--text-3);
}
.sr-info .sr-title{font-size:0.9rem;font-weight:500;}
.sr-info .sr-artist{font-size:0.8rem;color:var(--text-3);}
.sr-actions{display:flex;align-items:center;gap:8px;}
.sr-duration{font-size:0.8rem;color:var(--text-3);font-variant-numeric:tabular-nums;}
.sr-btn{
  background:none;border:none;cursor:pointer;
  color:var(--text-3);font-size:0.9rem;padding:4px;
  border-radius:4px;transition:color 0.15s;
  opacity:0;
}
.song-row:hover .sr-btn{opacity:1;}
.sr-btn:hover{color:var(--accent);}
.sr-btn.liked{color:var(--accent);opacity:1;}
.sr-btn.download-btn{color:var(--text-3);}
.sr-btn.download-btn:hover{color:var(--accent);}

/* ── PLAYER ── */
.player{
  position:fixed;bottom:0;left:0;right:0;
  height:var(--player-h);
  background:rgba(10,10,15,0.96);
  backdrop-filter:blur(20px);
  border-top:1px solid var(--border);
  z-index:500;
  display:grid;
  grid-template-columns:1fr 2fr 1fr;
  grid-template-rows:1fr;
  align-items:center;
  padding:0 1.5rem;
}

.player-song-info{ grid-column:1; }
.player-controls{  grid-column:2; }
.player-extra{     grid-column:3; }

.player > .player-seek{ display:none; }

.player-song-info{
  display:flex;align-items:center;gap:12px;
  min-width:0;
}
.player-cover{
  width:52px;height:52px;border-radius:8px;
  background:var(--bg-3);flex-shrink:0;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;color:var(--text-3);
}
.player-cover img{width:100%;height:100%;object-fit:cover;}
.player-meta{min-width:0;}
.player-title{font-size:0.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.player-artist{font-size:0.75rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.player-heart{
  background:none;border:none;cursor:pointer;
  color:var(--text-3);font-size:1rem;padding:6px;
  flex-shrink:0;transition:color 0.2s;
}
.player-heart.liked{color:var(--accent);}

.player-controls{
  display:flex;flex-direction:column;align-items:center;gap:6px;
}
.player-btns{display:flex;align-items:center;gap:8px;}

.player-controls .player-seek{
  display:flex;align-items:center;gap:10px;
  width:100%;max-width:600px;
}

.ctrl-btn{
  background:none;border:none;cursor:pointer;
  color:var(--text-2);font-size:0.95rem;padding:8px;
  border-radius:50%;transition:color 0.2s,background 0.2s;
}
.ctrl-btn:hover{color:var(--text);background:var(--bg-3);}
.ctrl-btn.active{color:var(--accent);}

.ctrl-btn.play-pause{
  width:40px;height:40px;
  background:var(--text);color:var(--bg);
  font-size:1rem;
  display:flex;align-items:center;justify-content:center;
}
.ctrl-btn.play-pause:hover{background:var(--accent);color:#000;transform:scale(1.05);}

.player-seek{
  display:flex;align-items:center;gap:10px;
  width:100%;max-width:600px;
}
.time{font-size:0.72rem;color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap;}
.seek-bar{
  flex:1;height:4px;background:var(--bg-4);
  border-radius:2px;cursor:pointer;position:relative;
  transition:height 0.15s;
}
.seek-bar:hover{height:6px;}
.seek-fill{
  height:100%;background:var(--accent);
  border-radius:2px;pointer-events:none;
  width:0%;
}
.seek-thumb{
  position:absolute;top:50%;
  left:0%;
  transform:translate(-50%,-50%);
  width:12px;height:12px;border-radius:50%;
  background:var(--text);
  display:none;
}
.seek-bar:hover .seek-thumb{display:block;}

.player-extra{
  display:flex;align-items:center;gap:4px;justify-content:flex-end;
}
.volume-ctrl{display:flex;align-items:center;gap:6px;}
.volume-slider{
  -webkit-appearance:none;
  width:90px;height:4px;
  background:var(--bg-4);border-radius:2px;cursor:pointer;
  outline:none;
}
.volume-slider::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:12px;height:12px;border-radius:50%;
  background:var(--text);cursor:pointer;
}
.volume-slider:hover::-webkit-slider-thumb{background:var(--accent);}

/* ── MODALS ── */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.7);
  backdrop-filter:blur(8px);
  z-index:2000;
  display:none;place-items:center;
}
.modal-overlay.open{display:grid;}

.eq-panel{
  background:var(--bg-3);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.5rem;
  width:calc(100vw - 2.5rem);
  max-width:480px;
  max-height:90vh;
  overflow-y:auto;
  box-shadow:0 30px 80px rgba(0,0,0,0.5);
}
.eq-bands{
  display:flex;
  gap:clamp(8px,3vw,24px);
  justify-content:center;
  align-items:stretch;
  margin-bottom:1.5rem;
  overflow:hidden;
}
.eq-band{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  flex:1;min-width:0;
}
.eq-band-val{
  font-size:0.7rem;font-weight:700;color:var(--accent);
  font-variant-numeric:tabular-nums;min-width:32px;text-align:center;
}
.eq-band input[type=range]{
  -webkit-appearance:none;
  writing-mode:vertical-lr;direction:rtl;
  width:clamp(14px,100%,22px);
  height:120px;
  background:var(--bg-4);border-radius:12px;cursor:pointer;outline:none;
}
.eq-band input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:18px;height:18px;border-radius:50%;
  background:var(--accent);cursor:pointer;
  box-shadow:0 0 6px rgba(30,215,96,0.4);
}
.eq-band label{font-size:0.65rem;color:var(--text-3);white-space:nowrap;}
.eq-header h3{
  font-family:'Syne',sans-serif;font-weight:700;
  display:flex;align-items:center;gap:8px;margin:0;
}
.eq-active-preset{
  font-size:0.75rem;font-weight:600;letter-spacing:0.5px;
  color:var(--accent);margin-bottom:1rem;
  padding:3px 10px;background:rgba(30,215,96,0.1);
  border:1px solid rgba(30,215,96,0.25);
  border-radius:50px;display:inline-block;
}
.eq-presets-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;margin-top:1.25rem;
}
.eq-preset-btn{
  background:var(--bg-4);border:1px solid var(--border);
  border-radius:8px;color:var(--text-2);
  padding:8px 6px;cursor:pointer;font-size:0.78rem;font-weight:500;
  font-family:'DM Sans',sans-serif;
  transition:background 0.2s,color 0.2s,border-color 0.2s;
  text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.eq-preset-btn:hover{background:var(--bg-3);color:var(--text);border-color:rgba(255,255,255,0.15);}
.eq-preset-btn.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700;}

.pcp-slider-val{
  font-size:0.75rem;font-variant-numeric:tabular-nums;
  color:var(--accent);min-width:32px;text-align:right;font-weight:600;
}

.playlist-pick-panel{
  background:var(--bg-3);border:1px solid var(--border);
  border-radius:var(--radius);padding:1.5rem;
  min-width:280px;max-width:380px;width:90%;
  max-height:70vh;overflow-y:auto;
}
.playlist-pick-panel h3{font-family:'Syne',sans-serif;font-weight:700;margin-bottom:1rem;}
.playlist-pick-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 12px;border-radius:var(--radius-sm);
  cursor:pointer;transition:background 0.15s;
}
.playlist-pick-item:hover{background:var(--bg-4);}
.playlist-pick-icon{
  width:40px;height:40px;border-radius:6px;
  background:var(--bg-4);
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;color:var(--text-3);
}

/* ── AUTH PANEL ── */
.form-group{margin-bottom:1rem;}
.form-group label{display:block;font-size:0.8rem;color:var(--text-2);margin-bottom:6px;font-weight:500;}
.form-group input{
  width:100%;background:var(--bg-4);
  border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:11px 14px;color:var(--text);
  font-family:'DM Sans',sans-serif;font-size:0.9rem;
  outline:none;transition:border-color 0.2s,box-shadow 0.2s;
}
.form-group input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);}
.auth-error{color:#ff4d4d;font-size:0.8rem;margin-bottom:0.75rem;min-height:20px;}

.btn-primary{
  background:var(--accent);color:#000;
  border:none;border-radius:50px;
  padding:11px 24px;cursor:pointer;
  font-family:'DM Sans',sans-serif;font-weight:600;font-size:0.9rem;
  display:inline-flex;align-items:center;gap:8px;
  transition:background 0.2s,transform 0.15s;
}
.btn-primary:hover{background:var(--accent-2);transform:scale(1.02);}

.btn-secondary{
  background:var(--bg-4);color:var(--text);
  border:1px solid var(--border);border-radius:50px;
  padding:11px 24px;cursor:pointer;
  font-family:'DM Sans',sans-serif;font-weight:600;font-size:0.9rem;
  display:inline-flex;align-items:center;gap:8px;
  transition:background 0.2s,border-color 0.2s;
}
.btn-secondary:hover{background:var(--bg-3);border-color:var(--text-3);}

/* ── QUEUE PANEL ── */
.queue-panel{
  position:fixed;right:0;top:var(--nav-h);bottom:var(--player-h);
  width:320px;background:var(--bg-2);
  border-left:1px solid var(--border);
  transform:translateX(100%);
  transition:transform 0.3s ease;
  z-index:200;overflow-y:auto;
}
.queue-panel.open{transform:translateX(0);}
.queue-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.25rem 1.25rem 0.75rem;
  border-bottom:1px solid var(--border);
  position:sticky;top:0;background:var(--bg-2);
}
.queue-header h3{font-family:'Syne',sans-serif;font-weight:700;}
.queue-header button{background:none;border:none;cursor:pointer;color:var(--text-2);font-size:1rem;padding:6px;}

/* ── LIKED HEADER ── */
.liked-header{display:flex;align-items:flex-end;gap:1.5rem;padding:2rem 0 1.5rem;flex-wrap:wrap;}
.liked-cover{
  width:160px;height:160px;border-radius:var(--radius);
  background:linear-gradient(135deg,#4158d0,var(--accent));
  display:flex;align-items:center;justify-content:center;
  font-size:4rem;flex-shrink:0;
}
.liked-label{font-size:0.7rem;letter-spacing:2px;font-weight:700;color:var(--text-3);margin-bottom:4px;}

/* ── SECTION HEADER ROW ── */
.section-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;}

/* ── UTILS ── */
.empty-state{color:var(--text-3);font-size:0.9rem;padding:1.5rem;width:100%;}
.loader-ring{
  width:30px;height:30px;
  border:3px solid var(--bg-4);border-top-color:var(--accent);
  border-radius:50%;animation:spin 0.8s linear infinite;
  margin:1rem auto;
}
@keyframes spin{to{transform:rotate(360deg);}}

.back-btn{
  background:none;border:none;cursor:pointer;
  color:var(--text-2);font-size:0.9rem;
  display:flex;align-items:center;gap:8px;padding:8px 0;
  margin-bottom:1rem;
  font-family:'DM Sans',sans-serif;transition:color 0.2s;
}
.back-btn:hover{color:var(--text);}

/* ── SEARCH PAGE ── */
.search-bar-large{
  position:relative;display:flex;align-items:center;
  margin-bottom:2rem;
}
.search-bar-large i{position:absolute;left:18px;color:var(--text-3);font-size:1rem;}
.search-bar-large input{
  width:100%;background:var(--bg-2);border:1px solid var(--border);
  border-radius:var(--radius);padding:16px 16px 16px 48px;
  color:var(--text);font-size:1rem;font-family:'DM Sans',sans-serif;
  outline:none;transition:border-color 0.2s,box-shadow 0.2s;
}
.search-bar-large input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);}

.results-block{margin-bottom:2rem;}
.results-block h3{font-family:'Syne',sans-serif;font-weight:700;margin-bottom:0.75rem;}
.search-placeholder{text-align:center;padding:4rem 0;color:var(--text-3);}
.search-placeholder p{margin-top:1rem;font-size:0.95rem;}

/* ── LOGIN GATE OVERLAY ── */
.login-gate{
  position:fixed;inset:0;
  background:var(--bg);
  z-index:10000;
  display:flex;
  flex-direction:column;
}
.login-gate-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 40px;height:64px;
  background:rgba(8,11,16,0.85);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.login-gate-nav-logo{
  font-family:'Syne',sans-serif;font-weight:800;font-size:1.4rem;
  color:var(--text);display:flex;align-items:center;gap:9px;
}
.login-gate-nav-logo span{color:var(--accent);}
.login-gate-body{
  flex:1;display:flex;align-items:center;justify-content:center;
  padding:40px;
  position:relative;overflow:hidden;
}
.login-gate-glow{
  position:absolute;top:40%;left:50%;
  transform:translate(-50%,-50%);
  width:600px;height:600px;
  background:radial-gradient(circle,rgba(30,215,96,0.07) 0%,transparent 65%);
  pointer-events:none;
}
.login-gate-hero{
  text-align:center;
  animation:lgFadeUp 0.5s ease both;
  position:relative;z-index:1;
}
.login-gate-hero h1{
  font-family:'Syne',sans-serif;
  font-size:clamp(2.8rem,6vw,5rem);
  font-weight:800;line-height:1.06;
  letter-spacing:-0.03em;
}
.login-gate-hero h1 span{color:var(--accent);}
.login-gate-hero p{
  color:var(--text-2);font-size:1rem;
  margin-top:16px;line-height:1.7;
  max-width:380px;margin-left:auto;margin-right:auto;
}
.login-gate-pills{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:28px;justify-content:center;
}
.login-gate-pill{
  display:flex;align-items:center;gap:6px;
  background:var(--bg-3);border:1px solid var(--border);
  border-radius:50px;padding:6px 14px;
  font-size:0.78rem;color:var(--text-2);
}
.login-gate-pill i{color:var(--accent);font-size:0.72rem;}
.login-gate-cta{
  margin-top:36px;
  display:flex;gap:12px;justify-content:center;flex-wrap:wrap;
}
.login-gate-footer{
  border-top:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 40px;color:var(--text-3);font-size:0.76rem;flex-shrink:0;
}
.login-gate-footer a{
  color:var(--text-3);text-decoration:none;font-size:0.76rem;transition:color 0.2s;
}
.login-gate-footer a:hover{color:var(--text-2);}

/* ── AUTH MODAL (login + forgot password popups) ── */
.auth-modal-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.75);
  backdrop-filter:blur(10px);
  z-index:10001;
  display:none;place-items:center;padding:20px;
}
.auth-modal-overlay.open{display:grid;}
.auth-modal{
  background:var(--bg-2);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:32px 28px;
  width:100%;max-width:380px;
  box-shadow:0 30px 80px rgba(0,0,0,0.6);
  animation:authModalIn 0.2s ease both;
  position:relative;
}
@keyframes authModalIn{
  from{opacity:0;transform:translateY(16px) scale(0.98);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
.auth-modal-close{
  position:absolute;top:16px;right:16px;
  background:none;border:none;cursor:pointer;
  color:var(--text-3);font-size:1rem;padding:4px;
  transition:color 0.2s;line-height:1;
}
.auth-modal-close:hover{color:var(--text);}
.auth-modal-title{
  font-family:'Syne',sans-serif;font-weight:800;font-size:1.2rem;
  margin-bottom:4px;
}
.auth-modal-sub{color:var(--text-3);font-size:0.82rem;margin-bottom:24px;}

@keyframes lgFadeUp{
  from{opacity:0;transform:translateY(18px);}
  to{opacity:1;transform:translateY(0);}
}
@media(max-width:768px){
  .login-gate-nav{padding:0 20px;}
  .login-gate-body{padding:24px 20px;}
  .login-gate-footer{flex-direction:column;gap:10px;padding:14px 20px;text-align:center;}
}

/* ── PLAYER CONTROLS MODAL ── */
.player-controls-panel{
  background:var(--bg-3);border:1px solid var(--border);
  border-radius:var(--radius);padding:1.5rem;
  width:calc(100vw - 2.5rem);max-width:400px;
  box-shadow:0 30px 80px rgba(0,0,0,0.5);
}
.player-controls-panel h3{
  font-family:'Syne',sans-serif;font-weight:700;font-size:1.1rem;
  margin-bottom:1.25rem;display:flex;align-items:center;justify-content:space-between;
}
.pcp-close{
  background:none;border:none;cursor:pointer;
  color:var(--text-3);font-size:1rem;padding:4px;transition:color 0.2s;
}
.pcp-close:hover{color:var(--text);}
.pcp-row{
  display:flex;align-items:center;gap:1rem;
  padding:0.85rem 0;border-bottom:1px solid var(--border);
}
.pcp-row:last-child{border-bottom:none;padding-bottom:0;}
.pcp-icon{
  width:34px;height:34px;border-radius:8px;background:var(--bg-4);
  display:flex;align-items:center;justify-content:center;
  font-size:0.85rem;color:var(--text-3);flex-shrink:0;
}
.pcp-label{font-size:0.875rem;color:var(--text-2);flex:1;font-weight:500;}
.pcp-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.pcp-volume-slider{
  -webkit-appearance:none;
  width:110px;height:4px;
  background:var(--bg-4);border-radius:2px;cursor:pointer;outline:none;
}
.pcp-volume-slider::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:14px;height:14px;border-radius:50%;
  background:var(--accent);cursor:pointer;
}
.pcp-btn{
  background:var(--bg-4);border:1px solid var(--border);
  border-radius:50px;color:var(--text-2);
  padding:6px 14px;cursor:pointer;font-size:0.8rem;font-weight:500;
  font-family:'DM Sans',sans-serif;
  transition:background 0.2s,color 0.2s,border-color 0.2s;white-space:nowrap;
}
.pcp-btn:hover,.pcp-btn.active{background:var(--accent);color:#000;border-color:var(--accent);}
.pcp-toggle{
  width:36px;height:36px;border-radius:50%;
  background:none;border:1px solid var(--border);
  color:var(--text-3);cursor:pointer;font-size:1rem;
  display:flex;align-items:center;justify-content:center;
  transition:background 0.2s,color 0.2s,border-color 0.2s;
}
.pcp-toggle.active{background:var(--accent);color:#000;border-color:var(--accent);}
.pcp-toggle:hover{border-color:var(--accent);color:var(--accent);}

/* ── MOBILE ── */
@media(max-width:768px){
  :root{--sidebar-w:0px;--player-h:130px;}
  .sidebar{display:none;}
  .main-content{margin-left:0;padding-bottom:calc(var(--player-h) + 56px + 1rem);}
  .home-topbar-right{display:none;}
  .home-avatar-wrap{display:flex;}
  .quick-grid{grid-template-columns:repeat(2,1fr);}
  .trend-card{width:155px;}
  .song-card{width:138px;}

  .player{
    display:flex;flex-direction:column;
    justify-content:center;align-items:stretch;
    padding:10px 18px 14px;height:var(--player-h);
    grid-template-columns:unset;grid-template-rows:unset;
  }
  .player-song-info{
    display:flex;align-items:center;gap:10px;
    flex:0 0 auto;margin-bottom:5px;min-width:0;
  }
  .player-cover{width:38px;height:38px;border-radius:6px;font-size:1rem;}
  .player-meta{flex:1;min-width:0;}
  .player-title{font-size:0.8rem;}
  .player-artist{font-size:0.68rem;}
  .player-heart{padding:4px;font-size:0.9rem;flex-shrink:0;}
  .player-controls{
    display:flex;flex-direction:column;align-items:stretch;
    gap:0;flex:0 0 auto;width:100%;
  }
  .player-controls .player-seek{
    display:flex !important;width:100%;gap:7px;margin-bottom:5px;
  }
  .time{font-size:0.63rem;}
  .seek-bar{height:3px;}
  .seek-bar:hover{height:4px;}
  .player-btns{
    display:flex;align-items:center;
    justify-content:space-between;width:100%;
  }
  .ctrl-btn{padding:5px 6px;font-size:1.05rem;}
  .ctrl-btn.play-pause{width:44px;height:44px;font-size:1.1rem;}
  .player-extra{display:none;}
  .mobile-extras-btn{
    display:flex !important;
    background:none;border:none;cursor:pointer;
    color:var(--text-3);font-size:1.1rem;padding:4px 6px;
    flex-shrink:0;transition:color 0.2s;
  }
  .mobile-extras-btn:hover{color:var(--text);}
  .mobile-nav{
    position:fixed;bottom:var(--player-h);left:0;right:0;
    background:rgba(10,10,15,0.97);backdrop-filter:blur(20px);
    border-top:1px solid var(--border);
    display:flex;justify-content:space-around;align-items:center;
    padding:8px 0 10px;z-index:150;height:56px;
  }
  .mobile-nav-btn{
    background:none;border:none;cursor:pointer;
    color:var(--text-3);padding:5px 10px;
    display:flex;flex-direction:column;align-items:center;gap:3px;
    font-family:'DM Sans',sans-serif;font-size:0.6rem;font-weight:500;
  }
  .mobile-nav-btn i{font-size:1.25rem;}
  .mobile-nav-btn.active{color:var(--text);}
}

@media(min-width:769px){
  .mobile-nav{display:none !important;}
  .mobile-extras-btn{display:none !important;}
  .home-avatar-wrap{display:none;}
  .mobile-profile-dropdown{display:none !important;}
  #section-search,#section-library,#section-liked,#section-viewall{padding:0;}
  .section-topbar-simple,
  #section-search .search-bar-large,
  #section-search #searchResults,
  #section-search #searchPlaceholder,
  #section-library .section-header-row,
  #section-library .cards-slider,
  #section-liked .liked-header,
  #section-liked .btn-primary,
  #section-liked .song-list,
  #section-viewall .back-btn,
  #section-viewall .section-title,
  #section-viewall .song-list{
    padding-left:24px;padding-right:24px;
  }
  #section-search .search-bar-large{padding-top:16px;}
}

.mobile-extras-btn{display:none;}

::-webkit-scrollbar{width:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--bg-4);border-radius:3px;}

.content-section.active{animation:fadeIn 0.2s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

#section-search,#section-library,#section-liked,#section-viewall{padding-bottom:2rem;}
.section-topbar-simple{padding-bottom:8px;}
#section-search .search-bar-large,
#section-search #searchResults,
#section-search #searchPlaceholder,
#section-library .section-header-row,
#section-library .cards-slider.wide,
#section-liked .liked-header,
#section-liked > .btn-primary,
#section-liked .song-list,
#section-viewall > .back-btn,
#section-viewall > .section-title,
#section-viewall > .song-list{
  padding-left:20px;padding-right:20px;
}

/* ── LANG PILLS ── */
.home-lang-pills{display:flex;gap:6px;}
.lang-pill{
  background:var(--bg-3);border:none;color:var(--text-3);
  padding:4px 12px;border-radius:20px;font-size:0.75rem;font-weight:600;
  cursor:pointer;font-family:'DM Sans',sans-serif;
  transition:background 0.2s,color 0.2s;
}
.lang-pill.active,.lang-pill:hover{background:var(--text);color:var(--bg);}

/* ── CONTEXT MENU ── */
.card-dots-btn{
  position:absolute;top:8px;right:8px;
  width:28px;height:28px;border-radius:50%;
  background:rgba(0,0,0,0.6);border:none;color:#fff;
  font-size:0.8rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity 0.2s;
}
.song-ctx-backdrop{display:none;position:fixed;inset:0;z-index:300;}
.song-ctx-backdrop.open{display:block;}
.song-ctx-menu{
  position:fixed;z-index:301;min-width:200px;
  background:var(--bg-3);border-radius:var(--radius-sm);
  padding:4px 0;box-shadow:0 8px 32px rgba(0,0,0,0.5);
  border:1px solid var(--border);display:none;
  animation:ctxFadeIn 0.12s ease;
}
.song-ctx-menu.open{display:block;}
@keyframes ctxFadeIn{from{opacity:0;transform:scale(0.95);}to{opacity:1;transform:scale(1);}}
.song-ctx-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 16px;font-size:0.85rem;cursor:pointer;
  color:var(--text-2);white-space:nowrap;
  transition:background 0.15s,color 0.15s;
}
.song-ctx-item:hover{background:var(--bg-4);color:var(--text);}
.song-ctx-item i{width:16px;text-align:center;color:var(--accent);font-size:0.8rem;}

.card-in-library-badge{
  position:absolute;bottom:8px;left:8px;
  width:22px;height:22px;border-radius:50%;
  background:var(--accent);color:#000;font-size:0.65rem;
  display:flex;align-items:center;justify-content:center;
}

/* ── COLLECTION HERO ── */
.collection-hero{
  display:flex;gap:24px;padding:24px 20px 28px;align-items:flex-end;
}
.collection-cover{
  width:160px;height:160px;flex-shrink:0;
  border-radius:var(--radius);background:var(--bg-3);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,0.5);
}
.collection-info{flex:1;min-width:0;}
.collection-type-label{
  font-size:0.75rem;font-weight:700;text-transform:uppercase;
  letter-spacing:1px;color:var(--text-3);margin-bottom:6px;
}
.collection-title{
  font-family:'Syne',sans-serif;
  font-size:clamp(1.2rem,4vw,2rem);font-weight:800;
  margin-bottom:16px;line-height:1.2;
}
.collection-play-btn{display:inline-flex;align-items:center;gap:8px;}

@media(max-width:768px){
  .collection-hero{
    flex-direction:column;align-items:center;
    text-align:center;padding:20px 20px 16px;
  }
  .collection-cover{width:140px;height:140px;}
}

/* ── MY PLAYLIST HERO ── */
.mypl-hero{display:flex;gap:24px;padding:20px 20px 24px;align-items:flex-end;}
.mypl-cover{
  width:140px;height:140px;flex-shrink:0;
  border-radius:var(--radius);
  background:linear-gradient(135deg,#1a1a2e,var(--bg-4));
  display:flex;align-items:center;justify-content:center;
  font-size:3rem;color:var(--text-3);
}
.mypl-info{flex:1;min-width:0;}

@media(max-width:768px){
  .mypl-hero{flex-direction:column;align-items:center;text-align:center;}
  .mypl-hero > .mypl-info > div{justify-content:center;}
}
