.qrs-drop{padding:30px 16px}
.qrs-sub{display:block;font-size:14px}
.qrs-or{display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--faint);font-size:13px}
.qrs-or::before,.qrs-or::after{content:"";flex:1;height:1px;background:var(--border)}
.qrs-cam-btn{display:flex;align-items:center;justify-content:center;gap:8px}
.qrs-cam{position:relative;border-radius:var(--radius-sm);overflow:hidden;background:#000;aspect-ratio:4/3;max-height:70vh}
.qrs-cam video{width:100%;height:100%;object-fit:cover;display:block}
.qrs-frame{position:absolute;left:50%;top:50%;width:min(62%,62vh);aspect-ratio:1;transform:translate(-50%,-55%);border-radius:18px;box-shadow:0 0 0 2000px rgba(0,0,0,.35);outline:3px solid rgba(255,255,255,.9);outline-offset:-3px;pointer-events:none}
.qrs-frame::after{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:#22c55e;box-shadow:0 0 8px #22c55e;animation:qrs-scan 2s ease-in-out infinite alternate}
@keyframes qrs-scan{from{top:10%}to{top:90%}}
.qrs-cam-msg{position:absolute;left:0;right:0;bottom:0;margin:0;padding:10px 12px;color:#fff;font-size:14px;text-align:center;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.qrs-cam-bar{flex-wrap:nowrap}
.qrs-cam-bar .select{min-width:0}
.qrs-pv{display:flex;justify-content:center;background:var(--surface-2);border-radius:var(--radius-sm);padding:8px}
.qrs-pv canvas{max-width:100%;max-height:320px;width:auto;height:auto;border-radius:6px;display:block}
.qrs-list{display:grid;gap:12px}
.qrs-item{border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;background:var(--surface);min-width:0}
.qrs-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.qrs-num{width:24px;height:24px;border-radius:50%;background:#16a34a;color:#fff;font-size:13px;font-weight:700;display:grid;place-items:center;flex:none}
.qrs-fmt{margin-left:auto;font-size:12px;color:var(--faint)}
.qrs-kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;margin:0}
.qrs-kv dt{color:var(--muted);font-size:14px}
.qrs-kv dd{margin:0;font-weight:600;overflow-wrap:anywhere;white-space:pre-wrap}
.qrs-warn{background:var(--warn-soft);color:var(--warn);margin:0 0 10px}
.qrs-url{font-size:15px;color:var(--text)}
.qrs-flags{margin:10px 0 0;padding-left:20px;color:var(--bad);font-size:14px}
.qrs-flags li+li{margin-top:4px}
.qrs-raw summary{cursor:pointer;color:var(--muted);font-size:14px;padding:4px 0}
.qrs-raw .output{margin-top:6px;font-size:13px}
.qrs-acts{display:flex;flex-wrap:wrap;gap:8px}
.qrs-acts .btn{flex:1 1 auto;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.qrs-bar{display:flex;gap:8px;flex-wrap:wrap}
.qrs-bar .btn{flex:1 1 160px}
