/* RepuestoApp v3.6 — impresión segura de informe y ticket */
@page reportPage { size: A4 portrait; margin: 10mm; }
@page ticketPage { size: 80mm auto; margin: 4mm; }

.print-report-document { page: reportPage; }
.print-ticket-document { page: ticketPage; }

@media print {
  html,
  body,
  body.repuestoapp-light {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    color: #111 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  body::before,
  body::after,
  .sidebar,
  .sidebar-overlay,
  .topbar,
  .print-hide,
  .toast,
  dialog,
  .modal {
    display: none !important;
    visibility: hidden !important;
  }

  .app-shell,
  .workspace,
  main.content,
  .content,
  .print-document-stage,
  .receipt-stage,
  .print-document,
  .receipt,
  .report-sheet,
  .detailed-cash-report {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    inset: auto !important;
    float: none !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: visible !important;
    transform: none !important;
    filter: none !important;
    backdrop-filter: none !important;
  }

  .workspace { margin-left: 0 !important; }
  main.content, .content { padding: 0 !important; }

  .print-document,
  .premium-card.print-document,
  body.repuestoapp-light .premium-card.print-document {
    background: #fff !important;
    color: #111 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .print-document *,
  .print-document *::before,
  .print-document *::after {
    visibility: visible !important;
    opacity: 1 !important;
    text-shadow: none !important;
  }

  .print-document h1,
  .print-document h2,
  .print-document h3,
  .print-document strong,
  .print-document b,
  .print-document td,
  .print-document th {
    color: #111 !important;
  }

  .print-document p,
  .print-document span,
  .print-document small {
    color: #333 !important;
  }

  .print-document img {
    display: block !important;
    visibility: visible !important;
    max-width: 100% !important;
  }

  /* Ticket */
  body.printing-ticket .receipt-stage {
    width: 72mm !important;
    margin: 0 auto !important;
  }

  body.printing-ticket .receipt {
    width: 72mm !important;
    max-width: 72mm !important;
    padding: 2mm !important;
    text-align: center !important;
    font-size: 9pt !important;
  }

  body.printing-ticket .receipt-logo {
    width: 18mm !important;
    height: 18mm !important;
    margin: 0 auto 2mm !important;
    object-fit: contain !important;
  }

  body.printing-ticket .receipt h1 {
    margin: 1mm 0 !important;
    font-size: 14pt !important;
  }

  body.printing-ticket .receipt-number {
    display: block !important;
    margin-bottom: 2mm !important;
    font-size: 9pt !important;
  }

  body.printing-ticket .receipt-info,
  body.printing-ticket .receipt-items {
    margin: 2mm 0 !important;
    padding: 2mm 0 !important;
    border-top: 1px dashed #555 !important;
    border-bottom: 1px dashed #555 !important;
  }

  body.printing-ticket .receipt-info p,
  body.printing-ticket .receipt-items > div {
    display: flex !important;
    justify-content: space-between !important;
    gap: 3mm !important;
    margin: 1.2mm 0 !important;
    text-align: left !important;
    break-inside: avoid !important;
  }

  body.printing-ticket .receipt-total {
    padding: 2mm !important;
    background: #fff !important;
    border: 1px solid #777 !important;
    border-radius: 0 !important;
  }

  body.printing-ticket .receipt-total strong {
    display: block !important;
    font-size: 17pt !important;
  }

  /* Informe A4 */
  body.printing-report .detailed-cash-report {
    width: 100% !important;
    padding: 0 !important;
    font-size: 9pt !important;
  }

  body.printing-report .report-document-header {
    display: flex !important;
    justify-content: space-between !important;
    gap: 8mm !important;
    padding-bottom: 4mm !important;
    border-bottom: 1px solid #999 !important;
  }

  body.printing-report .report-section {
    display: block !important;
    margin-top: 5mm !important;
    break-inside: auto !important;
  }

  body.printing-report .report-info-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 2mm !important;
  }

  body.printing-report .cash-summary-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 2mm !important;
  }

  body.printing-report .report-info-grid > div,
  body.printing-report .cash-summary-grid > article {
    background: #fff !important;
    border: 1px solid #aaa !important;
    padding: 2.2mm !important;
    border-radius: 0 !important;
    break-inside: avoid !important;
  }

  body.printing-report .report-table-wrap {
    display: block !important;
    overflow: visible !important;
    border: 1px solid #aaa !important;
    border-radius: 0 !important;
  }

  body.printing-report .report-data-table {
    display: table !important;
    width: 100% !important;
    min-width: 0 !important;
    border-collapse: collapse !important;
    font-size: 8pt !important;
  }

  body.printing-report .report-data-table thead { display: table-header-group !important; }
  body.printing-report .report-data-table tfoot { display: table-footer-group !important; }
  body.printing-report .report-data-table tr { break-inside: avoid !important; }

  body.printing-report .report-data-table th,
  body.printing-report .report-data-table td {
    background: #fff !important;
    border: 1px solid #bbb !important;
    padding: 1.6mm !important;
  }

  body.printing-report .sale-report-card {
    background: #fff !important;
    border: 1px solid #aaa !important;
    box-shadow: none !important;
    break-inside: avoid !important;
  }

  body.printing-report .report-signatures {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12mm !important;
    break-inside: avoid !important;
  }
}


