:root {
    color-scheme: light;
    --bg: #f4f6fb;
    --surface: #ffffff;
    --surface-2: #eef2f8;
    --surface-3: #e3e9f3;
    --text: #172033;
    --muted: #657087;
    --line: #dbe2ec;
    --primary: #6d43e5;
    --primary-strong: #5630c9;
    --primary-soft: #eee9ff;
    --accent: #f59e0b;
    --success: #15803d;
    --danger: #c2414b;
    --shadow-sm: 0 8px 24px rgba(21, 32, 52, .07);
    --shadow-lg: 0 24px 70px rgba(21, 32, 52, .14);
    --radius-sm: 10px;
    --radius: 18px;
    --radius-lg: 28px;
    --container: 1220px;
    --header-height: 76px;
    --player-height: 88px;
}

html[data-theme="dark"] {
    color-scheme: dark;
    --bg: #0b1020;
    --surface: #11182a;
    --surface-2: #172138;
    --surface-3: #202c46;
    --text: #edf2ff;
    --muted: #a6b0c6;
    --line: #283551;
    --primary: #9c83ff;
    --primary-strong: #b09dff;
    --primary-soft: #252047;
    --accent: #fbbf24;
    --success: #4ade80;
    --danger: #fb7185;
    --shadow-sm: 0 8px 24px rgba(0, 0, 0, .24);
    --shadow-lg: 0 24px 70px rgba(0, 0, 0, .38);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: IRANSansXFaNum, Tahoma, sans-serif;
    line-height: 1.8;
    -webkit-font-smoothing: antialiased;
}
body.has-global-player { padding-bottom: calc(var(--player-height) + env(safe-area-inset-bottom)); }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--primary); }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
svg { display: block; }
.container { width: min(calc(100% - 32px), var(--container)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 8px; right: 8px; z-index: 9999; transform: translateY(-160%); background: var(--text); color: var(--surface); padding: 8px 14px; border-radius: 8px; }
.skip-link:focus { transform: none; }
.muted { color: var(--muted); }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--primary); font-size: .82rem; font-weight: 700; letter-spacing: .02em; }
.eyebrow::before { content: ""; width: 24px; height: 2px; border-radius: 2px; background: currentColor; }

.site-header { position: sticky; top: 0; z-index: 100; background: color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter: blur(18px); border-bottom: 1px solid color-mix(in srgb, var(--line) 82%, transparent); }
.header-inner { min-height: var(--header-height); display: grid; grid-template-columns: auto minmax(260px, 1fr) auto auto; gap: 24px; align-items: center; }
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: max-content; }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; color: #fff; background: linear-gradient(145deg, var(--primary), #8f5eff 58%, #f59e0b); box-shadow: 0 9px 24px color-mix(in srgb, var(--primary) 30%, transparent); font-size: 1.35rem; }
.brand-mark svg { width: 25px; height: 25px; }
.brand-copy { display: flex; flex-direction: column; line-height: 1.35; }
.brand-copy strong { font-size: 1.06rem; }
.brand-copy small { color: var(--muted); font-size: .72rem; }
.header-search { position: relative; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 8px; min-height: 46px; padding: 5px 7px 5px 12px; background: var(--surface-2); border: 1px solid transparent; border-radius: 15px; transition: .2s ease; }
.header-search:focus-within { background: var(--surface); border-color: color-mix(in srgb, var(--primary) 55%, var(--line)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 12%, transparent); }
.header-search > svg { width: 21px; height: 21px; color: var(--muted); }
.header-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); }
.header-search button { border: 0; border-radius: 11px; padding: 7px 14px; background: var(--primary); color: white; font-weight: 700; }
.search-suggestions { position: absolute; inset: calc(100% + 10px) 0 auto 0; z-index: 120; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-lg); padding: 8px; max-height: min(480px, 70vh); overflow: auto; }
.search-suggestion { display: grid; grid-template-columns: 44px 1fr auto; gap: 10px; align-items: center; padding: 8px; border-radius: 12px; }
.search-suggestion:hover, .search-suggestion.is-active { background: var(--surface-2); color: inherit; }
.search-suggestion__image { width: 44px; aspect-ratio: 1; border-radius: 10px; object-fit: cover; background: var(--surface-3); }
.search-suggestion__copy { min-width: 0; }
.search-suggestion__copy strong, .search-suggestion__copy small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.search-suggestion__copy small, .search-suggestion__type { color: var(--muted); font-size: .75rem; }
.header-nav { display: flex; gap: 4px; }
.header-nav a { padding: 8px 10px; border-radius: 10px; font-size: .9rem; font-weight: 600; white-space: nowrap; }
.header-nav a:hover, .header-nav a.is-active { background: var(--primary-soft); color: var(--primary-strong); }
.header-actions { display: flex; gap: 8px; }
.icon-button { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); color: var(--text); }
.icon-button:hover { border-color: var(--primary); color: var(--primary); }
.icon-button svg { width: 21px; height: 21px; }
.theme-icon--moon { display: none; }
html[data-theme="dark"] .theme-icon--sun { display: none; }
html[data-theme="dark"] .theme-icon--moon { display: block; }
.mobile-menu-button { display: none; }
.mobile-navigation { border-top: 1px solid var(--line); background: var(--surface); }
.mobile-navigation .container { display: grid; padding-block: 10px 16px; }
.mobile-navigation a { padding: 9px 4px; border-bottom: 1px solid var(--line); }

.site-main { min-height: 70vh; }
.hero { position: relative; overflow: hidden; padding: 72px 0 58px; background: linear-gradient(145deg, color-mix(in srgb, var(--primary-soft) 75%, var(--surface)), var(--bg)); }
.hero::before, .hero::after { content: ""; position: absolute; border-radius: 50%; filter: blur(4px); pointer-events: none; }
.hero::before { width: 420px; height: 420px; right: -150px; top: -210px; background: color-mix(in srgb, var(--primary) 16%, transparent); }
.hero::after { width: 320px; height: 320px; left: -120px; bottom: -210px; background: color-mix(in srgb, var(--accent) 13%, transparent); }
.hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr); gap: 52px; align-items: center; }
.hero-copy h1 { margin: 12px 0 18px; max-width: 760px; font-size: clamp(2.1rem, 4.6vw, 4.2rem); line-height: 1.22; letter-spacing: -.04em; }
.hero-copy > p { max-width: 670px; margin: 0 0 28px; color: var(--muted); font-size: 1.08rem; }
.hero-search { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 8px; max-width: 650px; padding: 7px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow-sm); }
.hero-search input { min-width: 0; border: 0; outline: 0; padding: 10px 12px; background: transparent; color: var(--text); }
.hero-search button { border: 0; border-radius: 12px; padding: 10px 23px; background: var(--primary); color: white; font-weight: 700; }
.hero-stats { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 28px; }
.hero-stat strong { display: block; font-size: 1.45rem; line-height: 1.3; }
.hero-stat span { color: var(--muted); font-size: .82rem; }
.hero-panel { position: relative; background: color-mix(in srgb, var(--surface) 90%, transparent); border: 1px solid color-mix(in srgb, var(--line) 75%, transparent); border-radius: var(--radius-lg); padding: 20px; box-shadow: var(--shadow-lg); }
.hero-panel::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; background: linear-gradient(130deg, color-mix(in srgb, var(--primary) 50%, transparent), transparent 45%, color-mix(in srgb, var(--accent) 40%, transparent)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; pointer-events: none; }
.hero-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.hero-panel__head h2 { margin: 0; font-size: 1.1rem; }
.hero-panel__head span { color: var(--muted); font-size: .78rem; }

.section { padding: 56px 0; }
.section-soft { background: var(--surface-2); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.section-head h2 { margin: 0; font-size: clamp(1.35rem, 2.2vw, 1.9rem); letter-spacing: -.025em; }
.section-head p { margin: 6px 0 0; color: var(--muted); }
.section-head > a { color: var(--primary); font-weight: 700; white-space: nowrap; }
.song-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.album-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.artist-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px; }
.two-column { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr); gap: 34px; }
.list-panel { display: grid; gap: 9px; }

.song-card { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: 0 1px 0 rgba(0,0,0,.02); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.song-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--primary) 35%, var(--line)); box-shadow: var(--shadow-sm); }
.song-card__visual { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: var(--surface-2); }
.song-card__visual img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.song-card:hover .song-card__visual img { transform: scale(1.045); }
.song-card__play { position: absolute; left: 12px; bottom: 12px; width: 46px; height: 46px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); color: var(--primary); box-shadow: 0 10px 24px rgba(0,0,0,.2); transform: translateY(5px); opacity: .92; transition: .2s ease; }
.song-card:hover .song-card__play, .song-card__play:focus-visible { transform: none; opacity: 1; }
.song-card__play svg { width: 20px; height: 20px; }
.song-card__badge { position: absolute; right: 10px; top: 10px; padding: 4px 8px; border-radius: 999px; background: rgba(12,17,30,.74); color: #fff; font-size: .7rem; backdrop-filter: blur(8px); }
.song-card__body { padding: 14px 15px 16px; min-width: 0; }
.song-card__body h3 { margin: 0 0 5px; font-size: 1rem; line-height: 1.55; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.song-card__body p { margin: 0; color: var(--muted); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.song-card__meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 9px; color: var(--muted); font-size: .7rem; }
.song-card--compact { display: grid; grid-template-columns: 58px minmax(0, 1fr) 40px; align-items: center; border: 0; border-radius: 13px; box-shadow: none; background: transparent; }
.song-card--compact:hover { transform: none; background: var(--surface-2); box-shadow: none; }
.song-card--compact .song-card__visual { width: 58px; aspect-ratio: 1; border-radius: 11px; }
.song-card--compact .song-card__body { padding: 8px 10px; }
.song-card--compact .song-card__play { position: static; width: 36px; height: 36px; margin-left: 4px; background: var(--primary-soft); color: var(--primary); box-shadow: none; opacity: 1; transform: none; }
.song-card--compact .song-card__badge, .song-card--compact .song-card__meta { display: none; }
.cover-placeholder { width: 100%; height: 100%; min-height: 120px; display: grid; place-items: center; background: radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--primary) 30%, transparent), transparent 45%), linear-gradient(145deg, var(--surface-2), var(--surface-3)); color: var(--primary); font-size: 2.2rem; }

.artist-card, .album-card { min-width: 0; text-align: center; }
.artist-card__image { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 50%; background: var(--surface-2); border: 4px solid var(--surface); box-shadow: 0 0 0 1px var(--line), var(--shadow-sm); }
.artist-card__image img { width: 100%; height: 100%; object-fit: cover; }
.artist-card h3, .album-card h3 { margin: 12px 0 2px; font-size: .93rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.artist-card p, .album-card p { margin: 0; color: var(--muted); font-size: .75rem; }
.avatar-placeholder { width: 100%; height: 100%; display: grid; place-items: center; background: linear-gradient(145deg, var(--primary-soft), var(--surface-3)); color: var(--primary); font-size: 2rem; font-weight: 800; }
.album-card { text-align: right; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--surface); }
.album-card__cover { display: block; aspect-ratio: 1; overflow: hidden; background: var(--surface-2); }
.album-card__cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.album-card:hover .album-card__cover img { transform: scale(1.04); }
.album-card__body { padding: 13px 14px 15px; }
.album-card h3 { margin-top: 0; }

.chip-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.chip { display: inline-flex; align-items: center; gap: 9px; padding: 8px 13px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: .84rem; }
.chip:hover { border-color: var(--primary); background: var(--primary-soft); }
.chip span { min-width: 25px; padding: 1px 7px; text-align: center; border-radius: 999px; background: var(--surface-2); color: var(--muted); font-size: .72rem; }

.page-wrap { padding-block: 28px 60px; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 22px; color: var(--muted); font-size: .8rem; }
.breadcrumbs [aria-current="page"] { color: var(--text); }
.page-header { margin-bottom: 28px; }
.page-header h1 { margin: 0 0 7px; font-size: clamp(1.8rem, 3.5vw, 3rem); letter-spacing: -.035em; }
.page-header p { margin: 0; color: var(--muted); }
.content-box { padding: 25px; margin-top: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.content-box h2 { margin: 0 0 16px; font-size: 1.3rem; }
.prose { color: color-mix(in srgb, var(--text) 90%, var(--muted)); }
.prose p:first-child { margin-top: 0; }
.prose a { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }

.song-page { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 38px; align-items: start; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-sm); }
.song-cover-large, .album-cover-large { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 23px; background: var(--surface-2); box-shadow: 0 18px 46px rgba(17,24,39,.18); }
.song-cover-large img, .album-cover-large img { width: 100%; height: 100%; object-fit: cover; }
.cover-placeholder--large { min-height: 100%; font-size: 4.5rem; }
.song-content h1 { margin: 7px 0 8px; font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.3; letter-spacing: -.04em; }
.song-content .lead { margin: 0 0 14px; color: var(--primary); font-size: 1.08rem; font-weight: 700; }
.meta-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.meta-row > * { padding: 6px 10px; border-radius: 9px; background: var(--surface-2); color: var(--muted); font-size: .78rem; }
.song-stats { display: flex; flex-wrap: wrap; gap: 18px; margin: 16px 0 22px; color: var(--muted); font-size: .78rem; }
.audio-box { padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface-2); }
.audio-box__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.audio-box__title strong { display: block; }
.audio-box__title span { color: var(--muted); font-size: .76rem; }
.primary-play-button { min-width: 132px; display: inline-flex; justify-content: center; align-items: center; gap: 9px; border: 0; border-radius: 13px; padding: 11px 17px; background: var(--primary); color: #fff; font-weight: 800; box-shadow: 0 9px 22px color-mix(in srgb, var(--primary) 28%, transparent); }
.primary-play-button svg { width: 19px; height: 19px; }
.download-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 14px; }
.download-btn { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); font-size: .78rem; }
.download-btn:hover { border-color: var(--primary); background: var(--primary-soft); }
.download-btn small { color: var(--muted); }
.lyrics { white-space: pre-line; line-height: 2.2; text-align: center; font-size: 1rem; }
.contributor-list { display: flex; flex-wrap: wrap; gap: 10px; }
.contributor-list a { padding: 8px 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); }
.contributor-list span { color: var(--muted); font-size: .72rem; }
.preview-banner { position: sticky; top: calc(var(--header-height) + 10px); z-index: 50; display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 18px; padding: 11px 15px; border: 1px solid color-mix(in srgb, var(--accent) 60%, var(--line)); border-radius: 13px; background: color-mix(in srgb, var(--accent) 13%, var(--surface)); box-shadow: var(--shadow-sm); }
.preview-banner strong { display: block; }
.preview-banner span { color: var(--muted); font-size: .76rem; }

.profile-hero, .album-hero { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 34px; align-items: center; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-sm); }
.profile-avatar { aspect-ratio: 1; overflow: hidden; border-radius: 50%; border: 6px solid var(--surface); box-shadow: 0 0 0 1px var(--line), var(--shadow-lg); }
.profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar-placeholder--large { font-size: 5rem; }
.profile-hero h1, .album-hero h1 { margin: 6px 0 8px; font-size: clamp(2.1rem, 4vw, 3.8rem); line-height: 1.3; letter-spacing: -.04em; }
.profile-facts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 17px; }
.profile-facts span { padding: 6px 10px; border-radius: 9px; background: var(--surface-2); color: var(--muted); font-size: .78rem; }
.track-list { display: grid; gap: 9px; }
.track-row { display: grid; grid-template-columns: 42px 58px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 9px 12px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.track-row__index { color: var(--muted); text-align: center; font-size: .78rem; }
.track-row__cover { width: 58px; aspect-ratio: 1; overflow: hidden; border-radius: 10px; background: var(--surface-2); }
.track-row__cover img { width: 100%; height: 100%; object-fit: cover; }
.track-row__copy { min-width: 0; }
.track-row__copy strong, .track-row__copy small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.track-row__copy small { color: var(--muted); font-size: .76rem; }
.track-row__play { width: 38px; height: 38px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--primary-soft); color: var(--primary); }
.track-row__play svg { width: 18px; height: 18px; }

.catalog-layout { display: grid; grid-template-columns: 285px minmax(0, 1fr); gap: 28px; align-items: start; }
.filter-panel { position: sticky; top: calc(var(--header-height) + 20px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); padding: 18px; }
.filter-panel__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 14px; }
.filter-panel__head h2 { margin: 0; font-size: 1rem; }
.filter-panel__head a { color: var(--danger); font-size: .75rem; }
.filter-field { display: grid; gap: 6px; margin-top: 12px; }
.filter-field label { font-size: .76rem; color: var(--muted); }
.filter-field input, .filter-field select { width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid var(--line); border-radius: 10px; outline: none; background: var(--surface-2); color: var(--text); }
.filter-field input:focus, .filter-field select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent); }
.filter-submit { width: 100%; margin-top: 17px; border: 0; border-radius: 11px; padding: 10px; background: var(--primary); color: white; font-weight: 700; }
.catalog-toolbar { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-bottom: 18px; }
.catalog-toolbar p { margin: 0; color: var(--muted); }
.active-filters { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }
.active-filter { padding: 5px 9px; border-radius: 999px; background: var(--primary-soft); color: var(--primary-strong); font-size: .74rem; }
.empty-state { padding: 50px 25px; text-align: center; border: 1px dashed var(--line); border-radius: var(--radius); background: var(--surface); }
.empty-state h2 { margin: 0 0 8px; }
.empty-state p { margin: 0; color: var(--muted); }

