


@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,600;0,700;0,900&family=Roboto+Mono:wght@400;500;600;700&display=swap');


:root {
    
    --pf-font-primary: 'Roboto', system-ui, -apple-system, "Segoe UI", sans-serif;
    --pf-font-monospace: 'Roboto Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;


    --pf-fs-2xs: 0.625rem;    /* 10px */
    --pf-fs-xs: 0.75rem;      /* 12px */
    --pf-fs-sm: 0.8125rem;    /* 13px */
    --pf-fs-base: 0.875rem;   /* 14px */
    --pf-fs-lg: 1rem;         /* 16px */
    --pf-fs-xl: 1.125rem;     /* 18px */
    --pf-fs-2xl: 1.25rem;     /* 20px */
    --pf-fs-3xl: 1.5rem;      /* 24px */
    --pf-fs-4xl: 2rem;        /* 32px */
    --pf-fs-5xl: 2.25rem;     /* 36px */
    --pf-fs-7xl: 3rem;        /* 48px */     


    --pf-fw-normal: 400;
    --pf-fw-medium: 500;
    --pf-fw-semibold: 600;

    
    --pf-lh-tight: 1.25;
    --pf-lh-normal: 1.5;
    --pf-lh-relaxed: 1.75;

    
    --pf-ls-tight: -0.025em;
    --pf-ls-normal: 0;
    --pf-ls-wide: 0.025em;
}


@media (min-width: 768px) {
    :root {
        --pf-fs-2xs: 0.625rem;    /* 10px */
        --pf-fs-xs: 0.75rem;      /* 12px */
        --pf-fs-sm: 0.8125rem;    /* 13px */
        --pf-fs-base: 0.875rem;   /* 14px */
        --pf-fs-lg: 1rem;         /* 16px */
        --pf-fs-xl: 1.25rem;      /* 20px */
        --pf-fs-2xl: 1.4375rem;   /* 23px */
        --pf-fs-3xl: 1.6875rem;   /* 27px */
        --pf-fs-4xl: 2.25rem;     /* 36px */
        --pf-fs-5xl: 2.625rem;    /* 42px */
        --pf-fs-7xl: 3rem;        /* 48px */
    }
}


* {
    box-sizing: border-box;
}

body {
    font-family: var(--pf-font-primary);
    font-size: var(--pf-fs-base);
    font-weight: var(--pf-fw-normal);
    line-height: var(--pf-lh-normal);
    letter-spacing: var(--pf-ls-tight);
    font-feature-settings: "cv02", "cv03", "cv04", "cv08";
}


h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--pf-font-primary);
    font-weight: var(--pf-fw-medium);
    line-height: var(--pf-lh-tight);
    letter-spacing: var(--pf-ls-tight);
    margin-bottom: 0.5rem;
}

h1, .h1 { font-size: var(--pf-fs-4xl); font-weight: var(--pf-fw-semibold); }


.container-fluid .form-control,
.container-fluid .form-select,
.container-fluid .btn,
.card .form-control,
.card .form-select,
.card .btn,
div input[type="text"],
div input[type="email"],
div input[type="date"],
div input[type="number"],
div select,
div textarea {
    font-family: var(--pf-font-primary);
    font-size: var(--pf-fs-base);  
    font-weight: var(--pf-fw-normal);
    line-height: var(--pf-lh-normal);
}


div input[type="password"],
.form-control input[type="password"],
.container-fluid input[type="password"],
.card input[type="password"] {
    font-family: var(--pf-font-primary);
    font-size: var(--pf-fs-base);  
    font-weight: var(--pf-fw-normal);
    line-height: var(--pf-lh-normal);
}
h2, .h2 { font-size: var(--pf-fs-3xl); font-weight: var(--pf-fw-medium); }
h3, .h3 { font-size: var(--pf-fs-2xl); font-weight: var(--pf-fw-medium); }
h4, .h4 { font-size: var(--pf-fs-xl); font-weight: var(--pf-fw-medium); }
h5, .h5 { font-size: var(--pf-fs-lg); font-weight: var(--pf-fw-medium); }
h6, .h6 { font-size: var(--pf-fs-base); font-weight: var(--pf-fw-semibold); }


.text-2xs { font-size: var(--pf-fs-2xs); }
.text-xs { font-size: var(--pf-fs-xs); }
.text-sm { font-size: var(--pf-fs-sm); }
.text-base { font-size: var(--pf-fs-base); }
.text-lg { font-size: var(--pf-fs-lg); }
.text-xl { font-size: var(--pf-fs-xl); }
.text-2xl { font-size: var(--pf-fs-2xl); }
.text-3xl { font-size: var(--pf-fs-3xl); }

.font-normal { font-weight: var(--pf-fw-normal); }
.font-medium { font-weight: var(--pf-fw-medium); }
.font-semibold { font-weight: var(--pf-fw-semibold); }

/* Bootstrap-compatible font weight classes */
.fw-normal { font-weight: var(--pf-fw-normal); }
.fw-medium { font-weight: var(--pf-fw-medium); }
.fw-semibold { font-weight: var(--pf-fw-semibold); }

.leading-tight { line-height: var(--pf-lh-tight); }
.leading-normal { line-height: var(--pf-lh-normal); }
.leading-relaxed { line-height: var(--pf-lh-relaxed); }

.tracking-tight { letter-spacing: var(--pf-ls-tight); }
.tracking-normal { letter-spacing: var(--pf-ls-normal); }
.tracking-wide { letter-spacing: var(--pf-ls-wide); }


.form-label {
    font-size: var(--pf-fs-base);  
    font-weight: var(--pf-fw-medium);
    margin-bottom: 0.5rem;
}

.form-control,
.form-select {
    font-size: var(--pf-fs-base);
    font-family: var(--pf-font-primary);
}


.btn {
    font-size: var(--pf-fs-base);  
    font-weight: var(--pf-fw-medium);
    font-family: var(--pf-font-primary);
}

.btn-sm {
    font-size: var(--pf-fs-base);  
}

.btn-lg {
    font-size: var(--pf-fs-lg);    
}


.nav-link {
    font-size: var(--pf-fs-base);  
    font-weight: var(--pf-fw-normal);
}


.table {
    font-size: var(--pf-fs-base);  
}

.table thead th {
    font-size: var(--pf-fs-xs);
    font-weight: var(--pf-fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--pf-ls-wide);
}


.badge {
    font-size: var(--pf-fs-xs);  
    font-weight: var(--pf-fw-medium);
}


.breadcrumb {
    font-size: var(--pf-fs-base);  
}


code, pre, .code {
    font-family: var(--pf-font-monospace);
    font-size: var(--pf-fs-base);  
}


.page-title {
    font-size: var(--pf-fs-4xl);
    font-weight: var(--pf-fw-medium);
    color: #1e293b;
    margin-bottom: 0.5rem;
    letter-spacing: var(--pf-ls-tight);
}


@media (max-width: 576px) {
    .page-title {
        font-size: var(--pf-fs-3xl);
    }

    h1, .h1 { font-size: var(--pf-fs-3xl); }
    h2, .h2 { font-size: var(--pf-fs-2xl); }
}
/* Company Name Truncation Utilities */
.company-name-truncate {
    display: inline-block;
    max-width: 250px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

.company-name-truncate-sm {
    max-width: 150px;
}

.company-name-truncate-md {
    max-width: 200px;
}

.company-name-truncate-lg {
    max-width: 300px;
}
