.print-viewer{padding:20px 0 48px}
.print-viewer h1{margin:0 0 20px;font-size:28px;letter-spacing:-.7px}
.printable-actions{position:sticky;top:0;z-index:10;display:flex;align-items:stretch;flex-wrap:wrap;gap:12px;padding:14px;margin-bottom:18px;background:#fffffff5;border:1px solid #dce9ef;border-radius:18px;box-shadow:0 6px 24px #172b500a}
.printable-action,.printable-zoom button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 16px;border:1px solid #c6d9e9;border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:14px;font-weight:750;cursor:pointer;text-decoration:none}
.printable-action svg{width:22px;height:22px;flex:none}
.printable-print{background:linear-gradient(110deg,#3dd1f5,#99f0eb);border-color:#6ed8eb;color:#14385d}
.printable-action:hover,.printable-zoom button:hover{border-color:var(--blue)}
.printable-actions [hidden]{display:none}
.printable-actions :disabled{opacity:.45;cursor:default}
.printable-print:disabled{cursor:wait}
.printable-actions button:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
.printable-zoom{display:flex;align-items:center;gap:5px;margin-left:auto}
.printable-zoom button{padding:8px;min-width:44px;font-size:21px}
.printable-zoom output{min-width:54px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}
.printable-zoom .printable-fit{font-size:12px;padding:8px 11px;margin-left:4px}
.printable-canvas{width:100%;overflow:auto;padding:16px;border-radius:18px;background:#e5edf17a}
.printable-paper{width:min(100%,794px);max-width:none;margin:0 auto;background:white;box-shadow:0 6px 24px #172b501a;line-height:0}
.printable-paper img{display:block;width:100%;max-width:none;height:auto}
.printable-paper img[hidden]{display:none}
.printable-help{padding:14px 18px;border:1px solid #dce9ef;border-radius:12px;background:#fff;color:var(--muted);font-size:14px;line-height:1.6}
.printable-loading{color:var(--muted);font-size:14px}
@media(max-width:720px){.print-viewer-page .header .nav{white-space:normal;gap:12px}.print-viewer-page .header .nav>a{font-size:13px}.print-viewer{padding-top:10px}.print-viewer h1{font-size:24px}.printable-actions{gap:10px;padding:10px}.printable-action{flex:1;padding:10px;font-size:13px}.printable-zoom{flex-basis:100%;justify-content:center;margin-left:0}.printable-canvas{padding:10px}.printable-help{font-size:13px}}
/* Leave printer margins and rounding space instead of stacking exact A4 heights.
   Safari can otherwise paginate a 297mm-tall block onto a second, blank page. */
@page{size:A4 portrait;margin:5mm}
@media print{
  html,body.print-viewer-page{display:block!important;width:auto!important;max-width:none!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;background:white!important;font-size:0!important;line-height:0!important}
  .print-viewer-page>:not(main),.print-viewer>:not(.printable-canvas){display:none!important}
  .print-viewer-page::before,.print-viewer-page::after,.print-viewer::before,.print-viewer::after,.printable-canvas::before,.printable-canvas::after,.printable-paper::before,.printable-paper::after{display:none!important;content:none!important}
  .print-viewer.wrap,.printable-canvas,.printable-paper{display:block!important;position:static!important;width:100%!important;max-width:200mm!important;height:auto!important;min-height:0!important;margin:0 auto!important;padding:0!important;overflow:visible!important;border:0!important;border-radius:0!important;background:white!important;box-shadow:none!important;transform:none!important}
  .printable-paper{break-inside:avoid;page-break-inside:avoid;break-after:auto;page-break-after:auto}
  .printable-paper img{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:286mm!important;object-fit:contain;margin:0!important;padding:0!important;border:0!important;break-inside:avoid;page-break-inside:avoid}
}
