.bgl_btn,
.bgl_flatBtn,
.bgl_btn-icon {
    font-family: inherit;
    white-space: nowrap;
    cursor: pointer;
    box-sizing: border-box;
    user-select: none;
    border: none;
    transition: var(--bgl-transition);
    border-radius: var(--bgl-btn-border-radius);
    line-height: var(--bgl-btn-height);
    font-size: var(--bgl-input-font-size);
    display: inline-block;
    height: var(--bgl-btn-height);
    padding: 0;
}

/*
 * Remove the lingering focus ring after a MOUSE click, while preserving it for
 * KEYBOARD navigation (accessibility). Without this, clicking a button leaves a
 * visible focus outline that "sticks" until the user clicks elsewhere — most
 * noticeable on dropdown menu items and the dialog close button.
 *
 * :focus-visible is set by the browser only for keyboard/programmatic focus,
 * so :focus:not(:focus-visible) targets pointer focus exclusively.
 */
.bgl_btn:not(.outline):not(.outline-dashed):not(.outline-primary):not(.bgl_pill-border):focus:not(:focus-visible),
.bgl_flatBtn:not(.outline):not(.outline-dashed):not(.outline-primary):not(.bgl_pill-border):focus:not(:focus-visible),
.bgl_btn-icon:not(.outline):not(.outline-dashed):not(.outline-primary):not(.bgl_pill-border):focus:not(:focus-visible),
.btn-close:focus:not(:focus-visible) {
    outline: none;
}

.btn-close {
    margin-top: -20px;
    margin-inline-end: -20px;
    margin-inline-start: auto;
    margin-bottom: 15px;
    transition: var(--bgl-transition);
    height: 30px;
    width: 30px;
    opacity: 0.6;
    cursor: pointer;
    border-radius: 100%;
    outline: 2px solid transparent;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-close:hover {
    background: var(--bgl-gray-light);
    opacity: 1;
    filter: var(--bgl-hover-filter);
}

.btn-close:active {
    background: var(--bgl-gray);
    filter: var(--bgl-active-filter);
}

.btn-close::before {
    content: 'close';
    font-family: 'Material Symbols Outlined', serif;
}


.hover {
    cursor: pointer;
    transition: all 400ms ease;
}

.hover:hover {
    filter: var(--bgl-hover-filter);
}


.hover:active {
    filter: var(--bgl-active-filter);
}

.hover-transparent:hover,
.hover-transparent:active {
    background: var(--bgl-black-10);
}

.line-hover,
.underline-hover,
.hover-line,
.hover-underline {
    cursor: pointer;
    transition: all 400ms ease;
    position: relative;
    border-bottom: 1px solid transparent !important;
    border-radius: 0 !important;
}

.line-hover:hover,
.underline-hover:hover,
.hover-line:hover,
.hover-underline:hover {
    border-bottom: 1px solid currentColor !important;
}

.hover-opacity-1,
.hover-opacity-2,
.hover-opacity-3,
.hover-opacity-4,
.hover-opacity-5,
.hover-opacity-6,
.hover-opacity-7,
.hover-opacity-8,
.hover-opacity-9,
.hover-opacity-10 {
    transition: var(--bgl-transition);
}

.hover-opacity-1:hover,
.hover-opacity-1:active,
.hover-opacity-1:focus {
    opacity: 0.1;
}

.hover-opacity-2:hover,
.hover-opacity-2:active,
.hover-opacity-2:focus {
    opacity: 0.2;
}


.hover-opacity-3:hover,
.hover-opacity-3:active,
.hover-opacity-3:focus {
    opacity: 0.3;
}

.hover-opacity-4:hover,
.hover-opacity-4:active,
.hover-opacity-4:focus {
    opacity: 0.4;
}

.hover-opacity-5:hover,
.hover-opacity-5:active,
.hover-opacity-5:focus {
    opacity: 0.5;
}

.hover-opacity-6:hover,
.hover-opacity-6:active,
.hover-opacity-6:focus {
    opacity: 0.6;
}

.hover-opacity-7:hover,
.hover-opacity-7:active,
.hover-opacity-7:focus {
    opacity: 0.7;
}

.hover-opacity-8:hover,
.hover-opacity-8:active,
.hover-opacity-8:focus {
    opacity: 0.8;
}

.hover-opacity-9:hover,
.hover-opacity-9:active,
.hover-opacity-9:focus {
    opacity: 0.9;
}

.hover-opacity-10:hover,
.hover-opacity-10:active,
.hover-opacity-10:focus {
    opacity: 1;
}

.border {
    border: 1px solid var(--bgl-border-color);
}

.border-1 {
    border-width: 1px !important;
    border-style: solid !important;
}

.border-2 {
    border-width: 2px !important;
    border-style: solid !important;
}

.border-3 {
    border-width: 3px !important;
    border-style: solid !important;
}

.border-4 {
    border-width: 4px !important;
    border-style: solid !important;
}

.outline {
    outline: 1px solid var(--bgl-border-color);
}

.outline-dashed {
    outline: 2px dashed var(--bgl-border-color);
}

.outline-primary {
    outline: 1px solid var(--bgl-primary);
}

.rotate-270 {
    transform: rotate(270deg);
}

.rotate-180 {
    transform: rotate(180deg);
}

[dir="rtl"] .rotate-180-rtl,
[dir="rtl"] .rtl-rotate-180,
[dir="rtl"] .rotate-rtl,
[dir="rtl"] .rtl-rotate,
[dir="rtl"] .rtl-180 {
    transform: rotate(180deg);
}

.rotate-90 {
    transform: rotate(90deg);
}

.rotate-0 {
    transform: rotate(0deg) !important;
}

@media screen and (max-width: 910px) {
    .bgl_btn {
        padding: 0 20px;
    }

    .m_border {
        border: 1px solid var(--bgl-border-color);
    }

    .m_rotate-270 {
        transform: rotate(270deg);
    }


    [dir="rtl"] .m_rotate-180-rtl,
    [dir="rtl"] .m_rtl-rotate-180,
    [dir="rtl"] .m_rotate-rtl,
    [dir="rtl"] .m_rtl-rotate,
    [dir="rtl"] .m_rtl-180 {
        transform: rotate(180deg);
    }

    .m_rotate-180 {
        transform: rotate(180deg);
    }

    .m_rotate-90 {
        transform: rotate(90deg);
    }

    .m_rotate-0 {
        transform: rotate(0deg) !important;
    }

    .m_border-1 {
        border-width: 1px !important;
        border-style: solid !important;
    }

    .m_border-2 {
        border-width: 2px !important;
        border-style: solid !important;
    }

    .m_border-3 {
        border-width: 3px !important;
        border-style: solid !important;
    }

    .m_border-4 {
        border-width: 4px !important;
        border-style: solid !important;
    }
}

.ripple {
    position: absolute;
    border-radius: 50%;
    transform: scale(0);
    background: rgba(0, 0, 0, 0.3);
    pointer-events: none;
    animation: rippleEffect 0.6s ease-out;
}

@keyframes rippleEffect {
    to {
        transform: scale(4);
        opacity: 0;
    }
}