/* AI集成客服系统 · 手机端统一规范补丁 v3（≤760px）
   左栏(账号栏)一律覆盖式抽屉，汉堡在左上；主区始终占满；层级 汉堡>抽屉>遮罩。 */
.kefu-burger,.kefu-mob-mask{display:none}
@media (max-width:760px){
  :root{--sidebar-width:0px !important}
  .workbench-shell{--sidebar-collapsed-width:0px !important}
  /* R1 左栏固定 + 默认滑出 */
  .store-sidebar.my-platform{
    position:fixed !important;left:0 !important;top:0 !important;bottom:0 !important;
    width:min(300px,84vw) !important;height:auto !important;
    padding-top:48px !important;
    z-index:999991 !important;transform:translateX(-108%) !important;
    transition:transform .25s ease !important;overflow-y:auto !important;
    box-shadow:6px 0 24px rgba(15,23,42,.2) !important;background:#fff !important;
  }
  body.kefu-nav-open .store-sidebar.my-platform,
  body.kefu-nav-open .workbench-shell.sidebar-collapsed .store-sidebar.my-platform{
    transform:translateX(0) !important;opacity:1 !important;pointer-events:auto !important;
  }
  /* R2 主区占满 */
  .workbench-body,.workbench-content,.store-home,.home-stage{width:100% !important;max-width:100% !important;margin-left:0 !important}
  /* 工程自带的"拉手"在手机端取消，统一用汉堡 */
  .sidebar-collapse-btn{display:none !important}
  /* R3 遮罩 */
  .kefu-mob-mask{
    display:none;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:999990;
    -webkit-tap-highlight-color:transparent;
  }
  .kefu-mob-mask.show{display:block}
  /* R5 汉堡 */
  .kefu-burger{
    display:inline-flex;align-items:center;justify-content:center;
    position:fixed;top:8px;left:8px;width:38px;height:38px;padding:0;cursor:pointer;
    z-index:999992;background:#fff;border:1px solid #dbe7f5;border-radius:10px;color:#1c3f7c;
    box-shadow:0 2px 10px rgba(30,80,160,.16);
    -webkit-tap-highlight-color:transparent;
  }
  .kefu-burger svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
  .kefu-burger:active{background:#f0f6ff}
  .workbench-titlebar{padding-left:54px !important}
  .home-empty-glow{display:none}
  .workbench-footer{max-width:100vw;overflow-x:auto}
}

/* ===== [MOBILEFIX-20260925] 客服「配置中心」顶栏手机端收口 =====
   症状：390px 视口下，顶栏 6 项菜单（AI 知识库 / 工作流画布 / 卡密核销 /
         自动发货 / 订单监控 / 激活码管理）跑到屏幕左侧外（left:-678），
         被裁掉 → 看不见也点不到（Playwright 点击超时可复现）。
   根因：.shop-manage .topbar 是 grid，列定义为
         minmax(220px,auto) | minmax(0,1fr) | auto
         第 3 列 auto 的下限 = min-content；.top-actions 内 flex nowrap
         装下 6 菜单 + 模型选择(197px) + 官网按钮(107px) 共 1050px，
         列被撑破后 justify-self:end 右对齐 → 整块向左溢出 678px。
   修法：窄屏顶栏改 flex 换行，菜单按钮自动折行；顶栏左侧留 54px 给汉堡。 */
@media (max-width:768px){
  .shop-manage .topbar{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:8px !important;
    padding:8px 12px 8px 54px !important;
    min-height:0 !important;
    max-width:100vw !important;
  }
  .shop-manage .topbar > *{ min-width:0 !important; max-width:100% !important; }
  .shop-manage .topbar-title{
    justify-items:flex-start !important;
    text-align:left !important;
    pointer-events:none !important;
  }
  .shop-manage .top-actions{
    grid-column:auto !important;
    justify-self:stretch !important;
    display:flex !important;
    flex-wrap:wrap !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    justify-content:flex-start !important;
    gap:6px !important;
    padding-right:0 !important;
  }
  .yk-top-extra{
    display:flex !important;
    flex-wrap:wrap !important;
    width:auto !important;
    max-width:100% !important;
    min-width:0 !important;
    gap:6px !important;
  }
  .yk-top-extra [data-yk-extra],
  .shop-manage .top-actions button,
  .shop-manage .top-actions a{
    min-width:0 !important;
    max-width:100% !important;
    flex:0 1 auto !important;
  }
}

/* ===== [MOBILEFIX2-20260925] 客服内页手机端收口（第二批） =====
   1) 激活码管理：表格 672px 装在 324px 容器里，容器 overflow:hidden
      → 右侧「操作」列被裁掉且不能横滑。改容器可横滚（JS 兜底见 mobile-patch.js）。
   2) 工作流画布：内联 grid-template-columns:1fr 300px，在 324px 容器里
      第一列被压到 48px → 画布变成「拉伸竖条」。窄屏改单列纵向堆叠。
   3) 演示统计行 yk-dash-row2 固定 448px 超出 390px 视口 → 限宽 100%。 */
@media (max-width:768px){
  div:has(#yk-lic-body){ overflow-x:auto !important; -webkit-overflow-scrolling:touch; }
  .yk-extra-layer [style*="1fr 300px"]{ grid-template-columns:minmax(0,1fr) !important; }
  .yk-extra-layer [style*="1fr 300px"] > *{ min-width:0 !important; max-width:100% !important; }
  .yk-dash-row2,
  [data-yk-demo-stats]{ max-width:100% !important; }
  .yk-dash-row2 > *,
  [data-yk-demo-stats] > *{ min-width:0 !important; max-width:100% !important; }
}

/* ===== [MOBILEFIX3-20260925] 数据看板统计卡收口 =====
   内联 grid-template-columns:1fr 1fr 的统计卡网格在 390px 视口下，
   右列卡片（AI自动回复/客户满意度/在线店铺/趋势旁卡片）被容器裁掉约半列。
   窄屏统一改单列；auto-fill minmax(320px) 下限也收紧。 */
@media (max-width:768px){
  .yk-extra-layer [style*="1fr 1fr"]{ grid-template-columns:minmax(0,1fr) !important; }
  .yk-extra-layer [style*="minmax(320px"]{ grid-template-columns:repeat(auto-fill,minmax(150px,1fr)) !important; }
  .yk-extra-layer [style*="grid-template-columns"] > *{ min-width:0 !important; max-width:100% !important; }
}

/* ===== [MOBILEFIX4-20260925] 数据看板统计卡 2×2 收口 =====
   根因：统计卡内联 flex:1;min-width:150/190px，两卡 + gap14 = 394px min-content，
   把 324px 容器撑到 448px → 右列卡片被裁掉约一半。
   窄屏改成两列网格（50% - gap），高度同时收紧。 */
@media (max-width:768px){
  .shop-manage [style*="min-width:150px"],
  .shop-manage [style*="min-width: 150px"],
  .shop-manage [style*="min-width:190px"],
  .shop-manage [style*="min-width: 190px"]{
    min-width:0 !important;
    flex:1 1 calc(50% - 6px) !important;
    width:calc(50% - 6px) !important;
    max-width:calc(50% - 6px) !important;
    padding:10px 12px !important;
  }
  .shop-manage [style*="flex-wrap:wrap"]{ max-width:100% !important; gap:10px !important; }
}

/* ===== [MOBILEFIX5-20260925] 顶栏换行后遮挡内容 =====
   根因：.app 的 grid-template-rows:64px 固定第一行，顶栏 flex-wrap 换行后
   实际高约 200px，溢出部分（模型选择/商品自动学习/官网按钮行）盖住「数据看板」标题。
   窄屏第一行改 auto，让内容区从顶栏真实底部开始。 */
@media (max-width:768px){
  .shop-manage .app{ grid-template-rows:auto minmax(0,1fr) !important; }
}

/* ===== [MOBILEFIX6-20260926] 内容区 padding 收紧 + titlebar 允许自适应 =====
   症状：.workbench-content>section 默认 padding:28px，375 下表格/统计卡可用
        宽度只剩 319px，操作按钮极易被裁。
   修法：窄屏统一收到 12px；titlebar 高度改 auto（内容换行时不会压盖内容）。 */
@media (max-width:768px){
  .workbench-content>section:not(.store-home){ padding:12px !important; }
  .workbench-titlebar{ height:auto !important; min-height:46px !important; flex-wrap:wrap !important; }
  .workbench-titlebar > *{ min-width:0 !important; }
  .workbench-titlebar .top-actions{
    flex-wrap:wrap !important; max-width:100% !important; min-width:0 !important;
    justify-content:flex-start !important; gap:6px !important;
  }
}

/* ===== [MOBILEFIX7-20260926] 表格容器横滑 + 右箭头引导 =====
   症状：卡密/自动发货/订单/激活码表格操作按钮在 535~894px，
        被 overflow:hidden 裁掉且无法横滑。
   修法：给包含表格且宽度被撑破的父容器加 .yk-mob-scroll，
        overflow-x:auto + 右上角「→」角标提示可右滑。
        JS 兜底见 mobile-patch.js fixTables()。 */
@media (max-width:768px){
  .yk-mob-scroll{
    display:block !important;
    overflow-x:auto !important; overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    position:relative !important;
    max-width:100vw !important;
  }
  .yk-mob-scroll::after{
    content:"→";
    position:absolute; right:4px; top:4px;
    width:22px; height:22px;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%;
    background:rgba(47,107,216,.9); color:#fff;
    font-size:13px; line-height:1;
    box-shadow:0 1px 6px rgba(30,80,160,.25);
    pointer-events:none; z-index:2;
    animation:yk-mob-pulse 1.6s ease-in-out infinite;
  }
  .yk-mob-scroll:hover::after{ opacity:0; transition:opacity .2s; }
  @keyframes yk-mob-pulse{
    0%,100%{ transform:translateX(0); }
    50%{ transform:translateX(3px); }
  }
  .yk-mob-scroll table{ min-width:max-content !important; }
}

/* ===== [MOBILEFIX8-20260926] 数据看板图表网格单列 =====
   症状：yk-dash-row2(2fr 1fr) / yk-dash-row3(3fr 2fr) 在 375 下第二列被裁。
   修法：窄屏改单列堆叠，page-head 子项全部 max-width:100%。 */
@media (max-width:768px){
  .yk-dash-row2, .yk-dash-row3{ grid-template-columns:minmax(0,1fr) !important; }
  .yk-dash-row2 > *, .yk-dash-row3 > *{ min-width:0 !important; max-width:100% !important; }
  .shop-manage .page-head,
  .shop-manage .page-head > *{
    min-width:0 !important; max-width:100% !important; width:100% !important;
  }
  /* [R10-老板第1条] 「重点提示」提示块被压成 166x86（文字在半栏里挤成 5 行）。
     取证（375，意图问法）：.page-head__key box [164,200 166x86]，
       同一行的 H1「意图问法配置」只有 [45,234 109x18]，
       两者加起来 45+109=154、164+166=330 → 挤在一行，key 被压掉一半宽度。
     改法：page-head 允许折行，key 整块独占一行（宽 100%）→ 高度回到正常行数。 */
  .shop-manage .page-head{ flex-wrap:wrap !important; }
  .shop-manage .page-head > *{ flex:1 1 100% !important; }
  /* ⚠ 上面那句只吃到 .page-head__lead（basis 100% 生效了），
     .page-head__key 实测仍是 flex:0 1 auto → 被同行其他项挤到 166px。
     这里单独提权钉死，两个提示块各占满一行。 */
  html body .shop-manage .page-head__key{
    flex:1 1 100% !important; width:100% !important; max-width:100% !important;
  }
}

/* ===== [MOBILEFIX9-20260926] 配置中心内容区内边距收口 =====
   症状：.yk-extra-layer padding:16px 20px 28px，.shop-home-panel.view 有 padding:20px，
        导致图表/统计卡可用宽度只有 309px，仍在屏外溢出。
   修法：把配置中心内容面板 padding 收到 12px，并允许内部块占满。 */
@media (max-width:768px){
  .shop-manage .yk-extra-layer,
  .shop-manage .main,
  .shop-manage .main .shop-home-panel,
  .shop-manage .main .shop-home-panel.view,
  .shop-manage .main section.shop-home-panel{ padding:12px !important; }
  .shop-manage .main .shop-home-panel > *,
  .shop-manage .yk-extra-layer > *{ min-width:0 !important; max-width:100% !important; }
}

/* ===== [MOBILEFIX10-20260926] 首页解锁纵向滚动 =====
   实测（375×812，#/shop/home）：
     .shop-home  内容高 1132，overflow:visible
     #app        overflow:hidden，scrollHeight=1132 / clientHeight=772
     body        overflow:hidden，window.scrollY 恒 0（手指滑不动）
   → 用户在手机上一滑到底也到不了 t=921 的平台图标区，页脚也悬在临界。
   根因：外层壳把 html/body 锁成 height:100%+overflow:hidden，
        而内层 #app 虽可编程滚（scrollTop 能到 360），但 overflow:hidden
        的容器**不接收用户触摸滚动**。
   修法：窄屏把 #app 改成真正的纵向滚动容器。 */
@media (max-width:768px){
  #app{
    overflow-x:hidden !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior-y:contain !important;
  }
}

/* ===== [MOBILEFIX11-20260926] 首页顶栏收口（169px → 约 100px） =====
   实测：.shop-home .topbar 高 169，三块竖排
         brand-mark [14, 241x40] / nav [78, 204x20] / actions [122, 168x32]
   根因：紧凑间距（gap:24px, padding:14px 28px）下三块宽度相加远超 375，
        已有的 @media(768) 只加了 flex-wrap:wrap 让它自然竖排，却不压缩行高。 */
@media (max-width:768px){
  .shop-home .topbar{
    padding:10px 16px !important;
    gap:8px 12px !important;
    row-gap:8px !important;
  }
  .shop-home .topbar .brand-mark{ gap:8px !important; }
  .shop-home .topbar .brand-mark img,
  .shop-home .topbar .brand-mark-icon{ width:30px !important; height:30px !important; }
  .shop-home .topbar .brand-mark-copy strong{ font-size:14px !important; }
  .shop-home .topbar .nav{ gap:12px !important; font-size:12px !important; }
  .shop-home .topbar .actions{ gap:8px !important; }
  .shop-home .topbar .actions .el-button{
    height:30px !important; padding:0 10px !important; font-size:12px !important;
  }
  /* 首屏让 hero 少占一点，标题跟着缩一号 */
  .shop-home .hero{ padding:20px 16px 24px !important; }
  .shop-home h1{ font-size:26px !important; }
  .shop-home .feature-card{ padding:12px 14px !important; }
  .shop-home .cta-row{ margin-top:18px !important; }
  .shop-home .footer{
    padding:12px 16px 18px !important;
    flex-wrap:wrap !important; gap:10px 18px !important;
  }
}

/* ===== [MOBILEFIX12-20260926] 首页平台图标墙 2 列网格 =====
   实测：.plats 301×58，7 个文字胶囊按内容宽排成 5+2 两行，
        右侧留大片空白（末行只有 2 个小胶囊），视觉像没对齐。
   修法：改 2 列网格，每格铺满、等高 30px、文字水平居中。
        ⚠ 红线：只改容器排布，不压扁胶囊本身（每格 ≥146px，远超文字所需）。 */
@media (max-width:768px){
  .shop-home .plats{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
  }
  .shop-home .plats em{
    height:30px !important;
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 8px !important;
    white-space:nowrap !important;
  }
}

/* ===== [MOBILEFIX13-20260926] 配置中心「模型/自动学习」提示气泡限宽 =====
   实测（360×640，#/shop/manage）：
     header.topbar  sw=404 > cw=360 → 整页横向溢出 44px（375 屏才刚好卡住不暴露）
     根因：.top-model__tip / .top-learn__tip 是悬浮说明气泡，写死 width:320，
          从 left:54 展开 → right=374 > 360。手机上点「?」就会顶出屏幕。
   修法：窄屏把气泡限宽到「视口 - 左边距 - 右边距」内，并允许换行。 */
@media (max-width:768px){
  .shop-manage .top-model,
  .shop-manage .top-learn{
    min-width:0 !important;
    max-width:100% !important;
  }
  .shop-manage .top-model__tip,
  .shop-manage .top-learn__tip{
    width:auto !important;
    min-width:0 !important;
    max-width:calc(100vw - 72px) !important;
    white-space:normal !important;
    word-break:break-word !important;
    line-height:1.6 !important;
    padding:10px 12px !important;
  }
  .shop-manage .top-model__tip p,
  .shop-manage .top-learn__tip{
    font-size:11px !important;
  }
}

/* ===== [MOBILEFIX14-20260926] 工作台顶栏恢复 LOGO 组合体 + 强制单行 =====
   实测：header.workbench-titlebar [0,0 375x46]，但子项 .top-actions 掉到 y=46
        → 顶栏实际占用 124px，正文被盖。
   根因：yk-shim.js 的 injectMergeCss() 里有 '.top-brand-block{display:none!important}'
        （合并顶栏时认为与宿主 LOGO 重复而隐藏），功能键因此无处安放只能换行；
        另有 .titlebar-drag-region [126,0 249x40] 桌面拖拽占位，在手机上既没用
        又吃掉右侧空间。
   修法：恢复品牌块并压成「LOGO + 主/副标题上下堆叠」的组合体，右移让开汉堡；
        拖拽区隐藏；导航与 4 个功能键全部收进同一行。 */
@media (max-width:768px){
  .workbench-titlebar{
    height:46px !important; min-height:46px !important; max-height:46px !important;
    flex-wrap:nowrap !important; gap:6px !important;
    padding:0 8px 0 8px !important;
    overflow:hidden !important;
  }
  /* [R10-老板第3条] 上面那条 padding 会被后面的 `padding:8px 12px 8px 54px !important`
       以及原厂/宿主注入规则盖掉（实测 computed padding-left 变成 18px），
       于是 .top-navigation 落到 x=22，与汉堡 [8,4,38x38] **重叠 24px**。
       用 html body 提权锁死，并给导航一个不压汉堡的硬 margin。 */
  html body .workbench-titlebar{ padding:0 8px 0 8px !important; }
  /* 桌面拖拽占位：手机端无用且会拦截右侧点击 */
  .workbench-titlebar .titlebar-drag-region{ display:none !important; }

  /* [R10-老板第3条] 第二栏的 LOGO 图标彻底删掉（R7 只压成 24px 保留，老板明令要删）。
     ⚠ 必须带 html body 前缀提权：yk-shim.js 的 injectMergeCss() 在运行时注入的
       <style id="yk-merge-css"> 晚于本文件，同特异性下它胜，不提权会被原地覆盖。 */
  html body .workbench-titlebar .top-brand-block{ display:none !important; }
  html body .workbench-titlebar .brand-mark,
  html body .workbench-titlebar .brand-mark-copy,
  html body .workbench-titlebar .brand-mark-icon{ display:none !important; }

  /* [R7-老板第2条] 「首页/店铺管理」两图标紧贴汉堡按钮右侧。
     取证：汉堡 [8,4,38x38] 右缘 x=46；品牌块压到 24px 后 nav 自然落到 x≈48，
     再 +4px 平移到 52，与汉堡留 6px 间隙。 */
  html body .workbench-titlebar .top-navigation{
    margin-left:0 !important; padding:0 !important; gap:0 !important;
    flex:0 0 auto !important; transform:translateX(4px) !important;
  }
  /* [R10] LOGO 删掉后必须显式让位：padding-left 只有 8px，
     导航图标会顶到 x=12 压住汉堡（右缘 46）→ 硬推到 44px 处，留 6px 间隙。 */
  html body .workbench-titlebar .top-navigation{
    margin-left:44px !important; transform:none !important;
  }
  .workbench-titlebar .top-navigation button{
    height:30px !important; min-width:25px !important; padding:0 2px !important;
    font-size:0 !important; gap:0 !important;
  }
  .workbench-titlebar .top-navigation span{ display:none !important; }
  .workbench-titlebar .top-navigation .nav-icon svg{ width:15px !important; height:15px !important; }

  /* 4 个功能键收进同一行、靠右 */
  .workbench-titlebar .top-actions{
    flex-wrap:nowrap !important; width:auto !important; max-width:100% !important;
    min-width:0 !important; flex:1 1 auto !important;
    justify-content:flex-end !important; align-items:center !important;
    gap:2px !important; padding-right:0 !important; overflow:hidden !important;
  }
  .workbench-titlebar .top-actions > *{ flex:0 0 auto !important; min-width:0 !important; }
}

/* ===== [MOBILEFIX15-20260926] 4 个功能键图标化（接待模式/一键上线/算力/头像） ===== */
@media (max-width:768px){
  /* 接待模式：文字改状态圆点（绿=全自动接待），点击仍开下拉 */
  /* [老板第2条] 上轮把 pill 压成 14px → 里头只剩绿点，客户看不懂。
     改回「绿点 + 接待中 + 下拉箭头」并可点击，空间从品牌块与导航让出。 */
  .workbench-titlebar .reception-mode-pill{
    width:auto !important; min-width:64px !important; max-width:74px !important;
    height:30px !important; padding:0 5px !important; gap:3px !important;
    background:#eef7f2 !important; border:1px solid #bfe8d5 !important;
    border-radius:8px !important; box-shadow:none !important;
  }
  .workbench-titlebar .reception-mode-trigger{
    width:auto !important; min-width:0 !important; height:22px !important;
    padding:0 !important; gap:3px !important; font-size:9px !important;
    background:transparent !important; border:none !important; box-shadow:none !important;
  }
  .workbench-titlebar .reception-mode-dot{
    width:8px !important; height:8px !important; min-width:8px !important;
    max-width:8px !important; border-radius:50% !important; flex:0 0 auto !important;
  }
  .workbench-titlebar .reception-mode-trigger > span{
    font-size:9px !important; color:#12a05f !important; white-space:nowrap !important;
  }
  .workbench-titlebar .reception-mode-trigger .el-icon svg{
    width:12px !important; height:12px !important;
  }
  /* 让位：品牌块 92→80、导航两键各 39→30 */
  .workbench-titlebar .top-brand-block{ max-width:80px !important; }
  .workbench-titlebar .top-navigation button{
    height:30px !important; min-width:30px !important; padding:0 4px !important;
  }
  .workbench-titlebar .top-navigation .nav-icon svg{
    width:14px !important; height:14px !important;
  }
  .workbench-titlebar .top-actions{ gap:2px !important; }
  .workbench-titlebar .store-control-dropdown,
  .workbench-titlebar .store-control-trigger{ width:28px !important; }
  .workbench-titlebar .compute-power{ min-width:24px !important; }
  .workbench-titlebar .plan-recharge{ min-width:26px !important; }
  /* 一键上线：原本已是 36×36 纯图标 */
  .workbench-titlebar .store-control-dropdown{ width:30px !important; height:30px !important; }
  .workbench-titlebar .store-control-trigger{ width:30px !important; height:30px !important; font-size:0 !important; }
  /* 算力：数字 + 细条，去掉外框胶囊 */
  .workbench-titlebar .compute-power{
    width:auto !important; height:30px !important; min-width:26px !important;
    padding:0 !important; gap:4px !important;
    background:transparent !important; border:none !important; box-shadow:none !important;
    flex-direction:row !important; align-items:center !important;
  }
  .workbench-titlebar .compute-power em{ font-size:9px !important; font-style:normal !important; }
  .workbench-titlebar .compute-power .power-track{ width:18px !important; height:4px !important; border-radius:2px !important; }
}

/* ===== [MOBILEFIX16-20260926] 用户头像精简：去手机号、去「充值」 =====
   老板 2026-09-26 指示：只保留「演示版」三个字，「充值」按钮取消。
   实测：div.plan-recharge [18,88 190x36]
         button.plan-avatar-btn(「更换」) + div.account-dropdown(strong.plan-mobile
         「138****00」+ span.plan-name「演示版」) + button.recharge-btn「充值」 */
@media (max-width:768px){
  .workbench-titlebar .plan-recharge{
    width:auto !important; height:30px !important; min-width:26px !important;
    padding:0 !important; gap:0 !important;
    background:transparent !important; border:none !important; box-shadow:none !important;
  }
  .workbench-titlebar .plan-avatar-btn{
    width:26px !important; height:26px !important; padding:0 !important;
    background:#eef3fa !important; border:none !important; box-shadow:none !important;
    overflow:hidden !important;
  }
  /* ⚠ 老板 2026-09-26 只要求：删「138****00」、取消「充值」，「更换」必须保留 */
  .workbench-titlebar .plan-mobile{ display:none !important; }
  .workbench-titlebar .plan-name{
    display:block !important; font-size:9px !important; white-space:nowrap !important;
  }
  .workbench-titlebar .recharge-btn{ display:none !important; }
}

/* ===== [MOBILEFIX17-20260926] 首页三大卡片「上二下一」 =====
   实测：.home-empty-actions 是 grid 单列，3 张 .home-action-card 各 319×120
        竖着排（y=202/333/465，共 383px），把首屏压得只剩一张卡。
   改法：2 列网格，前两张并排，第三张 grid-column:1/-1 通栏。
        ⚠ 红线：不改卡片内部尺寸，只改容器列数。 */
@media (max-width:768px){
  .home-empty-actions{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
  .home-empty-actions .home-action-card:last-child{ grid-column:1 / -1 !important; }
  .home-empty-actions .home-action-card{ padding:12px 10px !important; }
  .home-empty-actions .home-action-card span.home-action-icon{ width:34px !important; height:34px !important; }
  .home-empty-actions .home-action-card span.home-action-icon .el-icon{ width:18px !important; height:18px !important; }
  .home-empty-actions .home-action-card strong{ font-size:13px !important; }
  .home-empty-actions .home-action-card > span:not(.home-action-icon),
  .home-empty-actions .home-action-card > strong{ white-space:normal !important; }
}

/* ===== [MOBILEFIX18-20260926] 取消左下两按钮 + 右侧浮标下移靠近 AI 机器人 =====
   实测：footer.workbench-footer [0,732 375x40] 内的 .footer-float-tags 就是
        「消息聚合」[18,738] + 「AI辅助中心」[110,738]（老板要求取消）；
        右侧保留的是 .float-dock-rail [319,337 44x98] 里的两个 44×44 图标按钮，
        要求下移靠近 AI 机器人(.home-mascot-btn [255,584 96x110])。 */
@media (max-width:768px){
  .workbench-footer .footer-float-tags{ display:none !important; }
  .workbench-footer{ display:none !important; }
  /* ⚠ .float-dock-rail 本身就是 position:absolute（父 workbench-shell 是 column flex），
     绝不能改成 relative——实测改成 relative 后它会变全宽并掉到 t=1011（屏幕外）。
     下移由 mobile-patch.js 直接改它的绝对 top。 */
}

/* ===== [MOBILEFIX20-20260926] 配置中心顶栏：tab 图标化 + 与标题同行 + 删官网 =====
   实测 .shop-manage .topbar 高 204，结构：
     div.topbar-center [54,8 116x25]  「客服系统配置中心」
     div.top-actions   [54,41 309x154]
       div.yk-top-extra [54,41 309x70]  6 个 button（svg + span.yk-extra-label），排成 2 行
       div.top-model    [54,117 239x36]
       div.top-learn    [54,159 174x36]
       div.top-actions__billing [234,159 108x36] 「DaNiu-AI官网」（老板要求取消）
   改法：display:contents 让 4 个子项直接参与 topbar 换行；
        6 个 tab 去文字留图标 → 一行 6 个，排在标题同一行右侧；
        模型 / 商品自动学习 顺次下移两行；官网按钮去掉。 */
@media (max-width:768px){
  .shop-manage .topbar{
    display:flex !important; flex-wrap:wrap !important; align-items:center !important;
    gap:6px 8px !important; padding:8px 12px 8px 54px !important;
    height:auto !important; min-height:0 !important; max-height:none !important;
  }
  .shop-manage .topbar .top-actions{ display:contents !important; }
  .shop-manage .topbar .topbar-center{
    flex:0 0 auto !important; min-width:0 !important; max-width:100% !important;
    width:auto !important; padding:0 !important;
  }
  .shop-manage .topbar .topbar-title{
    display:block !important; grid-template-columns:none !important;
    width:auto !important; text-align:left !important; pointer-events:none !important;
    padding:0 !important;
  }
  /* ⚠ yk-shim.js 的 injectMergeCss() 在 mobile-patch.css 之后注入
     （.shop-manage .topbar .topbar-title strong{font-size:14px!important}），
     同特异性下后加载者胜 → 必须多带一层 .topbar-center 提权才能压过它 */
  .shop-manage .topbar .topbar-center .topbar-title strong{ font-size:12px !important; }
  .shop-manage .topbar .topbar-title > span{ display:none !important; }
  /* 6 个 tab：只留图标 */
  .shop-manage .yk-top-extra{
    flex:0 1 auto !important; width:auto !important;
    justify-content:flex-end !important; gap:0 !important;
    margin-left:auto !important;
  }
  .shop-manage .yk-top-extra button{
    min-width:26px !important; height:32px !important; padding:0 5px !important;
    gap:0 !important; font-size:0 !important;
  }
  .shop-manage .yk-top-extra .yk-extra-label{ display:none !important; }
  .shop-manage .yk-top-extra button svg{ width:17px !important; height:17px !important; }
  /* 模型 / 商品自动学习 顺次占两行 */
  .shop-manage .topbar .top-model,
  .shop-manage .topbar .top-learn{
    flex:0 0 auto !important; width:auto !important; max-width:100% !important;
  }
  /* DaNiu-AI官网 */
  .shop-manage .top-actions__billing{ display:none !important; }
}

/* ===== [MOBILEFIX21-20260926] 外壳顶栏 ☞ 由 mobile-patch.js 注入到父窗口 =====
   ⚠ 重要架构事实：mobile-patch.css 是在 iframe(app/index.html) 内加载的，
     它的样式作用域到不了外壳 index.html 的 <div class="topbar">。
     外壳顶栏的补丁必须以字符串形式写在 mobile-patch.js 里，由 injectShellCSS()
     通过 window.parent（同源）注入到外壳 <head>，本节不在这里写（写了也不生效）。 */

/* ===== [MOBILEFIX22-20260926] 汉堡遮罩：完全透明 + 不吞点击（老板第2条） =====
   取证：点汉堡后 zlist 出现
     div.kefu-mob-mask.show 0,0,375,772 z=999990 pos=fixed pe=auto bg=rgba(15,23,42,0.45)
   → 顶栏以下整屏发灰 + 吞掉所有点击（老板真机：点任何地方都没反应）。
   改法：背景透明 + pointer-events:none。抽屉关闭靠再点汉堡 / ESC。 */
.kefu-mob-mask{
  background:transparent !important;
  pointer-events:none !important;
}

/* ===== [MOBILEFIX23-20260926] 汉堡上移到与第二栏中线对齐（老板第2条） =====
   取证：汉堡 [8,8,38x38] 中线 = 8+19 = 27
         第二栏 nav 按钮 [117,8,39x30] 中线 = 8+15 = 23
   → 汉堡偏下 4px，真机肉眼可辨。改 top:8 → 4 使两者中线同为 23。 */
@media (max-width:768px){
  .kefu-burger{ top:4px !important; }
}

/* ===== [MOBILEFIX24-20260926] ⛔ 已按老板第7条第3条整段撤销 =====
   原做法：.home-stage{ padding-top:46px } 把首页正文整体下移一个第二栏高度。
   老板实测反馈：「下移导致出现了一大块不同颜色的横条状，还原回去位置吧，
                 我再计划重新调整首页的排版」。故删除，首页位置交还老板自己规划。 */

/* ===== [MOBILEFIX25-20260926] 电商图标 / 已支持主流电商平台 沉底（老板第3条） =====
   取证（375）：
     div.home-empty-main      28,74,319,494
       div.home-brand-tips    28,538,319,64
         span.home-brand-tip  114,574,146,28  "官方认证·可私有化"
     footer.home-empty-footer 28,588,319,136
       p.home-empty-footnote  134,708,108,16  "已支持主流电商平台"
   home-stage 是 flex 列，main+footer 合计 630 < 726 可用高 → margin-top:auto 把底栏推到底部。
   注意：只调「容器推底」，不缩小任何卡片/图标本身（老板红线：绝不挤压内容）。 */
@media (max-width:768px){
  .home-stage{ flex-direction:column !important; align-items:stretch !important; }
  .home-empty-main{ flex:0 0 auto !important; }
  .home-empty-footer{ margin-top:auto !important; }
  .home-brand-tips{ margin-top:10px !important; }
}

/* ===== [R8-老板第3条] 首页内容支持下滑（底部内容被永久裁掉） =====
   取证（375）：footer.home-empty-footer 底边 = 803px > 视口 772px，
     且 html / body / .workbench-shell / .workbench-body /
     .workbench-content / .home-stage 六层全是 overflow:hidden，
     doc.scrollHeight - clientHeight = 0 → 页面根本不产生滚动条。
   → 底部「已支持主流电商平台」等永远看不到。
   改法：从根容器开始逐层放开纵向滚动，只保留横向锁定（防横向溢出）。
   注意：只放开「纵向」，不改任何 padding / 间距 / 卡片尺寸（老板红线）。 */
@media (max-width:768px){
  html, body{ overflow-x:hidden !important; overflow-y:auto !important; height:auto !important; }
  .workbench-shell{ overflow:visible !important; }
  .workbench-body,
  .workbench-content{
    overflow-x:hidden !important; overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }
  .home-stage{
    overflow-x:hidden !important; overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }
  .home-empty-footer{ margin-top:auto !important; flex:0 0 auto !important; }
}

/* ===== [R9-老板第4条] 「菜单内页被锁死下滑」 —— 内容被 overflow:hidden 截断 =====
   取证（375，#/shop/manage 下逐个内页实测）：
     「尺码规格」 .shop-manage .view  ovY=hidden  scrollHeight 958 / clientHeight 597
                  → can 361，内容被硬裁 361px；kb-frame 内部还有 1004px 内容无处可去。
     「意图问法」 同上，.view 内容 597 但 maxBottom 远超视口。
     根因：R8 我只给「首页」的 .workbench-* 链放开纵向滚动，
           但配置中心是另一套 DOM（div.shop-manage > .view），
           原厂在窄屏给 .view 写的 overflow:hidden 没有任何补丁覆盖 → 整页锁死。
   改法：给配置中心主内容区 .view 放开纵向滚动（横向仍锁，防横向溢出）；
         .shop-manage 自己也放开，保证内容能自然撑开而不是被裁。 */
@media (max-width:768px){
  html body .shop-manage{
    overflow-x:hidden !important; overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }
  /* 取证（375，「尺码规格」）：
       .shop-manage > main  display:flex  overflow:hidden  height:631px
       .shop-manage .view    flex:1 1 0%   overflow:hidden  高 565
       → view.scrollHeight 958 / clientHeight 565 = 内容被硬裁 393px，下滑不了。
     根因：.view 不是 .shop-manage 的直接子元素，中间还夹了一层 main.flex；
           我上一版写的 `.shop-manage > .view` 选择器根本没匹配上。
     改法：main 与 view 两层都放开纵向滚动（横向仍锁），内容就能自然下滑到底。 */
  html body .shop-manage .main,
  html body .shop-manage main{
    overflow-x:hidden !important; overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }
  html body .shop-manage .view{
    overflow-x:hidden !important; overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    min-height:0 !important;
  }
  /* ⚠ kb-frame 保持原样：实测给它加 max-height:none / overflow 后容器会塌成 0 高，
     内容反而彻底看不见。知识库边框的滚动交给上面 main + view 两层统一兜住。 */
  /* 取证（375，「尺码规格」滚到底仍看不全）：
       view 滚到底（scrollTop 393/958）后，内部 .kb-col--list 自身 box 高 280、
       overflow:hidden，它里面的 kb-list-tools / kb-search / kb-status-select /
       kb-rule-card 全被压在视口外 → 老板说的"下面还有内容都被截断了"。
     根因：.kb-col--list 在原厂是「跟随左栏高度伸缩」的 flex/grid item，
           窄屏没有独立高度可言，限高后内部只能被裁。
     改法：放行 kb-col 系列的纵向滚动，内容即可完整下滑。 */
  html body .shop-manage .kb-col{
    overflow-x:hidden !important; overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }
  html body .shop-manage .kb-col--list{ min-height:0 !important; }
}

/* ===== [R9-老板第3条] 内页竖条：宽度被压到 12~57px 导致文字竖排 =====
   取证（375，「转接设置」内页实测）：
     button.shop-ops__back        box 12×119   「← 返回店铺列表」→ 12px 宽竖条
                                  父 div 宽 **0**（[45,168,0,805]）→ 父容器塌成 0 宽
     div(switch-row 内文字容器)   box 57×251   「AI 超过接待次数转接」→ 57px 宽竖条
                                  父 div.switch-row.tf-turns-row 宽 225 → 文字只分到 57
     「尺码规格」 kb-switch-field  box 36×59    「启用」→ 36px 宽竖条
                                  父 div.kb-form-simple 宽 255
   改法（只放开容器宽度与换行，不动字号、不动文案、不缩卡片 —— 老板红线）：
     · .shop-ops__back 的父容器给 min-width，标题行允许换行
     · switch-row 文字容器 flex:1 1 auto + min-width:0 之外的「下限」放开（改 min-width:120px）
     · kb-form-simple 内的 .kb-switch-field 允许换行、放开宽度下限 */
@media (max-width:768px){
  /* ── A. 页面标题行：标题 div 被操作区压成 0 宽（取证 box 0×805）──
     原厂 .shop-ops__head 是 flex row nowrap，子项 page-head__acts 是 flex:0 0 auto
     不收缩（宽 285），把装标题的 div 直接挤成 0 → 标题文字只能竖排在 12px 里。
     改法：窄屏竖排（标题一行、操作区一行），文字完整呈现，不删字不缩字号。 */
  html body .shop-ops__head,
  html body .shop-ops .page-head{
    flex-direction:column !important; align-items:stretch !important;
    flex-wrap:nowrap !important; row-gap:6px !important;
  }
  html body .shop-ops__head > div:first-child,
  html body .shop-ops .page-head > div:first-child{
    flex:0 0 auto !important; width:auto !important;
    min-width:120px !important; max-width:100% !important;
    white-space:normal !important; word-break:break-word !important;
    line-height:1.35 !important;
  }
  html body .shop-ops .page-head__acts{
    flex:0 0 auto !important; width:100% !important; max-width:100% !important;
    flex-wrap:wrap !important; row-gap:6px !important;
  }
  /* 「← 返回店铺列表」不再竖排 */
  html body .shop-ops__back,
  html body .shop-ops .back{
    width:auto !important; max-width:100% !important;
    white-space:normal !important; word-break:break-word !important;
    line-height:1.3 !important; padding:4px 0 !important;
  }
  /* ── B. switch-row：文字容器被压到 57px，旁边 tf-turns-acts 独占 156px ──
     取证：父 .switch-row.tf-turns-row 宽 225，文字容器只分到 57。
     改法：允许换行，文字容器保底 130px，开关/次数操作区挪到下一行靠右。 */
  html body .shop-ops .switch-row{
    flex-wrap:wrap !important; row-gap:8px !important;
  }
  html body .shop-ops .switch-row > div:first-child{
    flex:1 1 130px !important; min-width:130px !important; max-width:100% !important;
    min-width:auto !important; width:auto !important;
    white-space:normal !important; word-break:break-word !important;
  }
  html body .shop-ops .switch-row .toggle,
  html body .shop-ops .switch-row .tf-turns-acts{
    flex:0 0 auto !important; margin-left:auto !important;
  }
  /* ── C. 尺码规格「启用」被压成 36×59 竖条（父 .kb-form-simple 宽 255）── */
  html body .shop-manage .kb-switch-field{
    min-width:56px !important; width:auto !important; max-width:100% !important;
    white-space:nowrap !important; overflow:visible !important;
  }
  html body .shop-manage .kb-form-simple{
    flex-wrap:wrap !important; row-gap:6px !important; align-items:center !important;
  }
}

/* ===== [R7-老板第4条] AI 机器人与「上面的小浮标」右边距统一 ===== */
/* 取证（375）：改 right:4px 后仍不统一 ——
     .home-mascot-tip-close 9 / pulse 12 / tip-tail 7（目标 4）
   根因：这些是 absolute 且父级 .home-mascot-buddy 已 right:4px，
         子元素再写 right:4px 是「在父级基础上再叠 4px」→ 累计 8~9px。
   改法：子元素一律 right:0，跟随父级右缘；父级本体保持 4px。
         .float-dock-rail 的定位父级 .workbench-shell 右缘=视口，故保留 4px。 */
@media (max-width:768px){
  html body .home-mascot-tip-close{ right:0 !important; }
  html body .home-mascot-tip-tail{ right:0 !important; }
  html body .home-mascot-pulse{ right:0 !important; }
  html body .float-dock-rail{ right:4px !important; }
}

/* ===== [R8-老板第4条] AI 机器人「裁到边缘」再贴右 =====
   取证：.home-mascot-buddy rightGap=4 已经很贴，但老板真机反馈仍显「没靠右」——
        因为 .home-mascot-btn（96×110）自身带白色圆形底盘 / 描边，视觉上留出呼吸感。
   改法：本体继续右移并压到屏幕外（right 负值 → 被屏幕边缘裁切），
        同时把气泡 .home-mascot-tip 反向内缩，保证气泡仍完整可见不被裁。
   参数：本体外移 14px，气泡右内缩 14px → 气泡右缘仍距屏幕 4px。 */
@media (max-width:768px){
  .home-mascot-buddy{ right:-14px !important; }
  .home-mascot-tip{ right:18px !important; max-width:calc(100vw - 20px) !important; }
  .home-mascot-tip-close{ right:0 !important; }
  .home-mascot-tip-tail{ right:0 !important; }
  .home-mascot-pulse{ right:0 !important; }

  /* [R10-老板第4条] 「AI 机器人点击后窗口要 5 秒以上才出来」提速
     取证：headless 里点 .home-mascot-btn → 气泡 306ms 就出现、点击后**零网络请求**
           （不是懒加载 chunk，也不是接口等待，纯渲染）。
     真机慢的两类来源，这里一起压掉：
       ① 气泡自带 transform/opacity 过渡：真机webview首帧合成慢 → 直接去掉过渡
       ② 首页被 R8 开了 6 层 overflow-y:auto 滚动容器，机器人气泡出现会强制全层重绘
          → 给机器人相关元素加 contain，限缩重绘范围 */
  .home-mascot-tip,
  .home-mascot-tip-close,
  .home-mascot-tip-q{
    transition:none !important; animation:none !important;
    will-change:auto !important;
  }
  .home-mascot-buddy,
  .home-mascot-tip{ contain:layout paint style !important; }
  .home-mascot-tip{ z-index:999998 !important; }
}

/* ===== [MOBILEFIX26-20260926] 配置中心抽屉（老板第5条） =====
   取证：#/shop/manage 下 #app 只有 div.shop-manage 一个子元素，
         .workbench-shell / .store-sidebar 整个被 SPA 销毁 → 汉堡点了"啥都没有"。
   改法：由 mobile-patch.js 克隆一份店铺列表抽屉挂到 .shop-manage 下，
         复用同一套 body.kefu-nav-open 开关，避免多层汉堡重叠冲突。
   ⚠ [R8] 该抽屉只解决「点了没反应」。R8 起配置中心左栏改用 SPA 自带的
         aside.sider（功能列表：数据看板/店铺与商品/转接设置/欢迎语/...），
         下一条 MOBILEFIX28 会把它显示成抽屉，故这里保留兜底但屏外待命。 */
.shop-manage > .store-sidebar.my-platform{
  position:fixed !important; left:0 !important; top:0 !important; bottom:0 !important;
  width:min(300px,84vw) !important; height:auto !important;
  padding-top:48px !important; z-index:999991 !important;
  transform:translateX(-108%) !important; transition:transform .25s ease !important;
  background:#fff !important; overflow-y:auto !important;
  box-shadow:6px 0 24px rgba(15,23,42,.2) !important;
}
/* R8 起配置中心左栏已改用 SPA 自带 .sider，克隆的店铺列表抽屉退出舞台 */
.shop-manage > .store-sidebar.my-platform{ display:none !important; }

/* ===== [R8-老板第5条] 配置中心左栏 = SPA 自带 aside.sider（功能导航） =====
   取证：#/shop/manage 里 SPA 本就渲染了 <aside class="sider" aria-label="功能导航">
         （功能列表/看数据/数据看板/开店准备/店铺与商品/转接设置/欢迎语/AI操作教/
          AI回答意图/问法模型定制/禁用词），但原厂在窄屏 display:none，
          R6 之前只能靠克隆的 store-sidebar（店铺列表）顶替 → 老板看到"完全不是左栏菜单"。
   改法：把 .sider 直接显示成左侧抽屉（它是配置中心自己的菜单，语义正确），
         克隆的店铺列表抽屉退出主舞台（pointer-events:none，仅兜底）。
   注意：不动 .sider 内部任何一项的文字与尺寸，只做「容器显隐 + 定位」。 */
@media (max-width:768px){
  html body .shop-manage .sider{
    display:block !important;
    position:fixed !important; left:0 !important; top:0 !important; bottom:0 !important;
    width:min(280px,80vw) !important; height:auto !important; max-height:none !important;
    padding:48px 0 12px !important; box-sizing:border-box !important;
    z-index:999991 !important;
    background:#fff !important; overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    transform:translateX(-108%) !important; transition:transform .25s ease !important;
    box-shadow:6px 0 24px rgba(15,23,42,.2) !important;
  }
  html body .shop-manage .sider .sider__heading{
    font-size:13px !important; font-weight:700 !important; color:#1c3f7c !important;
    padding:6px 14px !important;
  }
  html body .shop-manage .sider .sider__nav{ padding:0 6px !important; }
  html body .shop-manage .sider .sider__group{
    font-size:10px !important; color:#9aa4b8 !important; padding:8px 10px 4px !important;
  }
  html body .shop-manage .sider .sider__nav > button,
  html body .shop-manage .sider .sider-fold__main{
    width:100% !important; text-align:left !important; font-size:13px !important;
    padding:9px 10px !important; border-radius:8px !important;
  }
  html body .shop-manage .sider .sider-fold__row{ width:100% !important; }
  body.kefu-nav-open .shop-manage .sider{
    transform:translateX(0) !important; opacity:1 !important;
    pointer-events:auto !important;
  }
}

/* ===== [R8-老板第1条] 接待模式下拉：窄屏整块钉在屏内，保证可点 =====
   取证：点「接待中」后 .reception-mode-menu 确实展开了，但 box = 144,45,380,257
        —— 宽 380 + left 144 → 右边界 524px，整块溢出 375 屏幕，
        真机上等于「点了没反应 / 也看不到选项」。
   改法：改 position:fixed 左右各留 8px，最大高度 60vh 内部滚动。 */
@media (max-width:768px){
  .workbench-titlebar .reception-mode-menu{
    position:fixed !important;
    left:8px !important; right:8px !important; top:52px !important;
    width:auto !important; max-width:none !important;
    max-height:60vh !important; overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    z-index:999997 !important;
    border-radius:10px !important;
    box-shadow:0 10px 30px rgba(15,23,42,.22) !important;
  }
  .workbench-titlebar .reception-mode-menu .reception-mode-opt{
    display:block !important; width:100% !important; text-align:left !important;
    padding:8px 10px !important; font-size:12px !important;
  }
  .workbench-titlebar .reception-mode-menu .reception-mode-opt p{
    font-size:10px !important; line-height:1.5 !important; margin:2px 0 0 !important;
  }
}
body.kefu-nav-open .shop-manage > .store-sidebar.my-platform{
  transform:translateX(0) !important; opacity:1 !important; pointer-events:auto !important;
}

/* ===== [R7-老板第5条] 配置中心「AI 知识库」5 张统计卡：竖条 → 上 3 下 2 =====
   取证（375，点顶栏「AI 知识库」图标后）：
     div.yk-extra-layer > div > div:nth-child(3)   display:grid
       grid-template-columns:55.39px 55.41px 55.39px 55.41px 55.41px   ← 写死 5 列
       内含 5 张卡（知识条目 368 条 / 知识分类 4 个 / 关键词 1,364 个 / 正文总量 25.3 万字 / 我的改动 0 处）
     卡内两个 div（标题 / 数值）被压到各 21px 宽 → 4 个字竖排 = 老板口中的"字体竖条"。
   改法：列数 5 → 3（minmax(0,1fr) 防回归 min-content 撑破），卡内元素放开宽度并允许折行。
   注意：只改容器排布与内部换行，不改任何字号与文案（老板红线）。 */
@media (max-width:768px){
  .shop-manage .yk-extra-layer > div > div:nth-child(3){
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:8px !important;
  }
  .shop-manage .yk-extra-layer > div > div:nth-child(3) > div{
    width:auto !important; min-width:0 !important;
    padding:8px 6px !important; box-sizing:border-box !important;
  }
  .shop-manage .yk-extra-layer > div > div:nth-child(3) > div > div{
    width:auto !important; min-width:0 !important; max-width:100% !important;
    white-space:normal !important; word-break:break-word !important;
    overflow:visible !important; line-height:1.3 !important;
  }
}

/* ===== [MOBILEFIX27-20260926] 配置中心：「模型」与「自动化学习」压缩到同一行（老板第4条） =====
   取证（原实现被否掉的教训，务必记住）：
     第一版用 flex:1 1 48% 让两者并排，结果各只分到 60px：
       .top-model__btn 41px（模型名 <strong> 被 ellipsis 吃掉，宽 0）
       .top-model__tip-btn 14px  → 「DaNiu-AI模型」完全看不见
       .top-learn__switch 实测 148px，比容器 60px 还宽 → 溢出被裁
     根因：.yk-top-extra（6 个功能图标）占死 174px，把剩下的挤没了。
   改法（MOBILEFIX27-R2）：把 6 个功能图标整排下沉到第二行（order:99 + basis:100%），
       模型 / 自动化学习回到第一行并等分剩余宽度 → 各 144~159px，内容完整不截断。
   实测：375 → model 152 / learn 152，btnCut -2、swCut -2，ovfX 0，pageOvfX 0，topbarH 121。
        360 → 144/144；390 → 159/159，三档一致。 */
@media (max-width:768px){
  .shop-manage .topbar{
    flex-wrap:wrap !important; gap:6px 6px !important;
    padding:8px 12px 8px 54px !important;
  }
  /* ===== [R9-老板第1条] 图标按钮整排下沉第二行、靠右、有间距 =====
     取证（375，R8 线上实测）：
       .yk-top-extra box [160,8,174,32]，内部 6 个图标相邻实测 gap 全 0px（挤成一坨），
       右边缘 334 → topbar 右缘 375，rightPad 还差 41px（没真正靠右）；
       model/learn 绝对定位 top:38 高 30 → 占 38~68，而图标排 8~40 → **垂直重叠 2px**，
       这就是老板说的「还和下面一行的按钮粘到一起」。
     改法：
       · top-actions 整块掉到第二行（flex:1 1 100% + order:1），justify-content:flex-end 靠右
       · .yk-top-extra 内部 gap 给 8px（老板明令要有间距）
       · model/learn 绝对定位下移到 top:52px（与图标排底 40 之间留 12px 呼吸），
         topbar padding-bottom 给第三行留位。 */
  .shop-manage .topbar .top-actions{
    display:flex !important; flex-wrap:wrap !important; align-items:center !important;
    width:100% !important; flex:1 1 100% !important; min-width:0 !important;
    justify-content:flex-end !important;
    gap:0 !important; padding:0 !important;
  }
  /* 6 个功能图标：整排靠右 + 彼此 8px 间距（R8 是 gap:0，老板明令「一点缝隙都没有」） */
  .shop-manage .topbar .top-actions > .yk-top-extra{
    order:1 !important; flex:0 0 auto !important; width:auto !important;
    gap:8px !important; justify-content:flex-end !important;
    margin-left:auto !important; padding-top:0 !important;
  }
  /* ===== [R8-老板第5条] 硬约束下的解法 =====
     取证（375）：第一行要同时塞「客服系统配置中心」(100) + 6 个功能图标 (174)
       = 274px，内容区只剩 309-274 = 35px，装不下「模型 / 自动化学习」(各需 ~150)。
     若让 top-actions 保持 flex 流内，它内部的 model/learn 会被挤成第二、三行，
       topbar 涨到 163px（老板明令"别新起一行占空间"）。
     解法：把 model/learn 用 absolute 脱出 top-actions 的流 ——
       · top-actions 的 max-content 只由 extra 决定 → 能与标题同行（老板要的"平行在右侧"）
       · model/learn 绝对定位到第二行并排各 ~154px（保住第4轮"压成一行"，且不被裁字）
       · topbar 用 padding-bottom 给第二行留位，高度回到 ~86px。 */
  .shop-manage .topbar{
    position:relative !important;
    padding-bottom:46px !important;
  }
  /* 「模型 / 商品自动学习」下移到第三行：
     图标排现在占 y 38~70，这里 top:76px → 与图标排之间留 6px 呼吸，彻底不再粘住
     （老板第 1 条：「还和下面一行的按钮粘到一起了……这两个按钮要下移一点，
       不然要上面的按钮靠近」）。 */
  .shop-manage .topbar .top-actions > .top-model,
  .shop-manage .topbar .top-actions > .top-learn{
    order:2 !important;
    position:absolute !important; left:12px !important; top:76px !important;
    width:calc((100% - 32px) / 2) !important; height:30px !important;
    display:flex !important; align-items:center !important;
    font-size:10px !important; padding:0 !important;
    white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important;
  }
  .shop-manage .topbar .top-actions > .top-learn{
    left:calc(12px + (100% - 32px) / 2) !important;
  }
  /* 「精简回复」徽章在按钮 title 里已有完整信息，窄屏收起，宽度还给模型名 */
  .shop-manage .topbar .top-actions .top-model__llm,
  .shop-manage .topbar .top-actions .top-learn__llm{ display:none !important; }
  .shop-manage .topbar .top-actions .top-model .topbar-title strong,
  .shop-manage .topbar .top-actions .top-learn .topbar-title strong{
    font-size:10px !important; white-space:nowrap !important;
    overflow:hidden !important; text-overflow:ellipsis !important; min-width:0 !important;
  }
  /* 说明气泡改为右对齐展开，避免窄屏顶出屏幕（MOBILEFIX13 只限了宽没限方位） */
  .shop-manage .topbar .top-actions .top-model__tip,
  .shop-manage .topbar .top-actions .top-learn__tip{
    left:auto !important; right:0 !important;
    max-width:min(320px, calc(100vw - 70px)) !important;
  }

  /* ===== [R10-老板第2条] 问号按钮点击出提示内容 =====
     取证（375）：.top-model__tip-btn 是原厂 <button aria-label="接待模式与模型风格介绍">?</button>，
       但原厂**没有给它绑任何点击事件** —— 点击后 .top-model__tip 仍是
       visibility:hidden / opacity:0，就算 CSS 放行也永远不显示（内容其实在 DOM 里，完完整整）。
     另外两层坑：
       · .top-model / .top-learn 是 flex 容器，R9 为 ellipsis 加了 overflow:hidden →
         会被裁成 0 高，气泡本体也看不见
       · .top-model__tip 是 absolute，默认 z-index 只到 80，会被后续内容压住
     改法（JS 绑点击 + 这里放行）：
       · 点击 → 给 .top-model/.top-learn 加 .tip-open（放开 overflow），给 tip 加 .is-open
       · 再点一次 / 点页面别处 → 收起 */
  .shop-manage .topbar .top-actions > .top-model.tip-open,
  .shop-manage .topbar .top-actions > .top-learn.tip-open{
    overflow:visible !important; z-index:96 !important;
  }
  .shop-manage .topbar .top-actions .top-model__tip.is-open,
  .shop-manage .topbar .top-actions .top-learn__tip.is-open{
    visibility:visible !important; opacity:1 !important; pointer-events:auto !important;
  }
  /* 气泡内容在窄屏要能读：字号 + 换行放开 */
  .shop-manage .topbar .top-actions .top-model__tip p,
  .shop-manage .topbar .top-actions .top-learn__tip{
    font-size:11px !important; line-height:1.5 !important;
    white-space:normal !important; word-break:break-word !important;
  }
  .shop-manage .topbar .top-actions .top-model__tip{ top:38px !important; }
  .shop-manage .topbar .top-actions .top-learn__tip{ top:38px !important; }
}
