/* Reporte de servicio imprimible */
.reporte-impreso { max-width: 800px; margin: 0 auto; background: #fff; padding: 16px; }
.reporte-cabeza { display: flex; align-items: center; gap: 16px; border-bottom: 2px solid #E3E7EE; padding-bottom: 12px; margin-bottom: 12px; }
.reporte-cabeza h1 { margin: 0; }
.reporte-cabeza p { margin: 2px 0; }
.reporte-logo { max-width: 160px; max-height: 70px; width: auto; height: auto; }
.reporte-pie { margin-top: 24px; padding-top: 8px; border-top: 1px solid #E3E7EE; font-size: 0.9rem; }

/* Móvil: la cabecera se apila y las tablas del reporte se desplazan */
@media (max-width: 820px) {
  .reporte-impreso { padding: 10px; overflow-x: auto; }
  .reporte-cabeza { flex-wrap: wrap; gap: 8px; }
  .reporte-cabeza h1 { font-size: 1.3rem; }
}

/* Al imprimir: sin barra superior, lateral, avisos ni botones */
@media print {
  .topbar, .lateral, #franja, .aviso, .no-imprimir, .boton, .volver, .ventana { display: none !important; }
  .cuerpo { display: block !important; }
  body, main { background: #fff !important; }
  .reporte-impreso { max-width: none; padding: 0; }
  .doc-cotizacion { max-width: none; border: none; border-radius: 0; padding: 0 0 44px; }
  /* La marca "Realizado por Puntual Desk" queda fija abajo y sale en cada página. */
  .doc-marca-puntual { position: fixed; bottom: 0; left: 0; right: 0; }
}

/* ---------- Documento de cotización (vista previa, impresión y PDF; etapa 29) ---------- */
.ventana-doc { width: min(920px, calc(100% - 24px)); }
.doc-vista { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.doc-cotizacion {
  --doc-color: #005EFF; /* lo cambia Ajustes → Formato de cotización (se pone en línea) */
  max-width: 800px; margin: 0 auto; background: #fff; padding: 24px;
  border: 1px solid #E3E7EE; border-radius: 8px;
  print-color-adjust: exact; -webkit-print-color-adjust: exact; /* que el color se imprima */
}
.doc-cabeza { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; border-bottom: 3px solid var(--doc-color); padding-bottom: 12px; margin-bottom: 16px; }
.doc-logo { max-width: 200px; max-height: 80px; width: auto; height: auto; }
.doc-empresa p { margin: 2px 0; }
.doc-empresa-nombre { font-weight: 800; font-size: 1.15rem; }
.doc-rotulo { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #556072; margin: 0 0 4px; }
.doc-cliente { border: 1px solid var(--doc-color); border-radius: 8px; padding: 10px 14px; margin-bottom: 16px; }
.doc-cliente-nombre { font-weight: 800; font-size: 1.05rem; }
.doc-cliente-dato { font-size: .9rem; }
.doc-h1 { color: var(--doc-color); margin: 0; }
.doc-sub { margin: 2px 0 10px; font-weight: 600; }
.doc-dl { display: grid; grid-template-columns: minmax(0, max-content) minmax(0, 1fr); gap: 4px 16px; margin: 0 0 14px; }
.doc-dl dt { font-weight: 700; color: #556072; }
.doc-dl dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.doc-tabla { width: 100%; border-collapse: collapse; margin: 10px 0 14px; font-size: .95rem; }
.doc-tabla th { text-align: left; padding: 6px 8px; border-bottom: 2px solid var(--doc-color); }
.doc-tabla td { padding: 6px 8px; border-bottom: 1px solid #E3E7EE; }
.doc-tabla .numero { text-align: right; }
.doc-subtotal td { font-weight: 700; }
.doc-totales { margin-left: auto; width: min(320px, 100%); border-collapse: collapse; }
.doc-totales td { padding: 4px 8px; border-bottom: 1px solid #E3E7EE; }
.doc-totales .numero { text-align: right; }
.doc-totales .doc-total td { font-weight: 800; border-top: 2px solid var(--doc-color); border-bottom: none; }
.doc-bloque { margin-top: 14px; }
.doc-h2 { font-size: 1rem; margin-bottom: 4px; }
.doc-pie { margin-top: 22px; padding-top: 8px; border-top: 1px solid var(--doc-color); font-size: .9rem; }
.doc-marca-puntual { margin-top: 18px; text-align: center; color: #A6AEBC; font-size: .85rem; }

/* Móvil: la cabecera se apila y las tablas del documento se desplazan */
@media (max-width: 820px) {
  .doc-cotizacion { padding: 14px; overflow-x: auto; }
  .doc-cabeza { flex-wrap: wrap; gap: 8px; }
  .doc-h1 { font-size: 1.3rem; }
}
