/* ============================================================
 * NumeriDuel · iOS 原生 APP 手感层
 * ------------------------------------------------------------
 * 放入 public/ 由 vite.config.ts 的 transformIndexHtml 注入到全部
 * HTML 入口（MPA 16 页），保证「一次改、全站生效」。
 *
 * 为什么不放 design-system：@tri-sites/design-system 在这里是
 * file: 依赖，pnpm 在**安装期**把 vendor 源码复制进 node_modules/.pnpm
 * 快照；之后改 vendor 源码不会同步过去（2026-10-11 实测：改完重跑
 * vite build，sfx chunk 哈希原封不动，tap-highlight 命中 0）。
 * 站点自身 public 静态资源则不经过这层，稳定可靠。
 *
 * 浏览器的四条默认行为会持续暴露「这是网页不是 APP」：
 *   ① 点击任意元素闪 rgba(51,181,229,.4) 蓝色蒙层（约 100ms）
 *   ② 长按弹 iOS Callout（拷贝 / 查询 / 翻译）并整块选中文案
 *   ③ 滚到顶继续下拉触发 pull-to-refresh、到底橡皮筋回弹
 *   ④ 快速连点被判双击 → 整页缩放
 * 2026-10-10 真机实测三站这四项 computed style 全为浏览器默认值。
 *
 * ⚠️ 硬约束：需要被玩家复制的文本必须开回来 —— 邀请房码、分享文案
 *    靠长按/选中复制，误伤等于静默功能损失。
 * ============================================================ */

/* ① 点击不再闪蓝框 */
html, body, button, a, [role="button"], label, summary {
  -webkit-tap-highlight-color: transparent;
}

/* ② 长按不弹系统 Callout */
html, body { -webkit-touch-callout: none; }

/* 游戏交互区整片禁选中，快速连点不会"划蓝" */
body, .board, .card, .op-btn, .size-chip, .tab, .btn,
.pg-topbar, .pg-footer, .pg-sidebar, .lobby, .lobby-card,
.arb-account, .rp-item {
  -webkit-user-select: none;
  user-select: none;
}

/* ⚠️ 回退层：这些必须能选中 / 能弹拷贝菜单 */
input, textarea, select, [contenteditable], [data-copyable],
.formula, #roomCode, #joinCodeOut, .rc-code, .jc-code, .invite-code {
  -webkit-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}

/* ③ 禁下拉刷新 / 橡皮筋；内部滚动区自己 contain 而不是向外传递 */
html { overscroll-behavior-y: none; }
.chat-log, .chat-dock-log, .room-players, [data-scroll-area] {
  overscroll-behavior: contain;
}

/* ④ 禁双击缩放（保留 pan / pinch） */
body { touch-action: manipulation; }
