.derived-table-modal .modal-dialog { width: min(920px, calc(100vw - 32px)); max-width: 920px; }
.derived-table-modal .modal-body { overflow-y: auto; }
.derived-table-fields { display: flex; flex-direction: column; gap: 8px; }
.derived-table-name { margin: .4rem 0 0; }
.derived-table-delete { margin-right: auto; }
.derived-table-primary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.derived-table-section-heading { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; }
.derived-table-section-heading h3 { margin: 0; color: var(--color-text); font-size: .9rem; font-weight: 700; }
.derived-table-rows,
.derived-table-joins,
.derived-table-outputs { display: flex; flex-direction: column; gap: 9px; }
.derived-table-row { padding: 12px; border: 1px solid var(--color-border-soft); border-radius: var(--radius-lg); background: var(--color-surface); }
.derived-table-row-grid { display: grid; align-items: center; gap: 9px; }
.derived-table-row-grid .form-group { min-width: 0; margin: 0; }
.aggregate-grid { grid-template-columns: auto minmax(120px, .8fr) minmax(200px, 1.4fr) minmax(150px, 1fr); }
.calculated-grid { grid-template-columns: minmax(150px, .8fr) minmax(220px, 1.4fr) auto; }
.join-grid { grid-template-columns: auto minmax(180px, 1fr) auto minmax(180px, 1fr); }
.merge-output-grid { grid-template-columns: auto minmax(150px, .8fr) minmax(150px, .8fr) minmax(180px, 1fr); }
.derived-table-equals { color: var(--color-text-muted); font-weight: 700; text-align: center; }
.derived-table-row-action { display: inline-flex; width: 30px; height: 30px; padding: 0; border: 0; border-radius: var(--radius-control); align-items: center; justify-content: center; background: transparent; color: var(--color-danger); cursor: pointer; }
.derived-table-row-action:hover,
.derived-table-row-action:focus-visible { background: color-mix(in srgb, var(--color-danger) 12%, transparent); outline: none; }
.derived-table-add { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; }
.derived-table-error { color: var(--color-danger); font-size: .82rem; line-height: 1.4; }
.derived-table-modal [hidden] { display: none !important; }
@media (max-width: 760px) {
  .derived-table-modal .modal-dialog { width: calc(100vw - 16px); }
  .derived-table-primary-grid,
  .aggregate-grid,
  .calculated-grid,
  .join-grid,
  .merge-output-grid { grid-template-columns: 1fr; }
  .derived-table-equals { display: none; }
  .derived-table-row-action { justify-self: start; }
}
