/*
 * 按“对下合同”台账统一项目内页面的基础排版。
 * 这里只处理视觉层，不改变页面数据、接口和业务计算。
 */

:root {
  --reference-bg: #f6f8fc;
  --reference-surface: #fff;
  --reference-line: #dbe5f2;
  --reference-soft-line: #e4e9f2;
  --reference-head: #f1f5fb;
  --reference-text: #171b24;
  --reference-muted: #7c8798;
  --reference-primary: #1769e8;
  --reference-shadow: 0 4px 16px #1949800d;
}

/* 全软件右侧正文使用同一底色；顶部路径栏由各页面原有规则单独控制。 */
#app .project-workbench > .project-main,
#app .project-workbench > .project-main > .project-workspace,
#app .workbench.v5-global-shell > .work-main,
#app .workbench.v5-global-shell > .work-main > .workspace {
  background: #fff !important;
}

/* 项目内页面的公共壳层 */
#app .project-workbench.project-module-page,
#app .project-workbench.project-home-standard-page {
  background: var(--reference-bg);
  color: var(--reference-text);
  font-family: "Microsoft YaHei", "Segoe UI", sans-serif;
}

#app .project-workbench.project-module-page .project-side,
#app .project-workbench.project-home-standard-page .project-side {
  width: 276px;
  min-width: 276px;
  background: linear-gradient(180deg, #163e98, #0f57b8);
  box-shadow: none;
}

#app .project-workbench.project-module-page .project-top,
#app .project-workbench.project-home-standard-page .project-top {
  height: 66px;
  min-height: 66px;
  padding: 0 38px;
  border-bottom: 1px solid var(--reference-soft-line);
  background: var(--reference-bg);
  color: var(--reference-muted);
  box-shadow: none;
}

#app .project-workbench.project-module-page .project-top .project-page-trail,
#app .project-workbench.project-home-standard-page .project-top .project-page-trail {
  min-height: 66px;
  max-width: calc(100% - 260px);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--reference-muted);
  font-size: 14px;
}

#app .project-workbench.project-module-page .project-page-trail button,
#app .project-workbench.project-module-page .project-page-trail span,
#app .project-workbench.project-home-standard-page .project-page-trail button,
#app .project-workbench.project-home-standard-page .project-page-trail span {
  max-width: 360px;
  overflow: hidden;
  color: var(--reference-muted);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#app .project-workbench.project-module-page .project-page-trail i,
#app .project-workbench.project-home-standard-page .project-page-trail i {
  margin: 0 9px;
  color: #bbc4d1;
}

#app .project-workbench.project-module-page .project-top-return,
#app .project-workbench.project-module-page .back-projects,
#app .project-workbench.project-home-standard-page .project-top-return {
  color: #245ca4;
  font-size: 14px;
}

#app .project-workbench.project-module-page .project-workspace,
#app .project-workbench.project-home-standard-page .project-workspace {
  padding: 0 38px 52px;
}

#app .project-workbench.project-module-page .project-context.compact {
  margin: 27px 0 18px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#app .project-workbench.project-module-page .project-context.compact h1,
#app .project-workbench.project-home-standard-page .project-home-context h1 {
  margin: 0 0 8px;
  color: var(--reference-text);
  font-size: 27px;
  line-height: 1.25;
}

#app .project-workbench.project-module-page .project-context-meta,
#app .project-workbench.project-home-standard-page .project-context-meta {
  gap: 18px;
  color: var(--reference-muted);
  font-size: 13px;
}

#app .project-workbench.project-module-page .business-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 20px;
  padding: 0;
  border: 0;
  background: transparent;
}

#app .project-workbench.project-module-page .business-tabs > .btn,
#app .project-workbench.project-module-page .planning-standard-shell > .business-tabs > .btn {
  height: 34px;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid #d8e0eb;
  border-radius: 5px;
  background: #fff;
  color: #425168;
  font-size: 13px;
  font-weight: 400;
  box-shadow: none;
}

#app .project-workbench.project-module-page .business-tabs > .btn.active {
  border-color: #1769e8;
  background: linear-gradient(180deg, #163e98, #0f57b8);
  color: #fff;
}

/* 台账型卡片：与对下合同的分卡、圆角和图文层次保持一致。 */
#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) .invoice-ledger-metrics,
#app .project-workbench:is(.tax-vat-page, .tax-surcharge-page, .tax-income-page, .tax-burden-page) .contract-ledger-metrics {
  display: grid !important;
  gap: 10px !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#app .project-workbench:is(
  .management-fee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .project-balance-page
) .invoice-ledger-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

#app .project-workbench:is(.guarantee-page, .tax-vat-page, .tax-surcharge-page, .tax-income-page, .tax-burden-page) :is(.invoice-ledger-metrics, .contract-ledger-metrics) {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article {
  box-sizing: border-box;
  min-width: 0;
  min-height: 104px !important;
  padding: 12px 14px 12px 20px !important;
  border: 1px solid var(--reference-line) !important;
  border-radius: 10px !important;
  background: var(--reference-surface) !important;
  box-shadow: var(--reference-shadow) !important;
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:not(:has(.v5-metric-icon)) {
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  align-items: start;
  column-gap: 12px;
  row-gap: 5px;
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:has(.v5-metric-icon) {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 12px;
}

/* 所有带图标的统计卡片共用“标题—数值—说明”的纵向间距；不改变图标外框的顶部定位。 */
#app .project-workbench :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:has(.v5-metric-icon) > div {
  display: grid !important;
  min-width: 0;
  gap: 8px !important;
  padding-top: 3px !important;
}

/* Unified metric-card icon centering. */
#app .project-workbench .v5-metric-icon.v5-metric-nav-icon,
#app .project-workbench .hcr-metric-with-icon > .hcr-overview-icon,
#app .project-workbench :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:not(:has(.v5-metric-icon))::before {
  display: grid !important;
  align-self: flex-start !important;
  place-items: center !important;
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:not(:has(.v5-metric-icon))::before {
  grid-column: 1;
  grid-row: 1 / 4;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
  background: #eaf2ff;
  color: #1769e8;
  content: "¥";
  font-size: 17px;
  font-weight: 700;
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:nth-child(2):not(:has(.v5-metric-icon))::before {
  background: #e8f8f2;
  color: #0e9b72;
  content: "▤";
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:nth-child(3):not(:has(.v5-metric-icon))::before {
  background: #fff0e2;
  color: #ef7615;
  content: "▣";
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:nth-child(4):not(:has(.v5-metric-icon))::before {
  background: #f0eaff;
  color: #7653d6;
  content: "≡";
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article > span,
#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article > div > span,
#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article > small,
#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article > div > small {
  overflow: hidden;
  color: var(--reference-muted);
  font-size: 12px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:not(:has(.v5-metric-icon)) > span { grid-column: 2; grid-row: 1; }

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:not(:has(.v5-metric-icon)) > strong { grid-column: 2; grid-row: 2; }

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article:not(:has(.v5-metric-icon)) > small { grid-column: 2; grid-row: 3; }

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article > strong,
#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) :is(.invoice-ledger-metrics, .contract-ledger-metrics) article > div > strong {
  margin: 0;
  color: #1f5fa9;
  font-size: 23px;
  line-height: 1.1;
  letter-spacing: .2px;
  white-space: nowrap;
}

/* 筛选区、表格和详情卡统一为一体化台账容器。 */
#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .project-balance-page,
  .tax-burden-page
) .tax-prepayment-panel {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .project-balance-page
) .tax-prepayment-ledger {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 292px;
  gap: 20px;
  align-items: start;
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .project-balance-page
) .invoice-ledger-main {
  display: grid;
  min-width: 0;
  gap: 16px;
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .project-balance-page
) .business-live-ledger,
#app .project-workbench:is(.tax-summary-page, .tax-vat-page, .tax-surcharge-page, .tax-income-page, .tax-burden-page) :is(.tax-summary-ledger, .business-live-ledger) {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--reference-line);
  border-radius: 10px;
  background: var(--reference-surface);
  box-shadow: var(--reference-shadow);
}

#app .project-workbench.project-module-page :is(.invoice-table-toolbar, .ledger-prototype-toolbar, .table-titlebar) {
  min-height: 58px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--reference-soft-line);
  background: #fff;
}

#app .project-workbench.project-module-page :is(.invoice-filter-lite, .ledger-prototype-filter, .invoice-table-actions, .ledger-prototype-actions) {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

