/* Shared mobile baseline for both distributions. Never disable browser zoom. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-bottom:24px}
body{min-width:0;min-height:100svh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}
img,video,canvas{max-width:100%}
button,input,select,textarea{touch-action:manipulation}
button,input:not([type=checkbox]):not([type=radio]),select{min-height:44px}
input,select,textarea{font-size:16px}
input,textarea{scroll-margin-top:24px;scroll-margin-bottom:32px}
nav a{min-height:44px;display:inline-flex;align-items:center}
.access>*{min-width:0}
.message{overflow-wrap:anywhere}
@media(max-width:700px){
  header{padding:16px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left))}
  nav{gap:4px 16px}
  main{padding:0 16px}
  .access{gap:16px}
  .access h1{font-size:32px}
  .access>section>p.muted{display:none}
  form,.card{padding:20px 16px;border-radius:14px}
  .toolbar{gap:8px}
  .toolbar>*{flex:1 1 140px}
  .public-header{flex-wrap:wrap;gap:12px}
  .public-header nav{flex-wrap:wrap}
  .member-qr img{width:min(100%,300px);height:auto}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
