/* ListView FillContainer — viewport-locked shell; TopMenu stays fixed; content below scrolls internally.
   Link from host App.razor. MainLayout wraps TopMenu + .page in .clubivate-app-shell. */

.clubivate-app-shell {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    overflow: hidden;
}

.clubivate-app-shell > nav.navbar,
.clubivate-app-shell > .navbar {
    flex-shrink: 0;
}

.clubivate-app-shell > .page {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.page > main {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.clubivate-page-content-fill {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

/* Page chrome above the list stays fixed size; list host absorbs remaining height. */
.clubivate-page-content-fill > *:not(.listview-page-host) {
    flex-shrink: 0;
}

.clubivate-page-content-fill .listview-page-host {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

/* Edition sales: filters/tabs above list; inner listview-page-host flex-fills this shell. */
.clubivate-page-content-fill .edition-sales-page-host {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.listview-page-host {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

/* Modals: modal-body padding supplies space below pagination; avoid double gap at bottom */
.modal-body .listview-container.listview-fill-container .listview-chrome-bottom {
    padding-bottom: 0;
}

/* Non-list pages: allow scrolling in the content area below the header. */
.clubivate-app-shell > .page.clubivate-page-scrollable {
    overflow-y: auto;
}

.clubivate-app-shell > .page.clubivate-page-scrollable > main,
.clubivate-app-shell > .page.clubivate-page-scrollable .clubivate-page-content-fill {
    overflow: visible;
    flex: none;
    min-height: auto;
}