#app .project-workbench.project-module-page :is(.invoice-filter-lite, .ledger-prototype-filter) .input {
  height: 32px;
  min-height: 32px;
  padding: 0 9px;
  border: 1px solid #d8e0eb;
  border-radius: 5px;
  background: #fff;
  color: #425168;
  font-size: 13px;
  box-shadow: none;
}

#app .project-workbench.project-module-page :is(.invoice-table-actions, .ledger-prototype-actions) .btn,
#app .project-workbench.project-module-page :is(.tax-prepayment-panel, .project-tax-panel) .btn {
  min-height: 34px;
  height: 34px;
  padding: 0 13px;
  border: 1px solid #d8e0eb;
  border-radius: 5px;
  background: #fff;
  color: #425168;
  font-size: 13px;
  font-weight: 400;
  box-shadow: none;
  white-space: nowrap;
}

#app .project-workbench.project-module-page :is(.invoice-table-actions, .ledger-prototype-actions) .btn.primary,
#app .project-workbench.project-module-page :is(.tax-prepayment-panel, .project-tax-panel) .btn.primary {
  border-color: transparent;
  background: linear-gradient(180deg, #163e98, #0f57b8);
  color: #fff;
}

/* 台账操作链接保持普通字重，合计行的加粗不受影响。 */
#app .project-workbench .business-row-actions .text-btn {
  font-weight: 400 !important;
}

#app .project-workbench:is(.tax-vat-page, .tax-surcharge-page, .tax-income-page) .tax-reference-table-wrap td:last-child .text-btn {
  font-weight: 400 !important;
}

#app .project-workbench.project-module-page :is(.business-record-table, .tax-summary-ledger, .project-tax-panel) table,
#app .project-workbench.project-module-page :is(.independent-payment-panel, .independent-calculation-panel, .planning-panel, .planning-reserve-panel) table {
  border-collapse: separate;
  border-spacing: 0;
}

#app .project-workbench.project-module-page :is(.business-record-table, .tax-summary-ledger, .project-tax-panel, .independent-payment-panel, .independent-calculation-panel, .planning-panel, .planning-reserve-panel) table thead th {
  box-sizing: border-box;
  padding: 12px 10px !important;
  background: var(--reference-head) !important;
  color: #3c4654 !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.35;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  border-top: 0;
  border-right: 1px solid #e5ebf3;
  border-bottom: 1px solid #dfe6f0;
  border-left: 0;
}

#app .project-workbench.project-module-page :is(.business-record-table, .tax-summary-ledger, .project-tax-panel, .independent-payment-panel, .independent-calculation-panel, .planning-panel, .planning-reserve-panel) table thead th:last-child {
  border-right: 0;
}

#app .project-workbench.project-module-page :is(.business-record-table, .tax-summary-ledger, .project-tax-panel, .independent-payment-panel, .independent-calculation-panel, .planning-panel, .planning-reserve-panel) table tbody td {
  padding: 13px 10px !important;
  color: var(--reference-text);
  font-size: 13px;
  line-height: 1.45;
  border-top: 1px solid #edf0f5;
  border-right: 1px solid #edf1f6;
  border-bottom: 0;
  border-left: 0;
}

#app .project-workbench.project-module-page :is(.business-record-table, .tax-summary-ledger, .project-tax-panel, .independent-payment-panel, .independent-calculation-panel, .planning-panel, .planning-reserve-panel) table tbody td:last-child {
  border-right: 0;
}

#app .project-workbench.project-module-page :is(.business-record-table, .tax-summary-ledger, .project-tax-panel, .independent-payment-panel, .independent-calculation-panel, .planning-panel, .planning-reserve-panel) table tfoot td {
  padding: 12px 10px !important;
  background: #eef5ff !important;
  color: var(--reference-text);
  border-top: 2px solid #afc8e9;
  border-right: 1px solid #edf1f6;
  border-bottom: 0;
}

/* 右侧详情不再被空白高度撑开，内容和操作按钮完整可见。 */
#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .project-balance-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .tax-burden-page
) :is(.invoice-record-detail, .contract-record-detail) {
  min-height: 0;
  height: auto;
  align-self: start;
  overflow: hidden;
  border: 1px solid var(--reference-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--reference-shadow);
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .project-balance-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .tax-burden-page
) :is(.invoice-detail-head, .contract-detail-head) {
  padding: 18px 19px 14px;
  border-bottom: 1px solid var(--reference-soft-line);
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .project-balance-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .tax-burden-page
) :is(.invoice-detail-body, .contract-detail-body) {
  display: flex;
  flex: 0 1 auto;
  min-height: 0;
  flex-direction: column;
  overflow: auto;
  padding: 0 19px 17px;
}

#app .project-workbench:is(
  .management-fee-page,
  .guarantee-page,
  .partner-transaction-page,
  .project-deduction-page,
  .positive-adjustment-page,
  .tax-prepayment-page,
  .project-balance-page,
  .tax-vat-page,
  .tax-surcharge-page,
  .tax-income-page,
  .tax-burden-page
) :is(.invoice-detail-actions, .contract-detail-actions) {
  flex: 0 0 auto;
  margin-top: 17px;
  padding-top: 16px;
  border-top: 1px solid var(--reference-soft-line);
}

/* 经营测算、清单策划和票税测算的多页内容沿用同一组卡片节奏。 */
#app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) .project-context.compact {
  margin-bottom: 18px;
}

#app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) :is(.overview-metrics, .independent-summary-metrics, .planning-metrics) {
  gap: 10px;
}

#app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) :is(.overview-metric, .planning-metrics .overview-metric) {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  min-height: 104px;
  padding: 12px 14px 12px 20px;
  column-gap: 12px;
  row-gap: 5px;
  border: 1px solid var(--reference-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--reference-shadow);
}

#app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) :is(.overview-metric, .planning-metrics .overview-metric)::before {
  grid-column: 1;
  grid-row: 1 / 4;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
  background: #eaf2ff;
  color: #1769e8;
  content: "¥";
  font-size: 17px;
  font-weight: 700;
}

#app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) :is(.overview-metric, .planning-metrics .overview-metric):nth-child(2)::before {
  background: #e8f8f2;
  color: #0e9b72;
  content: "▤";
}

#app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) :is(.overview-metric, .planning-metrics .overview-metric):nth-child(3)::before {
  background: #fff0e2;
  color: #ef7615;
  content: "▣";
}

#app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) :is(.overview-metric, .planning-metrics .overview-metric):nth-child(4)::before {
  background: #f0eaff;
  color: #7653d6;
  content: "≡";
}

#app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) :is(.overview-metric-label, .overview-metric strong, .overview-metric small) {
  grid-column: 2;
}

#app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) :is(.overview-metric-label, .overview-metric small) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) :is(.independent-payment-panel, .independent-calculation-panel, .planning-panel, .planning-reserve-panel) {
  overflow: hidden;
  border: 1px solid var(--reference-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--reference-shadow);
}

/* 项目概览、项目中心和系统设置沿用相同的卡片、表头和间距。 */
#app .project-workbench.project-home-standard-page .overview-metrics {
  gap: 10px;
}

#app .project-workbench.project-home-standard-page .overview-metric {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  min-height: 104px;
  padding: 12px 14px 12px 20px;
  column-gap: 12px;
  row-gap: 5px;
  border: 1px solid var(--reference-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--reference-shadow);
}

#app .project-workbench.project-home-standard-page .overview-metric::before {
  grid-column: 1;
  grid-row: 1 / 4;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
  background: #eaf2ff;
  color: #1769e8;
  content: "¥";
  font-size: 17px;
  font-weight: 700;
}

#app .project-workbench.project-home-standard-page .overview-metric:nth-child(2)::before {
  background: #e8f8f2;
  color: #0e9b72;
  content: "▤";
}

#app .project-workbench.project-home-standard-page .overview-metric:nth-child(3)::before {
  background: #fff0e2;
  color: #ef7615;
  content: "▣";
}

#app .project-workbench.project-home-standard-page .overview-metric:nth-child(4)::before {
  background: #f0eaff;
  color: #7653d6;
  content: "≡";
}

#app .project-workbench.project-home-standard-page .overview-metric:nth-child(5)::before {
  background: #e8f7fa;
  color: #167f9d;
  content: "◇";
}

