/* ============================================================
   批量抠图 — 融合视图样式（#view-cutout）
   与导航站共用 main.css 的设计 token，保证视觉统一。
   皮肤 DNA：零圆角感由 --r-card / --r-btn 承担；只用 1px 发丝线分块。
   ============================================================ */

#view-cutout { padding: 0; }
.cxo { position: relative; max-width: var(--tool-maxw); margin: 0 auto; padding: 12px 20px 16px; }

/* ---------- 顶栏：模型状态 / 计数 / 清空（就绪后只剩一行） ----------
   做成与主外壳同款的卡条（1px 发丝线 + 白底 + 圆角 + 投影），
   不再是一行裸文字浮在页面背景上 —— 格式转换页整页只有「卡」，
   抠图页多出来的模型条也得是同一套卡片语言。 */
.cxo-top {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-bottom: var(--tool-gap, 14px);
  padding: 9px 14px;
  border: 1px solid var(--border); border-radius: var(--r-card);
  background: var(--surface); box-shadow: var(--shadow-1);
}
/* 模型就绪后整条顶栏隐藏（加载提示已完成使命） */
.cxo-top[hidden] { display: none; }
/* 模型状态簇：模型就绪后整簇隐藏（只留右侧「N 张 / 清空」） */
.cxo-mstatus { display: flex; align-items: center; gap: 8px; min-width: 0; }
.cxo-mstatus[hidden] { display: none; }
.cxo-mdot {
  width: 8px; height: 8px; border-radius: 50%; flex: none;
  background: var(--border-strong);
}
.cxo-mdot.busy { background: var(--accent-text, #4488ff); animation: cxo-pulse 1.1s ease-in-out infinite; }
.cxo-mdot.ok { background: #2bb673; }
.cxo-mdot.err { background: #e5484d; }
@keyframes cxo-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .28; } }
.cxo-mname { font-size: var(--hx-t13); font-weight: 700; color: var(--text); letter-spacing: .01em; }
.cxo-mhint { font-size: var(--hx-t12); color: var(--text-3); min-width: 0; }
.cxo-top-sp { flex: 1 1 auto; }
.cxo-tcount { font-size: var(--hx-t12-5); color: var(--text-2); font-variant-numeric: tabular-nums; }

#view-cutout .loadbar {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-card); padding: 9px 14px; margin-bottom: 12px;
}
#view-cutout .loadbar .bar {
  flex: 1 1 160px; height: 6px; border-radius: 3px;
  background: var(--icon-bg); overflow: hidden;
}
#view-cutout .loadbar .fill {
  height: 100%; width: 0; background: var(--text);
  border-radius: 3px; transition: width .25s var(--ease);
}
#view-cutout .loadbar .txt { font-size: var(--hx-t12); color: var(--text-2); }

/* ---------- 主布局：与「格式转换」同构 ----------
   结构（预览卡 + 参数卡 + 跨宽列表条）与外壳都走共享层 tool-layout.css 的 .tl-*，
   这里只留抠图特有的高度链。
   136 = 主栅格上方（面包屑 + 顶栏）+ 底部内边距，与有图态同一基准。 */

/* 空状态：投放区铺满一屏（与「格式转换」「批量调整尺寸」同一口径）
   156 = 面包屑 + 顶栏（卡条 44px + 14 间距）+ 上下内边距 */
.cxo-empty { height: max(560px, calc(100vh - 158px)); }
.cxo-empty.h { display: none; }
.cxo-empty .cxo-dropzone { height: 100%; min-height: 0; }

/* 有图态的大外壳：与 #cvTool 同款（1px 线 + 白底 + 圆角 + 投影 + 12/14 内边距）
   height 写死（不是 min-height）：主栅格行按 minmax(0,1fr) 压缩，
   参数卡内容装不下时在卡内滚动（.tl-side-bd 自带 overflow-y:auto），
   不会像以前那样把右栏顶出网格、盖住下面的文件列表条（1366 实测压住 53px）。 */
