.qr-open{display:inline-flex;align-items:center;gap:7px;cursor:pointer;background:var(--paper);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-ctl);font-family:var(--grotesk);font-size:var(--t-ui);line-height:1.3;font-weight:500;padding:6px 12px;transition:border-color .16s var(--ease)}.qr-open:hover{border-color:var(--ink-faint)}.qr-open:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.qr-open svg{width:16px;height:16px;flex:none}.qr-dialog{width:min(440px,calc(100% - 32px));max-height:calc(100% - 32px);margin:auto;border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px 24px;background:var(--paper);color:var(--ink);text-align:center;box-shadow:0 24px 60px #14110f2e}.qr-dialog[open]{animation:qrIn .28s var(--ease-out) both}.qr-dialog::backdrop{background:#14110f73}@keyframes qrIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.qr-dialog[open]{animation:none}}.qr-dialog h2{font-size:24px;line-height:1.2;letter-spacing:-.02em}.qr-sub{font-size:var(--t-ui);line-height:var(--lh-ui);color:var(--ink-soft);margin:8px auto 0;max-width:30em}.qr-code{width:min(100%,320px);margin:20px auto 0;background:#fff;border-radius:8px}.qr-code svg{display:block;width:100%;height:auto}.qr-url{font-size:var(--t-ui);color:var(--ink);margin-top:14px}.qr-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}
