@media print {
  @page { size: letter portrait; margin: 12mm; }
  body:has(app-engraved-keys) { background: #fff !important; }
  /* Hide everything except the form component and the ancestors containing it.
     This also works when a routed layout wraps the component. */
  body:has(app-engraved-keys) *:not(app-engraved-keys):not(app-engraved-keys *):not(:has(app-engraved-keys)) {
    display: none !important;
  }
  body:has(app-engraved-keys),
  body:has(app-engraved-keys) *:has(app-engraved-keys) {
    display: block !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body:has(app-engraved-keys) app-engraved-keys { display: block !important; }

  /* Compact paper layout; screen presentation and order values are unchanged. */
  app-engraved-keys .engraved-page { width: 100% !important; max-width: 180mm !important; margin: 0 auto !important; padding: 0 !important; }
  app-engraved-keys .order-sheet { padding: 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; font-size: 9pt !important; }
  app-engraved-keys .sheet-heading { gap: 4mm !important; }
  app-engraved-keys .sheet-heading img { width: 36mm !important; height: auto !important; max-height: 22mm !important; object-fit: contain !important; }
  app-engraved-keys .sheet-heading h1 { margin: 0 !important; font-size: 28pt !important; line-height: 1 !important; }
  app-engraved-keys .sheet-heading h1 span { font-size: 1em !important; font-weight: 700 !important; }
  app-engraved-keys .key-art { flex-wrap: nowrap !important; margin: 2mm 0 !important; gap: 4mm !important; }
  app-engraved-keys .regular-art { gap: 4mm !important; }
  app-engraved-keys .regular-art img, app-engraved-keys .neuter-art { height: 22mm !important; width: auto !important; }
  app-engraved-keys .laser-note { align-self: center !important; margin: 0 !important; padding: 2mm 3mm !important; font-size: 9pt !important; }
  app-engraved-keys .minimums { flex-direction: row !important; margin: 2mm 0 !important; gap: 4mm !important; font-size: 9pt !important; line-height: 1.2 !important; }
  app-engraved-keys .key-tables { grid-template-columns: 1fr 1fr !important; margin: 0 !important; gap: 6mm !important; align-items: start !important; }
  app-engraved-keys .key-tables table { font-size: 9pt !important; }
  app-engraved-keys .key-tables th, app-engraved-keys .key-tables td { padding: 0 1.5mm !important; line-height: 1.1 !important; }
  app-engraved-keys .key-tables tbody tr { height: 4mm !important; }
  app-engraved-keys .key-tables input[type=number] { height: 3.8mm !important; padding: 0 1mm !important; font-size: 9pt !important; }
  app-engraved-keys .key-tables tfoot th, app-engraved-keys .key-tables tfoot td { padding: 1mm !important; font-size: 8pt !important; }
  app-engraved-keys .customer-section { width: 100% !important; grid-template-columns: 1fr 1.5fr !important; gap: 4mm !important; margin: 3mm 0 0 !important; }
  app-engraved-keys .customer-section .shipping { padding-top: 1mm !important; font-size: 9pt !important; }
  app-engraved-keys .customer-section .shipping-value { margin-top: 2mm !important; min-height: 22mm !important; padding: 1.5mm !important; font-size: 9pt !important; line-height: 1.2 !important; }
  app-engraved-keys .store-section { padding-top: 1mm !important; }
  app-engraved-keys .store-section h2 { margin: 0 0 2mm !important; font-size: 12pt !important; }
  app-engraved-keys .store-section p { margin: 0 0 2mm !important; font-size: 9pt !important; line-height: 1.2 !important; }
  app-engraved-keys .engraving-cell { aspect-ratio: auto !important; height: 6mm !important; }
  app-engraved-keys .print-character { font-size: 9pt !important; }
  app-engraved-keys .signature { margin: 2mm auto !important; font-size: 9pt !important; }
  app-engraved-keys .totals { padding: 1.5mm 0 !important; font-size: 9pt !important; }
  app-engraved-keys .totals strong { font-size: 12pt !important; }
  app-engraved-keys .source-note { margin: 1mm 0 0 !important; font-size: 8pt !important; }
  app-engraved-keys .trap { display: none !important; }
}