#app .project-workbench.project-home-standard-page .overview-metric > :is(.overview-metric-label, strong, small) {
  grid-column: 2;
}

#app .workbench.project-list-standard-page .project-list-metrics {
  gap: 10px;
}

#app .workbench.project-list-standard-page :is(.project-list-ledger, .project-list-detail) {
  border-color: var(--reference-line);
  border-radius: 10px;
  box-shadow: var(--reference-shadow);
}

#app .workbench.project-list-standard-page .project-list-ledger table thead th,
#app .workbench.settings-standard-page .settings-panel table thead th {
  padding: 12px 10px;
  background: var(--reference-head);
  color: #3c4654;
  font-size: 13px;
  font-weight: 400;
}

#app .workbench.project-list-standard-page .project-list-ledger table tbody td,
#app .workbench.settings-standard-page .settings-panel table tbody td {
  padding: 13px 10px;
  font-size: 13px;
}

#app .workbench.settings-standard-page .settings-shell {
  border-color: var(--reference-line);
  box-shadow: var(--reference-shadow);
}

#app .workbench.settings-standard-page :is(.settings-list, .settings-editor, .settings-single) {
  border-color: var(--reference-line);
  box-shadow: var(--reference-shadow);
}

@media (max-width: 1500px) {
  #app .project-workbench:is(
    .management-fee-page,
    .guarantee-page,
    .partner-transaction-page,
    .project-deduction-page,
    .positive-adjustment-page,
    .tax-prepayment-page,
    .project-balance-page,
    .tax-vat-page,
    .tax-surcharge-page,
    .tax-income-page,
    .tax-burden-page
  ) .tax-prepayment-ledger {
    grid-template-columns: minmax(0, 1fr);
  }

  #app .project-workbench:is(
    .management-fee-page,
    .guarantee-page,
    .partner-transaction-page,
    .project-deduction-page,
    .positive-adjustment-page,
    .tax-prepayment-page,
    .project-balance-page,
    .tax-vat-page,
    .tax-surcharge-page,
    .tax-income-page,
    .tax-burden-page
  ) :is(.invoice-record-detail, .contract-record-detail) {
    display: none;
  }
}

@media (max-width: 1250px) {
  #app .project-workbench.project-module-page .project-top,
  #app .project-workbench.project-module-page .project-workspace,
  #app .project-workbench.project-home-standard-page .project-top,
  #app .project-workbench.project-home-standard-page .project-workspace {
    padding-right: 14px;
    padding-left: 14px;
  }

  #app .project-workbench.project-module-page .project-top .project-page-trail,
  #app .project-workbench.project-home-standard-page .project-top .project-page-trail {
    max-width: calc(100% - 160px);
  }
}

@media (max-width: 900px) {
  #app .project-workbench:is(
    .management-fee-page,
    .guarantee-page,
    .partner-transaction-page,
    .project-deduction-page,
    .positive-adjustment-page,
    .tax-prepayment-page,
    .tax-vat-page,
    .tax-surcharge-page,
    .tax-income-page,
    .project-balance-page,
    .tax-burden-page
  ) :is(.invoice-ledger-metrics, .contract-ledger-metrics),
  #app .project-workbench:is(.simulation-standard-page, .planning-standard-page, .ticket-tax-standard-page) :is(.overview-metrics, .independent-summary-metrics, .planning-metrics) {
    grid-template-columns: 1fr !important;
  }
}

/* 税费汇总页的综合税费卡片也沿用台账卡片的固定图标区。 */
#app .project-workbench.project-module-page.tax-summary-page .comprehensive-rate-panel {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin: 0 0 16px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#app .project-workbench.project-module-page.tax-summary-page .comprehensive-rate-panel article {
  box-sizing: border-box;
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  min-width: 0;
  min-height: 104px !important;
  padding: 12px 14px 12px 20px !important;
  column-gap: 12px;
  row-gap: 5px;
  border: 1px solid var(--reference-line) !important;
  border-radius: 10px !important;
  background: var(--reference-surface) !important;
  box-shadow: var(--reference-shadow) !important;
}

#app .project-workbench.project-module-page.tax-summary-page .comprehensive-rate-panel article::before {
  grid-column: 1;
  grid-row: 1 / 4;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
  background: #eaf2ff;
  color: #1769e8;
  content: "¥";
  font-size: 17px;
  font-weight: 700;
}

#app .project-workbench.project-module-page.tax-summary-page .comprehensive-rate-panel article:nth-child(2)::before {
  background: #e8f8f2;
  color: #0e9b72;
  content: "%";
}

#app .project-workbench.project-module-page.tax-summary-page .comprehensive-rate-panel article > :is(span, strong, small) {
  grid-column: 2;
}

/* 项目收口页补齐台账页的卡片、详情面板和 16px 主间距。 */
#app .project-workbench.project-module-page.project-closure-page .closure-tabs {
  gap: 8px;
  margin-bottom: 20px;
}

#app .project-workbench.project-module-page.project-closure-page .closure-card-grid {
  gap: 10px;
}

#app .project-workbench.project-module-page.project-closure-page .closure-status-card {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  min-height: 104px;
  padding: 12px 14px 12px 20px;
  column-gap: 12px;
  row-gap: 5px;
  border: 1px solid var(--reference-line);
  border-radius: 10px;
  box-shadow: var(--reference-shadow);
}

#app .project-workbench.project-module-page.project-closure-page .closure-status-card::before {
  grid-column: 1;
  grid-row: 1 / 4;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
  background: #eaf2ff;
  color: #1769e8;
  content: "✓";
  font-size: 17px;
  font-weight: 700;
}

#app .project-workbench.project-module-page.project-closure-page .closure-status-card.pending::before {
  background: #fff0e2;
  color: #ef7615;
  content: "!";
}

#app .project-workbench.project-module-page.project-closure-page .closure-status-card > :is(span, strong, small) {
  grid-column: 2;
}

#app .project-workbench.project-module-page.project-closure-page .closure-status-card strong {
  margin: 0;
}

#app .project-workbench.project-module-page.project-closure-page :is(.closure-overview-layout, .closure-ledger-layout) {
  gap: 16px;
}

#app .project-workbench.project-module-page.project-closure-page :is(.closure-overview-lower > div, .closure-confirm-main, .closure-confirm-action) {
  border-color: var(--reference-line);
  border-radius: 10px;
  box-shadow: var(--reference-shadow);
}

#app .project-workbench.project-module-page.project-closure-page .invoice-record-detail {
  min-height: 0;
  height: auto;
  align-self: start;
  overflow: hidden;
  border: 1px solid var(--reference-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--reference-shadow);
}

#app .project-workbench.project-module-page.project-closure-page :is(.invoice-detail-head, .invoice-detail-body) {
  box-sizing: border-box;
}

#app .project-workbench.project-module-page.project-closure-page .invoice-detail-head {
  padding: 18px 19px 14px;
  border-bottom: 1px solid var(--reference-soft-line);
}

#app .project-workbench.project-module-page.project-closure-page .invoice-detail-body {
  display: flex;
  min-height: 0;
  flex-direction: column;
  overflow: auto;
  padding: 0 19px 17px;
}

/* 项目设置页继续使用原有表单结构，但统一主间距、容器边界和阴影。 */
#app .project-workbench.project-module-page.project-rule-standard-page .rule-section-tabs {
  margin-bottom: 20px;
}

#app .project-workbench.project-module-page.project-rule-standard-page :is(.rule-status-row, .rule-section-panel) {
  border-color: var(--reference-line);
  border-radius: 10px;
  box-shadow: var(--reference-shadow);
}

/* 用户与确认工作台使用独立 workbench 壳，也补齐与台账页一致的表头和容器基线。 */
#app .workbench.admin-standard-page {
  background: var(--reference-bg);
  color: var(--reference-text);
  font-family: "Microsoft YaHei", "Segoe UI", sans-serif;
}

#app .workbench.admin-standard-page .side {
  width: 276px;
  min-width: 276px;
  background: linear-gradient(180deg, #163e98, #0f57b8);
  box-shadow: none;
}

#app .workbench.admin-standard-page .work-top {
  height: 66px;
  min-height: 66px;
  padding: 0 38px;
  border-bottom: 1px solid var(--reference-soft-line);
  background: var(--reference-bg);
  box-shadow: none;
}

