/* ============================================================
   QR38 — Etiquetas QR por arma (imprimível) · Fase 3 / item 14
   Gera uma folha de etiquetas (QR da série + dados) para colar em
   cada arma/caixa, alimentando o modo conferência. Aditivo: lê as
   armas já carregadas; não toca em regra de negócio nem no backend.
   ============================================================ */

/* botão injetado na aba Relatórios do Cofre */
.qr38-abrir{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 16px;
  background:var(--surface2,#20242c);color:var(--text,#f2f3f5);
  border:1px solid var(--accent,#dd9933);border-radius:9px;
  font:inherit;font-size:13px;font-weight:700;cursor:pointer;
}
.qr38-abrir svg{width:17px;height:17px;color:var(--accent,#dd9933)}

/* overlay */
.qr38{position:fixed;inset:0;z-index:1500;display:flex;flex-direction:column;background:var(--bg,#0e1013);color:var(--text,#f2f3f5)}
.qr38[hidden]{display:none}
.qr38-top{flex:none;padding:12px 16px;border-bottom:1px solid var(--border,rgba(255,255,255,.1));background:var(--surface,#191c22)}
.qr38-top-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.qr38-tit{font-size:15px;font-weight:700}
.qr38-tit small{display:block;font-size:11.5px;font-weight:400;color:var(--muted,#8a919e);margin-top:2px}
.qr38-top-btns{display:flex;gap:8px}
.qr38-btn{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:9px 16px;border-radius:9px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;border:1px solid transparent}
.qr38-btn svg{width:16px;height:16px}
.qr38-btn.forte{background:var(--accent,#dd9933);color:#141008}
.qr38-btn.ghost{background:var(--surface2,#20242c);color:var(--text2,#b6bcc8);border-color:var(--border2,rgba(255,255,255,.14))}
.qr38-filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:11px}
.qr38-fld{display:flex;flex-direction:column;gap:4px}
.qr38-fld label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted,#8a919e)}
.qr38-fld input,.qr38-fld select{min-height:40px;font-size:15px;padding:7px 11px;background:var(--bg,#0e1013);color:var(--text,#f2f3f5);border:1px solid var(--border2,rgba(255,255,255,.16));border-radius:8px}
.qr38-chk{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--text2,#b6bcc8);min-height:40px}
.qr38-cont{font-size:12.5px;color:var(--muted,#8a919e);align-self:center}
.qr38-cont b{color:var(--accent,#dd9933)}

/* área rolável com as etiquetas */
.qr38-folha{flex:1;overflow-y:auto;padding:16px;background:#3a3f47}

/* grade de etiquetas — SEMPRE preto no branco (é para imprimir) */
.qr38-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(46mm,1fr));gap:4mm;max-width:210mm;margin:0 auto}
.qr38-etq{
  display:flex;align-items:center;gap:3mm;background:#fff;color:#000;
  border:1px solid #bbb;border-radius:2mm;padding:2.5mm 3mm;break-inside:avoid;page-break-inside:avoid;min-height:22mm;
}
.qr38-qr{flex:none;width:20mm;height:20mm}
.qr38-qr svg{width:100%;height:100%;display:block}
.qr38-inf{min-width:0;line-height:1.25}
.qr38-serie{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11pt;font-weight:700;word-break:break-all}
.qr38-mm{font-size:8.5pt;margin-top:1mm;font-weight:600}
.qr38-loc{font-size:7.5pt;color:#333;margin-top:.6mm}
.qr38-marca38{font-size:6pt;color:#777;margin-top:.8mm;letter-spacing:.4px}
.qr38-vazio{color:#eee;text-align:center;padding:40px 16px;font-size:14px}

/* impressão: só a folha de etiquetas, no branco */
@media print{
  .qr38-top{display:none !important}
  .qr38{position:static;background:#fff;color:#000}
  .qr38-folha{overflow:visible;padding:0;background:#fff}
  .qr38-grid{max-width:none;gap:2mm}
  .qr38-etq{border:1px solid #999}
  /* esconde tudo do Portal atrás do overlay ao imprimir */
  body>*:not(.qr38){display:none !important}
}
