.o-btn {
  --btn-color: var(--o-color-info2);
  --btn-color-hover: var(--o-color-info1);
  --btn-color-active: var(--o-color-info1);
  --btn-bd-color: var(--o-color-control1);
  --btn-bd-color-hover: var(--o-color-control2);
  --btn-bd-color-active: var(--o-color-control3);
  --btn-bd-color-disabled: var(--o-color-control1);
}
.o-btn.o-btn-solid {
  --btn-color: var(--o-color-white);
  --btn-color-hover: var(--o-color-white);
  --btn-color-active: var(--o-color-white);
  --btn-color-disabled: var(--o-color-white);
  --btn-bg-color: var(--o-color-control1-light);
  --btn-bg-color-hover: var(--o-color-control2-light);
  --btn-bg-color-active: var(--o-color-control3-light);
  --btn-bd-color-disabled: var(--o-color-control4-light);
  --btn-bd-color: var(--o-color-control1-light);
  --btn-bd-color-hover: var(--o-color-control2-light);
  --btn-bd-color-active: var(--o-color-control3-light);
  --btn-bg-color-disabled: var(--o-color-control4-light);
}
.o-btn.o-btn-text {
  --btn-bg-color-hover: var(--o-color-control1-light);
  --btn-bg-color-active: var(--o-color-control2-light);
}

.o-btn-normal {
  --btn-color-disabled: var(--o-color-info4);
}
.o-btn-normal.o-btn-solid {
  --btn-color: var(--o-color-info2);
  --btn-color-hover: var(--o-color-info2);
  --btn-color-active: var(--o-color-info2);
  --btn-color-disabled: var(--o-color-info4);
}

.o-btn-primary {
  --btn-color: var(--o-color-primary1);
  --btn-color-hover: var(--o-color-primary2);
  --btn-color-active: var(--o-color-primary3);
  --btn-color-disabled: var(--o-color-primary4);
  --btn-bd-color: var(--o-color-primary1);
  --btn-bd-color-hover: var(--o-color-primary2);
  --btn-bd-color-active: var(--o-color-primary3);
  --btn-bd-color-disabled: var(--o-color-primary4);
}
.o-btn-primary.o-btn-solid {
  --btn-bg-color: var(--o-color-primary1);
  --btn-bg-color-hover: var(--o-color-primary2);
  --btn-bg-color-active: var(--o-color-primary3);
  --btn-bg-color-disabled: var(--o-color-primary4);
  --btn-bd-color: var(--o-color-primary1);
  --btn-bd-color-hover: var(--o-color-primary2);
  --btn-bd-color-active: var(--o-color-primary3);
  --btn-bd-color-disabled: var(--o-color-primary4);
}
.o-btn-primary.o-btn-text {
  --btn-bg-color-hover: var(--o-color-primary1-light);
  --btn-bg-color-active: var(--o-color-primary2-light);
}

.o-btn-success {
  --btn-color: var(--o-color-success1);
  --btn-color-hover: var(--o-color-success2);
  --btn-color-active: var(--o-color-success3);
  --btn-color-disabled: var(--o-color-success4);
  --btn-bd-color: var(--o-color-success1);
  --btn-bd-color-hover: var(--o-color-success2);
  --btn-bd-color-active: var(--o-color-success3);
  --btn-bd-color-disabled: var(--o-color-success4);
}
.o-btn-success.o-btn-solid {
  --btn-bg-color: var(--o-color-success1);
  --btn-bg-color-hover: var(--o-color-success2);
  --btn-bg-color-active: var(--o-color-success3);
  --btn-bg-color-disabled: var(--o-color-success4);
  --btn-bd-color: var(--o-color-success1);
  --btn-bd-color-hover: var(--o-color-success2);
  --btn-bd-color-active: var(--o-color-success3);
}
.o-btn-success.o-btn-text {
  --btn-bg-color-hover: var(--o-color-success1-light);
  --btn-bg-color-active: var(--o-color-success2-light);
}

.o-btn-warning {
  --btn-color: var(--o-color-warning1);
  --btn-color-hover: var(--o-color-warning2);
  --btn-color-active: var(--o-color-warning3);
  --btn-color-disabled: var(--o-color-warning4);
  --btn-bd-color: var(--o-color-warning1);
  --btn-bd-color-hover: var(--o-color-warning2);
  --btn-bd-color-active: var(--o-color-warning3);
  --btn-bd-color-disabled: var(--o-color-warning4);
}
.o-btn-warning.o-btn-solid {
  --btn-bg-color: var(--o-color-warning1);
  --btn-bg-color-hover: var(--o-color-warning2);
  --btn-bg-color-active: var(--o-color-warning3);
  --btn-bg-color-disabled: var(--o-color-warning4);
  --btn-bd-color: var(--o-color-warning1);
  --btn-bd-color-hover: var(--o-color-warning2);
  --btn-bd-color-active: var(--o-color-warning3);
}
.o-btn-warning.o-btn-text {
  --btn-bg-color-hover: var(--o-color-warning1-light);
  --btn-bg-color-active: var(--o-color-warning2-light);
}
.o-btn-warning.o-btn-disabled {
  --btn-color: var(--o-color-warning4);
  --btn-bg-color: var(--o-color-warning4);
  --btn-bd-color: var(--o-color-warning4);
}

