/* <!-- CLAJAMA-MOBILE-CONTRACT (owner 2026-10-16) --> */
/* CLAJAMA mobile contract (owner 2026-10-16). Three behaviours only; no design value of its own.
   Applied by core/mobile_contract.py — do not hand-edit. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

/* 1. TYPING NEVER ZOOMS — every text-entry control is >=16px where a phone focuses it. */
@media (max-width: 767px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select, textarea { font-size: max(16px, 1rem) !important; }
}
@media (hover: none) and (pointer: coarse) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select, textarea { font-size: max(16px, 1rem) !important; }
}

/* 2. NOTHING POURS OUT — media, tables and long tokens stay inside the screen. */
@media (max-width: 767px) {
  body { overflow-wrap: break-word; }
  img, svg, video, canvas, iframe, embed, object { max-width: 100%; height: auto; }
  pre, code { white-space: pre-wrap; overflow-wrap: anywhere; }
  table { display: block; width: 100%; max-width: 100%; overflow-x: auto; }
  .row > *, .grid > *, [class*="__grid"] > *, [class*="__cols"] > * { min-width: 0; }
}

/* 3. IT COLLAPSES — the opened menu is a BOUNDED, SCROLLABLE sheet (100 items stay reachable). */
[class*="mobile-menu"], [class*="nav-overlay"], [class*="menu-overlay"], [class*="mobile-nav"],
.nav-links.active, [class*="menu"][class*="open"], [class*="drawer"][class*="open"] {
  max-height: 100dvh; overflow-y: auto; -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
