/* Global Typography System */
:root {
    --fs-xs: 0.75rem;
    /* 12px */
    --fs-sm: 0.875rem;
    /* 14px */
    --fs-base: 1rem;
    /* 16px */
    --fs-lg: 1.125rem;
    /* 18px */
    --fs-xl: 1.25rem;
    /* 20px */
    --fs-2xl: 1.5rem;
    /* 24px */
    --fs-3xl: 1.875rem;
    /* 30px */
    --fs-4xl: 2.25rem;
    /* 36px */

    --fw-normal: 400;
    --fw-medium: 500;
    --fw-semibold: 600;
    --fw-bold: 700;
    --fw-extra-bold: 800;
}

/* Utility Classes */
.text-xs {
    font-size: var(--fs-xs) !important;
}

.text-sm {
    font-size: var(--fs-sm) !important;
}

.text-base {
    font-size: var(--fs-base) !important;
}

.text-lg {
    font-size: var(--fs-lg) !important;
}

.text-xl {
    font-size: var(--fs-xl) !important;
}

.text-2xl {
    font-size: var(--fs-2xl) !important;
}

.text-3xl {
    font-size: var(--fs-3xl) !important;
}

/* Global legacy class standardization */
.extra-small {
    font-size: var(--fs-xs) !important;
}

.small {
    font-size: var(--fs-sm) !important;
}

/* Dashboard Scaling (1.25x) */
.dashboard-scale {
    font-size: 1rem !important;
    /* This scales em-based units inside */
}

.dashboard-scale .extra-small {
    font-size: var(--fs-xs) !important;
}

.dashboard-scale .small {
    font-size: var(--fs-sm) !important;
}

.dashboard-scale h1 {
    font-size: var(--fs-4xl) !important;
}

.dashboard-scale h2 {
    font-size: var(--fs-3xl) !important;
}

.dashboard-scale h3 {
    font-size: var(--fs-2xl) !important;
}

.dashboard-scale h4 {
    font-size: var(--fs-xl) !important;
}

.dashboard-scale h5 {
    font-size: var(--fs-lg) !important;
}

.dashboard-scale h6 {
    font-size: var(--fs-base) !important;
}

.dashboard-scale .btn,
.dashboard-scale .form-control,
.dashboard-scale .form-select,
.dashboard-scale .input-group-text,
.dashboard-scale .breadcrumb-item {
    font-size: var(--fs-sm) !important;
}

.dashboard-scale .badge {
    font-size: var(--fs-xs);
}

.dashboard-scale .btn-scan span,
.dashboard-scale .btn-batch span {
    font-size: calc(var(--fs-sm));
}

/* Common text truncation utilities */
.text-truncate-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.text-truncate-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.text-truncate-1 {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}