/* =====================================================================
   移动端 / 窄屏响应式（≤860px）
   - 侧边栏改为抽屉（off-canvas），汉堡按钮 + 遮罩开关
   - 顶栏换行、主区全宽、表格横向滚动、触控目标≥38px
   ===================================================================== */
.btn-menu{
  display:none;
  width:38px;height:38px;flex:0 0 auto;
  align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--txt-2);
  cursor:pointer;line-height:1;
}
.btn-menu .bars{font-size:20px;line-height:1}
.sb-mask{display:none}

@media (max-width: 860px){
  html,body{overflow-x:hidden}
  .app{display:block}
  /* 抽屉 */
  .sidebar{
    /* v653：iOS Safari/Chrome 的 100vh 含浏览器工具栏高度，抽屉底部会被吃掉一条。
       先写 100vh 给不支持 dvh 的老浏览器兜底，再用 100dvh 覆盖（dvh = 动态视口，随工具栏收放）。 */
    position:fixed;top:0;left:0;bottom:auto;height:100vh;height:100dvh;
    width:82vw;max-width:300px;flex-basis:auto;
    transform:translateX(-100%);transition:transform .22s ease;
    z-index:200;box-shadow:0 0 40px rgba(16,24,40,.25);
  }
  body.sb-open .sidebar{transform:translateX(0)}
  .sb-mask{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:150;display:none}
  body.sb-open .sb-mask{display:block}
  body.sb-open{overflow:hidden}
  .main-col{width:100%;min-width:0}
  /* 汉堡 */
  .btn-menu{display:inline-flex}
  /* 顶栏 */
  .topbar{flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px}
  .topbar-left{flex:1 1 auto;min-width:0}
  .filter-bar{order:3;flex:1 1 100%;justify-content:flex-start;gap:8px;overflow-x:auto;padding-bottom:2px}
  .topbar-right{order:2;flex-wrap:wrap;gap:6px 8px;margin-left:auto}
  /* 内容 */
  .wrap{padding:14px 12px 32px}
  .mod-tabs{overflow-x:auto;padding:8px 12px;-webkit-overflow-scrolling:touch}
  .mod-tabs .mt,.mod-tabs .mt-title{flex:0 0 auto}
  .grid-2,.grid-upload{grid-template-columns:1fr}
  .sec{margin-bottom:18px}
  /* 触控（v159：主按钮/模块 tab 提到 44px / 40px，与移动优先规范一致） */
  .btn{min-height:44px}
  .mt{min-height:40px}
  .pager button{min-width:34px;height:34px}
  /* 登录页 */
  .login-form{max-width:92vw;padding:30px 20px}
  .login-screen{padding:16px}
}
@media (max-width: 480px){
  .sidebar{width:86vw}
  .wrap{padding:12px 10px 28px}
  .topbar-right .un,.topbar-right .sync-tag{display:none}
  .crumb{font-size:15px}
  .sec-head h2{font-size:15px}
  .kpi-grid{grid-template-columns:1fr 1fr}
  .stat-grid{grid-template-columns:1fr 1fr}
}


/* ================= v624 手机端 · 主播工作台（ah-* 前缀） =================
   容器带 .mobile-only → PC 端 display:none，现有首页完全不受影响。
   主播登录时前端给 body 加 .ah-mode、打开 #ahHome，并隐藏原驾驶舱的 .ah-hide 块。 */