#app .workbench.admin-standard-page .workspace {
  padding: 0 38px 52px;
}

#app .workbench.admin-standard-page .page-head {
  margin: 27px 0 18px;
}

#app .workbench.admin-standard-page :is(.page-title, .settings-title h2, .user-panel h2) {
  color: var(--reference-text);
}

#app .workbench.admin-standard-page :is(.user-panel, .table-wrap, .approval-queue) {
  border-color: var(--reference-line);
  border-radius: 10px;
  background: var(--reference-surface);
  box-shadow: var(--reference-shadow);
}

#app .workbench.admin-standard-page .table-wrap {
  overflow: auto;
}

#app .workbench.admin-standard-page .table-wrap table {
  border-collapse: separate;
  border-spacing: 0;
}

#app .workbench.admin-standard-page .table-wrap table thead th {
  padding: 12px 10px;
  background: var(--reference-head);
  color: #3c4654;
  font-size: 13px;
  font-weight: 400;
  white-space: nowrap;
}

#app .workbench.admin-standard-page .table-wrap table tbody td {
  padding: 13px 10px;
  color: var(--reference-text);
  font-size: 13px;
  line-height: 1.45;
}

@media (max-width: 900px) {
  #app .project-workbench.project-module-page.tax-summary-page .comprehensive-rate-panel {
    grid-template-columns: 1fr !important;
  }

  #app .project-workbench.project-module-page.project-closure-page .closure-card-grid {
    grid-template-columns: 1fr;
  }
}

/* 覆盖旧版业务全局样式，确保所有台账外框都与对下合同一致。 */
#app .project-workbench.project-module-page .business-live-ledger {
  min-width: 0;
  overflow: hidden !important;
  padding: 0 !important;
  border: 1px solid var(--reference-line) !important;
  border-radius: 10px !important;
  background: var(--reference-surface) !important;
  box-shadow: var(--reference-shadow) !important;
}

#app .project-workbench.project-module-page :is(
  .ledger-prototype-toolbar,
  .downstream-contract-ledger-toolbar,
  .invoice-table-toolbar,
  .receipt-ledger-toolbar,
  .table-titlebar
) {
  min-height: 58px !important;
  padding: 12px 20px !important;
  border-bottom: 1px solid var(--reference-soft-line) !important;
  background: #fff !important;
}

#app .project-workbench.project-module-page :is(
  .business-live-ledger > .table-wrap.business-record-table,
  .business-live-ledger > .business-record-table
) {
  margin: 0;
  overflow: auto;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* 项目收口的真实页面使用 table-wrap/closure-check-result 结构。 */
#app .project-workbench.project-module-page.project-closure-page .closure-shell {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#app .project-workbench.project-module-page.project-closure-page :is(
  .closure-overview-main .table-wrap,
  .closure-ledger-main .table-wrap,
  .closure-confirm-main,
  .closure-confirm-action
) {
  border: 1px solid var(--reference-line) !important;
  border-radius: 10px !important;
  background: var(--reference-surface) !important;
  box-shadow: var(--reference-shadow) !important;
}

#app .project-workbench.project-module-page.project-closure-page :is(
  .closure-overview-main .business-record-table,
  .closure-ledger-main .business-record-table
) {
  overflow: auto;
}

/* 系统设置的列表容器与台账卡片保持同一圆角和阴影层级。 */
#app .workbench.settings-standard-page :is(.settings-list .table-wrap, .settings-single .table-wrap) {
  border: 1px solid var(--reference-line) !important;
  border-radius: 10px !important;
  background: var(--reference-surface) !important;
  box-shadow: var(--reference-shadow) !important;
}

/* 登录页：窗口保持完整直角，避免旧圆角裁切在四角形成斜片。 */
html:has(body.desktop-auth.desktop-mode.auth-mode) {
  background: linear-gradient(135deg, #246fc9 0%, #155bb7 100%) top / 100% 38px no-repeat, #f8fafc !important;
}

body.desktop-auth.desktop-mode.auth-mode {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  min-width: 0;
  min-height: 0;
  margin: 0;
  background: linear-gradient(135deg, #246fc9 0%, #155bb7 100%) top / 100% 38px no-repeat, #f8fafc !important;
  border: 0;
  border-radius: 0;
  overflow: hidden;
  clip-path: none;
}

body.desktop-auth.desktop-mode.auth-mode .desktop-titlebar {
  border-radius: 0;
  overflow: hidden;
  clip-path: none;
}

body.desktop-auth.desktop-mode.auth-mode #app {
  border-radius: 0;
  overflow-y: auto;
  overflow-x: hidden;
  clip-path: none;
}

body.desktop-auth.desktop-mode.auth-mode .auth-card h2 {
  font-size: 24px;
}

body.desktop-auth.desktop-mode.auth-mode .auth-card .desc,
body.desktop-auth.desktop-mode.auth-mode .auth-card .field label,
body.desktop-auth.desktop-mode.auth-mode .auth-card .remember-row,
body.desktop-auth.desktop-mode.auth-mode .auth-card .auth-links {
  font-size: 12px;
}

body.desktop-auth.desktop-mode.auth-mode .auth-card .input {
  font-size: 13px;
}

body.desktop-auth.desktop-mode.auth-mode .auth-card .submit {
  font-size: 14px;
}

body.desktop-auth.desktop-mode.auth-mode .code-row .btn {
  font-size: 13px;
}

body.desktop-auth.desktop-mode.auth-mode .desktop-remember-password {
  font-size: 13px;
}

/* 非桌面模式的登录卡片也保持同一圆角边界。 */
body.desktop-auth.auth-mode:not(.desktop-mode) .auth-card {
  border-radius: 14px;
}

body.desktop-auth.auth-mode:not(.desktop-mode) .auth-card h2 {
  font-size: 26px;
}

body.desktop-auth.auth-mode:not(.desktop-mode) .auth-card .desc,
body.desktop-auth.auth-mode:not(.desktop-mode) .auth-card .field label,
body.desktop-auth.auth-mode:not(.desktop-mode) .auth-card .auth-links {
  font-size: 14px;
}

body.desktop-auth.auth-mode:not(.desktop-mode) .auth-card .input,
body.desktop-auth.auth-mode:not(.desktop-mode) .auth-card .remember-row,
body.desktop-auth.auth-mode:not(.desktop-mode) .auth-card .submit,
body.desktop-auth.auth-mode:not(.desktop-mode) .code-row .btn {
  font-size: 17px;
}

/* 项目名称不截断、不用索引替代；面包屑空间不足时横向滚动，内容本身保持完整。 */
#app .project-page-trail,
#app .project-trail {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none !important;
}

#app .project-page-trail::-webkit-scrollbar,
#app .project-trail::-webkit-scrollbar {
  display: none;
}

#app .project-page-trail > *:not(i),
#app .project-trail > *:not(i),
#app .project-page-trail button,
#app .project-trail button {
  max-width: none !important;
  min-width: max-content !important;
  flex: 0 0 auto !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

#app .v5-project-context b,
#app .project-side-current b,
#app .project-list-name-cell > span {
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: initial !important;
}

#app .v5-project-context b,
#app .project-side-current b,
#app .project-list-name-cell > span {
  display: block !important;
}

/* 八个对上、对下业务页面以“对上合同—合同总额”为统计卡片文字基准。 */
#app .business-ledger-metrics-standard article > div {
  display: grid;
  min-width: 0;
  gap: 8px !important;
  padding-top: 3px !important;
}

#app .project-workbench .business-ledger-metrics-standard.business-ledger-metrics-standard article > div > strong {
  margin: 0 !important;
  color: var(--business-primary, #163e98) !important;
  font-size: 23px !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: .2px !important;
  white-space: nowrap;
}

#app .business-ledger-metrics-standard article > div > span,
#app .business-ledger-metrics-standard article > div > small {
  margin: 0 !important;
  line-height: 1.35 !important;
}

/* 项目尚应承担税费表复用对下合同的三列统计卡片排版。 */
#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics.is-comprehensive {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

