*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;color:#333;background-color:#f5f5f5}#app{min-height:100vh}.header[data-v-e5e5ea09]{background:#fff;border-bottom:1px solid #e0e0e0;padding:1rem 0}.container[data-v-e5e5ea09]{max-width:1200px;margin:0 auto;padding:0 1rem}.logo[data-v-e5e5ea09]{text-decoration:none;color:#007bff;font-size:1.2rem;font-weight:600}.projects-page[data-v-eefd4aa5]{min-height:100vh;background:#f5f5f5}.projects-container[data-v-eefd4aa5]{max-width:1400px;margin:0 auto;padding:40px 20px}.projects-header[data-v-eefd4aa5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}.projects-header h1[data-v-eefd4aa5]{font-size:32px;font-weight:600;color:#333}.btn-primary[data-v-eefd4aa5]{display:flex;align-items:center;gap:8px;padding:12px 24px;background:#06c;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary[data-v-eefd4aa5]:hover:not(:disabled){background:#07e}.btn-primary[data-v-eefd4aa5]:disabled{opacity:.5;cursor:not-allowed}.btn-secondary[data-v-eefd4aa5]{padding:12px 24px;background:#fff;color:#333;border:1px solid #ddd;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary[data-v-eefd4aa5]:hover{border-color:#999;background:#f9f9f9}.btn-danger[data-v-eefd4aa5]{padding:12px 24px;background:#dc3545;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}.btn-danger[data-v-eefd4aa5]:hover{background:#c82333}.loading[data-v-eefd4aa5]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#666}.spinner[data-v-eefd4aa5]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #0066cc;border-radius:50%;animation:spin-eefd4aa5 1s linear infinite;margin-bottom:16px}@keyframes spin-eefd4aa5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message[data-v-eefd4aa5]{text-align:center;padding:60px 20px;color:#dc3545}.error-message p[data-v-eefd4aa5]{margin-bottom:20px;font-size:16px}.empty-state[data-v-eefd4aa5]{text-align:center;padding:80px 20px;color:#666}.empty-state svg[data-v-eefd4aa5]{margin-bottom:24px;opacity:.3}.empty-state h2[data-v-eefd4aa5]{font-size:24px;margin-bottom:8px;color:#333}.empty-state p[data-v-eefd4aa5]{margin-bottom:24px;font-size:16px}.projects-grid[data-v-eefd4aa5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.project-card[data-v-eefd4aa5]{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:all .3s;position:relative}.project-card[data-v-eefd4aa5]:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.project-thumbnail[data-v-eefd4aa5]{width:100%;height:200px;background:#f9f9f9;display:flex;align-items:center;justify-content:center;overflow:hidden}.project-thumbnail img[data-v-eefd4aa5]{width:100%;height:100%;object-fit:cover}.thumbnail-placeholder[data-v-eefd4aa5]{color:#ddd}.project-info[data-v-eefd4aa5]{padding:20px}.project-info h3[data-v-eefd4aa5]{font-size:18px;font-weight:600;color:#333;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-description[data-v-eefd4aa5]{font-size:14px;color:#666;margin-bottom:12px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.project-meta[data-v-eefd4aa5]{display:flex;align-items:center;gap:12px}.meta-date[data-v-eefd4aa5]{font-size:13px;color:#999}.project-actions[data-v-eefd4aa5]{position:absolute;top:12px;right:12px;display:flex;gap:8px;opacity:0;transition:opacity .2s}.project-card:hover .project-actions[data-v-eefd4aa5]{opacity:1}.action-btn[data-v-eefd4aa5]{width:36px;height:36px;background:#fffffff2;border:1px solid rgba(0,0,0,.1);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:#666}.action-btn[data-v-eefd4aa5]:hover{background:#fff;color:#333;box-shadow:0 2px 8px #00000026}.action-btn.delete-btn[data-v-eefd4aa5]:hover{background:#dc3545;color:#fff;border-color:#dc3545}.modal-overlay[data-v-eefd4aa5]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal[data-v-eefd4aa5]{background:#fff;border-radius:12px;padding:32px;max-width:500px;width:100%;box-shadow:0 8px 32px #0003}.modal h3[data-v-eefd4aa5]{font-size:24px;font-weight:600;margin-bottom:16px;color:#333}.modal p[data-v-eefd4aa5]{margin-bottom:12px;color:#666;line-height:1.5}.modal .warning[data-v-eefd4aa5]{color:#dc3545;font-weight:500}.form-group[data-v-eefd4aa5]{margin-bottom:20px}.form-group label[data-v-eefd4aa5]{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.form-group input[data-v-eefd4aa5],.form-group textarea[data-v-eefd4aa5]{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:15px;font-family:inherit;transition:border-color .2s}.form-group input[data-v-eefd4aa5]:focus,.form-group textarea[data-v-eefd4aa5]:focus{outline:none;border-color:#06c}.form-group textarea[data-v-eefd4aa5]{resize:vertical}.modal-actions[data-v-eefd4aa5]{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.tooltip[data-v-4ef45ee9]{position:fixed;z-index:10001;pointer-events:none;animation:tooltipFadeIn-4ef45ee9 .1s ease-out}@keyframes tooltipFadeIn-4ef45ee9{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.tooltip-content[data-v-4ef45ee9]{display:flex;align-items:center;gap:8px;background:#1a1a1a;border:1px solid #3a3a3a;border-radius:6px;padding:6px 10px;box-shadow:0 4px 12px #00000080;white-space:nowrap}.tooltip-text[data-v-4ef45ee9]{font-size:12px;color:#e0e0e0;font-weight:500}.tooltip-shortcut[data-v-4ef45ee9]{font-size:11px;color:#888;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:3px;padding:2px 6px;font-family:monospace}.editor-toolbar[data-v-d3b5035d]{display:flex;align-items:center;gap:20px;padding:12px 20px;background:#252525;border-bottom:1px solid #3a3a3a;flex-shrink:0;min-height:77px}.toolbar-section[data-v-d3b5035d]{display:flex;align-items:center;gap:8px;padding:0 12px;border-right:1px solid #3a3a3a}.toolbar-section.project-info[data-v-d3b5035d]{border-right:none;padding-left:0;gap:12px}.back-btn[data-v-d3b5035d]{width:36px;height:36px;border:none;background:#2a2a2a;color:#aaa;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.back-btn[data-v-d3b5035d]:hover{background:#353535;color:#fff}.project-name h2[data-v-d3b5035d]{font-size:16px;font-weight:600;color:#fff;margin:0;cursor:default;padding:4px 8px;border-radius:4px;border:1px solid transparent}.project-name h2[data-v-d3b5035d]:hover{border-color:#3a3a3a}.name-edit-input[data-v-d3b5035d]{font-size:16px;font-weight:600;color:#fff;background:#1a1a1a;border:1px solid #0066cc;border-radius:4px;padding:4px 8px;outline:none;font-family:inherit;width:200px}.last-saved[data-v-d3b5035d]{font-size:8px;color:#666}.tool-btn[data-v-d3b5035d]{width:36px;height:36px;border:none;background:#2a2a2a;color:#aaa;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.tool-btn[data-v-d3b5035d]:hover:not(:disabled){background:#353535;color:#fff}.tool-btn[data-v-d3b5035d]:disabled{opacity:.5;cursor:not-allowed}.tool-btn.active[data-v-d3b5035d]{background:#06c;color:#fff}.save-btn[data-v-d3b5035d]{background:#28a745;color:#fff}.save-btn[data-v-d3b5035d]:hover:not(:disabled){background:#34d058}.export-btn[data-v-d3b5035d]{width:auto;padding:0 16px;font-size:14px;font-weight:500;background:#06c;color:#fff}.export-btn[data-v-d3b5035d]:hover{background:#07e}.spinner-icon[data-v-d3b5035d]{animation:spin-d3b5035d 1s linear infinite}@keyframes spin-d3b5035d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.color-picker-container[data-v-d3b5035d]{display:flex;align-items:center;gap:8px}.color-input[data-v-d3b5035d]{width:40px;height:36px;border:2px solid #3a3a3a;border-radius:6px;cursor:pointer;background:none}.color-input[data-v-d3b5035d]::-webkit-color-swatch-wrapper{padding:0}.color-input[data-v-d3b5035d]::-webkit-color-swatch{border:none;border-radius:4px}.color-label[data-v-d3b5035d]{font-family:monospace;font-size:12px;color:#aaa;min-width:70px}.quick-colors-grid[data-v-d3b5035d]{display:grid;grid-template-columns:repeat(5,24px);gap:4px}.quick-color[data-v-d3b5035d]{width:24px;height:24px;border:2px solid #3a3a3a;border-radius:4px;cursor:pointer;transition:transform .2s}.quick-color[data-v-d3b5035d]:hover{transform:scale(1.15);border-color:#fff}.quick-color.active[data-v-d3b5035d]{border-color:#06c;box-shadow:0 0 0 2px #06c;transform:scale(1.1)}.colors-section[data-v-d3b5035d]{display:flex;gap:8px;align-items:flex-start}.zoom-controls[data-v-d3b5035d]{border-right:none;margin-left:auto;gap:12px}.zoom-level[data-v-d3b5035d]{font-size:13px;color:#aaa;min-width:50px;text-align:center;font-weight:500}.brush-size-container[data-v-d3b5035d]{display:flex;align-items:center;gap:10px}.brush-label[data-v-d3b5035d]{font-size:12px;color:#aaa;font-weight:500}.brush-slider[data-v-d3b5035d]{width:100px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#3a3a3a;border-radius:2px;outline:none;cursor:pointer}.brush-slider[data-v-d3b5035d]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#06c;border-radius:50%;cursor:pointer;transition:background .2s}.brush-slider[data-v-d3b5035d]::-webkit-slider-thumb:hover{background:#07e}.brush-slider[data-v-d3b5035d]::-moz-range-thumb{width:16px;height:16px;background:#06c;border:none;border-radius:50%;cursor:pointer;transition:background .2s}.brush-slider[data-v-d3b5035d]::-moz-range-thumb:hover{background:#07e}.brush-value[data-v-d3b5035d]{font-size:12px;color:#fff;font-weight:600;min-width:35px;text-align:right}.layer-panel[data-v-bd928fb3]{width:280px;background:#1e1e1e;border-left:1px solid #3a3a3a;display:flex;flex-direction:column;flex-shrink:0}.panel-header[data-v-bd928fb3]{padding:16px;border-bottom:1px solid #3a3a3a;display:flex;justify-content:space-between;align-items:center}.panel-header h3[data-v-bd928fb3]{margin:0;color:#fff;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.header-actions[data-v-bd928fb3]{display:flex;gap:4px}.icon-btn[data-v-bd928fb3]{width:28px;height:28px;border:none;background:#2a2a2a;color:#aaa;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.icon-btn[data-v-bd928fb3]:hover{background:#353535;color:#fff}.icon-btn.merge-btn[data-v-bd928fb3]{background:#1a5c1a;color:#80ff80}.icon-btn.merge-btn[data-v-bd928fb3]:hover{background:#2a7c2a;color:#a0ffa0}.icon-btn-small[data-v-bd928fb3]{width:24px;height:24px;border:none;background:transparent;color:#aaa;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.icon-btn-small[data-v-bd928fb3]:hover{background:#2a2a2a;color:#fff}.icon-btn-small.delete-btn[data-v-bd928fb3]:hover{background:#c00;color:#fff}.icon-btn-small.rasterize-btn[data-v-bd928fb3]{color:#8cb4ff}.icon-btn-small.rasterize-btn[data-v-bd928fb3]:hover{background:#1a3a6a;color:#acf}.layers-list[data-v-bd928fb3]{flex:1;overflow-y:auto;padding:8px}.layer-item[data-v-bd928fb3]{background:#252525;border:2px solid transparent;border-radius:6px;padding:12px;margin-bottom:8px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:8px;position:relative}.layer-item[data-v-bd928fb3]:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(128,128,128,.05) 5px,rgba(128,128,128,.05) 10px);pointer-events:none;opacity:0;transition:opacity .2s;border-radius:6px}.layer-item.locked[data-v-bd928fb3]:after{opacity:1}.layer-item.locked[data-v-bd928fb3]{opacity:.7}.layer-item[data-v-bd928fb3]:hover{background:#2a2a2a}.layer-item.active[data-v-bd928fb3]{border-color:#06c;background:#2a2a2a}.layer-item.selected[data-v-bd928fb3]{background:#2d3a4d}.layer-item.selected.active[data-v-bd928fb3]{border-color:#08f}.layer-controls-row[data-v-bd928fb3]{display:flex;align-items:center;gap:8px;width:100%}.layer-checkbox[data-v-bd928fb3]{flex-shrink:0;width:16px;height:16px;cursor:pointer;accent-color:#0066cc}.layer-item>div[data-v-bd928fb3]:first-child{display:flex;align-items:center;gap:8px}.layer-visibility[data-v-bd928fb3]{flex-shrink:0}.layer-icon[data-v-bd928fb3]{flex-shrink:0;color:#aaa;display:flex;align-items:center}.layer-info[data-v-bd928fb3]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.layer-name[data-v-bd928fb3]{color:#fff;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-name-input[data-v-bd928fb3]{background:#1e1e1e;border:1px solid #0066cc;border-radius:3px;color:#fff;font-size:13px;font-weight:500;padding:2px 6px;outline:none;width:100%}.layer-type[data-v-bd928fb3]{color:#666;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.layer-actions[data-v-bd928fb3]{display:flex;gap:4px;margin-left:auto}.layer-opacity[data-v-bd928fb3]{margin-top:4px}.opacity-label[data-v-bd928fb3]{display:flex;align-items:center;gap:8px;font-size:11px;color:#aaa;cursor:pointer}.opacity-label span[data-v-bd928fb3]{min-width:35px;text-align:right}.opacity-slider[data-v-bd928fb3]{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#3a3a3a;border-radius:2px;outline:none}.opacity-slider[data-v-bd928fb3]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;background:#06c;cursor:pointer;border-radius:50%}.opacity-slider[data-v-bd928fb3]::-moz-range-thumb{width:12px;height:12px;background:#06c;cursor:pointer;border-radius:50%;border:none}.regions-section[data-v-bd928fb3]{border-top:1px solid #3a3a3a}.section-header[data-v-bd928fb3]{padding:12px 16px 8px}.section-header h4[data-v-bd928fb3]{margin:0;color:#aaa;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.regions-list[data-v-bd928fb3]{padding:0 8px 8px}.region-item[data-v-bd928fb3]{background:#252525;border:2px solid transparent;border-radius:6px;padding:8px 10px;margin-bottom:4px;cursor:pointer;transition:all .2s}.region-item[data-v-bd928fb3]:hover{background:#2a2a2a}.region-item.active[data-v-bd928fb3]{border-color:#f60;background:#2d2519}.region-controls-row[data-v-bd928fb3]{display:flex;align-items:center;gap:8px;width:100%}.region-color-swatch[data-v-bd928fb3]{flex-shrink:0;width:14px;height:14px;border-radius:3px;border:1px solid rgba(255,255,255,.15)}.region-name[data-v-bd928fb3]{color:#ddd;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.region-actions[data-v-bd928fb3]{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.region-dims[data-v-bd928fb3]{color:#666;font-size:10px;font-family:monospace;white-space:nowrap}.context-menu[data-v-58231481]{position:fixed;z-index:10000;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:6px;box-shadow:0 4px 12px #00000080;padding:4px;min-width:240px;font-size:13px}.context-menu-item[data-v-58231481]{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;border-radius:4px;color:#e0e0e0;transition:background-color .15s;-webkit-user-select:none;user-select:none}.context-menu-item[data-v-58231481]:hover{background-color:#3a3a3a}.context-menu-item .icon[data-v-58231481]{width:16px;height:16px;flex-shrink:0;color:#a0a0a0}.context-menu-item:hover .icon[data-v-58231481]{color:#e0e0e0}.context-menu-item span[data-v-58231481]:nth-child(2){flex:1}.context-menu-item .shortcut[data-v-58231481]{font-size:11px;color:gray;margin-left:auto}.context-menu-separator[data-v-58231481]{height:1px;background:#3a3a3a;margin:4px 8px}.region-panel[data-v-5d46cdbf]{position:fixed;z-index:1000;width:240px;background:#2a2a2a;border:1px solid #444;border-radius:8px;box-shadow:0 8px 24px #00000080;overflow:hidden;-webkit-user-select:none;user-select:none}.region-panel-header[data-v-5d46cdbf]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#333;cursor:grab;border-bottom:1px solid #444}.region-panel-header[data-v-5d46cdbf]:active{cursor:grabbing}.region-panel-title[data-v-5d46cdbf]{font-size:13px;font-weight:600;color:#eee;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.region-close-btn[data-v-5d46cdbf]{background:none;border:none;color:#888;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.region-close-btn[data-v-5d46cdbf]:hover{color:#fff}.region-panel-body[data-v-5d46cdbf]{padding:12px;display:flex;flex-direction:column;gap:10px}.region-field[data-v-5d46cdbf]{display:flex;flex-direction:column;gap:4px;flex:1}.region-field label[data-v-5d46cdbf]{font-size:11px;color:#888;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.region-field-row[data-v-5d46cdbf]{display:flex;gap:8px}.region-input[data-v-5d46cdbf]{background:#1e1e1e;border:1px solid #444;border-radius:4px;color:#eee;padding:6px 8px;font-size:13px;outline:none;width:100%;box-sizing:border-box}.region-input[data-v-5d46cdbf]:focus{border-color:#06c}.region-input-number[data-v-5d46cdbf]{font-family:monospace}.region-color-row[data-v-5d46cdbf]{display:flex;align-items:center;gap:8px}.region-color-input[data-v-5d46cdbf]{width:32px;height:28px;border:1px solid #444;border-radius:4px;cursor:pointer;background:none;padding:0}.region-color-input[data-v-5d46cdbf]::-webkit-color-swatch-wrapper{padding:2px}.region-color-input[data-v-5d46cdbf]::-webkit-color-swatch{border:none;border-radius:2px}.region-color-label[data-v-5d46cdbf]{font-family:monospace;font-size:12px;color:#aaa}.region-delete-btn[data-v-5d46cdbf]{margin-top:4px;padding:6px 12px;background:#c33;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background .2s}.region-delete-btn[data-v-5d46cdbf]:hover{background:#e44}.color-editor-panel[data-v-67286697]{position:fixed;z-index:1000;width:260px;max-height:420px;background:#2a2a2a;border:1px solid #444;border-radius:8px;box-shadow:0 8px 24px #00000080;overflow:hidden;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column}.color-editor-header[data-v-67286697]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#333;cursor:grab;border-bottom:1px solid #444;flex-shrink:0}.color-editor-header[data-v-67286697]:active{cursor:grabbing}.color-editor-title[data-v-67286697]{font-size:13px;font-weight:600;color:#eee;flex:1}.color-count[data-v-67286697]{font-size:11px;color:#888;background:#1e1e1e;padding:1px 6px;border-radius:8px}.color-editor-close[data-v-67286697]{background:none;border:none;color:#888;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.color-editor-close[data-v-67286697]:hover{color:#fff}.color-editor-body[data-v-67286697]{padding:10px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:10px}.color-editor-empty[data-v-67286697]{color:#666;font-size:12px;text-align:center;padding:20px 0}.color-grid[data-v-67286697]{display:flex;flex-wrap:wrap;gap:3px}.color-cell[data-v-67286697]{position:relative;width:24px;height:24px;border-radius:3px;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s;box-shadow:inset 0 0 0 1px #ffffff14;overflow:hidden}.color-cell[data-v-67286697]:hover{border-color:#fff6;transform:scale(1.15);z-index:1}.cell-picker[data-v-67286697]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.pattern-panel[data-v-8da88f54]{position:fixed;z-index:1000;width:310px;max-height:580px;background:#2a2a2a;border:1px solid #444;border-radius:8px;box-shadow:0 8px 24px #00000080;overflow:hidden;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column}.pattern-header[data-v-8da88f54]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#333;cursor:grab;border-bottom:1px solid #444;flex-shrink:0}.pattern-header[data-v-8da88f54]:active{cursor:grabbing}.pattern-title[data-v-8da88f54]{font-size:13px;font-weight:600;color:#eee}.pattern-close[data-v-8da88f54]{background:none;border:none;color:#888;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.pattern-close[data-v-8da88f54]:hover{color:#fff}.pattern-body[data-v-8da88f54]{padding:10px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:10px}.mode-tabs[data-v-8da88f54]{display:flex;gap:0;border-radius:4px;overflow:hidden;border:1px solid #444}.mode-tab[data-v-8da88f54]{flex:1;padding:5px 8px;background:#1e1e1e;border:none;color:#888;font-size:11px;cursor:pointer;transition:all .15s}.mode-tab[data-v-8da88f54]:not(:last-child){border-right:1px solid #444}.mode-tab.active[data-v-8da88f54]{background:#06c;color:#fff}.mode-tab[data-v-8da88f54]:not(.active):hover{background:#333;color:#ccc}.pattern-section[data-v-8da88f54]{display:flex;flex-direction:column;gap:5px}.row-type[data-v-8da88f54]{border-left:3px solid;padding-left:8px}.type-header[data-v-8da88f54]{display:flex;align-items:center;justify-content:space-between}.type-remove[data-v-8da88f54]{background:none;border:none;color:#844;font-size:16px;cursor:pointer;padding:0 2px;line-height:1}.type-remove[data-v-8da88f54]:hover{color:#c44}.section-label[data-v-8da88f54]{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.field-row[data-v-8da88f54]{display:flex;gap:6px}.field-row label[data-v-8da88f54]{display:flex;flex-direction:column;gap:2px;font-size:11px;color:#999;flex:1}.num-input[data-v-8da88f54]{background:#1e1e1e;border:1px solid #444;border-radius:4px;color:#eee;padding:4px 6px;font-size:12px;font-family:monospace;width:100%;box-sizing:border-box;outline:none}.num-input[data-v-8da88f54]:focus{border-color:#06c}.sel-input[data-v-8da88f54]{background:#1e1e1e;border:1px solid #444;border-radius:4px;color:#eee;padding:4px 6px;font-size:11px;width:100%;box-sizing:border-box;outline:none}.sel-input[data-v-8da88f54]:focus{border-color:#06c}.sources-label[data-v-8da88f54]{font-size:10px;color:#777;margin-top:2px}.sources-list[data-v-8da88f54]{display:flex;flex-direction:column;gap:3px}.source-row[data-v-8da88f54]{display:flex;align-items:center;gap:4px}.source-idx[data-v-8da88f54]{width:14px;font-size:10px;color:#666;text-align:center;flex-shrink:0}.source-sel[data-v-8da88f54]{flex:1}.source-remove[data-v-8da88f54]{background:none;border:none;color:#844;font-size:14px;cursor:pointer;padding:0 2px;line-height:1;flex-shrink:0}.source-remove[data-v-8da88f54]:hover{color:#c44}.add-source-btn[data-v-8da88f54]{padding:3px 8px;margin-top:2px;background:transparent;border:1px dashed #555;border-radius:3px;color:#888;font-size:11px;cursor:pointer;align-self:flex-start}.add-source-btn[data-v-8da88f54]:hover{color:#ccc;border-color:#777}.add-type-btn[data-v-8da88f54]{padding:6px 12px;background:#333;border:1px dashed #555;border-radius:4px;color:#aaa;font-size:12px;cursor:pointer;transition:all .2s}.add-type-btn[data-v-8da88f54]:hover{background:#3a3a3a;color:#ddd;border-color:#777}.pattern-preview[data-v-8da88f54]{display:flex;flex-direction:column;gap:2px;max-height:140px;overflow-y:auto;background:#1e1e1e;border-radius:4px;padding:6px}.preview-row[data-v-8da88f54]{display:flex;align-items:center;gap:4px}.preview-row-label[data-v-8da88f54]{width:14px;font-size:9px;font-weight:700;text-align:center;flex-shrink:0}.preview-cells[data-v-8da88f54]{display:flex;gap:2px;flex:1}.preview-cell[data-v-8da88f54]{height:10px;flex:1;border-radius:2px;min-width:6px}.selection-size-panel[data-v-bdce0251]{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:100;display:flex;align-items:center;gap:4px;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:8px;padding:5px 10px;box-shadow:0 2px 10px #00000080;font-size:12px;color:#e0e0e0;-webkit-user-select:none;user-select:none}.size-input-group[data-v-bdce0251]{display:flex;align-items:center;gap:4px}.label[data-v-bdce0251]{font-size:11px;color:gray;font-weight:600}input[type=number][data-v-bdce0251]{width:56px;padding:3px 5px;background:#1e1e1e;border:1px solid #3a3a3a;border-radius:4px;color:#e0e0e0;font-size:12px;text-align:center;outline:none;-moz-appearance:textfield}input[type=number][data-v-bdce0251]::-webkit-outer-spin-button,input[type=number][data-v-bdce0251]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number][data-v-bdce0251]:focus{border-color:#0078d4}.lock-btn[data-v-bdce0251]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:1px solid transparent;border-radius:4px;cursor:pointer;color:#555;transition:all .15s}.lock-btn[data-v-bdce0251]:hover{color:#a0a0a0;background:#333}.lock-btn.active[data-v-bdce0251]{color:#0078d4}.lock-btn.active[data-v-bdce0251]:hover{color:#39f}.layer-align-panel[data-v-4b5dc964]{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:100;display:flex;align-items:center;gap:2px;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:8px;padding:4px 6px;box-shadow:0 2px 10px #00000080;-webkit-user-select:none;user-select:none}.align-btn[data-v-4b5dc964]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:1px solid transparent;border-radius:4px;cursor:pointer;color:#aaa;transition:all .15s}.align-btn[data-v-4b5dc964]:hover{color:#fff;background:#3a3a3a}.align-btn[data-v-4b5dc964]:active{background:#0078d4;color:#fff}.align-separator[data-v-4b5dc964]{width:1px;height:20px;background:#3a3a3a;margin:0 4px}.history-panel[data-v-0c6401a4]{position:fixed;z-index:1000;width:220px;max-height:420px;background:#1e1e1e;border:1px solid #444;border-radius:8px;box-shadow:0 8px 24px #00000080;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}.history-header[data-v-0c6401a4]{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#2a2a2a;border-bottom:1px solid #3a3a3a;border-radius:8px 8px 0 0;cursor:grab;color:#ccc}.history-header[data-v-0c6401a4]:active{cursor:grabbing}.history-title[data-v-0c6401a4]{font-size:12px;font-weight:600;color:#eee;text-transform:uppercase;letter-spacing:.5px}.history-count[data-v-0c6401a4]{font-size:10px;color:#888;background:#333;padding:1px 5px;border-radius:8px;margin-left:auto}.history-close[data-v-0c6401a4]{background:none;border:none;color:#888;font-size:16px;cursor:pointer;padding:0 2px;line-height:1;margin-left:4px}.history-close[data-v-0c6401a4]:hover{color:#fff}.history-list[data-v-0c6401a4]{flex:1;overflow-y:auto;padding:4px}.history-list[data-v-0c6401a4]::-webkit-scrollbar{width:5px}.history-list[data-v-0c6401a4]::-webkit-scrollbar-thumb{background:#444;border-radius:3px}.history-list[data-v-0c6401a4]::-webkit-scrollbar-track{background:transparent}.history-entry[data-v-0c6401a4]{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:4px;cursor:pointer;font-size:12px;color:#ccc;transition:background .15s}.history-entry[data-v-0c6401a4]:hover{background:#333}.history-entry.active[data-v-0c6401a4]{background:#0d3868;color:#fff}.history-entry.dimmed[data-v-0c6401a4]{opacity:.4}.history-entry.dimmed[data-v-0c6401a4]:hover{opacity:.7}.history-entry svg[data-v-0c6401a4]{flex-shrink:0;opacity:.7}.history-entry.active svg[data-v-0c6401a4]{opacity:1}.history-entry span[data-v-0c6401a4]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-idx[data-v-0c6401a4]{margin-left:auto;font-size:10px;color:#666;flex-shrink:0}.history-entry.active .history-idx[data-v-0c6401a4]{color:#6aa8e8}.history-initial[data-v-0c6401a4]{border-bottom:1px solid #333;margin-bottom:2px;padding-bottom:6px}.pixel-art-editor[data-v-05668b1c]{width:100vw;height:100vh;display:flex;flex-direction:column;background:#1e1e1e;overflow:hidden}.editor-container[data-v-05668b1c]{flex:1;display:flex;position:relative;overflow:hidden}.canvas-wrapper[data-v-05668b1c]{flex:1;position:relative;overflow:hidden}canvas[data-v-05668b1c]{display:block;width:100%;height:100%;cursor:crosshair}.canvas-wrapper.drop-active[data-v-05668b1c]{outline:3px dashed #4fc3f7;outline-offset:-3px;background:#4fc3f70f}.login-page[data-v-82f8f289]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:#f5f5f5}.login-card[data-v-82f8f289]{background:#fff;border-radius:8px;padding:2rem;width:100%;max-width:400px;box-shadow:0 2px 8px #0000001a}h1[data-v-82f8f289]{text-align:center;margin-bottom:2rem;color:#333;font-size:1.5rem}.form-group[data-v-82f8f289]{margin-bottom:1.5rem}label[data-v-82f8f289]{display:block;margin-bottom:.5rem;color:#555;font-size:.9rem}input[data-v-82f8f289]{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;box-sizing:border-box}input[data-v-82f8f289]:focus{outline:none;border-color:#007bff}.btn[data-v-82f8f289]{width:100%;padding:.75rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:all .2s}.btn-primary[data-v-82f8f289]{background-color:#007bff;color:#fff;margin-bottom:1rem}.btn-primary[data-v-82f8f289]:hover:not(:disabled){background-color:#0056b3}.btn-primary[data-v-82f8f289]:disabled{background-color:#ccc;cursor:not-allowed}.btn-link[data-v-82f8f289]{background:none;color:#007bff;text-decoration:underline;padding:.5rem}.btn-link[data-v-82f8f289]:hover{color:#0056b3}.error-message[data-v-82f8f289]{padding:.75rem;background:#fee;color:#c33;border-radius:4px;margin-bottom:1rem;text-align:center;font-size:.9rem}.account-page[data-v-bb6631e5]{min-height:100vh;padding:2rem 1rem;background:#f5f5f5}.account-card[data-v-bb6631e5]{max-width:800px;margin:0 auto;background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 8px #0000001a}h1[data-v-bb6631e5]{color:#333;margin-bottom:1.5rem;font-size:1.8rem}h2[data-v-bb6631e5]{color:#333;margin-bottom:1rem;font-size:1.3rem;border-bottom:2px solid #007bff;padding-bottom:.5rem}h3[data-v-bb6631e5]{color:#007bff;margin-bottom:1rem;font-size:1.1rem}h4[data-v-bb6631e5]{color:#555;margin-bottom:.5rem;font-size:1rem}.success-message[data-v-bb6631e5]{padding:1rem;background:#d4edda;color:#155724;border-radius:4px;margin-bottom:1.5rem;text-align:center;font-size:1rem}.user-info[data-v-bb6631e5]{background:#f8f9fa;padding:1.5rem;border-radius:4px;margin-bottom:2rem}.info-item[data-v-bb6631e5]{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #e9ecef}.info-item[data-v-bb6631e5]:last-child{border-bottom:none}.info-item strong[data-v-bb6631e5]{color:#666}.role-admin[data-v-bb6631e5]{color:#dc3545;font-weight:600}.role-user[data-v-bb6631e5]{color:#28a745;font-weight:600}.admin-section[data-v-bb6631e5]{background:#f0f8ff;padding:1.5rem;border-radius:4px;margin-bottom:2rem;border:2px solid #007bff}.admin-section p[data-v-bb6631e5]{color:#666;margin-bottom:1rem}.admin-data[data-v-bb6631e5]{margin-top:1.5rem;padding:1.5rem;background:#fff;border-radius:4px}.data-grid[data-v-bb6631e5]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.data-item[data-v-bb6631e5]{padding:1rem;background:#f8f9fa;border-radius:4px;display:flex;flex-direction:column;gap:.5rem}.data-item strong[data-v-bb6631e5]{color:#666;font-size:.9rem}.data-item span[data-v-bb6631e5]{color:#333;font-size:1.2rem;font-weight:600}.status-ok[data-v-bb6631e5]{color:#28a745!important}.admin-info[data-v-bb6631e5]{padding:1rem;background:#fff3cd;border-radius:4px;border-left:4px solid #ffc107}.admin-info p[data-v-bb6631e5]{margin:0;color:#856404}.btn[data-v-bb6631e5]{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:all .2s}.btn-primary[data-v-bb6631e5]{background-color:#007bff;color:#fff;width:100%;margin-bottom:1rem}.btn-primary[data-v-bb6631e5]:hover:not(:disabled){background-color:#0056b3}.btn-primary[data-v-bb6631e5]:disabled{background-color:#ccc;cursor:not-allowed}.btn-logout[data-v-bb6631e5]{background-color:#dc3545;color:#fff;width:100%}.btn-logout[data-v-bb6631e5]:hover{background-color:#c82333}.error-message[data-v-bb6631e5]{padding:.75rem;background:#fee;color:#c33;border-radius:4px;margin-top:1rem;text-align:center;font-size:.9rem}
