/* 
* Sistema de Ponto - Estilo Unificado
* Versão: 2.0.0 - 21/09/2025
* Consolidação de todos os arquivos CSS do sistema
*/

/* === Reset e Configurações Globais === */
body {
    background: #f6f7fb;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1 0 auto;
}

/* === Rodapé === */
.footer-cwmkt {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 15px 0;
    text-align: center;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    z-index: 1000;
}

.footer-cwmkt a {
    color: white;
    text-decoration: none;
    display: inline;
    margin-left: 4px;
}

.footer-cwmkt a:hover {
    text-decoration: underline;
}

.footer-spacer {
    height: 40px;
    width: 100%;
}

.filtro-container {
  display: flex;
  align-items: center;
  gap: 15px;
  flex-wrap: wrap;
  padding: 15px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border-radius: 10px;
  margin-bottom: 20px;
}

.filtro-item {
  flex: 1;
  min-width: 140px;
}

.filtro-label {
  color: white;
  font-weight: bold;
  margin-bottom: 8px;
  display: block;
  font-size: 16px;
}

/* Estilos para botões de ação na tabela de usuários */
.actions-column {
  display: flex;
  align-items: center;
  gap: 5px;
}

.action-btn {
  width: 36px !important;
  height: 36px;
  padding: 0 !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: none !important;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  color: white !important;
  margin: 0 !important;
}

.action-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 6px rgba(0,0,0,0.15);
  opacity: 0.95;
}

.action-btn i {
  font-size: 14px;
}

.action-btn.btn-success {
  background: #00c853 !important;
}

.action-btn.btn-primary {
  background: #2962ff !important;
}

.action-btn.btn-info {
  background: #00b0ff !important;
}

/* Estilos do Rodapé */
.footer-cwmkt {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  text-align: center;
  padding: 20px;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1000;
  font-size: 18px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
}

.footer-cwmkt:hover {
  padding: 22px;
  box-shadow: 0 -6px 16px rgba(0,0,0,0.15);
}

.footer-cwmkt a {
  color: white;
  text-decoration: none;
  font-weight: bold;
  transition: all 0.3s ease;
  padding: 8px 15px;
  border-radius: 20px;
  background: rgba(255,255,255,0.1);
}

.footer-cwmkt a:hover {
  color: #ffffff;
  background: rgba(255,255,255,0.2);
  text-decoration: none;
  transform: translateY(-2px);
}

/* Espaçador para conteúdo não ficar atrás do footer fixo */
.footer-spacer {
  height: 80px;
  width: 100%;
}

/* Ajustes para impressão */
@media print {
  .footer-cwmkt,
  .footer-spacer {
    display: none !important;
  }
}

/* Responsividade */
@media (max-width: 768px) {
  .footer-cwmkt {
    padding: 15px;
    font-size: 16px;
  }
  
  .footer-cwmkt:hover {
    padding: 17px;
  }
  
  .footer-spacer {
    height: 70px;
  }
}
}

.action-btn.btn-warning {
  background: #ffd600 !important;
  color: #333 !important;
}

.action-btn.btn-danger {
  background: #f44336 !important;
}

.btn-success {
  background-color: #28a745;
  border-color: #28a745;
}

.btn-primary {
  background-color: #007bff;
  border-color: #007bff;
}

.btn-info {
  background-color: #17a2b8;
  border-color: #17a2b8;
}

.btn-warning {
  background-color: #ffc107;
  border-color: #ffc107;
}

.btn-danger {
  background-color: #dc3545;
  border-color: #dc3545;
}

/* ======================================================
   RESET E ESTILOS BASE
   ====================================================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  background: #f8f9fa !important;
  font-family: 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  height: 100%;
  font-size: 14px;
  line-height: 1.6;
}

/* ======================================================
   LAYOUT PRINCIPAL
   ====================================================== */

/* Wrapper padrão para login/cadastro (centralizado vertical) */
.wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  padding: 20px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

