.bz-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 180px;
    padding: 2rem;
    color: var(--bz-text-muted);
    text-align: center;
    background: var(--bz-surface-soft);
    border: 1px dashed var(--bz-border-strong);
    border-radius: var(--bz-radius-md);
}

.bz-empty-title {
    color: var(--bz-text-soft);
    font-weight: 700;
}

.bz-loading {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    color: var(--bz-text-muted);
}

.bz-spinner {
    width: 20px;
    height: 20px;
    border: 2px solid var(--bz-border);
    border-top-color: var(--bz-primary);
    border-radius: 50%;
    animation: bz-spin .75s linear infinite;
}

@keyframes bz-spin {
    to { transform: rotate(360deg); }
}

.bz-text-muted { color: var(--bz-text-muted) !important; }
.bz-text-primary { color: var(--bz-primary) !important; }
.bz-text-success { color: var(--bz-success) !important; }
.bz-text-danger { color: var(--bz-danger) !important; }
.bz-text-warning { color: var(--bz-warning) !important; }

.bz-w-100 { width: 100% !important; }
.bz-m-0 { margin: 0 !important; }
.bz-mt-1 { margin-top: .25rem !important; }
.bz-mt-2 { margin-top: .5rem !important; }
.bz-mt-3 { margin-top: 1rem !important; }
.bz-mb-1 { margin-bottom: .25rem !important; }
.bz-mb-2 { margin-bottom: .5rem !important; }
.bz-mb-3 { margin-bottom: 1rem !important; }
.bz-gap-1 { gap: .25rem !important; }
.bz-gap-2 { gap: .5rem !important; }
.bz-gap-3 { gap: 1rem !important; }

.bz-hide-mobile {
    display: initial;
}

.bz-show-mobile {
    display: none;
}

@media (max-width: 576px) {
    .bz-hide-mobile {
        display: none !important;
    }

    .bz-show-mobile {
        display: initial !important;
    }
}
