:root {
    --font-family-base: 'Roboto', sans-serif;
    --font-weight-thin: 100;
    --font-weight-extra-light: 200;
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semi-bold: 600;
    --font-weight-bold: 700;
    --font-weight-extra-bold: 800;
    --font-weight-black: 900;
    --text-size-xs: calc(var(--text-size-sm) - 0.125rem);
    --text-size-sm: calc(var(--text-size-base) - 0.125rem);
    --text-size-base: 1rem;
    --text-size-lg: calc(var(--text-size-base) + 0.125rem);
    --text-size-xl: calc(var(--text-size-lg) + 0.125rem);
    --text-size-2xl: calc(var(--text-size-xl) + 0.25rem);
    --text-size-3xl: calc(var(--text-size-2xl) + 0.375rem);
    --text-size-4xl: calc(var(--text-size-3xl) + 0.375rem);
    --text-size-5xl: calc(var(--text-size-4xl) + 0.75rem);
    --text-size-6xl: calc(var(--text-size-5xl) + 0.75rem);
    --text-size-7xl: calc(var(--text-size-6xl) + 0.75rem);
    --text-size-8xl: calc(var(--text-size-7xl) + 1.5rem);
    --text-size-9xl: calc(var(--text-size-8xl) + 2rem);
    --text-line-height-base: 1.5rem;
    --text-line-height-lg: calc(var(--text-line-height-base) + .25rem);
    --text-line-height-xl: calc(var(--text-line-height-base) + .25rem);
    --text-line-height-2xl: calc(var(--text-line-height-lg) + .25rem);
    --text-line-height-3xl: calc(var(--text-line-height-2xl) + .25rem);
    --text-line-height-4xl: calc(var(--text-line-height-3xl) + .25rem);
    --text-line-height-5xl: calc(var(--text-line-height-4xl) + .25rem);
    --text-line-height-6xl: calc(var(--text-line-height-5xl) + .25rem);
    --text-line-height-7xl: calc(var(--text-line-height-6xl) + .25rem);
    --text-line-height-8xl: calc(var(--text-line-height-7xl) + .25rem);
    --text-line-height-9xl: calc(var(--text-line-height-8xl) + .25rem);
    --text-line-height-sm: calc(var(--text-line-height-base) - .25rem);
    --text-line-height-xs: calc(var(--text-line-height-sm) - .25rem);
    --text-line-height-2xs: calc(var(--text-line-height-xs) - .25rem);
    --text-line-height-3xs: calc(var(--text-line-height-2xs) - .25rem);
    --text-line-height-4xs: calc(var(--text-line-height-3xs) - .25rem);
}

/* Helper Classes */
.font-weight-thin { font-weight: var(--font-weight-thin); }
.font-weight-extra-light { font-weight: var(--font-weight-extra-light); }
.font-weight-light { font-weight: var(--font-weight-light); }
.font-weight-regular { font-weight: var(--font-weight-regular); }
.font-weight-medium { font-weight: var(--font-weight-medium); }
.font-weight-semi-bold { font-weight: var(--font-weight-semi-bold); }
.font-weight-bold { font-weight: var(--font-weight-bold); }
.font-weight-extra-bold { font-weight: var(--font-weight-extra-bold); }
.font-weight-black { font-weight: var(--font-weight-black); }
.text-size-xs { font-size: var(--text-size-xs); }
.text-size-sm { font-size: var(--text-size-sm); }
.text-size-base { font-size: var(--text-size-base); }
.text-size-lg { font-size: var(--text-size-lg); }
.text-size-xl { font-size: var(--text-size-xl); }
.text-size-2xl { font-size: var(--text-size-2xl); }
.text-size-3xl { font-size: var(--text-size-3xl); }
.text-size-4xl { font-size: var(--text-size-4xl); }
.text-size-5xl { font-size: var(--text-size-5xl); }
.text-size-6xl { font-size: var(--text-size-6xl); }
.text-size-7xl { font-size: var(--text-size-7xl); }
.text-size-8xl { font-size: var(--text-size-8xl); }
.text-size-9xl { font-size: var(--text-size-9xl); }
.text-line-height-base { line-height: var(--text-line-height-base); }
.text-line-height-lg { line-height: var(--text-line-height-lg); }
.text-line-height-xl { line-height: var(--text-line-height-xl); }
.text-line-height-2xl { line-height: var(--text-line-height-2xl); }
.text-line-height-3xl { line-height: var(--text-line-height-3xl); }
.text-line-height-4xl { line-height: var(--text-line-height-4xl); }
.text-line-height-5xl { line-height: var(--text-line-height-5xl); }
.text-line-height-6xl { line-height: var(--text-line-height-6xl); }
.text-line-height-7xl { line-height: var(--text-line-height-7xl); }
.text-line-height-8xl { line-height: var(--text-line-height-8xl); }
.text-line-height-9xl { line-height: var(--text-line-height-9xl); }
.text-line-height-sm { line-height: var(--text-line-height-sm); }
.text-line-height-xs { line-height: var(--text-line-height-xs); }
.text-line-height-2xs { line-height: var(--text-line-height-2xs); }
.text-line-height-3xs { line-height: var(--text-line-height-3xs); }
.text-line-height-4xs { line-height: var(--text-line-height-4xs); }

html, body, .jstree > * {
    font-family: var(--font-family-base);
    font-weight: var(--font-weight-light);
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto;

}
body {
    font-size: var(--text-size-base);
    line-height: var(--text-line-height-base);
}
body .footer_bg {
    line-height: var(--text-line-height-3xl);
}
table, td, a, label {
    font-weight: var(--font-weight-light);
}
table th {
    font-weight: var(--font-weight-medium);
}

.form-control,
button,
input,
select {
    font-size: var(--text-size-base);
    font-weight: var(--font-weight-regular);
    line-height: var(--text-line-height-base);
}
strong {
    font-weight: var(--font-weight-regular);
}
b {
    font-weight: var(--font-weight-semi-bold);
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    margin-bottom: .5rem;
    font-weight: var(--font-weight-light);
    line-height: 1.25;
}
pre {
    font-size: var(--text-size-sm);
}
.form-group > .help-text,
.form-group > .error-text {
    font-size: var(--text-size-sm);
    font-weight: var(--font-weight-light);
    line-height: var(--text-line-height-sm);
}

.text-diff {
    color: var(--text-diff-color);
    font-style: italic;
    text-decoration-line: underline;
    text-decoration-style: wavy;
    text-decoration-thickness: 1px;
}