.o-btn-danger {
  --btn-color: var(--o-color-danger1);
  --btn-color-hover: var(--o-color-danger2);
  --btn-color-active: var(--o-color-danger3);
  --btn-color-disabled: var(--o-color-danger4);
  --btn-bd-color: var(--o-color-danger1);
  --btn-bd-color-hover: var(--o-color-danger2);
  --btn-bd-color-active: var(--o-color-danger3);
  --btn-bd-color-disabled: var(--o-color-danger4);
}
.o-btn-danger.o-btn-solid {
  --btn-bg-color: var(--o-color-danger1);
  --btn-bg-color-hover: var(--o-color-danger2);
  --btn-bg-color-active: var(--o-color-danger3);
  --btn-bg-color-disabled: var(--o-color-danger4);
  --btn-bd-color: var(--o-color-danger1);
  --btn-bd-color-hover: var(--o-color-danger2);
  --btn-bd-color-active: var(--o-color-danger3);
}
.o-btn-danger.o-btn-text {
  --btn-bg-color-hover: var(--o-color-danger1-light);
  --btn-bg-color-active: var(--o-color-danger2-light);
}

.o-btn-small {
  --btn-radius: var(--o-radius_control-xs);
  --btn-gap: 2px;
  --btn-padding: 0 11px;
  --btn-icon-size: var(--o-icon_size-xs);
  --btn-height: var(--o-control_size-s);
}

.o-btn-medium {
  --btn-min-width: 80px;
  --btn-radius: var(--o-radius_control-s);
  --btn-gap: 8px;
  --btn-padding: 0 15px;
  --btn-icon-size: var(--o-icon_size-xs);
  --btn-height: var(--o-control_size-m);
}

.o-btn-large {
  --btn-min-width: 96px;
  --btn-radius: var(--o-radius_control-s);
  --btn-gap: 8px;
  --btn-padding: 0 23px;
  --btn-icon-size: var(--o-icon_size-m);
  --btn-height: var(--o-control_size-l);
}

.o-btn-icon-only {
  --btn-padding: 0;
}

.o-btn-round-pill {
  --btn-radius: var(--o-control_size-l);
  --btn-gap: 6px;
}

.o-btn-text {
  --btn-bd-color-disabled: transparent;
}

.o-btn {
  outline: none;
  background-color: transparent;
  border: 1px solid transparent;
  transition: all var(--o-duration-s) var(--o-easing-standard);
  white-space: nowrap;
  text-decoration: none;
  border-radius: var(--btn-radius);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: var(--btn-max-width);
  min-width: var(--btn-min-width);
  padding: var(--btn-padding);
  height: var(--btn-height);
  cursor: pointer;
}
.o-btn.o-btn-icon-only {
  width: var(--btn-height);
}

.o-btn-outline {
  color: var(--btn-color);
  border: 1px solid var(--btn-bd-color);
}
@media (hover: hover) {
  .o-btn-outline:hover {
    color: var(--btn-color-hover);
    border: 1px solid var(--btn-bd-color-hover);
  }
}
.o-btn-outline:active {
  color: var(--btn-color-active);
  border: 1px solid var(--btn-bd-color-active);
}
.o-btn-outline:focus-visible {
  border: 1px solid var(--btn-bd-color-active);
}

.o-btn-solid {
  color: var(--btn-color);
  border: 1px solid var(--btn-bd-color);
  background-color: var(--btn-bg-color);
}
@media (hover: hover) {
  .o-btn-solid:hover {
    color: var(--btn-color-hover);
    border: 1px solid var(--btn-bd-color-hover);
    background-color: var(--btn-bg-color-hover);
  }
}
.o-btn-solid:active {
  color: var(--btn-color-active);
  border: 1px solid var(--btn-bd-color-active);
  background-color: var(--btn-bg-color-active);
}
.o-btn-solid:focus-visible {
  border: 1px solid var(--btn-bd-color-active);
}

.o-btn-text {
  color: var(--btn-color);
  background-color: transparent;
}
@media (hover: hover) {
  .o-btn-text:hover {
    color: var(--btn-color-hover);
    background-color: var(--btn-bg-color-hover);
  }
}
.o-btn-text:active {
  color: var(--btn-color-active);
  background-color: var(--btn-bg-color-active);
}

.o-btn-disabled, .o-btn-disabled:active, .o-btn-disabled:hover, .o-btn-disabled:focus-visible {
  cursor: not-allowed;
  color: var(--btn-color-disabled);
  border: 1px solid var(--btn-bd-color-disabled);
  background-color: var(--btn-bg-color-disabled);
}

.o-btn-small {
  font-size: var(--o-font_size-tip1);
  line-height: var(--o-line_height-tip1);
}

.o-btn-medium {
  font-size: var(--o-font_size-tip1);
  line-height: var(--o-line_height-tip1);
}

.o-btn-large {
  font-size: var(--o-font_size-text1);
  line-height: var(--o-line_height-text1);
}

.o-btn-prefix {
  display: inline-flex;
  align-items: center;
  margin-right: var(--btn-gap);
  font-size: var(--btn-icon-size);
}
.o-btn-icon-only .o-btn-prefix {
  margin-right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.o-btn-suffix {
  display: inline-flex;
  align-items: center;
  margin-left: var(--btn-gap);
  font-size: var(--btn-icon-size);
}

@media (min-width: 1201px) and (max-width: 1440px) {
  .o-btn-large {
    --btn-padding: 0 15px;
    --btn-icon-size: var(--o-icon_size-s);
    font-size: var(--o-font_size-tip1);
    line-height: var(--o-line_height-tip1);
  }
}