/* ==========================================================================
   design-v2.css —— UI 改版 · 第二层样式（对齐《UI设计稿/PC端网站风格.html》）
   --------------------------------------------------------------------------
   加载顺序：app.css 之后。同特异性命名规则后者胜出，只覆盖「壳层 + 新组件」，
   业务类（pd- / xs- / rt- / wo- / rc- / msg- 等前缀）一律不碰，保证功能零回退。

   双端策略
     PC（≥1024px）：网站后台仪表盘风 —— 亮蓝侧栏（#2B4ACB→#3563E9→#3E6BEE，
                    active 项白底蓝字）、白色顶栏（面包屑 + 全局搜索 + 作用域 +
                    铃铛 + 时钟 + 头像）、内容区 KPI 横排大数字卡 + 密集数据表。
     移动（<1024px）：原生 APP 风 —— 紧凑顶栏（品牌 + 铃铛）、底部 Tab、抽屉。

   色彩 / 密度令牌均取自设计稿，改样式只动本文件；改词只动 inventory.js 的那类
   「展示词」约定不适用于本文件（这里是纯壳层）。
   ========================================================================== */

/* ---------- 0. SVG 图标基础（sprite + <use>，stroke 走 currentColor） ---------- */
.ico {
  width: 18px; height: 18px; flex: 0 0 auto; display: block;
  fill: none; stroke: currentColor;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* 页面底色：设计稿 viewport 背景 #F4F6FB（app.css 是 #F7F9FC，后者胜出） */
body { background: #F4F6FB; }

/* ---------- 1. 顶栏：面包屑 + 全局搜索 + 头像菜单 ---------- */
.topbar-crumb {
  display: none; align-items: center; gap: 7px;
  min-width: 0; flex: 1 1 auto; padding-left: 2px;
}
.crumb-home {
  font-size: 12.5px; font-weight: 500; color: #98A2B3;
  white-space: nowrap; flex: 0 0 auto;
}
.crumb-sep { color: #98A2B3; font-size: 12.5px; flex: 0 0 auto; }
.crumb-group {
  font-size: 12.5px; font-weight: 500; color: #667085;
  white-space: nowrap; flex: 0 0 auto;
}
.crumb-cur {
  font-size: 14px; font-weight: 700; color: #101828;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0;
}

/* 全局搜索（仅 PC 显示；移动端靠各页自己的搜索框）—— 设计稿 .tb-search */
.topbar-search { display: none; position: relative; flex: 1 1 auto; max-width: 420px; min-width: 0; margin-left: 6px; }
.topbar-search .ico {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  width: 15px; height: 15px; color: #98A2B3; pointer-events: none;
}
.topbar-search input {
  width: 100%; height: 38px; padding: 0 12px 0 36px;
  border: 1px solid #E9ECF2; border-radius: 999px;
  background: #F2F4F7; font-size: 12.5px; color: #101828;
  transition: border-color .16s var(--ease), box-shadow .16s var(--ease), background .16s var(--ease);
}
.topbar-search input:focus {
  outline: none; border-color: var(--c-primary); background: var(--n-0);
  box-shadow: 0 0 0 3px var(--c-primary-ring);
}
.topbar-search input::placeholder { color: #98A2B3; }

/* 头像按钮 + 下拉菜单（PC）—— 设计稿 .avatar 36px 渐变圆 */
.avatar-btn {
  width: 36px; height: 36px; flex: 0 0 auto; padding: 0;
  border: none; background: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center; border-radius: 50%;
}
.avatar-btn .ava {
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, var(--c-primary), var(--c-accent));
  color: #fff; font-size: 14px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--sh-xs); transition: transform .16s var(--ease);
}
.avatar-btn:hover .ava { transform: scale(1.06); }
.user-menu {
  position: absolute; top: calc(100% + 8px); right: 0; z-index: 80;
  width: 218px; padding: 6px;
  background: var(--n-0); border: 1px solid var(--n-200);
  border-radius: var(--r-md); box-shadow: var(--sh-lg);
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: all .16s var(--ease);
}
.user-menu.open { opacity: 1; visibility: visible; transform: translateY(0); }
.user-menu-head { padding: 10px 12px 9px; border-bottom: 1px solid var(--n-100); margin-bottom: 4px; }
.um-name { font-size: 14px; font-weight: 700; color: var(--n-900); }
.um-meta { font-size: 12px; color: var(--n-500); margin-top: 2px; }
.user-menu-item {
  display: flex; align-items: center; gap: 9px; width: 100%;
  padding: 9px 12px; border: none; background: none; cursor: pointer;
  border-radius: var(--r-sm); font-size: 13.5px; color: var(--n-700); text-align: left;
}
.user-menu-item:hover { background: var(--n-50); color: var(--c-danger); }
.user-menu-item .ico { width: 15px; height: 15px; }

/* ---------- 2. 侧栏 + 顶栏 + 组件（PC ≥1024px）----------
   全部数值对照设计稿 P01–P13：侧栏亮蓝渐变 / active 白底蓝字 /
   顶栏 60px / 搜索胶囊 420×38 / 图标钮灰底 / 卡片 14 圆角 /
   KPI 横排 46px 图标 + 23px 大数 / 表格密集风。                        */
@media (min-width: 1024px) {
  :root { --w-side: 250px; }

  /* ---- 侧栏：亮蓝渐变 ---- */
  .sidebar {
    display: flex;                    /* 覆盖 app.css 的 display:block */
    flex-direction: column;
    background: linear-gradient(180deg, #2B4ACB 0%, #3563E9 62%, #3E6BEE 100%);
    border-right: none;
    padding: 16px 13px;
    overflow-y: hidden;               /* 滚动交给 #sidebarNav，用户卡沉底不动 */
  }
  /* 品牌区 */
  .side-brand {
    display: flex; align-items: center; gap: 11px;
    padding: 2px 6px 15px;
    border-bottom: 1px solid rgba(255, 255, 255, .15);
    margin-bottom: 6px;
  }
  .side-brand .brand-logo {
    width: 40px; height: 40px; font-size: 18px; font-weight: 800; border-radius: 12px;
    background: rgba(255, 255, 255, .2); box-shadow: none;
  }
  .side-brand-txt { min-width: 0; }
  .side-brand-name {
    color: #fff; font-size: 15.5px; font-weight: 800; letter-spacing: .02em;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .side-brand-sub {
    color: rgba(255, 255, 255, .75); font-size: 10.5px; margin-top: 1px;
    letter-spacing: .1em; white-space: nowrap;
  }
  /* 导航列表 */
  #sidebarNav { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 6px 0 10px; }
  .sidebar .nav-group-label {
    color: rgba(255, 255, 255, .55);
    font-size: 10.5px; font-weight: 700; letter-spacing: .1em;
    padding: 13px 10px 6px;
  }
  .sidebar .nav-item {
    color: rgba(255, 255, 255, .80);
    font-size: 13.5px; font-weight: 500;
    border-radius: 10px; padding: 9.5px 11px; margin-bottom: 2px;
  }
  .sidebar .nav-item:hover { background: rgba(255, 255, 255, .10); color: #fff; }
  .sidebar .nav-item .nav-ico { color: rgba(255, 255, 255, .80); }
  .sidebar .nav-item:hover .nav-ico { color: #fff; }
  /* active：设计稿 .snav.on —— 白底 + 深蓝字 + 投影 */
  .sidebar .nav-item.active {
    background: #fff; color: #2B4ACB; font-weight: 700;
    box-shadow: 0 5px 16px rgba(10, 24, 66, .28);
  }
  .sidebar .nav-item.active .nav-ico { color: #2B4ACB; }
  .sidebar .nav-count { background: rgba(255, 255, 255, .18); color: #fff; }
  .sidebar .nav-item.active .nav-count { background: rgba(53, 99, 233, .12); color: #2B4ACB; }
  /* 用户卡（沉底）—— 设计稿 .sfoot */
  .side-user {
    margin-top: auto; display: flex; align-items: center; gap: 10px;
    padding: 12px 4px 2px; border-top: 1px solid rgba(255, 255, 255, .15);
  }
  .side-user-av {
    width: 36px; height: 36px; flex: 0 0 auto; border-radius: 50%;
    background: rgba(255, 255, 255, .22); color: #fff; font-size: 14px; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
  }
  .side-user-info { min-width: 0; flex: 1 1 auto; }
  .side-user-name {
    color: #fff; font-size: 13px; font-weight: 700;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .side-user-meta {
    color: rgba(255, 255, 255, .75); font-size: 10.5px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .side-user .icon-btn {
    border-color: rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .04); color: rgba(255, 255, 255, .8);
  }
  .side-user .icon-btn:hover { background: rgba(255, 255, 255, .14); color: #fff; }
  .side-user .icon-btn .ico { width: 16px; height: 16px; }

  /* ---- 顶栏切 PC 形态 ---- */
  .topbar { padding: 0 22px; gap: 13px; border-bottom-color: #E9ECF2; }
  .topbar-crumb { display: flex; }
  .topbar-search { display: block; }
  .topbar-brand-m { display: none !important; }
  .topbar-user { position: relative; }
  /* 顶栏图标钮：设计稿 .tb-ico 灰底无边框 */
  .topbar .icon-btn {
    width: 38px; height: 38px; border-radius: 10px;
    border-color: transparent; background: #F2F4F7; color: #475467;
  }
  .topbar .icon-btn:hover { background: #E9ECF2; color: #101828; border-color: transparent; }
  .topbar .icon-btn .ico { width: 18px; height: 18px; }
  /* 作用域下拉：设计稿 .sp 白底描边胶囊 */
  .scope-select {
    height: 34px; max-width: 150px;
    padding: 0 28px 0 11px;
    border: 1px solid #E4E7EC; border-radius: 9px;
    background-color: #fff;
    font-size: 12.5px; font-weight: 600; color: #344054;
    background-position: right 9px center;
  }
  .scope-select:hover { border-color: #B2CCFF; color: #2B4ACB; }

  /* ---- 内容区：设计稿 .content ---- */
  .main { padding: 20px 26px; }
  /* 页面直接子栅格（仪表盘 KPI 行）补下行间距，与卡片_stack_一致 */
  #pageRoot > .grid { margin-bottom: 15px; }

  /* ---- 页头 / 按钮：设计稿 .phead .pb ---- */
  .page-title { font-size: 20px; font-weight: 800; }
  .page-desc { font-size: 12.5px; }
  .btn { border-radius: 9px; font-size: 13px; padding: 8px 14px; }
  .btn-primary { box-shadow: 0 4px 12px rgba(53, 99, 233, .26); }
  .btn-sm { padding: 5px 10px; font-size: 12px; border-radius: 8px; }

  /* ---- 卡片：设计稿 .pcard ---- */
  .card { border-radius: 14px; border-color: #E7EAF1; box-shadow: 0 1px 2px rgba(16, 24, 40, .04); }
  .card + .card { margin-top: 15px; }
  .card-head { padding: 12px 18px; border-bottom-color: #EEF1F6; }
  .card-title { font-size: 14.5px; }
  .card-count { background: #F2F4F7; color: #475467; }
  .card-body { padding: 16px 18px; }

  /* ---- 表格：设计稿 .tbl 密集风 ---- */
  .tbl th {
    background: #F9FAFB; color: #475467; font-size: 12px;
    padding: 9px 14px; border-bottom-color: #EAECF0;
  }
  .tbl td {
    padding: 9.5px 14px; border-bottom-color: #F2F4F7;
    font-size: 13px; color: #344054;
  }
  .tbl tbody tr:hover { background: #FAFBFF; }

  /* ---- KPI 横排大数字卡：设计稿 .kpi（46px 图标 + 23px 大数）---- */
  .kpi { padding: 14px 16px; border-radius: 14px; border-color: #E7EAF1; }
  .kpi-ico { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 13px; font-size: 21px; }
  .kpi-value { font-size: 23px; }
  .kpi-label { font-size: 12px; margin-top: 3px; }
  .kpi-foot { font-size: 11px; margin-top: 2px; }

  /* ---- 待办项：同 KPI 语言 ---- */
  .todo-item { padding: 14px 16px; border-radius: 14px; border-color: #E7EAF1; }
  .todo-ico { width: 46px; height: 46px; border-radius: 13px; }
  .todo-ico .ico { width: 22px; height: 22px; }
  .todo-num { font-size: 23px; }
  .todo-num small { font-size: 12px; }
  .todo-name { font-size: 12px; margin-top: 3px; }
  .todo-sub { font-size: 11px; margin-top: 2px; }

  /* ---- 快捷操作：设计稿 .qgrid5 ---- */
  .quick-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
  .quick-card, .op-card { border-radius: 13px; }
  .quick-ico, .op-ico { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 12px; font-size: 19px; }
  .quick-name, .op-name { font-size: 13.5px; }
  .quick-desc, .op-desc { font-size: 11px; }
}

/* 移动端：品牌 + 头像/退出收进抽屉，顶栏只留品牌与铃铛 */
.topbar-brand-m {
  display: flex; align-items: center; gap: 9px;
  min-width: 0; flex: 1 1 auto;
}
.topbar-brand-m .brand-logo { width: 30px; height: 30px; font-size: 13px; border-radius: 9px; }
.topbar-brand-m .bm-name {
  font-size: 14.5px; font-weight: 700; color: var(--n-900);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
@media (max-width: 1023px) {
  .topbar-user { display: none !important; }   /* 头像+退出：抽屉里已有 */
}

/* ---------- 3. 抽屉（移动端菜单）：轻量 APP 风 ---------- */
.drawer .nav-item { border-radius: 10px; }
.drawer .nav-item .nav-ico { color: var(--n-500); }
.drawer .nav-item:hover .nav-ico { color: var(--c-primary); }
.drawer .nav-item.active { background: var(--c-primary-soft); color: var(--c-primary); }
.drawer .nav-item.active .nav-ico { color: var(--c-primary); }
.drawer-user {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 8px 12px; margin-bottom: 6px;
  border-bottom: 1px solid var(--n-100);
}
.drawer-user .side-user-av { width: 32px; height: 32px; font-size: 13px; }
.du-name { font-size: 13.5px; font-weight: 700; color: var(--n-900); }
.du-meta { font-size: 11.5px; color: var(--n-500); }

/* ---------- 4. 底部 Tab：APP 风 ---------- */
.bottom-nav {
  background: rgba(255, 255, 255, .94);
  border-top: 1px solid var(--n-100);
  box-shadow: 0 -2px 14px rgba(16, 24, 40, .05);
}
.btab { color: var(--n-400); gap: 3px; padding: 7px 0 5px; }
.btab-ico { display: flex; }
.btab-ico .ico { width: 22px; height: 22px; }
.btab-label { font-size: 10.5px; letter-spacing: .02em; }
.btab.active { color: var(--c-primary); font-weight: 600; }

/* ---------- 5. 待办事项卡（仪表盘） ---------- */
.todo-list {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(228px, 1fr));
  gap: 10px; text-align: left;
}
.todo-item {
  display: flex; align-items: center; gap: 12px; min-width: 0;
  padding: 13px 14px; text-align: left;
  border: 1px solid var(--n-200); border-radius: var(--r-md);
  background: var(--n-0); cursor: pointer;
  transition: border-color .15s var(--ease), box-shadow .15s var(--ease), transform .15s var(--ease);
}
.todo-item:hover { border-color: var(--c-primary); box-shadow: var(--sh-sm); transform: translateY(-1px); }
.todo-ico {
  width: 42px; height: 42px; flex: 0 0 auto; border-radius: var(--r-sm);
  display: flex; align-items: center; justify-content: center;
}
.todo-ico .ico { width: 21px; height: 21px; }
.todo-body { min-width: 0; flex: 1 1 auto; }
.todo-num {
  font-size: 21px; font-weight: 700; color: var(--n-900); line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
.todo-num small { font-size: 12px; font-weight: 600; color: var(--n-500); margin-left: 3px; }
.todo-name {
  font-size: 12.5px; color: var(--n-500); margin-top: 1px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.todo-sub { font-size: 11.5px; color: var(--n-400); margin-top: 2px; }
.todo-item.is-alert { border-color: #FBC7C3; background: linear-gradient(135deg, #FFF7F6, #FFFFFF); }
.todo-item.is-alert .todo-num { color: var(--c-danger); }
.tone-red    { background: var(--c-danger-soft);  color: #B42318; }
.tone-orange { background: var(--c-warning-soft); color: #B54708; }
.tone-blue   { background: var(--c-primary-soft); color: var(--c-primary); }
.tone-green  { background: var(--c-success-soft); color: #067647; }
.tone-purple { background: var(--c-accent-soft);   color: #5925DC; }

/* ---------- 6. 消息中心（对齐设计稿 09）：橙红渐变强提醒 + 图标瓦片卡 + 类型 chips ---------- */
/* 6a. 置顶强提醒：橙红渐变卡（标题行+白底徽标 / 说明 / 明细行 / 通栏白按钮） */
.xs-alert {
  margin: 0 0 12px; padding: 14px 14px 13px;
  border-radius: 14px;
  background: linear-gradient(135deg, #FF8A3D 0%, #F04438 62%, #E31B23 100%);
  color: #fff;
  box-shadow: 0 6px 18px rgba(240, 68, 56, .30);
}
.xs-alert-h {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; font-size: 15px; font-weight: 700; letter-spacing: .2px;
}
.xs-alert-badge {
  flex: none; background: #fff; color: #D92D20;
  font-size: 12px; font-weight: 700; line-height: 1;
  padding: 5px 11px; border-radius: 999px;
  box-shadow: 0 2px 6px rgba(160, 20, 20, .22);
}
.xs-alert-b { margin-top: 7px; font-size: 13px; line-height: 1.65; opacity: .97; }
.xs-alert-i {
  margin-top: 8px; padding: 7px 10px;
  background: rgba(255, 255, 255, .15); border-radius: 8px;
  font-size: 12.5px; line-height: 1.75; opacity: .95;
}
.xs-alert-btn {
  display: block; width: 100%; margin-top: 11px;
  border: none; border-radius: 9px; padding: 9px 0;
  background: #fff; color: #D92D20;
  font-size: 14px; font-weight: 700; cursor: pointer;
  box-shadow: 0 2px 8px rgba(160, 20, 20, .18);
}
.xs-alert-btn:active { opacity: .85; }

/* 6b. 消息卡：40px 图标瓦片 + 标题行 + 未读红点 */
.msg-card { position: relative; }
.msg-ico {
  flex: none; width: 40px; height: 40px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; line-height: 1;
}
.ti-orange { background: var(--c-warning-soft); }
.ti-blue   { background: var(--c-primary-soft); }
.ti-cyan   { background: #DFF6F9; }
.ti-gray   { background: var(--n-100); }
.msg-head-main { flex: 1 1 auto; min-width: 0; }
.msg-title-line { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.msg-head .msg-meta { margin-top: 3px; width: 100%; }
.msg-card.unread { border-color: #FECDC9; }
.msg-card.unread::after {
  content: ''; position: absolute; top: 10px; right: 10px;
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--c-danger); box-shadow: 0 0 0 3px rgba(240, 68, 56, .14);
}

/* 6c. 类型筛选 chips（全部 / 发货确认 / 取货点申请 / 待补物流） */
.msg-chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 10px; }
.mchip {
  flex: none; border: 1px solid var(--n-200); background: #fff;
  color: var(--n-600); border-radius: 999px;
  padding: 5px 13px; font-size: 12.5px; line-height: 1.4; cursor: pointer;
}
.mchip.on {
  background: var(--c-primary); border-color: var(--c-primary);
  color: #fff; font-weight: 600;
}
@media (max-width: 640px) {
  .xs-alert { padding: 13px 12px 12px; border-radius: 12px; }
  .xs-alert-h { font-size: 14.5px; }
  .msg-ico { width: 36px; height: 36px; border-radius: 10px; font-size: 18px; }
  .mchip { padding: 5px 12px; }
}

/* 强制确认弹窗里的消息卡：左侧红边线，和普通消息卡区分开 */
.msg-card.is-todo {
  border-color: #FBC7C3; border-left: 3px solid var(--c-danger);
  box-shadow: 0 2px 10px rgba(240, 68, 56, .05);
}

/* ---------- 7. 库存页「可补物流」置顶条：与新版告警体系对齐 ---------- */
.adv-alert {
  border-left-width: 4px;
  box-shadow: 0 2px 10px rgba(240, 68, 56, .05);
  font-weight: 500;
}

/* ---------- 8. 登录页：左品牌（亮蓝紫渐变 + 双圆装饰）右表单 ---------- */
.login-shell {
  width: 100%; max-width: 980px;
  display: grid; grid-template-columns: 1fr;
  background: #F7F8FB;
  border: 1px solid #E4E7EC;
  border-radius: 20px;
  box-shadow: 0 22px 55px rgba(16, 24, 40, .20);
  overflow: hidden;
}
.login-aside {
  display: none;
  flex-direction: column; justify-content: space-between;
  padding: 44px 42px 32px;
  background: linear-gradient(150deg, #2B4ACB 0%, #3563E9 55%, #6C5CE7 100%);
  color: #fff; position: relative; overflow: hidden;
}
/* 设计稿 login-left 的双圆装饰：右上大圆环 + 左上弥散圆 */
.login-aside::after {
  content: ''; position: absolute; right: -110px; bottom: -110px;
  width: 340px; height: 340px; border-radius: 50%;
  border: 56px solid rgba(255, 255, 255, .08);
}
.login-aside::before {
  content: ''; position: absolute; left: -90px; top: -90px;
  width: 260px; height: 260px; border-radius: 50%;
  background: rgba(255, 255, 255, .06);
}
.la-brand { display: flex; align-items: center; gap: 12px; position: relative; z-index: 1; }
.la-brand .brand-logo {
  width: 52px; height: 52px; font-size: 22px; font-weight: 800; border-radius: 15px;
  background: rgba(255, 255, 255, .2); box-shadow: none;
}
.la-name { font-size: 22px; font-weight: 800; letter-spacing: .02em; }
.la-sub { font-size: 10.5px; color: rgba(255, 255, 255, .7); letter-spacing: .14em; margin-top: 2px; }
.la-slogan {
  font-size: 24px; font-weight: 800; line-height: 1.55; letter-spacing: .01em;
  margin: 36px 0 28px; position: relative; z-index: 1;
}
.la-slogan em { font-style: normal; color: #D5E2FF; }
.la-list { display: flex; flex-direction: column; gap: 16px; position: relative; z-index: 1; }
.la-list li { display: flex; align-items: center; gap: 13px; font-size: 13px; color: rgba(255, 255, 255, .85); }
/* 设计稿 .ll-feat .fi：40px 半透明圆角方 + 白图标 */
.la-list .ico {
  width: 40px; height: 40px; flex: 0 0 auto;
  border-radius: 11px; background: rgba(255, 255, 255, .16);
  color: #fff; padding: 10px;
}
.la-txt { min-width: 0; }
.la-txt b { display: block; font-size: 13.5px; font-weight: 700; color: #fff; }
.la-txt span { display: block; font-size: 11px; color: rgba(255, 255, 255, .72); margin-top: 2px; }
.la-foot {
  font-size: 11.5px; color: rgba(255, 255, 255, .55); line-height: 1.9;
  margin-top: 32px; position: relative; z-index: 1;
}
/* 右栏：浅灰底 + 居中白卡（设计稿 .login-right / .lr-card） */
.login-shell .login-card {
  max-width: none;
  border: none; box-shadow: none; border-radius: 0;
  background: #F7F8FB;
  padding: 40px;
  display: flex; align-items: center; justify-content: center;
  min-width: 0;
}
.lr-card {
  width: 100%; max-width: 400px;
  background: #fff; border: 1px solid #E7EAF1; border-radius: 16px;
  padding: 30px 28px;
  box-shadow: 0 18px 44px rgba(16, 24, 40, .10);
}
@media (min-width: 900px) {
  .login-shell { grid-template-columns: 46fr 54fr; }
  .login-aside { display: flex; }
}
/* 移动端：只剩右栏登录卡（外壳退场，白卡直接浮在页面渐变上） */
@media (max-width: 899px) {
  .login-shell { max-width: 430px; background: transparent; border: 0; box-shadow: none; border-radius: 0; }
  .login-shell .login-card { padding: 0; background: transparent; }
  .lr-card { border: 0; box-shadow: none; background: transparent; padding: 0; }
}

/* ==========================================================================
   业务模块对齐设计稿（V2d）
   数值全部对照《UI设计稿/PC端网站风格.html》对应分页：
   徽标 .bd / 工具条 .ptool / 分段 .ctabs / 分页 .pager/.pg / 空值 .miss /
   VIP .vip / 危险区 .danger-card / 详情四宫格 .stats4b/.st4 / 入口卡 .opcard
   ========================================================================== */

/* ---- 徽标：设计稿 .bd —— 圆角矩形（不是药丸）、11.5px/600、间距 3px ---- */
.badge { border-radius: 6px; padding: 2.5px 8px; gap: 3px; }

/* ---- 工具条：设计稿 .ptool —— 白底 + 下边线，去掉灰底 ---- */
.toolbar { background: transparent; padding: 12px 18px; }

/* ---- 分段控件：设计稿 .ctabs —— 激活项用墨色（不是主题蓝）+ 细投影 ---- */
.seg { border-radius: 10px; }
.seg-btn { padding: 6.5px 14px; }
.seg-btn.active { color: #101828; box-shadow: 0 1px 3px rgba(16, 24, 40, .12); }

/* ---- 空值占位：设计稿 .miss —— 弱化斜体（不是红色，红色留给真错误）---- */
.miss { color: #98A2B3; font-style: italic; }

/* ---- VIP 徽标：设计稿 .vip —— 橙红渐变、10px、圆角 5 ---- */
.vip-tag {
  background: linear-gradient(135deg, #FF7A2E, #F5484B);
  border-radius: 5px; padding: 1.5px 6px; font-size: 10px; letter-spacing: .3px;
}

/* ---- 异地发货分页：设计稿 .pager / .pg ---- */
.xs-pager {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: 10px 18px; border-top: 1px solid #EEF1F6;
  font-size: 12.5px; color: #667085;
}
.xs-pager .btn {
  min-width: 28px; height: 28px; padding: 0 9px;
  border: 1px solid #E4E7EC; border-radius: 8px;
  background: #fff; color: #344054; font-size: 12px; font-weight: 500;
}
.xs-pager .btn:hover:not(:disabled) { background: #F9FAFB; border-color: #D0D5DD; }
.xs-pager .btn:disabled { opacity: .45; cursor: not-allowed; }
.xs-pager span { margin: 0 4px; font-variant-numeric: tabular-nums; }

/* ---- 入口卡 hover：设计稿 .opcard:hover —— 蓝描边 + 蓝雾投影（危险卡保持红）---- */
.op-card:not(.danger):hover {
  border-color: #B2CCFF;
  box-shadow: 0 8px 22px rgba(53, 99, 233, .10);
  transform: none;
}

/* ---- 数据管理危险区：设计稿 .danger-card（红色虚线 + 左图标 + 右侧危险键）---- */
.danger-card {
  display: flex; align-items: center; gap: 16px;
  margin-top: 15px; padding: 18px 22px;
  border: 1px dashed #F04438; border-radius: 14px; background: #FFFBFB;
}
.danger-card .di {
  width: 44px; height: 44px; flex: 0 0 44px;
  border-radius: 12px; background: #FEE4E2;
  display: flex; align-items: center; justify-content: center; font-size: 20px;
}
.danger-card .dn { display: block; font-size: 14.5px; font-weight: 800; color: #B42318; }
.danger-card .dd { display: block; font-size: 12px; color: #B42318; opacity: .85; margin-top: 3px; line-height: 1.6; }
.danger-card .btn { margin-left: auto; flex: 0 0 auto; }
@media (max-width: 640px) {
  .danger-card { flex-wrap: wrap; }
  .danger-card .btn { margin-left: 0; width: 100%; }
}

/* ---- 商品详情四宫格统计：设计稿 .stats4b / .st4（P04）---- */
.pd-stats4b { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; }
.pd-st4 { background: #F8FAFD; border: 1px solid #EEF1F6; border-radius: 12px; padding: 11px 13px; min-width: 0; }
.pd-st4 .k { font-size: 11px; color: #667085; white-space: nowrap; }
.pd-st4 .v { font-size: 19px; font-weight: 800; margin-top: 2px; font-variant-numeric: tabular-nums; line-height: 1.15; }
.pd-st4 .v.warn { color: #C4320A; }
@media (max-width: 640px) {
  .pd-stats4b { grid-template-columns: repeat(2, 1fr); }
}

/* ---- 系统设置：设计稿 P09 .setlayout / .setnav / .setbody ---- */
.setlayout {
  display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 15px;
  align-items: start;
}
/* V2p：导航 sticky 固定（topbar 60px + 12px 间距），右侧内容滚动时菜单不跟着走 */
.setnav {
  position: sticky; top: 72px; align-self: start;
  background: #fff; border: 1px solid #E7EAF1; border-radius: 14px;
  padding: 10px; display: flex; flex-direction: column; gap: 3px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, .04);
}
.setnav-btn {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 12px; border: 0; background: none; border-radius: 10px;
  font-family: inherit; font-size: 13.5px; font-weight: 500; color: #344054;
  text-align: left; width: 100%; cursor: pointer;
  transition: background .15s;
}
.setnav-btn:hover { background: #F9FAFB; }
.setnav-btn.on { background: #EFF4FF; color: #2B4ACB; font-weight: 700; }
.setnav-btn .ico { width: 17px; height: 17px; flex: 0 0 auto; }
.setnav-btn span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.setbody { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
/* 移动端：左导航转横向芯片行（不 sticky，避免与顶栏层级打架） */
@media (max-width: 900px) {
  .setlayout { grid-template-columns: 1fr; }
  .setnav { position: static; flex-direction: row; overflow-x: auto; scrollbar-width: none; }
  .setnav::-webkit-scrollbar { display: none; }
  .setnav-btn { flex: 0 0 auto; white-space: nowrap; }
}

/* ---- 异地发货两级表：设计稿 P07 tr.grp / tr.det ---- */
.xs-grp { table-layout: fixed; }
.xs-all-wrap { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.xs-all-wrap input { width: 18px; height: 18px; accent-color: var(--c-primary); cursor: pointer; }
.xs-grp-sum { font-weight: 600; color: #2B4ACB; }
/* 明细行改「一物一行」（原 colspan 面板已废）：cells 恢复常规内边距，
   这里的特异性 (.xs-grp tr.xs-det > td) 与 app.css 旧面板规则相同、靠后置加载胜出 */
.xs-grp tr.xs-det > td {
  padding: 9.5px 14px; background: #fff; border-top: 0;
  color: #475467; font-size: 12.5px;
}
.xs-grp tr.xs-det .xs-ditem { padding: 0; background: none; border-radius: 0; }
.xs-grp tr.xs-det .xs-ditem:hover { background: none; }
/* 表格形态下的主行灰底 / 明细行 ↳ 缩进（转卡片后不适用，用容器查询圈住） */
@supports (container-type: inline-size) {
  @container (min-width: 1081px) {
    .xs-grp tr.xs-cust:not(.xs-picked) > td { background: #F6F8FC; }
    .xs-grp tr.xs-cust:not(.xs-picked):hover > td { background: #EDF1F9; }
    .xs-grp tr.xs-det > td:first-child { padding-left: 36px; position: relative; }
    .xs-grp tr.xs-det > td:first-child::before {
      content: "↳"; position: absolute; left: 17px; color: #98A2B3;
    }
    .xs-grp tr.xs-det:hover > td { background: #FAFBFF; }
  }
}
/* 已选操作条：表格底部通栏（设计稿 P07 .pfoot） */
.xs-selbar {
  margin: 0; border: 0; border-top: 1px solid #EEF1F6;
  border-radius: 0 0 14px 14px; background: #FBFCFE;
  padding: 12px 18px;
}

/* ---- 库存 / 异地发货 tabs 行：设计稿 P03 / P07 的口径提示 ---- */
.inv-tabs-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  padding: 12px 16px 0;
}
.inv-tabs-hint { font-size: 12px; color: #667085; white-space: nowrap; }

/* ---- 下次自动更新卡：设计稿 P12（大号时间 + 距今 + 最近一次）---- */
.nextrun {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 18px; align-items: center;
}
.nextrun-time {
  font-size: 30px; font-weight: 800; line-height: 1.1;
  font-variant-numeric: tabular-nums; letter-spacing: .02em; color: #101828;
}
.nextrun-sub { font-size: 12.5px; color: #475467; margin-top: 4px; }
.nextrun-last { border-left: 1px solid #F2F4F7; padding-left: 18px; min-width: 0; }
.nextrun-last-k { font-size: 11.5px; color: #667085; }
.nextrun-last-v { font-size: 13.5px; font-weight: 600; color: #101828; margin-top: 3px; }
@media (max-width: 640px) {
  .nextrun { grid-template-columns: 1fr; gap: 12px; }
  .nextrun-last { border-left: 0; padding-left: 0; border-top: 1px solid #F2F4F7; padding-top: 12px; }
}

/* ==========================================================================
   V2e · 用户对照设计稿逐页复核后的第二遍对齐
   P02 仪表盘 / P03 徽标色板 / P04 商品详情弹窗头 / 收货向导步骤条
   ========================================================================== */

/* ---- 徽标色板：逐色对齐设计稿 .bd 系列（P03~P13 全部徽标同源）----
   设计稿取色：黄 FEF0C7/B54708 · 绿 D1FADF/027A48 · 红 FEE4E2/B42318 ·
   蓝 D1E9FF/175CD3 · 灰 EAECF0/475467 · 橙 FFEAD5/C4320A · 紫 EBE9FE/5925DC ·
   青 D9F3FB/0B7094。后置加载覆盖 app.css 的旧色。 */
.badge-gray   { background: #EAECF0; color: #475467; }
.badge-blue   { background: #D1E9FF; color: #175CD3; }
.badge-purple { background: #EBE9FE; color: #5925DC; }
.badge-green  { background: #D1FADF; color: #027A48; }
.badge-yellow { background: #FEF0C7; color: #B54708; }
.badge-red    { background: #FEE4E2; color: #B42318; }
.badge-cyan   { background: #D9F3FB; color: #0B7094; }
.badge-orange { background: #FFEAD5; color: #C4320A; }

/* ---- 仪表盘（P02）：KPI 标签行内链接 / 快捷操作 qcard5 / 生日双表 ---- */
.kpi-label a,
.kpi-label a:visited {
  color: var(--c-primary); font-weight: 600; text-decoration: none; cursor: pointer;
}
.kpi-label a:hover { text-decoration: underline; }

.quick-grid { grid-template-columns: repeat(5, 1fr); gap: 12px; }
.quick-card {
  display: flex; align-items: center; gap: 12px;
  padding: 12px; border-radius: 13px;
  border: 1px solid #EEF1F6; background: #FBFCFE;
  text-align: left;
}
.quick-card:hover {
  border-color: #B2CCFF;
  box-shadow: 0 8px 22px rgba(53, 99, 233, .10);
  transform: none;
}
.quick-ico {
  width: 42px; height: 42px; flex: 0 0 42px; border-radius: 12px; font-size: 19px;
}
.quick-name { font-size: 13.5px; font-weight: 700; }
.quick-desc { font-size: 11px; color: #98A2B3; margin-top: 2px; }
@media (max-width: 900px) {
  .quick-grid { grid-template-columns: repeat(2, 1fr); }
}

/* 生日双表：设计稿 g2.mr（左 1.35 右 1），窄屏退化为上下堆叠 */
.dash-g2 {
  display: grid; grid-template-columns: 1.35fr 1fr; gap: 15px;
  align-items: start;
}
.dash-g2 .card { margin: 0; }
/* 两列卡本身不再作为查询容器：表格形态改由 #pageRoot 宽度判定。
   否则每个卡 ~500px 宽会命中 max-width:1080 的整表转卡片规则，
   仪表盘生日双表永远出不来设计稿 P02 的并排密集表格形态。 */
.dash-g2 .card-body { container-type: normal; }
.dash-g2 .tbl th, .dash-g2 .tbl td { padding: 9px 10px; }
@media (max-width: 1100px) {
  .dash-g2 { grid-template-columns: 1fr; }
}

/* ---- 商品详情弹窗头（P04 .pm-h）：图标方块 + 标题/副行 + 状态徽标 ----
   openModal 传 titleHtml 时给 #modalTitle 挂 has-rich，激活 flex 布局 */
.modal-title.has-rich {
  display: flex; align-items: center; gap: 12px; flex-wrap: nowrap;
}
.pdh-ico {
  width: 46px; height: 46px; flex: 0 0 46px; border-radius: 12px;
  background: rgba(53, 99, 233, .10);
  display: flex; align-items: center; justify-content: center; font-size: 21px;
  overflow: hidden;
}
.pdh-ico.pdh-img img {
  width: 100%; height: 100%; object-fit: cover; border-radius: 12px; display: block;
}
.pdh-main { min-width: 0; flex: 1 1 auto; }
.pdh-t {
  font-size: 16px; font-weight: 800; color: var(--n-900); line-height: 1.3;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pdh-s { display: block; font-size: 11.5px; font-weight: 500; color: #667085; margin-top: 2px; }
.pdh-s .mono { font-size: 11px; }
.pdh-bds { display: flex; gap: 6px; flex: 0 0 auto; margin-left: 2px; }

/* 信息区（P04 .igrid / .icell）：两列键值对，键 64px 弱化、值加重 */
.pd-igrid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 9px 18px;
  padding: 13px 14px;
  border: 1px solid #EEF1F6; border-radius: 12px; background: #FBFCFE;
}
.pd-icell { display: flex; gap: 8px; font-size: 12.5px; align-items: baseline; min-width: 0; }
.pd-icell .k { color: #667085; flex: 0 0 64px; }
.pd-icell .v {
  color: #344054; font-weight: 500; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
@media (max-width: 560px) {
  .pd-igrid { grid-template-columns: 1fr; }
}

/* ---- 收货向导步骤条（移动端设计稿 05 的 .steps 气泡条，PC 弹窗内同款）----
   注意类名用 wiz- 前缀：.rc-step 已被向导内的分节标题占用 */
.wiz-steps { display: flex; align-items: flex-start; padding: 2px 6px 14px; }
.wiz-step {
  flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px;
  position: relative; min-width: 0;
}
.wiz-step:not(:first-child)::before {
  content: ""; position: absolute; top: 13px;
  left: calc(-50% + 19px); right: calc(50% + 19px);
  height: 2px; background: #E4E7EC;
}
.wiz-step.done:not(:first-child)::before { background: #12B76A; }
.wiz-bub {
  width: 27px; height: 27px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 12.5px; font-weight: 800;
  background: #E4E7EC; color: #fff;
  position: relative; z-index: 1; transition: background .15s, box-shadow .15s;
}
.wiz-step.done .wiz-bub { background: #12B76A; }
.wiz-step.cur .wiz-bub {
  background: var(--c-primary); box-shadow: 0 0 0 4px rgba(53, 99, 233, .16);
}
.wiz-lb {
  font-size: 11px; color: #667085; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; max-width: 100%;
}
.wiz-step.cur .wiz-lb { color: var(--c-primary); font-weight: 700; }
.wiz-step.done { cursor: pointer; }
.wiz-pane { display: none; }
.wiz-pane.cur { display: block; }

/* ---- 库存分栏：异地发货与库存两栏「稍稍分开」（用户 2026-10-13）---- */
.seg-div {
  width: 1px; align-self: stretch; flex: 0 0 1px;
  background: #C6CBD4; margin: 6px 10px;
}

/* ---- 全屏图片灯箱：商品图 / 物流单照片点击放大 ---- */
#imgZoom {
  position: fixed; inset: 0; z-index: 3000;
  background: rgba(16, 24, 40, .74);
  display: none; align-items: center; justify-content: center;
  padding: 34px; cursor: zoom-out;
}
#imgZoom.open { display: flex; }
#imgZoom img {
  max-width: 100%; max-height: 100%;
  border-radius: 10px;
  box-shadow: 0 30px 70px rgba(16, 24, 40, .45);
  background: #fff;
}

/* ---- 商品详情大图（用户反馈 46px 头像块看不清，加可点放大的大图区）---- */
.pd-photo { display: flex; justify-content: center; }
.pd-photo img {
  max-width: 100%; max-height: 250px;
  border-radius: 12px; border: 1px solid #EEF1F6;
  cursor: zoom-in; background: #F8FAFD;
}

/* ---- 取货点归属：申请-审核流 ---- */
.pcreq-status { display: inline-flex; }
.pcreq-old { color: #98A2B3; }
.pcreq-arrow { color: #98A2B3; margin: 0 4px; }


/* ════════════════════════════════════════════════════════════════════
   V2g —— 侧栏品牌 / 用户卡 / 顶栏时钟 / 退货徽标（对齐设计稿 P01）
   ════════════════════════════════════════════════════════════════════ */

/* 退货徽标胶囊：设计稿 .cnt（白透底，active 变蓝系，靠右） */
.sidebar .nav-count {
  margin-left: auto; flex: 0 0 auto;
  font-size: 10px; font-weight: 700;
  padding: 1px 7px; border-radius: 999px;
}

@media (min-width: 1024px) {
  /* 侧栏退出钮：设计稿 .lo 幽灵钮（无底无框，悬停白透底） */
  .side-user .icon-btn {
    width: 34px; height: 34px;
    border: none; background: none;
    color: rgba(255, 255, 255, .8);
    padding: 6px; border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
  }
  .side-user .icon-btn:hover {
    background: rgba(255, 255, 255, .14);
    color: #fff; border: none;
  }
  .side-user .icon-btn .ico { width: 17px; height: 17px; }

  /* 头像菜单里的服务器时钟行（顶栏不再放时钟，对齐设计稿） */
  .um-clock {
    display: flex; align-items: center; gap: 6px;
    margin-top: 7px; padding-top: 7px;
    border-top: 1px solid var(--n-100);
    font-size: 12px; font-weight: 600; color: #475467;
    font-variant-numeric: tabular-nums;
  }
  .um-clock .ico { width: 14px; height: 14px; color: #98A2B3; }
}

/* ---- V2g 仪表盘（P02）：卡头文字链接 / 快捷卡名称描述同行 / 全部模块弹层 ---- */
.txt-lnk {
  font-size: 12.5px; color: var(--c-primary); font-weight: 600;
  text-decoration: none; cursor: pointer; white-space: nowrap;
}
.txt-lnk:hover { text-decoration: underline; }

.quick-card .quick-text {
  display: flex; align-items: baseline; gap: 8px;
  min-width: 0; overflow: hidden;
}
.quick-card .quick-desc { margin-top: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.kpi-unit { margin-left: 2px; }

.allmod-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
}
.allmod-item {
  display: flex; align-items: center; gap: 9px;
  padding: 12px 13px; border: 1px solid var(--n-200); border-radius: 12px;
  background: #FBFCFE; cursor: pointer;
  font-size: 13.5px; font-weight: 600; color: var(--n-800);
  transition: border-color .15s var(--ease), background .15s var(--ease);
  text-align: left;
}
.allmod-item:hover { border-color: var(--c-primary); background: #F5F8FF; color: var(--c-primary); }
.allmod-ico { font-size: 17px; flex: 0 0 auto; }
@media (max-width: 640px) { .allmod-grid { grid-template-columns: repeat(2, 1fr); } }

/* ---- V2g 库存 / 异地发货（P03 / P07）：ptool 无标签工具条 + pin 输入件 ---- */
.ptool {
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
  padding: 12px 16px; border-bottom: 1px solid #EEF1F6;
}
.pin {
  height: 36px; border: 1px solid #D0D5DD; border-radius: 9px;
  padding: 0 12px; font-size: 13px; background: #fff; color: #101828;
  outline: 0; min-width: 0;
}
.pin:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px var(--c-primary-ring); }
.pin.grow { flex: 1 1 200px; }
.pin::placeholder { color: #98A2B3; }
select.pin {
  appearance: none; -webkit-appearance: none; padding-right: 30px; cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat: no-repeat; background-position: right 10px center;
}
.pin-date { width: 150px; flex: 0 0 auto; color: #475467; }

/* ---- V2g 分页条（设计稿 P03 .pager）---- */
.pager {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  flex-wrap: wrap; padding: 10px 16px;
  border-top: 1px solid #EEF1F6; font-size: 12.5px; color: #667085;
}
.pgs { display: flex; gap: 5px; align-items: center; flex-wrap: wrap; }
.pg {
  min-width: 28px; height: 28px; border-radius: 8px;
  border: 1px solid #E4E7EC; background: #fff;
  font-size: 12px; color: #344054; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; padding: 0 6px;
}
.pg:hover:not(:disabled):not(.on) { border-color: var(--c-primary); color: var(--c-primary); }
.pg.on { background: var(--c-primary); border-color: var(--c-primary); color: #fff; font-weight: 700; }
.pg:disabled { opacity: .45; cursor: not-allowed; }
.pg-dots { color: #98A2B3; padding: 0 2px; }

/* ---- V2g 异地发货常驻底栏（设计稿 P07 .pfoot，未选也显示）---- */
.xs-pfoot {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  flex-wrap: wrap; padding: 12px 16px;
  border-top: 1px solid #EEF1F6; background: #FBFCFE;
  border-radius: 0 0 var(--r-md, 12px) var(--r-md, 12px);
}
.xpf-left { font-size: 12.5px; color: #475467; }
.xpf-left b { color: #101828; }
.xpf-right { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }
@media (max-width: 720px) {
  .xs-pfoot { align-items: stretch; flex-direction: column; }
  .xpf-right .btn-primary { flex: 1 1 auto; }
}

/* ---- V2h 仪表盘生日双表等高（设计稿 P02 .g2：两卡同高，行少的一侧留白） ---- */
.dash-g2 .card { display: flex; flex-direction: column; }
.dash-g2 .card-body { flex: 1 1 auto; min-height: 0; }
.dash-g2 .card-body .tbl-wrap { min-height: 100%; }

/* ---- V2h 异地发货独立 TAB（不与正常/核销完毕胶囊相连） ---- */
.tab-std {
  height: 34px; padding: 0 16px; margin-left: 12px;
  border: 1px solid #D0D5DD; border-radius: 10px;
  background: #fff; cursor: pointer;
  font-size: 12.5px; font-weight: 600; color: #475467;
  transition: all .15s var(--ease);
}
.tab-std:hover { border-color: var(--c-primary); color: var(--c-primary); }
.tab-std.active {
  background: var(--c-primary); border-color: var(--c-primary);
  color: #fff; font-weight: 700;
  box-shadow: 0 3px 10px rgba(53, 99, 233, .3);
}

/* ---- V2h 取货点店员申请流：草稿下拉高亮 + 内联申请按钮 ---- */
.xs-pick-draft.draft {
  border-color: #F79009 !important;
  box-shadow: 0 0 0 3px rgba(247, 144, 9, .18);
}
.cp-act { display: inline-flex; gap: 6px; align-items: center; }

/* ---- V2h 商品详情（P04）：内嵌盒子（入库记录 / 订单明细）+ 折叠区 ---- */
.pd-embed {
  border: 1px solid #EEF1F6; border-radius: 12px;
  overflow: hidden;
}
.pd-embed-h {
  display: flex; justify-content: space-between; align-items: center;
  padding: 9px 13px; background: #F9FAFB; border-bottom: 1px solid #EEF1F6;
  font-size: 12.5px; font-weight: 700; color: #344054;
}
.pd-embed .tbl th, .pd-embed .tbl td { padding: 8px 10px; font-size: 12.5px; }
.pd-embed .pd-orders-peek { padding: 10px 13px; font-size: 12.5px; color: #475467; line-height: 1.7; }
.pd-embed-empty { padding: 18px; text-align: center; color: #98A2B3; font-size: 12.5px; }
.pd-fold {
  border: 1px solid #EEF1F6; border-radius: 12px; padding: 0 13px;
}
.pd-fold summary {
  padding: 9px 0; font-size: 12.5px; font-weight: 700; color: #344054;
  cursor: pointer; user-select: none;
}
/* 头部商品图块可点击放大 */
.pdh-img { cursor: zoom-in; }

/* 等高修正：早先 .dash-g2 的 align-items:start 会阻止两卡拉伸到同高 */
.dash-g2 { align-items: stretch; }

/* ---- V2i 商品详情大图条：版面不动，四宫格上方加一条可点放大的大图 ---- */
.pd-photobar {
  position: relative;
  display: flex; justify-content: center; align-items: center;
  background: #F8FAFD; border: 1px solid #EEF1F6; border-radius: 12px;
  padding: 10px; margin-bottom: 12px;
}
.pd-photobar img {
  max-width: 100%; max-height: 240px;
  border-radius: 10px; cursor: zoom-in; background: #fff;
}
.pd-photobar-tip {
  position: absolute; right: 12px; bottom: 10px;
  padding: 3px 10px; border-radius: 999px;
  background: rgba(16, 24, 40, .62); color: #fff;
  font-size: 11px; pointer-events: none;
}

/* ════════════════════════════════════════════════════════════════════
   V2i 移动端（<1024px）对齐《移动端APP风格.html》
   —— 顶栏 tnav / 底部毛玻璃 tabbar / 卡片流组件 / hero 首页
   ════════════════════════════════════════════════════════════════════ */
@media (max-width: 1023.9px) {
  /* ---- 顶栏 → 设计稿 .tnav：白底、页面大标题居左、图标钮在右 ---- */
  .topbar {
    height: 56px; padding: 0 12px; gap: 10px;
    background: #fff; border-bottom: 1px solid #E7EAF1;
  }
  .topbar .menu-btn { display: none; }        /* 入口收进底部「更多」 */
  .topbar-brand-m { display: none !important; }
  .topbar-crumb { display: flex; flex: 1 1 auto; }
  .crumb-group, .crumb-sep { display: none !important; }
  .crumb-cur {
    font-size: 17px; font-weight: 800; color: #101828;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  .topbar-search { display: none !important; }
  .topbar .icon-btn {
    width: 34px; height: 34px; border-radius: 10px;
    background: #F2F4F7; border: none; color: #344054;
  }
  .topbar .icon-btn:active { background: #E9ECF2; }
  /* 门店/直播间切换胶囊（设计稿 store-chip 形态） */
  .scope-compact {
    height: 34px; border-radius: 999px; border: none;
    background: rgba(53, 99, 233, .08); color: var(--c-primary);
    font-size: 12px; font-weight: 600; padding: 0 12px;
  }
  /* ---- 底部 tabbar：毛玻璃 + 80px + 图标 22 + 10px 文字 ---- */
  .bottom-nav {
    height: auto; padding: 8px 6px calc(16px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, .94);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    border-top: 1px solid #E7EAF1;
  }
  .btab {
    flex-direction: column; gap: 3px;
    color: #98A2B3; font-size: 10px; font-weight: 600;
  }
  .btab .btab-ico { font-size: 22px; line-height: 1; }
  .btab .btab-ico .ico { width: 22px; height: 22px; }
  .btab.active { color: var(--c-primary); background: none; }
  .btab.active .btab-ico { transform: none; }
  .btab.active .btab-ico .ico { stroke-width: 2.1; }

  /* ---- 通用组件形态（设计稿：16px 圆角卡 / 渐变主按钮 / seg 分段） ---- */
  .card { border-radius: 16px; box-shadow: 0 1px 3px rgba(16, 24, 40, .05); }
  .btn-primary {
    background: linear-gradient(135deg, #3563E9, #6C5CE7);
    box-shadow: 0 6px 16px rgba(53, 99, 233, .30);
  }
  .seg { background: #E9EDF4; border-radius: 12px; padding: 3px; }
  .seg .seg-btn { border-radius: 9.5px; }
  .seg .seg-btn.active { box-shadow: 0 1px 3px rgba(16, 24, 40, .14); }

  /* 抽屉里的导航项更接近「更多」页列表 */
  .drawer .nav-item { border-radius: 12px; }
}

/* ---- V2i 移动端首页（设计稿 02）：hero + 悬浮统计卡 + 宫格 + 待办 + 生日列表 ---- */
@media (max-width: 1023.9px) {
  .mb-hero {
    flex: 0 0 auto;
    background: linear-gradient(135deg, #3563E9, #6C5CE7);
    color: #fff; padding: 2px 18px 56px;
    border-radius: 0 0 30px 30px;
    position: relative; overflow: hidden;
  }
  .mb-hero::after {
    content: ""; position: absolute; right: -48px; top: -52px;
    width: 180px; height: 180px; border-radius: 50%;
    background: rgba(255, 255, 255, .10);
  }
  .mb-hero::before {
    content: ""; position: absolute; left: -34px; bottom: -46px;
    width: 120px; height: 120px; border-radius: 50%;
    background: rgba(255, 255, 255, .07);
  }
  .mb-hero-row {
    display: flex; align-items: center; justify-content: space-between;
    position: relative; z-index: 2;
  }
  .mb-brand { display: flex; align-items: center; gap: 10px; }
  .mb-brand-logo {
    width: 38px; height: 38px; border-radius: 12px;
    background: rgba(255, 255, 255, .22);
    display: flex; align-items: center; justify-content: center;
    font-size: 17px; font-weight: 800;
    -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  }
  .mb-brand-name { font-size: 16.5px; font-weight: 800; display: block; }
  .mb-brand-sub { font-size: 10.5px; opacity: .82; display: block; margin-top: 1px; }
  .mb-bell {
    width: 36px; height: 36px; border: 0; border-radius: 50%;
    background: rgba(255, 255, 255, .18); color: #fff;
    display: flex; align-items: center; justify-content: center;
    position: relative; cursor: pointer;
  }
  .mb-bell .ico { width: 18px; height: 18px; }
  .mb-bell i {
    position: absolute; top: 6px; right: 6px;
    width: 8px; height: 8px; border-radius: 50%;
    background: #FF9F43; border: 1.5px solid #4E68E8;
  }
  .mb-store-chip {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(255, 255, 255, .18); border-radius: 999px;
    padding: 6.5px 12px; font-size: 12px; font-weight: 600;
    margin-top: 16px; position: relative; z-index: 2;
  }
  .mb-hello { font-size: 21px; font-weight: 800; margin-top: 14px; position: relative; z-index: 2; }
  .mb-hello-sub { font-size: 11.5px; opacity: .85; margin-top: 4px; position: relative; z-index: 2; }

  .mb-scroll { padding: 0 14px 20px; margin-top: -44px; position: relative; z-index: 5; }
  .mb-stat-card {
    background: #fff; border-radius: 16px;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .10);
    padding: 14px 4px; display: flex; margin-bottom: 12px;
  }
  .mb-sc { flex: 1; text-align: center; position: relative; }
  .mb-sc + .mb-sc::before {
    content: ""; position: absolute; left: 0; top: 16%;
    height: 68%; width: 1px; background: #E7EAF1;
  }
  .mb-sc-v { font-size: 21px; font-weight: 800; font-variant-numeric: tabular-nums; }
  .mb-sc-v small { font-size: 11px; font-weight: 600; color: #667085; margin-left: 1px; }
  .mb-sc-k { font-size: 11px; color: #667085; margin-top: 2px; }

  .mb-qgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px 4px; }
  .mb-qtile {
    display: flex; flex-direction: column; align-items: center; gap: 7px;
    border: 0; background: none; padding: 0; cursor: pointer;
  }
  .mb-qico {
    width: 46px; height: 46px; border-radius: 15px;
    display: flex; align-items: center; justify-content: center;
    font-size: 21px; background: #EFF1F5;
  }
  .mb-qtile:nth-child(4n+1) .mb-qico { background: rgba(11, 165, 236, .10); }
  .mb-qtile:nth-child(4n+2) .mb-qico { background: rgba(53, 99, 233, .10); }
  .mb-qtile:nth-child(4n+3) .mb-qico { background: rgba(245, 72, 75, .10); }
  .mb-qtile:nth-child(4n+4) .mb-qico { background: rgba(122, 90, 248, .10); }
  .mb-qname { font-size: 11.5px; font-weight: 600; color: #344054; }

  .mb-todo { display: flex; align-items: center; gap: 11px; padding: 11px 0; }
  .mb-todo + .mb-todo { border-top: 1px solid #F2F4F7; }
  .mb-todo-ico {
    width: 38px; height: 38px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; flex: 0 0 auto;
  }
  .mb-todo-b { flex: 1; min-width: 0; }
  .mb-todo-t { font-size: 13.5px; font-weight: 700; display: block; }
  .mb-todo-s { font-size: 11.5px; color: #667085; margin-top: 2px; display: block; }

  .mb-crow { display: flex; align-items: center; gap: 10px; padding: 10px 0; }
  .mb-crow + .mb-crow { border-top: 1px solid #F2F4F7; }
  .mb-ava {
    width: 40px; height: 40px; border-radius: 50%; flex: 0 0 auto;
    background: linear-gradient(135deg, #3563E9, #6C5CE7);
    color: #fff; display: flex; align-items: center; justify-content: center;
    font-size: 15px; font-weight: 700;
  }
  .mb-crow-b { flex: 1; min-width: 0; }
  .mb-cname {
    font-size: 13.5px; font-weight: 700; color: #101828;
    display: flex; align-items: center; gap: 6px;
  }
  .mb-csub { font-size: 11.5px; color: #667085; margin-top: 2px; display: block; }
  .mb-pill {
    padding: 7px 14px; border-radius: 999px; border: 0;
    font-size: 12px; font-weight: 600; cursor: pointer; flex: 0 0 auto;
  }
  .mb-pill-b { background: rgba(53, 99, 233, .09); color: var(--c-primary); }
  .mb-pill-r { background: rgba(245, 72, 75, .10); color: #B42318; }
}

/* ---- V2i 移动端库存页（设计稿 03）：chips 筛选 + 商品卡流 + fab ---- */
@media (max-width: 1023.9px) {
  .mb-inv-top { padding: 12px 0 10px; }
  .mb-inv-chip {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(53, 99, 233, .08); color: var(--c-primary);
    border-radius: 999px; padding: 6.5px 12px;
    font-size: 12px; font-weight: 600;
  }
  .mb-sbox {
    display: flex; align-items: center; gap: 8px;
    background: #fff; border: 1px solid #E7EAF1; border-radius: 12px;
    padding: 9.5px 12px; color: #98A2B3; margin-bottom: 10px;
  }
  .mb-sbox .ico { width: 17px; height: 17px; }
  .mb-sbox input {
    border: 0; outline: 0; flex: 1; min-width: 0;
    font-size: 13px; color: #101828; background: none;
  }
  .mb-sbox input::placeholder { color: #98A2B3; }
  .mb-chips {
    display: flex; gap: 8px; overflow-x: auto;
    padding: 1px 0 3px; scrollbar-width: none; margin-bottom: 10px;
  }
  .mb-chips::-webkit-scrollbar { display: none; }
  .mb-chip {
    flex: 0 0 auto; padding: 6px 13px; border-radius: 999px;
    background: #fff; border: 1px solid #E7EAF1;
    font-size: 12px; font-weight: 500; color: #344054; cursor: pointer;
  }
  .mb-chip.on { background: var(--c-primary); border-color: var(--c-primary); color: #fff; font-weight: 600; }
  .mb-pills { display: flex; gap: 8px; margin: 0 0 12px; }
  .mb-pill-gray { background: #F2F4F7; color: #475467; }

  .mb-pcard {
    background: #fff; border-radius: 16px; padding: 12px;
    margin-bottom: 10px; box-shadow: 0 1px 3px rgba(16, 24, 40, .05);
    cursor: pointer;
  }
  .mb-prow { display: flex; gap: 11px; align-items: flex-start; }
  .mb-pthumb {
    width: 52px; height: 52px; border-radius: 13px; flex: 0 0 auto;
    background: #EFF1F5; display: flex; align-items: center; justify-content: center;
    font-size: 23px; overflow: hidden;
  }
  .mb-pthumb img { width: 100%; height: 100%; object-fit: cover; }
  .mb-pmain { flex: 1; min-width: 0; }
  .mb-pname { font-size: 13.5px; font-weight: 700; line-height: 1.35; display: block; }
  .mb-pmeta { font-size: 11px; color: #667085; margin-top: 3px; display: block; }
  .mb-pbds { display: flex; flex-direction: column; gap: 4px; align-items: flex-end; flex: 0 0 auto; }
  .mb-pstats {
    display: flex; margin-top: 10px; padding-top: 9px;
    border-top: 1px solid #F2F4F7;
  }
  .mb-pstat { flex: 1; text-align: center; position: relative; }
  .mb-pstat + .mb-pstat::before {
    content: ""; position: absolute; left: 0; top: 18%;
    height: 64%; width: 1px; background: #F2F4F7;
  }
  .mb-pstat b { font-size: 15px; font-weight: 800; display: block; font-variant-numeric: tabular-nums; }
  .mb-pstat span { font-size: 10.5px; color: #98A2B3; margin-top: 1px; display: block; }

  .mb-more {
    display: block; width: 100%; padding: 11px 0;
    border: 0; border-radius: 12px; background: #fff;
    font-size: 12.5px; font-weight: 600; color: #475467;
    cursor: pointer; margin-bottom: 10px;
  }
  .mb-listfoot {
    text-align: center; font-size: 11.5px; color: #98A2B3;
    padding: 6px 0 10px;
  }
}

/* ---- V2j ①详情嵌入表独立类：绕开 .modal-body 容器查询的竖版转卡
   （860px 弹窗 <1080px 会把 .tbl 整表转卡，占大量篇幅全是空白） ---- */
.pd-ib-wrap { overflow-x: auto; }
.pd-ib-tbl {
  width: 100%; border-collapse: collapse; font-size: 12.5px;
}
.pd-ib-tbl th {
  text-align: left; font-weight: 700; color: #667085;
  padding: 8px 10px; border-bottom: 1px solid #EEF1F6;
  background: #FBFCFE; white-space: nowrap;
}
.pd-ib-tbl th.num, .pd-ib-tbl td.num { text-align: right; }
.pd-ib-tbl th.act, .pd-ib-tbl td.act { text-align: center; }
.pd-ib-tbl td {
  padding: 8px 10px; border-bottom: 1px solid #F5F7FA;
  color: #344054;
}
.pd-ib-tbl tbody tr:last-child td { border-bottom: none; }
.pd-ib-tbl tbody tr:hover { background: #F9FBFF; }

/* ---- V2j ②仪表盘生日双表与快捷操作卡的间距 = 卡片标准间距 ---- */
.dash-g2 { margin-top: var(--gap, 16px); }

/* ==========================================================================
   V2k —— 移动端第 5 轮反馈（2026-10-13）
   ①消息/铃铛按钮图案放大：设计稿 .iconbtn 34px 内 .i 是 22px，此前只有 18px
   ②库存页 fab 废弃（挡住最后一卡）；「± 调整库存」进 pills；seg 两连 + 独立 TAB
   ③移动端异地发货按设计稿 08 重做：.mb-xc 客户归拢卡 + 底部固定汇总条
   ========================================================================== */
@media (max-width: 1023.9px) {
  /* ① 顶栏消息钮 + 仪表盘 hero 铃铛：V2l 用户反馈图案仍小。
     🔴 关键坑：app.css 全局 `svg { max-width:100%; height:auto }`，而 .icon-btn
        padding 1px 6px → 内容区恰 22px，写多大都会被 max-width 压回 22。
        必须 max-width:none 才放得开。 */
  .topbar .icon-btn .ico { width: 22px; height: 22px; }
  #msgBtn { padding: 1px 4px; }
  #msgBtn .ico { width: 26px; height: 26px; max-width: none; stroke-width: 2.3; }
  .mb-bell { width: 40px; height: 40px; }
  .mb-bell .ico { width: 24px; height: 24px; max-width: none; stroke-width: 2.2; }

  /* ② 独立 TAB 在窄屏去掉 PC 的左距；pills 可横滑防溢出 */
  .tab-std { margin-left: 0; height: 36px; }
  .mb-pills { overflow-x: auto; scrollbar-width: none; flex-wrap: nowrap; }
  .mb-pills::-webkit-scrollbar { display: none; }
  .mb-pills .mb-pill { flex: 0 0 auto; }
  .mb-hrow { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; }
  .mb-hrow .pin-date { flex: 1 1 0; min-width: 0; }

  /* ③ 设计稿 08 .xcard：客户归拢卡 */
  .mb-xc {
    background: #fff; border-radius: 16px; padding: 13px;
    margin-bottom: 10px; box-shadow: 0 1px 3px rgba(16, 24, 40, .05);
  }
  .mb-xc.xs-picked { box-shadow: 0 0 0 1.5px var(--c-primary), 0 1px 3px rgba(16, 24, 40, .05); }
  .mb-xc .xc-h { display: flex; align-items: center; gap: 10px; cursor: pointer; }
  .mb-xc .xc-h .xs-cust-ck { flex: 0 0 auto; width: 17px; height: 17px; accent-color: var(--c-primary); }
  .mb-xc .xc-cust { flex: 1; font-size: 13.5px; font-weight: 700; min-width: 0; }
  .mb-xc .xc-cust .dim { font-weight: 500; font-size: 12px; color: #98A2B3; }
  .mb-xc .xc-num { font-size: 11.5px; color: var(--c-primary); font-weight: 700; white-space: nowrap; }
  .mb-xc .xc-chev { color: #98A2B3; transition: transform .15s; }
  .mb-xc.open .xc-chev { transform: rotate(180deg); }
  .mb-xc .xc-items { display: none; margin-top: 10px; background: #F8FAFD; border-radius: 11px; padding: 4px 11px; }
  .mb-xc.open .xc-items { display: block; }
  .mb-xc .xc-item {
    display: flex; align-items: center; gap: 9px;
    padding: 8px 0; font-size: 12px; cursor: pointer;
  }
  .mb-xc .xc-item + .xc-item { border-top: 1px solid #EEF1F6; }
  .mb-xc .xc-item .xs-sel-ck { flex: 0 0 auto; width: 15px; height: 15px; accent-color: var(--c-primary); }
  .mb-xc .xc-item .xi-b { flex: 1; min-width: 0; color: #101828; font-weight: 600; }
  .mb-xc .xc-item .dim { font-size: 11px; color: #667085; white-space: nowrap; }
  .mb-xc .xc-warn { font-size: 11px; color: #B54708; margin-top: 8px; }
  .mb-xc .xc-dest { font-size: 11px; color: #667085; margin-top: 8px; }

  /* 底部汇总条（设计稿 .xbar）：固定悬停在 tabbar 上方，未选也显示 */
  .mb-xs-fixed {
    position: fixed; left: 12px; right: 12px;
    bottom: calc(84px + env(safe-area-inset-bottom, 0px));
    z-index: 35;
  }
  .mb-xs-fixed .xs-pfoot {
    border: 1px solid #E7EAF1; border-radius: 14px; background: #fff;
    box-shadow: 0 10px 26px rgba(16, 24, 40, .16);
  }
  .mb-xs-fixed .xpf-left { font-size: 11.5px; }
  .xs-mobile-spacer { height: 92px; }

  /* ④ iOS 聚焦缩放根因：焦点输入框字号 <16px 时 Safari 会强制放大页面且不回弹。
     移动端所有可输入元素一律 ≥16px，聚焦即不再缩放。 */
  input, select, textarea { font-size: 16px !important; }
}

/* ==========================================================================
   V2m —— 第 7 轮反馈（2026-10-14）
   ①异地发货「去确认取货点」按钮与未确认提示文案移除（取货点管理统一走
     「客户取货点设置」唯一入口）——逻辑改动在 inventory.js
   ②退货管理重做：PC 对齐 P05（ctabs 页签 + ptool 三条件 + 表格），
     移动对齐 06（seg 页签 + 下拉筛选 + rcard 卡流）
   ========================================================================== */
/* ---- PC（P05）：卡头页签 + 口径提示 ---- */
.rt-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; padding: 12px 16px 0;
}
.rt-hint { font-size: 12px; color: #667085; white-space: nowrap; }
.ctabs { display: flex; gap: 4px; }
.ctabs button {
  border: 0; background: none; cursor: pointer;
  font-size: 13.5px; font-weight: 600; color: #667085;
  padding: 7px 12px; border-radius: 9px;
  transition: all .15s var(--ease);
}
.ctabs button:hover { color: var(--c-primary); }
.ctabs button.on { background: #EFF4FF; color: var(--c-primary); font-weight: 700; }

/* ---- 移动（06）：退货卡流 ---- */
@media (max-width: 1023.9px) {
  .rt-rcard {
    background: #fff; border-radius: 16px; padding: 13px;
    margin-bottom: 10px; box-shadow: 0 1px 3px rgba(16, 24, 40, .05);
  }
  /* 滞留本店整卡红调（设计稿：滞留本店整卡红调提醒） */
  .rt-rcard.rt-stay {
    background: #FFF5F5;
    box-shadow: inset 0 0 0 1px #FECDCD, 0 2px 6px rgba(180, 35, 24, .08);
  }
  .rt-rcard .rc-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .rt-rcard .rc-name { font-size: 13.5px; font-weight: 700; color: #101828; min-width: 0; }
  .rt-rcard .rc-sub { font-size: 11.5px; color: #667085; margin-top: 5px; }
  .rt-rcard .rc-meta { font-size: 11px; color: #98A2B3; margin-top: 3px; }
  .rt-rcard .rc-act {
    display: flex; gap: 8px; margin-top: 11px;
    overflow-x: auto; scrollbar-width: none;
  }
  .rt-rcard .rc-act::-webkit-scrollbar { display: none; }
  .rt-rcard .rc-act .mb-pill { flex: 0 0 auto; }
}

/* ========== V2o：入库记录弹窗工具条两行排版（2026-10-14） ========== */
.ib-row {
  display: flex; flex-wrap: wrap; gap: 8px;
  align-items: center; min-width: 0;
}


/* ========== V2o2：入库记录移动端卡片流（8 列表格在 390px 被压碎，2026-10-14） ========== */
.ib-card {
  background: #fff; border: 1px solid #EEF1F6; border-radius: 14px;
  padding: 12px 13px; margin-bottom: 10px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, .05);
}
.ib-card.revoked { opacity: .55; }
.ib-card.revoked .ibc-name { text-decoration: line-through; }
.ibc-h { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.ibc-name { flex: 1 1 auto; min-width: 0; font-size: 13.5px; font-weight: 700; color: #101828; line-height: 1.45; }
.ibc-qty { flex: none; font-size: 15px; font-weight: 800; line-height: 1.3; }
.ibc-sub { margin-top: 4px; font-size: 12px; color: #667085; line-height: 1.5; }
.ibc-meta { margin-top: 3px; font-size: 11.5px; color: #98A2B3; }
.ibc-note {
  margin-top: 7px; padding: 5px 9px; border-radius: 7px;
  background: #F7F8FB; font-size: 12px; color: #475467; line-height: 1.5;
}
.ibc-foot { margin-top: 9px; display: flex; align-items: center; justify-content: space-between; min-height: 20px; }


/* ==== V2p：设置页右侧列宽约 950px < 1080 容器阈值，用户表被误转竖卡（设计稿 P09 是正常表格）。
   关掉该列容器的 inline-size，让表格形态判定上移到 #pageRoot（PC 宽视口保持表格；移动端窄视口仍正常转卡） ==== */
.setbody .card-body { container-type: normal; }
