/* ==========================================================================
   Bimotix buttons
   ========================================================================== */

.bx-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;

    min-height: 42px;
    padding: 0.7rem 1.1rem;

    border: 1px solid transparent;
    border-radius: var(--bx-radius-md);

    font-family: inherit;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1;

    text-decoration: none;
    cursor: pointer;

    transition:
        color var(--bx-transition-fast),
        background-color var(--bx-transition-fast),
        border-color var(--bx-transition-fast),
        box-shadow var(--bx-transition-fast),
        transform var(--bx-transition-fast);
}

.bx-btn:hover {
    transform: translateY(-1px);
}

.bx-btn:active {
    transform: translateY(0);
}

.bx-btn:focus-visible {
    outline: none;
    box-shadow: var(--bx-focus-ring);
}

.bx-btn:disabled,
.bx-btn.disabled {
    opacity: 0.6;
    pointer-events: none;
    cursor: not-allowed;
}

/* Primary */

.bx-btn-primary {
    color: #ffffff;
    background: var(--bx-gradient-primary);

    border-color: var(--bx-primary);

    box-shadow: var(--bx-shadow-primary);
}

.bx-btn-primary:hover,
.bx-btn-primary:focus {
    color: #ffffff;
    background: var(--bx-primary-hover);

    border-color: var(--bx-primary-hover);

    box-shadow:
        0 14px 30px rgba(37, 99, 235, 0.28);
}

/* Secondary */

.bx-btn-secondary {
    color: var(--bx-text-secondary);
    background: var(--bx-surface);

    border-color: var(--bx-border-strong);
}

.bx-btn-secondary:hover,
.bx-btn-secondary:focus {
    color: var(--bx-text-primary);
    background: var(--bx-surface-secondary);

    border-color: var(--bx-border-strong);
}

/* Outline primary */

.bx-btn-outline-primary {
    color: var(--bx-primary);
    background: transparent;

    border-color: var(--bx-primary);
}

.bx-btn-outline-primary:hover,
.bx-btn-outline-primary:focus {
    color: #ffffff;
    background: var(--bx-primary);

    border-color: var(--bx-primary);
}

/* Success */

.bx-btn-success {
    color: #ffffff;
    background: var(--bx-success);

    border-color: var(--bx-success);
}

.bx-btn-success:hover,
.bx-btn-success:focus {
    color: #ffffff;

    filter: brightness(0.94);
}

/* Danger */

.bx-btn-danger {
    color: #ffffff;
    background: var(--bx-danger);

    border-color: var(--bx-danger);
}

.bx-btn-danger:hover,
.bx-btn-danger:focus {
    color: #ffffff;

    filter: brightness(0.94);
}

/* Sizes */

.bx-btn-sm {
    min-height: 34px;
    padding: 0.5rem 0.8rem;

    font-size: 0.8rem;
}

.bx-btn-lg {
    min-height: 52px;
    padding: 0.85rem 1.25rem;

    font-size: 1rem;
}

/* Full width */

.bx-btn-block {
    width: 100%;
}

/* Icon-only buttons */

.bx-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    min-width: 48px;
    padding: 0;
}

/* Password toggle */

.bx-password-toggle {
    color: var(--bx-text-muted);
    background: var(--bx-surface);

    border-color: var(--bx-border-strong);
}

.bx-password-toggle:hover,
.bx-password-toggle:focus {
    color: var(--bx-primary);
    background: var(--bx-primary-soft);

    border-color: var(--bx-primary-lighter);
}

/* Language toggle */

.bx-language-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;

    border-radius: var(--bx-radius-pill);
}