/* MEMBRAIN MOBILE HARDWARE - SOVEREIGN INDUSTRIAL v1.6.0 [RESPONSIVE_OVERHAUL] */

:root {
    --mb-neon: #00FF41;
    --mb-void: #000;
    --mb-basalt: #1A1A1A;
    --mb-font-tech: 'Space Grotesk', sans-serif;
}

#mb-mobile-hardware,
#mb-mobile-overlay {
    display: none !important;
}

@media (max-width: 1024px) {
    body.mb-m-overlay-open {
        overflow: hidden !important;
    }

    /* OXYGEN HEADER BUILDER MOBILE MENU OVERFLOW & CONTAINING BLOCK DEFEAT */
    html body.oxy-nav-menu-prevent-overflow .oxy-header-wrapper,
    html body.oxy-nav-menu-prevent-overflow .oxy-header-wrapper div,
    html body.oxy-nav-menu-prevent-overflow .oxy-header-wrapper header,
    html body.oxy-nav-menu-prevent-overflow .oxy-header-wrapper [class],
    html body.oxy-nav-menu-prevent-overflow .oxy-header-builder,
    html body.oxy-nav-menu-prevent-overflow .oxy-header-container,
    html body.oxy-nav-menu-prevent-overflow .oxy-header,
    html body.oxy-nav-menu-prevent-overflow .oxy-header-row,
    html body:has(.oxy-nav-menu-open) .oxy-header-wrapper,
    html body:has(.oxy-nav-menu-open) .oxy-header-wrapper div,
    html body:has(.oxy-nav-menu-open) .oxy-header-wrapper header,
    html body:has(.oxy-nav-menu-open) .oxy-header-wrapper [class],
    html body:has(.oxy-nav-menu-open) .oxy-header-builder,
    html body:has(.oxy-nav-menu-open) .oxy-header-container,
    html body:has(.oxy-nav-menu-open) .oxy-header-row,
    html body:has(.oxy-pro-menu-open) .oxy-header-wrapper,
    html body:has(.oxy-pro-menu-open) .oxy-header-wrapper div,
    html body:has(.oxy-pro-menu-open) .oxy-header-wrapper header,
    html body:has(.oxy-pro-menu-open) .oxy-header-wrapper [class],
    html body:has(.oxy-pro-menu-open) .oxy-header-builder,
    html body:has(.oxy-pro-menu-open) .oxy-header-container,
    html body:has(.oxy-pro-menu-open) .oxy-header-row {
        overflow: visible !important;
    }

    /* Raise header z-index to ensure the open mobile menu stacks on top of the audio player and page content */
    body.oxy-nav-menu-prevent-overflow .oxy-header-wrapper,
    body:has(.oxy-nav-menu-open) .oxy-header-wrapper,
    body:has(.oxy-pro-menu-open) .oxy-header-wrapper {
        z-index: 2147483647 !important;
    }

    /* Force Pro Menu mobile container to viewport size when active */
    body.oxy-nav-menu-prevent-overflow .oxy-pro-menu-container,
    body:has(.oxy-pro-menu-open) .oxy-pro-menu-container {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        z-index: 2147483642 !important;
    }

    /* Prevent header animations and stickiness from establishing a new containing block for position: fixed elements */
    body.oxy-nav-menu-prevent-overflow .oxy-header-wrapper,
    body.oxy-nav-menu-prevent-overflow .oxy-header-wrapper *:not(.oxy-nav-menu):not(.oxy-nav-menu *):not(.oxy-pro-menu):not(.oxy-pro-menu *),
    body:has(.oxy-nav-menu-open) .oxy-header-wrapper,
    body:has(.oxy-nav-menu-open) .oxy-header-wrapper *:not(.oxy-nav-menu):not(.oxy-nav-menu *):not(.oxy-pro-menu):not(.oxy-pro-menu *),
    body:has(.oxy-pro-menu-open) .oxy-header-wrapper,
    body:has(.oxy-pro-menu-open) .oxy-header-wrapper *:not(.oxy-nav-menu):not(.oxy-nav-menu *):not(.oxy-pro-menu):not(.oxy-pro-menu *) {
        transform: none !important;
        filter: none !important;
        backdrop-filter: none !important;
        will-change: auto !important;
        contain: none !important;
        perspective: none !important;
    }

    /* Scope box-sizing strictly to Membrain Player elements to prevent breaking page builder layouts */
    #mb-continuous-player,
    #mb-mobile-hardware,
    #mb-mobile-overlay,
    #mb-playlist-overlay,
    #mb-continuous-player *,
    #mb-mobile-hardware *,
    #mb-mobile-overlay *,
    #mb-playlist-overlay *,
    #mb-continuous-player *::before,
    #mb-continuous-player *::after,
    #mb-mobile-hardware *::before,
    #mb-mobile-hardware *::after,
    #mb-mobile-overlay *::before,
    #mb-mobile-overlay *::after,
    #mb-playlist-overlay *::before,
    #mb-playlist-overlay *::after {
        box-sizing: border-box !important;
    }

    /* GLOBAL AUTHORITY: Prevent any body-level flex squashing from the player hardware */
    #mb-mobile-hardware,
    #mb-mobile-overlay {
        flex-shrink: 0 !important;
        flex-grow: 0 !important;
    }

    #mb-mobile-hardware {
        display: flex !important;
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        /* Force right anchor to prevent stretching — use 100% not 100vw to avoid Android scrollbar overflow */
        width: 100% !important;
        max-width: 100% !important;
        z-index: 1000000 !important;
        background: #000 !important;
        border-top: 1px solid #1A1A1A !important;
        /* Ensure safe area handling for newer devices */
        padding-bottom: env(safe-area-inset-bottom) !important;
        pointer-events: none !important;
        overflow: hidden !important;
        transition: opacity 0.2s ease !important;
    }

    #mb-mobile-hardware>* {
        pointer-events: auto !important;
        /* Restore clicks for the actual player */
    }

    #mb-mobile-overlay {
        display: flex !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 100dvh !important;
        background: rgba(5, 5, 5, 0.98) !important;
        z-index: 2000000 !important;
        flex-direction: column !important;
        transform: translateY(100%) !important;
        transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
        visibility: hidden !important;
        backdrop-filter: blur(25px) !important;
        -webkit-backdrop-filter: blur(25px) !important;
        overflow: hidden !important;
        pointer-events: none !important;
    }

    #mb-mobile-overlay.is-active {
        transform: translateY(0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    #mb-continuous-player {
        display: none !important;
    }
}

