:root:has([data-register-shell]) {
    --nexus-register-shell-safe-top: var(--nexus-safe-top-inset);
    --nexus-register-shell-safe-bottom: var(--nexus-safe-bottom-inset);
}

html:has([data-register-shell]) {
    box-sizing: border-box;
    min-height: var(--nexus-visible-viewport-height);
    height: var(--nexus-visible-viewport-height);
    max-height: var(--nexus-visible-viewport-height);
    overflow: hidden;
}

body#app:has([data-register-shell]) {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    box-sizing: border-box;
    min-height: var(--nexus-visible-viewport-height);
    height: var(--nexus-visible-viewport-height) !important;
    max-height: var(--nexus-visible-viewport-height) !important;
    background-color: #ffffff !important;
    padding-top: var(--nexus-register-shell-safe-top);
    overflow: hidden;
}

html.nexus-register-touch-form-active:has([data-register-shell]),
body#app.nexus-register-touch-form-active:has([data-register-shell]) {
    min-height: var(--nexus-stable-viewport-height, var(--nexus-visible-viewport-height, 100dvh));
    height: var(--nexus-stable-viewport-height, var(--nexus-visible-viewport-height, 100dvh)) !important;
    max-height: var(--nexus-stable-viewport-height, var(--nexus-visible-viewport-height, 100dvh)) !important;
}

[data-register-shell] [data-register-sidebar-root] {
    padding-bottom: calc(var(--nexus-register-shell-safe-bottom) + 12px);
}

body#app:has([data-register-shell])::-webkit-scrollbar {
    display: none;
}

body#app:has([data-register-shell]),
html:has([data-register-shell]) {
    overscroll-behavior: contain none;
}
