.qr-tabs{display:flex;gap:8px;margin-bottom:18px}
.qr-tab{flex:1;padding:9px 16px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--t2);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all 0.2s;display:flex;align-items:center;justify-content:center;gap:7px}
.qr-tab.active{background:var(--bg3);border-color:var(--blue);color:var(--accent)}
.qr-video-wrap{position:relative;background:var(--bg3);border:1px solid var(--border);border-radius:12px;overflow:hidden;aspect-ratio:4/3;max-height:300px;display:flex;align-items:center;justify-content:center}
.qr-video-wrap video{width:100%;height:100%;object-fit:cover}
.qr-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.qr-frame{width:180px;height:180px;border:2px solid var(--accent);border-radius:12px;box-shadow:0 0 0 9999px rgba(0,0,0,0.4)}
.upload-zone{border:2px dashed var(--border);border-radius:12px;padding:40px 24px;text-align:center;cursor:pointer;transition:border-color 0.2s;background:var(--bg3)}
.upload-zone:hover{border-color:var(--bh)}
.upload-zone i{font-size:36px;color:var(--t3);display:block;margin-bottom:14px}
.upload-zone p{font-size:14px;color:var(--t2);margin-bottom:6px}
.upload-zone span{font-size:12px;color:var(--t3)}
.qr-result-text{font-size:15px;color:var(--text);word-break:break-all;margin-top:6px;line-height:1.55}