/* Wrapper específico para páginas de login/cadastro */
.wrapper.center {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  padding: 20px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

/* Wrapper para topo (admin/dashboard) */
.wrapper.top {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  min-height: 100vh;
  padding: 20px;
  width: 100%;
  background: #f8f9fa;
}

/* Container principal que centraliza o conteúdo */
.container-fluid {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
}

/* ======================================================
   LAYOUT COM CARDS
   ====================================================== */

/* Background principal */
body {
  background: #f8f9fa !important;
  min-height: 100vh;
  padding-top: 60px;
  padding-bottom: 70px;
}

/* Card branco centralizado para o conteúdo */
.content-card {
  background-color: #fff;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
  margin-bottom: 20px;
  padding: 20px;
  position: relative;
}

/* ======================================================
   NAVBAR E CABEÇALHO
   ====================================================== */

/* Estilização do cabeçalho */
.navbar {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  height: 60px;
}

.navbar-brand {
  font-size: 18px;
}

.navbar-text {
  font-size: 14px;
  display: flex;
  align-items: center;
  margin-right: 0;
}

/* Botão Voltar dentro da barra de navegação */
.btn-voltar-nav {
  color: white;
  background-color: rgba(255, 255, 255, 0.1);
  border: none;
  border-radius: 5px;
  padding: 4px 12px;
  font-size: 14px;
  margin-left: 15px;
  display: inline-flex;
  align-items: center;
  transition: all 0.3s ease;
  height: 32px;
  position: relative;
  top: -5px;
}

.btn-voltar-nav:hover {
  background-color: rgba(255, 255, 255, 0.2);
  color: white;
  text-decoration: none;
}

.btn-voltar-nav i {
  margin-right: 5px;
}

/* Alinhamento nome e botão voltar na navbar */
.navbar-text {
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  margin-right: 0;
}

/* ======================================================
   CARDS E PAINÉIS
   ====================================================== */

/* Painéis principais */
.login-box,
.dashboard-box {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  padding: 40px;
  border-radius: 20px;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
  text-align: center;
  color: #333;
}

.dashboard-box.large {
  max-width: 1200px;
  text-align: left;
  margin: 0 auto;
  background: #fff;
  color: #333;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

/* Ajustes para cards internos */
.card {
  border-radius: 15px !important;
  border: none !important;
  box-shadow: 0 5px 20px rgba(0,0,0,0.08) !important;
  overflow: hidden;
  margin-bottom: 20px;
}

.card-header {
  background-color: #fff;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  padding: 15px 20px;
}

/* Header com título e botão voltar conforme as imagens */
.header-section {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.header-section h5 {
  margin-bottom: 0;
}

/* ======================================================
   BOTÕES E LINKS
   ====================================================== */

/* Botões modernos - apenas para botões customizados, não Bootstrap */
button:not(.btn),
.btn-action:not(.btn) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border: none;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  gap: 8px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
}

button:not(.btn):hover,
.btn-action:not(.btn):hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(102, 126, 234, 0.4);
  color: white;
}

button:not(.btn):disabled {
  background: #444;
  cursor: not-allowed;
}

/* Button Hover Effects */
button[style*="linear-gradient"]:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 25px rgba(118, 75, 162, 0.3) !important;
}

.btn-outline-secondary:hover {
  transform: translateY(-2px) !important;
  background: #6c757d !important;
  color: white !important;
}

/* Cores e estilos consistentes para botões principais */
.btn-primary {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 10px 20px !important;
  font-weight: 500;
  transition: all 0.3s ease;
  box-shadow: 0 4px 10px rgba(118, 75, 162, 0.2) !important;
}

.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(118, 75, 162, 0.3) !important;
}

/* Botões roxos (estilo secundário) */
.btn-purple {
  background: #764ba2;
  border-color: #764ba2;
  color: white;
  border-radius: 5px;
  padding: 8px 20px;
}

.btn-purple:hover {
  background: #663d96;
  border-color: #663d96;
  color: white;
}

/* Botões de ação */
.btn-action {
  border-radius: 12px !important;
  padding: 20px 15px !important;
  font-weight: 600;
  box-shadow: 0 5px 15px rgba(0,0,0,0.1) !important;
  transition: all 0.3s ease;
  text-align: center;
  height: auto !important;
}

.btn-action i {
  display: block;
  font-size: 24px;
  margin-bottom: 8px;
}

.btn-action {
  display: inline-block;
  padding: 6px 10px;
  margin: 0 2px;
  font-size: 13px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: bold;
  color: white;
  transition: background 0.3s;
}

