body {
  font-family: 'Inter', sans-serif;
  background-color: #070b14;
  color: #f3f4f6;
  margin: 0;
  height: 100vh;
  width: 100vw;
  overflow: hidden;
}

.money {
  font-variant-numeric: tabular-nums;
}

.custom-scrollbar::-webkit-scrollbar {
  width: 6px;
}

.custom-scrollbar::-webkit-scrollbar-track {
  background: transparent;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  background: #1f2937;
  border-radius: 10px;
}

@keyframes spin {
  100% {
    transform: rotate(360deg);
  }
}

.animate-spin-slow {
  animation: spin 12s linear infinite;
}

.sidebar-item {
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.sidebar-item.active {
  background-color: #2563eb;
  color: white;
  box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.4);
}

.dashboard-card {
  transition: transform 0.2s ease, border-color 0.2s ease;
}

.dashboard-card:hover {
  border-color: rgba(37, 99, 235, 0.5);
  transform: translateY(-2px);
}

.status-pill {
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.fade-in-up {
  animation: fadeInUp 0.4s ease forwards;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background-color: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(8px);
}

.risco-badge {
  padding: 4px 12px;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.risco-alto {
  background: rgba(239, 68, 68, 0.2);
  color: #fca5a5;
  border: 1px solid rgba(239, 68, 68, 0.3);
}

.risco-medio {
  background: rgba(234, 179, 8, 0.2);
  color: #fde047;
  border: 1px solid rgba(234, 179, 8, 0.3);
}

.risco-baixo {
  background: rgba(34, 197, 94, 0.2);
  color: #86efac;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.tipo-badge {
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 600;
}

.tipo-gafi-call {
  background: rgba(220, 38, 38, 0.3);
  color: #fca5a5;
}

.tipo-sancoes {
  background: rgba(147, 51, 234, 0.3);
  color: #d8b4fe;
}

.tipo-geopolitico {
  background: rgba(249, 115, 22, 0.3);
  color: #fdba74;
}

.tipo-gafi-monitoramento {
  background: rgba(234, 179, 8, 0.3);
  color: #fde047;
}

.tipo-base {
  background: rgba(107, 114, 128, 0.3);
  color: #d1d5db;
}



/* --- ESTILOS DE TELA (MANTÉM O SISTEMA BONITO) --- */
body {
  font-family: 'Inter', sans-serif;
  background-color: #070b14;
  color: #f3f4f6;
  margin: 0;
  height: 100vh;
  width: 100vw;
  overflow: hidden;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

.text-textMark-300 {
  --tw-text-opacity: 1;
  color: rgb(110 251 7);
}

@page {
  size: A4 landscape;
  margin: 0;
}

@media print {

  html,
  body {
    margin: 0 !important;
    padding: 0 !important;
    background: white !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  body * {
    visibility: hidden !important;
  }

  .print-root,
  .print-root * {
    visibility: visible !important;
  }

  html,
  body,
  #root,
  .app,
  main,
  section,
  .h-full,
  .min-h-screen,
  .flex-1,
  .overflow-hidden,
  .overflow-y-auto,
  .custom-scrollbar,
  .report-scroll-area,
  .report-canvas,
  .print-root {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    position: static !important;
    padding: 0 !important;
  }

  .report-canvas,
  .print-root {
    display: block !important;
    gap: 0 !important;
  }

  .printable-page:not(:last-child):not(.last-page) {
    display: block !important;
    flex: none !important;
    page-break-before: auto !important;
    page-break-after: always !important;
    break-after: page !important;
  }

  .printable-page:last-child,
  .printable-page.last-page {
    display: block !important;
    flex: none !important;
    page-break-before: auto !important;
    page-break-after: avoid !important;
    break-after: avoid !important;
  }

  .active-report-saldo_contabil_processos .printable-page:not(:last-child):not(.last-page) {
    width: 296mm !important;
    height: 209mm !important;
    min-height: 209mm !important;
    max-height: 209mm !important;
    margin: 0 auto !important;
    padding: 28px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    page-break-after: always !important;
    break-after: always !important;
  }

  .active-report-saldo_contabil_processos .printable-page:last-child,
  .active-report-saldo_contabil_processos .printable-page.last-page {
    width: 296mm !important;
    height: 209mm !important;
    min-height: 209mm !important;
    max-height: 209mm !important;
    margin: 0 auto !important;
    padding: 28px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    page-break-after: avoid !important;
    break-after: avoid !important;
  }

  .active-report-saldo_contabil_processos .report-content {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .active-report-saldo_contabil_processos .report-content>.flex-1 {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
  }

  /* Relatórios Paginados (Impressão) */
  .active-report-ganhos_cambiais .printable-page:not(:last-child):not(.last-page),
  .active-report-saldo_consignacao .printable-page:not(:last-child):not(.last-page),
  .active-report-balancete_processos .printable-page:not(:last-child):not(.last-page),
  .active-report-resultado_processos .printable-page:not(:last-child):not(.last-page),
  .active-report-vendas_cliente .printable-page:not(:last-child):not(.last-page),
  .active-report-saldos_ordens .printable-page:not(:last-child):not(.last-page),
  .active-report-pendencias_processos .printable-page:not(:last-child):not(.last-page) {
    width: 296mm !important;
    height: 209mm !important;
    min-height: 209mm !important;
    max-height: 209mm !important;
    margin: 0 auto !important;
    padding: 10mm !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    page-break-after: always !important;
    break-after: always !important;
  }

  .active-report-ganhos_cambiais .printable-page:last-child,
  .active-report-ganhos_cambiais .printable-page.last-page,
  .active-report-saldo_consignacao .printable-page:last-child,
  .active-report-saldo_consignacao .printable-page.last-page,
  .active-report-balancete_processos .printable-page:last-child,
  .active-report-balancete_processos .printable-page.last-page,
  .active-report-resultado_processos .printable-page:last-child,
  .active-report-resultado_processos .printable-page.last-page,
  .active-report-vendas_cliente .printable-page:last-child,
  .active-report-vendas_cliente .printable-page.last-page,
  .active-report-saldos_ordens .printable-page:last-child,
  .active-report-saldos_ordens .printable-page.last-page,
  .active-report-pendencias_processos .printable-page:last-child,
  .active-report-pendencias_processos .printable-page.last-page {
    width: 296mm !important;
    height: 209mm !important;
    min-height: 209mm !important;
    max-height: 209mm !important;
    margin: 0 auto !important;
    padding: 10mm !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    page-break-after: avoid !important;
    break-after: avoid !important;
  }

  .active-report-ganhos_cambiais .report-content,
  .active-report-saldo_consignacao .report-content,
  .active-report-balancete_processos .report-content,
  .active-report-resultado_processos .report-content,
  .active-report-vendas_cliente .report-content,
  .active-report-saldos_ordens .report-content,
  .active-report-pendencias_processos .report-content {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
  }



  .no-print {
    display: none !important;
  }

  tr,
  td,
  th {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
}

@media screen {
  .printable-page {
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  }

  .active-report-saldo_contabil_processos .printable-page {
    width: 98% !important;
    height: 794px !important;
    min-height: 794px !important;
    max-height: 794px !important;
    padding: 28px !important;
    box-sizing: border-box !important;
    background: white !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    margin: 20px auto !important;
  }

  .active-report-saldo_contabil_processos .report-content {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .landscape-paper,
  .active-report-ganhos_cambiais .printable-page,
  .active-report-saldo_consignacao .printable-page,
  .active-report-balancete_processos .printable-page,
  .active-report-resultado_processos .printable-page,
  .active-report-vendas_cliente .printable-page,
  .active-report-saldos_ordens .printable-page,
  .active-report-pendencias_processos .printable-page {
    width: 297mm !important;
    min-height: 210mm !important;
    margin: 20px auto !important;
    background: white !important;
    padding: 10mm !important;
  }

  .active-report-ganhos_cambiais .printable-page,
  .active-report-saldo_consignacao .printable-page,
  .active-report-balancete_processos .printable-page,
  .active-report-resultado_processos .printable-page,
  .active-report-vendas_cliente .printable-page,
  .active-report-saldos_ordens .printable-page,
  .active-report-pendencias_processos .printable-page {
    height: 210mm !important;
    max-height: 210mm !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Override para manter a proporcionalidade exata de folha A4 paisagem quando expandido */
  .report-expanded.active-report-saldo_contabil_processos .printable-page {
    width: 297mm !important;
    height: 210mm !important;
    min-height: 210mm !important;
    max-height: 210mm !important;
    padding: 10mm !important;
  }
}

.editor-a4 {
  box-sizing: border-box;
  page-break-inside: auto;
  overflow-wrap: break-word;
}

.editor-a4 p,
.editor-a4 div,
.editor-a4 table,
.editor-a4 section {
  break-inside: avoid;
  page-break-inside: avoid;
}

.editor-a4 br {
  line-height: 1.6;
}

.pdf-is-generating .printable-page:not(:last-child):not(.last-page) {
  margin: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  page-break-after: always !important;
  break-after: always !important;
}

.pdf-is-generating .printable-page:last-child,
.pdf-is-generating .printable-page.last-page {
  margin: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  page-break-after: avoid !important;
  break-after: avoid !important;
}

.active-report-saldo_contabil_processos .pdf-is-generating .printable-page {
  width: 296mm !important;
  height: 209mm !important;
  min-height: 209mm !important;
  max-height: 209mm !important;
  padding: 28px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

#report-pdf-container {
  background: #070b14;
}


#report-pdf-container.pdf-is-generating {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #ffffff !important;
}

.printable-page {
  width: 287mm;
  height: auto !important;
  min-height: unset !important;

  margin: 0 auto !important;
  background: #ffffff;
  overflow: hidden;

  display: block !important;
  box-sizing: border-box !important;
}

.printable-page:not(:last-child) {
  page-break-after: always !important;
  break-after: page !important;
}

.printable-page:last-child {
  page-break-after: avoid !important;
  break-after: avoid !important;
}

#report-pdf-container {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

#report-pdf-container>.printable-page:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.report-content {
  width: 100%;
  height: 100%;
}

@media screen {
  main:has(#report-pdf-container) {
    overflow: hidden !important;
  }

  main:has(#report-pdf-container)>div {
    height: 100% !important;
    min-height: 100% !important;
    overflow: hidden !important;
  }
}