/* =========================================================
   移动端体验统一修复
   配套：
   - 各页面 viewport：maximum-scale=1 + user-scalable=no
   - js/config.js：visualViewport 计算键盘高度，
     在 <html> 上写 kb-open 类与 --kb-h 变量
   说明：
   1) 阻止双击/误触缩放（允许正常滚动与捏合）；
   2) iOS 输入控件 < 16px 时聚焦会自动放大，统一 16px；
   3) 键盘弹出时把全屏壳压到可视区，底部输入栏浮在键盘上方。
   ========================================================= */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* 阻止双击缩放手势 */
* { touch-action: manipulation; }

/* 防 iOS Safari 聚焦输入框时自动放大页面 */
input,
select,
textarea {
  font-size: 16px !important;
}

/* 软键盘避让：仅对“整页高度固定、内部滚动”的全屏壳生效 */
html.kb-open .ct-app,
html.kb-open .fa-app,
html.kb-open .pp-app,
html.kb-open .ms-app,
html.kb-open .app-shell {
  height: calc(100dvh - var(--kb-h, 0px)) !important;
  min-height: 0;
}

/* =========================================================
   固定整页位置：页面整体不可滑动/回弹/被手势带跑，
   滚动只允许发生在内部列表、内容容器中。
   用法：在页面 <body> 上加 lock-page 类
   （index 登录页除外，它本身依赖整页滚动）。
   ========================================================= */
body.lock-page {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  margin: 0;
  overflow: hidden;
  overscroll-behavior: none;
}

/* 内部滚动容器触顶/触底时，不再把滚动“传递”给整页 */
body.lock-page .cal-main,
body.lock-page .um-list,
body.lock-page .pp-body,
body.lock-page .ms-body,
body.lock-page .fa-list-body,
body.lock-page .ct-list,
body.lock-page .sheet-body,
body.lock-page .notice-modal-body,
body.lock-page .fa-share-pick,
body.lock-page .app-grid.is-many {
  overscroll-behavior: contain;
}

/* =========================================================
   首页紧凑布局：收窄轮播栏高度、压缩欢迎栏留白，
   把纵向空间让给下方的应用网格（矮屏再加压），
   保证应用在手机同屏内尽量完整展示。
   ========================================================= */
.welcome-bar {
  padding-top: calc(14px + env(safe-area-inset-top, 0px));
  padding-bottom: 10px;
}

.carousel {
  height: 150px;
  margin: 2px 16px 10px;
}

/* 矮屏 / 老机型：进一步压缩，避免应用区需要内部滚动 */
@media (max-height: 700px) {
  .welcome-bar {
    padding-top: calc(10px + env(safe-area-inset-top, 0px));
    padding-bottom: 8px;
  }
  .welcome-text h1 {
    font-size: 21px;
  }
  .carousel {
    height: 118px;
    margin: 2px 14px 8px;
  }
}
