.ui-stack {
  display: grid;
  gap: var(--ds-space-4);
}

.ui-stack-sm {
  display: grid;
  gap: var(--ds-space-2);
}

.ui-cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-space-3);
  align-items: center;
}

.ui-cluster-end {
  justify-content: flex-end;
}

.ui-grid {
  display: grid;
  gap: var(--ds-space-4);
}

.ui-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ui-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ui-grid-auto {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.ui-panel {
  background: var(--ds-color-surface);
  border: 1px solid var(--ds-color-line-soft);
  border-radius: var(--ds-radius-xl);
  box-shadow: var(--ds-shadow-sm);
  padding: var(--ds-space-5);
}

.ui-table-wrap {
  overflow: auto;
  border: 1px solid var(--ds-color-line-soft);
  border-radius: var(--ds-radius-lg);
  background: var(--ds-color-surface);
}

@media (max-width: 860px) {
  .ui-grid-2,
  .ui-grid-3 {
    grid-template-columns: 1fr;
  }

  .ui-cluster-end {
    justify-content: stretch;
  }
}
