.qr-tool{padding:0;max-width:none;overflow:hidden;gap:0}.qr-shell{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-secondary)}.qr-navbar{height:40px;flex-shrink:0;display:flex;align-items:center;gap:18px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--bg-card)}.qr-app-title{font-weight:700;font-size:.88rem}.qr-tabs{display:flex;align-items:stretch;gap:2px;height:100%}.qr-tab{background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:.8rem;font-weight:600;color:var(--text-muted);padding:0 14px;border-bottom:2px solid transparent;transition:color .15s}.qr-tab:hover{color:var(--text)}.qr-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.qr-nav-left{display:flex;align-items:center;gap:8px}.qr-nav-right{margin-left:auto;display:flex;align-items:center;gap:8px}.qr-nav-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.qr-nav-select{height:26px;padding:0 6px;border:1px solid var(--border);border-radius:5px;font-size:.72rem;background:var(--bg-card);color:var(--text);outline:none;cursor:pointer}.qr-nav-select:focus{border-color:var(--accent)}.qr-status{font-size:.72rem;color:var(--text-dim);font-family:var(--font-mono)}.qr-icon-btn{height:26px;min-width:26px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:5px;color:var(--text-dim);cursor:pointer;transition:all .12s;font-family:var(--font-sans)}.qr-icon-btn:hover{background:var(--bg-hover);color:var(--text)}.qr-panel{display:none;flex:1;min-height:0;overflow:auto}.qr-panel.active{display:block}.qr-body{flex:1;min-height:0;display:flex}.qr-main{flex:1;min-width:0;display:flex;flex-direction:column}.qr-side-info{width:300px;flex-shrink:0;background:linear-gradient(180deg,var(--bg-card),var(--bg-secondary));border-left:1px solid var(--border);overflow:hidden;transition:width .15s}.qr-side-info.collapsed{width:0!important;border-left:none}.qr-side-info-inner{width:100%;height:100%;overflow-y:auto;padding:14px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px}.qr-side-info.collapsed .qr-side-info-inner{display:none}.qr-details{border:1px solid var(--border);border-radius:8px;padding:4px 10px 8px;background:var(--bg-card)}.qr-details summary{cursor:pointer;font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--text-dim);font-weight:700;padding:6px 0;user-select:none}.qr-details summary:hover{color:var(--text)}.qr-details[open] summary{border-bottom:1px solid var(--border);margin-bottom:8px}.qr-details>*:not(summary){margin-top:6px}.qr-recent-list{display:flex;flex-direction:column;gap:6px}.qr-recent-item{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:7px;padding:7px 8px;background:var(--bg-card);cursor:pointer;transition:border-color .15s}.qr-recent-item:hover{border-color:var(--border-hover)}.qr-recent-item.active{border-color:var(--accent);background:var(--accent-glow)}.qr-recent-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.qr-recent-label{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}.qr-current{font-style:normal;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border:1px solid var(--border);border-radius:4px;padding:0 4px;margin-left:4px;vertical-align:middle}.qr-recent-item.active .qr-current{color:var(--accent);border-color:var(--accent)}.qr-recent-preview{font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono)}.qr-recent-time{font-size:.62rem;color:var(--text-dim)}.qr-recent-del{color:var(--text-dim)}.qr-recent-del:hover{color:var(--error)}.qr-empty{font-size:.74rem;color:var(--text-dim);padding:6px 0}.qr-block-clear{align-self:flex-start}.qr-payload{margin:0;padding:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:7px;font-family:var(--font-mono);font-size:.72rem;color:var(--text);white-space:pre-wrap;word-break:break-all;max-height:140px;overflow:auto}.qr-props{display:flex;flex-direction:column;gap:6px}.qr-prop{display:flex;justify-content:space-between;align-items:center;font-size:.74rem}.qr-prop span{color:var(--text-dim)}.qr-prop b{font-weight:600;color:var(--text);font-family:var(--font-mono)}.qr-contrast-ind{display:flex;align-items:center;gap:8px;font-size:.76rem;color:var(--text-muted)}.qr-contrast-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.qr-contrast-dot.ok{background:#22c55e}.qr-contrast-dot.warn{background:#f59e0b}.qr-export-row{display:flex;flex-wrap:wrap;gap:6px}.qr-export-row .qr-btn{padding:7px 12px}.qr-scan-result{display:flex;flex-direction:column;gap:8px}.qr-scan-result-value{font-family:var(--font-mono);font-size:.78rem;color:var(--text);background:var(--bg-card);border:1px solid var(--border);border-radius:7px;padding:10px;word-break:break-all;max-height:150px;overflow:auto}.qr-scan-result-link{color:var(--accent);font-size:.78rem}.qr-tips{margin:0;padding-left:18px;font-size:.74rem;color:var(--text-muted);display:flex;flex-direction:column;gap:6px}.qr-format-item{font-size:.76rem;color:var(--text-muted);padding:4px 0;border-bottom:1px dashed var(--border)}.qr-gen-layout{display:flex;gap:0;height:100%;min-height:0}.qr-gen-controls{width:340px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px;background:var(--bg-secondary)}.qr-gen-preview{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;overflow:auto;background:var(--bg-card)}.qr-block{display:flex;flex-direction:column;gap:8px}.qr-block-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--text-dim);font-weight:700}.qr-type-tabs{display:flex;flex-wrap:wrap;gap:6px}.qr-type-tab{padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text-muted);font-size:.74rem;cursor:pointer;font-family:var(--font-sans);transition:all .15s}.qr-type-tab:hover{border-color:var(--border-hover);color:var(--text)}.qr-type-tab.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.qr-field{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.qr-field-label{font-size:.7rem;color:var(--text-muted);font-weight:600}.qr-input{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:.78rem;font-family:var(--font-sans);background:var(--bg-card);color:var(--text);outline:none;box-sizing:border-box}.qr-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.qr-select{cursor:pointer}textarea.qr-input{resize:vertical;font-family:var(--font-mono)}.qr-row{display:flex;align-items:center;gap:8px}.qr-row2{display:grid;grid-template-columns:1fr auto;gap:6px 8px;align-items:center}.qr-row2 input[type=color]{width:46px;height:30px;padding:0;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer}.qr-row input[type=color]{width:46px;height:30px;padding:0;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer;flex-shrink:0}.qr-check{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;color:var(--text-muted);cursor:pointer}.qr-presets{display:flex;flex-wrap:wrap;gap:6px}.qr-preset-btn{padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text);font-size:.72rem;cursor:pointer;font-family:var(--font-sans);transition:all .15s}.qr-preset-btn:hover{border-color:var(--accent)}.qr-sub-title{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-weight:700;margin-top:4px}.qr-shape-options{display:flex;flex-wrap:wrap;gap:6px}.qr-shape-opt{width:40px;height:40px;padding:2px;border:1px solid var(--border);border-radius:7px;background:var(--bg-card);cursor:pointer;transition:all .15s}.qr-shape-opt canvas{display:block;width:36px;height:36px}.qr-shape-opt:hover{border-color:var(--border-hover)}.qr-shape-opt.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.qr-design-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:6px}.qr-design-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;border:1px solid var(--border);border-radius:7px;background:var(--bg-card);cursor:pointer;transition:all .15s;font-family:var(--font-sans)}.qr-design-card:hover{border-color:var(--border-hover)}.qr-design-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.design-swatch{display:block;width:100%;height:26px;border-radius:5px;border:1px solid var(--border);overflow:hidden;position:relative}.design-swatch i{position:absolute;left:0;top:0;bottom:0;width:40%}.design-name{font-size:.62rem;color:var(--text);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.qr-bg-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(26px,1fr));gap:6px}.qr-bg-swatches .bg-swatch{height:26px;border:1px solid var(--border);border-radius:5px;cursor:pointer;padding:0;transition:all .15s}.qr-bg-swatches .bg-swatch:hover{box-shadow:0 0 0 2px var(--border-hover)}.qr-bg-swatches .bg-swatch.active{box-shadow:0 0 0 2px var(--accent);border-color:var(--accent)}.qr-btn{padding:8px 14px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text);font-size:.78rem;font-weight:600;cursor:pointer;font-family:var(--font-sans);transition:all .15s}.qr-btn:hover{border-color:var(--border-hover);background:var(--bg-hover)}.qr-btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.qr-btn-accent:hover{background:var(--accent-hover)}.qr-btn-ghost{background:none;color:var(--text-dim)}.qr-val{font-family:var(--font-mono);font-size:.74rem;color:var(--text-muted)}.qr-preview-box{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px}.qr-logo-card{display:flex;flex-direction:column;gap:8px}.qr-logo-preview{border:2px dashed var(--border);border-radius:10px;padding:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s;background:repeating-conic-gradient(#e8e8e8 0 25%,#fff 0 50%) 0 0 / 12px 12px;min-height:76px}.qr-logo-preview:hover{border-color:var(--accent)}.qr-logo-empty{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--text-dim);font-size:.8rem}.qr-logo-plus{font-size:1.4rem;line-height:1;color:var(--text-muted)}.qr-logo-hint{font-size:.66rem;color:var(--text-dim)}.qr-logo-thumb{max-width:140px;max-height:76px;object-fit:contain}.qr-logo-controls{display:flex;flex-direction:column;gap:8px}.qr-logo-empty[hidden],.qr-logo-thumb[hidden],.qr-logo-controls[hidden]{display:none!important}.qr-export-bar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;position:sticky;bottom:12px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:0 6px 20px #0000001f}#qr-canvas{width:min(100%,440px);height:auto;border-radius:10px;box-shadow:0 8px 32px #0000002e;background:#fff}.qr-warn{max-width:480px;text-align:center;font-size:.78rem;color:#b45309;background:#b453091a;border:1px solid rgba(180,83,9,.3);padding:8px 14px;border-radius:8px}.qr-warn-error{color:var(--error);background:#ef44441a;border-color:#ef44444d}.qr-preview-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.qr-scan-layout{display:flex;height:100%;min-height:0}.qr-scan-left{width:380px;flex-shrink:0;border-right:1px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:14px;background:var(--bg-secondary);overflow-y:auto}.qr-scan-right{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--bg-card)}.qr-mode-tabs{display:flex;gap:6px}.qr-mode-tab{padding:5px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text-muted);font-size:.76rem;cursor:pointer;font-family:var(--font-sans);transition:all .15s}.qr-mode-tab:hover{color:var(--text)}.qr-mode-tab.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.qr-drop{border:2px dashed var(--border);border-radius:10px;padding:40px 16px;text-align:center;color:var(--text-dim);font-size:.82rem;cursor:pointer;transition:border-color .15s}.qr-drop:hover{border-color:var(--accent)}.qr-drop-inner{display:flex;flex-direction:column;align-items:center;gap:10px}.qr-scan-img{max-width:100%;border-radius:8px;margin-top:10px;border:1px solid var(--border)}.qr-cam-wrap{background:#000;border-radius:10px;overflow:hidden;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}.qr-cam-wrap video{width:100%;height:100%;object-fit:cover}.qr-scan-status{font-size:.74rem;color:var(--text-dim);min-height:18px}.qr-result-head{min-height:26px;display:flex;align-items:center}.qr-badge{display:inline-block;padding:3px 10px;border-radius:5px;background:var(--accent-glow);color:var(--accent);font-size:.7rem;font-weight:700;font-family:var(--font-mono);letter-spacing:.04em}.qr-result-value{flex:1;min-height:0;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:8px;font-family:var(--font-mono);font-size:.84rem;background:var(--bg-secondary);color:var(--text);resize:none;outline:none;box-sizing:border-box}.qr-result-actions{display:flex;gap:8px}@media(max-width:1100px){.qr-side-info{display:none}}@media(max-width:860px){.qr-gen-layout{flex-direction:column}.qr-gen-controls{width:100%;border-right:none;border-bottom:1px solid var(--border);max-height:50%}.qr-scan-layout{flex-direction:column}.qr-scan-left{width:100%;border-right:none;border-bottom:1px solid var(--border)}}
