.studio-page {
    min-height: calc(100vh - 92px);
    background: #0a0712;
    padding: 0px 0 90px
}

.studio-shell,
.shell {
    width: min(1632px, calc(100% - 48px));
    margin: auto
}

.studio-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 32px
}

.studio-heading h1 {
    font: 600 38px Inter;
    margin: 8px 0 0
}

.studio-kicker,
.role-pill,
.track-tag,
.upload-field>label,
.energy-field legend {
    font: 700 10px JetBrains Mono;
    text-transform: uppercase;
    letter-spacing: .25em
}

.studio-kicker {
    color: #7d788d
}

.studio-kicker--pink {
    color: #ff2d95
}

.role-pill {
    padding: 12px 18px;
    border: 1px solid rgba(255, 45, 149, .35);
    background: rgba(255, 45, 149, .1);
    color: #ff2d95
}

.upload-panel {
    padding: 48px;
    padding-bottom: 0px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 24px;
    background: #170f26
}

.upload-panel h2 {
    font: 600 40px Inter;
    letter-spacing: -.05em;
    margin: 22px 0 8px
}

.upload-intro {
    color: #888395;
    margin: 0 0 42px
}

.upload-fields {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 36px;
    margin-bottom: 38px
}

.upload-field>label,
.energy-field legend {
    display: block;
    color: #aaa5b4;
    margin-bottom: 16px
}

.upload-field b,
.energy-field b {
    color: #ff2d95
}

.upload-field small {
    font-size: 9px
}

.upload-field select,
.upload-field input {
    width: 100%;
    height: 56px;
    padding: 0 18px;
    border: 1px solid #403b4c;
    background: #1d1a29;
    color: white;
    font: 500 17px Inter;
    outline: 0
}

.upload-field select:focus,
.upload-field input:focus {
    border-color: #ff2d95
}

.energy-field {
    border: 0;
    padding: 0;
    margin: 0
}

.energy-buttons {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 9px
}

.energy-buttons input {
    position: absolute;
    opacity: 0;
    pointer-events: none
}

.energy-buttons span {
    height: 56px;
    border: 1px solid #403b4c;
    display: grid;
    place-items: center;
    cursor: pointer;
    font: 700 10px JetBrains Mono;
    text-transform: uppercase;
    letter-spacing: .22em
}

.energy-buttons input:checked+span {
    border-color: #ff2d95;
    background: #ff2d95;
    color: white
}

.drop-zone {
    height: 210px;
    border: 1px dashed #464152;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    cursor: pointer;
    color: #aaa5b4
}

.drop-zone:hover {
    border-color: #ff2d95;
    color: white
}

.drop-zone strong {
    font: 700 13px JetBrains Mono;
    text-transform: uppercase;
    letter-spacing: .3em
}

.drop-zone small {
    color: #706b7a
}

.upload-icon {
    font-size: 42px
}

.upload-submit {
    display: block;
    margin: 24px 0 0 auto;
    padding: 16px 24px;
    border: 0;
    background: #ff2d95;
    color: white;
    font: 700 10px JetBrains Mono;
    text-transform: uppercase;
    letter-spacing: .2em;
    cursor: pointer
}

.upload-submit:disabled {
    opacity: .35;
    cursor: not-allowed
}

.upload-errors {
    margin-top: 18px;
    padding: 14px;
    border: 1px solid #ff5570;
    background: rgba(255, 50, 80, .08);
    color: #ff8294
}

.upload-progress {
    margin-top: 22px
}

.upload-progress>div {
    display: flex;
    justify-content: space-between;
    font: 600 12px JetBrains Mono
}

.upload-progress progress {
    width: 100%;
    height: 10px;
    margin-top: 10px;
    accent-color: #ff2d95
}

.upload-progress p {
    color: #777184;
    font-size: 11px
}

.library-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 17px 0 26px
}

.library-title h2 {
    font: 600 34px Inter;
    margin: 0
}

.library-title span {
    color: #777184;
    font: 500 14px JetBrains Mono
}

.empty-library {
    padding: 60px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 20px;
    text-align: center;
    color: #777184;
    background: #170f26
}

.track-list {
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 24px;
    overflow: hidden;
    background: #170f26
}

.track-row {
    display: grid;
    grid-template-columns: minmax(300px, 1fr) 190px 114px 110px 85px 34px;
    align-items: center;
    gap: 28px;
    padding: 26px 30px;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
    color: #8e899a;
    font: 500 14px JetBrains Mono
}

.track-row:last-child {
    border-bottom: 0
}

.track-row h3 {
    color: white;
    font: 600 21px Inter;
    margin: 0 0 7px
}

.track-row p {
    margin: 0;
    color: #777184
}

.track-tag {
    padding: 12px 14px;
    background: #1c1928;
    color: #d4cfda
}

.track-tag--pink {
    background: rgba(255, 45, 149, .12);
    color: #ff2d95
}

.track-row button {
    border: 0;
    background: transparent;
    color: #85808e;
    font-size: 20px;
    cursor: pointer
}

@media(max-width:1100px) {
    .upload-fields {
        grid-template-columns: 1fr
    }

    .track-row {
        grid-template-columns: 1fr auto
    }

    .track-row>span:not(.track-tag--pink) {
        display: none
    }
}

@media(max-width:640px) {

    .studio-shell,
    .shell {
        width: calc(100% - 32px)
    }

    .studio-heading h1 {
        font-size: 28px
    }

    .upload-panel {
        padding: 24px
    }

    .upload-panel h2 {
        font-size: 30px
    }

    .energy-buttons {
        grid-template-columns: 1fr 1fr
    }

    .drop-zone {
        height: 180px;
        text-align: center;
        padding: 20px
    }

    .track-row {
        padding: 22px 18px;
        gap: 12px
    }

    .track-row h3 {
        font-size: 17px
    }

    .track-row p {
        font-size: 10px
    }

    .track-tag {
        font-size: 8px;
        padding: 9px
    }
}