/* 同级卡片按一行中最高内容对齐；只约束业务双卡，不影响主内容/侧栏布局。 */
.activity-plan-grid,
.activity-plan-grid.materials-layout {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.activity-plan-grid > .activity-file-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 440px;
  padding: 24px;
}

.activity-plan-grid > .activity-file-card > header {
  min-height: 64px;
  align-items: flex-start;
}

.activity-plan-grid .activity-file-icon {
  flex: 0 0 52px;
}

.activity-plan-grid .activity-file-card > header > div {
  min-width: 0;
  overflow-wrap: anywhere;
}

.activity-plan-grid .activity-file-meta {
  flex-wrap: wrap;
  gap: 8px 20px;
  min-height: 22px;
  margin: 18px 0 14px;
}

/* 上传区填充剩余空间，物料多行或附件展开时，两卡随内容一起增高。 */
.activity-plan-grid > .activity-file-card > .contract-file-panel,
.activity-plan-grid > .activity-file-card > .contract-file-panel > .contract-file-field {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
}

.activity-plan-grid > .activity-file-card > .contract-file-panel .contract-file-list-box {
  flex: 1 1 auto;
}

.activity-plan-grid .design-materials-table {
  flex: 1 1 auto;
  min-height: 230px;
  margin-top: 0;
}

.activity-plan-grid .design-materials-table:has(.materials-empty) {
  display: grid;
}

.activity-plan-grid .design-materials-table .materials-empty td {
  vertical-align: middle;
}

.activity-plan-grid .materials-add {
  align-self: flex-start;
}

.activity-plan-grid .materials-attachments {
  flex: 0 0 auto;
}

/* 共享行轨道：说明文字换行时，两卡的标题和提示区同步增高。 */
@media (min-width: 1101px) {
  .activity-plan-grid {
    grid-template-rows: auto auto minmax(230px, 1fr) auto auto;
    row-gap: 0;
  }

  .activity-plan-grid > .activity-file-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: subgrid;
    grid-row: span 5;
    row-gap: 0;
  }

  .activity-plan-grid > .activity-file-card > .contract-file-panel {
    grid-row: 3 / 6;
  }

  .activity-plan-grid .materials-attachments {
    grid-row: 5;
  }
}

/* 工作台及执行页面存在同样的顶端对齐/列宽偏差。 */
.wb-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.execution-center .execution-grid,
.exec-flow-prep-grid,
.finance-grid,
.payroll-grid {
  align-items: stretch;
}

.exec-flow-prep-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* 折叠面板只在全部展开后等高；关闭时仍是紧凑的标题栏。 */
.finance-grid:has(> details:not([open])),
.payroll-grid:has(> details:not([open])) {
  align-items: start;
}

@media (min-width: 901px) {
  #collectionForm > .detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1100px) {
  .activity-plan-grid,
  .activity-plan-grid.materials-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .activity-plan-grid > .activity-file-card {
    min-height: 0;
  }
}

@media (max-width: 1100px) {
  .wb-columns,
  .exec-flow-prep-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 720px) {
  .activity-plan-grid > .activity-file-card {
    padding: 18px;
  }
}