/* Keep the tax summary shell and ledger boundary identical to the downstream contract page. */
#app .project-workbench.project-module-page.tax-summary-page .tax-summary-page-panel {
  display: block;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-page-panel .tax-summary-ledger {
  min-width: 0;
  overflow: hidden !important;
  margin: 0;
  padding: 0 !important;
  border: 1px solid var(--reference-line) !important;
  border-radius: 10px !important;
  background: var(--reference-surface) !important;
  box-shadow: var(--reference-shadow) !important;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-page-panel .tax-summary-ledger > .business-record-table {
  margin: 0;
  overflow: auto;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics article {
  box-sizing: border-box;
  display: flex !important;
  align-items: flex-start;
  flex-direction: row;
  gap: 12px;
  min-width: 0;
  min-height: 104px !important;
  padding: 12px 20px !important;
  border: 1px solid var(--reference-line) !important;
  border-radius: 10px !important;
  background: var(--reference-surface) !important;
  box-shadow: var(--reference-shadow) !important;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics article > div {
  display: grid;
  min-width: 0;
  gap: 8px !important;
  padding-top: 3px !important;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics article > div > span,
#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics article > div > small {
  overflow: hidden;
  color: #7c8798;
  font-size: 12px;
  line-height: 1.35 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics article > div > strong {
  color: #1f5fa9 !important;
  margin: 0 !important;
  font-size: 23px !important;
  line-height: 1.1 !important;
  letter-spacing: .2px !important;
  white-space: nowrap;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics article > div > strong.tone-blue {
  color: #1f5fa9 !important;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics article > div > strong.tone-green {
  color: #138a63 !important;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics article > div > strong.tone-orange {
  color: #bf7411 !important;
}

#app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics .v5-metric-icon {
  flex: 0 0 42px;
}

@media (max-width: 900px) {
  #app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics {
    grid-template-columns: repeat(3, minmax(180px, 1fr)) !important;
    overflow-x: auto;
  }

  #app .project-workbench.project-module-page.tax-summary-page .tax-summary-ledger-metrics.is-comprehensive {
    grid-template-columns: repeat(5, minmax(180px, 1fr)) !important;
  }
}

/* 项目列表、基础设置与“对下合同”共用同一套内容节奏。 */
body.desktop-mode:not(.auth-mode):has(#app .settings-standard-page.v5-global-shell) #app {
  height: calc(100vh - 53px);
  margin-top: 53px;
}

body.desktop-mode:not(.auth-mode):has(#app .settings-standard-page.v5-global-shell) .desktop-titlebar {
  height: 53px;
  min-height: 53px;
}

#app .settings-standard-page.v5-global-shell {
  grid-template-columns: 234px minmax(0, 1fr);
  grid-template-rows: 51px 51px minmax(0, 1fr);
}

#app .settings-standard-page.v5-global-shell .workspace {
  padding: 27px 28px 26px 30px;
}

#app .settings-standard-page.v5-global-shell .settings-page-head {
  margin: 0 0 22px;
}

#app .project-list-standard-page.v5-global-shell .project-list-layout {
  min-height: 0;
  align-items: start;
  overflow: visible;
  margin-bottom: 0;
}

#app .project-list-standard-page.v5-global-shell .project-list-main {
  grid-template-rows: auto auto;
  gap: 16px;
  overflow: visible;
}

#app .project-list-standard-page.v5-global-shell .project-list-metrics {
  gap: 10px;
}

#app .project-list-standard-page.v5-global-shell .project-list-metrics article {
  min-height: 104px;
  padding: 12px 20px;
  border-color: var(--reference-line);
  border-radius: 10px;
  box-shadow: var(--reference-shadow);
}

#app .project-list-standard-page.v5-global-shell .project-list-metrics span,
#app .project-list-standard-page.v5-global-shell .project-list-metrics small {
  font-size: 12px;
  line-height: 1.35;
}

#app .project-list-standard-page.v5-global-shell .project-list-metrics strong {
  font-size: 23px;
  line-height: 1.1;
  letter-spacing: .2px;
}

#app .project-list-standard-page.v5-global-shell .project-list-metrics .tone-blue {
  color: #1f5fa9;
}

#app .project-list-standard-page.v5-global-shell .project-list-metrics .tone-green {
  color: #138a63;
}

#app .project-list-standard-page.v5-global-shell .project-list-metrics .tone-orange {
  color: #bf7411;
}

#app .project-list-standard-page.v5-global-shell .project-list-ledger {
  min-height: 0;
  height: auto;
}

#app .project-list-standard-page.v5-global-shell .project-list-titlebar {
  min-height: 58px;
  flex-basis: 58px;
  padding: 12px 20px;
}

#app .project-list-standard-page.v5-global-shell .project-list-titlebar h2 {
  font-size: 17px;
}

#app .project-list-standard-page.v5-global-shell .project-list-table-wrap {
  flex: 0 0 auto;
  max-height: none;
  overflow-x: auto;
  overflow-y: visible;
}

#app .project-list-standard-page.v5-global-shell .project-list-table-wrap th {
  padding-top: 12px;
  padding-bottom: 12px;
}

#app .project-list-standard-page.v5-global-shell .project-list-table-wrap td {
  padding-top: 13px;
  padding-bottom: 13px;
}

#app .project-list-standard-page.v5-global-shell .project-list-detail {
  height: auto;
  min-height: 0;
}

#app .project-list-standard-page.v5-global-shell .project-list-detail-head {
  padding: 18px 19px 14px;
}

#app .project-list-standard-page.v5-global-shell .project-list-detail-body {
  padding: 0 19px 17px;
  overflow: visible;
}

#app .settings-standard-page.v5-global-shell .settings-grid {
  align-items: start;
  gap: 16px;
}

#app .settings-standard-page.v5-global-shell :is(.settings-list, .settings-editor, .settings-single) {
  border-color: var(--reference-line);
  border-radius: 10px;
  box-shadow: var(--reference-shadow);
}

#app .settings-standard-page.v5-global-shell .settings-list .table-wrap {
  border-radius: 10px;
}

@media (max-width: 1350px) {
  #app .project-list-standard-page.v5-global-shell .project-list-main {
    grid-template-rows: auto auto;
    gap: 14px;
  }

  #app .project-list-standard-page.v5-global-shell .project-list-metrics article {
    min-height: 104px;
    padding: 12px 16px;
  }
}

/* 公司管理费台账与“对下合同”采用同一套表格色彩和边线。 */
#app .project-workbench.management-fee-page .business-record-table table {
  border: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}

#app .project-workbench.management-fee-page .business-record-table thead th {
  padding: 12px 10px !important;
  background: #f1f5fb !important;
  color: #3c4654 !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  text-align: center !important;
  vertical-align: middle;
  white-space: nowrap;
  border-top: 0 !important;
  border-right: 1px solid #e5ebf3 !important;
  border-bottom: 1px solid #dfe6f0 !important;
  border-left: 0 !important;
}

#app .project-workbench.management-fee-page .business-record-table tbody td {
  padding: 13px 10px !important;
  color: #171b24 !important;
  font-size: 13px !important;
  line-height: 1.45;
  border-top: 1px solid #edf0f5 !important;
  border-right: 1px solid #edf1f6 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
}

#app .project-workbench.management-fee-page .business-record-table tfoot td {
  padding: 12px 10px !important;
  background: #eef5ff !important;
  color: #171b24 !important;
  border-top: 2px solid #afc8e9 !important;
  border-right: 1px solid #edf1f6 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
}

#app .project-workbench.management-fee-page .business-record-table :is(thead th:last-child, tbody td:last-child, tfoot td:last-child) {
  border-right: 0 !important;
}

#app .project-workbench.management-fee-page .business-record-table tbody tr.business-record-selected td {
  background: #f8fbff !important;
}

#app .project-workbench.management-fee-page .business-record-table tbody tr.business-record-selected td:first-child {
  border-left: 3px solid #1769e8 !important;
}

/* 项目中心与“对下合同”使用同源项目内台账外壳。 */
#app .project-workbench.project-list-workbench {
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background: var(--reference-bg);
  color: var(--reference-text);
  font-family: "Microsoft YaHei", "Segoe UI", sans-serif;
}

#app .project-workbench.project-list-workbench .project-side {
  display: flex;
  width: 276px;
  min-width: 276px;
  flex: 0 0 276px;
  flex-direction: column;
  background: linear-gradient(180deg, #163e98, #0f57b8);
  box-shadow: none;
}

#app .project-workbench.project-list-workbench .project-side-brand {
  display: block;
  height: auto;
  padding: 22px 24px 18px;
  border-bottom: 0;
}

