/* Scoped mobile UI polish without touching existing vendor mobile.css */
@media (max-width: 768px) {
  .container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl {
    padding-left: .75rem;
    padding-right: .75rem;
  }
  /* Login page polish */
  .authentication-wrapper.authentication-basic { padding-top: 2rem; padding-bottom: 2rem; }
  .authentication-wrapper .card { border-radius: 16px; }
  .authentication-wrapper .card-body { padding: 1.25rem; }
  .authentication-wrapper .app-brand img { max-width: 220px; height: auto; }
  .authentication-wrapper h4 { font-size: 1.1rem; }
  .authentication-wrapper p { font-size: .9rem; color: #6c757d; }
  .authentication-wrapper .form-control { font-size: 16px; } /* prevent iOS zoom */
  .authentication-wrapper .btn { padding: .65rem 1rem; font-weight: 600; }
  .authentication-wrapper .input-group-text { border-radius: 0 10px 10px 0; }

  .card { border-radius: 14px; box-shadow: 0 4px 14px rgba(0,0,0,.05); }
  .card .card-header { border-top-left-radius: 14px; border-top-right-radius: 14px; }
  .card .card-footer { border-bottom-left-radius: 14px; border-bottom-right-radius: 14px; }
  .btn { border-radius: 10px; }
  .btn.btn-sm { border-radius: 8px; }
  .form-control, .form-select { border-radius: 10px; min-height: 42px; }
  .layout-navbar .nav-mobile-hidden { display: none !important; }
  /* Client users: show brand icon instead of hamburger (scoped via body.is-client from layout) */
  body.is-client .layout-navbar .layout-menu-toggle .hamburger { display: none !important; }
  body.is-client .layout-navbar .layout-menu-toggle .mobile-brand { display: inline-flex !important; align-items: center; }
  /* When mobile nav is present, reserve space and hide desktop footer */
  body.has-mobile-nav .content-wrapper { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .pagination .page-link { padding: .5rem .75rem; }
  .modal-dialog { margin: .5rem; }
  .modal-dialog.modal-lg, .modal-dialog.modal-md { max-width: 100%; }
  /* Hide sidebar for clients on small screens */
  body.is-client .layout-menu { display: none !important; }
  /* Safe area for iOS (only when nav exists) */
  body.has-mobile-nav .mobile-bottom-nav { padding-bottom: env(safe-area-inset-bottom); }
  /* Keep bottom nav pinned and stable during scroll/address bar show-hide */
  .mobile-bottom-nav {
    position: fixed !important;
    left: 0; right: 0; bottom: 0;
    z-index: 1050;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform;
  }
  .mobile-bottom-nav .mobile-fab {
    -webkit-transform: translateX(-50%) translateZ(0);
    transform: translateX(-50%) translateZ(0);
  }
  body.has-mobile-nav .content-footer.footer,
  body.has-mobile-nav footer.bg-footer-theme { display: none !important; }

  /* PWA install banner (guest) */
  #pwa-install-banner { position: fixed; left: 0; right: 0; bottom: 12px; z-index: 2000; display: flex; justify-content: center; padding: 0 .5rem; }
  #pwa-install-banner .pwa-install-card { background: #ffffff; color: #0b0f19; border-radius: 14px; padding: .75rem .9rem; width: 100%; max-width: 680px; box-shadow: 0 10px 30px rgba(0,0,0,.15); border: 1px solid rgba(0,0,0,.06); }
  @supports(padding: max(0px)){
    #pwa-install-banner { padding-bottom: max(env(safe-area-inset-bottom), 12px); }
  }
}

@media (prefers-color-scheme: dark) {
  .mobile-bottom-nav { background: #0b0f19; border-color: #1b2130; }
  .mobile-bottom-nav .nav-link { color: #a6b0cf; }
  .mobile-bottom-nav .nav-link.active { color: #5b8def; }
}
