/* Estilos complementarios e impresión profesional */

/* Prevenir cualquier deslizamiento o desplazamiento horizontal */
*, *::before, *::after {
  box-sizing: border-box;
}

html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  margin: 0;
  padding: 0;
}

/* Custom scrollbars */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Visor de imágenes / Zoom y Drag */
#canvasContainer {
  cursor: grab;
  user-select: none;
}
#canvasContainer:active {
  cursor: grabbing;
}

#activePreviewImage {
  transition: transform 0.05s ease-out;
  transform-origin: center center;
}

/* Animations */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in {
  animation: fadeIn 0.2s ease-out forwards;
}

/* Number input spinners hide for clean look */
input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
  margin: 0; 
}
input[type=number] {
  -moz-appearance: textfield;
}

/* ===================================================
   REGLAS DE IMPRESIÓN / EXPORTACIÓN A PDF (A4)
   =================================================== */
@media print {
  @page {
    size: A4 portrait;
    margin: 12mm 10mm 15mm 10mm;
  }

  body {
    background-color: #ffffff !important;
    color: #0f172a !important;
    font-size: 11pt !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

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

  .print-only {
    display: block !important;
  }

  /* Force clean layouts */
  main {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Table styles in print */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
  }

  thead {
    display: table-header-group;
  }

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

  .category-group-block {
    page-break-inside: avoid !important;
    margin-bottom: 1rem !important;
  }

  /* Remove shadows and rounded corners that look blurry in print */
  * {
    box-shadow: none !important;
  }

  /* Input fields should look like clean text */
  input, textarea, select {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
  }
}
