/* 二维码解析：单个 / 批量 */
.qr-mode{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;margin-bottom:.75rem}
.qr-mode .form-check{margin:0;padding-left:1.5em}
.qr-mode .form-check-input{margin-top:.25em}

.qr-drop{position:relative;display:flex;align-items:center;justify-content:center;min-height:11rem;padding:1rem;
  border:2px dashed #d7dce5;border-radius:.75rem;background:#fafbfd;cursor:pointer;text-align:center;
  transition:border-color .2s,background-color .2s}
.qr-drop:hover,.qr-drop.hover,.qr-drop:focus{border-color:var(--site-primary);background:var(--site-tint);outline:0}
.qr-hint{color:#6c757d;font-size:.9375rem}
.qr-preview{display:block;max-width:100%;max-height:20rem;border-radius:.5rem;box-shadow:0 1px 6px rgba(16,24,40,.12)}

.qr-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem}

.qr-camera{position:relative;max-width:28rem;margin-top:.75rem;border-radius:.75rem;background:#000;overflow:hidden}
.qr-camera video{display:block;width:100%;height:auto}
.qr-camera .btn{position:absolute;right:.5rem;bottom:.5rem}

.qr-fields{margin-top:.75rem;border:1px solid #eef1f5;border-radius:.5rem;background:#fff;overflow:hidden}
.qr-field{display:flex;gap:.75rem;padding:.5rem .75rem;border-top:1px solid #eef1f5;font-size:.875rem}
.qr-field:first-child{border-top:0}
.qr-field-k{flex:0 0 5.5rem;color:#8a9199}
.qr-field-v{flex:1 1 auto;color:#333;word-break:break-all}

.qr-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}
.qr-chip{display:inline-flex;align-items:center;gap:.25rem;max-width:100%;padding:.2rem .35rem .2rem .6rem;
  border:1px solid #eef1f5;border-radius:999px;background:#fafbfd;font-size:.8125rem;color:#334155}
.qr-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14rem}
.qr-chip-del{border:0;background:none;padding:0 .2rem;color:#adb5bd;font-size:1rem;line-height:1;cursor:pointer}
.qr-chip-del:hover{color:#e03131}

.qr-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}
.qr-row{display:flex;align-items:flex-start;gap:.75rem;padding:.5rem .65rem;border:1px solid #eef1f5;border-radius:.5rem;background:#fff}
.qr-row.is-bad{background:#fafbfd}
.qr-row img{flex:none;width:4.5rem;height:4.5rem;object-fit:contain;border-radius:.375rem;background:#f7f8fa}
.qr-row-main{flex:1 1 auto;min-width:0}
.qr-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem}
.qr-row-name{font-size:.75rem;color:#8a94a3;overflow-wrap:anywhere}
.qr-row-text{margin-top:.2rem;font-size:.8125rem;color:#2b3441;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  overflow-wrap:anywhere;max-height:3.4rem;overflow:auto}
.qr-row-acts{flex:none;display:flex;flex-wrap:wrap;gap:.25rem}

@media (max-width:575.98px){
  .qr-chip-name{max-width:8rem}
  .qr-row{flex-wrap:wrap}
  .qr-row img{width:3rem;height:3rem}
}