.search-page-form { display: grid; grid-template-columns: minmax(0, 1fr) 160px 150px auto; gap: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow-sm); }
.search-page-form input, .search-page-form select { min-width: 0; border: 0; outline: 0; padding: 10px; background: var(--surface-2); color: var(--text); border-radius: 11px; }
.search-page-form button { border: 0; border-radius: 11px; padding: 10px 22px; background: var(--primary); color: white; font-weight: 700; }
.search-results { display: grid; gap: 11px; margin-top: 25px; }
.search-result-card { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 15px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.search-result-card__image { width: 72px; aspect-ratio: 1; border-radius: 12px; overflow: hidden; background: var(--surface-2); }
.search-result-card__image img { width: 100%; height: 100%; object-fit: cover; }
.search-result-card h2 { margin: 0 0 3px; font-size: 1rem; }
.search-result-card p { margin: 0; color: var(--muted); font-size: .8rem; }
.search-result-card__type { padding: 5px 9px; border-radius: 999px; background: var(--surface-2); color: var(--muted); font-size: .7rem; }

.pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; margin-top: 28px; }
.pagination > * { min-width: 38px; min-height: 38px; display: grid; place-items: center; padding: 5px 9px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.pagination .active, .pagination [aria-current="page"] { background: var(--primary); color: white; border-color: var(--primary); }

.site-footer { padding: 42px 0 18px; background: #0d1322; color: #e7ecf7; }
.footer-main { max-width: 920px; }
.footer-brand { display: flex; flex-direction: column; align-items: center; text-align: center; }
.footer-brand p { max-width: 680px; margin: 14px auto 0; color: #aab4c7; text-align: center; }
.brand--footer { justify-content: center; }
.brand--footer .brand-mark { width: 38px; height: 38px; }
.footer-bottom {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid #263049;
    color: #8995ad;
    font-size: .75rem;
    text-align: center;
}
.footer-bottom span { text-align: center; }
.footer-bottom__links { display: inline-flex; align-items: center; justify-content: center; gap: 12px; }
.footer-bottom__links a { color: #b4bfd3; font-weight: 700; }
.footer-bottom__links a + a::before { content: "•"; margin-inline-end: 12px; color: #536079; }
.footer-bottom__links a:hover { color: #fff; }

.static-page { padding-bottom: 56px; }
.static-page__hero { max-width: 900px; margin: 18px auto 28px; text-align: center; }
.static-page__hero h1 { margin: 8px 0 12px; font-size: clamp(2rem, 5vw, 3.35rem); }
.static-page__hero p { max-width: 780px; margin: 0 auto; color: var(--muted); font-size: 1rem; }
.static-page__content { max-width: 980px; margin-inline: auto; }
.static-page__content > h2 { margin-top: 30px; }
.static-page__content > h2:first-child { margin-top: 0; }
.static-page__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.static-page__grid article { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface-2); }
.static-page__grid article strong { font-size: 1rem; }
.static-page__grid article span { color: var(--muted); font-size: .9rem; }
.static-page__grid article .button { margin-top: auto; }
.static-page__grid--contact article { min-height: 210px; }
.static-page__note { display: block; padding-top: 8px; }
.static-page__notice { margin-top: 20px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 16px; background: color-mix(in srgb, var(--primary) 6%, var(--surface)); }
.static-page__notice p { margin: 5px 0 0; color: var(--muted); }

.global-player { position: fixed; inset: auto 0 0 0; z-index: 200; height: calc(var(--player-height) + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: color-mix(in srgb, var(--surface) 94%, transparent); border-top: 1px solid var(--line); box-shadow: 0 -16px 50px rgba(0,0,0,.16); backdrop-filter: blur(22px); }
.global-player__progress { position: absolute; inset: -7px 0 auto 0; height: 14px; }
.global-player__progress input { width: 100%; height: 14px; margin: 0; opacity: .9; accent-color: var(--primary); cursor: pointer; }
.global-player__inner { height: var(--player-height); display: grid; grid-template-columns: minmax(210px, 1fr) auto minmax(210px, 1fr); gap: 24px; align-items: center; }
.global-player__track { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 11px; align-items: center; min-width: 0; }
.global-player__cover { width: 56px; aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; border-radius: 12px; background: var(--surface-2); color: var(--primary); }
.global-player__cover img { width: 100%; height: 100%; object-fit: cover; }
.global-player__text { min-width: 0; }
.global-player__text strong, .global-player__text small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.global-player__text small { color: var(--muted); font-size: .75rem; }
.global-player__controls { display: flex; align-items: center; gap: 8px; }
.global-player__controls button, .global-player__meta button { border: 0; background: transparent; color: var(--text); }
.global-player__controls button { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; }
.global-player__controls button:hover { background: var(--surface-2); }
.global-player__controls svg { width: 21px; height: 21px; }
.global-player__play { width: 48px !important; height: 48px !important; background: var(--primary) !important; color: white !important; }
.global-player__play svg { width: 23px; height: 23px; }
.global-player__meta { display: flex; justify-content: flex-end; align-items: center; gap: 7px; color: var(--muted); font-size: .72rem; }
.global-player__meta button { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; }
.global-player__meta button:hover { background: var(--surface-2); color: var(--text); }
.global-player__meta svg { width: 19px; height: 19px; }
.js-play-song.is-playing { background: var(--success) !important; color: #fff !important; }

@media (max-width: 1100px) {
    .header-inner { grid-template-columns: auto minmax(230px, 1fr) auto; gap: 16px; }
    .header-nav { display: none; }
    .mobile-menu-button { display: grid; }
    .song-grid, .album-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .artist-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .hero-grid { grid-template-columns: 1fr 400px; gap: 30px; }
}

@media (max-width: 860px) {
    :root { --header-height: 68px; --player-height: 78px; }
    .header-inner { grid-template-columns: auto 1fr auto; }
    .header-search { grid-column: 1 / -1; grid-row: 2; margin-bottom: 10px; }
    .site-header { position: relative; }
    .hero { padding-top: 44px; }
    .hero-grid, .two-column, .catalog-layout { grid-template-columns: 1fr; }
    .hero-panel { max-width: 650px; }
    .song-grid, .album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .artist-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .song-page { grid-template-columns: 280px minmax(0, 1fr); gap: 24px; padding: 20px; }
    .profile-hero, .album-hero { grid-template-columns: 210px minmax(0, 1fr); }
    .filter-panel { position: static; }
    .global-player__inner { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
    .global-player__meta { display: none; }
}

@media (max-width: 620px) {
    .container { width: min(calc(100% - 22px), var(--container)); }
    .brand-copy small { display: none; }
    .brand-mark { width: 40px; height: 40px; border-radius: 12px; }
    .header-inner { gap: 10px; }
    .hero-copy h1 { font-size: 2.25rem; }
    .hero-search, .search-page-form { grid-template-columns: 1fr; }
    .hero-search button, .search-page-form button { width: 100%; }
    .hero-stats { gap: 16px; }
    .section { padding: 42px 0; }
    .song-grid, .album-grid { gap: 12px; }
    .artist-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
    .song-card__body { padding: 11px 11px 13px; }
    .song-card__play { width: 40px; height: 40px; left: 8px; bottom: 8px; }
    .song-page, .profile-hero, .album-hero { grid-template-columns: 1fr; }
    .song-cover-large, .album-cover-large { width: min(100%, 420px); margin-inline: auto; }
    .profile-avatar { width: min(70vw, 260px); margin-inline: auto; }
    .song-content h1, .profile-hero h1, .album-hero h1 { font-size: 2.1rem; }
    .audio-box__header { align-items: stretch; flex-direction: column; }
    .primary-play-button { width: 100%; }
    .download-list { grid-template-columns: 1fr; }
    .track-row { grid-template-columns: 32px 48px minmax(0, 1fr) 36px; gap: 8px; padding: 8px; }
    .track-row__cover { width: 48px; }
    .search-result-card { grid-template-columns: 58px minmax(0, 1fr); }
    .search-result-card__image { width: 58px; }
    .search-result-card__type { grid-column: 2; justify-self: start; }
    .global-player__inner { grid-template-columns: minmax(0, 1fr) auto; }
    .global-player__track { grid-template-columns: 46px minmax(0, 1fr); }
    .global-player__cover { width: 46px; }
    .global-player__controls button:not(.global-player__play) { display: none; }
}

@media (max-width: 430px) {
    .song-grid, .album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .artist-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .song-card__body h3 { font-size: .88rem; }
    .song-card__body p { font-size: .72rem; }
    .section-head { align-items: start; }
}

@media (max-width: 620px) {
    .site-footer { padding-top: 34px; }
    .footer-bottom { flex-direction: column; gap: 7px; margin-top: 20px; }
    .footer-bottom__links { order: 2; }
    .static-page { padding-bottom: 42px; }
    .static-page__hero { margin-top: 12px; }
    .static-page__grid { grid-template-columns: 1fr; }
    .static-page__grid--contact article { min-height: 0; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* v7.0.0 — audience accounts, library, playlists and recommendations */
.account-button { display: inline-flex; align-items: center; gap: 7px; height: 42px; padding: 0 11px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); font-size: .78rem; font-weight: 700; white-space: nowrap; }
.account-button:hover { border-color: var(--primary); color: var(--primary); }
.account-button svg { width: 19px; height: 19px; }
.header-login-link { display: inline-flex; align-items: center; padding: 0 4px; color: var(--primary); font-size: .78rem; font-weight: 800; }
.site-notice { margin-top: 14px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: var(--shadow-sm); }
.site-notice--success { border-color: color-mix(in srgb, var(--success) 45%, var(--line)); color: var(--success); }
.site-notice--error { border-color: color-mix(in srgb, var(--danger) 45%, var(--line)); color: var(--danger); }
.audience-toast { position: fixed; z-index: 1000; right: 20px; bottom: calc(var(--player-height) + 22px); max-width: min(390px, calc(100% - 40px)); padding: 11px 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--text); box-shadow: var(--shadow-lg); }
.audience-toast.is-error { border-color: color-mix(in srgb, var(--danger) 55%, var(--line)); color: var(--danger); }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); color: var(--text); font-weight: 700; }
.button:hover { border-color: var(--primary); color: var(--primary); }
.button--primary { border-color: var(--primary); background: var(--primary); color: #fff; }
.button--primary:hover { background: var(--primary-strong); color: #fff; }
.button--danger { border-color: color-mix(in srgb, var(--danger) 45%, var(--line)); color: var(--danger); }
.button--small { min-height: 34px; padding: 5px 10px; border-radius: 9px; font-size: .76rem; }
.button--follow { margin-top: 18px; }
.button--follow.is-active { border-color: var(--success); background: color-mix(in srgb, var(--success) 13%, var(--surface)); color: var(--success); }

.song-card__actions { position: absolute; left: 10px; bottom: 10px; z-index: 4; display: flex; align-items: center; gap: 6px; }
.song-card__actions .song-card__play { position: static; transform: none; opacity: .96; }
.song-card__action { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--line) 78%, transparent); border-radius: 50%; background: color-mix(in srgb, var(--surface) 94%, transparent); color: var(--muted); box-shadow: 0 8px 20px rgba(0,0,0,.13); transition: .18s ease; }
.song-card__action:hover { border-color: var(--primary); color: var(--primary); transform: translateY(-2px); }
.song-card__action svg { width: 18px; height: 18px; }
.song-card__action.is-active, .js-favorite-song.is-active { border-color: color-mix(in srgb, var(--danger) 55%, var(--line)); background: color-mix(in srgb, var(--danger) 11%, var(--surface)); color: var(--danger); }
.js-favorite-song.is-active svg path { fill: currentColor; }
.song-card--compact { grid-template-columns: 58px minmax(0, 1fr) auto; }
.song-card--compact .song-card__actions { position: static; padding-left: 5px; }
.song-card--compact .song-card__action { width: 32px; height: 32px; box-shadow: none; background: var(--surface); }
.song-card--compact .js-add-playlist { display: none; }
.audio-box__audience-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.recommendation-reason { display: block; margin-top: 8px; color: var(--muted); font-size: .72rem; }

.auth-shell { min-height: 68vh; display: grid; place-items: center; padding-block: 48px; }
.auth-card { width: min(100%, 510px); padding: clamp(24px, 5vw, 42px); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-lg); }
.auth-card h1 { margin: 8px 0 10px; font-size: clamp(1.8rem, 4vw, 2.7rem); }
.auth-card > p { color: var(--muted); }
.stack-form { display: grid; gap: 14px; margin-top: 24px; }
.stack-form label, .playlist-create-card label, .inline-edit-form label { display: grid; gap: 6px; color: var(--muted); font-size: .8rem; }
.stack-form input, .stack-form select, .stack-form textarea, .playlist-create-card input, .playlist-create-card select, .playlist-create-card textarea, .inline-edit-form input, .inline-edit-form select, .inline-edit-form textarea { width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; outline: 0; background: var(--surface-2); color: var(--text); }
.stack-form input:focus, .playlist-create-card input:focus, .inline-edit-form input:focus, textarea:focus, select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent); }
.check-field { display: flex !important; grid-template-columns: auto 1fr; align-items: center; }
.check-field input { width: auto; }
.auth-switch { margin: 20px 0 0; text-align: center; }
.auth-switch a { color: var(--primary); font-weight: 800; }
.form-notice { padding: 10px 12px; border-radius: 10px; margin-top: 12px; }
.form-notice--error { background: color-mix(in srgb, var(--danger) 10%, var(--surface)); color: var(--danger); }

.library-hero, .playlist-manage-hero, .playlist-public-hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(145deg, var(--surface), color-mix(in srgb, var(--primary-soft) 45%, var(--surface))); box-shadow: var(--shadow-sm); }
.library-hero h1, .playlist-manage-hero h1, .playlist-public-hero h1 { margin: 7px 0; font-size: clamp(1.8rem, 4vw, 3rem); }
.library-hero p, .playlist-manage-hero p, .playlist-public-hero p { margin: 0; color: var(--muted); }
.library-hero__actions, .card-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.library-tabs { position: sticky; top: calc(var(--header-height) + 10px); z-index: 40; display: flex; gap: 7px; overflow-x: auto; margin: 18px 0 0; padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: color-mix(in srgb, var(--surface) 94%, transparent); backdrop-filter: blur(12px); }
.library-tabs a { display: inline-flex; align-items: center; gap: 7px; min-width: max-content; padding: 7px 11px; border-radius: 9px; font-size: .78rem; font-weight: 700; }
.library-tabs a:hover { background: var(--primary-soft); color: var(--primary); }
.library-tabs span { min-width: 22px; padding: 0 6px; border-radius: 999px; background: var(--surface-2); text-align: center; font-size: .68rem; }
.continue-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.continue-card { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.continue-card .song-card { border: 0; box-shadow: none; }
.continue-progress { height: 7px; margin: 10px 2px 5px; overflow: hidden; border-radius: 999px; background: var(--surface-3); }
.continue-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary), var(--accent)); }
.continue-card > small { display: block; margin-bottom: 8px; color: var(--muted); font-size: .7rem; }
.library-layout { display: grid; grid-template-columns: 300px minmax(0,1fr); gap: 20px; align-items: start; }
.playlist-create-card { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.playlist-create-card h3 { margin: 0; }
.playlist-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.playlist-card { padding: 17px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.playlist-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.playlist-card__head h3 { margin: 0; }
.playlist-card__head p, .playlist-card > p { margin: 4px 0 0; color: var(--muted); font-size: .77rem; }
.playlist-card__head > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: var(--primary-soft); color: var(--primary); font-size: 1.25rem; }
.playlist-preview { display: grid; gap: 4px; margin: 14px 0; }
.playlist-preview span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--muted); font-size: .75rem; }
.artist-grid .button--follow { display: none; }
.history-list, .playlist-track-list { display: grid; gap: 9px; }
.history-row, .playlist-track { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.history-row > div:last-child { display: grid; text-align: left; }
.history-row small { color: var(--muted); font-size: .7rem; }
.inline-edit-form { display: grid; grid-template-columns: 1fr 170px 1.5fr auto auto; gap: 12px; align-items: end; }
.inline-edit-form .wide { min-width: 0; }
.playlist-track__actions { display: flex; gap: 5px; flex-wrap: wrap; }
.icon-text { padding: 5px 8px; border: 0; border-radius: 8px; background: var(--surface-2); color: var(--muted); font-size: .7rem; }
.icon-text:hover { color: var(--primary); }
.icon-text.danger { color: var(--danger); }
.playlist-public-hero { justify-content: flex-start; }
.playlist-public-mark { width: 92px; height: 92px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 26px; background: linear-gradient(145deg, var(--primary), #9b7cff); color: #fff; font-size: 2.3rem; box-shadow: var(--shadow-lg); }
.playlist-position { width: 34px; text-align: center; color: var(--muted); font-weight: 800; }
.public-playlist .playlist-track { grid-template-columns: 38px minmax(0,1fr); }

.audience-modal[hidden] { display: none; }
.audience-modal { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 18px; }
.audience-modal__backdrop { position: absolute; inset: 0; background: rgba(9,14,28,.58); backdrop-filter: blur(5px); }
.audience-modal__panel { position: relative; width: min(100%, 500px); max-height: min(720px, 86vh); overflow: auto; padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: var(--shadow-lg); }
.audience-modal__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.audience-modal__head h2 { margin: 0; font-size: 1.15rem; }
.audience-modal__close { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); }
.audience-modal__list { display: grid; gap: 8px; }
.audience-modal__playlist { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); color: var(--text); text-align: right; }
.audience-modal__playlist:hover { border-color: var(--primary); background: var(--primary-soft); }
.audience-modal__empty { padding: 18px; border: 1px dashed var(--line); border-radius: 12px; color: var(--muted); text-align: center; }

@media (max-width: 980px) {
    .continue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .library-layout { grid-template-columns: 1fr; }
    .playlist-create-card { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .playlist-create-card h3, .playlist-create-card button { grid-column: 1 / -1; }
    .inline-edit-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .inline-edit-form .wide { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
    .account-button span, .header-login-link { display: none; }
    .account-button { width: 42px; justify-content: center; padding: 0; }
    .library-hero, .playlist-manage-hero, .playlist-public-hero { align-items: flex-start; flex-direction: column; }
    .continue-grid, .playlist-grid { grid-template-columns: 1fr; }
    .history-row, .playlist-track { grid-template-columns: 1fr; }
    .playlist-track__actions { justify-content: flex-start; }
    .audio-box__audience-actions { width: 100%; }
}
@media (max-width: 500px) {
    .song-card__actions { left: 7px; bottom: 7px; gap: 4px; }
    .song-card__action { width: 31px; height: 31px; }
    .song-card__actions .song-card__play { width: 36px; height: 36px; }
    .song-card--compact .song-card__action { display: none; }
    .playlist-create-card, .inline-edit-form { grid-template-columns: 1fr; }
    .inline-edit-form .wide { grid-column: auto; }
    .playlist-public-mark { width: 72px; height: 72px; border-radius: 20px; }
    .audience-toast { right: 11px; bottom: calc(var(--player-height) + 12px); max-width: calc(100% - 22px); }
}

/* v7.1.0 — account trust, notifications and audience performance */
.site-notice--warning { border-color: color-mix(in srgb, #f59e0b 48%, var(--line)); color: #b45309; background: color-mix(in srgb, #fef3c7 72%, var(--surface)); }
.site-notice--warning a { font-weight: 800; text-decoration: underline; }
.notification-button { position: relative; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); color: var(--muted); }
.notification-button:hover { border-color: var(--primary); color: var(--primary); }
.notification-button svg { width: 20px; height: 20px; }
.notification-button span { position: absolute; top: -6px; left: -6px; min-width: 20px; height: 20px; display: grid; place-items: center; padding: 0 5px; border: 2px solid var(--surface); border-radius: 999px; background: var(--danger); color: #fff; font-size: .62rem; font-weight: 900; }
.security-device-list { display: grid; gap: 10px; }
.security-device-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.security-device-card p { margin: 5px 0; color: var(--muted); font-size: .78rem; }
.security-device-card small { color: var(--success); }
.security-device-card.is-revoked { opacity: .65; }
.security-device-card.is-revoked small { color: var(--danger); }
.danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 24px; padding: 18px; border: 1px solid color-mix(in srgb, var(--danger) 40%, var(--line)); border-radius: 16px; background: color-mix(in srgb, var(--danger) 5%, var(--surface)); }
.danger-zone p { margin: 5px 0 0; color: var(--muted); font-size: .8rem; }
.notification-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 20px; align-items: start; }
.notification-list { display: grid; gap: 10px; }
.notification-card { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 13px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.notification-card.is-unread { border-color: color-mix(in srgb, var(--primary) 48%, var(--line)); background: color-mix(in srgb, var(--primary-soft) 35%, var(--surface)); }
.notification-card__icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: var(--surface-2); font-size: 1.25rem; }
.notification-card__copy p { margin: 5px 0; color: var(--muted); font-size: .8rem; }
.notification-card__copy small { color: var(--muted); font-size: .7rem; }
.notification-card__actions { display: flex; align-items: center; gap: 7px; }
.notification-settings { position: sticky; top: calc(var(--header-height) + 16px); padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.notification-settings h2 { margin: 0; font-size: 1rem; }
@media (max-width: 900px) { .notification-layout { grid-template-columns: 1fr; } .notification-settings { position: static; } }
@media (max-width: 640px) { .security-device-card, .danger-zone { align-items: stretch; flex-direction: column; } .notification-card { grid-template-columns: 40px minmax(0,1fr); } .notification-card__actions { grid-column: 2; } }

/* v7.1.0 rendering and Core Web Vitals safeguards */
.song-card__visual img,.album-card__cover img,.artist-card__image img,.song-cover-large img,.album-cover-large img,.artist-hero__image img{aspect-ratio:1/1;object-fit:cover}
@supports (content-visibility:auto){.site-main>.section:not(:first-child){content-visibility:auto;contain-intrinsic-size:1px 720px}}


/* v7.2.0 — responsive media, profile privacy and audience growth */
.song-card__visual picture,.album-card__cover picture,.artist-card__image picture,.song-cover-large picture,.album-cover-large picture,.artist-hero__image picture,.public-profile-avatar picture{display:block;width:100%;height:100%}
.song-card__visual picture img,.album-card__cover picture img,.artist-card__image picture img,.song-cover-large picture img,.album-cover-large picture img,.artist-hero__image picture img,.public-profile-avatar picture img{width:100%;height:100%;object-fit:cover}
.profile-settings-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:20px;align-items:start}
.profile-panel{padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm)}
.profile-panel h2{margin-top:0;font-size:1.05rem}.profile-panel--privacy{border-color:color-mix(in srgb,var(--primary) 30%,var(--line))}
.stack-form{display:grid;gap:14px}.stack-form label:not(.check-field){display:grid;gap:7px;color:var(--muted);font-size:.8rem;font-weight:700}
.stack-form input,.stack-form textarea,.stack-form select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);color:var(--text);font:inherit}
.check-field{display:flex;align-items:flex-start;gap:9px;color:var(--text);font-size:.82rem}.check-field input{margin-top:3px}
.public-profile-hero{display:flex;align-items:center;gap:22px}.public-profile-avatar{width:124px;height:124px;overflow:hidden;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--line);border-radius:32px;background:var(--surface-2);font-size:2.2rem;font-weight:900}
.public-profile-avatar img{width:100%;height:100%;object-fit:cover}.public-profile-hero p{max-width:760px;color:var(--muted);line-height:1.9}
.site-notice.danger{border-color:color-mix(in srgb,var(--danger) 42%,var(--line));background:color-mix(in srgb,var(--danger) 7%,var(--surface));color:var(--danger)}
@media(max-width:900px){.profile-settings-grid{grid-template-columns:1fr}}
@media(max-width:640px){.public-profile-hero{align-items:flex-start;flex-direction:column}.public-profile-avatar{width:96px;height:96px;border-radius:24px}}