#view-cutout #cxoTool {
  display: flex; flex-direction: column;
  border: 1px solid var(--border); border-radius: var(--r-card);
  background: var(--surface); padding: 12px 14px; box-shadow: var(--shadow-1);
  box-sizing: border-box;
  height: max(560px, calc(100vh - 158px));
}
#view-cutout #cxoTool.h { display: none; }
/* 主栅格只有一行（预览 + 参数），按 1fr 吃掉剩余高度：
   行高被定死，两张卡都拉到同高，右栏内容多时在卡内滚动 */
#view-cutout #cxoTool > .cxo-main {
  flex: 1 1 auto; min-height: 0;
  grid-template-rows: minmax(0, 1fr);
}
#view-cutout #cxoTool > .cxo-thumbsbar,
#view-cutout #cxoTool > .cxo-result { flex: none; }

/* 整块视图都是投放目标：拖到任意位置都可以 */
.cxo.over::after {
  content: ""; position: absolute; inset: 6px; z-index: 20; pointer-events: none;
  border: 2px dashed var(--accent); border-radius: var(--r-card);
  background: rgba(68,136,255,.05);
}

/* ---------- 空状态投放区 ----------
   边框 / 底色 / 投影由 helix.css 的「拖放区」统一规则提供
   （#legacy-app .cxo-dropzone：1px 发丝实线 + 透明底 + 无投影），
   与 .drop / #dz / #rzDrop 完全一致 —— 这里不要再写虚线 + 白卡，
   否则抠图页会和别的工具页长得不一样。 */
.cxo-dropzone {
  grid-area: stage; min-height: 430px;
  border-radius: var(--r-card);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 28px 20px; cursor: pointer;
  transition: border-color .15s var(--ease), background .15s var(--ease);
}
.cxo-dropzone .drop-icon {
  width: 44px; height: 44px; margin: 0 auto 12px; border-radius: var(--r-btn);
  background: var(--icon-bg); color: var(--icon-fg); display: grid; place-items: center;
}
.cxo-dropzone .drop-icon svg { width: 22px; height: 22px; }
.cxo-dropzone .t1 { font-size: var(--hx-t14); font-weight: 700; color: var(--text); }
.cxo-dropzone .t2 { color: var(--text-3); margin-top: 6px; line-height: 1.6; max-width: 560px; }
.cxo-dropzone .drop-btns { display: flex; justify-content: center; gap: 10px; margin-top: 14px; }

/* ---------- 预览舞台 ----------
   卡片外观与标题行走共享层 .tl-stage / .tl-stage-hd / .tl-stage-t，
   这里只留抠图特有的对比工具条。 */
.cxo-stage-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* ---------- 右侧操作栏 ----------
   卡片外观、标题行、内容区都走共享层 .tl-side / .tl-side-hd / .tl-side-bd，
   参数项走共享层 .tl-param-grid / .tl-param（与「格式转换」同款：
   标签行独占一行、右端跟数值，控件在标签行下面一整行），
   这里只留抠图特有的分段控件与导出区。 */
