:root {
  --bs-primary: #1E56E0;
  --bs-primary-rgb: 30, 86, 224;
  --bs-body-font-family: 'IBM Plex Sans', system-ui, sans-serif;
  --bs-body-bg: #F5F4F1;
  --bs-border-radius: 0.5rem;
  --portal-accent: #1E56E0;
  --portal-accent-rgb: 30, 86, 224;
  --portal-slate: #14213D;
  --portal-slate-light: #93A5C7;
  --portal-bg: #F5F4F1;
  --portal-border: #F0EEE9;
}

html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(30, 86, 224, .35);
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  background-color: var(--portal-bg);
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* Portal do Contador — design system */

.card {
  border: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
}

.page-header {
  margin-bottom: 1.25rem;
}

.page-header .breadcrumb-label {
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #6B6459;
  margin-bottom: 2px;
}

.page-header h4 {
  color: var(--portal-slate);
  font-weight: 600;
  margin-bottom: 0;
}

.stat-card {
  border-radius: var(--bs-border-radius);
}

.stat-card .stat-card-label {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .75;
}

.stat-card .stat-card-value {
  font-size: 1.75rem;
  font-weight: 700;
  margin-top: 2px;
}

.stat-card-primary {
  background: var(--portal-slate);
  color: #fff;
}

.stat-card-outline {
  background: #fff;
  border: 1px solid #E2E0DA;
  color: var(--portal-slate);
}

.badge-status {
  border-radius: 10px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 500;
  display: inline-block;
}

.badge-status-success {
  background: #DCFCE7;
  color: #166534;
}

.badge-status-danger {
  background: #FEE2E2;
  color: #991B1B;
}

.badge-status-secondary {
  background: #F1F0EC;
  color: #6B6459;
}

.badge-status-warning {
  background: #FEF3C7;
  color: #92400E;
}

.card table thead {
  background: #F9F8F6;
}

.card table thead th {
  color: #6B6459;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: .03em;
  font-weight: 600;
  border-bottom: 1px solid var(--portal-border);
  padding: 10px 14px;
}

.card table tbody td {
  padding: 10px 14px;
}

.card table tbody tr {
  border-top: 1px solid var(--portal-border);
}

.sidebar {
  background: var(--portal-slate) !important;
}

.sidebar .nav-link {
  color: var(--portal-slate-light) !important;
  padding-left: 1.5rem;
}

.sidebar .nav-link.active,
.sidebar .nav-item .nav-link[aria-current="page"] {
  color: #fff !important;
  border-left: 3px solid var(--portal-accent);
  padding-left: calc(1.5rem - 3px);
  font-weight: 500;
}

.navbar.bg-primary {
  background-color: var(--portal-slate) !important;
}