/* v7.19.0 — Smart Music Discovery, Dynamic Radio & Editorial Collections */
.discovery-page{overflow:visible}.discovery-hero,.editorial-collection-hero,.radio-session-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:26px;align-items:center;padding:30px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 10%,var(--surface)),var(--surface));box-shadow:var(--shadow-sm)}
.discovery-hero h1,.editorial-collection-hero h1,.radio-session-hero h1{margin:.35rem 0 .7rem;font-size:clamp(1.8rem,4vw,3.4rem);line-height:1.25}.discovery-hero p,.editorial-collection-hero p,.radio-session-hero p{max-width:780px;margin:0;color:var(--muted);line-height:2}.discovery-hero__mark{width:130px;height:130px;display:grid;place-items:center;border-radius:38px;background:linear-gradient(145deg,var(--primary),#8b5cf6);color:#fff;font-size:4rem;box-shadow:0 22px 50px color-mix(in srgb,var(--primary) 30%,transparent)}
.radio-preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.radio-preset-grid--home{grid-template-columns:repeat(4,minmax(0,1fr))}.radio-preset-card{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--text);text-align:right;box-shadow:var(--shadow-sm)}.radio-preset-card:hover{border-color:color-mix(in srgb,var(--primary) 55%,var(--line));transform:translateY(-2px)}.radio-preset-card__icon{grid-row:1/4;width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:var(--primary-soft);color:var(--primary);font-size:1.6rem}.radio-preset-card strong{font-size:1rem}.radio-preset-card p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.8}.radio-preset-card button{justify-self:start;padding:7px 11px;border:0;border-radius:9px;background:var(--surface-2);color:var(--primary);font:inherit;font-size:.74rem;font-weight:800}.radio-preset-grid--compact .radio-preset-card p{display:none}
.editorial-collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.editorial-collection-grid--home{grid-template-columns:repeat(3,minmax(0,1fr))}.editorial-collection-card{overflow:hidden;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow-sm)}.editorial-collection-card__visual{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--surface-2)}.editorial-collection-card__visual img,.editorial-collection-card__visual picture{width:100%;height:100%;object-fit:cover}.editorial-collection-card__visual>span{position:absolute;right:12px;bottom:12px;padding:5px 9px;border-radius:999px;background:rgba(15,23,42,.78);color:#fff;font-size:.7rem}.editorial-collection-card__body{padding:16px}.editorial-collection-card__body h2{margin:0;font-size:1.05rem}.editorial-collection-card__body p{min-height:2.9em;margin:7px 0;color:var(--muted);font-size:.78rem;line-height:1.85}.editorial-collection-card__body>div{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:.74rem}.editorial-collection-card__body>div a{color:var(--primary);font-weight:800}.container--flush{width:100%}.discovery-collections-section{padding:26px;border-radius:24px}
.editorial-collection-hero{grid-template-columns:260px minmax(0,1fr)}.editorial-collection-hero__cover{aspect-ratio:1/1;overflow:hidden;border-radius:24px;background:var(--surface-2);box-shadow:var(--shadow-lg)}.editorial-collection-hero__cover img,.editorial-collection-hero__cover picture{width:100%;height:100%;object-fit:cover}.editorial-song-grid{margin-top:16px}
.radio-session-hero{grid-template-columns:170px minmax(0,1fr);background:linear-gradient(135deg,color-mix(in srgb,#7c3aed 14%,var(--surface)),color-mix(in srgb,#0ea5e9 7%,var(--surface)))}.radio-session-hero__wave{height:150px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:28px;background:linear-gradient(145deg,#6d28d9,#0ea5e9);box-shadow:var(--shadow-lg)}.radio-session-hero__wave i{width:10px;border-radius:999px;background:#fff;animation:radio-wave 1.25s ease-in-out infinite}.radio-session-hero__wave i:nth-child(1){height:34px}.radio-session-hero__wave i:nth-child(2){height:74px;animation-delay:.1s}.radio-session-hero__wave i:nth-child(3){height:110px;animation-delay:.2s}.radio-session-hero__wave i:nth-child(4){height:68px;animation-delay:.3s}.radio-session-hero__wave i:nth-child(5){height:38px;animation-delay:.4s}@keyframes radio-wave{0%,100%{transform:scaleY(.65);opacity:.75}50%{transform:scaleY(1);opacity:1}}.radio-session-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.radio-session-actions form,.inline-radio-form{display:inline-flex;margin:0}.inline-radio-form{margin-top:12px}
.radio-track-list{display:grid;gap:9px}.radio-track-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.radio-track-row__number{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.75rem;font-weight:800}.radio-track-row__song .song-card--compact{border:0;box-shadow:none;background:transparent}.radio-track-row__feedback{display:flex;gap:5px;flex-wrap:wrap}.radio-track-row__feedback form{margin:0}.radio-track-row__feedback button{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--muted);font:inherit;font-size:.68rem}.radio-track-row__feedback button:hover{border-color:var(--primary);color:var(--primary)}.radio-more-presets{padding:22px;border-radius:24px}
@media(max-width:1050px){.radio-preset-grid--home{grid-template-columns:repeat(2,minmax(0,1fr))}.editorial-collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.discovery-hero,.editorial-collection-hero,.radio-session-hero{grid-template-columns:1fr;padding:20px}.discovery-hero__mark{width:86px;height:86px;border-radius:24px;font-size:2.5rem}.editorial-collection-hero__cover{width:min(100%,320px)}.radio-session-hero__wave{width:140px;height:110px}.radio-preset-grid,.radio-preset-grid--home,.editorial-collection-grid{grid-template-columns:1fr}.radio-track-row{grid-template-columns:34px minmax(0,1fr)}.radio-track-row__feedback{grid-column:2}}

/* v7.20.0 — Music Charts, Community Signals & Viral Discovery */
.music-charts-page{overflow:visible}.charts-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:30px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,color-mix(in srgb,#f97316 10%,var(--surface)),color-mix(in srgb,var(--primary) 8%,var(--surface)));box-shadow:var(--shadow-sm)}.charts-hero h1{margin:.35rem 0 .7rem;font-size:clamp(1.8rem,4vw,3.35rem);line-height:1.25}.charts-hero p{max-width:820px;margin:0;color:var(--muted);line-height:2}.charts-hero__mark{width:126px;height:126px;display:grid;place-items:center;border-radius:38px;background:linear-gradient(145deg,#f97316,#7c3aed);color:#fff;font-size:4rem;font-weight:900;box-shadow:0 22px 50px color-mix(in srgb,#f97316 28%,transparent)}
.chart-filter-bar{display:flex;gap:8px;overflow:auto;margin-top:20px;padding:6px;border:1px solid var(--line);border-radius:15px;background:var(--surface);scrollbar-width:thin}.chart-filter-bar a{flex:0 0 auto;padding:9px 13px;border-radius:10px;color:var(--muted);font-size:.78rem;font-weight:800}.chart-filter-bar a:hover,.chart-filter-bar a.is-active{background:var(--primary);color:#fff}.chart-filter-bar--period{margin-top:8px;background:var(--surface-2)}.chart-meta-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0;color:var(--muted);font-size:.72rem}.chart-meta-row span{padding:6px 9px;border-radius:999px;background:var(--surface-2)}
.chart-list{display:grid;gap:10px;margin-top:18px}.chart-row{display:grid;grid-template-columns:72px minmax(0,1fr) 92px;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm)}.chart-rank{display:grid;place-items:center;align-content:center;min-height:64px;border-radius:15px;background:var(--surface-2)}.chart-rank strong{font-size:1.45rem}.chart-rank small,.chart-score small{font-size:.62rem;color:var(--muted)}.chart-rank .is-up,.chart-score .is-up{color:#15803d}.chart-rank .is-down{color:#b91c1c}.chart-row__content{min-width:0}.chart-row__content .song-card--compact{border:0;background:transparent;box-shadow:none}.chart-score{display:grid;justify-items:center;gap:2px;text-align:center}.chart-score strong{font-size:1rem}.chart-score span{font-size:.65rem;color:var(--muted)}.chart-simple-entity{display:flex;align-items:center;gap:12px;color:var(--text)}.chart-simple-entity__cover,.chart-simple-entity>.cover-placeholder{width:58px;height:58px;display:grid;place-items:center;overflow:hidden;flex:0 0 auto;border-radius:14px;background:var(--surface-2)}.chart-simple-entity__cover img,.chart-simple-entity__cover picture{width:100%;height:100%;object-fit:cover}.chart-simple-entity>span:last-child{display:grid;gap:5px}.chart-simple-entity small{color:var(--muted);font-size:.72rem;line-height:1.7}
.discovery-chart-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.discovery-chart-columns>div{min-width:0;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}.discovery-chart-columns h3{margin:0 0 12px;font-size:.95rem}.chart-mini-list{display:grid;gap:7px}.chart-mini-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center}.chart-mini-row>span{width:30px;height:30px;display:grid;place-items:center;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.7rem;font-weight:900}.chart-mini-row>.song-card--compact{min-width:0;border:0;background:transparent;box-shadow:none}.chart-mini-row>small{color:#15803d;font-size:.65rem;font-weight:800}.chart-home-section{background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--primary) 4%,transparent))}
.community-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}.community-reactions{display:flex;gap:7px;flex-wrap:wrap}.community-reactions form,.collection-community-actions form{margin:0}.community-reaction{display:grid;grid-template-columns:auto auto auto;gap:5px;align-items:center;padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font:inherit;cursor:pointer}.community-reaction span{font-size:.92rem}.community-reaction b{font-size:.68rem}.community-reaction small{min-width:18px;color:inherit;font-size:.62rem}.community-reaction:hover,.community-reaction.is-active{border-color:color-mix(in srgb,var(--primary) 65%,var(--line));background:var(--primary-soft);color:var(--primary)}.community-share{padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--primary);font:inherit;font-size:.72rem;font-weight:800;cursor:pointer}.collection-community-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:16px}.collection-community-actions .button.is-active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.collection-community-actions .button span{margin-inline-start:5px;font-size:.7rem}
@media(max-width:780px){.charts-hero{grid-template-columns:1fr;padding:20px}.charts-hero__mark{width:84px;height:84px;border-radius:24px;font-size:2.5rem}.chart-row{grid-template-columns:48px minmax(0,1fr)}.chart-score{grid-column:2;display:flex;justify-content:flex-start;gap:7px}.discovery-chart-columns{grid-template-columns:1fr}.community-panel{align-items:stretch;flex-direction:column}.community-share{align-self:flex-start}}
@media(max-width:520px){.chart-row{padding:7px}.chart-rank{min-height:52px}.community-reaction{grid-template-columns:auto auto}.community-reaction small{grid-column:2}.community-reactions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.community-reactions form,.community-reaction{width:100%}.community-reaction{justify-content:center}}

/* v7.21.0 — Social Music Profiles, Taste Identity & Community Following */
.social-community-hero{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 10%,var(--surface)),color-mix(in srgb,#ec4899 7%,var(--surface)))}
.social-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.social-profile-list-compact{display:grid;gap:10px}.social-profile-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.social-profile-card:hover{border-color:color-mix(in srgb,var(--primary) 55%,var(--line));transform:translateY(-2px)}.social-profile-card__avatar{width:72px;height:72px;display:grid;place-items:center;overflow:hidden;border-radius:22px;background:var(--surface-2);font-size:1.6rem;font-weight:900}.social-profile-card__avatar img,.social-profile-card__avatar picture{width:100%;height:100%;object-fit:cover}.social-profile-card__body{min-width:0}.social-profile-card__body strong{font-size:.95rem}.social-profile-card__body p{margin:6px 0;color:var(--muted);font-size:.74rem;line-height:1.8}.social-profile-card__meta{display:flex;gap:7px;flex-wrap:wrap}.social-profile-card__meta span{padding:4px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.64rem}
.social-feed-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}.social-activity-list{display:grid;gap:10px}.social-activity-card{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.social-activity-card p{margin:5px 0 0;color:var(--muted);font-size:.78rem;line-height:1.8}.social-activity-card time{flex:0 0 auto;color:var(--muted);font-size:.66rem}.social-request-list{display:grid;gap:10px}.social-request-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.social-request-card__actions{display:flex;gap:7px}.social-request-card__actions form{margin:0}
.social-profile-hero{display:grid;grid-template-columns:124px minmax(0,1fr) auto;align-items:center}.social-profile-hero__actions{display:grid;gap:8px;justify-items:stretch}.social-profile-hero__actions form{margin:0}.social-profile-stats{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.social-profile-stats>a,.social-profile-stats>span{min-width:94px;display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);color:var(--text)}.social-profile-stats strong{font-size:1rem}.social-profile-stats span span,.social-profile-stats a span{color:var(--muted);font-size:.66rem}.taste-identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.taste-chip-list{display:flex;gap:8px;flex-wrap:wrap}.taste-chip{padding:7px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.72rem;font-weight:800}.achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.achievement-card{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;padding:15px;border:1px solid var(--line);border-radius:17px;background:var(--surface)}.achievement-card__icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:var(--surface-2);font-size:1.2rem}.achievement-card strong{font-size:.86rem}.achievement-card p{margin:4px 0;color:var(--muted);font-size:.7rem;line-height:1.7}.achievement-card small{color:var(--muted);font-size:.62rem}.achievement-card--gold{border-color:color-mix(in srgb,#d4a017 45%,var(--line))}.achievement-card--silver{border-color:color-mix(in srgb,#94a3b8 55%,var(--line))}.achievement-card--bronze{border-color:color-mix(in srgb,#b45309 38%,var(--line))}.social-settings-box{display:grid;gap:12px;padding:15px;border:1px solid color-mix(in srgb,var(--primary) 25%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--primary) 4%,var(--surface))}.social-settings-box h3{margin:0}
@media(max-width:1050px){.social-profile-grid,.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.social-feed-layout{grid-template-columns:1fr}.social-profile-hero{grid-template-columns:104px minmax(0,1fr)}.social-profile-hero__actions{grid-column:1/-1;display:flex;flex-wrap:wrap}}
@media(max-width:680px){.social-profile-grid,.achievement-grid,.taste-identity-grid{grid-template-columns:1fr}.social-profile-card{grid-template-columns:58px minmax(0,1fr);padding:13px}.social-profile-card__avatar{width:58px;height:58px;border-radius:18px}.social-activity-card,.social-request-card{align-items:flex-start;flex-direction:column}.social-profile-hero{grid-template-columns:1fr}.social-profile-hero__actions{display:flex}.social-profile-stats>a,.social-profile-stats>span{flex:1 1 90px}}

/* v7.21 social reporting */
.social-report-box{width:100%;max-width:320px;border:1px solid var(--border-color,#e5e7eb);border-radius:12px;padding:8px 10px;background:var(--surface,#fff)}
.social-report-box summary{cursor:pointer;font-size:.82rem;color:var(--muted-color,#64748b)}
.social-report-box[open] summary{margin-bottom:10px}
.social-report-box textarea,.social-report-box select{width:100%}
.social-activity-card__meta{display:grid;gap:7px;justify-items:end;min-width:110px}.social-report-box--compact{max-width:220px;padding:6px 8px}.social-report-box--compact .stack-form{gap:7px}.social-report-box--compact textarea,.social-report-box--compact select{font-size:.72rem}.social-report-box--compact .button{width:100%}@media(max-width:680px){.social-activity-card__meta{width:100%;justify-items:stretch}.social-report-box--compact{max-width:none}}

/* v7.23 Verified Artist Portal */
.verified-artist-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.28rem .58rem;margin-inline-start:.45rem;border-radius:999px;background:linear-gradient(135deg,#e9f8ff,#eaf8f0);color:#08745c;border:1px solid rgba(8,116,92,.22);font-size:.72rem;font-weight:800;vertical-align:middle;white-space:nowrap}.official-links{display:flex;flex-wrap:wrap;gap:.45rem;margin:.8rem 0}.official-links a{font-size:.82rem;padding:.35rem .65rem;border:1px solid var(--border-color,#dce4ef);border-radius:999px;text-decoration:none}.artist-portal .page-hero{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.portal-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--border-color,#e7ebf0)}.portal-row:last-child{border-bottom:0}.portal-row p{margin:.2rem 0;color:var(--muted-color,#6b7280)}.stack-form{display:grid;gap:.8rem}.stack-form label{display:grid;gap:.35rem}.stack-form input,.stack-form select,.stack-form textarea{width:100%;box-sizing:border-box}.portal-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.8rem;margin:1rem 0}.portal-metrics>div{background:var(--surface,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:16px;padding:1rem}.portal-metrics b{font-size:1.45rem;display:block}.portal-metrics span{font-size:.8rem;color:var(--muted-color,#6b7280)}.portal-submission{padding:1rem 0;border-bottom:1px solid var(--border-color,#e7ebf0)}.portal-submission pre{white-space:pre-wrap;direction:ltr;text-align:left;background:#0f172a;color:#dbeafe;padding:1rem;border-radius:12px;overflow:auto}.check-list{display:flex;gap:.8rem;flex-wrap:wrap}.check-list label{display:flex;align-items:center;gap:.3rem}@media(max-width:760px){.portal-grid--two{grid-template-columns:1fr}.portal-row{align-items:flex-start;flex-direction:column}.verified-artist-badge{display:flex;width:max-content;margin:.4rem 0 0}}

/* v7.25.0 — Time-Synced Lyrics & Karaoke */

/* v7.26.0 — Podcasts, spoken audio and episodes */
.podcast-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.podcast-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .2s,border-color .2s}.podcast-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--primary) 42%,var(--line))}.podcast-card__cover{display:block;aspect-ratio:1/1;overflow:hidden;background:var(--surface-2)}.podcast-card__cover img,.podcast-card__cover picture{width:100%;height:100%;object-fit:cover}.podcast-card__body{padding:15px}.podcast-card__body h2,.podcast-card__body h3{margin:.25rem 0;font-size:1rem}.podcast-card__body p{margin:.45rem 0;color:var(--muted);font-size:.76rem;line-height:1.8}.podcast-card__meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.68rem}.podcast-hero,.podcast-episode-hero{display:grid;grid-template-columns:minmax(220px,340px) minmax(0,1fr);gap:28px;align-items:center;padding:22px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--primary) 5%,var(--surface)))}.podcast-hero__cover,.podcast-episode-hero>div:first-child{aspect-ratio:1/1;overflow:hidden;border-radius:20px;background:var(--surface-2)}.podcast-hero__cover img,.podcast-episode-hero img{width:100%;height:100%;object-fit:cover}.podcast-episode-list{display:grid;gap:12px}.podcast-episode-card{display:grid;grid-template-columns:54px minmax(0,1fr);gap:14px;padding:15px;border:1px solid var(--line);border-radius:17px;background:var(--surface)}.podcast-episode-card__number{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--primary-soft);color:var(--primary);font-weight:900}.podcast-episode-card__body h2{margin:.15rem 0;font-size:.95rem}.podcast-episode-card__body p{margin:.4rem 0;color:var(--muted);font-size:.73rem;line-height:1.8}.podcast-chapters{margin:22px 0}.podcast-chapter-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.podcast-chapter-list button{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);font:inherit;text-align:right;cursor:pointer}.podcast-chapter-list button:hover{border-color:var(--primary);background:var(--primary-soft)}.podcast-chapter-list time{direction:ltr;color:var(--primary);font-weight:800}.podcast-transcript{max-height:720px;overflow:auto}.podcast-home-section .podcast-card__cover{aspect-ratio:16/10}@media(max-width:980px){.podcast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.podcast-hero,.podcast-episode-hero{grid-template-columns:220px minmax(0,1fr)}}@media(max-width:680px){.podcast-grid{grid-template-columns:1fr}.podcast-hero,.podcast-episode-hero{grid-template-columns:1fr;padding:14px}.podcast-hero__cover,.podcast-episode-hero>div:first-child{max-width:330px;margin:auto}.podcast-chapter-list{grid-template-columns:1fr}.podcast-episode-card{grid-template-columns:42px minmax(0,1fr)}.podcast-episode-card__number{width:40px;height:40px;border-radius:12px}}


/* v7.27 live audio channels */
.live-channel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.live-channel-card{background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:20px;overflow:hidden}.live-channel-card__cover,.live-channel-hero__cover{position:relative;display:block}.live-channel-card__cover img{width:100%;aspect-ratio:1/1;object-fit:cover}.live-channel-card__body{padding:16px}.live-badge{position:absolute;top:12px;right:12px;background:#dc2626;color:#fff;font-size:12px;font-weight:800;padding:5px 9px;border-radius:99px;box-shadow:0 6px 20px rgba(220,38,38,.3)}.health-dot{display:inline-flex;align-items:center;gap:6px}.health-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:#94a3b8}.health-online:before{background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.12)}.health-offline:before{background:#ef4444}.live-channel-hero{display:grid;grid-template-columns:minmax(240px,380px) 1fr;gap:28px;align-items:center;margin-bottom:24px}.live-channel-hero__cover img{width:100%;border-radius:24px;aspect-ratio:1/1;object-fit:cover}.live-now-card{display:grid;gap:4px;background:linear-gradient(135deg,rgba(124,58,237,.12),rgba(220,38,38,.08));border:1px solid var(--border,#e5e7eb);border-radius:16px;padding:14px;margin:16px 0}.live-now-card strong{font-size:1.15rem}.live-schedule-list{display:grid;gap:10px}.live-schedule-list article{display:grid;grid-template-columns:100px 1fr auto;gap:14px;align-items:start;padding:14px;border:1px solid var(--border,#e5e7eb);border-radius:14px}.live-schedule-list article.is-live{border-color:#dc2626;background:rgba(220,38,38,.06)}.live-schedule-list article div{display:grid;gap:4px}.live-schedule-list article p{margin:0;color:var(--muted,#64748b)}@media(max-width:760px){.live-channel-hero{grid-template-columns:1fr}.live-schedule-list article{grid-template-columns:72px 1fr}.live-schedule-list .badge{grid-column:2}}

/* v7.28.1 music events install hotfix */
.event-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0}.event-filters select{min-height:46px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);padding:0 12px}.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.event-card{overflow:hidden;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-sm)}.event-card__cover{position:relative;display:block;aspect-ratio:16/10;overflow:hidden}.event-card__cover img{width:100%;height:100%;object-fit:cover}.event-date-badge{position:absolute;inset-block-start:12px;inset-inline-start:12px;display:flex;min-width:54px;flex-direction:column;align-items:center;border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,transparent);padding:7px 10px;box-shadow:var(--shadow-sm);backdrop-filter:blur(10px)}.event-date-badge b{font-size:1.25rem}.event-date-badge small{text-transform:uppercase}.event-card__body{display:grid;gap:7px;padding:16px}.event-card__body h2{margin:0;font-size:1.08rem}.event-card__body p,.event-card__body small{margin:0;color:var(--muted)}.event-detail{display:grid;grid-template-columns:minmax(280px,430px) minmax(0,1fr);gap:34px;align-items:start}.event-detail__cover{overflow:hidden;border-radius:24px;aspect-ratio:4/3}.event-detail__cover img{width:100%;height:100%;object-fit:cover}.event-detail__content h1{margin-block:8px 12px}.event-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.event-facts div{border:1px solid var(--border);border-radius:14px;padding:12px}.event-facts dt{font-size:.82rem;color:var(--muted)}.event-facts dd{margin:5px 0 0;font-weight:700}.artist-chip-list{display:flex;flex-wrap:wrap;gap:10px}.artist-chip-list a,.artist-chip-list span{border:1px solid var(--border);border-radius:999px;background:var(--surface);padding:9px 14px}.event-card .cover-placeholder,.event-detail .cover-placeholder{display:grid;width:100%;height:100%;place-items:center;font-size:4rem;background:linear-gradient(135deg,var(--surface-soft),var(--surface))}
@media(max-width:900px){.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-detail{grid-template-columns:1fr}.event-detail__cover{max-width:600px}.event-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.event-grid{grid-template-columns:1fr}.event-filters,.event-facts{grid-template-columns:1fr}.event-detail{gap:20px}}

/* v7.30.0 — Music labels, rights holders and catalog ownership */
.music-label-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.music-label-card{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-sm)}.music-label-card__logo{display:block;aspect-ratio:1/1;overflow:hidden;border-radius:18px;background:var(--surface-2)}.music-label-card__logo img,.music-label-card__logo picture{width:100%;height:100%;object-fit:contain}.music-label-card h2{margin:.25rem 0;font-size:1.05rem}.music-label-card p{margin:.25rem 0;color:var(--muted);font-size:.76rem}.music-label-card small{color:var(--muted)}.music-label-hero{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:center;padding:24px;border:1px solid var(--line);border-radius:26px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 7%,var(--surface)),var(--surface))}.music-label-hero__logo{aspect-ratio:1/1;overflow:hidden;border-radius:24px;background:var(--surface-2);box-shadow:var(--shadow-sm)}.music-label-hero__logo img,.music-label-hero__logo picture{width:100%;height:100%;object-fit:contain}.music-label-hero h1{margin:.3rem 0;font-size:clamp(1.8rem,4vw,3rem)}.rights-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.rights-catalog-card{padding:16px;border:1px solid var(--line);border-radius:17px;background:var(--surface)}.rights-catalog-card h3{margin:.35rem 0;font-size:1rem}.rights-catalog-card p{margin:.35rem 0;color:var(--muted)}.rights-catalog-card small{color:var(--muted)}
@media(max-width:980px){.music-label-grid,.rights-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.music-label-grid,.rights-catalog-grid{grid-template-columns:1fr}.music-label-card{grid-template-columns:86px minmax(0,1fr)}.music-label-hero{grid-template-columns:1fr}.music-label-hero__logo{width:min(220px,70vw)}}


/* ========================================================================== 
   SedaHang Frontend v2 — v7.51.5
   Complete desktop/mobile layout stabilization and visual redesign.
   Scoped to .frontend-v2 to keep admin and legacy embeds isolated.
   ========================================================================== */

html { font-size: 16px; }
body.frontend-v2 {
    --container: 1320px;
    --header-height: auto;
    --radius-sm: 12px;
    --radius: 20px;
    --radius-lg: 30px;
    --shadow-sm: 0 10px 30px rgba(19, 29, 53, .08);
    --shadow-lg: 0 28px 80px rgba(19, 29, 53, .16);
    min-width: 320px;
    font-size: 1rem;
    line-height: 1.85;
    overflow-x: clip;
}
body.frontend-v2 .container {
    width: min(calc(100% - 48px), var(--container));
}
body.frontend-v2 .site-main {
    min-height: 72vh;
}
body.frontend-v2 .page-wrap {
    padding-block: 34px 76px;
}

/* Header: clear brand/search/actions row + a real navigation row. */
body.frontend-v2 .site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: color-mix(in srgb, var(--surface) 96%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
    box-shadow: 0 10px 34px rgba(15, 23, 42, .055);
    backdrop-filter: blur(22px) saturate(135%);
}
body.frontend-v2 .header-inner {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(210px, auto) minmax(360px, 1fr) auto;
    grid-template-areas:
        "brand search actions"
        "nav nav nav";
    gap: 0 28px;
    align-items: center;
    padding-top: 13px;
}
body.frontend-v2 .brand { grid-area: brand; gap: 13px; }
body.frontend-v2 .brand-mark {
    width: 50px;
    height: 50px;
    border-radius: 16px;
    box-shadow: 0 12px 30px color-mix(in srgb, var(--primary) 27%, transparent);
}
body.frontend-v2 .brand-mark svg { width: 28px; height: 28px; }
body.frontend-v2 .brand-copy strong { font-size: 1.16rem; }
body.frontend-v2 .brand-copy small { margin-top: 2px; font-size: .76rem; }
body.frontend-v2 .header-search {
    grid-area: search;
    min-height: 52px;
    max-width: 660px;
    width: 100%;
    justify-self: center;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    padding: 5px 8px 5px 14px;
    border-color: var(--line);
    border-radius: 16px;
    background: var(--surface-2);
}
body.frontend-v2 .header-search input { font-size: .92rem; }
body.frontend-v2 .header-search button {
    min-height: 40px;
    padding-inline: 20px;
    border-radius: 12px;
}
body.frontend-v2 .header-actions {
    grid-area: actions;
    justify-content: flex-end;
    align-items: center;
    gap: 9px;
}
body.frontend-v2 .account-button {
    min-height: 42px;
    padding-inline: 13px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--surface);
}
body.frontend-v2 .header-nav {
    grid-area: nav;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 12px;
    padding: 8px 0 10px;
    border-top: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
    overflow-x: auto;
    scrollbar-width: none;
}
body.frontend-v2 .header-nav::-webkit-scrollbar { display: none; }
body.frontend-v2 .header-nav a {
    flex: 0 0 auto;
    padding: 8px 13px;
    border-radius: 11px;
    font-size: .86rem;
    font-weight: 700;
}
body.frontend-v2 .header-nav a.is-active {
    background: var(--primary);
    color: #fff;
}
body.frontend-v2 .icon-button,
body.frontend-v2 .notification-button {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
}

