.qr-tabs{border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:1.25rem;display:grid;overflow:hidden}.qr-tab{border:none;border-right:1px solid var(--border);background:var(--bg);color:var(--text-2);cursor:pointer;padding:10px 16px;font-size:13px;font-weight:600;transition:background .1s,color .1s}.qr-tab:last-child{border-right:none}.qr-tab:hover{background:var(--bg-soft)}.qr-tab.active{background:var(--accent);color:#fff}.qr-vcard-form{margin-bottom:.5rem}.qr-vcard-row{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem;display:grid}.qr-vcard-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:.25rem;font-size:11px;font-weight:600;display:block}.qr-vcard-input{width:100%;font-size:13px}.qr-batch-textarea{width:100%;font-family:var(--font-mono);resize:vertical;min-height:80px;font-size:13px}.qr-batch-actions{align-items:center;gap:.75rem;margin-top:.75rem;margin-bottom:1rem;display:flex}.qr-batch-actions .qr-export-btn{flex:none}.qr-batch-status{color:var(--text-3);font-size:12px}.qr-batch-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.qr-batch-item{border:1px solid var(--border);border-radius:var(--radius);text-align:center;background:#fff;padding:.5rem}.qr-batch-item canvas,.qr-batch-item svg{max-width:100%;margin:0 auto;display:block}.qr-batch-item-label{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;margin-top:.375rem;font-size:10px;overflow:hidden}.qr-content-input{width:100%;font-family:var(--font-mono);resize:vertical;min-height:60px;font-size:13px}.qr-type-bar{flex-wrap:wrap;gap:.375rem;margin-top:.5rem;margin-bottom:1.25rem;display:flex}.qr-type-btn{border:1px solid var(--border);background:var(--bg);color:var(--text-2);cursor:pointer;border-radius:4px;padding:4px 12px;font-size:12px;font-weight:500;transition:background .1s,border-color .1s}.qr-type-btn:hover{background:var(--bg-soft)}.qr-type-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.qr-main{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.qr-preview-box{border:1px solid var(--border);border-radius:var(--radius);background:#fff;justify-content:center;align-items:center;min-height:260px;margin-top:.375rem;margin-bottom:1rem;display:flex;overflow:hidden}.qr-preview-box img,.qr-preview-box canvas,.qr-preview-box svg{max-width:100%;max-height:100%}.qr-placeholder{color:var(--text-3);text-align:center;padding:2rem;font-size:13px}.qr-quick-styles{margin-bottom:1rem}.qr-style-bar{flex-wrap:wrap;gap:.375rem;margin-top:.375rem;display:flex}.qr-style-btn{border:1px solid var(--border);background:var(--bg);color:var(--text-2);cursor:pointer;border-radius:4px;padding:5px 12px;font-size:12px;font-weight:500;transition:background .1s}.qr-style-btn:hover{background:var(--bg-soft)}.qr-style-btn.active{background:var(--text);color:var(--bg);border-color:var(--text)}.qr-export-bar{gap:.5rem;display:flex}.qr-export-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);cursor:pointer;flex:1;padding:8px 16px;font-size:13px;font-weight:600;transition:background .1s}.qr-export-btn:hover{background:var(--bg-soft)}.qr-export-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.qr-export-primary:hover{background:var(--accent-hover)}.qr-section{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem}.qr-section-title{color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;padding:.625rem .75rem;font-size:13px;font-weight:600;list-style:none;display:flex}.qr-section-title:after{content:"▼";color:var(--text-3);font-size:9px;transition:transform .15s}.qr-section[open] .qr-section-title:after{transform:rotate(180deg)}.qr-section-title::-webkit-details-marker{display:none}.qr-section-body{padding:0 .75rem .75rem}.qr-option-row{align-items:center;gap:.75rem;margin-bottom:.625rem;display:flex}.qr-option-label{color:var(--text-2);flex-shrink:0;min-width:90px;font-size:12px;font-weight:500}.qr-option-value{font-size:12px;font-family:var(--font-mono);color:var(--text-3);text-align:right;min-width:44px}.qr-slider{accent-color:var(--accent);flex:1;margin:0}.qr-btn-group{border:1px solid var(--border);border-radius:var(--radius);gap:0;display:flex;overflow:hidden}.qr-btn-group-wrap{border:none;flex-wrap:wrap;gap:.375rem}.qr-opt-btn{border:1px solid var(--border);background:var(--bg);color:var(--text-2);cursor:pointer;padding:5px 12px;font-size:12px;font-weight:500;transition:background .1s}.qr-btn-group:not(.qr-btn-group-wrap) .qr-opt-btn{border-right:none;border-radius:0}.qr-btn-group:not(.qr-btn-group-wrap) .qr-opt-btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.qr-btn-group:not(.qr-btn-group-wrap) .qr-opt-btn:last-child{border-radius:0 var(--radius) var(--radius) 0;border-right:1px solid var(--border)}.qr-btn-group-wrap .qr-opt-btn{border-radius:4px}.qr-opt-btn:hover{background:var(--bg-soft)}.qr-opt-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.qr-color-row{align-items:center;gap:.75rem;margin-bottom:.625rem;display:flex}.qr-color-input-wrap{flex:1;align-items:center;gap:.5rem;display:flex}.qr-color-picker{border:1px solid var(--border);cursor:pointer;background:var(--bg);border-radius:50%;flex-shrink:0;width:32px;height:32px;padding:1px}.qr-color-hex{width:80px;font-family:var(--font-mono);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:13px}.qr-shape-group{margin-bottom:.75rem}.qr-shape-group:last-child{margin-bottom:0}.qr-shape-group .qr-option-label{margin-bottom:.375rem;display:block}.qr-logo-upload{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.qr-logo-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);cursor:pointer;flex-shrink:0;padding:6px 14px;font-size:12px;font-weight:600}.qr-logo-btn:hover{background:var(--bg-soft)}.qr-logo-name{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.qr-logo-clear{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.qr-logo-clear:hover{color:var(--text)}@media (width<=768px){.qr-main,.qr-vcard-row,.qr-tabs{grid-template-columns:1fr}}
