.card{background:var(--card);border-radius:var(--radius);box-shadow:0 1px 6px #00000012;padding:16px;margin-bottom:16px}.tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--card);border-radius:14px;padding:5px;gap:4px;box-shadow:0 1px 4px #00000012;margin-bottom:20px}.tab{padding:9px;border-radius:10px;border:none;background:transparent;font-size:14px;font-weight:600;color:var(--sub);cursor:pointer;transition:all .2s}.tab.active{background:var(--primary);color:#fff}label.field-label{display:block;font-size:13px;font-weight:600;color:var(--sub);margin-bottom:6px}textarea{width:100%;border:2px solid var(--border);border-radius:10px;padding:10px 12px;font-size:15px;outline:none;transition:border-color .2s;resize:vertical;min-height:100px;font-family:inherit;color:var(--text);background:var(--card)}textarea:focus{border-color:var(--primary)}.row{display:flex;gap:12px;margin-top:14px}.field{flex:1}select{width:100%;border:2px solid var(--border);border-radius:10px;padding:9px 12px;font-size:14px;outline:none;background:var(--card);transition:border-color .2s;color:var(--text);cursor:pointer}select:focus{border-color:var(--primary)}.color-row{display:flex;gap:12px;margin-top:14px}.color-field{flex:1}.color-wrap{display:flex;align-items:center;gap:8px;border:2px solid var(--border);border-radius:10px;padding:7px 12px;background:var(--card)}.color-wrap input[type=color]{width:24px;height:24px;border:none;padding:0;border-radius:6px;cursor:pointer;outline:none}.color-wrap span{font-size:14px;color:var(--text);font-family:Menlo,Consolas,monospace}.btn-primary{width:100%;background:linear-gradient(135deg,var(--primary),var(--primary-end));color:#fff;border:none;border-radius:10px;padding:13px 18px;font-size:15px;font-weight:700;cursor:pointer;transition:filter .15s;margin-top:16px}.btn-primary:hover{filter:brightness(1.08)}.btn-primary:active{filter:brightness(.95)}.qr-preview{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px;background:var(--card);border-radius:var(--radius);box-shadow:0 1px 6px #00000012;margin-bottom:16px}.qr-empty{width:200px;height:200px;border-radius:8px;border:2px dashed var(--border);display:flex;align-items:center;justify-content:center;color:var(--sub);font-size:13px;text-align:center;padding:20px}.btn-download{background:#f3f1ff;color:var(--primary);border:none;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s}.btn-download:hover{background:#ede9ff}.upload-label{display:block;border:2px dashed #d0c8ff;border-radius:14px;padding:36px 20px;text-align:center;cursor:pointer;transition:all .2s;background:var(--primary-muted)}.upload-label:hover,.upload-label.drag{border-color:var(--primary);background:#f0eeff}.upload-label .icon{font-size:36px;margin-bottom:8px}.upload-label p{font-size:14px;color:var(--sub)}.upload-label strong{color:var(--primary)}.scan-preview-wrap{margin-top:14px;display:none;text-align:center}.scan-preview-wrap img{max-width:100%;max-height:240px;border-radius:10px;object-fit:contain;border:1px solid var(--border)}.loading-msg{margin-top:12px;padding:12px 16px;border-radius:12px;background:#f0eeff;color:var(--primary);font-size:14px;display:none}.result-box{margin-top:16px;background:var(--card);border-radius:var(--radius);box-shadow:0 1px 6px #00000012;overflow:hidden;display:none}.result-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.result-header span{font-size:13px;font-weight:600;color:var(--sub)}.btn-copy{background:#f3f1ff;color:var(--primary);border:none;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s}.btn-copy:hover{background:#ede9ff}.btn-clear{background:var(--card-alt);color:var(--sub);border:none;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s}.btn-clear:hover{background:var(--card-alt);filter:brightness(.95)}.result-text{padding:14px 16px;font-size:15px;color:var(--text);word-break:break-all;line-height:1.6;font-family:Menlo,Consolas,monospace}.result-text a{color:var(--primary);text-decoration:none}.result-text a:hover{text-decoration:underline}.err-msg{margin-top:12px;padding:10px 14px;border-radius:12px;background:#f443361a;color:#f44336;font-size:14px;display:none;align-items:center;justify-content:space-between;gap:10px}.camera-btn{width:100%;background:#f3f1ff;color:var(--primary);border:none;border-radius:10px;padding:11px 18px;font-size:14px;font-weight:700;cursor:pointer;margin-top:12px;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .15s}.camera-btn:hover{background:#ede9ff}#cameraWrap{display:none;margin-top:14px}#cameraWrap video{width:100%;border-radius:12px;display:block;background:#000}.btn-stop-camera{width:100%;background:#f443361a;color:#f44336;border:none;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:700;cursor:pointer;margin-top:10px}#scanPanel{display:none}.type-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.type-chip{padding:6px 14px;border-radius:20px;border:2px solid var(--border);background:var(--card);font-size:13px;font-weight:600;color:var(--sub);cursor:pointer;transition:all .2s}.type-chip.active{border-color:var(--primary);background:#ede9ff;color:var(--primary)}.type-fields{display:none}.type-fields.active{display:block}.field-group{margin-bottom:12px}.field-group:last-child{margin-bottom:0}input.text-input{width:100%;border:2px solid var(--border);border-radius:10px;padding:10px 12px;font-size:15px;outline:none;transition:border-color .2s;font-family:inherit;color:var(--text);background:var(--card)}input.text-input:focus{border-color:var(--primary)}.input-row{display:flex;gap:10px}.input-row .field-group{flex:1}.history-section{background:var(--card);border-radius:var(--radius);box-shadow:0 1px 6px #00000012;margin-bottom:16px;overflow:hidden}.history-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.history-header span{font-size:13px;font-weight:700;color:var(--text)}.btn-clear-all{background:none;border:none;color:var(--sub);font-size:12px;cursor:pointer;padding:4px 8px;border-radius:6px}.btn-clear-all:hover{background:var(--card-alt);color:#f44336}.history-list{max-height:220px;overflow-y:auto}.history-item{padding:10px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s;display:flex;align-items:center;gap:10px}.history-item:last-child{border-bottom:none}.history-item:hover{background:var(--primary-muted)}.history-item-icon{font-size:16px;flex-shrink:0}.history-item-body{flex:1;min-width:0}.history-item-text{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item-meta{font-size:11px;color:var(--sub);margin-top:2px}.dot-picker{display:flex;gap:6px}.dot-btn{flex:1;padding:8px 4px;border-radius:8px;border:2px solid var(--border);background:var(--card);font-size:12px;font-weight:600;color:var(--sub);cursor:pointer;transition:all .2s;text-align:center;line-height:1.4}.dot-btn.active{border-color:var(--primary);background:#ede9ff;color:var(--primary)}.result-actions{padding:0 14px 14px}.action-card{background:var(--card-alt);border-radius:12px;padding:12px 14px;display:flex;align-items:flex-start;gap:12px}.action-icon{font-size:26px;flex-shrink:0;margin-top:2px}.action-body{flex:1;min-width:0}.action-row-item{margin-bottom:6px}.action-row-item:last-child{margin-bottom:0}.action-key{font-size:11px;color:var(--sub)}.action-val{font-size:14px;font-weight:600;color:var(--text);word-break:break-all}.action-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.btn-act{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;transition:filter .15s}.btn-act:hover{filter:brightness(1.08)}.btn-act-ghost{background:#ede9ff;color:var(--primary);border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;transition:background .15s}.btn-act-ghost:hover{background:#dcd6ff}@media(min-width:720px){.gen-grid,.scan-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}.gen-grid>.card,.scan-grid>.card{height:100%}.gen-right,.scan-right{display:flex;flex-direction:column;gap:16px;height:100%}.card,.qr-preview,.history-section,.result-box,.err-msg{margin-bottom:0}.gen-right .qr-preview{flex:1;min-height:260px;justify-content:center}}@media(max-width:600px){textarea,input[type=text],input[type=number]{font-size:16px}.tab{min-height:48px;font-size:15px}.btn-primary{min-height:52px;font-size:16px}button,a{touch-action:manipulation}.row,.color-row,.input-row{flex-direction:column;gap:10px}}:is([data-theme=dark]) .upload-label{background:var(--primary-muted);border-color:#6c63ff4d}:is([data-theme=dark]) .upload-label:hover,:is([data-theme=dark]) .upload-label.drag{background:#6c63ff26;border-color:var(--primary)}:is([data-theme=dark]) .loading-msg{background:var(--primary-muted)}:is([data-theme=dark]) .btn-download{background:var(--primary-muted)}:is([data-theme=dark]) .btn-download:hover{background:#6c63ff33}:is([data-theme=dark]) .btn-copy{background:var(--primary-muted)}:is([data-theme=dark]) .btn-copy:hover{background:#6c63ff33}:is([data-theme=dark]) .type-chip.active{background:var(--primary-muted)}:is([data-theme=dark]) .dot-btn.active{background:var(--primary-muted)}:is([data-theme=dark]) .btn-act-ghost{background:var(--primary-muted)}:is([data-theme=dark]) .btn-act-ghost:hover{background:#6c63ff33}:is([data-theme=dark]) .history-item{border-bottom-color:var(--border)}:is([data-theme=dark]) .camera-btn{background:var(--primary-muted)}:is([data-theme=dark]) .camera-btn:hover{background:#6c63ff33}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .upload-label{background:var(--primary-muted);border-color:#6c63ff4d}:root:not([data-theme=light]) .upload-label:hover,:root:not([data-theme=light]) .upload-label.drag{background:#6c63ff26;border-color:var(--primary)}:root:not([data-theme=light]) .loading-msg{background:var(--primary-muted)}:root:not([data-theme=light]) .btn-download{background:var(--primary-muted)}:root:not([data-theme=light]) .btn-download:hover{background:#6c63ff33}:root:not([data-theme=light]) .btn-copy{background:var(--primary-muted)}:root:not([data-theme=light]) .btn-copy:hover{background:#6c63ff33}:root:not([data-theme=light]) .type-chip.active{background:var(--primary-muted)}:root:not([data-theme=light]) .dot-btn.active{background:var(--primary-muted)}:root:not([data-theme=light]) .btn-act-ghost{background:var(--primary-muted)}:root:not([data-theme=light]) .btn-act-ghost:hover{background:#6c63ff33}:root:not([data-theme=light]) .history-item{border-bottom-color:var(--border)}:root:not([data-theme=light]) .camera-btn{background:var(--primary-muted)}:root:not([data-theme=light]) .camera-btn:hover{background:#6c63ff33}}