/* Hero: balanced editorial layout instead of a narrow phone-like column. */
body.frontend-v2 .hero {
    padding: 70px 0 64px;
    background:
        radial-gradient(circle at 12% 20%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 32%),
        radial-gradient(circle at 86% 10%, color-mix(in srgb, var(--primary) 18%, transparent), transparent 36%),
        linear-gradient(145deg, color-mix(in srgb, var(--surface) 96%, var(--primary-soft)), var(--bg));
    border-bottom: 1px solid var(--line);
}
body.frontend-v2 .hero::before,
body.frontend-v2 .hero::after { opacity: .55; }
body.frontend-v2 .hero-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(430px, .92fr);
    gap: clamp(44px, 6vw, 84px);
    align-items: center;
}
body.frontend-v2 .hero-copy { min-width: 0; }
body.frontend-v2 .hero-copy h1 {
    max-width: 760px;
    margin: 14px 0 18px;
    font-size: clamp(2.45rem, 4.5vw, 4.4rem);
    line-height: 1.2;
    letter-spacing: -.045em;
    text-wrap: balance;
}
body.frontend-v2 .hero-copy > p {
    max-width: 720px;
    margin-bottom: 28px;
    font-size: 1.08rem;
    line-height: 2;
}
body.frontend-v2 .hero-search {
    max-width: 720px;
    min-height: 60px;
    padding: 7px 9px;
    border-radius: 18px;
    box-shadow: 0 18px 42px rgba(20, 30, 54, .10);
}
body.frontend-v2 .hero-search input { font-size: .98rem; }
body.frontend-v2 .hero-search button { min-width: 142px; }
body.frontend-v2 .hero-stats {
    gap: 12px;
    margin-top: 24px;
}
body.frontend-v2 .hero-stat {
    min-width: 128px;
    padding: 12px 15px;
    border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
    border-radius: 15px;
    background: color-mix(in srgb, var(--surface) 75%, transparent);
    backdrop-filter: blur(10px);
}
body.frontend-v2 .hero-stat strong { font-size: 1.55rem; }
body.frontend-v2 .hero-panel {
    padding: 20px;
    border-radius: 28px;
    background: color-mix(in srgb, var(--surface) 96%, transparent);
    box-shadow: 0 26px 72px rgba(23, 32, 55, .17);
}
body.frontend-v2 .hero-panel__head {
    margin-bottom: 14px;
    padding-bottom: 13px;
    border-bottom: 1px solid var(--line);
}
body.frontend-v2 .hero-panel__head h2 { font-size: 1.18rem; }
body.frontend-v2 .hero-panel .list-panel { gap: 8px; }
body.frontend-v2 .hero-panel .song-card--compact {
    min-height: 72px;
    grid-template-columns: 62px minmax(0, 1fr) auto;
    padding: 6px;
    border: 1px solid transparent;
    border-radius: 15px;
}
body.frontend-v2 .hero-panel .song-card--compact:hover {
    border-color: var(--line);
    background: var(--surface-2);
}
body.frontend-v2 .hero-panel .song-card--compact .song-card__visual {
    width: 62px;
    border-radius: 12px;
}

/* Sections and cards. */
body.frontend-v2 .section { padding: 68px 0; }
body.frontend-v2 .section-soft {
    background: color-mix(in srgb, var(--surface-2) 72%, var(--bg));
    border-block: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
body.frontend-v2 .section-head {
    align-items: center;
    margin-bottom: 28px;
}
body.frontend-v2 .section-head h2 {
    font-size: clamp(1.55rem, 2.4vw, 2.15rem);
    line-height: 1.45;
}
body.frontend-v2 .section-head p { max-width: 760px; font-size: .94rem; }
body.frontend-v2 .section-head > a {
    padding: 9px 13px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    font-size: .82rem;
}
body.frontend-v2 .song-grid,
body.frontend-v2 .album-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 22px;
}
body.frontend-v2 .artist-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 20px;
}
body.frontend-v2 .song-card,
body.frontend-v2 .album-card {
    border-radius: 22px;
    box-shadow: 0 8px 26px rgba(20, 31, 54, .065);
}
body.frontend-v2 .song-card:hover,
body.frontend-v2 .album-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 46px rgba(20, 31, 54, .14);
}
body.frontend-v2 .song-card__visual,
body.frontend-v2 .album-card__cover { aspect-ratio: 1 / 1; }
body.frontend-v2 .song-card__body { padding: 16px 16px 18px; }
body.frontend-v2 .song-card__body h3 {
    margin-bottom: 7px;
    font-size: .98rem;
    line-height: 1.7;
}
body.frontend-v2 .song-card__body p { font-size: .8rem; }
body.frontend-v2 .song-card__meta { margin-top: 11px; }
body.frontend-v2 .song-card__actions { left: 12px; bottom: 12px; }
body.frontend-v2 .song-card__play { width: 48px; height: 48px; }
body.frontend-v2 .recommendation-reason {
    display: block;
    margin-top: 8px;
    padding-inline: 5px;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.7;
}
body.frontend-v2 .radio-preset-grid,
body.frontend-v2 .editorial-collection-grid,
body.frontend-v2 .event-grid,
body.frontend-v2 .social-profile-grid {
    gap: 22px;
}

/* Song detail: substantial desktop canvas and clear content hierarchy. */
body.frontend-v2 .breadcrumbs {
    margin-bottom: 18px;
    font-size: .82rem;
}
body.frontend-v2 .song-page {
    grid-template-columns: minmax(300px, 390px) minmax(0, 1fr);
    gap: clamp(34px, 5vw, 64px);
    padding: clamp(24px, 3vw, 42px);
    border-radius: 30px;
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--surface) 97%, var(--primary-soft)), var(--surface));
    box-shadow: 0 18px 54px rgba(21, 31, 54, .10);
}
body.frontend-v2 .song-cover-large {
    position: sticky;
    top: 158px;
    border-radius: 26px;
    box-shadow: 0 24px 64px rgba(15, 23, 42, .22);
}
body.frontend-v2 .song-content {
    min-width: 0;
    padding-block: 8px;
}
body.frontend-v2 .song-content h1 {
    max-width: 900px;
    margin: 9px 0 10px;
    font-size: clamp(2.1rem, 4vw, 3.65rem);
    line-height: 1.28;
    text-wrap: balance;
}
body.frontend-v2 .song-content .lead {
    margin-bottom: 18px;
    font-size: 1.13rem;
}
body.frontend-v2 .song-content .prose {
    max-width: 850px;
    color: var(--muted);
    font-size: .97rem;
}
body.frontend-v2 .meta-row { gap: 9px; margin: 20px 0; }
body.frontend-v2 .meta-row > * {
    padding: 7px 11px;
    border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
    border-radius: 11px;
    background: var(--surface-2);
    font-size: .78rem;
}
body.frontend-v2 .song-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin: 18px 0;
    color: var(--muted);
    font-size: .82rem;
}
body.frontend-v2 .audio-box {
    margin-top: 20px;
    padding: 20px;
    border-radius: 20px;
    background: color-mix(in srgb, var(--primary-soft) 36%, var(--surface));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 10%, var(--line));
}
body.frontend-v2 .content-box {
    padding: clamp(22px, 3vw, 34px);
    margin-top: 28px;
    border-radius: 24px;
    box-shadow: 0 8px 28px rgba(20, 31, 54, .055);
}
body.frontend-v2 .content-box h2 { font-size: 1.35rem; }
body.frontend-v2 .lyrics { max-width: 880px; margin-inline: auto; font-size: 1.03rem; }
body.frontend-v2 .contributor-list a,
body.frontend-v2 .chip {
    padding: 9px 13px;
    border-radius: 12px;
}

/* Catalog/profile/footer/global player refinements. */
body.frontend-v2 .catalog-layout { grid-template-columns: 300px minmax(0, 1fr); gap: 34px; }
body.frontend-v2 .filter-panel { border-radius: 20px; box-shadow: var(--shadow-sm); }
body.frontend-v2 .profile-hero,
body.frontend-v2 .album-hero { padding: 36px; border-radius: 30px; }
body.frontend-v2 .global-player__inner {
    width: min(calc(100% - 48px), var(--container));
    margin-inline: auto;
}

html[data-theme="dark"] body.frontend-v2 .site-header {
    background: color-mix(in srgb, var(--surface) 94%, transparent);
}
html[data-theme="dark"] body.frontend-v2 .hero {
    background:
        radial-gradient(circle at 12% 20%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 34%),
        radial-gradient(circle at 86% 10%, color-mix(in srgb, var(--primary) 15%, transparent), transparent 38%),
        linear-gradient(145deg, #0c1325, #10182d 54%, #0b1020);
}

@media (max-width: 1240px) {
    body.frontend-v2 .container { width: min(calc(100% - 36px), var(--container)); }
    body.frontend-v2 .header-inner { grid-template-columns: auto minmax(300px, 1fr) auto; gap-inline: 18px; }
    body.frontend-v2 .brand-copy small { display: none; }
    body.frontend-v2 .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(390px, .85fr); gap: 42px; }
    body.frontend-v2 .song-grid,
    body.frontend-v2 .album-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 1080px) {
    body.frontend-v2 .header-inner {
        grid-template-columns: auto minmax(260px, 1fr) auto;
        grid-template-areas: "brand search actions";
        padding-bottom: 13px;
    }
    body.frontend-v2 .header-nav { display: none; }
    body.frontend-v2 .mobile-menu-button { display: grid; }
    body.frontend-v2 .account-button span { display: none; }
    body.frontend-v2 .hero-grid { grid-template-columns: 1fr 380px; }
    body.frontend-v2 .hero-copy h1 { font-size: clamp(2.25rem, 5vw, 3.5rem); }
    body.frontend-v2 .artist-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    body.frontend-v2 .song-page { grid-template-columns: 310px minmax(0, 1fr); gap: 34px; }
    body.frontend-v2 .song-cover-large { top: 96px; }
}

@media (max-width: 860px) {
    body.frontend-v2 .container { width: min(calc(100% - 28px), var(--container)); }
    body.frontend-v2 .header-inner {
        grid-template-columns: auto 1fr auto;
        grid-template-areas:
            "brand spacer actions"
            "search search search";
        gap: 10px 14px;
        padding: 10px 0 12px;
    }
    body.frontend-v2 .header-search { margin-top: 2px; max-width: none; min-height: 48px; }
    body.frontend-v2 .brand-copy small { display: none; }
    body.frontend-v2 .hero { padding: 48px 0 46px; }
    body.frontend-v2 .hero-grid { grid-template-columns: 1fr; gap: 34px; }
    body.frontend-v2 .hero-copy h1 { max-width: 680px; }
    body.frontend-v2 .hero-panel { max-width: none; }
    body.frontend-v2 .song-grid,
    body.frontend-v2 .album-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
    body.frontend-v2 .artist-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    body.frontend-v2 .song-page,
    body.frontend-v2 .profile-hero,
    body.frontend-v2 .album-hero,
    body.frontend-v2 .catalog-layout { grid-template-columns: 1fr; }
    body.frontend-v2 .song-cover-large {
        position: relative;
        top: auto;
        width: min(100%, 460px);
        margin-inline: auto;
    }
    body.frontend-v2 .song-content { text-align: center; }
    body.frontend-v2 .song-content .prose { margin-inline: auto; }
    body.frontend-v2 .meta-row,
    body.frontend-v2 .song-stats,
    body.frontend-v2 .community-reactions,
    body.frontend-v2 .community-panel { justify-content: center; }
}

@media (max-width: 620px) {
    html { font-size: 15px; }
    body.frontend-v2 .container { width: min(calc(100% - 22px), var(--container)); }
    body.frontend-v2 .brand-mark { width: 44px; height: 44px; }
    body.frontend-v2 .brand-copy strong { font-size: 1rem; }
    body.frontend-v2 .header-login-link,
    body.frontend-v2 .notification-button { display: none; }
    body.frontend-v2 .header-search button { padding-inline: 14px; }
    body.frontend-v2 .hero-copy h1 { font-size: clamp(2rem, 10vw, 2.75rem); }
    body.frontend-v2 .hero-copy > p { font-size: .96rem; }
    body.frontend-v2 .hero-search { grid-template-columns: 1fr; }
    body.frontend-v2 .hero-search button { width: 100%; }
    body.frontend-v2 .hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
    body.frontend-v2 .hero-stat { min-width: 0; padding: 10px 7px; text-align: center; }
    body.frontend-v2 .hero-stat strong { font-size: 1.2rem; }
    body.frontend-v2 .hero-stat span { font-size: .66rem; }
    body.frontend-v2 .section { padding: 48px 0; }
    body.frontend-v2 .section-head { align-items: flex-start; }
    body.frontend-v2 .section-head > a { display: none; }
    body.frontend-v2 .song-grid,
    body.frontend-v2 .album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    body.frontend-v2 .artist-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
    body.frontend-v2 .song-card__body { padding: 11px 11px 13px; }
    body.frontend-v2 .song-card__body h3 { font-size: .88rem; }
    body.frontend-v2 .song-card__meta { display: none; }
    body.frontend-v2 .song-card__action { width: 32px; height: 32px; }
    body.frontend-v2 .song-card__play { width: 40px; height: 40px; }
    body.frontend-v2 .song-page { padding: 14px; border-radius: 22px; }
    body.frontend-v2 .song-content h1 { font-size: 1.85rem; }
    body.frontend-v2 .content-box { padding: 18px 15px; border-radius: 19px; }
    body.frontend-v2 .global-player__inner { width: calc(100% - 18px); }
}

