.card{background:var(--card);border-radius:var(--radius);box-shadow:0 1px 6px #00000012;padding:16px;margin-bottom:16px}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}#qrContainer{width:100%;display:flex;justify-content:center}#qrContainer canvas{max-width:100%;height:auto;display:block;border-radius:4px}.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}.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)}.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)}.finder-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}.finder-btn.active{border-color:var(--primary);background:#ede9ff;color:var(--primary)}.fg-mode{display:flex;gap:6px}.fg-btn{flex:1;padding:8px 4px;border-radius:8px;border:2px solid var(--border);background:var(--card);font-size:13px;font-weight:600;color:var(--sub);cursor:pointer;transition:all .2s}.fg-btn.active{border-color:var(--primary);background:#ede9ff;color:var(--primary)}.grad-dir{display:flex;gap:4px}.dir-btn{flex:1;padding:6px 0;border-radius:8px;border:2px solid var(--border);background:var(--card);font-size:15px;font-weight:700;color:var(--sub);cursor:pointer;transition:all .2s}.dir-btn.active{border-color:var(--primary);background:#ede9ff;color:var(--primary)}.logo-row{display:flex;gap:8px;align-items:center}.logo-upload{flex:1;display:flex;align-items:center;justify-content:center;padding:10px;border-radius:10px;border:2px dashed var(--border);cursor:pointer;transition:all .2s;font-size:13px;font-weight:600;color:var(--sub);background:var(--card)}.logo-upload:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-muted)}.logo-upload.has-logo{border-style:solid;border-color:var(--primary);color:var(--primary)}.logo-clear{flex-shrink:0;width:36px;height:36px;border-radius:10px;border:2px solid var(--border);background:var(--card-alt);color:var(--sub);font-size:18px;font-weight:700;cursor:pointer;transition:all .15s}.logo-clear:hover{color:#f44336;border-color:#f44336}#logoSize,#bgOpacity{accent-color:var(--primary)}.bg-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--sub);cursor:pointer}.bg-check input[type=checkbox]{accent-color:var(--primary);width:15px;height:15px;cursor:pointer}.text-opts{display:flex;gap:14px;margin-top:8px;flex-wrap:wrap;align-items:center}.opt-group{display:flex;align-items:center;gap:4px}.opt-label{font-size:11px;color:var(--sub);margin-right:4px;white-space:nowrap}.opt-btn{padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card);font-size:12px;color:var(--sub);cursor:pointer;transition:all .15s;font-weight:600}.opt-btn.active{border-color:var(--primary);color:var(--primary);background:#ede9ff}.opt-slider{display:flex;align-items:center;gap:8px;flex:1;min-width:160px}.opt-slider input[type=range]{flex:1;accent-color:var(--primary);min-width:60px}.opt-val{font-size:11px;color:var(--sub);min-width:40px;text-align:right;font-variant-numeric:tabular-nums}.opt-reset{flex-shrink:0;width:22px;height:22px;padding:0;border-radius:5px;border:1px solid var(--border);background:var(--card);color:var(--sub);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.opt-reset:hover{color:var(--primary);border-color:var(--primary)}.opt-reset:active{transform:rotate(-90deg)}.opt-color{display:flex;align-items:center;gap:6px}.color-wrap.compact{padding:4px 8px;border-radius:8px}.color-wrap.compact input[type=color]{width:20px;height:20px}.color-wrap.compact span{font-size:12px}#textList{display:flex;flex-direction:column;gap:10px}#textList:empty{display:none}.text-item{padding:10px;border-radius:10px;background:var(--card-alt);border:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.text-item-head{display:flex;align-items:center;gap:8px}.text-item-num{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.text-item-input{flex:1;font-size:14px!important;padding:7px 10px!important}.text-remove{flex-shrink:0;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--sub);font-size:18px;line-height:1;font-weight:700;cursor:pointer}.text-remove:hover{color:#f44336;border-color:#f44336}.text-item-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.text-font-sel{padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);font-size:12px;cursor:pointer}.text-style-btn{width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--sub);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:all .15s}.text-style-btn.active{border-color:var(--primary);color:var(--primary);background:#ede9ff}.text-style-btn b{font-weight:900}.text-style-btn i{font-style:italic;font-family:serif}.add-text-btn{margin-top:10px;width:100%;padding:9px;border:1px dashed var(--border);border-radius:10px;background:transparent;color:var(--sub);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.add-text-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-muted)}.preset-row{display:flex;flex-wrap:wrap;gap:6px}.preset-btn{padding:6px 12px;border-radius:8px;border:2px solid var(--border);background:var(--card);color:var(--sub);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.preset-btn.active{border-color:var(--primary);background:#ede9ff;color:var(--primary)}@media(min-width:720px){.gen-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:stretch}.gen-grid>.card{min-width:0}.gen-grid{align-items:start}.gen-right{display:flex;flex-direction:column;gap:16px;position:sticky;top:12px;align-self:start}.card,.qr-preview,.history-section{margin-bottom:0}.gen-right .qr-preview{min-height:520px;justify-content:center}.gen-right .qr-empty{width:260px;height:260px}}@media(max-width:600px){textarea,input[type=text],input[type=number]{font-size:16px}.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]) .btn-download{background:var(--primary-muted)}:is([data-theme=dark]) .btn-download: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]) .finder-btn.active{background:var(--primary-muted)}:is([data-theme=dark]) .fg-btn.active{background:var(--primary-muted)}:is([data-theme=dark]) .dir-btn.active{background:var(--primary-muted)}:is([data-theme=dark]) .opt-btn.active{background:var(--primary-muted)}:is([data-theme=dark]) .text-style-btn.active{background:var(--primary-muted)}:is([data-theme=dark]) .preset-btn.active{background:var(--primary-muted)}:is([data-theme=dark]) .history-item{border-bottom-color:var(--border)}@media(prefers-color-scheme:dark){: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]) .type-chip.active{background:var(--primary-muted)}:root:not([data-theme=light]) .dot-btn.active{background:var(--primary-muted)}:root:not([data-theme=light]) .finder-btn.active{background:var(--primary-muted)}:root:not([data-theme=light]) .fg-btn.active{background:var(--primary-muted)}:root:not([data-theme=light]) .dir-btn.active{background:var(--primary-muted)}:root:not([data-theme=light]) .opt-btn.active{background:var(--primary-muted)}:root:not([data-theme=light]) .text-style-btn.active{background:var(--primary-muted)}:root:not([data-theme=light]) .preset-btn.active{background:var(--primary-muted)}:root:not([data-theme=light]) .history-item{border-bottom-color:var(--border)}}
