.qr-room-preview{display:flex;gap:1rem;align-items:center;margin:.85rem 0;padding:.75rem;background:#eaf5f2;border:1px solid #c8e1dc;border-radius:.65rem;overflow-wrap:anywhere}
.qr-room-preview img{display:block;flex:none;background:#fff}
#scannedRoom{align-items:start;flex-direction:column;gap:.3rem}
#scannedRoomInfo{font-size:.85rem}
#qrDialog{width:min(860px,94vw);min-width:0}
.qr-dialog-head{justify-content:space-between}
.qr-dialog-head h2{margin:0}
#qrContent{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr));gap:.7rem}
#qrContent .qrLabel{display:flex;flex-direction:column;align-items:center;max-width:none;min-width:0;padding:.9rem;background:white;border:1px solid #c8d9d9;border-radius:.7rem;overflow-wrap:anywhere}
#qrContent .qrLabel img{display:block;width:min(100%,175px);height:auto;aspect-ratio:1}
.qr-card-actions{display:flex;justify-content:center;gap:.4rem;flex-wrap:wrap;margin-top:.7rem}
.qr-print-page{max-width:900px;margin:auto;padding:1rem}
.qr-print-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:0 0 1rem}
.qr-print-toolbar h1{font-size:1.7rem;margin:.45rem 0}
.qr-print-toolbar p{margin:.3rem 0}
#qrPageStatus{width:100%;font-size:.88rem}
.poster-sheet{width:min(100%,555px);margin:auto;background:white}
.qr-poster{position:relative;aspect-ratio:1373/2048}
.poster-art{display:block;width:100%;height:100%}
/* BRSAFIS.jpg QR face: x=563, y=1480, size=248 in the 1373 × 2048 template. */
.poster-code{display:block;position:absolute;left:41.0051%;top:72.265625%;width:18.0626366%;height:12.109375%;background:#fff;image-rendering:pixelated}
.poster-caption{display:grid;gap:.1rem;text-align:center;padding:.35rem .6rem;font-size:.9rem;line-height:1.3;overflow-wrap:anywhere}
.poster-caption span{font-size:.82rem}
.qr-single-label{background:white;border:1px dashed #8ea6a8;border-radius:.5rem;min-width:min(100%,220px);overflow-wrap:anywhere}
.qr-single-label img{display:block;margin:auto;max-width:100%;height:auto}
.qr-print-hint{max-width:555px;margin:1rem auto;font-size:.9rem}
@page{size:A4 portrait;margin:8mm}
@media print{
  body.qr-print-page{width:auto;max-width:none;padding:0;margin:0;background:white;color:#111}
  .qr-print-page .qr-print-toolbar,.qr-print-page .qr-print-hint{display:none!important}
  .qr-print-page .poster-sheet{width:173mm;max-width:100%;margin:0 auto;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .qr-print-page .poster-caption{font-size:10pt;padding:1.5mm 0 0}
  .qr-print-page .poster-caption span{font-size:9pt}
  .qr-print-page .qr-single-label{break-inside:avoid;max-width:80mm;padding:4mm}
  body.qr-label-printing>*{display:none!important}
  body.qr-label-printing>#qrDialog{display:block!important;position:static;max-width:none;max-height:none;width:100%;padding:0;margin:0;border:0;border-radius:0;overflow:visible}
  body.qr-label-printing #qrDialog::backdrop{display:none}
  body.qr-label-printing #qrDialog>.qr-controls,body.qr-label-printing #qrContent,body.qr-label-printing #qrDialog>.dialogNotice{display:none!important}
  body.qr-label-printing #qrBatch{display:block!important}
  body.qr-label-printing #qrBatch .qrLabel{vertical-align:top;width:47%;max-width:none;break-inside:avoid;border:1px dashed #999;padding:3mm;margin:1.5mm 1%;overflow-wrap:anywhere}
  body.qr-label-printing #qrBatch .qrLabel img{display:block;width:40mm;height:40mm;margin:auto}
}