@media (max-width: 390px) {
    body.frontend-v2 .song-grid,
    body.frontend-v2 .album-grid { grid-template-columns: 1fr 1fr; }
    body.frontend-v2 .artist-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* v7.51.6 — lyrics, downloads and conventional player alignment hotfix */
body.frontend-v2 .lyrics-box {
    text-align: right;
}
body.frontend-v2 .lyrics-box h2 {
    margin-bottom: 22px;
    text-align: right;
}
body.frontend-v2 .lyrics {
    max-width: 980px;
    margin: 0;
    direction: rtl;
    text-align: right;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: normal;
    line-height: 2.25;
    font-size: 1.05rem;
    color: color-mix(in srgb, var(--text) 92%, var(--muted));
}
body.frontend-v2 .download-list {
    align-items: stretch;
}
body.frontend-v2 .download-btn {
    min-height: 54px;
    padding: 12px 15px;
    justify-content: center;
    text-align: center;
}
body.frontend-v2 .download-btn span {
    font-weight: 850;
}
body.frontend-v2 .download-btn small {
    direction: ltr;
    text-align: left;
    white-space: nowrap;
}
body.frontend-v2 .global-player {
    direction: ltr;
}
body.frontend-v2 .global-player__inner {
    grid-template-columns: minmax(230px, 1fr) auto minmax(230px, 1fr);
}
body.frontend-v2 .global-player__track {
    direction: ltr;
    text-align: left;
}
body.frontend-v2 .global-player__text {
    direction: rtl;
    text-align: right;
}
body.frontend-v2 .global-player__controls,
body.frontend-v2 .global-player__meta {
    direction: ltr;
}
body.frontend-v2 .global-player__meta {
    justify-content: flex-end;
}
@media (max-width: 860px) {
    body.frontend-v2 .lyrics-box h2,
    body.frontend-v2 .lyrics {
        text-align: right;
    }
    body.frontend-v2 .global-player__inner {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    body.frontend-v2 .global-player__meta {
        display: none;
    }
}
@media (max-width: 620px) {
    body.frontend-v2 .lyrics {
        font-size: .98rem;
        line-height: 2.05;
    }
    body.frontend-v2 .download-btn {
        min-height: 50px;
        padding: 11px 12px;
    }
}


/* v7.51.7 — full controls, artist queue and real audio-reactive visualizer */
body.frontend-v2 .global-player { --player-energy: 0; overflow: visible; }
body.frontend-v2 .global-player__visualizer { position: absolute; inset: 4px 0 auto 0; height: 38px; display: flex; align-items: flex-end; justify-content: center; gap: 3px; padding-inline: max(18px, calc((100% - var(--container)) / 2)); pointer-events: none; opacity: 0; transition: opacity .25s ease; mask-image: linear-gradient(90deg, transparent, #000 16%, #000 84%, transparent); }
body.frontend-v2 .global-player.has-live-visualizer .global-player__visualizer { opacity: calc(.32 + var(--player-energy) * .58); }
body.frontend-v2 .global-player__visualizer i { width: clamp(3px, .28vw, 5px); height: 31px; transform: scaleY(.08); transform-origin: center bottom; border-radius: 999px; background: linear-gradient(180deg, #a78bfa, var(--primary), #ec4899); box-shadow: 0 0 calc(5px + var(--player-energy) * 16px) color-mix(in srgb, var(--primary) 70%, transparent); will-change: transform, opacity; }
body.frontend-v2 .global-player__inner { position: relative; z-index: 2; grid-template-columns: minmax(250px, 1fr) minmax(280px, auto) minmax(360px, 1fr); gap: 18px; }
body.frontend-v2 .global-player__transport { display: grid; justify-items: center; gap: 2px; }
body.frontend-v2 .global-player__controls { gap: 5px; }
body.frontend-v2 .global-player__controls button { position: relative; }
body.frontend-v2 .global-player__controls button.is-active,
body.frontend-v2 .global-player__actions > .is-active { color: var(--primary); background: color-mix(in srgb, var(--primary) 12%, var(--surface-2)); }
body.frontend-v2 .global-player__play { overflow: visible; isolation: isolate; }
body.frontend-v2 .global-player__play > svg { position: relative; z-index: 2; }
body.frontend-v2 .global-player__play-glow { position: absolute; inset: -8px; z-index: -1; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--primary) 70%, #ec4899) 0, transparent 68%); opacity: calc(.12 + var(--player-energy) * .72); transform: scale(calc(.9 + var(--player-energy) * .45)); transition: opacity .08s linear, transform .08s linear; }
body.frontend-v2 .global-player.is-beat .global-player__play-glow { animation: player-real-beat .16s ease-out; }
@keyframes player-real-beat { 0% { transform: scale(1); opacity: .45; } 45% { transform: scale(1.55); opacity: .95; } 100% { transform: scale(1.08); opacity: .28; } }
body.frontend-v2 .global-player__time { direction: ltr; color: var(--muted); font-size: .68rem; font-variant-numeric: tabular-nums; }
body.frontend-v2 .global-player__actions { display: flex; align-items: center; justify-content: flex-end; gap: 4px; min-width: 0; }
body.frontend-v2 .global-player__actions > button,
body.frontend-v2 .global-player__actions > a,
body.frontend-v2 .global-player__volume > button { position: relative; width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; border: 0; border-radius: 10px; background: transparent; color: var(--text); }
body.frontend-v2 .global-player__actions > button:hover,
body.frontend-v2 .global-player__actions > a:hover,
body.frontend-v2 .global-player__volume > button:hover { background: var(--surface-2); color: var(--primary); }
body.frontend-v2 .global-player__actions svg { width: 19px; height: 19px; }
body.frontend-v2 .global-player__queue-toggle { gap: 5px; padding-inline: 6px; width: auto !important; min-width: 44px; }
body.frontend-v2 .global-player__queue-count { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding-inline: 4px; border-radius: 999px; background: color-mix(in srgb, var(--primary) 18%, transparent); color: var(--primary); font-size: .68rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
body.frontend-v2 [data-player-queue-toggle] span:not(.global-player__queue-count) { position: absolute; inset: 1px 1px auto auto; min-width: 15px; height: 15px; padding: 0 3px; display: grid; place-items: center; border-radius: 999px; background: var(--primary); color: #fff; font-size: .55rem; font-weight: 800; }
body.frontend-v2 .global-player__volume { display: flex; align-items: center; gap: 3px; }
body.frontend-v2 .global-player__volume input { width: 76px; accent-color: var(--primary); }
body.frontend-v2 [data-player-visualizer-toggle].is-unavailable { opacity: .48; }
body.frontend-v2 .global-player__queue { position: absolute; inset: auto max(16px, calc((100% - var(--container)) / 2)) calc(var(--player-height) + 14px) auto; width: min(430px, calc(100vw - 32px)); max-height: min(62vh, 560px); overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: color-mix(in srgb, var(--surface) 97%, transparent); box-shadow: 0 24px 70px rgba(16,24,40,.24); backdrop-filter: blur(24px); }
body.frontend-v2 .global-player__queue[hidden] { display: none; }
body.frontend-v2 .global-player__queue-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 17px; border-bottom: 1px solid var(--line); direction: rtl; }
body.frontend-v2 .global-player__queue-head strong,
body.frontend-v2 .global-player__queue-head small { display: block; }
body.frontend-v2 .global-player__queue-head small { margin-top: 2px; color: var(--muted); font-size: .72rem; }
body.frontend-v2 .global-player__queue-head button { width: 34px; height: 34px; border: 0; border-radius: 10px; background: var(--surface-2); color: var(--text); font-size: 1.25rem; }
body.frontend-v2 .global-player__queue-list { max-height: min(52vh, 470px); overflow-y: auto; padding: 8px; }
body.frontend-v2 .global-player__queue-item { width: 100%; display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px; border: 0; border-radius: 13px; background: transparent; color: var(--text); text-align: right; direction: ltr; }
body.frontend-v2 .global-player__queue-item:hover,
body.frontend-v2 .global-player__queue-item.is-current { background: color-mix(in srgb, var(--primary) 10%, var(--surface-2)); }
body.frontend-v2 .global-player__queue-cover { width: 46px; aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; border-radius: 10px; background: var(--surface-2); color: var(--primary); }
body.frontend-v2 .global-player__queue-cover img { width: 100%; height: 100%; object-fit: cover; }
body.frontend-v2 .global-player__queue-item > span:nth-child(2) { min-width: 0; direction: rtl; }
body.frontend-v2 .global-player__queue-item strong,
body.frontend-v2 .global-player__queue-item small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
body.frontend-v2 .global-player__queue-item small { color: var(--muted); font-size: .7rem; }
body.frontend-v2 .global-player__queue-item em { color: var(--primary); font-size: .65rem; font-style: normal; white-space: nowrap; }
@media (max-width: 1100px) {
    body.frontend-v2 .global-player__inner { grid-template-columns: minmax(210px, 1fr) auto minmax(230px, 1fr); }
    body.frontend-v2 .global-player__actions > [data-player-favorite],
    body.frontend-v2 .global-player__actions > [data-player-playlist],
    body.frontend-v2 .global-player__volume input { display: none; }
}
@media (max-width: 860px) {
    :root { --player-height: 86px; }
    body.frontend-v2 .global-player__inner { grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; }
    body.frontend-v2 .global-player__transport { order: 2; }
    body.frontend-v2 .global-player__actions { order: 3; }
    body.frontend-v2 .global-player__controls [data-player-shuffle],
    body.frontend-v2 .global-player__controls [data-player-repeat],
    body.frontend-v2 .global-player__actions > [data-player-download],
    body.frontend-v2 .global-player__actions > [data-player-visualizer-toggle],
    body.frontend-v2 .global-player__volume { display: none; }
    body.frontend-v2 .global-player__visualizer i:nth-child(n+13) { display: none; }
}
@media (max-width: 620px) {
    body.frontend-v2 .global-player__inner { width: calc(100% - 14px); grid-template-columns: minmax(0, 1fr) auto auto; gap: 4px; }
    body.frontend-v2 .global-player__track { grid-template-columns: 42px minmax(0, 1fr); gap: 7px; }
    body.frontend-v2 .global-player__cover { width: 42px; }
    body.frontend-v2 .global-player__controls [data-player-prev],
    body.frontend-v2 .global-player__controls [data-player-next] { display: none; }
    body.frontend-v2 .global-player__play { width: 46px !important; height: 46px !important; }
    body.frontend-v2 .global-player__actions > button,
    body.frontend-v2 .global-player__actions > a { width: 32px; height: 32px; }
    body.frontend-v2 .global-player__actions > [data-player-close] { display: none; }
    body.frontend-v2 .global-player__queue { inset-inline: 7px; width: auto; bottom: calc(var(--player-height) + 9px); }
}
@media (prefers-reduced-motion: reduce) {
    body.frontend-v2 .global-player__visualizer { display: none; }
    body.frontend-v2 .global-player__play-glow { animation: none !important; }
}


/* v7.51.8 — player asset-version recovery and visualizer diagnostics */
body.frontend-v2 .global-player__visualizer-hint {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 8px;
    border: 1px solid color-mix(in srgb, var(--warning) 45%, var(--line));
    border-radius: 999px;
    background: color-mix(in srgb, var(--warning) 10%, var(--surface));
    color: color-mix(in srgb, var(--warning) 74%, var(--text));
    font-size: .62rem;
    font-weight: 750;
    white-space: nowrap;
}
body.frontend-v2 .global-player__visualizer-hint[hidden] { display: none !important; }
body.frontend-v2 .global-player.is-visualizer-unavailable .global-player__visualizer { opacity: 0; }
body.frontend-v2 [data-player-visualizer-toggle]:disabled { cursor: not-allowed; opacity: .42; }
@media (max-width: 1100px) {
    body.frontend-v2 .global-player__visualizer-hint { display: none !important; }
}

/* v7.51.9 — playback recovery, control-state polish and queue validation */
body.frontend-v2 .global-player [hidden] { display: none !important; }
body.frontend-v2 .global-player__play {
    display: grid !important;
    grid-template-areas: "icon";
    place-items: center;
    aspect-ratio: 1;
    flex: 0 0 auto;
    padding: 0;
}
body.frontend-v2 .global-player__play > svg {
    grid-area: icon;
    margin: 0;
}
body.frontend-v2 .global-player__queue-item.has-failed {
    opacity: .58;
}
body.frontend-v2 .global-player__queue-item.has-failed em {
    color: var(--danger, #dc2626);
}
body.frontend-v2 .global-player.has-player-error .global-player__play {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger, #dc2626) 20%, transparent);
}


/* v7.51.11 — compact centred audio-reactive visualizer polish */
body.frontend-v2 .global-player__transport {
    min-width: 268px;
    grid-template-rows: auto auto auto;
    align-content: center;
    gap: 1px;
}
body.frontend-v2 .global-player__visualizer {
    position: relative;
    inset: auto;
    z-index: 1;
    width: 112px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5px;
    padding: 2px 8px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--primary) 13%, var(--line));
    border-radius: 999px;
    background: color-mix(in srgb, var(--primary) 5%, var(--surface-2));
    box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 42%, transparent);
    pointer-events: none;
    opacity: .58;
    mask-image: none;
    transition: opacity .2s ease, border-color .2s ease, background-color .2s ease;
}
body.frontend-v2 .global-player__visualizer::before {
    content: "";
    position: absolute;
    inset: 50% 8px auto;
    height: 1px;
    background: color-mix(in srgb, var(--primary) 14%, transparent);
    transform: translateY(-50%);
}
body.frontend-v2 .global-player.has-live-visualizer .global-player__visualizer {
    opacity: .98;
    border-color: color-mix(in srgb, var(--primary) 27%, var(--line));
    background: color-mix(in srgb, var(--primary) 8%, var(--surface));
}
body.frontend-v2 .global-player__visualizer i {
    position: relative;
    z-index: 1;
    width: 2px;
    height: 10px;
    flex: 0 0 2px;
    transform: scaleY(.16);
    transform-origin: center;
    border-radius: 999px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--primary) 62%, #b9a8ff), var(--primary));
    box-shadow: none;
    opacity: .24;
    will-change: transform, opacity;
}
body.frontend-v2 .global-player__play-glow {
    inset: -6px;
    opacity: calc(.06 + var(--player-energy) * .3);
    transform: scale(calc(.96 + var(--player-energy) * .2));
}
body.frontend-v2 .global-player.is-beat .global-player__play-glow { animation: player-real-beat-soft .2s ease-out; }
@keyframes player-real-beat-soft {
    0% { transform: scale(1); opacity: .18; }
    45% { transform: scale(1.2); opacity: .48; }
    100% { transform: scale(1.04); opacity: .15; }
}
body.frontend-v2 .global-player.is-visualizer-unavailable .global-player__visualizer,
body.frontend-v2 .global-player.is-visualizer-disabled .global-player__visualizer {
    display: none;
}
@media (max-width: 1100px) {
    body.frontend-v2 .global-player__transport { min-width: 210px; }
    body.frontend-v2 .global-player__visualizer { width: 100px; }
}
@media (max-width: 860px) {
    body.frontend-v2 .global-player__transport { min-width: 150px; }
    body.frontend-v2 .global-player__visualizer { width: 88px; gap: 1px; padding-inline: 6px; }
    body.frontend-v2 .global-player__visualizer i:nth-child(n+13) { display: block; }
}
@media (max-width: 620px) {
    body.frontend-v2 .global-player__transport { min-width: 54px; grid-template-rows: auto auto auto; }
    body.frontend-v2 .global-player__visualizer { width: 62px; height: 12px; gap: 1px; padding: 1px 5px; }
    body.frontend-v2 .global-player__visualizer i { width: 1.5px; height: 8px; flex-basis: 1.5px; }
    body.frontend-v2 .global-player__visualizer i:nth-child(-n+4),
    body.frontend-v2 .global-player__visualizer i:nth-last-child(-n+4) { display: none; }
    body.frontend-v2 .global-player__time { line-height: 1.2; }
}
@media (prefers-reduced-motion: reduce) {
    body.frontend-v2 .global-player__visualizer { display: none; }
}


/* v7.51.12 — full-width background visualizer ambience */
body.frontend-v2 .global-player {
    overflow: hidden;
}
body.frontend-v2 .global-player__inner {
    position: relative;
    z-index: 2;
}
body.frontend-v2 .global-player__visualizer {
    position: absolute;
    inset: auto 14px 8px 14px;
    z-index: 0;
    width: auto;
    height: 24px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: clamp(2px, .34vw, 7px);
    padding: 0 clamp(10px, 1.4vw, 26px);
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    pointer-events: none;
    opacity: 0;
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    transition: opacity .24s ease;
}
body.frontend-v2 .global-player__visualizer::before {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 100%;
    border-radius: 14px;
    background: linear-gradient(180deg,
        transparent 0%,
        color-mix(in srgb, var(--primary) 5%, transparent) 34%,
        color-mix(in srgb, var(--primary) 10%, transparent) 100%);
    opacity: .85;
}
body.frontend-v2 .global-player.has-live-visualizer .global-player__visualizer {
    opacity: calc(.16 + var(--player-energy) * .2);
}
body.frontend-v2 .global-player__visualizer i {
    position: relative;
    z-index: 1;
    min-width: 2px;
    max-width: 4px;
    flex: 1 1 0;
    height: 18px;
    transform: scaleY(.12);
    transform-origin: center bottom;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(180deg,
        color-mix(in srgb, #ffffff 75%, transparent) 0%,
        color-mix(in srgb, #c4b5fd 70%, var(--primary)) 40%,
        color-mix(in srgb, var(--primary) 72%, #ec4899) 100%);
    box-shadow: 0 0 calc(3px + var(--player-energy) * 7px) color-mix(in srgb, var(--primary) 20%, transparent);
    opacity: .72;
    will-change: transform, opacity;
}
body.frontend-v2 .global-player.is-visualizer-unavailable .global-player__visualizer,
body.frontend-v2 .global-player.is-visualizer-disabled .global-player__visualizer {
    display: none;
}
@media (max-width: 860px) {
    body.frontend-v2 .global-player__visualizer {
        inset: auto 10px 8px 10px;
        height: 20px;
        gap: clamp(1.5px, .3vw, 4px);
        padding-inline: 10px;
    }
    body.frontend-v2 .global-player__visualizer i {
        max-width: 3px;
        height: 15px;
    }
}
@media (max-width: 620px) {
    body.frontend-v2 .global-player__visualizer {
        inset: auto 8px 6px 8px;
        height: 16px;
        gap: 2px;
        padding-inline: 8px;
    }
    body.frontend-v2 .global-player__visualizer i {
        min-width: 1.5px;
        max-width: 2.5px;
        height: 12px;
    }
}
@media (prefers-reduced-motion: reduce) {
    body.frontend-v2 .global-player__visualizer {
        display: none;
    }
}


/* v7.51.13 — live full-width waveform motion recovery */
body.frontend-v2 .global-player {
    overflow: hidden;
}
body.frontend-v2 .global-player__inner {
    position: relative;
    z-index: 2;
    isolation: isolate;
}
body.frontend-v2 .global-player__track,
body.frontend-v2 .global-player__transport,
body.frontend-v2 .global-player__actions {
    position: relative;
    z-index: 2;
}
body.frontend-v2 .global-player__transport {
    grid-template-rows: auto auto;
    gap: 1px;
}
body.frontend-v2 .global-player__visualizer {
    position: absolute;
    inset: auto 0 2px 0;
    z-index: 0;
    width: 100%;
    height: 38px;
    display: flex;
    align-items: flex-end;
    justify-content: stretch;
    gap: clamp(1px, .18vw, 3px);
    padding: 0 clamp(12px, 1.8vw, 30px);
    overflow: hidden;
    border: 0;
    border-radius: 0 0 16px 16px;
    background: linear-gradient(180deg,
        transparent 0%,
        color-mix(in srgb, var(--primary) 3%, transparent) 42%,
        color-mix(in srgb, var(--primary) 8%, transparent) 100%);
    box-shadow: none;
    pointer-events: none;
    opacity: 0;
    mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
    transition: opacity .18s ease;
}
body.frontend-v2 .global-player__visualizer::before {
    display: none;
}
body.frontend-v2 .global-player.has-live-visualizer .global-player__visualizer {
    opacity: calc(.24 + var(--player-energy) * .28);
}
body.frontend-v2 .global-player__visualizer i,
body.frontend-v2 .global-player__visualizer i:nth-child(n) {
    display: block;
    position: relative;
    z-index: 1;
    min-width: 1.5px;
    max-width: 4px;
    flex: 1 1 0;
    height: 31px;
    transform: scaleY(.07);
    transform-origin: center bottom;
    border-radius: 999px 999px 1px 1px;
    background: linear-gradient(180deg,
        color-mix(in srgb, #ffffff 76%, transparent) 0%,
        color-mix(in srgb, #c4b5fd 76%, var(--primary)) 35%,
        color-mix(in srgb, var(--primary) 68%, #ec4899) 100%);
    box-shadow: 0 0 calc(2px + var(--player-energy) * 8px) color-mix(in srgb, var(--primary) 24%, transparent);
    opacity: .45;
    will-change: transform, opacity;
}
body.frontend-v2 .global-player.is-beat .global-player__visualizer {
    filter: saturate(1.12) brightness(1.08);
}
body.frontend-v2 .global-player.is-visualizer-unavailable .global-player__visualizer,
body.frontend-v2 .global-player.is-visualizer-disabled .global-player__visualizer {
    display: none;
}
@media (max-width: 860px) {
    body.frontend-v2 .global-player__visualizer {
        inset: auto 0 2px 0;
        height: 30px;
        gap: 1.5px;
        padding-inline: 10px;
    }
    body.frontend-v2 .global-player__visualizer i,
    body.frontend-v2 .global-player__visualizer i:nth-child(n) {
        min-width: 1px;
        max-width: 3px;
        height: 24px;
    }
}
@media (max-width: 620px) {
    body.frontend-v2 .global-player__visualizer {
        inset: auto 0 1px 0;
        height: 24px;
        gap: 1px;
        padding-inline: 7px;
    }
    body.frontend-v2 .global-player__visualizer i,
    body.frontend-v2 .global-player__visualizer i:nth-child(n) {
        min-width: 1px;
        max-width: 2px;
        height: 19px;
    }
}
@media (prefers-reduced-motion: reduce) {
    body.frontend-v2 .global-player__visualizer {
        display: none;
    }
}


/* v7.51.14 — true full-width background visualizer and bottom timeline */
body.frontend-v2 .global-player {
    overflow: hidden;
}
body.frontend-v2 .global-player__progress {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 3;
    height: 10px;
}
body.frontend-v2 .global-player__progress input {
    height: 10px;
    opacity: .94;
}
body.frontend-v2 .global-player__inner {
    position: relative;
    z-index: 2;
    isolation: isolate;
}
body.frontend-v2 .global-player__track,
body.frontend-v2 .global-player__transport,
body.frontend-v2 .global-player__actions {
    position: relative;
    z-index: 2;
}
body.frontend-v2 .global-player__transport {
    grid-template-rows: auto auto;
    gap: 2px;
}
body.frontend-v2 .global-player__visualizer {
    position: absolute;
    inset: auto 0 10px 0;
    z-index: 0;
    width: 100%;
    height: 34px;
    display: flex;
    align-items: flex-end;
    justify-content: stretch;
    gap: clamp(1px, .16vw, 3px);
    padding: 0 max(18px, calc((100% - var(--container)) / 2)) 0 max(18px, calc((100% - var(--container)) / 2));
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: linear-gradient(180deg,
        transparent 0%,
        color-mix(in srgb, var(--primary) 2%, transparent) 30%,
        color-mix(in srgb, var(--primary) 7%, transparent) 100%);
    box-shadow: none;
    pointer-events: none;
    opacity: 0;
    mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
    transition: opacity .18s ease;
}
body.frontend-v2 .global-player__visualizer::before {
    display: none;
}
body.frontend-v2 .global-player.has-live-visualizer .global-player__visualizer {
    opacity: calc(.26 + var(--player-energy) * .24);
}
body.frontend-v2 .global-player__visualizer i,
body.frontend-v2 .global-player__visualizer i:nth-child(n) {
    display: block;
    position: relative;
    z-index: 1;
    min-width: 1px;
    max-width: 3px;
    flex: 1 1 0;
    height: 26px;
    transform: scaleY(.16);
    transform-origin: center bottom;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(180deg,
        color-mix(in srgb, #ffffff 78%, transparent) 0%,
        color-mix(in srgb, #c4b5fd 72%, var(--primary)) 38%,
        color-mix(in srgb, var(--primary) 60%, #ec4899) 100%);
    box-shadow: 0 0 calc(2px + var(--player-energy) * 6px) color-mix(in srgb, var(--primary) 20%, transparent);
    opacity: .52;
    will-change: transform, opacity;
}
body.frontend-v2 .global-player.is-beat .global-player__visualizer {
    filter: saturate(1.12) brightness(1.05);
}
body.frontend-v2 .global-player.is-visualizer-unavailable .global-player__visualizer,
body.frontend-v2 .global-player.is-visualizer-disabled .global-player__visualizer {
    display: none;
}
@media (max-width: 860px) {
    body.frontend-v2 .global-player__visualizer {
        inset: auto 0 9px 0;
        height: 28px;
        padding-inline: 12px;
        gap: 1px;
    }
    body.frontend-v2 .global-player__visualizer i,
    body.frontend-v2 .global-player__visualizer i:nth-child(n) {
        max-width: 2px;
        height: 21px;
    }
    body.frontend-v2 .global-player__progress {
        height: 9px;
    }
    body.frontend-v2 .global-player__progress input {
        height: 9px;
    }
}
@media (max-width: 620px) {
    body.frontend-v2 .global-player__visualizer {
        inset: auto 0 8px 0;
        height: 24px;
        padding-inline: 9px;
        gap: 1px;
    }
    body.frontend-v2 .global-player__visualizer i,
    body.frontend-v2 .global-player__visualizer i:nth-child(n) {
        max-width: 1.5px;
        height: 18px;
    }
    body.frontend-v2 .global-player__progress {
        height: 8px;
    }
    body.frontend-v2 .global-player__progress input {
        height: 8px;
    }
}
@media (prefers-reduced-motion: reduce) {
    body.frontend-v2 .global-player__visualizer {
        display: none;
    }
}


/* v7.51.15 — waveform seekbar mini-player redesign */
:root { --player-height: 108px; }
body.frontend-v2 .global-player {
    overflow: visible;
}
body.frontend-v2 .global-player__progress {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}
body.frontend-v2 .global-player__visualizer,
body.frontend-v2 .global-player__visualizer-hint,
body.frontend-v2 .global-player__actions > [data-player-visualizer-toggle] {
    display: none !important;
}
body.frontend-v2 .global-player__inner {
    grid-template-columns: minmax(220px, 1fr) minmax(340px, 520px) minmax(220px, 1fr);
    gap: 18px;
}
body.frontend-v2 .global-player__transport {
    display: grid;
    grid-template-rows: auto auto;
    gap: 8px;
    justify-items: stretch;
    min-width: min(52vw, 520px);
}
body.frontend-v2 .global-player__controls {
    justify-content: center;
    gap: 6px;
}
body.frontend-v2 .global-player__waveform-wrap {
    display: grid;
    gap: 4px;
}
body.frontend-v2 .global-player__waveform {
    position: relative;
    height: 28px;
    border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--surface-2) 84%, transparent);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.28), inset 0 0 0 1px color-mix(in srgb, var(--line) 78%, transparent);
    cursor: pointer;
    overflow: hidden;
    outline: none;
}
body.frontend-v2 .global-player__waveform:focus-visible {
    box-shadow: inset 0 1px 0 rgba(255,255,255,.28), inset 0 0 0 1px color-mix(in srgb, var(--primary) 36%, transparent), 0 0 0 3px color-mix(in srgb, var(--primary) 16%, transparent);
}
body.frontend-v2 .global-player__waveform-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}
body.frontend-v2 .global-player__waveform-canvas--base {
    opacity: 1;
}
body.frontend-v2 .global-player__waveform-canvas--played {
    opacity: 1;
}
body.frontend-v2 .global-player__waveform::after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 1px;
    background: color-mix(in srgb, #fff 84%, var(--primary));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent), 0 0 14px color-mix(in srgb, var(--primary) 26%, transparent);
    transform: translateX(var(--wave-progress, 0%));
}
body.frontend-v2 .global-player__waveform-tooltip {
    position: absolute;
    inset: auto auto calc(100% + 8px) 0;
    transform: translateX(-50%);
    padding: 4px 7px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--surface) 96%, #fff 4%);
    border: 1px solid var(--line);
    color: var(--text);
    font-size: .68rem;
    white-space: nowrap;
    box-shadow: 0 10px 26px rgba(15,23,42,.14);
    pointer-events: none;
}
body.frontend-v2 .global-player__time {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    direction: ltr;
    color: var(--muted);
    font-size: .68rem;
    font-variant-numeric: tabular-nums;
}
body.frontend-v2 .global-player__actions {
    align-self: center;
}
@media (max-width: 1100px) {
    body.frontend-v2 .global-player__inner {
        grid-template-columns: minmax(180px, 1fr) minmax(280px, 430px) auto;
    }
}
@media (max-width: 860px) {
    :root { --player-height: 102px; }
    body.frontend-v2 .global-player__inner {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: 'track actions' 'transport transport';
        gap: 6px 10px;
        align-items: center;
    }
    body.frontend-v2 .global-player__track { grid-area: track; }
    body.frontend-v2 .global-player__transport { grid-area: transport; min-width: 0; }
    body.frontend-v2 .global-player__actions { grid-area: actions; justify-self: end; }
    body.frontend-v2 .global-player__controls [data-player-shuffle],
    body.frontend-v2 .global-player__controls [data-player-repeat],
    body.frontend-v2 .global-player__actions > [data-player-download],
    body.frontend-v2 .global-player__volume { display: none; }
    body.frontend-v2 .global-player__controls [data-player-prev],
    body.frontend-v2 .global-player__controls [data-player-next] { display: grid !important; }
    body.frontend-v2 .global-player__controls { gap: 6px; }
    body.frontend-v2 .global-player__controls [data-player-prev],
    body.frontend-v2 .global-player__controls [data-player-next] { width: 36px; height: 36px; }
    body.frontend-v2 .global-player__waveform { height: 24px; }
}
@media (max-width: 620px) {
    :root { --player-height: 98px; }
    body.frontend-v2 .global-player__inner {
        width: calc(100% - 14px);
        gap: 4px 8px;
    }
    body.frontend-v2 .global-player__waveform {
        height: 22px;
    }
    body.frontend-v2 .global-player__time {
        font-size: .64rem;
    }
    body.frontend-v2 .global-player__actions > button,
    body.frontend-v2 .global-player__actions > a { width: 32px; height: 32px; }
}


/* v7.51.16 — protected-staging waveform visibility and mobile layout recovery */
body.frontend-v2 .global-player__waveform {
    min-width: 0;
}
body.frontend-v2 .global-player__waveform-canvas {
    opacity: 1 !important;
    visibility: visible !important;
}
@media (max-width: 860px) {
    :root { --player-height: 104px; }
    body.frontend-v2 .global-player__inner {
        grid-template-columns: minmax(0, 1fr) auto auto;
        grid-template-areas:
            'track controls actions'
            'waveform waveform waveform';
        grid-template-rows: minmax(46px, auto) 30px;
        align-content: center;
        gap: 7px 8px;
        overflow: visible;
    }
    body.frontend-v2 .global-player__track {
        grid-area: track;
        min-width: 0;
    }
    body.frontend-v2 .global-player__transport {
        display: contents;
    }
    body.frontend-v2 .global-player__controls {
        grid-area: controls;
        align-self: center;
        justify-self: center;
    }
    body.frontend-v2 .global-player__actions {
        grid-area: actions;
        align-self: center;
        justify-self: end;
        gap: 3px;
    }
    body.frontend-v2 .global-player__actions > [data-player-favorite],
    body.frontend-v2 .global-player__actions > [data-player-close] { display: none; }
    body.frontend-v2 .global-player__queue-toggle { min-width: 40px; }
    body.frontend-v2 .global-player__waveform-wrap {
        grid-area: waveform;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 8px;
        width: 100%;
        min-width: 0;
    }
    body.frontend-v2 .global-player__waveform {
        width: 100%;
        height: 24px;
    }
    body.frontend-v2 .global-player__time {
        min-width: 72px;
        justify-content: flex-end;
        gap: 2px;
        white-space: nowrap;
    }
}
@media (max-width: 620px) {
    :root { --player-height: 104px; }
    body.frontend-v2 .global-player__inner {
        width: calc(100% - 14px);
        grid-template-columns: minmax(0, 1fr) auto auto;
        grid-template-rows: minmax(44px, auto) 27px;
        gap: 5px 6px;
    }
    body.frontend-v2 .global-player__controls { gap: 4px; }
    body.frontend-v2 .global-player__controls [data-player-prev],
    body.frontend-v2 .global-player__controls [data-player-next] { width: 32px; height: 32px; }
    body.frontend-v2 .global-player__waveform-wrap {
        gap: 6px;
    }
    body.frontend-v2 .global-player__waveform {
        height: 22px;
    }
    body.frontend-v2 .global-player__time {
        min-width: 64px;
        font-size: .61rem;
    }
    body.frontend-v2 .global-player__actions > button,
    body.frontend-v2 .global-player__actions > a { width: 30px; height: 30px; }
    body.frontend-v2 .global-player__queue-toggle { min-width: 34px; padding-inline: 4px; }
    body.frontend-v2 .global-player__queue-count { min-width: 16px; height: 16px; font-size: .58rem; }
    body.frontend-v2 .global-player__play {
        width: 44px !important;
        height: 44px !important;
    }
}

/* v7.51.17 — centered lyrics and minimal English Sedahang identity */
body.frontend-v2 .lyrics-box {
    text-align: center;
}
body.frontend-v2 .lyrics-box h2 {
    margin-bottom: 22px;
    text-align: center;
}
body.frontend-v2 .lyrics {
    max-width: 880px;
    margin-inline: auto;
    direction: rtl;
    text-align: center;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: normal;
    line-height: 2.25;
}
body.frontend-v2 .brand--english {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 1px;
    color: var(--text);
}
body.frontend-v2 .sedahang-brand-logo {
    display: block;
    width: 178px;
    height: 40px;
    overflow: visible;
}
body.frontend-v2 .sedahang-brand-logo__mark {
    fill: var(--primary);
}
body.frontend-v2 .sedahang-brand-logo__signal {
    fill: none;
    stroke: #fff;
    stroke-width: 4.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}
body.frontend-v2 .sedahang-brand-logo__dot {
    fill: #fff;
}
body.frontend-v2 .sedahang-brand-logo__word {
    fill: currentColor;
    font-family: Inter, Arial, sans-serif;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -1px;
}
body.frontend-v2 .brand-tagline {
    margin-inline-start: 62px;
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.2;
    white-space: nowrap;
}
body.frontend-v2 .brand--footer {
    color: #f8fafc;
}
body.frontend-v2 .brand--footer .sedahang-brand-logo {
    width: 170px;
}
@media (max-width: 860px) {
    body.frontend-v2 .sedahang-brand-logo { width: 158px; height: 36px; }
    body.frontend-v2 .brand-tagline { display: none; }
}
@media (max-width: 620px) {
    body.frontend-v2 .sedahang-brand-logo { width: 145px; height: 34px; }
    body.frontend-v2 .lyrics-box h2,
    body.frontend-v2 .lyrics { text-align: center; }
}


/* v7.51.18 — robust LTR English brand lockup alignment hotfix */
body.frontend-v2 .brand--english {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    min-width: 0;
    color: var(--text);
    direction: ltr;
    unicode-bidi: isolate;
}
body.frontend-v2 .sedahang-brand-logo {
    display: none !important;
}
body.frontend-v2 .sedahang-brand-lockup {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 9px;
    width: max-content;
    max-width: 100%;
    direction: ltr;
    unicode-bidi: isolate;
    white-space: nowrap;
}
body.frontend-v2 .sedahang-brand-lockup__mark {
    display: block;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    overflow: visible;
    object-fit: contain;
}
body.frontend-v2 .sedahang-brand-lockup__tile {
    fill: var(--primary);
}
body.frontend-v2 .sedahang-brand-lockup__signal {
    fill: none;
    stroke: #fff;
    stroke-width: 4.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
body.frontend-v2 .sedahang-brand-lockup__dot {
    fill: #fff;
}
body.frontend-v2 .sedahang-brand-lockup__word {
    display: inline-block;
    color: currentColor;
    font-family: Poppins, Inter, Arial, sans-serif;
    font-size: 30px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -1.45px;
    direction: ltr;
    unicode-bidi: isolate;
    text-align: left;
}
body.frontend-v2 .brand-tagline {
    margin: 2px 0 0 57px;
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.2;
    white-space: nowrap;
    direction: rtl;
    text-align: right;
}
body.frontend-v2 .brand--footer {
    color: #f8fafc;
}
body.frontend-v2 .brand--footer .sedahang-brand-lockup__mark {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
}
body.frontend-v2 .brand--footer .sedahang-brand-lockup__word {
    font-size: 28px;
}
@media (max-width: 860px) {
    body.frontend-v2 .sedahang-brand-lockup { gap: 8px; }
    body.frontend-v2 .sedahang-brand-lockup__mark {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
    }
    body.frontend-v2 .sedahang-brand-lockup__word {
        font-size: 25px;
        letter-spacing: -1px;
    }
    body.frontend-v2 .brand-tagline { display: none; }
}
@media (max-width: 620px) {
    body.frontend-v2 .sedahang-brand-lockup { gap: 7px; }
    body.frontend-v2 .sedahang-brand-lockup__mark {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }
    body.frontend-v2 .sedahang-brand-lockup__word {
        font-size: 24px;
        letter-spacing: -.9px;
    }
}
@media (max-width: 390px) {
    body.frontend-v2 .sedahang-brand-lockup__mark {
        width: 35px;
        height: 35px;
        flex-basis: 35px;
    }
    body.frontend-v2 .sedahang-brand-lockup__word {
        font-size: 22px;
    }
}


/* v7.51.19 — selected custom Sedahang symbol integration */
body.frontend-v2 .sedahang-brand-lockup__mark--image {
    display:block;
    object-fit:contain;
    width:44px;
    height:44px;
    flex:0 0 44px;
}
body.frontend-v2 .sedahang-brand-lockup__mark:not(.sedahang-brand-lockup__mark--image) {
    display:none;
}
body.frontend-v2 .brand--footer .sedahang-brand-lockup__mark--image {
    width:40px;
    height:40px;
    flex-basis:40px;
}
@media (max-width: 860px) {
    body.frontend-v2 .sedahang-brand-lockup__mark--image { width:40px; height:40px; flex-basis:40px; }
}
@media (max-width: 620px) {
    body.frontend-v2 .sedahang-brand-lockup__mark--image { width:38px; height:38px; flex-basis:38px; }
}
@media (max-width: 390px) {
    body.frontend-v2 .sedahang-brand-lockup__mark--image { width:35px; height:35px; flex-basis:35px; }
}

/* v7.52.0 — shared-host lossless readiness UI */
body.frontend-v2 .audio-quality-flags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 7px;
}
body.frontend-v2 .audio-quality-flag,
body.frontend-v2 .download-lossless-badge {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 2px 7px;
    border-radius: 999px;
    font-family: Inter, Arial, sans-serif;
    font-size: .57rem;
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1;
    white-space: nowrap;
}
body.frontend-v2 .audio-quality-flag--lossless,
body.frontend-v2 .download-lossless-badge {
    color: color-mix(in srgb, var(--primary) 88%, #172033);
    background: color-mix(in srgb, var(--primary) 13%, var(--surface));
    border: 1px solid color-mix(in srgb, var(--primary) 28%, var(--line));
}
body.frontend-v2 .audio-quality-flag--spatial {
    color: #0f766e;
    background: color-mix(in srgb, #14b8a6 12%, var(--surface));
    border: 1px solid color-mix(in srgb, #14b8a6 30%, var(--line));
}
body.frontend-v2 .download-btn.is-lossless {
    border-color: color-mix(in srgb, var(--primary) 34%, var(--line));
    background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 7%, var(--surface)), var(--surface));
}
body.frontend-v2 .download-btn.is-lossless:hover {
    border-color: color-mix(in srgb, var(--primary) 70%, var(--line));
}
body.frontend-v2 .download-btn.is-lossless > span {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

/* v7.53.0 — user quality preference and shared-host-safe Lossless opt-in */
body.frontend-v2 .global-player__quality {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 112px;
    height: 36px;
    padding: 0 7px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-2);
    color: var(--text);
    direction: ltr;
}
body.frontend-v2 .global-player__quality select {
    min-width: 0;
    max-width: 78px;
    height: 30px;
    padding: 0 3px;
    border: 0;
    outline: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: .68rem;
    font-weight: 700;
    cursor: pointer;
    direction: rtl;
}
body.frontend-v2 .global-player__quality-status {
    min-width: 28px;
    color: var(--primary);
    font-family: Inter, Arial, sans-serif;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .02em;
    text-align: center;
    white-space: nowrap;
}
body.frontend-v2 .global-player__quality-status.is-fallback {
    color: #b45309;
}
body.frontend-v2 .global-player[data-active-quality="lossless"] .global-player__quality {
    border-color: color-mix(in srgb, var(--primary) 45%, var(--line));
    background: color-mix(in srgb, var(--primary) 10%, var(--surface));
}
@media (max-width: 1100px) {
    body.frontend-v2 .global-player__quality { min-width: 96px; padding-inline: 5px; }
    body.frontend-v2 .global-player__quality select { max-width: 64px; font-size: .62rem; }
}
@media (max-width: 860px) {
    body.frontend-v2 .global-player__quality {
        min-width: 44px;
        width: 44px;
        height: 32px;
        justify-content: center;
        padding: 0;
        overflow: hidden;
    }
    body.frontend-v2 .global-player__quality select {
        position: absolute;
        inset: 0;
        width: 100%;
        max-width: none;
        height: 100%;
        opacity: 0;
        cursor: pointer;
    }
    body.frontend-v2 .global-player__quality-status {
        min-width: 0;
        font-size: .54rem;
        pointer-events: none;
    }
}
@media (max-width: 390px) {
    body.frontend-v2 .global-player__quality {
        min-width: 38px;
        width: 38px;
    }
    body.frontend-v2 .global-player__quality-status { font-size: .5rem; }
}

/* v7.54.0 — shared-host bandwidth guard and Lossless consent */
body.frontend-v2 .global-player__bandwidth-notice {
    position: absolute;
    inset-inline: 50%;
    bottom: calc(var(--player-height) + 14px);
    z-index: 8;
    width: min(620px, calc(100vw - 32px));
    transform: translateX(50%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 16px;
    border: 1px solid color-mix(in srgb, var(--primary) 30%, var(--line));
    border-radius: 17px;
    background: color-mix(in srgb, var(--surface) 97%, var(--primary-soft));
    box-shadow: 0 20px 58px rgba(15, 23, 42, .24);
    direction: rtl;
    backdrop-filter: blur(20px);
}
body.frontend-v2 .global-player__bandwidth-notice[hidden] { display: none !important; }
body.frontend-v2 .global-player__bandwidth-copy { min-width: 0; }
body.frontend-v2 .global-player__bandwidth-copy strong,
body.frontend-v2 .global-player__bandwidth-copy span { display: block; }
body.frontend-v2 .global-player__bandwidth-copy strong { margin-bottom: 3px; color: var(--text); font-size: .86rem; }
body.frontend-v2 .global-player__bandwidth-copy span { color: var(--muted); font-size: .7rem; line-height: 1.65; }
body.frontend-v2 .global-player__bandwidth-actions { display: flex; flex: 0 0 auto; gap: 7px; }
body.frontend-v2 .global-player__bandwidth-actions button { white-space: nowrap; }
body.frontend-v2 .lossless-network-hint { color: var(--muted); font-weight: 700; }
body.frontend-v2 .lossless-network-hint.is-restricted { color: #c2410c; }
@media (max-width: 620px) {
    body.frontend-v2 .global-player__bandwidth-notice {
        bottom: calc(var(--player-height) + 9px);
        width: calc(100vw - 14px);
        padding: 12px;
        border-radius: 15px;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }
    body.frontend-v2 .global-player__bandwidth-actions { display: grid; grid-template-columns: 1fr 1fr; }
    body.frontend-v2 .global-player__bandwidth-actions button { width: 100%; }
}


/* v7.55.0 — Media Session and system output device readiness */
body.frontend-v2 [data-player-device] {
    position: relative;
}
body.frontend-v2 [data-player-device].is-connecting {
    color: var(--primary);
    animation: sedahang-device-pulse 1.1s ease-in-out infinite;
}
body.frontend-v2 [data-player-device].is-connected {
    color: var(--primary);
    background: var(--primary-soft);
    border-color: color-mix(in srgb, var(--primary) 45%, var(--line));
}
body.frontend-v2 [data-player-device].has-device-error {
    color: var(--danger, #dc2626);
}
@keyframes sedahang-device-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: .52; }
}
@media (prefers-reduced-motion: reduce) {
    body.frontend-v2 [data-player-device].is-connecting { animation: none; }
}


/* v7.57.1 — deterministic pause state, inline button label sync and footer reserve recovery */
body.frontend-v2:not(.has-global-player) {
    padding-bottom: 0 !important;
}
body.frontend-v2 .global-player__play .global-player__state-icon {
    grid-area: icon;
    display: block !important;
    opacity: 1;
    visibility: visible;
}
body.frontend-v2 .global-player__play .global-player__state-icon--pause {
    display: none !important;
}
body.frontend-v2 .global-player.is-playing .global-player__play .global-player__state-icon--play {
    display: none !important;
}
body.frontend-v2 .global-player.is-playing .global-player__play .global-player__state-icon--pause {
    display: block !important;
}
body.frontend-v2 .primary-play-button__icon {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
}
body.frontend-v2 .primary-play-button__icon--pause {
    display: none !important;
}
body.frontend-v2 .primary-play-button.is-playing .primary-play-button__icon--play {
    display: none !important;
}
body.frontend-v2 .primary-play-button.is-playing .primary-play-button__icon--pause {
    display: block !important;
}


/* v7.57.2 — frontend button harmony across theme surfaces */
body.frontend-v2 .button,
body.frontend-v2 .account-button,
body.frontend-v2 .download-btn,
body.frontend-v2 .community-share,
body.frontend-v2 .icon-text,
body.frontend-v2 .radio-preset-card button,
body.frontend-v2 .track-row__play,
body.frontend-v2 .header-search button {
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
}
body.frontend-v2 .button,
body.frontend-v2 .account-button,
body.frontend-v2 .community-share {
    min-height: 44px;
    padding-inline: 15px;
    border-radius: 15px;
    border-color: color-mix(in srgb, var(--line) 84%, var(--primary-soft));
    background: color-mix(in srgb, var(--surface) 96%, var(--primary-soft));
    box-shadow: 0 10px 24px rgba(24, 39, 75, .05);
}
body.frontend-v2 .button:hover,
body.frontend-v2 .account-button:hover,
body.frontend-v2 .community-share:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--primary) 58%, var(--line));
    background: var(--surface);
    box-shadow: 0 14px 28px rgba(24, 39, 75, .08);
}
body.frontend-v2 .button--primary,
body.frontend-v2 .button--primary:hover,
body.frontend-v2 .primary-play-button,
body.frontend-v2 .header-search button {
    border-color: transparent;
    background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--accent) 82%, var(--primary)));
    color: #fff;
    box-shadow: 0 16px 34px color-mix(in srgb, var(--primary) 28%, transparent);
}
body.frontend-v2 .button--primary:hover,
body.frontend-v2 .primary-play-button:hover,
body.frontend-v2 .header-search button:hover {
    transform: translateY(-1px);
    color: #fff;
    box-shadow: 0 20px 38px color-mix(in srgb, var(--primary) 34%, transparent);
}
body.frontend-v2 .button--danger {
    border-color: color-mix(in srgb, var(--danger) 34%, var(--line));
    background: color-mix(in srgb, var(--danger) 7%, var(--surface));
    color: var(--danger);
}
body.frontend-v2 .button--danger:hover {
    border-color: color-mix(in srgb, var(--danger) 55%, var(--line));
    background: color-mix(in srgb, var(--danger) 12%, var(--surface));
    color: var(--danger);
}
body.frontend-v2 .button--small {
    min-height: 38px;
    border-radius: 12px;
}
body.frontend-v2 .button--ghost {
    background: transparent;
    box-shadow: none;
}
body.frontend-v2 .download-btn {
    min-height: 58px;
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(24, 39, 75, .05);
}
body.frontend-v2 .download-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(24, 39, 75, .08);
}
body.frontend-v2 .track-row__play,
body.frontend-v2 .radio-preset-card button {
    border-radius: 14px;
}
body.frontend-v2 .track-row__play {
    width: 44px;
    height: 44px;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--primary) 16%, transparent);
}
body.frontend-v2 .track-row__play:hover {
    transform: translateY(-1px);
    background: color-mix(in srgb, var(--primary) 14%, var(--surface));
}
body.frontend-v2 .icon-text {
    min-height: 38px;
    padding: 7px 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: color-mix(in srgb, var(--surface) 96%, var(--primary-soft));
    font-weight: 700;
}
body.frontend-v2 .icon-text:hover {
    border-color: var(--primary);
    background: var(--primary-soft);
    color: var(--primary);
}
body.frontend-v2 .icon-text.danger {
    border-color: color-mix(in srgb, var(--danger) 22%, var(--line));
    color: var(--danger);
}
body.frontend-v2 .icon-text.danger:hover {
    border-color: color-mix(in srgb, var(--danger) 45%, var(--line));
    background: color-mix(in srgb, var(--danger) 10%, var(--surface));
}
body.frontend-v2 .podcast-chapter-list button,
body.frontend-v2 .search-page-form button,
body.frontend-v2 .filter-submit {
    border-radius: 15px;
    box-shadow: 0 10px 24px rgba(24, 39, 75, .05);
}
body.frontend-v2 .podcast-chapter-list button:hover,
body.frontend-v2 .search-page-form button:hover,
body.frontend-v2 .filter-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(24, 39, 75, .08);
}


/* v7.57.3 — reliable discovery radio links */
body.frontend-v2 a.radio-preset-card {
    text-decoration: none;
    color: var(--text);
    cursor: pointer;
}
body.frontend-v2 .radio-preset-card__button {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 7px 12px;
    border: 1px solid color-mix(in srgb, var(--primary) 16%, var(--line));
    border-radius: 12px;
    background: var(--surface-2);
    color: var(--primary);
    font-size: .74rem;
    font-weight: 800;
    transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}
body.frontend-v2 a.radio-preset-card:hover .radio-preset-card__button,
body.frontend-v2 a.radio-preset-card:focus-visible .radio-preset-card__button {
    transform: translateY(-1px);
    background: var(--primary-soft);
    box-shadow: 0 10px 22px color-mix(in srgb, var(--primary) 14%, transparent);
}


/* v7.59.0 — shared-host Persian smart search */
.search-smart-note {
    display: flex;
    align-items: center;
    gap: 8px 14px;
    flex-wrap: wrap;
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid color-mix(in srgb, var(--primary) 22%, var(--line));
    border-radius: 14px;
    background: color-mix(in srgb, var(--primary-soft) 54%, var(--surface));
    color: var(--muted);
    font-size: .82rem;
}
.search-smart-note strong { color: var(--primary); }
.search-match-badge {
    display: inline-flex;
    align-items: center;
    margin-top: 7px;
    padding: 3px 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--primary-soft) 68%, var(--surface));
    color: var(--primary);
    font-size: .68rem;
    font-weight: 800;
}

/* v7.60.0 — shared-host personalized "For You" experience */
body.frontend-v2 .for-you-page {
    padding-bottom: 22px;
}

body.frontend-v2 .for-you-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    gap: 28px;
    align-items: center;
    overflow: hidden;
    padding: clamp(24px, 4vw, 44px);
    border: 1px solid var(--line);
    border-radius: 30px;
    background:
        radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--primary) 18%, transparent), transparent 38%),
        linear-gradient(135deg, color-mix(in srgb, var(--primary-soft) 46%, var(--surface)), var(--surface));
    box-shadow: var(--shadow-sm);
}

