/* Paxor Music — Artist Studio v2
   Loaded after paxor_music.css so these rules intentionally override the legacy studio layout. */

body:has(.artist-studio-v2) {
    background: #070a0c;
}

body:has(.artist-studio-v2) .main-content {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

.artist-studio-v2 {
    --artist-accent: #20d9ff;
    --artist-page-width: 1480px;
    --artist-sidebar-width: 272px;
    min-height: calc(100dvh - var(--paxor-menu-height, 62px));
    padding: 0 0 88px;
    overflow: clip;
    background:
        radial-gradient(circle at 88% 2%, color-mix(in srgb, var(--artist-accent) 10%, transparent), transparent 28rem),
        linear-gradient(180deg, #070a0c 0%, #090d10 42%, #070a0c 100%);
    color: var(--music-text, #f7fbfc);
}

.artist-studio-v2 *,
.artist-studio-v2 *::before,
.artist-studio-v2 *::after {
    box-sizing: border-box;
}

.artist-studio-v2 section[id] {
    scroll-margin-top: calc(var(--paxor-menu-height, 62px) + 24px);
}

/* --------------------------------------------------------------------------
   Full-width artist header
   -------------------------------------------------------------------------- */

.artist-hero {
    position: relative;
    width: 100%;
    border-bottom: 1px solid rgba(255, 255, 255, .09);
    background: #0b1013;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .32);
}

.artist-hero-banner,
.artist-preview-banner.artist-hero-banner {
    position: relative;
    isolation: isolate;
    min-height: clamp(270px, 31vw, 430px);
    width: 100%;
    padding: 0;
    overflow: hidden;
    display: block;
    border: 0;
    background:
        linear-gradient(180deg, rgba(3, 8, 11, .18), rgba(3, 8, 11, .72)),
        radial-gradient(circle at 76% 42%, color-mix(in srgb, var(--artist-accent) 45%, transparent), transparent 28%),
        linear-gradient(120deg, #071318 0%, #102932 42%, #071014 100%);
    background-position: center;
    background-size: cover;
    color: #fff;
}

.artist-hero-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(3, 7, 9, .85) 0%, rgba(3, 7, 9, .24) 48%, rgba(3, 7, 9, .4) 100%),
        linear-gradient(180deg, rgba(0, 0, 0, .08) 0%, rgba(0, 0, 0, .04) 48%, rgba(0, 0, 0, .88) 100%);
    pointer-events: none;
}

.artist-hero-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: 0;
    background: rgba(0, 0, 0, .24);
    backdrop-filter: blur(1px);
    transition: opacity .2s ease;
    pointer-events: none;
}

.artist-hero-banner:hover::after,
.artist-hero-banner:focus-within::after {
    opacity: 1;
}

.artist-hero-topbar {
    position: relative;
    z-index: 3;
    width: min(var(--artist-page-width), calc(100% - 48px));
    margin: 0 auto;
    padding-top: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.artist-studio-v2 .artist-back-link {
    margin: 0;
    min-height: 42px;
    padding: 0 15px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    background: rgba(4, 9, 12, .55);
    color: rgba(255, 255, 255, .88);
    font-size: 12px;
    font-weight: 800;
    backdrop-filter: blur(16px);
    transition: border-color .18s ease, background .18s ease, color .18s ease;
}

.artist-studio-v2 .artist-back-link:hover {
    border-color: color-mix(in srgb, var(--artist-accent) 66%, transparent);
    background: rgba(4, 9, 12, .76);
    color: #fff;
}

.artist-studio-v2 .artist-studio-status {
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 999px;
    background: rgba(4, 9, 12, .55);
    color: rgba(255, 255, 255, .72);
    font-size: 11px;
    font-weight: 800;
    backdrop-filter: blur(16px);
}

.artist-studio-v2 .artist-studio-status > span:first-child {
    width: 8px;
    height: 8px;
    background: #31dd75;
    box-shadow: 0 0 14px rgba(49, 221, 117, .8);
}

.artist-hero-branding {
    position: absolute;
    z-index: 2;
    left: max(24px, calc((100% - var(--artist-page-width)) / 2));
    bottom: 48px;
    display: grid;
    gap: 8px;
    pointer-events: none;
}

.artist-hero-branding .music-kicker {
    color: color-mix(in srgb, var(--artist-accent) 88%, white);
    letter-spacing: .12em;
}

.artist-hero-title {
    font-size: clamp(34px, 5vw, 72px);
    font-weight: 900;
    letter-spacing: -.055em;
    line-height: .95;
    text-shadow: 0 10px 36px rgba(0, 0, 0, .5);
}

.artist-cover-change {
    position: absolute;
    z-index: 4;
    right: max(24px, calc((100% - var(--artist-page-width)) / 2));
    bottom: 34px;
    min-height: 48px;
    padding: 0 18px 0 10px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(4, 9, 12, .76);
    color: #fff;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
    opacity: 0;
    transform: translateY(8px);
    backdrop-filter: blur(18px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .3);
    transition: opacity .18s ease, transform .18s ease, border-color .18s ease;
}

.artist-hero-banner:hover .artist-cover-change,
.artist-cover-change:focus-within,
.artist-cover-change:focus-visible {
    opacity: 1;
    transform: translateY(0);
}

.artist-cover-change:hover {
    border-color: var(--artist-accent);
}

.artist-cover-change input,
.artist-avatar-editor input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.artist-image-change-icon {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--artist-accent) 18%, rgba(255, 255, 255, .08));
    color: var(--artist-accent);
}

.artist-hero-profile {
    position: relative;
    z-index: 5;
    width: min(var(--artist-page-width), calc(100% - 48px));
    min-height: 154px;
    margin: 0 auto;
    padding: 0 0 28px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: end;
    gap: 24px;
}

.artist-avatar-editor {
    position: relative;
    width: 150px;
    height: 150px;
    margin-top: -76px;
    display: block;
    flex: 0 0 150px;
    border-radius: 50%;
    cursor: pointer;
}

.artist-studio-v2 .artist-avatar {
    width: 150px;
    height: 150px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 6px solid #0b1013;
    border-radius: 50%;
    background-color: #182329;
    background-position: center;
    background-size: cover;
    color: var(--artist-accent);
    font-size: 40px;
    box-shadow:
        0 18px 46px rgba(0, 0, 0, .45),
        0 0 0 1px rgba(255, 255, 255, .09);
}

.artist-avatar-change {
    position: absolute;
    inset: 6px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 6px;
    border-radius: 50%;
    background: rgba(2, 7, 9, .7);
    color: #fff;
    font-size: 22px;
    opacity: 0;
    transform: scale(.96);
    backdrop-filter: blur(4px);
    transition: opacity .18s ease, transform .18s ease;
}

.artist-avatar-change small {
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.artist-avatar-editor:hover .artist-avatar-change,
.artist-avatar-editor:focus-within .artist-avatar-change {
    opacity: 1;
    transform: scale(1);
}

.artist-hero-copy {
    min-width: 0;
    padding-bottom: 8px;
}

.artist-studio-v2 .artist-verified {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--artist-accent);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
}

.artist-hero-copy h1 {
    margin: 6px 0 7px;
    overflow: hidden;
    color: #fff;
    font-size: clamp(28px, 3vw, 46px);
    font-weight: 900;
    letter-spacing: -.035em;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.artist-hero-copy p {
    max-width: 720px;
    margin: 0;
    color: #9caab0;
    font-size: 14px;
    line-height: 1.55;
}

.artist-public-page-link {
    margin-bottom: 10px;
    white-space: nowrap;
}

.artist-dashboard-strip {
    width: min(var(--artist-page-width), calc(100% - 48px));
    margin: 0 auto 28px;
    display: grid;
    grid-template-columns: repeat(3, minmax(118px, .34fr)) minmax(340px, 1fr);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 16px;
    background: rgba(255, 255, 255, .025);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
}

.artist-dashboard-stat {
    min-height: 96px;
    padding: 18px 22px;
    display: grid;
    align-content: center;
    gap: 4px;
    border-right: 1px solid rgba(255, 255, 255, .08);
}

.artist-dashboard-stat strong {
    color: #fff;
    font-size: 27px;
    font-weight: 900;
    line-height: 1;
}

.artist-dashboard-stat span {
    color: #829096;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .04em;
}

.artist-wallet-card {
    min-width: 0;
    min-height: 96px;
    padding: 16px 18px;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    background: linear-gradient(110deg, rgba(255, 255, 255, .02), color-mix(in srgb, var(--artist-accent) 5%, transparent));
}

.artist-wallet-card.connected {
    background: linear-gradient(110deg, rgba(49, 221, 117, .06), color-mix(in srgb, var(--artist-accent) 7%, transparent));
}

.artist-wallet-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 13px;
    background: rgba(255, 255, 255, .045);
    color: #87969c;
}

.artist-wallet-card.connected .artist-wallet-icon {
    border-color: rgba(49, 221, 117, .28);
    background: rgba(49, 221, 117, .09);
    color: #31dd75;
}

.artist-wallet-copy {
    min-width: 0;
    display: grid;
    gap: 5px;
}

.artist-wallet-copy strong,
.artist-wallet-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.artist-wallet-copy strong {
    color: #fff;
    font-size: 13px;
    font-weight: 850;
}

.artist-wallet-copy small {
    color: #7f8c92;
    font-size: 10px;
    font-weight: 700;
}

.artist-wallet-action {
    min-height: 38px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 10px;
    background: rgba(255, 255, 255, .04);
    color: #fff;
    font: inherit;
    font-size: 10px;
    font-weight: 850;
    cursor: pointer;
}

.artist-wallet-action:hover {
    border-color: var(--artist-accent);
    color: var(--artist-accent);
}

/* --------------------------------------------------------------------------
   Sidebar + content
   -------------------------------------------------------------------------- */

.artist-workspace {
    position: relative;
    z-index: 1;
    width: min(var(--artist-page-width), calc(100% - 48px));
    min-height: 620px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: var(--artist-sidebar-width) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.artist-studio-sidebar {
    /* The studio uses tabs, so the menu must stay in the normal document flow.
       Sticky positioning made it climb over the artist header and KPI strip. */
    position: relative;
    top: auto;
    align-self: start;
    min-width: 0;
    max-height: none;
    overflow: visible;
    border: 1px solid rgba(32, 217, 255, .22);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(32, 217, 255, .055), transparent 150px),
        #0c1114;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255, 255, 255, .05);
    scrollbar-width: thin;
}

.artist-sidebar-heading {
    min-height: 76px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.artist-sidebar-heading > span:last-child {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.artist-sidebar-heading strong {
    color: #fff;
    font-size: 15px;
    font-weight: 900;
}

.artist-sidebar-heading small {
    color: #74838a;
    font-size: 10px;
    font-weight: 700;
}

.artist-sidebar-mark {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(32, 217, 255, .34);
    border-radius: 12px;
    background: rgba(32, 217, 255, .10);
    color: var(--artist-accent);
    box-shadow: 0 0 24px rgba(32, 217, 255, .08);
}

.artist-studio-nav {
    padding: 10px;
    display: grid;
    gap: 3px;
}

.artist-nav-group {
    padding: 12px 0;
    display: grid;
    gap: 6px;
    border-bottom: 1px solid rgba(255, 255, 255, .065);
}

.artist-nav-group:last-child {
    border-bottom: 0;
}

.artist-nav-label {
    padding: 0 10px 5px;
    color: #79dff0;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .105em;
}

.artist-nav-link {
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: 58px;
    padding: 10px 11px 10px 14px;
    display: grid;
    grid-template-columns: 25px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: 12px;
    background: rgba(255, 255, 255, .018);
    color: #dbe5e8;
    text-align: left;
    font: inherit;
    cursor: pointer;
    transition: color .16s ease, background .16s ease, border-color .16s ease, transform .16s ease;
}

.artist-nav-link::before {
    content: "";
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 0;
    width: 3px;
    border-radius: 0 999px 999px 0;
    background: var(--artist-accent);
    opacity: 0;
    box-shadow: 0 0 14px var(--artist-accent);
}

.artist-nav-link > i {
    width: 25px;
    color: #809097;
    text-align: center;
    font-size: 15px;
}

.artist-nav-link > span {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.artist-nav-link strong {
    overflow: hidden;
    color: inherit;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.28;
    text-overflow: ellipsis;
}

.artist-nav-link small {
    overflow: hidden;
    color: #68777e;
    font-size: 9px;
    font-weight: 650;
    line-height: 1.4;
}

.artist-nav-link:hover {
    border-color: rgba(255, 255, 255, .08);
    background: rgba(255, 255, 255, .055);
    color: #fff;
    transform: translateX(2px);
}

.artist-nav-link.active {
    border-color: rgba(32, 217, 255, .28);
    background: linear-gradient(90deg, rgba(32, 217, 255, .14), rgba(32, 217, 255, .035));
    color: #fff;
}

.artist-nav-link.active::before {
    opacity: 1;
}

.artist-nav-link.active > i {
    color: var(--artist-accent);
}

.artist-nav-link.active small {
    color: #9eb0b6;
}

.artist-sidebar-flow {
    margin: 0 10px 12px;
    padding: 12px;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 9px;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 12px;
    background: rgba(255, 255, 255, .025);
    color: #718087;
}

.artist-sidebar-flow > i {
    color: var(--artist-accent);
    text-align: center;
}

.artist-sidebar-flow > span {
    display: grid;
    gap: 4px;
}

.artist-sidebar-flow strong {
    color: #cbd7da;
    font-size: 10px;
}

.artist-sidebar-flow small {
    font-size: 9px;
    line-height: 1.45;
}

.artist-studio-content {
    min-width: 0;
    min-height: 620px;
}

.artist-studio-v2 .artist-content-card,
.artist-studio-v2 .artist-editor,
.artist-studio-v2 .artist-track-upload,
.artist-studio-v2 .artist-nft-studio,
.artist-studio-v2 .artist-releases {
    max-width: none;
    margin: 0;
    padding: clamp(20px, 2.6vw, 32px);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .085);
    border-radius: 16px;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .025), transparent 48%),
        #0d1215;
    box-shadow: 0 20px 56px rgba(0, 0, 0, .18);
}

.artist-studio-v2 .artist-content-card[hidden] {
    display: none !important;
}

.artist-studio-v2 .artist-content-card.is-active {
    display: block;
    animation: artist-panel-in .2s ease both;
}

#artist-nft-studio[data-active-mode="collection"] .artist-metadata-intro {
    display: none;
}

#artist-nft-studio[data-active-mode="metadata"] > .nft-studio-title-header,
#artist-nft-studio[data-active-mode="metadata"] > .artist-nft-link-panel {
    display: none;
}

@keyframes artist-panel-in {
    from { opacity: 0; transform: translateY(7px); }
    to { opacity: 1; transform: translateY(0); }
}

.artist-studio-v2 .artist-panel-heading {
    margin-bottom: 24px;
}

.artist-studio-v2 .artist-panel-heading h2,
.artist-studio-v2 .music-section-heading h2,
.artist-studio-v2 .nft-studio-title-header h2 {
    margin: 5px 0 0;
    color: #fff;
    font-size: clamp(23px, 2.2vw, 32px);
    letter-spacing: -.025em;
}

.artist-studio-v2 .artist-panel-heading p,
.artist-studio-v2 .nft-studio-title-header p {
    margin: 8px 0 0;
    color: #7f8d93;
    font-size: 12px;
    line-height: 1.55;
}

.artist-profile-image-note {
    min-height: 54px;
    padding: 10px 12px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 10px;
    background: rgba(255, 255, 255, .025);
    color: #849198;
    font-size: 11px;
}

.artist-profile-image-note > i {
    color: var(--artist-accent);
    text-align: center;
}

.artist-profile-image-note a {
    color: var(--artist-accent);
    font-weight: 800;
    text-decoration: none;
}

.artist-field-row-equal {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.artist-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.artist-form-footer .artist-form-status {
    flex: 1;
}

.artist-studio-v2 .artist-field input,
.artist-studio-v2 .artist-field textarea,
.artist-studio-v2 .artist-field select {
    border-color: rgba(255, 255, 255, .095);
    border-radius: 9px;
    background: #090d10;
}

.artist-studio-v2 .artist-field input:focus,
.artist-studio-v2 .artist-field textarea:focus,
.artist-studio-v2 .artist-field select:focus {
    border-color: var(--artist-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--artist-accent) 12%, transparent);
}

.artist-studio-v2 .artist-save-btn {
    min-height: 42px;
    padding: 0 18px;
    border-radius: 10px;
    background: var(--artist-accent);
    border-color: var(--artist-accent);
    color: #041014;
    font-weight: 900;
}

.artist-studio-v2 .artist-track-file {
    border-radius: 12px;
    background: rgba(255, 255, 255, .025);
}

.artist-studio-v2 .artist-track-file:hover {
    background: color-mix(in srgb, var(--artist-accent) 8%, transparent);
}

.artist-studio-v2 .artist-track-upload-chip {
    border-radius: 999px;
}

.artist-studio-v2 .artist-nft-link-panel {
    border-radius: 12px;
}

.artist-metadata-intro {
    margin: 22px 0 16px;
    padding: 18px;
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    align-items: center;
    gap: 15px;
    border: 1px solid color-mix(in srgb, var(--artist-accent) 24%, transparent);
    border-radius: 13px;
    background: color-mix(in srgb, var(--artist-accent) 7%, transparent);
}

.artist-metadata-icon {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: color-mix(in srgb, var(--artist-accent) 13%, transparent);
    color: var(--artist-accent);
}

.artist-metadata-intro h3 {
    margin: 5px 0 4px;
    color: #fff;
    font-size: 18px;
}

.artist-metadata-intro p {
    margin: 0;
    color: #7f8d93;
    font-size: 11px;
    line-height: 1.5;
}

.artist-studio-v2 .artist-release-list {
    margin-top: 18px;
}

.artist-studio-v2 .artist-release-row {
    padding: 16px 4px;
    gap: 12px;
}

/* --------------------------------------------------------------------------
   Responsive layout
   -------------------------------------------------------------------------- */

@media (max-width: 1180px) {
    .artist-dashboard-strip {
        grid-template-columns: repeat(3, 1fr);
    }

    .artist-wallet-card {
        grid-column: 1 / -1;
        border-top: 1px solid rgba(255, 255, 255, .08);
    }

    .artist-workspace {
        grid-template-columns: 228px minmax(0, 1fr);
        gap: 20px;
    }

    .artist-track-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .artist-track-description {
        grid-column: span 2;
    }
}

@media (max-width: 900px) {
    .artist-hero-profile {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .artist-public-page-link {
        display: none;
    }

    .artist-workspace {
        width: min(100% - 28px, var(--artist-page-width));
        grid-template-columns: 1fr;
    }

    .artist-studio-sidebar {
        position: relative;
        top: auto;
        z-index: auto;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        border-radius: 12px;
    }

    .artist-studio-nav {
        width: max-content;
        min-width: 100%;
        padding: 8px;
        display: flex;
        gap: 7px;
    }

    .artist-nav-group {
        padding: 0;
        display: flex;
        border: 0;
    }

    .artist-nav-label,
    .artist-nav-link small,
    .artist-sidebar-flow,
    .artist-sidebar-heading small {
        display: none;
    }

    .artist-nav-link {
        min-height: 42px;
        grid-template-columns: 18px auto;
        white-space: nowrap;
    }

    .artist-nav-link strong {
        font-size: 12px;
    }
}

@media (max-width: 680px) {
    .artist-studio-v2 {
        padding-bottom: 56px;
    }

    .artist-hero-banner,
    .artist-preview-banner.artist-hero-banner {
        min-height: 250px;
    }

    .artist-hero-topbar,
    .artist-hero-profile,
    .artist-dashboard-strip {
        width: calc(100% - 28px);
    }

    .artist-hero-topbar {
        padding-top: 14px;
    }

    .artist-studio-v2 .artist-studio-status {
        display: none;
    }

    .artist-hero-branding {
        left: 18px;
        bottom: 34px;
    }

    .artist-cover-change {
        right: 14px;
        bottom: 18px;
        width: 46px;
        height: 46px;
        padding: 0;
        justify-content: center;
        opacity: 1;
        transform: none;
    }

    .artist-cover-change > span:last-child {
        display: none;
    }

    .artist-hero-profile {
        min-height: 132px;
        padding-bottom: 20px;
        gap: 15px;
    }

    .artist-avatar-editor,
    .artist-studio-v2 .artist-avatar {
        width: 104px;
        height: 104px;
    }

    .artist-avatar-editor {
        margin-top: -46px;
    }

    .artist-studio-v2 .artist-avatar {
        border-width: 5px;
        font-size: 28px;
    }

    .artist-avatar-change {
        inset: 5px;
    }

    .artist-hero-copy h1 {
        font-size: 26px;
    }

    .artist-hero-copy p {
        display: -webkit-box;
        overflow: hidden;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        font-size: 11px;
    }

    .artist-dashboard-strip {
        grid-template-columns: repeat(3, 1fr);
        border-radius: 12px;
    }

    .artist-dashboard-stat {
        min-height: 78px;
        padding: 13px 11px;
    }

    .artist-dashboard-stat strong {
        font-size: 21px;
    }

    .artist-wallet-card {
        min-height: 82px;
        grid-template-columns: 40px minmax(0, 1fr) auto;
        padding: 12px;
    }

    .artist-wallet-icon {
        width: 40px;
        height: 40px;
    }

    .artist-wallet-action span {
        display: none;
    }

    .artist-wallet-action {
        width: 36px;
        padding: 0;
        justify-content: center;
    }

    .artist-studio-v2 .artist-content-card,
    .artist-studio-v2 .artist-editor,
    .artist-studio-v2 .artist-track-upload,
    .artist-studio-v2 .artist-nft-studio,
    .artist-studio-v2 .artist-releases {
        padding: 18px;
        border-radius: 13px;
    }

    .artist-field-row,
    .artist-field-row-equal,
    .artist-track-upload-form,
    .artist-track-fields,
    .artist-nft-link-panel {
        grid-template-columns: 1fr;
    }

    .artist-track-description {
        grid-column: auto;
    }

    .artist-form-footer,
    .artist-track-upload-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .artist-save-btn {
        width: 100%;
        justify-content: center;
    }

    .artist-profile-image-note {
        grid-template-columns: 28px minmax(0, 1fr);
    }

    .artist-profile-image-note a {
        grid-column: 2;
    }
}

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


/* ========================================================================== 
   Artist Studio v3 — Spotify-style fixed left navigation
   The cover belongs only to the right work area, so it can never overlap menu.
   ========================================================================== */

body:has(.artist-studio-v3) .main-content {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

.artist-studio-v3 {
    --artist-page-width: none;
    --artist-sidebar-width: 284px;
    padding: 0 0 calc(var(--paxor-player-height, 88px) + 28px);
    overflow: visible;
}

.artist-studio-v3 .artist-workspace {
    position: relative;
    z-index: 1;
    width: calc(100% - 32px);
    max-width: none;
    min-height: calc(100dvh - var(--paxor-menu-height, 62px) - 32px);
    margin: 16px auto 0;
    display: grid;
    grid-template-columns: var(--artist-sidebar-width) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.artist-studio-v3 .artist-studio-main {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: 0;
}

/* Left menu */
.artist-studio-v3 .artist-studio-sidebar {
    position: sticky;
    top: calc(var(--paxor-menu-height, 62px) + 16px);
    min-width: 0;
    max-height: calc(100dvh - var(--paxor-menu-height, 62px) - var(--paxor-player-height, 88px) - 32px);
    overflow: hidden auto;
    padding: 12px;
    border: 1px solid rgba(255,255,255,.075);
    border-radius: 18px;
    background: #0b0f12;
    box-shadow: 0 20px 52px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.035);
    scrollbar-width: thin;
}

.artist-sidebar-home {
    min-height: 52px;
    padding: 0 11px;
    display: flex;
    align-items: center;
    gap: 11px;
    border-bottom: 1px solid rgba(255,255,255,.07);
    color: #fff;
    text-decoration: none;
    font-size: 17px;
    font-weight: 650;
}

.artist-sidebar-home > i {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--artist-accent);
    color: #021014;
    font-size: 15px;
}

.artist-sidebar-home strong { font-weight: 900; }

.artist-sidebar-profile {
    margin: 12px 0 4px;
    padding: 12px 10px;
    display: grid;
    grid-template-columns: 46px minmax(0,1fr);
    align-items: center;
    gap: 11px;
    border-radius: 13px;
    background: rgba(255,255,255,.035);
}

.artist-sidebar-avatar {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: #182329 center/cover no-repeat;
    color: var(--artist-accent);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.1);
}

.artist-sidebar-avatar.has-artwork > i { display: none; }

.artist-sidebar-profile-copy {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.artist-sidebar-profile-copy strong {
    overflow: hidden;
    color: #fff;
    font-size: 13px;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.artist-sidebar-profile-copy small {
    color: #77868d;
    font-size: 10px;
    font-weight: 700;
}

.artist-studio-v3 .artist-studio-nav {
    padding: 5px 0 8px;
    display: grid;
    gap: 0;
}

.artist-studio-v3 .artist-nav-group {
    padding: 13px 0 8px;
    gap: 5px;
    border-bottom: 0;
}

.artist-studio-v3 .artist-nav-label {
    padding: 0 11px 5px;
    color: #718087;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .12em;
}

.artist-studio-v3 .artist-nav-link {
    min-height: 50px;
    padding: 8px 10px;
    grid-template-columns: 28px minmax(0,1fr);
    gap: 9px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #cbd5d9;
    transform: none;
}

.artist-studio-v3 .artist-nav-link::before { display: none; }

.artist-studio-v3 .artist-nav-link > i {
    width: 28px;
    color: #85939a;
    font-size: 16px;
}

.artist-studio-v3 .artist-nav-link strong {
    font-size: 12px;
    line-height: 1.2;
}

.artist-studio-v3 .artist-nav-link small {
    margin-top: 1px;
    color: #64737a;
    font-size: 9px;
    line-height: 1.3;
}

.artist-studio-v3 .artist-nav-link:hover {
    background: rgba(255,255,255,.055);
    color: #fff;
    transform: none;
}

.artist-studio-v3 .artist-nav-link.active {
    border: 0;
    background: #f2f5f6;
    color: #081013;
}

.artist-studio-v3 .artist-nav-link.active > i { color: #081013; }
.artist-studio-v3 .artist-nav-link.active small { color: #526066; }

.artist-sidebar-actions {
    margin-top: 8px;
    padding-top: 12px;
    display: grid;
    gap: 5px;
    border-top: 1px solid rgba(255,255,255,.07);
}

.artist-sidebar-utility {
    width: 100%;
    min-height: 48px;
    padding: 8px 10px;
    display: grid;
    grid-template-columns: 28px minmax(0,1fr);
    align-items: center;
    gap: 9px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #b9c5c9;
    text-align: left;
    text-decoration: none;
    font: inherit;
    cursor: pointer;
}

.artist-sidebar-utility:hover { background: rgba(255,255,255,.05); color: #fff; }
.artist-sidebar-utility > i { width: 28px; color: #7f8e95; text-align:center; }
.artist-sidebar-utility > span { min-width:0; display:grid; gap:2px; }
.artist-sidebar-utility strong { font-size:11px; font-weight:800; }
.artist-sidebar-utility small { color:#65747b; font-size:9px; }

/* Compact hero in the right column */
.artist-studio-v3 .artist-hero {
    width: 100%;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    background: #0b1013;
    box-shadow: 0 18px 48px rgba(0,0,0,.26);
}

.artist-studio-v3 .artist-hero-banner,
.artist-studio-v3 .artist-preview-banner.artist-hero-banner {
    min-height: 252px;
    height: 252px;
    border-radius: inherit;
}

.artist-studio-v3 .artist-hero-banner::before {
    background:
        linear-gradient(90deg, rgba(3,7,9,.74) 0%, rgba(3,7,9,.12) 54%, rgba(3,7,9,.34) 100%),
        linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.18) 48%, rgba(0,0,0,.9) 100%);
}

.artist-studio-v3 .artist-hero-topbar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: auto;
    margin: 0;
    padding: 16px 18px;
}

.artist-studio-label {
    min-height: 36px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    background: rgba(3,8,10,.52);
    color: #fff;
    font-size: 11px;
    font-weight: 850;
    backdrop-filter: blur(14px);
}

.artist-studio-v3 .artist-cover-change {
    right: 18px;
    bottom: 18px;
    min-height: 42px;
    padding-right: 14px;
}

.artist-studio-v3 .artist-image-change-icon {
    width: 28px;
    height: 28px;
}

.artist-studio-v3 .artist-hero-profile {
    position: absolute;
    z-index: 3;
    left: 24px;
    right: 170px;
    bottom: 18px;
    width: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    grid-template-columns: 98px minmax(0,1fr) auto;
    align-items: end;
    gap: 17px;
    pointer-events: none;
}

.artist-studio-v3 .artist-avatar-editor,
.artist-studio-v3 .artist-avatar {
    width: 98px;
    height: 98px;
}

.artist-studio-v3 .artist-avatar-editor {
    margin: 0;
    pointer-events: auto;
}

.artist-studio-v3 .artist-avatar {
    border-width: 4px;
    border-color: rgba(8,13,15,.94);
    font-size: 28px;
}

.artist-studio-v3 .artist-avatar-change { inset: 4px; }

.artist-studio-v3 .artist-hero-copy {
    padding: 0 0 3px;
    pointer-events: auto;
}

.artist-studio-v3 .artist-hero-copy h1 {
    margin: 4px 0 5px;
    font-size: clamp(30px, 4vw, 54px);
}

.artist-studio-v3 .artist-hero-copy p {
    max-width: 620px;
    overflow: hidden;
    color: rgba(255,255,255,.72);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.artist-studio-v3 .artist-public-page-link {
    margin: 0 0 3px;
    pointer-events: auto;
}

/* KPI row and panels */
.artist-studio-v3 .artist-dashboard-strip {
    width: 100%;
    margin: 14px 0 18px;
    grid-template-columns: repeat(3, minmax(104px, .27fr)) minmax(320px, 1fr);
    border-radius: 15px;
}

.artist-studio-v3 .artist-dashboard-stat,
.artist-studio-v3 .artist-wallet-card {
    min-height: 82px;
}

.artist-studio-v3 .artist-dashboard-stat { padding: 14px 18px; }
.artist-studio-v3 .artist-dashboard-stat strong { font-size: 25px; }

.artist-studio-v3 .artist-studio-content {
    min-width: 0;
    min-height: 540px;
}

.artist-studio-v3 .artist-content-card,
.artist-studio-v3 .artist-editor,
.artist-studio-v3 .artist-track-upload,
.artist-studio-v3 .artist-nft-studio,
.artist-studio-v3 .artist-releases {
    min-height: 540px;
    border-radius: 16px;
}

/* Make the existing component fit the right work area */
.artist-studio-v3 [data-nft-studio] { max-width: 100%; }

@media (max-width: 1180px) {
    .artist-studio-v3 { --artist-sidebar-width: 238px; }
    .artist-studio-v3 .artist-workspace { gap: 14px; }
    .artist-studio-v3 .artist-nav-link small,
    .artist-sidebar-utility small { display:none; }
    .artist-studio-v3 .artist-hero-profile { right: 120px; }
    .artist-studio-v3 .artist-public-page-link span { display:none; }
    .artist-studio-v3 .artist-public-page-link { width:42px; padding:0; justify-content:center; }
}

@media (max-width: 900px) {
    .artist-studio-v3 .artist-workspace {
        width: calc(100% - 24px);
        margin-top: 12px;
        grid-template-columns: 1fr;
    }

    .artist-studio-v3 .artist-studio-sidebar {
        position: sticky;
        top: calc(var(--paxor-menu-height, 62px) + 8px);
        z-index: 30;
        max-height: none;
        overflow: hidden;
        padding: 8px;
    }

    .artist-sidebar-home,
    .artist-sidebar-profile,
    .artist-sidebar-actions,
    .artist-studio-v3 .artist-nav-label,
    .artist-studio-v3 .artist-nav-link small { display:none; }

    .artist-studio-v3 .artist-studio-nav {
        padding: 0;
        display:flex;
        gap:6px;
        overflow-x:auto;
        scrollbar-width:none;
    }

    .artist-studio-v3 .artist-studio-nav::-webkit-scrollbar { display:none; }
    .artist-studio-v3 .artist-nav-group { padding:0; display:flex; }
    .artist-studio-v3 .artist-nav-link {
        width:auto;
        min-height:42px;
        padding:7px 12px;
        grid-template-columns:18px auto;
        white-space:nowrap;
    }
}

@media (max-width: 680px) {
    .artist-studio-v3 .artist-hero-banner,
    .artist-studio-v3 .artist-preview-banner.artist-hero-banner {
        min-height: 230px;
        height: 230px;
    }

    .artist-studio-v3 .artist-hero-profile {
        left: 15px;
        right: 64px;
        bottom: 15px;
        grid-template-columns: 78px minmax(0,1fr);
        gap:12px;
    }

    .artist-studio-v3 .artist-avatar-editor,
    .artist-studio-v3 .artist-avatar { width:78px; height:78px; }
    .artist-studio-v3 .artist-hero-copy h1 { font-size:28px; }
    .artist-studio-v3 .artist-verified,
    .artist-studio-v3 .artist-hero-copy p,
    .artist-studio-v3 .artist-public-page-link { display:none; }
    .artist-studio-v3 .artist-cover-change { opacity:1; transform:none; }

    .artist-studio-v3 .artist-dashboard-strip {
        grid-template-columns: repeat(3, 1fr);
    }

    .artist-studio-v3 .artist-wallet-card { grid-column:1 / -1; }
    .artist-studio-v3 .artist-content-card,
    .artist-studio-v3 .artist-editor,
    .artist-studio-v3 .artist-track-upload,
    .artist-studio-v3 .artist-nft-studio,
    .artist-studio-v3 .artist-releases { min-height: 0; }
}


/* ===== Artist Studio v6: reliable sidebar tabs ===== */
.artist-studio-v6 {
    --artist-sidebar-width: 286px;
    padding: 0 0 calc(var(--paxor-player-height, 88px) + 30px);
    overflow: visible;
}

.artist-studio-v6 .artist-workspace {
    width: calc(100% - 32px);
    max-width: 1760px;
    min-height: calc(100dvh - var(--paxor-menu-height, 62px) - 32px);
    margin: 16px auto 0;
    display: grid;
    grid-template-columns: var(--artist-sidebar-width) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

/* The sidebar is an independent column. Nothing inside it is absolute. */
.artist-studio-v6 .artist-studio-sidebar {
    position: sticky !important;
    top: calc(var(--paxor-menu-height, 62px) + 16px) !important;
    z-index: 20;
    align-self: start;
    min-width: 0;
    max-height: calc(100dvh - var(--paxor-menu-height, 62px) - var(--paxor-player-height, 88px) - 32px);
    padding: 14px;
    display: flex !important;
    flex-direction: column;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    background: #0b0f12;
    box-shadow: 0 20px 52px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.035);
    isolation: isolate;
}

.artist-studio-v6 .artist-studio-sidebar > *,
.artist-studio-v6 .artist-studio-nav,
.artist-studio-v6 .artist-nav-group,
.artist-studio-v6 .artist-nav-link,
.artist-studio-v6 .artist-sidebar-actions {
    position: static !important;
    inset: auto !important;
    float: none !important;
    transform: none !important;
}

.artist-studio-v6 .artist-sidebar-home,
.artist-studio-v6 .artist-sidebar-profile {
    flex: 0 0 auto;
}

.artist-studio-v6 .artist-sidebar-workspace-label {
    margin: 28px 10px 10px;
    color: #7b8a91;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .14em;
}

/* Tabs deliberately start lower, under the artist card. */
.artist-studio-v6 .artist-studio-nav {
    z-index: 2;
    width: 100%;
    margin: 0;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column;
    gap: 24px !important;
    overflow: visible !important;
    pointer-events: auto !important;
}

.artist-studio-v6 .artist-nav-group {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr);
    gap: 7px !important;
    border: 0 !important;
}

.artist-studio-v6 .artist-nav-label {
    display: block !important;
    margin: 0;
    padding: 0 10px 3px !important;
    color: #78878e;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.35;
    letter-spacing: .115em;
    white-space: normal;
}

.artist-studio-v6 .artist-nav-link {
    z-index: 3;
    width: 100% !important;
    min-height: 62px !important;
    margin: 0 !important;
    padding: 10px 11px !important;
    display: grid !important;
    grid-template-columns: 30px minmax(0,1fr) !important;
    align-items: center;
    gap: 10px !important;
    overflow: visible !important;
    border: 1px solid transparent !important;
    border-radius: 11px !important;
    background: transparent !important;
    color: #d5dfe2 !important;
    text-align: left;
    font: inherit;
    cursor: pointer;
    pointer-events: auto !important;
}

.artist-studio-v6 .artist-nav-link > i {
    width: 30px;
    color: #84939a;
    text-align: center;
    font-size: 17px;
}

.artist-studio-v6 .artist-nav-link > span {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.artist-studio-v6 .artist-nav-link strong {
    color: inherit;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.25;
}

.artist-studio-v6 .artist-nav-link small {
    display: block !important;
    color: #68777e !important;
    font-size: 9px;
    line-height: 1.35;
    white-space: normal;
}

.artist-studio-v6 .artist-nav-link:hover {
    background: rgba(255,255,255,.055) !important;
    color: #fff !important;
}

.artist-studio-v6 .artist-nav-link.active {
    border-color: rgba(32,217,255,.28) !important;
    background: rgba(32,217,255,.12) !important;
    color: #eafbff !important;
    box-shadow: inset 3px 0 0 var(--artist-accent);
}

.artist-studio-v6 .artist-nav-link.active > i { color: var(--artist-accent) !important; }
.artist-studio-v6 .artist-nav-link.active small { color: #91a5ac !important; }

.artist-studio-v6 .artist-sidebar-actions {
    width: 100%;
    margin: 30px 0 0 !important;
    padding: 16px 0 0 !important;
    display: grid !important;
    gap: 7px !important;
    border-top: 1px solid rgba(255,255,255,.07) !important;
}

.artist-studio-v6 .artist-studio-main {
    min-width: 0;
    display: grid;
    align-content: start;
}

/* Smaller header, limited to the right work area. */
.artist-studio-v6 .artist-hero {
    width: 100%;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    background: #0b1013;
}

.artist-studio-v6 .artist-hero-banner,
.artist-studio-v6 .artist-preview-banner.artist-hero-banner {
    min-height: 218px !important;
    height: 218px !important;
    border-radius: inherit;
}

.artist-studio-v6 .artist-hero-profile {
    left: 22px !important;
    right: 168px !important;
    bottom: 16px !important;
    grid-template-columns: 88px minmax(0,1fr) auto !important;
    gap: 15px !important;
}

.artist-studio-v6 .artist-avatar-editor,
.artist-studio-v6 .artist-avatar {
    width: 88px !important;
    height: 88px !important;
}

.artist-studio-v6 .artist-hero-copy h1 {
    font-size: clamp(30px, 3.6vw, 48px) !important;
}

.artist-studio-v6 .artist-dashboard-strip {
    width: 100%;
    margin: 14px 0 18px;
    grid-template-columns: repeat(3, minmax(100px,.24fr)) minmax(300px,1fr);
}

.artist-studio-v6 .artist-studio-content {
    min-width: 0;
    min-height: 540px;
}

/* Only the selected panel exists visually. This overrides every old rule. */
.artist-studio-v6 [data-artist-panel-id] {
    width: 100%;
}

.artist-studio-v6 [data-artist-panel-id][hidden],
.artist-studio-v6 [data-artist-panel-id][aria-hidden="true"] {
    display: none !important;
}

.artist-studio-v6 [data-artist-panel-id].is-active,
.artist-studio-v6 [data-artist-panel-id][aria-hidden="false"] {
    display: block;
}

@media (max-width: 1050px) {
    .artist-studio-v6 { --artist-sidebar-width: 250px; }
    .artist-studio-v6 .artist-workspace { gap: 14px; }
    .artist-studio-v6 .artist-nav-link small { display: none !important; }
    .artist-studio-v6 .artist-nav-link { min-height: 52px !important; }
}

@media (max-width: 820px) {
    .artist-studio-v6 .artist-workspace {
        width: calc(100% - 20px);
        grid-template-columns: 1fr;
    }

    .artist-studio-v6 .artist-studio-sidebar {
        position: relative !important;
        top: auto !important;
        max-height: none;
    }

    .artist-studio-v6 .artist-sidebar-workspace-label { margin-top: 18px; }
    .artist-studio-v6 .artist-studio-nav { gap: 14px !important; }
}

@media (max-width: 620px) {
    .artist-studio-v6 .artist-sidebar-home,
    .artist-studio-v6 .artist-sidebar-profile,
    .artist-studio-v6 .artist-sidebar-actions,
    .artist-studio-v6 .artist-sidebar-workspace-label,
    .artist-studio-v6 .artist-nav-label { display: none !important; }

    .artist-studio-v6 .artist-studio-nav {
        display: flex !important;
        flex-direction: row;
        gap: 7px !important;
        overflow-x: auto !important;
    }

    .artist-studio-v6 .artist-nav-group { display: contents !important; }
    .artist-studio-v6 .artist-nav-link {
        width: auto !important;
        min-width: max-content;
        min-height: 44px !important;
        grid-template-columns: 18px auto !important;
        padding: 8px 12px !important;
    }

    .artist-studio-v6 .artist-dashboard-strip { grid-template-columns: repeat(3,1fr); }
    .artist-studio-v6 .artist-wallet-card { grid-column: 1 / -1; }
}


/* ===== Artist Studio v7: fixed sidebar header + scrollable menu ===== */
body:has(.artist-studio-v7) {
    overflow: hidden;
}

.artist-studio-v7 {
    --artist-sidebar-width: 304px;
    width: 100%;
    height: calc(100dvh - var(--paxor-menu-height, 62px) - var(--paxor-player-height, 88px));
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: var(--music-bg);
}

.artist-studio-v7 .artist-workspace {
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 0;
    margin: 0;
    display: grid;
    grid-template-columns: var(--artist-sidebar-width) minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
}

/* Full-height left column, ending exactly above the player. */
.artist-studio-v7 .artist-studio-sidebar {
    position: relative !important;
    inset: auto !important;
    z-index: 24;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: none;
    padding: 0;
    display: flex !important;
    flex-direction: column;
    overflow: hidden !important;
    border: 0;
    border-right: 1px solid rgba(255,255,255,.09);
    border-radius: 0;
    background: #0a0e11;
    box-shadow: 12px 0 34px rgba(0,0,0,.18);
}

/* Paxor for Artists + VSM / Artist Studio never move. */
.artist-studio-v7 .artist-sidebar-fixed {
    position: relative !important;
    z-index: 3;
    flex: 0 0 auto;
    padding: 15px 14px 14px;
    border-bottom: 1px solid rgba(255,255,255,.085);
    background:
        linear-gradient(180deg, rgba(3,125,156,.11), transparent 72%),
        #0b1013;
    box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

.artist-studio-v7 .artist-sidebar-home {
    min-height: 58px;
    margin: 0;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid rgba(3,125,156,.32);
    border-radius: 13px;
    background:
        linear-gradient(90deg, rgba(3,125,156,.18), rgba(3,125,156,.04)),
        rgba(255,255,255,.025);
}

.artist-studio-v7 .artist-sidebar-profile {
    min-height: 70px;
    margin: 10px 0 0;
    padding: 10px 12px;
    display: grid;
    grid-template-columns: 46px minmax(0,1fr);
    align-items: center;
    gap: 12px;
    border: 1px solid rgba(255,255,255,.075);
    border-radius: 13px;
    background: rgba(255,255,255,.025);
}

.artist-studio-v7 .artist-sidebar-avatar {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
}

.artist-studio-v7 .artist-sidebar-profile-copy strong {
    font-size: 15px;
    line-height: 1.2;
}

.artist-studio-v7 .artist-sidebar-profile-copy small {
    margin-top: 4px;
    font-size: 11px;
}

/* Only this lower part scrolls. */
.artist-studio-v7 .artist-sidebar-scroll {
    min-height: 0;
    flex: 1 1 auto;
    padding: 15px 12px 24px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(157,171,178,.58) rgba(255,255,255,.035);
}

.artist-studio-v7 .artist-sidebar-scroll::-webkit-scrollbar { width: 10px; }
.artist-studio-v7 .artist-sidebar-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,.025); }
.artist-studio-v7 .artist-sidebar-scroll::-webkit-scrollbar-thumb {
    border: 2px solid #0a0e11;
    border-radius: 999px;
    background: rgba(157,171,178,.56);
}

.artist-studio-v7 .artist-sidebar-workspace-label {
    margin: 0 10px 15px;
    padding: 0;
    color: #718087;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .14em;
}

.artist-studio-v7 .artist-studio-nav {
    position: static !important;
    width: 100%;
    margin: 0;
    padding: 0;
    display: flex !important;
    flex-direction: column;
    gap: 18px !important;
    overflow: visible !important;
}

.artist-studio-v7 .artist-nav-group {
    position: static !important;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr);
    gap: 7px !important;
    border: 0 !important;
}

.artist-studio-v7 .artist-nav-label {
    display: block !important;
    min-height: 16px;
    margin: 0;
    padding: 0 9px 2px !important;
    color: #77878e;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: .11em;
}

/* Every menu strip has exactly the same geometry. */
.artist-studio-v7 .artist-nav-link {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 72px !important;
    min-height: 72px !important;
    max-height: 72px !important;
    margin: 0 !important;
    padding: 10px 11px !important;
    display: grid !important;
    grid-template-columns: 34px minmax(0,1fr) !important;
    align-items: center;
    gap: 10px !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.065) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.018) !important;
    color: #d7e1e4 !important;
    text-align: left;
    font: inherit;
    box-sizing: border-box;
    cursor: pointer;
    transform: none !important;
}

.artist-studio-v7 .artist-nav-link::before {
    content: "";
    position: absolute !important;
    inset: 8px auto 8px 0 !important;
    width: 3px;
    border-radius: 0 4px 4px 0;
    background: transparent;
}

.artist-studio-v7 .artist-nav-link > i {
    width: 34px;
    color: #819198;
    text-align: center;
    font-size: 17px;
}

.artist-studio-v7 .artist-nav-link > span {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.artist-studio-v7 .artist-nav-link strong {
    min-width: 0;
    overflow: hidden;
    color: inherit;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.artist-studio-v7 .artist-nav-link small {
    min-width: 0;
    overflow: hidden;
    color: #6e7d84 !important;
    font-size: 9.5px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.artist-studio-v7 .artist-nav-link:hover {
    border-color: rgba(255,255,255,.14) !important;
    background: rgba(255,255,255,.055) !important;
    color: #fff !important;
}

.artist-studio-v7 .artist-nav-link.active {
    border-color: rgba(3,125,156,.62) !important;
    background:
        linear-gradient(90deg, rgba(3,125,156,.22), rgba(3,125,156,.07)),
        rgba(255,255,255,.025) !important;
    color: #f2fcff !important;
    box-shadow: 0 0 18px rgba(3,125,156,.11);
}

.artist-studio-v7 .artist-nav-link.active::before { background: var(--artist-accent); }
.artist-studio-v7 .artist-nav-link.active > i { color: var(--artist-accent) !important; }
.artist-studio-v7 .artist-nav-link.active small { color: #9aabb1 !important; }

.artist-studio-v7 .artist-sidebar-actions {
    position: static !important;
    width: 100%;
    margin: 22px 0 0 !important;
    padding: 16px 0 0 !important;
    display: grid !important;
    gap: 8px !important;
    border-top: 1px solid rgba(255,255,255,.075) !important;
}

.artist-studio-v7 .artist-sidebar-utility {
    width: 100%;
    min-height: 58px;
    margin: 0;
    padding: 9px 11px;
    display: grid;
    grid-template-columns: 34px minmax(0,1fr);
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(255,255,255,.065);
    border-radius: 12px;
    background: rgba(255,255,255,.018);
    box-sizing: border-box;
}

/* Right side scrolls independently while the left identity stays fixed. */
.artist-studio-v7 .artist-studio-main {
    min-width: 0;
    height: 100%;
    min-height: 0;
    padding: 16px 18px 46px;
    display: block;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(157,171,178,.55) rgba(255,255,255,.025);
}

.artist-studio-v7 .artist-studio-main::-webkit-scrollbar { width: 12px; }
.artist-studio-v7 .artist-studio-main::-webkit-scrollbar-thumb {
    border: 3px solid var(--music-bg);
    border-radius: 999px;
    background: rgba(157,171,178,.56);
}

.artist-studio-v7 .artist-hero {
    width: 100%;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 16px;
    background: #0b1013;
}

.artist-studio-v7 .artist-hero-banner,
.artist-studio-v7 .artist-preview-banner.artist-hero-banner {
    height: 212px !important;
    min-height: 212px !important;
    border-radius: inherit;
}

.artist-studio-v7 .artist-hero-profile {
    left: 22px !important;
    right: 166px !important;
    bottom: 16px !important;
    grid-template-columns: 86px minmax(0,1fr) auto !important;
    gap: 15px !important;
}

.artist-studio-v7 .artist-avatar-editor,
.artist-studio-v7 .artist-avatar {
    width: 86px !important;
    height: 86px !important;
}

.artist-studio-v7 .artist-dashboard-strip {
    width: 100%;
    margin: 14px 0;
    grid-template-columns: repeat(3, minmax(100px,.24fr)) minmax(300px,1fr);
}

/* Marketplace-like title frame for the selected workspace tab. */
.artist-studio-v7 .artist-active-panel-heading {
    position: sticky;
    top: -16px;
    z-index: 18;
    min-height: 82px;
    margin: 0 0 18px;
    padding: 14px 16px;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    border: 2px solid #037d9c;
    border-radius: 15px;
    background:
        linear-gradient(90deg, rgba(0,0,0,.46), rgba(0,0,0,.14) 48%, rgba(0,0,0,.04)),
        radial-gradient(circle at 78% 48%, rgba(3,125,156,.42), transparent 38%),
        linear-gradient(180deg, rgba(3,125,156,.38), rgba(4,22,32,.84));
    box-shadow:
        0 0 16px rgba(3,125,156,.42),
        0 12px 26px rgba(0,0,0,.28),
        inset 0 1px 0 rgba(255,255,255,.14);
}

.artist-studio-v7 .artist-active-panel-heading::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255,255,255,.08), transparent 42%),
        radial-gradient(circle at 15% 20%, rgba(255,255,255,.12), transparent 32%);
    pointer-events: none;
}

.artist-studio-v7 .artist-active-panel-heading > * {
    position: relative;
    z-index: 1;
}

.artist-studio-v7 .artist-active-panel-heading h2 {
    margin: 5px 0 0;
    color: var(--music-text);
    font-size: 24px;
    line-height: 1.1;
    letter-spacing: 0;
}

.artist-studio-v7 .artist-active-panel-heading .music-result-count {
    flex: 0 0 auto;
    color: #b7c7cc;
    font-size: 12px;
    font-weight: 800;
}

.artist-studio-v7 .artist-studio-content {
    min-width: 0;
    min-height: 520px;
}

.artist-studio-v7 [data-artist-panel-id][hidden],
.artist-studio-v7 [data-artist-panel-id][aria-hidden="true"] { display: none !important; }
.artist-studio-v7 [data-artist-panel-id].is-active,
.artist-studio-v7 [data-artist-panel-id][aria-hidden="false"] { display: block; }

@media (max-width: 1080px) {
    .artist-studio-v7 { --artist-sidebar-width: 270px; }
    .artist-studio-v7 .artist-nav-link { height: 66px !important; min-height: 66px !important; max-height: 66px !important; }
    .artist-studio-v7 .artist-nav-link small { display: none !important; }
}

@media (max-width: 820px) {
    body:has(.artist-studio-v7) { overflow: auto; }
    .artist-studio-v7 { height: auto; min-height: calc(100dvh - var(--paxor-menu-height,62px)); overflow: visible; }
    .artist-studio-v7 .artist-workspace { height: auto; grid-template-columns: 1fr; }
    .artist-studio-v7 .artist-studio-sidebar { height: auto; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.09); }
    .artist-studio-v7 .artist-sidebar-scroll { overflow: visible; }
    .artist-studio-v7 .artist-studio-main { height: auto; overflow: visible; padding: 12px 10px calc(var(--paxor-player-height,88px) + 24px); }
    .artist-studio-v7 .artist-active-panel-heading { top: var(--paxor-menu-height,62px); }
}

@media (max-width: 620px) {
    .artist-studio-v7 .artist-sidebar-fixed { padding: 10px; }
    .artist-studio-v7 .artist-sidebar-profile { display: none; }
    .artist-studio-v7 .artist-sidebar-scroll { padding: 10px; }
    .artist-studio-v7 .artist-sidebar-workspace-label,
    .artist-studio-v7 .artist-nav-label,
    .artist-studio-v7 .artist-sidebar-actions { display: none !important; }
    .artist-studio-v7 .artist-studio-nav { flex-direction: row; gap: 7px !important; overflow-x: auto !important; }
    .artist-studio-v7 .artist-nav-group { display: contents !important; }
    .artist-studio-v7 .artist-nav-link {
        width: auto !important;
        min-width: max-content;
        height: 46px !important;
        min-height: 46px !important;
        max-height: 46px !important;
        grid-template-columns: 18px auto !important;
        padding: 8px 12px !important;
    }
    .artist-studio-v7 .artist-nav-link small { display: none !important; }
    .artist-studio-v7 .artist-dashboard-strip { grid-template-columns: repeat(3,1fr); }
    .artist-studio-v7 .artist-wallet-card { grid-column: 1 / -1; }
    .artist-studio-v7 .artist-active-panel-heading { align-items: center; }
    .artist-studio-v7 .artist-active-panel-heading h2 { font-size: 20px; }
}

/* ===== Artist Studio v8: merged workspace heading + taller artist hero ===== */
.artist-studio-v8 .artist-hero,
.artist-studio-v8 .artist-hero-banner,
.artist-studio-v8 .artist-preview-banner.artist-hero-banner {
    position: relative;
}

/* A little taller than v7; the avatar occupies most of the visual height. */
.artist-studio-v8 .artist-hero-banner,
.artist-studio-v8 .artist-preview-banner.artist-hero-banner {
    height: 300px !important;
    min-height: 300px !important;
}

.artist-studio-v8 .artist-hero-topbar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 6;
    width: auto;
    margin: 0;
    padding: 18px 22px;
}

.artist-studio-v8 .artist-cover-change {
    top: 72px;
    right: 22px;
    bottom: auto;
    z-index: 7;
}

.artist-studio-v8 .artist-hero-profile {
    position: absolute !important;
    z-index: 5;
    left: 24px !important;
    right: 24px !important;
    bottom: 24px !important;
    width: auto !important;
    min-height: 0;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 196px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 24px !important;
    pointer-events: none;
}

.artist-studio-v8 .artist-avatar-editor,
.artist-studio-v8 .artist-avatar {
    width: 196px !important;
    height: 196px !important;
}

.artist-studio-v8 .artist-avatar-editor {
    margin: 0 !important;
    align-self: center;
    pointer-events: auto;
}

.artist-studio-v8 .artist-avatar {
    border: 5px solid rgba(8, 13, 15, .96) !important;
    background-position: center;
    background-size: cover;
    font-size: 48px;
    box-shadow:
        0 22px 54px rgba(0, 0, 0, .52),
        0 0 0 1px rgba(255, 255, 255, .12);
}

.artist-studio-v8 .artist-avatar-change {
    inset: 5px;
}

.artist-studio-v8 .artist-hero-copy {
    min-width: 0;
    padding: 0 !important;
    align-self: center;
    pointer-events: auto;
}

.artist-studio-v8 .artist-hero-copy h1 {
    margin: 7px 0 9px;
    font-size: clamp(38px, 4.3vw, 66px);
    line-height: .98;
}

.artist-studio-v8 .artist-hero-copy p {
    max-width: 760px;
    font-size: 14px;
}

.artist-studio-v8 .artist-public-page-link {
    align-self: end;
    margin: 0 0 4px;
    pointer-events: auto;
}

/* One marketplace-style heading now contains kicker, title, description,
   badge and live counter. The duplicate heading inside NFT Studio is removed. */
.artist-studio-v8 .artist-active-panel-heading {
    min-height: 124px;
    padding: 18px 20px;
    align-items: center;
}

.artist-studio-v8 .artist-active-panel-copy {
    min-width: 0;
    display: grid;
    align-content: center;
    gap: 0;
}

.artist-studio-v8 .artist-active-panel-heading h2 {
    margin: 6px 0 0;
    font-size: clamp(24px, 2.2vw, 32px);
}

.artist-studio-v8 #artist-active-description {
    max-width: 820px;
    margin: 9px 0 0;
    color: #a8b7bc;
    font-size: 12px;
    line-height: 1.5;
}

.artist-studio-v8 .artist-active-panel-side {
    min-width: 150px;
    display: grid;
    justify-items: end;
    align-content: center;
    gap: 12px;
}

.artist-studio-v8 .artist-active-badge {
    min-height: 30px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(32, 217, 255, .34);
    border-radius: 999px;
    background: rgba(32, 217, 255, .10);
    color: var(--music-cyan);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    white-space: nowrap;
}

.artist-studio-v8 .artist-active-badge[hidden] {
    display: none !important;
}

.artist-studio-v8 .artist-active-panel-heading.has-badge {
    min-height: 138px;
}

.artist-studio-v8 .artist-active-panel-heading .music-result-count {
    font-size: 12px;
    white-space: nowrap;
}

.artist-studio-v8 #artist-nft-studio > .nft-studio-title-header {
    display: none !important;
}

.artist-studio-v8 #artist-nft-studio {
    padding-top: 24px;
}

@media (max-width: 1180px) {
    .artist-studio-v8 .artist-hero-profile {
        grid-template-columns: 160px minmax(0,1fr) auto !important;
        gap: 18px !important;
    }

    .artist-studio-v8 .artist-avatar-editor,
    .artist-studio-v8 .artist-avatar {
        width: 160px !important;
        height: 160px !important;
    }
}

@media (max-width: 900px) {
    .artist-studio-v8 .artist-hero-banner,
    .artist-studio-v8 .artist-preview-banner.artist-hero-banner {
        height: 270px !important;
        min-height: 270px !important;
    }

    .artist-studio-v8 .artist-hero-profile {
        grid-template-columns: 128px minmax(0,1fr) !important;
        right: 18px !important;
        left: 18px !important;
    }

    .artist-studio-v8 .artist-avatar-editor,
    .artist-studio-v8 .artist-avatar {
        width: 128px !important;
        height: 128px !important;
    }

    .artist-studio-v8 .artist-public-page-link {
        display: none;
    }

    .artist-studio-v8 .artist-active-panel-heading,
    .artist-studio-v8 .artist-active-panel-heading.has-badge {
        min-height: 0;
        align-items: flex-start;
    }
}

@media (max-width: 620px) {
    .artist-studio-v8 .artist-hero-banner,
    .artist-studio-v8 .artist-preview-banner.artist-hero-banner {
        height: 246px !important;
        min-height: 246px !important;
    }

    .artist-studio-v8 .artist-hero-profile {
        grid-template-columns: 92px minmax(0,1fr) !important;
        bottom: 18px !important;
        gap: 13px !important;
    }

    .artist-studio-v8 .artist-avatar-editor,
    .artist-studio-v8 .artist-avatar {
        width: 92px !important;
        height: 92px !important;
    }

    .artist-studio-v8 .artist-hero-copy h1 {
        font-size: 30px;
    }

    .artist-studio-v8 .artist-hero-copy p {
        display: none;
    }

    .artist-studio-v8 .artist-cover-change {
        top: 66px;
        right: 14px;
    }

    .artist-studio-v8 .artist-active-panel-heading {
        padding: 15px;
        display: grid;
        gap: 12px;
    }

    .artist-studio-v8 .artist-active-panel-side {
        min-width: 0;
        width: 100%;
        grid-template-columns: auto 1fr;
        justify-items: start;
        align-items: center;
    }
}


/* ================================================================
   Artist Studio v9: collapsible Spotify-style navigation
   ================================================================ */
.artist-studio-v9 {
    --artist-sidebar-width: 304px;
    transition: none;
}

.artist-studio-v9.sidebar-collapsed {
    --artist-sidebar-width: 82px;
}

/* Only Paxor for Artists stays fixed. Artist identity moves with the menu. */
.artist-studio-v9 .artist-sidebar-fixed {
    padding: 12px 10px;
}

.artist-studio-v9 .artist-sidebar-brand-row {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 38px;
    align-items: center;
    gap: 8px;
}

.artist-studio-v9 .artist-sidebar-home {
    min-width: 0;
    min-height: 52px;
    padding: 8px 10px;
}

.artist-studio-v9 .artist-sidebar-collapse {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 10px;
    background: rgba(255,255,255,.045);
    color: #9aabb2;
    cursor: pointer;
    font-size: 14px;
    transition: color .16s ease, border-color .16s ease, background .16s ease;
}

.artist-studio-v9 .artist-sidebar-collapse:hover,
.artist-studio-v9 .artist-sidebar-collapse:focus-visible {
    outline: 0;
    border-color: rgba(32,217,255,.44);
    background: rgba(32,217,255,.10);
    color: var(--music-cyan);
}

.artist-studio-v9 .artist-sidebar-scroll {
    padding-top: 14px;
}

.artist-studio-v9 .artist-sidebar-profile {
    margin: 0 0 18px;
}

/* Make the IPFS badge green, matching the original NFT/IPFS status. */
.artist-studio-v9 .artist-active-badge {
    border-color: rgba(29,185,84,.48);
    background: rgba(29,185,84,.13);
    color: var(--music-ui-green);
    box-shadow: inset 0 0 0 1px rgba(29,185,84,.04), 0 0 18px rgba(29,185,84,.08);
}

/* Use the real project NFT image next to VERIFIED NFT ARTIST. */
.artist-studio-v9 .artist-verified {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.artist-studio-v9 .artist-verified-nft-icon {
    width: 46px;
    height: 23px;
    flex: 0 0 auto;
    object-fit: contain;
    filter: drop-shadow(0 3px 8px rgba(0,0,0,.42));
}

/* Taller hero. The circular avatar fills the height below the top bar. */
.artist-studio-v9 .artist-hero-banner,
.artist-studio-v9 .artist-preview-banner.artist-hero-banner {
    height: 340px !important;
    min-height: 340px !important;
}

.artist-studio-v9 .artist-hero-profile {
    grid-template-columns: 244px minmax(0,1fr) auto !important;
    gap: 28px !important;
    bottom: 24px !important;
}

.artist-studio-v9 .artist-avatar-editor,
.artist-studio-v9 .artist-avatar {
    width: 244px !important;
    height: 244px !important;
}

.artist-studio-v9 .artist-avatar {
    font-size: 58px;
}

.artist-studio-v9 .artist-hero-copy h1 {
    font-size: clamp(42px, 4.8vw, 72px);
}

/* Collapsed mode: a single clean column of icons. */
.artist-studio-v9.sidebar-collapsed .artist-sidebar-brand-row {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 8px;
}

.artist-studio-v9.sidebar-collapsed .artist-sidebar-home {
    width: 52px;
    min-height: 52px;
    padding: 0;
    justify-content: center;
}

.artist-studio-v9.sidebar-collapsed .artist-sidebar-home > i {
    margin: 0;
}

.artist-studio-v9.sidebar-collapsed .artist-sidebar-home > span,
.artist-studio-v9.sidebar-collapsed .artist-sidebar-profile-copy,
.artist-studio-v9.sidebar-collapsed .artist-sidebar-workspace-label,
.artist-studio-v9.sidebar-collapsed .artist-nav-label,
.artist-studio-v9.sidebar-collapsed .artist-nav-link > span,
.artist-studio-v9.sidebar-collapsed .artist-sidebar-utility > span {
    display: none !important;
}

.artist-studio-v9.sidebar-collapsed .artist-sidebar-scroll {
    padding: 12px 8px 20px;
}

.artist-studio-v9.sidebar-collapsed .artist-sidebar-profile {
    width: 52px;
    min-height: 52px;
    margin: 0 auto 14px;
    padding: 0;
    display: grid !important;
    grid-template-columns: 1fr;
    place-items: center;
    border-radius: 13px;
}

.artist-studio-v9.sidebar-collapsed .artist-sidebar-avatar {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
}

.artist-studio-v9.sidebar-collapsed .artist-studio-nav {
    gap: 10px !important;
    align-items: center;
}

.artist-studio-v9.sidebar-collapsed .artist-nav-group {
    width: 52px;
    display: block !important;
}

.artist-studio-v9.sidebar-collapsed .artist-nav-link,
.artist-studio-v9.sidebar-collapsed .artist-sidebar-utility {
    width: 52px !important;
    min-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 13px !important;
}

.artist-studio-v9.sidebar-collapsed .artist-nav-link > i,
.artist-studio-v9.sidebar-collapsed .artist-sidebar-utility > i {
    width: auto !important;
    margin: 0 !important;
    font-size: 19px !important;
    text-align: center;
}

.artist-studio-v9.sidebar-collapsed .artist-sidebar-actions {
    margin-top: 12px;
    padding-top: 12px;
    display: grid !important;
    gap: 10px !important;
    justify-items: center;
}

@media (max-width: 1180px) {
    .artist-studio-v9 .artist-hero-profile {
        grid-template-columns: 196px minmax(0,1fr) auto !important;
        gap: 20px !important;
    }
    .artist-studio-v9 .artist-avatar-editor,
    .artist-studio-v9 .artist-avatar {
        width: 196px !important;
        height: 196px !important;
    }
}

@media (max-width: 900px) {
    .artist-studio-v9 .artist-sidebar-collapse { display: none; }
    .artist-studio-v9.sidebar-collapsed { --artist-sidebar-width: 100%; }
    .artist-studio-v9.sidebar-collapsed .artist-sidebar-home > span,
    .artist-studio-v9.sidebar-collapsed .artist-sidebar-profile-copy,
    .artist-studio-v9.sidebar-collapsed .artist-nav-link > span {
        display: grid !important;
    }
    .artist-studio-v9 .artist-hero-banner,
    .artist-studio-v9 .artist-preview-banner.artist-hero-banner {
        height: 286px !important;
        min-height: 286px !important;
    }
    .artist-studio-v9 .artist-hero-profile {
        grid-template-columns: 148px minmax(0,1fr) !important;
    }
    .artist-studio-v9 .artist-avatar-editor,
    .artist-studio-v9 .artist-avatar {
        width: 148px !important;
        height: 148px !important;
    }
}

@media (max-width: 620px) {
    .artist-studio-v9 .artist-hero-banner,
    .artist-studio-v9 .artist-preview-banner.artist-hero-banner {
        height: 252px !important;
        min-height: 252px !important;
    }
    .artist-studio-v9 .artist-hero-profile {
        grid-template-columns: 96px minmax(0,1fr) !important;
    }
    .artist-studio-v9 .artist-avatar-editor,
    .artist-studio-v9 .artist-avatar {
        width: 96px !important;
        height: 96px !important;
    }
    .artist-studio-v9 .artist-verified-nft-icon {
        width: 38px;
        height: 19px;
    }
}


/* ================================================================
   Artist Studio v10: verified label order + resilient tabs
   ================================================================ */
.artist-studio-v10 .artist-verified {
    min-height: 38px;
    display: inline-flex !important;
    align-items: center;
    gap: 11px !important;
    color: #f4fbfd !important;
    font-size: 15px !important;
    font-weight: 950 !important;
    line-height: 1;
    letter-spacing: .075em !important;
    text-transform: uppercase;
}

.artist-studio-v10 .artist-verified-word {
    display: inline-block;
    color: #f4fbfd;
    white-space: nowrap;
}

.artist-studio-v10 .artist-verified-nft-icon {
    width: 64px !important;
    height: 32px !important;
    flex: 0 0 64px !important;
    object-fit: contain;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,.48));
}

.artist-studio-v10 .artist-verified-check {
    color: var(--music-ui-green, #1db954);
    font-size: 20px;
    filter: drop-shadow(0 0 9px rgba(29,185,84,.45));
}

.artist-studio-v10 .artist-verified-check[hidden] {
    display: none !important;
}

.artist-studio-v10 .artist-verified.is-confirmed {
    color: #fff !important;
}

/* The active tab is always visible; every inactive panel is forcibly hidden. */
.artist-studio-v10 [data-artist-panel-id][hidden],
.artist-studio-v10 [data-artist-panel-id][aria-hidden="true"] {
    display: none !important;
}

.artist-studio-v10 [data-artist-panel-id].is-active,
.artist-studio-v10 [data-artist-panel-id][aria-hidden="false"] {
    display: block !important;
}

.artist-studio-v10 .artist-nav-link {
    pointer-events: auto !important;
    user-select: none;
}

@media (max-width: 620px) {
    .artist-studio-v10 .artist-verified {
        gap: 7px !important;
        font-size: 11px !important;
        letter-spacing: .045em !important;
    }
    .artist-studio-v10 .artist-verified-nft-icon {
        width: 44px !important;
        height: 22px !important;
        flex-basis: 44px !important;
    }
    .artist-studio-v10 .artist-verified-check {
        font-size: 15px;
    }
}

/* ================================================================
   Artist Studio v11: denser tab headers + NFT-green verified text
   ================================================================ */

/* Make the selected-tab header less transparent and more solid.
   It keeps the marketplace frame but no longer shows the content through it. */
.artist-studio-v11 .artist-active-panel-heading {
    background:
        linear-gradient(90deg, rgba(3, 10, 13, .96), rgba(5, 20, 25, .94) 52%, rgba(4, 15, 19, .97)),
        radial-gradient(circle at 78% 48%, rgba(3, 125, 156, .34), transparent 40%),
        #071216 !important;
    border-color: rgba(3, 125, 156, .92) !important;
    box-shadow:
        0 0 14px rgba(3, 125, 156, .34),
        0 12px 26px rgba(0, 0, 0, .38),
        inset 0 1px 0 rgba(255, 255, 255, .10) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.artist-studio-v11 .artist-active-panel-heading::before {
    opacity: .55;
}

/* The internal headings of each visible tab are also more opaque. */
.artist-studio-v11 .artist-content-card > .artist-panel-heading {
    background: rgba(11, 18, 22, .97);
    border-bottom-color: rgba(255, 255, 255, .10);
}

/* Match VERIFIED / ARTIST to the green NFT artwork. */
.artist-studio-v11 .artist-verified,
.artist-studio-v11 .artist-verified-word {
    color: var(--music-ui-green, #1db954) !important;
}

.artist-studio-v11 .artist-verified-word {
    text-shadow: 0 0 12px rgba(29, 185, 84, .18);
}

.artist-studio-v11 .artist-verified.is-confirmed,
.artist-studio-v11 .artist-verified.is-confirmed .artist-verified-word {
    color: var(--music-ui-green, #1db954) !important;
}

/* ================================================================
   Artist Studio v12: compact KPI strip, tighter verified badge,
   and collision-proof sidebar menu groups
   ================================================================ */

/* Compact statistics strip directly below the artist header. */
.artist-studio-v12 .artist-dashboard-strip {
    min-height: 0 !important;
    margin: 10px 0 14px !important;
    border-radius: 12px !important;
}

.artist-studio-v12 .artist-dashboard-stat {
    min-height: 68px !important;
    padding: 9px 15px !important;
    gap: 2px !important;
}

.artist-studio-v12 .artist-dashboard-stat strong {
    font-size: 22px !important;
    line-height: 1 !important;
}

.artist-studio-v12 .artist-dashboard-stat span {
    font-size: 10px !important;
    line-height: 1.2 !important;
}

.artist-studio-v12 .artist-wallet-card {
    min-height: 68px !important;
    padding: 8px 12px !important;
    grid-template-columns: 36px minmax(0, 1fr) auto !important;
    gap: 10px !important;
}

.artist-studio-v12 .artist-wallet-icon {
    width: 36px !important;
    height: 36px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
}

.artist-studio-v12 .artist-wallet-copy {
    gap: 2px !important;
}

.artist-studio-v12 .artist-wallet-copy strong {
    font-size: 12px !important;
}

.artist-studio-v12 .artist-wallet-copy small {
    font-size: 9px !important;
}

.artist-studio-v12 .artist-wallet-action {
    min-height: 32px !important;
    padding: 0 10px !important;
    gap: 6px !important;
    border-radius: 9px !important;
    font-size: 9.5px !important;
}

/* VERIFIED [NFT] ARTIST: exact requested green and tighter spacing. */
.artist-studio-v12 .artist-verified,
.artist-studio-v12 .artist-verified-word,
.artist-studio-v12 .artist-verified.is-confirmed,
.artist-studio-v12 .artist-verified.is-confirmed .artist-verified-word {
    color: #1dca8b !important;
}

.artist-studio-v12 .artist-verified {
    min-height: 30px !important;
    gap: 4px !important;
    column-gap: 4px !important;
}

.artist-studio-v12 .artist-verified-word {
    text-shadow: 0 0 11px rgba(29, 202, 139, .18) !important;
}

.artist-studio-v12 .artist-verified-nft-icon {
    width: 52px !important;
    height: 26px !important;
    flex: 0 0 52px !important;
    margin: 0 1px !important;
}

.artist-studio-v12 .artist-verified-check {
    color: #1dca8b !important;
    margin-left: 2px !important;
}

/* Sidebar: each label and button occupies its own row, so UPLOAD MUSIC
   can never overlap the New track button. */
.artist-studio-v12 .artist-studio-nav {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 16px !important;
    overflow: visible !important;
}

.artist-studio-v12 .artist-nav-group {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 7px !important;
    overflow: visible !important;
    transform: none !important;
}

.artist-studio-v12 .artist-nav-label {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    min-height: 14px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 10px 1px !important;
    display: block !important;
    overflow: visible !important;
    line-height: 1.3 !important;
    white-space: normal !important;
    transform: none !important;
}

.artist-studio-v12 .artist-nav-link {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 68px !important;
    min-height: 68px !important;
    max-height: 68px !important;
    margin: 0 !important;
    flex: 0 0 68px !important;
    transform: none !important;
}

/* Preserve clean icon-only spacing in collapsed mode. */
.artist-studio-v12.sidebar-collapsed .artist-studio-nav {
    gap: 10px !important;
    align-items: center !important;
}

.artist-studio-v12.sidebar-collapsed .artist-nav-group {
    width: 52px !important;
    display: block !important;
}

.artist-studio-v12.sidebar-collapsed .artist-nav-link {
    width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    flex-basis: 52px !important;
}

@media (max-width: 900px) {
    .artist-studio-v12 .artist-dashboard-stat,
    .artist-studio-v12 .artist-wallet-card {
        min-height: 62px !important;
    }
}

@media (max-width: 620px) {
    .artist-studio-v12 .artist-verified {
        gap: 3px !important;
    }
    .artist-studio-v12 .artist-verified-nft-icon {
        width: 40px !important;
        height: 20px !important;
        flex-basis: 40px !important;
    }
}

/* ================================================================
   Artist Studio v13: stable sidebar flow + tighter verified badge
   ================================================================ */

/* Keep VERIFIED, NFT artwork and ARTIST visually grouped together. */
.artist-studio-v13 .artist-verified {
    gap: 1px !important;
    column-gap: 1px !important;
}

.artist-studio-v13 .artist-verified-nft-icon {
    width: 48px !important;
    height: 24px !important;
    flex: 0 0 48px !important;
    margin: 0 !important;
}

.artist-studio-v13 .artist-verified-check {
    margin-left: 3px !important;
}

/* The scroll region owns vertical overflow; its children never shrink. */
.artist-studio-v13 .artist-sidebar-scroll {
    min-height: 0 !important;
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

.artist-studio-v13 .artist-sidebar-profile,
.artist-studio-v13 .artist-sidebar-workspace-label,
.artist-studio-v13 .artist-studio-nav,
.artist-studio-v13 .artist-nav-group,
.artist-studio-v13 .artist-sidebar-actions {
    flex-shrink: 0 !important;
}

/* Use grid instead of a shrinking flex stack. Each group gets its own row. */
.artist-studio-v13 .artist-studio-nav {
    width: 100% !important;
    height: auto !important;
    min-height: max-content !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    grid-auto-rows: max-content !important;
    align-content: start !important;
    align-items: stretch !important;
    gap: 16px !important;
    overflow: visible !important;
}

.artist-studio-v13 .artist-nav-group {
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 89px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: max-content 68px !important;
    align-content: start !important;
    align-items: stretch !important;
    gap: 7px !important;
    overflow: visible !important;
    transform: none !important;
}

.artist-studio-v13 .artist-nav-label {
    position: static !important;
    min-height: 14px !important;
    line-height: 1.35 !important;
}

.artist-studio-v13 .artist-nav-link {
    position: relative !important;
    width: 100% !important;
    height: 68px !important;
    min-height: 68px !important;
    max-height: 68px !important;
    margin: 0 !important;
    flex: none !important;
    align-self: stretch !important;
}

.artist-studio-v13 .artist-sidebar-actions {
    width: 100% !important;
    height: auto !important;
    margin-top: 22px !important;
}

/* Preserve the compact icon-only sidebar without inheriting desktop row heights. */
.artist-studio-v13.sidebar-collapsed .artist-studio-nav {
    min-height: 0 !important;
    display: grid !important;
    justify-items: center !important;
    gap: 10px !important;
}

.artist-studio-v13.sidebar-collapsed .artist-nav-group {
    width: 52px !important;
    min-height: 52px !important;
    height: 52px !important;
    display: block !important;
}

.artist-studio-v13.sidebar-collapsed .artist-nav-link {
    width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
}

@media (max-width: 620px) {
    .artist-studio-v13 .artist-verified {
        gap: 1px !important;
    }

    .artist-studio-v13 .artist-verified-nft-icon {
        width: 38px !important;
        height: 19px !important;
        flex-basis: 38px !important;
    }
}


/* ================================================================
   Artist Studio v14: flush hero, global-wallet indicator only,
   darker menu channels and three-column KPI strip
   ================================================================ */

/* The workspace starts directly below the global horizontal menu. */
.artist-studio-v14 .artist-studio-main {
    padding-top: 0 !important;
}

.artist-studio-v14 .artist-hero {
    margin-top: 0 !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

/* Only a passive global-wallet state indicator remains in Artist Studio. */
.artist-studio-v14 .artist-hero-statuses {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.artist-studio-v14 .artist-global-wallet-indicator {
    min-height: 28px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    background: rgba(4,9,11,.78);
    color: #9eacb2;
    font-size: 10px;
    font-weight: 850;
    white-space: nowrap;
    backdrop-filter: blur(10px);
}

.artist-studio-v14 .artist-global-wallet-dot {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
    background: #7b878c;
    box-shadow: 0 0 0 3px rgba(123,135,140,.12);
}

.artist-studio-v14 .artist-global-wallet-indicator.connected {
    border-color: rgba(29,202,139,.34);
    color: #d6f8eb;
}

.artist-studio-v14 .artist-global-wallet-indicator.connected .artist-global-wallet-dot {
    background: #1dca8b;
    box-shadow: 0 0 0 3px rgba(29,202,139,.15), 0 0 12px rgba(29,202,139,.45);
}

.artist-studio-v14 .artist-global-wallet-indicator.disconnected .artist-global-wallet-dot {
    background: #879298;
}

/* Wallet connection controls are global and must never appear here. */
.artist-studio-v14 .artist-wallet-card,
.artist-studio-v14 [data-artist-wallet-menu],
.artist-studio-v14 .artist-wallet-action {
    display: none !important;
}

/* Three real counters only. */
.artist-studio-v14 .artist-dashboard-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.artist-studio-v14 .artist-dashboard-stat:last-child {
    border-right: 0 !important;
}

/* Darker channels between the cyan menu strips. */
.artist-studio-v14 .artist-sidebar-scroll {
    background:
        linear-gradient(180deg, rgba(3,125,156,.025), transparent 18%),
        #06090b !important;
}

.artist-studio-v14 .artist-studio-nav {
    padding: 10px 8px 14px !important;
    border: 1px solid rgba(255,255,255,.035);
    border-radius: 14px;
    background: #05080a !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}

.artist-studio-v14 .artist-nav-group {
    padding: 0 0 2px !important;
    background: #05080a !important;
}

.artist-studio-v14 .artist-nav-label {
    color: #607077 !important;
}

.artist-studio-v14 .artist-nav-link {
    background: #0a0f12 !important;
}

.artist-studio-v14 .artist-nav-link:hover {
    background: #10171a !important;
}

.artist-studio-v14 .artist-nav-link.active {
    background:
        linear-gradient(90deg, rgba(3,125,156,.27), rgba(3,125,156,.08)),
        #0a1115 !important;
}

.artist-studio-v14.sidebar-collapsed .artist-studio-nav {
    padding: 8px 0 12px !important;
    border-left: 0;
    border-right: 0;
    border-radius: 0;
}

@media (max-width: 900px) {
    .artist-studio-v14 .artist-studio-main {
        padding-top: 0 !important;
    }
    .artist-studio-v14 .artist-hero-statuses {
        gap: 6px;
    }
    .artist-studio-v14 .artist-global-wallet-indicator {
        padding: 0 8px;
        font-size: 9px;
    }
}

@media (max-width: 620px) {
    .artist-studio-v14 .artist-global-wallet-indicator span:last-child {
        display: none;
    }
    .artist-studio-v14 .artist-global-wallet-indicator {
        width: 28px;
        padding: 0;
        justify-content: center;
    }
}

/* ========================================================================== 
   Artist Studio v15: compact statistics strip + passive global wallet status
   ========================================================================== */

/* Profile live was a decorative label, not a backend-published state. */
.artist-studio-v15 .artist-studio-status,
.artist-studio-v15 .artist-hero-statuses {
    display: none !important;
}

.artist-studio-v15 .artist-dashboard-strip {
    width: min(var(--artist-page-width), calc(100% - 48px));
    min-height: 62px;
    margin: 0 auto 18px;
    grid-template-columns: repeat(3, minmax(105px, .55fr)) minmax(190px, 1fr) !important;
    border-radius: 12px;
}

.artist-studio-v15 .artist-dashboard-stat {
    min-height: 62px !important;
    padding: 9px 16px !important;
    gap: 2px;
}

.artist-studio-v15 .artist-dashboard-stat strong {
    font-size: 22px;
    line-height: .95;
}

.artist-studio-v15 .artist-dashboard-stat span {
    font-size: 10px;
    line-height: 1.1;
}

.artist-studio-v15 .artist-dashboard-wallet {
    min-width: 0;
    min-height: 62px;
    padding: 8px 16px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 3px;
    background: rgba(255,255,255,.012);
}

.artist-studio-v15 .artist-dashboard-wallet small {
    color: #6f7d83;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.artist-studio-v15 .artist-global-wallet-indicator {
    min-height: 24px;
    padding: 0;
    gap: 7px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #9eacb2;
    font-size: 11px;
    font-weight: 850;
    backdrop-filter: none;
}

.artist-studio-v15 .artist-global-wallet-indicator.connected {
    color: #d6f8eb;
}

.artist-studio-v15 .artist-global-wallet-dot {
    width: 8px;
    height: 8px;
    flex-basis: 8px;
}

.artist-studio-v15 .artist-active-panel-side .music-result-count[hidden] {
    display: none !important;
}

@media (max-width: 980px) {
    .artist-studio-v15 .artist-dashboard-strip {
        grid-template-columns: repeat(3, minmax(90px, 1fr)) !important;
    }
    .artist-studio-v15 .artist-dashboard-wallet {
        grid-column: 1 / -1;
        min-height: 48px;
        padding: 7px 14px;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        border-top: 1px solid rgba(255,255,255,.07);
    }
}

@media (max-width: 620px) {
    .artist-studio-v15 .artist-dashboard-strip {
        width: calc(100% - 28px);
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    .artist-studio-v15 .artist-dashboard-stat {
        padding: 8px 10px !important;
    }
    .artist-studio-v15 .artist-dashboard-stat strong {
        font-size: 19px;
    }
    .artist-studio-v15 .artist-global-wallet-indicator {
        width: auto;
        min-width: 0;
        justify-content: flex-start;
    }
    .artist-studio-v15 .artist-global-wallet-indicator span:last-child {
        display: inline;
    }
}


/* ========================================================================== 
   Artist Studio v16: animated sidebar layout toggle
   ========================================================================== */
.artist-studio-v16 .artist-sidebar-collapse {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.025)),
        #0a1013;
    color: #8fa0a7;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.07);
    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease,
        transform .2s ease;
}

.artist-studio-v16 .artist-sidebar-collapse:hover,
.artist-studio-v16 .artist-sidebar-collapse:focus-visible {
    border-color: rgba(32,217,255,.58);
    background:
        linear-gradient(180deg, rgba(32,217,255,.13), rgba(32,217,255,.045)),
        #081116;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.10),
        0 0 0 3px rgba(32,217,255,.08),
        0 0 22px rgba(32,217,255,.10);
    transform: translateY(-1px);
}

.artist-studio-v16 .artist-sidebar-layout-icon {
    width: 27px;
    height: 23px;
    position: relative;
    display: block;
    border: 1.7px solid currentColor;
    border-radius: 5px;
    color: #91a2aa;
    overflow: hidden;
    box-sizing: border-box;
    transition: color .2s ease, transform .28s cubic-bezier(.2,.8,.2,1);
}

.artist-studio-v16 .artist-sidebar-layout-icon::after {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: 2px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
    pointer-events: none;
}

.artist-studio-v16 .artist-sidebar-layout-rail,
.artist-studio-v16 .artist-sidebar-layout-content {
    position: absolute;
    top: 3px;
    bottom: 3px;
    border-radius: 2px;
    transition:
        left .3s cubic-bezier(.2,.8,.2,1),
        width .3s cubic-bezier(.2,.8,.2,1),
        opacity .2s ease,
        background .2s ease,
        box-shadow .2s ease;
}

/* Expanded now: a wide highlighted left panel. Hover previews the collapse. */
.artist-studio-v16 .artist-sidebar-layout-rail {
    left: 3px;
    width: 8px;
    background: linear-gradient(180deg, #20d9ff, #037d9c);
    box-shadow: 0 0 10px rgba(32,217,255,.42);
}

.artist-studio-v16 .artist-sidebar-layout-content {
    left: 14px;
    width: 8px;
    background: rgba(255,255,255,.18);
}

.artist-studio-v16 .artist-sidebar-collapse[data-state="expanded"]:hover .artist-sidebar-layout-rail,
.artist-studio-v16 .artist-sidebar-collapse[data-state="expanded"]:focus-visible .artist-sidebar-layout-rail {
    width: 3px;
    box-shadow: 0 0 8px rgba(32,217,255,.26);
}

.artist-studio-v16 .artist-sidebar-collapse[data-state="expanded"]:hover .artist-sidebar-layout-content,
.artist-studio-v16 .artist-sidebar-collapse[data-state="expanded"]:focus-visible .artist-sidebar-layout-content {
    left: 9px;
    width: 13px;
    background: rgba(255,255,255,.26);
}

/* Collapsed now: a thin left rail. Hover previews expanding it again. */
.artist-studio-v16 .artist-sidebar-collapse[data-state="collapsed"] .artist-sidebar-layout-rail {
    width: 3px;
    box-shadow: 0 0 8px rgba(32,217,255,.28);
}

.artist-studio-v16 .artist-sidebar-collapse[data-state="collapsed"] .artist-sidebar-layout-content {
    left: 9px;
    width: 13px;
    background: rgba(255,255,255,.23);
}

.artist-studio-v16 .artist-sidebar-collapse[data-state="collapsed"]:hover .artist-sidebar-layout-rail,
.artist-studio-v16 .artist-sidebar-collapse[data-state="collapsed"]:focus-visible .artist-sidebar-layout-rail {
    width: 8px;
    box-shadow: 0 0 11px rgba(32,217,255,.46);
}

.artist-studio-v16 .artist-sidebar-collapse[data-state="collapsed"]:hover .artist-sidebar-layout-content,
.artist-studio-v16 .artist-sidebar-collapse[data-state="collapsed"]:focus-visible .artist-sidebar-layout-content {
    left: 14px;
    width: 8px;
}

.artist-studio-v16 .artist-sidebar-collapse:hover .artist-sidebar-layout-icon,
.artist-studio-v16 .artist-sidebar-collapse:focus-visible .artist-sidebar-layout-icon {
    color: #dffaff;
}

.artist-studio-v16 .artist-sidebar-collapse.is-animating .artist-sidebar-layout-icon {
    animation: artistSidebarLayoutPulse .42s cubic-bezier(.2,.8,.2,1);
}

@keyframes artistSidebarLayoutPulse {
    0% { transform: scale(1); }
    45% { transform: scale(.88); }
    100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .artist-studio-v16 .artist-sidebar-collapse,
    .artist-studio-v16 .artist-sidebar-layout-icon,
    .artist-studio-v16 .artist-sidebar-layout-rail,
    .artist-studio-v16 .artist-sidebar-layout-content {
        transition: none !important;
        animation: none !important;
    }
}

/* ========================================================================== 
   Artist Studio v17: frameless, larger animated sidebar toggle
   ========================================================================== */
.artist-studio-v17 .artist-sidebar-brand-row {
    grid-template-columns: minmax(0, 1fr) 48px;
    gap: 6px;
}

/* The button keeps a generous click target, but has no visible outer frame. */
.artist-studio-v17 .artist-sidebar-collapse,
.artist-studio-v17 .artist-sidebar-collapse:hover,
.artist-studio-v17 .artist-sidebar-collapse:focus-visible {
    width: 48px;
    height: 48px;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    outline: 0;
    background: transparent !important;
    box-shadow: none !important;
    color: #9aabb2;
    transform: none;
}

.artist-studio-v17 .artist-sidebar-collapse:hover,
.artist-studio-v17 .artist-sidebar-collapse:focus-visible {
    color: #dffaff;
}

/* The layout symbol itself is now the only visible frame. */
.artist-studio-v17 .artist-sidebar-layout-icon {
    width: 38px;
    height: 32px;
    border-width: 2.2px;
    border-radius: 7px;
    color: #9eb0b8;
    box-shadow: none;
}

.artist-studio-v17 .artist-sidebar-collapse:hover .artist-sidebar-layout-icon,
.artist-studio-v17 .artist-sidebar-collapse:focus-visible .artist-sidebar-layout-icon {
    color: #e9fcff;
    filter: drop-shadow(0 0 7px rgba(32,217,255,.22));
}

.artist-studio-v17 .artist-sidebar-layout-icon::after {
    inset: 4px;
    border-radius: 3px;
}

.artist-studio-v17 .artist-sidebar-layout-rail,
.artist-studio-v17 .artist-sidebar-layout-content {
    top: 4px;
    bottom: 4px;
    border-radius: 3px;
}

/* Expanded state. */
.artist-studio-v17 .artist-sidebar-layout-rail {
    left: 4px;
    width: 11px;
}

.artist-studio-v17 .artist-sidebar-layout-content {
    left: 19px;
    width: 13px;
}

.artist-studio-v17 .artist-sidebar-collapse[data-state="expanded"]:hover .artist-sidebar-layout-rail,
.artist-studio-v17 .artist-sidebar-collapse[data-state="expanded"]:focus-visible .artist-sidebar-layout-rail {
    width: 4px;
}

.artist-studio-v17 .artist-sidebar-collapse[data-state="expanded"]:hover .artist-sidebar-layout-content,
.artist-studio-v17 .artist-sidebar-collapse[data-state="expanded"]:focus-visible .artist-sidebar-layout-content {
    left: 12px;
    width: 20px;
}

/* Collapsed state. */
.artist-studio-v17 .artist-sidebar-collapse[data-state="collapsed"] .artist-sidebar-layout-rail {
    width: 4px;
}

.artist-studio-v17 .artist-sidebar-collapse[data-state="collapsed"] .artist-sidebar-layout-content {
    left: 12px;
    width: 20px;
}

.artist-studio-v17 .artist-sidebar-collapse[data-state="collapsed"]:hover .artist-sidebar-layout-rail,
.artist-studio-v17 .artist-sidebar-collapse[data-state="collapsed"]:focus-visible .artist-sidebar-layout-rail {
    width: 11px;
}

.artist-studio-v17 .artist-sidebar-collapse[data-state="collapsed"]:hover .artist-sidebar-layout-content,
.artist-studio-v17 .artist-sidebar-collapse[data-state="collapsed"]:focus-visible .artist-sidebar-layout-content {
    left: 19px;
    width: 13px;
}

/* ========================================================================== 
   Artist Studio v18: darker idle layout icon + larger centered sidebar icons
   ========================================================================== */

/* Keep the layout-frame icon quiet at rest; hover/focus still brightens it. */
.artist-studio-v18 .artist-sidebar-layout-icon {
    color: #59676d !important;
    border-color: currentColor !important;
    filter: none;
}

.artist-studio-v18 .artist-sidebar-layout-content {
    background: rgba(255,255,255,.11) !important;
}

.artist-studio-v18 .artist-sidebar-collapse:hover .artist-sidebar-layout-icon,
.artist-studio-v18 .artist-sidebar-collapse:focus-visible .artist-sidebar-layout-icon {
    color: #e9fcff !important;
    filter: drop-shadow(0 0 7px rgba(32,217,255,.22));
}

.artist-studio-v18 .artist-sidebar-collapse:hover .artist-sidebar-layout-content,
.artist-studio-v18 .artist-sidebar-collapse:focus-visible .artist-sidebar-layout-content {
    background: rgba(255,255,255,.27) !important;
}

/* Larger icons in the expanded left navigation. */
.artist-studio-v18 .artist-sidebar-home > i {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    font-size: 18px;
}

.artist-studio-v18 .artist-nav-link > i {
    width: 38px !important;
    font-size: 21px !important;
}

.artist-studio-v18 .artist-sidebar-utility > i {
    width: 38px !important;
    font-size: 20px !important;
}

.artist-studio-v18 .artist-sidebar-avatar > i {
    font-size: 20px;
}

/* Collapsed mode: one centered icon column with no button cards or frames. */
.artist-studio-v18.sidebar-collapsed .artist-sidebar-fixed,
.artist-studio-v18.sidebar-collapsed .artist-sidebar-scroll {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}

.artist-studio-v18.sidebar-collapsed .artist-sidebar-brand-row,
.artist-studio-v18.sidebar-collapsed .artist-studio-nav,
.artist-studio-v18.sidebar-collapsed .artist-sidebar-actions {
    width: 100% !important;
    justify-items: center !important;
    align-items: center !important;
}

.artist-studio-v18.sidebar-collapsed .artist-sidebar-home,
.artist-studio-v18.sidebar-collapsed .artist-sidebar-profile,
.artist-studio-v18.sidebar-collapsed .artist-nav-link,
.artist-studio-v18.sidebar-collapsed .artist-sidebar-utility {
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: 0 !important;
}

.artist-studio-v18.sidebar-collapsed .artist-nav-link::before {
    display: none !important;
}

.artist-studio-v18.sidebar-collapsed .artist-sidebar-home:hover,
.artist-studio-v18.sidebar-collapsed .artist-sidebar-profile:hover,
.artist-studio-v18.sidebar-collapsed .artist-nav-link:hover,
.artist-studio-v18.sidebar-collapsed .artist-sidebar-utility:hover,
.artist-studio-v18.sidebar-collapsed .artist-nav-link.active {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.artist-studio-v18.sidebar-collapsed .artist-sidebar-home > i,
.artist-studio-v18.sidebar-collapsed .artist-nav-link > i,
.artist-studio-v18.sidebar-collapsed .artist-sidebar-utility > i {
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: center !important;
    line-height: 1 !important;
}

.artist-studio-v18.sidebar-collapsed .artist-sidebar-home > i {
    color: var(--artist-accent) !important;
    font-size: 25px !important;
}

.artist-studio-v18.sidebar-collapsed .artist-nav-link > i,
.artist-studio-v18.sidebar-collapsed .artist-sidebar-utility > i {
    color: #8b9aa1 !important;
    font-size: 24px !important;
    transition: color .16s ease, transform .16s ease, filter .16s ease;
}

.artist-studio-v18.sidebar-collapsed .artist-nav-link:hover > i,
.artist-studio-v18.sidebar-collapsed .artist-sidebar-utility:hover > i {
    color: #dffaff !important;
    transform: scale(1.08);
}

.artist-studio-v18.sidebar-collapsed .artist-nav-link.active > i {
    color: var(--artist-accent) !important;
    filter: drop-shadow(0 0 8px rgba(32,217,255,.28));
}

.artist-studio-v18.sidebar-collapsed .artist-sidebar-avatar {
    width: 46px !important;
    height: 46px !important;
    flex: 0 0 46px !important;
    margin: 0 !important;
}

.artist-studio-v18.sidebar-collapsed .artist-sidebar-avatar > i {
    font-size: 21px !important;
}

.artist-studio-v18.sidebar-collapsed .artist-sidebar-actions {
    padding-top: 10px !important;
    border-top: 1px solid rgba(255,255,255,.055) !important;
}


/* ========================================================================== 
   Artist Studio v19: deeper idle outline for the sidebar layout toggle
   ========================================================================== */
.artist-studio-v19 .artist-sidebar-layout-icon {
    color: #354045 !important;
    border-color: currentColor !important;
    filter: none;
}

.artist-studio-v19 .artist-sidebar-layout-content {
    background: rgba(255,255,255,.075) !important;
}

.artist-studio-v19 .artist-sidebar-collapse:hover .artist-sidebar-layout-icon,
.artist-studio-v19 .artist-sidebar-collapse:focus-visible .artist-sidebar-layout-icon {
    color: #e9fcff !important;
    filter: drop-shadow(0 0 7px rgba(32,217,255,.22));
}

.artist-studio-v19 .artist-sidebar-collapse:hover .artist-sidebar-layout-content,
.artist-studio-v19 .artist-sidebar-collapse:focus-visible .artist-sidebar-layout-content {
    background: rgba(255,255,255,.27) !important;
}

/* ========================================================================== 
   Artist Studio v20: collapse control inside the Paxor for Artists frame
   ========================================================================== */
.artist-studio-v20 .artist-sidebar-brand-row {
    position: relative;
    width: 100%;
    padding: 0 6px 0 0;
    grid-template-columns: minmax(0, 1fr) 48px;
    align-items: center;
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(3,125,156,.42);
    border-radius: 13px;
    background:
        linear-gradient(90deg, rgba(3,125,156,.20), rgba(3,125,156,.055)),
        rgba(255,255,255,.022);
    box-shadow:
        0 0 16px rgba(3,125,156,.15),
        inset 0 1px 0 rgba(255,255,255,.055);
}

.artist-studio-v20 .artist-sidebar-brand-row::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255,255,255,.045), transparent 48%),
        radial-gradient(circle at 18% 20%, rgba(32,217,255,.07), transparent 34%);
    pointer-events: none;
}

.artist-studio-v20 .artist-sidebar-brand-row > * {
    position: relative;
    z-index: 1;
}

.artist-studio-v20 .artist-sidebar-home {
    width: 100%;
    min-width: 0;
    min-height: 58px;
    margin: 0;
    padding: 10px 8px 10px 12px;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
}

.artist-studio-v20 .artist-sidebar-collapse {
    position: static;
    inset: auto;
    justify-self: end;
    margin: 0;
}

/* Compact mode keeps the brand mark and expand icon in one vertical frame. */
.artist-studio-v20.sidebar-collapsed .artist-sidebar-brand-row {
    width: 60px !important;
    margin: 0 auto !important;
    padding: 5px 0 6px !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    gap: 2px !important;
    border: 1px solid rgba(3,125,156,.32) !important;
    border-radius: 14px !important;
    background:
        linear-gradient(180deg, rgba(3,125,156,.13), rgba(3,125,156,.025)),
        rgba(255,255,255,.012) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035) !important;
}

.artist-studio-v20.sidebar-collapsed .artist-sidebar-home {
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    padding: 0 !important;
}

.artist-studio-v20.sidebar-collapsed .artist-sidebar-collapse {
    width: 48px;
    height: 42px;
    justify-self: center;
}

/* Music rights workflow --------------------------------------------------- */
.artist-rights-upload-note {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-height: 62px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 200, 87, .28);
    border-radius: 10px;
    background: rgba(255, 200, 87, .07);
    color: #f5c85c;
}
.artist-rights-upload-note > i {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(255, 200, 87, .11);
    font-size: 17px;
}
.artist-rights-upload-note strong,
.artist-rights-upload-note span { display: block; }
.artist-rights-upload-note strong { color: #fff2c6; font-size: 12px; }
.artist-rights-upload-note span { margin-top: 4px; color: #a9a28e; font-size: 10px; line-height: 1.45; }

.artist-release-status.rights-required {
    background: rgba(255, 168, 66, .14);
    color: #ffbd65;
    box-shadow: 0 0 0 1px rgba(255, 168, 66, .16) inset;
}
.artist-release-status.rights-declared {
    background: rgba(32, 217, 255, .11);
    color: #55ddf5;
}
.artist-market-action.rights-required {
    border-color: rgba(255, 168, 66, .55);
    background: rgba(255, 168, 66, .12);
    color: #ffc26f;
    animation: paxorRightsPulse 1.65s ease-in-out infinite;
}
.artist-market-action.rights-required:hover {
    border-color: rgba(255, 194, 111, .9);
    background: rgba(255, 168, 66, .2);
}
.artist-release-qr-blocked {
    grid-column: 1 / -1;
    min-height: 42px;
    display: flex;
    align-items: center;
    padding: 8px 10px;
    border: 1px dashed rgba(255, 255, 255, .12);
    border-radius: 8px;
    color: #7f8b90;
    font-size: 9px;
    line-height: 1.35;
}
@keyframes paxorRightsPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 168, 66, .08); }
    50% { box-shadow: 0 0 0 5px rgba(255, 168, 66, .12), 0 0 20px rgba(255, 168, 66, .12); }
}
@media (prefers-reduced-motion: reduce) {
    .artist-market-action.rights-required { animation: none; }
}

.artist-rights-dialog {
    width: min(900px, calc(100vw - 24px));
    height: min(760px, calc(100dvh - 24px));
    max-height: calc(100dvh - 24px);
    padding: 0;
    position: fixed;
    inset: 0;
    margin: auto;
    overflow: hidden;
    box-sizing: border-box;
    border: 1px solid rgba(32, 217, 255, .2);
    border-radius: 16px;
    background: #0b1013;
    color: #fff;
    box-shadow: 0 28px 90px rgba(0, 0, 0, .72);
}
.artist-rights-dialog::backdrop {
    background: rgba(0, 0, 0, .78);
    backdrop-filter: blur(6px);
}
.artist-rights-form {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    box-sizing: border-box;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
}
.artist-rights-form > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin: 0;
    padding: 20px 22px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
    background: rgba(10, 15, 18, .98);
}
.artist-rights-form h2 { margin: 4px 0 3px; font-size: 24px; }
.artist-rights-form header p { margin: 0; color: #8f9ba0; font-size: 11px; }
.artist-rights-close {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 9px;
    background: rgba(255, 255, 255, .04);
    color: #aeb8bc;
    cursor: pointer;
}
.artist-rights-body {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 18px 22px 20px;
    scrollbar-color: rgba(32, 217, 255, .28) transparent;
    scrollbar-width: thin;
}
.artist-rights-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.artist-rights-wide { grid-column: 1 / -1; }
.artist-rights-form .artist-field small {
    display: block;
    margin-top: 5px;
    color: #77868c;
    font-size: 9px;
    line-height: 1.35;
}
.artist-metadata-tag {
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    margin-left: 6px;
    padding: 1px 7px;
    border: 1px solid rgba(57, 222, 142, .3);
    border-radius: 999px;
    background: rgba(57, 222, 142, .08);
    color: #58e59b;
    font-size: 8px;
    font-style: normal;
    font-weight: 900;
    letter-spacing: .04em;
    vertical-align: middle;
}
.artist-rights-confirmations {
    display: grid;
    gap: 9px;
    margin-top: 16px;
    padding: 14px;
    border: 1px solid rgba(255, 200, 87, .18);
    border-radius: 11px;
    background: rgba(255, 200, 87, .05);
}
.artist-rights-confirmations label {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    color: #bec6c9;
    font-size: 10px;
    line-height: 1.45;
}
.artist-rights-confirmations input { margin-top: 1px; accent-color: #20d9ff; }
.artist-rights-footer {
    min-height: 72px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    margin: 0;
    padding: 12px 22px;
    border-top: 1px solid rgba(32, 217, 255, .13);
    background: rgba(8, 13, 16, .99);
    box-shadow: 0 -12px 28px rgba(0, 0, 0, .28);
    position: relative;
    z-index: 20;
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.artist-rights-footer .artist-form-status {
    min-height: 18px;
    margin: 0;
}
.artist-rights-footer-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}
#artist-rights-submit {
    min-width: 260px;
}
.artist-rights-footer .music-primary-btn,
.artist-rights-footer .music-secondary-btn {
    min-height: 44px;
}
.artist-rights-body {
    scrollbar-gutter: stable;
}
.artist-primary-artist-field {
    order: -10;
}
@media (max-width: 680px) {
    .artist-rights-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
    .artist-rights-form { height: 100%; max-height: 100%; }
    .artist-rights-grid { grid-template-columns: 1fr; }
    .artist-rights-wide { grid-column: auto; }
    .artist-rights-form > header { padding: 16px; }
    .artist-rights-body { padding: 14px 16px 18px; }
    .artist-rights-footer { grid-template-columns: 1fr; padding: 12px 16px; }
    .artist-rights-footer-actions { width: 100%; }
    .artist-rights-footer-actions button { flex: 1 1 0; min-width: 0; }
    #artist-rights-submit { min-width: 0; }
}


/* New track upload selections and uploaded-track manager ----------------- */
.artist-track-file.has-selected-file {
    border-color: rgba(57, 222, 142, .72) !important;
    background: rgba(35, 184, 112, .08) !important;
    box-shadow: 0 0 0 1px rgba(57, 222, 142, .08) inset;
}
.artist-track-file span.is-selected {
    max-width: min(100%, 460px);
    color: #3ade8e !important;
    font-size: 16px !important;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: .01em;
}

.artist-uploaded-tracks {
    grid-column: 1 / -1;
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .09);
}
.artist-uploaded-tracks-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 12px;
}
.artist-uploaded-tracks-heading h3 {
    margin: 4px 0 3px;
    color: #f4f7f8;
    font-size: 19px;
    line-height: 1.2;
}
.artist-uploaded-tracks-heading p {
    margin: 0;
    color: #7f8c91;
    font-size: 11px;
}
.artist-uploaded-tracks-count {
    min-width: 34px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    padding: 0 9px;
    border: 1px solid rgba(32, 217, 255, .24);
    border-radius: 999px;
    background: rgba(32, 217, 255, .08);
    color: #69e7ff;
    font-size: 12px;
    font-weight: 900;
}
.artist-uploaded-track-list {
    display: grid;
    gap: 9px;
}
.artist-uploaded-track-row {
    min-height: 74px;
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    padding: 9px 10px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 11px;
    background: rgba(255, 255, 255, .025);
    transition: border-color .18s ease, background .18s ease;
}
.artist-uploaded-track-row:hover {
    border-color: rgba(32, 217, 255, .2);
    background: rgba(32, 217, 255, .035);
}
.artist-uploaded-track-cover {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 9px;
    background: #0a1013 center / cover no-repeat;
    color: #3bcfe9;
    font-size: 18px;
}
.artist-uploaded-track-info {
    min-width: 0;
    display: grid;
    gap: 4px;
}
.artist-uploaded-track-info > strong {
    overflow: hidden;
    color: #f2f6f7;
    font-size: 13px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.artist-uploaded-track-info > span:not(.artist-uploaded-track-status) {
    overflow: hidden;
    color: #7f8d92;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.artist-uploaded-track-status {
    width: max-content;
    max-width: 100%;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    color: #9ca8ac;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.artist-uploaded-track-status.rights-required {
    background: rgba(255, 168, 66, .12);
    color: #ffc16c;
}
.artist-uploaded-track-status.rights-declared {
    background: rgba(32, 217, 255, .1);
    color: #65e4fa;
}
.artist-uploaded-track-status.minted {
    background: rgba(45, 205, 129, .11);
    color: #4be29a;
}
.artist-uploaded-track-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}
.artist-uploaded-track-actions button {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 11px;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 8px;
    background: rgba(255, 255, 255, .035);
    color: #b9c3c6;
    font: inherit;
    font-size: 9px;
    font-weight: 800;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, color .16s ease, opacity .16s ease;
}
.artist-uploaded-track-rights {
    border-color: rgba(255, 168, 66, .38) !important;
    background: rgba(255, 168, 66, .09) !important;
    color: #ffc16c !important;
    animation: paxorRightsPulse 1.65s ease-in-out infinite;
}
.artist-uploaded-track-delete:hover:not(:disabled) {
    border-color: rgba(255, 95, 105, .5);
    background: rgba(255, 74, 87, .1);
    color: #ff8c94;
}
.artist-uploaded-track-actions button:disabled {
    opacity: .35;
    cursor: not-allowed;
}
.artist-uploaded-track-empty {
    min-height: 78px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px dashed rgba(255, 255, 255, .1);
    border-radius: 10px;
    color: #657278;
}
.artist-uploaded-track-empty[hidden] { display: none !important; }
.artist-uploaded-track-empty > i {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: rgba(255, 255, 255, .04);
    color: #5f858e;
}
.artist-uploaded-track-empty strong,
.artist-uploaded-track-empty span { display: block; }
.artist-uploaded-track-empty strong { color: #95a0a4; font-size: 11px; }
.artist-uploaded-track-empty span { margin-top: 3px; color: #66747a; font-size: 9px; }

@media (max-width: 760px) {
    .artist-uploaded-track-row { grid-template-columns: 50px minmax(0, 1fr); }
    .artist-uploaded-track-cover { width: 50px; height: 50px; }
    .artist-uploaded-track-actions { grid-column: 1 / -1; justify-content: stretch; }
    .artist-uploaded-track-actions button { flex: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .artist-uploaded-track-rights { animation: none; }
}

/* Artist Studio v21: linked release guidance */
.artist-nft-link-panel .artist-nft-link-help {
    margin: 0;
    color: #63ff9a;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.5;
    text-shadow: 0 0 10px rgba(99, 255, 154, 0.16);
}

.artist-nft-link-panel:has([data-nft-music-track-select] option:checked:not([value=""])) .artist-nft-link-help {
    color: #7dff9d;
}


/* v19 active navigation emphasis */
.artist-nav-link.active strong,
.artist-nav-link.active span,
.artist-studio-v18 .artist-nav-link.active strong,
.artist-studio-v18 .artist-nav-link.active span {
    color: #63ffb0 !important;
}

.artist-nav-link.active small,
.artist-studio-v18 .artist-nav-link.active small {
    color: #9effcb !important;
}

/* v13: keep long artist names readable in the studio hero. */
.artist-studio-v20 .artist-hero-copy h1 {
    font-size: clamp(22px, 2.4vw, 36px) !important;
    line-height: 1.04;
}

@media (max-width: 680px) {
    .artist-studio-v20 .artist-hero-copy h1 {
        font-size: 18px !important;
    }
}

/* ===== AVATAR EDITOR ===== */
.avatar-editor-modal[hidden] {
    display: none !important;
}

.avatar-editor-modal {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(0, 0, 0, .72);
    backdrop-filter: blur(8px);
}

.avatar-editor-card {
    width: min(520px, 100%);
    padding: 20px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 20px;
    background: #0c1317;
    box-shadow: 0 28px 80px rgba(0,0,0,.55);
}

.avatar-editor-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.avatar-editor-head h3 {
    margin: 0;
    color: #fff;
    font-size: 20px;
}

.avatar-editor-close {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
    color: #fff;
    font-size: 25px;
    cursor: pointer;
}

.avatar-editor-stage {
    position: relative;
    width: min(420px, 80vw);
    aspect-ratio: 1;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 18px;
    background:
        linear-gradient(45deg, #161d21 25%, transparent 25%),
        linear-gradient(-45deg, #161d21 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #161d21 75%),
        linear-gradient(-45deg, transparent 75%, #161d21 75%);
    background-size: 24px 24px;
    background-position: 0 0, 0 12px, 12px -12px, -12px 0;
}

.avatar-editor-stage canvas {
    width: 100%;
    height: 100%;
    display: block;
    cursor: grab;
    touch-action: none;
}

.avatar-editor-stage canvas:active {
    cursor: grabbing;
}

.avatar-editor-circle {
    position: absolute;
    inset: 7%;
    border: 2px solid rgba(255,255,255,.95);
    border-radius: 50%;
    pointer-events: none;
    box-shadow: 0 0 0 9999px rgba(0,0,0,.48);
}

.avatar-editor-controls {
    display: grid;
    grid-template-columns: 42px 1fr 42px;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
}

.avatar-editor-controls button {
    height: 40px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 10px;
    background: rgba(255,255,255,.06);
    color: #fff;
    font-size: 22px;
    cursor: pointer;
}

.avatar-editor-controls input[type="range"] {
    width: 100%;
}

.avatar-editor-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
}

.avatar-editor-actions button {
    min-height: 42px;
    padding: 0 18px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 10px;
    background: rgba(255,255,255,.06);
    color: #fff;
    cursor: pointer;
}

.avatar-editor-actions .avatar-editor-apply {
    border-color: rgba(3,125,156,.75);
    background: #037d9c;
}

/* ===== AVATAR EDITOR COMPACT v2 ===== */
.avatar-editor-modal {
    z-index: 999999 !important;
    place-items: start center !important;
    padding: 72px 16px 110px !important;
    overflow-y: auto !important;
}

.avatar-editor-card {
    width: min(430px, calc(100vw - 32px)) !important;
    max-height: calc(100vh - 190px) !important;
    padding: 14px 16px !important;
    border-radius: 16px !important;
    overflow-y: auto !important;
}

.avatar-editor-head {
    margin-bottom: 10px !important;
}

.avatar-editor-head h3 {
    font-size: 18px !important;
}

.avatar-editor-close {
    width: 34px !important;
    height: 34px !important;
    font-size: 22px !important;
}

.avatar-editor-stage {
    width: min(330px, 68vw) !important;
}

.avatar-editor-controls {
    grid-template-columns: 38px 1fr 38px !important;
    gap: 10px !important;
    margin-top: 12px !important;
}

.avatar-editor-controls button {
    height: 38px !important;
}

.avatar-editor-actions {
    margin-top: 12px !important;
}

.avatar-editor-actions button {
    min-height: 38px !important;
    padding: 0 15px !important;
}

/* ===== AVATAR EDITOR TOP LAYER v3 ===== */
body.avatar-editor-open {
    overflow: hidden !important;
}

body > .avatar-editor-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    display: grid !important;
    place-items: center !important;
    padding: 70px 16px 105px !important;
    overflow: auto !important;
}

body > .avatar-editor-modal[hidden] {
    display: none !important;
}

body > .avatar-editor-modal .avatar-editor-card {
    width: min(400px, calc(100vw - 32px)) !important;
    max-height: calc(100dvh - 190px) !important;
    padding: 13px 15px !important;
    overflow-y: auto !important;
}

body > .avatar-editor-modal .avatar-editor-stage {
    width: min(290px, 62vw) !important;
}

body > .avatar-editor-modal .avatar-editor-head {
    margin-bottom: 8px !important;
}

body > .avatar-editor-modal .avatar-editor-controls {
    margin-top: 9px !important;
}

body > .avatar-editor-modal .avatar-editor-actions {
    margin-top: 9px !important;
}


/* ==========================================================================
   Artist Studio v21: keep bottom Public page action above global player
   ========================================================================== */

.artist-studio-v20 .artist-studio-sidebar {
    padding-bottom: 110px !important;
}

.artist-studio-v20 .artist-sidebar-actions {
    flex-shrink: 0;
    margin-top: auto;
    padding-bottom: 8px !important;
}

.artist-studio-v20.sidebar-collapsed .artist-studio-sidebar {
    padding-bottom: 110px !important;
}

.artist-studio-v20.sidebar-collapsed .artist-sidebar-actions {
    margin-top: auto;
    padding-bottom: 8px !important;
}


/* =========================================================
   ARTIST STUDIO v21
   PAXOR MUSIC HEADER + SECTION SWITCHER
   ========================================================= */

@media (min-width: 761px) {

    /*
     * Верхняя фиксированная часть.
     */
    .artist-studio-v20 .artist-sidebar-fixed {
        padding: 0 10px 10px !important;

        background:
            linear-gradient(
                180deg,
                rgba(5, 17, 21, .98),
                rgba(3, 11, 14, .98)
            ) !important;

        border-bottom:
            1px solid rgba(255,255,255,.08) !important;
    }


    /* =====================================================
       PAXOR MUSIC HEADER
       ===================================================== */

    .artist-studio-v20
    .artist-sidebar-brand-row {
        width: 100% !important;

        min-height: 55px !important;
        height: 55px !important;

        display: grid !important;
        grid-template-columns:
            minmax(0, 1fr) 40px !important;

        align-items: center !important;
        gap: 6px !important;

        padding: 0 !important;
        margin: 0 !important;
    }


    .artist-studio-v20
    .artist-sidebar-home {
        width: 100% !important;
        min-width: 0 !important;

        height: 46px !important;
        min-height: 46px !important;

        display: flex !important;
        align-items: center !important;

        gap: 10px !important;

        padding: 0 7px !important;
        margin: 0 !important;

        border: 0 !important;
        border-radius: 0 !important;

        background: transparent !important;
        box-shadow: none !important;

        color: #f4f8fa !important;

        text-decoration: none !important;
    }


    /* Большие голубые наушники */
    .artist-studio-v20
    .artist-sidebar-home-icon {
        width: 36px !important;
        min-width: 36px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        margin: 0 !important;

        color: #20d9ff !important;

        font-size: 30px !important;
        line-height: 1 !important;
    }


    .artist-studio-v20
    .artist-sidebar-home > span {
        min-width: 0 !important;

        color: #f3f7f8 !important;

        font-size: 18px !important;
        font-weight: 700 !important;

        white-space: nowrap !important;
    }

    .artist-studio-v20
    .artist-sidebar-home strong {
        color: #fff !important;
        font-weight: 800 !important;
    }


    /*
     * Кнопка collapse остаётся существующей —
     * JS Artist Studio продолжает работать.
     */
    .artist-studio-v20
    .artist-sidebar-brand-row
    .artist-sidebar-collapse {
        position: static !important;

        width: 38px !important;
        min-width: 38px !important;

        height: 38px !important;
        min-height: 38px !important;

        margin: 0 !important;
        padding: 0 !important;

        align-self: center !important;
        justify-self: center !important;
    }


    /* =====================================================
       MARKETPLACE / PROFILE / ARTIST STUDIO
       ===================================================== */

    .artist-studio-v20
    .artist-music-switcher {
        width: 100% !important;

        display: grid !important;
        grid-template-columns: 1fr !important;

        gap: 5px !important;

        padding: 6px 0 0 !important;
        margin: 0 !important;
    }


    .artist-studio-v20
    .artist-music-switcher-item {
        width: 100% !important;

        min-height: 50px !important;

        display: grid !important;
        grid-template-columns:
            40px minmax(0,1fr) !important;

        align-items: center !important;

        gap: 9px !important;

        padding: 5px 10px !important;

        border: 1px solid transparent !important;
        border-radius: 6px !important;

        background: transparent !important;

        color: #aeb9bd !important;

        text-decoration: none !important;

        transition:
            background .16s ease,
            color .16s ease,
            border-color .16s ease !important;
    }


    .artist-studio-v20
    .artist-music-switcher-item:hover {
        background: rgba(255,255,255,.04) !important;
        color: #fff !important;
    }


    /* Artist Studio = активная вкладка */
    .artist-studio-v20
    .artist-music-switcher-item.active {
        background:
            linear-gradient(
                90deg,
                rgba(0,182,224,.12),
                rgba(0,182,224,.04)
            ) !important;

        border-color:
            rgba(24,209,248,.25) !important;

        color: #22d8fa !important;

        box-shadow:
            inset 3px 0 0 #1bd5f8 !important;
    }


    /* Обычный Marketplace icon */
    .artist-studio-v20
    .artist-music-switcher-icon {
        width: 40px !important;
        height: 40px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .artist-studio-v20
    .artist-music-switcher-icon i {
        font-size: 17px !important;
        line-height: 1 !important;
    }


    /* Profile / Artist Studio avatars */
    .artist-studio-v20
    .artist-music-switcher-avatar {
        position: relative !important;

        width: 38px !important;
        min-width: 38px !important;
        height: 38px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        overflow: hidden !important;

        border-radius: 50% !important;

        background:
            rgba(29,52,59,.72) !important;

        border:
            1px solid rgba(255,255,255,.10) !important;
    }


    .artist-studio-v20
    .artist-music-switcher-avatar img {
        position: absolute !important;
        inset: 0 !important;

        width: 100% !important;
        height: 100% !important;

        display: block !important;

        object-fit: cover !important;
    }


    .artist-studio-v20
    .artist-music-switcher-avatar.has-artwork > i {
        display: none !important;
    }


    .artist-studio-v20
    .artist-music-switcher-avatar > i {
        font-size: 16px !important;
    }


    .artist-studio-v20
    .artist-music-switcher-copy {
        min-width: 0 !important;

        font-size: 15px !important;
        font-weight: 700 !important;

        text-align: left !important;
    }


    /*
     * Старое содержимое Artist Studio начинается
     * аккуратно после нового переключателя.
     */
    .artist-studio-v20
    .artist-sidebar-scroll {
        padding-top: 10px !important;
    }
}


/* =========================================================
   COLLAPSED ARTIST STUDIO SIDEBAR
   Сохраняем компактный режим.
   ========================================================= */

@media (min-width: 761px) {

    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-fixed {
        padding: 7px 6px 9px !important;
    }


    /* Наушники сверху, collapse под ними */
    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-brand-row {
        height: auto !important;
        min-height: 0 !important;

        display: grid !important;
        grid-template-columns: 1fr !important;

        justify-items: center !important;

        gap: 5px !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-home {
        width: 44px !important;

        height: 38px !important;
        min-height: 38px !important;

        justify-content: center !important;

        padding: 0 !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-home > span {
        display: none !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-home-icon {
        width: 30px !important;
        min-width: 30px !important;

        font-size: 22px !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-collapse {
        position: static !important;
        margin: 0 auto !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-music-switcher {
        justify-items: center !important;

        gap: 5px !important;

        padding-top: 8px !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-music-switcher-item {
        width: 46px !important;

        min-width: 46px !important;

        height: 46px !important;
        min-height: 46px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        padding: 0 !important;

        box-shadow: none !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-music-switcher-copy {
        display: none !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-music-switcher-icon,
    .artist-studio-v20.sidebar-collapsed
    .artist-music-switcher-avatar {
        width: 30px !important;
        min-width: 30px !important;
        height: 30px !important;
    }
}



/* =========================================================
   ARTIST STUDIO — PAXOR MUSIC LEFT TOP FINAL v22
   ========================================================= */

@media (min-width: 761px) {

    .artist-studio-v20
    .artist-studio-sidebar {
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
    }


    /* =====================================================
       1. PAXOR MUSIC HEADER
       ===================================================== */

    .artist-studio-v20
    .artist-sidebar-fixed {
        position: relative !important;

        width: 100% !important;

        height: 55px !important;
        min-height: 55px !important;
        max-height: 55px !important;

        flex: 0 0 55px !important;

        overflow: visible !important;

        padding: 0 10px !important;
        margin: 0 !important;

        border-bottom: 0 !important;

        background: transparent !important;
    }


    .artist-studio-v20
    .artist-sidebar-brand-row {
        width: 100% !important;

        height: 55px !important;
        min-height: 55px !important;
        max-height: 55px !important;

        display: grid !important;
        grid-template-columns: minmax(0,1fr) 38px !important;

        align-items: center !important;

        gap: 5px !important;

        padding: 0 !important;
        margin: 0 !important;
    }


    /* убираем старые декоративные слои */
    .artist-studio-v20
    .artist-sidebar-brand-row::before,

    .artist-studio-v20
    .artist-sidebar-brand-row::after,

    .artist-studio-v20
    .artist-sidebar-home::before,

    .artist-studio-v20
    .artist-sidebar-home::after {
        display: none !important;
        content: none !important;
    }


    .artist-studio-v20
    .artist-sidebar-home {
        width: 100% !important;

        height: 48px !important;
        min-height: 48px !important;

        display: flex !important;
        align-items: center !important;

        gap: 9px !important;

        padding: 0 5px !important;
        margin: 0 !important;

        border: 0 !important;
        border-radius: 0 !important;

        background: transparent !important;
        background-image: none !important;

        box-shadow: none !important;

        text-decoration: none !important;
    }


    /* Наушники — без старого голубого круга */
    .artist-studio-v20
    .artist-sidebar-home
    > i.artist-sidebar-home-icon {
        width: 38px !important;
        min-width: 38px !important;
        height: auto !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        padding: 0 !important;
        margin: 0 !important;

        border: 0 !important;
        border-radius: 0 !important;

        background: transparent !important;
        background-image: none !important;

        box-shadow: none !important;

        color: #20d9ff !important;

        font-size: 30px !important;
        line-height: 1 !important;
    }


    .artist-studio-v20
    .artist-sidebar-home > span {
        display: block !important;

        color: #f3f7f8 !important;

        font-size: 18px !important;
        font-weight: 700 !important;
        line-height: 1 !important;

        white-space: nowrap !important;
    }


    .artist-studio-v20
    .artist-sidebar-home strong {
        color: #fff !important;
        font-weight: 800 !important;
    }


    /* Кнопка collapse справа */
    .artist-studio-v20
    .artist-sidebar-brand-row
    .artist-sidebar-collapse {
        position: static !important;

        width: 36px !important;
        min-width: 36px !important;

        height: 36px !important;
        min-height: 36px !important;

        margin: 0 !important;
        padding: 0 !important;

        justify-self: center !important;
        align-self: center !important;

        transform: none !important;
    }


    /* =====================================================
       2. MARKETPLACE / PROFILE / ARTIST STUDIO
       ===================================================== */

    .artist-studio-v20
    > .artist-workspace
    > .artist-studio-sidebar
    > .artist-music-switcher {
        position: relative !important;

        width: auto !important;

        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        flex: 0 0 auto !important;

        display: grid !important;
        grid-template-columns: 1fr !important;

        gap: 4px !important;

        margin: 0 10px !important;
        padding: 6px 0 10px !important;

        overflow: visible !important;

        border-bottom:
            1px solid rgba(255,255,255,.09) !important;

        background: transparent !important;

        z-index: 5 !important;
    }


    .artist-studio-v20
    .artist-music-switcher-item {
        position: relative !important;

        width: 100% !important;

        height: 50px !important;
        min-height: 50px !important;
        max-height: 50px !important;

        display: grid !important;

        grid-template-columns:
            40px minmax(0,1fr) !important;

        align-items: center !important;

        gap: 8px !important;

        padding: 0 10px !important;
        margin: 0 !important;

        border: 1px solid transparent !important;
        border-radius: 5px !important;

        background: transparent !important;

        box-shadow: none !important;

        color: #aeb9bd !important;

        text-decoration: none !important;

        opacity: 1 !important;
        visibility: visible !important;
    }


    .artist-studio-v20
    .artist-music-switcher-item:hover {
        background: rgba(255,255,255,.045) !important;
        color: #fff !important;
    }


    /* Artist Studio активна */
    .artist-studio-v20
    .artist-music-switcher-item.active {
        color: #20d9ff !important;

        background:
            linear-gradient(
                90deg,
                rgba(0,182,224,.16),
                rgba(0,182,224,.055)
            ) !important;

        border-color:
            rgba(32,217,255,.25) !important;
    }


    .artist-studio-v20
    .artist-music-switcher-icon {
        width: 38px !important;
        height: 38px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        margin: 0 !important;
    }


    .artist-studio-v20
    .artist-music-switcher-icon i {
        font-size: 17px !important;
    }


    .artist-studio-v20
    .artist-music-switcher-avatar {
        position: relative !important;

        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        justify-self: center !important;

        overflow: hidden !important;

        margin: 0 !important;

        border-radius: 50% !important;

        background: rgba(17,38,44,.85) !important;

        border:
            1px solid rgba(255,255,255,.10) !important;
    }


    .artist-studio-v20
    .artist-music-switcher-avatar img {
        position: absolute !important;
        inset: 0 !important;

        width: 100% !important;
        height: 100% !important;

        object-fit: cover !important;

        display: block !important;
    }


    .artist-studio-v20
    .artist-music-switcher-avatar.has-artwork > i {
        display: none !important;
    }


    .artist-studio-v20
    .artist-music-switcher-copy {
        display: block !important;

        min-width: 0 !important;

        color: inherit !important;

        font-size: 15px !important;
        font-weight: 700 !important;

        line-height: 1 !important;

        text-align: left !important;

        opacity: 1 !important;
        visibility: visible !important;
    }


    /* =====================================================
       3. OLD ARTIST STUDIO MENU
       ===================================================== */

    .artist-studio-v20
    .artist-sidebar-scroll {
        flex: 1 1 auto !important;

        min-height: 0 !important;

        padding-top: 9px !important;
    }
}



/* =========================================================
   ARTIST STUDIO — COLLAPSED SIDEBAR FINAL FIX
   headphones -> collapse -> section icons
   ========================================================= */

@media (min-width: 761px) {

    /* -----------------------------------------------------
       Верх свернутой панели
       ----------------------------------------------------- */

    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-fixed {
        display: block !important;

        width: 100% !important;

        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        flex: 0 0 auto !important;

        padding: 6px 4px 4px !important;

        overflow: visible !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-brand-row {
        width: 100% !important;

        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        display: flex !important;
        flex-direction: column !important;

        align-items: center !important;
        justify-content: flex-start !important;

        gap: 3px !important;

        padding: 0 !important;
        margin: 0 !important;

        overflow: visible !important;
    }


    /* -----------------------------------------------------
       1. Наушники
       ----------------------------------------------------- */

    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-home {
        width: 42px !important;
        min-width: 42px !important;

        height: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;

        flex: 0 0 34px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        padding: 0 !important;
        margin: 0 auto !important;

        overflow: visible !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-home > span {
        display: none !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-home
    > i.artist-sidebar-home-icon {
        display: flex !important;

        width: 30px !important;
        min-width: 30px !important;

        height: 30px !important;

        align-items: center !important;
        justify-content: center !important;

        font-size: 22px !important;

        margin: 0 !important;

        color: #20d9ff !important;

        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }


    /* -----------------------------------------------------
       2. Кнопка свернуть / развернуть
       ОБЯЗАТЕЛЬНО видна под наушниками
       ----------------------------------------------------- */

    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-brand-row
    #artist-sidebar-collapse,

    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-brand-row
    .artist-sidebar-collapse {
        position: relative !important;

        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;

        pointer-events: auto !important;

        width: 28px !important;
        min-width: 28px !important;
        max-width: 28px !important;

        height: 22px !important;
        min-height: 22px !important;
        max-height: 22px !important;

        flex: 0 0 22px !important;

        align-items: center !important;
        justify-content: center !important;

        top: 0 !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;

        transform: none !important;

        margin: 0 auto !important;
        padding: 0 !important;

        overflow: visible !important;

        z-index: 50 !important;
    }


    /* Сам маленький нарисованный значок */
    .artist-studio-v20.sidebar-collapsed
    #artist-sidebar-collapse
    .artist-sidebar-layout-icon {
        position: relative !important;

        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;

        width: 24px !important;
        height: 18px !important;

        top: -2px !important;

        border-width: 1.5px !important;
        border-radius: 5px !important;

        transform: none !important;
    }


    .artist-studio-v20.sidebar-collapsed
    #artist-sidebar-collapse
    .artist-sidebar-layout-icon::after {
        inset: 2px !important;
        border-radius: 2px !important;
    }


    .artist-studio-v20.sidebar-collapsed
    #artist-sidebar-collapse
    .artist-sidebar-layout-rail,

    .artist-studio-v20.sidebar-collapsed
    #artist-sidebar-collapse
    .artist-sidebar-layout-content {
        top: 2px !important;
        bottom: 2px !important;

        border-radius: 2px !important;
    }


    .artist-studio-v20.sidebar-collapsed
    #artist-sidebar-collapse
    .artist-sidebar-layout-rail {
        left: 3px !important;
        width: 3px !important;
    }


    .artist-studio-v20.sidebar-collapsed
    #artist-sidebar-collapse
    .artist-sidebar-layout-content {
        left: 9px !important;
        width: 10px !important;
    }


    /* -----------------------------------------------------
       3. Переключатели ниже
       ----------------------------------------------------- */

    .artist-studio-v20.sidebar-collapsed
    > .artist-workspace
    > .artist-studio-sidebar
    > .artist-music-switcher {
        margin-top: 4px !important;
        padding-top: 4px !important;
    }


    /*
     * Старую карточку артиста скрываем и CSS-ом
     * на случай старого HTML в кеше.
     */
    .artist-studio-v20
    .artist-sidebar-scroll
    > .artist-sidebar-profile {
        display: none !important;
    }
}


/* =========================================================
   ARTIST STUDIO — REMOVE GAP UNDER GLOBAL TOP MENU
   ========================================================= */

@media (min-width: 761px) {

    main.artist-studio {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    main.artist-studio
    .artist-workspace {
        margin-top: 0 !important;
    }
}



/* =========================================================
   ARTIST STUDIO — REMOVE GLOBAL CONTENT GAP FINAL
   ========================================================= */

@media (min-width: 761px) {

    /*
     * Artist Studio находится внутри .main-content.
     * Именно этот внешний контейнер создаёт пустую
     * полосу под глобальным горизонтальным меню.
     */
    body:has(main.artist-studio)
    .main-content {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }

    body:has(main.artist-studio)
    main.artist-studio {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }

    body:has(main.artist-studio)
    main.artist-studio
    > .artist-workspace {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }
}



/* =========================================================
   ARTIST STUDIO — COMPACT LEFT NAV FINAL
   only action rows, no category labels
   ========================================================= */

@media (min-width: 761px) {

    /* Убираем WORKSPACE и названия групп:
       ARTIST / UPLOAD MUSIC / MUSIC NFT / YOUR CATALOG */
    .artist-studio-v20
    .artist-sidebar-workspace-label,

    .artist-studio-v20
    .artist-nav-label {
        display: none !important;
    }


    /* Меню становится плотнее */
    .artist-studio-v20
    .artist-studio-nav {
        display: flex !important;
        flex-direction: column !important;

        gap: 5px !important;

        margin: 0 !important;
        padding: 0 8px 8px !important;
    }


    /* Между группами больше нет больших промежутков */
    .artist-studio-v20
    .artist-nav-group {
        display: block !important;

        margin: 0 !important;
        padding: 0 !important;
    }


    /* Сами планки ниже */
    .artist-studio-v20
    .artist-nav-link {
        width: 100% !important;

        min-height: 52px !important;
        height: 52px !important;
        max-height: 52px !important;

        display: grid !important;
        grid-template-columns: 34px minmax(0, 1fr) !important;

        align-items: center !important;

        gap: 8px !important;

        margin: 0 !important;
        padding: 6px 10px !important;

        border-radius: 7px !important;
    }


    /* Значки компактнее */
    .artist-studio-v20
    .artist-nav-link > i {
        width: 30px !important;

        font-size: 17px !important;

        text-align: center !important;

        margin: 0 !important;
    }


    /* Текст внутри планки */
    .artist-studio-v20
    .artist-nav-link > span {
        min-width: 0 !important;

        display: grid !important;
        gap: 1px !important;

        margin: 0 !important;
    }


    /* Основное название */
    .artist-studio-v20
    .artist-nav-link strong {
        font-size: 13px !important;
        line-height: 1.15 !important;
        font-weight: 750 !important;
    }


    /* Маленькое описание */
    .artist-studio-v20
    .artist-nav-link small {
        font-size: 9px !important;
        line-height: 1.15 !important;

        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }


    /* Сама прокручиваемая область начинается компактнее */
    .artist-studio-v20
    .artist-sidebar-scroll {
        padding-top: 7px !important;
    }
}


/* =========================================================
   ARTIST STUDIO — ULTRA COMPACT LEFT NAV
   ========================================================= */

@media (min-width: 761px) {

    /* Прокручиваемая часть сразу после Artist Studio */
    .artist-studio-v20
    .artist-sidebar-scroll {
        padding-top: 4px !important;
    }

    /* Всё меню плотнее */
    .artist-studio-v20
    .artist-studio-nav {
        display: flex !important;
        flex-direction: column !important;

        gap: 2px !important;
        row-gap: 2px !important;

        margin: 0 !important;
        padding: 0 7px 6px !important;
    }

    /* Полностью убираем старые промежутки групп */
    .artist-studio-v20
    .artist-studio-nav
    > .artist-nav-group {
        display: block !important;

        margin: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;

        padding: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;

        gap: 0 !important;
        row-gap: 0 !important;
    }

    .artist-studio-v20
    .artist-studio-nav
    > .artist-nav-group
    + .artist-nav-group {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    /* Подсказки групп остаются полностью скрыты */
    .artist-studio-v20
    .artist-sidebar-workspace-label,

    .artist-studio-v20
    .artist-nav-label {
        display: none !important;

        height: 0 !important;
        min-height: 0 !important;
        max-height: 0 !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    /* Сами планки ещё ниже */
    .artist-studio-v20
    .artist-nav-group
    > .artist-nav-link {
        width: 100% !important;

        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;

        display: grid !important;
        grid-template-columns: 30px minmax(0, 1fr) !important;
        align-items: center !important;

        gap: 7px !important;

        margin: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;

        padding: 4px 8px !important;

        border-radius: 6px !important;
    }

    /* Значок */
    .artist-studio-v20
    .artist-nav-link
    > i {
        width: 28px !important;

        font-size: 15px !important;
        line-height: 1 !important;

        margin: 0 !important;
    }

    /* Текстовый блок */
    .artist-studio-v20
    .artist-nav-link
    > span {
        display: grid !important;
        gap: 0 !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    /* Название */
    .artist-studio-v20
    .artist-nav-link
    strong {
        font-size: 12px !important;
        line-height: 1.1 !important;
    }

    /* Подпись */
    .artist-studio-v20
    .artist-nav-link
    small {
        margin-top: 1px !important;

        font-size: 8px !important;
        line-height: 1.05 !important;

        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
}


/* =========================================================
   ARTIST STUDIO — REMOVE OLD 89PX NAV GROUP HEIGHT
   ========================================================= */

@media (min-width: 761px) {

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav {
        gap: 3px !important;
        row-gap: 3px !important;
    }

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav
    > .artist-nav-group {
        position: static !important;

        width: 100% !important;

        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;

        display: block !important;

        grid-template-columns: none !important;
        grid-template-rows: none !important;
        grid-auto-rows: auto !important;
        grid-auto-flow: initial !important;

        align-content: normal !important;
        align-items: normal !important;

        margin: 0 !important;
        padding: 0 !important;

        gap: 0 !important;
        row-gap: 0 !important;

        overflow: visible !important;
    }

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav
    > .artist-nav-group
    > .artist-nav-link {
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;

        margin: 0 !important;

        flex: none !important;
        flex-basis: auto !important;
    }
}



/* =====================================================================
   ARTIST STUDIO — PAXOR MUSIC HEADER EXACT MIRROR
   ===================================================================== */

@media (min-width: 761px) {

    /*
     * Обертка нужна только для правильной геометрии оригинальной
     * music-sidebar-brand-row.
     */
    .artist-studio-v20
    .artist-sidebar-fixed {
        position: relative !important;

        width: 100% !important;

        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        flex: 0 0 auto !important;

        padding: 0 0 0 16px !important;
        margin: 0 !important;

        overflow: visible !important;

        background: transparent !important;
        border: 0 !important;
    }


    /* ================================================================
       РАМКА — точные параметры Paxor Music
       ================================================================ */

    .artist-studio-v20
    .artist-sidebar-fixed
    > .artist-sidebar-brand-row.music-sidebar-brand-row {
        position: relative !important;

        width: calc(100% + 16px) !important;

        height: 55px !important;
        min-height: 55px !important;
        max-height: 55px !important;

        margin: 0 0 14px -16px !important;
        padding: 0 8px 0 0 !important;

        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 48px !important;

        align-items: center !important;

        gap: 0 !important;

        overflow: hidden !important;

        border: 2px solid #037d9c !important;
        border-radius: 15px !important;

        background:
            linear-gradient(
                90deg,
                rgba(0, 0, 0, 0.46),
                rgba(0, 0, 0, 0.14) 48%,
                rgba(0, 0, 0, 0.04)
            ),
            radial-gradient(
                circle at 78% 48%,
                rgba(3, 125, 156, 0.42),
                transparent 38%
            ),
            linear-gradient(
                180deg,
                rgba(3, 125, 156, 0.38),
                rgba(4, 22, 32, 0.84)
            ) !important;

        box-shadow:
            0 0 16px rgba(3, 125, 156, 0.48),
            0 10px 24px rgba(0, 0, 0, 0.28),
            inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
    }


    /* Световой слой рамки — тот же Paxor Music */
    .artist-studio-v20
    .artist-sidebar-fixed
    > .artist-sidebar-brand-row.music-sidebar-brand-row::before {
        content: "" !important;

        display: block !important;

        position: absolute !important;
        inset: 0 !important;

        background:
            linear-gradient(
                90deg,
                rgba(255, 255, 255, 0.08),
                transparent 42%
            ),
            radial-gradient(
                circle at 15% 20%,
                rgba(255, 255, 255, 0.12),
                transparent 32%
            ) !important;

        pointer-events: none !important;
    }


    .artist-studio-v20
    .artist-sidebar-brand-row.music-sidebar-brand-row
    > * {
        position: relative !important;
        z-index: 1 !important;
    }


    /* ================================================================
       PAXOR MUSIC — логотип и текст
       ================================================================ */

    .artist-studio-v20
    .artist-sidebar-home.music-brand {
        width: 100% !important;
        min-width: 0 !important;

        height: 46px !important;
        min-height: 46px !important;
        max-height: 46px !important;

        margin: 0 !important;

        /* Именно такие боковые расстояния остаются
           у оригинального Paxor Music после финальных override */
        padding: 0 8px 0 16px !important;

        border: 0 !important;
        border-radius: 0 !important;

        background: transparent !important;
        box-shadow: none !important;
    }


    /*
     * Наушники теперь находятся внутри настоящего music-brand-mark.
     * Старый Artist Studio круг/фон полностью запрещаем.
     */
    .artist-studio-v20
    .artist-sidebar-home.music-brand
    .music-brand-mark,

    .artist-studio-v20
    .artist-sidebar-home.music-brand
    .music-brand-mark::before,

    .artist-studio-v20
    .artist-sidebar-home.music-brand
    .music-brand-mark::after {
        background-color: transparent !important;
        box-shadow: none !important;
    }


    /* Старый Artist Studio selector больше не должен менять наушники */
    .artist-studio-v20
    .artist-sidebar-home.music-brand
    .music-brand-mark
    > i.artist-sidebar-home-icon {
        width: auto !important;
        min-width: 0 !important;
        height: auto !important;

        padding: 0 !important;
        margin: 0 !important;

        border: 0 !important;

        background: transparent !important;

        line-height: 1 !important;
    }


    /*
     * Убираем старое принудительное оформление текста Artist Studio.
     * Размер/цвет/интервал теперь наследуются от настоящего .music-brand.
     */
    .artist-studio-v20
    .artist-sidebar-home.music-brand
    > span:not(.music-brand-mark) {
        font-size: inherit !important;
        line-height: inherit !important;

        color: inherit !important;

        margin: 0 !important;
        padding: 0 !important;

        white-space: nowrap !important;
    }


    /* ================================================================
       COLLAPSE BUTTON — ровно 38 × 38 как Paxor Music
       ================================================================ */

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-sidebar-brand-row.music-sidebar-brand-row
    #artist-sidebar-collapse {
        position: static !important;

        inset: auto !important;

        width: 38px !important;
        min-width: 38px !important;
        max-width: 38px !important;

        height: 38px !important;
        min-height: 38px !important;
        max-height: 38px !important;

        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        justify-self: end !important;
        align-self: center !important;

        margin: 0 !important;
        padding: 0 !important;

        transform: none !important;
    }


    /* ================================================================
       COLLAPSED — копия финальной геометрии Paxor Music
       ================================================================ */

    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-fixed {
        padding: 0 !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-brand-row.music-sidebar-brand-row {
        width: 100% !important;

        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;

        margin: 0 auto 10px !important;

        padding: 5px 0 6px !important;

        display: flex !important;
        flex-direction: column !important;

        align-items: center !important;
        justify-content: flex-start !important;

        gap: 7px !important;

        border-width: 1px !important;
        border-radius: 14px !important;

        overflow: hidden !important;
    }


    /* В свернутом состоянии текст Paxor Music скрыт */
    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-home.music-brand
    > span:not(.music-brand-mark) {
        display: none !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-home.music-brand {
        width: 100% !important;
        min-width: 0 !important;

        height: auto !important;
        min-height: 52px !important;
        max-height: none !important;

        flex: 0 0 auto !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        padding: 0 !important;
        margin: 0 !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-home.music-brand
    .music-brand-mark {
        width: 30px !important;
        min-width: 30px !important;
        height: 30px !important;

        flex: 0 0 30px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        margin: 0 auto !important;
        padding: 0 !important;

        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }


    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-home.music-brand
    .music-brand-mark
    > i {
        font-size: 22px !important;
        line-height: 1 !important;

        width: auto !important;
        height: auto !important;

        margin: 0 !important;
    }


    /* Сама кнопка — 28 × 22 */
    .artist-studio-v20.sidebar-collapsed
    .artist-sidebar-brand-row.music-sidebar-brand-row
    #artist-sidebar-collapse {
        position: static !important;

        width: 28px !important;
        min-width: 28px !important;
        max-width: 28px !important;

        height: 22px !important;
        min-height: 22px !important;
        max-height: 22px !important;

        flex: 0 0 22px !important;

        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        margin: 0 auto !important;
        padding: 0 !important;

        overflow: visible !important;

        transform: none !important;
    }


    /*
     * Нарисованный значок внутри — 24 × 18.
     * Это точные финальные размеры Paxor Music.
     */
    .artist-studio-v20.sidebar-collapsed
    #artist-sidebar-collapse
    .music-sidebar-layout-icon {
        position: relative !important;

        width: 24px !important;
        height: 18px !important;

        top: -4px !important;

        border-width: 1.5px !important;
        border-radius: 5px !important;

        transform: none !important;
    }


    .artist-studio-v20.sidebar-collapsed
    #artist-sidebar-collapse
    .music-sidebar-layout-icon::after {
        inset: 2px !important;
        border-radius: 2px !important;
    }


    /* Левая голубая часть */
    .artist-studio-v20.sidebar-collapsed
    #artist-sidebar-collapse
    .music-sidebar-layout-rail {
        top: 2px !important;
        bottom: 2px !important;

        left: 3px !important;
        width: 3px !important;

        border-radius: 2px !important;

        box-shadow:
            0 0 5px rgba(32, 217, 255, .25) !important;
    }


    /* Правая часть */
    .artist-studio-v20.sidebar-collapsed
    #artist-sidebar-collapse
    .music-sidebar-layout-content {
        top: 2px !important;
        bottom: 2px !important;

        left: 9px !important;
        width: 10px !important;

        border-radius: 2px !important;
    }
}


/* ============================================================
   PAXOR LYRICS SYNC PROGRESS UI V1
   ============================================================ */

.artist-lyrics-sync-panel {
    width: 100%;
    max-width: 620px;
    margin-top: 10px;
    padding: 11px 12px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 12px;
    background: rgba(8, 13, 16, .62);
    box-sizing: border-box;
}

.artist-lyrics-sync-summary {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
}

.artist-lyrics-sync-summary-icon {
    width: 26px;
    aspect-ratio: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .07);
    color: #c7d1d5;
    font-size: 11px;
}

.artist-lyrics-sync-summary-copy {
    min-width: 0;
}

.artist-lyrics-sync-summary-copy strong,
.artist-lyrics-sync-summary-copy small {
    display: block;
}

.artist-lyrics-sync-summary-copy strong {
    color: #f4f7f8;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .045em;
}

.artist-lyrics-sync-summary-copy small {
    margin-top: 2px;
    color: #8f9da2;
    font-size: 10px;
    line-height: 1.35;
}

.artist-lyrics-sync-summary-progress {
    color: #a9b6ba;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.artist-lyrics-sync-progress {
    position: relative;
    margin-top: 9px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    overflow: hidden;
}

.artist-lyrics-sync-progress-value {
    display: block;
    min-height: 3px;
    border-radius: inherit;
    background: #2fd47b;
    transition: width .3s ease;
}

.artist-lyrics-sync-steps {
    margin-top: 10px;
    display: grid;
    gap: 5px;
}

.artist-lyrics-sync-step {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    color: #6f7d82;
    font-size: 9px;
    line-height: 1.35;
}

.artist-lyrics-sync-step-icon {
    width: 15px;
    flex: 0 0 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
}

.artist-lyrics-sync-step-label {
    min-width: 0;
}

.artist-lyrics-sync-step.is-done {
    color: #8fbfa4;
}

.artist-lyrics-sync-step.is-active {
    color: #f3f7f8;
    font-weight: 700;
}

.artist-lyrics-sync-step.is-attention {
    color: #e4b85c;
    font-weight: 700;
}

.artist-lyrics-sync-step.is-failed {
    color: #e47676;
    font-weight: 700;
}

.artist-lyrics-sync-panel.is-completed {
    border-color: rgba(47, 212, 123, .26);
    background: rgba(23, 74, 46, .15);
}

.artist-lyrics-sync-panel.is-completed
.artist-lyrics-sync-summary-icon {
    background: rgba(47, 212, 123, .14);
    color: #66dfa0;
}

.artist-lyrics-sync-panel.is-attention {
    border-color: rgba(228, 184, 92, .28);
}

.artist-lyrics-sync-panel.is-attention
.artist-lyrics-sync-summary-icon {
    color: #e4b85c;
}

.artist-lyrics-sync-panel.is-failed {
    border-color: rgba(228, 118, 118, .30);
}

.artist-lyrics-sync-panel.is-failed
.artist-lyrics-sync-summary-icon {
    color: #e47676;
}

.artist-lyrics-sync-panel.is-skipped,
.artist-lyrics-sync-panel.is-idle {
    opacity: .78;
}

@media (max-width: 720px) {

    .artist-lyrics-sync-panel {
        max-width: none;
    }

    .artist-lyrics-sync-summary {
        grid-template-columns:
            26px minmax(0, 1fr);
    }

    .artist-lyrics-sync-summary-progress {
        grid-column: 2;
    }
}

/* === PAXOR LYRICS SYNC PROGRESS UI V1 END === */


/* ============================================================
   PAXOR LYRICS SYNC PROGRESS UI V2
   Larger release card + collapsible completed details
   ============================================================ */


/* ------------------------------------------------------------
   UPLOADED TRACK CARD
   ------------------------------------------------------------ */

.artist-uploaded-track-row {
    min-height: 152px;
    grid-template-columns:
        120px minmax(0, 1fr) auto;
    align-items: start;
    gap: 18px;
    padding: 16px;
    border-radius: 14px;
}

.artist-uploaded-track-cover {
    width: 120px;
    height: 120px;
    border-radius: 13px;
    border-color: rgba(32, 217, 255, .26);
    box-shadow:
        0 0 0 1px rgba(32, 217, 255, .035),
        0 12px 30px rgba(0, 0, 0, .24);
}

.artist-uploaded-track-info {
    gap: 6px;
}

.artist-uploaded-track-info > strong {
    font-size: 20px;
    line-height: 1.15;
    font-weight: 850;
}

.artist-uploaded-track-info
> span:not(.artist-uploaded-track-status) {
    font-size: 13px;
    line-height: 1.35;
}

.artist-uploaded-track-status {
    padding: 4px 9px;
    font-size: 10px;
}

.artist-uploaded-track-actions {
    align-self: start;
    padding-top: 2px;
}

.artist-uploaded-track-actions button {
    min-height: 38px;
    padding: 0 13px;
    font-size: 11px;
}


/* ------------------------------------------------------------
   LYRICS SYNC PANEL
   ------------------------------------------------------------ */

.artist-lyrics-sync-panel {
    width: 100%;
    max-width: none;
    margin-top: 12px;
    padding: 15px 16px;
    border-radius: 14px;
}

.artist-lyrics-sync-summary {
    grid-template-columns:
        40px minmax(0, 1fr) auto;
    gap: 12px;
}

.artist-lyrics-sync-summary-icon {
    width: 40px;
    font-size: 16px;
}

.artist-lyrics-sync-summary-copy strong {
    font-size: 16px;
    line-height: 1.2;
    letter-spacing: .015em;
}

.artist-lyrics-sync-summary-copy small {
    margin-top: 3px;
    font-size: 12.5px;
    line-height: 1.4;
}

.artist-lyrics-sync-summary-progress {
    font-size: 13px;
}

.artist-lyrics-sync-progress {
    margin-top: 11px;
}

.artist-lyrics-sync-progress-value {
    min-height: 4px;
}


/* ------------------------------------------------------------
   COMPLETED SUMMARY
   ------------------------------------------------------------ */

.artist-lyrics-sync-completed-note {
    margin-top: 12px;
    display: grid;
    grid-template-columns:
        30px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border: 1px solid rgba(47, 212, 123, .18);
    border-radius: 11px;
    background: rgba(47, 212, 123, .055);
}

.artist-lyrics-sync-completed-note-icon {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(47, 212, 123, .13);
    color: #63e5a1;
    font-size: 12px;
}

.artist-lyrics-sync-completed-note-copy {
    min-width: 0;
}

.artist-lyrics-sync-completed-note-copy strong,
.artist-lyrics-sync-completed-note-copy small {
    display: block;
}

.artist-lyrics-sync-completed-note-copy strong {
    color: #eaf6ef;
    font-size: 12.5px;
    line-height: 1.3;
}

.artist-lyrics-sync-completed-note-copy small {
    margin-top: 2px;
    color: #82968b;
    font-size: 10.5px;
    line-height: 1.35;
}


/* ------------------------------------------------------------
   SHOW / HIDE STEPS BUTTON
   ------------------------------------------------------------ */

.artist-lyrics-sync-toggle {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 12px;
    border: 1px solid rgba(32, 217, 255, .28);
    border-radius: 9px;
    background: rgba(32, 217, 255, .055);
    color: #bceef7;
    font: inherit;
    font-size: 10.5px;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
}

.artist-lyrics-sync-toggle:hover {
    border-color: rgba(32, 217, 255, .48);
    background: rgba(32, 217, 255, .10);
    color: #e7fbff;
}

.artist-lyrics-sync-toggle i {
    transition: transform .18s ease;
}

.artist-lyrics-sync-toggle.is-open i {
    transform: rotate(180deg);
}


/* ------------------------------------------------------------
   LYRICS SYNC STEPS
   ------------------------------------------------------------ */

.artist-lyrics-sync-steps {
    margin-top: 13px;
    gap: 8px;
}

.artist-lyrics-sync-steps[hidden] {
    display: none !important;
}

.artist-lyrics-sync-step {
    gap: 9px;
    font-size: 12px;
    line-height: 1.4;
}

.artist-lyrics-sync-step-icon {
    width: 18px;
    flex: 0 0 18px;
    font-size: 10px;
}


/* ------------------------------------------------------------
   ACTIVE STEP
   ------------------------------------------------------------ */

.artist-lyrics-sync-panel.is-processing
.artist-lyrics-sync-step.is-active {
    padding: 7px 9px;
    margin-left: -9px;
    border-radius: 8px;
    background: rgba(32, 217, 255, .065);
    color: #f4fcff;
}


/* ------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------ */

@media (max-width: 760px) {

    .artist-uploaded-track-row {
        grid-template-columns:
            88px minmax(0, 1fr);
        gap: 12px;
        padding: 13px;
    }

    .artist-uploaded-track-cover {
        width: 88px;
        height: 88px;
    }

    .artist-uploaded-track-info > strong {
        font-size: 17px;
    }

    .artist-uploaded-track-info
    > span:not(.artist-uploaded-track-status) {
        font-size: 11px;
    }

    .artist-uploaded-track-actions {
        grid-column: 1 / -1;
        padding-top: 0;
    }

    .artist-lyrics-sync-panel {
        padding: 13px;
    }

    .artist-lyrics-sync-summary {
        grid-template-columns:
            34px minmax(0, 1fr);
    }

    .artist-lyrics-sync-summary-icon {
        width: 34px;
        font-size: 14px;
    }

    .artist-lyrics-sync-summary-progress {
        grid-column: 2;
        justify-self: start;
    }

    .artist-lyrics-sync-completed-note {
        grid-template-columns:
            28px minmax(0, 1fr);
    }

    .artist-lyrics-sync-toggle {
        grid-column: 1 / -1;
        width: 100%;
    }
}


/* === PAXOR LYRICS SYNC PROGRESS UI V2 END === */


/* ============================================================
   PAXOR RIGHTS STATUS CARD V1
   ============================================================ */

.artist-track-rights-panel {
    width: 100%;
    margin-top: 10px;
    display: grid;
    grid-template-columns:
        38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    padding: 11px 12px;
    box-sizing: border-box;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 12px;
    background: rgba(8, 13, 16, .62);
}

.artist-track-rights-icon {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .07);
    color: #b9c4c8;
    font-size: 14px;
}

.artist-track-rights-copy {
    min-width: 0;
}

.artist-track-rights-kicker,
.artist-track-rights-copy strong,
.artist-track-rights-copy small {
    display: block;
}

.artist-track-rights-kicker {
    margin-bottom: 2px;
    color: #74838a;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.artist-track-rights-copy strong {
    color: #f1f6f7;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.3;
}

.artist-track-rights-copy small {
    margin-top: 2px;
    color: #89979c;
    font-size: 10.5px;
    line-height: 1.4;
}


/* ------------------------------------------------------------
   ACTION
   ------------------------------------------------------------ */

.artist-track-rights-action {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 13px;
    border: 1px solid rgba(255, 168, 66, .42);
    border-radius: 9px;
    background: rgba(255, 168, 66, .09);
    color: #ffc16c;
    font: inherit;
    font-size: 10.5px;
    font-weight: 850;
    cursor: pointer;
    white-space: nowrap;
}

.artist-track-rights-action:hover {
    border-color: rgba(255, 194, 111, .72);
    background: rgba(255, 168, 66, .16);
}


/* ------------------------------------------------------------
   APPROVED
   ------------------------------------------------------------ */

.artist-track-rights-panel.is-approved {
    border-color: rgba(47, 212, 123, .22);
    background: rgba(23, 74, 46, .11);
}

.artist-track-rights-panel.is-approved
.artist-track-rights-icon {
    background: rgba(47, 212, 123, .13);
    color: #65dfa0;
}

.artist-track-rights-panel.is-approved
.artist-track-rights-copy strong {
    color: #dff8e9;
}


/* ------------------------------------------------------------
   PENDING
   ------------------------------------------------------------ */

.artist-track-rights-panel.is-pending {
    border-color: rgba(32, 217, 255, .22);
    background: rgba(32, 217, 255, .045);
}

.artist-track-rights-panel.is-pending
.artist-track-rights-icon {
    background: rgba(32, 217, 255, .10);
    color: #6de7fb;
}


/* ------------------------------------------------------------
   REQUIRED / CHANGES
   ------------------------------------------------------------ */

.artist-track-rights-panel.is-required,
.artist-track-rights-panel.is-changes {
    border-color: rgba(255, 168, 66, .28);
    background: rgba(255, 168, 66, .055);
}

.artist-track-rights-panel.is-required
.artist-track-rights-icon,
.artist-track-rights-panel.is-changes
.artist-track-rights-icon {
    background: rgba(255, 168, 66, .12);
    color: #ffc16c;
}


/* ------------------------------------------------------------
   REJECTED
   ------------------------------------------------------------ */

.artist-track-rights-panel.is-rejected {
    border-color: rgba(228, 118, 118, .28);
    background: rgba(228, 118, 118, .05);
}

.artist-track-rights-panel.is-rejected
.artist-track-rights-icon {
    background: rgba(228, 118, 118, .11);
    color: #e98282;
}


/* ------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------ */

@media (max-width: 760px) {

    .artist-track-rights-panel {
        grid-template-columns:
            34px minmax(0, 1fr);
    }

    .artist-track-rights-icon {
        width: 34px;
        height: 34px;
    }

    .artist-track-rights-action {
        grid-column: 1 / -1;
        width: 100%;
    }
}

/* === PAXOR RIGHTS STATUS CARD V1 END === */

/* ============================================================
   PAXOR TRACK UPLOAD STATUS V1
   ============================================================ */

#artist-track-upload-status.uploading {
    color: #f2a93b !important;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: .01em;
}

/*
 * Анимированное троеточие.
 *
 * Сам текст заканчивается без точек.
 * CSS постепенно показывает "...".
 */
#artist-track-upload-status.uploading::after {
    content: "...";
    display: inline-block;
    width: 0;
    overflow: hidden;
    white-space: nowrap;
    vertical-align: bottom;
    animation: paxor-track-upload-dots 1.2s steps(4, end) infinite;
}

@keyframes paxor-track-upload-dots {
    from {
        width: 0;
    }

    to {
        width: 1.15em;
    }
}

/*
 * Не анимируем точки, если пользователь отключил анимации
 * на уровне операционной системы.
 */
@media (prefers-reduced-motion: reduce) {
    #artist-track-upload-status.uploading::after {
        width: 1.15em;
        animation: none;
    }
}

/* ============================================================
   TRACK UPLOAD SUCCESS
   ============================================================ */

#artist-track-upload-status.upload-success {
    color: #1db954 !important;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: .01em;
}

/* === PAXOR TRACK UPLOAD STATUS V1 END === */


/* ==========================================
   PAXOR ARTIST STUDIO — COMPACT HEADERS V2

   Artist profile
   New track
   Create Music NFT
   NFT music releases
   ========================================== */

.artist-studio-v8 #artist-active-panel-heading.is-compact,
.artist-studio-v8 #artist-active-panel-heading.has-badge.is-compact {

    min-height: 56px !important;
    height: 56px !important;
    max-height: 56px !important;

    padding: 7px 16px !important;

    margin-top: 4px !important;
    margin-bottom: 12px !important;

    top: 6px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 12px !important;

    box-sizing: border-box !important;

    border-radius: 10px !important;

    overflow: visible !important;

    z-index: 90 !important;
}

/* Скрываем верхнюю подпись и описание. */

.artist-studio-v8
#artist-active-panel-heading.is-compact
#artist-active-kicker,

.artist-studio-v8
#artist-active-panel-heading.is-compact
#artist-active-description {

    display: none !important;
}

/* Левая часть шапки. */

.artist-studio-v8
#artist-active-panel-heading.is-compact
.artist-active-panel-copy {

    display: flex !important;

    align-items: center !important;

    min-width: 0 !important;

    flex: 1 1 auto !important;
}

/* Название активной вкладки. */

.artist-studio-v8
#artist-active-panel-heading.is-compact
#artist-active-title {

    margin: 0 !important;

    font-size: 21px !important;

    line-height: 1.1 !important;

    white-space: nowrap !important;

    overflow: hidden !important;

    text-overflow: ellipsis !important;
}

/* Правая часть: счётчик и NFT badge. */

.artist-studio-v8
#artist-active-panel-heading.is-compact
.artist-active-panel-side {

    display: flex !important;

    align-items: center !important;

    justify-content: flex-end !important;

    flex: 0 0 auto !important;

    min-width: 0 !important;

    min-height: 0 !important;

    width: auto !important;

    margin-left: auto !important;

    gap: 8px !important;
}

/* Счётчик релизов. */

.artist-studio-v8
#artist-active-panel-heading.is-compact
#artist-active-meta {

    margin: 0 !important;

    font-size: 12px !important;

    line-height: 1 !important;

    white-space: nowrap !important;
}

/* Компактный NFT badge. */

.artist-studio-v8
#artist-active-panel-heading.is-compact
.artist-active-badge {

    min-height: 24px !important;

    padding: 0 9px !important;

    font-size: 10px !important;
}

/* ==========================================
   END COMPACT HEADERS V2
   ========================================== */


/* ============================================================
   PAXOR ARTIST STUDIO — STABLE COMPACT V7

   Stable layout for all four Artist Studio headers.
   ============================================================ */

/*
 * Сохраняем постоянную высоту области,
 * которую шапка занимает в потоке страницы.
 *
 * Это предотвращает скачок содержимого
 * при переходе между обычным и компактным режимами.
 */

.artist-studio-v8 #artist-active-panel-heading {

    box-sizing: border-box !important;

    margin-top: 4px !important;
    margin-bottom: 12px !important;

    top: 6px !important;

    transition:
        height 180ms ease,
        min-height 180ms ease,
        max-height 180ms ease,
        padding 180ms ease,
        border-radius 180ms ease !important;
}


/*
 * При уменьшении шапки компенсируем
 * изменение её высоты нижним отступом.
 *
 * В результате следующая секция страницы
 * остаётся на прежнем месте.
 */

.artist-studio-v8 #artist-active-panel-heading.is-compact {

    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;

    padding: 7px 16px !important;

    margin-top: 4px !important;

    margin-bottom: 80px !important;

    top: 6px !important;

    border-radius: 10px !important;

    box-sizing: border-box !important;
}


/*
 * NFT badge: обычная шапка имеет
 * минимальную высоту 138 px.
 *
 * Для неё компенсация должна быть больше.
 */

.artist-studio-v8
#artist-active-panel-heading.has-badge.is-compact {

    margin-bottom: 94px !important;
}


/*
 * На мобильных устройствах сохраняем
 * существующее поведение адаптивной шапки.
 */

@media (max-width: 900px) {

    .artist-studio-v8
    #artist-active-panel-heading.is-compact {

        margin-bottom: 12px !important;
    }
}

/* ============================================================
   END STABLE COMPACT V7
   ============================================================ */


/* ==========================================
   PAXOR MOBILE NFT TRACK COVERS V1
   NFT music releases — mobile artwork.
   ========================================== */

/* На компьютере сохраняем прежний вид. */
.artist-nft-track-cover {
    display: none;
}

.artist-nft-track-header {
    min-width: 0;
}

/* Обложка рядом с названием на телефоне. */
@media (max-width: 560px) {

    #artist-releases .artist-nft-track-header {
        display: flex;
        align-items: center;
        gap: 10px;
        min-width: 0;
        width: 100%;
    }

    #artist-releases .artist-nft-track-cover {
        display: block;
        width: 44px;
        height: 44px;
        min-width: 44px;
        flex: 0 0 44px;
        object-fit: cover;
        border-radius: 7px;
        background: rgba(255, 255, 255, 0.06);
    }

    #artist-releases .artist-nft-track-cover[hidden] {
        display: none;
    }

    #artist-releases .artist-release-title {
        min-width: 0;
        flex: 1 1 auto;
    }

    #artist-releases .artist-release-title strong {
        overflow-wrap: anywhere;
    }
}



/* ==========================================
   PAXOR MOBILE NFT RELEASE LAYOUT V2
   Mobile NFT music releases.
   ========================================== */

@media (max-width: 680px) {

    /*
     * Каждая карточка релиза занимает
     * всю доступную ширину.
     */

    #artist-releases .artist-release-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        align-items: stretch;
        min-width: 0;
        width: 100%;
        box-sizing: border-box;
        padding: 16px 0;
    }

    /*
     * Все основные элементы карточки
     * располагаются друг под другом.
     */

    #artist-releases .artist-release-row > * {
        grid-column: 1 / -1;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    /*
     * Обложка слева, название и исполнитель
     * справа от изображения.
     */

    #artist-releases .artist-nft-track-header {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 12px;
        width: 100%;
        min-width: 0;
    }

    /*
     * Размер обложки NFT-трека.
     */

    #artist-releases .artist-nft-track-cover {
        display: block;
        width: 52px;
        height: 52px;
        min-width: 52px;
        flex: 0 0 52px;
        object-fit: cover;
        border-radius: 8px;
        background: rgba(255,255,255,0.06);
    }

    #artist-releases .artist-nft-track-cover[hidden] {
        display: none;
    }

    /*
     * Название трека больше не сжимается
     * до одной буквы в строке.
     */

    #artist-releases .artist-release-title {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        flex: 1 1 0%;
        width: auto;
        min-width: 0;
        gap: 4px;
    }

    #artist-releases .artist-release-title strong {
        display: block;
        width: 100%;
        min-width: 0;
        font-size: 16px;
        line-height: 1.35;
        white-space: normal;
        overflow-wrap: break-word;
        word-break: normal;
    }

    #artist-releases .artist-release-title > span {
        display: block;
        width: 100%;
        min-width: 0;
        font-size: 13px;
        line-height: 1.4;
        overflow-wrap: break-word;
    }

    /*
     * Статус NFT занимает отдельную строку.
     * Длинный текст переносится внутри рамки.
     */

    #artist-releases .artist-release-status {
        display: block;
        justify-self: start;
        width: fit-content;
        max-width: 100%;
        padding: 7px 10px;
        border-radius: 7px;
        font-size: 11px;
        line-height: 1.4;
        text-align: left;
        white-space: normal;
        overflow-wrap: break-word;
    }

    /*
     * Адрес контракта и Token ID остаются
     * скрытыми, как в прежней мобильной версии.
     */

    #artist-releases .artist-release-row > :nth-child(3),
    #artist-releases .artist-release-row > :nth-child(4) {
        display: none;
    }

    /*
     * Кнопка управления NFT занимает
     * всю ширину карточки.
     */

    #artist-releases .artist-market-action {
        display: flex;
        align-items: center;
        justify-content: center;
        justify-self: stretch;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        min-height: 42px;
        height: auto;
        padding: 10px 12px;
        gap: 8px;
        border-radius: 8px;
        font-size: 12px;
        line-height: 1.4;
        text-align: center;
        white-space: normal;
        overflow-wrap: break-word;
    }

    /*
     * Иконка кнопки сохраняет размер.
     */

    #artist-releases .artist-market-action > i {
        flex: 0 0 auto;
    }

    /*
     * Текст кнопки переносится внутри неё.
     */

    #artist-releases .artist-market-action > span {
        display: block;
        min-width: 0;
        max-width: 100%;
        white-space: normal;
        overflow-wrap: break-word;
    }

    /*
     * QR-панель и сообщение о правах
     * занимают всю ширину карточки.
     */

    #artist-releases .artist-release-qr,
    #artist-releases .artist-release-qr-blocked {
        grid-column: 1 / -1;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        overflow-wrap: break-word;
    }

    /*
     * QR-кнопки не выходят за границы.
     */

    #artist-releases .artist-release-qr-controls {
        min-width: 0;
        max-width: 100%;
    }

    #artist-releases .artist-release-qr-type,
    #artist-releases .artist-release-qr-actions button {
        min-width: 0;
        max-width: 100%;
        height: auto;
        min-height: 36px;
        padding: 8px;
        white-space: normal;
        overflow-wrap: break-word;
        text-align: center;
    }

    #artist-releases .artist-release-qr-type span,
    #artist-releases .artist-release-qr-actions button span {
        min-width: 0;
        overflow-wrap: break-word;
    }

}

/* ==========================================
   END PAXOR MOBILE NFT RELEASE LAYOUT V2
   ========================================== */



/* ==========================================
   PAXOR MOBILE QR DROPDOWN V3 FIXED
   Compact QR + Share dropdown.
   ========================================== */

/* ==========================================
   DESKTOP
   ========================================== */

/* Сохраняем прежнюю компоновку. */

#artist-releases .artist-qr-mobile-menu {
    display: contents;
}

#artist-releases .artist-qr-menu-toggle {
    display: none;
}

#artist-releases .artist-qr-dropdown {
    display: contents;
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    /* Компактная QR-панель. */

    #artist-releases .artist-release-qr {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        padding: 14px;
        overflow: visible;
        border-radius: 12px;
    }

    /* Заголовок QR. */

    #artist-releases .artist-release-qr-header {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }

    /* QR-код слева, кнопка справа. */

    #artist-releases .artist-release-qr-body {
        display: grid;
        grid-template-columns: 112px minmax(0, 1fr);
        align-items: center;
        gap: 12px;
        min-width: 0;
    }

    /* QR-код. */

    #artist-releases .artist-release-qr-image {
        width: 112px;
        height: 112px;
        padding: 7px;
        border-radius: 10px;
        box-sizing: border-box;
    }

    #artist-releases .artist-release-qr-image img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    /* Контейнер кнопки Share. */

    #artist-releases .artist-qr-mobile-menu {
        display: block;
        position: relative;
        min-width: 0;
        width: 100%;
    }

    /* Кнопка открытия меню. */

    #artist-releases .artist-qr-menu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 44px;
        padding: 10px;
        gap: 9px;
        border: 1px solid rgba(32,217,255,.55);
        border-radius: 9px;
        background: rgba(32,217,255,.09);
        color: #dff9ff;
        font-size: 13px;
        font-weight: 750;
        cursor: pointer;
    }

    /* Активная кнопка. */

    #artist-releases .artist-qr-menu-toggle.active {
        background: rgba(32,217,255,.17);
        border-color: #20d9ff;
    }

    /* Стрелка меню. */

    #artist-releases .artist-qr-menu-arrow {
        font-size: 11px;
        transition: transform .2s ease;
    }

    #artist-releases
    .artist-qr-menu-toggle.active
    .artist-qr-menu-arrow {
        transform: rotate(180deg);
    }

    /* Выпадающее меню. */

    #artist-releases .artist-qr-dropdown {
        display: block;
        position: absolute;
        top: calc(100% + 7px);
        right: 0;
        z-index: 100;
        width: min(260px, 78vw);
        max-width: calc(100vw - 48px);
        padding: 9px;
        border: 1px solid rgba(140,190,205,.28);
        border-radius: 12px;
        background: #152127;
        box-shadow: 0 15px 38px rgba(0,0,0,.48);
        box-sizing: border-box;
    }

    /* Скрываем закрытое меню. */

    #artist-releases .artist-qr-dropdown[hidden] {
        display: none !important;
    }

    /* Контейнер существующих действий. */

    #artist-releases .artist-release-qr-controls {
        display: flex;
        flex-direction: column;
        gap: 9px;
        width: 100%;
        min-width: 0;
    }

    /* Основные действия. */

    #artist-releases .artist-release-qr-actions {
        display: flex;
        flex-direction: column;
        gap: 3px;
        order: 1;
    }

    /* Переключение QR. */

    #artist-releases .artist-release-qr-types {
        display: flex;
        flex-direction: column;
        gap: 3px;
        order: 2;
        padding-top: 9px;
        border-top: 1px solid rgba(255,255,255,.12);
    }

    /* Кнопки выпадающего меню. */

    #artist-releases .artist-release-qr-type,
    #artist-releases .artist-release-qr-actions button {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        min-width: 0;
        min-height: 40px;
        height: auto;
        padding: 9px 11px;
        gap: 10px;
        border: 0;
        border-radius: 7px;
        background: transparent;
        color: #e3edf1;
        font-size: 12px;
        font-weight: 600;
        text-align: left;
        white-space: normal;
        overflow-wrap: break-word;
        flex: 0 0 auto;
    }

    /* Иконки меню. */

    #artist-releases .artist-release-qr-type i,
    #artist-releases .artist-release-qr-actions button i {
        width: 17px;
        flex: 0 0 17px;
        text-align: center;
        color: #68dfff;
    }

    /* Активный тип QR. */

    #artist-releases .artist-release-qr-type.active {
        background: rgba(32,217,255,.10);
        color: #68dfff;
    }

    /* Недоступный NFT passport. */

    #artist-releases .artist-release-qr-type:disabled {
        opacity: .4;
        cursor: not-allowed;
    }

    /* Строка состояния. */

    #artist-releases .artist-release-qr-status {
        order: 3;
        margin: 0;
        font-size: 11px;
        overflow-wrap: anywhere;
    }

}

/* ==========================================
   END PAXOR MOBILE QR DROPDOWN V3 FIXED
   ========================================== */



/* ============================================================
   PAXOR DESKTOP NFT TRACK COVERS V4

   NFT music releases — desktop artwork.
   ============================================================ */

/*
 * Показываем обложки на компьютере.
 * Мобильные стили не изменяем.
 */

@media (min-width: 681px) {

    /*
     * Обложка и название располагаются
     * горизонтально.
     */

    #artist-releases .artist-nft-track-header {

        display: flex;

        flex-direction: row;

        align-items: center;

        gap: 14px;

        min-width: 0;

        width: 100%;
    }

    /*
     * Размер обложки на десктопе.
     */

    #artist-releases .artist-nft-track-cover {

        display: block;

        width: 64px;

        height: 64px;

        min-width: 64px;

        flex: 0 0 64px;

        object-fit: cover;

        border-radius: 9px;

        background: rgba(255, 255, 255, 0.06);
    }

    /*
     * Не показываем изображение,
     * если обложка отсутствует.
     */

    #artist-releases .artist-nft-track-cover[hidden] {

        display: none;
    }

    /*
     * Название занимает оставшееся
     * пространство рядом с обложкой.
     */

    #artist-releases .artist-release-title {

        min-width: 0;

        flex: 1 1 auto;
    }

    /*
     * Длинные названия не должны
     * выходить за пределы карточки.
     */

    #artist-releases .artist-release-title strong {

        overflow-wrap: anywhere;
    }
}

/* ============================================================
   END DESKTOP NFT TRACK COVERS V4
   ============================================================ */


/* ============================================================
   PAXOR DESKTOP NFT RELEASE ROWS V5

   Larger artwork, text and row spacing.
   Desktop only.
   ============================================================ */

@media (min-width: 681px) {

    /*
     * Увеличиваем высоту строки
     * и сдвигаем содержимое правее.
     */

    #artist-releases .artist-release-row {

        min-height: 104px;

        padding-top: 14px;

        padding-bottom: 14px;

        padding-left: 20px;

        padding-right: 12px;

        box-sizing: border-box;

        align-items: center;
    }

    /*
     * Обложка и название трека.
     */

    #artist-releases .artist-nft-track-header {

        display: flex;

        flex-direction: row;

        align-items: center;

        gap: 18px;

        min-width: 0;

        width: 100%;
    }

    /*
     * Увеличиваем изображение.
     */

    #artist-releases .artist-nft-track-cover {

        display: block;

        width: 76px;

        height: 76px;

        min-width: 76px;

        flex: 0 0 76px;

        object-fit: cover;

        border-radius: 10px;
    }

    /*
     * Не показываем отсутствующую обложку.
     */

    #artist-releases .artist-nft-track-cover[hidden] {

        display: none;
    }

    /*
     * Название и дополнительная информация.
     */

    #artist-releases .artist-release-title {

        display: flex;

        flex-direction: column;

        justify-content: center;

        gap: 5px;

        min-width: 0;

        flex: 1 1 auto;
    }

    /*
     * Увеличиваем название трека.
     */

    #artist-releases .artist-release-title strong {

        font-size: 18px;

        line-height: 1.35;

        font-weight: 700;

        overflow-wrap: anywhere;
    }

    /*
     * Увеличиваем дополнительный текст.
     */

    #artist-releases .artist-release-title > span {

        font-size: 14px;

        line-height: 1.4;
    }
}

/* ============================================================
   END DESKTOP NFT RELEASE ROWS V5
   ============================================================ */


/* ==========================================
   PAXOR MOBILE QR AUTO POSITION V4
   ========================================== */

@media (max-width: 680px) {

    /*
     * По умолчанию меню открывается вниз.
     */

    #artist-releases .artist-qr-dropdown {

        top: calc(100% + 7px);

        bottom: auto;
    }

    /*
     * Если снизу недостаточно места,
     * открываем меню над кнопкой Share.
     */

    #artist-releases
    .artist-qr-dropdown.open-up {

        top: auto;

        bottom: calc(100% + 7px);
    }

}

/* ==========================================
   END MOBILE QR AUTO POSITION V4
   ========================================== */


/* ==========================================
   PAXOR MOBILE QR DROPDOWN SCROLL V5
   ========================================== */

@media (max-width: 680px) {

    /*
     * Все QR-меню открываются вниз.
     */

    #artist-releases .artist-qr-dropdown,
    #artist-releases .artist-qr-dropdown.open-up {

        top: calc(100% + 7px);

        bottom: auto;
    }

}

/* ==========================================
   END MOBILE QR DROPDOWN SCROLL V5
   ========================================== */


/* ==========================================
   PAXOR MOBILE QR DROPDOWN FLOW V6
   ========================================== */

@media (max-width: 680px) {

    /*
     * QR-панель должна увеличиваться
     * по высоте вместе с открытым меню.
     */

    #artist-releases .artist-release-qr {

        overflow: visible;
    }

    /*
     * Мобильный контейнер QR-кода
     * сохраняет горизонтальную компоновку.
     */

    #artist-releases .artist-release-qr-body {

        align-items: start;
    }

    /*
     * Контейнер Share располагается
     * рядом с изображением QR-кода.
     */

    #artist-releases .artist-qr-mobile-menu {

        display: flex;

        flex-direction: column;

        position: relative;

        min-width: 0;

        width: 100%;
    }

    /*
     * Выпадающее меню теперь является
     * обычным элементом страницы.
     *
     * Оно увеличивает высоту карточки,
     * а не перекрывает соседние элементы.
     */

    #artist-releases .artist-qr-dropdown,
    #artist-releases .artist-qr-dropdown.open-up {

        position: static;

        top: auto;

        right: auto;

        bottom: auto;

        left: auto;

        width: 100%;

        max-width: 100%;

        margin-top: 7px;

        box-sizing: border-box;
    }

    /*
     * Закрытое меню не занимает место.
     */

    #artist-releases .artist-qr-dropdown[hidden] {

        display: none !important;
    }

    /*
     * Длинные названия кнопок
     * переносятся на новую строку.
     */

    #artist-releases .artist-release-qr-controls {

        min-width: 0;
    }

    #artist-releases .artist-release-qr-actions button,
    #artist-releases .artist-release-qr-type {

        min-width: 0;

        overflow-wrap: anywhere;
    }

}

/* ==========================================
   END MOBILE QR DROPDOWN FLOW V6
   ========================================== */


/* ==========================================
   PAXOR MOBILE QR DROPDOWN V7
   ========================================== */

@media (max-width: 680px) {

    /*
     * Когда QR-меню открыто,
     * добавляем пространство под
     * последним музыкальным релизом.
     */

    #artist-releases
    .artist-release-list.qr-menu-open {

        padding-bottom:
            calc(
                var(--paxor-player-height, 88px)
                + 100px
            ) !important;

        box-sizing: border-box;
    }

    /*
     * QR-меню остаётся внутри карточки
     * и всегда открывается вниз.
     */

    #artist-releases
    .artist-qr-dropdown {

        position: static !important;

        top: auto !important;

        bottom: auto !important;

        width: 100%;

        max-width: 100%;
    }

    /*
     * Закрытое меню не занимает место.
     */

    #artist-releases
    .artist-qr-dropdown[hidden] {

        display: none !important;
    }

}

/* ==========================================
   END MOBILE QR DROPDOWN V7
   ========================================== */


/* ==========================================
   PAXOR MOBILE QR DROPDOWN V8

   NFT music releases.
   ========================================== */

@media (max-width: 680px) {

    /*
     * QR-меню располагается внутри
     * карточки музыкального релиза.
     */

    #artist-releases .artist-release-qr {

        overflow: visible !important;

        height: auto;

        min-height: 0;
    }

    /*
     * Контейнер кнопки Share
     * увеличивается вместе с меню.
     */

    #artist-releases .artist-qr-mobile-menu {

        display: flex;

        flex-direction: column;

        position: relative;

        width: 100%;

        min-width: 0;

        height: auto;

        overflow: visible;
    }

    /*
     * Меню открывается вниз
     * в обычном потоке документа.
     */

    #artist-releases .artist-qr-dropdown,
    #artist-releases .artist-qr-dropdown.open-up {

        display: block;

        position: static !important;

        top: auto !important;

        right: auto !important;

        bottom: auto !important;

        left: auto !important;

        width: 100%;

        max-width: 100%;

        height: auto;

        margin-top: 7px;

        box-sizing: border-box;
    }

    /*
     * Закрытое меню не занимает место.
     */

    #artist-releases .artist-qr-dropdown[hidden] {

        display: none !important;
    }

    /*
     * Последний релиз получает
     * дополнительное пространство снизу,
     * когда открыто QR-меню.
     *
     * Это позволяет прокрутить меню
     * выше нижнего музыкального плеера.
     */

    #artist-releases
    .artist-release-list.qr-menu-open {

        padding-bottom:
            calc(
                var(--paxor-player-height, 88px)
                + 120px
            ) !important;

        box-sizing: border-box;
    }

}

/* ==========================================
   END MOBILE QR DROPDOWN V8
   ========================================== */


/* ==========================================
   PAXOR MOBILE QR WIDE DROPDOWN V9

   Wide QR menu inside release card.
   ========================================== */

@media (max-width: 680px) {

    /*
     * QR-код и кнопка Share
     * остаются в двух колонках.
     *
     * Выпадающее меню может занимать
     * всю ширину QR-карточки.
     */

    #artist-releases .artist-release-qr-body {

        display: grid;

        grid-template-columns:
            112px minmax(0, 1fr);

        column-gap: 12px;

        align-items: start;

        overflow: visible;
    }

    /*
     * Контейнер кнопки Share
     * участвует в общей сетке.
     *
     * display: contents позволяет
     * расположить меню под обеими колонками.
     */

    #artist-releases .artist-qr-mobile-menu {

        display: contents;
    }

    /*
     * Кнопка Share остаётся справа
     * от изображения QR-кода.
     */

    #artist-releases .artist-qr-menu-toggle {

        grid-column: 2;

        grid-row: 1;

        width: 100%;

        min-width: 0;
    }

    /*
     * QR-код остаётся слева.
     */

    #artist-releases .artist-release-qr-image {

        grid-column: 1;

        grid-row: 1;
    }

    /*
     * Широкое меню располагается
     * под QR-кодом и кнопкой Share.
     *
     * Оно занимает всю ширину
     * родительской сетки.
     */

    #artist-releases .artist-qr-dropdown,
    #artist-releases .artist-qr-dropdown.open-up {

        display: block;

        position: static !important;

        grid-column: 1 / -1;

        grid-row: 2;

        top: auto !important;

        right: auto !important;

        bottom: auto !important;

        left: auto !important;

        width: 100%;

        max-width: 100%;

        min-width: 0;

        height: auto;

        margin-top: 7px;

        padding: 9px;

        box-sizing: border-box;
    }

    /*
     * Закрытое меню
     * не занимает место в сетке.
     */

    #artist-releases .artist-qr-dropdown[hidden] {

        display: none !important;
    }

    /*
     * Кнопки занимают доступную ширину.
     */

    #artist-releases
    .artist-release-qr-controls {

        width: 100%;

        min-width: 0;
    }

    /*
     * Сохраняем нормальное отображение
     * названий действий.
     */

    #artist-releases
    .artist-release-qr-actions button,

    #artist-releases
    .artist-release-qr-type {

        width: 100%;

        min-width: 0;

        box-sizing: border-box;

        overflow-wrap: normal;

        word-break: normal;
    }

}

/* ==========================================
   END MOBILE QR WIDE DROPDOWN V9
   ========================================== */


/* ============================================================
   PAXOR NFT RELEASE UNIFIED CARD V10

   One unified card for each NFT music release.
   Desktop and mobile.
   ============================================================ */

/*
 * Каждый музыкальный релиз получает
 * собственную общую рамку.
 *
 * Внутри остаются:
 * обложка, название, NFT-информация,
 * кнопки управления и Paxor QR.
 */

#artist-releases .artist-release-row {

    position: relative;

    width: 100%;

    min-width: 0;

    box-sizing: border-box;

    border: 1px solid rgba(85, 181, 205, 0.28);

    border-radius: 16px;

    background: rgba(12, 24, 29, 0.72);

    margin-bottom: 18px;

    overflow: visible;
}

/*
 * Убираем отдельную внешнюю рамку
 * вокруг Paxor QR.
 *
 * QR становится частью общей
 * карточки музыкального релиза.
 */

#artist-releases
.artist-release-row
.artist-release-qr {

    border: 0;

    border-radius: 0;

    background: transparent;

    box-shadow: none;

    width: 100%;

    max-width: 100%;

    min-width: 0;

    box-sizing: border-box;
}

/*
 * Разделительная линия между
 * информацией о треке и Paxor QR.
 */

#artist-releases
.artist-release-row
.artist-release-qr {

    border-top:
        1px solid rgba(255, 255, 255, 0.09);

    padding-top: 16px;
}

/*
 * Убираем дополнительную линию
 * после последнего релиза.
 */

#artist-releases
.artist-release-row:last-child {

    margin-bottom: 0;
}

/* ============================================================
   DESKTOP
   ============================================================ */

@media (min-width: 681px) {

    /*
     * Сохраняем существующую
     * горизонтальную компоновку.
     */

    #artist-releases .artist-release-row {

        padding: 20px;

        gap: 16px;
    }

    /*
     * Paxor QR занимает ширину
     * внутренней области карточки.
     */

    #artist-releases
    .artist-release-row
    .artist-release-qr {

        margin-top: 4px;

        padding-left: 0;

        padding-right: 0;

        padding-bottom: 0;
    }

}

/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 680px) {

    /*
     * Общая рамка каждого релиза
     * на мобильном устройстве.
     */

    #artist-releases .artist-release-row {

        display: grid;

        grid-template-columns: minmax(0, 1fr);

        width: 100%;

        min-width: 0;

        padding: 14px;

        gap: 14px;

        box-sizing: border-box;

        overflow: visible;
    }

    /*
     * Все элементы располагаются
     * внутри общей рамки.
     */

    #artist-releases
    .artist-release-row > * {

        min-width: 0;

        max-width: 100%;

        box-sizing: border-box;
    }

    /*
     * QR-блок больше не имеет
     * отдельной внешней рамки.
     */

    #artist-releases
    .artist-release-row
    .artist-release-qr {

        width: 100%;

        min-width: 0;

        margin: 0;

        padding: 14px 0 0;

        overflow: visible;
    }

    /*
     * Сохраняем широкое QR-меню V9.
     *
     * Меню открывается вниз
     * внутри общей карточки.
     */

    #artist-releases
    .artist-release-row
    .artist-qr-dropdown {

        box-sizing: border-box;

        max-width: 100%;
    }

}

/* ============================================================
   END NFT RELEASE UNIFIED CARD V10
   ============================================================ */


/* ============================================================
   PAXOR NFT RELEASE CARDS V11

   Compact unified cards.
   Brighter borders and hover effects.
   Larger artwork and QR content.
   ============================================================ */

/*
 * Общая карточка музыкального NFT.
 */

#artist-releases .artist-release-row {

    position: relative;

    box-sizing: border-box;

    min-width: 0;

    width: 100%;

    margin-bottom: 16px;

    border: 1px solid rgba(64, 202, 238, 0.72);

    border-radius: 17px;

    background: rgba(12, 34, 42, 0.84);

    box-shadow:
        0 3px 14px rgba(0, 0, 0, 0.12);

    overflow: visible;

    transition:
        border-color 0.25s ease,
        background-color 0.25s ease,
        box-shadow 0.25s ease;
}

/*
 * Подсветка карточки при наведении.
 */

@media (hover: hover) {

    #artist-releases .artist-release-row:hover {

        border-color: #9befff;

        background: rgba(19, 51, 62, 0.94);

        box-shadow:
            0 0 0 1px rgba(120, 232, 255, 0.35),
            0 0 19px rgba(35, 202, 240, 0.20);
    }
}

/*
 * Подсветка карточки при работе
 * с клавиатурой.
 */

#artist-releases .artist-release-row:focus-within {

    border-color: #8beaff;
}

/*
 * QR-блок является частью
 * общей карточки.
 */

#artist-releases
.artist-release-row
.artist-release-qr {

    min-width: 0;

    max-width: 100%;

    width: 100%;

    box-sizing: border-box;

    border: 0;

    border-top:
        1px solid rgba(125, 207, 228, 0.22);

    border-radius: 0;

    background: transparent;

    box-shadow: none;

    overflow: visible;
}

/*
 * Название музыкального трека.
 */

#artist-releases
.artist-release-row
.artist-release-title strong {

    font-weight: 700;

    line-height: 1.3;

    overflow-wrap: anywhere;
}

/* ============================================================
   DESKTOP
   ============================================================ */

@media (min-width: 681px) {

    /*
     * Уменьшаем внешнюю высоту карточки
     * за счёт внутренних отступов.
     */

    #artist-releases .artist-release-row {

        min-height: 0;

        padding: 12px 18px;

        gap: 8px;

        align-items: center;
    }

    /*
     * Увеличиваем обложку трека.
     */

    #artist-releases
    .artist-release-row
    .artist-nft-track-cover {

        display: block;

        width: 92px;

        height: 92px;

        min-width: 92px;

        flex: 0 0 92px;

        object-fit: cover;

        border-radius: 11px;
    }

    /*
     * Скрываем отсутствующую обложку.
     */

    #artist-releases
    .artist-nft-track-cover[hidden] {

        display: none;
    }

    /*
     * Увеличиваем название трека.
     */

    #artist-releases
    .artist-release-title strong {

        font-size: 20px;
    }

    /*
     * Увеличиваем имя исполнителя.
     */

    #artist-releases
    .artist-release-title > span {

        font-size: 15px;

        line-height: 1.35;
    }

    /*
     * Компактный QR-блок.
     */

    #artist-releases
    .artist-release-row
    .artist-release-qr {

        margin: 0;

        padding: 9px 0 0;
    }

    /*
     * Увеличиваем QR-код.
     */

    #artist-releases
    .artist-release-qr-image img {

        width: 112px;

        height: 112px;

        max-width: 100%;

        object-fit: contain;
    }

    /*
     * Увеличиваем заголовок Paxor QR.
     */

    #artist-releases
    .artist-release-qr-header strong {

        font-size: 15px;
    }

    /*
     * Увеличиваем текст кнопок QR.
     */

    #artist-releases
    .artist-release-qr-actions button,

    #artist-releases
    .artist-release-qr-type {

        font-size: 13px;
    }
}

/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 680px) {

    /*
     * Компактная общая карточка.
     */

    #artist-releases .artist-release-row {

        display: grid;

        grid-template-columns: minmax(0, 1fr);

        min-height: 0;

        padding: 12px;

        gap: 10px;

        align-items: stretch;
    }

    /*
     * Сохраняем обложку и название
     * в одной горизонтальной строке.
     */

    #artist-releases
    .artist-nft-track-header {

        display: flex;

        flex-direction: row;

        align-items: center;

        gap: 12px;

        min-width: 0;
    }

    /*
     * Увеличиваем обложку трека.
     */

    #artist-releases
    .artist-nft-track-cover {

        display: block;

        width: 64px;

        height: 64px;

        min-width: 64px;

        flex: 0 0 64px;

        object-fit: cover;

        border-radius: 9px;
    }

    /*
     * Скрываем отсутствующую обложку.
     */

    #artist-releases
    .artist-nft-track-cover[hidden] {

        display: none;
    }

    /*
     * Увеличиваем название трека.
     */

    #artist-releases
    .artist-release-title strong {

        font-size: 17px;

        line-height: 1.3;
    }

    /*
     * Увеличиваем дополнительный текст.
     */

    #artist-releases
    .artist-release-title > span {

        font-size: 14px;
    }

    /*
     * Уменьшаем пустое пространство
     * вокруг QR-блока.
     */

    #artist-releases
    .artist-release-row
    .artist-release-qr {

        margin: 0;

        padding: 10px 0 0;
    }

    /*
     * Сохраняем QR-код и Share
     * в двух колонках.
     */

    #artist-releases
    .artist-release-qr-body {

        grid-template-columns:
            112px minmax(0, 1fr);

        column-gap: 12px;

        align-items: start;
    }

    /*
     * Широкое QR-меню V9
     * остаётся внутри общей карточки.
     */

    #artist-releases
    .artist-qr-dropdown {

        width: 100%;

        max-width: 100%;

        min-width: 0;

        box-sizing: border-box;
    }

}

/* ============================================================
   END NFT RELEASE CARDS V11
   ============================================================ */


/* ============================================================
   PAXOR NFT RELEASE COMPACT LAYOUT V12
   ============================================================ */

/*
 * Общая карточка релиза.
 * Информация слева, QR справа.
 */

#artist-releases .artist-release-row {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(210px, 32%);

    align-items: center;

    gap: 14px;

    min-height: 0;

    padding: 14px 18px;

    box-sizing: border-box;
}

/*
 * Левая колонка с информацией о треке.
 */

#artist-releases .artist-release-info-v12 {

    display: flex;

    flex-direction: column;

    justify-content: center;

    gap: 14px;

    min-width: 0;
}

/*
 * Обложка и название трека.
 */

#artist-releases
.artist-release-info-v12
.artist-nft-track-header {

    display: flex;

    align-items: center;

    gap: 14px;

    min-width: 0;
}

/*
 * Увеличенная информация NFT.
 */

#artist-releases
.artist-release-nft-info-v12 {

    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 10px 16px;

    min-width: 0;
}

/*
 * Статус Minted.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-release-status {

    font-size: 14px;

    font-weight: 700;

    padding: 6px 10px;
}

/*
 * Адрес контракта и номер NFT.
 */

#artist-releases
.artist-release-nft-info-v12 > span:not(.artist-release-status) {

    font-size: 15px;

    font-weight: 600;

    line-height: 1.4;

    overflow-wrap: anywhere;
}

/*
 * Кнопка управления продажей.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-market-action {

    font-size: 14px;

    font-weight: 600;

    padding: 9px 13px;

    min-height: 38px;

    white-space: normal;
}

/*
 * QR-панель располагается справа.
 * Убираем разделительную линию V11.
 */

#artist-releases
.artist-release-row
.artist-release-qr {

    display: flex;

    flex-direction: column;

    justify-content: center;

    min-width: 0;

    width: 100%;

    margin: 0;

    padding: 0;

    border: 0;

    background: transparent;

    box-shadow: none;
}

/*
 * QR-код и кнопка Share.
 */

#artist-releases
.artist-release-qr-body {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr);

    gap: 10px;

    align-items: center;

    min-width: 0;
}

/*
 * QR-код.
 */

#artist-releases
.artist-release-qr-image {

    display: flex;

    justify-content: center;

    min-width: 0;
}

/*
 * Размер QR-кода.
 */

#artist-releases
.artist-release-qr-image img {

    width: 112px;

    height: 112px;

    max-width: 100%;

    object-fit: contain;
}

/*
 * Кнопка Share.
 */

#artist-releases
.artist-qr-mobile-menu {

    display: contents;
}

#artist-releases
.artist-qr-menu-toggle {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    width: 100%;

    min-width: 0;

    min-height: 42px;

    font-size: 15px;

    font-weight: 600;
}

/*
 * Широкое меню ссылок.
 * Открывается внутри общей карточки.
 */

#artist-releases
.artist-qr-dropdown,
#artist-releases
.artist-qr-dropdown.open-up {

    display: block;

    position: static !important;

    grid-column: 1 / -1;

    width: 100%;

    max-width: 100%;

    min-width: 0;

    margin-top: 8px;

    box-sizing: border-box;
}

/*
 * Закрытое меню не занимает место.
 */

#artist-releases
.artist-qr-dropdown[hidden] {

    display: none !important;
}


/* ============================================================
   DESKTOP
   ============================================================ */

@media (min-width: 901px) {

    /*
     * QR-панель занимает правую колонку.
     */

    #artist-releases
    .artist-release-row
    .artist-release-qr {

        display: grid;

        grid-template-columns:
            112px minmax(110px, 1fr);

        gap: 8px 12px;

        align-items: center;
    }

    /*
     * Заголовок QR над кодом.
     */

    #artist-releases
    .artist-release-qr-header {

        grid-column: 1 / -1;
    }

    /*
     * QR-код и Share располагаются рядом.
     */

    #artist-releases
    .artist-release-qr-body {

        display: contents;
    }

    #artist-releases
    .artist-release-qr-image {

        grid-column: 1;

        grid-row: 2;
    }

    #artist-releases
    .artist-qr-menu-toggle {

        grid-column: 2;

        grid-row: 2;
    }

    /*
     * Меню ссылок под обеими колонками.
     */

    #artist-releases
    .artist-qr-dropdown {

        grid-column: 1 / -1;

        grid-row: 3;
    }

}


/* ============================================================
   TABLET AND MOBILE
   ============================================================ */

@media (max-width: 900px) {

    /*
     * Информация о треке занимает
     * верхнюю часть карточки.
     */

    #artist-releases .artist-release-row {

        grid-template-columns:
            minmax(0, 1fr);

        gap: 12px;

        padding: 12px;
    }

    /*
     * QR-код и Share располагаются
     * в одной горизонтальной строке.
     */

    #artist-releases
    .artist-release-qr-body {

        display: grid;

        grid-template-columns:
            112px minmax(0, 1fr);

        gap: 10px;

        align-items: center;
    }

    /*
     * QR-код слева.
     */

    #artist-releases
    .artist-release-qr-image {

        grid-column: 1;

        grid-row: 1;
    }

    /*
     * Share справа.
     */

    #artist-releases
    .artist-qr-menu-toggle {

        grid-column: 2;

        grid-row: 1;
    }

    /*
     * Меню занимает всю ширину
     * под QR-кодом и Share.
     */

    #artist-releases
    .artist-qr-dropdown {

        grid-column: 1 / -1;

        grid-row: 2;
    }

    /*
     * Компактный QR-блок.
     */

    #artist-releases
    .artist-release-row
    .artist-release-qr {

        border-top:
            1px solid rgba(125, 207, 228, 0.22);

        padding-top: 10px;
    }

}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 680px) {

    /*
     * Увеличиваем NFT-информацию.
     */

    #artist-releases
    .artist-release-nft-info-v12 {

        gap: 8px 12px;
    }

    /*
     * Уменьшаем QR-код для телефона.
     */

    #artist-releases
    .artist-release-qr-image img {

        width: 96px;

        height: 96px;
    }

    /*
     * Сохраняем широкое меню ссылок.
     */

    #artist-releases
    .artist-qr-dropdown {

        width: 100%;

        max-width: 100%;
    }

}

/* ============================================================
   END NFT RELEASE COMPACT LAYOUT V12
   ============================================================ */


/* ============================================================
   PAXOR NFT COMPACT LAYOUT V13

   Left: artwork, title and NFT information.
   Right: larger QR code and Share button.
   ============================================================ */

/*
 * Две колонки внутри общей рамки.
 */

#artist-releases .artist-release-row {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr);

    align-items: center;

    gap: 12px;

    min-height: 0;

    padding: 12px;

    box-sizing: border-box;
}

/*
 * Левая половина карточки.
 */

#artist-releases .artist-release-info-v12 {

    display: flex;

    flex-direction: column;

    justify-content: center;

    gap: 10px;

    min-width: 0;

    width: 100%;

    grid-column: 1;
}

/*
 * Обложка и название трека.
 */

#artist-releases .artist-nft-track-header {

    display: flex;

    flex-direction: row;

    align-items: center;

    gap: 10px;

    min-width: 0;

    width: 100%;
}

/*
 * Название занимает свободное пространство.
 */

#artist-releases .artist-release-title {

    min-width: 0;

    flex: 1 1 auto;
}

/*
 * NFT-информация располагается
 * в одной горизонтальной строке.
 */

#artist-releases .artist-release-nft-info-v12 {

    display: flex;

    flex-direction: row;

    flex-wrap: nowrap;

    align-items: center;

    justify-content: flex-start;

    gap: 6px;

    min-width: 0;

    width: 100%;
}

/*
 * Статус Minted, номер NFT и кнопка
 * сохраняют свои исходные функции.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-release-status {

    flex: 0 0 auto;
}

#artist-releases
.artist-release-nft-info-v12
.artist-market-action {

    flex: 0 0 auto;

    white-space: nowrap;
}

/*
 * Контейнер полного адреса контракта.
 *
 * Занимает оставшееся место между
 * статусом и другими NFT-элементами.
 */

#artist-releases .artist-nft-contract-viewport-v13 {

    display: block;

    flex: 1 1 0%;

    min-width: 0;

    overflow: hidden;

    white-space: nowrap;

    position: relative;
}

/*
 * Полный адрес контракта.
 */

#artist-releases .artist-nft-contract-v13 {

    display: inline-block;

    width: max-content;

    max-width: none;

    white-space: nowrap;

    font-variant-numeric: tabular-nums;

    will-change: auto;
}

/*
 * Бегущая строка.
 */

#artist-releases
.artist-nft-contract-viewport-v13.is-scrolling
.artist-nft-contract-v13 {

    animation:
        paxor-nft-contract-marquee-v13
        var(--nft-scroll-duration, 8s)
        linear
        1s
        infinite
        alternate;

    will-change: transform;
}

/*
 * Прокрутка полного адреса справа налево.
 */

@keyframes paxor-nft-contract-marquee-v13 {

    0%, 10% {

        transform: translateX(0);
    }

    90%, 100% {

        transform: translateX(
            calc(-1 * var(--nft-scroll-distance, 0px))
        );
    }
}

/*
 * При наведении прокрутка останавливается.
 */

#artist-releases
.artist-nft-contract-viewport-v13:hover
.artist-nft-contract-v13 {

    animation-play-state: paused;
}

/*
 * Для пользователей, отключивших анимацию.
 */

@media (prefers-reduced-motion: reduce) {

    #artist-releases
    .artist-nft-contract-viewport-v13.is-scrolling
    .artist-nft-contract-v13 {

        animation: none;
    }
}

/*
 * Правая половина карточки.
 *
 * Убираем разделительную линию,
 * чтобы QR-код находился рядом с треком.
 */

#artist-releases
.artist-release-row
.artist-release-qr {

    display: grid;

    grid-template-columns: minmax(0, 1fr);

    grid-column: 2;

    align-items: center;

    gap: 6px;

    width: 100%;

    min-width: 0;

    margin: 0;

    padding: 0;

    border: 0;

    background: transparent;

    box-shadow: none;
}

/*
 * QR-код и кнопка Share
 * располагаются горизонтально.
 */

#artist-releases .artist-release-qr-body {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr);

    align-items: center;

    gap: 8px;

    min-width: 0;

    width: 100%;
}

/*
 * QR-код.
 */

#artist-releases .artist-release-qr-image {

    display: flex;

    align-items: center;

    justify-content: center;

    grid-column: 1;

    grid-row: 1;

    min-width: 0;
}

/*
 * Увеличенный QR-код.
 */

#artist-releases .artist-release-qr-image img {

    display: block;

    width: 100%;

    height: auto;

    max-width: 144px;

    aspect-ratio: 1 / 1;

    object-fit: contain;
}

/*
 * Отсутствующий QR-код скрываем.
 */

#artist-releases .artist-release-qr-image img[hidden] {

    display: none;
}

/*
 * Кнопка Share справа от QR-кода.
 */

#artist-releases .artist-qr-menu-toggle {

    display: flex;

    grid-column: 2;

    grid-row: 1;

    align-items: center;

    justify-content: center;

    width: 100%;

    min-width: 0;

    min-height: 42px;

    padding: 8px 5px;

    box-sizing: border-box;
}

/*
 * Меню Share раскрывается вниз
 * на всю ширину правой половины.
 */

#artist-releases .artist-qr-dropdown,
#artist-releases .artist-qr-dropdown.open-up {

    display: block;

    position: static !important;

    grid-column: 1 / -1;

    grid-row: 2;

    top: auto !important;

    right: auto !important;

    bottom: auto !important;

    left: auto !important;

    width: 100%;

    max-width: 100%;

    min-width: 0;

    margin-top: 8px;

    box-sizing: border-box;
}

/*
 * Закрытое меню не занимает место.
 */

#artist-releases .artist-qr-dropdown[hidden] {

    display: none !important;
}

/*
 * Заголовок QR не должен
 * увеличивать высоту закрытой карточки.
 */

#artist-releases .artist-release-qr-header {

    margin: 0;

    padding: 0;

    min-width: 0;
}

/*
 * Мобильное меню сохраняет
 * существующую структуру элементов.
 */

#artist-releases .artist-qr-mobile-menu {

    display: contents;
}

/* ============================================================
   DESKTOP
   ============================================================ */

@media (min-width: 901px) {

    /*
     * На компьютере увеличиваем QR-код.
     */

    #artist-releases .artist-release-qr-image img {

        max-width: 144px;
    }

    /*
     * Увеличиваем пространство для NFT-адреса.
     */

    #artist-releases .artist-release-row {

        grid-template-columns:
            minmax(0, 1.25fr)
            minmax(0, 0.75fr);

        gap: 18px;

        padding: 12px 18px;
    }
}

/* ============================================================
   TABLET
   ============================================================ */

@media (min-width: 681px) and (max-width: 900px) {

    #artist-releases .artist-release-row {

        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);
    }

    #artist-releases .artist-release-qr-image img {

        max-width: 120px;
    }
}

/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 680px) {

    /*
     * На телефоне две колонки
     * сохраняются.
     */

    #artist-releases .artist-release-row {

        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);

        gap: 8px;

        padding: 9px;
    }

    /*
     * Компактная левая половина.
     */

    #artist-releases .artist-release-info-v12 {

        gap: 7px;
    }

    /*
     * Размер обложки.
     */

    #artist-releases .artist-nft-track-cover {

        width: 46px;

        height: 46px;

        min-width: 46px;

        flex: 0 0 46px;
    }

    /*
     * Компактный текст названия.
     */

    #artist-releases .artist-release-title strong {

        font-size: 14px;

        line-height: 1.25;
    }

    #artist-releases .artist-release-title > span {

        font-size: 12px;
    }

    /*
     * NFT-информация остаётся
     * в одной горизонтальной строке.
     */

    #artist-releases .artist-release-nft-info-v12 {

        gap: 4px;

        font-size: 10px;
    }

    /*
     * Компактная кнопка NFT.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-market-action {

        font-size: 10px;

        padding: 5px 3px;
    }

    /*
     * Компактная правая половина.
     */

    #artist-releases
    .artist-release-row
    .artist-release-qr {

        display: grid;

        grid-template-columns: minmax(0, 1fr);

        gap: 4px;

        padding: 0;

        border: 0;
    }

    /*
     * QR-код и Share рядом.
     */

    #artist-releases .artist-release-qr-body {

        display: grid;

        grid-template-columns:
            minmax(0, 1.25fr)
            minmax(0, 0.75fr);

        gap: 4px;

        align-items: center;
    }

    /*
     * QR-код использует всю
     * доступную ширину своей колонки.
     */

    #artist-releases .artist-release-qr-image img {

        width: 100%;

        max-width: 112px;

        height: auto;
    }

    /*
     * Кнопка Share справа от QR.
     */

    #artist-releases .artist-qr-menu-toggle {

        min-height: 36px;

        padding: 5px 2px;

        gap: 3px;

        font-size: 11px;
    }

    /*
     * Убираем лишнее пространство
     * вокруг QR-панели.
     */

    #artist-releases .artist-release-qr {

        margin: 0;

        padding: 0;
    }
}

/* ============================================================
   END NFT COMPACT LAYOUT V13
   ============================================================ */


/* ============================================================
   PAXOR NFT RELEASE COMPACT CARD V14
   ============================================================ */

/*
 * Основная карточка NFT.
 */

#artist-releases .artist-release-row {

    position: relative;

    overflow: visible !important;

    align-items: center;

    min-height: 0;

    isolation: isolate;
}

/*
 * Активная карточка находится
 * поверх соседних карточек.
 */

#artist-releases
.artist-release-row.artist-qr-card-open-v14 {

    z-index: 100;
}

/*
 * Левая половина карточки.
 */

#artist-releases .artist-release-info-v12 {

    min-width: 0;

    gap: 6px;
}

/*
 * NFT-информация остаётся
 * в одной горизонтальной строке.
 */

#artist-releases .artist-release-nft-info-v12 {

    display: flex;

    flex-direction: row;

    align-items: center;

    justify-content: flex-start;

    flex-wrap: nowrap;

    gap: 4px;

    min-width: 0;

    width: 100%;
}

/*
 * Статус Minted и номер NFT
 * не переносятся.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-release-status {

    flex: 0 0 auto;

    white-space: nowrap;
}

/*
 * Контейнер адреса контракта.
 */

#artist-releases
.artist-nft-contract-viewport-v13 {

    flex: 1 1 0;

    min-width: 0;

    max-width: 100%;

    overflow: hidden;
}

/*
 * Полный адрес остаётся
 * внутри бегущей строки V13.
 */

#artist-releases
.artist-nft-contract-v13 {

    white-space: nowrap;
}

/*
 * Кнопка Cancel sale.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-market-action {

    flex: 0 0 auto;

    white-space: nowrap;
}

/*
 * Правая половина карточки.
 */

#artist-releases
.artist-release-row
.artist-release-qr {

    position: relative;

    min-width: 0;

    overflow: visible !important;

    border: 0;

    padding: 0;

    margin: 0;
}

/*
 * QR-код и кнопка Share
 * располагаются горизонтально.
 */

#artist-releases .artist-release-qr-body {

    display: grid;

    grid-template-columns:
        minmax(0, 1.5fr)
        minmax(0, 0.5fr);

    align-items: center;

    gap: 6px;

    width: 100%;

    min-width: 0;

    overflow: visible;
}

/*
 * QR-код.
 */

#artist-releases .artist-release-qr-image {

    display: flex;

    align-items: center;

    justify-content: center;

    min-width: 0;
}

#artist-releases .artist-release-qr-image img {

    display: block;

    width: 100%;

    height: auto;

    max-width: 160px;

    aspect-ratio: 1 / 1;

    object-fit: contain;
}

#artist-releases
.artist-release-qr-image img[hidden] {

    display: none;
}

/*
 * Кнопка Share справа от QR-кода.
 */

#artist-releases .artist-qr-menu-toggle {

    display: flex;

    align-items: center;

    justify-content: center;

    min-width: 0;

    width: 100%;

    min-height: 38px;

    box-sizing: border-box;
}

/*
 * Отдельная выпадающая рамка Share.
 *
 * Меню располагается поверх страницы,
 * поэтому основная карточка
 * не увеличивается по высоте.
 */

#artist-releases
.artist-qr-dropdown.artist-qr-floating-v14 {

    display: block;

    position: absolute !important;

    top: calc(100% + 8px) !important;

    right: 0 !important;

    bottom: auto !important;

    left: auto !important;

    grid-column: auto;

    grid-row: auto;

    width: 100%;

    max-width: 100%;

    min-width: 0;

    margin: 0;

    padding: 10px;

    box-sizing: border-box;

    border: 1px solid rgba(95, 220, 245, 0.75);

    border-radius: 12px;

    background: #152b34;

    box-shadow:
        0 12px 32px rgba(0, 0, 0, 0.48);

    z-index: 200;
}

/*
 * Закрытое меню не отображается.
 */

#artist-releases
.artist-qr-dropdown[hidden] {

    display: none !important;
}

/*
 * Статистика QR.
 */

#artist-releases .artist-release-qr-stats {

    font-size: 13px;

    line-height: 1.4;

    overflow-wrap: anywhere;
}

/*
 * Заголовок Paxor QR.
 */

#artist-releases .artist-release-qr-header strong {

    font-size: 15px;
}

/* ============================================================
   DESKTOP
   ============================================================ */

@media (min-width: 901px) {

    #artist-releases .artist-release-row {

        grid-template-columns:
            minmax(0, 1.25fr)
            minmax(0, 0.75fr);

        gap: 12px;

        padding: 10px 16px;
    }

    #artist-releases
    .artist-release-qr-image img {

        max-width: 160px;
    }
}

/* ============================================================
   TABLET
   ============================================================ */

@media (min-width: 681px) and (max-width: 900px) {

    #artist-releases .artist-release-row {

        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);

        gap: 8px;

        padding: 10px;
    }

    #artist-releases
    .artist-release-qr-image img {

        max-width: 140px;
    }
}

/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 680px) {

    /*
     * Две половины общей карточки.
     */

    #artist-releases .artist-release-row {

        display: grid;

        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);

        gap: 6px;

        padding: 8px;

        min-height: 0;
    }

    /*
     * Левая половина.
     */

    #artist-releases .artist-release-info-v12 {

        grid-column: 1;

        min-width: 0;

        gap: 5px;
    }

    /*
     * Название и обложка.
     */

    #artist-releases .artist-nft-track-header {

        gap: 5px;

        min-width: 0;
    }

    #artist-releases .artist-nft-track-cover {

        width: 46px;

        height: 46px;

        min-width: 46px;

        flex: 0 0 46px;
    }

    /*
     * NFT-информация.
     */

    #artist-releases .artist-release-nft-info-v12 {

        gap: 3px;

        font-size: 10px;

        min-width: 0;
    }

    /*
     * Адрес контракта получает
     * оставшееся место.
     */

    #artist-releases
    .artist-nft-contract-viewport-v13 {

        flex: 1 1 0;

        min-width: 0;
    }

    /*
     * Компактная кнопка Cancel sale.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-market-action {

        padding: 4px 2px;

        font-size: 10px;

        min-width: 0;
    }

    /*
     * Правая половина.
     */

    #artist-releases
    .artist-release-row
    .artist-release-qr {

        grid-column: 2;

        min-width: 0;

        gap: 3px;
    }

    /*
     * QR-код крупнее.
     */

    #artist-releases .artist-release-qr-body {

        grid-template-columns:
            minmax(0, 1.5fr)
            minmax(0, 0.5fr);

        gap: 4px;
    }

    #artist-releases
    .artist-release-qr-image img {

        width: 100%;

        max-width: 140px;

        height: auto;
    }

    /*
     * Кнопка Share.
     */

    #artist-releases .artist-qr-menu-toggle {

        min-height: 36px;

        padding: 4px 2px;

        gap: 2px;

        font-size: 11px;
    }

    /*
     * Увеличенная статистика.
     */

    #artist-releases .artist-release-qr-stats {

        font-size: 12px;

        line-height: 1.35;
    }

    /*
     * Отдельное выпадающее меню.
     */

    #artist-releases
    .artist-qr-dropdown.artist-qr-floating-v14 {

        width: min(
            280px,
            calc(100vw - 32px)
        );

        max-width: calc(100vw - 32px);

        right: 0 !important;

        top: calc(100% + 8px) !important;

        bottom: auto !important;

        margin: 0;
    }

}

/* ============================================================
   END NFT RELEASE COMPACT CARD V14
   ============================================================ */


/* ==========================================
   PAXOR NFT CONTRACT MARQUEE V15
   ========================================== */

/*
 * NFT-информация располагается
 * горизонтально без переноса.
 */

#artist-releases
.artist-release-nft-info-v12 {

    display: flex;

    flex-direction: row;

    align-items: center;

    justify-content: flex-start;

    flex-wrap: nowrap;

    gap: 3px;

    width: 100%;

    min-width: 0;
}

/*
 * Статус Minted и номер NFT
 * не занимают лишнее пространство.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-release-status {

    flex: 0 0 auto;

    white-space: nowrap;
}

/*
 * Уменьшаем поле адреса контракта.
 *
 * Остальное пространство получают
 * номер NFT и кнопка Cancel sale.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-nft-contract-viewport-v13 {

    display: block;

    flex: 0 1 64px;

    width: 64px;

    max-width: 64px;

    min-width: 0;

    overflow: hidden;

    position: relative;
}

/*
 * Полный адрес остаётся внутри
 * бегущей строки.
 *
 * Существующая JS-логика V13
 * продолжает управлять анимацией.
 */

#artist-releases
.artist-nft-contract-viewport-v13
.artist-nft-contract-v13 {

    display: inline-block;

    width: max-content;

    max-width: none;

    white-space: nowrap;

    overflow: visible;
}

/*
 * Номер NFT располагается сразу
 * после компактного поля адреса.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-release-token {

    flex: 0 0 auto;

    white-space: nowrap;
}

/*
 * Кнопка Cancel sale
 * сдвигается левее.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-market-action {

    flex: 0 0 auto;

    width: auto;

    max-width: max-content;

    min-width: 0;

    margin-left: 0;

    white-space: nowrap;
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    /*
     * Компактная строка NFT.
     */

    #artist-releases
    .artist-release-nft-info-v12 {

        gap: 2px;

        font-size: 10px;
    }

    /*
     * Узкое поле адреса.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-nft-contract-viewport-v13 {

        flex: 0 1 38px;

        width: 38px;

        max-width: 38px;

        min-width: 0;
    }

    /*
     * Компактная кнопка продажи.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-market-action {

        padding: 4px 2px;

        margin: 0;

        font-size: 10px;
    }

}

/* ==========================================
   END NFT CONTRACT MARQUEE V15
   ========================================== */


/* ============================================================
   PAXOR NFT EQUAL HALVES MARQUEE V16
   ============================================================ */

/*
 * Общая карточка разделена
 * на две равные половины.
 */

#artist-releases .artist-release-row {

    display: grid !important;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr) !important;

    column-gap: 12px;

    row-gap: 0;

    align-items: center;

    min-width: 0;

    width: 100%;

    box-sizing: border-box;

    overflow: visible !important;
}

/*
 * Левая половина карточки.
 */

#artist-releases .artist-release-info-v12 {

    grid-column: 1;

    min-width: 0;

    width: 100%;

    max-width: 100%;

    box-sizing: border-box;
}

/*
 * Правая половина с QR-кодом.
 */

#artist-releases
.artist-release-row
.artist-release-qr {

    grid-column: 2;

    min-width: 0;

    width: 100%;

    max-width: 100%;

    margin: 0;

    padding: 0;

    border: 0;

    box-sizing: border-box;
}

/*
 * Обложка и название трека
 * остаются в одной строке.
 */

#artist-releases .artist-nft-track-header {

    display: flex;

    flex-direction: row;

    align-items: center;

    min-width: 0;

    width: 100%;
}

/*
 * Название использует всё
 * доступное пространство.
 */

#artist-releases .artist-release-title {

    flex: 1 1 auto;

    min-width: 0;

    max-width: 100%;
}

/*
 * NFT-информация занимает
 * всю левую половину карточки.
 */

#artist-releases .artist-release-nft-info-v12 {

    display: flex;

    flex-direction: row;

    flex-wrap: nowrap;

    align-items: center;

    justify-content: flex-start;

    width: 100%;

    min-width: 0;

    max-width: 100%;

    gap: 5px;

    box-sizing: border-box;
}

/*
 * Статус и номер NFT
 * сохраняют естественную ширину.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-release-status,

#artist-releases
.artist-release-nft-info-v12
.artist-release-token {

    flex: 0 0 auto;

    white-space: nowrap;
}

/*
 * Убираем ограничения V15:
 * 64px на компьютере,
 * 38px на телефоне.
 *
 * Адрес получает всё оставшееся
 * пространство левой половины.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-nft-contract-viewport-v13 {

    display: block;

    position: relative;

    flex: 1 1 0 !important;

    width: auto !important;

    min-width: 0 !important;

    max-width: none !important;

    overflow: hidden;

    white-space: nowrap;

    box-sizing: border-box;
}

/*
 * Полный адрес сохраняется.
 */

#artist-releases
.artist-nft-contract-viewport-v13
.artist-nft-contract-v13 {

    display: inline-block;

    width: max-content;

    max-width: none;

    white-space: nowrap;

    overflow: visible;
}

/*
 * Кнопка Cancel sale
 * не занимает лишнюю ширину.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-market-action {

    flex: 0 0 auto;

    width: auto;

    min-width: 0;

    max-width: max-content;

    margin: 0;

    white-space: nowrap;

    box-sizing: border-box;
}

/* ============================================================
   CONTRACT MARQUEE
   ============================================================ */

/*
 * Адрес движется только
 * справа налево.
 *
 * В конце цикла анимация
 * возвращается к началу.
 *
 * Обратного движения нет.
 */

@keyframes paxor-nft-marquee-v16 {

    from {

        transform: translateX(0);
    }

    to {

        transform:
            translateX(
                calc(-1 * var(--nft-scroll-distance, 0px))
            );
    }
}

/*
 * Используем существующие параметры
 * расстояния и длительности V13.
 */

#artist-releases
.artist-nft-contract-viewport-v13.is-scrolling
.artist-nft-contract-v13 {

    animation-name:
        paxor-nft-marquee-v16 !important;

    animation-duration:
        var(--nft-scroll-duration, 8s) !important;

    animation-timing-function:
        linear !important;

    animation-iteration-count:
        infinite !important;

    animation-direction:
        normal !important;

    animation-fill-mode:
        none !important;
}

/*
 * Если адрес помещается,
 * анимация не запускается.
 */

#artist-releases
.artist-nft-contract-viewport-v13:not(.is-scrolling)
.artist-nft-contract-v13 {

    animation: none !important;

    transform: none;
}

/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 680px) {

    /*
     * На телефоне также сохраняем
     * две равные половины.
     */

    #artist-releases .artist-release-row {

        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr) !important;

        column-gap: 8px;

        row-gap: 0;

        padding: 10px;
    }

    /*
     * Левая половина использует
     * всю доступную ширину.
     */

    #artist-releases .artist-release-info-v12 {

        grid-column: 1;

        min-width: 0;

        width: 100%;

        gap: 6px;
    }

    /*
     * Правая половина.
     */

    #artist-releases
    .artist-release-row
    .artist-release-qr {

        grid-column: 2;

        min-width: 0;

        width: 100%;

        padding: 0;

        margin: 0;
    }

    /*
     * Компактная строка NFT.
     */

    #artist-releases .artist-release-nft-info-v12 {

        gap: 3px;

        width: 100%;

        min-width: 0;

        font-size: 10px;
    }

    /*
     * Адрес больше не ограничен 38px.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-nft-contract-viewport-v13 {

        flex: 1 1 0 !important;

        width: auto !important;

        max-width: none !important;

        min-width: 0 !important;
    }

    /*
     * Компактная кнопка продажи.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-market-action {

        flex: 0 0 auto;

        width: auto;

        max-width: max-content;

        padding: 4px 2px;

        margin: 0;

        font-size: 10px;

        white-space: nowrap;
    }

    /*
     * QR-код и кнопка Share
     * остаются рядом.
     */

    #artist-releases .artist-release-qr-body {

        display: grid;

        grid-template-columns:
            minmax(0, 1.25fr)
            minmax(0, 0.75fr);

        gap: 4px;

        align-items: center;

        min-width: 0;
    }

    /*
     * Отдельное выпадающее QR-меню
     * сохраняет поведение V14.
     */

    #artist-releases .artist-qr-dropdown {

        box-sizing: border-box;
    }
}

/* ============================================================
   END NFT EQUAL HALVES MARQUEE V16
   ============================================================ */


/* ==========================================
   PAXOR NFT ADDRESS SPACING V17
   ========================================== */

/*
 * Увеличиваем расстояние между
 * элементами NFT-информации.
 */

#artist-releases
.artist-release-nft-info-v12 {

    column-gap: 8px;
}

/*
 * Добавляем внутренние отступы
 * слева и справа от адреса.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-nft-contract-viewport-v13 {

    padding-left: 5px;

    padding-right: 5px;

    box-sizing: border-box;
}

/*
 * Немного увеличиваем номер NFT.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-release-token {

    font-size: 15px;

    font-weight: 700;

    line-height: 1.3;

    white-space: nowrap;
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    /*
     * На телефоне сохраняем
     * достаточно места для адреса.
     */

    #artist-releases
    .artist-release-nft-info-v12 {

        column-gap: 5px;
    }

    /*
     * Отступы вокруг бегущего адреса.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-nft-contract-viewport-v13 {

        padding-left: 4px;

        padding-right: 4px;
    }

    /*
     * Увеличенный номер NFT.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-release-token {

        font-size: 12px;

        font-weight: 700;
    }
}

/* ==========================================
   END NFT ADDRESS SPACING V17
   ========================================== */


/* ==========================================
   PAXOR NFT ADDRESS SPACING V18
   ========================================== */

/*
 * Увеличиваем свободное пространство
 * слева и справа от адреса контракта.
 */

#artist-releases
.artist-release-nft-info-v12 {

    column-gap: 10px;
}

/*
 * Дополнительные внутренние отступы
 * для бегущего адреса.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-nft-contract-viewport-v13 {

    padding-left: 8px;

    padding-right: 8px;

    min-width: 0;

    box-sizing: border-box;
}

/*
 * Увеличиваем номер NFT.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-release-token {

    font-size: 17px;

    font-weight: 700;

    line-height: 1.2;

    white-space: nowrap;
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    /*
     * Увеличиваем расстояние
     * между элементами NFT.
     */

    #artist-releases
    .artist-release-nft-info-v12 {

        column-gap: 7px;
    }

    /*
     * Больше пространства
     * вокруг адреса контракта.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-nft-contract-viewport-v13 {

        padding-left: 6px;

        padding-right: 6px;
    }

    /*
     * Номер NFT становится
     * немного крупнее.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-release-token {

        font-size: 14px;

        font-weight: 700;

        line-height: 1.2;
    }
}

/* ==========================================
   END NFT ADDRESS SPACING V18
   ========================================== */


/* ==================================================
   PAXOR NFT QR ALIGNMENT V19
   ================================================== */

/*
 * Каждая карточка сохраняет
 * две равные половины.
 */

#artist-releases .artist-release-row {

    display: grid !important;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr) !important;

    align-items: start;

    column-gap: 12px;

    min-width: 0;
}

/*
 * Левая половина:
 * обложка, название и NFT-информация.
 */

#artist-releases .artist-release-info-v12 {

    display: flex;

    flex-direction: column;

    align-items: stretch;

    justify-content: flex-start;

    min-width: 0;

    width: 100%;

    gap: 8px;
}

/*
 * Правая половина:
 * QR-код, название Paxor QR,
 * статистика и кнопка Share.
 */

#artist-releases
.artist-release-row
.artist-release-qr {

    display: grid;

    grid-template-columns: minmax(0, 1fr);

    grid-template-rows: auto auto;

    align-content: start;

    align-items: start;

    gap: 0;

    min-width: 0;

    width: 100%;

    margin: 0;

    padding: 0;

    border: 0;

    background: transparent;
}

/*
 * Размещаем QR-код и кнопку Share
 * в одной горизонтальной строке.
 */

#artist-releases .artist-release-qr-body {

    display: grid;

    grid-template-columns:
        auto minmax(0, 1fr);

    align-items: start;

    justify-content: start;

    column-gap: 12px;

    row-gap: 0;

    min-width: 0;

    width: 100%;

    overflow: visible;
}

/*
 * Размер QR-кода соответствует
 * размеру обложки трека.
 */

#artist-releases .artist-release-qr-image {

    display: flex;

    align-items: flex-start;

    justify-content: flex-start;

    width: 92px;

    height: 92px;

    min-width: 0;

    max-width: 100%;

    margin: 0;

    padding: 0;

    box-sizing: border-box;
}

#artist-releases .artist-release-qr-image img {

    display: block;

    width: 92px;

    height: 92px;

    max-width: 100%;

    object-fit: contain;

    border-radius: 9px;
}

/*
 * Скрытое изображение не показываем
 * до завершения загрузки QR-кода.
 */

#artist-releases
.artist-release-qr-image img[hidden] {

    display: none !important;
}

/*
 * Заголовок QR располагается
 * непосредственно под QR-кодом.
 *
 * CSS Grid позволяет изменить
 * визуальный порядок элементов
 * без изменения JavaScript.
 */

#artist-releases .artist-release-qr-header {

    grid-row: 2;

    display: flex;

    flex-direction: column;

    align-items: flex-start;

    justify-content: flex-start;

    gap: 3px;

    min-width: 0;

    width: 100%;

    margin: 8px 0 0;

    padding: 0;
}

/*
 * Заголовок Paxor QR.
 */

#artist-releases
.artist-release-qr-header strong {

    display: block;

    font-size: 15px;

    font-weight: 700;

    line-height: 1.3;

    white-space: nowrap;
}

/*
 * Статистика QR остаётся
 * под названием Paxor QR.
 */

#artist-releases
.artist-release-qr-stats {

    display: block;

    font-size: 12px;

    line-height: 1.4;

    overflow-wrap: anywhere;
}

/*
 * QR-код и кнопка Share
 * располагаются в верхней строке.
 */

#artist-releases .artist-release-qr-body {

    grid-row: 1;
}

/*
 * Контейнер Share занимает
 * оставшуюся ширину правой половины.
 */

#artist-releases .artist-qr-mobile-menu {

    min-width: 0;

    width: 100%;

    align-self: start;
}

/*
 * Кнопка Share находится
 * справа от QR-кода.
 */

#artist-releases .artist-qr-menu-toggle {

    width: 100%;

    min-width: 0;

    box-sizing: border-box;
}

/*
 * Выпадающее меню сохраняет
 * существующую логику открытия.
 */

#artist-releases .artist-qr-dropdown {

    box-sizing: border-box;
}

/* ==================================================
   DESKTOP
   ================================================== */

@media (min-width: 681px) {

    /*
     * QR-код и обложка имеют
     * одинаковый размер 92 x 92.
     */

    #artist-releases .artist-nft-track-cover {

        width: 92px;

        height: 92px;

        min-width: 92px;

        flex: 0 0 92px;
    }

    /*
     * QR-код находится в верхней
     * части правой половины.
     */

    #artist-releases
    .artist-release-qr-body {

        grid-template-columns:
            92px minmax(0, 1fr);

        column-gap: 14px;
    }

}

/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 680px) {

    /*
     * Сохраняем две равные половины
     * общей карточки.
     */

    #artist-releases .artist-release-row {

        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr) !important;

        column-gap: 8px;

        align-items: start;
    }

    /*
     * Обложка трека.
     */

    #artist-releases .artist-nft-track-cover {

        width: 46px;

        height: 46px;

        min-width: 46px;

        flex: 0 0 46px;
    }

    /*
     * QR-код такого же размера,
     * как обложка трека.
     */

    #artist-releases .artist-release-qr-image {

        width: 46px;

        height: 46px;

        min-width: 46px;
    }

    #artist-releases
    .artist-release-qr-image img {

        width: 46px;

        height: 46px;
    }

    /*
     * QR-код слева,
     * кнопка Share справа.
     */

    #artist-releases .artist-release-qr-body {

        grid-template-columns:
            46px minmax(0, 1fr);

        column-gap: 6px;

        align-items: start;
    }

    /*
     * Компактная кнопка Share.
     */

    #artist-releases .artist-qr-menu-toggle {

        min-height: 36px;

        padding: 5px 3px;

        font-size: 11px;

        gap: 3px;
    }

    /*
     * Надпись Paxor QR
     * располагается под QR-кодом.
     */

    #artist-releases .artist-release-qr-header {

        margin-top: 8px;

        gap: 3px;
    }

    #artist-releases
    .artist-release-qr-header strong {

        font-size: 12px;

        line-height: 1.3;
    }

    /*
     * Статистика остаётся
     * под названием QR.
     */

    #artist-releases
    .artist-release-qr-stats {

        font-size: 10px;

        line-height: 1.35;
    }

}

/* ==================================================
   END NFT QR ALIGNMENT V19
   ================================================== */


/* ==================================================
   PAXOR NFT QR LAYOUT V20
   ================================================== */

/*
 * Общая QR-панель.
 *
 * Верхняя строка:
 * QR-код + статистика.
 *
 * Нижняя строка:
 * Paxor QR + Share.
 */

#artist-releases
.artist-release-row
.artist-release-qr {

    display: block;

    width: 100%;

    min-width: 0;

    margin: 0;

    padding: 0;

    border: 0;

    background: transparent;

    overflow: visible;
}

/*
 * Две горизонтальные строки.
 */

#artist-releases .artist-release-qr-body {

    display: flex;

    flex-direction: column;

    align-items: stretch;

    width: 100%;

    min-width: 0;

    gap: 6px;

    overflow: visible;
}

/*
 * Верхняя строка.
 */

#artist-releases .artist-qr-top-v20 {

    display: grid;

    grid-template-columns:
        92px minmax(0, 1fr);

    align-items: start;

    column-gap: 12px;

    width: 100%;

    min-width: 0;
}

/*
 * QR-код находится слева.
 */

#artist-releases
.artist-qr-top-v20
.artist-release-qr-image {

    width: 92px;

    height: 92px;

    min-width: 0;

    max-width: 100%;

    margin: 0;

    padding: 0;
}

#artist-releases
.artist-qr-top-v20
.artist-release-qr-image img {

    display: block;

    width: 92px;

    height: 92px;

    max-width: 100%;

    object-fit: contain;
}

#artist-releases
.artist-qr-top-v20
.artist-release-qr-image img[hidden] {

    display: none !important;
}

/*
 * Статистика располагается
 * справа от QR-кода.
 */

#artist-releases
.artist-qr-top-v20
.artist-release-qr-stats {

    display: block;

    min-width: 0;

    width: 100%;

    margin: 0;

    padding: 2px 0 0;

    font-size: 12px;

    line-height: 1.4;

    overflow-wrap: anywhere;

    align-self: start;
}

/*
 * Нижняя строка:
 * Paxor QR слева, Share справа.
 */

#artist-releases .artist-qr-bottom-v20 {

    display: grid;

    grid-template-columns:
        92px minmax(0, 1fr);

    align-items: center;

    column-gap: 12px;

    width: 100%;

    min-width: 0;

    overflow: visible;
}

/*
 * Название Paxor QR.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-release-qr-header {

    display: flex;

    flex-direction: row;

    align-items: center;

    justify-content: flex-start;

    grid-row: auto;

    width: 100%;

    min-width: 0;

    margin: 0;

    padding: 0;
}

#artist-releases
.artist-qr-bottom-v20
.artist-release-qr-header strong {

    display: block;

    font-size: 15px;

    font-weight: 700;

    line-height: 1.3;

    white-space: nowrap;
}

/*
 * Контейнер кнопки Share.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-mobile-menu {

    display: block;

    position: relative;

    width: 100%;

    min-width: 0;

    margin: 0;

    padding: 0;

    overflow: visible;
}

/*
 * Кнопка Share располагается
 * справа от названия Paxor QR.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-menu-toggle {

    width: 100%;

    min-width: 0;

    min-height: 34px;

    box-sizing: border-box;
}

/*
 * Выпадающее меню ссылок.
 *
 * Отдельная рамка располагается
 * поверх содержимого страницы.
 *
 * Высота основной карточки
 * при открытии не изменяется.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-dropdown {

    position: absolute !important;

    top: calc(100% + 7px) !important;

    right: 0 !important;

    bottom: auto !important;

    left: auto !important;

    display: block;

    width: max-content;

    min-width: min(260px, 80vw);

    max-width: min(340px, 90vw);

    height: auto;

    margin: 0;

    box-sizing: border-box;

    z-index: 100;
}

/*
 * Закрытое меню не занимает место.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-dropdown[hidden] {

    display: none !important;
}

/*
 * Открытая карточка находится
 * выше соседних карточек.
 */

#artist-releases
.artist-release-row.artist-qr-card-open-v14 {

    position: relative;

    z-index: 50;
}

/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 680px) {

    /*
     * Размер QR-кода соответствует
     * размеру мобильной обложки.
     */

    #artist-releases .artist-qr-top-v20 {

        grid-template-columns:
            46px minmax(0, 1fr);

        column-gap: 6px;
    }

    #artist-releases
    .artist-qr-top-v20
    .artist-release-qr-image {

        width: 46px;

        height: 46px;
    }

    #artist-releases
    .artist-qr-top-v20
    .artist-release-qr-image img {

        width: 46px;

        height: 46px;
    }

    /*
     * Статистика справа от кода.
     */

    #artist-releases
    .artist-qr-top-v20
    .artist-release-qr-stats {

        font-size: 10px;

        line-height: 1.3;

        padding-top: 0;
    }

    /*
     * Нижняя строка.
     */

    #artist-releases .artist-qr-bottom-v20 {

        grid-template-columns:
            46px minmax(0, 1fr);

        column-gap: 6px;
    }

    /*
     * Название Paxor QR.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-release-qr-header {

        margin: 0;

        padding: 0;
    }

    #artist-releases
    .artist-qr-bottom-v20
    .artist-release-qr-header strong {

        font-size: 11px;

        line-height: 1.3;
    }

    /*
     * Компактная кнопка Share.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-qr-menu-toggle {

        min-height: 30px;

        padding: 4px 3px;

        font-size: 10px;

        gap: 2px;
    }

    /*
     * Выпадающая рамка ссылок
     * открывается вниз.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-qr-dropdown {

        position: absolute !important;

        top: calc(100% + 7px) !important;

        right: 0 !important;

        bottom: auto !important;

        left: auto !important;

        width: min(280px, 82vw);

        min-width: 0;

        max-width: 82vw;

        margin: 0;

        z-index: 100;
    }

}

/* ==================================================
   END NFT QR LAYOUT V20
   ================================================== */


/* ==========================================
   PAXOR NFT QR INLINE SHARE V21
   ========================================== */

/*
 * Нижняя строка QR-панели:
 * Paxor QR слева, Share справа.
 */

#artist-releases .artist-qr-bottom-v20 {

    display: flex !important;

    flex-direction: row !important;

    flex-wrap: nowrap !important;

    align-items: center !important;

    justify-content: space-between !important;

    gap: 8px;

    width: 100%;

    min-width: 0;
}

/*
 * Название Paxor QR
 * занимает только необходимое место.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-release-qr-header {

    display: flex !important;

    flex: 0 0 auto !important;

    width: auto !important;

    min-width: 0;

    margin: 0 !important;

    padding: 0 !important;
}

/*
 * Контейнер Share занимает
 * оставшееся пространство строки.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-mobile-menu {

    display: block !important;

    flex: 1 1 auto !important;

    width: auto !important;

    min-width: 0;

    max-width: 100%;

    position: relative;
}

/*
 * Кнопка Share справа.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-menu-toggle {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 100%;

    min-width: 0;

    box-sizing: border-box;
}

/*
 * Выпадающее меню сохраняет
 * отдельное расположение.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-dropdown {

    position: absolute !important;

    top: calc(100% + 7px) !important;

    right: 0 !important;

    bottom: auto !important;

    left: auto !important;

    z-index: 100;
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    /*
     * Сохраняем одну строку
     * даже на узком экране.
     */

    #artist-releases .artist-qr-bottom-v20 {

        display: flex !important;

        flex-direction: row !important;

        flex-wrap: nowrap !important;

        align-items: center !important;

        gap: 5px;
    }

    /*
     * Компактный заголовок.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-release-qr-header strong {

        font-size: 11px;

        white-space: nowrap;
    }

    /*
     * Компактная кнопка Share.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-qr-menu-toggle {

        min-height: 30px;

        padding: 4px 3px;

        font-size: 10px;

        gap: 2px;
    }
}

/* ==========================================
   END NFT QR INLINE SHARE V21
   ========================================== */


/* ==========================================
   PAXOR NFT QR SHARE WIDTH V22
   ========================================== */

/*
 * Контейнер Share сохраняет
 * положение справа от Paxor QR.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-mobile-menu {

    flex: 0 1 50% !important;

    width: 50% !important;

    max-width: 50% !important;

    min-width: 0;

    margin-left: auto !important;

    position: relative;
}

/*
 * Кнопка занимает всю ширину
 * уменьшенного контейнера.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-menu-toggle {

    width: 100% !important;

    min-width: 0;

    box-sizing: border-box;
}

/*
 * Выпадающая панель ссылок
 * сохраняет прежнюю ширину.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-dropdown {

    width: max-content;

    max-width: min(340px, 90vw);

    right: 0 !important;
}

/* ==========================================
   END NFT QR SHARE WIDTH V22
   ========================================== */


/* ==========================================
   PAXOR NFT QR TITLE CENTER V23
   ========================================== */

/*
 * Центрируем надпись Paxor QR
 * относительно изображения QR-кода.
 *
 * Сохраняем расположение Share справа.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-release-qr-header {

    display: flex !important;

    flex: 0 0 92px !important;

    width: 92px !important;

    max-width: 92px !important;

    min-width: 0;

    align-items: center !important;

    justify-content: center !important;

    margin: 0 !important;

    padding: 0 !important;

    box-sizing: border-box;
}

/*
 * Увеличиваем заголовок Paxor QR.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-release-qr-header strong {

    display: block;

    width: 100%;

    font-size: 18px !important;

    font-weight: 700;

    line-height: 1.3;

    text-align: center !important;

    white-space: nowrap;
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    /*
     * Ширина заголовка соответствует
     * ширине мобильного QR-кода.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-release-qr-header {

        flex: 0 0 46px !important;

        width: 46px !important;

        max-width: 46px !important;

        min-width: 0;
    }

    /*
     * Увеличиваем мобильный заголовок.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-release-qr-header strong {

        font-size: 13px !important;

        text-align: center !important;
    }
}

/* ==========================================
   END NFT QR TITLE CENTER V23
   ========================================== */


/* ==========================================
   PAXOR NFT QR SPACING V24
   ========================================== */

/*
 * Сохраняем две равные половины
 * общей карточки NFT.
 *
 * Увеличиваем расстояние
 * между левой и правой половинами.
 */

#artist-releases .artist-release-row {

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr) !important;

    column-gap: 24px !important;
}

/*
 * Правая половина карточки.
 *
 * QR-код и заголовок сдвигаются
 * немного вправо.
 */

#artist-releases
.artist-release-row
.artist-release-qr {

    padding-left: 10px !important;

    padding-right: 0 !important;

    box-sizing: border-box;
}

/*
 * Сохраняем расположение QR-кода
 * в верхней части правой половины.
 */

#artist-releases
.artist-release-qr-body {

    justify-content: start;

    min-width: 0;
}

/*
 * Нижняя строка:
 * Paxor QR слева,
 * Share непосредственно справа.
 */

#artist-releases
.artist-qr-bottom-v20 {

    display: flex !important;

    flex-direction: row !important;

    flex-wrap: nowrap !important;

    align-items: center !important;

    justify-content: flex-start !important;

    gap: 8px !important;

    width: 100%;

    min-width: 0;
}

/*
 * Заголовок Paxor QR
 * остаётся по центру QR-кода.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-release-qr-header {

    display: flex !important;

    flex: 0 0 92px !important;

    width: 92px !important;

    max-width: 92px !important;

    align-items: center !important;

    justify-content: center !important;

    margin: 0 !important;

    padding: 0 !important;
}

/*
 * Увеличиваем надпись Paxor QR.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-release-qr-header strong {

    display: block;

    width: 100%;

    font-size: 21px !important;

    font-weight: 700;

    line-height: 1.25;

    text-align: center !important;

    white-space: nowrap;
}

/*
 * Уменьшаем ширину кнопки Share.
 *
 * Контейнер больше не растягивается
 * на всё свободное пространство.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-mobile-menu {

    display: block !important;

    flex: 0 0 auto !important;

    width: 82px !important;

    max-width: 82px !important;

    min-width: 0;

    margin-left: 0 !important;

    position: relative;
}

/*
 * Компактная кнопка Share
 * со скруглёнными углами.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-menu-toggle {

    display: flex !important;

    align-items: center;

    justify-content: center;

    width: 100% !important;

    min-width: 0;

    max-width: 100%;

    border-radius: 14px !important;

    box-sizing: border-box;
}

/*
 * Выпадающая панель ссылок
 * сохраняет прежнюю ширину
 * и открывается вниз.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-dropdown {

    right: 0 !important;

    left: auto !important;

    width: max-content;

    max-width: min(340px, 90vw);

    box-sizing: border-box;
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    /*
     * На телефоне сохраняем
     * две равные половины.
     */

    #artist-releases .artist-release-row {

        column-gap: 12px !important;
    }

    /*
     * Немного сдвигаем QR-код
     * вправо от левой половины.
     */

    #artist-releases
    .artist-release-row
    .artist-release-qr {

        padding-left: 4px !important;
    }

    /*
     * Заголовок остаётся
     * по центру мобильного QR-кода.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-release-qr-header {

        flex: 0 0 46px !important;

        width: 46px !important;

        max-width: 46px !important;
    }

    /*
     * Увеличенная надпись Paxor QR.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-release-qr-header strong {

        font-size: 15px !important;

        text-align: center !important;
    }

    /*
     * Компактная кнопка Share.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-qr-mobile-menu {

        flex: 0 0 auto !important;

        width: 64px !important;

        max-width: 64px !important;

        margin-left: 0 !important;
    }

    /*
     * Уменьшаем расстояние
     * между заголовком и кнопкой.
     */

    #artist-releases
    .artist-qr-bottom-v20 {

        gap: 6px !important;
    }

    /*
     * Скругляем углы кнопки.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-qr-menu-toggle {

        border-radius: 12px !important;

        min-height: 30px;

        padding: 4px 3px;
    }
}

/* ==========================================
   END NFT QR SPACING V24
   ========================================== */


/* ==========================================
   PAXOR NFT SHARE AND MARQUEE V25
   ========================================== */

/*
 * Увеличиваем ширину контейнера Share.
 *
 * Сохраняем расположение справа
 * от заголовка Paxor QR.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-mobile-menu {

    display: block !important;

    flex: 0 0 108px !important;

    width: 108px !important;

    max-width: 108px !important;

    min-width: 0;

    margin-left: 12px !important;

    position: relative;
}

/*
 * Кнопка Share.
 *
 * Текст и иконки должны полностью
 * помещаться внутри рамки.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-menu-toggle {

    display: flex !important;

    flex-direction: row !important;

    align-items: center !important;

    justify-content: center !important;

    flex-wrap: nowrap !important;

    width: 100% !important;

    min-width: 0;

    max-width: 100%;

    box-sizing: border-box;

    padding: 8px 9px !important;

    gap: 5px !important;

    border-radius: 14px !important;

    white-space: nowrap;
}

/*
 * Текст и иконки Share
 * не должны сжиматься или переноситься.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-menu-toggle > span,

#artist-releases
.artist-qr-bottom-v20
.artist-qr-menu-toggle > i {

    flex: 0 0 auto;

    white-space: nowrap;
}

/* ==========================================
   CONTRACT ADDRESS MARQUEE
   ========================================== */

/*
 * Область просмотра адреса контракта.
 *
 * Всё, что выходит за её границы,
 * скрывается.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-nft-contract-viewport-v13 {

    position: relative;

    display: block;

    min-width: 0;

    overflow: hidden !important;

    white-space: nowrap;

    box-sizing: border-box;
}

/*
 * Полный адрес движется
 * только справа налево.
 *
 * 100% — вся ширина самого адреса.
 *
 * translateX(-100%) полностью
 * выводит адрес за левую границу.
 *
 * CSS-анимация повторяется бесконечно.
 */

@keyframes paxor-nft-contract-marquee-v25 {

    0% {

        transform: translateX(0);
    }

    100% {

        transform: translateX(
            calc(-100% - var(--paxor-marquee-width, 64px))
        );
    }
}

/*
 * Бегущая строка адреса.
 *
 * Начальная позиция устанавливается
 * у правого края видимой области.
 *
 * После полного исчезновения
 * последнего символа цикл повторяется.
 */

#artist-releases
.artist-nft-contract-viewport-v13
.artist-nft-contract-v13 {

    display: inline-block !important;

    position: relative;

    left: 100%;

    width: max-content !important;

    max-width: none !important;

    min-width: max-content;

    overflow: visible !important;

    white-space: nowrap !important;

    text-overflow: clip !important;

    transform: translateX(0);

    animation:
        paxor-nft-contract-marquee-v25
        12s
        linear
        infinite !important;

    animation-direction: normal !important;

    animation-fill-mode: none !important;

    animation-play-state: running !important;

    will-change: transform;
}

/*
 * Отключаем прежние ограничения
 * анимации, если они применялись
 * к бегущей строке через классы.
 */

#artist-releases
.artist-nft-contract-viewport-v13
.artist-nft-contract-v13:hover {

    animation-play-state: running !important;
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    /*
     * На телефоне кнопка Share
     * становится немного шире.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-qr-mobile-menu {

        flex: 0 0 76px !important;

        width: 76px !important;

        max-width: 76px !important;

        margin-left: 3px !important;
    }

    /*
     * Компактные внутренние отступы.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-qr-menu-toggle {

        padding: 5px 4px !important;

        gap: 3px !important;

        font-size: 10px;
    }

    /*
     * Мобильная ширина области адреса.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-nft-contract-viewport-v13 {

        --paxor-marquee-width: 38px;
    }

}

/* ==========================================
   END NFT SHARE AND MARQUEE V25
   ========================================== */


/* ==========================================
   PAXOR NFT SHARE HEIGHT MARQUEE V26
   ========================================== */

/*
 * Уменьшаем высоту кнопки Share.
 *
 * Ширина и расположение сохраняются.
 */

#artist-releases
.artist-qr-bottom-v20
.artist-qr-menu-toggle {

    min-height: 28px !important;

    height: 28px !important;

    padding: 3px 8px !important;

    line-height: 1.1 !important;

    border-radius: 14px !important;

    box-sizing: border-box;
}

/* ==========================================
   CONTRACT ADDRESS
   ========================================== */

/*
 * Строка NFT-информации.
 *
 * Minted, адрес, номер NFT
 * и Cancel sale остаются
 * в одной горизонтальной строке.
 */

#artist-releases
.artist-release-nft-info-v12 {

    display: flex;

    flex-direction: row;

    align-items: center;

    flex-wrap: nowrap;

    min-width: 0;

    overflow: visible;
}

/*
 * Возвращаем адресу доступное место
 * внутри левой половины карточки.
 *
 * Адрес занимает свободное пространство
 * между Minted и номером NFT.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-nft-contract-viewport-v13 {

    display: block;

    position: relative;

    flex: 1 1 0 !important;

    width: auto !important;

    max-width: none !important;

    min-width: 0;

    padding-left: 0 !important;

    padding-right: 0 !important;

    margin: 0;

    overflow: hidden !important;

    white-space: nowrap;

    box-sizing: border-box;
}

/*
 * Полный адрес появляется
 * за правой границей поля.
 *
 * Движение заканчивается только
 * после исчезновения последнего
 * символа за левой границей.
 */

@keyframes paxor-nft-contract-marquee-v26 {

    from {

        transform: translateX(0);
    }

    to {

        transform: translateX(
            calc(-100% - var(--paxor-contract-track-width, 0px))
        );
    }
}

/*
 * Бегущая строка:
 *
 * Начальная позиция — справа.
 * Направление — только влево.
 * После полного исчезновения
 * начинается новый цикл.
 */

#artist-releases
.artist-nft-contract-viewport-v13
.artist-nft-contract-v13 {

    display: inline-block !important;

    position: relative !important;

    left: 100% !important;

    width: max-content !important;

    max-width: none !important;

    min-width: max-content;

    padding: 0 !important;

    margin: 0 !important;

    overflow: visible !important;

    white-space: nowrap !important;

    text-overflow: clip !important;

    animation:
        paxor-nft-contract-marquee-v26
        12s
        linear
        infinite !important;

    animation-direction: normal !important;

    animation-fill-mode: none !important;

    animation-play-state: running !important;

    will-change: transform;
}

/*
 * Указываем ширину видимой области
 * для расчёта полного пути адреса.
 */

#artist-releases
.artist-nft-contract-viewport-v13 {

    container-type: inline-size;
}

#artist-releases
.artist-nft-contract-viewport-v13
.artist-nft-contract-v13 {

    --paxor-contract-track-width: 0px;
}

/*
 * Скрываем адрес строго
 * внутри его собственного поля.
 *
 * Minted остаётся видимым
 * и не перекрывается анимацией.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-release-status {

    position: relative;

    flex: 0 0 auto;

    z-index: 1;

    white-space: nowrap;
}

/*
 * Номер NFT и Cancel sale
 * сохраняют своё положение.
 */

#artist-releases
.artist-release-nft-info-v12
.artist-release-token,

#artist-releases
.artist-release-nft-info-v12
.artist-market-action {

    flex: 0 0 auto;

    white-space: nowrap;
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    /*
     * Уменьшаем высоту кнопки Share
     * на мобильном экране.
     */

    #artist-releases
    .artist-qr-bottom-v20
    .artist-qr-menu-toggle {

        min-height: 26px !important;

        height: 26px !important;

        padding: 3px 4px !important;

        border-radius: 12px !important;
    }

    /*
     * Адрес использует всё
     * доступное пространство
     * между Minted и номером NFT.
     */

    #artist-releases
    .artist-release-nft-info-v12
    .artist-nft-contract-viewport-v13 {

        flex: 1 1 0 !important;

        width: auto !important;

        max-width: none !important;

        min-width: 0;
    }
}

/* ==========================================
   END NFT SHARE HEIGHT MARQUEE V26
   ========================================== */


/* ==========================================
   PAXOR ARTIST SIDEBAR BUTTONS V27
   ========================================== */

/*
 * Четыре кнопки Artist Studio:
 *
 * Artist profile
 * New track
 * Create Music NFT
 * NFT music releases
 *
 * Уменьшаем только ширину кнопок.
 *
 * Сдвигаем их вправо,
 * ближе к вертикальному скроллу.
 *
 * Остальные стили не изменяем.
 */

.artist-studio-nav
> .artist-nav-group
> .artist-nav-link {

    width: calc(100% - 16px) !important;

    max-width: calc(100% - 16px) !important;

    margin-left: 16px !important;

    margin-right: 0 !important;

    box-sizing: border-box;
}

/* ==========================================
   END ARTIST SIDEBAR BUTTONS V27
   ========================================== */


/* ==========================================
   PAXOR ARTIST SIDEBAR BUTTONS V28
   ========================================== */

/*
 * Четыре кнопки Artist Studio.
 *
 * Сохраняем ширину V27.
 *
 * Сдвигаем кнопки вправо
 * до правой границы навигации.
 *
 * Остальные стили не изменяем.
 */

.artist-studio-nav
> .artist-nav-group
> .artist-nav-link {

    width: calc(100% - 16px) !important;

    max-width: calc(100% - 16px) !important;

    margin-left: auto !important;

    margin-right: 0 !important;

    box-sizing: border-box;
}

/*
 * Убираем правый внутренний отступ
 * у групп навигации.
 *
 * Кнопки смогут доходить
 * до правой границы колонки.
 */

.artist-studio-nav
> .artist-nav-group {

    padding-right: 0 !important;
}

/*
 * Убираем правый отступ
 * самой навигации.
 *
 * Левая сторона не изменяется.
 */

.artist-studio-nav {

    padding-right: 0 !important;

    margin-right: 0 !important;
}

/* ==========================================
   END ARTIST SIDEBAR BUTTONS V28
   ========================================== */


/* ==========================================
   PAXOR ARTIST SIDEBAR NAV RIGHT V29
   ========================================== */

@media (min-width: 761px) {

    /*
     * Сдвигаем всю навигацию Artist Studio
     * вправо к полосе прокрутки.
     *
     * Ширина самих кнопок остаётся такой,
     * какой была установлена в V27/V28.
     */

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav {

        position: relative !important;

        left: 16px !important;

        width: calc(100% - 16px) !important;

        max-width: calc(100% - 16px) !important;

        margin-left: 0 !important;

        margin-right: 0 !important;

        padding-left: 0 !important;

        padding-right: 0 !important;

        box-sizing: border-box;
    }

    /*
     * Каждая группа занимает всю новую
     * ширину навигации.
     */

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav
    > .artist-nav-group {

        width: 100% !important;

        max-width: 100% !important;

        margin-left: 0 !important;

        margin-right: 0 !important;

        padding-left: 0 !important;

        padding-right: 0 !important;

        box-sizing: border-box;
    }

    /*
     * Кнопка прижимается к правому краю
     * группы — непосредственно в сторону
     * полосы прокрутки.
     *
     * Размер кнопки из V27/V28 сохраняем.
     */

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav
    > .artist-nav-group
    > .artist-nav-link {

        width: calc(100% - 16px) !important;

        max-width: calc(100% - 16px) !important;

        margin-left: auto !important;

        margin-right: 0 !important;

        box-sizing: border-box;
    }
}

/* ==========================================
   END ARTIST SIDEBAR NAV RIGHT V29
   ========================================== */


/* ==========================================
   PAXOR ARTIST SIDEBAR NAV LEFT V30
   ========================================== */

@media (min-width: 761px) {

    /*
     * Отменяем сдвиг всей навигации вправо,
     * который был добавлен в V29.
     */

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav {

        left: 0 !important;

        width: 100% !important;
        max-width: 100% !important;

        margin-left: 0 !important;
        margin-right: 0 !important;

        padding-left: 0 !important;
        padding-right: 0 !important;

        box-sizing: border-box;
    }

    /*
     * Группы начинаются от левого края.
     */

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav
    > .artist-nav-group {

        width: 100% !important;
        max-width: 100% !important;

        margin-left: 0 !important;
        margin-right: 0 !important;

        padding-left: 0 !important;
        padding-right: 0 !important;

        box-sizing: border-box;
    }

    /*
     * Все четыре вкладки прижимаем ВЛЕВО.
     * Их уменьшенную ширину сохраняем.
     */

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav
    > .artist-nav-group
    > .artist-nav-link {

        width: calc(100% - 16px) !important;
        max-width: calc(100% - 16px) !important;

        margin-left: 0 !important;
        margin-right: auto !important;

        box-sizing: border-box;
    }
}

/* ==========================================
   END ARTIST SIDEBAR NAV LEFT V30
   ========================================== */


/* ==========================================
   PAXOR ARTIST SIDEBAR PUBLIC PAGE V31
   ========================================== */

@media (min-width: 761px) {

    /*
     * Старый v21 резервировал снизу 110px
     * под глобальный player.
     *
     * В текущей геометрии sidebar этот запас
     * лишний и забирает полезную высоту.
     */

    .artist-studio-v20
    .artist-studio-sidebar {

        padding-bottom: 0 !important;
    }

    /*
     * Центральная часть sidebar занимает
     * всё реально доступное пространство.
     */

    .artist-studio-v20
    .artist-sidebar-scroll {

        flex: 1 1 auto !important;

        min-height: 0 !important;

        display: flex !important;
        flex-direction: column !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    /*
     * Public page автоматически уходит
     * вниз свободного пространства.
     */

    .artist-studio-v20
    .artist-sidebar-actions {

        margin-top: auto !important;

        flex: 0 0 auto !important;

        padding-bottom: 8px !important;
    }
}

/* ==========================================
   END ARTIST SIDEBAR PUBLIC PAGE V31
   ========================================== */


/* ==========================================
   PAXOR NFT QR LINKS STATS CSS V32
   ========================================== */

#artist-releases
.artist-release-qr-body {
    position: relative !important;

    display: flex !important;
    flex-direction: column !important;

    min-width: 0;
}


/* ==========================================
   QR LINKS — TOP RIGHT / TWO ROWS
   ========================================== */

#artist-releases
.artist-qr-links-v32 {
    position: absolute !important;

    top: 0 !important;
    right: 0 !important;

    display: flex !important;
    flex-direction: column !important;

    align-items: flex-start !important;

    gap: 4px !important;

    width: max-content !important;
    max-width: 200px !important;

    margin: 0 !important;
    padding: 0 !important;

    z-index: 5;
}


/*
 * QR musical release
 * NFT passport QR
 *
 * Без общей рамки и без dropdown.
 */

#artist-releases
.artist-qr-links-v32
.artist-release-qr-type {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: flex-start !important;

    gap: 6px !important;

    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;

    min-height: 0 !important;
    height: auto !important;

    margin: 0 !important;
    padding: 1px 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    outline: 0 !important;

    background: transparent !important;

    box-shadow: none !important;

    white-space: nowrap !important;

    line-height: 1.25 !important;

    cursor: pointer;
}


#artist-releases
.artist-qr-links-v32
.artist-release-qr-type:hover,
#artist-releases
.artist-qr-links-v32
.artist-release-qr-type:focus,
#artist-releases
.artist-qr-links-v32
.artist-release-qr-type.active {
    border: 0 !important;

    outline: 0 !important;

    background: transparent !important;

    box-shadow: none !important;
}


/* ==========================================
   QR TOP
   ========================================== */

#artist-releases
.artist-qr-top-v20 {
    position: relative !important;

    display: flex !important;

    align-items: flex-start !important;
    justify-content: center !important;

    width: 100% !important;

    min-width: 0;
}


/* ==========================================
   PAXOR QR
   ========================================== */

#artist-releases
.artist-qr-bottom-v20 {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;

    gap: 0 !important;
}


/* ==========================================
   REMOVE OLD SHARE / DROPDOWN
   ========================================== */

#artist-releases
.artist-qr-mobile-menu {
    display: none !important;
}

#artist-releases
.artist-qr-menu-toggle {
    display: none !important;
}

#artist-releases
.artist-qr-dropdown {
    display: none !important;
}


/* ==========================================
   QR STATS — BOTTOM RIGHT
   ========================================== */

#artist-releases
.artist-qr-stats-bottom-v32 {
    display: flex !important;

    align-items: flex-end !important;
    justify-content: flex-end !important;

    width: 100% !important;

    margin-top: auto !important;

    padding-top: 5px !important;

    box-sizing: border-box;
}


#artist-releases
.artist-qr-stats-bottom-v32
.artist-release-qr-stats {
    display: block !important;

    width: auto !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    text-align: right !important;

    white-space: normal !important;

    line-height: 1.25 !important;
}


/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    #artist-releases
    .artist-qr-links-v32 {
        position: static !important;

        width: 100% !important;
        max-width: 100% !important;

        margin-bottom: 6px !important;
    }

    #artist-releases
    .artist-qr-links-v32
    .artist-release-qr-type {
        font-size: 10px !important;
    }

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        padding-top: 5px !important;
    }
}

/* ==========================================
   END PAXOR NFT QR LINKS STATS CSS V32
   ========================================== */


/* ==========================================
   PAXOR NFT QR POSITION V33
   ========================================== */

@media (min-width: 681px) {

    /*
     * QR-панель:
     * QR возвращаем ближе к центру карточки.
     */

    #artist-releases
    .artist-qr-top-v20 {
        justify-content: flex-start !important;

        padding-left: 24% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    /*
     * Paxor QR должен находиться точно
     * под самим QR-кодом.
     */

    #artist-releases
    .artist-qr-bottom-v20 {
        justify-content: flex-start !important;

        padding-left: 24% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    /*
     * Две ссылки остаются справа сверху.
     */

    #artist-releases
    .artist-qr-links-v32 {
        top: 0 !important;
        right: 0 !important;

        left: auto !important;

        display: flex !important;
        flex-direction: column !important;

        align-items: flex-start !important;

        gap: 4px !important;
    }


    /*
     * Каждая ссылка — отдельная строка.
     * Без рамки, фона и dropdown.
     */

    #artist-releases
    .artist-qr-links-v32
    .artist-release-qr-type {
        display: flex !important;

        width: auto !important;
        height: auto !important;

        margin: 0 !important;
        padding: 1px 0 !important;

        border: 0 !important;
        outline: 0 !important;

        background: transparent !important;
        box-shadow: none !important;

        white-space: nowrap !important;
    }


    /*
     * Статистика остаётся снизу справа.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        justify-content: flex-end !important;

        padding-left: 0 !important;
        padding-right: 0 !important;
    }

}

/* ==========================================
   END PAXOR NFT QR POSITION V33
   ========================================== */


/* ==========================================
   PAXOR QR ACTION LINKS CSS V34
   ========================================== */

@media (min-width: 681px) {

    /* --------------------------------------
       QR — немного вправо относительно V33
       V33 = 24%
       V34 = 29%
       -------------------------------------- */

    #artist-releases
    .artist-qr-top-v20 {
        justify-content: flex-start !important;

        padding-left: 29% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    #artist-releases
    .artist-qr-bottom-v20 {
        justify-content: flex-start !important;

        padding-left: 29% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    /* --------------------------------------
       4 ACTION LINKS
       2 columns × 2 rows
       -------------------------------------- */

    #artist-releases
    .artist-qr-actions-v34 {
        position: absolute !important;

        top: 48px !important;
        right: 0 !important;

        display: grid !important;

        grid-template-columns:
            max-content max-content !important;

        grid-template-rows:
            auto auto !important;

        column-gap: 18px !important;
        row-gap: 5px !important;

        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
        border-top: 0 !important;
        border-radius: 0 !important;

        background: transparent !important;

        box-shadow: none !important;

        z-index: 6;
    }


    /* --------------------------------------
       САМИ ССЫЛКИ
       -------------------------------------- */

    #artist-releases
    .artist-qr-actions-v34
    button {
        display: inline-flex !important;

        align-items: center !important;
        justify-content: flex-start !important;

        gap: 6px !important;

        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;

        min-height: 0 !important;
        height: auto !important;

        margin: 0 !important;
        padding: 1px 0 !important;

        border: 0 !important;
        border-radius: 0 !important;

        outline: 0 !important;

        background: transparent !important;

        box-shadow: none !important;

        color: #dbe8ec !important;

        font-size: 12px !important;
        font-weight: 600 !important;

        line-height: 1.25 !important;

        white-space: nowrap !important;

        cursor: pointer !important;
    }


    #artist-releases
    .artist-qr-actions-v34
    button:hover {
        color: #68dfff !important;

        background: transparent !important;

        border: 0 !important;

        box-shadow: none !important;
    }


    #artist-releases
    .artist-qr-actions-v34
    button i {
        width: 15px !important;
        min-width: 15px !important;
        flex: 0 0 15px !important;

        text-align: center !important;

        color: #68dfff !important;
    }


    /* --------------------------------------
       QR TYPE LINKS
       остаются сверху справа
       -------------------------------------- */

    #artist-releases
    .artist-qr-links-v32 {
        top: 0 !important;
        right: 0 !important;

        left: auto !important;
    }


    /* --------------------------------------
       STATS
       остаются снизу справа
       -------------------------------------- */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        justify-content: flex-end !important;

        margin-top: auto !important;

        padding-left: 0 !important;
        padding-right: 0 !important;
    }

}


/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 680px) {

    /*
     * На мобильном тоже показываем действия
     * без старого dropdown.
     */

    #artist-releases
    .artist-qr-actions-v34 {
        position: static !important;

        display: grid !important;

        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr) !important;

        gap: 6px 12px !important;

        width: 100% !important;

        margin: 5px 0 0 !important;
        padding: 0 !important;

        border: 0 !important;

        background: transparent !important;
    }


    #artist-releases
    .artist-qr-actions-v34
    button {
        display: inline-flex !important;

        align-items: center !important;
        justify-content: flex-start !important;

        gap: 6px !important;

        width: auto !important;
        min-width: 0 !important;

        min-height: 0 !important;
        height: auto !important;

        margin: 0 !important;
        padding: 3px 0 !important;

        border: 0 !important;
        border-radius: 0 !important;

        background: transparent !important;

        box-shadow: none !important;

        font-size: 11px !important;

        white-space: nowrap !important;
    }
}


/* ==========================================
   END PAXOR QR ACTION LINKS CSS V34
   ========================================== */


/* ==========================================
   PAXOR QR ACTIONS LEFT V35
   ========================================== */

@media (min-width: 681px) {

    /*
     * QR + Paxor QR немного влево.
     * V34: 29%
     * V35: 25%
     */

    #artist-releases
    .artist-qr-top-v20 {
        justify-content: flex-start !important;

        padding-left: 25% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }

    #artist-releases
    .artist-qr-bottom-v20 {
        justify-content: flex-start !important;

        padding-left: 25% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    /*
     * Четыре действия тоже сдвигаем
     * влево от правого края.
     *
     * Copy link     Download PNG
     * Share         Open page
     */

    #artist-releases
    .artist-qr-actions-v34 {
        right: 9% !important;
        left: auto !important;

        top: 48px !important;
    }


    /*
     * Два переключателя QR пока
     * оставляем на прежнем месте.
     */

    #artist-releases
    .artist-qr-links-v32 {
        right: 0 !important;
        left: auto !important;
    }


    /*
     * Нижнюю статистику не двигаем.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        justify-content: flex-end !important;

        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ==========================================
   END PAXOR QR ACTIONS LEFT V35
   ========================================== */


/* ==========================================
   PAXOR QR ACTIONS MORE LEFT V36
   ========================================== */

@media (min-width: 681px) {

    /*
     * QR + Paxor QR ещё левее.
     *
     * V35 = 25%
     * V36 = 18%
     */

    #artist-releases
    .artist-qr-top-v20 {
        justify-content: flex-start !important;

        padding-left: 18% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    #artist-releases
    .artist-qr-bottom-v20 {
        justify-content: flex-start !important;

        padding-left: 18% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    /*
     * Четыре action-ссылки также
     * заметно перемещаем влево.
     *
     * V35 = right: 9%
     * V36 = right: 18%
     */

    #artist-releases
    .artist-qr-actions-v34 {
        right: 18% !important;
        left: auto !important;

        top: 48px !important;
    }


    /*
     * Эти две ссылки НЕ двигаем.
     */

    #artist-releases
    .artist-qr-links-v32 {
        right: 0 !important;
        left: auto !important;
    }


    /*
     * Статистику НЕ двигаем.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        justify-content: flex-end !important;

        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ==========================================
   END PAXOR QR ACTIONS MORE LEFT V36
   ========================================== */


/* ==========================================
   PAXOR QR ACTIONS FURTHER LEFT V37
   ========================================== */

@media (min-width: 681px) {

    /*
     * QR + Paxor QR ещё левее.
     *
     * V36 = 18%
     * V37 = 11%
     */

    #artist-releases
    .artist-qr-top-v20 {
        justify-content: flex-start !important;

        padding-left: 11% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }

    #artist-releases
    .artist-qr-bottom-v20 {
        justify-content: flex-start !important;

        padding-left: 11% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    /*
     * Copy link / Download PNG
     * Share / Open page
     *
     * Ещё левее.
     *
     * V36 = right: 18%
     * V37 = right: 27%
     */

    #artist-releases
    .artist-qr-actions-v34 {
        right: 27% !important;
        left: auto !important;

        top: 48px !important;
    }


    /*
     * QR musical release
     * NFT passport QR
     *
     * Не двигаем.
     */

    #artist-releases
    .artist-qr-links-v32 {
        right: 0 !important;
        left: auto !important;
    }


    /*
     * Статистика остаётся справа снизу.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        justify-content: flex-end !important;

        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ==========================================
   END PAXOR QR ACTIONS FURTHER LEFT V37
   ========================================== */


/* ==========================================
   PAXOR QR ACTIONS LEFT V38
   ========================================== */

@media (min-width: 681px) {

    /*
     * QR + Paxor QR ещё левее.
     *
     * V37 = 11%
     * V38 = 5%
     */

    #artist-releases
    .artist-qr-top-v20 {
        justify-content: flex-start !important;

        padding-left: 5% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }

    #artist-releases
    .artist-qr-bottom-v20 {
        justify-content: flex-start !important;

        padding-left: 5% !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    /*
     * Четыре action-ссылки ещё левее.
     *
     * V37 = right: 27%
     * V38 = right: 35%
     */

    #artist-releases
    .artist-qr-actions-v34 {
        right: 35% !important;
        left: auto !important;

        top: 48px !important;
    }


    /*
     * QR musical release / NFT passport QR
     * остаются справа.
     */

    #artist-releases
    .artist-qr-links-v32 {
        right: 0 !important;
        left: auto !important;
    }


    /*
     * Статистика остаётся снизу справа.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        justify-content: flex-end !important;

        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ==========================================
   END PAXOR QR ACTIONS LEFT V38
   ========================================== */


/* ==========================================
   PAXOR QR ACTIONS MORE LEFT V39
   ========================================== */

@media (min-width: 681px) {

    /*
     * QR + Paxor QR ещё левее.
     *
     * V38 = 5%
     * V39 = 0%
     */

    #artist-releases
    .artist-qr-top-v20 {
        justify-content: flex-start !important;

        padding-left: 0 !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }

    #artist-releases
    .artist-qr-bottom-v20 {
        justify-content: flex-start !important;

        padding-left: 0 !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    /*
     * Copy link / Download PNG
     * Share / Open page
     *
     * Ещё левее.
     *
     * V38 = right: 35%
     * V39 = right: 43%
     */

    #artist-releases
    .artist-qr-actions-v34 {
        right: 43% !important;
        left: auto !important;

        top: 48px !important;
    }


    /*
     * QR musical release / NFT passport QR
     * НЕ двигаем.
     */

    #artist-releases
    .artist-qr-links-v32 {
        right: 0 !important;
        left: auto !important;
    }


    /*
     * Нижнюю статистику НЕ двигаем.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        justify-content: flex-end !important;

        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ==========================================
   END PAXOR QR ACTIONS MORE LEFT V39
   ========================================== */


/* ==========================================
   PAXOR QR ACTIONS EXTRA LEFT V40
   ========================================== */

@media (min-width: 681px) {

    /*
     * Сам QR-код двигаем ещё на 70px влево.
     */

    #artist-releases
    .artist-qr-top-v20
    .artist-release-qr-image-frame {
        transform: translateX(-70px) !important;
    }


    /*
     * Paxor QR двигаем на те же 70px,
     * чтобы подпись оставалась под QR.
     */

    #artist-releases
    .artist-qr-bottom-v20 {
        transform: translateX(-70px) !important;
    }


    /*
     * Четыре ссылки ещё левее.
     *
     * V39 = right: 43%
     * V40 = right: 51%
     */

    #artist-releases
    .artist-qr-actions-v34 {
        right: 51% !important;
        left: auto !important;

        top: 48px !important;
    }


    /*
     * QR musical release / NFT passport QR
     * НЕ двигаем.
     */

    #artist-releases
    .artist-qr-links-v32 {
        right: 0 !important;
        left: auto !important;
    }


    /*
     * Статистику НЕ двигаем.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        justify-content: flex-end !important;
    }
}

/* ==========================================
   END PAXOR QR ACTIONS EXTRA LEFT V40
   ========================================== */


/* ==========================================
   PAXOR QR TEXT ACTIONS RIGHT V41
   ========================================== */

@media (min-width: 681px) {

    /*
     * QR IMAGE:
     * НЕ ТРОГАЕМ.
     *
     * Он остаётся на позиции V40:
     * translateX(-70px)
     */


    /*
     * Только текст "Paxor QR".
     *
     * V40 = -70px
     * V41 = -35px
     *
     * То есть возвращаем текст на 35px вправо,
     * QR-код остаётся на месте.
     */

    #artist-releases
    .artist-qr-bottom-v20 {
        transform: translateX(-35px) !important;
    }


    /*
     * Четыре ссылки:
     *
     * Copy link
     * Download PNG
     * Share
     * Open page
     *
     * V40 = right: 51%
     * V41 = right: 47%
     *
     * Немного возвращаем вправо.
     */

    #artist-releases
    .artist-qr-actions-v34 {
        right: 47% !important;
        left: auto !important;
        top: 48px !important;
    }


    /*
     * Правые переключатели не трогаем.
     */

    #artist-releases
    .artist-qr-links-v32 {
        right: 0 !important;
        left: auto !important;
    }


    /*
     * Статистику не трогаем.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        justify-content: flex-end !important;
    }
}

/* ==========================================
   END PAXOR QR TEXT ACTIONS RIGHT V41
   ========================================== */


/* ==========================================
   PAXOR QR LEFT TEXT RIGHT V42
   ========================================== */

@media (min-width: 681px) {

    /*
     * QR-КОД ЕЩЁ ЛЕВЕЕ.
     *
     * V41 = -70px
     * V42 = -110px
     */

    #artist-releases
    .artist-qr-top-v20
    .artist-release-qr-image-frame {
        transform: translateX(-110px) !important;
    }


    /*
     * Только текст "Paxor QR" вправо.
     *
     * V41 = -35px
     * V42 = 0px
     */

    #artist-releases
    .artist-qr-bottom-v20 {
        transform: translateX(0) !important;
    }


    /*
     * Четыре action-ссылки
     * оставляем на позиции V41.
     */

    #artist-releases
    .artist-qr-actions-v34 {
        right: 47% !important;
        left: auto !important;
        top: 48px !important;
    }


    /*
     * QR musical release / NFT passport QR
     * не трогаем.
     */

    #artist-releases
    .artist-qr-links-v32 {
        right: 0 !important;
        left: auto !important;
    }


    /*
     * Статистику не трогаем.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        justify-content: flex-end !important;
    }
}

/* ==========================================
   END PAXOR QR LEFT TEXT RIGHT V42
   ========================================== */


/* ==========================================
   PAXOR ACTIONS RIGHT STATS UP V43
   ========================================== */

@media (min-width: 681px) {

    /*
     * Четыре ссылки немного вправо.
     *
     * V42 = right: 47%
     * V43 = right: 43%
     */

    #artist-releases
    .artist-qr-actions-v34 {
        right: 43% !important;
        left: auto !important;
        top: 48px !important;
    }


    /*
     * Статистика немного выше.
     *
     * 3 views · 1 scans · date · locale
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        position: relative !important;
        top: -8px !important;

        justify-content: flex-end !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ==========================================
   END PAXOR ACTIONS RIGHT STATS UP V43
   ========================================== */


/* ==========================================
   PAXOR STATS ALIGN QR V44
   ========================================== */

@media (min-width: 681px) {

    /*
     * Поднимаем:
     *
     * 3 views · 1 scans · date · locale
     *
     * на уровень текста "Paxor QR".
     *
     * V43 = -8px
     * V44 = -35px
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        position: relative !important;
        top: -35px !important;

        justify-content: flex-end !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

}

/* ==========================================
   END PAXOR STATS ALIGN QR V44
   ========================================== */


/* ==========================================
   PAXOR NFT INFO ROW UP V45
   ========================================== */

@media (min-width: 681px) {

    /*
     * Поднимаем только строку:
     *
     * MINTED · contract · #token · Cancel sale
     *
     * Обложка и название трека остаются
     * на своих местах.
     */

    #artist-releases
    .artist-release-nft-info-v12 {
        transform: translateY(-35px) !important;
    }

}

/* ==========================================
   END PAXOR NFT INFO ROW UP V45
   ========================================== */


/* ==========================================
   PAXOR NFT CARD HEIGHT COMPACT V46
   ========================================== */

@media (min-width: 681px) {

    /*
     * Уменьшаем ТОЛЬКО вертикальное
     * свободное пространство самой карточки.
     *
     * Ничего внутри не масштабируем
     * и не перемещаем.
     */

    #artist-releases
    .artist-release-row {
        padding-top: 2px !important;
        padding-bottom: 2px !important;

        /*
         * Горизонтальные отступы сохраняем.
         */
        padding-left: 16px !important;
        padding-right: 16px !important;

        min-height: 0 !important;
    }

}

/* ==========================================
   END PAXOR NFT CARD HEIGHT COMPACT V46
   ========================================== */


/* ==========================================
   PAXOR NFT CARD REMOVE EMPTY BOTTOM V47
   ========================================== */

@media (min-width: 681px) {

    /*
     * V44 визуально поднял статистику на 35px
     * через position: relative / top: -35px.
     *
     * Relative positioning не уменьшает
     * занимаемое элементом место.
     *
     * Компенсируем эти 35px снизу,
     * чтобы карточка могла стать ниже.
     *
     * Визуальная позиция статистики
     * НЕ изменяется.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        margin-top: auto !important;
        margin-bottom: -35px !important;
    }

}

/* ==========================================
   END PAXOR NFT CARD REMOVE EMPTY BOTTOM V47
   ========================================== */


/* ==========================================
   PAXOR NFT CARD MORE COMPACT V48
   ========================================== */

@media (min-width: 681px) {

    /*
     * V47 = -35px.
     * V48 убирает ещё 16px расчётной
     * высоты снизу.
     *
     * top:-35px статистики НЕ меняем,
     * поэтому её визуальная позиция
     * остаётся прежней.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        margin-top: auto !important;
        margin-bottom: -51px !important;
    }

}

/* ==========================================
   END PAXOR NFT CARD MORE COMPACT V48
   ========================================== */


/* ==========================================
   PAXOR QR CLEAN COMPACT V49
   ========================================== */

@media (min-width: 681px) {

    /*
     * Заголовок Paxor QR удалён в JS.
     * Сам пустой нижний контейнер также
     * не должен резервировать высоту.
     */

    #artist-releases
    .artist-qr-bottom-v20 {
        display: none !important;
    }

    /*
     * Статистику поднимаем ещё на 18px.
     *
     * V44 = -35px
     * V49 = -53px
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        position: relative !important;
        top: -53px !important;

        margin-top: auto !important;

        /*
         * V48 = -51px
         * V49 = -69px
         *
         * Компенсируем дополнительный подъём,
         * чтобы карточка действительно
         * стала ниже.
         */
        margin-bottom: -69px !important;

        justify-content: flex-end !important;

        padding-left: 0 !important;
        padding-right: 0 !important;
    }

}

/* ==========================================
   END PAXOR QR CLEAN COMPACT V49
   ========================================== */


/* ==========================================
   PAXOR NFT CARD HEIGHT V50
   ========================================== */

@media (min-width: 681px) {

    /*
     * Уменьшаем только расчётную высоту
     * карточки ещё примерно на 30px.
     *
     * V49 = -69px
     * V50 = -99px
     *
     * Визуальные координаты элементов
     * внутри карточки не меняются.
     */

    #artist-releases
    .artist-qr-stats-bottom-v32 {
        margin-bottom: -99px !important;
    }

}

/* ==========================================
   END PAXOR NFT CARD HEIGHT V50
   ========================================== */


/* ==========================================
   PAXOR NFT CARD TRUE COMPACT V51
   ========================================== */

@media (min-width: 681px) {

    /*
     * QR остаётся 92x92 и визуально
     * остаётся на текущем месте.
     *
     * Но уменьшаем расчётную высоту
     * его верхней строки на 20px.
     *
     * overflow: visible позволяет QR
     * полностью отображаться.
     */

    #artist-releases
    .artist-qr-top-v20 {
        height: 72px !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    /*
     * Родитель также не обрезает
     * выступающий QR.
     */

    #artist-releases
    .artist-release-qr-body {
        overflow: visible !important;
        min-height: 0 !important;
    }

}

/* ==========================================
   END PAXOR NFT CARD TRUE COMPACT V51
   ========================================== */


/* ==========================================
   PAXOR NFT LEFT ROW LAYOUT COMPACT V52
   ========================================== */

@media (min-width: 681px) {

    /*
     * V45 визуально поднял строку NFT
     * на 35px через transform.
     *
     * Transform не изменяет layout:
     * старое место строки оставалось
     * зарезервированным снизу.
     *
     * Положение строки НЕ меняем.
     * Убираем только зарезервированное
     * после неё пространство.
     */

    #artist-releases
    .artist-release-nft-info-v12 {
        transform: translateY(-35px) !important;
        margin-bottom: -35px !important;
    }

}

/* ==========================================
   END PAXOR NFT LEFT ROW LAYOUT COMPACT V52
   ========================================== */


/* ==========================================
   PAXOR NFT COVER POSITION V55
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только готовые NFT-карточки.
     * Визуально опускаем ТОЛЬКО обложку на 8px.
     *
     * Transform не изменяет layout,
     * поэтому высота карточки остаётся прежней.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-nft-track-cover {
        transform: translateY(7px) !important;
    }

}

/* ==========================================
   END PAXOR NFT COVER POSITION V55
   ========================================== */


/* ==========================================
   PAXOR NFT COVER UP V56
   Only minted NFT cards.
   Cover moved 6px upward.
   Card height unchanged.
   ========================================== */

/* END PAXOR NFT COVER UP V56 */


/* ==========================================
   PAXOR NFT MINTED BADGE POSITION V57
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только готовые NFT-релизы.
     *
     * Перемещаем "ВЫПУЩЕНО"
     * над кнопкой продажи.
     *
     * Transform не меняет высоту карточки
     * и не двигает остальные элементы.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-status.minted {
        transform: translate(455px, -44px) !important;
        z-index: 6 !important;
    }

}

/* ==========================================
   END PAXOR NFT MINTED BADGE POSITION V57
   ========================================== */


/* ==========================================
   PAXOR NFT COVER DOWN V58
   Cover moved 4px lower.
   Card height unchanged.
   ========================================== */

/* END PAXOR NFT COVER DOWN V58 */


/* ==========================================
   PAXOR NFT COVER DOWN V59
   Cover moved another 4px lower.
   Card height unchanged.
   ========================================== */

/* END PAXOR NFT COVER DOWN V59 */


/* ==========================================
   PAXOR NFT COVER DOWN V60
   Cover moved another 6px lower.
   Card height unchanged.
   ========================================== */

/* END PAXOR NFT COVER DOWN V60 */


/* ==========================================
   PAXOR NFT COVER FINE UP V61
   Cover moved 3px upward.
   Card height unchanged.
   ========================================== */

/* END PAXOR NFT COVER FINE UP V61 */


/* ==========================================
   PAXOR NFT QR VERTICAL ALIGN V62
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только готовые NFT-карточки.
     *
     * Опускаем только само изображение QR
     * на 6px, чтобы оно находилось
     * на одной высоте с обложкой трека.
     *
     * Размер QR и высота карточки
     * не изменяются.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-image > img {
        transform: translateY(6px) !important;
    }

}

/* ==========================================
   END PAXOR NFT QR VERTICAL ALIGN V62
   ========================================== */


/* ==========================================
   PAXOR NFT QR SIZE POSITION V63
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только minted NFT-карточки.
     *
     * Размер внешнего QR-квадрата:
     * 92x92px — такой же, как обложка трека.
     *
     * Весь QR-квадрат немного опускаем вниз.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-image {
        width: 92px !important;
        height: 92px !important;
        min-width: 92px !important;
        min-height: 92px !important;
        max-width: 92px !important;
        max-height: 92px !important;

        box-sizing: border-box !important;

        transform: translateY(7px) !important;
    }

    /*
     * V62 двигал внутреннее IMG.
     * Теперь движение переносим на весь QR-блок,
     * поэтому внутренний transform обнуляем.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-image > img {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;

        object-fit: contain !important;
        display: block !important;

        transform: none !important;
    }

}

/* ==========================================
   END PAXOR NFT QR SIZE POSITION V63
   ========================================== */


/* ==========================================
   PAXOR NFT COVER QR FINE ALIGN V64

   Cover: +2px DOWN
   QR:    2px UP

   Sizes and card height unchanged.
   ========================================== */

/* END PAXOR NFT COVER QR FINE ALIGN V64 */


/* ==========================================
   PAXOR NFT COVER QR UP V65
   ========================================== */

@media (min-width: 681px) {

    /*
     * Обложка трека:
     * 2px вверх относительно V64.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-nft-track-cover {
        transform: translateY(5px) !important;
    }

    /*
     * QR-код:
     * также 2px вверх относительно V64.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-image {
        transform: translateY(5px) !important;
    }

}

/* ==========================================
   END PAXOR NFT COVER QR UP V65
   ========================================== */


/* ==========================================
   PAXOR NFT COVER QR DOWN V66
   ========================================== */

@media (min-width: 681px) {

    /* Обложка: 1px ниже */
    #artist-releases
    .artist-release-row-minted
    .artist-nft-track-cover {
        transform: translateY(6px) !important;
    }

    /* QR: 1px ниже */
    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-image {
        transform: translateY(6px) !important;
    }

}

/* ==========================================
   END PAXOR NFT COVER QR DOWN V66
   ========================================== */


/* ==========================================
   PAXOR NFT QR ACTIONS RIGHT V67
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только 4 ссылки QR:
     * Копировать ссылку
     * Скачать PNG
     * Поделиться
     * Открыть страницу
     *
     * Сдвиг только вправо.
     * Вертикальное положение и layout
     * не изменяются.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-actions-v34 {
        translate: 70px 0 !important;
    }

}

/* ==========================================
   END PAXOR NFT QR ACTIONS RIGHT V67
   ========================================== */


/* ==========================================
   PAXOR NFT QR ACTIONS MORE RIGHT V68
   4 QR action links moved another 30px right.
   ========================================== */

/* END PAXOR NFT QR ACTIONS MORE RIGHT V68 */


/* ==========================================
   PAXOR NFT QR ACTIONS FIXED WIDTH V69
   ========================================== */

@media (min-width: 681px) {

    /*
     * Фиксируем ширину блока из 4 ссылок.
     *
     * Благодаря этому смена языка больше
     * не меняет расстояние между QR-кодом
     * и первой колонкой ссылок.
     *
     * Текущее горизонтальное положение
     * блока сохраняется.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-actions-v34 {
        display: grid !important;

        width: 340px !important;
        min-width: 340px !important;
        max-width: 340px !important;

        grid-template-columns:
            170px 170px !important;

        justify-content: start !important;
        align-items: center !important;

        translate: 70px 0 !important;
    }

}

/* ==========================================
   END PAXOR NFT QR ACTIONS FIXED WIDTH V69
   ========================================== */


/* ==========================================
   PAXOR NFT QR ACTIONS POSITION V70
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только блок из 4 QR-ссылок.
     *
     * Фиксированная ширина V69 сохраняется.
     * Сдвигаем весь блок ещё вправо,
     * чтобы он не заходил на QR-код.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-actions-v34 {
        translate: 130px -4px !important;
    }

}

/* ==========================================
   END PAXOR NFT QR ACTIONS POSITION V70
   ========================================== */


/* ==========================================
   PAXOR NFT QR SECOND COLUMN LEFT V71
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только вторая колонка QR-ссылок:
     *
     * 2 = Download PNG / Скачать PNG
     * 4 = Open page / Открыть страницу
     *
     * Первая колонка:
     * Copy link / Share
     * остаётся полностью без изменений.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-actions-v34 > :nth-child(2),

    #artist-releases
    .artist-release-row-minted
    .artist-qr-actions-v34 > :nth-child(4) {
        translate: -30px -4px !important;
    }

}

/* ==========================================
   END PAXOR NFT QR SECOND COLUMN LEFT V71
   ========================================== */


/* ==========================================
   PAXOR NFT ACTIONS STATS POSITION V72
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только статистика готовых NFT-карточек.
     *
     * Опускаем строку:
     * views · scans · date
     * ближе к самой нижней границе карточки.
     *
     * Layout и высота карточки не меняются.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-stats-bottom-v32 {
        translate: 0 52px !important;
    }

}

/* ==========================================
   END PAXOR NFT ACTIONS STATS POSITION V72
   ========================================== */


/* ==========================================
   PAXOR NFT QR TEXT ACTIONS STATS V73
   ========================================== */

@media (min-width: 681px) {

    /*
     * qrLinksV32 содержит:
     *
     * 1 = QR musical release
     * 2 = NFT passport QR
     *
     * Двигаем ТОЛЬКО второй элемент.
     * Влево к QR-коду и вверх
     * на верхнюю линию.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-links-v32 > :nth-child(2) {
        translate: -320px -18px !important;
    }

}

/* ==========================================
   END PAXOR NFT QR TEXT ACTIONS STATS V73
   ========================================== */


/* ==========================================
   PAXOR NFT PASSPORT QR FINE POSITION V74
   NFT passport QR:
   20px RIGHT
   6px DOWN
   ========================================== */

/* END PAXOR NFT PASSPORT QR FINE POSITION V74 */


/* ==========================================
   PAXOR NFT PASSPORT LANGUAGE STABLE V75
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только кнопка:
     * NFT passport QR / QR NFT-паспорта.
     *
     * Фиксируем ширину, чтобы при переводе
     * левый край текста не менял положение.
     *
     * Текущее положение V74 сохраняем.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-type[data-artist-qr-type="nft"] {
        width: 155px !important;
        min-width: 155px !important;
        max-width: 155px !important;

        box-sizing: border-box !important;

        justify-content: flex-start !important;
        text-align: left !important;

        white-space: nowrap !important;

        translate: -320px -18px !important;
    }

}

/* ==========================================
   END PAXOR NFT PASSPORT LANGUAGE STABLE V75
   ========================================== */


/* ==========================================
   PAXOR NFT PASSPORT FIXED ANCHOR V76
   ========================================== */

@media (min-width: 681px) {

    /*
     * Создаём постоянную систему координат
     * только внутри верхней QR-зоны.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-qr-top-v20 {
        position: relative !important;
    }

    /*
     * NFT passport QR / QR NFT-паспорта
     *
     * Больше НЕ зависит от ширины текста
     * QR musical release.
     *
     * Фиксированная точка справа.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-type[data-artist-qr-type="nft"] {
        position: absolute !important;

        right: 300px !important;
        top: 4px !important;

        left: auto !important;

        width: 155px !important;
        min-width: 155px !important;
        max-width: 155px !important;

        margin: 0 !important;

        translate: none !important;
        transform: none !important;

        justify-content: flex-start !important;
        text-align: left !important;

        white-space: nowrap !important;

        box-sizing: border-box !important;
        z-index: 8 !important;
    }

}

/* ==========================================
   END PAXOR NFT PASSPORT FIXED ANCHOR V76
   ========================================== */


/* ==========================================
   PAXOR NFT PASSPORT DOWN V77

   NFT passport QR moved inside card.
   Horizontal fixed anchor preserved.
   ========================================== */

/* END PAXOR NFT PASSPORT DOWN V77 */


/* ==========================================
   PAXOR NFT PASSPORT RIGHT V78
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только NFT passport QR / QR NFT-паспорта.
     * Сдвигаем чуть правее.
     * Больше ничего не трогаем.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-links-v32 > :nth-child(2) {
        margin-left: 15px !important;
    }

}

/* ==========================================
   END PAXOR NFT PASSPORT RIGHT V78
   ========================================== */


/* ==========================================
   PAXOR NFT PASSPORT RIGHT V79
   NFT passport moved another 5px right.
   ========================================== */

/* END PAXOR NFT PASSPORT RIGHT V79 */


/* ==========================================
   PAXOR NFT PASSPORT REAL RIGHT V80
   ========================================== */

@media (min-width: 681px) {

    /*
     * V76 закрепляет NFT passport через right.
     * Поэтому двигаем именно right:
     *
     * 300px -> 285px
     * = 15px вправо.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-type[data-artist-qr-type="nft"] {
        right: 285px !important;
        margin-left: 0 !important;
    }

}

/* ==========================================
   END PAXOR NFT PASSPORT REAL RIGHT V80
   ========================================== */


/* ==========================================
   PAXOR NFT PASSPORT LEFT V81
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только NFT passport QR / QR NFT-паспорта.
     * Возвращаем на 15px влево.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-type[data-artist-qr-type="nft"] {
        right: 300px !important;
    }

}

/* ==========================================
   END PAXOR NFT PASSPORT LEFT V81
   ========================================== */


/* ==========================================
   PAXOR NFT PASSPORT FINE RIGHT V82
   ========================================== */

@media (min-width: 681px) {

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-type[data-artist-qr-type="nft"] {
        right: 295px !important;
    }

}

/* ==========================================
   END PAXOR NFT PASSPORT FINE RIGHT V82
   ========================================== */


/* ==========================================
   PAXOR NFT QR ACTIONS UP V83
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только общий блок из 4 ссылок.
     * Поднимаем ещё на 4px.
     * Горизонтальное положение сохраняем.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-actions-v34 {
        translate: 130px -8px !important;
    }

}

/* ==========================================
   END PAXOR NFT QR ACTIONS UP V83
   ========================================== */


/* ==========================================
   PAXOR NFT QR ACTIONS FINE UP V84
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только общий блок из 4 ссылок.
     * Ещё 3px вверх.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-actions-v34 {
        translate: 130px -11px !important;
    }

}

/* ==========================================
   END PAXOR NFT QR ACTIONS FINE UP V84
   ========================================== */


/* ==========================================
   PAXOR QR MUSICAL RELEASE DOWN V85
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только:
     * QR musical release /
     * QR музыкального релиза
     *
     * Опускаем на 3px.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-type[data-artist-qr-type="release"] {
        translate: 0 3px !important;
    }

}

/* ==========================================
   END PAXOR QR MUSICAL RELEASE DOWN V85
   ========================================== */


/* ==========================================
   PAXOR NFT CONTRACT LEFT CLIP GAP V90
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только готовые NFT-карточки.
     *
     * Геометрию поля НЕ меняем.
     * JS-анимацию НЕ меняем.
     *
     * Просто скрываем 12px слева,
     * чтобы бегущий адрес исчезал
     * немного раньше и не касался обложки.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-nft-contract-viewport-v13 {
        clip-path: inset(0 0 0 24px) !important;

        padding-left: 0 !important;

        overflow: hidden !important;
    }

}

/* ==========================================
   END PAXOR NFT CONTRACT LEFT CLIP GAP V90
   ========================================== */


/* ==========================================
   PAXOR NFT CONTRACT LEFT CLIP GAP V91

   Left hidden gap increased:
   12px -> 24px

   Marquee path unchanged.
   ========================================== */

/* END PAXOR NFT CONTRACT LEFT CLIP GAP V91 */


/* ==========================================
   PAXOR CANCEL SALE BUTTON V92
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только кнопка:
     * Отменить продажу / Cancel sale
     *
     * Делаем ниже по высоте
     * и меняем розовый на оранжево-красный.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed {
        min-height: 28px !important;
        height: 28px !important;

        padding: 0 9px !important;

        border-radius: 4px !important;

        border-color: rgba(255, 72, 38, 0.66) !important;
        background: rgba(255, 72, 38, 0.11) !important;

        color: #ff4f2f !important;

        box-sizing: border-box !important;
    }

    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed:hover {
        border-color: rgba(255, 72, 38, 0.86) !important;
        background: rgba(255, 72, 38, 0.17) !important;

        color: #ff5d3a !important;
    }

}

/* ==========================================
   END PAXOR CANCEL SALE BUTTON V92
   ========================================== */


/* ==========================================
   PAXOR CANCEL SALE REDDER V93
   Slightly redder orange-red tone.
   Size and position unchanged.
   ========================================== */

/* END PAXOR CANCEL SALE REDDER V93 */


/* ==========================================
   PAXOR NFT COVER QR FIT CARD V94
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только готовые NFT-карточки.
     *
     * Обложка трека:
     * уменьшаем до 86x86
     * и убираем прежний сдвиг вниз.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-nft-track-cover {
        width: 86px !important;
        height: 86px !important;
        min-width: 86px !important;
        max-width: 86px !important;

        flex: 0 0 86px !important;

        transform: translateY(0) !important;

        box-sizing: border-box !important;
    }

    /*
     * QR:
     * также 86x86
     * и без сдвига вниз.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-image {
        width: 86px !important;
        height: 86px !important;
        min-width: 86px !important;
        min-height: 86px !important;
        max-width: 86px !important;
        max-height: 86px !important;

        transform: translateY(0) !important;

        box-sizing: border-box !important;
    }

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-image > img {
        width: 100% !important;
        height: 100% !important;

        max-width: 100% !important;
        max-height: 100% !important;

        object-fit: contain !important;
        display: block !important;

        transform: none !important;
    }

}

/* ==========================================
   END PAXOR NFT COVER QR FIT CARD V94
   ========================================== */


/* ==========================================
   PAXOR NFT MEDIA STATS FIT V95
   ========================================== */

@media (min-width: 681px) {

    /*
     * Обложка готового NFT-трека.
     * Уменьшаем до 80x80.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-nft-track-cover {
        width: 80px !important;
        height: 80px !important;
        min-width: 80px !important;
        max-width: 80px !important;

        flex: 0 0 80px !important;

        transform: translateY(0) !important;

        box-sizing: border-box !important;
    }

    /*
     * QR-код также 80x80.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-image {
        width: 80px !important;
        height: 80px !important;

        min-width: 80px !important;
        min-height: 80px !important;

        max-width: 80px !important;
        max-height: 80px !important;

        transform: translateY(0) !important;

        box-sizing: border-box !important;
    }

    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-image > img {
        width: 100% !important;
        height: 100% !important;

        max-width: 100% !important;
        max-height: 100% !important;

        object-fit: contain !important;
        display: block !important;

        transform: none !important;
    }

    /*
     * views · scans · date
     *
     * Сейчас было translateY(52px).
     * Поднимаем счётчики на 12px:
     * 52px -> 40px.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-stats-bottom-v32 {
        translate: 0 40px !important;
    }

}

/* ==========================================
   END PAXOR NFT MEDIA STATS FIT V95
   ========================================== */


/* ==========================================
   PAXOR QR ACTIONS STATS UP V96
   ========================================== */

@media (min-width: 681px) {

    /*
     * Четыре QR-ссылки:
     * Copy / Download / Share / Open.
     *
     * Поднимаем ещё на 4px.
     * Горизонтальное положение сохраняем.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-qr-actions-v34 {
        translate: 130px -15px !important;
    }

    /*
     * views · scans · date
     *
     * Было 40px после V95.
     * Поднимаем ещё на 6px:
     * 40px -> 34px.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-qr-stats-bottom-v32 {
        translate: 0 34px !important;
    }

}

/* ==========================================
   END PAXOR QR ACTIONS STATS UP V96
   ========================================== */


/* ==========================================
   PAXOR QR STATS UP V97
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только:
     * views · scans · date
     *
     * Было 34px.
     * Поднимаем ещё на 10px:
     * 34px -> 24px.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-qr-stats-bottom-v32 {
        translate: 0 24px !important;
    }

}

/* ==========================================
   END PAXOR QR STATS UP V97
   ========================================== */


/* ==========================================
   PAXOR QR LINKS UP STATS RESTORE V98
   ========================================== */

@media (min-width: 681px) {

    /*
     * 4 QR-ссылки:
     * поднимаем ещё на 10px.
     *
     * Было:
     * translate: 130px -15px
     *
     * Теперь:
     * translate: 130px -25px
     */
    #artist-releases
    .artist-release-row-minted
    .artist-qr-actions-v34 {
        translate: 130px -25px !important;
    }

    /*
     * Счётчики возвращаем
     * на положение до V97.
     *
     * 24px -> 34px
     */
    #artist-releases
    .artist-release-row-minted
    .artist-qr-stats-bottom-v32 {
        translate: 0 34px !important;
    }

}

/* ==========================================
   END PAXOR QR LINKS UP STATS RESTORE V98
   ========================================== */


/* ==========================================
   PAXOR QR LINKS MEDIA FINE V99
   ========================================== */

@media (min-width: 681px) {

    /*
     * 4 QR-ссылки:
     * немного ниже.
     *
     * -25px -> -21px
     */
    #artist-releases
    .artist-release-row-minted
    .artist-qr-actions-v34 {
        translate: 130px -21px !important;
    }

    /*
     * Обложка трека:
     * 80x80 -> 76x76.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-nft-track-cover {
        width: 76px !important;
        height: 76px !important;
        min-width: 76px !important;
        max-width: 76px !important;

        flex: 0 0 76px !important;

        transform: translateY(0) !important;
        box-sizing: border-box !important;
    }

    /*
     * QR:
     * 80x80 -> 76x76.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-image {
        width: 76px !important;
        height: 76px !important;

        min-width: 76px !important;
        min-height: 76px !important;

        max-width: 76px !important;
        max-height: 76px !important;

        transform: translateY(0) !important;
        box-sizing: border-box !important;
    }

}

/* ==========================================
   END PAXOR QR LINKS MEDIA FINE V99
   ========================================== */


/* ==========================================
   PAXOR NFT INFO ROW VISUAL DOWN V100
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только визуально опускаем строку:
     * contract · #token · Cancel sale
     *
     * -35px -> -31px
     *
     * Высоту и layout карточки НЕ меняем.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-nft-info-v12 {
        transform: translateY(-31px) !important;
    }

}

/* ==========================================
   END PAXOR NFT INFO ROW VISUAL DOWN V100
   ========================================== */


/* ==========================================
   PAXOR NFT CARD HEIGHT FINE V101
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только готовая NFT-карточка.
     *
     * Было:
     * padding-top: 2px
     * padding-bottom: 2px
     *
     * Делаем:
     * 5px сверху и снизу.
     *
     * Итоговая высота увеличится примерно на 6px.
     */

    #artist-releases
    .artist-release-row-minted {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
    }

}

/* ==========================================
   END PAXOR NFT CARD HEIGHT FINE V101
   ========================================== */


/* ==========================================
   PAXOR NFT CARD HEIGHT FINE V102
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только готовая NFT-карточка.
     *
     * V101:
     * 5px сверху / 5px снизу
     *
     * V102:
     * 7px сверху / 7px снизу
     *
     * Ещё примерно +4px общей высоты.
     */

    #artist-releases
    .artist-release-row-minted {
        padding-top: 7px !important;
        padding-bottom: 7px !important;
    }

}

/* ==========================================
   END PAXOR NFT CARD HEIGHT FINE V102
   ========================================== */


/* ==========================================
   PAXOR QR TYPE LABELS UP V103
   ========================================== */

@media (min-width: 681px) {

    /*
     * QR musical release:
     * было +3px вниз.
     * Возвращаем на 3px выше.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-type[data-artist-qr-type="release"] {
        translate: 0 0 !important;
    }

    /*
     * NFT passport QR:
     * top: 4px -> 1px.
     * То есть ещё на 3px выше.
     *
     * Горизонтальную позицию НЕ меняем.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-release-qr-type[data-artist-qr-type="nft"] {
        top: 1px !important;
    }

}

/* ==========================================
   END PAXOR QR TYPE LABELS UP V103
   ========================================== */


/* ==========================================
   PAXOR TRACK TITLE ARTIST UP V104
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только готовые NFT-карточки.
     *
     * Название трека + исполнитель:
     * - поднимаем визуально на 4px;
     * - уменьшаем расстояние между ними.
     *
     * Высоту карточки и layout НЕ меняем.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-title {
        gap: 1px !important;
        transform: translateY(-4px) !important;
    }

}

/* ==========================================
   END PAXOR TRACK TITLE ARTIST UP V104
   ========================================== */


/* ==========================================
   PAXOR NFT CONTRACT GAP FINE V105
   ========================================== */

@media (min-width: 681px) {

    /*
     * Уменьшаем расстояние между
     * левой границей бегущего адреса
     * и изображением трека.
     *
     * Было: 24px
     * Теперь: 18px
     */

    #artist-releases
    .artist-release-row-minted
    .artist-nft-contract-viewport-v13 {
        clip-path: inset(0 0 0 18px) !important;
    }

}

/* ==========================================
   END PAXOR NFT CONTRACT GAP FINE V105
   ========================================== */


/* ==========================================
   PAXOR NFT CONTRACT GAP FINE V106
   ========================================== */

@media (min-width: 681px) {

    #artist-releases
    .artist-release-row-minted
    .artist-nft-contract-viewport-v13 {
        clip-path: inset(0 0 0 14px) !important;
    }

}

/* ==========================================
   END PAXOR NFT CONTRACT GAP FINE V106
   ========================================== */


/* ==========================================
   PAXOR NFT CONTRACT GAP FINE V107
   ========================================== */

@media (min-width: 681px) {

    #artist-releases
    .artist-release-row-minted
    .artist-nft-contract-viewport-v13 {
        clip-path: inset(0 0 0 10px) !important;
    }

}

/* ==========================================
   END PAXOR NFT CONTRACT GAP FINE V107
   ========================================== */


/* ==========================================
   PAXOR CANCEL SALE FIXED BUTTON V108
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только активная кнопка Cancel sale.
     *
     * Размер рамки фиксирован независимо
     * от выбранного языка.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed {
        width: 104px !important;
        min-width: 104px !important;
        max-width: 104px !important;

        height: 28px !important;
        min-height: 28px !important;
        max-height: 28px !important;

        flex: 0 0 104px !important;

        padding: 0 6px !important;
        gap: 4px !important;

        border-radius: 4px !important;

        /* Более красный оттенок. */
        border-color: rgba(255, 59, 48, 0.72) !important;
        background: rgba(255, 59, 48, 0.11) !important;
        color: #ff3b30 !important;

        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    /*
     * Иконка всегда сохраняет размер.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed > i {
        flex: 0 0 auto !important;
    }

    /*
     * Текст может перейти на две строки,
     * но рамка никогда не расширяется.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed > span {
        min-width: 0 !important;
        max-width: 76px !important;

        white-space: normal !important;
        text-align: center !important;

        line-height: 1.05 !important;

        overflow: hidden !important;
    }

    /*
     * Для более длинного перевода
     * автоматически уменьшаем текст.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed.compact-label > span {
        font-size: 8px !important;
        line-height: 1.05 !important;
    }

    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed:hover {
        border-color: rgba(255, 59, 48, 0.90) !important;
        background: rgba(255, 59, 48, 0.17) !important;
        color: #ff5147 !important;
    }

}

/* ==========================================
   END PAXOR CANCEL SALE FIXED BUTTON V108
   ========================================== */


/* ==========================================
   PAXOR CANCEL SALE FONT SMALLER V109
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только текст внутри кнопки
     * Cancel sale / Отменить продажу.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed > span {
        font-size: 9px !important;
    }

    /*
     * Для длинных переводов ещё меньше.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed.compact-label > span {
        font-size: 7.5px !important;
        line-height: 1.02 !important;
    }

}

/* ==========================================
   END PAXOR CANCEL SALE FONT SMALLER V109
   ========================================== */


/* ==========================================
   PAXOR CANCEL SALE MUTED V110
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только кнопка Cancel sale.
     *
     * Размер рамки НЕ меняем.
     * Делаем цвет спокойнее и тусклее.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed {
        border-color: rgba(210, 82, 67, 0.46) !important;
        background: rgba(210, 82, 67, 0.07) !important;
        color: #d65a4e !important;
    }

    /*
     * Обычный текст немного увеличиваем.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed > span {
        font-size: 10px !important;
        line-height: 1.05 !important;
    }

    /*
     * Длинные переводы:
     * немного меньше, но уже не слишком мелко.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed.compact-label > span {
        font-size: 8.5px !important;
        line-height: 1.02 !important;
    }

    /*
     * Hover тоже спокойный,
     * без слишком яркого красного.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed:hover {
        border-color: rgba(210, 82, 67, 0.62) !important;
        background: rgba(210, 82, 67, 0.11) !important;
        color: #df665a !important;
    }

}

/* ==========================================
   END PAXOR CANCEL SALE MUTED V110
   ========================================== */


/* ==========================================
   PAXOR CANCEL SALE FONT FINE V111
   ========================================== */

@media (min-width: 681px) {

    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed > span {
        font-size: 10.5px !important;
        line-height: 1.05 !important;
    }

    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed.compact-label > span {
        font-size: 9px !important;
        line-height: 1.02 !important;
    }

}

/* ==========================================
   END PAXOR CANCEL SALE FONT FINE V111
   ========================================== */


/* ==========================================
   PAXOR CANCEL SALE FONT FINE V112
   ========================================== */

@media (min-width: 681px) {

    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed > span {
        font-size: 11px !important;
        line-height: 1.05 !important;
    }

    #artist-releases
    .artist-release-row-minted
    .artist-market-action.listed.compact-label > span {
        font-size: 9.5px !important;
        line-height: 1.02 !important;
    }

}

/* ==========================================
   END PAXOR CANCEL SALE FONT FINE V112
   ========================================== */


/* ==========================================
   PAXOR MINTED FIXED FLEX WIDTH V113
   ========================================== */

@media (min-width: 681px) {

    /*
     * MINTED / ВЫПУЩЕНО визуально уже
     * перенесён вправо через transform.
     *
     * Но в flex-строке он всё ещё занимал
     * разную ширину в зависимости от языка.
     *
     * Теперь его layout-ширина фиксирована,
     * поэтому поле адреса начинается
     * одинаково на всех языках.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-status.minted {
        width: 72px !important;
        min-width: 72px !important;
        max-width: 72px !important;

        flex: 0 0 72px !important;

        box-sizing: border-box !important;

        white-space: nowrap !important;

        text-align: center !important;
        justify-content: center !important;
    }

    /*
     * Для более длинного текста статуса
     * уменьшаем только его шрифт.
     *
     * Размер занимаемого места остаётся 72px.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-release-status.minted.compact-status-label {
        font-size: 11px !important;
    }

}

/* ==========================================
   END PAXOR MINTED FIXED FLEX WIDTH V113
   ========================================== */


/* ==========================================
   PAXOR MINTED BADGE SIZE V114
   ========================================== */

@media (min-width: 681px) {

    /*
     * MINTED / ВЫПУЩЕНО
     *
     * Визуальный размер точно такой же,
     * как у Cancel sale:
     * 104 x 28px.
     *
     * Отрицательный margin-right компенсирует
     * увеличение ширины с 72 до 104px,
     * чтобы адрес не сдвинулся.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-status.minted {
        width: 104px !important;
        min-width: 104px !important;
        max-width: 104px !important;

        height: 28px !important;
        min-height: 28px !important;
        max-height: 28px !important;

        flex: 0 0 104px !important;

        margin-right: -32px !important;

        padding: 0 6px !important;

        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        box-sizing: border-box !important;

        white-space: nowrap !important;
        text-align: center !important;
    }

}

/* ==========================================
   END PAXOR MINTED BADGE SIZE V114
   ========================================== */


/* ==========================================
   PAXOR MINTED BADGE RIGHT V115
   ========================================== */

@media (min-width: 681px) {

    /*
     * Только MINTED / ВЫПУЩЕНО.
     * Сдвигаем визуально на 8px вправо.
     *
     * Размер рамки остаётся 104x28.
     * Layout и положение адреса не меняются.
     */

    #artist-releases
    .artist-release-row-minted
    .artist-release-status.minted {
        translate: 8px 0 !important;
    }

}

/* ==========================================
   END PAXOR MINTED BADGE RIGHT V115
   ========================================== */


/* ==========================================
   PAXOR STATS FONT MINTED CYAN V116
   ========================================== */

@media (min-width: 681px) {

    /*
     * views · scans · date
     * Только немного уменьшаем шрифт.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-qr-stats-bottom-v32
    .artist-release-qr-stats {
        font-size: 9px !important;
    }

    /*
     * MINTED / ВЫПУЩЕНО
     * Только цвет текста — яркий Paxor cyan.
     *
     * Рамка, фон, размер и положение
     * остаются без изменений.
     */
    #artist-releases
    .artist-release-row-minted
    .artist-release-status.minted {
        color: var(--music-cyan) !important;
    }

}

/* ==========================================
   END PAXOR STATS FONT MINTED CYAN V116
   ========================================== */


/* ==========================================
   PAXOR SIDEBAR NAV WIDTH FINE V117
   ========================================== */

@media (min-width: 761px) {

    /*
     * Только 4 основные кнопки Artist Studio:
     *
     * Artist profile
     * New track
     * Create Music NFT
     * NFT music releases
     *
     * Немного уменьшаем ширину.
     * Правый край сохраняем на месте.
     * Высоту не меняем.
     */

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav
    > .artist-nav-group
    > .artist-nav-link {
        width: calc(100% - 8px) !important;
        max-width: calc(100% - 8px) !important;

        margin-left: auto !important;
        margin-right: 0 !important;
    }

}

/* ==========================================
   END PAXOR SIDEBAR NAV WIDTH FINE V117
   ========================================== */


/* ==========================================
   PAXOR SIDEBAR NAV NARROWER V118
   ========================================== */

@media (min-width: 761px) {

    /*
     * Только 4 рамки вкладок левой колонки.
     *
     * Исходный V27:
     * width: calc(100% - 16px)
     *
     * V117 ошибочно сделал их шире:
     * width: calc(100% - 8px)
     *
     * Теперь уменьшаем правильно:
     * width: calc(100% - 24px)
     *
     * Правый край остаётся на месте.
     */

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav
    > .artist-nav-group
    > .artist-nav-link {
        width: calc(100% - 24px) !important;
        max-width: calc(100% - 24px) !important;

        margin-left: 24px !important;
        margin-right: 0 !important;
    }

}

/* ==========================================
   END PAXOR SIDEBAR NAV NARROWER V118
   ========================================== */


/* ==========================================
   PAXOR SIDEBAR NAV LEFT NARROW V119
   ========================================== */

@media (min-width: 761px) {

    /*
     * Только 4 вкладки левой колонки.
     *
     * Ещё немного уменьшаем ширину
     * и прижимаем рамки к левому краю.
     */

    .artist-studio-v20:not(.sidebar-collapsed)
    .artist-studio-nav
    > .artist-nav-group
    > .artist-nav-link {
        width: calc(100% - 32px) !important;
        max-width: calc(100% - 32px) !important;

        margin-left: 0 !important;
        margin-right: auto !important;
    }

}

/* ==========================================
   END PAXOR SIDEBAR NAV LEFT NARROW V119
   ========================================== */
