/* ============================================================
   adapter.css — 移动端环境适配层（设计侧维护，工程侧只集成不改值）
   目标：微信 / 各浏览器 / 各机型渲染结果与设计基线一致。
   原则：全局零视觉变化；环境特调一律收在 .env-* 选择器下。
   ============================================================ */

/* ---------- 1. 字体缩放防线（第一层：CSS 声明） ----------
   阻断 iOS 微信、iOS Safari 及多数 Chromium 的自动文字缩放。
   Android 微信（X5）常忽略此声明，由 adapter.js 第二层锁定。 */
html{
  -webkit-text-size-adjust:100%;
     -moz-text-size-adjust:100%;
      -ms-text-size-adjust:100%;
          text-size-adjust:100%;
}

/* 双击缩放延迟与 300ms 点击延迟一并消除；不影响布局 */
body{ touch-action:manipulation; }

/* ---------- 2. 视口高度变量 ----------
   100vh 在移动端地址栏场景不准。统一改用 var(--app-height)，
   由 adapter.js 写入真实可视高度（visualViewport 优先）。 */
:root{ --app-height:100vh; }

@supports (height:100dvh){
  :root{ --app-height:100dvh; }
}

/* 需要铺满真实可视区域的容器用这个类，不要直接写 100vh */
.app-fill{ height:var(--app-height); }

/* ---------- 3. 安全区工具类 ----------
   刘海与 Home 条。吸底操作区统一加 .safe-b。 */
.safe-t{ padding-top:env(safe-area-inset-top,0px); }
.safe-b{ padding-bottom:env(safe-area-inset-bottom,0px); }
.safe-boost{ /* 吸底按钮区：在原 padding 基础上叠加安全区 */
  padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));
}

/* ---------- 4. 微信白名单（.env-wechat 由 adapter.js 挂载） ---------- */

/* 禁止长按图片弹出微信的识别/保存菜单（业务图片如需保留长按，
   给该图片加 .allow-callout 即可豁免） */
.env-wechat img{ -webkit-touch-callout:none; }
.env-wechat img.allow-callout{ -webkit-touch-callout:default; }

/* 阻断橡皮筋滚动穿透到微信容器层（下拉露出"网页由 … 提供"） */
.env-wechat body{ overscroll-behavior-y:none; }

/* ---------- 5. 缩放诊断钩子 ----------
   adapter.js 实测字体缩放系数写入 html[data-font-scale]，
   偏离基线时加 .font-off-baseline，便于排查与兜底。 */
html.font-off-baseline{ /* 标记类，无样式；规则需要时在这里加 */ }