.btn-entrada {
  background: linear-gradient(135deg, #36d1dc 0%, #5b86e5 100%) !important;
  color: white !important;
}

.btn-almoco {
  background: linear-gradient(135deg, #f5af19 0%, #f12711 100%) !important;
  color: white !important;
}

.btn-retorno {
  background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%) !important;
  color: white !important;
}

.btn-saida {
  background: linear-gradient(135deg, #ee0979 0%, #ff6a00 100%) !important;
  color: white !important;
}

.btn-edit {
  background-color: #007bff;
}

.btn-edit:hover {
  background-color: #0056b3;
}

.btn-delete {
  background-color: #dc3545;
}

.btn-delete:hover {
  background-color: #a51e2d;
}

.btn-danger {
  background-color: #dc3545;
  color: white;
  padding: 10px 20px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: bold;
  display: inline-block;
  margin-top: 10px;
  transition: background 0.3s ease;
}

.btn-danger:hover {
  background-color: #a51e2d;
}

a {
  color: #667eea;
  font-size: 14px;
  display: block;
  margin-top: 15px;
  text-decoration: underline;
  text-align: center;
}

a:hover {
  color: #764ba2;
  text-decoration: none;
}

/* ======================================================
   FORMULÁRIOS E INPUTS
   ====================================================== */

/* Inputs modernos */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="date"],
select {
  width: 100%;
  padding: 15px 20px;
  margin-bottom: 20px;   /* mantém para o resto do sistema */
  border: 2px solid #e9ecef;
  border-radius: 12px;
  background: #fff;
  color: #333;
  font-size: 16px;
  transition: all 0.3s ease;
  font-family: inherit;
}

/* FIX alinhamento do filtro de datas (somente aqui) */
input[type="date"].input-igual { margin-bottom: 0 !important; }
button.input-igual { margin-bottom: 0 !important; }   /* opcional, garante simetria */


input:focus, select:focus {
  outline: none;
  border-color: #667eea;
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
  transform: translateY(-2px);
}

/* Enhanced Filter Animations */
.form-floating > .form-control:focus,
.form-floating > .form-select:focus {
  border-color: #764ba2 !important;
  box-shadow: 0 0 0 0.2rem rgba(118, 75, 162, 0.25) !important;
  transform: translateY(-2px);
  transition: all 0.3s ease;
}

.form-floating > .form-control,
.form-floating > .form-select {
  transition: all 0.3s ease;
}

.form-floating > .form-control:hover,
.form-floating > .form-select:hover {
  border-color: #667eea;
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(102, 126, 234, 0.1);
}

/* Correções para os ícones nos campos de entrada */
.input-group-text {
  width: 42px !important; 
  display: flex !important;
  justify-content: center !important; 
  align-items: center !important; 
  padding: 0.375rem !important;
  box-sizing: border-box !important;
}

.input-group-text .fas,
.input-group-text i.fas {
  font-size: 14px !important;
  width: 14px !important;
  height: 14px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin: 0 !important;
}

.input-group {
  display: flex !important;
  align-items: stretch !important;
}

.input-group .form-control {
  height: auto !important;
}

.form-control {
  border-radius: 8px;
  padding: 10px 15px;
  border: 1px solid rgba(0,0,0,0.1);
}

/* ======================================================
   TABELAS
   ====================================================== */

/* Tabela (admin) */
table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
}

th, td {
  padding: 10px 8px;
  text-align: center;
  border-bottom: 1px solid #dee2e6;
}

th {
  background-color: #f8f9fa;
  color: #333;
  font-weight: 600;
}

tr:nth-child(even) {
  background-color: #f8f9fa;
}

.table-container {
  border-radius: 10px;
  overflow: hidden;
}

