/* Shared chrome contract: only the content scrolls, never the title/footer. */
dialog.window[open],
.home-messenger > .window,
.window.maximized {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: clip;
}

.window > :is(.title-bar, .status-bar, .privacy-policy-actions, figcaption) {
  flex-shrink: 0;
}

dialog.window > :is(.window-body, .window-scroll-body),
.home-messenger > .window > .window-body,
.window.maximized > .window-body {
  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
  overflow: auto;
}

/* Lists have an existing nested scrollport; remove only its inset frame. */
.window > .publication-frame,
.window > .blog-scroll {
  margin: 0;
  border: 0;
}
.publication-frame > .publication-scroll {
  margin: 0;
}
.window > .status-bar {
  margin-top: 0;
}

/* 98.css skins both buttons at each end; retain only one directional arrow. */
::-webkit-scrollbar-button:vertical:start:increment,
::-webkit-scrollbar-button:vertical:end:decrement,
::-webkit-scrollbar-button:horizontal:start:increment,
::-webkit-scrollbar-button:horizontal:end:decrement {
  display: none;
}

/* On narrow screens, scroll the complete messenger stack as one page. */
@media (max-width: 650px) {
  .home-messenger {
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100dvh - var(--taskbar-height, 64px));
    max-height: none;
    padding: 12px;
    overflow: auto;
    overscroll-behavior: contain;
    pointer-events: auto;
  }

  .home-messenger > .window,
  .home-messenger > .window.maximized {
    position: relative;
    inset: auto;
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    max-height: none;
    margin: 0;
    overflow: visible;
  }

  .home-messenger > .window > .window-body {
    flex: none;
    overflow: visible;
  }

  .home-messenger > .window.maximized > .title-bar {
    position: static;
  }

  body.messenger-open #desktop-viewport {
    overflow: hidden;
  }
}
