
/* === Track row grid (5-col: pos | name | bpm | icons | duration) === */
article.cv-album.cv-album section.cv-tracks.cv-tracks .cv-track-main.cv-track-main{
  display:grid;
  grid-template-columns: 70px 1fr 60px 65px 85px;
  align-items:center;
  column-gap:0.5rem;
}
.cv-bpm{
  font-variant-numeric:tabular-nums;
}

/* === Tracklist thead row — must match .cv-track-main grids exactly === */
.cv-tracklist-thead{
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.cv-tracklist-thead .cv-track-main{
  display:grid;
  grid-template-columns: 70px 1fr 60px 65px 85px;
  align-items:center;
  column-gap:0.5rem;
  padding:10px 0;
}
.cv-tracklist-thead .cv-track-main--admin{
  grid-template-columns: 40px 50px 1fr 60px 65px 85px;
}
.cv-th{
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.5px;
  color:#2f2f2f;
}
.cv-tracklist-thead .cv-th:first-child{padding-left:12px}
.cv-tracklist-thead .cv-th:nth-child(2){padding-left:7px}
.cv-tracklist-thead .cv-track-main--admin .cv-th:nth-child(3){padding-left:7px}
.cv-tracklist-thead .cv-th:last-child{padding-right:35px;text-align:right}

.cv-track-icons{
  display:flex;
  align-items:center;
  gap:10px;
}
.cv-track-icons a{
  display:inline-flex;
}
.cv-track-icons img{
  display:block;
}
.cv-track-icons .cv-yt-ico img{
  width:auto;
  height:20px;
}

article.cv-album section.cv-tracks .cv-dur{
  text-align:right;
  padding: 0 25px 0 20px;
}

article.cv-album section.cv-tracks .cv-runtime{
  text-align:right;
  padding-right:25px;
  margin-right:0;
}

/* === Chip title case + details grid === */
article.cv-album .cv-chiplist .cv-chiptext,
article.cv-album .cv-chiplist .cv-chiplink { text-transform: capitalize; }

article.cv-album .cv-details .cv-detail {
  display: grid;
  grid-template-columns: 150px 1fr;
}

/* Album details: external links spacing */
body .cv-infoblock .cv-details .cv-group.cv-links {
  margin: 25px 0 0 0 !important;
}

/* Detail filter links (genre, style, year → collection page) */
.cv-detail-filter-link { color: inherit; text-decoration: underline; text-decoration-color: rgba(47,47,47,.35); text-underline-offset: 2px; }
.cv-detail-filter-link:hover { text-decoration-color: #d17d34; color: inherit; }

/* Artist line links */
.cv-artistline a{color:inherit;text-decoration:underline;text-decoration-color:rgba(47,47,47,.35)}
.cv-artistline a:hover{text-decoration:underline;text-decoration-color:#d17d34;color:inherit}

/* Detail link icons (record emoji + WhoSampled badge) */
.cv-dt-link{display:inline-flex;align-items:center;gap:10px}
.cv-dt-ico{font-size:20px;line-height:1;flex-shrink:0}
.cv-dt-ws-ico{width:20px;height:20px}

/* === Complimentary albums 5-wide grid === */
.cv-comps.cv-grid-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.cv-comp{display:block;background:var(--panel-strong);border:1px solid var(--border);border-radius:12px;overflow:hidden;text-decoration:none;color:inherit}
.cv-comp img{width:100%;display:block;aspect-ratio:1/1;object-fit:cover}
.cv-comp-meta{padding:10px 12px}
.cv-comps.cv-grid-5 {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  grid-auto-flow: row !important;
  gap: 14px !important;
  overflow: visible !important;
  white-space: normal !important;
  padding-top: 10px;
}
.cv-comps.cv-grid-5 > * {
  width: auto !important;
  flex: none !important;
}
.cv-comps-actions { margin-top: 20px; }
.cv-comps-wrap, .cv-comps-track, .cv-comp-nav, .cv-comp-prev, .cv-comp-next {
  display: none !important;
}
/* === Album page heading overrides === */
article.cv-album .cv-h2{font-size:30px;margin-bottom:10px}

/* === Album summary layout === */
article.cv-album .cv-summary-wide{padding-left:40px;padding-right:40px}

/* === AI album summary sections === */
article.cv-album .cv-summary-wide .cv-summary-release {
  line-height: 1.65;
  color: #2f2f2f;
  margin-bottom: 24px;
}
.cv-summary-section {
  margin-bottom: 24px;
}
.cv-summary-section:last-child {
  margin-bottom: 0;
}
.cv-summary-label {
  font-family: 'Charter Web', Charter, Georgia, 'Times New Roman', serif;
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 10px;
  padding: 0;
  line-height: 1.2;
}
.cv-summary-bullets {
  margin: 0;
  padding-left: 20px;
  font-size: 1rem;
  line-height: 1.65;
}
.cv-summary-bullets li {
  font-size: 1rem;
  margin-bottom: 10px;
}
.cv-summary-bullets li:last-child {
  margin-bottom: 0;
}

/* Empty state */
.cv-summary-unavailable {
  color: #888;
}

/* === Sampled track link in legacy bullets === */
.cv-sampled-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(47,47,47,.45);
}
.cv-sampled-link:hover {
  text-decoration-color: #d17d34;
}

/* === Sampled track badge === */
.cv-sampled-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 25px;
  vertical-align: middle;
  cursor: pointer;
  flex-shrink: 0;
}
.cv-sampled-badge .cv-sampled-ico {
  width: 20px;
  height: 20px;
  display: block;
  border-radius: 50%;
}

/* === Artist discography box (legacy standalone selector kept for safety) === */
article.cv-album .cv-artist-discography .cv-discog-box{
  max-width: none !important;
  width: fit-content;
  display: inline-block;
  padding-left: 18px;
  padding-right: 18px;
}

/* =============================================
   Artist Details section
   ============================================= */
.cv-artist-section {
  margin-top: 55px;
}

/* Bio box is the first child — suppress the inherited top margin from cv-summary-wide */
.cv-artist-section > .cv-summary-wide {
  margin-top: 0 !important;
}
/* No bottom margin on bio paragraph — nothing follows it inside the box */
.cv-artist-section > .cv-summary-wide .cv-summary-release {
  margin-bottom: 0 !important;
}

/* 3-column grid: Members | Discography | Similar Artists */
.cv-artist-3col {
  display: grid;
  grid-template-columns: 1fr 2fr 1.5fr;
  gap: 24px;
  align-items: start;
}

/* Column headers — sit inside .cv-discog-box, separated by a bottom border */
.cv-col-heading {
  font-family: 'Charter Web', Charter, Georgia, 'Times New Roman', serif;
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #d2bfa0;
  letter-spacing: -.5px;
  line-height: 1.2;
}

/* Discog boxes inside artist columns —
   mirror the existing .cv-artist-discography box styles, fill column width */
.cv-artist-col .cv-discog-box {
  width: 100% !important;
  display: block !important;
  box-sizing: border-box !important;
  max-width: none !important;
  background: #f1e3c8 !important;
  border: 1px solid #d2bfa0 !important;
  border-radius: 10px !important;
  padding: 30px 40px !important;
}

/* Items — mirror .cv-artist-discography .cv-discog-item, scaled for 3-col layout */
.cv-artist-col .cv-discog-item {
  font-size: 16px !important;
  line-height: 2 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
}

/* Owned/missing mark colors — same as existing section */
.cv-artist-col .cv-discog-item.is-owned .cv-discog-mark  { color: #1f8f3a !important; }
.cv-artist-col .cv-discog-item.is-missing .cv-discog-mark { color: #d97900 !important; }

/* Pipe */
.cv-artist-col .cv-discog-pipe { opacity: .45 !important; }

/* Linked titles (discog owned + similar artists) — same underline style as .cv-artistline a */
.cv-artist-col a.cv-discog-title {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(47,47,47,.35);
}
.cv-artist-col a.cv-discog-title:hover {
  text-decoration-color: #d17d34;
}

/* Neutral items (members / similar) — no mark, left indent matches padded items */
.cv-discog-item.is-neutral { padding: 0; }

/* Similar artists — Title Case */
.cv-artist-col--similar .cv-discog-title { text-transform: capitalize; }

/* =============================================
   Complimentary albums — no HR, explicit top margin
   ============================================= */
.cv-comps-section {
  margin-top: 60px;
}

/* =============================================
   Loading screen (first-time album render)
   ============================================= */
.cv-loading-wrap { position: relative; padding: 32px 0 48px; }
.cv-loading-hero { display: flex; gap: 32px; align-items: flex-start; }
.cv-loading-cover-ph { width: 340px; height: 340px; flex-shrink: 0; background: rgba(47,47,47,.1); border-radius: 4px; }
.cv-loading-info-ph { flex: 1; padding-top: 8px; }
.cv-loading-bar { background: rgba(47,47,47,.1); border-radius: 3px; display: block; margin-bottom: 10px; }
.cv-loading-summary-ph { margin-top: 24px; height: 500px !important; background: rgba(47,47,47,.1); border-radius: 4px; }
.cv-loading-overlay { position: absolute; top: 25px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap:0; width: 440px; z-index: 5; }
.cv-loading-logomark { width: 150px; height: auto; display: block; }
.cv-loading-msg { text-align: center; width: 100%; }
body .cv-loading-overlay .cv-summary-wide { margin-top: 20px !important; }
.cv-loading-hed { font-weight: 700; font-size: 1.05em !important; margin-bottom: 8px !important }
.cv-loading-spinner {
  width: 32px;
  height: 32px;
  margin: 18px auto 0;
  border: 3px solid rgba(47,47,47,.15);
  border-top-color: rgba(47,47,47,.6);
  border-radius: 50%;
  animation: cv-spin 0.8s linear infinite;
}
@keyframes cv-spin {
  to { transform: rotate(360deg); }
}

/* ===========================================
   Responsive — tablet (≤760px)
   =========================================== */
@media (max-width:760px){

  /* Album h2 */
  article.cv-album .cv-h2{font-size:22px}

  /* Summary: reduce side padding */
  article.cv-album .cv-summary-wide{padding-left:20px;padding-right:20px}

  /* Summary label */
  .cv-summary-label{font-size:20px}

  /* Tracklist: tighten 4-col */
  article.cv-album.cv-album section.cv-tracks.cv-tracks .cv-track-main.cv-track-main{
    grid-template-columns: 50px 1fr auto 50px;
    column-gap:.75rem;
  }
  article.cv-album section.cv-tracks .cv-dur{padding:0 14px 0 8px}
  article.cv-album section.cv-tracks .cv-runtime{padding-right:14px}

  /* Artist section: collapse 3-col to single column */
  .cv-artist-section{margin-top:36px}
  .cv-artist-3col{grid-template-columns:1fr;gap:16px}
  .cv-artist-col .cv-discog-box{padding:20px 24px !important}

  /* Loading screen: narrower placeholders */
  .cv-loading-cover-ph{width:240px;height:240px}
  .cv-loading-overlay{width:320px}
}

/* ===========================================
   Responsive — mobile (≤600px)
   =========================================== */
@media (max-width:600px){

  /* Album h2 */
  article.cv-album .cv-h2{font-size:20px}

  /* Summary */
  article.cv-album .cv-summary-wide{padding-left:16px;padding-right:16px}
  .cv-summary-label{font-size:18px}

  /* Tracklist: compact */
  article.cv-album.cv-album section.cv-tracks.cv-tracks .cv-track-main.cv-track-main{
    grid-template-columns: 40px 1fr auto 55px;
    column-gap:.5rem;
  }
  article.cv-album section.cv-tracks .cv-dur{padding:0 10px 0 4px}
  article.cv-album section.cv-tracks .cv-runtime{padding-right:10px}

  /* Loading screen: stack cover + overlay vertically */
  .cv-loading-hero{flex-direction:column;gap:16px}
  .cv-loading-cover-ph{width:100%;height:0;padding-bottom:56%;border-radius:4px}
  .cv-loading-overlay{position:relative;top:auto;left:auto;transform:none;width:100%}

  /* Comps: 2 columns */
  .cv-comps.cv-grid-5{grid-template-columns:repeat(2,minmax(0,1fr)) !important}

  /* Artist section */
  .cv-artist-section{margin-top:28px}
  .cv-artist-col .cv-discog-box{padding:16px 18px !important}
}

/* ===========================================
   Responsive — phone (≤480px)
   =========================================== */
@media (max-width:480px){

  /* Summary */
  article.cv-album .cv-summary-wide{padding-left:14px;padding-right:14px}
  .cv-summary-label{font-size:17px}
  .cv-summary-bullets,.cv-summary-bullets li{font-size:.9rem}

  /* Tracklist: minimal padding */
  article.cv-album.cv-album section.cv-tracks.cv-tracks .cv-track-main.cv-track-main{
    grid-template-columns: 34px 1fr auto 38px;
  }

  /* Artist col: tighter box and smaller items */
  .cv-artist-col .cv-discog-box{padding:14px 16px !important}
  .cv-artist-col .cv-discog-item{font-size:14px !important;line-height:1.8 !important}
  .cv-col-heading{font-size:18px}
}
