/**
 * BeaMiiLocal PWA interaction constraints.
 *
 * Standalone zoom policy: page pinch is disabled on ordinary PWA views.
 * Leaflet views are exempt at root level, and app-shell.js blocks page pinch
 * outside .leaflet-container so two-finger gestures remain available on maps.
 */

html.beamii-is-standalone:not(.beamii-zoom-exempt),
html.is-standalone:not(.beamii-zoom-exempt),
html.beamii-is-standalone:not(.beamii-zoom-exempt) body,
html.is-standalone:not(.beamii-zoom-exempt) body{
  touch-action:pan-x pan-y;
}

html.beamii-is-standalone :where(
  button,
  [role="button"],
  .bottom-nav a,
  .topbar a,
  .chip,
  [data-no-transition]
),
html.is-standalone :where(
  button,
  [role="button"],
  .bottom-nav a,
  .topbar a,
  .chip,
  [data-no-transition]
){
  touch-action:manipulation;
}

@media (max-width:760px){
  html.beamii-is-standalone :where(input, select, textarea),
  html.is-standalone :where(input, select, textarea){
    font-size:16px !important;
  }
}

.beamii-pwa-landscape[hidden]{
  display:none !important;
}

.beamii-pwa-landscape{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  width:100%;
  height:100%;
  min-height:100dvh;
  padding:
    max(20px, env(safe-area-inset-top, 0px))
    max(24px, env(safe-area-inset-right, 0px))
    max(20px, env(safe-area-inset-bottom, 0px))
    max(24px, env(safe-area-inset-left, 0px));
  overflow:hidden;
  color:#122033;
  background:
    radial-gradient(circle at 20% 20%, rgba(31,163,214,.18), transparent 34%),
    linear-gradient(145deg, #f7fbff 0%, #e7f2f9 100%);
  overscroll-behavior:none;
  touch-action:none;
}

.beamii-pwa-landscape:focus{
  outline:none;
}

.beamii-pwa-landscape__card{
  display:grid;
  justify-items:center;
  gap:8px;
  width:min(520px, 100%);
  padding:22px 28px;
  border:1px solid rgba(31,60,92,.10);
  border-radius:24px;
  background:rgba(255,255,255,.94);
  box-shadow:0 24px 64px rgba(31,60,92,.18);
  text-align:center;
}

.beamii-pwa-landscape__device{
  position:relative;
  width:64px;
  height:38px;
  margin-bottom:4px;
  border:3px solid #1f3c5c;
  border-radius:10px;
  transform:rotate(-8deg);
}

.beamii-pwa-landscape__device::before{
  content:"";
  position:absolute;
  top:50%;
  left:-18px;
  width:11px;
  height:11px;
  border:3px solid #1fa3d6;
  border-right:0;
  border-bottom:0;
  transform:translateY(-50%) rotate(-45deg);
}

.beamii-pwa-landscape__device span{
  position:absolute;
  top:50%;
  right:5px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#1f3c5c;
  transform:translateY(-50%);
}

.beamii-pwa-landscape__brand{
  margin:0;
  color:#198fd1;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.10em;
  line-height:1.2;
  text-transform:uppercase;
}

.beamii-pwa-landscape h2{
  margin:0;
  color:#122033;
  font-size:clamp(1.35rem, 3.5vw, 1.9rem);
  font-weight:950;
  line-height:1.12;
  letter-spacing:-.025em;
}

.beamii-pwa-landscape__card > p:last-child{
  margin:0;
  color:#52657a;
  font-size:1rem;
  line-height:1.45;
}

html.beamii-landscape-blocked,
body.beamii-landscape-blocked{
  overflow:hidden !important;
  overscroll-behavior:none !important;
}

@media (prefers-reduced-motion:no-preference){
  .beamii-pwa-landscape:not([hidden]) .beamii-pwa-landscape__device{
    animation:beamiiLandscapeHint 1.8s ease-in-out infinite;
  }
}

@keyframes beamiiLandscapeHint{
  0%, 100%{ transform:rotate(-8deg); }
  50%{ transform:rotate(8deg); }
}
