/* ==========================================================================
   检验任务模块（ISMA）样式 —— 白底高对比、信息密集、手机与桌面双端
   独立文件，不影响伯乐智聘既有样式
   ========================================================================== */
:root{
  --bg:#f5f7fb; --panel:#ffffff; --panel2:#f6f8fc; --line:#e3e9f3; --line2:#eef2f8;
  --ink:#0a1020; --muted:#5a6b87; --accent:#2f6bff; --accent2:#1f4fd8;
  --ok:#0d7a4a; --okbg:#e8f7ef; --warn:#a2711a; --warnbg:#fdf4e4; --bad:#b31f33; --badbg:#fdeceb;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:13.5px/1.55 -apple-system,"Segoe UI","Microsoft YaHei",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
button{font:inherit;cursor:pointer}
.wrap{max-width:1560px;margin:0 auto;padding:14px 18px 60px}
@media(max-width:760px){.wrap{padding:10px 11px 70px}}

/* ---------- 顶栏 ---------- */
.in-top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.in-top .in-in{max-width:1560px;margin:0 auto;padding:10px 18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.in-back{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}
.in-title{font-size:16px;font-weight:700;letter-spacing:.2px}
.in-sub{font-size:12px;color:var(--muted)}
.in-user{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}
.role-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-weight:700;font-size:12px}
.role-pill.admin{background:#eef3ff;color:#1f4fd8}
.role-pill.qc{background:var(--okbg);color:var(--ok)}
.role-pill.merch{background:var(--warnbg);color:var(--warn)}
.in-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 12px}
.in-tabs button{background:#fff;border:1px solid var(--line);color:var(--muted);padding:7px 14px;border-radius:9px;font-size:13px}
.in-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}

/* ---------- 通用卡片 ---------- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:13px;margin-bottom:12px;overflow:hidden}
.card-h{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.card-h b{font-size:14px}
.card-h .sub{font-size:11.5px;color:var(--muted)}
.card-b{padding:13px 14px}
.grid{display:grid;gap:12px}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 13px;display:grid;gap:2px}
.kpi b{font-size:22px;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi span{font-size:11.5px;color:var(--muted)}
.kpi.warn b{color:var(--warn)} .kpi.bad b{color:var(--bad)} .kpi.ok b{color:var(--ok)}
@media(max-width:900px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}

.btn{background:var(--accent);border:1px solid var(--accent);color:#fff;padding:7px 13px;border-radius:9px;font-size:13px}
.btn:hover{background:var(--accent2)}
.btn.ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{border-color:#c9d6ea;background:#fafcff}
.btn.sm{padding:4px 10px;font-size:12px;border-radius:8px}
.btn.danger{background:#fff;border-color:#f0c4c0;color:var(--bad)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);font-size:11.5px;color:var(--muted);white-space:nowrap}
.chip b{color:var(--ink)}
.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:11.5px;font-weight:600}
.tag.wait{background:#f1f5fa;color:#5a6b87}
.tag.assigned{background:#e8f1ff;color:#1f4fd8}
.tag.run{background:#eef3ff;color:var(--accent)}
.tag.pending{background:var(--warnbg);color:var(--warn)}
.tag.done{background:var(--okbg);color:var(--ok)}
.tag.abort,.tag.bad{background:var(--badbg);color:var(--bad)}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.toolbar input,.toolbar select{height:34px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:#fff;font:inherit;color:var(--ink)}
.toolbar input{flex:1 1 200px;min-width:0}

/* ---------- 任务卡 ---------- */
.tk{background:#fff;border:1px solid var(--line);border-radius:13px;margin-bottom:11px;overflow:hidden}
.tk-h{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;flex-wrap:wrap}
.tk-h .sty{font-size:15px;font-weight:700;letter-spacing:.2px}
.tk-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:5px}
.prog{width:76px;height:6px;border-radius:4px;background:#eef2f8;overflow:hidden;display:inline-flex}
.prog i{display:block;height:100%;background:var(--accent)}
.tk-right{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.srow{display:grid;grid-template-columns:112px 92px minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:9px 14px;border-top:1px solid var(--line2)}
.srow .st{font-weight:600;font-size:12.5px}
.srow .who{font-size:12px;color:var(--muted)}
.srow .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.srow.locked{background:#fbfcfe}
@media(max-width:820px){
  .srow{grid-template-columns:1fr;gap:6px}
  .srow .acts{justify-content:flex-start}
}
.polist{background:var(--panel2);border-top:1px solid var(--line2);padding:10px 14px}
.pohd,.porow{display:grid;grid-template-columns:1.1fr 1.5fr .8fr .7fr .6fr 1.1fr;gap:8px;font-size:12px}
.pohd{color:var(--muted);padding-bottom:6px;border-bottom:1px solid var(--line)}
.porow{padding:6px 0;border-bottom:1px dashed var(--line2);align-items:center}
.porow:last-child{border-bottom:0}
.porow.bad{background:#fffafa}
.porow.bad .pono{color:var(--bad);font-weight:700}
.clrcell{display:inline-flex;align-items:center;gap:6px}
.clrimg{width:18px;height:18px;border-radius:5px;border:1px solid rgba(0,0,0,.1);display:block}
.pqbad{grid-column:1/-1;color:var(--bad);font-size:11.5px;font-weight:600}
@media(max-width:760px){
  .pohd{display:none}
  .porow{grid-template-columns:1fr 1fr;gap:5px 12px;padding:9px 0}
  .porow>span:nth-child(1){grid-column:1/-1;font-weight:600;font-size:13px}
  .porow>span::before{content:attr(data-l) " ";color:var(--muted);font-size:11.5px}
  .pqbad{grid-column:1/-1}
  .po-row>div:first-child{grid-template-columns:1fr 1fr !important}
  .po-row>div:first-child>span:first-child{grid-column:1/-1}
}
.empty{padding:26px;text-align:center;color:var(--muted);font-size:13px}

/* ---------- 抽屉 / 弹层 ---------- */
.scrim{position:fixed;inset:0;background:rgba(10,16,32,.42);z-index:60;display:none}
.scrim.on{display:block}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(560px,96vw);background:#fff;z-index:61;
  box-shadow:-10px 0 34px rgba(10,16,32,.16);transform:translateX(102%);transition:transform .22s;display:flex;flex-direction:column}
.drawer.on{transform:none}
.drawer.wide{width:min(920px,98vw)}
.dr-h{padding:13px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.dr-h b{font-size:15px}
.dr-b{padding:14px 16px;overflow:auto;flex:1}
.dr-f{padding:11px 16px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;background:#fcfdff}
@media(max-width:700px){.drawer,.drawer.wide{width:100vw}}

/* ---------- 表单 ---------- */
.fgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media(max-width:760px){.fgrid{grid-template-columns:1fr}}
.fld{display:grid;gap:4px}
.fld label{font-size:12px;color:var(--muted)}
.fld input,.fld select,.fld textarea{border:1px solid var(--line);border-radius:9px;padding:8px 10px;font:inherit;background:#fff;color:var(--ink);width:100%}
.fld textarea{min-height:64px;resize:vertical}
.grp{border:1px solid var(--line);border-radius:11px;margin-bottom:10px;overflow:hidden}
.grp>.gh{padding:9px 12px;background:var(--panel2);border-bottom:1px solid var(--line);font-weight:600;font-size:13px}
.itm{display:grid;grid-template-columns:minmax(0,1fr) auto 170px;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px dashed var(--line2)}
.itm:last-child{border-bottom:0}
.itm .nm{font-size:12.5px}
.itm .opts{display:flex;gap:6px}
.itm .opts label{display:inline-flex;align-items:center;gap:4px;font-size:12px;border:1px solid var(--line);
  border-radius:8px;padding:3px 9px;cursor:pointer;background:#fff}
.itm.ng{background:#fffafa} .itm.ng .nm{color:var(--bad);font-weight:600}
@media(max-width:760px){.itm{grid-template-columns:1fr;gap:6px}}
.photos{display:flex;gap:9px;flex-wrap:wrap}
.ph{width:96px;height:96px;border:1px dashed var(--line);border-radius:11px;display:grid;place-items:center;
  color:var(--muted);font-size:11.5px;text-align:center;cursor:pointer;background:#fbfdff;position:relative;overflow:hidden;padding:4px}
.ph img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.ph input{display:none}
.notice{border-radius:11px;padding:10px 12px;font-size:12.5px;margin-bottom:10px}
.notice.info{background:#f4f8ff;border:1px solid #dbe7ff;color:#1f4fd8}
.notice.warn{background:var(--warnbg);border:1px solid #f0dfb8;color:var(--warn)}
.notice.bad{background:var(--badbg);border:1px solid #f0c4c0;color:var(--bad)}
.sumbox{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.issuelist{display:grid;gap:6px}
.ilrow{padding:8px 11px;border-left:3px solid #d1372f;background:#fdf2f1;border-radius:0 8px 8px 0;color:#8f231c;font-size:12.5px}
.rep-block{border:1px solid var(--line);border-radius:11px;margin-bottom:10px}
.rep-block .rb-h{padding:9px 12px;background:var(--panel2);border-bottom:1px solid var(--line);font-weight:600;font-size:13px}
.qa{display:grid;gap:0}
.qa .qr{display:grid;grid-template-columns:minmax(0,1fr) 90px 1.1fr;gap:8px;padding:6px 12px;border-bottom:1px dashed var(--line2);font-size:12.5px}
.qa .qr:last-child{border-bottom:0}
.imgs{display:flex;gap:8px;flex-wrap:wrap;padding:10px 12px}
.imgs img{width:88px;height:88px;object-fit:cover;border-radius:9px;border:1px solid var(--line);cursor:zoom-in}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:#0a1020;color:#fff;
  padding:10px 18px;border-radius:11px;font-size:13px;opacity:0;transition:.2s;z-index:99;pointer-events:none;max-width:90vw}
.toast.on{opacity:1;transform:translateX(-50%)}
.lb{position:fixed;inset:0;background:rgba(6,10,20,.9);z-index:98;display:none;place-items:center}
.lb.on{display:grid}
.lb img{max-width:94vw;max-height:86vh;border-radius:10px}
.deny{max-width:620px;margin:14vh auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;text-align:center}
.deny h2{margin:0 0 8px;font-size:19px}
.deny p{color:var(--muted);margin:0 0 6px;font-size:13.5px}
.loading{padding:40px;text-align:center;color:var(--muted)}

/* ===================== 阶段四：数据看板 ===================== */
.g6k{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
@media(max-width:1100px){.g6k{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.g6k{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(max-width:900px){.dgrid{grid-template-columns:1fr}}
.dspan2{grid-column:1/-1}
.dbar{display:grid;grid-template-columns:96px minmax(0,1fr) 52px 118px;gap:9px;align-items:center;padding:5px 0;font-size:12.5px}
.dbar .db-nm{color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dbar .db-tr{height:12px;border-radius:7px;background:#eef2f9;overflow:hidden;display:block}
.dbar .db-tr i{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,#5b8cff,#2f6bff)}
.dbar .db-vl{text-align:right;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.dbar .db-nt{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:620px){.dbar{grid-template-columns:78px minmax(0,1fr) 44px;}.dbar .db-nt{display:none}}

/* ===================== 表单必填计数 ===================== */
.cntbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:10px 0 4px;padding:9px 12px;
  background:#f6f8fc;border:1px solid var(--line);border-radius:10px;font-size:12.5px;color:var(--muted)}
.cntbar b{color:var(--bad);font-weight:700}
.cntbar b.ok{color:#0f7b4f}
.cntbar span#fm-ph{color:var(--bad)}
.cntbar span#fm-ph.ok{color:#0f7b4f}
.cntbar .hint{color:var(--muted);font-size:11.5px;margin-left:auto}

/* ===================== 人员与权限 ===================== */
.mrow{display:grid;grid-template-columns:minmax(0,1fr) 132px 268px;gap:10px;align-items:center;
  padding:9px 0;border-bottom:1px dashed var(--line2)}
.mrow:last-child{border-bottom:0}
.mrow .mnm b{font-size:13.5px;color:var(--ink)}
.mrow .msub{font-size:11.5px;color:var(--muted);margin-top:1px}
.mrow .mact{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.mrow .mact select{height:32px;border:1px solid var(--line);border-radius:9px;padding:0 8px;font:inherit;font-size:12.5px;background:#fff;color:var(--ink)}
@media(max-width:760px){
  .mrow{grid-template-columns:1fr;gap:7px}
  .mrow .mact{justify-content:flex-start}
  .mrow .mact select{flex:1}
}

/* ===================== PO 尺码明细（展示） ===================== */
.poblk{padding:0}
.poblk .porow{border-bottom:0}
.szline{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:2px 0 8px;border-bottom:1px dashed var(--line2);font-size:12px}
.szsum{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:9px 0 2px;margin-top:5px;border-top:1px dashed var(--line2);font-size:12px}
.szsum>b{color:var(--muted);font-weight:600;font-size:11.5px}
.sz{display:inline-flex;align-items:baseline;gap:4px;background:#f4f7fd;border:1px solid var(--line);border-radius:7px;padding:1px 7px;color:var(--ink);font-variant-numeric:tabular-nums}
.sz>i{font-style:normal;color:var(--muted);font-size:11px;font-weight:600}
.sz-t{color:var(--muted);font-size:11.5px}
@media(max-width:760px){.szline,.szsum{gap:5px}.sz{padding:1px 6px;font-size:11.5px}}

/* ===================== 新建任务：PO × 尺码 表格 ===================== */
.ntgrid{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
.ntrow{display:grid;gap:6px;padding:6px 8px;
  border-bottom:1px solid var(--line2);align-items:center;min-width:max-content}
.ntrow:last-child{border-bottom:0}
.ntrow input{width:100%;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit;font-size:12.5px;min-width:0;background:#fff;color:var(--ink)}
.ntrow input:focus{outline:2px solid #d7e4ff;border-color:#9dbcff}
.ntrow .ntn{text-align:center;box-sizing:border-box}
.nth{background:#f6f8fc;color:var(--muted);font-size:12px;font-weight:600;position:sticky;top:0}
.ntc{text-align:center;white-space:nowrap}
.ntt{text-align:center;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.ntx{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;padding:4px 7px;border-radius:7px}
.ntx:hover{background:#fdeaec;color:var(--bad)}

/* 防止尺码表把抽屉/容器撑宽（grid 子项默认 min-width:auto = min-content） */
.dr-b{min-width:0}
.dr-b>*{min-width:0;max-width:100%}
.fld{min-width:0}
#nt-wrap,.ntgrid{min-width:0;max-width:100%}

/* ===================== 新建任务：按尺码填写引导 ===================== */
.ntguide{line-height:1.6}
.ntguide .ntsteps{display:flex;flex-direction:column;gap:5px;margin-top:8px}
.ntguide .ntsteps span{display:flex;gap:7px;align-items:flex-start;font-size:12.5px;color:var(--ink)}
.ntguide .ntsteps em{font-style:normal;flex:1;min-width:0;line-height:1.65}
.ntguide .ntsteps em b{font-weight:700}
.ntguide .ntsteps i{flex:0 0 auto;width:15px;height:15px;margin-top:1px;border-radius:50%;
  background:#e8f0ff;color:#2b62c9;font-style:normal;font-size:10.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center}
.nttip{margin-top:9px;padding:7px 10px;border:1px dashed var(--line);border-radius:9px;
  background:#fbfdff;color:var(--muted);font-size:12px;line-height:1.65}

/* ===================== 新建任务：填写示例 ===================== */
.ntdemo{margin:0 0 9px;padding:9px 11px;border:1px solid #dbe6fb;border-radius:10px;background:#f6f9ff}
.ntdemo>b{font-size:12.5px;color:#2b62c9}
.ntd-row{display:flex;flex-wrap:wrap;gap:5px 7px;align-items:center;margin-top:6px;font-size:12.5px;color:var(--ink)}
.ntd-row .ntd-k{color:var(--muted);font-size:11.5px}
.ntd-row i,.ntd-note i{font-style:normal;font-weight:600;font-variant-numeric:tabular-nums;
  background:#fff;border:1px solid #dbe6fb;border-radius:6px;padding:1px 6px}
.ntd-ok{color:#1e7a3c;font-weight:600;background:#eafaf0;border:1px solid #c9ecd7;border-radius:6px;padding:2px 8px;font-size:12px}
.ntd-note{margin-top:7px;padding-top:6px;border-top:1px dashed #dbe6fb;color:var(--muted);font-size:11.5px;line-height:1.7}

/* 尺码格：去掉数字框原生箭头（会吃掉 4 位数宽度）+ 居中 */
.ntrow input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;text-align:center}
.ntrow input[type=number]::-webkit-outer-spin-button,
.ntrow input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ntrow input[data-k="q"]{padding-left:4px;padding-right:4px}

/* 指派选择器：候选徽标 + 搜索 */
.chip.ok{background:#eafaf0;border-color:#c9ecd7;color:#1e7a3c}
.chip.warn{background:#fff8e8;border-color:#f2e0b0;color:#8a5a00}
.chip.bad{background:#fdeaec;border-color:#f4ccd1;color:#b31f33}
#asg-list .itm{border:1px solid var(--line);border-radius:10px;margin-bottom:6px}
#asg-list .itm:hover{background:#f8fbff}

/* ===================== 任务池切换 / 款式主图 ===================== */
.segs{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.segs .seg{border:0;background:transparent;padding:7px 14px;font:inherit;font-size:13px;color:var(--muted);cursor:pointer;white-space:nowrap}
.segs .seg b{color:var(--ink);margin-left:2px}
.segs .seg.on{background:#eef3ff;color:#1f4fd8;font-weight:600}
.segs .seg.on b{color:#1f4fd8}
.segs .seg + .seg{border-left:1px solid var(--line)}
.tk-thumb{width:64px;height:64px;flex:0 0 auto;border-radius:10px;object-fit:cover;
  border:1px solid var(--line);cursor:zoom-in;background:#f6f8fc}
.imgup{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.imgup input[type=file]{font-size:12.5px;max-width:100%}
.nt-pv{width:88px;height:88px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:zoom-in}
@media(max-width:700px){
  .tk-thumb{width:52px;height:52px;border-radius:8px}
  .segs .seg{padding:6px 11px;font-size:12.5px}
  .nt-pv{width:72px;height:72px}
}


/* ================== 检验项卡片（ISMA App 原设计） ================== */
.fgrid2{display:grid;grid-template-columns:1fr;gap:10px}
.fc{background:#f4f6f9;border:1px solid #e8ebf0;border-radius:10px;padding:12px 13px 11px}
.fch{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.fcc{color:#c8a11a;font-weight:700;font-size:12.5px;letter-spacing:.3px}
.fcst{flex:1}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d7dce4}
.dot.ok{background:#1f9d55}
.fct{color:#1b2b50;font-size:13.5px;line-height:1.5;margin-bottom:9px}
.fco{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:8px}
.opt{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:#3b4a63;cursor:pointer}
.opt input{accent-color:#2b6cf6;width:15px;height:15px}
.opt.on{color:#12304f;font-weight:600}
.opt.neg.on{color:#b31f33}
.opt.pos.on{color:#1f7a45}
.fcf{display:flex;align-items:center;gap:9px;margin:7px 0;flex-wrap:wrap}
.fcf label{font-size:12.5px;color:#5a6b87;min-width:74px}
.fcf input{flex:1;min-width:120px;border:1px solid #dfe4ec;border-radius:8px;padding:6px 9px;font:inherit;background:#fff}
.fcp{display:flex;flex-wrap:wrap;gap:9px;margin:8px 0 4px}
.ptile{position:relative;width:96px;background:#fff;border:1px solid #e3e7ee;border-radius:10px;overflow:hidden;text-align:center}
.pthdel{position:absolute;top:3px;right:3px;z-index:2;width:19px;height:19px;border-radius:50%;background:#ef4444;color:#fff;border:2px solid #fff;font-size:10px;line-height:1;padding:0;cursor:pointer;box-shadow:0 1px 3px rgba(15,23,42,.25)}
.pthdel:hover{background:#dc2626}
.ptile label{display:block;height:86px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#fbfcfe}
.ptile img{width:100%;height:86px;object-fit:cover;display:block;cursor:zoom-in}
.ptile .cam{font-size:22px;color:#8f9bb0}
.ptile input[type=file]{display:none}
.ptile .pcap{display:block;font-size:11.5px;color:#5a6b87;padding:4px 3px;border-top:1px solid #eef1f6;background:#f7f9fc}
.fcm{width:100%;margin-top:8px;border:1px solid #e3e7ee;border-radius:8px;padding:7px 10px;font:inherit;background:#fff}
.aqlrow{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;background:#f4f6f9;border:1px solid #e8ebf0;border-radius:10px;margin-top:8px}
.aqlk{font-weight:700;color:#1b2b50;font-size:13px}
.refwrap{overflow-x:auto}
.reftb{width:100%;border-collapse:collapse;font-size:12.5px;background:#fff}
.reftb th,.reftb td{border:1px solid #e3e7ee;padding:6px 9px;text-align:left}
.reftb th{background:#eef2f8;color:#1b2b50;font-weight:600}
.reftb td.num{text-align:right;font-variant-numeric:tabular-nums}
.szm{display:flex;flex-direction:column;gap:8px}
.szm input{width:100%;border:1px solid #dfe4ec;border-radius:7px;padding:5px 8px;font:inherit}
.fcm2 input{width:100%;border:1px solid #dfe4ec;border-radius:8px;padding:7px 10px;font:inherit}
.resbox{display:flex;gap:18px;flex-wrap:wrap;padding:10px 12px;background:#f4f6f9;border:1px solid #e8ebf0;border-radius:10px}
.dfw{display:flex;flex-direction:column;gap:10px}
.df{display:grid;grid-template-columns:1.1fr 90px 1.6fr;gap:8px;align-items:center;background:#f4f6f9;border:1px solid #e8ebf0;border-radius:10px;padding:10px}
.df input,.df select{border:1px solid #dfe4ec;border-radius:8px;padding:6px 9px;font:inherit;background:#fff;min-width:0}
.dfp{grid-column:1 / -1;display:flex;align-items:center;gap:10px}
.dfp img{width:60px;height:60px;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:zoom-in}
.mini{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border:1px dashed #b9c3d4;border-radius:8px;color:#8f9bb0;cursor:pointer;font-size:20px}
.mini input[type=file]{display:none}
textarea.big{width:100%;min-height:86px;border:1px solid #e3e7ee;border-radius:10px;padding:9px 11px;font:inherit;background:#fff;resize:vertical}
.ngin{width:100%;border:1px solid #f0c4c0;border-radius:8px;padding:7px 10px;font:inherit;background:#fffafa;margin-top:6px}
.po-row{grid-template-columns:1.1fr .7fr .7fr .9fr;display:grid;gap:8px;align-items:center}
.po-row.ng{grid-template-columns:1.1fr .7fr .7fr .9fr}
.po-row input{width:100%;border:1px solid #dfe4ec;border-radius:7px;padding:5px 8px;font:inherit}
.rep-block .qa .qr{grid-template-columns:1.5fr 110px 1.6fr auto;gap:10px}
.qph{display:flex;gap:5px;flex-wrap:wrap}
.qph img{width:46px;height:46px;object-fit:cover;border-radius:7px;border:1px solid var(--line);cursor:zoom-in}
@media(max-width:700px){
  .fc{padding:10px}
  .ptile{width:80px}.ptile label,.ptile img{height:72px}
  .df{grid-template-columns:1fr}
  .po-row,.po-row.ng{grid-template-columns:1fr 1fr}
  .rep-block .qa .qr{grid-template-columns:1fr;gap:4px}
  .fco{gap:10px}
}

/* ================== 电子签名手写板 ================== */
.sgnwrap{display:flex;flex-direction:column;gap:12px}
.sgn{background:#f4f6f9;border:1px solid #e8ebf0;border-radius:10px;padding:11px 12px}
.sgnh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.sgnn{color:#1b2b50;font-size:13px;font-weight:600}
.sgnhint{color:#8b97ab;font-size:11.5px}
.sgncv{display:block;width:100%;height:150px;background:#fff;border:1px dashed #b9c3d4;border-radius:9px;cursor:crosshair}
.sgnbar{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}
.sgnimg{display:flex;align-items:center;gap:12px}
.sgnimg img{width:210px;max-width:60%;height:96px;object-fit:contain;background:#fff;border:1px solid #e3e7ee;border-radius:9px;cursor:zoom-in}
@media(max-width:700px){
  .sgncv{height:130px}
  .sgnimg img{width:150px;height:80px}
  .sgnbar{justify-content:stretch}
  .sgnbar .btn{flex:1}
}
/* 报告里的电子签名：放大显示 */
.rep-block .qa .qr.sgnrow{grid-template-columns:1.5fr 110px 1fr auto}
.qph img.sig,.qr.sgnrow .qph img{width:132px;height:66px;object-fit:contain;background:#fff}
.signs{display:flex;flex-wrap:wrap;gap:12px}
.signs img{width:200px;height:96px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:9px;cursor:zoom-in}
@media(max-width:700px){.qr.sgnrow .qph img{width:110px;height:56px}.signs img{width:150px;height:76px}}

/* 业务员徽标 */
.chip.merch{background:#f2f7ff;border-color:#d8e6ff;color:#1f4fd8}
.chip.merch[data-act]{cursor:pointer}
/* 【v50】业务组徽标：与业务员区分色，管理员可点改归属 */
.chip.grp{background:#f4f0ff;border-color:#ded5ff;color:#5b3fd8}
.chip.grp[data-act]{cursor:pointer}
.chip.warn{background:#fff8e8;border-color:#f2e0ae;color:#8a5a00;cursor:pointer}
/* KPI 提示态（存在未解锁阶段时） */
.kpi.note b{color:#8a5a00}
.kpi span{line-height:1.35}
/* 日期选择器（日历选择） */
input[type="date"]{min-height:34px;color:var(--ink);background:#fff}
input[type="date"].dtin{width:100%}
input[type="date"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;padding:2px}
input[type="date"]:hover::-webkit-calendar-picker-indicator,input[type="date"]:focus::-webkit-calendar-picker-indicator{opacity:1}
input[type="date"]:invalid{color:var(--muted)}

/* 日期范围校验样式 */
.fcf-limit{flex-basis:100%;font-size:11.5px;color:var(--muted);line-height:1.5;margin:2px 0 4px}
.fcf-limit b{color:var(--ink)}
.dt-bad{color:#c92a2a;font-weight:700}
input[type="date"].bad{border-color:#e5484d;background:#fff6f6}

/* 合同式 PO / 尺码明细表（与浦橙合同「颜色尺码明细」一致的列式） */
.pctwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.pctb{width:100%;border-collapse:collapse;font-size:12.5px;min-width:620px;background:#fff}
table.pctb th,table.pctb td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;vertical-align:middle}
table.pctb th{background:var(--panel2);color:var(--muted);font-weight:600;font-size:12px}
table.pctb th.num,table.pctb td.num{text-align:right;font-variant-numeric:tabular-nums}
table.pctb td.ix,table.pctb th.ix{width:44px;color:var(--muted)}
table.pctb td.clr{white-space:normal;max-width:190px;line-height:1.35}
table.pctb td.sty{font-weight:600}
table.pctb td.cnm{color:var(--ink)}
table.pctb td.pono{font-variant-numeric:tabular-nums}
table.pctb td.tot{font-weight:700;color:var(--ink)}
table.pctb td.nil{color:#c3ccdb}
table.pctb tr.bad td{background:#fffafa}
table.pctb tr.bad td.pono{color:var(--bad);font-weight:700}
table.pctb tfoot tr.sum td{background:#f7faff;border-top:2px solid var(--line);font-weight:700;color:#1f4fd8}
.pcsum{display:flex;gap:8px;flex-wrap:wrap;padding-top:8px}
.pcsum .chip.bad{background:#fff1f1;border-color:#ffd6d6;color:#c22}
.tk-nm{font-style:normal;font-weight:400;color:var(--muted);margin-left:8px;font-size:13px}
.chip.cnm-chip{background:#f5f9ff;border-color:#dbe8ff;color:#24467f}
.f2{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
@media (max-width:640px){
  .f2{grid-template-columns:1fr}
  table.pctb td.cnm,table.pctb th.cnm{display:none}
}

/* ---------- 管理员：异动日志 + 删除任务 ---------- */
.logbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.logbar .inp{flex:1 1 240px;min-width:180px}
table.logtb th:nth-child(1),table.logtb td.lgtime{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}
table.logtb td.lgtext{white-space:normal;line-height:1.45;min-width:280px;font-size:12px;color:var(--ink)}
table.logtb tr.bad td{background:#fffafa}
table.logtb tr.bad td.lgtext{color:var(--bad)}
.delbox .delwarn{background:var(--badbg);border:1px solid #f0c4c0;color:var(--bad);border-radius:11px;padding:10px 12px;font-size:12.5px;margin-bottom:10px}
.deltip{margin-top:10px;font-size:12px;color:var(--muted);line-height:1.5}
.delbox .lbl{display:block;font-size:12.5px;color:var(--muted);margin:10px 0 6px}
.delbox .inp{width:100%}
table.deltb td{padding:6px 8px;font-size:12.5px}
table.deltb td:first-child{color:var(--muted);width:120px}
@media (max-width:640px){
  table.logtb td.lgtext{min-width:200px}
  table.deltb td:first-child{width:88px}
}

/* ---------- PO 拆分 / 合并 ---------- */
.btn.sm.nosplit{color:#b9c3d2;border-color:var(--line);cursor:not-allowed}
table.pctb th.ck,table.pctb td.ck{width:38px;text-align:center}
table.pctb td.sz{white-space:normal;font-size:11.5px;color:var(--muted);max-width:280px;line-height:1.4}
.spmode{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.spmode label{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;font-size:12.5px;cursor:pointer;background:#fff}
.spmode label.off{opacity:.55;cursor:not-allowed}
.spmode label em{font-style:normal;font-weight:600;color:var(--ink);white-space:nowrap}
.spmode label span{color:var(--muted);line-height:1.45}
.spmode input[type=radio]{margin-top:3px}
#sp-target{width:100%;margin-bottom:4px}

/* ---------- 派发中心：勾选 / 折叠 / 重点信息 ---------- */
.tk.picked{border-color:#1f4fd8;box-shadow:0 0 0 2px #dbe7ff inset}
.tk-h{cursor:pointer}
.tk-ck{display:flex;align-items:center;padding-right:2px}
.tk-ck input{width:17px;height:17px;cursor:pointer}
.tk-main{flex:1 1 auto;min-width:0}
.tk-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px}
.tk-style{font-size:16px;font-weight:700;color:var(--ink);letter-spacing:.3px}
.tk-fac,.tk-due{font-size:12.5px;color:var(--muted)}
.tk-fac b,.tk-due b{color:var(--ink);font-weight:600}
.inv{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;border:1px solid transparent}
.inv-wait{background:#f1f4f9;color:#5a6b87;border-color:#e3e9f3}
.inv-run{background:#eef4ff;color:#1f4fd8;border-color:#d6e3ff}
.inv-pending{background:var(--warnbg);color:var(--warn);border-color:#f0dfb8}
.inv-done{background:#eaf7ef;color:#1a7f4b;border-color:#c9e9d6}
.inv-abort{background:var(--badbg);color:var(--bad);border-color:#f0c4c0}
.tk-fold{white-space:nowrap}
.tk-body{border-top:1px dashed var(--line);margin-top:4px;padding-top:6px}
.tk-pobar{display:flex;justify-content:flex-end;padding:6px 2px 2px}
.sp-taskfld{margin-bottom:10px}
.sp-taskfld select{width:100%}

/* ================= 【v3】表单改造：PO 包装 / 实际裁剪数据 / 分支题 ================= */
.fcsub{font-size:12.5px;color:#5a6b87;font-weight:600;margin:6px 0 2px}
.funit{font-size:12px;color:#5a6b87;margin-left:-4px;white-space:nowrap;flex:0 0 auto}
.fcm.first{margin:2px 0 8px;border-color:#c7d2fe;background:#fbfbff}
.fbr{border-left:3px solid #10b981;background:#f8fafc;border-radius:0 8px 8px 0;padding:6px 9px 4px;margin:6px 0}
.fbr.neg{border-left-color:#ef9a9a;background:#fffafa}
.fbr>b{display:block;font-size:12px;color:#0f766e;margin-bottom:2px}
.fbr.neg>b{color:#b31f33}

/* PO 包装 */
#pkgwrap .pkgblk{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:10px}
.pkghead{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:8px}
.pkghead>b{font-size:13px;color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;padding:1px 9px}
.pkghead>span{font-size:12px;color:var(--muted)}
.pkgprog{margin-left:auto;border-radius:20px;padding:1px 9px;font-size:11.5px;font-weight:700;border:1px solid}
.pkgprog.ok{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.pkgprog.bad{background:#fef2f2;color:#b91c1c;border-color:#fca5a5}
.pkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:9px;margin-bottom:8px}
.pkgtile{position:relative;width:100%!important;max-width:130px}
.pkgtile label{height:76px}
.pkgtile img{height:76px}
.pkgcnt{position:absolute;top:4px;right:4px;background:#4338ca;color:#fff;font-size:10px;font-weight:700;border-radius:9px;padding:0 6px;line-height:16px}
.pkghint{font-size:11.5px;color:var(--muted);line-height:1.7;padding:2px 2px 0}
.pkgempty{padding:14px;text-align:center;color:var(--muted);font-size:12.5px}

/* 实际裁剪数据 */
.cutblk{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0}
.cuthd{font-size:12.5px;font-weight:600;color:#0a1020;margin-bottom:8px}
.cutwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cuttb{border-collapse:collapse;width:100%;min-width:460px;font-size:12.5px}
.cuttb th,.cuttb td{border:1px solid #e2e8f0;padding:4px 6px;text-align:center}
.cuttb th{background:#f1f5f9;color:#334155;font-weight:700}
.cuttb td input{width:100%;border:1px solid #e2e8f0;border-radius:6px;height:30px;text-align:center;font:inherit;background:#fff}
.cuttb .cutc{position:sticky;left:0;z-index:2;background:#fafafa;text-align:left;font-weight:600;min-width:104px;max-width:150px;line-height:1.3}
.cuttb .cutsum{background:#fafafa;color:#475569;font-weight:600}
.cuttb .cutfoot td{background:#f1f5f9;font-weight:700}
.cutnote{font-size:11.5px;color:var(--muted);line-height:1.6;margin-top:6px}

@media (max-width:760px){
  .pkgrid{grid-template-columns:repeat(3,1fr);gap:7px}
  .pkgtile{max-width:none}
  .pkgtile label,.pkgtile img{height:70px}
  .pkgtile .pcap{font-size:10.5px;line-height:1.25;padding:3px 1px}
  .cuttb{min-width:520px}
  .cuttb td input{height:34px;font-size:13px}
  .cuttb .cutc{min-width:92px;max-width:92px;font-size:11px}
}
/* 【v3】报告里的 PO 包装块 */
.pkgrep{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0}
.pkgrep-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:6px}
.pkgrep-h b{font-size:13px;color:#0a1020}
.pkgrep-n{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;border-radius:20px;padding:1px 9px;font-size:11.5px;font-weight:700}
.pkgrep-c{font-size:11.5px;color:var(--muted);line-height:1.6;margin-bottom:8px}
.pkgrep-g{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}
.pkgrep-f{margin:0;text-align:center}
.pkgrep-f img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px;border:1px solid #e3e9f3;cursor:zoom-in;display:block}
.pkgrep-f figcaption{font-size:10px;color:var(--muted);line-height:1.2;margin-top:2px}
@media (max-width:1100px){.pkgrep-g{grid-template-columns:repeat(6,1fr)}}
@media (max-width:760px){.pkgrep-g{grid-template-columns:repeat(3,1fr);gap:5px}.pkgrep-f figcaption{font-size:9px}}

/* 【v3.1】PO 包装：临时新增 PO / 加拍提示 */
.pkgplus{position:absolute;right:5px;bottom:6px;width:20px;height:20px;line-height:19px;text-align:center;border-radius:50%;background:#4338ca;color:#fff;font-size:13px;font-weight:700;box-shadow:0 1px 3px rgba(15,23,42,.25);pointer-events:none}
.pkgtile label{position:relative}
.pkgfoot{display:flex;flex-direction:column;gap:6px;margin-top:2px}
.pkgaddpo{width:100%;padding:9px;border:1.5px dashed #a5b4fc;background:#f5f3ff;color:#4338ca;border-radius:10px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}
.pkgaddpo:hover{background:#ede9fe}
.pkghead input.pkgpo{flex:1;min-width:120px;max-width:220px;border:1px solid #dfe4ec;border-radius:8px;padding:5px 9px;font:inherit;font-size:12.5px;background:#fff}
.pkghead input.pkgpo.sm{max-width:150px}
.pkghead b.tmpb{background:#fef3c7;border-color:#fcd34d;color:#92400e}
.pkgdel{background:#fff;border:1px solid #fca5a5;color:#b91c1c;border-radius:7px;padding:3px 9px;font-size:11.5px;font-family:inherit;cursor:pointer}
.pkgdel:hover{background:#fef2f2}

/* 【v3.2】PO 包装判定行 */
.pkgok{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed #e3e9f3}
.pkgokk{font-size:12.5px;color:#5a6b87;font-weight:600}
.pkgok input.fcm.pkgwhy{flex:1;min-width:200px;margin:0}

/* 【v3.3】临时 PO 的数据填写行 */
.pkgdata{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px 10px 2px}
.pkgdata .fcf{margin:0}
.pkgdata .fcf label{min-width:64px}
@media (max-width:760px){.pkgdata{grid-template-columns:repeat(2,1fr)}}

/* 【v3.3b】临时 PO 数据行：手机上标签上、输入下，避免日期框撑破 */
.pkgdata .fcf input{min-width:0!important;width:100%}
@media (max-width:760px){
  .pkgdata{grid-template-columns:repeat(2,1fr);gap:9px}
  .pkgdata .fcf{display:block}
  .pkgdata .fcf label{display:block;min-width:0;margin:0 0 3px}
  .pkgdata .fcf input{width:100%;flex:none}
}

/* 【v3.5】PO 包装：每个拍摄项一行，缩略图可看/可删/可加拍 */
.pkgrows{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:8px 10px 2px}
.pkgrow{border:1px solid #e3e9f3;border-radius:9px;padding:6px 8px 7px;background:#fbfcfe}
.pkgrow.has{background:#f7fbff;border-color:#c7d2fe}
.pkgrow-h{display:flex;align-items:center;gap:6px;font-size:12px;color:#334155;margin-bottom:5px;font-weight:600}
.pkgmust{font-size:10px;color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;border-radius:4px;padding:0 4px;font-weight:700}
.pkgrow-b{display:flex;flex-wrap:wrap;gap:7px;align-items:center;min-height:58px}
.pkgth{position:relative;margin:0;width:58px;height:58px;flex:0 0 auto}
.pkgth img{width:58px;height:58px;object-fit:cover;border-radius:7px;border:1px solid #dbe3f0;cursor:zoom-in;display:block;background:#eef2f7}
.pkgemptyck{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:#5a6b87;cursor:pointer;white-space:nowrap}
.pkgemptyck input{width:auto;margin:0}
.pkgemptybox{border:1px dashed #c8d2e0;border-radius:7px;background:#f8fafc;color:#7b8798;font-size:12px;padding:10px 12px}
.pkgempty{width:100%;height:100%;min-height:44px;display:flex;align-items:center;justify-content:center;color:#7b8798;font-size:12px;background:#f8fafc;border:1px dashed #c8d2e0;border-radius:7px}
.pkgemptyf{padding:0}
.pkgrow-empty .pkgrow-h span{color:#7b8798}
.pkgthdel{position:absolute;top:-7px;right:-7px;width:19px;height:19px;border-radius:50%;background:#ef4444;color:#fff;border:2px solid #fff;font-size:10px;line-height:1;padding:0;cursor:pointer;box-shadow:0 1px 3px rgba(15,23,42,.25)}
.pkgthdel:hover{background:#dc2626}
.pkgadd{position:relative;width:58px;height:58px;border:1.5px dashed #a5b4fc;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#f5f3ff;color:#4338ca;font-size:19px;font-weight:700;cursor:pointer;flex:0 0 auto}
.pkgadd input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pkgrow .pkgcnt{background:#4338ca;color:#fff;border-radius:9px;padding:0 6px;font-size:10px;line-height:16px}
@media (max-width:760px){
  .pkgrows{grid-template-columns:1fr;gap:7px}
  .pkgth,.pkgth img,.pkgadd{width:54px;height:54px}
  .pkgrow-b{min-height:54px}
}

/* 【v3.5b】行内角标定位修正 + 未拍行压缩 */
.pkgrow .pkgcnt{position:static!important;top:auto!important;right:auto!important;flex:0 0 auto}
.pkgrow-b{min-height:0!important}
.pkgrow:not(.has) .pkgadd{width:46px;height:46px;font-size:16px}
.pkgrow:not(.has){padding:5px 8px 6px}

/* ===== 【v61-lbzoom】照片放大层：缩放与拖动 ===== */
.lb{overflow:hidden}
.lb img{touch-action:none;-webkit-user-drag:none;user-select:none;will-change:transform;transform-origin:center center;cursor:zoom-in}
.lb.zoomed img{cursor:grab}
.lb.zoomed img:active{cursor:grabbing}
.lb-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:6px;background:rgba(12,18,30,.74);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:6px;z-index:99}
.lb-bar button{min-width:40px;height:40px;border:0;border-radius:999px;background:rgba(255,255,255,.10);color:#fff;font-size:18px;line-height:1;display:grid;place-items:center;cursor:pointer;padding:0;font-family:inherit}
.lb-bar button:active{background:rgba(255,255,255,.30)}
.lb-bar .lb-zoom{min-width:54px;text-align:center;color:#fff;font-size:12.5px;font-variant-numeric:tabular-nums}
.lb-bar .lb-fit{width:auto;padding:0 12px;font-size:12.5px}
.lb-tip{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(66px + env(safe-area-inset-bottom,0px));color:rgba(255,255,255,.62);font-size:11.5px;z-index:99;white-space:nowrap;pointer-events:none}
@media (max-width:560px){.lb-tip{display:none}}
.lb-nav{position:fixed;top:50%;transform:translateY(-50%);width:46px;height:46px;border:0;border-radius:999px;background:rgba(12,18,30,.55);color:#fff;font-size:26px;line-height:1;display:grid;place-items:center;cursor:pointer;z-index:99;padding:0;font-family:inherit}
.lb-nav:active{background:rgba(255,255,255,.30)}
.lb-nav[hidden]{display:none}
.lb-prev{left:10px}
.lb-next{right:10px}
.lb-idx{min-width:46px;text-align:center;color:#fff;font-size:12px;font-variant-numeric:tabular-nums}
@media (max-width:560px){.lb-nav{width:40px;height:40px;font-size:22px}.lb-prev{left:6px}.lb-next{right:6px}}

/* ---------- 【v107-012】尾期 012 做工整体结果（参考表 → 问题列表 → 自动判定） ---------- */
.workbox{display:flex;flex-direction:column;gap:8px}
.wk-h{font-size:12.5px;font-weight:700;color:#1b2b50;margin-top:4px}
.wk-h .hint{font-weight:400;color:var(--muted);font-size:11.5px;margin-left:6px}
.workref{border:1px solid var(--line);border-radius:10px;background:#fff;overflow-x:auto}
.reftb.wr{font-size:12px}
.reftb.wr th,.reftb.wr td{padding:4px 7px;text-align:center;white-space:nowrap}
.reftb.wr th:first-child,.reftb.wr td:first-child{text-align:left}
.reftb.wr td.c{font-variant-numeric:tabular-nums}
.reftb.wr tr.on td{background:#fff6e3;font-weight:700}
.wvd{border:1.5px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--panel2);
  display:flex;flex-direction:column;gap:5px}
.wvd.ok{border-color:#b7e2c9;background:var(--okbg)}
.wvd.bad{border-color:#f0bfc4;background:var(--badbg)}
.wv-t{font-size:16px;font-weight:800;letter-spacing:.3px}
.wvd.ok .wv-t{color:var(--ok)}
.wvd.bad .wv-t{color:var(--bad)}
.wv-d{font-size:12.5px;color:#33415c;font-variant-numeric:tabular-nums}
.wv-d b{color:var(--ink)}
.wv-w{font-size:12px;color:var(--warn)}
@media (max-width:760px){
  .workref{max-height:238px;overflow:auto}
  .reftb.wr th:nth-child(6),.reftb.wr td:nth-child(6),
  .reftb.wr th:nth-child(7),.reftb.wr td:nth-child(7){display:none}
  .wv-t{font-size:15px}
}
/* 问题列表：等级下拉放宽到能显示「Major主要缺陷」 */
.df{grid-template-columns:1.1fr 118px 1.5fr}

/* 【v111】站内提醒 */
.nt-bell{position:relative;margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border,#e3e7ee);background:#fff;border-radius:9px;font-size:13px;color:#2b3a55;cursor:pointer}
.nt-bell:hover{border-color:#2f6bff;color:#2f6bff}
.nt-dot{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;line-height:18px;padding:0 5px;border-radius:9px;background:#e0455a;color:#fff;font-size:11px;font-weight:700;text-align:center}
.nt-row{padding:10px 12px;border-bottom:1px solid #eef1f7;cursor:pointer}
.nt-row:hover{background:#f5f8ff}
.nt-row.unread{background:#fbfcff;border-left:3px solid #2f6bff}
.nt-tt{font-size:13px;color:#0a1020;line-height:1.55}
.nt-meta{margin-top:4px;font-size:11.5px;color:#8a93a6}
