.min-100-svh {
    min-height: 100svh !important;
}

.svh-100 {
    height: 100svh !important;
}

*:has(>.hide-parent) {
    display: none !important;
    visibility: hidden !important;
}

.bi {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 1.5em;
    height: 1.5em;
    fill: currentColor;
}

.alert p:last-child {
    margin-bottom: 0 !important;
}

.border-dashed {
    border-style: dashed !important;
}

.border-dotted {
    border-style: dotted !important;
}

.border-double {
    border-style: double !important;
}

.border-groove {
    border-style: groove !important;
}

.border-hidden {
    border-style: hidden !important;
}

.border-inset {
    border-style: inset !important;
}

.border-outset {
    border-style: outset !important;
}

.border-ridge {
    border-style: ridge !important;
}

.border-solid {
    border-style: solid !important;
}

[role="tabpanel"].fade:not(.show) {
    display: none !important;
    visibility: hidden !important;
}

.opacity-50-hover:hover {
    opacity: .5 !important;
}

.opacity-75-hover:hover {
    opacity: .75 !important;
}

.opacity-100-hover:hover {
    opacity: 1 !important;
}

.unselectable {
    cursor: default !important;
    user-select: none !important;
}

.bg-blur {
    --blur-radius: 1rem;
    backdrop-filter: blur(var(--blur-radius));
}

.bg-tertiary {
    background: var(--bs-tertiary-bg);
}

.fw-100 {
    font-weight: 100 !important;
}

.fw-200 {
    font-weight: 200 !important;
}

.fw-300 {
    font-weight: 300 !important;
}

.fw-400 {
    font-weight: 400 !important;
}

.fw-500 {
    font-weight: 500 !important;
}

.fw-600 {
    font-weight: 600 !important;
}

.fw-700 {
    font-weight: 700 !important;
}

.fw-800 {
    font-weight: 800 !important;
}

.fw-900 {
    font-weight: 900 !important;
}

.fw-1000 {
    font-weight: 1000 !important;
}

.shadow-inset {
    box-shadow: var(--bs-box-shadow-inset);
}

.no-pointer-events,
.pointer-events-target * {
    pointer-events: none;
    user-select: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.lead {
    text-wrap: balance;
}

.wide-tooltips .tooltip {
    --bs-tooltip-max-width: var(--bs-breakpoint-sm) !important;
}