/*
 * VSL desktop reference shell v17
 *
 * Goal: preserve the same visual proportions and structural orientation as the
 * working 1920px / browser-100% desktop reference view. The browser controller applies
 * one correction factor to the shared header and page canvas. Structural
 * sidebar/main values are locked by viewport-layout.js so page-level tablet
 * media queries cannot change the desktop menu orientation when browser zoom
 * reduces the CSS viewport.
 */

:root {
    --vsl-desktop-scale: 1;
    --vsl-desktop-canvas-width: 100%;
    --vsl-desktop-canvas-height: 100vh;
    --vsl-desktop-body-top-offset: 70px;
    --vsl-desktop-reference-header-height: 72px;
    --vsl-desktop-browser-zoom: 1;
}

/* Never paint a temporary tablet/mobile arrangement while the shared desktop
   controller is still resolving. Desktop bootstrap resolves before <body>; on
   genuine mobile the deferred controller immediately marks the document ready. */
html.vsl-adaptive-desktop-pending:not(.vsl-standard-desktop-boot):not(.vsl-reference-desktop-ready)
body.vsl-adaptive-desktop-route {
    visibility: hidden !important;
}

/* Keep the shared header visible, but cover the application canvas until the
   deferred desktop controller has finished applying the final family lock.
   This prevents a partially parsed/mobile-breakpoint shell from flashing on
   screen before the stable desktop geometry is ready. */
html.vsl-adaptive-desktop-pending:not(.vsl-reference-desktop-ready)
body.vsl-adaptive-desktop-route::after {
    content: "";
    position: fixed;
    top: var(--vsl-desktop-body-top-offset, 70px);
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2147483638;
    display: block;
    background: #ffffff;
    pointer-events: auto;
    cursor: progress;
}

html.vsl-reference-desktop-active,
html.vsl-standard-desktop-boot,
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route,
html.vsl-standard-desktop-boot body.vsl-adaptive-desktop-route {
    overflow-x: hidden !important;
}

/* -------------------------------------------------------------------------
   Shared header: exact native desktop header, scaled as one unit
   ------------------------------------------------------------------------- */