.ah-wrap[hidden]{display:none !important}
@media (max-width: 860px){
  body.ah-mode .ah-hide{display:none !important}
}
.ah-wrap{padding:2px 0 12px}
.ah-head{display:flex;align-items:center;justify-content:space-between;padding:4px 2px 14px}
.ah-hello{font-size:20px;font-weight:600;color:var(--txt);line-height:1.25}
.ah-sub{font-size:12px;color:var(--txt-3);margin-top:4px}
.ah-ava{width:44px;height:44px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#4d9dff,#7f77dd);color:#fff;font-size:17px;font-weight:600}

.ah-hero{border-radius:16px;padding:16px 16px 14px;margin-bottom:12px;
  background:linear-gradient(135deg,#4d9dff 0%,#2f6fd8 100%);color:#fff;
  box-shadow:0 6px 18px rgba(47,111,216,.28)}
.ah-hero-top{display:flex;align-items:center;justify-content:space-between;font-size:12px;opacity:.85;margin-bottom:14px}
.ah-hero-mid{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ah-hero-l{min-width:0}
.ah-lab{font-size:12px;opacity:.8;margin-bottom:4px}
.ah-num{font-size:27px;font-weight:600;letter-spacing:.3px;line-height:1.1}
.ah-cmp{margin-top:8px;font-size:12px;opacity:.9}
.ah-ring{width:84px;height:84px;flex:0 0 auto;position:relative}
.ah-ring-t{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center}
.ah-ring-p{font-size:17px;font-weight:600;line-height:1}
.ah-ring-l{font-size:10px;opacity:.8;margin-top:3px}

.ah-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.ah-st{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 3px;text-align:center}
.ah-st-n{font-size:15px;font-weight:600;color:var(--txt);line-height:1.2}
.ah-st-l{font-size:11px;color:var(--txt-3);margin-top:4px}

.ah-card{background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:13px 13px 11px;margin-bottom:12px}
.ah-ch{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}
.ah-ch h3{font-size:14px;font-weight:600;color:var(--txt);margin:0}
.ah-chsub{font-size:11px;color:var(--txt-3)}
.ah-trend{height:76px}
.ah-entries{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ah-en{display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0;cursor:pointer}
.ah-en-i{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:600;color:#fff}
.ah-en-t{font-size:11px;color:var(--txt-2);text-align:center;line-height:1.25}
.ah-rec{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line-2)}
.ah-rec:first-child{border-top:0}
.ah-rec-l{flex:1;min-width:0}
.ah-rec-t{font-size:13px;color:var(--txt);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ah-rec-s{font-size:11px;color:var(--txt-3);margin-top:3px}
.ah-rec-r{text-align:right;flex:0 0 auto}
.ah-rec-g{font-size:13px;font-weight:600;color:var(--txt)}
.ah-rec-o{font-size:11px;color:var(--txt-3);margin-top:3px}
.ah-empty{padding:16px 0;text-align:center;font-size:12px;color:var(--txt-3)}
/* ===== v658：手机端主播「我的」页（设计稿 v3 五张短卡）=====
   类名全部 ah-me* 前缀（铁律 #12：新组件加前缀，避免和已有 .ah-* 撞名）。 */
@media (max-width:860px){
  /* v706：顶栏用户头像 chip 只在主播手机端隐藏 —— 这条规则原来写在 media 外面，
     PC 上主播登录后整块顶栏（含退出按钮）会跟着消失 */
  body.ah-mode .topbar #userChip{display:none !important}
  /* 主播默认只看到五张短卡，PC 那张从顶滚到底的超长卡收起；点「账号」「安全」才展开 */
  body.ah-mode #page-syssetting .sec.ah-hide-pc{display:none !important}
  /* v660：单块模式 —— 点「账号 / 安全 / 头像」只露对应那块表单，别的块（含退出登录）全藏。
     之前整卡放出来，主播看到的就是「旧版我的」（2026-10-20 线上实锤）。 */
  body.ah-mode #page-syssetting .sec.ah-focus[data-ahfocus="account"] .st-sec:not(#profileForm),
  body.ah-mode #page-syssetting .sec.ah-focus[data-ahfocus="pwd"] .st-sec:not(#pwdForm){display:none !important}
  body.ah-mode #page-syssetting .sec.ah-focus .st-div{display:none !important}
  .ah-back{margin:2px 0 10px;font-size:13.5px;font-weight:600;color:var(--txt-2);
    background:var(--bg-card);border:1px solid var(--line);border-radius:12px;
    padding:11px 13px;cursor:pointer}
  .ah-back:active{opacity:.75}
  .ah-me{padding:2px 0 6px}
  /* 名片卡 */
  .ah-mecard{background:linear-gradient(135deg,#4d9dff,#2f6fd8);border-radius:14px;color:#fff;
    padding:13px 15px;display:flex;align-items:center;gap:12px}
  .ah-meava{width:46px;height:46px;border-radius:50%;flex:none;overflow:hidden;
    background:rgba(255,255,255,.25);border:2px solid rgba(255,255,255,.6);
    display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:600;cursor:pointer}
  .ah-meava img{width:100%;height:100%;object-fit:cover}
  .ah-meinfo{min-width:0}
  .ah-meinfo .b{font-size:17px;font-weight:600;letter-spacing:-.2px}
  .ah-mepill{display:inline-block;font-size:10px;background:rgba(255,255,255,.22);
    border-radius:5px;padding:1px 7px;margin-left:6px;vertical-align:2px;font-weight:400}
  .ah-meinfo .s{font-size:11px;opacity:.92;margin-top:3px}
  /* 短卡 */
  .ah-mec{background:var(--bg-card);border:1px solid var(--line);border-radius:12px;
    padding:11px 13px;margin-top:9px;cursor:pointer}
  .ah-mec:active{opacity:.75}
  .ah-mec .h{font-size:13.5px;font-weight:600;color:var(--txt)}
  .ah-mec .sub{font-size:11px;color:var(--txt-3);margin-top:4px;line-height:1.6}
  /* 外观三态：一整个容器里的分段控件 */
  .ah-mtn{display:flex;gap:6px;margin-top:9px}
  .ah-mtn .c{flex:1;text-align:center;font-size:12.5px;font-weight:600;color:var(--txt-2);
    background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 0}
  .ah-mtn .c.on{background:var(--brand);color:#fff;border-color:transparent;
    box-shadow:0 2px 8px rgba(47,111,216,.25)}
  /* 退出登录：独立一张红字卡 */
  .ah-mquit{text-align:center;color:#a83b2c;font-weight:600;font-size:13.5px;padding:12px 13px}
}

/* ===== v656：手机端主播「榜单」页（设计稿 v3 浅色版） =====
   只在 ≤860px 生效，且只有 ahIsAnchor() 时才渲染这套 DOM；PC 端走原来的 .gwx-* 深色榜。
   类名全部 ah- 前缀（铁律 #12：新组件加前缀，避免撞名）。 */
@media (max-width:860px){
  .ah-bd{padding:2px 0 4px}
  .ah-pgt{display:flex;align-items:center;gap:8px;padding:4px 2px 10px}
  .ah-pgt .bar2{width:3px;height:15px;border-radius:2px;background:var(--brand);flex:none}
  .ah-pgt .tx2{font-size:19px;font-weight:600;color:var(--txt)}
  /* 蓝卡：先给自己定位（第几名 / 多少分 / 离上一名多远） */
  /* ⚠️ 类名 ah-bhero：首页业绩大卡已经叫 .ah-hero（上面 79 行），撞名会让样式互相污染 */
  .ah-bhero{background:linear-gradient(135deg,#4d9dff,#2f6fd8);border-radius:14px;color:#fff;padding:13px 15px}
  .ah-bhero .w{font-size:11px;opacity:.88}
  .ah-bhero .b{font-size:19px;font-weight:600;margin-top:4px;letter-spacing:-.2px}
  .ah-bhero .s{font-size:11.5px;opacity:.92;margin-top:5px;line-height:1.6}
  /* 成长体系卡：山图锁比例（widow 拉伸会变形） */
  .ah-card2{background:var(--bg-card);border:1px solid var(--line);border-radius:12px;padding:11px 11px 9px;margin-top:10px}
  .ah-card2 .h{font-size:13px;font-weight:600;color:var(--txt);margin-bottom:8px}
  .ah-mt{cursor:pointer;position:relative;border-radius:10px;overflow:hidden}
  .ah-mt .ah-mt-svg{display:block;width:100%;height:auto}
  .ah-mt .hint{display:block;text-align:center;font-size:11px;color:var(--txt-2);margin-top:7px}
  .ah-mt:active{opacity:.7}
  /* 切榜胶囊：一整个容器（设计稿要的），不是三个独立按钮 */
  .ah-seg{display:flex;background:#eef1f7;border-radius:12px;padding:3px;margin:11px 0 2px}
  .ah-seg a{flex:1;text-align:center;font-size:12.5px;font-weight:600;color:var(--txt-2);
    padding:8px 0;border-radius:9px;cursor:pointer}
  .ah-seg a.on{background:var(--brand);color:#fff;box-shadow:0 2px 8px rgba(47,111,216,.28)}
  /* 榜单卡 */
  .ah-rk{background:var(--bg-card);border:1px solid var(--line);border-radius:12px;margin-top:9px;padding:8px 11px 4px}
  .ah-rk .hd{display:flex;justify-content:space-between;align-items:center;
    font-size:11.5px;color:var(--txt-3);padding:1px 0 6px}
  .ah-bit{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line-2)}
  .ah-bit:last-child{border-bottom:0}
  .ah-bit .no{width:16px;text-align:center;font-size:12px;font-weight:600;color:var(--txt-2);flex:none}
  .ah-bit .av{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:11px;font-weight:600;color:#fff;flex:none}
  .ah-bit .nm{flex:none;font-size:12.5px;color:var(--txt);max-width:88px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ah-bit .nm u{text-decoration:none;margin-left:4px;font-size:10px;color:#fff;background:var(--brand);
    border-radius:5px;padding:1px 5px;vertical-align:1px}
  .ah-bit .tr{flex:1;height:5px;border-radius:3px;background:#eef1f7;overflow:hidden;min-width:24px}
  .ah-bit .tr i{display:block;height:100%;border-radius:3px}
  .ah-bit .tr i.b1{background:linear-gradient(90deg,#4d9dff,#7b5cff)}
  .ah-bit .tr i.b2{background:linear-gradient(90deg,#e05c5c,#f5455c)}
  .ah-bit .tr i.b3{background:linear-gradient(90deg,#e0a63a,#ffb13d)}
  .ah-bit .sc{font-size:12.5px;font-weight:600;color:var(--txt);flex:none;min-width:38px;text-align:right}
  .ah-bit.me{background:#f0f7ff;border-radius:9px;margin:0 -6px;padding:7px 6px}
}

/* ===== v664：手机端排班（设计稿 v3 定稿 519-548）—— 七日条 + 逐天占位列表 =====
   ① 七日条格子数由 JS 的 AH_SCHED_WK 决定、列表行数由 AH_SCHED_DAYS 决定（用 flex，不写死列数）
   ② 尺寸：设计稿 mockup 画在 296px 手机上、真机基准 390px → 设计稿 px ÷ 0.759（≈×1.317）取整
   ③ 颜色照抄设计稿 .wk / .lst / .morelink（夜班橙 #f59e0b、白班绿 #12a45f、休灰 #aeaeb2） */
.ah-wk{display:flex;gap:7px;margin-top:12px}
.ah-wd{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:9px 0 8px;border-radius:12px;background:var(--card);border:1px solid var(--line)}
.ah-wd i{font-style:normal;font-size:10px;color:var(--txt-3)}
.ah-wd b{font-size:14px;font-weight:600;color:var(--txt);line-height:1.2}
/* 格子里的班种：休 / 白班 / 夜班（设计稿 .wk .d .t #12a45f、.t.off #c2c9d6） */
.ah-wd em{font-style:normal;font-size:10px;margin-top:1px;color:#12a45f}
.ah-wd em.off{color:#c2c9d6}
/* 今天那格：蓝框 + 淡蓝底（设计稿 .wk .d.td） */
.ah-wd.td{border-color:var(--brand);background:#f0f7ff}
.ah-wd.td b{color:var(--brand)}
/* 班次列表：逐天占位，休息那天也占一行（设计稿 .lst / .it / .dt / .bd / .s2 / .sh / .by / .sq） */
.ah-sdl{margin-top:2px}
.ah-sdl .it{display:flex;align-items:center;gap:12px;padding:11px 2px;border-top:1px solid var(--line-2)}
.ah-sdl .it:first-child{border-top:0}
.ah-sdl .dt{width:44px;text-align:center;flex:none}
.ah-sdl .dt .d1{font-size:15px;font-weight:600;color:var(--txt);line-height:1.15}
.ah-sdl .dt .d2{font-size:10px;color:var(--txt-3)}
.ah-sdl .bd{flex:1;min-width:0;font-size:12.5px;color:var(--txt);line-height:1.45}
.ah-sdl .bd .s2{font-size:10.5px;color:var(--txt-3);margin-top:2px}
.ah-sdl .tg{font-size:11px;font-weight:600;border-radius:7px;padding:3px 9px;flex:none}
.ah-sdl .tg.sh{color:#f59e0b;background:#fdf3e3}
.ah-sdl .tg.by{color:#12a45f;background:#eaf7ef}
.ah-sdl .tg.sq{color:#aeaeb2;background:#f1f4fa}
/* 「更多班次 ›」：点了就地展开，不跳页（设计稿 .morelink #4d9dff 600） */
.ah-sdmore{display:block;width:100%;margin-top:9px;padding:9px 0 0;border:0;border-top:1px solid var(--line-2);
  background:none;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--brand);
  text-align:center;cursor:pointer}
.ah-sdmore:active{opacity:.6}
/* 页尾提示：老板拍板不写人名（设计稿里的「（王洁）」去掉） */
.ah-sdft{margin-top:12px;text-align:center;font-size:12px;color:var(--txt-3)}


/* ===== v656：最近直播「查看全部」（多于 3 场且有权限才出现） ===== */
.ah-more{margin-top:2px;padding-top:4px;border-top:1px solid var(--line-2);text-align:center}
.ah-more[hidden]{display:none}
.ah-more-btn{width:100%;padding:8px 0;border:0;background:none;font-family:inherit;
  font-size:12px;font-weight:600;color:var(--brand);cursor:pointer}
.ah-more-btn:active{opacity:.6}

/* ===== v624b：工作台头部右侧（待办铃铛 + 真实头像） ===== */
.ah-right{display:flex;align-items:center;gap:10px}
.ah-bell-slot{display:inline-flex}
.ah-bell-slot .tdo-bell{width:36px;height:36px;background:rgba(255,255,255,.6);border:1px solid var(--line)}
.ah-bell-slot .tdo-bell svg{width:19px;height:19px}
.ah-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
/* GMV 趋势逐日标注需要更高容器（原 76px 会把金额/日期标裁掉） */
.ah-trend{height:auto}

/* ===== v624b：主播数据页（gw-dark）手机端出血修正 =====
   桌面端 margin:-20px -22px 是按 PC .wrap 内边距（20/22px）算的全出血；
   手机端 .wrap 内边距是 10px，照搬会左出血 12px、右侧留白 32px（页面填不满手机屏）。 */
@media (max-width:860px){
  #page-growth.gw-dark,#page-anchorview.gw-dark{margin:0 -10px -40px;width:calc(100% + 20px);padding:14px 14px 26px}
}

/* ===== v624b：主播手机端整个顶栏不要了（帅哥 2026-10-19 拍板） =====
   汉堡菜单 + 页面标题整条隐藏，导航全走底栏四 Tab；待办铃铛已在工作台头部。
   ⚠️ 必须限定 ≤860px：ah-mode 在 PC 主播身上也会加，不限定会把 PC 顶栏藏掉。 */
@media (max-width:860px){
  body.ah-mode .topbar{display:none !important}
}

/* ===== v624c：手机端主播「排班」Tab —— 只看自己的排班卡（日期/直播间/时段/时长） =====
   PC 的周视图 / 排班表原样保留；≤860px 且 ah-mode 时隐藏 PC 块、只显示 #ahSched。 */
.ah-sched-wrap{overflow-x:auto}
.ah-sched-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.ah-sched-tbl th{font-size:11px;font-weight:500;color:var(--txt-3);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.ah-sched-tbl td{padding:9px 8px;border-bottom:1px solid var(--line-2);color:var(--txt);white-space:nowrap}
.ah-sched-tbl tr:last-child td{border-bottom:0}
/* ===== v640：排班明细识别「今天」=====
   今天的班整行淡蓝底 + 左侧色条 + 日期后面挂「今天」角标；副标题也跟着提示今天有几场。
   用 rgba 走主题色，深色皮肤下不会变成白底黑字。 */
.ah-sched-tbl tr.ah-sched-today td{background:rgba(77,157,255,.10);color:var(--txt);font-weight:600}
.ah-sched-tbl tr.ah-sched-today td:first-child{
  box-shadow:inset 3px 0 0 0 var(--brand);border-radius:0 4px 4px 0}
.ah-sched-badge{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:8px;
  font-size:10px;font-weight:600;color:#fff;background:var(--brand);vertical-align:1px}
.ah-chsub-hl{color:var(--brand) !important;font-weight:600}

/* ===== v624c：手机端主播「数据」页 —— 隐藏 PC 专属控件（全部直播间/全部段位/梯队阈值/段位体系）
   与「来自主播-上传数据」导入提示条、「名字校正」维护提示（都是 PC 管理动作的指引）；月份下拉保留。 ===== */
@media (max-width:860px){
  body.ah-mode #gwRoom,
  body.ah-mode #gwTier,
  body.ah-mode #btnGwTierCfg,
  body.ah-mode #btnGwSys,
  body.ah-mode #gwUpNote,
  body.ah-mode #gwWarn{display:none !important}
  body.ah-mode #page-liveanchor > :not(#ahSched){display:none !important}
  /* v664：榜单页 PC 标题栏的 h2「主播榜单」在手机上藏掉 ——
     .ah-bd 自己有 .ah-pgt/.tx2 标题（app.js ahBoardHtml），两处都留就是「主播榜单」上下叠两次。
     排班页/记录页同理（上面两行走的是「整页只留 ah-* 卡」的写法），本页因为 #gwMonth 挂在 .sec-head 里不能整条藏，
     所以只藏 h2、留月份胶囊。 */
  body.ah-mode #page-growth .sec-head h2{display:none !important}
  /* v664：整页退深色（帅哥定稿「深色整页退场，统一成浅色白卡」）——
     #page-growth / #page-anchorview 带着 v565 的 .gw-dark 深色皮肤，手机端 ah-mode 下把令牌覆盖回浅色。
     .ah-bd 那一整套（v656 设计稿 v3）本来就是按浅色写的（胶囊底 #eef1f7、我那行底 #f0f7ff、正文 var(--txt) 深字），
     深色整页只是没退干净。
     ⚠️ 只动令牌 + 干掉深色渐变底；margin/width/padding 一律不碰（上面 269 行手机端出血修正要保留）。 */
  body.ah-mode #page-growth.gw-dark,
  body.ah-mode #page-anchorview.gw-dark{
    --bg:#f5f5f7; --card:#ffffff; --bg-card:#ffffff;
    --line:#e5e5ea; --line-2:#f2f2f7;
    --txt:#1d1d1f; --txt-2:#86868b; --txt-3:#aeaeb2;
    --brand:#2f6fd8;
    background:var(--bg);border-radius:0;box-shadow:none;
  }
  /* v664：.gw-dark 里 .sec-head h2 是硬编码 #fff（style.css），整页转浅后会白字白底看不见；
     主播总览没有 ah-* 替身标题，只能改色（榜单那条 h2 上面已直接藏掉）。 */
  body.ah-mode #page-anchorview .sec-head h2{color:var(--txt)}
  /* v656：月份下拉保留（榜单要能翻月），但在手机上从 mini-sel 改成胶囊 ——
     原生 mini-sel 在深色榜头上又小又贴边，手指点不准。
     v664：整页转浅后胶囊要跟着从「半透明白底 + 浅色字」换成「淡蓝底 + 品牌蓝字」，否则白字在浅底上会糊掉。 */
  body.ah-mode #gwMonth{border:0;background:#f0f7ff;color:#2f6fd8;
    border-radius:12px;padding:6px 14px;font-size:12px;font-weight:600;
    -webkit-appearance:none;appearance:none;text-align:center;text-align-last:center}
  /* v656：「我的」页副标题「账号 · 安全 · 外观，都在这一张卡里」在手机上占一整行，主播也不需要 */
  body.ah-mode #page-syssetting .h2-tag{display:none !important}
}

/* ===== v627：手机端主播「上传数据」直填卡（#ahUpCard） =====
   PC 端 .mobile-only 天然不渲染；≤860px 且 ah-mode 时整页只显示本卡（PC 的导入/明细表都藏掉）。 */
@media (max-width:860px){
  body.ah-mode #page-anchorup > :not(#ahUpCard){display:none !important}
}
/* v664：记录页 hero 蓝卡 —— 复用榜单那张 .ah-bhero（172 行），这里只补它和下面表单卡之间的间距
   （榜单那边是靠后半张 .ah-card2 自己的 margin-top:10px 撑开的，本页 .ah-card 没有 margin-top） */
#ahUpCard .ah-bhero{margin-bottom:10px}
.ah-up-me{font-size:12.5px;color:var(--txt-2);margin-bottom:10px}
.ah-up-me b{color:var(--txt);font-size:14px}
.ah-up-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.ah-up-f{display:flex;flex-direction:column;gap:4px;min-width:0}
.ah-up-f span{font-size:11px;color:var(--txt-3)}
.ah-up-in{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:9px;
  /* v653：原 font-size:14px 已删 —— 全局兜底 style.css「input:not(...),select,textarea{font-size:16px}」
     对 input 生效（特异性 0,4,1 > 0,1,0），但 select 选择器只有 0,0,1，会被这条类规则压过 → 实测 14px，
     iOS 点下拉会放大整页。删掉后 select 回落到 16px，与 input 对齐。 */
  padding:9px 10px;background:var(--bg);color:var(--txt);-webkit-appearance:none;appearance:none}
.ah-up-full{grid-column:1/-1}
/* v664：表单三组小标题「这一场 / 几点到几点 / 卖了多少」（帅哥 2026-10-19 定稿）
   —— 占满两列把上下两组隔开；字号和字段 label（.ah-up-f span）对齐，靠微疏排区分层级，
      不给边框/底色，否则在两列网格里会被误读成一个字段。 */
/* v656：保存按钮吸底 —— 表单 9 个字段，主播填到最底下还得往上滚回去找按钮。
   sticky 而不是 fixed：fixed 要自己算安全区和遮挡，sticky 在内容不够长时自动回到正常流，不会凭空占位。 */
.ah-up-save{grid-column:1/-1;position:sticky;bottom:0;z-index:3;
  border:0;border-radius:10px;padding:12px;font-size:15px;font-weight:600;
  color:#fff;background:linear-gradient(135deg,#4d9dff,#2f6fd8);cursor:pointer;margin-top:2px;
  box-shadow:0 -8px 16px rgba(238,241,248,.95)}
.ah-up-save:disabled{opacity:.6}

/* ===== v640：手机端「记录数据」卡全部文字居中（帅哥 2026-10-19 要求） =====
   只作用于 #ahUpCard 内部，手机端主播工作台其余卡片（首页战报 / 榜单 / 排班）排版不变。 */
/* v664：页头已换成和榜单同一套 .ah-pgt/.bar2/.tx2（本文件 167-169 行），自建的那套页头类删除 */
#ahUpCard .ah-up-me,
#ahUpCard .ah-up-f span,
#ahUpCard .ah-up-save,
#ahUpCard .ah-up-tip{text-align:center}
/* v656：保存按钮下方的说明 —— 放在 sticky 按钮之后，跟着一起吸底才不会被内容盖住 */
.ah-up-tip{grid-column:1/-1;position:sticky;bottom:-1px;z-index:3;
  padding:6px 0 2px;font-size:11px;color:var(--txt-3);background:var(--bg-card)}
#ahUpCard .ah-up-in{text-align:center;text-align-last:center}
/* select 在 iOS/安卓上 text-align:center 不够，得靠 padding 把文字推到中间（appearance:none 已去掉原生箭头） */
#ahUpCard select.ah-up-in{padding:9px 10px;text-align:center;text-align-last:center}
#ahUpCard .ah-up-grid{justify-items:stretch}
/* v683：必填项没填时标红（帅哥 2026-10-21）—— 只在点保存时标，填了就自动去掉 */
.ah-up-f.ah-up-miss > span{color:#d92d20}
.ah-up-f.ah-up-miss .ah-up-in{border-color:#e74c3c;background:#fff6f5}

/* ===== v703：记录页「我的最近场次（本月）」只读列表（form 下方，白卡同款） ===== */
#ahUpRecent{margin-top:10px}
.ah-upr{display:flex;flex-direction:column}
.ah-upr-it{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:9px 0;border-top:1px solid var(--line);font-size:12px}
.ah-upr-it:first-child{border-top:0}
.ah-upr-it b{font-weight:600;color:var(--txt);flex:0 0 auto}
.ah-upr-it span{color:var(--txt-2);flex:1 1 auto;text-align:center;font-variant-numeric:tabular-nums}
.ah-upr-it em{font-style:normal;color:var(--txt);flex:0 0 auto;font-variant-numeric:tabular-nums}
/* v706：主播自己删掉记错的场次（服务端只允许删自己今天/昨天的行） */
.ah-upr-del{flex:0 0 auto;border:0;background:none;padding:2px 0 2px 6px;color:#d33a2c;
  font-family:inherit;font-size:12px;font-weight:600;cursor:pointer}
.ah-upr-del:active{opacity:.6}
/* v706：没有上传权限 —— 直填区整块置灰 + 顶部说明，不再等点保存才报错 */
.ah-up-noperm{margin:0 0 10px;padding:8px 10px;border-radius:9px;background:#fff6f5;
  border:1px solid #f3c9c4;color:#a83b2c;font-size:12px;font-weight:600;text-align:center}
.ah-up-lock{pointer-events:none;opacity:.55}

/* ===== v691：单块模式（账号 / 安全）风格统一（帅哥 2026-10-22：界面有点乱、风格不对） =====
   现状：点「账号 / 安全」放出来的是 PC 的设置表单原样 —— 序号圆圈（第 1 步/第 2 步）、
   92+1fr+140 三列网格行在 390px 里挤成一团、输入框 max-width:320 断头、
   「保存 / 修改密码」是灰色小方按钮还孤零零挂在行尾，和「我的」页蓝 hero / 白卡 /
   渐变蓝主按钮完全是两个风格。
   只调呈现 —— DOM 还是 PC 那套表单（铁律 #10：不另起一套），PC 端不受影响：
   所有规则都限定 body.ah-mode + ≤860px（主播 + 小屏才会命中）。 */
@media (max-width:860px){
  /* 0) 外层 PC 卡（.st-card）透明化 —— 不透明的话它自己的 padding 会在内层白卡下面
     露出一截白边（截图实测），双层卡还叠影；透明后内层白卡就是唯一的卡 */
  body.ah-mode #page-syssetting .sec .st-card{
    background:transparent;border:0;box-shadow:none;padding:0;margin-bottom:0}

  /* 1) 表单卡 = 手机白卡（与 .ah-card 同款：白底 + 描边 + 14px 圆角，去掉 PC 的毛玻璃阴影） */
  body.ah-mode #page-syssetting .sec .st-sec{
    background:var(--card);border:1px solid var(--line);border-radius:14px;
    padding:13px 13px 11px;margin:0 0 12px;box-shadow:none}

  /* 2) 序号圆圈是 PC「第 1 步 / 第 2 步」的痕迹 —— 单块模式一屏只有一块，编号没意义 */
  body.ah-mode #page-syssetting .sec .st-no{display:none}

  /* 3) 卡头层级对齐 .ah-ch：14px 标题 + 11px 灰说明 */
  body.ah-mode #page-syssetting .sec .st-h{gap:8px;margin-bottom:10px}
  body.ah-mode #page-syssetting .sec .st-t{font-size:14px;font-weight:600}
  body.ah-mode #page-syssetting .sec .st-s{font-size:11px}

  /* 4) 行布局：390px 放不下 92+1fr+140 三列 —— 改两列（label + value）；
     按钮格（.st-n）跨整行，空的不占高度，有按钮的整宽铺下去 */
  body.ah-mode #page-syssetting .sec .st-row{grid-template-columns:84px minmax(0,1fr);gap:4px 10px;padding:9px 0}
  body.ah-mode #page-syssetting .sec .st-n{grid-column:1/-1;padding:4px 0 0}
  body.ah-mode #page-syssetting .sec .st-n:empty{display:none}

  /* 5) 输入框：通栏白底描边圆角；字号 16px —— <16px iOS 聚焦时会自动放大页面 */
  body.ah-mode #page-syssetting .sec .st-v input{
    max-width:none;width:100%;background:#fff;border:1px solid var(--line);
    border-radius:10px;padding:11px 12px;font-size:16px}

  /* 6) 主按钮（保存 / 修改密码）：整宽渐变蓝，同记录页 .ah-up-save 的口径 */
  body.ah-mode #page-syssetting .sec .st-n .btn-primary{
    width:100%;display:block;border:0;border-radius:10px;padding:12px;
    font-size:15px;font-weight:600;color:#fff;
    background:linear-gradient(135deg,#4d9dff,#2f6fd8)}
  body.ah-mode #page-syssetting .sec .st-n .btn-primary:active{opacity:.85}

  /* 7) 头像行的「上传头像 / 移除」：整行两个等宽按钮（.st-id 是 flex + wrap，
     PC 的 margin-left:auto 在 390px 里会把按钮挤成左边两个小块） */
  body.ah-mode #page-syssetting .sec .st-id-act{display:flex;gap:8px;width:100%;margin-left:0}
  body.ah-mode #page-syssetting .sec .st-id-act .btn{
    flex:1;background:var(--card);border:1px solid var(--line);
    border-radius:10px;padding:10px 0;font-size:13.5px;color:var(--txt)}
  body.ah-mode #page-syssetting .sec .st-id-act .btn:active{opacity:.8}

  /* 8) 头像行本体：手机端收窄间距，头像 52px；角色徽章换成 hero 同款蓝（原来是黑底白字，突兀） */
  body.ah-mode #page-syssetting .sec .st-id{gap:10px;padding:2px 0 10px}
  body.ah-mode #page-syssetting .sec .st-id .sys-avatar{width:52px;height:52px;font-size:22px}
  body.ah-mode #page-syssetting .sec .st-id .pill{background:var(--brand-a1);color:var(--brand)}
  body.ah-mode #page-syssetting .sec .st-id-name{font-size:16px}

  /* 9) 只读值（姓名/性别/登录账号/创建时间/最后登录）：颜色压灰一档，和可编辑的输入框拉开层级 */
  body.ah-mode #page-syssetting .sec .st-v.st-ro{font-weight:500;color:var(--txt-2)}

  /* 10) 提示条（保存结果）贴底：和手机端 toast 的阅读节奏一致 */
  body.ah-mode #page-syssetting .sec .st-foot{padding-top:2px}
}