.cxo-side { min-width: 0; }
/* 参数卡内容区：底边留白收一点，1366 下右栏才装得下不用滚 */
#view-cutout .cxo-side-bd { padding-bottom: 10px; }
/* 「开始抠图」：与格式转换的按钮行同一个间距（14px） */
#view-cutout #cxoExec { margin-top: 14px; }
/* 导出区：与上方参数之间用一条发丝线分开 */
.cxo-export { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.cxo-sub-hd {
  font-size: var(--hx-t12); color: var(--text-3); letter-spacing: .06em;
  margin-bottom: 8px;
}
/* 分段控件（512 / 768 / 1024）：整组落进浅槽，未选透明、选中主题色 */
#view-cutout .cxo-seg {
  display: inline-flex; gap: 2px; padding: 2px; width: 100%;
  background: var(--icon-bg); border-radius: var(--r-btn);
}
#view-cutout .cxo-seg-i {
  flex: 1 1 0; min-width: 0; height: 24px; padding: 0 10px; border: 0;
  border-radius: 4px; background: transparent; color: var(--text-2);
  font-size: var(--hx-t12-5); font-family: inherit; line-height: 1;
  cursor: pointer; font-variant-numeric: tabular-nums;
}
#view-cutout .cxo-seg-i:hover { color: var(--text); }
#view-cutout .cxo-seg-i[aria-pressed="true"] {
  background: var(--accent); color: #fff;
}
#view-cutout .cxo-seg-i:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
#view-cutout .cxo-seg-i:disabled { opacity: .45; cursor: not-allowed; }
#view-cutout .btn-block { width: 100%; justify-content: center; margin-top: 8px; }
.cxo-dl-check {
  display: flex; align-items: center; gap: 8px;
  font-size: var(--hx-t12-5); color: var(--text-2); cursor: pointer;
}
.cxo-dl-check input { accent-color: var(--accent); width: 15px; height: 15px; cursor: pointer; flex: none; }
.cxo-dl-check select {
  flex: 1 1 auto; min-width: 0; height: 26px; padding: 0 4px;
  border: 1px solid var(--border); border-radius: var(--r-btn);
  background: var(--surface); color: var(--text); font-size: var(--hx-t12); cursor: pointer;
}
.cxo-dl-check select:disabled { opacity: .45; cursor: default; }

/* ---------- 卡片面板（兼容旧结构） ---------- */
#view-cutout .panel {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-card); margin-bottom: 16px;
  box-shadow: var(--shadow-1); overflow: hidden;
}
#view-cutout .panel-hd {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  flex-wrap: wrap; padding: 12px 14px; background: var(--bg);
  border-bottom: 1px solid var(--border); font-size: var(--hx-t13); color: var(--text-2);
}
#view-cutout .panel-hd .muted { color: var(--text-3); font-weight: 400; }
#view-cutout .panel-ft {
  padding: 12px 14px; border-top: 1px solid var(--border);
  display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap;
}
#view-cutout .opt-body { padding: 14px; }
#view-cutout .h { display: none; }
/* 作者样式里的 display 会盖掉 [hidden] 的 UA 规则，这里显式兜住 */
#view-cutout .cxo-cmp[hidden],
#view-cutout .cxo-stage-c[hidden],
#view-cutout .cxo-stage-inner[hidden] { display: none; }

/* ---------- 遗留结构（面板 / 参数行） ----------
   参数项已经统一到共享层 .tl-param-grid / .tl-param，
   下面这些是旧结构里还剩的兼容规则，抠图页已不再使用。 */
.cxo-note {
  margin: 12px 0 0; font-size: var(--hx-t12); color: var(--text-3); line-height: 1.65;
}
#view-cutout .opt-check {
  display: flex; align-items: flex-start; gap: 8px; margin: 10px 0 0;
  font-size: var(--hx-t12-5); color: var(--text-2); line-height: 1.6; cursor: pointer;
}
#view-cutout .opt-check input { accent-color: var(--text); width: 15px; height: 15px; cursor: pointer; flex: none; margin-top: 2px; }
#view-cutout select {
  height: var(--ctl-h); padding: 0 10px; border: 1px solid var(--border);
  border-radius: var(--r-btn); background: var(--bg); color: var(--text);
  font-size: var(--hx-t12-5); outline: none;
}

