.btn[data-ertlms-button-icon-ready="1"]:not(.btn-icon) {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    column-gap: .375rem !important;
}

.btn[data-ertlms-button-icon-ready="1"]:not(.btn-icon) .ertlms-btn-icon-svg {
    margin-right: 0 !important;
}

.btn .ertlms-btn-icon-svg {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
    vertical-align: -0.125em;
    pointer-events: none;
    stroke: currentColor;
}

.btn.btn-sm .ertlms-btn-icon-svg {
    width: .875rem;
    height: .875rem;
}

.btn.btn-lg .ertlms-btn-icon-svg {
    width: 1.125rem;
    height: 1.125rem;
}

/*
 * ASP.NET WebForms asp:Button renders as <input> and cannot contain a child SVG.
 * Keep the original input/postback control, but center the icon immediately
 * before the rendered text instead of pinning it to the far left edge.
 */
input.btn.ertlms-btn-icon-input {
    background-repeat: no-repeat !important;
    background-size: 1rem 1rem !important;
    background-origin: border-box !important;
    padding-left: 2rem !important;
    padding-right: 2rem !important;
}

input.btn.btn-sm.ertlms-btn-icon-input {
    background-size: .875rem .875rem !important;
    padding-left: 1.7rem !important;
    padding-right: 1.7rem !important;
}

input.btn.btn-lg.ertlms-btn-icon-input {
    background-size: 1.125rem 1.125rem !important;
    padding-left: 2.25rem !important;
    padding-right: 2.25rem !important;
}

input.btn.w-100.ertlms-btn-icon-input {
    width: 100%;
}
