/* =====================================================
   DARK MODE STYLES - v3.5.0
   ===================================================== */

/* Root Variables */
:root {
  --transition-speed: 0.3s;
}

/* Dark Mode Base */
body.dark-mode {
  background-color: #111827 !important;
  color: #f9fafb !important;
}

body.light-mode {
  background-color: #ffffff !important;
  color: #111827 !important;
}

/* Transições suaves */
body,
.bg-white,
.bg-gray-50,
.bg-gray-100,
input,
textarea,
select,
button {
  transition: background-color var(--transition-speed), 
              color var(--transition-speed), 
              border-color var(--transition-speed);
}

/* ===================================================
   DARK MODE - Componentes Principais
   ===================================================== */

.dark-mode {
  /* Containers */
  .bg-white {
    background-color: #1f2937 !important;
  }

  .bg-gray-50 {
    background-color: #111827 !important;
  }

  .bg-gray-100 {
    background-color: #1f2937 !important;
  }

  .bg-gray-200 {
    background-color: #374151 !important;
  }

  /* Text Colors */
  .text-gray-900 {
    color: #f9fafb !important;
  }

  .text-gray-800 {
    color: #e5e7eb !important;
  }

  .text-gray-700 {
    color: #d1d5db !important;
  }

  .text-gray-600 {
    color: #9ca3af !important;
  }

  .text-gray-500 {
    color: #6b7280 !important;
  }

  .text-gray-400 {
    color: #4b5563 !important;
  }

  /* Borders */
  .border-gray-200 {
    border-color: #374151 !important;
  }

  .border-gray-300 {
    border-color: #4b5563 !important;
  }

  .border-gray-400 {
    border-color: #6b7280 !important;
  }

  /* Inputs */
  input,
  textarea,
  select {
    background-color: #374151 !important;
    border-color: #4b5563 !important;
    color: #f9fafb !important;
  }

  input::placeholder,
  textarea::placeholder {
    color: #9ca3af !important;
  }

  input:focus,
  textarea:focus,
  select:focus {
    background-color: #1f2937 !important;
    border-color: #60a5fa !important;
  }

  /* Buttons */
  .btn-primary,
  button.bg-blue-600 {
    background-color: #2563eb !important;
  }

  .btn-primary:hover,
  button.bg-blue-600:hover {
    background-color: #1d4ed8 !important;
  }

  /* Cards */
  .shadow-md,
  .shadow-lg,
  .shadow-xl {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 
                0 2px 4px -1px rgba(0, 0, 0, 0.3) !important;
  }

  /* Modals */
  .modal-overlay {
    background-color: rgba(17, 24, 39, 0.95) !important;
  }

  /* Tables */
  table {
    background-color: #1f2937 !important;
  }

  th {
    background-color: #111827 !important;
    color: #f9fafb !important;
  }

  td {
    border-color: #374151 !important;
    color: #e5e7eb !important;
  }

  tr:hover {
    background-color: #374151 !important;
  }

  /* Dropdown */
  .dropdown-menu {
    background-color: #1f2937 !important;
    border-color: #374151 !important;
  }

  .dropdown-item:hover {
    background-color: #374151 !important;
  }

  /* Sidebar */
  #sidebar {
    background-color: #111827 !important;
    border-color: #374151 !important;
  }

  #sidebar a {
    color: #d1d5db !important;
  }

  #sidebar a:hover {
    background-color: #1f2937 !important;
    color: #60a5fa !important;
  }

  #sidebar a.active {
    background-color: #1f2937 !important;
    color: #60a5fa !important;
  }

  /* Header */
  header {
    background-color: #1f2937 !important;
    border-color: #374151 !important;
  }

  /* Charts (Chart.js) */
  canvas {
    filter: brightness(0.9) contrast(1.1);
  }

  /* Toast Notifications */
  .toast {
    background-color: #1f2937 !important;
    color: #f9fafb !important;
    border: 1px solid #374151 !important;
  }

  /* Badges */
  .badge {
    background-color: #374151 !important;
    color: #f9fafb !important;
  }

  /* Code blocks */
  pre,
  code {
    background-color: #0f172a !important;
    color: #e5e7eb !important;
  }
}

/* ===================================================
   LIGHT MODE - Garantir que elementos fiquem corretos
   ===================================================== */

.light-mode {
  /* Garantir que inputs estejam corretos */
  input,
  textarea,
  select {
    background-color: #ffffff !important;
    border-color: #d1d5db !important;
    color: #111827 !important;
  }

  input::placeholder,
  textarea::placeholder {
    color: #9ca3af !important;
  }
}

/* ===================================================
   SCROLLBAR DARK MODE
   ===================================================== */

.dark-mode ::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

.dark-mode ::-webkit-scrollbar-track {
  background: #1f2937;
}

.dark-mode ::-webkit-scrollbar-thumb {
  background: #4b5563;
  border-radius: 6px;
}

.dark-mode ::-webkit-scrollbar-thumb:hover {
  background: #6b7280;
}

/* ===================================================
   ANIMAÇÕES DE TRANSIÇÃO
   ===================================================== */

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.theme-transition {
  animation: fadeIn 0.3s ease-in-out;
}

/* ===================================================
   UTILITIES
   ===================================================== */

/* Esconder elementos apenas no dark mode */
.dark-mode .hide-dark {
  display: none !important;
}

/* Esconder elementos apenas no light mode */
.light-mode .hide-light {
  display: none !important;
}

/* Forçar cores específicas independente do tema */
.force-white-bg {
  background-color: #ffffff !important;
}

.force-dark-bg {
  background-color: #111827 !important;
}

/* ===================================================
   LOADING SPINNER DARK MODE
   ===================================================== */

.dark-mode .spinner {
  border-color: #374151 !important;
  border-top-color: #60a5fa !important;
}

/* ===================================================
   MEDIA QUERIES - Preferência do Sistema
   ===================================================== */

@media (prefers-color-scheme: dark) {
  /* Aplicar dark mode se usuário não escolheu manualmente */
  body:not(.light-mode):not(.dark-mode) {
    background-color: #111827;
    color: #f9fafb;
  }
}

/* ===================================================
   IMPRESSÃO - Sempre Light Mode
   ===================================================== */

@media print {
  body.dark-mode {
    background-color: #ffffff !important;
    color: #000000 !important;
  }

  .dark-mode .bg-gray-800,
  .dark-mode .bg-gray-900 {
    background-color: #ffffff !important;
  }

  .dark-mode .text-gray-100,
  .dark-mode .text-gray-200 {
    color: #000000 !important;
  }
}