/* RepuestoApp v3.7 — informe A4 compacto, sin hojas vacías */
@media print {
  body.printing-report,
  body.printing-report .workspace,
  body.printing-report main.content,
  body.printing-report .content,
  body.printing-report .print-document-stage {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }

  body.printing-report .detailed-cash-report {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 7.6pt !important;
    line-height: 1.18 !important;
  }

  body.printing-report .report-document-header {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 4mm !important;
    align-items: start !important;
    margin: 0 0 2.2mm !important;
    padding: 0 0 2mm !important;
    border-bottom: .35mm solid #555 !important;
    break-inside: avoid !important;
  }

  body.printing-report .report-brand {
    display: flex !important;
    align-items: center !important;
    gap: 2.5mm !important;
  }

  body.printing-report .report-brand img,
  body.printing-report .report-brand > span {
    width: 13mm !important;
    height: 13mm !important;
    margin: 0 !important;
    object-fit: contain !important;
    font-size: 18pt !important;
  }

  body.printing-report .report-brand h2 {
    margin: 0 0 .6mm !important;
    font-size: 12pt !important;
    line-height: 1.05 !important;
  }

  body.printing-report .report-brand small,
  body.printing-report .report-document-number small {
    display: block !important;
    margin: .2mm 0 !important;
    font-size: 6.8pt !important;
    line-height: 1.1 !important;
  }

  body.printing-report .report-document-number {
    min-width: 35mm !important;
    text-align: right !important;
  }

  body.printing-report .report-document-number span {
    font-size: 6.8pt !important;
  }

  body.printing-report .report-document-number strong {
    display: block !important;
    margin: .5mm 0 !important;
    font-size: 11pt !important;
  }

  body.printing-report .report-section {
    display: block !important;
    margin: 2.2mm 0 0 !important;
    padding: 0 !important;
    break-before: auto !important;
    break-after: auto !important;
    page-break-before: auto !important;
    page-break-after: auto !important;
  }

  body.printing-report .report-section h3 {
    margin: 0 0 1mm !important;
    padding: 1mm 1.5mm !important;
    font-size: 8pt !important;
    line-height: 1.1 !important;
    background: #f0f2f5 !important;
    border-left: .8mm solid #555 !important;
    break-after: avoid !important;
  }

  body.printing-report .report-info-grid {
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    gap: .8mm !important;
  }

  body.printing-report .cash-summary-grid {
    display: grid !important;
    grid-template-columns: repeat(6,minmax(0,1fr)) !important;
    gap: .8mm !important;
  }

  body.printing-report .report-info-grid > div,
  body.printing-report .cash-summary-grid > article {
    min-height: 0 !important;
    margin: 0 !important;
    padding: 1mm 1.2mm !important;
    border: .2mm solid #aaa !important;
    background: #fff !important;
    break-inside: avoid !important;
  }

  body.printing-report .report-info-grid span,
  body.printing-report .cash-summary-grid span {
    display: block !important;
    margin: 0 0 .3mm !important;
    font-size: 5.8pt !important;
    line-height: 1 !important;
  }

  body.printing-report .report-info-grid strong,
  body.printing-report .cash-summary-grid strong {
    display: block !important;
    margin: 0 !important;
    font-size: 7.4pt !important;
    line-height: 1.05 !important;
  }

  body.printing-report .report-info-grid small,
  body.printing-report .cash-summary-grid small {
    display: block !important;
    margin-top: .25mm !important;
    font-size: 5.6pt !important;
    line-height: 1 !important;
  }

  body.printing-report .report-table-wrap,
  body.printing-report .report-table-wrap.compact {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: visible !important;
  }

  body.printing-report .report-data-table,
  body.printing-report .report-data-table.compact {
    width: 100% !important;
    margin: 0 !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
    font-size: 6.7pt !important;
    line-height: 1.08 !important;
  }

  body.printing-report .report-data-table th,
  body.printing-report .report-data-table td,
  body.printing-report .report-data-table.compact th,
  body.printing-report .report-data-table.compact td {
    padding: .65mm .9mm !important;
    border: .18mm solid #bbb !important;
    vertical-align: top !important;
  }

  body.printing-report .report-data-table thead {
    display: table-header-group !important;
  }

  body.printing-report .report-data-table tr {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.printing-report .sales-report-list {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.printing-report .sale-report-card {
    display: block !important;
    margin: 0 0 1.2mm !important;
    padding: 1mm !important;
    border: .2mm solid #aaa !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  body.printing-report .sale-report-card:last-child {
    margin-bottom: 0 !important;
  }

  body.printing-report .sale-report-head {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 2mm !important;
    margin: 0 0 .7mm !important;
    padding: 0 0 .6mm !important;
    border-bottom: .18mm solid #bbb !important;
    break-after: avoid !important;
  }

  body.printing-report .sale-report-head h4,
  body.printing-report .sale-report-head strong {
    margin: 0 !important;
    font-size: 7.4pt !important;
  }

  body.printing-report .sale-report-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .5mm 3mm !important;
    margin: 0 0 .8mm !important;
    font-size: 6.2pt !important;
    line-height: 1.05 !important;
  }

  body.printing-report .closing-notes {
    min-height: 0 !important;
    margin: 0 !important;
    padding: 1.2mm !important;
    border: .2mm solid #aaa !important;
    font-size: 6.8pt !important;
    line-height: 1.15 !important;
    break-inside: auto !important;
  }

  body.printing-report .report-signatures {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 6mm !important;
    margin: 3mm 0 0 !important;
    padding: 0 !important;
    break-inside: avoid !important;
  }

  body.printing-report .report-signatures > div {
    min-height: 0 !important;
    padding-top: 2mm !important;
    border-top: .2mm solid #777 !important;
  }

  body.printing-report .report-signatures span,
  body.printing-report .report-signatures strong,
  body.printing-report .report-signatures small {
    display: block !important;
    margin: .2mm 0 !important;
    font-size: 6.4pt !important;
    line-height: 1.05 !important;
  }

  body.printing-report .report-footer {
    margin: 2mm 0 0 !important;
    padding-top: 1mm !important;
    border-top: .18mm solid #bbb !important;
    font-size: 5.8pt !important;
    text-align: center !important;
    break-inside: avoid !important;
  }

  body.printing-report .page-break-avoid {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  body.printing-report .empty-report-line {
    margin: 0 !important;
    padding: 1mm !important;
    font-size: 6.6pt !important;
  }
}