#app .project-workbench.project-list-workbench .project-side-brand b,
#app .project-workbench.project-list-workbench .project-side-brand span {
  display: block;
}

#app .project-workbench.project-list-workbench .project-side-brand b {
  color: #fff;
  font-size: 21px;
}

#app .project-workbench.project-list-workbench .project-side-brand span {
  margin-top: 7px;
  color: rgba(255, 255, 255, .72);
  font-size: 13px;
  font-weight: 400;
}

#app .project-workbench.project-list-workbench .project-side-current {
  margin: 0 16px;
  padding: 15px 8px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, .22);
}

#app .project-workbench.project-list-workbench .project-side-current span,
#app .project-workbench.project-list-workbench .project-side-current small {
  display: block;
  color: rgba(255, 255, 255, .7);
  font-size: 12px;
  line-height: 1.85;
}

#app .project-workbench.project-list-workbench .project-side-current b {
  display: block;
  margin: 6px 0 8px;
  color: #fff;
  font-size: 15px;
  line-height: 1.5;
}

#app .project-workbench.project-list-workbench .project-side-nav {
  display: grid;
  gap: 4px;
  padding: 12px 10px;
}

#app .project-workbench.project-list-workbench .project-side-item {
  display: flex;
  width: 100%;
  min-height: 40px;
  align-items: center;
  gap: 9px;
  padding: 0 12px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: rgba(255, 255, 255, .88);
  font: 700 15px/1.2 "Microsoft YaHei", "Segoe UI", sans-serif;
  text-align: left;
  cursor: pointer;
}

#app .project-workbench.project-list-workbench .project-side-item > span {
  width: 18px;
  color: rgba(255, 255, 255, .8);
  font-size: 16px;
  text-align: center;
}

#app .project-workbench.project-list-workbench .project-side-item:hover,
#app .project-workbench.project-list-workbench .project-side-item.active {
  background: rgba(255, 255, 255, .16);
  color: #fff;
}

#app .project-workbench.project-list-workbench .project-side-bottom {
  display: grid;
  gap: 2px;
  margin-top: auto;
  padding: 12px 16px 18px;
}

#app .project-workbench.project-list-workbench .project-side-bottom .project-side-item {
  min-height: 34px;
  padding: 0;
  color: rgba(255, 255, 255, .8);
  font-size: 13px;
  font-weight: 400;
}

#app .project-workbench.project-list-workbench .project-main {
  display: flex;
  min-width: 0;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  overflow: hidden;
}

#app .project-workbench.project-list-workbench .project-top {
  display: flex;
  height: 66px;
  min-height: 66px;
  flex: 0 0 66px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 38px;
  border-bottom: 1px solid var(--reference-soft-line);
  background: var(--reference-bg);
  color: var(--reference-muted);
  box-shadow: none;
}

#app .project-workbench.project-list-workbench .project-page-trail {
  display: flex;
  min-width: 0;
  min-height: 66px;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--reference-muted);
  font-size: 14px;
}

#app .project-workbench.project-list-workbench .project-page-trail button,
#app .project-workbench.project-list-workbench .project-page-trail span {
  max-width: 360px;
  overflow: hidden;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--reference-muted);
  font: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#app .project-workbench.project-list-workbench .project-page-trail button {
  cursor: pointer;
}

#app .project-workbench.project-list-workbench .project-page-trail i {
  margin: 0 9px;
  color: #bbc4d1;
  font-style: normal;
}

#app .project-workbench.project-list-workbench .project-list-top-scope {
  flex: 0 0 auto;
  color: #245ca4;
  font-size: 14px;
  white-space: nowrap;
}

#app .project-workbench.project-list-workbench .project-workspace {
  width: 100%;
  min-width: 0;
  min-height: 0;
  flex: 1 1 auto;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0 38px 52px;
  overscroll-behavior: contain;
}

#app .project-workbench.project-list-workbench .project-list-page-head {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin: 27px 0 18px;
}

#app .project-workbench.project-list-workbench .project-list-page-head .page-title {
  margin: 0 0 8px;
  color: var(--reference-text);
  font-size: 27px;
  line-height: 1.25;
}

#app .project-workbench.project-list-workbench .project-list-page-head .page-sub {
  margin: 0;
  color: var(--reference-muted);
  font-size: 13px;
}

#app .project-workbench.project-list-workbench .project-list-layout {
  display: block;
  min-width: 0;
}

#app .project-workbench.project-list-workbench .project-list-main {
  display: grid;
  min-width: 0;
  gap: 16px;
}

#app .project-workbench.project-list-workbench .project-list-metrics {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

#app .project-workbench.project-list-workbench .project-list-metrics article {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  min-width: 0;
  min-height: 104px;
  align-items: start;
  gap: 12px;
  padding: 12px 20px;
  border: 1px solid var(--reference-line);
  border-radius: 10px;
  background: var(--reference-surface);
  box-shadow: var(--reference-shadow);
}

#app .project-workbench.project-list-workbench .project-list-metrics article > div {
  display: grid;
  min-width: 0;
  gap: 8px;
  padding-top: 3px;
}

#app .project-workbench.project-list-workbench .project-list-metrics .v5-metric-icon {
  box-sizing: border-box;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
}

#app .project-workbench.project-list-workbench .project-list-metrics article > div > span,
#app .project-workbench.project-list-workbench .project-list-metrics article > div > small {
  overflow: hidden;
  color: var(--reference-muted);
  font-size: 12px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#app .project-workbench.project-list-workbench .project-list-metrics strong {
  color: #1f5fa9;
  font-size: 23px;
  line-height: 1.1;
  letter-spacing: .2px;
  white-space: nowrap;
}

#app .project-workbench.project-list-workbench .project-list-metrics .tone-green { color: #138a63; }
#app .project-workbench.project-list-workbench .project-list-metrics .tone-orange { color: #bf7411; }

#app .project-workbench.project-list-workbench .project-list-ledger,
#app .project-workbench.project-list-workbench .project-list-detail {
  border: 1px solid var(--reference-line);
  border-radius: 10px;
  background: var(--reference-surface);
  box-shadow: var(--reference-shadow);
}

#app .project-workbench.project-list-workbench .project-list-ledger {
  min-width: 0;
  overflow: hidden;
}

#app .project-workbench.project-list-workbench .project-list-titlebar {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding: 12px 20px;
  border-bottom: 1px solid var(--reference-soft-line);
}

#app .project-workbench.project-list-workbench .project-list-titlebar .table-titlebar-title { display: none; }

#app .project-workbench.project-list-workbench .project-list-filters,
#app .project-workbench.project-list-workbench .project-list-ledger-actions {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
}

#app .project-workbench.project-list-workbench .project-list-filters select,
#app .project-workbench.project-list-workbench .project-list-filters .table-filter-action,
#app .project-workbench.project-list-workbench .project-list-ledger-actions .btn {
  height: 34px;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid #d8e0eb;
  border-radius: 5px;
  background: #fff;
  color: #425168;
  font: 400 13px/1 "Microsoft YaHei", "Segoe UI", sans-serif;
  box-shadow: none;
}

#app .project-workbench.project-list-workbench .project-list-filters select:first-child { width: 142px; }
#app .project-workbench.project-list-workbench .project-list-filters select:nth-child(2) { width: 154px; }

#app .project-workbench.project-list-workbench .project-list-filters .table-filter-action {
  min-width: 60px;
  cursor: pointer;
}

#app .project-workbench.project-list-workbench .project-list-filters .table-filter-action.primary {
  border-color: #b9cceb;
  background: #f4f8fe;
  color: #175fb9;
}

#app .project-workbench.project-list-workbench .project-list-ledger-actions {
  flex: 0 0 auto;
  margin-left: auto;
}

#app .project-workbench.project-list-workbench .project-list-ledger-actions .btn.primary {
  border: 0;
  background: linear-gradient(180deg, #163e98, #0f57b8);
  color: #fff;
}

#app .project-workbench.project-list-workbench .project-list-table-wrap {
  min-width: 0;
  max-height: none;
  margin: 0;
  overflow-x: auto;
  overflow-y: visible;
  border: 0;
  border-radius: 0;
}

#app .project-workbench.project-list-workbench .project-list-table-wrap table {
  width: 100%;
  min-width: 1040px;
  table-layout: fixed;
}

