.tool-main{flex-direction:column;flex:1;width:100%;max-width:100%;padding:0;display:flex;overflow:hidden}.tool-header{border-bottom:1px solid var(--color-border);background-color:var(--color-surface-raised);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.5rem 2rem;display:flex}.tool-header__title{flex-direction:column;gap:.25rem;display:flex}.tool-title{color:var(--color-text-title);margin:0;font-size:1.3rem;font-weight:700}.tool-subtitle{color:var(--color-text-muted);margin:0;font-size:.85rem}.qr-workspace{grid-template-columns:360px 1fr;display:grid}.qr-col--controls{border-right:1px solid var(--color-border);flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.qr-col--preview{flex-direction:column;align-items:center;gap:1.5rem;padding:2rem 1.5rem;display:flex}.qr-textarea{background:var(--color-surface-input);border:1px solid var(--color-border);width:100%;min-height:100px;color:var(--color-text-primary);resize:vertical;border-radius:8px;outline:none;padding:.6rem .75rem;font-family:inherit;font-size:.9rem;line-height:1.5;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)}.structured-form{flex-direction:column;gap:.75rem;display:flex}.form-row{flex-direction:column;gap:.3rem;display:flex}.form-row--inline{flex-direction:row;align-items:center;gap:.75rem}.form-label{color:var(--color-text-secondary);font-size:.78rem;font-weight:500}.qr-input{background:var(--color-surface-input);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);border-radius:7px;outline:none;padding:.45rem .7rem;font-family:inherit;font-size:.88rem;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)}.toggle-group{flex-wrap:wrap;gap:.35rem;display:flex}.toggle-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:.3rem .75rem;font-size:.82rem;transition:border-color .15s,background .15s,color .15s}.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}.qr-slider{accent-color:var(--color-accent);cursor:pointer;flex:1;height:4px}.qr-preview-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:420px;padding:1.5rem;display:flex}.qr-canvas-wrap{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-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;border-radius:8px;justify-content:center;align-items:center;min-width:160px;min-height:160px;display:flex;overflow:hidden}#qr-canvas{image-rendering:pixelated;display:block}.qr-placeholder{color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:2.5rem;display:flex}.qr-placeholder__icon{opacity:.4;font-size:2.5rem;line-height:1}.qr-placeholder__text{max-width:22ch;font-size:.85rem}@media (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-actions{max-width:100%}}@media (width<=480px){.tool-header{flex-direction:column;align-items:flex-start;gap:.75rem}.qr-col--controls{gap:1.25rem;padding:1rem}}.qr-field-label{color:var(--color-text-secondary);margin-bottom:.1rem;font-size:.82rem;font-weight:500;display:block}.qr-field-label .qr-optional{color:var(--color-text-faint);font-size:.75rem;font-weight:400}.qr-section{flex-direction:column;gap:.45rem;display:flex}.qr-section__label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;display:flex}.qr-section__badge{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0;margin-left:auto;font-size:.75rem;font-weight:500}.qr-hint{color:var(--color-text-muted);font-size:.76rem;line-height:1.4}.qr-hint--warn{color:var(--color-warning)}.wifi-password-hint{color:var(--color-text-muted);margin:0;font-size:.8rem}.qr-slider-bounds{color:var(--color-text-faint);justify-content:space-between;margin-top:-.1rem;font-size:.72rem;display:flex}.qr-colours{flex-direction:column;gap:.5rem;display:flex}.qr-colour-item{cursor:pointer;align-items:center;gap:.6rem;width:100%;display:flex}.qr-colour-item__label{color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0;width:6rem;font-size:.82rem}.qr-colour-item__swatch-wrap{background:var(--color-surface-input);border:1px solid var(--color-border);border-radius:7px;flex:1;align-items:center;gap:.4rem;padding:.3rem .55rem;transition:border-color .15s,box-shadow .15s;display:flex}.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{border:1px solid var(--color-border);cursor:pointer;appearance:none;background:0 0;border-radius:4px;flex-shrink:0;width:22px;height:22px;padding:0}.qr-colour-input::-webkit-color-swatch-wrapper{border-radius:3px;padding:0;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{color:var(--color-text-secondary);flex:1;min-width:0;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.82rem}.qr-colour-reset{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;align-self:flex-start;margin-top:.25rem;padding:.3rem .65rem;font-size:.78rem;transition:border-color .15s,color .15s,background .15s}.qr-colour-reset:hover{border-color:var(--color-accent-border);color:var(--color-accent);background:var(--color-accent-bg)}.qr-password-wrap{align-items:center;display:flex;position:relative}.qr-password-wrap .qr-input{padding-right:2.4rem}.qr-eye-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:.15rem .2rem;font-size:1rem;line-height:1;transition:color .15s;position:absolute;right:.5rem}.qr-eye-btn:hover{color:var(--color-text-secondary)}.qr-section--checkbox{flex-direction:row;align-items:center}.qr-checkbox-label{cursor:pointer;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.88rem;display:flex}.qr-checkbox-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.qr-char-count{color:var(--color-text-muted);text-align:right;font-size:.75rem}.qr-optional{color:var(--color-text-faint);text-transform:none;letter-spacing:0;font-size:.72rem;font-weight:400}.qr-preview-meta{color:var(--color-text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .5rem;width:100%;font-size:.76rem;display:flex}.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{flex-wrap:wrap;justify-content:center;gap:.5rem;width:100%;max-width:420px;display:flex}.qr-action-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:7px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.85rem;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.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{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);width:100%;color:var(--color-danger);border-radius:8px;padding:.65rem .9rem;font-size:.85rem;line-height:1.4}.qr-scheme-warn{color:var(--color-warning);background:#fbbf2414;border:1px solid #fbbf244d;border-radius:6px;margin-top:.45rem;padding:.45rem .75rem;font-size:.78rem;line-height:1.45}.qr-scheme-warn strong{font-weight:700}.qr-content-preview{background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:8px;align-items:baseline;gap:.5rem;width:100%;max-width:420px;padding:.5rem .75rem;font-size:.78rem;display:flex;overflow:hidden}.qr-content-preview__label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-faint);flex-shrink:0;font-size:.72rem;font-weight:600}.qr-content-preview__value{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.78rem;overflow:hidden}@media (width<=800px){.qr-content-preview{max-width:100%}}.qr-tool-mode-bar{border-bottom:1px solid var(--color-border);background:var(--color-surface);align-items:center;gap:.5rem;padding:1rem 2rem;display:flex}.qr-tool-mode-bar__label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-right:.25rem;font-size:.75rem;font-weight:600}.qr-reader-workspace{flex-direction:column;flex:1;align-items:center;gap:1.5rem;padding:2rem;display:flex;overflow-y:auto}.qr-reader-drop-zone{border:2px dashed var(--color-border);background:var(--color-surface);cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;width:100%;max-width:520px;min-height:220px;padding:2.5rem 2rem;transition:border-color .2s,background .2s;display:flex}.qr-reader-drop-zone:hover,.qr-reader-drop-zone:focus-visible{border-color:var(--color-accent-border);background:var(--color-accent-bg)}.qr-reader-drop-zone--over{border-color:var(--color-accent);background:var(--color-accent-bg)}.qr-reader-drop-zone__input{display:none}.qr-reader-drop-zone__icon{color:var(--color-text-muted);opacity:.5}.qr-reader-drop-zone__text{color:var(--color-text-secondary);margin:0;font-size:.9rem}.qr-reader-drop-zone__link{color:var(--color-accent);cursor:pointer;text-decoration:underline}.qr-reader-drop-zone__hint{color:var(--color-text-muted);margin:0;font-size:.78rem}.qr-reader-drop-zone__error{color:var(--color-danger);margin:0;font-size:.85rem}.qr-reader-result{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;width:100%;max-width:520px;overflow:hidden}.qr-reader-result__header{border-bottom:1px solid var(--color-border);background:var(--color-surface-raised);align-items:center;gap:.5rem;padding:.85rem 1.25rem;display:flex}.qr-reader-result__badge{background:var(--color-accent-bg);color:var(--color-accent);border:1px solid var(--color-accent-border);border-radius:6px;align-items:center;gap:.3rem;padding:.2rem .65rem;font-size:.78rem;font-weight:600;display:inline-flex}.qr-reader-result__label{color:var(--color-text-muted);margin-left:auto;font-size:.82rem}.qr-reader-result__body{flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.qr-reader-raw{flex-direction:column;gap:.3rem;display:flex}.qr-reader-raw__label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-faint);font-size:.72rem;font-weight:600}.qr-reader-raw__value{color:var(--color-text-primary);background:var(--color-surface-input);border:1px solid var(--color-border);word-break:break-all;white-space:pre-wrap;border-radius:8px;max-height:200px;padding:.65rem .85rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.85rem;line-height:1.5;overflow-y:auto}.qr-reader-details{flex-direction:column;gap:.5rem;display:flex}.qr-reader-details__title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-faint);margin:0;font-size:.72rem;font-weight:600}.qr-reader-detail-row{border-bottom:1px solid var(--color-border-subtle,var(--color-border));align-items:baseline;gap:.75rem;padding:.35rem 0;font-size:.85rem;display:flex}.qr-reader-detail-row:last-child{border-bottom:none}.qr-reader-detail-row__key{width:5.5rem;color:var(--color-text-muted);text-transform:capitalize;flex-shrink:0;font-size:.78rem;font-weight:500}.qr-reader-detail-row__val{color:var(--color-text-primary);word-break:break-all;min-width:0}.qr-reader-detail-row__val a{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline}.qr-reader-detail-row__val a:hover{color:var(--color-accent-hover-text,var(--color-accent))}.qr-reader-actions{flex-wrap:wrap;gap:.5rem;padding:0 1.25rem 1.25rem;display:flex}.qr-reader-image-preview{flex-direction:column;align-items:center;gap:.5rem;width:100%;max-width:520px;display:flex}.qr-reader-image-preview__img{border:1px solid var(--color-border);object-fit:contain;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-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;border-radius:8px;max-width:200px;max-height:200px}.qr-reader-image-preview__name{color:var(--color-text-muted);font-size:.78rem}@media (width<=480px){.qr-tool-mode-bar{padding:.75rem 1rem}.qr-reader-workspace{padding:1.25rem 1rem}.qr-reader-drop-zone{min-height:180px;padding:2rem 1rem}.qr-reader-result__body{padding:1rem}.qr-reader-actions{padding:0 1rem 1rem}.qr-reader-detail-row{flex-direction:column;gap:.15rem}.qr-reader-detail-row__key{width:auto}}
