/**
 * Shared mobile / PWA polish for Private Line web clients.
 * Pair with viewport-fit=cover on supported pages.
 */
html {
  -webkit-text-size-adjust: 100%;
}

body.pl-mobile-safe {
  padding-left: env(safe-area-inset-left, 0);
  padding-right: env(safe-area-inset-right, 0);
}

body.pl-mobile-safe > header,
body.pl-mobile-safe > .pl-page-header {
  padding-top: max(1rem, env(safe-area-inset-top, 0));
}

/* Compact dashboard headers on narrow screens */
@media (max-width: 640px) {
  body.pl-mobile-safe header h1.text-3xl,
  body.pl-mobile-safe .pl-page-header h1.text-3xl {
    font-size: 1.5rem;
    line-height: 1.25;
  }
  body.pl-mobile-safe header .py-6,
  body.pl-mobile-safe .pl-page-header .py-6 {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
  body.pl-mobile-safe main {
    padding-top: 1.5rem;
    padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0));
  }
}

/* Sticky tab bar: keep below notch when scrolling */
.portal-tabbar {
  top: env(safe-area-inset-top, 0);
}

/* Larger tap targets for primary actions on touch devices */
@media (pointer: coarse) {
  .portal-tab-btn {
    min-height: 2.5rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .portal-topup-btn {
    min-height: 2.25rem;
  }
}

/* Room for fixed PWA install bar */
body.pl-pwa-banner-visible {
  padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0));
}