html.vsl-reference-desktop-active body.vsl-standard-header .topbar,
html.vsl-standard-desktop-boot body.vsl-standard-header .topbar,
html.vsl-reference-desktop-active body.vsl-standard-header header.topbar,
html.vsl-standard-desktop-boot body.vsl-standard-header header.topbar {
    zoom: var(--vsl-desktop-scale) !important;
    transform: none !important;
    transform-origin: top left !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: auto !important;
    width: var(--vsl-desktop-canvas-width) !important;
    min-width: var(--vsl-desktop-canvas-width) !important;
    max-width: none !important;
    height: 72px !important;
    max-height: 72px !important;
    padding: 0 27px 0 16px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    background: linear-gradient(180deg, #25091d 0%, #3d0649 100%) !important;
    z-index: 2147483640 !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header,
html.vsl-standard-desktop-boot body.vsl-standard-header {
    padding-top: var(--vsl-desktop-body-top-offset) !important;
}

/* Browser zoom may cross the site's <=1024 / <=967 header breakpoints. On an
 * actual desktop, explicitly restore the native desktop header state. */
html.vsl-reference-desktop-active {
    --header-height: 72px !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .top-left {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex: 0 0 auto !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .logo {
    display: flex !important;
    align-items: center !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: 400px !important;
    padding: 0 !important;
    margin: 0 !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .logo .desktop-logo {
    display: block !important;
    height: 58px !important;
    width: auto !important;
    padding-left: 10px !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .logo .mobile-logo {
    display: none !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .mobile-menu-toggle,
html.vsl-reference-desktop-active body.vsl-standard-header .mobile-search-trigger-container {
    display: none !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .desktop-profile-link {
    display: inline-block !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .header-search-wrapper {
    display: flex !important;
    flex-grow: 1 !important;
    max-width: 694px !important;
    margin: 0 25px !important;
    position: relative !important;
    align-items: center !important;
    box-sizing: border-box !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .header-search-wrapper:not(.mobile-active) {
    position: relative !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    background: transparent !important;
    flex-direction: row !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .header-nav-icons {
    display: flex !important;
    align-items: center !important;
    gap: 22px !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .header-nav-icons svg,
html.vsl-reference-desktop-active body.vsl-standard-header .header-icon svg {
    width: 32px !important;
    height: 32px !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .desktop-notification-group {
    display: flex !important;
    align-items: center !important;
    gap: 22px !important;
    margin-left: -6px !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .right-ctas {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin-left: auto !important;
}

html.vsl-reference-desktop-active body.vsl-standard-header .header-upload-shortcut,
html.vsl-reference-desktop-active body.vsl-standard-header .header-icon.hiddi {
    display: inline-flex !important;
}


/* -------------------------------------------------------------------------
   Page canvas: one correction factor for every page section
   ------------------------------------------------------------------------- */
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas,
html.vsl-standard-desktop-boot body.vsl-adaptive-desktop-route .vsl-reference-canvas {
    zoom: var(--vsl-desktop-scale) !important;
    width: var(--vsl-desktop-canvas-width) !important;
    min-width: var(--vsl-desktop-canvas-width) !important;
    max-width: none !important;
    box-sizing: border-box !important;
    transform: none !important;
    transform-origin: top left !important;
}

html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas,
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas > main,
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas > aside,
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas .left-sidebar,
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas .right-sidebar,
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas .main-sidebar,
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas .secondary-sidebar {
    box-sizing: border-box;
}

/* Preserve media inside the middle column. Structural shell width is locked by
 * JS, but media should never create a new document-level horizontal overflow. */
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas main img,
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas main video,
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas main iframe,
html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas main canvas {
    max-width: 100% !important;
}

/* Bank pages must never recreate the old 125% internal layer. */
html.vsl-reference-desktop-active body.vsl-layout-bank-settings .vsl-bank-page,
html.vsl-reference-desktop-active body.vsl-layout-bank-settings .vsl-bank-shell,
html.vsl-reference-desktop-active body.vsl-layout-bank-settings .vsl-bank-grid,
html.vsl-reference-desktop-active body.vsl-layout-bank-settings .vsl-currency-grid,
html.vsl-reference-desktop-active body.vsl-layout-bank-settings .vsl-activate-steps {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* The old adaptive-grid/stack classes are intentionally neutralized. The
 * reference shell keeps the desktop sidebars in their standard orientation. */
html.vsl-reference-desktop-active.vsl-adaptive-grid-active body.vsl-adaptive-desktop-route .vsl-reference-canvas,
html.vsl-reference-desktop-active.vsl-right-stack-active body.vsl-adaptive-desktop-route .vsl-reference-canvas,
html.vsl-reference-desktop-active.vsl-bank-stack-active body.vsl-adaptive-desktop-route .vsl-reference-canvas {
    grid-template-columns: none !important;
    grid-template-rows: none !important;
}

@supports not (zoom: 1) {
    html.vsl-reference-desktop-active body.vsl-standard-header .topbar,
    html.vsl-standard-desktop-boot body.vsl-standard-header .topbar,
    html.vsl-reference-desktop-active body.vsl-adaptive-desktop-route .vsl-reference-canvas {
        zoom: 1 !important;
        transform: scale(var(--vsl-desktop-scale)) !important;
        transform-origin: top left !important;
    }
}

/* First-paint desktop header restoration. The bootstrap class is present before
 * deferred JS runs, preventing browser zoom from briefly switching the header
 * into its mobile arrangement. */
html.vsl-standard-desktop-boot body.vsl-standard-header .top-left { display:flex!important; align-items:center!important; gap:12px!important; flex:0 0 auto!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .logo { display:flex!important; align-items:center!important; line-height:1!important; flex-shrink:0!important; min-width:0!important; width:auto!important; max-width:400px!important; padding:0!important; margin:0!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .logo .desktop-logo { display:block!important; height:58px!important; width:auto!important; padding-left:10px!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .logo .mobile-logo { display:none!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .mobile-menu-toggle,
html.vsl-standard-desktop-boot body.vsl-standard-header .mobile-search-trigger-container { display:none!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .desktop-profile-link { display:inline-block!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .header-search-wrapper { display:flex!important; flex-grow:1!important; max-width:694px!important; margin:0 25px!important; position:relative!important; align-items:center!important; box-sizing:border-box!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .header-nav-icons { display:flex!important; align-items:center!important; gap:22px!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .header-nav-icons svg,
html.vsl-standard-desktop-boot body.vsl-standard-header .header-icon svg { width:32px!important; height:32px!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .desktop-notification-group { display:flex!important; align-items:center!important; gap:22px!important; margin-left:-6px!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .right-ctas { display:flex!important; align-items:center!important; gap:14px!important; margin-left:auto!important; }
html.vsl-standard-desktop-boot body.vsl-standard-header .header-upload-shortcut,
html.vsl-standard-desktop-boot body.vsl-standard-header .header-icon.hiddi { display:inline-flex!important; }

/* First-paint body clearance comes from the same family-aware variable used
   after JS resolves, so the page does not jump vertically after load. */
html.vsl-standard-desktop-boot body.vsl-standard-header.vsl-adaptive-desktop-route {
    padding-top: var(--vsl-desktop-body-top-offset) !important;
}

/* The body clearance below is part of the reference shell. For page families
   that already reserved header space inside .page-wrapper, viewport-layout.js
   moves that clearance to the body and subtracts the same amount from wrapper
   padding. The visible 100% geometry therefore stays unchanged while the
   wrapper itself begins on the same horizontal line as its fixed right rail. */

/* Structural shell geometry must switch atomically during load and browser zoom.
   Disable only layout transitions on the shell; card/content animations remain
   untouched. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-adaptive-desktop-route :is(.page-wrapper, .left-sidebars-wrapper, .left-sidebar, .main-sidebar, .secondary-sidebar, .right-sidebar, main[role="main"], #supabase-menu) {
    transition-property: none !important;
}

/* -------------------------------------------------------------------------
   First-paint structural desktop locks
   -------------------------------------------------------------------------
   Product index uses the page's existing 1536px desktop geometry exactly.
   Do not alter the Supabase menu's own margin, padding, typography or item
   styles here. Only restore the outer structural values that browser zoom can
   accidentally replace with the <=1024px tablet rules.
*/

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-products-index,.vsl-layout-social-products) .page-wrapper {
    position: relative !important;
    padding-top: 3px !important;
    margin-top: 0 !important;
    overflow: visible !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-products-index,.vsl-layout-social-products) .left-sidebars-wrapper {
    display: flex !important;
    visibility: visible !important;
    position: fixed !important;
    /* Align the Products sidebar host with the shared desktop menu start line. */
    top: 62px !important;
    left: 0 !important;
    height: calc(var(--vsl-desktop-canvas-height) - 62px) !important;
    flex-direction: row !important;
    gap: 0 !important;
    align-items: flex-start !important;
    pointer-events: auto !important;
    overflow: visible !important;
    z-index: 10 !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-products-index,.vsl-layout-social-products) .left-sidebars-wrapper > .left-sidebar {
    display: block !important;
    visibility: visible !important;
    position: relative !important;
    top: 0 !important;
    height: 100% !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-products-index,.vsl-layout-social-products) .left-sidebars-wrapper > .main-sidebar {
    display: block !important;
    visibility: visible !important;
    position: relative !important;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    height: 100% !important;
    flex: 0 0 300px !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-products-index,.vsl-layout-social-products) .left-sidebars-wrapper > .secondary-sidebar {
    display: flex !important;
    visibility: visible !important;
    position: relative !important;
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    height: 100% !important;
    flex: 0 0 150px !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-products-index,.vsl-layout-social-products) .page-wrapper > main {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-left: 512px !important;
    margin-right: 472px !important;
    margin-top: 0 !important;
    zoom: 1 !important;
    transform: none !important;
}

/* /dev/products only: the center column must consume only the space that
   remains after the fixed 512px left shell and 472px right reservation.
   Keep Social Products on its existing sizing path. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-products-index .page-wrapper > main {
    width: calc(100% - 984px) !important;
    max-width: calc(100% - 984px) !important;
    box-sizing: border-box !important;
}

/* /dev/products only: keep the existing horizontal shell and raise the main
   feed to the requested desktop top position. Social Products keeps its own
   established top alignment. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-products-index .page-wrapper:not(.vsl-invoices-page) > main {
    margin-top: -40px !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-products-index,.vsl-layout-social-products) .page-wrapper > .right-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 64px !important;
    right: 12px !important;
    width: 400px !important;
    min-width: 400px !important;
    max-width: 400px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 64px) !important;
    padding-left: 24px !important;
    padding-right: 17px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    pointer-events: auto !important;
}

/* Dashboard keeps the previously established shell. This block is separate so
   restoring /dev/products to its native offsets cannot move Dashboard. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dashboard .page-wrapper {
    display: flex !important;
    justify-content: center !important;
    position: relative !important;
    top: 0 !important;
    margin: 0 !important;
    padding-top: 3px !important;
    overflow: visible !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dashboard .left-sidebars-wrapper {
    display: flex !important;
    visibility: visible !important;
    position: fixed !important;
    top: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    margin: 0 !important;
    padding-top: 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: calc(var(--vsl-desktop-canvas-height) - 64px) !important;
    min-height: 0 !important;
    flex-direction: row !important;
    gap: 0 !important;
    align-items: flex-start !important;
    pointer-events: auto !important;
    overflow: visible !important;
    z-index: 10 !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dashboard .left-sidebars-wrapper > .main-sidebar {
    display: block !important;
    visibility: visible !important;
    position: relative !important;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    height: 100% !important;
    min-height: 0 !important;
    flex: 0 0 300px !important;
    pointer-events: auto !important;
    padding-left: 20px !important;
    padding-bottom: 20px !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dashboard .left-sidebars-wrapper > .secondary-sidebar {
    display: flex !important;
    visibility: visible !important;
    position: relative !important;
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    height: 100% !important;
    min-height: 0 !important;
    flex: 0 0 150px !important;
    pointer-events: auto !important;
    overflow-x: hidden !important;
    overflow-y: hidden !important;
    box-sizing: border-box !important;
}

/* Keep the dashboard RFQ upload/camera action inside the visible secondary
   sidebar. The page's native .story-container uses min-height:92vh; once the
   1920x1080 reference canvas is scaled that can put the absolute bottom upload
   action below the desktop viewport. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dashboard .left-sidebars-wrapper > .secondary-sidebar > .sidebar-content {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding-top: 42px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dashboard .secondary-sidebar .story-container {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 100% !important;
    position: relative !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dashboard .secondary-sidebar .story-upload-item {
    display: flex !important;
    visibility: visible !important;
    bottom: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    z-index: 10 !important;
}

/* Compact desktop viewports need the RFQ upload action lifted above the
   browser's visible lower edge. Keep the 1920x1080 reference position at 0. */
@media (min-width: 769px) and (max-height: 850px) {
    :is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
    body.vsl-layout-dashboard .secondary-sidebar .story-upload-item {
        bottom: 80px !important;
    }
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dashboard .page-wrapper > main {
    display: block !important;
    position: relative !important;
    top: 0 !important;
    bottom: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-left: 512px !important;
    margin-right: 384px !important;
    margin-top: 38px !important;
    padding-top: 4px !important;
    zoom: 1 !important;
    transform: none !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dashboard .page-wrapper > main .feed-wrapper {
    margin-top: -20px !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dashboard .page-wrapper > .right-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 64px !important;
    bottom: 0 !important;
    right: 12px !important;
    margin: 0 !important;
    width: 400px !important;
    min-width: 400px !important;
    max-width: 400px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding-left: 24px !important;
    padding-right: 17px !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-product-view #product-view-page {
    display: block !important;
    position: relative !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-product-view #product-view-page > .left-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 94px !important;
    left: 24px !important;
    width: 280px !important;
    min-width: 280px !important;
    max-width: 280px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 118px) !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-product-view #product-view-page > main {
    display: block !important;
    position: relative !important;
    width: calc(100% - 767px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 767px) !important;
    margin-left: 373px !important;
    margin-right: 394px !important;
    padding-top: 10px !important;
    padding-bottom: 60px !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    transform: none !important;
}

/* Product view containment: preserve the existing card design while ensuring
   the feed/card/content can never become wider than the main desktop column. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-product-view #product-view-page > main .feed-column,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-product-view #product-view-page > main .reddit-post-card,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-product-view #product-view-page > main .post-content-area {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-product-view #product-view-page > main .post-content-area {
    overflow-x: hidden !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-product-view #product-view-page > .right-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 94px !important;
    right: 24px !important;
    width: 360px !important;
    min-width: 360px !important;
    max-width: 360px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 118px) !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-rfq-index .page-wrapper,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-rfq-view .page-wrapper {
    display: block !important;
    position: relative !important;
    padding: 24px !important;
    overflow: visible !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-rfq-index .page-wrapper > .left-sidebar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-rfq-view .page-wrapper > .left-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    left: 24px !important;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 120px) !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-rfq-index .page-wrapper > .left-sidebar {
    top: 62px !important;
    left: 17px !important;
    width: 318px !important;
    min-width: 318px !important;
    max-width: 318px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 62px) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-y: hidden !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-rfq-view .page-wrapper > .left-sidebar { top: 74px !important; }

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-rfq-index .page-wrapper > main {
    display: block !important;
    position: relative !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: 357px !important;
    margin-right: 446px !important;
    margin-top: -15px !important;
    padding-right: 0 !important;
    transform: none !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-rfq-view .page-wrapper > main {
    display: block !important;
    position: relative !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: 355px !important;
    margin-right: 388px !important;
    transform: none !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-rfq-index .page-wrapper > .right-sidebar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-rfq-view .page-wrapper > .right-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 96px !important;
    right: 24px !important;
    width: 368px !important;
    min-width: 368px !important;
    max-width: 368px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 120px) !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-settings,.vsl-layout-bank-settings) .page-wrapper {
    display: flex !important;
    align-items: stretch !important;
    position: relative !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-settings,.vsl-layout-bank-settings) .page-wrapper > .left-sidebar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-settings,.vsl-layout-bank-settings) .page-wrapper > .desktop-sidebar-container {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    left: 0 !important;
    top: 62px !important;
    width: 318px !important;
    min-width: 318px !important;
    max-width: 318px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 62px) !important;
    min-height: 0 !important;
    margin: 0 0 0 17px !important;
    padding: 0 !important;
    /* The Supabase navigation must fit the desktop viewport as one fixed
       column. Do not make the settings sidebar itself independently scroll. */
    overflow-y: hidden !important;
    overflow-x: hidden !important;
    overscroll-behavior: none !important;
    scrollbar-width: none !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-settings,.vsl-layout-bank-settings) .page-wrapper > .left-sidebar::-webkit-scrollbar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-settings,.vsl-layout-bank-settings) .page-wrapper > .desktop-sidebar-container::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-settings,.vsl-layout-bank-settings) .page-wrapper > .left-sidebar > #supabase-menu,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-settings,.vsl-layout-bank-settings) .page-wrapper > .desktop-sidebar-container #supabase-menu {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-settings,.vsl-layout-bank-settings) .page-wrapper > .right-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 72px !important;
    right: 12px !important;
    width: 400px !important;
    min-width: 400px !important;
    max-width: 400px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 72px) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 17px 0 24px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    pointer-events: auto !important;
    box-sizing: border-box !important;
}

/* Bank routes intentionally use the same 400px reference rail as the
   rest of the desktop shell. Do not let bank-page media queries shrink it. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-bank-settings .page-wrapper > .right-sidebar {
    top: 72px !important;
    right: 12px !important;
    width: 400px !important;
    min-width: 400px !important;
    max-width: 400px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 72px) !important;
    padding: 0 17px 0 24px !important;
    box-sizing: border-box !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-settings .page-wrapper > main,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-bank-settings .page-wrapper > main {
    display: block !important;
    position: relative !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 472px 0 335px !important;
    padding: 0 89px 56px 43px !important;
    align-self: flex-start !important;
    overflow: visible !important;
    transform: none !important;
}

/* Create Payment Request retains its existing page-specific desktop geometry. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-create-quote .page-wrapper {
    display: flex !important;
    align-items: stretch !important;
    position: relative !important;
    padding: 3px 0 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-create-quote .page-wrapper > .left-sidebar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-create-quote .page-wrapper > .desktop-sidebar-container {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    left: 0 !important;
    top: 62px !important;
    width: 318px !important;
    min-width: 318px !important;
    max-width: 318px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 62px) !important;
    min-height: 0 !important;
    margin: 0 0 0 17px !important;
    padding: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-create-quote .page-wrapper > .right-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 64px !important;
    right: 12px !important;
    width: 400px !important;
    min-width: 400px !important;
    max-width: 400px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 64px) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 17px 0 24px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    pointer-events: auto !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-create-quote .page-wrapper > main {
    display: block !important;
    position: relative !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 19px 472px 0 335px !important;
    padding: 0 89px 56px 43px !important;
    align-self: flex-start !important;
    overflow: visible !important;
    transform: none !important;
}

/* Bootstrap the page canvas itself before deferred JS marks the resolved target. */
html.vsl-standard-desktop-boot body.vsl-adaptive-desktop-route .page-wrapper,
html.vsl-standard-desktop-boot body.vsl-layout-product-view #product-view-page,
html.vsl-standard-desktop-boot body.vsl-layout-dashboard .dashboard-layout,
html.vsl-standard-desktop-boot body.vsl-layout-auto .main-layout {
    zoom: var(--vsl-desktop-scale) !important;
    width: var(--vsl-desktop-canvas-width) !important;
    min-width: var(--vsl-desktop-canvas-width) !important;
    max-width: none !important;
    box-sizing: border-box !important;
    transform: none !important;
    transform-origin: top left !important;
}

/* -------------------------------------------------------------------------
   Supabase desktop menu viewport lock
   -------------------------------------------------------------------------
   Keep the existing menu design intact while making its outer box use the
   full available desktop-sidebar height. The menu itself must not become an
   independent scrolling region when browser zoom changes the CSS viewport.
*/
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-adaptive-desktop-route #supabase-menu {
    /* Reassert the account-page menu geometry during first paint as well as after
       JS resolves. Route-specific horizontal margins (such as Products 18px) are
       deliberately left untouched. */
    /* The outer sidebar host already owns the header clearance. A second
       sticky top offset here clipped lower menu items on compact desktops. */
    position: relative !important;
    top: 0 !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 20px 0 0 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-adaptive-desktop-route #supabase-menu .menu-scrollable {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    padding: 0 16px 20px 0 !important;
    overflow-y: hidden !important;
    overflow-x: hidden !important;
    overscroll-behavior: none !important;
    scrollbar-width: none !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-adaptive-desktop-route #supabase-menu .menu-scrollable::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-adaptive-desktop-route #supabase-menu .global-links {
    flex: 0 0 auto !important;
}

/* /dev/social/products uses the normal single Supabase sidebar host rather
   than the composite /dev/products left wrapper. Give that direct host the same
   300px reference width and full visible desktop height used by the other VSL
   desktop routes. The upload/RFQ column remains owned by the page itself. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-social-products .page-wrapper > .left-sidebar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-social-products .page-wrapper > aside.left-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 64px !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-social-products #supabase-menu {
    margin-left: 0 !important;
    padding: 20px 0 0 0 !important;
}


/* Social Products: remove only the product-list left inset requested while
   leaving the card/content styling itself untouched. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-social-products .products-container {
    padding-left: 0 !important;
    box-sizing: border-box !important;
}

/* Social Products has an existing nested .right-sidebar wrapper inside the
   standard outer rail. Keep the outer rail at the shared 400px geometry, but
   neutralize only that nested wrapper so it cannot become a second fixed,
   viewport-wide sidebar. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-social-products .page-wrapper > .right-sidebar > .right-sidebar {
    display: block !important;
    visibility: visible !important;
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    box-sizing: border-box !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-social-products .page-wrapper > .right-sidebar > .right-sidebar > .sidebar-content {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* Exact /dev/products desktop menu offset requested. Do not alter any other
   Supabase menu margin, padding, typography, or item styling. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-products-index #supabase-menu {
    margin-left: 18px !important;
}

/* -------------------------------------------------------------------------
   Social dispute desktop width lock
   -------------------------------------------------------------------------
   Match the RFQ/product desktop middle-column proportion without changing
   dispute card styling. This also neutralizes the dispute page's old 760px
   max-width when browser zoom triggers its tablet breakpoints.
*/
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dispute-index,
body.vsl-layout-dispute-index .page-wrapper {
    background: #ffffff !important;
}

body.vsl-layout-dispute-index .page-wrapper {
    position: relative !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
    overflow: visible !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dispute-index .page-wrapper > main[role="main"],
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dispute-index main[role="main"] {
    display: block !important;
    position: relative !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    margin-left: 374px !important;
    margin-right: 472px !important;
    padding-top: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dispute-index main[role="main"] .feed-container {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dispute-index .page-wrapper > .right-sidebar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-dispute-index aside.right-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 72px !important;
    right: 12px !important;
    width: 400px !important;
    min-width: 400px !important;
    max-width: 400px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 72px) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 17px 0 24px !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    pointer-events: auto !important;
}

/* -------------------------------------------------------------------------
   Account page menu height lock
   -------------------------------------------------------------------------
   /dev/account keeps its existing sidebar position and styling. Only the
   available vertical box is constrained so #supabase-menu can fit the desktop
   viewport without creating a second menu scrollbar.
*/
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-account .page-wrapper > .left-sidebar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-account .page-wrapper > .desktop-sidebar-container {
    min-height: 0 !important;
    max-height: var(--vsl-account-menu-available-height, none) !important;
    overflow-y: hidden !important;
    overflow-x: hidden !important;
    overscroll-behavior: none !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-account #supabase-menu {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
}

/* -------------------------------------------------------------------------
   Standard account/settings desktop top line and right rail
   -------------------------------------------------------------------------
   Keep <main role="main"> close to the header and keep the social feed at
   the same logical width/gutters used by the desktop Products reference.
   The parent reference canvas handles browser zoom, so these values must not
   shrink at page-level media-query breakpoints.
*/
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-account .page-wrapper > main[role="main"],
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-account main[role="main"] {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-account .page-wrapper > .right-sidebar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-account aside.right-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 72px !important;
    right: 12px !important;
    width: 400px !important;
    min-width: 400px !important;
    max-width: 400px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 72px) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 17px 0 24px !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    pointer-events: auto !important;
}

/* -------------------------------------------------------------------------
   Generic/profile desktop right rail
   -------------------------------------------------------------------------
   Named routes already receive a fixed rail above. Profile/u.php and other
   shared-header routes may use the same product feed without a route-specific
   lock, so give those routes the same 1920-reference rail from first paint.
*/
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-profile,.vsl-layout-auto,.vsl-layout-messages) .page-wrapper > .right-sidebar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body:is(.vsl-layout-profile,.vsl-layout-auto,.vsl-layout-messages) aside.right-sidebar {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    top: 72px !important;
    right: 12px !important;
    bottom: auto !important;
    width: 400px !important;
    min-width: 400px !important;
    max-width: 400px !important;
    height: calc(var(--vsl-desktop-canvas-height) - 72px) !important;
    min-height: 0 !important;
    max-height: calc(var(--vsl-desktop-canvas-height) - 72px) !important;
    margin: 0 !important;
    padding: 0 17px 0 24px !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    pointer-events: auto !important;
}

/* -------------------------------------------------------------------------
   Messages desktop top alignment
   -------------------------------------------------------------------------
   Keep the messages main workspace on the requested shared-header desktop
   start line without changing its columns, widths, or internal message UI.
*/
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-messages .page-wrapper > main[role="main"],
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-messages main[role="main"] {
    margin-top: -9px !important;
}

/* The live Messages markup uses a plain <main> without role="main". Keep the
   page's existing top placement, but provide a first-paint logical-height
   fallback until viewport-layout.js measures the exact remaining viewport. */
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-messages .page-wrapper > main,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-layout-messages main {
    height: calc(var(--vsl-desktop-canvas-height) - var(--vsl-header-h) - 24px) !important;
    max-height: calc(var(--vsl-desktop-canvas-height) - var(--vsl-header-h) - 24px) !important;
    min-height: 0 !important;
}

/* -------------------------------------------------------------------------
   Final desktop rail viewport lock
   -------------------------------------------------------------------------
   All shared product-feed rails keep their route-specific top and width, but
   their lower edge is always the visible browser viewport. This prevents a
   calculated logical height from being clipped by browser chrome, zoom or OS
   display scaling on compact desktop devices.
*/
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-adaptive-desktop-route .page-wrapper > .right-sidebar,
:is(html.vsl-reference-desktop-active, html.vsl-standard-desktop-boot)
body.vsl-adaptive-desktop-route aside.right-sidebar {
    bottom: 0 !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
}

