*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--cor-fundo);
    color: var(--cor-texto);
    font-family: var(--fonte);
    font-size: var(--fonte-tamanho);
    font-weight: var(--peso-normal);
    line-height: 1.5;
}

h1 {
    margin: 0 0 1rem;
    font-size: var(--fonte-tamanho-titulo);
    font-weight: var(--peso-forte);
}

h2 {
    margin: 0 0 0.75rem;
    font-size: var(--fonte-tamanho-secao);
    font-weight: var(--peso-forte);
}

:root {
    --bs-primary: var(--cor-primaria);
    --bs-primary-rgb: 26, 39, 68;
    --bs-body-font-family: var(--fonte);
    --bs-body-font-size: var(--fonte-tamanho);
    --bs-body-color: var(--cor-texto);
    --bs-border-color: var(--cor-borda);
}

.btn-primary {
    --bs-btn-bg: var(--cor-primaria);
    --bs-btn-border-color: var(--cor-primaria);
    --bs-btn-hover-bg: var(--cor-primaria-escura);
    --bs-btn-hover-border-color: var(--cor-primaria-escura);
    --bs-btn-active-bg: var(--cor-primaria-escura);
    --bs-btn-active-border-color: var(--cor-primaria-escura);
    --bs-btn-disabled-bg: var(--cor-primaria);
    --bs-btn-disabled-border-color: var(--cor-primaria);
    --bs-btn-focus-shadow-rgb: 26, 39, 68;
}

.btn-danger {
    --bs-btn-bg: var(--cor-erro);
    --bs-btn-border-color: var(--cor-erro);
    --bs-btn-hover-bg: var(--cor-erro-escura);
    --bs-btn-hover-border-color: var(--cor-erro-escura);
    --bs-btn-active-bg: var(--cor-erro-escura);
    --bs-btn-active-border-color: var(--cor-erro-escura);
    --bs-btn-disabled-bg: var(--cor-erro);
    --bs-btn-disabled-border-color: var(--cor-erro);
    --bs-btn-focus-shadow-rgb: 179, 38, 30;
}

.btn-outline-primary {
    --bs-btn-color: var(--cor-primaria);
    --bs-btn-border-color: var(--cor-primaria);
    --bs-btn-hover-bg: var(--cor-primaria);
    --bs-btn-hover-border-color: var(--cor-primaria);
    --bs-btn-active-bg: var(--cor-primaria);
    --bs-btn-active-border-color: var(--cor-primaria);
    --bs-btn-disabled-color: var(--cor-primaria);
    --bs-btn-disabled-border-color: var(--cor-primaria);
    --bs-btn-focus-shadow-rgb: 26, 39, 68;
}

.btn-outline-secondary {
    --bs-btn-color: var(--cor-texto-suave);
    --bs-btn-border-color: var(--cor-borda);
    --bs-btn-hover-bg: var(--cor-primaria-suave);
    --bs-btn-hover-border-color: var(--cor-borda);
    --bs-btn-hover-color: var(--cor-texto);
    --bs-btn-active-bg: var(--cor-primaria-suave);
    --bs-btn-active-border-color: var(--cor-borda);
    --bs-btn-active-color: var(--cor-texto);
    --bs-btn-disabled-color: var(--cor-texto-suave);
    --bs-btn-disabled-border-color: var(--cor-borda);
    --bs-btn-focus-shadow-rgb: 26, 39, 68;
}

.btn-link {
    --bs-btn-color: var(--cor-primaria);
    --bs-btn-hover-color: var(--cor-primaria-escura);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--cor-primaria);
    box-shadow: var(--anel-foco);
}

.form-label {
    font-size: var(--fonte-tamanho-pequeno);
    font-weight: var(--peso-medio);
}

.form-check-input:focus {
    border-color: var(--cor-primaria);
    box-shadow: var(--anel-foco);
}

.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
    background-color: var(--cor-primaria);
    border-color: var(--cor-primaria);
}

.form-text {
    color: var(--cor-texto-suave);
    font-size: var(--fonte-tamanho-miudo);
}

.caixa-alta {
    text-transform: uppercase;
}

.caixa-baixa {
    text-transform: lowercase;
}

.table {
    --bs-table-color: var(--cor-texto);
    --bs-table-border-color: var(--cor-borda);
}

.table thead th {
    color: var(--cor-texto-suave);
    font-size: var(--fonte-tamanho-pequeno);
    font-weight: var(--peso-medio);
}

.dropdown-menu {
    --bs-dropdown-font-size: var(--fonte-tamanho-pequeno);
    --bs-dropdown-border-color: var(--cor-borda);
    --bs-dropdown-link-active-bg: var(--cor-primaria);
}

.modal-content {
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    background: var(--cor-superficie);
    color: var(--cor-texto);
}

.modal-header {
    border-bottom-color: var(--cor-borda);
}

.modal-footer {
    border-top: 0;
}

.modal-title {
    font-weight: var(--peso-normal);
}

.modal-backdrop {
    --bs-backdrop-bg: var(--cor-primaria);
}
