.QRCodeGenerator_wrapper__Gwi8z{display:flex;flex-direction:column;gap:32px}.QRCodeGenerator_inputSection__asduH{display:flex;flex-direction:column;gap:16px}.QRCodeGenerator_label__1rIX_{font-size:.95rem;font-weight:600;color:#374151}.QRCodeGenerator_textarea__jx4mf{width:100%;padding:12px 14px;border:1.5px solid #d1d5db;border-radius:8px;font-size:.95rem;font-family:inherit;resize:vertical;transition:border-color .15s;box-sizing:border-box;color:#111827}.QRCodeGenerator_textarea__jx4mf:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.15)}.QRCodeGenerator_options__5YF22{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:16px;gap:16px}.QRCodeGenerator_optionGroup__y1OVt{display:flex;flex-direction:column;gap:6px}.QRCodeGenerator_optionLabel__aeVd7{font-size:.8rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.QRCodeGenerator_select__sfgmW{padding:8px 10px;border:1.5px solid #d1d5db;border-radius:6px;font-size:.9rem;font-family:inherit;background:#fff;color:#111827;cursor:pointer;transition:border-color .15s}.QRCodeGenerator_select__sfgmW:focus{outline:none;border-color:#667eea}.QRCodeGenerator_colorRow__0cv6J{display:flex;align-items:center;gap:8px}.QRCodeGenerator_colorInput__D89VH{width:40px;height:36px;border:1.5px solid #d1d5db;border-radius:6px;padding:2px;cursor:pointer;background:none}.QRCodeGenerator_colorHex__OG1OX{font-size:.85rem;color:#6b7280;font-family:monospace}.QRCodeGenerator_previewSection__8k2LY{display:flex;flex-direction:column;align-items:center;gap:20px}.QRCodeGenerator_canvasWrapper__ebVGw{position:relative;display:inline-flex;border:1.5px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.06)}.QRCodeGenerator_canvas__Vn5RH{display:block}.QRCodeGenerator_placeholder__IDrdV{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;color:#9ca3af;font-size:.9rem;pointer-events:none}.QRCodeGenerator_downloadBtn__TpBpM{padding:12px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.QRCodeGenerator_downloadBtn__TpBpM:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.QRCodeGenerator_downloadBtn__TpBpM:disabled{opacity:.4;cursor:not-allowed}