/**
 * LSM unified button geometry (invoice card reference).
 * Adjusts shape, padding, radius, and alignment only — not colors.
 */

:root {
    --lsm-btn-radius: 10px;
    --lsm-btn-padding-y: 0.6rem;
    --lsm-btn-padding-x: 1.15rem;
    --lsm-btn-font-size: 0.84rem;
    --lsm-btn-font-weight: 600;
    --lsm-btn-gap: 0.5rem;
    --lsm-btn-line-height: 1.25;
}

.btn:not(.btn-close):not(.navbar-toggler):not(.inv-view-toggle__btn):not(.page-link):not(.slick-arrow):not(.owl-prev):not(.owl-next):not(.play-btn):not(.rounded-circle),
button.submit:not(.inv-view-toggle__btn),
a.btn:not(.dashboard-nav-card):not(.inv-view-toggle__btn),
input.btn[type='submit']:not(.btn-close),
.inv-card__download,
.inv-data-table__btn,
.purchase-history-list .purchase-history-detail .btn-receipt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--lsm-btn-gap);
    padding: var(--lsm-btn-padding-y) var(--lsm-btn-padding-x);
    border-radius: var(--lsm-btn-radius) !important;
    font-size: var(--lsm-btn-font-size);
    font-weight: var(--lsm-btn-font-weight);
    line-height: var(--lsm-btn-line-height);
    text-align: center;
    vertical-align: middle;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease;
}

.btn-sm:not(.btn-close):not(.navbar-toggler):not(.inv-view-toggle__btn),
.inv-data-table__btn {
    padding: 0.45rem 0.85rem;
    font-size: 0.8rem;
}

.btn-lg:not(.btn-close):not(.navbar-toggler),
.btn.btn-lg.bg-gradient-primary {
    padding: 0.7rem 1.35rem;
    font-size: 0.95rem;
}

.btn-md:not(.btn-close):not(.navbar-toggler) {
    padding: 0.55rem 1.05rem;
    font-size: 0.875rem;
}

.btn:not(.btn-close):not(.navbar-toggler):not(.inv-view-toggle__btn):not(:disabled):not(.disabled):hover,
button.submit:not(:disabled):hover,
a.btn:not(.dashboard-nav-card):not(.disabled):hover,
.inv-card__download:hover,
.inv-data-table__btn:hover,
.purchase-history-list .purchase-history-detail .btn-receipt:hover {
    transform: translateY(-1px);
}

.btn:not(.btn-close):not(.navbar-toggler):not(.inv-view-toggle__btn):active,
button.submit:active,
a.btn:not(.dashboard-nav-card):active,
.inv-card__download:active,
.inv-data-table__btn:active {
    transform: translateY(0);
}

.btn:not(.btn-close):not(.navbar-toggler):not(.inv-view-toggle__btn):focus,
button.submit:focus,
a.btn:not(.dashboard-nav-card):focus,
.inv-card__download:focus,
.inv-data-table__btn:focus {
    box-shadow: none;
}

.btn:not(.btn-close):not(.navbar-toggler):not(.inv-view-toggle__btn):focus-visible,
button.submit:focus-visible,
a.btn:not(.dashboard-nav-card):focus-visible,
.inv-card__download:focus-visible,
.inv-data-table__btn:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.btn:disabled,
.btn.disabled,
button.submit:disabled {
    transform: none;
    cursor: not-allowed;
}

.w-100.btn,
.btn.w-100 {
    width: 100%;
}

/* Inline loaders inside compact buttons (e.g. add to cart) */
.btn.add-to-cart,
a.btn.add-to-cart {
    position: relative;
}

.btn.add-to-cart .spinner,
a.btn.add-to-cart .spinner,
.red_bg.add-to-cart .spinner {
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
    position: static !important;
    vertical-align: middle;
    animation: none !important;
    -webkit-animation: none !important;
}

.btn.add-to-cart .spinner img,
a.btn.add-to-cart .spinner img,
.red_bg.add-to-cart .spinner img {
    width: 22px !important;
    height: 22px !important;
    margin: 0 !important;
    display: block;
}

.btn.add-to-cart:disabled,
a.btn.add-to-cart.disabled {
    opacity: 0.85;
    pointer-events: none;
}