/* ---------- 列表 ---------- */
#view-cutout .list-body { max-height: 340px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; }
#view-cutout .rrow {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 14px; border-bottom: 1px solid var(--border);
  font-size: var(--hx-t12-5); color: var(--text-2);
}
#view-cutout .rrow:last-child { border-bottom: none; }
#view-cutout .rrow.err { color: #e5484d; }
#view-cutout .rthumb {
  width: 34px; height: 34px; flex: none; object-fit: cover;
  border: 1px solid var(--border); border-radius: var(--r-btn); background: var(--bg);
}
#view-cutout .rthumb.alpha {
  background-color: #fff;
  background-image:
    linear-gradient(45deg, #e6e8eb 25%, transparent 25%, transparent 75%, #e6e8eb 75%),
    linear-gradient(45deg, #e6e8eb 25%, transparent 25%, transparent 75%, #e6e8eb 75%);
  background-size: 10px 10px;
  background-position: 0 0, 5px 5px;
}
#view-cutout .rname { flex: 1 1 auto; min-width: 0; overflow: hidden; }
#view-cutout .rname .rn { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
#view-cutout .rdims { flex: none; color: var(--text-3); white-space: nowrap; }
#view-cutout .rdims .arrow { color: var(--text-3); margin: 0 3px; }
#view-cutout .rdims .to { color: var(--text); }
#view-cutout .rsize { flex: none; color: var(--text-3); min-width: 62px; text-align: right; }
#view-cutout .rerr { flex: 1 1 auto; color: #e5484d; font-size: var(--hx-t12); }
#view-cutout .rrm {
  flex: none; width: 22px; height: 22px; border-radius: var(--r-btn);
  display: grid; place-items: center; cursor: pointer; color: var(--text-3);
  font-size: var(--hx-t15); line-height: 1; user-select: none;
}
#view-cutout .rrm:hover { background: var(--icon-bg); color: var(--text); }
#view-cutout .fmt {
  flex: none; font-size: var(--hx-t12); color: var(--text-3);
  border: 1px solid var(--border); border-radius: 3px; padding: 1px 6px;
}
#view-cutout .fmt.ok { color: #2bb673; border-color: rgba(43,182,115,.4); }
#view-cutout .fmt.busy { color: var(--accent-text, #4488ff); border-color: rgba(68,136,255,.4); }
#view-cutout .fmt.err { color: #e5484d; border-color: rgba(229,72,77,.4); }
#view-cutout .fmt.trim { color: var(--text-2); }

/* ---------- 按钮 ---------- */
#view-cutout .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  font: inherit; font-size: var(--hx-t12-5); line-height: 1;
  height: var(--ctl-h); padding: 0 var(--ctl-px);
  border: 1px solid var(--border); border-radius: var(--r-btn);
  background: var(--surface); color: var(--text); cursor: pointer;
  transition: background .12s var(--ease), border-color .12s var(--ease);
}
/* 次级按钮 hover：浅灰底（与格式转换一致）。
   必须排除 .btn-p：主按钮（.btn-p）走全站统一的薄荷反色，hover 由 helix.css 的
   #legacy-app .view .btn-p:hover 统一定义（薄荷 + brightness(1.1)）。若这里写成通用
   .btn:hover，其特异性与 helix 主按钮 hover 打平、且本表后加载会反胜，
   导致主按钮 hover 变成浅灰“ghost”块（即截图里圈出的那个）。 */
#view-cutout .btn:hover:not(:disabled):not(.btn-p) { background: var(--icon-bg); border-color: var(--border-strong); }
#view-cutout .btn:disabled { opacity: .45; cursor: not-allowed; }
/* 主按钮（.btn-p）不再在此覆盖：正常态/ hover 态都沿用 helix.css 的薄荷反色，
   与“格式转换 / 图像修改”等全站主按钮完全一致。仅补一条禁用态，避免模型就绪后
   主按钮仍显示成可点的薄荷色。 */
#view-cutout .btn-p:disabled { background: var(--border); border-color: var(--border); color: var(--text-3); opacity: 1; }
#view-cutout .btn-sm { height: 26px; padding: 0 10px; font-size: var(--hx-t12); }

/* ---------- 预览舞台（大图 + 结果 + 对比） ----------
   舞台本体（棋盘透明底、居中、按行伸缩）走共享层 .tl-stage-bd，
   这里只留抠图特有的画布层。 */
#view-cutout .cxo-stage-empty { color: var(--text-3); font-size: var(--hx-t12-5); text-align: center; line-height: 1.75; max-width: 300px; }
/* 缩放层：.cxo-stage-inner 的尺寸由 JS 写成「图片原始像素」，整体用 transform 缩放/平移；
   两张 canvas 绝对铺满它，缩放时始终像素级对齐（叠加对比不会错位）。
   transform-origin 固定左上，JS 以 0 0 为基准算居中 / 指针锚点缩放。 */
