
  .pr { border: 1px solid var(--pr-linea, #999); border-radius: var(--pr-radio, 3px); margin: 0 0 5mm; break-inside: avoid; page-break-inside: avoid; overflow: hidden; background: var(--pr-fondo, #fff); color: var(--pr-texto, #111); font-family: Arial, Helvetica, sans-serif; }
  .pr-cab { display: flex; align-items: center; gap: 6px; padding: 5px 9px; font-size: 8.5pt; text-transform: uppercase; letter-spacing: .06em; border-bottom: 1px solid var(--pr-linea, #999); color: var(--pr-suave, #555); }
  .pr-cab b { color: var(--pr-texto, #111); } .pr-cab .ref { margin-left: auto; font-weight: normal; letter-spacing: .04em; }
  .pr-cuerpo { padding: 9px; }
  .pr-nota { padding: 6px 9px 8px; font-size: 9.5pt; line-height: 1.4; border-top: 1px dotted var(--pr-linea, #999); color: var(--pr-texto, #111); font-family: Georgia, 'Times New Roman', serif; }
  .pr-nota b { font-family: Arial, sans-serif; font-size: 8pt; text-transform: uppercase; letter-spacing: .06em; color: var(--pr-suave, #555); display: block; margin-bottom: 2px; }
  .pr-qr { display: flex; gap: 10px; align-items: center; padding: 6px 9px; font-size: 8.5pt; color: var(--pr-suave, #555); } .pr-qr svg { width: 22mm; height: 22mm; flex: 0 0 auto; }
  /* declaración */
  .pr-decl { font-family: Georgia, serif; font-size: 10.5pt; line-height: 1.5; } .pr-firma { text-align: right; font-family: 'Segoe Script', 'Comic Sans MS', cursive; font-size: 10pt; margin-top: 6px; }
  /* chat */
  .pr-tel { background: #e5ddd5; border-radius: 10px; padding: 8px; max-width: 78mm; }
  .pr-tel .cab { display: flex; align-items: center; gap: 8px; background: #075e54; color: #fff; padding: 6px 8px; border-radius: 8px 8px 0 0; margin: -8px -8px 8px; font-size: 9.5pt; }
  .pr-tel .cab img, .pr-tel .cab .av { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; background: #ccc; }
  .pr-bur { max-width: 86%; padding: 5px 8px; border-radius: 8px; font-size: 9.5pt; line-height: 1.35; margin: 4px 0; background: #fff; color: #111; position: relative; }
  .pr-bur.yo { background: #dcf8c6; margin-left: auto; } .pr-bur small { display: block; text-align: right; font-size: 7pt; color: #777; margin-top: 2px; }
  /* publicación */
  .pr-post { border: 1px solid #ddd; border-radius: 8px; padding: 8px 10px; background: #fff; color: #111; max-width: 90mm; }
  .pr-post .quien { display: flex; align-items: center; gap: 8px; font-size: 9.5pt; margin-bottom: 6px; } .pr-post .quien b { display: block; } .pr-post .quien span { color: #666; font-size: 8pt; }
  .pr-post .quien .av { width: 30px; height: 30px; border-radius: 50%; background: #cfd8dc; display: flex; align-items: center; justify-content: center; font-weight: bold; color: #455a64; font-size: 10pt; }
  .pr-post .texto { font-size: 10pt; line-height: 1.4; } .pr-post .pie { border-top: 1px solid #eee; margin-top: 6px; padding-top: 5px; font-size: 8pt; color: #666; display: flex; gap: 14px; }
  /* tablas: llamadas y extracto */
  .pr table { border-collapse: collapse; width: 100%; font-size: 9pt; color: #111; background: #fff; } .pr th, .pr td { border: 1px solid #bbb; padding: 3px 6px; text-align: left; } .pr th { background: #eee; font-size: 8pt; text-transform: uppercase; letter-spacing: .04em; }
  .pr td.num { text-align: right; font-variant-numeric: tabular-nums; }
  /* cámara */
  .pr-cctv { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; } .pr-cctv .fr { position: relative; aspect-ratio: 4/3; overflow: hidden; background: #111; border: 1px solid #333; }
  .pr-cctv .fr img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.25) brightness(.85); }
  .pr-cctv .fr .ts { position: absolute; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.65); color: #9f9; font-family: 'Courier New', monospace; font-size: 7.5pt; padding: 2px 4px; letter-spacing: .04em; }
  .pr-cctv .fr .cam { position: absolute; left: 4px; top: 3px; color: #f44; font-family: 'Courier New', monospace; font-size: 7.5pt; } .pr-cctv .fr .cam::before { content: '●'; margin-right: 3px; }
  .pr-cctv .fr.sin { display: flex; align-items: center; justify-content: center; color: #ccc; font-family: 'Courier New', monospace; font-size: 9pt; background: repeating-linear-gradient(0deg, #222 0 2px, #2c2c2c 2px 4px); }
  /* foto de escena / vigilancia */
  .pr-foto { position: relative; max-width: 100mm; background: #222; overflow: hidden; } .pr-foto > img { width: 100%; display: block; aspect-ratio: 3/2; object-fit: cover; }
  .pr-foto .mk { position: absolute; width: 16px; height: 16px; background: #ffd400; color: #111; font: bold 8pt Arial, sans-serif; display: flex; align-items: center; justify-content: center; clip-path: polygon(50% 0, 100% 100%, 0 100%); padding-top: 4px; }
  .pr-foto .inset { position: absolute; right: 6px; bottom: 6px; width: 28%; border: 2px solid #fff; background: #fff; } .pr-foto .inset img { width: 100%; display: block; aspect-ratio: 1; object-fit: cover; }
  .pr-foto .barra { position: absolute; left: 0; right: 0; top: 0; background: rgba(0,0,0,.6); color: #fff; font: 7.5pt 'Courier New', monospace; padding: 2px 6px; letter-spacing: .05em; }
  .pr-foto .gente { position: absolute; left: 6%; bottom: 6%; display: flex; gap: 8px; align-items: flex-end; } .pr-foto .gente img, .pr-foto .gente .av { width: 22%; min-width: 46px; aspect-ratio: 2/3; object-fit: cover; border: 2px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,.6); filter: contrast(1.1) saturate(.8); background: #999; }
  .pr-foto .gente .av { display: flex; align-items: center; justify-content: center; font-weight: bold; color: #333; }
  /* etiqueta de prueba */
  .pr-etq { border: 2px solid #b8860b; background: #fff8dc; color: #111; padding: 8px 10px; max-width: 90mm; font-size: 9.5pt; }
  .pr-etq .n { font: bold 14pt Arial, sans-serif; color: #b8860b; } .pr-etq dl { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; margin: 6px 0 0; } .pr-etq dt { font-size: 8pt; text-transform: uppercase; color: #666; } .pr-etq dd { margin: 0; }
  /* documento / carta / email */
  .pr-doc { background: #fdfcf7; color: #111; border: 1px solid #ccc; padding: 10px 12px; max-width: 110mm; font-family: Georgia, serif; font-size: 10pt; line-height: 1.5; position: relative; }
  .pr-doc h4 { margin: 0 0 6px; font: bold 10pt Arial, sans-serif; text-transform: uppercase; letter-spacing: .06em; border-bottom: 1px solid #999; padding-bottom: 3px; }
  .pr-doc.carta { font-family: 'Segoe Script', 'Comic Sans MS', cursive; background: #f7f1e1; }
  .pr-doc .sello { position: absolute; right: 8px; top: 8px; border: 2px solid #a11; color: #a11; font: bold 8pt Arial, sans-serif; padding: 1px 5px; transform: rotate(8deg); text-transform: uppercase; opacity: .85; }
  .pr-mail { background: #fff; color: #111; border: 1px solid #ccc; max-width: 110mm; font-size: 9.5pt; } .pr-mail .hd { background: #f3f3f3; padding: 6px 10px; border-bottom: 1px solid #ccc; display: grid; grid-template-columns: auto 1fr; gap: 1px 8px; } .pr-mail .hd span { color: #666; } .pr-mail .cu { padding: 8px 10px; line-height: 1.45; }
  /* credenciales y nube */
  .pr-login { display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; font-size: 9.5pt; background: #1e2a33; color: #e8eef2; padding: 10px 12px; border-radius: 6px; max-width: 90mm; font-family: 'Courier New', monospace; } .pr-login span { color: #8fb3c9; }
  .pr-postit { display: inline-block; background: #fff59d; color: #333; padding: 8px 10px; font-family: 'Segoe Script', 'Comic Sans MS', cursive; font-size: 9.5pt; transform: rotate(-2deg); box-shadow: 1px 2px 4px rgba(0,0,0,.25); margin: 8px 0 0; max-width: 70mm; }
  .pr-nube { border: 2px dashed var(--pr-linea, #999); padding: 12px; text-align: center; font-size: 9.5pt; } .pr-nube input { font: inherit; padding: 5px 8px; border: 1px solid #999; border-radius: 4px; width: 60%; max-width: 220px; } .pr-nube button { font: inherit; padding: 5px 10px; margin-left: 4px; }
  .pr-audio { display: flex; align-items: center; gap: 10px; font-size: 9.5pt; } .pr-audio img, .pr-audio .av { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; background: #ccc; display: flex; align-items: center; justify-content: center; font-weight: bold; color: #555; } .pr-audio .onda { flex: 1; height: 18px; background: repeating-linear-gradient(90deg, var(--pr-suave, #777) 0 2px, transparent 2px 4px); opacity: .5; border-radius: 2px; }
  .pr-audio button { font: inherit; padding: 5px 10px; border-radius: 20px; border: 1px solid var(--pr-linea, #999); background: var(--pr-fondo, #fff); color: inherit; cursor: pointer; }