#app .project-workbench.project-list-workbench .project-list-table-wrap th {
  height: auto;
  padding: 12px 9px;
  background: var(--reference-head);
  color: #3c4654;
  font-size: 13px;
  font-weight: 400;
  text-align: center !important;
  vertical-align: middle;
  white-space: nowrap;
}

#app .project-workbench.project-list-workbench .project-list-table-wrap td {
  height: auto;
  padding: 13px 9px;
  color: var(--reference-text);
  font-size: 13px;
  border-top: 1px solid #edf0f5;
  border-bottom: 0;
}

#app .project-workbench.project-list-workbench .project-list-table-wrap th:nth-child(1) { width: 48px; }
#app .project-workbench.project-list-workbench .project-list-table-wrap th:nth-child(2) { width: 96px; }
#app .project-workbench.project-list-workbench .project-list-table-wrap th:nth-child(3) { width: 150px; }
#app .project-workbench.project-list-workbench .project-list-table-wrap th:nth-child(4) { width: 118px; }
#app .project-workbench.project-list-workbench .project-list-table-wrap th:nth-child(5),
#app .project-workbench.project-list-workbench .project-list-table-wrap th:nth-child(6),
#app .project-workbench.project-list-workbench .project-list-table-wrap th:nth-child(7) { width: 116px; }
#app .project-workbench.project-list-workbench .project-list-table-wrap th:nth-child(8) { width: 78px; }

#app .project-workbench.project-list-workbench .project-list-table-wrap th:last-child,
#app .project-workbench.project-list-workbench .project-list-table-wrap td:last-child {
  position: sticky;
  right: 0;
  z-index: 3;
  width: 142px;
  background: #fff;
  white-space: nowrap;
}

#app .project-workbench.project-list-workbench .project-list-table-wrap th:last-child { z-index: 4; background: var(--reference-head); }
#app .project-workbench.project-list-workbench .project-list-table-wrap .business-record-selected td { background: #f7fbff !important; }
#app .project-workbench.project-list-workbench .project-list-table-wrap .business-record-selected td:first-child { border-left: 3px solid #245daa; }
#app .project-workbench.project-list-workbench .project-list-table-wrap .business-record-selected td:last-child { background: #f7fbff !important; }

#app .project-workbench.project-list-workbench .project-list-footer {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  border-top: 1px solid var(--reference-soft-line);
  color: #718099;
  font-size: 12px;
}

#app .project-workbench.project-list-workbench .project-list-pagination {
  display: flex;
  align-items: center;
  gap: 10px;
}

#app .project-workbench.project-list-workbench .project-list-pagination button,
#app .project-workbench.project-list-workbench .project-list-pagination label {
  display: grid;
  min-width: 36px;
  height: 36px;
  place-items: center;
  padding: 0 12px;
  border: 1px solid #d5dfec;
  border-radius: 6px;
  background: #fff;
  color: #53627a;
  font: 12px "Microsoft YaHei", "Segoe UI", sans-serif;
}

#app .project-workbench.project-list-workbench .project-list-pagination button.active { border-color: #1769e8; color: #1769e8; }
#app .project-workbench.project-list-workbench .project-list-pagination button:disabled { color: #a5b1c1; }

#app .project-workbench.project-list-workbench .project-list-detail {
  min-width: 0;
  overflow: hidden;
}

#app .project-workbench.project-list-workbench .project-list-detail-head {
  padding: 18px 19px 14px;
  border-bottom: 1px solid var(--reference-soft-line);
}

#app .project-workbench.project-list-workbench .project-list-detail-head h2 {
  margin: 0 0 7px;
  color: var(--reference-text);
  font-size: 17px;
  line-height: 1.3;
}

#app .project-workbench.project-list-workbench .project-list-detail-head p {
  margin: 0;
  color: var(--reference-muted);
  font-size: 12px;
  line-height: 1.45;
}

#app .project-workbench.project-list-workbench .project-list-detail-body { padding: 0 19px 17px; }
#app .project-workbench.project-list-workbench .project-list-detail-amount { display: flex; padding: 17px 0; flex-direction: column; gap: 5px; border-bottom: 1px solid #e7ebf2; }
#app .project-workbench.project-list-workbench .project-list-detail-amount span,
#app .project-workbench.project-list-workbench .project-list-detail-body dt { color: var(--reference-muted); font-size: 12px; font-weight: 400; }
#app .project-workbench.project-list-workbench .project-list-detail-amount b { color: #1f5fa9; font-size: 25px; line-height: 1.2; }
#app .project-workbench.project-list-workbench .project-list-detail-body dl { margin: 0; }
#app .project-workbench.project-list-workbench .project-list-detail-body dl > div { padding: 14px 0; border-bottom: 1px solid #e7ebf2; }
#app .project-workbench.project-list-workbench .project-list-detail-body dt { margin: 0 0 6px; }
#app .project-workbench.project-list-workbench .project-list-detail-body dd { margin: 0; color: var(--reference-text); font-size: 13px; font-weight: 600; line-height: 1.55; overflow-wrap: anywhere; }
#app .project-workbench.project-list-workbench .project-list-detail-actions { display: grid; margin-top: 17px; grid-template-columns: 1fr; gap: 10px; }
#app .project-workbench.project-list-workbench .project-list-detail-actions .btn { height: 34px; min-height: 34px; border: 0; border-radius: 5px; background: linear-gradient(180deg, #163e98, #0f57b8); color: #fff; font-size: 13px; font-weight: 400; box-shadow: none; }

#app .project-workbench.project-list-workbench .project-empty-guide {
  min-height: 460px;
  margin: 27px 0 0;
  padding: 48px;
  border: 1px solid var(--reference-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--reference-shadow);
}

@media (max-width: 1350px) {
  #app .project-workbench.project-list-workbench .project-top,
  #app .project-workbench.project-list-workbench .project-workspace { padding-right: 14px; padding-left: 14px; }
  #app .project-workbench.project-list-workbench .project-list-metrics article { padding-right: 14px; padding-left: 14px; }
  #app .project-workbench.project-list-workbench .project-list-filters { gap: 6px; }
  #app .project-workbench.project-list-workbench .project-list-filters select:first-child { width: 122px; }
  #app .project-workbench.project-list-workbench .project-list-filters select:nth-child(2) { width: 132px; }
  #app .project-workbench.project-list-workbench .project-list-table-wrap th,
  #app .project-workbench.project-list-workbench .project-list-table-wrap td { padding-right: 6px; padding-left: 6px; font-size: 12px; }
}

@media (max-width: 980px) {
  #app .project-workbench.project-list-workbench .project-side { width: 238px; min-width: 238px; flex-basis: 238px; }
}

@media (max-width: 900px) {
  #app .project-workbench.project-list-workbench .project-list-metrics { grid-template-columns: 1fr; }
  #app .project-workbench.project-list-workbench .project-list-titlebar { align-items: stretch; flex-direction: column; }
  #app .project-workbench.project-list-workbench .project-list-filters { flex-wrap: wrap; }
  #app .project-workbench.project-list-workbench .project-list-ledger-actions { justify-content: flex-end; }
}

@media (max-width: 700px) {
  #app .project-workbench.project-list-workbench .project-side { display: none; }
  #app .project-workbench.project-list-workbench .project-list-top-scope { display: none; }
  #app .project-workbench.project-list-workbench .project-list-page-head { flex-direction: column; }
}

/* 系统设置沿用项目内台账页的外壳与内容节奏，保留系统自身的二级、三级导航。 */
#app .project-workbench.settings-project-shell {
  background: var(--reference-bg);
  color: var(--reference-text);
  font-family: "Microsoft YaHei", "Segoe UI", sans-serif;
}

#app .project-workbench.settings-project-shell .project-side {
  width: 276px;
  min-width: 276px;
  flex-basis: 276px;
  background: linear-gradient(180deg, #163e98, #0f57b8);
  box-shadow: none;
}

#app .project-workbench.settings-project-shell .project-side-brand {
  display: block;
  height: auto;
  padding: 22px 24px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}

#app .project-workbench.settings-project-shell .project-side-brand b,
#app .project-workbench.settings-project-shell .project-side-brand span {
  display: block;
}

#app .project-workbench.settings-project-shell .project-side-brand b {
  color: #fff;
  font-size: 21px;
  line-height: 1.2;
}

#app .project-workbench.settings-project-shell .project-side-brand span {
  margin-top: 7px;
  color: rgba(255, 255, 255, .72);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.2;
}

