dvn-button {
  display: inline-block;
  --margin: var(--spacing-unit) calc(1.5 * var(--spacing-unit));
  --button-cursor: pointer;
  --button-border-radius: var(--corner-radius);
  overflow: hidden;
  white-space: nowrap;
  /* Tint */
  /* Shape */
  /* Progress */
  /* Scale */
  /* View */
}
dvn-button.neutral {
  --base-color: var(--color-neutral);
  --base-color-light: var(--color-neutral-light);
  --base-color-lightest: var(--color-neutral-lightest);
}
dvn-button.primary {
  --base-color: var(--color-primary);
  --base-color-light: var(--color-primary-light);
  --base-color-lightest: var(--color-primary-lightest);
}
dvn-button.secondary {
  --base-color: var(--color-secondary);
  --base-color-light: var(--color-secondary-light);
  --base-color-lightest: var(--color-secondary-lightest);
}
dvn-button.warning {
  --base-color: var(--color-warning);
  --base-color-light: var(--color-warning-light);
  --base-color-lightest: var(--color-warning-lightest);
}
dvn-button.danger {
  --base-color: var(--color-danger);
  --base-color-light: var(--color-danger-light);
  --base-color-lightest: var(--color-danger-lightest);
}
dvn-button.circle {
  --padding: 0 !important;
  --button-border-radius: 50%;
  --button-width: var(--button-height);
}
dvn-button.rounded {
  --button-border-radius: var(--button-height);
}
dvn-button.square {
  --padding: 0 !important;
  --button-width: var(--button-height);
}
dvn-button.circle.progressing .label {
  display: none;
}
dvn-button.square.progressing .label {
  display: none;
}
dvn-button.x-small {
  --font-size: calc(var(--font-size-small));
  --button-height: 16px;
  --padding: var(--spacing-unit);
}
dvn-button.small {
  --font-size: var(--font-size-small);
  --button-height: 24px;
  --padding: calc(2 * var(--spacing-unit));
}
dvn-button.medium {
  --font-size: var(--font-size-medium);
  --button-height: 32px;
  --padding: calc(3 * var(--spacing-unit));
}
dvn-button.large {
  --font-size: var(--font-size-large);
  --button-height: 40px;
  --padding: calc(4 * var(--spacing-unit));
}
dvn-button.outline {
  --button-background: transparent;
  --button-border: 1px solid var(--base-color);
  --button-color: var(--base-color);
}
dvn-button.outline:not(.tag-mode):hover:not(.disabled) {
  --button-background: var(--base-color);
  --button-color: white;
}
dvn-button.outline:not(.tag-mode):active {
  --button-box-shadow: 0 2px 10px var(--base-color);
}
dvn-button.outline.disabled {
  --button-cursor: unset;
  --button-border: 1px solid var(--color-disabled);
  --button-color: var(--color-disabled);
}
dvn-button.flat {
  --button-background: transparent;
  --button-border: 1px solid transparent;
  --button-color: var(--base-color);
  --font-weight: bold;
}
dvn-button.flat:not(.tag-mode):hover:not(.disabled) {
  --button-color: white;
  --button-background: var(--base-color);
}
dvn-button.flat:not(.tag-mode):focus:not(:hover) {
  --button-box-shadow: 0 2px 10px var(--base-color);
  --button-color: var(--base-color);
}
dvn-button.flat:not(.tag-mode):active:not(.disabled) {
  --button-color: white;
  --button-box-shadow: 0 2px 10px var(--base-color);
}
dvn-button.flat.disabled {
  --button-cursor: unset;
  --button-color: var(--color-disabled);
}
dvn-button.solid {
  --button-background: var(--base-color);
  --button-border: 1px solid var(--base-color);
  --button-color: white;
}
dvn-button.solid:not(.tag-mode):hover:not(.disabled) {
  --button-background: var(--base-color-light);
  --button-border: 1px solid var(--base-color-light);
}
dvn-button.solid:not(.tag-mode):active:not(.disabled) {
  --button-box-shadow: 0 1px 10px var(--base-color-light);
}
dvn-button.solid.disabled {
  --button-cursor: unset;
  --button-background: var(--color-disabled);
  --button-border: 1px solid var(--color-disabled);
}
dvn-button.ghost {
  --font-weight: bold;
  --button-background: var(--base-color-lightest);
  --button-border: 1px solid var(--base-color-lightest);
  --button-color: var(--base-color);
}
dvn-button.ghost:hover:not(.disabled):not(.tag-mode) {
  --button-border: 1px solid var(--base-color);
}
dvn-button.ghost:not(.tag-mode):focus:not(:hover) {
  --button-box-shadow: 0 2px 10px var(--base-color);
  --button-color: var(--base-color);
}
dvn-button.ghost:not(.tag-mode):active:not(.disabled) {
  --button-box-shadow: 0 2px 10px var(--base-color);
}
dvn-button.ghost.disabled {
  --button-cursor: unset;
  --button-color: var(--color-disabled);
}
dvn-button.tag-mode {
  --button-cursor: unset;
  pointer-events: none;
}
dvn-button.tag-mode .label {
  cursor: unset;
}
dvn-button dvn-button .label {
  cursor: pointer !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
dvn-button.disabled .label {
  cursor: unset;
}
dvn-button.leaned {
  --margin: 0;
}
dvn-button.fill {
  --button-width: 100%;
}
dvn-button abbr[title] {
  border-bottom: none !important;
  cursor: inherit !important;
  text-decoration: none !important;
}
dvn-button button, dvn-button input {
  outline: none;
  cursor: var(--button-cursor);
  margin: var(--margin);
  border-radius: var(--button-border-radius);
  transition: all 0.3s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-family);
  font-size: var(--font-size);
  height: var(--button-height);
  width: var(--button-width);
  flex: 0 0 var(--button-width);
  max-width: 100%;
  padding: 0 var(--padding);
  background: var(--button-background);
  border: var(--button-border);
  color: var(--button-color);
  box-shadow: var(--button-box-shadow);
  font-weight: var(--font-weight);
}