html {
  font-size: 14px;
  position: relative;
  min-height: 100%;
}

@media (min-width: 768px) {
  html {
    font-size: 15px;
  }
}

body {
  margin-bottom: 60px;
  background-color: #f6f7f9;
}

.navbar-brand i { color: #ffc107; }
.nav-link { transition: 0.3s; }
.nav-link:hover { background-color: rgba(255,255,255,0.1); border-radius: 5px; }

.btn:focus, .btn:active:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.card-resumo h3 { font-variant-numeric: tabular-nums; }
.table td.valor, .table th.valor { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

.badge-tipo { font-size: 0.65rem; }
.small-muted { font-size: 0.78rem; color: var(--bs-secondary-color); }

/* DRE */
.dre td, .dre th { white-space: nowrap; font-variant-numeric: tabular-nums; }
.dre .linha-grupo td { background: #eef1f5; font-weight: 600; }
.dre .linha-resultado td { background: #212529; color: #fff; font-weight: 700; }
.dre .linha-subtotal td { background: #dfe7f1; font-weight: 700; }
.dre td:first-child { position: sticky; left: 0; background: inherit; }

/* Tom Select dentro de input-group / tabelas */
.ts-wrapper.form-select { padding: 0; }
.ts-control { min-height: 38px; }
.form-select-sm + .ts-wrapper .ts-control, .ts-wrapper.form-select-sm .ts-control { min-height: 31px; padding: 2px 8px; font-size: .875rem; }