/* MINI PLAYER CORE */
.mb-m-mini-player {
    width: 100% !important;
    height: 85px !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
}

.mb-m-swipe-handle {
    width: 32px !important;
    height: 3px !important;
    background: #333 !important;
    border-radius: 2px !important;
    margin: 8px auto 0 auto !important;
}

.mb-m-seeker {
    height: 2px !important;
    width: 100% !important;
    background: #111 !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
}

.mb-seeker-fill {
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    height: 2px !important;
    background: var(--mb-neon) !important;
    box-shadow: 0 0 10px var(--mb-neon) !important;
    width: 0%;
    pointer-events: none !important;
}

.mb-m-mini-inner {
    flex: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 1.5rem !important;
}

.mb-m-mini-meta {
    display: flex !important;
    align-items: center !important;
    gap: 1rem !important;
    flex: 1 !important;
    cursor: pointer !important;
    min-width: 0 !important;
    /* Allow truncation */
}

.mb-m-cover-thumb {
    width: 48px !important;
    height: 48px !important;
    object-fit: cover !important;
    border: 1px solid #222 !important;
    flex-shrink: 0 !important;
}

.mb-m-meta-text {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    min-width: 0 !important;
}

.mb-m-title {
    font-family: 'Space Grotesk', sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #fff !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.mb-m-artist {
    font-family: 'Space Grotesk', sans-serif !important;
    font-size: 9px !important;
    color: var(--mb-neon) !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.mb-m-sub-meta {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.mb-m-release {
    font-family: 'Space Grotesk', sans-serif !important;
    font-size: 9px !important;
    color: #666 !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100px !important;
}

.mb-m-release::after {
    content: '//' !important;
    margin-left: 6px !important;
    color: #333 !important;
}

/* OVERLAY HEADER */
.mb-m-overlay-header {
    height: 80px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: env(safe-area-inset-top) 1.5rem 0 1.5rem !important;
    border-bottom: 1px solid #1A1A1A !important;
    flex-shrink: 0 !important;
}

.mb-m-overlay-label {
    font-family: 'Space Grotesk', sans-serif !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    color: #888 !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
}

/* OVERLAY BODY - THE SCROLLABLE CORE */
.mb-m-overlay-body {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 2rem !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    gap: 2rem !important;
    -webkit-overflow-scrolling: touch !important;
}

/* ARTWORK - FLEXIBLE SCALING */
.mb-m-artwork-wrap {
    width: 100% !important;
    max-width: 400px !important;
    margin: 0 auto !important;
    aspect-ratio: 1/1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 1 !important;
    /* Allow shrinking on very small screens */
    min-height: 0 !important;
    max-height: 40vh !important;
    /* Prevent artwork from squashing metadata on short screens */
}

.mb-m-cover-large {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border: 1px solid #1A1A1A !important;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5) !important;
}

/* META MAIN */
.mb-m-meta-main {
    text-align: center !important;
    flex-shrink: 0 !important;
}

.mb-m-meta-main h2 {
    font-family: 'Space Grotesk', sans-serif !important;
    font-size: clamp(18px, 5vw, 24px) !important;
    font-weight: 700 !important;
    color: #fff !important;
    text-transform: uppercase !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

.mb-m-meta-main h3 {
    font-family: 'Space Grotesk', sans-serif !important;
    font-size: 12px !important;
    color: var(--mb-neon) !important;
    text-transform: uppercase !important;
    margin: 0.75rem 0 0 0 !important;
    letter-spacing: 0.1em !important;
}

.mb-m-release-large {
    font-family: 'Space Grotesk', sans-serif !important;
    font-size: 14px !important;
    color: #888 !important;
    margin-top: 0.5rem !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    text-align: center !important;
}

/* CONTROLS SECTION */
.mb-m-controls-main {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.5rem !important;
    flex-shrink: 0 !important;
    padding-bottom: env(safe-area-inset-bottom) !important;
}

.mb-m-seeker-wrap {
    width: 100% !important;
}

.mb-m-seeker-full {
    height: 30px !important;
    width: 100% !important;
    background: transparent !important;
    position: relative !important;
    margin-bottom: 0.5rem !important;
    display: flex !important;
    align-items: center !important;
    cursor: pointer !important;
}

.mb-m-seeker-full::before {
    content: '' !important;
    width: 100% !important;
    height: 2px !important;
    background: #222 !important;
}

.mb-m-time-row {
    display: flex !important;
    justify-content: space-between !important;
    font-family: 'Space Grotesk', sans-serif !important;
    font-size: 10px !important;
    color: #888 !important;
    text-transform: uppercase !important;
}

/* TRANSPORT */
.mb-m-transport {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3rem !important;
}

.mb-m-play-large {
    width: 72px !important;
    height: 72px !important;
    background: var(--mb-neon) !important;
    color: #000 !important;
    border-radius: 0 !important;
    border: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 0 30px rgba(0, 255, 65, 0.2) !important;
}

.mb-m-play-large .material-symbols-outlined {
    font-size: 40px !important;
}

/* VOLUME SYSTEM */
.mb-m-volume-row {
    display: none !important;
}

.mb-m-volume-row span {
    color: #888 !important;
    font-size: 20px !important;
}

.mb-vol-slider {
    flex: 1 !important;
    height: 30px !important;
    background: transparent !important;
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    cursor: pointer !important;
}

.mb-vol-slider::before {
    content: '' !important;
    width: 100% !important;
    height: 2px !important;
    background: #222 !important;
}

.mb-vol-fill {
    position: absolute !important;
    left: 0 !important;
    height: 2px !important;
    background: var(--mb-neon) !important;
    pointer-events: none !important;
}

/* UTILS ROW */
.mb-m-utils-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-top: 1px solid #1A1A1A !important;
    padding-top: 1.5rem !important;
}

/* TABLET OPTIMIZATIONS (Portrait) */
@media (min-width: 768px) and (max-width: 1024px) {
    .mb-m-overlay-body {
        padding: 4rem !important;
        gap: 4rem !important;
    }

    .mb-m-artwork-wrap {
        max-width: 500px !important;
    }

    .mb-m-meta-main h2 {
        font-size: 32px !important;
    }
}

/* LANDSCAPE / SHORT SCREEN EMERGENCY */
@media (max-height: 600px) {
    .mb-m-overlay-header {
        height: 60px !important;
    }

    .mb-m-overlay-body {
        padding: 1rem 2rem !important;
        gap: 1rem !important;
    }

    .mb-m-artwork-wrap {
        max-width: 150px !important;
    }

    .mb-m-meta-main h2 {
        font-size: 18px !important;
    }

    .mb-m-transport {
        padding: 0.5rem 0 !important;
        gap: 2rem !important;
    }

    .mb-m-play-large {
        width: 50px !important;
        height: 50px !important;
    }
}

/* Touch Action Prevention for Sliders */
.mb-vol-slider,
.mb-m-seeker-full,
#mb-seeker,
#mb-volume-slider {
    touch-action: none !important;
}

/* HARDWARE HIDE: Used by JS class toggle instead of jQuery fadeOut (which leaves inline display:none after PJAX) */
@media (max-width: 1024px) {
    #mb-mobile-hardware.mb-hw-hidden {
        opacity: 0 !important;
        pointer-events: none !important;
        visibility: hidden !important;
    }
}