#app .project-workbench.settings-project-shell .project-side-current {
  margin: 0 16px;
  padding: 15px 8px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, .22);
}

#app .project-workbench.settings-project-shell .project-side-current span,
#app .project-workbench.settings-project-shell .project-side-current small {
  display: block;
  color: rgba(255, 255, 255, .7);
  font-size: 12px;
  line-height: 1.85;
}

#app .project-workbench.settings-project-shell .project-side-current b {
  display: block;
  margin: 6px 0 8px;
  color: #fff;
  font-size: 15px;
  line-height: 1.5;
}

#app .project-workbench.settings-project-shell .settings-secondary-nav {
  display: grid;
  flex: 0 0 auto;
  align-content: start;
  gap: 4px;
  padding: 12px 10px 12px;
}

#app .project-workbench.settings-project-shell .settings-secondary-nav .project-side-item {
  min-height: 40px;
  padding: 0 12px;
  border-radius: 7px;
  color: rgba(255, 255, 255, .9);
  font-size: 15px;
  font-weight: 700;
}

#app .project-workbench.settings-project-shell .settings-secondary-nav .project-side-item > span {
  width: 18px;
  color: rgba(255, 255, 255, .7);
  font-size: 16px;
  text-align: center;
}

#app .project-workbench.settings-project-shell .settings-secondary-nav .project-side-item:hover,
#app .project-workbench.settings-project-shell .settings-secondary-nav .project-side-item.active {
  background: rgba(255, 255, 255, .16);
  color: #fff;
}

#app .project-workbench.settings-project-shell .settings-secondary-nav .project-side-item.disabled {
  opacity: .55;
  cursor: not-allowed;
}

#app .project-workbench.settings-project-shell .project-side-bottom {
  padding: 12px 16px 18px;
  border-top: 1px solid rgba(255, 255, 255, .17);
}

#app .project-workbench.settings-project-shell .project-side-bottom .project-side-item {
  min-height: 34px;
  padding: 0;
  color: rgba(255, 255, 255, .8);
  font-size: 13px;
}

#app .project-workbench.settings-project-shell .project-main {
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
}

#app .project-workbench.settings-project-shell .project-top {
  height: 66px;
  min-height: 66px;
  flex: 0 0 66px;
  padding: 0 38px;
  border-bottom: 1px solid var(--reference-soft-line);
  background: var(--reference-bg);
  color: var(--reference-muted);
  box-shadow: none;
}

#app .project-workbench.settings-project-shell .project-page-trail {
  min-height: 66px;
  max-width: calc(100% - 260px);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--reference-muted);
  font-size: 14px;
}

#app .project-workbench.settings-project-shell .project-page-trail button,
#app .project-workbench.settings-project-shell .project-page-trail span {
  max-width: 360px;
  overflow: hidden;
  color: var(--reference-muted);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#app .project-workbench.settings-project-shell .project-page-trail i {
  margin: 0 9px;
  color: #bbc4d1;
}

#app .project-workbench.settings-project-shell .settings-top-return {
  border: 0;
  background: transparent;
  color: #245ca4;
  font: 14px inherit;
  cursor: pointer;
}

#app .project-workbench.settings-project-shell .project-workspace {
  padding: 0 38px 52px;
  background: var(--reference-bg);
}

#app .project-workbench.settings-project-shell .settings-page-head {
  margin: 27px 0 18px;
  padding: 0;
}

#app .project-workbench.settings-project-shell .settings-page-head .page-title {
  margin: 0 0 8px;
  color: var(--reference-text);
  font-size: 27px;
  line-height: 1.25;
}

#app .project-workbench.settings-project-shell .settings-page-head .page-sub {
  margin: 0;
  color: var(--reference-muted);
  font-size: 13px;
  line-height: 1.55;
}

#app .project-workbench.settings-project-shell .settings-shell {
  overflow: visible;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#app .project-workbench.settings-project-shell .settings-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 20px;
  padding: 0;
  overflow-x: auto;
  border: 0;
  background: transparent;
}

#app .project-workbench.settings-project-shell .settings-tabs button {
  min-width: max-content;
  height: 34px;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid #d8e0eb;
  border-radius: 5px;
  background: #fff;
  color: #425168;
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  box-shadow: none;
}

#app .project-workbench.settings-project-shell .settings-tabs button:hover {
  border-color: #9db9e6;
  color: #145fc9;
}

#app .project-workbench.settings-project-shell .settings-tabs button.active {
  border-color: transparent;
  background: linear-gradient(180deg, #163e98, #0f57b8);
  color: #fff;
  font-weight: 400;
}

#app .project-workbench.settings-project-shell .settings-panel {
  padding: 0;
}

#app .project-workbench.settings-project-shell :is(.settings-list, .settings-editor, .settings-single) {
  border-color: var(--reference-line);
  border-radius: 10px;
  box-shadow: var(--reference-shadow);
}

#app .project-workbench.settings-project-shell .settings-list,
#app .project-workbench.settings-project-shell .settings-editor,
#app .project-workbench.settings-project-shell .settings-single {
  background: #fff;
}

@media (max-width: 1250px) {
  #app .project-workbench.settings-project-shell .project-top,
  #app .project-workbench.settings-project-shell .project-workspace { padding-right: 14px; padding-left: 14px; }
}

@media (max-width: 900px) {
  #app .project-workbench.settings-project-shell .project-side { width: 238px; min-width: 238px; flex-basis: 238px; }
  #app .project-workbench.settings-project-shell .settings-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  #app .project-workbench.settings-project-shell .project-side { display: none; }
  #app .project-workbench.settings-project-shell .project-top-return { display: none; }
  #app .project-workbench.settings-project-shell .project-page-trail { max-width: 100%; }
  #app .project-workbench.settings-project-shell .project-workspace { padding: 14px; }
}

/* 对上、对下八个业务页面共用项目列表的内容宽度：主表铺满，详情按需从弹层打开。 */
#app .project-workbench:is(
  .downstream-contract-page,
  .downstream-ledger-page.upstream-contract-page,
  .downstream-ledger-page.upstream-settlement-page,
  .downstream-ledger-page.upstream-invoice-page,
  .downstream-ledger-page.upstream-receipt-page
) .project-top,
#app .project-workbench:is(
  .downstream-contract-page,
  .downstream-ledger-page.upstream-contract-page,
  .downstream-ledger-page.upstream-settlement-page,
  .downstream-ledger-page.upstream-invoice-page,
  .downstream-ledger-page.upstream-receipt-page
) .project-workspace {
  padding-right: 38px !important;
  padding-left: 38px !important;
}

#app .project-workbench:is(
  .downstream-contract-page,
  .downstream-ledger-page.upstream-contract-page,
  .downstream-ledger-page.upstream-settlement-page,
  .downstream-ledger-page.upstream-invoice-page,
  .downstream-ledger-page.upstream-receipt-page
) :is(
  .contract-ledger-layout,
  .downstream-contract-ledger-layout,
  .settlement-ledger-layout,
  .invoice-ledger-layout,
  .receipt-ledger-layout
) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

#app .project-workbench:is(
  .downstream-contract-page,
  .downstream-ledger-page.upstream-contract-page,
  .downstream-ledger-page.upstream-settlement-page,
  .downstream-ledger-page.upstream-invoice-page,
  .downstream-ledger-page.upstream-receipt-page
) :is(
  .contract-ledger-main,
  .downstream-contract-ledger-main,
  .settlement-ledger-main,
  .invoice-ledger-main,
  .receipt-ledger-main
) {
  grid-column: 1 / -1 !important;
  width: 100%;
}

@media (max-width: 1350px) {
  #app .project-workbench:is(
    .downstream-contract-page,
    .downstream-ledger-page.upstream-contract-page,
    .downstream-ledger-page.upstream-settlement-page,
    .downstream-ledger-page.upstream-invoice-page,
    .downstream-ledger-page.upstream-receipt-page
  ) .project-top,
  #app .project-workbench:is(
    .downstream-contract-page,
    .downstream-ledger-page.upstream-contract-page,
    .downstream-ledger-page.upstream-settlement-page,
    .downstream-ledger-page.upstream-invoice-page,
    .downstream-ledger-page.upstream-receipt-page
  ) .project-workspace {
    padding-right: 14px !important;
    padding-left: 14px !important;
  }
}
