/* Route-owned navigation: never show an empty rail. Preserve actual tabs. */
html body #app > nav#bottomNav:empty {display:none!important;visibility:hidden!important;pointer-events:none!important;height:0!important;min-height:0!important;max-height:0!important;padding:0!important;margin:0!important;border:0!important;box-shadow:none!important}
/* Flutter authentication is full-screen: it owns no bottom navigation. */
html body.auth-route #app > nav#bottomNav,
html body.auth-route #mxPhoneNavUnified,
html body.auth-route #mxNavRescue,
html body.auth-route #mxHomeAirplayNavV14,
html body.auth-route #mxRemainingFlutterWorkspace,
html body.auth-route #mxFlutterMarketTabs,
html body.auth-route .mx-rescue-service-nav,
html body.auth-route nav[aria-label="Flutter service navigation"] {
 display:none!important;visibility:hidden!important;pointer-events:none!important;
 height:0!important;min-height:0!important;max-height:0!important;
 padding:0!important;margin:0!important;border:0!important;box-shadow:none!important;
}
/* Remove space previously allocated to a menu on no-nav auth routes. */
html body.auth-route #app.app-shell,
html body.auth-route #page.page {
 padding-bottom:0!important;margin-bottom:0!important;
}
html body.auth-route #page > .mx-flutter-login {
 margin-bottom:0!important;
}
/* Do not remove the real player or service menus on media routes. */
