/* 退货分拣 · 工人端样式(2026-07-31)
 * 照「退货分拣-工人端-v2.html」设计稿:浅色 #f2f4f7 底、白卡、蓝主色 #2563eb。
 * 只用 .rt- 前缀,与 app.css / scan.css 完全隔离 —— 现有页面一个像素都不会被带歪。
 * 工人年纪偏大:正文 ≥15px、可点区域 ≥48px、颜色高对比。
 */

.rt-wrap { position:fixed; inset:0; background:#f2f4f7; display:flex; flex-direction:column;
  overflow:hidden; z-index:1; }

/* ===== 顶栏 ===== */
.rt-head { padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 10px;
  display:flex; align-items:center; justify-content:space-between; gap:10px; flex-shrink:0; background:#f2f4f7; }
.rt-head .rt-bk { width:48px; height:48px; flex-shrink:0; border:none; background:transparent;
  color:#2563eb; font-size:34px; line-height:1; cursor:pointer; padding:0; }
.rt-head .rt-ttl { flex:1; min-width:0; }
.rt-head .rt-ttl b { display:block; font-size:21px; font-weight:800; color:#111827; }
.rt-head .rt-ttl span { display:block; font-size:12px; color:#6b7280; margin-top:2px; }
.rt-runtag { background:#dbeafe; color:#1d4ed8; font-size:12px; font-weight:700;
  padding:5px 11px; border-radius:14px; flex-shrink:0; white-space:nowrap; }
.rt-runtag.off { background:#e5e7eb; color:#6b7280; }
.rt-langbtn { min-width:48px; height:36px; border-radius:12px; border:1.5px solid #d1d5db;
  background:#fff; color:#374151; font-size:14px; font-weight:700; cursor:pointer; flex-shrink:0; }

/* ===== 扫码输入行 ===== */
.rt-scanrow { margin:0 14px 10px; display:flex; gap:8px; flex-shrink:0; }
.rt-scanrow input { flex:1; min-width:0; height:56px; border-radius:14px; border:1.5px solid #d1d5db;
  background:#fff; color:#111; font-size:19px; padding:0 14px; outline:none; }
.rt-scanrow input:focus { border-color:#2563eb; }
.rt-scanrow button { width:88px; height:56px; flex-shrink:0; border-radius:14px; border:none;
  background:#2563eb; color:#fff; font-size:17px; font-weight:700; cursor:pointer; }
.rt-scanrow button:disabled { opacity:.5; }

/* 缺价提示条 */
.rt-warn { margin:0 14px 10px; background:#fef3c7; border:1px solid #fde68a; color:#92400e;
  border-radius:12px; padding:9px 12px; font-size:13px; font-weight:600; flex-shrink:0; }

/* ===== 最近扫描 ===== */
.rt-recent { flex:1; overflow-y:auto; padding:0 14px 130px; -webkit-overflow-scrolling:touch; }
.rt-rechd { display:flex; justify-content:space-between; align-items:center; margin:4px 2px 8px; gap:10px; }
.rt-rechd .rt-rt { color:#6b7280; font-size:13px; font-weight:600; }
.rt-undo { min-height:40px; border:1px solid #fca5a5; background:#fef2f2; color:#dc2626;
  font-size:13px; font-weight:700; border-radius:14px; padding:8px 14px; cursor:pointer; }
.rt-undo:disabled { opacity:.4; }
.rt-rec { background:#fff; border-radius:12px; padding:10px 12px; margin-bottom:8px;
  display:flex; align-items:center; gap:12px; box-shadow:0 1px 2px rgba(0,0,0,.05); }
.rt-rec.other { opacity:.62; }
.rt-rec .rt-box { width:46px; height:46px; border-radius:10px; color:#fff; font-size:23px; font-weight:800;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.rt-rec .rt-info { flex:1; min-width:0; }
.rt-rec .rt-pname { color:#111827; font-size:15px; font-weight:600;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rt-rec .rt-meta { color:#9ca3af; font-size:12px; margin-top:2px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rt-rec .rt-qty { color:#111827; font-size:16px; font-weight:800; flex-shrink:0; }
.rt-rec .rt-noprice { color:#b45309; font-size:11px; font-weight:700; }
.rt-empty { color:#9ca3af; text-align:center; padding:40px 0; font-size:14px; }

/* ===== 底部常驻合计条 ===== */
.rt-bottom { position:absolute; bottom:0; left:0; right:0; background:#fff; z-index:6;
  border-top:1px solid #e5e7eb; padding:12px 16px calc(env(safe-area-inset-bottom,0px) + 16px);
  display:flex; align-items:center; gap:10px; }
.rt-tot { flex:1; min-width:0; }
.rt-tot .rt-t1 { font-size:16px; font-weight:800; color:#111827; }
.rt-tot .rt-t1 b { color:#16a34a; }
.rt-tot .rt-t2 { font-size:11.5px; color:#9ca3af; margin-top:2px; }
.rt-end { height:48px; padding:0 16px; border-radius:14px; border:1.5px solid #d1d5db; background:#fff;
  color:#374151; font-size:14px; font-weight:700; cursor:pointer; flex-shrink:0; }

/* ===== 扫码结果全屏(箱号大色卡) ===== */
.rt-result { position:fixed; inset:0; z-index:60; background:#f2f4f7;
  display:none; flex-direction:column; align-items:center; overflow-y:auto; }
.rt-result.show { display:flex; }
.rt-card { margin-top:calc(env(safe-area-inset-top,0px) + 24px); width:calc(100% - 40px);
  border-radius:28px; padding:26px 20px 24px; display:flex; flex-direction:column; align-items:center;
  color:#fff; box-shadow:0 16px 40px rgba(0,0,0,.2); flex-shrink:0; }
.rt-card .rt-bignum { font-size:min(150px, 34vh); font-weight:900; line-height:1; }
.rt-card .rt-boxword { font-size:20px; font-weight:700; opacity:.9; margin-top:-6px; }
.rt-card .rt-sup { font-size:28px; font-weight:800; margin-top:8px; text-align:center;
  word-break:break-word; line-height:1.2; }
.rt-card .rt-prod { font-size:15px; opacity:.92; margin-top:8px; text-align:center; line-height:1.4; padding:0 6px; }
.rt-card .rt-price { font-size:18px; font-weight:700; margin-top:6px; }
.rt-card .rt-price.none { font-size:14px; background:rgba(255,255,255,.22); border-radius:10px; padding:5px 12px; }
.rt-qtyrow { display:flex; align-items:center; gap:18px; margin:auto 0; padding:20px 0; flex-shrink:0; }
.rt-qtybtn { width:68px; height:68px; border-radius:18px; border:1.5px solid #d1d5db; font-size:32px;
  font-weight:800; cursor:pointer; background:#fff; color:#111; line-height:1; }
.rt-qtybtn:active { background:#e5e7eb; }
.rt-qtyval { font-size:44px; font-weight:900; color:#111; min-width:80px; text-align:center; }
.rt-ok { margin:0 0 8px; width:calc(100% - 40px); height:62px; border-radius:18px; border:none;
  background:#111827; color:#fff; font-size:20px; font-weight:800; cursor:pointer; flex-shrink:0; }
.rt-ok:disabled { opacity:.6; }
.rt-cancel { width:calc(100% - 40px); height:48px; border-radius:16px; border:1.5px solid #d1d5db;
  background:#fff; color:#6b7280; font-size:15px; font-weight:700; cursor:pointer; flex-shrink:0; }
.rt-safe { height:calc(env(safe-area-inset-bottom,0px) + 30px); flex-shrink:0; }

/* ===== 未知条码红屏 ===== */
.rt-err { position:fixed; inset:0; z-index:64; background:#dc2626; display:none;
  flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:0 30px; text-align:center; }
.rt-err.show { display:flex; }
.rt-err .rt-x { font-size:100px; color:#fff; font-weight:900; line-height:1; }
.rt-err .rt-e1 { font-size:27px; color:#fff; font-weight:800; }
.rt-err .rt-e2 { font-size:15px; color:rgba(255,255,255,.92); line-height:1.6; word-break:break-all; }
.rt-err button { margin-top:10px; min-height:56px; padding:0 40px; border-radius:16px; border:none;
  background:#fff; color:#dc2626; font-size:18px; font-weight:800; cursor:pointer; }

/* ===== 品牌货:底部选供应商弹窗 ===== */
.rt-picker { position:fixed; inset:0; z-index:66; background:rgba(17,24,39,.55);
  display:none; align-items:flex-end; }
.rt-picker.show { display:flex; }
.rt-picker .rt-sheet { width:100%; max-height:86vh; overflow-y:auto; background:#fff;
  border-radius:28px 28px 0 0; padding:22px 18px calc(env(safe-area-inset-bottom,0px) + 28px); }
.rt-picker .rt-pt { color:#111827; font-size:19px; font-weight:800; }
.rt-picker .rt-ps { color:#b45309; font-size:13px; margin:4px 0 14px; line-height:1.5; }
.rt-opt { width:100%; min-height:64px; border-radius:16px; border:1.5px solid #d1d5db; background:#fff;
  color:#111827; font-size:18px; font-weight:700; margin-bottom:10px; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 18px; text-align:left; }
.rt-opt.rec { border-color:#2563eb; background:#eff6ff; }
.rt-opt small { font-size:12px; color:#9ca3af; font-weight:400; flex-shrink:0; }
.rt-opt.rec small { color:#2563eb; font-weight:700; }
.rt-pcancel { width:100%; min-height:52px; border-radius:16px; border:1.5px solid #d1d5db;
  background:#fff; color:#6b7280; font-size:16px; font-weight:700; cursor:pointer; margin-top:4px; }

/* ===== 结束批次:箱号对照表 ===== */
.rt-batch { position:fixed; inset:0; z-index:62; background:#f2f4f7; display:none; flex-direction:column; }
.rt-batch.show { display:flex; }
.rt-batch .rt-bh { padding:calc(env(safe-area-inset-top,0px) + 22px) 18px 12px;
  color:#111827; font-size:21px; font-weight:800; flex-shrink:0; }
.rt-batch .rt-bh small { display:block; font-size:12.5px; color:#6b7280; font-weight:600; margin-top:4px; }
.rt-batch .rt-list { flex:1; overflow-y:auto; padding:0 14px; }
.rt-brow { display:flex; align-items:center; gap:12px; background:#fff; border-radius:12px;
  padding:12px; margin-bottom:8px; box-shadow:0 1px 2px rgba(0,0,0,.05); }
.rt-brow .rt-box { width:48px; height:48px; border-radius:10px; color:#fff; font-size:24px; font-weight:800;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.rt-brow .rt-sn { flex:1; min-width:0; }
.rt-brow .rt-sn b { color:#111827; font-size:17px; display:block;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rt-brow .rt-sn span { color:#9ca3af; font-size:12px; }
.rt-brow .rt-amt { color:#16a34a; font-size:16px; font-weight:800; flex-shrink:0; }
.rt-bbtns { display:flex; gap:10px; margin:12px 14px calc(env(safe-area-inset-bottom,0px) + 20px); flex-shrink:0; }
.rt-bbtns button { flex:1; height:54px; border-radius:16px; border:none; font-size:16px; font-weight:700; cursor:pointer; }
.rt-bback { background:#fff; color:#374151; border:1.5px solid #d1d5db !important; }
.rt-bclose { background:#2563eb; color:#fff; }

/* 忙碌遮罩:防连点重复记账 */
.rt-busy { position:fixed; inset:0; z-index:70; background:rgba(255,255,255,.01); display:none; }
.rt-busy.show { display:block; }
