:root{
  --bg:#f2f4f7;
  --card:#ffffff;
  --text:#15181d;
  --muted:#8b929c;
  --line:#e6eaf0;
  --brand:#2f6fed;
  --brand-soft:#eaf1ff;
  --ok:#16a34a;
  --warn:#f59e0b;
  --bad:#e5484d;
  --ret:#8b5cf6;
  --radius:14px;
  --shadow:0 1px 2px rgba(16,24,40,.06),0 6px 18px rgba(16,24,40,.05);
  --safe-top:0px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html,body{margin:0;padding:0;height:100%}
body{
  font-family:-apple-system,"PingFang SC","Microsoft YaHei","Source Han Sans SC",system-ui,sans-serif;
  background:var(--bg);color:var(--text);font-size:15px;line-height:1.45;
  overscroll-behavior-y:none;
}
input,select,textarea,button{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer;border:none;background:none;padding:0}

.app{display:flex;flex-direction:column;height:100vh;height:100dvh}

/* ---------- 顶部 ---------- */
.topbar{
  background:var(--card);border-bottom:1px solid var(--line);
  padding:calc(env(safe-area-inset-top) + 10px) 12px 0;flex:none;z-index:20;
}
.topbar-row{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;gap:8px;flex-wrap:wrap}
/* 应用名较长：字稍微收小，窄屏放不下时「批量出货」自动换到下一行，不会被裁掉 */
.brand{font-size:17px;font-weight:700;letter-spacing:.3px;display:flex;align-items:baseline;gap:7px;min-width:0}
.brand small{font-size:10.5px;font-weight:400;color:var(--muted);letter-spacing:0;white-space:nowrap}
/* 顶部主按钮：批量出货（全 App 最重要的入口，直接写文字 + 图标） */
.out-btn{
  display:flex;align-items:center;gap:6px;height:34px;padding:0 13px 0 11px;
  border-radius:10px;color:#fff;
  background:linear-gradient(135deg,#4b86f7 0%,#2f6fed 60%,#2a5fd8 100%);
  font-size:13px;font-weight:700;letter-spacing:.4px;
  box-shadow:0 4px 12px rgba(47,111,237,.34);
  transition:transform .12s ease,box-shadow .12s ease;
}
.out-btn .ob-ic{display:flex;align-items:center;opacity:.95}
.out-btn:active{transform:translateY(1px);box-shadow:0 2px 6px rgba(47,111,237,.3)}
.search-wrap{position:relative;display:flex;align-items:center}
.search-wrap input{
  width:100%;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--bg);
  padding:0 34px 0 32px;outline:none;font-size:14px;
}
.search-wrap input:focus{border-color:var(--brand);background:#fff}
.search-ic{position:absolute;left:10px;font-size:17px;color:var(--muted)}
.search-clear{position:absolute;right:6px;width:24px;height:24px;border-radius:50%;
  background:var(--line);color:#5b6472;font-size:11px;display:grid;place-items:center}
.chips{display:flex;gap:7px;overflow-x:auto;padding:9px 0 10px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{
  flex:none;padding:6px 12px;border-radius:999px;background:var(--bg);border:1px solid transparent;
  font-size:13px;color:#5b6472;white-space:nowrap;
}
.chip.on{background:var(--brand-soft);border-color:#c9dbff;color:var(--brand);font-weight:600}
.chip .n{opacity:.7;margin-left:4px;font-size:12px}

/* ---------- 视图 ---------- */
.view{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 12px 96px}
.view[hidden]{display:none}

/* ---------- 订单卡 ---------- */
.list{display:flex;flex-direction:column;gap:10px}
.card{
  background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:12px 12px 4px;position:relative;overflow:hidden;
}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--warn)}
.card.st-stock::before{background:var(--brand)}
.card.st-sold::before{background:var(--ok)}
.card.st-ret::before{background:var(--ret)}
.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.card-model{font-size:16px;font-weight:650;line-height:1.3;word-break:break-all}
.card-sub{font-size:12px;color:var(--muted);margin-top:3px;display:flex;flex-wrap:wrap;gap:10px}
.badge{
  flex:none;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;
  background:#fff5e5;color:#b26a00;
}
.st-stock .badge{background:var(--brand-soft);color:var(--brand)}
.st-sold .badge{background:#e8f7ee;color:var(--ok)}
.st-ret .badge{background:#f3edff;color:var(--ret)}
.card-money{display:flex;gap:14px;margin-top:9px;font-size:13px;color:#454d5a;flex-wrap:wrap}
.card-money b{font-weight:650;color:var(--text)}
.pl{font-weight:700}
.pl.pos{color:var(--ok)}
.pl.neg{color:var(--bad)}
.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tag{font-size:11px;padding:2px 7px;border-radius:6px;background:var(--bg);color:#5b6472}
.tag.sn{background:#eef4ff;color:#2f6fed;font-family:ui-monospace,Menlo,Consolas,monospace}
/* ---------- 卡片操作格：等宽格子，一列一列一样宽 ---------- */
.card-ops{
  display:grid;grid-template-columns:repeat(var(--opn,5),minmax(0,1fr));
  gap:6px;border-top:1px solid var(--line);margin-top:10px;padding:9px 0 7px;
}
.op{
  position:relative;min-width:0;padding:8px 2px;border-radius:10px;
  background:#f4f6fa;color:#4a5464;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  line-height:1.1;
}
.op .oi{font-size:15px;line-height:1;font-style:normal}
.op .ot{
  font-size:11px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.op:active{background:var(--line)}
/* 待办：标记收货 —— 淡蓝提示「这里还差一步」 */
.op.todo{background:var(--brand-soft);color:var(--brand);font-weight:700}
/* 马上要做的事：结算 —— 实心蓝，最跳 */
.op.solid{background:var(--brand);color:#fff;font-weight:700}
.op.solid:active{background:#255bc8}
/* 已收货 / 已填过：绿色或浅蓝，一眼看出还缺什么 */
.op.ok{background:#e8f7ee;color:var(--ok);font-weight:700}
.op.filled{background:#eef4ff;color:#3b6fd4}
.op.filled .ot{font-weight:650}
.op-n{
  position:absolute;top:3px;right:4px;font-style:normal;
  background:var(--brand);color:#fff;border-radius:8px;
  font-size:9.5px;line-height:1;padding:2px 4px;font-weight:700;
}

/* ---------- 筛选栏：型号 / 平台 / 日期（自定义下拉触发器） ---------- */
.flt-bar{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap}
.flt-btn{
  flex:1;min-width:0;display:flex;align-items:center;gap:5px;
  border:1px solid var(--line);border-radius:10px;background:var(--card);
  font-size:12px;color:#4a5464;padding:7px 9px;
}
.flt-btn .fv{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.flt-btn .fa{
  flex:none;width:8px;height:8px;border-right:1.6px solid #9aa3ae;border-bottom:1.6px solid #9aa3ae;
  transform:rotate(45deg) translate(-1px,-1px);margin-right:2px;
}
.flt-btn:active{border-color:var(--brand)}
.flt-btn.on{background:var(--brand-soft);border-color:#bcd2ff;color:var(--brand);font-weight:650}
.flt-btn.on .fa{border-color:var(--brand)}
.flt-bar .flt-clear{
  flex:none;padding:7px 10px;border-radius:10px;font-size:12px;
  background:#fdeeee;color:#d64545;font-weight:600;
}
.empty{text-align:center;color:var(--muted);padding:70px 20px;font-size:14px;line-height:2}
.empty b{display:block;font-size:40px;margin-bottom:6px;opacity:.35}

/* ---------- FAB ---------- */
.fab{
  position:fixed;right:16px;bottom:calc(74px + env(safe-area-inset-bottom));
  width:54px;height:54px;border-radius:50%;background:var(--brand);color:#fff;font-size:30px;
  line-height:1;display:grid;place-items:center;box-shadow:0 6px 18px rgba(47,111,237,.4);z-index:30;
}
.fab:active{transform:scale(.94)}

/* ---------- 底部导航 ---------- */
.tabbar{
  flex:none;display:flex;background:var(--card);border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom);z-index:30;
}
.tab{flex:1;padding:8px 0 9px;display:flex;flex-direction:column;align-items:center;gap:2px;
  color:var(--muted);font-size:11px}
.tab i{font-size:17px;font-style:normal;line-height:1}
.tab.active{color:var(--brand);font-weight:600}

/* ---------- 全屏表单 ---------- */
.sheet{
  position:fixed;inset:0;background:var(--bg);z-index:60;display:flex;flex-direction:column;
  animation:up .18s ease-out;
}
@keyframes up{from{transform:translateY(3%);opacity:.6}to{transform:none;opacity:1}}
.sheet-head{
  flex:none;display:flex;align-items:center;justify-content:space-between;
  padding:calc(env(safe-area-inset-top) + 10px) 12px 10px;background:var(--card);
  border-bottom:1px solid var(--line);
}
.sheet-head b{font-size:16px}
.txt-btn{color:var(--brand);font-size:15px;padding:6px 2px;min-width:52px;text-align:left}
.txt-btn.danger{color:var(--bad);text-align:right}
.txt-btn.light{color:#fff}
.sheet-body{flex:1;overflow-y:auto;padding:12px 12px 20px}
.sheet-foot{
  flex:none;background:var(--card);border-top:1px solid var(--line);
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px;
}
.sheet-foot-info{flex:1;font-size:12px;color:var(--muted);line-height:1.3}

/* ---------- 表单元素 ---------- */
.group{background:var(--card);border-radius:var(--radius);padding:4px 12px;margin-bottom:12px;box-shadow:var(--shadow)}
/* 紧凑分组：行距收紧，一屏能看到更多信息（新增订单页用） */
.group.tight{margin-bottom:10px;padding:2px 12px}
.group.tight .row{min-height:44px}
.group.tight .hint{padding:0 0 8px;font-size:11.5px}
.group-t{
  font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.5px;
  padding:11px 12px 2px;margin:0 0 -2px;
}
.row{display:flex;align-items:center;gap:10px;min-height:50px;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:none}
.row-2{display:flex;gap:12px}
.row-2>.row{flex:1}
.row-label{flex:none;width:74px;font-size:14.5px;color:#454c5a}
.row-label.w-auto{width:auto}
.row input[type=text],.row input[type=number],.row input[type=date],.row input[type=search],.row textarea{
  flex:1;min-width:0;border:none;outline:none;background:none;padding:10px 0;font-size:16px;
}
.row input::placeholder,.row textarea::placeholder{color:#b3b9c2;font-size:14.5px}
.row textarea{resize:none;line-height:1.45;padding:11px 0;font-size:15px}
.row.col{flex-direction:column;align-items:stretch;gap:0}
.row.col>.row-label{padding-top:10px}
.row.col textarea{width:100%;padding-top:2px;padding-bottom:10px}
.mini-btn{
  flex:none;font-size:12px;padding:5px 9px;border-radius:8px;background:var(--bg);color:#5b6472;
}
.mini-btn.brand{background:var(--brand-soft);color:var(--brand);font-weight:600}
.mini-btn.bad{background:#fdecec;color:var(--bad)}
.suffix{flex:none;font-size:13px;color:var(--muted)}
.switch{flex:none;width:46px;height:28px;border-radius:999px;background:#dfe3e9;position:relative;transition:.18s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.18s}
.switch.on{background:var(--ok)}
.switch.on::after{transform:translateX(18px)}
.seg{display:flex;gap:6px;padding:10px 0;flex-wrap:wrap}
.seg .chip{background:var(--bg)}
/* 账号名 / 常用驿站：一行放不下就往右滑，历史攒多了也不占地方 */
.seg-scroll{
  flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding:8px 0;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.seg-scroll::-webkit-scrollbar{display:none}
.seg-scroll .chip{flex:none}
/* 发票：一个按钮直接显示 未开(灰) / 已开(绿)，点一下切换 */
.inv-tog{
  flex:none;font-size:13px;font-weight:650;padding:6px 15px;border-radius:9px;
  background:#f2f4f7;color:#7c8593;border:1px solid #e4e7ec;
}
.inv-tog.on{background:#e8f7ee;color:var(--ok);border-color:#cfe9da}
.inv-tog:active{opacity:.8}
/* 单号下面那三个动作按钮：图标 + 文字，等宽铺满一行。
   单独一行是为了不让长单号被图标盖住（用户反馈的「单号被遮盖」）。 */
.row.act-row{gap:8px;padding:8px 0 10px}
.act-btn{
  flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:5px;
  height:36px;border-radius:9px;background:#eef2f8;color:#4b5565;
  font-size:13px;font-weight:600;line-height:1;
}
.act-btn i{font-size:14px;font-style:normal;line-height:1}
.act-btn:active{background:#e3e9f3}
.hint{font-size:11.5px;color:var(--muted);padding:0 0 10px;line-height:1.5}
.hint.warn{color:#b26a00}

.sn-item{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:9px 0}
.sn-item:last-of-type{border-bottom:none}
.sn-item .v{flex:1;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;word-break:break-all}
.sn-add{display:flex;gap:8px;padding:8px 0 12px}
.cost-item{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:2px 0}
.cost-item input.note{flex:1;min-width:0;border:none;outline:none;background:none;padding:12px 0;font-size:15px}
.cost-item input.amt{width:88px;text-align:right;border:none;outline:none;background:none;padding:12px 0;font-size:15px}

/* ---------- 按钮 ---------- */
.btn{
  border-radius:11px;padding:11px 16px;font-size:15px;font-weight:600;
  background:var(--bg);color:#3c4453;display:inline-flex;align-items:center;justify-content:center;gap:6px;
}
.btn.primary{background:var(--brand);color:#fff}
.btn.primary:disabled{background:#c3cfe4;color:#fff}
.btn.ghost{background:rgba(255,255,255,.16);color:#fff}
.btn.big{flex:1;padding:13px 16px;font-size:16px}
.btn.block{width:100%}
.btn.danger{background:#fdecec;color:var(--bad)}

/* ---------- 扫码 ---------- */
.scanner{position:fixed;inset:0;background:#0b0d10;z-index:80;display:flex;flex-direction:column}
.scan-head{
  flex:none;display:flex;align-items:center;justify-content:space-between;
  padding:calc(env(safe-area-inset-top) + 12px) 12px 12px;color:#fff;font-size:16px;
}
.scan-stage{flex:1;position:relative;display:grid;place-items:center;overflow:hidden}
.scan-stage video{width:100%;height:100%;object-fit:cover;background:#000}
/* 一维条形码：横向长条取景框 */
.scan-frame{position:absolute;width:86%;max-width:440px;height:132px;border-radius:12px;
  box-shadow:0 0 0 2000px rgba(0,0,0,.42)}
.scan-frame::after{content:"";position:absolute;left:6%;right:6%;top:50%;height:2px;
  background:rgba(77,141,255,.55);box-shadow:0 0 8px rgba(77,141,255,.9)}
.scan-frame i{position:absolute;width:28px;height:28px;border:3px solid #4d8dff}
.scan-frame i:nth-child(1){top:-1px;left:-1px;border-right:0;border-bottom:0;border-radius:12px 0 0 0}
.scan-frame i:nth-child(2){top:-1px;right:-1px;border-left:0;border-bottom:0;border-radius:0 12px 0 0}
.scan-frame i:nth-child(3){bottom:-1px;left:-1px;border-right:0;border-top:0;border-radius:0 0 0 12px}
.scan-frame i:nth-child(4){bottom:-1px;right:-1px;border-left:0;border-top:0;border-radius:0 0 12px 0}
.scan-tip{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:#e7edf7;font-size:13px;
  text-shadow:0 1px 4px rgba(0,0,0,.6)}
.scan-foot{flex:none;padding:14px 14px calc(14px + env(safe-area-inset-bottom));background:#141821}
.scan-result{
  background:#1e2430;border-radius:10px;padding:11px 13px;color:#fff;font-size:14px;min-height:44px;
  font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all;margin-bottom:12px;
}
.scan-actions{display:flex;gap:10px}
/* 相机小工具：换镜头 / 放大 —— 近景对不上焦时的救命按钮 */
.scan-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.tool-btn{
  padding:8px 12px;border-radius:999px;font-size:12.5px;font-weight:600;
  background:#232a37;color:#c8d2e2;border:1px solid #313a4b;
}
.tool-btn:active{background:#2d3646}

/* ---------- 弹窗 / 提示 ---------- */
.modal{position:fixed;inset:0;background:rgba(12,16,22,.45);z-index:90;display:grid;place-items:center;padding:22px}
.modal-card{
  background:var(--card);border-radius:16px;width:100%;max-width:360px;padding:18px;
  animation:pop .16s ease-out;
}
@keyframes pop{from{transform:scale(.94);opacity:0}to{transform:none;opacity:1}}
.modal-card h3{margin:0 0 6px;font-size:16px}
.modal-card p{margin:0 0 14px;font-size:13.5px;color:#5b6472;line-height:1.6}
.modal-card input,.modal-card textarea{
  width:100%;border:1px solid var(--line);background:var(--bg);border-radius:10px;
  padding:11px;outline:none;margin-bottom:14px;font-size:15px;
}
.modal-card input:focus,.modal-card textarea:focus{border-color:var(--brand);background:#fff}
.modal-actions{display:flex;gap:10px}
.modal-actions .btn{flex:1}
.toast{
  position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translateX(-50%);
  background:rgba(20,26,35,.93);color:#fff;padding:10px 18px;border-radius:11px;font-size:13.5px;
  z-index:120;max-width:82vw;text-align:center;animation:pop .14s ease-out;
  /* 提示条只是给人看的，绝不能吃掉下面的点击（否则「扫码」这类按钮会被它挡住） */
  pointer-events:none;
}

/* ---------- 统计 ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}
.stat{
  background:var(--card);border-radius:var(--radius);padding:13px;box-shadow:var(--shadow);
}
.stat .k{font-size:12px;color:var(--muted)}
.stat .v{font-size:21px;font-weight:700;margin-top:4px;letter-spacing:-.3px}
.stat .v.pos{color:var(--ok)}
.stat .v.neg{color:var(--bad)}
.stat.wide{grid-column:span 2}
.stat.brand{background:linear-gradient(135deg,#2f6fed,#4b86ff);color:#fff}
.stat.brand .k{color:rgba(255,255,255,.82)}
.stat .sub{font-size:11.5px;color:var(--muted);margin-top:3px}
.stat.brand .sub{color:rgba(255,255,255,.8)}
.sec-t{font-size:13px;font-weight:700;color:#3c4453;margin:18px 2px 8px}
/* 订单列表的日期分组：日期只是分隔线，不占地方 —— 上下都收紧，
   让订单卡片本身成为视觉主体（用户反馈日期留白太多） */
.day-group{display:flex;flex-direction:column;gap:10px}
.day-group:not(:first-child){margin-top:2px}
.day-t{
  display:flex;align-items:baseline;gap:6px;
  font-size:12.5px;font-weight:700;color:#8b93a3;letter-spacing:.2px;
  margin:4px 2px -4px;padding-bottom:2px;
}
.day-t .sec-n{float:none;margin-left:0;color:#b3b9c2;font-weight:500;font-size:11.5px}
.tbl{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.tbl table{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th,.tbl td{padding:9px 8px;text-align:right;white-space:nowrap}
.tbl th{background:#f7f9fc;color:var(--muted);font-weight:600;font-size:11.5px}
.tbl td:first-child,.tbl th:first-child{text-align:left}
.tbl tbody tr{border-top:1px solid var(--line)}
.tbl .scroll{overflow-x:auto}
.pbar{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:6px}
.pbar>i{display:block;height:100%;background:var(--brand)}

/* ---------- 设置 ---------- */
.set-item{
  display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 0;
  border-bottom:1px solid var(--line);font-size:15px;
}
.set-item:last-child{border-bottom:none}
.set-item .d{font-size:12px;color:var(--muted);margin-top:2px}
.set-item .arrow{color:#c3c9d3;font-size:16px}
.list-line{
  display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;
  border-bottom:1px solid var(--line);font-size:14px;
}
.list-line:last-child{border-bottom:none}
.list-line .x{color:#c3c9d3;padding:4px 8px;font-size:14px}
.about{text-align:center;color:var(--muted);font-size:12px;padding:22px 0 6px;line-height:1.8}

/* ---------- 扫码：多码选择 / 拍照相册按钮 ---------- */
.scan-alt{display:flex;gap:10px;margin-top:10px}

/* ---------- 拍照识别（拍 → 裁剪 → 识别） ---------- */
.shot{position:fixed;inset:0;background:#0b0d10;z-index:100;display:flex;flex-direction:column}
.shot-head{
  flex:none;display:flex;align-items:center;justify-content:space-between;
  padding:calc(env(safe-area-inset-top) + 12px) 12px 12px;color:#fff;font-size:16px;
}
.shot-head b{flex:1;text-align:center;font-size:15px;font-weight:600}
/* 识别结果条：成功绿 / 失败红 / 进行中灰，识别完必有明确反馈 */
.shot-status{
  flex:none;margin:0 12px 10px;padding:9px 12px;border-radius:10px;
  font-size:13px;line-height:1.45;text-align:center;word-break:break-all;
  background:rgba(255,255,255,.1);color:#e7edf7;
}
.shot-status.ok{background:rgba(38,178,110,.2);color:#8ff0bb;font-weight:600}
.shot-status.bad{background:rgba(233,86,86,.18);color:#ffb3b3}
.shot-status.busy{background:rgba(77,141,255,.18);color:#cfe0ff}
/* 图片按 contain 完整显示（绝不裁掉、绝不超出可视区），裁剪框才有地方待。
   用 flex 居中而不是 grid：grid 的自动行会让子项的百分比 max-height 失效，
   竖图/矮窗口下图片会溢出可视区（裁剪框跟着跑出去）。 */
.shot-stage{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#000;min-height:0}
.shot-stage video{width:100%;height:100%;object-fit:cover;background:#000}
.shot-stage img{max-width:100%;max-height:100%;width:auto;height:auto;display:block;background:#000}
.crop{
  position:absolute;border:2px solid #4d8dff;touch-action:none;
  box-shadow:0 0 0 9999px rgba(0,0,0,.55);
  will-change:left,top,width,height;
}
.crop.drag{transition:none}
.crop-h{
  position:absolute;width:34px;height:34px;border-radius:50%;background:#fff;
  border:2px solid #4d8dff;box-shadow:0 1px 6px rgba(0,0,0,.5);touch-action:none;
}
/* 角柄视觉上还是小的，但点按区域撑到 34px，好抓 */
.crop-h::after{content:"";position:absolute;inset:-6px;border-radius:50%}
.crop-h.tl{left:-17px;top:-17px}
.crop-h.tr{right:-17px;top:-17px}
.crop-h.bl{left:-17px;bottom:-17px}
.crop-h.br{right:-17px;bottom:-17px}
.shot-tip{
  position:absolute;bottom:14px;left:0;right:0;text-align:center;color:#e7edf7;
  font-size:13px;line-height:1.5;padding:0 24px;pointer-events:none;
  text-shadow:0 1px 3px rgba(0,0,0,.9);
}
.shot-foot{flex:none;padding:12px 14px calc(14px + env(safe-area-inset-bottom));background:#141821}
.shot-hint{color:#8b93a3;font-size:12px;padding:0 2px 10px;line-height:1.6}
.shot-actions{display:flex;gap:10px;flex-wrap:wrap}
.shot-actions .btn{flex:1;min-width:96px}
.shot-actions .btn.ghost{flex:none;padding-left:16px;padding-right:16px}
.shot-alt{display:flex;gap:10px;margin-top:10px}
.shot-alt .btn{flex:1}
.scan-multi{padding:6px 2px 0}
.scan-multi .seg{flex-wrap:wrap}
.scan-multi .chip{word-break:break-all}
.scan-hint{color:#8b93a3;font-size:12px;padding:0 2px 8px}

/* ============================================================
 * v2 新增：物品级记账
 * ============================================================ */
.top-acts{display:flex;gap:8px}

/* 卡片里的物品行 */
.card-items{margin-top:9px;border-top:1px solid var(--line);padding-top:2px}
.it-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line)}
.it-row:last-child{border-bottom:none}
.it-main{flex:1;min-width:0}
.it-model{font-size:14px;font-weight:650;line-height:1.35;word-break:break-all}
.it-qty{color:var(--brand);font-weight:700;margin-left:6px}
.it-sub{font-size:12px;color:var(--muted);margin-top:2px}
.it-sub b{color:#454d5a}
/* 款式行上的「＋额外收支」：跟在小计后面，所有状态的订单都有 */
.it-cost{
  display:inline-block;margin-left:8px;font-size:11px;font-weight:600;
  padding:2px 8px;border-radius:7px;background:var(--bg);color:#7c8593;
  vertical-align:1px;white-space:nowrap;
}
.it-cost.has{background:var(--brand-soft);color:var(--brand)}
.it-cost:active{opacity:.7}
.it-sn{display:inline-block;font-size:11px;margin-top:3px;padding:1px 6px;border-radius:6px;
  background:#eef4ff;color:#2f6fed;font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all}

.pill{
  flex:none;font-size:11.5px;font-weight:600;padding:6px 10px;border-radius:999px;
  background:var(--bg);color:#5b6472;white-space:nowrap;border:1px solid var(--line);
}
.pill.ship{background:#fff5e5;color:#b26a00;border-color:#ffe2b8}
.pill.done{background:#e8f7ee;color:var(--ok);border-color:#c9ecd8}
.pill:active{opacity:.7}

.card.flash{animation:flash .9s ease-out}
@keyframes flash{0%{box-shadow:0 0 0 3px rgba(47,111,237,.45)}100%{box-shadow:var(--shadow)}}

.sec-n{color:#9aa1ab;font-weight:400;font-size:12px;margin-left:6px}
.tag.ok{background:#e8f7ee;color:var(--ok)}
.tag.warn{background:#fff5e5;color:#b26a00}
.tag.ret{background:#f3edff;color:#8b5cf6}
.card.st-out::before{background:#0ea5e9}
.st-out .badge{background:#e6f6fe;color:#0284c7}

/* 表单：款式卡 */
.sec-t .sec-n{float:right}
.items-wrap{display:flex;flex-direction:column;gap:0}
.itcard{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:4px 12px 8px;margin-bottom:12px;border-left:4px solid #c9dbff}
.itcard-h{display:flex;align-items:center;gap:10px;padding:11px 0 2px}
.itno{font-size:13px;font-weight:700;color:var(--brand)}
.itcard-sub{flex:1;font-size:12px;color:var(--muted);text-align:right}
.cost-hint{color:var(--brand)}

/* 原生下拉菜单 */
select.model-sel,select.ctag{
  flex:1;min-width:0;border:none;outline:none;appearance:none;-webkit-appearance:none;
  background:transparent;font-size:15px;padding:12px 22px 12px 0;font-weight:600;color:var(--text);
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%239aa1ab' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 4px center;
}
select.ctag{
  font-size:14px;font-weight:400;color:#3c4453;padding-top:12px;padding-bottom:12px;
}

/* 数量步进器 */
.stepper{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.stepper button{width:38px;height:38px;font-size:18px;color:var(--brand);background:var(--bg);line-height:1}
.stepper button:active{background:var(--line)}
.stepper input{width:56px;height:38px;text-align:center;border:none;outline:none;background:none;
  font-size:15px;font-weight:600}

.cost-box{border-top:1px solid var(--line)}
.cost-item{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:2px 0}
.cost-item:last-child{border-bottom:none}
.cost-item input.amt{width:84px;text-align:right;border:none;outline:none;background:none;
  padding:12px 0;font-size:15px;font-weight:600}
.cost-item input.amt::placeholder{font-weight:400}

/* 弹窗里的勾选列表 */
.pickbox{margin:2px 0 12px;max-height:44vh;overflow-y:auto;
  border:1px solid var(--line);border-radius:12px;padding:2px 10px}
.pick{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}
.pick:last-child{border-bottom:none}
.pick input[type=checkbox]{width:19px;height:19px;flex:none;accent-color:var(--brand)}
.pk-main{flex:1;font-size:14px;font-weight:600;min-width:0;word-break:break-all}
.pk-main em{font-style:normal;color:var(--brand);margin-left:6px}
.pk-sub{font-size:12px;color:var(--muted);text-align:right;flex:none;max-width:45%;word-break:break-all}
.modal-mini{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.sign{font-style:normal;font-weight:700;margin-right:6px}
.sign.plus{color:var(--ok)}
.sign.minus{color:var(--bad)}
.pl.ok{color:var(--ok)}

/* 表格合计行 */
.tbl tfoot tr{border-top:2px solid var(--line);background:#f7f9fc}
.tbl tfoot th{background:#f7f9fc;color:var(--text);font-weight:700;font-size:12.5px}

/* ============================================================
 * v2.5：长按选择 / 粘贴 与 搜索提示
 * ============================================================ */
/* 按钮、卡片操作条这些控件不参与长按选中，避免长按时满屏选中噪点；
   输入框、文本域、卡片上的文字（型号 / SN / 单号）仍可长按选择复制 */
.btn,.op,.chip,.tab,.pill,.mini-btn,.tag,.badge,.txt-btn,.out-btn,.switch,.stepper button,
#chips,.flt-bar,.q-hint,.tabbar,.fab{
  -webkit-user-select:none;user-select:none;
}
input,textarea,select,.it-model,.it-sn,.pk-main,.scan-result,.card-sub span,.sec-t{
  -webkit-user-select:text;user-select:text;
}

/* 搜索框下的提示 */
.q-hint{
  font-size:11.5px;color:var(--muted);line-height:1.5;
  padding:5px 4px 0;
}
.q-hint b{color:var(--brand);font-weight:650}
.q-hint.on{color:#454d5a}

/* 弹窗里「输入框 + 📋 粘贴」一行 */
.in-row{display:flex;gap:8px;align-items:center}
.in-row input{flex:1;min-width:0}
.in-row .mini-btn{flex:none;white-space:nowrap;padding:11px 12px}

/* ============================================================
 * v2.6：自定义下拉选择器 / 取件信息 / 录入 SN
 * ============================================================ */

/* ---------- 底部选择面板（替代原生 select） ---------- */
.picker{position:fixed;inset:0;z-index:95;display:flex;flex-direction:column;justify-content:flex-end}
.pk-mask{position:absolute;inset:0;background:rgba(12,16,22,.44);animation:pkFade .18s ease-out}
.pk-panel{
  position:relative;background:var(--card);border-radius:22px 22px 0 0;
  max-height:74vh;display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 -8px 30px rgba(20,30,50,.16);
  animation:pkUp .24s cubic-bezier(.22,.85,.3,1);
  padding-bottom:env(safe-area-inset-bottom);
}
@keyframes pkUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes pkFade{from{opacity:0}to{opacity:1}}
.pk-grip{width:38px;height:4px;border-radius:3px;background:#d9dee6;margin:9px auto 0;flex:none}
.pk-head{display:flex;align-items:center;gap:10px;padding:9px 16px 4px;flex:none}
.pk-head b{flex:1;font-size:16px;font-weight:700}
.pk-x{
  width:30px;height:30px;border-radius:50%;background:var(--bg);color:#7b8390;
  font-size:13px;line-height:1;flex:none;
}
.pk-x:active{background:var(--line)}
.pk-desc{padding:0 16px 6px;font-size:12.5px;color:var(--muted);line-height:1.6;flex:none}
.pk-body{overflow-y:auto;padding:2px 10px 16px;-webkit-overflow-scrolling:touch}
.pk-group{
  font-size:11.5px;color:var(--muted);font-weight:650;letter-spacing:.04em;
  padding:13px 10px 5px;
}
.pk-opt{
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  padding:13px 12px;border-radius:13px;font-size:15px;color:var(--text);
  transition:background .14s;
}
.pk-opt:active{background:var(--bg)}
.pk-opt.on{background:var(--brand-soft);color:var(--brand);font-weight:650}
.pk-lb{flex:1;min-width:0;word-break:break-all;line-height:1.45}
.pk-lb em{font-style:normal;color:var(--muted);font-size:12.5px;margin-left:8px;font-weight:400}
.pk-opt.on .pk-lb em{color:#5f88d8}
.pk-ck{flex:none;color:var(--brand);font-weight:800;font-size:15px;opacity:0;transform:scale(.6);
  transition:opacity .16s,transform .16s}
.pk-opt.on .pk-ck{opacity:1;transform:scale(1)}
.pk-ic{flex:none;font-style:normal;width:20px;text-align:center;font-size:15px;opacity:.9}
.pk-opt.act{color:var(--brand);font-weight:600}
.pk-opt.act .pk-ic{opacity:1}
.pk-opt.mng{color:#6b7280;font-size:14px}
.pk-opt.mng .pk-ic{opacity:.7}
.pk-empty{text-align:center;color:var(--muted);font-size:13px;padding:26px 0 30px}

/* ---------- 表单里的「假下拉」触发器 ---------- */
.pickfield{
  flex:1;min-width:0;display:flex;align-items:center;gap:8px;
  padding:10px 0;font-size:16px;font-weight:600;color:var(--text);
  line-height:1.35;text-align:left;background:none;
}
.group.tight .pickfield{padding:10px 0}
.pickfield .pv{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pickfield.empty .pv{color:#9aa1ab;font-weight:400}
.pickfield .pa{
  flex:none;width:8px;height:8px;border-right:1.8px solid #9aa3ae;border-bottom:1.8px solid #9aa3ae;
  transform:rotate(45deg) translate(-2px,-2px);margin-right:3px;
}
.pickfield:active .pa{border-color:var(--brand)}
.pickfield[disabled]{opacity:.5}
.pickfield.plain{font-size:14px;font-weight:400;color:#3c4453}

/* ---------- 取件信息 / 录入 SN 弹窗里的分块 ---------- */
.field-t{
  font-size:12.5px;color:var(--muted);font-weight:600;padding:2px 0 6px;
  display:flex;align-items:center;gap:6px;
}
.field-t .ft-note{font-weight:400;color:#a4abb5;font-size:11.5px}
.modal-card .in-row{margin-bottom:12px}
.modal-card .in-row input{margin-bottom:0}
.seg-tight{padding:0 0 12px;gap:6px}
.seg-tight .chip{font-size:12px;padding:6px 10px}

.snbox{margin:2px 0 12px;max-height:46vh;overflow-y:auto;
  border:1px solid var(--line);border-radius:14px;padding:2px 12px}
.snblk{padding:12px 0;border-bottom:1px solid var(--line)}
.snblk:last-child{border-bottom:none}
.snblk-h{display:flex;align-items:baseline;gap:8px}
.snblk-h b{flex:1;font-size:14.5px;font-weight:650;min-width:0;word-break:break-all}
.snblk-h em{font-style:normal;flex:none;font-size:12.5px;color:var(--brand);font-weight:600}
.snchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.snchip{
  display:inline-flex;align-items:center;gap:4px;background:#eef4ff;color:#3563c6;
  border-radius:9px;padding:5px 6px 5px 9px;font-size:12.5px;font-weight:600;
  word-break:break-all;
}
.snchip .snx{
  flex:none;width:17px;height:17px;border-radius:50%;background:#d6e3ff;color:#3d68c9;
  font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center;
}
.sn-empty{font-size:12.5px;color:#a4abb5;margin-top:7px}

/* 单个订单「出货 / 结算」面板：一行一件，右边两个按钮 */
.spbox{margin:2px 0 12px;max-height:48vh;overflow-y:auto;
  border:1px solid var(--line);border-radius:14px;padding:0 12px}
.sp-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.sp-row:last-child{border-bottom:none}
.sp-main{flex:1;min-width:0}
.sp-main b{font-size:14.5px;font-weight:650;word-break:break-all}
.sp-q{font-size:12.5px;color:var(--brand);font-weight:600;margin-left:6px}
.sp-st{
  font-style:normal;display:inline-block;margin-left:6px;font-size:11px;font-weight:600;
  padding:1px 6px;border-radius:6px;background:#f0f2f5;color:var(--muted);vertical-align:1px;
}
.sp-st.ship{background:#fff5e6;color:#b26a00}
.sp-st.done{background:#e8f7ee;color:var(--ok)}
.sp-sub{font-size:11.5px;color:var(--muted);margin-top:3px}
.sp-acts{flex:none;display:flex;flex-direction:column;gap:5px;align-items:stretch}
.sp-acts .mini-btn{white-space:nowrap;text-align:center}
/* 只剩一个按钮（出货在途的「结算」）：占满剩余宽度，居中不偏 */
.sp-acts.solo{flex:1;min-width:0}
.sp-acts.solo .mini-btn{width:100%}
/* 这批改动还没提交：整行淡蓝底 + 左侧竖条，一眼看出「改了哪几件」 */
.sp-row.sp-chg{background:var(--brand-soft);border-radius:10px;padding-left:8px;padding-right:8px;
  box-shadow:inset 3px 0 0 var(--brand)}
.sp-row.sp-chg .sp-main b{color:var(--brand)}
/* 面板顶部那句「已改动 N 件 / 还没改动」提示 */
.sp-tip{display:inline-block;margin-top:4px;font-size:12px;color:var(--muted)}
.sp-tip b{color:var(--brand)}

/* ---------- 选择面板：搜索框 ---------- */
.pk-searchw{padding:2px 16px 10px;flex:none}
.pk-search{
  width:100%;height:42px;border-radius:12px;border:1px solid var(--line);
  background:var(--bg);padding:0 13px;font-size:15px;outline:none;
}
.pk-search:focus{border-color:var(--brand);background:#fff}

/* ---------- 点单式批量添加 ---------- */
.qa-bar{margin:0 0 12px}
.qa-btn{background:var(--brand-soft);color:var(--brand);font-weight:650}
.qa-panel{max-height:92vh}
.qa-panel .pk-body{flex:1 1 auto;min-height:0}
/* 美团点单式：一行一个型号，右侧加减数量 */
.qa-orow{padding:10px 12px;border-radius:12px;margin-bottom:8px;background:var(--bg);
  border:1px solid transparent;transition:background .15s,border-color .15s}
.qa-orow.on{background:#fff;border-color:#dbe4f5;box-shadow:0 1px 4px rgba(40,70,140,.07)}
.qa-orow.exp{background:#fff;border-color:var(--brand)}
.qa-otop{display:flex;align-items:center;gap:10px}
.qa-om{flex:1;min-width:0;font-size:14.5px;font-weight:650;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qa-step{flex:none;display:flex;align-items:center;gap:8px}
.qa-sb{
  width:30px;height:30px;border-radius:50%;flex:none;
  background:#eef2f8;color:#4b5565;font-size:17px;font-weight:600;line-height:1;
  display:flex;align-items:center;justify-content:center;
}
.qa-sb.add{background:var(--brand);color:#fff}
.qa-sb:active{opacity:.75}
.qa-q{
  width:42px;height:30px;flex:none;text-align:center;border:none;outline:none;
  background:var(--bg);border-radius:8px;font-size:15px;font-weight:650;padding:0;
}
.qa-orow.exp .qa-q,.qa-orow.on .qa-q{background:#f2f6fe}
.qa-obot{display:flex;align-items:center;gap:8px;margin-top:9px}
.qa-pl{flex:none;font-size:12.5px;color:var(--muted)}
.qa-price{
  flex:none;width:112px;min-width:0;height:34px;border:1px solid #e4e7ec;border-radius:9px;
  background:#fff;outline:none;font-size:15px;padding:0 10px;
}
.qa-price:focus{border-color:var(--brand)}
.qa-unit{flex:none;font-style:normal;font-size:11.5px;color:var(--muted)}
.qa-sum{flex:none;font-size:12.5px;color:var(--brand);font-weight:700;margin-left:2px}
.qa-snbtn{
  flex:1;min-width:0;font-size:11.5px;font-weight:600;padding:6px 10px;border-radius:8px;
  background:var(--bg);color:#7c8593;white-space:nowrap;text-align:center;
}
.qa-snbtn.has{background:var(--brand-soft);color:var(--brand)}
.qa-snbox{margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}
.qa-snrow{display:flex;align-items:center;gap:7px}
.qa-snin{
  flex:1;min-width:0;height:34px;border:1px solid #e4e7ec;border-radius:9px;
  background:#fff;outline:none;font-size:14px;padding:0 10px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.qa-snin:focus{border-color:var(--brand)}
.qa-mini{
  flex:none;font-size:12px;line-height:1;padding:8px 10px;border-radius:8px;
  background:var(--bg);color:#5b6472;white-space:nowrap;
}
.qa-mini.scan{background:var(--brand-soft);color:var(--brand);font-weight:600}
.qa-mini:active{opacity:.7}
.qa-snwrap{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 0}
.qa-snwrap:empty{display:none}
.qa-sn{
  display:inline-flex;align-items:center;gap:4px;background:#fff;color:#3563c6;
  border-radius:9px;padding:5px 6px 5px 9px;font-size:12.5px;font-weight:600;
  word-break:break-all;max-width:100%;
}
.qa-sn .x{
  flex:none;width:17px;height:17px;border-radius:50%;background:#dce7ff;color:#3d68c9;
  font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center;
}
.qa-foot{
  flex:none;border-top:1px solid var(--line);background:#fbfcfe;
  padding:10px 16px calc(12px + env(safe-area-inset-bottom));
  max-height:34vh;overflow-y:auto;
}
.qa-cart-h{font-size:12.5px;color:var(--muted);padding:0 2px 8px}
.qa-cart-h b{color:var(--text)}
.qa-cx{
  flex:none;width:24px;height:24px;border-radius:50%;background:var(--bg);
  color:#9aa1ab;font-size:11px;line-height:1;
}
.qa-cx:active{background:#e9edf3}
.qa-done{margin-top:10px;height:46px;border-radius:13px}

/* ---------- 发票 ---------- */
/* 卡片上的发票标签：直接点一下就切换开票状态 */
.tag.inv-btn{
  border:1px solid transparent;cursor:pointer;font-family:inherit;
  background:#e8f7ee;color:var(--ok);border-color:#cfe9da;
}
.tag.inv-btn.on{background:#e8f7ee;color:var(--ok);border-color:#cfe9da}
.tag.inv-btn:not(.on){background:#f2f4f7;color:#9aa1ab;border-color:#e4e7ec}
.tag.inv-btn:active{transform:scale(.94);opacity:.85}
/* 订单筛选行最右边的两栏发票筛选 */
.chip.inv{background:var(--bg)}
.chip.inv.on{background:#f2f4f7;border-color:#dadfe6;color:#4b535f;font-weight:600}
.tag.direct{background:#e8f4fd;color:#1a6fb5}

/* ============================================================
 * v2.12：弹窗按钮对齐 / 回收站明细 / 运单号拍照识图
 * ============================================================ */
/* 弹窗里竖排的按钮组：行距统一，不再靠每个按钮各写一个 margin-top，
   否则「第一行贴住、后面 8px、最后 14px」看着七零八落 */
.btn-stack{display:flex;flex-direction:column;gap:10px}
.btn-stack .btn{width:100%}
.btn-stack.gap-lg{gap:12px}

/* 「更多」菜单：图标 + 文字左对齐，右侧给个小箭头，一眼看出是列表项 */
.menu{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:13px;
  overflow:hidden;background:var(--card)}
.menu+.menu{margin-top:12px}
.menu-item{
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  padding:14px 13px;font-size:14.5px;color:var(--text);background:none;
  border-bottom:1px solid var(--line);
}
.menu-item:last-child{border-bottom:none}
.menu-item:active{background:var(--bg)}
.menu-item .mi-ic{flex:none;font-size:15px;width:20px;text-align:center;font-style:normal}
.menu-item .mi-tx{flex:1;min-width:0;line-height:1.4}
.menu-item .mi-tx em{font-style:normal;display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
.menu-item .mi-ar{flex:none;color:#c3c9d3;font-size:13px}
.menu-item.on{color:var(--ok);font-weight:650}
.menu-item.on .mi-ar{color:var(--ok)}
.menu-item.danger{color:var(--bad)}
.menu-item.danger .mi-ar{color:#eaa1a3}

/* 回收站：每条显示删掉的款式明细，右侧按钮竖排等宽对齐 */
.trashbox{max-height:48vh;overflow-y:auto;border:1px solid var(--line);border-radius:13px;padding:0 12px}
.trash-row{display:flex;align-items:stretch;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.trash-row:last-child{border-bottom:none}
.trash-main{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.trash-t{font-size:13.5px;font-weight:650}
.trash-t .tm{font-weight:400;color:var(--muted);margin-left:6px;font-size:12px}
.trash-models{font-size:12px;color:#5b6472;margin-top:4px;line-height:1.65;word-break:break-all}
.trash-models b{color:var(--brand);font-weight:650}
.trash-sub{font-size:11.5px;color:var(--muted);margin-top:3px;word-break:break-all}
/* 恢复 / 彻底删：上下两端对齐，两个按钮等宽 */
.trash-acts{
  flex:none;display:flex;flex-direction:column;justify-content:space-between;
  align-items:stretch;gap:8px;width:66px;
}
.trash-acts .mini-btn{
  text-align:center;white-space:nowrap;padding:7px 8px;
  display:flex;align-items:center;justify-content:center;min-height:30px;
}
.trash-empty{text-align:center;color:var(--muted);font-size:13px;padding:26px 0 30px}

/* 运单号弹窗里的「扫码 / 拍照 / 相册」三个入口 */
.tk-alt{display:flex;gap:8px;flex-wrap:wrap;padding-top:10px}
.tk-alt .chip{flex:1;min-width:0;text-align:center;justify-content:center}
