/* Charts tab — category chrome only; grid sizing comes from .songListStage / .songList (song-layout.css) */
.chartsDiscovery{
  width:100%;
  max-width:none;
  margin:0;
  padding:
    clamp(8px, 1.2vh, 14px)
    0
    clamp(24px, 4vh, 40px);
  box-sizing:border-box;
  overflow:visible;
}

.chartsDiscovery[hidden]{
  display:none !important;
}

.chartsDiscovery__inner{
  display:flex;
  flex-direction:column;
  gap:clamp(16px, 2.5vw, 24px);
}

.chartsDiscovery__loading,
.chartsDiscovery__error{
  margin:0;
  padding:clamp(20px, 3vw, 32px) var(--song-grid-content-pad-x, var(--page-content-pad-x, 26px));
  font-size:0.95rem;
  color:rgba(220, 212, 245, 0.72);
  text-align:center;
}

.chartsDiscovery__error{
  color:rgba(255, 180, 170, 0.88);
}

.chartsDiscovery__category{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}

.chartsDiscovery__categoryHeader{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:start;
  gap:8px 16px;
  padding-left:var(--song-grid-content-pad-x, var(--page-content-pad-x, 26px));
  padding-right:var(--song-grid-content-pad-x, var(--page-content-pad-x, 26px));
  box-sizing:border-box;
}

.chartsDiscovery__categoryTitles{
  min-width:0;
}

.chartsDiscovery__categoryTitle{
  margin:0;
  font-size:clamp(1.05rem, 2vw, 1.25rem);
  font-weight:700;
  letter-spacing:0.02em;
  line-height:1.2;
  color:rgba(255, 255, 255, 0.94);
}

.chartsDiscovery__categoryEmoji{
  margin-inline-end:0.15em;
}

.chartsDiscovery__categorySubtitle{
  margin:4px 0 0;
  font-size:clamp(0.8rem, 1.2vw, 0.9rem);
  font-weight:500;
  line-height:1.4;
  color:rgba(200, 192, 228, 0.58);
}

.chartsDiscovery__viewAll{
  justify-self:end;
  margin:2px 0 0;
  padding:6px 14px;
  border:1px solid rgba(255, 255, 255, 0.1);
  border-radius:999px;
  background:rgba(255, 255, 255, 0.04);
  color:rgba(230, 224, 255, 0.88);
  font:inherit;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.02em;
  line-height:1.2;
  cursor:pointer;
  white-space:nowrap;
  transition:
    color 0.2s ease,
    border-color 0.2s ease,
    background 0.2s ease;
}

.chartsDiscovery__viewAll:hover,
.chartsDiscovery__viewAll:focus-visible{
  color:#fff;
  border-color:color-mix(in srgb, var(--header-neon-accent) 35%, rgba(255, 255, 255, 0.14));
  background:color-mix(in srgb, var(--header-neon-accent) 10%, rgba(255, 255, 255, 0.05));
  outline:none;
}

/* Tighter rhythm between category header and shared song grid stage */
.chartsDiscovery .songListStage{
  padding-top:0;
}

.chartsDiscovery .songListStage > .songList:not(.songList--virtual){
  padding-top:0;
  /* Main library uses large bottom pad for mobile dock / load footer; charts sections stack. */
  padding-bottom:0;
  /* Space between chart items; rank-to-card gap lives on .chart-card-wrap */
  row-gap:34px;
  /* Don't stretch ranked slots to the tallest card in the row — avoids a dead zone
     between the language row and action buttons inside shorter cards. */
  align-items:start;
}

.chartsDiscovery .songListStage > .songList.view-list{
  padding-left:0;
  padding-right:0;
  gap:7px;
}

/* Match main #songList virtual list row inset */
.chartsDiscovery .songListStage > .songList.view-list > .chart-card-wrap{
  margin-left:4px;
  width:calc(100% - 8px);
  box-sizing:border-box;
}

/* Match main list: meta + actions cluster on the right without a split auto margin */
.chartsDiscovery .librarySongGrid.view-list .songListV2Actions{
  margin-left:0;
}

.chartsDiscovery__empty{
  margin:0;
  padding:12px var(--song-grid-content-pad-x, var(--page-content-pad-x, 26px)) 4px;
  font-size:0.88rem;
  color:rgba(190, 182, 220, 0.55);
}

/* Chart item — compact rank label above card; card dimensions stay unchanged */
.chartsDiscovery .librarySongGrid > .chart-card-wrap{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  row-gap:6px;
  min-width:0;
  min-height:0;
  overflow:visible;
  isolation:isolate;
}

.chartsDiscovery .librarySongGrid > .chart-card-wrap > .songCard{
  width:100%;
  max-width:none;
  min-width:0;
  box-sizing:border-box;
  flex:0 0 auto;
  position:relative;
  z-index:1;
  /* Gallery cards use height:100% for main-library row stretch; charts slots are
     height-independent so action buttons sit tight under the language row. */
  height:auto;
}

/* Compact rank label: number + short accent dash, left-aligned with the card */
.chartsDiscovery .chart-card-wrap > .chart-rank-row{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  align-self:flex-start;
  gap:8px;
  width:auto;
  max-width:100%;
  height:20px;
  margin:clamp(4px, 0.45vw, 6px) 0 0;
  padding:0;
  position:relative;
  z-index:2;
  opacity:0.85;
  pointer-events:none;
  user-select:none;
}

.chartsDiscovery .chart-card-wrap > .chart-rank-row > .chart-rank{
  flex:0 0 auto;
  margin:0;
  padding:0;
  font-family:"Sora", system-ui, sans-serif;
  font-size:clamp(1.125rem, 1.05vw, 1.25rem);
  font-weight:800;
  letter-spacing:-0.02em;
  line-height:1;
  color:var(--header-neon-accent, #b794f6);
}

.chartsDiscovery .chart-card-wrap > .chart-rank-row > .chart-rank-line{
  flex:0 0 56px;
  width:56px;
  min-width:40px;
  max-width:70px;
  height:2px;
  border-radius:999px;
  background:var(--header-neon-accent, #b794f6);
  opacity:0.65;
}

/* Hover lift/glow stays on the card only — rank row stays above in the stack */
.chartsDiscovery .chart-card-wrap > .songCard.songCard--galleryHoverLift{
  z-index:1 !important;
}

@media (min-width: 1025px){
  .chartsDiscovery__categoryHeader{
    padding-left:var(--page-content-pad-x);
    padding-right:var(--page-content-pad-x);
  }
}

@media (min-width: 1500px){
  #chartsDiscovery:not(:has(.librarySongGrid.view-list)) .chartsDiscovery__categoryHeader{
    width:calc(100% + (min(var(--desktop-content-gap), 56px) * 2));
    max-width:none;
    margin-inline:calc(-1 * min(var(--desktop-content-gap), 56px));
    padding-left:clamp(10px, 0.85vw, 16px);
    padding-right:clamp(10px, 0.85vw, 16px);
  }
}

@media (max-width: 767px){
  .chartsDiscovery__categoryHeader,
  .chartsDiscovery__empty{
    padding-inline:var(--song-grid-content-pad-x, var(--mobile-content-pad-x, 16px));
  }
}

@media (prefers-reduced-motion: reduce){
  .chartsDiscovery__viewAll{
    transition:none;
  }
}
