diff --git a/apps/portal-admin/src/styles.css b/apps/portal-admin/src/styles.css index 435b0bf..11a952d 100644 --- a/apps/portal-admin/src/styles.css +++ b/apps/portal-admin/src/styles.css @@ -16,3 +16,18 @@ /* Brand palette tokens — shared with portal-shell. */ @import '../../../libs/shared/tokens/src/brand-tokens.css'; + +/* + * The admin shell is a "fills the viewport, never scrolls the body" + * layout: is locked at height: 100vh, and
owns its + * own overflow-y. If anything inside the shell ever pushes content + * past the viewport (a wide chart, a flex sizing bug, a third-party + * iframe), we'd rather clip than show a phantom body scrollbar plus + * the empty space below the footer that comes with it. The element- + * level overflow on
still produces a real, scrollable region + * for content that overflows by design. + */ +html, +body { + overflow-y: hidden; +}