/* Common shell contracts. App wrappers without web tabs reserve no tab space. */
:root { --rm-bottom-nav-height: 0px; }
body.rm-has-bottom-nav { padding-bottom: var(--rm-bottom-nav-height); }

@media (max-width: 767px) {
    body.rm-has-bottom-nav:has(> .rm-bottom-nav) {
        --rm-bottom-nav-height: calc(59px + max(12px, env(safe-area-inset-bottom)));
        padding-bottom: var(--rm-bottom-nav-height);
    }
    .rm-bottom-nav { padding-top: 10px; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
    .rm-bottom-nav-inner { min-height: 48px; }
    .rm-bottom-nav-link { min-width: 0; min-height: 48px; }
    .rm-bottom-nav-link > svg { width: 20px; height: 20px; flex-shrink: 0; }

    /* Opt-in page labels only: article/product titles and step headings stay visible. */
    .rm-shell:has(> .rm-mobile-page-header) [data-rm-page-heading] { display: none; }
    .rm-shell:has(> .rm-mobile-page-header) [data-rm-page-heading] + p { margin-top: 0; }
    .rm-shell:has(> .rm-mobile-page-header) header:has(> [data-rm-page-heading]:only-child),
    .rm-shell:has(> .rm-mobile-page-header) header:has(> div:only-child > [data-rm-page-heading]:only-child) { display: none; }

    /* The pay bar sits above the web tabs; app wrappers retain their own safe area. */
    body:has(.rm-checkout) { padding-bottom: calc(100px + var(--rm-bottom-nav-height)); }
    .rm-has-bottom-nav:has(> .rm-bottom-nav) .rm-checkout-paybar { padding-bottom: 12px; }
}