#view-cutout .cxo-stage-inner {
  position: absolute; left: 0; top: 0; transform-origin: 0 0;
  line-height: 0; will-change: transform; cursor: grab;
}
#view-cutout .cxo-stage-inner.is-panning { cursor: grabbing; }
/* 舞台接管滚轮 / 触控手势，缩放时页面不要跟着滚 */
#view-cutout .cxo-stage { touch-action: none; }
#view-cutout .cxo-stage-c {
  display: block; position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none;
}
#view-cutout .cxo-stage-orig { pointer-events: none; }
/* 缩放控件：−  100%  + （与舞台标题栏同高的小尺寸控件） */
#view-cutout .cxo-zoom {
  display: inline-flex; align-items: stretch; height: 24px;
  border: 1px solid var(--border); border-radius: var(--r-btn);
  overflow: hidden; background: var(--surface);
}
#view-cutout .cxo-zoom[hidden] { display: none; }
#view-cutout .cxo-zoom-b {
  width: 24px; border: 0; background: transparent; color: var(--text-2);
  font-size: 14px; line-height: 1; cursor: pointer; padding: 0;
}
#view-cutout .cxo-zoom-b:hover:not(:disabled) { background: var(--icon-bg); color: var(--text); }
#view-cutout .cxo-zoom-b:disabled { opacity: .4; cursor: default; }
#view-cutout .cxo-zoom-p {
  min-width: 46px; border: 0; border-left: 1px solid var(--border); border-right: 1px solid var(--border);
  background: transparent; color: var(--text-2); cursor: pointer; padding: 0 6px;
  font-size: var(--hx-t12); font-variant-numeric: tabular-nums;
}
#view-cutout .cxo-zoom-p:hover { background: var(--icon-bg); color: var(--text); }
/* 原图叠层用绝对定位铺满，这里的 contain 是为了和结果画布的对齐基准一致（两者都按舞台盒子 contain） */
#view-cutout .cxo-stage-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
/* 对比原图：图标 + 文字按钮，点击在「只看原图 / 只看结果」之间切换 */
#view-cutout .cxo-cmpbtn {
  display: inline-flex; align-items: center; gap: 5px;
  height: 24px; padding: 0 9px;
  border: 1px solid var(--border); border-radius: var(--r-btn);
  background: var(--surface); color: var(--text-2);
  font-size: var(--hx-t12); font-family: inherit; line-height: 1; cursor: pointer;
}
#view-cutout .cxo-cmpbtn svg { width: 14px; height: 14px; flex: none; }
#view-cutout .cxo-cmpbtn:hover { background: var(--icon-bg); color: var(--text); }
#view-cutout .cxo-cmpbtn.is-on {
  background: var(--accent); border-color: var(--accent); color: #fff;
}
#view-cutout .cxo-cmpbtn.is-on svg { color: #fff; }
#view-cutout .cxo-cmpbtn[hidden] { display: none; }
#view-cutout .cxo-cmpbtn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
/* 下载选项：勾选框 + 判定下拉，紧贴下载按钮左侧 */
#view-cutout .cxo-dl-opt { display: inline-flex; align-items: center; gap: 6px; }
#view-cutout .cxo-dl-opt select {
  height: 26px; padding: 0 4px; font-size: var(--hx-t12); color: var(--text);
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-btn);
  cursor: pointer;
}
#view-cutout .cxo-dl-opt select:disabled { opacity: .45; cursor: default; }

/* ---------- 底部横向缩略图条 ----------
   卡片与标题行走共享层 .tl-list / .tl-list-hd，缩略图区走 .tl-list-bd，
   末位「+ 添加」用共享组件 .tl-add（与格式转换 / 批量调整尺寸同一个）。 */
