.qr-page{padding:56px 0 100px;display:flex;flex-direction:column;align-items:center}
.qr-intro{text-align:center;max-width:46ch;margin-bottom:20px}
.qr-intro .hero__eyebrow{margin-bottom:18px}
.qr-intro h1{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.4rem);letter-spacing:-0.02em;margin:0 0 10px}
.qr-intro p{color:var(--ink-soft);margin:0;line-height:1.6}
.qr-tabs{display:flex;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px;max-width:fit-content;margin:0 auto 20px}
.qr-tab{border:none;background:transparent;padding:9px 18px;border-radius:999px;font-weight:600;font-size:.84rem;color:var(--ink-soft);cursor:pointer;transition:all var(--dur-fast) var(--ease);white-space:nowrap}
.qr-tab:hover{color:var(--ink)}.qr-tab.is-active{background:var(--ink);color:#fff}
.qr-content{width:100%;max-width:480px}
.qr-panel{display:none}.qr-panel.is-active{display:block}
.qr-camera-wrap{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:#000;aspect-ratio:1/1}
#qr-video{width:100%;height:100%;object-fit:cover}
.qr-scan-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.qr-scan-box{width:60%;height:60%;border:2px solid rgba(61,90,254,.7);border-radius:16px;box-shadow:0 0 0 9999px rgba(0,0,0,.45)}
.qr-upload-area{border:2px dashed var(--line);border-radius:var(--radius-lg);padding:40px;text-align:center;cursor:pointer;transition:all var(--dur-fast) var(--ease);color:var(--ink-soft);display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--surface)}
.qr-upload-area:hover{border-color:var(--accent);background:rgba(61,90,254,.03)}
.qr-result{background:var(--ink);border-radius:var(--radius-md);padding:18px;margin-top:14px;display:flex;flex-direction:column;gap:10px}
.qr-result-label{font-size:.68rem;font-weight:600;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.04em}
.qr-result-value-wrap{background:rgba(255,255,255,.06);border-radius:10px;padding:12px;max-height:120px;overflow-y:auto}
.qr-result-value{font-family:var(--font-mono);font-size:.85rem;color:#fff;word-break:break-all;white-space:pre-wrap}
.qr-result-actions{display:flex;gap:8px}
.qr-action-btn{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;padding:8px 16px;border-radius:999px;font-weight:600;font-size:.8rem;cursor:pointer;transition:all var(--dur-fast) var(--ease)}
.qr-action-btn:hover{background:rgba(255,255,255,.14)}
.qr-error{background:rgba(231,76,60,.1);border:1px solid rgba(231,76,60,.3);border-radius:10px;padding:12px;color:#e74c3c;font-size:.82rem;text-align:center;margin-top:10px}