/* nozoom.css - one network web standard: a page is an app, not a document.
   No pinch zoom, no double-tap zoom, no text selection, no long-press callout.
   Canonical copy: /home/one-admin/web-shared/nozoom.css, served at /shared/nozoom.css.
   Pair it with nozoom.js - CSS alone cannot stop iOS Safari pinch (user-scalable=no
   has been ignored there since iOS 10). Standard: claude-ref/web-standards.md */

/* touch-action must be pan-x pan-y, NOT manipulation. Per the spec
   `manipulation` is "auto minus double-tap", so it still PERMITS pinch-zoom:
   the browser then runs the pinch on the compositor thread and never waits for
   nozoom.js's touchmove handler, so preventDefault() arrives too late to stop
   it. `pan-x pan-y` keeps one-finger scrolling and removes pinch AND
   double-tap from the set of browser-handled gestures.
   And it has to be on every element, not just html/body: touch-action is
   hit-tested on the element under the fingers, so one full-viewport child left
   at the initial `auto` (a fixed canvas, a #wrap) re-enables pinch over the
   whole page. Verified 2026-09-09 on /maskphase/ - #field and #wrap both
   computed `auto` under an html/body of `manipulation`. */
html, body {
  overscroll-behavior: none;       /* no rubber-band / pull-to-refresh */
  -webkit-text-size-adjust: 100%;  /* no orientation-change reflow bump */
  text-size-adjust: 100%;
}

html, body, body * {
  touch-action: pan-x pan-y;
}

body, body * {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;     /* iOS long-press share/copy sheet */
  -webkit-tap-highlight-color: transparent;
}

/* Opt back in where selecting is the point: inputs, and anything marked
   .selectable (a code block the reader is meant to copy, for instance). */
input, textarea, [contenteditable="true"], .selectable, .selectable * {
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}

img, canvas, svg, video { -webkit-user-drag: none; user-drag: none; }

/* iOS Safari zooms the page in when a form control whose computed font-size is
   under 16px gets focus - and nozoom.js then blocks the pinch back out, so the
   page is stuck zoomed (Sep, 2026-10-12, /felt/ selects at 11px). Floor every
   control at 16px. !important is required: apps set control sizes with class
   and id selectors (felt: `button,select,input{font:inherit}` plus panel rules)
   that would otherwise beat this element selector, and a kit rule that loses
   to app CSS is no rule. max() keeps larger app sizes intact.
   Probe: probe/nozoom.cjs "form controls >= 16px". */
input, select, textarea {
  font-size: max(16px, 1em) !important;
}
