/* ================================
   AJUSTES GERAIS
=================================== */

html, body {
  font-size: 0.95rem;
  scroll-behavior: smooth;
}

body {
  background-color: #f4f6f9;
}

/* Corrige pequenos estalos na transição do menu lateral */
.sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-link {
  transition: margin-left 0.3s ease-in-out;
}

/* Links padrão */
a {
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

/* ================================
   NAVBAR / TOPO
=================================== */

.main-header {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
  z-index: 1035;
}

.main-header .nav-link {
  font-size: 0.95rem;
}

.main-header .fa-bars {
  font-size: 1.1rem;
}

/* Dropdown do usuário */
.navbar-nav .dropdown-menu-lg {
  min-width: 220px;
}

.navbar-nav .dropdown-menu .dropdown-item {
  font-size: 0.95rem;
}

/* ================================
   SIDEBAR / MENU LATERAL
=================================== */

.main-sidebar {
  font-size: 0.93rem;
}

/* Logo / brand */
.brand-link {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* Links do menu */
.main-sidebar .nav-link {
  border-radius: 4px;
  margin: 2px 4px;
}

.main-sidebar .nav-link p {
  margin: 0;
}

/* Ícones do menu */
.main-sidebar .nav-link i.nav-icon {
  font-size: 0.95rem;
}

/* Hover dos itens */
.main-sidebar .nav-link:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

/* Item ativo */
.main-sidebar .nav-link.active {
  background-color: #3c8dbc;
  color: #ffffff;
}

.main-sidebar .nav-link.active i,
.main-sidebar .nav-link.active p {
  color: #ffffff;
}

/* Submenu (treeview) */
.nav-sidebar .nav-treeview {
  padding-left: 12px;
}

/* Link de submenu */
.nav-sidebar .nav-treeview > .nav-item > .nav-link {
  font-size: 0.9rem;
}

/* Ícone do submenu */
.nav-sidebar .nav-treeview .nav-icon {
  font-size: 0.85rem;
}

/* Seta da direita do treeview */
.nav-sidebar .nav-item > .nav-link .right {
  transition: transform 0.2s ease;
}

/* Quando o menu está aberto, gira a seta */
.nav-sidebar .menu-open > .nav-link .right {
  transform: rotate(-90deg);
}

/* ================================
   ÁREA DE CONTEÚDO
=================================== */

.content-wrapper {
  padding-top: 0.5rem;
}

/* Cabeçalhos de página (títulos das telas) */
.page-header-title {
  font-size: 1.25rem;
  font-weight: 600;
}

/* Breadcrumbs / subtítulo */
.page-header-subtitle {
  font-size: 0.9rem;
  color: #6c757d;
}

/* Espaçamento padrão para “cards principais” */
.main-card {
  margin-bottom: 1rem;
}

/* ================================
   CARDS / BOXES
=================================== */

.card {
  border-radius: 0.5rem;
  border: 1px solid rgba(0, 0, 0, 0.03);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.card-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.card-header .card-title {
  font-size: 1rem;
  font-weight: 600;
}

/* Cards de resumo do dashboard */
.card-summary {
  border-left: 4px solid #3c8dbc;
}

.card-summary.bg-success {
  border-left-color: #28a745;
}

.card-summary.bg-warning {
  border-left-color: #ffc107;
}

.card-summary.bg-danger {
  border-left-color: #dc3545;
}

/* ================================
   BOTÕES
=================================== */

.btn {
  border-radius: 0.3rem;
}

/* Botão de ação principal (novo, salvar, etc.) */
.btn-primary {
  box-shadow: 0 2px 3px rgba(0, 123, 255, 0.25);
}

/* Grupo de botões (ex.: ações na tabela) */
.btn-actions {
  display: inline-flex;
  gap: 0.25rem;
}

/* ================================
   TABELAS / DATATABLES
=================================== */

/* Geral de tabelas */
.table {
  font-size: 0.9rem;
}

.table thead th {
  vertical-align: middle;
  white-space: nowrap;
}

.table td {
  vertical-align: middle;
}

/* Linha selecionada/hover */
.table-hover tbody tr:hover {
  background-color: rgba(60, 141, 188, 0.05);
}

/* Tabelas responsivas com DataTables */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
  font-size: 0.9rem;
}

.dataTables_wrapper .dataTables_filter input {
  margin-left: 0.5rem;
  padding: 0.15rem 0.35rem;
  border-radius: 0.2rem;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
  padding: 0.1rem 0.5rem;
  margin: 0 1px;
  border-radius: 0.2rem;
}

/* Paginação ativa */
.dataTables_wrapper .dataTables_paginate .paginate_button.current {
  background: #3c8dbc !important;
  border-color: #3c8dbc !important;
  color: white !important;
}

/* Tabelas com área de ações na última coluna */
.table .col-actions {
  width: 130px;
  text-align: center;
}

/* ================================
   FORMULÁRIOS
=================================== */

.form-control {
  font-size: 0.9rem;
}

/* Labels menores e com espaçamento */
.form-group label {
  font-size: 0.9rem;
  font-weight: 500;
}

/* Linha de formulário com colunas iguais */
.form-row-equal > [class*="col-"] {
  display: flex;
  flex-direction: column;
}

/* Campos somente leitura */
.form-control[readonly],
.form-control[disabled] {
  background-color: #e9ecef;
  opacity: 1;
}

/* ================================
   ALERTAS / MENSAGENS
=================================== */

.alert {
  font-size: 0.9rem;
}

/* Espaçamento entre múltiplos alerts */
.alert + .alert {
  margin-top: 0.3rem;
}

/* ================================
   BADGES / STATUS
=================================== */

.badge-status {
  font-size: 0.75rem;
  padding: 0.25rem 0.4rem;
  border-radius: 0.25rem;
}

/* Exemplos de status – use essas classes nas views */
.badge-status-aberto {
  background-color: #ffc107;
  color: #212529;
}

.badge-status-andamento {
  background-color: #17a2b8;
}

.badge-status-concluido {
  background-color: #28a745;
}

.badge-status-cancelado {
  background-color: #dc3545;
}

/* ================================
   GRIDS / LAYOUTS ÚTEIS
=================================== */

/* Grid simples para cards de resumo no dashboard */
.dashboard-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.75rem;
}

/* Layout de 2 colunas com lateral menor (ex.: OS) */
.layout-2col {
  display: grid;
  grid-template-columns: 2fr 1.2fr;
  gap: 0.75rem;
}

@media (max-width: 991.98px) {
  .layout-2col {
    grid-template-columns: 1fr;
  }
}

/* ================================
   MODAIS
=================================== */

.modal-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.modal-footer {
  border-top: 1px solid rgba(0, 0, 0, 0.05);
}

/* ================================
   UTILITÁRIOS
=================================== */

/* Margens rápidas */
.mt-05 { margin-top: 0.25rem !important; }
.mb-05 { margin-bottom: 0.25rem !important; }
.pt-05 { padding-top: 0.25rem !important; }
.pb-05 { padding-bottom: 0.25rem !important; }

/* Texto truncado (ex.: colunas grandes em tabelas) */
.text-truncate-1 {
  max-width: 220px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Container centralizado com largura máxima */
.container-narrow {
  max-width: 920px;
  margin: 0 auto;
}

/* Texto de ajuda menor abaixo de campos */
.form-text-help {
  font-size: 0.8rem;
  color: #6c757d;
}

/* Linha separadora suave */
.hr-soft {
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  margin: 0.75rem 0;
}