/* Tabela de horas extras com visual moderno */
.table-extras {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.table-extras thead th {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  padding: 15px;
  font-weight: 600;
  text-align: left;
  border: none;
}

.table-extras tbody tr {
  background-color: #ffffff;
}

.table-extras tbody tr:hover {
  background-color: rgba(118, 75, 162, 0.05);
}

.table-extras td {
  padding: 12px 15px;
  border-top: 1px solid #f0f0f0;
}

.header-purple {
  background-color: #764ba2 !important;
  color: white !important;
}

.header-purple th {
  color: white !important;
  background-color: #764ba2 !important;
}

thead.header-purple tr {
  background-color: #764ba2 !important;
}

/* ======================================================
   TÍTULOS E TEXTO
   ====================================================== */

/* Títulos modernos */
h1, h2, h3 {
  margin-bottom: 20px;
  text-align: center;
  font-weight: 600;
  color: #2c3e50;
}

h1 {
  font-size: 2.5rem;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Títulos das seções */
.section-title {
  color: #764ba2;
  font-weight: 600;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
}

.section-title i {
  margin-right: 10px;
}

/* Mensagens */
.mensagem {
  margin-top: 12px;
  font-size: 14px;
}

.mensagem.sucesso {
  color: #00cc66;
}

.mensagem.erro {
  color: #ff6b6b;
}

/* ======================================================
   CARDS DE ESTATÍSTICAS
   ====================================================== */

/* Estilo para os cartões de estatísticas no dashboard */
.stats-card {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  border-radius: 15px;
  padding: 20px;
  text-align: center;
  height: 100%;
  box-shadow: 0 5px 20px rgba(118, 75, 162, 0.25);
}

.stats-card i {
  font-size: 2rem;
  margin-bottom: 10px;
}

.stats-card h2 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 0;
}

.stats-card p {
  opacity: 0.9;
  margin: 0;
}

/* Estatísticas */
.stats-container {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
}

.stat-card {
  flex: 1;
  min-width: 200px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  padding: 20px;
  border-radius: 15px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}

.stat-card:hover {
  transform: translateY(-5px);
}

.stat-card h2 {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 5px;
}

.stat-card p {
  font-size: 14px;
  opacity: 0.9;
  margin: 0;
}

/* ======================================================
   ELEMENTOS ESPECÍFICOS
   ====================================================== */

/* Ações superiores (admin) */
/* Esta classe foi duplicada e movida para acima. Remova este comentário se necessário. */

.filtro-container label {
  margin-right: 5px;
}

.filtro-container input,
.filtro-container select {
  min-width: 160px;
}

.filtro-container button:not(.btn) {
  width: auto;
  padding: 10px 18px;
}

/* Resumo período */
.resumo-periodo {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  border-radius: 15px;
  padding: 25px;
  box-shadow: 0 5px 20px rgba(118, 75, 162, 0.3);
  margin-bottom: 30px;
}

.resumo-periodo h3 {
  font-weight: 700;
  margin-bottom: 20px;
}

/* Total geral de horas extras */
.total-geral {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  padding: 15px 20px;
  border-radius: 10px;
  margin-top: 20px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.total-geral h4 {
  font-weight: 700;
  margin-bottom: 10px;
}

.total-geral .valor {
  font-size: 18px;
  font-weight: 600;
}

/* Cores para tipos de extras */
.extra-semana {
  color: #3a7bd5;
}

.extra-sabado {
  color: #f76b1c;
}

.extra-domingo {
  color: #d82c2c;
}

/* Badge coloridos */
.badge-50 {
  background-color: #5b86e5 !important;
  padding: 5px 12px !important;
  border-radius: 30px !important;
  font-size: 0.75rem !important;
  font-weight: 500;
}

.badge-100 {
  background-color: #f5af19 !important;
  padding: 5px 12px !important;
  border-radius: 30px !important;
  font-size: 0.75rem !important;
  font-weight: 500;
}

/* Icones nos cabeçalhos de seção */
.section-icon {
  margin-right: 10px;
  color: #764ba2;
}

/* Correção DEFINITIVA para alinhamento perfeito dos botões administrativos */
.card-body .row.align-items-stretch .col-md-2 {
  display: table-cell !important;
  vertical-align: middle !important;
  float: none !important;
}

.card-body .row.align-items-stretch {
  display: table !important;
  width: 100% !important;
  table-layout: fixed !important;
}

.card-body .row.align-items-stretch .btn {
  height: 80px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Admin Filter Alignment */
.admin-filter .row.align-items-end .col-md-3:last-child {
  display: flex;
  align-items: center; /* Adjusted to center alignment */
}

.admin-filter .row.align-items-end .col-md-3:last-child > label {
  margin-bottom: 8px !important;
}

.admin-filter .row.align-items-end .col-md-3:last-child .d-flex {
  margin-top: 0 !important;
}

/* Login especial */
.login-icon {
  font-size: 40px;
  color: #764ba2;
  margin-bottom: 20px;
}

.login-title {
  color: #764ba2;
  font-weight: 600;
  margin-bottom: 30px;
}

.btn-login {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 12px 20px !important;
  font-weight: 600 !important;
  width: 100%;
  margin-top: 10px;
  box-shadow: 0 5px 15px rgba(118, 75, 162, 0.3) !important;
}

.btn-login:hover {
  box-shadow: 0 8px 20px rgba(118, 75, 162, 0.4) !important;
  transform: translateY(-2px);
}

/* Modo admin banner */
.admin-banner {
  background-color: #ffc107;
  color: #212529;
  padding: 10px 0;
  text-align: center;
  font-weight: 600;
}

/* Menu card */
.menu-card {
  padding: 20px;
}

.menu-card a {
  display: flex;
  align-items: center;
  padding: 12px 15px;
  border-radius: 10px;
  margin-bottom: 10px;
  transition: all 0.2s ease;
  text-decoration: none;
  color: #333;
  font-weight: 500;
}

.menu-card a:hover {
  background-color: rgba(118, 75, 162, 0.1);
  transform: translateX(3px);
}

.menu-card a i {
  margin-right: 10px;
  color: #764ba2;
  font-size: 1.1rem;
}

/* horas_semanal: barra compacta em uma linha */
/* Grid: [Colaborador] [Semana] [Filtrar] [Limpar] */
.hs-bar{
  display:grid;
  grid-template-columns: 1.3fr 0.9fr auto auto;
  gap:12px;
  align-items:center; /* rótulos, campos e botões na mesma altura */
  margin-bottom:15px;
}

/* Campo compacto com label à esquerda do input */
.hs-bar .campo.campo-inline{
  display:grid;
  grid-template-columns: auto 1fr; /* label | input */
  align-items:center;
  gap:10px;
  min-width:0; /* evita overflow */
}

.hs-bar .campo.campo-inline label{
  margin:0; 
  white-space:nowrap;
  color:#333;
  font-size:14px;
}

/* Usa seus estilos padrão para inputs/select; só remove margin-bottom */
.hs-bar select,
.hs-bar input[type="number"]{
  margin-bottom:0;
}

/* Botões usando suas classes, mas sem ocupar a linha toda */
.hs-bar .btn-action:not(.btn){
  margin-top:0;
  padding:10px 18px;
  text-decoration:none;
}
.hs-bar button.btn-action:not(.btn){ width:auto; } /* anula width:100% global */

/* ======================================================
   RODAPÉ
   ====================================================== */

/* Footer estilizado */
footer {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  position: fixed;
  bottom: 0;
  width: 100%;
  text-align: center;
  padding: 15px 0;
  z-index: 1000;
}

.rodape {
  text-align: center;
  padding: 15px 0;
  background-color: #f8f9fa;
  color: #6c757d;
  border-top: 1px solid #dee2e6;
  font-size: 14px;
  margin-top: 30px;
}

.rodape a {
  color: #0d6efd;
  text-decoration: none;
}

.rodape a:hover {
  text-decoration: underline;
}

/* ======================================================
   MEDIA QUERIES
   ====================================================== */

/* Responsivo */
@media (max-width: 768px) {
  .dashboard-box.large {
    overflow-x: auto;
  }

  table {
    font-size: 13px;
  }

  th, td {
    padding: 6px 5px;
  }

  button:not(.btn) {
    font-size: 14px;
  }

  .filtro-container {
    flex-direction: column;
    align-items: flex-start;
  }

  .filtro-container input,
  .filtro-container select {
    width: 100%;
  }
  
  .container-fluid {
    padding: 15px;
  }
  
  .content-card {
    padding: 15px;
  }
  
  .stats-container {
    flex-direction: column;
  }
  
  .stat-card {
    min-width: 100%;
  }
  
  .table-extras {
    display: block;
    overflow-x: auto;
  }
  
  .hs-bar{
    grid-template-columns: 1fr;
    align-items:stretch;
  }
  
  .hs-bar .campo.campo-inline{
    grid-template-columns: 1fr; /* label acima do input */
    gap:6px;
  }
  
  .hs-bar .btn-action:not(.btn){ width:100%; }
}

/* ======================================================
   UTILITÁRIOS
   ====================================================== */

.bg-gradient-primary {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
}

hr {
  margin: 20px 0;
  border-color: #dee2e6;
}

/* Ícone de calendário */
.icon-calendar {
  margin-right: 5px;
}