#view-cutout .cxo-thumbs { scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; }
#view-cutout .cxo-thumbs::-webkit-scrollbar { height: 8px; }
#view-cutout .cxo-thumbs::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 4px; }
#view-cutout .cxo-thumbs::-webkit-scrollbar-track { background: transparent; }
#view-cutout .cxo-thumb {
  flex: none; width: 116px; cursor: pointer; user-select: none;
  border: 1px solid var(--border); border-radius: var(--r-btn);
  background: var(--surface); padding: 5px;
  transition: border-color .12s var(--ease), box-shadow .12s var(--ease);
}
#view-cutout .cxo-thumb:hover { border-color: var(--border-strong); }
#view-cutout .cxo-thumb.on { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(68,136,255,.18); }
#view-cutout .cxo-thumb.err { border-color: rgba(229,72,77,.5); }
/* 缩略图盒：与「格式转换」.cv-th-bx 同一规格（116 宽 / 5px 内边距 / 56px 高图盒） */
#view-cutout .th-box {
  position: relative; width: 100%; height: 56px; border-radius: 3px; overflow: hidden;
  display: grid; place-items: center;
  background-color: #fff;
  background-image:
    linear-gradient(45deg, #eceef1 25%, transparent 25%, transparent 75%, #eceef1 75%),
    linear-gradient(45deg, #eceef1 25%, transparent 25%, transparent 75%, #eceef1 75%);
  background-size: 10px 10px; background-position: 0 0, 5px 5px;
}
#view-cutout .th-box img { max-width: 100%; max-height: 56px; object-fit: contain; }
#view-cutout .th-badge {
  position: absolute; right: 4px; bottom: 4px; font-size: var(--hx-t12); line-height: 1;
  padding: 2px 5px; border-radius: 3px; color: #fff; background: var(--text-3); pointer-events: none;
}
#view-cutout .th-badge.doing { background: var(--accent-text, #4488ff); }
#view-cutout .th-badge.done { background: #2bb673; }
#view-cutout .th-badge.err { background: #e5484d; }
#view-cutout .th-rm {
  position: absolute; left: 4px; top: 4px; width: 18px; height: 18px; border-radius: 50%;
  display: grid; place-items: center; background: rgba(0,0,0,.45); color: #fff; font-size: var(--hx-t12);
  opacity: 0; transition: opacity .12s var(--ease); cursor: pointer;
}
#view-cutout .cxo-thumb:hover .th-rm { opacity: 1; }
#view-cutout .th-rm:hover { background: #e5484d; }
#view-cutout .th-name {
  margin-top: 4px; font-size: var(--hx-t11); color: var(--text-2);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* 尺寸行：与「格式转换」.cv-th-d 同款 */
#view-cutout .th-dim {
  font-size: var(--hx-t11); color: var(--text-3); font-variant-numeric: tabular-nums;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

@media (max-width: 900px) {
  /* 窄屏：单列堆叠（预览 → 参数 → 列表），栅格切换由共享层 .tl-main 处理，
     这里只放开「按视口定高」—— 让内容自然变高、由页面自己滚，
     否则固定高度装不下内容，舞台会被压扁（390 实测预览整块消失） */
  #view-cutout #cxoTool { min-height: 0; height: auto; }
  /* 空状态窄屏也要撑满一屏：单列下顶栏（模型条）+ 面包屑比大屏多占高度，
     按 200 重算投放区高度，否则 390×844 会多出 26px 竖向滚动 */
  .cxo-empty { height: max(480px, calc(100vh - 200px)); }
  .cxo-dropzone { min-height: 320px; }
  /* 窄屏参数区与「格式转换」同款：两列并排；精度档位要整行放，通栏 */
  #view-cutout .cxo-params { grid-template-columns: 1fr 1fr; }
  #view-cutout .cxo-params > .tl-param:first-child { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .cxo { padding: 14px 14px 22px; }
  #view-cutout .rsize { display: none; }
  .cxo-mhint { display: none; }
  .cxo-dropzone { min-height: 260px; }
  /* 缩略图宽度不缩：与「格式转换」一致（116px），窄屏靠列表条横向滚动 */
}
