/* Identidade meajudaí aplicada aos componentes do Bootstrap.
   O Bootstrap fixa o azul (#0d6efd) em botões, dropdowns, progresso e
   checkboxes direto nas variáveis de cada componente -- aqui só trocamos essas
   variáveis pela cor de ação do tema (tokens.css), sem recriar componente.
   Ver docs/marca/INSTRUCOES-DESIGN.md, seção 5. */

/* ── Botões ─────────────────────────────────────────────────────────── */

.btn {
  --bs-btn-border-radius: var(--radius-md);
  --bs-btn-font-weight: 600;
}

/* Alvos de toque de 44 px em tela de toque; compactos com mouse. */
@media (pointer: coarse) {
  .btn,
  .btn-sm {
    min-height: 44px;
  }
}

.btn-primary,
.btn-success {
  --bs-btn-color: var(--color-on-action);
  --bs-btn-bg: var(--color-action);
  --bs-btn-border-color: var(--color-action);
  --bs-btn-hover-color: var(--color-on-action);
  --bs-btn-hover-bg: var(--color-action-hover);
  --bs-btn-hover-border-color: var(--color-action-hover);
  --bs-btn-active-color: var(--color-on-action);
  --bs-btn-active-bg: var(--color-action-hover);
  --bs-btn-active-border-color: var(--color-action-hover);
  --bs-btn-disabled-color: var(--color-on-action);
  --bs-btn-disabled-bg: var(--color-action);
  --bs-btn-disabled-border-color: var(--color-action);
  --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
}

.btn-outline-primary {
  --bs-btn-color: var(--color-action);
  --bs-btn-border-color: var(--color-action);
  --bs-btn-hover-color: var(--color-on-action);
  --bs-btn-hover-bg: var(--color-action);
  --bs-btn-hover-border-color: var(--color-action);
  --bs-btn-active-color: var(--color-on-action);
  --bs-btn-active-bg: var(--color-action);
  --bs-btn-active-border-color: var(--color-action);
  --bs-btn-disabled-color: var(--color-action);
  --bs-btn-disabled-border-color: var(--color-action);
  --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
}

/* ── Campos de formulário ───────────────────────────────────────────── */

.form-label {
  font-size: var(--text-sm);
  font-weight: 500;
}

.form-check-label {
  font-size: var(--text-base);
  font-weight: 400;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--color-primary-300);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.2);
}

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

.form-check-input:focus {
  border-color: var(--color-primary-300);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.2);
}

.form-switch .form-check-input:checked {
  background-color: var(--color-action);
}

/* ── Menus, listas, progresso ───────────────────────────────────────── */

.dropdown-menu {
  --bs-dropdown-border-radius: var(--radius-lg);
  --bs-dropdown-border-color: var(--color-border);
  --bs-dropdown-padding-x: var(--space-2);
  --bs-dropdown-padding-y: var(--space-2);
  --bs-dropdown-link-active-bg: var(--color-action);
  --bs-dropdown-link-active-color: var(--color-on-action);
  --bs-dropdown-item-border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md);
}

.dropdown-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding-block: var(--space-2);
}

.list-group {
  --bs-list-group-active-bg: var(--color-action);
  --bs-list-group-active-border-color: var(--color-action);
  --bs-list-group-active-color: var(--color-on-action);
}

.nav-pills {
  --bs-nav-pills-link-active-bg: var(--color-action);
  --bs-nav-pills-link-active-color: var(--color-on-action);
}

.progress {
  --bs-progress-bar-bg: var(--color-action);
  --bs-progress-border-radius: 999px;
}

.page-link {
  --bs-pagination-active-bg: var(--color-action);
  --bs-pagination-active-border-color: var(--color-action);
}

/* ── Cards ──────────────────────────────────────────────────────────── */

.card {
  --bs-card-border-radius: var(--radius-lg);
  --bs-card-border-color: var(--color-border);
  box-shadow: var(--shadow-sm);
}

/* ── Texto ──────────────────────────────────────────────────────────── */

h1, h2, h3, h4, h5, h6 {
  letter-spacing: -0.01em;
}

.text-muted,
.text-body-secondary {
  --bs-secondary-color: var(--color-muted);
}

[data-bs-theme="dark"] .text-muted,
[data-bs-theme="dark"] .text-body-secondary {
  --bs-secondary-color: rgba(222, 226, 230, 0.75);
}
