.vc-btn-base {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 100%;
    border: 1px solid transparent;
    border-radius: var(--radius-sm, 8px);
    font-family: var(--font-primary);
    text-align: start;
    transition: 50ms ease-in;
    transition-property: background-color, color, border-color, opacity;
    background: var(--control-secondary-background-default);
    color: var(--text-default);
    white-space: nowrap;

    &:hover {
        transition: .15s ease-out;
    }

    &:disabled {
        opacity: .5;
        pointer-events: none;
        cursor: not-allowed;
    }

    &:focus-visible {
        /* stylelint-disable-next-line custom-property-pattern */
        box-shadow: 0 0 0 4px var(--__adaptive-focus-ring-color, var(--border-focus, #00b0f4));
    }
}

.vc-btn-min,
.vc-btn-xs {
    padding: 3px 7px;
    min-height: 22px;
    min-width: unset;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.3333;
}

.vc-btn-xs {
    min-width: 60px;
}

.vc-btn-small {
    padding: 3px 11px;
    min-height: 30px;
    min-width: 60px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2857;
}

.vc-btn-medium {
    padding: 7px 15px;
    min-height: 38px;
    min-width: 100px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.25;
}

.vc-btn-iconOnly {
    width: 32px;
    height: 32px;
    min-width: unset;
    min-height: unset;
    padding: 0;
    background-color: transparent;
    border-color: transparent;

    &:hover {
        background-color: var(--control-icon-only-background-hover);
        border-color: var(--control-icon-only-border-hover);
    }

    &:active {
        background-color: var(--control-icon-only-background-active);
        border-color: var(--control-icon-only-border-active);
    }
}

.vc-btn-primary {
    background-color: var(--control-primary-background-default);
    border-color: var(--control-primary-border-default);
    color: var(--control-primary-text-default);

    &:hover {
        background-color: var(--control-primary-background-hover);
        border-color: var(--control-primary-border-hover);
        color: var(--control-primary-text-hover);
    }
}

.vc-btn-secondary,
.vc-btn-link {
    background-color: var(--control-secondary-background-default);
    border-color: var(--control-secondary-border-default);
    color: var(--control-secondary-text-default);

    &:hover {
        background-color: var(--control-secondary-background-hover);
        border-color: var(--control-secondary-border-hover);
        color: var(--control-secondary-text-hover);
    }
}

.vc-btn-dangerPrimary {
    background-color: var(--control-critical-primary-background-default);
    border-color: var(--control-critical-primary-border-default);
    color: var(--control-critical-primary-text-default);

    &:hover {
        background-color: var(--control-critical-primary-background-hover);
        border-color: var(--control-critical-primary-border-hover);
        color: var(--control-critical-primary-text-hover);
    }
}

.vc-btn-dangerSecondary {
    background-color: var(--control-critical-secondary-background-default);
    border-color: var(--control-critical-secondary-border-default);
    color: var(--control-critical-secondary-text-default);

    &:hover {
        background-color: var(--control-critical-secondary-background-hover);
        border-color: var(--control-critical-secondary-border-hover);
        color: var(--control-critical-secondary-text-hover);
    }
}

.vc-btn-overlayPrimary {
    background-color: var(--control-overlay-primary-background-default);
    border-color: var(--control-overlay-primary-border-default);
    color: var(--control-overlay-primary-text-default);

    &:hover {
        background-color: var(--control-overlay-primary-background-hover);
        border-color: var(--control-overlay-primary-border-hover);
        color: var(--control-overlay-primary-text-hover);
    }
}

.vc-btn-positive {
    background-color: var(--control-connected-background-default, var(--green-430));
    color: var(--white);

    &:hover {
        background-color: var(--control-connected-background-hover, var(--green-460));
    }
}

.vc-btn-none {
    background-color: transparent;
    border-color: transparent;
    color: var(--control-icon-only-icon-default);

    &:hover {
        background-color: var(--control-icon-only-background-hover);
        border-color: var(--control-icon-only-border-hover);
        color: var(--control-icon-only-icon-hover);
    }
}

.vc-btn-link-icon {
    width: 0.875em;
    height: 0.875em;
    margin-left: 8px;
    flex-shrink: 0;
}

.vc-text-btn-base {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-4, 4px);
    background: initial;
    color: var(--text-default);
    font-size: medium;
    font-weight: 400;
    margin: 0;
    padding: 0;
    text-align: start;
    text-decoration: none;
    max-width: 100%;
    white-space: nowrap;

    &:disabled {
        opacity: 0.5;
    }

    &:hover {
        text-decoration: underline;
    }

    &:focus-visible {
        /* stylelint-disable-next-line custom-property-pattern */
        box-shadow: 0 0 0 4px var(--__adaptive-focus-ring-color, var(--border-focus, #00b0f4));
    }
}

.vc-text-btn-primary {
    color: var(--text-brand);
}

.vc-text-btn-secondary {
    color: var(--text-strong, var(--text-default));
}

.vc-text-btn-danger {
    color: var(--text-feedback-critical);
}

.vc-text-btn-link {
    color: var(--text-link);
}