/*
 * V2 移动端基础层
 * 路径：public/assets/v2/mobile/css/base.css
 * 生效条件（与 <link media> 一致，所有 mobile/css/*.css 共用）：
 *   (max-width: 47.99rem), (max-width: 79.99rem) and (hover: none) and (pointer: coarse)
 *   即：窄于 768 的视口；或窄于 1280 且主输入为触屏（平板横竖屏）。
 * 媒体查询中的 rem 恒按浏览器默认 16px 计算，不受 html 字号影响。
 *
 * 设计稿单位：680 宽 1 倍稿，设计稿 1px = var(--mu)。
 *   一键切换写法只改下面一行：
 *   - 等比缩放、680 以上封顶（当前）：min(calc(100vw / 680), 1px)
 *   - 等比缩放带下限：clamp(0.75px, calc(100vw / 680), 1px)
 *   - 固定 px：1px
 *   - 纯 vw：calc(100vw / 680)
 *   - 跟随系统字号：0.0625rem（需同时去掉 html.v2-m 的根字号覆盖）
 *
 * 统一规则（当前）：严格等比，所有尺寸 = 设计稿 × 屏宽 / 680，与 PC rem 方案同一原理。
 *   唯一例外：输入框字号不小于 16px（iOS 字号小于 16px 时聚焦会自动放大页面）。
 *   下限变量与 --mu-ui 保留为接口，默认均不生效（下限 0px、--mu-ui 等于 --mu），写法不变：
 *   font-size: max(var(--m-fs-body), calc(22 * var(--mu)))；行高写设计稿比例 calc(26 / 22)。
 *   临时对比旧的「控件 1:1 + 分级下限」方案：在浏览器开发者工具里给 <html> 加类 v2-m-floor。
 */
@media (max-width: 47.99rem), (max-width: 79.99rem) and (hover: none) and (pointer: coarse) {
    :root {
        --mu: min(calc(100vw / 680), 1px);
        /* 无单位缩放系数：整数 px 图标整体缩放，避免亚像素线粗细不一（汉堡等） */
        --m-scale: min(100vw / 680px, 1);
        /* 控件单位（头部、页脚、按钮、输入框）：统一等比，与 --mu 相同；改为 1px 则控件按设计稿 1:1 */
        --mu-ui: var(--mu);
        --m-gutter: calc(20 * var(--mu));
        --m-topbar-h: max(var(--m-topbar-min-h), calc(40 * var(--mu-ui)));
        /* 头部条：设计稿 60；验收加 10 → 70 */
        --m-header-h: calc(70 * var(--mu-ui));
        /* iOS 输入框字号小于 16px 时聚焦会放大页面；用法 max(var(--m-input-min), calc(N * var(--mu))) */
        --m-input-min: 16px;
        /* 触摸热区下限 */
        --m-touch-min: 44px;

        /* 可读性下限：副标题（设计稿 24/26）、正文（20/22）、按钮与导航（16/18）、小字（12/14）；严格等比下为 0 */
        --m-fs-sub: 0px;
        --m-fs-body: 0px;
        --m-fs-ui: 0px;
        --m-fs-small: 0px;
        /* 容器高度下限：按钮、输入框、顶部提示条；严格等比下为 0 */
        --m-btn-min-h: 0px;
        --m-field-min-h: 0px;
        --m-topbar-min-h: 0px;
    }

    /* 旧方案对比开关：控件 1:1 + 分级下限 */
    html.v2-m-floor {
        --mu-ui: 1px;
        --m-fs-sub: 15px;
        --m-fs-body: 14px;
        --m-fs-ui: 13px;
        --m-fs-small: 11px;
        --m-btn-min-h: 32px;
        --m-field-min-h: 36px;
        --m-topbar-min-h: 32px;
    }

    /* 已适配页面：根字号与 --mu 同比，PC 样式中未覆盖的 rem 值随之等比；覆盖 PC 根字号脚本写入的内联值 */
    html.v2-m {
        font-size: calc(16 * var(--mu)) !important;
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }
    html.v2-m body {
        overflow-x: clip;
    }

    /* PC 专属结构在移动端隐藏；移动端专属结构 .v2-m-only 由各模块样式按需显示 */
    .v2-pc-only {
        display: none !important;
    }

    /* 打开菜单时锁定页面滚动 */
    html.v2-m-lock,
    html.v2-m-lock body {
        overflow: hidden !important;
    }
}

@media (max-width: 47.99rem) and (prefers-reduced-motion: reduce), (max-width: 79.99rem) and (hover: none) and (pointer: coarse) and (prefers-reduced-motion: reduce) {
    .v2-m-header *,
    .v2-m-header,
    html.v2-m .v2-home-content * {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
