.qrcode-page{max-width:1200px;margin:3rem auto;padding:0 2rem}.qrcode-header{text-align:center;margin-bottom:2rem}.qrcode-header h2{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.qrcode-header p{font-size:1.125rem;color:var(--text-secondary)}.tabs{display:flex;gap:1rem;margin-bottom:2rem;border-bottom:2px solid var(--border-color)}.tab{display:flex;align-items:center;gap:.5rem;padding:1rem 2rem;background:none;border:none;color:var(--text-secondary);font-weight:600;cursor:pointer;position:relative;transition:var(--transition);-webkit-tap-highlight-color:transparent}.tab:hover,.tab.active{color:var(--primary)}.tab.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--primary)}.qrcode-content{display:grid;grid-template-columns:400px 1fr;gap:2rem}.qr-controls{background:var(--bg-secondary);border-radius:1rem;padding:2rem;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);display:flex;flex-direction:column;gap:1.5rem}.batch-toggle label{display:flex;align-items:center;gap:.5rem;font-weight:600;cursor:pointer}.batch-toggle input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:var(--text-primary)}.form-group textarea,.form-group input[type=text]{width:100%;padding:.75rem;border:2px solid var(--border-color);border-radius:.5rem;background:var(--bg-primary);color:var(--text-primary);font-family:inherit;transition:var(--transition)}.form-group textarea:focus,.form-group input[type=text]:focus{border-color:var(--primary);outline:none}.form-group input[type=range]{width:100%}.form-group input[type=color]{width:60px;height:40px;border:2px solid var(--border-color);border-radius:.5rem;cursor:pointer}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.batch-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto}.qrcode-page .batch-item{display:grid;grid-template-columns:30px 1fr 2fr 40px;gap:.5rem;align-items:center}.batch-number{background:var(--primary);color:#fff;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600}.batch-item input{padding:.625rem;border:2px solid var(--border-color);border-radius:.375rem;background:var(--bg-primary);color:var(--text-primary)}.btn-remove{width:40px;height:40px;background:var(--error);color:#fff;border:none;border-radius:.375rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.btn-remove:hover{opacity:.8}.btn-add{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;background:var(--bg-tertiary);color:var(--text-primary);border:2px dashed var(--border-color);border-radius:.5rem;cursor:pointer;font-weight:600;transition:var(--transition)}.btn-add:hover{border-color:var(--primary);color:var(--primary)}.btn-primary{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;transition:var(--transition);-webkit-transform:translateZ(0);transform:translateZ(0)}.btn-primary:hover:not(:disabled){transform:translate3d(0,-2px,0);box-shadow:0 6px 20px #2563eb66}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.spinning{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.qr-result{background:var(--bg-secondary);border-radius:1rem;padding:2rem;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;min-height:400px}.qr-display{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.qr-display img{max-width:100%;border-radius:.5rem;box-shadow:0 4px 12px #0000001a}.btn-download{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.75rem;background:var(--success);color:#fff;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;transition:var(--transition)}.btn-download:hover{opacity:.9;transform:translateY(-2px)}.batch-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem;width:100%}.batch-qr-item{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-primary);border-radius:.75rem;border:1px solid var(--border-color)}.qr-label{font-weight:600;color:var(--text-primary);font-size:.875rem;text-align:center}.batch-qr-item img{width:100%;border-radius:.5rem}.btn-download-small{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--success);color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:var(--transition)}.btn-download-small:hover{opacity:.9}.decode-content{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.upload-section{display:flex;flex-direction:column;gap:1.5rem}.upload-zone{background:var(--bg-secondary);border:2px dashed var(--border-color);border-radius:1rem;padding:2rem;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;min-height:300px}.upload-zone:hover{border-color:var(--primary);background:var(--bg-tertiary)}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--text-secondary)}.preview-image{max-width:100%;max-height:400px;border-radius:.5rem}.decoded-result{background:var(--bg-secondary);border-radius:1rem;padding:2rem;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);display:flex;flex-direction:column;gap:1.5rem}.decoded-result h3{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.decoded-content{padding:1.5rem;background:var(--bg-primary);border-radius:.5rem;border:1px solid var(--border-color);word-break:break-all;color:var(--text-primary);font-family:Courier New,monospace}.btn-copy{padding:.875rem 1.75rem;background:var(--primary);color:#fff;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-copy:hover{transform:translateY(-2px);box-shadow:0 4px 12px #2563eb4d}.copy-success{display:block;margin-top:1rem;color:var(--success);font-size:.875rem;font-weight:600;text-align:center}@media(max-width:1200px){.qrcode-content,.decode-content{grid-template-columns:1fr}.qr-result{order:2}}@media(max-width:768px){.qrcode-page{padding:0 1rem;margin:2rem auto}.qrcode-header h2{font-size:1.875rem}.tabs{gap:.5rem}.tab{padding:.75rem 1rem;font-size:.875rem}.qr-controls{padding:1.5rem}.form-row{grid-template-columns:1fr}.batch-item{grid-template-columns:30px 1fr 40px;grid-template-rows:auto auto;gap:.5rem}.batch-number{grid-column:1;grid-row:1}.batch-item input:first-of-type{grid-column:2;grid-row:1}.batch-item input:last-of-type{grid-column:1 / -1;grid-row:2}.btn-remove{grid-column:3;grid-row:1;width:40px;height:40px}.batch-results{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media(max-width:480px){.qrcode-page{padding:0 .75rem;margin:1.5rem auto}.qrcode-header h2{font-size:1.5rem}.tab{padding:.625rem .75rem}.qr-controls{padding:1.25rem}.batch-results{grid-template-columns:1fr}}.label-with-value{display:flex;align-items:center;gap:.5rem}.label-with-value label{margin-bottom:0}.size-control{display:inline-block}.size-value{font-weight:600;color:var(--primary);display:inline-block;line-height:1.5rem;vertical-align:middle}.size-value.clickable{cursor:pointer;padding:2px 6px;background:#9333ea1a;border:2px solid transparent;border-radius:.25rem;transition:var(--transition);box-sizing:border-box;width:65px;height:28px;text-align:center;display:inline-flex;align-items:center;justify-content:center}.size-value.clickable:hover{background:#9333ea33}.size-input-inline{font-weight:600;color:var(--primary);background:#9333ea1a;border:2px solid var(--primary);border-radius:.25rem;padding:2px 6px;text-align:center;font-size:inherit;font-family:inherit;line-height:1.5rem;width:65px;height:28px;display:inline-block;vertical-align:middle;box-sizing:border-box}.size-input-inline:focus{outline:none;box-shadow:0 0 0 2px #9333ea33}.color-picker{display:flex;align-items:center;gap:1rem}.color-input-wrapper{position:relative;display:inline-block}.color-picker input[type=color]{width:60px;height:40px;border:2px solid var(--border-color);border-radius:.5rem;cursor:pointer;opacity:0;position:absolute;top:0;left:0}.color-preview{width:60px;height:40px;border:2px solid var(--border-color);border-radius:.5rem;cursor:pointer;transition:var(--transition);box-shadow:inset 0 0 0 2px #ffffff80}.color-preview:hover{border-color:var(--primary);box-shadow:0 0 0 3px #9333ea33}.color-value{font-family:Courier New,monospace;font-size:.875rem;color:var(--text-secondary);min-width:80px;-webkit-user-select:all;user-select:all;display:inline-block;line-height:1.25rem;vertical-align:middle}.color-value.clickable{cursor:pointer;padding:2px 6px;background:#9333ea0d;border:2px solid transparent;border-radius:.25rem;transition:var(--transition);box-sizing:border-box;text-align:center;width:80px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:.875rem;line-height:1.25rem}.color-value.clickable:hover{background:#9333ea26;color:var(--primary)}.color-input-text{font-family:Courier New,monospace;font-size:.875rem;color:var(--text-secondary);width:80px;height:24px;padding:2px 6px;background:#9333ea1a;border:2px solid var(--primary);border-radius:.25rem;text-align:center;line-height:1.25rem;display:inline-block;vertical-align:middle;box-sizing:border-box}.color-input-text:focus{outline:none;box-shadow:0 0 0 2px #9333ea33;color:var(--primary)}.error-message{padding:1rem;background:linear-gradient(135deg,#ef44441a,#dc26261a);border:1px solid rgba(239,68,68,.3);border-radius:.5rem;color:#ef4444;font-weight:500;text-align:center;margin-bottom:1.5rem;grid-column:1 / -1}.custom-select-wrapper{position:relative}.custom-select{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-tertiary);border:2px solid transparent;border-radius:.5rem;cursor:pointer;transition:border-color .3s ease,background-color .3s ease;-webkit-user-select:none;user-select:none;min-height:48px;-webkit-tap-highlight-color:transparent;-webkit-transform:translateZ(0);transform:translateZ(0)}.custom-select:hover{border-color:var(--primary);background:var(--bg-secondary)}.custom-select:active{transform:scale(.98)}.custom-select-value{color:var(--text-primary);font-size:.938rem;font-weight:500;flex:1}.custom-select-arrow{color:var(--text-secondary);transition:transform .3s ease;flex-shrink:0;margin-left:.5rem}.custom-select-arrow.open{transform:rotate(180deg)}.custom-select-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:var(--bg-secondary);border:2px solid var(--primary);border-radius:.5rem;box-shadow:0 4px 12px #00000026;overflow:hidden;z-index:100;animation:slideDown .2s ease;-webkit-transform:translateZ(0);transform:translateZ(0);will-change:opacity,transform}@keyframes slideDown{0%{opacity:0;transform:translate3d(0,-10px,0)}to{opacity:1;transform:translateZ(0)}}.custom-select-option{padding:.75rem 1rem;cursor:pointer;transition:background-color .2s ease;color:var(--text-primary);font-size:.938rem;font-weight:500;-webkit-tap-highlight-color:transparent}.custom-select-option:hover{background:#9333ea1a}.custom-select-option:active{opacity:.8}.custom-select-option.active{background:var(--primary);color:#fff;font-weight:600}
