/* 人工验收局部修复，保留既有页面结构。 */
/* 测算详情统一规则：两个页签共用同一滚动、对齐和边界契约。 */
#app .project-workbench .dialog-interactive-modal[data-dialog-stable="true"] .dialog-table-flow {
  align-self: stretch !important;
  width: 100% !important;
  min-width: 0;
}
#app .project-workbench .dialog-interactive-modal[data-dialog-stable="true"] [hidden] {
  display: none !important;
}
#app .project-workbench .dialog-interactive-modal[data-dialog-stable="true"] .dialog-table-scroll {
  flex: 0 1 auto !important;
  width: 100% !important;
  min-width: 0;
  min-height: 0;
  overflow: auto !important;
  scrollbar-gutter: stable;
}
#app .project-workbench .dialog-interactive-modal[data-dialog-stable="true"] table td.cell-formula {
  text-align: left !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}
#app .project-workbench .dialog-interactive-modal[data-dialog-stable="true"] table td.cell-formula > .cell-two-line {
  display: block !important;
  text-align: left !important;
  white-space: normal !important;
  overflow: visible !important;
  -webkit-line-clamp: unset;
}
#app .project-workbench .dialog-interactive-modal[data-dialog-stable="true"] table tbody > tr:last-child > :is(td, th) {
  border-bottom: 1px solid #c9d5e2 !important;
}
#app .project-workbench .input,
#app .project-workbench select.input option,
#app .project-workbench .searchable-reference-options button,
#app .project-workbench .searchable-reference-options > span,
.record-detail-dialog .input,
.dialog-interactive-modal .input,
.dialog-interactive-modal select.input option,
.dialog-interactive-modal .searchable-reference-options button {
  font-family: inherit;
  font-size: 14px !important;
}
#app .project-workbench .dialog-interactive-content {
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
}
#app .project-workbench .tax-registration-modal {
  height: min(680px, calc(100vh - 96px));
  min-height: 260px;
}
#app .project-workbench.tax-summary-page .tax-registration-modal .dialog-interactive-content {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden !important;
}
#app .project-workbench .tax-registration-modal-head,
#app .project-workbench .tax-registration-modal-foot,
#app .project-workbench .tax-registration-dialog-note {
  flex: 0 0 auto;
}
#app .project-workbench.tax-summary-page .tax-registration-modal .business-record-table {
  flex: 1 1 0;
  min-height: 0;
  max-height: none !important;
  overflow: auto !important;
  overscroll-behavior: contain;
}
#app .project-workbench.tax-summary-page .tax-registration-modal .business-record-table table {
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
#app .project-workbench.tax-summary-page .tax-registration-modal .business-record-table thead th {
  position: sticky !important;
  top: 0 !important;
  right: auto !important;
  z-index: 10 !important;
  background: #f1f5fb !important;
  background-clip: border-box;
}
#app .project-workbench.tax-summary-page .tax-registration-modal .business-record-table tbody td:last-child {
  position: static !important;
  right: auto !important;
  z-index: auto !important;
}
#app .project-workbench.upstream-settlement-page td.cell-center.business-cell-two-lines {
  text-align: center !important;
  vertical-align: middle !important;
}
#app .project-workbench.upstream-settlement-page td.cell-center.business-cell-two-lines > span {
  display: block;
  margin-inline: auto;
  text-align: center !important;
}
#app .project-workbench .business-amount-context,
#app .project-workbench .tax-live-formulas {
  margin: 12px 20px;
  padding: 12px 14px;
  border: 1px solid #dce5ef;
  border-radius: 6px;
  background: #f7faff;
  color: #40546d;
  font-size: 13px;
  line-height: 1.6;
}
#app .project-workbench .business-amount-context-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 16px;
}
#app .project-workbench .business-amount-context-grid span,
#app .project-workbench .business-amount-context-grid strong {
  display: block;
}
#app .project-workbench .business-amount-context-grid strong { font-size: 15px; font-weight: 500; }
#app .project-workbench .business-amount-context p,
#app .project-workbench .tax-live-formulas p { margin: 5px 0; overflow-wrap: anywhere; }
#app .project-workbench .tax-live-formulas { margin: 0 0 16px; }
#app .project-workbench .tax-live-formulas h3 { margin: 0 0 8px; font-size: 14px; font-weight: 500; }
#app .project-workbench .business-red-invoice { margin-left: 6px; color: #be3d3d; font-size: 12px; }
#app .project-workbench .invoice-ledger-metrics.invoice-simple-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#app .project-workbench .project-home-legend-title { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 10px; }
#app .project-workbench .project-home-legend-title > b { grid-area: 1 / 1; }
#app .project-workbench .project-home-legend-title > strong { grid-area: 1 / 2; white-space: nowrap; }
#app .project-workbench .project-home-legend-title small { grid-area: 2 / 1 / 3 / -1; font-size: 12px; color: #64748b; }
#app .project-workbench .project-change-search { gap: 14px; margin: 8px 0 14px; padding: 8px 14px; flex-wrap: wrap; }
#app .project-workbench .project-change-search-actions { gap: 12px; padding: 4px 2px; }
#app .project-workbench .project-change-search-actions .project-change-reset { padding: 0 12px; }
.project-change-dialog .project-change-detail-body th,
.project-change-dialog .project-change-detail-body td { padding: 6px 10px; line-height: 1.4; vertical-align: middle; }
@media (max-width: 620px) {
  #app .project-workbench .business-amount-context-grid { grid-template-columns: 1fr; }
}

