.qrs-overlay{position:fixed;inset:0;z-index:2500;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;padding:4vh 4vw}.qrs-overlay.active{opacity:1;visibility:visible}.qrs-backdrop{position:absolute;inset:0;background:#0f172a73;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.qrs-content{position:relative;width:min(880px,92vw);height:min(880px,86vh);z-index:1;transform:translateY(12px) scale(.98);opacity:0;transition:transform .25s ease,opacity .25s ease}.qrs-overlay.active .qrs-content{transform:translateY(0) scale(1);opacity:1}.qrs-card{background:#fffffffa;border-radius:28px;box-shadow:0 28px 80px #00000059;width:100%;height:100%;display:flex;flex-direction:column;padding:22px 22px 18px}.qrs-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 12px}.qrs-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}.qrs-badge{width:44px;height:44px;border-radius:16px;background:#7c3aed1a;display:flex;align-items:center;justify-content:center;border:1px solid rgba(124,58,237,.18);flex-shrink:0}.qrs-badge-icon{font-size:11px;font-weight:900;color:#7c3aed;letter-spacing:.04em}.qrs-title{font-size:16px;font-weight:900;color:#0f172a;line-height:1.2}.qrs-desc{margin-top:2px;font-size:12px;font-weight:800;color:#94a3b8}.qrs-close{width:42px;height:42px;border-radius:16px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid rgba(148,163,184,.25);background:#fff;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.qrs-close:hover{transform:translateY(-1px);box-shadow:0 10px 18px #0f172a1f;background:#f8fafc}.qrs-close-char{font-size:22px;line-height:1;color:#0f172a;font-weight:300}.qrs-body{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:6px 8px 8px}.qrs-qr-wrap{width:min(62vmin,640px);height:min(62vmin,640px);max-width:100%;max-height:100%;border-radius:24px;border:2px solid rgba(148,163,184,.25);background:#f8fafc;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.qrs-qr-link{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.qrs-qr-skeleton{position:absolute;inset:0;background:linear-gradient(90deg,#e2e8f099,#f1f5f9f2,#e2e8f099);background-size:200% 100%;animation:qrsShimmer 1.1s ease-in-out infinite}.qrs-qr-img{width:100%;height:100%;image-rendering:pixelated;opacity:0;transition:opacity .18s ease}.qrs-qr-img.is-loaded{opacity:1}.qrs-url{width:100%;text-align:center;font-size:14px;font-weight:800;color:#64748b;word-break:break-all;line-height:1.5}@keyframes qrsShimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.qrs-content.qrs-stack{height:auto;max-height:min(920px,92vh)}.qrs-card.qrs-stack-card{height:auto;min-height:0;max-height:min(900px,90vh);overflow-y:auto}.qrs-class-section{padding:4px 0 8px;flex-shrink:0}.qrs-class-label{display:block;font-size:13px;font-weight:900;color:#475569;margin-bottom:10px;letter-spacing:-.02em}.qrs-class-select{width:100%;padding:12px 14px;border-radius:14px;border:1px solid #cbd5e1;font-size:15px;font-weight:700;color:#0f172a;background:#f8fafc;cursor:pointer}.qrs-class-select:disabled{opacity:.6;cursor:wait}.qrs-hint{margin-top:10px;font-size:12px;font-weight:700;color:#94a3b8;line-height:1.5}.qrs-hint-error{color:#b91c1c}.qrs-section-divider{height:1px;background:#e2e8f0;margin:14px 0 6px}.qrs-qr-section-title{font-size:12px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.qrs-qr-placeholder{padding:20px 8px 12px;text-align:center}