body.frontend-v2 .for-you-hero h1 {
    margin: 8px 0 10px;
    font-size: clamp(2rem, 5vw, 4.2rem);
    line-height: 1.15;
}

body.frontend-v2 .for-you-hero p {
    max-width: 780px;
    margin: 0;
    color: var(--muted);
    font-size: .96rem;
    line-height: 2;
}

body.frontend-v2 .for-you-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 22px;
}

body.frontend-v2 .for-you-hero__mark {
    width: 168px;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    justify-self: end;
    border-radius: 48px;
    background: linear-gradient(145deg, var(--primary), color-mix(in srgb, var(--accent) 78%, var(--primary)));
    color: #fff;
    box-shadow: 0 24px 56px color-mix(in srgb, var(--primary) 28%, transparent);
    transform: rotate(-4deg);
}

body.frontend-v2 .for-you-hero__mark span {
    font-size: 4.3rem;
    line-height: 1;
}

body.frontend-v2 .for-you-hero__mark small {
    margin-top: -34px;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.frontend-v2 .for-you-taste {
    margin-top: 18px;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

body.frontend-v2 .for-you-taste__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
}

body.frontend-v2 .for-you-taste__head h2 {
    margin: 0;
    font-size: 1.05rem;
}

body.frontend-v2 .for-you-taste__head p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .78rem;
}

body.frontend-v2 .for-you-signal-stats,
body.frontend-v2 .for-you-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

body.frontend-v2 .for-you-signal-stats span,
body.frontend-v2 .for-you-chips a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 5px 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: color-mix(in srgb, var(--surface-2) 82%, var(--surface));
    color: var(--text);
    font-size: .7rem;
    font-weight: 750;
}

body.frontend-v2 .for-you-chips a:hover {
    border-color: color-mix(in srgb, var(--primary) 55%, var(--line));
    background: var(--primary-soft);
    color: var(--primary);
}

body.frontend-v2 .for-you-taste__groups {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    padding-top: 16px;
}

body.frontend-v2 .for-you-taste__groups > div {
    min-width: 0;
}

body.frontend-v2 .for-you-taste__groups strong {
    display: block;
    margin-bottom: 9px;
    font-size: .8rem;
}

body.frontend-v2 .continue-listening-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

body.frontend-v2 .continue-listening-card {
    min-width: 0;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

body.frontend-v2 .continue-listening-card .song-card--compact {
    border: 0;
    background: transparent;
    box-shadow: none;
}

body.frontend-v2 .continue-listening-card__progress {
    height: 5px;
    overflow: hidden;
    margin: 7px 8px 5px;
    border-radius: 999px;
    background: var(--surface-2);
}

body.frontend-v2 .continue-listening-card__progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--primary), var(--accent));
}

body.frontend-v2 .continue-listening-card > small {
    display: block;
    padding-inline: 8px;
    color: var(--muted);
    font-size: .66rem;
}

body.frontend-v2 .recommendation-card-wrap {
    min-width: 0;
}

body.frontend-v2 .for-you-song-grid .recommendation-card-wrap {
    display: grid;
    align-content: start;
}

body.frontend-v2 .recommendation-reason {
    display: block;
    margin-top: 8px;
    padding-inline: 4px;
    color: var(--muted);
    font-size: .68rem;
    line-height: 1.75;
}

body.frontend-v2 .for-you-rediscover-list,
body.frontend-v2 .for-you-recent-list {
    display: grid;
    gap: 8px;
    padding: 10px;
}

body.frontend-v2 .for-you-rediscover-row,
body.frontend-v2 .for-you-recent-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, auto);
    gap: 14px;
    align-items: center;
    padding: 6px;
    border-radius: 14px;
}

body.frontend-v2 .for-you-rediscover-row:hover,
body.frontend-v2 .for-you-recent-row:hover {
    background: var(--surface-2);
}

body.frontend-v2 .for-you-rediscover-row .song-card--compact,
body.frontend-v2 .for-you-recent-row .song-card--compact {
    border: 0;
    background: transparent;
    box-shadow: none;
}

body.frontend-v2 .for-you-rediscover-row > small,
body.frontend-v2 .for-you-recent-row > time {
    color: var(--muted);
    font-size: .68rem;
    text-align: end;
}

