.qr-view[data-v-87eb5dc5]{background:#f8fafc;padding:48px 24px 24px}.qr-container[data-v-87eb5dc5]{width:min(960px,100%);margin:0 auto}.qr-hero[data-v-87eb5dc5]{margin-bottom:24px}.qr-hero h1[data-v-87eb5dc5]{color:#0f172a;letter-spacing:-.02em;margin:0 0 8px;font-size:clamp(32px,5vw,48px);font-weight:800}.qr-hero p[data-v-87eb5dc5]{color:#64748b;margin:0;font-size:16px;line-height:1.6}.qr-card[data-v-87eb5dc5]{background:#fff;border:2px solid #cbd5e1;border-radius:24px;overflow:hidden;box-shadow:0 4px 24px #0f172a0f}.qr-card-head[data-v-87eb5dc5]{border-bottom:2px solid #e2e8f0;padding:20px 28px}.qr-tabs[data-v-87eb5dc5]{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:12px;gap:4px;padding:4px;display:inline-flex}.qr-tab[data-v-87eb5dc5]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 24px;font-size:14px;font-weight:600;transition:all .2s}.qr-tab.active[data-v-87eb5dc5]{color:#0f172a;background:#fff;box-shadow:0 1px 4px #0f172a1a}.qr-tab[data-v-87eb5dc5]:hover:not(.active){color:#334155}.qr-body[data-v-87eb5dc5]{align-items:flex-start;gap:20px;padding:24px 28px;display:flex}.qr-input-area[data-v-87eb5dc5],.qr-decode-result[data-v-87eb5dc5]{flex-direction:column;flex:1;gap:10px;display:flex}.qr-textarea[data-v-87eb5dc5]{color:#0f172a;resize:none;background:#f8fafc;border:2px solid #cbd5e1;border-radius:16px;outline:none;width:100%;padding:16px 18px;font-family:inherit;font-size:14px;line-height:1.7;transition:border-color .2s,box-shadow .2s}.qr-textarea[data-v-87eb5dc5]::placeholder{color:#94a3b8}.qr-textarea[data-v-87eb5dc5]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.qr-input-actions[data-v-87eb5dc5]{justify-content:flex-end;gap:8px;display:flex}.qr-logo-row[data-v-87eb5dc5]{align-items:center;gap:10px;display:flex}.qr-logo-preview[data-v-87eb5dc5]{border:2px solid #cbd5e1;border-radius:8px;width:40px;height:40px;position:relative;overflow:hidden}.qr-logo-preview img[data-v-87eb5dc5]{object-fit:contain;width:100%;height:100%}.qr-logo-remove[data-v-87eb5dc5]{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;line-height:1;display:flex;position:absolute;top:-6px;right:-6px}.qr-logo-uploader[data-v-87eb5dc5] .el-upload{display:inline-block}.qr-output-area[data-v-87eb5dc5]{flex-direction:column;flex:1;gap:10px;display:flex}.qr-canvas-wrap[data-v-87eb5dc5]{background:#f8fafc;border:2px solid #cbd5e1;border-radius:16px;justify-content:center;align-items:center;width:240px;height:240px;display:flex;overflow:hidden}.qr-preview[data-v-87eb5dc5]{object-fit:contain;width:100%;height:100%}.qr-placeholder[data-v-87eb5dc5]{color:#94a3b8;font-size:13px}.qr-output-actions[data-v-87eb5dc5]{justify-content:flex-end;gap:8px;display:flex}.qr-upload-area[data-v-87eb5dc5]{flex:1}.qr-image-preview[data-v-87eb5dc5]{border:2px solid #cbd5e1;border-radius:16px;width:200px;height:200px;position:relative;overflow:hidden}.qr-image-preview img[data-v-87eb5dc5]{object-fit:contain;width:100%;height:100%}.qr-image-remove[data-v-87eb5dc5]{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;transition:background .2s;display:flex;position:absolute;top:8px;right:8px}.qr-image-remove[data-v-87eb5dc5]:hover{background:#dc2626}.qr-uploader[data-v-87eb5dc5]{width:100%}.qr-uploader[data-v-87eb5dc5] .el-upload-dragger{background:#f8fafc;border:2px dashed #cbd5e1;border-radius:16px;justify-content:center;align-items:center;width:100%;height:200px;transition:border-color .2s;display:flex}.qr-uploader[data-v-87eb5dc5] .el-upload-dragger:hover{border-color:#3b82f6}.qr-uploader-inner[data-v-87eb5dc5]{flex-direction:column;align-items:center;gap:8px;display:flex}.qr-uploader-icon[data-v-87eb5dc5]{color:#64748b;background:#e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;font-weight:600;display:flex}.qr-uploader-text[data-v-87eb5dc5]{color:#94a3b8;font-size:13px}.qr-decode-label[data-v-87eb5dc5]{color:#475569;font-size:13px;font-weight:600}.qr-error[data-v-87eb5dc5]{color:#ef4444;text-align:center;margin:0;padding:0 28px 20px;font-size:13px}@media (width<=640px){.qr-body[data-v-87eb5dc5]{flex-direction:column;padding:20px}.qr-canvas-wrap[data-v-87eb5dc5]{aspect-ratio:1;width:100%;height:auto}.qr-card-head[data-v-87eb5dc5]{padding:16px 20px}}
