.tool-main{display:flex;flex-direction:column;min-height:calc(100vh - 52px)}.tool-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;background:var(--color-surface-raised);border-bottom:1px solid var(--color-border);flex-shrink:0}.tool-header__title{display:flex;flex-direction:column;gap:.2rem;min-width:0}.tool-title{font-size:1.15rem;font-weight:700;color:var(--color-text-title);line-height:1.2}.tool-subtitle{font-size:.82rem;color:var(--color-text-muted);line-height:1.3}.clear-btn{flex-shrink:0;padding:.35rem .9rem;background:transparent;border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-secondary);font-size:.82rem;cursor:pointer;transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.clear-btn:hover{border-color:var(--color-danger-border);color:var(--color-danger);background:var(--color-danger-bg)}.qr-workspace{display:grid;grid-template-columns:360px 1fr}.qr-col--controls{border-right:1px solid var(--color-border);padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.qr-col--preview{padding:2rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.type-tabs{display:flex;flex-wrap:wrap;gap:.35rem}.type-tab{padding:.3rem .75rem;border-radius:6px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:.82rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s;white-space:nowrap}.type-tab:hover{border-color:var(--color-accent-border);color:var(--color-accent)}.type-tab--active{background:var(--color-accent-bg);border-color:var(--color-accent-border);color:var(--color-accent);font-weight:600}.qr-textarea{width:100%;min-height:100px;padding:.6rem .75rem;background:var(--color-surface-input);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-primary);font-size:.9rem;font-family:inherit;line-height:1.5;resize:vertical;outline:none;transition:border-color .15s,box-shadow .15s}.qr-textarea::placeholder{color:var(--color-text-muted)}.qr-textarea:focus{border-color:var(--color-accent-border);box-shadow:0 0 0 3px var(--color-accent-bg)}.input-meta{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--color-text-muted);min-height:1.2em}.input-meta--error{color:var(--color-danger)}.structured-form{display:flex;flex-direction:column;gap:.75rem}.form-row{display:flex;flex-direction:column;gap:.3rem}.form-row--inline{flex-direction:row;align-items:center;gap:.75rem}.form-label{font-size:.78rem;font-weight:500;color:var(--color-text-secondary)}.qr-input{width:100%;padding:.45rem .7rem;background:var(--color-surface-input);border:1px solid var(--color-border);border-radius:7px;color:var(--color-text-primary);font-size:.88rem;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.qr-input::placeholder{color:var(--color-text-muted)}.qr-input:focus{border-color:var(--color-accent-border);box-shadow:0 0 0 3px var(--color-accent-bg)}.qr-select{width:100%;padding:.45rem 2rem .45rem .7rem;background:var(--color-surface-input);border:1px solid var(--color-border);border-radius:7px;color:var(--color-text-primary);font-size:.88rem;font-family:inherit;outline:none;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236a6a6a' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;transition:border-color .15s,box-shadow .15s}.qr-select:focus{border-color:var(--color-accent-border);box-shadow:0 0 0 3px var(--color-accent-bg)}.checkbox-row{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.88rem;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.checkbox-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.toggle-group{display:flex;flex-wrap:wrap;gap:.35rem}.toggle-btn{padding:.3rem .75rem;border-radius:6px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:.82rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s;white-space:nowrap}.toggle-btn:hover{border-color:var(--color-accent-border);color:var(--color-accent)}.toggle-btn--active{background:var(--color-accent-bg);border-color:var(--color-accent-border);color:var(--color-accent);font-weight:600}.slider-row{display:flex;align-items:center;gap:.75rem}.qr-slider{flex:1;accent-color:var(--color-accent);cursor:pointer;height:4px}.slider-value{font-size:.82rem;color:var(--color-text-secondary);min-width:4.5ch;text-align:right;font-variant-numeric:tabular-nums}.color-row{display:flex;gap:1rem}.color-field{display:flex;flex-direction:column;gap:.3rem;flex:1}.color-input-wrap{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;background:var(--color-surface-input);border:1px solid var(--color-border);border-radius:7px;transition:border-color .15s,box-shadow .15s}.color-input-wrap:focus-within{border-color:var(--color-accent-border);box-shadow:0 0 0 3px var(--color-accent-bg)}.color-swatch{width:22px;height:22px;border-radius:4px;border:1px solid var(--color-border);padding:0;cursor:pointer;flex-shrink:0;background:transparent;-webkit-appearance:none;appearance:none}.color-swatch::-webkit-color-swatch-wrapper{padding:0;border-radius:3px;overflow:hidden}.color-swatch::-webkit-color-swatch{border:none;border-radius:3px}.color-swatch::-moz-color-swatch{border:none;border-radius:3px}.color-hex{flex:1;background:transparent;border:none;color:var(--color-text-primary);font-size:.85rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;outline:none;min-width:0}.color-hex::placeholder{color:var(--color-text-muted)}.qr-preview-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:420px}.qr-canvas-wrap{display:flex;align-items:center;justify-content:center;border-radius:8px;overflow:hidden;background-color:var(--color-checker-a);background-image:linear-gradient(45deg,var(--color-checker-b) 25%,transparent 25%),linear-gradient(-45deg,var(--color-checker-b) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-checker-b) 75%),linear-gradient(-45deg,transparent 75%,var(--color-checker-b) 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0px;min-width:160px;min-height:160px}#qr-canvas{display:block;image-rendering:pixelated}.qr-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:2.5rem;color:var(--color-text-muted);text-align:center}.qr-placeholder__icon{font-size:2.5rem;line-height:1;opacity:.4}.qr-placeholder__text{font-size:.85rem;max-width:22ch}.qr-error-card{display:flex;align-items:flex-start;gap:.6rem;padding:.75rem 1rem;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:8px;color:var(--color-danger);font-size:.85rem;width:100%;max-width:420px}.qr-error-card__icon{flex-shrink:0;font-size:1rem}.qr-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.78rem;color:var(--color-text-muted);width:100%;max-width:420px}.qr-meta__item{display:flex;align-items:center;gap:.3rem}.qr-meta__label{color:var(--color-text-faint)}.qr-meta__value{color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.qr-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;width:100%;max-width:420px}.download-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;border-radius:7px;border:1px solid var(--color-accent-border);background:var(--color-accent-bg);color:var(--color-accent);font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s;text-decoration:none;white-space:nowrap}.download-btn:hover{background:var(--color-accent-hover-bg);border-color:var(--color-accent);color:var(--color-accent-hover-text);text-decoration:none}.download-btn:disabled,.download-btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.copy-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;border-radius:7px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:.88rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.copy-btn:hover{border-color:var(--color-accent-border);color:var(--color-accent);background:var(--color-accent-bg)}.copy-btn:disabled,.copy-btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.ec-hint{font-size:.76rem;color:var(--color-text-muted);line-height:1.4;min-height:1.4em}@media(max-width:800px){.qr-workspace{grid-template-columns:1fr}.qr-col--controls{border-right:none;border-bottom:1px solid var(--color-border)}.qr-col--preview{padding:1.5rem 1rem}.qr-preview-card,.qr-meta,.qr-actions{max-width:100%}}@media(max-width:480px){.tool-header{flex-direction:column;align-items:flex-start;gap:.75rem}.qr-col--controls{padding:1rem;gap:1.25rem}.color-row{flex-direction:column}}.qr-field-label{display:block;font-size:.82rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:.1rem}.qr-field-label .qr-optional{font-size:.75rem;font-weight:400;color:var(--color-text-faint)}.qr-section{display:flex;flex-direction:column;gap:.45rem}.qr-section__label{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.qr-section__badge{margin-left:auto;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0}.qr-hint{font-size:.76rem;color:var(--color-text-muted);line-height:1.4}.qr-hint--warn{color:var(--color-warning)}.qr-slider-bounds{display:flex;justify-content:space-between;font-size:.72rem;color:var(--color-text-faint);margin-top:-.1rem}.qr-colours{display:flex;flex-direction:column;gap:.5rem}.qr-colour-item{display:flex;align-items:center;gap:.6rem;cursor:pointer;width:100%}.qr-colour-item__label{font-size:.82rem;color:var(--color-text-secondary);white-space:nowrap;width:6rem;flex-shrink:0}.qr-colour-item__swatch-wrap{display:flex;align-items:center;gap:.4rem;padding:.3rem .55rem;background:var(--color-surface-input);border:1px solid var(--color-border);border-radius:7px;flex:1;transition:border-color .15s,box-shadow .15s}.qr-colour-item:focus-within .qr-colour-item__swatch-wrap{border-color:var(--color-accent-border);box-shadow:0 0 0 3px var(--color-accent-bg)}.qr-colour-input{width:22px;height:22px;border-radius:4px;border:1px solid var(--color-border);padding:0;cursor:pointer;flex-shrink:0;background:transparent;-webkit-appearance:none;appearance:none}.qr-colour-input::-webkit-color-swatch-wrapper{padding:0;border-radius:3px;overflow:hidden}.qr-colour-input::-webkit-color-swatch{border:none;border-radius:3px}.qr-colour-input::-moz-color-swatch{border:none;border-radius:3px}.qr-colour-item__hex{flex:1;font-size:.82rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;color:var(--color-text-secondary);min-width:0}.qr-colour-reset{align-self:flex-start;margin-top:.25rem;padding:.3rem .65rem;border-radius:6px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);font-size:.78rem;cursor:pointer;transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.qr-colour-reset:hover{border-color:var(--color-accent-border);color:var(--color-accent);background:var(--color-accent-bg)}.qr-password-wrap{position:relative;display:flex;align-items:center}.qr-password-wrap .qr-input{padding-right:2.4rem}.qr-eye-btn{position:absolute;right:.5rem;background:transparent;border:none;color:var(--color-text-muted);font-size:1rem;cursor:pointer;padding:.15rem .2rem;line-height:1;transition:color .15s}.qr-eye-btn:hover{color:var(--color-text-secondary)}.qr-section--checkbox{flex-direction:row;align-items:center}.qr-checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.88rem;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.qr-checkbox-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.qr-char-count{font-size:.75rem;color:var(--color-text-muted);text-align:right}.qr-optional{font-size:.72rem;font-weight:400;color:var(--color-text-faint);text-transform:none;letter-spacing:0}.qr-preview-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;font-size:.76rem;color:var(--color-text-muted);width:100%;justify-content:center}.qr-meta-item{color:var(--color-text-secondary)}.qr-meta-sep{color:var(--color-text-faint);-webkit-user-select:none;user-select:none}.qr-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;width:100%}.qr-action-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:7px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.qr-action-btn:hover{border-color:var(--color-accent-border);color:var(--color-accent);background:var(--color-accent-bg)}.qr-action-btn--primary{background:var(--color-accent-bg);border-color:var(--color-accent-border);color:var(--color-accent);font-weight:600}.qr-action-btn--primary:hover{background:var(--color-accent-hover-bg);border-color:var(--color-accent);color:var(--color-accent-hover-text)}.qr-action-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.qr-error-bar{width:100%;padding:.65rem .9rem;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:8px;color:var(--color-danger);font-size:.85rem;line-height:1.4}.qr-content-preview{display:flex;align-items:baseline;gap:.5rem;width:100%;max-width:420px;padding:.5rem .75rem;background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:8px;font-size:.78rem;overflow:hidden}.qr-content-preview__label{flex-shrink:0;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-faint)}.qr-content-preview__value{color:var(--color-text-secondary);font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}@media(max-width:800px){.qr-content-preview{max-width:100%}}
