/* BandFly Store — uses core tokens from bandfly.css */
.bf-tracklist { list-style: none; margin: 0; padding: 0; counter-reset: bftrack; }
.bf-track { display: flex; align-items: center; gap: .75rem; padding: .55rem 0; border-bottom: 1px solid var(--bf-border); }
.bf-track:last-child { border-bottom: 0; }
.bf-track-play { flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--bf-surface-2); color: var(--bf-text); cursor: pointer; font-size: .8rem; box-shadow: inset 0 0 0 1.5px var(--bf-border); }
.bf-track-play:hover { background: var(--bf-accent); color: var(--bf-accent-ink); box-shadow: none; }
.bf-track-play.is-playing { background: var(--bf-accent); color: var(--bf-accent-ink); }
.bf-track-play.is-off { display: inline-grid; place-items: center; color: var(--bf-muted); cursor: default; }
.bf-track-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.bf-track-dur { font-variant-numeric: tabular-nums; font-size: .85rem; }
.bf-buy-compact { margin: 0; }
.bf-buybox h2 { margin-top: 0; }
.bf-price { font-family: var(--bf-display); font-size: 2rem; margin: 0 0 .75rem; font-variant-numeric: tabular-nums; }
.bf-price s { font-size: 1.1rem; margin-right: .4rem; }
.bf-buy .bf-field { display: grid; gap: .35rem; margin-bottom: .75rem; font-weight: 600; font-size: .9rem; }
.bf-buy input[type=email], .bf-buy input[name=bf_promo], .bf-qr-maker input {
	background: var(--bf-surface-2); color: var(--bf-text); border: 1px solid var(--bf-border); border-radius: var(--bf-radius-sm); padding: .6rem .8rem; font: inherit; width: 100%; box-sizing: border-box;
}
.bf-promo-field { margin: 0 0 .9rem; }
.bf-promo-field summary { cursor: pointer; color: var(--bf-muted); font-size: .9rem; margin-bottom: .4rem; }
.bf-promo-banner { display: grid; gap: .2rem; padding: .9rem 1rem; border-radius: var(--bf-radius-sm); margin-bottom: 1rem; background: linear-gradient(120deg, rgba(255, 90, 54, .22), rgba(255, 176, 32, .18)); border: 1px solid rgba(255, 176, 32, .4); }
.bf-claim { margin-bottom: 1.25rem; }
.bf-release-grid { margin-top: 1rem; }
.bf-music .bf-tracklist { margin-bottom: .5rem; }

/* Dashboard bits */
.bf-dash-section-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: .75rem; }
.bf-dash-section-head h2 { margin: 0; font-family: var(--bf-display); }
.bf-track-table input, .bf-track-table select { background: var(--bf-surface-2); color: var(--bf-text); border: 1px solid var(--bf-border); border-radius: 6px; padding: .35rem .5rem; font: inherit; width: 100%; box-sizing: border-box; min-width: 0; }
.bf-track-table .bf-num { width: 5.5rem; }
.bf-track-table td:nth-child(2) { min-width: 180px; }
.bf-link { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; }
.bf-danger { color: var(--bf-err) !important; }
.bf-danger-zone { margin-top: 1rem; text-align: right; }
.bf-status-ok { color: var(--bf-ok); font-weight: 600; }
.bf-status-warn { color: var(--bf-warn); font-weight: 600; }
.bf-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .75rem; margin: 1rem 0; }
.bf-plan { display: grid; gap: .35rem; align-content: start; padding: 1rem; border: 1.5px solid var(--bf-border); border-radius: var(--bf-radius); background: var(--bf-surface-2); }
.bf-plan.is-current { border-color: var(--bf-accent); }
.bf-plan-price { font-family: var(--bf-display); font-size: 1.4rem; }
.bf-plan form { margin: .3rem 0 0; }

/* Promos / QR */
.bf-promo h2 { font-size: 1.1rem; display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.bf-qr-maker { display: grid; gap: .5rem; margin: .5rem 0 1rem; max-width: 420px; }
.bf-qr-maker label { display: grid; gap: .3rem; font-size: .9rem; font-weight: 600; }
.bf-qr-out { display: grid; gap: .5rem; justify-items: start; }
.bf-qr-out canvas { width: 200px; height: 200px; image-rendering: pixelated; border-radius: 8px; background: #fff; }
.bf-qr-out code { word-break: break-all; color: var(--bf-muted); }

/* Library */
.bf-lib-head { display: flex; gap: 1rem; align-items: center; margin-bottom: .5rem; }
.bf-lib-head h2 { margin: 0; font-size: 1.1rem; }
.bf-lib-head .bf-thumb { width: 64px; height: 64px; }

/* ---------- Artist page cards ---------- */
.bf-btn-xs { padding: .25rem .6rem; font-size: .75rem; border-radius: 6px; }
.bf-btn-block { width: 100%; }
.bf-buy-compact { display: inline; margin: 0; }
.bf-release-card h2 { margin: 0 0 .6rem; font-size: 1.15rem; }
.bf-release-top { display: grid; gap: 1.2rem; }
@media (min-width: 1100px) { .bf-release-top { grid-template-columns: 1.15fr 1fr; } }
.bf-release-feature { display: flex; gap: 1rem; align-items: flex-start; }
.bf-release-cover { width: 150px; aspect-ratio: 1; object-fit: cover; border-radius: 8px; display: block; flex-shrink: 0; }
.bf-release-info h3 { margin: 0 0 .2rem; font-size: 1.1rem; }
.bf-release-info h3 a, .bf-mm-title, .bf-music-release h2 a { color: var(--bf-text); text-decoration: none; }
.bf-release-info .bf-btn { border-radius: 8px; margin-top: .3rem; }
.bf-preview-tracks h3 { margin: 0 0 .4rem; font-size: .9rem; font-weight: 600; }
.bf-preview-tracks ol { list-style: none; margin: 0 0 .5rem; padding: 0; display: grid; gap: .3rem; }
.bf-preview-tracks li { display: grid; grid-template-columns: auto auto 1fr auto auto; gap: .5rem; align-items: center; background: var(--bf-surface-2); border: 1px solid var(--bf-border); border-radius: 8px; padding: .3rem .5rem; font-size: .85rem; }
.bf-pt-no { color: var(--bf-muted); font-size: .8rem; }
.bf-pt-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bf-more-music-h { margin: .4rem 0 0 !important; }
.bf-more-music { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 14px; }
.bf-mm-item { display: grid; gap: .25rem; align-content: start; }
.bf-mm-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; display: block; }
.bf-mm-title { font-weight: 600; font-size: .9rem; }
.bf-mm-item .bf-btn { border-radius: 6px; }
.bf-free-card { align-items: stretch; text-align: left; }
.bf-free-card h2 { margin: 0; font-size: 1.15rem; }
.bf-qr-canvas { width: 160px; height: 160px; align-self: center; border-radius: 8px; background: #fff; image-rendering: pixelated; }
.bf-music-tab { display: grid; gap: 16px; }
.bf-music-release { display: grid; grid-template-columns: 150px 1fr; gap: 1.2rem; align-items: start; }
.bf-music-release h2 { margin: 0; }
@media (max-width: 560px) { .bf-music-release { grid-template-columns: 1fr; } .bf-release-feature { flex-direction: column; } }