/* 对上回款的备注与线下依据编号各占一列。 */
#app .project-workbench.upstream-receipt-page .receipt-entry-modal .form-grid > [data-business-field="remark"] {
  grid-column: auto !important;
}

/* 表单按内容适配；只有装不下的内容或长表格需要滚动。 */
#app .project-workbench .dialog-interactive-modal[data-dialog-layout="form"] > .dialog-interactive-content {
  overflow-x: hidden !important;
  overflow-y: hidden !important;
}
#app .project-workbench .dialog-interactive-modal[data-dialog-layout="form"][data-dialog-overflow="true"] > .dialog-interactive-content {
  overflow-y: auto !important;
  overscroll-behavior: contain;
}
#app .project-workbench .dialog-interactive-modal[data-dialog-layout="form"][data-dialog-overflow="true"] .dialog-interactive-head {
  position: sticky;
  top: 0;
  z-index: 12;
  background: #fff;
}
#app .project-workbench .dialog-interactive-modal[data-dialog-layout="form"][data-dialog-overflow="true"] :is(.form-actions, .invoice-entry-modal-foot, .receipt-entry-modal-foot, .settlement-entry-modal-foot) {
  position: sticky;
  bottom: 0;
  z-index: 11;
  background: #fff;
  box-shadow: 0 -1px 0 #e3eaf3;
}
#app .project-workbench .dialog-interactive-modal[data-dialog-layout="table"] > .dialog-interactive-content,
#app .project-workbench .dialog-interactive-modal .dialog-table-flow {
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
#app .project-workbench .dialog-interactive-modal .dialog-table-flow {
  flex: 1 1 auto !important;
  max-height: none !important;
}
#app .project-workbench .dialog-interactive-modal[data-dialog-layout="table"] > .dialog-interactive-content > :not(.dialog-table-flow):not(.dialog-table-scroll),
#app .project-workbench .dialog-interactive-modal .dialog-table-flow > :not(.dialog-table-flow):not(.dialog-table-scroll) {
  flex: 0 0 auto;
}
#app .project-workbench .dialog-interactive-modal .dialog-table-scroll {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: auto !important;
  overscroll-behavior: contain;
}
#app .project-workbench .dialog-interactive-modal .dialog-table-scroll table {
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
#app .project-workbench .dialog-interactive-modal .dialog-table-scroll thead th {
  position: sticky !important;
  right: auto !important;
  z-index: 10 !important;
  background: #f1f5fb !important;
  background-clip: border-box;
}
#app .project-workbench .dialog-interactive-modal .dialog-table-scroll tbody td:last-child {
  position: static !important;
  right: auto !important;
}
#app .project-workbench :is(.tax-vat-table, .tax-income-table, .tax-surcharge-table) .tax-formula-cell {
  min-width: 180px;
  max-width: 340px;
  white-space: normal !important;
  overflow-wrap: anywhere;
  line-height: 1.6;
  text-align: left;
}

/* 公式列按表头统一识别，避免默认居中规则覆盖；只改变显示。 */
#app .project-workbench table td.cell-formula,
#app .project-workbench table td.tax-formula-cell,
#app .simulation-modal table td.cell-formula {
  text-align: left !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  line-height: 1.6;
}
#app .downstream-invoice-page .invoice-simple-metrics,
#app .downstream-ledger-page .invoice-simple-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
@media (max-width: 900px) {
  #app .downstream-invoice-page .invoice-simple-metrics,
  #app .downstream-ledger-page .invoice-simple-metrics {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