@media (max-width: 840px) {
    body.frontend-v2 .for-you-hero {
        grid-template-columns: 1fr;
    }

    body.frontend-v2 .for-you-hero__mark {
        width: 112px;
        justify-self: start;
        border-radius: 32px;
    }

    body.frontend-v2 .for-you-hero__mark span {
        font-size: 3rem;
    }

    body.frontend-v2 .for-you-hero__mark small {
        margin-top: -22px;
        font-size: .58rem;
    }

    body.frontend-v2 .for-you-taste__head {
        flex-direction: column;
    }

    body.frontend-v2 .for-you-taste__groups,
    body.frontend-v2 .continue-listening-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    body.frontend-v2 .for-you-hero {
        padding: 20px;
        border-radius: 22px;
    }

    body.frontend-v2 .for-you-hero__actions .button {
        width: 100%;
    }

    body.frontend-v2 .for-you-taste {
        padding: 16px;
    }

    body.frontend-v2 .for-you-rediscover-row,
    body.frontend-v2 .for-you-recent-row {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    body.frontend-v2 .for-you-rediscover-row > small,
    body.frontend-v2 .for-you-recent-row > time {
        padding-inline: 10px;
        text-align: start;
    }
}

/* v7.61.0 — public, private and collaborative playlists */
body.frontend-v2 .public-playlist-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
body.frontend-v2 .public-playlist-card {
    display:grid;
    grid-template-columns:116px minmax(0,1fr);
    gap:14px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:18px;
    background:var(--surface);
    box-shadow:0 12px 28px rgba(24,39,75,.05);
}
body.frontend-v2 .public-playlist-card__cover,
body.frontend-v2 .playlist-card__cover,
body.frontend-v2 .playlist-manage-hero__cover,
body.frontend-v2 .playlist-public-mark {
    overflow:hidden;
    background:linear-gradient(145deg,var(--primary),color-mix(in srgb,var(--accent) 80%,var(--primary)));
}
body.frontend-v2 .public-playlist-card__cover {
    width:116px;
    aspect-ratio:1;
    display:grid;
    place-items:center;
    border-radius:16px;
    color:#fff;
    font-size:2rem;
}
body.frontend-v2 .public-playlist-card__cover img,
body.frontend-v2 .playlist-card__cover img,
body.frontend-v2 .playlist-manage-hero__cover img,
body.frontend-v2 .playlist-public-mark img {
    width:100%;
    height:100%;
    object-fit:cover;
}
body.frontend-v2 .public-playlist-card__body h2,
body.frontend-v2 .public-playlist-card__body h3 { margin:0 0 5px; font-size:1rem; }
body.frontend-v2 .public-playlist-card__body p { margin:0 0 9px; color:var(--muted); font-size:.8rem; }
body.frontend-v2 .playlist-card { display:grid; gap:12px; }
body.frontend-v2 .playlist-card__cover { width:100%; aspect-ratio:16/9; display:grid; place-items:center; border-radius:15px; color:#fff; font-size:2rem; }
body.frontend-v2 .playlist-manage-hero { display:grid; grid-template-columns:132px minmax(0,1fr) auto; }
body.frontend-v2 .playlist-manage-hero__cover { width:132px; aspect-ratio:1; border-radius:24px; display:grid; place-items:center; color:#fff; font-size:2.4rem; }
body.frontend-v2 .playlist-manage-hero__actions { justify-content:flex-end; }
body.frontend-v2 .playlist-public-mark { width:132px; height:132px; border-radius:26px; }
body.frontend-v2 .playlist-public-content { min-width:0; }
body.frontend-v2 .playlist-team-strip { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
body.frontend-v2 .playlist-team-strip span { padding:5px 9px; border-radius:999px; background:var(--primary-soft); color:var(--primary); font-size:.75rem; font-weight:700; }
body.frontend-v2 .playlist-checkbox { display:flex!important; flex-direction:row!important; align-items:center; gap:9px; min-height:44px; }
body.frontend-v2 .playlist-checkbox input { width:18px; height:18px; }
body.frontend-v2 .playlist-cover-form { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
body.frontend-v2 .playlist-cover-form input[type=file] { flex:1 1 260px; padding:10px; border:1px dashed var(--line); border-radius:14px; background:var(--surface-soft); }
body.frontend-v2 .playlist-collaborator-list,
body.frontend-v2 .playlist-invitation-list { display:grid; gap:10px; margin-top:16px; }
body.frontend-v2 .playlist-collaborator-row,
body.frontend-v2 .playlist-invitation-row {
    display:grid;
    grid-template-columns:minmax(180px,1fr) auto auto;
    align-items:center;
    gap:14px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:15px;
    background:var(--surface-soft);
}
body.frontend-v2 .playlist-collaborator-row small,
body.frontend-v2 .playlist-invitation-row small { display:block; color:var(--muted); }
body.frontend-v2 .playlist-added-by { color:var(--muted); font-size:.72rem; }
body.frontend-v2 .playlist-report-box { margin-top:22px; }
body.frontend-v2 .playlist-report-box summary { cursor:pointer; font-weight:800; }
body.frontend-v2 .playlist-report-box form { margin-top:14px; }
body.frontend-v2 .playlist-invitation-card { max-width:720px; margin-inline:auto; text-align:center; }
body.frontend-v2 .playlist-invitation-card .meta-row,
body.frontend-v2 .playlist-invitation-card .card-actions { justify-content:center; }
body.frontend-v2 .badge.info { background:#ede9fe; color:#6d28d9; }
body.frontend-v2 .badge.ok { background:#dcfce7; color:#166534; }
body.frontend-v2 .empty-state--compact { padding:14px; }
@media(max-width:1080px){
    body.frontend-v2 .public-playlist-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    body.frontend-v2 .playlist-manage-hero { grid-template-columns:110px minmax(0,1fr); }
    body.frontend-v2 .playlist-manage-hero__actions { grid-column:1/-1; justify-content:flex-start; }
    body.frontend-v2 .playlist-manage-hero__cover { width:110px; }
}
@media(max-width:700px){
    body.frontend-v2 .public-playlist-grid { grid-template-columns:1fr; }
    body.frontend-v2 .public-playlist-card { grid-template-columns:88px minmax(0,1fr); }
    body.frontend-v2 .public-playlist-card__cover { width:88px; }
    body.frontend-v2 .playlist-manage-hero { grid-template-columns:1fr; }
    body.frontend-v2 .playlist-manage-hero__cover { width:92px; }
    body.frontend-v2 .playlist-collaborator-row,
    body.frontend-v2 .playlist-invitation-row { grid-template-columns:1fr; align-items:start; }
    body.frontend-v2 .playlist-public-mark { width:92px; height:92px; }
}
body.frontend-v2 .js-sortable-playlist [draggable="true"] { cursor:grab; }
body.frontend-v2 .js-sortable-playlist [draggable="true"]:active { cursor:grabbing; }
body.frontend-v2 .js-sortable-playlist .is-dragging { opacity:.52; border-color:var(--primary); box-shadow:0 14px 28px color-mix(in srgb,var(--primary) 18%,transparent); }

/* v7.62.0 — smart artist follow notifications */
.notification-filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 4px}.notification-filters a{display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.78rem;font-weight:800}.notification-filters a:hover,.notification-filters a.is-active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.notification-filters span{min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,var(--surface));font-size:.66rem}.artist-notification-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.artist-notification-card{padding:18px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-sm)}.artist-notification-card__head{display:flex;align-items:center;gap:13px;margin-bottom:16px}.artist-notification-card__avatar{width:68px;height:68px;display:grid;place-items:center;overflow:hidden;border-radius:20px;background:var(--primary-soft);color:var(--primary);font-size:1.4rem;font-weight:900}.artist-notification-card__avatar img,.artist-notification-card__avatar picture{width:100%;height:100%;object-fit:cover}.artist-notification-card h2{margin:0;font-size:1rem}.artist-notification-card small,.artist-notification-card .muted{color:var(--muted)}.artist-notification-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.artist-notification-options{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;border-radius:14px;background:var(--surface-2)}.artist-notification-form>label{display:grid;gap:6px;color:var(--muted);font-size:.75rem}.artist-notification-form select{min-height:43px;padding:0 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text)}.artist-notification-form button,.artist-notification-form .muted{grid-column:1/-1}.artist-follow-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:12px}.notification-priority-4,.notification-priority-5{border-inline-start:4px solid var(--danger)}.notification-priority-3{border-inline-start:4px solid var(--primary)}
@media(max-width:820px){.artist-notification-grid{grid-template-columns:1fr}}@media(max-width:560px){.artist-notification-form,.artist-notification-options{grid-template-columns:1fr}.artist-notification-form>label,.artist-notification-form button,.artist-notification-form .muted,.artist-notification-options{grid-column:auto}.notification-card{grid-template-columns:42px minmax(0,1fr)}.notification-card__actions{grid-column:2}}

/* v7.63.1 — surface-aware official Master logo contrast hotfix */
body.frontend-v2 .sedahang-brand-master {
    display: block;
    width: 218px;
    max-width: 100%;
    line-height: 0;
    direction: ltr;
}
body.frontend-v2 .sedahang-brand-master__image {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}
/* Default/adaptive surfaces follow the resolved site theme. */
body.frontend-v2 .sedahang-brand-master__image--dark { display: none; }
html[data-theme="dark"] body.frontend-v2 .sedahang-brand-master--adaptive .sedahang-brand-master__image--light,
html[data-theme="dark"] body.frontend-v2 .sedahang-brand-master:not(.sedahang-brand-master--light):not(.sedahang-brand-master--dark) .sedahang-brand-master__image--light { display: none; }
html[data-theme="dark"] body.frontend-v2 .sedahang-brand-master--adaptive .sedahang-brand-master__image--dark,
html[data-theme="dark"] body.frontend-v2 .sedahang-brand-master:not(.sedahang-brand-master--light):not(.sedahang-brand-master--dark) .sedahang-brand-master__image--dark { display: block; }
/* Fixed surfaces choose by their own background, independently of the page theme. */
body.frontend-v2 .sedahang-brand-master--light .sedahang-brand-master__image--light { display: block; }
body.frontend-v2 .sedahang-brand-master--light .sedahang-brand-master__image--dark { display: none; }
body.frontend-v2 .sedahang-brand-master--dark .sedahang-brand-master__image--light { display: none; }
body.frontend-v2 .sedahang-brand-master--dark .sedahang-brand-master__image--dark { display: block; }
/* Defensive footer fallback for older cached Blade output. */
body.frontend-v2 .brand--footer .sedahang-brand-master__image--light { display: none; }
body.frontend-v2 .brand--footer .sedahang-brand-master__image--dark { display: block; }
body.frontend-v2 .sedahang-brand-lockup,
body.frontend-v2 .sedahang-brand-lockup__word,
body.frontend-v2 .sedahang-brand-lockup__mark { display: none !important; }
body.frontend-v2 .brand--english { align-items: flex-start; }
body.frontend-v2 .brand-tagline {
    width: calc(100% - 58px);
    margin: 1px 0 0 58px;
    text-align: center;
}
body.frontend-v2 .brand--footer .sedahang-brand-master { width: 196px; }
@media (max-width: 860px) {
    body.frontend-v2 .sedahang-brand-master { width: 190px; }
    body.frontend-v2 .brand-tagline { display: none; }
}
@media (max-width: 620px) {
    body.frontend-v2 .sedahang-brand-master { width: 170px; }
}
@media (max-width: 390px) {
    body.frontend-v2 .sedahang-brand-master { width: 155px; }
}

/* v7.66.9 — unified lyrics and inline time-sync highlighting */
body.frontend-v2 .lyrics-box__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}
body.frontend-v2 .lyrics-box__head h2 {
    flex: 1 1 280px;
    margin: 0;
}
body.frontend-v2 .lyrics-box__tools {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
body.frontend-v2 .lyrics-box__badge,
body.frontend-v2 .lyrics-box__lrc {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 4px 10px;
    border: 1px solid color-mix(in srgb, var(--primary) 26%, var(--line));
    border-radius: 999px;
    background: color-mix(in srgb, var(--primary) 7%, var(--surface));
    color: var(--primary);
    font-size: .72rem;
    font-weight: 650;
    line-height: 1.4;
    text-decoration: none;
}
body.frontend-v2 .lyrics-box__lrc:hover,
body.frontend-v2 .lyrics-box__lrc:focus-visible {
    border-color: var(--primary);
    outline: none;
}
body.frontend-v2 .lyrics--synced {
    display: grid;
    gap: 2px;
    white-space: normal;
}
body.frontend-v2 .lyrics__line {
    width: 100%;
    display: grid;
    gap: 3px;
    padding: 6px 12px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: color-mix(in srgb, var(--text) 88%, var(--muted));
    font: inherit;
    font-weight: 400;
    text-align: center;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, font-weight .2s ease, transform .2s ease;
}
body.frontend-v2 .lyrics__line span {
    font-size: 1.05rem;
    line-height: 2.25;
}
body.frontend-v2 .lyrics__line small {
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.8;
}
body.frontend-v2 .lyrics__line:hover,
body.frontend-v2 .lyrics__line:focus-visible {
    background: color-mix(in srgb, var(--primary) 5%, transparent);
    color: var(--text);
    outline: none;
}
body.frontend-v2 .lyrics__line.is-active {
    background: color-mix(in srgb, var(--primary) 9%, var(--surface));
    color: var(--primary);
    font-weight: 700;
    transform: scale(1.008);
}
body.frontend-v2 .lyrics__line.is-active small {
    color: color-mix(in srgb, var(--primary) 72%, var(--muted));
}
@media (max-width: 680px) {
    body.frontend-v2 .lyrics-box__head {
        align-items: flex-start;
        margin-bottom: 16px;
    }
    body.frontend-v2 .lyrics-box__tools {
        gap: 5px;
    }
    body.frontend-v2 .lyrics-box__badge,
    body.frontend-v2 .lyrics-box__lrc {
        min-height: 27px;
        padding-inline: 8px;
        font-size: .65rem;
    }
    body.frontend-v2 .lyrics__line {
        padding: 5px 7px;
    }
    body.frontend-v2 .lyrics__line span {
        font-size: 1rem;
        line-height: 2.15;
    }
}



/* v7.67.0 — compact header search, mobile player close and unified song actions */
body.frontend-v2 .header-inner {
    grid-template-columns: minmax(210px, auto) minmax(0, 1fr) auto;
    grid-template-areas:
        "brand spacer actions"
        "nav nav nav";
}
body.frontend-v2 .header-search-toggle[aria-expanded="true"] {
    border-color: color-mix(in srgb, var(--primary) 60%, var(--line));
    background: var(--primary-soft);
    color: var(--primary-strong);
}
body.frontend-v2 .header-search-panel {
    border-top: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
    background: color-mix(in srgb, var(--surface) 97%, transparent);
    box-shadow: 0 16px 30px rgba(15, 23, 42, .06);
}
body.frontend-v2 .header-search-panel[hidden] { display: none !important; }
body.frontend-v2 .header-search-panel__inner { padding-block: 10px 14px; }
body.frontend-v2 .header-search-panel .header-search {
    grid-area: auto;
    grid-template-columns: 24px minmax(0, 1fr) auto 42px;
    width: min(100%, 780px);
    max-width: 780px;
    margin: 0 auto;
    min-height: 52px;
}
body.frontend-v2 .header-search__close {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    padding: 0 !important;
    border: 1px solid var(--line) !important;
    border-radius: 11px !important;
    background: var(--surface) !important;
    color: var(--muted) !important;
    box-shadow: none !important;
}
body.frontend-v2 .header-search__close:hover {
    color: var(--danger) !important;
    border-color: color-mix(in srgb, var(--danger) 42%, var(--line)) !important;
    transform: none !important;
}
body.frontend-v2 .header-search__close svg { width: 18px; height: 18px; }
body.frontend-v2 .audio-box__header { align-items: flex-start; }
body.frontend-v2 .audio-box__quick-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
    gap: 10px;
    margin-top: 16px;
}
body.frontend-v2 .audio-box__quick-actions > button {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    justify-content: center;
}
body.frontend-v2 .primary-play-button--compact {
    min-width: 0;
    padding: 10px 14px;
    border-radius: 15px;
    box-shadow: 0 12px 28px color-mix(in srgb, var(--primary) 24%, transparent);
}
body.frontend-v2 .global-player__close {
    color: var(--muted);
}
body.frontend-v2 .global-player__close:hover {
    color: var(--danger);
    background: color-mix(in srgb, var(--danger) 9%, var(--surface-2));
}
@media (max-width: 1080px) {
    body.frontend-v2 .header-inner {
        grid-template-columns: auto minmax(0, 1fr) auto;
        grid-template-areas: "brand spacer actions";
    }
}
@media (max-width: 860px) {
    body.frontend-v2 .header-inner {
        grid-template-columns: auto minmax(0, 1fr) auto;
        grid-template-areas: "brand spacer actions";
        padding: 10px 0;
    }
    body.frontend-v2 .header-search-panel__inner { padding-block: 9px 12px; }
    body.frontend-v2 .header-search-panel .header-search {
        margin-top: 0;
        max-width: none;
        min-height: 48px;
    }
    body.frontend-v2 .global-player__actions > [data-player-close] {
        display: grid !important;
    }
}
@media (max-width: 620px) {
    body.frontend-v2 .header-actions { gap: 5px; }
    body.frontend-v2 .header-actions .icon-button,
    body.frontend-v2 .header-actions .account-button {
        width: 39px;
        height: 39px;
        min-height: 39px;
        border-radius: 12px;
    }
    body.frontend-v2 .header-search-panel .header-search {
        grid-template-columns: 21px minmax(0, 1fr) 58px 38px;
        gap: 6px;
        padding-inline: 10px 6px;
    }
    body.frontend-v2 .header-search__submit {
        min-height: 38px !important;
        padding-inline: 9px !important;
        font-size: .76rem;
    }
    body.frontend-v2 .header-search__close {
        width: 34px;
        height: 34px;
        border-radius: 10px !important;
    }
    body.frontend-v2 .audio-box__quick-actions {
        grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
        gap: 8px;
    }
    body.frontend-v2 .audio-box__quick-actions > button {
        min-height: 45px;
        padding-inline: 8px;
        font-size: .76rem;
        white-space: nowrap;
    }
    body.frontend-v2 .global-player__actions > [data-player-close] {
        display: grid !important;
        border: 1px solid color-mix(in srgb, var(--danger) 28%, var(--line));
        color: var(--danger);
        background: color-mix(in srgb, var(--danger) 7%, var(--surface));
    }
}

@media (max-width: 480px) {
    body.frontend-v2 .sedahang-brand-master { width: 122px; }
    body.frontend-v2 .header-actions .icon-button,
    body.frontend-v2 .header-actions .account-button { width: 36px; height: 36px; min-height: 36px; }
    body.frontend-v2 .header-actions { gap: 4px; }
}
@media (max-width: 360px) {
    body.frontend-v2 .sedahang-brand-master { width: 108px; }
    body.frontend-v2 .header-actions .icon-button,
    body.frontend-v2 .header-actions .account-button { width: 34px; height: 34px; min-height: 34px; }
}


/* v7.67.1 — clean two-column footer with centered brand and legal line */

/* v7.67.10 — online play button, balanced in light and dark modes */
body.frontend-v2 .audio-box .primary-play-button {
    border: 1px solid rgba(63, 81, 181, .22);
    background: linear-gradient(135deg, #4658c9 0%, #5f78df 100%);
    color: #fff;
    box-shadow: 0 14px 30px rgba(70, 88, 201, .24);
}
body.frontend-v2 .audio-box .primary-play-button:hover {
    border-color: rgba(63, 81, 181, .34);
    background: linear-gradient(135deg, #3f50bd 0%, #546ed4 100%);
    color: #fff;
    box-shadow: 0 18px 34px rgba(70, 88, 201, .30);
}
body.frontend-v2 .audio-box .primary-play-button:focus-visible {
    outline: 3px solid rgba(79, 102, 216, .28);
    outline-offset: 3px;
}
html[data-theme="dark"] body.frontend-v2 .audio-box .primary-play-button {
    border-color: rgba(156, 171, 255, .32);
    background: linear-gradient(135deg, #5264d2 0%, #6f83e8 100%);
    color: #f8faff;
    box-shadow: 0 14px 32px rgba(22, 31, 76, .52);
}
html[data-theme="dark"] body.frontend-v2 .audio-box .primary-play-button:hover {
    border-color: rgba(178, 190, 255, .46);
    background: linear-gradient(135deg, #5b6dda 0%, #7b8eed 100%);
    color: #fff;
    box-shadow: 0 18px 38px rgba(15, 23, 62, .60);
}


/* v7.67.12 — minimal song actions, aligned karaoke header and mobile card/header polish */
body.frontend-v2 .audio-box__header {
    align-items: center;
    justify-content: center;
}
body.frontend-v2 .audio-box__title {
    width: 100%;
    text-align: center;
}
body.frontend-v2 .audio-box__title strong {
    display: block;
    font-size: 1.08rem;
    line-height: 1.8;
    text-wrap: balance;
}
body.frontend-v2 .audio-box__quick-actions {
    display: flex;
    grid-template-columns: none;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 16px;
}
body.frontend-v2 .audio-box__quick-actions > button,
body.frontend-v2 .audio-box .audio-action-icon {
    width: 54px;
    height: 54px;
    min-width: 54px;
    min-height: 54px;
    flex: 0 0 54px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--line) 82%, var(--primary-soft));
    border-radius: 17px;
    background: color-mix(in srgb, var(--surface) 96%, var(--primary-soft));
    color: var(--muted);
    box-shadow: 0 10px 24px rgba(24, 39, 75, .07);
    line-height: 1;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
}
body.frontend-v2 .audio-box .audio-action-icon svg {
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
}
body.frontend-v2 .audio-box .audio-action-icon:hover,
body.frontend-v2 .audio-box .audio-action-icon:focus-visible {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--primary) 58%, var(--line));
    background: var(--surface);
    color: var(--primary-strong);
    box-shadow: 0 14px 28px rgba(24, 39, 75, .11);
    outline: none;
}
body.frontend-v2 .audio-box .audio-action-icon.js-favorite-song.is-active {
    border-color: color-mix(in srgb, var(--danger) 46%, var(--line));
    background: color-mix(in srgb, var(--danger) 10%, var(--surface));
    color: var(--danger);
}
body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play {
    width: 58px;
    height: 58px;
    min-width: 58px;
    min-height: 58px;
    flex-basis: 58px;
    padding: 0;
    border: 1px solid color-mix(in srgb, #6d43e5 54%, var(--line));
    border-radius: 18px;
    background: linear-gradient(135deg, #653fd8 0%, #865cf2 100%);
    color: #fff;
    box-shadow: 0 14px 30px rgba(109, 67, 229, .28);
}
body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play:hover,
body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play:focus-visible {
    border-color: color-mix(in srgb, #6d43e5 72%, var(--line));
    background: linear-gradient(135deg, #5d36cf 0%, #7b50e8 100%);
    color: #fff;
    box-shadow: 0 18px 34px rgba(109, 67, 229, .34);
    outline: 3px solid color-mix(in srgb, var(--primary) 20%, transparent);
    outline-offset: 3px;
}
html[data-theme="dark"] body.frontend-v2 .audio-box .audio-action-icon {
    border-color: color-mix(in srgb, var(--primary) 18%, var(--line));
    background: color-mix(in srgb, var(--surface-2) 88%, var(--primary-soft));
    color: var(--muted);
    box-shadow: 0 12px 26px rgba(0, 0, 0, .22);
}
html[data-theme="dark"] body.frontend-v2 .audio-box .audio-action-icon:hover,
html[data-theme="dark"] body.frontend-v2 .audio-box .audio-action-icon:focus-visible {
    border-color: color-mix(in srgb, var(--primary) 58%, var(--line));
    background: color-mix(in srgb, var(--surface-3) 82%, var(--primary-soft));
    color: var(--primary-strong);
}
html[data-theme="dark"] body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play {
    border-color: color-mix(in srgb, #9c83ff 48%, var(--line));
    background: linear-gradient(135deg, #7152df 0%, #9679f5 100%);
    color: #fff;
    box-shadow: 0 15px 34px rgba(7, 10, 28, .52);
}
html[data-theme="dark"] body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play:hover,
html[data-theme="dark"] body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play:focus-visible {
    border-color: color-mix(in srgb, #b09dff 66%, var(--line));
    background: linear-gradient(135deg, #795ae7 0%, #a188fb 100%);
    color: #fff;
    box-shadow: 0 19px 40px rgba(4, 7, 24, .62);
}

body.frontend-v2 .lyrics-box__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
}
body.frontend-v2 .lyrics-box__head h2 {
    min-width: 0;
    margin: 0;
    text-align: right;
}
body.frontend-v2 .lyrics-box__tools {
    justify-self: end;
    flex-wrap: nowrap;
    white-space: nowrap;
}
body.frontend-v2 .lyrics__line {
    transition: background-color .2s ease, color .2s ease, font-weight .2s ease, transform .2s ease;
}
body.frontend-v2 .lyrics__line.is-active span {
    font-size: 1.24rem;
    line-height: 2.12;
    font-weight: 800;
}

body.frontend-v2 .song-card:not(.song-card--compact) .song-card__body {
    min-height: 138px;
    padding-bottom: 76px;
}
body.frontend-v2 .song-card:not(.song-card--compact) .song-card__actions {
    bottom: 14px;
}

body.frontend-v2 .account-button .account-button__icon {
    display: block;
    width: 25px;
    height: 25px;
    min-width: 25px;
    flex: 0 0 25px;
    overflow: visible;
    color: var(--primary-strong);
    opacity: 1;
}

@media (max-width: 680px) {
    body.frontend-v2 .audio-box__title strong { font-size: 1rem; }
    body.frontend-v2 .audio-box__quick-actions {
        display: flex;
        grid-template-columns: none;
        gap: 10px;
    }
    body.frontend-v2 .audio-box__quick-actions > button,
    body.frontend-v2 .audio-box .audio-action-icon {
        width: 50px;
        height: 50px;
        min-width: 50px;
        min-height: 50px;
        flex-basis: 50px;
        padding: 0;
    }
    body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play {
        width: 54px;
        height: 54px;
        min-width: 54px;
        min-height: 54px;
        flex-basis: 54px;
    }
    body.frontend-v2 .lyrics-box__head {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 8px;
        margin-bottom: 16px;
    }
    body.frontend-v2 .lyrics-box__head h2 {
        margin: 0;
        font-size: 1.08rem;
        line-height: 1.65;
    }
    body.frontend-v2 .lyrics-box__tools {
        justify-self: end;
        gap: 4px;
    }
    body.frontend-v2 .lyrics__line.is-active span {
        font-size: 1.15rem;
        line-height: 2.08;
    }
    body.frontend-v2 .song-card:not(.song-card--compact) .song-card__body {
        min-height: 118px;
        padding-bottom: 64px;
    }
    body.frontend-v2 .song-card:not(.song-card--compact) .song-card__actions {
        left: 9px;
        bottom: 10px;
        gap: 5px;
    }
    body.frontend-v2 .account-button .account-button__icon {
        width: 25px;
        height: 25px;
        min-width: 25px;
        flex-basis: 25px;
    }
}


/* v7.67.13 — clearer and larger account icon in compact/mobile header */
@media (max-width: 480px) {
    body.frontend-v2 .header-actions .account-button .account-button__icon {
        width: 24px;
        height: 24px;
        min-width: 24px;
        flex-basis: 24px;
        stroke-width: 2.15;
    }
}
@media (max-width: 360px) {
    body.frontend-v2 .header-actions .account-button .account-button__icon {
        width: 23px;
        height: 23px;
        min-width: 23px;
        flex-basis: 23px;
    }
}

/* v7.67.14 — branded play mark, compact home rhythm, refined song cards and song topbar */
body.frontend-v2 .section {
    padding-block: 40px;
}
body.frontend-v2 .section-head {
    margin-bottom: 18px;
}
body.frontend-v2 .song-grid,
body.frontend-v2 .album-grid {
    gap: 16px;
}
body.frontend-v2 .continue-grid {
    gap: 14px;
}
body.frontend-v2 .continue-card {
    padding: 10px;
}

/* Standard song cards: actions sit exactly on the image/body seam. */
body.frontend-v2 .song-card:not(.song-card--compact):not(.song-card--resume) {
    display: flex;
    flex-direction: column;
}
body.frontend-v2 .song-card:not(.song-card--compact):not(.song-card--resume) .song-card__visual {
    order: 1;
}
body.frontend-v2 .song-card:not(.song-card--compact):not(.song-card--resume) .song-card__actions {
    position: relative;
    inset: auto;
    order: 2;
    z-index: 5;
    align-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: -28px;
    padding: 0;
    direction: rtl;
}
body.frontend-v2 .song-card:not(.song-card--compact):not(.song-card--resume) .song-card__body {
    order: 3;
    min-height: 0;
    padding: 13px 15px 17px;
    text-align: center;
}
body.frontend-v2 .song-card:not(.song-card--compact):not(.song-card--resume) .song-card__meta {
    justify-content: center;
}
body.frontend-v2 .song-card:not(.song-card--compact) .song-card__actions .js-favorite-song { order: 1; }
body.frontend-v2 .song-card:not(.song-card--compact) .song-card__actions .song-card__play { order: 2; }
body.frontend-v2 .song-card:not(.song-card--compact) .song-card__actions .js-add-playlist { order: 3; }
body.frontend-v2 .song-card:not(.song-card--compact) .song-card__action {
    width: 40px;
    height: 40px;
    border-color: color-mix(in srgb, var(--primary) 14%, var(--line));
    background: color-mix(in srgb, var(--surface) 97%, var(--primary-soft));
    color: var(--muted);
    box-shadow: 0 10px 26px rgba(16, 24, 40, .13);
}
body.frontend-v2 .song-card:not(.song-card--compact) .song-card__play {
    position: static;
    width: 56px;
    height: 56px;
    margin: 0;
    border: 1px solid color-mix(in srgb, var(--primary) 22%, var(--line));
    background: color-mix(in srgb, var(--surface) 98%, #fff);
    color: var(--primary);
    box-shadow: 0 14px 32px rgba(57, 35, 120, .20);
    transform: none;
    opacity: 1;
}
body.frontend-v2 .song-card__play-mark {
    display: block;
    width: 35px;
    height: 35px;
    object-fit: contain;
}
body.frontend-v2 .song-card__pause-icon {
    display: none;
    width: 22px;
    height: 22px;
}
body.frontend-v2 .song-card__play.is-playing .song-card__play-mark {
    display: none;
}
body.frontend-v2 .song-card__play.is-playing .song-card__pause-icon {
    display: block;
}
html[data-theme="dark"] body.frontend-v2 .song-card:not(.song-card--compact) .song-card__action,
html[data-theme="dark"] body.frontend-v2 .song-card:not(.song-card--compact) .song-card__play {
    background: color-mix(in srgb, var(--surface-2) 93%, var(--primary-soft));
    border-color: color-mix(in srgb, var(--primary) 24%, var(--line));
    box-shadow: 0 13px 30px rgba(0, 0, 0, .32);
}

/* Continue listening: title/artist and action trio share one compact row. */
body.frontend-v2 .song-card--resume {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    overflow: hidden;
}
body.frontend-v2 .song-card--resume .song-card__visual {
    grid-column: 1 / -1;
    grid-row: 1;
}
body.frontend-v2 .song-card--resume .song-card__body {
    grid-column: 1;
    grid-row: 2;
    min-height: 0;
    padding: 15px 13px 15px 6px;
    align-self: center;
}
body.frontend-v2 .song-card--resume .song-card__meta {
    display: none;
}
body.frontend-v2 .song-card--resume .song-card__actions {
    position: static;
    grid-column: 2;
    grid-row: 2;
    align-self: center;
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 10px 6px 10px 13px;
    direction: rtl;
}
body.frontend-v2 .song-card--resume .song-card__action {
    width: 36px;
    height: 36px;
    box-shadow: none;
}
body.frontend-v2 .song-card--resume .song-card__play {
    position: static;
    width: 46px;
    height: 46px;
    margin: 0;
    border: 1px solid color-mix(in srgb, var(--primary) 20%, var(--line));
    background: color-mix(in srgb, var(--surface) 98%, #fff);
    box-shadow: 0 9px 22px rgba(57, 35, 120, .15);
    transform: none;
    opacity: 1;
}
body.frontend-v2 .song-card--resume .song-card__play-mark {
    width: 29px;
    height: 29px;
}
body.frontend-v2 .continue-progress {
    margin-top: 8px;
}

/* Branded primary play controls. */
body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play {
    border-color: color-mix(in srgb, var(--primary) 26%, var(--line));
    background: color-mix(in srgb, var(--surface) 98%, #fff);
    color: var(--primary);
    box-shadow: 0 14px 30px rgba(57, 35, 120, .18);
}
body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play:hover,
body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play:focus-visible {
    border-color: color-mix(in srgb, var(--primary) 48%, var(--line));
    background: var(--surface);
    color: var(--primary);
    box-shadow: 0 18px 35px rgba(57, 35, 120, .24);
}
body.frontend-v2 .primary-play-button__brand-mark {
    width: 37px;
    height: 37px;
    flex: 0 0 37px;
    object-fit: contain;
}
html[data-theme="dark"] body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play {
    border-color: color-mix(in srgb, var(--primary) 32%, var(--line));
    background: color-mix(in srgb, var(--surface-2) 92%, var(--primary-soft));
    color: var(--primary-strong);
    box-shadow: 0 15px 34px rgba(0, 0, 0, .34);
}
html[data-theme="dark"] body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play:hover,
html[data-theme="dark"] body.frontend-v2 .audio-box .primary-play-button.audio-action-icon--play:focus-visible {
    background: color-mix(in srgb, var(--surface-3) 88%, var(--primary-soft));
    color: var(--primary-strong);
}
body.frontend-v2 .global-player__play {
    border: 1px solid color-mix(in srgb, var(--primary) 24%, var(--line));
    background: color-mix(in srgb, var(--surface) 98%, #fff) !important;
    color: var(--primary) !important;
    box-shadow: 0 10px 24px rgba(57, 35, 120, .18);
}
body.frontend-v2 .global-player__brand-mark {
    width: 34px;
    height: 34px;
    object-fit: contain;
}
body.frontend-v2 .global-player.is-playing .global-player__play {
    background: var(--primary) !important;
    color: #fff !important;
}
html[data-theme="dark"] body.frontend-v2 .global-player__play {
    background: color-mix(in srgb, var(--surface-2) 92%, var(--primary-soft)) !important;
    border-color: color-mix(in srgb, var(--primary) 30%, var(--line));
    box-shadow: 0 12px 28px rgba(0, 0, 0, .38);
}
html[data-theme="dark"] body.frontend-v2 .global-player.is-playing .global-player__play {
    background: var(--primary) !important;
}

/* Compact mobile spacing for homepage cards. */
@media (max-width: 620px) {
    body.frontend-v2 .section {
        padding-block: 31px;
    }
    body.frontend-v2 .section-head {
        margin-bottom: 14px;
    }
    body.frontend-v2 .song-grid,
    body.frontend-v2 .album-grid {
        gap: 10px;
    }
    body.frontend-v2 .song-card:not(.song-card--compact):not(.song-card--resume) .song-card__actions {
        gap: 6px;
        margin-top: -24px;
    }
    body.frontend-v2 .song-card:not(.song-card--compact) .song-card__action {
        width: 35px;
        height: 35px;
    }
    body.frontend-v2 .song-card:not(.song-card--compact) .song-card__play {
        width: 48px;
        height: 48px;
    }
    body.frontend-v2 .song-card__play-mark {
        width: 30px;
        height: 30px;
    }
    body.frontend-v2 .song-card:not(.song-card--compact):not(.song-card--resume) .song-card__body {
        min-height: 0;
        padding: 11px 10px 13px;
    }
    body.frontend-v2 .song-card--resume .song-card__body {
        padding: 12px 10px 12px 4px;
    }
    body.frontend-v2 .song-card--resume .song-card__actions {
        gap: 4px;
        padding: 8px 4px 8px 9px;
    }
    body.frontend-v2 .song-card--resume .song-card__action {
        width: 32px;
        height: 32px;
    }
    body.frontend-v2 .song-card--resume .song-card__play {
        width: 42px;
        height: 42px;
    }
    body.frontend-v2 .song-card--resume .song-card__play-mark {
        width: 27px;
        height: 27px;
    }
}

/* v7.67.14 specificity guard for the resume variant against earlier card spacing rules. */
body.frontend-v2 .song-card.song-card--resume:not(.song-card--compact) .song-card__body {
    min-height: 0;
    padding: 15px 13px 15px 6px;
}
body.frontend-v2 .song-card.song-card--resume:not(.song-card--compact) .song-card__actions {
    position: static;
    inset: auto;
    margin: 0;
    padding: 10px 6px 10px 13px;
}
@media (max-width: 620px) {
    body.frontend-v2 .song-card.song-card--resume:not(.song-card--compact) .song-card__body {
        min-height: 0;
        padding: 12px 10px 12px 4px;
    }
    body.frontend-v2 .song-card.song-card--resume:not(.song-card--compact) .song-card__actions {
        inset: auto;
        margin: 0;
        padding: 8px 4px 8px 9px;
    }
}

/* sedahang-v7.67.15-natural-song-intro */
body.frontend-v2 .song-content .song-intro {
    max-width: 64ch;
    margin: 0 0 18px;
    color: var(--muted);
    font-size: .94rem;
    font-weight: 500;
    line-height: 2;
    text-wrap: pretty;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
@media (max-width: 800px) {
    body.frontend-v2 .song-content .song-intro {
        max-width: 44rem;
        margin-inline: auto;
        margin-bottom: 16px;
        font-size: .91rem;
        line-height: 1.95;
    }
}


/* sedahang-v7.67.19 — single-row desktop header, hidden visual breadcrumbs,
   full-width song intro and modern compact song information panel. */
@media (min-width: 1081px) {
    body.frontend-v2 .header-inner {
        min-height: 88px;
        grid-template-columns: minmax(250px, auto) minmax(0, 1fr) auto;
        grid-template-areas: "brand nav actions";
        gap: 18px;
        padding: 11px 0;
    }
    body.frontend-v2 .brand {
        grid-area: brand;
        align-self: center;
    }
    body.frontend-v2 .header-nav {
        grid-area: nav;
        width: auto;
        min-width: 0;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 3px;
        margin: 0;
        padding: 0;
        border: 0;
        overflow: visible;
    }
    body.frontend-v2 .header-nav a {
        flex: 0 0 auto;
        padding: 8px 11px;
        border: 1px solid transparent;
        border-radius: 11px;
        font-size: .82rem;
        font-weight: 750;
    }
    body.frontend-v2 .header-nav a:hover {
        border-color: color-mix(in srgb, var(--primary) 16%, var(--line));
        background: color-mix(in srgb, var(--primary-soft) 68%, var(--surface));
        color: var(--primary-strong);
    }
    body.frontend-v2 .header-nav a.is-active {
        border-color: color-mix(in srgb, var(--primary) 22%, transparent);
        background: var(--primary);
        color: #fff;
        box-shadow: 0 8px 20px color-mix(in srgb, var(--primary) 20%, transparent);
    }
    body.frontend-v2 .header-actions {
        grid-area: actions;
        align-self: center;
    }
}
@media (min-width: 1081px) and (max-width: 1240px) {
    body.frontend-v2 .header-inner {
        grid-template-columns: minmax(210px, auto) minmax(0, 1fr) auto;
        gap: 12px;
    }
    body.frontend-v2 .header-nav a {
        padding-inline: 8px;
        font-size: .76rem;
    }
}

/* Breadcrumb schema is kept in controllers; visual breadcrumbs are omitted on
   song, artist, album and public-playlist detail templates. */
body.frontend-v2 .song-content .song-intro {
    width: 100%;
    max-width: none;
    text-wrap: pretty;
}

body.frontend-v2.page-song-detail .site-main {
    min-height: 0;
}
body.frontend-v2.page-song-detail .page-wrap {
    padding-bottom: clamp(22px, 3vw, 36px);
}
body.frontend-v2 .song-information {
    margin-top: 14px;
    margin-bottom: 0;
    padding: clamp(11px, 1.5vw, 15px);
    border-color: color-mix(in srgb, var(--primary) 12%, var(--line));
    border-radius: 18px;
    background: linear-gradient(145deg,
        color-mix(in srgb, var(--surface) 98%, var(--primary-soft)),
        var(--surface));
    box-shadow: 0 10px 28px rgba(15, 23, 42, .045);
}
body.frontend-v2 .song-information__head {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 8px;
    text-align: center;
}
body.frontend-v2 .song-information__head h2 {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-size: 1rem;
    line-height: 1.45;
}
body.frontend-v2 .song-information__head h2 > svg {
    width: 19px;
    height: 19px;
    color: var(--primary);
}
body.frontend-v2 .song-information__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1px;
    margin: 0;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--line) 86%, transparent);
    border-radius: 14px;
    background: color-mix(in srgb, var(--line) 86%, transparent);
}
body.frontend-v2 .song-information__item {
    flex: 1 1 calc(33.333% - 1px);
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    min-width: 190px;
    min-height: 52px;
    padding: 7px 9px;
    border: 0;
    border-radius: 0;
    background: var(--surface);
    transition: background-color .18s ease;
}
body.frontend-v2 .song-information__item:hover {
    background: color-mix(in srgb, var(--surface) 94%, var(--primary-soft));
}
body.frontend-v2 .song-information__item--date,
body.frontend-v2 .song-information__item--singer {
    flex-basis: calc(50% - 1px);
    background: color-mix(in srgb, var(--surface) 96%, var(--primary-soft));
}
body.frontend-v2 .song-information__item--wide {
    flex-basis: calc(50% - 1px);
}
body.frontend-v2 .song-information__item--full {
    flex-basis: 100%;
    min-width: 100%;
}
body.frontend-v2 .song-information__icon {
    width: 29px;
    height: 29px;
    display: grid;
    place-items: center;
    align-self: center;
    border-radius: 9px;
    background: color-mix(in srgb, var(--primary-soft) 72%, var(--surface));
    color: var(--primary-strong);
}
body.frontend-v2 .song-information__icon svg {
    width: 16px;
    height: 16px;
}
body.frontend-v2 .song-information__copy {
    min-width: 0;
    display: grid;
    gap: 1px;
}
body.frontend-v2 .song-information__item dt {
    margin: 0;
    color: var(--muted);
    font-size: .6rem;
    font-weight: 700;
    line-height: 1.4;
    white-space: nowrap;
}
body.frontend-v2 .song-information__item dd {
    min-width: 0;
    margin: 0;
    color: var(--text);
    font-size: .76rem;
    font-weight: 750;
    line-height: 1.5;
    text-align: right;
}
body.frontend-v2 .song-information__item a { color: inherit; }
body.frontend-v2 .song-information__item a:hover { color: var(--primary-strong); }
body.frontend-v2 .song-information__links,
body.frontend-v2 .song-information__stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 4px;
}
body.frontend-v2 .song-information__links > *,
body.frontend-v2 .song-information__stats > * {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    max-width: 100%;
    padding: 2px 7px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--surface-2) 88%, var(--surface));
    font-size: .66rem;
    font-weight: 650;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
html[data-theme="dark"] body.frontend-v2 .song-information {
    border-color: color-mix(in srgb, var(--primary) 18%, var(--line));
    background: linear-gradient(145deg,
        color-mix(in srgb, var(--surface) 96%, var(--primary-soft)),
        var(--surface));
    box-shadow: 0 13px 32px rgba(0, 0, 0, .14);
}
html[data-theme="dark"] body.frontend-v2 .song-information__grid {
    background: color-mix(in srgb, var(--line) 92%, transparent);
}

@media (max-width: 800px) {
    body.frontend-v2.page-song-detail .page-wrap {
        padding-bottom: 18px;
    }
    body.frontend-v2 .song-information {
        margin-top: 11px;
        padding: 10px 8px;
        border-radius: 16px;
    }
    body.frontend-v2 .song-information__head { margin-bottom: 7px; }
    body.frontend-v2 .song-information__head h2 { font-size: .94rem; }
    body.frontend-v2 .song-information__grid { border-radius: 12px; }
    body.frontend-v2 .song-information__item {
        flex-basis: calc(50% - 1px);
        grid-template-columns: 27px minmax(0, 1fr);
        gap: 6px;
        min-width: 145px;
        min-height: 50px;
        padding: 6px 7px;
    }
    body.frontend-v2 .song-information__item--full {
        flex-basis: 100%;
        min-width: 100%;
    }
    body.frontend-v2 .song-information__icon {
        width: 27px;
        height: 27px;
        border-radius: 8px;
    }
    body.frontend-v2 .song-information__icon svg { width: 14px; height: 14px; }
    body.frontend-v2 .song-information__item dt { font-size: .56rem; }
    body.frontend-v2 .song-information__item dd { font-size: .7rem; }
    body.frontend-v2 .song-information__links > *,
    body.frontend-v2 .song-information__stats > * {
        min-height: 20px;
        padding-inline: 6px;
        font-size: .62rem;
    }
}
@media (max-width: 360px) {
    body.frontend-v2 .song-information__item {
        flex-basis: 100%;
        min-width: 100%;
    }
}

/* v7.67.21 — emergency song page recovery + flat compact song information */
/* v7.67.22 — force two-column song information on real mobile viewports */
body.frontend-v2 .song-information {
    margin-top: 12px;
    padding: clamp(12px, 1.7vw, 18px);
    border: 1px solid color-mix(in srgb, var(--line) 86%, transparent);
    border-radius: 20px;
    background: var(--surface);
    box-shadow: 0 10px 30px rgba(15, 23, 42, .04);
}
body.frontend-v2 .song-information__head {
    justify-content: flex-start;
    margin: 0 0 12px;
    padding: 0 2px 10px;
    border-bottom: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
    text-align: right;
}
body.frontend-v2 .song-information__head h2 {
    gap: 6px;
    font-size: .98rem;
}
body.frontend-v2 .song-information__head h2 > svg {
    width: 17px;
    height: 17px;
}
body.frontend-v2 .song-information__grid {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 8px;
    margin: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent !important;
}
body.frontend-v2 .song-information__item {
    flex: 0 1 auto;
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    min-height: 0;
    padding: 8px 11px;
    border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
    border-radius: 12px;
    background: color-mix(in srgb, var(--surface-2) 70%, var(--surface));
    box-shadow: none;
    transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}
body.frontend-v2 .song-information__item:hover {
    border-color: color-mix(in srgb, var(--primary) 22%, var(--line));
    background: color-mix(in srgb, var(--primary-soft) 32%, var(--surface));
    transform: translateY(-1px);
}
body.frontend-v2 .song-information__item--date,
body.frontend-v2 .song-information__item--singer {
    flex: 1 1 min(280px, 100%);
    background: color-mix(in srgb, var(--primary-soft) 28%, var(--surface));
    border-color: color-mix(in srgb, var(--primary) 16%, var(--line));
}
body.frontend-v2 .song-information__item--wide {
    flex: 1 1 320px;
}
body.frontend-v2 .song-information__item--full {
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
}
body.frontend-v2 .song-information__icon {
    display: none;
}
body.frontend-v2 .song-information__copy {
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
}
body.frontend-v2 .song-information__item dt {
    margin: 0;
    color: var(--muted);
    font-size: .65rem;
    font-weight: 650;
    line-height: 1.4;
    white-space: nowrap;
}
body.frontend-v2 .song-information__item dt::after {
    content: ":";
    margin-inline-start: 2px;
}
body.frontend-v2 .song-information__item dd {
    min-width: 0;
    margin: 0;
    color: var(--text);
    font-size: .75rem;
    font-weight: 750;
    line-height: 1.5;
    text-align: right;
}
body.frontend-v2 .song-information__links,
body.frontend-v2 .song-information__stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 4px;
}
body.frontend-v2 .song-information__links > *,
body.frontend-v2 .song-information__stats > * {
    min-height: 0;
    padding: 2px 6px;
    border: 0;
    border-radius: 8px;
    background: color-mix(in srgb, var(--primary-soft) 38%, var(--surface));
    color: var(--text);
    font-size: .68rem;
    line-height: 1.45;
}
html[data-theme="dark"] body.frontend-v2 .song-information {
    border-color: color-mix(in srgb, var(--line) 92%, transparent);
    background: var(--surface);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
}
html[data-theme="dark"] body.frontend-v2 .song-information__item {
    background: color-mix(in srgb, var(--surface-2) 78%, var(--surface));
}
html[data-theme="dark"] body.frontend-v2 .song-information__item--date,
html[data-theme="dark"] body.frontend-v2 .song-information__item--singer {
    background: color-mix(in srgb, var(--primary-soft) 34%, var(--surface));
}
@media (max-width: 800px) {
    body.frontend-v2 .song-information {
        margin-top: 10px;
        padding: 11px;
        border-radius: 16px;
    }
    body.frontend-v2 .song-information__head {
        margin-bottom: 9px;
        padding-bottom: 8px;
    }
    body.frontend-v2 .song-information__grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
        gap: 6px;
    }
    body.frontend-v2 .song-information__item,
    body.frontend-v2 .song-information__item--date,
    body.frontend-v2 .song-information__item--singer,
    body.frontend-v2 .song-information__item--wide {
        width: auto;
        min-width: 0;
        padding: 7px 8px;
    }
    body.frontend-v2 .song-information__copy,
    body.frontend-v2 .song-information__item dd {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    body.frontend-v2 .song-information__item--full {
        grid-column: 1 / -1;
        width: auto;
        min-width: 0;
    }
}
@media (max-width: 340px) {
    body.frontend-v2 .song-information {
        padding-inline: 8px;
    }
    body.frontend-v2 .song-information__grid {
        gap: 5px;
    }
    body.frontend-v2 .song-information__item,
    body.frontend-v2 .song-information__item--date,
    body.frontend-v2 .song-information__item--singer,
    body.frontend-v2 .song-information__item--wide {
        padding: 6px;
    }
    body.frontend-v2 .song-information__item dt {
        font-size: .59rem;
    }
    body.frontend-v2 .song-information__item dd {
        font-size: .69rem;
    }
}
