.playlist-artwork { position:relative;flex:none;border-radius:10px;overflow:hidden;display:block; }
.playlist-artwork .pl-cover { margin:0; }
.artwork-overlay { position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#0009;color:#fff;font-size:13px;font-weight:700;opacity:0;transition:opacity 240ms ease; }
.playlist-artwork:is(:hover,:focus-visible) .artwork-overlay { opacity:1; }
.artwork-overlay svg { width:30px;height:30px; }
.profile-banner { position:absolute;inset:0;z-index:-1;pointer-events:none; }
.profile-banner img { width:100%;height:100%;object-fit:cover; }
.profile-listeners { margin-top:12px;font-size:15px;font-weight:750;color:var(--text); }
.speed-panel { position:fixed;z-index:35;background:#161616f5;border:1px solid #ffffff20;box-shadow:0 16px 50px #0008; }
.speed-panel .range { width:100%;margin:14px 0; }
.speed-label { display:flex;justify-content:space-between; }.speed-check { display:flex;gap:10px;align-items:center;margin:12px 0; }
#speedBtn { font-size:11px;font-weight:750;white-space:nowrap; }
.lyrics-timing { position:absolute;right:5vw;bottom:0;z-index:2;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:14px;background:#151515e6;border:1px solid #ffffff18;font-size:11px;color:var(--mute); }
.lyrics-timing button { padding:8px;border-radius:8px;color:var(--text);background:#ffffff09; }
.lyrics-timing output { min-width:48px;text-align:center;font-variant-numeric:tabular-nums; }
@media(max-width:700px) { .lyrics-timing { right:16px;left:16px;justify-content:center;gap:4px; }.lyrics-timing>span { display:none; } }
.profile-banner::after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0008,#0002),linear-gradient(0deg,#000b,transparent 85%); }
.prof-hero:has(.profile-banner) { min-height:300px; }
.prof-hero:has(.profile-banner) :is(.pl-sub,.bio) { color:#eee;text-shadow:0 2px 12px #000b; }
.banner-preview { height:150px;border:1px dashed #ffffff30;border-radius:14px;overflow:hidden;background:#ffffff05;display:grid;place-items:center;color:var(--mute); }
.banner-preview img { width:100%;height:100%;object-fit:cover; }
.banner-preview:has(img) { cursor:grab;touch-action:none; }
.banner-preview img { pointer-events:none;user-select:none; }
.banner-preview.dragging { cursor:grabbing; }
.banner-position-controls { display:grid;gap:10px; }
.banner-position-controls label { display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--mute);font-size:12px; }
.banner-position-controls input { width:55%;height:24px;accent-color:#eee; }
.banner-position-controls .btn { justify-self:start; }
.avatar-editor { display:flex;flex-direction:column;align-items:center;gap:12px;width:180px;flex:none; }
#avPreview { width:150px;height:150px;border-radius:50%;overflow:hidden;touch-action:none; }
#avPreview .avatar.xl { width:150px;height:150px;font-size:60px;pointer-events:none;user-select:none; }
#avPreview:has(img) { cursor:grab; }#avPreview.dragging { cursor:grabbing; }
.avatar-position-controls { display:grid;gap:8px;width:100%; }
.avatar-position-controls label { display:flex;flex-direction:column;gap:4px;color:var(--mute);font-size:12px; }
.avatar-position-controls input { width:100%;height:22px;accent-color:#eee; }
.avatar-position-controls .btn { justify-content:center; }
.artwork-tools { display:flex;flex-wrap:wrap;gap:10px;margin:12px 0; }
.artwork-tools .btn { justify-content:center; }
.artwork-note { color:var(--mute);font-size:12px;margin:4px 0 12px; }
.artwork-dialog form { width:400px;max-width:calc(100vw - 28px); }
.playlist-preview { width:220px;height:220px;align-self:center;overflow:hidden;border-radius:16px;background:#ffffff08; }
.playlist-preview img,.playlist-preview .ph { width:100%;height:100%;object-fit:cover; }
.prof-dlg { max-height:calc(100dvh - 32px);overflow-y:auto; }
@media(max-width:700px) { .prof-hero:has(.profile-banner) { min-height:260px; }.banner-preview { height:110px; } }

.chart-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.chart-ranking{max-height:340px;overflow:auto}.chart-person{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border-radius:12px;text-align:left}.chart-person:hover{background:#ffffff08}.chart-person b{flex:1}.chart-person>span:last-child,.chart-rank{color:var(--mute);font-size:12px}@media(max-width:700px){.chart-columns{grid-template-columns:1fr}}

.sc-artist-avatar{width:88px;height:88px;border-radius:50%;object-fit:cover;border:2px solid #ffffff55;margin:10px 0;box-shadow:0 8px 24px #0005}
.a-hero:not(.sc-profile) { height:clamp(260px,34vh,360px);aspect-ratio:auto;min-height:0;max-height:none; }
.a-hero:not(.sc-profile) .a-hero-bg img { object-fit:cover;object-position:center 35%;transform:none;animation:artistBannerIn 600ms ease; }
.a-hero:not(.sc-profile) .a-hero-body { padding:24px 28px;max-width:100%; }
.a-hero:not(.sc-profile) .a-name { font-size:clamp(40px,5.5vw,88px);line-height:1.04;margin:10px 0 14px; }
.a-hero:not(.sc-profile) .pl-sub { font-size:14px; }
.a-hero:not(.sc-profile) .a-hero-bg { background:#101010; }
@keyframes artistBannerIn { from { opacity:0; } to { opacity:1; } }
@media(max-width:700px) { .a-hero:not(.sc-profile) { height:240px;min-height:0;aspect-ratio:auto; }.a-hero:not(.sc-profile) .a-hero-body { padding:20px; }.a-hero:not(.sc-profile) .a-name { font-size:40px; } }

.sc-profile .a-hero-body{display:flex;align-items:center;gap:28px;width:100%;padding:30px;align-self:stretch}
.sc-profile-avatar{width:190px;height:190px;border-radius:50%;overflow:hidden;flex:none;box-shadow:0 8px 30px #0005}
.sc-profile-avatar img,.sc-profile-avatar .ph{width:100%;height:100%;object-fit:cover}
.sc-profile .artist-heading{min-width:0;display:flex;align-items:flex-start;flex-direction:column;gap:8px}
.sc-profile .a-name{font-size:clamp(24px,3.2vw,46px);line-height:1.15;background:#080808d9;padding:7px 12px;margin:0;word-break:break-word}
.sc-profile .pl-kind,.sc-profile .pl-sub{background:#080808d9;padding:5px 10px}
@media(max-width:700px){.sc-profile .a-hero-body{gap:16px;padding:20px}.sc-profile-avatar{width:100px;height:100px}.sc-profile .a-name{font-size:25px}}

#lyricsTiming{position:static;display:block;padding:0;margin:16px 0;background:none;border:0;font-size:12px}#lyricsTiming summary{cursor:pointer;color:var(--mute);padding:8px 0}.lyrics-timing-controls{display:flex;align-items:center;gap:8px;padding-top:8px}#lyricsTiming[hidden]{display:none!important}

.avatar-crop{overflow:hidden;display:inline-block;vertical-align:middle}.avatar-crop-image{display:block;width:100%;height:100%;object-fit:cover}#avPreview img{width:150px;height:150px;object-fit:cover;pointer-events:none}.banner-preview{position:relative}.banner-preview img{position:absolute;inset:0}

/* Track publication: artwork beside the metadata, matching the dark player. */
dialog.publish-dialog,dialog.publish-dialog *{box-sizing:border-box}
dialog.publish-dialog form{width:100%;max-width:none;min-width:0;padding:0}
.publish-layout>*,.publish-fields{min-width:0}
.publish-fields :is(input,select,textarea){min-width:0;min-height:44px;pointer-events:auto;user-select:text}
dialog.publish-dialog{width:min(1020px,calc(100vw - 32px));max-width:1020px;background:#111113;color:#f5f5f5;padding:32px;border:1px solid #ffffff18;border-radius:24px;max-height:90vh;overflow:auto}
.publish-layout{display:grid;grid-template-columns:minmax(220px,330px) minmax(0,1fr);gap:56px;margin-top:24px}.publish-cover{display:grid;place-items:center;position:relative;width:100%;aspect-ratio:1;border:1px dashed #ffffff30;border-radius:12px;overflow:hidden;cursor:pointer;background:#ffffff02;transition:background .2s,border-color .2s}.publish-cover:hover{background:#ffffff08;border-color:#ffffff80}.publish-cover>span{display:flex;align-items:center;flex-direction:column;gap:12px;font-size:54px;font-weight:300}.publish-cover small{font-size:14px;font-weight:600}.publish-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.publish-cover img:not([hidden])+span{opacity:0}.publish-cover:hover img:not([hidden])+span{opacity:1;z-index:1;background:#0009;border-radius:12px;padding:20px}.publish-fields .fld{display:flex;flex-direction:column;gap:9px;font-size:12px;font-weight:600;margin-bottom:24px}.publish-fields input,.publish-fields select,.publish-fields textarea{width:100%;box-sizing:border-box;border:0;border-bottom:1px solid #ffffff26;border-radius:0;padding:10px 0;background:transparent;color:inherit;font:inherit;font-size:14px;outline:none}.publish-fields :is(input,select,textarea):focus{border-bottom-color:#fff}.publish-fields select option{background:#202022}.publish-fields textarea{resize:vertical}.publish-visibility{padding:16px;background:#ffffff08;border-radius:12px;font-size:13px}.publish-visibility p{margin:6px 0 0;color:#aaa;font-size:12px}#publishError{color:#ccc;min-height:20px}#profileReleases{margin:28px 0}#publishAudio{max-width:100%;margin-top:12px;font-size:12px}
@media(max-width:700px){dialog.publish-dialog{padding:22px}.publish-layout{grid-template-columns:1fr;gap:24px}.publish-cover{max-width:280px;margin:auto}}

.taste-dialog{width:min(640px,calc(100vw - 28px));max-height:85vh;overflow:auto}.taste-dialog form{width:100%;box-sizing:border-box;padding:28px}.taste-options{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 24px}.taste-dialog .actions{flex-wrap:wrap}.taste-dialog h2{margin:4px 0;font-size:26px}.taste-dialog .fld{margin-bottom:18px}

.taste-artist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.taste-artist{display:flex;flex-direction:column;align-items:center;gap:10px;border:1px solid transparent;border-radius:16px;padding:12px 6px;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:13px;text-align:center}.taste-artist:hover{background:#ffffff09}.taste-artist.on{background:#ffffff12;border-color:#eee}.taste-portrait{display:grid;place-items:center;width:100px;max-width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#ffffff0a;color:#aaa;font-size:30px}.taste-portrait img{width:100%;height:100%;object-fit:cover}.taste-artist.on .taste-portrait{box-shadow:0 0 0 3px #111,0 0 0 5px #eee}@media(max-width:450px){.taste-artist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

[data-dislike-current] svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}[data-dislike-current].on{color:#fff;background:#ffffff14}[data-dislike-current].on svg{fill:#ffffff18}
