.dg-btn, .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: var(--dg-radius-sm);
  border: var(--dg-border-width) solid var(--dg-border);
  background: var(--dg-bg-card);
  color: var(--dg-text-main);
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
  height: var(--dg-control-height);
  min-height: var(--dg-control-height);
  max-height: var(--dg-control-height);
  font-weight: 500;
}
.dg-btn:hover, .btn:hover {
  background: var(--dg-accent);
  border-color: var(--dg-border-strong);
}
.dg-btn:focus-visible {
  outline: 2px solid var(--dg-accent-strong);
  outline-offset: 2px;
}
.dg-btn:disabled, .btn:disabled {
  opacity: 0.5;
  pointer-events: none;
}
.dg-btn--ghost {
  background: transparent;
}
.dg-btn--ghost:hover {
  background: var(--dg-accent);
}
.dg-btn--danger {
  background: var(--dg-accent-error);
  border-color: var(--dg-accent-error);
  color: #7a2e2e;
}
.dg-btn--warning {
  background: var(--dg-accent-warning);
  border-color: var(--dg-accent-warning);
  color: #6a4b1e;
}
.dg-btn--success {
  background: var(--dg-accent-success);
  border-color: var(--dg-accent-success);
  color: #255449;
}

.dg-icon-disc {
  --dg-icon-disc-size: 2.3125rem;
  --dg-icon-disc-glyph: 1rem;
  display: inline-grid !important;
  width: var(--dg-icon-disc-size) !important;
  height: var(--dg-icon-disc-size) !important;
  flex: 0 0 var(--dg-icon-disc-size);
  place-items: center;
  border: var(--dg-border-width, 1px) solid var(--dg-border-strong, var(--dg-border));
  border-radius: var(--dl-radius-round, 50%);
  background: var(--dg-surface, var(--dg-bg-card));
  color: var(--dg-text, var(--dg-text-main));
  font-size: var(--dg-icon-disc-glyph) !important;
  line-height: 1;
  vertical-align: top !important;
}
.dg-icon-disc::before {
  width: var(--dg-icon-disc-glyph) !important;
  height: var(--dg-icon-disc-glyph) !important;
}
.dg-icon-disc--md {
  --dg-icon-disc-size: 1.8rem;
  --dg-icon-disc-glyph: .9rem;
}
.dg-icon-disc--sm {
  --dg-icon-disc-size: 1.5rem;
  --dg-icon-disc-glyph: .75rem;
}
