.toolbar[data-v-40748942]{position:fixed;left:12px;top:50%;transform:translateY(-50%);max-height:50vh;width:56px;border-radius:16px;border:1px solid var(--outline);background:#faf9f4d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:8px;z-index:100;box-shadow:0 2px 12px #0000000a;overflow-y:auto}.tool-btn[data-v-40748942]{position:relative;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--on-surface-variant);border:none;cursor:pointer;transition:all .2s ease;flex-shrink:0}.tool-btn[data-v-40748942]:hover{background:var(--surface-variant);color:var(--primary)}.tool-btn.active[data-v-40748942]{background:var(--surface-variant);color:var(--primary);box-shadow:inset 0 0 0 1.5px var(--primary)}.tooltip-teleport[data-v-40748942]{position:fixed;transform:translateY(-50%);background:#1b1c19eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;padding:8px 12px;border-radius:10px;min-width:120px;opacity:0;pointer-events:none;z-index:200;box-shadow:0 4px 16px #00000026;animation:tooltipIn-40748942 .2s ease 2s forwards}.tooltip-teleport[data-v-40748942]:before{content:"";position:absolute;left:-5px;top:50%;transform:translateY(-50%);border-width:5px 5px 5px 0;border-style:solid;border-color:transparent rgba(27,28,25,.92) transparent transparent}@keyframes tooltipIn-40748942{to{opacity:1}}.tooltip-title[data-v-40748942]{font-size:12px;font-weight:700;margin-bottom:2px;white-space:nowrap}.tooltip-desc[data-v-40748942]{font-size:11px;opacity:.75;white-space:nowrap}[data-v-40748942]::-webkit-scrollbar{width:3px}[data-v-40748942]::-webkit-scrollbar-track{background:transparent}[data-v-40748942]::-webkit-scrollbar-thumb{background:var(--outline);border-radius:10px}.right-panel[data-v-ff2d1bd8]{position:fixed;right:12px;top:12px;bottom:12px;width:240px;border-radius:16px;border:1px solid var(--outline);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;overflow:hidden;background:#faf9f4d9;z-index:100;box-shadow:0 2px 12px #0000000a}.panel-header[data-v-ff2d1bd8]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;font-size:14px;font-weight:700;color:var(--on-surface);border-bottom:1px solid var(--outline);letter-spacing:.02em}.panel-close[data-v-ff2d1bd8]{width:28px;height:28px;border-radius:50%;background:transparent;border:none;color:var(--on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.panel-close[data-v-ff2d1bd8]:hover{background:var(--surface-variant);color:var(--primary)}.panel-content[data-v-ff2d1bd8]{flex:1;overflow-y:auto;padding:16px}[data-v-ff2d1bd8]::-webkit-scrollbar{width:4px}[data-v-ff2d1bd8]::-webkit-scrollbar-track{background:transparent}[data-v-ff2d1bd8]::-webkit-scrollbar-thumb{background:var(--outline);border-radius:10px}.bottom-bar-wrapper[data-v-6a2ff16e]{position:fixed;bottom:20px;left:68px;right:252px;display:flex;justify-content:center;align-items:flex-end;pointer-events:none;z-index:50}.bottom-bar-wrapper[data-v-6a2ff16e]>*{pointer-events:auto}.bottom-toggle-btn[data-v-6a2ff16e]{width:44px;height:44px;border-radius:50%;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--outline);box-shadow:0 4px 16px #00000014;color:var(--on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1)}.bottom-toggle-btn[data-v-6a2ff16e]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000001f;color:var(--primary)}.bottom-bar[data-v-6a2ff16e]{display:flex;flex-direction:column;align-items:center;gap:6px;animation:slideUp-6a2ff16e .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp-6a2ff16e{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.bottom-bar-inner[data-v-6a2ff16e]{display:flex;align-items:center;gap:12px;padding:10px 24px;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--outline);border-radius:9999px;box-shadow:0 -4px 24px #0000000f}.bottom-collapse-btn[data-v-6a2ff16e]{width:32px;height:32px;border-radius:50%;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--outline);color:var(--on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.bottom-collapse-btn[data-v-6a2ff16e]:hover{color:var(--primary);transform:translateY(1px)}.btn-file[data-v-6a2ff16e]{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--primary);color:var(--on-primary);border-radius:9999px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s ease;letter-spacing:.02em}.btn-file[data-v-6a2ff16e]:hover{background:var(--primary-hover)}.btn-file input[data-v-6a2ff16e]{display:none}.btn-new[data-v-6a2ff16e]{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--surface-variant);color:var(--on-surface-variant);border-radius:9999px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;letter-spacing:.02em;border:none}.btn-new[data-v-6a2ff16e]:hover{background:var(--outline)}.btn-stats[data-v-6a2ff16e]{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--surface-variant);color:var(--on-surface-variant);border-radius:9999px;font-size:12px;font-weight:600;white-space:nowrap;border:none;cursor:pointer;transition:all .2s ease}.btn-stats[data-v-6a2ff16e]:hover{background:var(--outline)}.btn-stats.active[data-v-6a2ff16e]{background:var(--primary);color:var(--on-primary)}.stats-preview-swatch[data-v-6a2ff16e]{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.08);flex-shrink:0}.btn-toggle[data-v-6a2ff16e]{padding:8px 14px;background:var(--surface-variant);color:var(--on-surface-variant);border-radius:9999px;font-size:12px;font-weight:600;white-space:nowrap;border:none;cursor:pointer;transition:all .2s ease}.btn-toggle.active[data-v-6a2ff16e]{background:var(--primary);color:var(--on-primary)}.btn-download[data-v-6a2ff16e]{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--primary);color:var(--on-primary);border-radius:9999px;font-size:13px;font-weight:600;letter-spacing:.02em;border:none;cursor:pointer;transition:all .2s ease}.btn-download[data-v-6a2ff16e]:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #74572640}button[data-v-6a2ff16e]:disabled{opacity:.5;cursor:not-allowed}.divider[data-v-6a2ff16e]{width:1px;height:24px;background:var(--outline);opacity:.6}.stats-drawer[data-v-bf79a508]{position:fixed;bottom:0;right:252px;width:280px;max-height:60vh;background:var(--bg-surface);border:1px solid var(--outline);border-bottom:none;border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000014;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:40;display:flex;flex-direction:column}.stats-drawer.open[data-v-bf79a508]{transform:translateY(0)}.drawer-header[data-v-bf79a508]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--outline)}.drawer-header h4[data-v-bf79a508]{font-size:14px;font-weight:700;color:var(--on-surface);letter-spacing:.02em;margin:0}.drawer-close[data-v-bf79a508]{width:28px;height:28px;border-radius:50%;background:transparent;border:none;color:var(--on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.drawer-close[data-v-bf79a508]:hover{background:var(--surface-variant);color:var(--primary)}.drawer-body[data-v-bf79a508]{flex:1;overflow-y:auto;padding:8px 12px}.drawer-stat-row[data-v-bf79a508]{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:6px;font-size:13px;transition:background .15s}.drawer-stat-row[data-v-bf79a508]:hover{background:var(--surface-variant)}.swatch[data-v-bf79a508]{width:16px;height:16px;border-radius:4px;border:1px solid rgba(0,0,0,.08);flex-shrink:0}.key[data-v-bf79a508]{width:36px;font-weight:600;color:var(--on-surface-variant)}.count[data-v-bf79a508]{margin-left:auto;color:var(--on-surface-variant);opacity:.8}.drawer-footer[data-v-bf79a508]{padding:10px 16px;border-top:1px solid var(--outline);font-size:13px;font-weight:700;color:var(--on-surface);text-align:right}.generator[data-v-c2602554]{--bg-surface: transparent;--bg-container: #efeee9;--primary: #745726;--primary-hover: #5c4213;--on-primary: #ffffff;--outline: #d1c5b5;--on-surface: #1b1c19;--on-surface-variant: #4e453a;--surface-variant: #e3e3de;display:flex;width:100vw;height:100vh;overflow:hidden;background:var(--bg-surface);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Manrope,sans-serif}.main-area[data-v-c2602554]{flex:1;position:relative;display:flex;flex-direction:column;overflow:hidden;padding-left:80px;padding-right:264px;background:var(--bg-container);background-image:radial-gradient(#d1c5b5 .5px,transparent .5px);background-size:20px 20px}.canvas-area[data-v-c2602554]{flex:1;position:relative;overflow:hidden}.canvas-area.space-pressed[data-v-c2602554],.canvas-area.tool-hand[data-v-c2602554]{cursor:grab}.canvas-area.space-pressed.dragging[data-v-c2602554],.canvas-area.tool-hand.dragging[data-v-c2602554]{cursor:grabbing}.canvas-area.drag-over[data-v-c2602554]{background-color:#e8e0d4}.drag-overlay[data-v-c2602554]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#7457260f;z-index:10;pointer-events:none}.drag-text[data-v-c2602554]{font-size:20px;font-weight:600;color:var(--primary);padding:16px 32px;background:#fffffff2;border-radius:16px;box-shadow:0 4px 20px #0000001a}.empty-state[data-v-c2602554]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9ca3af;pointer-events:none}.empty-icon[data-v-c2602554]{margin-bottom:16px;opacity:.6}.empty-state p[data-v-c2602554]{font-size:15px;color:var(--on-surface-variant);opacity:.7}.empty-hint[data-v-c2602554]{margin-top:6px;font-size:12px;opacity:.5}.canvas-layer[data-v-c2602554]{position:absolute;top:0;left:0;will-change:transform}.image-canvas[data-v-c2602554]{display:block;image-rendering:pixelated;box-shadow:0 8px 32px #0000001f;border-radius:4px;position:absolute;top:0;left:0;transition:box-shadow .2s}.image-canvas[data-v-c2602554]:hover{box-shadow:0 0 0 2px var(--primary),0 8px 32px #0000001f;z-index:1}.image-canvas.selected[data-v-c2602554]{box-shadow:0 0 0 3px var(--primary),0 8px 32px #0000001f;z-index:2}.zoom-indicator[data-v-c2602554]{position:absolute;bottom:16px;left:16px;background:#faf9f4e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--outline);padding:6px 12px;border-radius:9999px;font-size:12px;font-weight:600;color:var(--on-surface-variant);box-shadow:0 2px 12px #0000000a;display:flex;align-items:center;gap:4px}.zoom-input[data-v-c2602554]{width:36px;padding:0;border:none;background:transparent;font-size:12px;font-weight:600;color:var(--on-surface-variant);text-align:right;outline:none}.zoom-input[data-v-c2602554]:focus{border-bottom:1px solid var(--primary)}.color-config[data-v-c2602554],.move-config[data-v-c2602554]{display:flex;flex-direction:column;gap:12px}.tool-hint[data-v-c2602554]{display:flex;flex-direction:column;gap:6px;color:var(--on-surface-variant);font-size:13px}.tool-hint p[data-v-c2602554]{font-weight:700;color:var(--on-surface);margin:0}.config-empty[data-v-c2602554]{font-size:13px;color:var(--on-surface-variant);opacity:.7;padding:8px 0}.config-row[data-v-c2602554]{display:flex;align-items:center;gap:10px}.config-swatch[data-v-c2602554]{width:32px;height:32px;border-radius:8px;border:1px solid rgba(0,0,0,.08);flex-shrink:0}.config-info[data-v-c2602554]{display:flex;flex-direction:column;gap:2px}.config-key[data-v-c2602554]{font-size:14px;font-weight:700;color:var(--on-surface)}.config-pos[data-v-c2602554]{font-size:11px;color:var(--on-surface-variant);opacity:.7}.config-divider[data-v-c2602554]{height:1px;background:var(--outline);opacity:.6}.config-label[data-v-c2602554]{font-size:12px;font-weight:600;color:var(--on-surface-variant)}.config-field[data-v-c2602554]{display:flex;align-items:center;justify-content:space-between;gap:12px}.config-field label[data-v-c2602554]{font-size:12px;color:var(--on-surface-variant);font-weight:500;white-space:nowrap}.config-field input[data-v-c2602554]{width:80px;padding:5px 8px;border:1px solid var(--outline);border-radius:8px;font-size:12px;background:#fff9;color:var(--on-surface);outline:none;transition:border-color .2s}.config-field input[data-v-c2602554]:focus{border-color:var(--primary)}.image-list-label[data-v-c2602554]{font-size:12px;font-weight:600;color:var(--on-surface-variant)}.image-list[data-v-c2602554]{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.image-list-item[data-v-c2602554]{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:6px;font-size:12px;color:var(--on-surface);cursor:pointer;transition:background .15s}.image-list-item[data-v-c2602554]:hover{background:var(--surface-variant)}.image-list-item.active[data-v-c2602554]{background:var(--primary);color:var(--on-primary)}.image-list-dim[data-v-c2602554]{opacity:.7;font-size:11px}.config-btn[data-v-c2602554]{padding:10px 16px;background:var(--primary);color:var(--on-primary);border-radius:9999px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:background .2s}.config-btn[data-v-c2602554]:hover{background:var(--primary-hover)}.config-btn.danger[data-v-c2602554]{background:#dc2626}.config-btn.danger[data-v-c2602554]:hover{background:#b91c1c}.replace-preview[data-v-c2602554]{width:100%;height:80px;border-radius:12px;border:1px solid rgba(0,0,0,.08);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px #0000000a}.replace-preview-text[data-v-c2602554]{font-size:16px;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4);letter-spacing:.04em}.custom-select[data-v-c2602554]{position:relative;-webkit-user-select:none;user-select:none}.custom-select-trigger[data-v-c2602554]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--outline);border-radius:10px;font-size:13px;background:#fff9;color:var(--on-surface);cursor:pointer;transition:border-color .2s}.custom-select-trigger[data-v-c2602554]:hover{border-color:var(--primary)}.custom-select-options[data-v-c2602554]{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:220px;overflow-y:auto;background:#fff;border:1px solid var(--outline);border-radius:10px;box-shadow:0 4px 16px #0000001a;z-index:10;padding:4px}.custom-select-option[data-v-c2602554]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:var(--on-surface);cursor:pointer;transition:background .15s}.custom-select-option[data-v-c2602554]:hover{background:var(--surface-variant)}.custom-select-option.active[data-v-c2602554]{background:var(--primary);color:var(--on-primary)}.custom-select-swatch[data-v-c2602554]{width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.08);flex-shrink:0}.modal-overlay[data-v-c2602554]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn-c2602554 .2s ease}@keyframes fadeIn-c2602554{0%{opacity:0}to{opacity:1}}.modal-content[data-v-c2602554]{background:#fff;padding:24px;border-radius:16px;width:320px;box-shadow:0 16px 48px #00000026;animation:scaleIn-c2602554 .2s ease}@keyframes scaleIn-c2602554{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-content h3[data-v-c2602554]{font-size:16px;font-weight:700;color:var(--on-surface);margin-bottom:16px}.modal-switch-row[data-v-c2602554]{display:flex;align-items:center;justify-content:space-between;padding:10px 0;font-size:14px;color:var(--on-surface-variant)}.switch[data-v-c2602554]{position:relative;display:inline-block;width:40px;height:22px}.switch input[data-v-c2602554]{opacity:0;width:0;height:0}.slider[data-v-c2602554]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.2s;border-radius:22px}.slider[data-v-c2602554]:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:#fff;transition:.2s;border-radius:50%}.switch input:checked+.slider[data-v-c2602554]{background-color:var(--primary)}.switch input:checked+.slider[data-v-c2602554]:before{transform:translate(18px)}.modal-actions[data-v-c2602554]{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.btn-modal-secondary[data-v-c2602554]{padding:8px 16px;background:var(--surface-variant);color:var(--on-surface-variant);border-radius:9999px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:background .2s}.btn-modal-secondary[data-v-c2602554]:hover{background:var(--outline)}.btn-modal-primary[data-v-c2602554]{padding:8px 18px;background:var(--primary);color:var(--on-primary);border-radius:9999px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:background .2s}.btn-modal-primary[data-v-c2602554]:hover{background:var(--primary-hover)}.context-menu[data-v-c2602554]{position:fixed;z-index:60;background:#fff;border:1px solid var(--outline);border-radius:12px;padding:12px;box-shadow:0 8px 32px #0000001f;display:flex;flex-direction:column;gap:10px;min-width:180px;animation:scaleIn-c2602554 .15s ease}.ctx-title[data-v-c2602554]{font-size:12px;font-weight:700;color:var(--on-surface);padding-bottom:6px;border-bottom:1px solid var(--outline);margin-bottom:2px}.ctx-field[data-v-c2602554]{display:flex;align-items:center;justify-content:space-between;gap:12px}.ctx-field label[data-v-c2602554]{font-size:12px;color:var(--on-surface-variant);font-weight:500;white-space:nowrap}.ctx-field input[data-v-c2602554],.ctx-field select[data-v-c2602554]{width:80px;padding:5px 8px;border:1px solid var(--outline);border-radius:8px;font-size:12px;background:#fff9;color:var(--on-surface);outline:none;transition:border-color .2s}.ctx-field input[data-v-c2602554]:focus,.ctx-field select[data-v-c2602554]:focus{border-color:var(--primary)}.upload-config-overlay[data-v-c2602554]{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b1c19eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn-c2602554 .2s ease}.upload-config-content[data-v-c2602554]{display:flex;width:90vw;height:90vh;max-width:1200px;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 24px 64px #0000004d}.upload-preview-area[data-v-c2602554]{flex:1;display:flex;align-items:center;justify-content:center;background:#f5f4f0;padding:40px;overflow:hidden}.upload-preview-img[data-v-c2602554]{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 4px 20px #0000001a;transition:transform .3s ease}.upload-config-panel[data-v-c2602554]{width:320px;display:flex;flex-direction:column;gap:20px;padding:32px;border-left:1px solid var(--outline)}.upload-config-panel h3[data-v-c2602554]{font-size:18px;font-weight:700;color:var(--on-surface);margin:0 0 8px}.rotation-btns[data-v-c2602554]{display:flex;gap:8px}.rotation-btn[data-v-c2602554]{flex:1;padding:8px 0;background:var(--surface-variant);color:var(--on-surface-variant);border:none;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.rotation-btn[data-v-c2602554]:hover{background:var(--outline)}.rotation-btn.active[data-v-c2602554]{background:var(--primary);color:var(--on-primary)}.upload-config-actions[data-v-c2602554]{margin-top:auto;display:flex;gap:10px}.upload-config-actions .btn-modal-secondary[data-v-c2602554],.upload-config-actions .btn-modal-primary[data-v-c2602554]{flex:1;justify-content:center}[data-v-c2602554]::-webkit-scrollbar{width:4px}[data-v-c2602554]::-webkit-scrollbar-track{background:transparent}[data-v-c2602554]::-webkit-scrollbar-thumb{background:var(--outline);border-radius:10px}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f0f2f5}
