/* v69-48 outsourcing — Nơi thực hiện cấp công đoạn + bảng đối chiếu công nợ gia công ngoài */
.stageExecRow{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:7px 9px 0;margin:0}
.stageExecRow>label{display:flex;flex-direction:column;gap:4px;font-weight:700;color:#334155;font-size:13px}
.stageExecRow>label>span{display:block}
.stageExecRow select,.stageExecRow input{box-sizing:border-box}
.stageExecRow .stageExecPlace select{min-width:160px}
.stageExecRow .stageExecTick{flex-direction:row;align-items:center;gap:6px;padding:2px 8px;border:1px solid #dbe4ee;border-radius:6px;background:#f8fafc}
.stageExecRow.isExternal .stageExecTick{border-color:#f59e0b;background:#fff7ed;color:#b45309}
.stageExecRow .stageExecTick input{width:auto;min-width:0}
.stageExecRow .stageExecField input{min-width:140px}
.stageExecRow .stageExecSplit{flex-direction:row;align-items:center;gap:6px;padding-bottom:5px}
.stageExecRow .stageExecSplit input{width:auto;min-width:0}
.stageExecRow .stageExecAlert{flex:1 1 100%;margin:4px 0 0}
@media(max-width:680px){.stageExecRow{gap:8px}.stageExecRow>label{flex:1 1 100%}.stageExecRow .stageExecPlace select,.stageExecRow .stageExecField input{width:100%;min-width:0}}

.outsourceFilter{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.outsourceFilter label{display:flex;flex-direction:column;gap:5px;font-weight:700;color:#334155}
.outsourceTable td.num,.outsourceTable th.num{text-align:right;white-space:nowrap}
.outsourceTable input.osInput{width:110px;box-sizing:border-box;text-align:right}
.outsourceTable tr.outsourceTotal{background:#f1f5f9;font-weight:800}
.outsourceTable tr.outsourceTotal td{border-top:2px solid #94a3b8}
.outsourceGroup h2{margin-bottom:8px}

/* v69-54 — Gửi gia công */
.dispatchGroup h2 small{font-weight:normal;color:#666;font-size:13px}
.dispatchBar{margin-top:10px;display:flex;justify-content:flex-end}
.dispatchModal .dispatchHead{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:10px 0 14px}
.dispatchModal .dispatchHead label{display:flex;flex-direction:column;gap:4px;font-size:13px}
.dispatchModal .dispatchHead label.wide{grid-column:1/-1}
.dispatchModal .dispatchHead input{padding:7px 9px;border:1px solid #c8d4e2;border-radius:6px}
.dispatchModal .modalActions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
.dispatchModal table input{padding:5px 7px;border:1px solid #c8d4e2;border-radius:5px}
tr.dpVoid{opacity:.5;text-decoration:line-through}

.outsourceAllInline{display:inline-flex!important;align-items:center;gap:7px;padding:6px 10px;border:1px solid #f59e0b;border-radius:14px;background:#fff7ed;white-space:nowrap}
.outsourceAllInline input{width:auto;margin:0}
.outsourceAllRow{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0 2px}
.outsourceTypeChoices{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.outsourceTypeChoices label{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid #93c5fd;border-radius:14px;background:#eff6ff;white-space:nowrap}
.outsourceTypeChoices input{width:auto;margin:0}
.simpleOutsourceCard{border:2px solid #f59e0b;border-radius:10px;padding:10px;background:#fffaf0;margin:8px 0}
.simpleOutsourceCard h3{margin-top:0}
