/* 进销存（inv）模块样式 — 阶段 1 */
.inv-root { display: flex; flex-direction: column; gap: 12px; }
.inv-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.inv-tabs { display: flex; gap: 4px; flex-wrap: wrap; }
.inv-tab { padding: 7px 14px; border: 1px solid var(--border, #d0d5dd); background: var(--bg, #fff); border-radius: 8px; cursor: pointer; font-size: 14px; color: var(--text, #1d2939); }
.inv-tab.active { background: var(--primary, #175cd3); border-color: var(--primary, #175cd3); color: #fff; }
.inv-eye { border: 1px solid var(--border, #d0d5dd); background: #fff; border-radius: 8px; padding: 6px 10px; cursor: pointer; font-size: 15px; }
.inv-eye.on { background: #fef3c7; border-color: #f59e0b; }
.inv-body { display: flex; flex-direction: column; gap: 12px; }
.inv-panel { background: var(--panel, #fff); border: 1px solid var(--border, #e4e7ec); border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.inv-panel-title { margin: 0; font-size: 15px; font-weight: 600; }
.inv-hint { margin: 0; color: var(--muted, #667085); font-size: 13px; }
.inv-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.inv-card { background: var(--panel, #fff); border: 1px solid var(--border, #e4e7ec); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; cursor: pointer; }
.inv-card span { color: var(--muted, #667085); font-size: 13px; }
.inv-card strong { font-size: 22px; }
.inv-card-warn { border-color: #f79009; background: #fffaeb; }
.inv-cards-small .inv-card strong { font-size: 17px; }
.inv-filters { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.inv-input { padding: 8px 10px; border: 1px solid var(--border, #d0d5dd); border-radius: 8px; font-size: 14px; min-width: 220px; }
.inv-select { min-width: 120px; }
.inv-table-wrap { overflow-x: auto; }
.inv-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.inv-table th, .inv-table td { padding: 7px 9px; border-bottom: 1px solid var(--border, #eaecf0); text-align: left; vertical-align: top; }
.inv-table th { color: var(--muted, #667085); font-weight: 600; white-space: nowrap; }
.inv-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.inv-code { color: var(--muted, #667085); font-size: 12px; font-family: ui-monospace, Consolas, monospace; }
.inv-negative { color: #d92d20; font-weight: 600; }
.inv-empty { padding: 28px; text-align: center; color: var(--muted, #667085); }
.inv-empty-inline { color: var(--muted, #667085); font-size: 12px; }
.inv-ops { white-space: nowrap; }
.inv-ops button, .inv-table button { padding: 4px 10px; border: 1px solid var(--border, #d0d5dd); background: #fff; border-radius: 6px; cursor: pointer; font-size: 12px; margin-right: 4px; }
.inv-ops button:hover, .inv-table button:hover { border-color: var(--primary, #175cd3); color: var(--primary, #175cd3); }
.inv-flag { display: inline-block; padding: 1px 7px; border-radius: 999px; font-size: 11px; background: #eef4ff; color: #175cd3; margin-right: 4px; }
.inv-flag-negative_stock { background: #fef3f2; color: #d92d20; }
.inv-flag-duplicate_sku { background: #fffaeb; color: #b54708; }
.inv-flag-blank_sku { background: #f2f4f7; color: #667085; }
.inv-review { padding: 1px 8px; border-radius: 999px; font-size: 12px; }
.inv-review-pending { background: #fffaeb; color: #b54708; }
.inv-review-reviewed { background: #ecfdf3; color: #1a7f37; }
.inv-review-exception { background: #fef3f2; color: #d92d20; }
.inv-sensitive { cursor: pointer; border-bottom: 1px dashed #98a2b3; padding: 0 2px; }
.inv-sensitive.inv-masked { color: var(--muted, #667085); cursor: default; border-bottom: none; }
.inv-sensitive.inv-shown { color: #b54708; font-weight: 600; }
.inv-perms { display: flex; gap: 8px; flex-wrap: wrap; }
.inv-perm { padding: 3px 10px; border-radius: 999px; font-size: 12px; background: #f2f4f7; color: #667085; }
.inv-perm.on { background: #ecfdf3; color: #1a7f37; }
.inv-pager { display: flex; align-items: center; gap: 12px; justify-content: flex-end; color: var(--muted, #667085); font-size: 13px; }
.inv-pager button { padding: 5px 12px; border: 1px solid var(--border, #d0d5dd); background: #fff; border-radius: 6px; cursor: pointer; }
.inv-pager button:disabled { opacity: 0.5; cursor: default; }
.inv-matchbox { position: relative; }
.inv-match-drop { position: absolute; top: calc(100% + 4px); left: 0; min-width: 420px; max-width: 92vw; max-height: 340px; overflow-y: auto; background: #fff; border: 1px solid var(--border, #d0d5dd); border-radius: 10px; box-shadow: 0 8px 24px rgba(16, 24, 40, 0.14); z-index: 40; }
.inv-match-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 12px; cursor: pointer; }
.inv-match-row:hover { background: #f9fafb; }
.inv-match-main { display: flex; flex-direction: column; gap: 2px; }
.inv-match-side { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; color: var(--muted, #667085); font-size: 12px; white-space: nowrap; }
.inv-match-field { color: #175cd3; }
.inv-match-empty { padding: 12px; color: var(--muted, #667085); font-size: 13px; }
.inv-subtabs { display: flex; gap: 4px; }
.inv-subtab { padding: 6px 12px; border: 1px solid var(--border, #d0d5dd); background: #fff; border-radius: 7px; cursor: pointer; font-size: 13px; }
.inv-subtab.active { background: #eef4ff; border-color: #175cd3; color: #175cd3; }
.inv-store-list { display: flex; flex-direction: column; gap: 10px; }
.inv-store-item { border: 1px solid var(--border, #eaecf0); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; }
.inv-warehouses { display: flex; gap: 6px; flex-wrap: wrap; }
.inv-warehouse { padding: 2px 10px; background: #f2f4f7; border-radius: 999px; font-size: 12px; color: #475467; }
.inv-workbench { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.inv-wb-step { display: flex; flex-direction: column; gap: 8px; }
.inv-wb-step label { font-size: 13px; color: var(--muted, #667085); font-weight: 600; }
.inv-wb-selected { padding: 8px 10px; background: #f9fafb; border: 1px dashed var(--border, #d0d5dd); border-radius: 8px; font-size: 13px; }
.inv-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 12px; }
.inv-modal { position: fixed; inset: 0; background: rgba(16, 24, 40, 0.45); display: flex; align-items: flex-start; justify-content: center; padding: 40px 16px; z-index: 60; overflow-y: auto; }
.inv-modal.hidden { display: none; }
.inv-modal-panel { background: #fff; border-radius: 14px; width: min(860px, 96vw); padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; }
.inv-modal-head { display: flex; align-items: center; justify-content: space-between; }
.inv-modal-head h3 { margin: 0; }
.inv-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 14px; }
.inv-form-row { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.inv-form-row span { color: var(--muted, #667085); }
.inv-form-row input, .inv-form-row select, .inv-form-row textarea { padding: 8px 10px; border: 1px solid var(--border, #d0d5dd); border-radius: 8px; font-size: 14px; font-family: inherit; }
.inv-form-check { flex-direction: row; align-items: center; gap: 8px; }
.inv-form-full { grid-column: 1 / -1; }
.inv-form-actions { grid-column: 1 / -1; display: flex; gap: 8px; justify-content: flex-end; }
@media (max-width: 720px) {
  .inv-match-drop { min-width: 0; width: calc(100vw - 48px); }
  .inv-input { min-width: 0; flex: 1; }
}

/* ===== 阶段 2：单据引擎与表格录入（交互基线=已验收原型 sales-doc-entry.html） ===== */
.inv-doc-top{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.inv-doc-top h3{font-size:16px;margin:0;}
.inv-doc-no{color:var(--sub,#6b7787);font-size:13px;}
.inv-save-state{margin-left:auto;font-size:12px;background:#eef1f5;border-radius:12px;padding:4px 12px;color:#1f2733;}
.inv-doc-banner{background:#fdecea;border:1px solid #f5c6c0;border-radius:8px;padding:8px 14px;margin-bottom:12px;font-size:13px;color:#c0392b;}
.inv-card{background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:14px 16px;margin-bottom:14px;}
.inv-doc-hdr{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr 1.2fr;gap:12px;align-items:end;}
.inv-fld label{display:block;font-size:12px;color:#6b7787;margin-bottom:4px;}
.inv-fld input,.inv-fld select{width:100%;border:1px solid #e3e8ef;border-radius:6px;padding:7px 10px;font-size:14px;background:#fff;}
.inv-fld input:focus,.inv-fld select:focus{outline:2px solid #b7dcc4;border-color:#1a6b3c;}
.inv-fld input:disabled,.inv-fld select:disabled{background:#f4f6f9;color:#6b7787;}
.inv-cust-meta{font-size:12px;color:#6b7787;margin-top:4px;min-height:16px;}
.inv-cust-meta b{color:#1a6b3c;}
.inv-dd{position:absolute;background:#fff;border:1px solid #e3e8ef;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:60;max-height:280px;overflow:auto;min-width:340px;}
.inv-dd-item{padding:7px 12px;cursor:pointer;display:flex;gap:10px;align-items:baseline;}
.inv-dd-item:hover,.inv-dd-item.hot{background:#e8f4ec;}
.inv-dd-item .nm{font-weight:600;}
.inv-dd-item .hint{font-size:12px;color:#6b7787;}
.inv-dd-item .st{margin-left:auto;font-size:12px;color:#6b7787;}
.inv-dd-item .st.low{color:#c0392b;font-weight:600;}
table.inv-grid{width:100%;border-collapse:collapse;}
table.inv-grid th{background:#f0f3f7;font-size:12px;color:#6b7787;font-weight:600;padding:8px 6px;border:1px solid #e3e8ef;text-align:left;white-space:nowrap;}
table.inv-grid td{border:1px solid #e3e8ef;padding:0;background:#fff;vertical-align:middle;}
table.inv-grid td input{width:100%;border:none;padding:8px 6px;font-size:14px;background:transparent;}
table.inv-grid td input:focus{outline:2px solid #b7dcc4;outline-offset:-2px;background:#f4fbf6;}
table.inv-grid td input:disabled{color:#1f2733;}
table.inv-grid td.ro{padding:8px 6px;color:#6b7787;font-size:13px;white-space:nowrap;}
table.inv-grid tr.inv-row-ph td{background:#fffbe8;}
.inv-grid .num{text-align:right;}
.inv-grid-foot{display:flex;gap:10px;margin-top:10px;align-items:center;flex-wrap:wrap;}
.inv-kbd-hint{font-size:12px;color:#6b7787;margin-left:auto;}
.inv-kbd-hint kbd{background:#eef1f5;border:1px solid #e3e8ef;border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:11px;font-family:inherit;}
.inv-pbadge{display:inline-block;font-size:10px;line-height:1;padding:2px 6px;border-radius:8px;color:#fff;margin-left:4px;cursor:pointer;vertical-align:middle;}
.inv-pb-last{background:#1a6b3c;}.inv-pb-special{background:#7c3aed;}.inv-pb-level{background:#0369a1;}.inv-pb-manual{background:#b45309;}
.inv-stk.low,.stk.low{color:#c0392b;font-weight:700;}
.profit-cell.neg .inv-sensitive{color:#c0392b;}
.inv-row-del{color:#6b7787;cursor:pointer;text-align:center;width:34px;}
.inv-row-del:hover{color:#c0392b;}
.inv-hist-pop{position:absolute;background:#fff;border:1px solid #e3e8ef;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);padding:10px 14px;z-index:80;font-size:12px;min-width:260px;}
.inv-hist-pop table{width:100%;border-collapse:collapse;margin-top:6px;}
.inv-hist-pop td,.inv-hist-pop th{padding:3px 6px;border-bottom:1px solid #e3e8ef;text-align:right;}
.inv-doc-settle{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;align-items:end;}
.inv-doc-settle .inv-big{font-size:20px;font-weight:700;color:#1a6b3c;text-align:right;padding:6px 0;}
.inv-doc-settle .inv-owed{color:#c0392b;}
.inv-doc-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px;}
.inv-btn{border:1px solid #e3e8ef;background:#fff;border-radius:6px;padding:6px 14px;cursor:pointer;font-size:13px;}
.inv-btn:hover{background:#f0f3f7;}
.inv-btn-primary{background:#1a6b3c;color:#fff;border-color:#1a6b3c;}
.inv-btn-primary:hover{background:#14532d;}
.inv-btn-danger{background:#c0392b;color:#fff;border-color:#c0392b;}
.inv-status{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;}
.inv-st-draft{background:#eef1f5;color:#6b7787;}
.inv-st-posted{background:#e8f4ec;color:#1a6b3c;}
.inv-st-void{background:#fdecea;color:#c0392b;}
.inv-sub{font-size:12px;color:#6b7787;}
.inv-empty{text-align:center;color:#6b7787;padding:18px;}

.inv-price-td{display:flex;align-items:center;}
.inv-price-td input{flex:1 1 auto;min-width:64px;width:auto;}

/* ===== 阶段 3：采购池 ===== */
.inv-card-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.inv-card-head h3 { margin: 0; font-size: 15px; }
.inv-restock-gap { color: #b42318; }
.inv-btn-sm { padding: 3px 10px; font-size: 12px; }
#inv-restock-table .inv-card, .inv-card:has(.inv-table-wrap) { cursor: default; }


/* ===== D36 业务域面包屑 + 单据列表统一模板（2026-07-31） ===== */
.inv-crumb { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: #2c3a2e; }
.inv-crumb-home { text-decoration: none; font-size: 16px; padding: 2px 6px; border-radius: 6px; cursor: pointer; }
.inv-crumb-home:hover { background: #eef4e7; }
.inv-crumb-sep { color: #9aa89c; font-weight: 400; }

.inv-statusbar { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.inv-stab {
  border: 1px solid var(--border); background: #fff; border-radius: 18px;
  padding: 6px 14px; cursor: pointer; font-size: 13px; display: inline-flex; align-items: center; gap: 6px;
}
.inv-stab:hover { border-color: var(--green-dark); }
.inv-stab.active { background: var(--green-dark); color: #fff; border-color: var(--green-dark); font-weight: 700; }
.inv-stab-n {
  min-width: 20px; text-align: center; background: #eef2ea; color: #2c3a2e;
  border-radius: 10px; font-size: 12px; padding: 1px 6px;
}
.inv-stab.active .inv-stab-n { background: rgba(255, 255, 255, 0.25); color: #fff; }

.inv-quickdates { display: inline-flex; gap: 2px; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.inv-quickdates button { border: 0; background: #fff; padding: 7px 12px; cursor: pointer; font-size: 13px; }
.inv-quickdates button + button { border-left: 1px solid var(--border); }
.inv-quickdates button:hover { background: #eef4e7; }
.inv-quickdates button.on { background: var(--green-dark); color: #fff; font-weight: 700; }

.inv-advpanel {
  display: flex; gap: 14px; align-items: center; flex-wrap: wrap;
  border: 1px dashed var(--border); border-radius: 8px; padding: 10px 12px; margin-bottom: 10px;
  background: #fafcf7; font-size: 13px;
}
.inv-advpanel.hidden { display: none; }
.inv-advpanel label { display: inline-flex; align-items: center; gap: 6px; }
.inv-advpanel input[type="date"] { padding: 5px 8px; border: 1px solid var(--border); border-radius: 6px; }

/* ===== 2026-08-28 销售单增强：富商品下拉 / 结算窗口 / 待审批 / 目录树 / 行备注金额 ===== */
.inv-prod-wrap { display: flex; gap: 4px; align-items: center; }
.inv-prod-wrap .in-prod { flex: 1; min-width: 0; }
.inv-cat-btn { flex: none; font-size: 11px; padding: 3px 8px; border: 1px solid #9db8a8; border-radius: 6px; background: #f0f6f2; color: #1a6b3c; cursor: pointer; }
.inv-cat-btn:hover { background: #e2efe7; }
.inv-cat-btn:disabled { opacity: .4; cursor: default; }
.inv-dd-item.inv-dd-rich { display: flex; gap: 10px; align-items: center; padding: 8px 10px; }
.inv-dd-thumb { width: 44px; height: 44px; object-fit: cover; border-radius: 6px; border: 1px solid var(--border, #dde3da); flex: none; background: #f4f6f4; }
.inv-dd-thumb.inv-thumb-miss, .inv-thumb-none { display: flex; align-items: center; justify-content: center; font-size: 10px; color: #9aa59e; }
.inv-dd-rich .inv-dd-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.inv-dd-rich .inv-dd-main .nm { font-weight: 600; }
.inv-deal-hint { font-size: 11px; color: #1a6b3c; margin-top: 2px; min-height: 13px; }
.in-amt { width: 100%; text-align: right; }
.in-remark { width: 100%; font-size: 12px; }
.inv-st-pending { background: #fff3e0; color: #b26a00; border: 1px solid #f0c27a; font-weight: 700; }
.inv-settle-ov { position: fixed; inset: 0; background: rgba(10, 25, 18, .55); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.inv-settle-box { background: #fff; color: #21312a; border-radius: 12px; padding: 20px 22px; width: min(680px, 96vw); max-height: 88vh; overflow: auto; box-shadow: 0 18px 60px rgba(0,0,0,.35); }
.inv-settle-box h3 { margin: 0 0 10px; }
.inv-settle-due { font-size: 15px; margin-bottom: 10px; }
.inv-settle-due b { font-size: 22px; color: #1a6b3c; }
.inv-settle-approve { background: #fff3e0; border: 2px solid #e8a33c; color: #7a4a00; border-radius: 10px; padding: 10px 12px; margin: 8px 0 12px; font-size: 13px; line-height: 1.6; }
.inv-settle-approve b { color: #c0392b; }
.inv-settle-rows { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.inv-settle-row { display: grid; grid-template-columns: 1fr 140px 30px; gap: 8px; align-items: center; }
.inv-settle-row select, .inv-settle-row input { padding: 8px; border: 1px solid #cfd8d2; border-radius: 8px; }
.inv-settle-row .st-del { border: none; background: #fdecea; color: #c0392b; border-radius: 6px; height: 34px; cursor: pointer; }
.inv-settle-sum { margin: 10px 0; font-size: 14px; }
.inv-settle-sum b { font-size: 20px; }
.inv-settle-sum .ok { color: #1a6b3c; margin-left: 8px; }
.inv-settle-sum .warn { color: #b26a00; margin-left: 8px; }
.inv-settle-actions { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.inv-catalog-box { width: min(860px, 96vw); }
.inv-catalog-body { margin: 10px 0; }
.inv-cat-model, .inv-cat-manual { border: 1px solid #e0e7e2; border-radius: 10px; padding: 8px 12px; margin-bottom: 8px; }
.inv-cat-model > summary, .inv-cat-manual > summary { cursor: pointer; font-size: 14px; padding: 4px 0; user-select: none; }
.inv-cat-drawings { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 8px; }
.inv-cat-drawing { border: 1px solid #e0e7e2; border-radius: 10px; padding: 8px; cursor: zoom-in; text-align: center; }
.inv-cat-drawing:hover { border-color: #1a6b3c; box-shadow: 0 4px 14px rgba(26,107,60,.15); }
.inv-cat-drawing img { width: 100%; height: 110px; object-fit: contain; }
.inv-cat-drawing .t { font-size: 12px; margin-top: 6px; word-break: break-all; }

/* 2026-08-28 需求4：商品详情按钮 + 详情弹窗 */
.inv-det-btn { flex: none; font-size: 11px; padding: 3px 8px; border: 1px solid #c9a86a; border-radius: 6px; background: #fbf6ea; color: #8a6a2a; cursor: pointer; }
.inv-det-btn:hover { background: #f5ecd6; }
.inv-det-btn:disabled { opacity: .4; cursor: default; }
.inv-pdetail table { width: 100%; border-collapse: collapse; font-size: 13px; }
.inv-pdetail th { text-align: left; color: #7a8a80; font-weight: 500; padding: 6px 10px; border-bottom: 1px solid #eef1ee; white-space: nowrap; width: 110px; }
.inv-pdetail td { padding: 6px 10px; border-bottom: 1px solid #eef1ee; word-break: break-all; }

/* 2026-08-28 需求2：图纸卡片标记号 + 大图热点定位 */
.inv-label-chip { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 8px; background: #fff3e0; color: #b26a00; border: 1px solid #f0c27a; margin-top: 4px; }
.inv-drawing-box { width: min(1200px, 96vw); }
.inv-drawing-stage { position: relative; margin-top: 8px; overflow: auto; max-height: 66vh; background: #f5f7f5; border-radius: 10px; }
.inv-drawing-stage img { max-width: 100%; display: block; }
.inv-drawing-pin { position: absolute; transform: translate(-50%, -100%); display: flex; flex-direction: column; align-items: center; gap: 2px; pointer-events: none; }
.inv-drawing-pin .pin-dot { width: 16px; height: 16px; border-radius: 50%; background: #e63946; border: 2px solid #fff; box-shadow: 0 0 0 2px rgba(230,57,70,.5), 0 2px 6px rgba(0,0,0,.3); }
.inv-drawing-pin b { background: #e63946; color: #fff; font-size: 11px; padding: 1px 7px; border-radius: 8px; box-shadow: 0 1px 4px rgba(0,0,0,.25); }

/* 2026-08-28 流程改造：收付款单未结单据批量核销面板 */
.inv-outstanding { margin-top: 12px; border: 1px solid #d8e2da; border-radius: 10px; padding: 10px 12px; background: #fbfdfc; }
.inv-out-head { font-size: 14px; margin-bottom: 8px; }
.inv-out-head b { color: #1a6b3c; }
.inv-out-head .inv-sub { margin-left: 8px; }
.inv-out-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.inv-out-table th, .inv-out-table td { padding: 6px 8px; border-bottom: 1px solid #eef1ee; text-align: left; }
.inv-out-table .num { text-align: right; }
.inv-out-table input[type="number"] { width: 100%; padding: 5px 8px; border: 1px solid #cfd8d2; border-radius: 6px; box-sizing: border-box; }
.inv-out-foot { margin-top: 8px; font-size: 13px; color: #6b7a70; }
.inv-out-foot b { color: #1a6b3c; font-size: 15px; }
.inv-out-foot #inv-out-warn { color: #b26a00; margin-left: 8px; }

/* 2026-08-28 列表快速预览：底部上滑抽屉 + 横排紧凑布局 */
.inv-drawer-ov { position: fixed; inset: 0; background: rgba(10, 25, 18, .5); z-index: 1050; display: flex; align-items: flex-end; justify-content: center; }
.inv-drawer { width: min(1100px, 100vw); max-height: 82vh; background: #fff; color: #21312a; border-radius: 14px 14px 0 0; box-shadow: 0 -10px 50px rgba(0,0,0,.3); display: flex; flex-direction: column; transform: translateY(100%); transition: transform .24s ease; }
.inv-drawer-ov.show .inv-drawer { transform: translateY(0); }
.inv-drawer-head { display: flex; align-items: center; gap: 12px; padding: 12px 18px; border-bottom: 1px solid #e8ede9; flex-wrap: wrap; }
.inv-drawer-title { display: flex; align-items: center; gap: 10px; font-size: 15px; }
.inv-drawer-title b { font-size: 16px; }
.inv-drawer-amount { margin-left: auto; font-size: 14px; color: #1a6b3c; font-weight: 600; }
.inv-drawer-head .icon-button { margin-left: 4px; }
.inv-drawer-body { padding: 12px 18px 4px; overflow: auto; }
.inv-drawer-sec { font-size: 13px; font-weight: 700; color: #1a6b3c; margin: 10px 0 6px; border-left: 3px solid #1a6b3c; padding-left: 8px; }
.inv-drawer-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 6px 14px; }
.inv-drw-item { display: flex; gap: 6px; font-size: 12.5px; min-width: 0; }
.inv-drw-item label { color: #7a8a80; flex: none; }
.inv-drw-item span { color: #21312a; word-break: break-all; }
.inv-drw-item.inv-drw-wide { grid-column: 1 / -1; }
.inv-drawer-totals { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 6px 14px; padding-bottom: 8px; }
.inv-drw-total { display: flex; gap: 6px; font-size: 13px; align-items: baseline; }
.inv-drw-total label { color: #7a8a80; }
.inv-drw-total b { color: #c0392b; font-weight: 700; }
.inv-drawer-actions { display: flex; gap: 10px; padding: 12px 18px 16px; border-top: 1px solid #e8ede9; flex-wrap: wrap; }
.inv-drawer-actions .inv-btn, .inv-drawer-actions button { margin: 0; }
