.topbar[data-v-7c2289ff]{height:48px;min-height:48px;flex-shrink:0;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 16px;overflow:visible;position:relative;z-index:100001}.left[data-v-7c2289ff]{font-weight:500;font-size:24px;letter-spacing:.5px;flex-shrink:0;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.right[data-v-7c2289ff]{display:flex;align-items:center;gap:12px;flex-shrink:1;min-width:0;overflow:visible}.mobile-menu-toggle[data-v-7c2289ff]{display:none}.mobile-menu-wrapper.mobile-menu-toggle[data-v-7c2289ff]{display:none!important}.mobile-essential-controls[data-v-7c2289ff]{display:none}.desktop-controls[data-v-7c2289ff]{display:flex;align-items:center;gap:12px;overflow:visible}.zoom-display[data-v-7c2289ff]{font-size:14px;font-weight:500;color:var(--text-primary);min-width:50px;text-align:center}.right select[data-v-7c2289ff]{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s ease;outline:none;box-shadow:0 1px 2px var(--shadow-sm);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.right select[data-v-7c2289ff]:hover{background:var(--border-color-hover);border-color:var(--border-color-hover)}.right select[data-v-7c2289ff]:focus{border-color:var(--active-button-bg);box-shadow:0 0 0 3px var(--button-active-shadow)}.right button[data-v-7c2289ff]{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:8px 16px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;outline:none;box-shadow:0 1px 2px var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.right button[data-v-7c2289ff]:hover:not(:disabled){background:var(--button-hover-bg);border-color:var(--border-color-hover);color:var(--button-hover-text, var(--text-primary));transform:translateY(-1px);box-shadow:0 2px 4px var(--shadow-sm)}.right button[data-v-7c2289ff]:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px var(--shadow-sm)}.right button[data-v-7c2289ff]:disabled{opacity:.4;cursor:not-allowed;transform:none}.button-wrapper[data-v-7c2289ff]{position:relative;display:inline-flex;overflow:visible}.button-wrapper .tooltip[data-v-7c2289ff]{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%);background:var(--bg-tertiary);color:var(--text-primary);padding:8px 12px;border-radius:8px;font-size:12px;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:all .2s ease;z-index:10000;border:1px solid var(--border-color);box-shadow:0 4px 12px var(--shadow-md)}.button-wrapper .tooltip[data-v-7c2289ff]:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--bg-tertiary)}@media(hover:hover){.button-wrapper:hover .tooltip[data-v-7c2289ff]{opacity:1!important;visibility:visible!important;display:block!important}}@media(hover:none){.button-wrapper .tooltip[data-v-7c2289ff]{display:none}}.export-menu[data-v-7c2289ff]{position:relative;z-index:10001}.export-menu .button-wrapper[data-v-7c2289ff]{position:relative}.export-dropdown[data-v-7c2289ff]{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;min-width:180px;box-shadow:0 8px 24px var(--shadow-md);z-index:10000;overflow:hidden;padding:4px}.export-dropdown button[data-v-7c2289ff]{background:transparent;border:none;color:var(--text-primary);padding:10px 14px;text-align:left;cursor:pointer;transition:all .15s ease;border-radius:8px;font-size:14px;font-weight:500;margin:2px 0;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.export-dropdown button[data-v-7c2289ff]:hover{background:var(--button-hover-bg);color:var(--button-hover-text, var(--text-primary));transform:translate(2px)}.export-dropdown button[data-v-7c2289ff]:active{transform:translate(0)}.modal-overlay[data-v-7c2289ff]{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100000;animation:fadeIn-7c2289ff .2s ease}@keyframes fadeIn-7c2289ff{0%{opacity:0}to{opacity:1}}.modal-content[data-v-7c2289ff]{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 20px 60px var(--shadow);max-width:420px;width:90%;animation:slideUp-7c2289ff .3s ease;overflow:hidden}@keyframes slideUp-7c2289ff{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header[data-v-7c2289ff]{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color)}.modal-header h2[data-v-7c2289ff]{font-size:22px;font-weight:600;color:var(--text-primary);margin:0;letter-spacing:.02em}.modal-close[data-v-7c2289ff]{background:transparent;border:none;color:var(--text-secondary);font-size:28px;line-height:1;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.modal-close[data-v-7c2289ff]:hover{background:var(--bg-tertiary);color:var(--text-primary);transform:rotate(90deg)}.modal-body[data-v-7c2289ff]{padding:24px}.modal-body p[data-v-7c2289ff]{color:var(--text-primary);font-size:16px;line-height:1.6;margin:0 0 12px}.modal-body p[data-v-7c2289ff]:last-child{margin-bottom:0}.modal-warning[data-v-7c2289ff]{color:var(--text-secondary);font-size:14px;font-weight:500}.modal-footer[data-v-7c2289ff]{display:flex;gap:12px;padding:20px 24px;border-top:1px solid var(--border-color);justify-content:flex-end}.modal-button[data-v-7c2289ff]{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid var(--border-color);min-width:100px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.modal-button.cancel[data-v-7c2289ff]{background:var(--bg-tertiary);color:var(--text-primary)}.modal-button.cancel[data-v-7c2289ff]:hover{background:var(--border-color-hover);border-color:var(--border-color-hover);transform:translateY(-1px)}.modal-button.confirm[data-v-7c2289ff]{background:#ef4444;color:#fff;border-color:#ef4444}.modal-button.confirm[data-v-7c2289ff]:hover{background:#dc2626;border-color:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.modal-button[data-v-7c2289ff]:active{transform:translateY(0)}.mobile-menu-overlay[data-v-7c2289ff]{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100001;animation:fadeIn-7c2289ff .2s ease}.mobile-menu[data-v-7c2289ff]{position:fixed;top:0;right:0;bottom:0;width:280px;max-width:85vw;background:var(--bg-secondary);border-left:1px solid var(--border-color);box-shadow:-4px 0 24px var(--shadow-md);display:flex;flex-direction:column;animation:slideInRight-7c2289ff .3s ease;overflow-y:auto}@keyframes slideInRight-7c2289ff{0%{transform:translate(100%)}to{transform:translate(0)}}.mobile-menu-header[data-v-7c2289ff]{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border-color);flex-shrink:0}.mobile-menu-header h3[data-v-7c2289ff]{font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.mobile-menu-close[data-v-7c2289ff]{background:transparent;border:none;color:var(--text-secondary);font-size:32px;line-height:1;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.mobile-menu-close[data-v-7c2289ff]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.mobile-menu-content[data-v-7c2289ff]{flex:1;padding:16px;display:flex;flex-direction:column;gap:24px;overflow-y:auto}.mobile-menu-section[data-v-7c2289ff]{display:flex;flex-direction:column;gap:8px}.mobile-menu-section label[data-v-7c2289ff]{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.mobile-menu-section select[data-v-7c2289ff]{width:100%;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:12px 16px;border-radius:8px;cursor:pointer;font-size:16px;transition:all .2s ease;outline:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.mobile-menu-section button[data-v-7c2289ff]{width:100%;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:14px 16px;border-radius:8px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s ease;outline:none;display:flex;align-items:center;gap:12px;text-align:left;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.mobile-menu-section button span[data-v-7c2289ff]{font-size:20px;min-width:24px}.mobile-menu-section button[data-v-7c2289ff]:hover:not(:disabled){background:var(--button-hover-bg);border-color:var(--border-color-hover);transform:translate(2px)}.mobile-menu-section button[data-v-7c2289ff]:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.topbar[data-v-7c2289ff]{padding:0 12px}.left[data-v-7c2289ff]{font-size:20px}.desktop-controls[data-v-7c2289ff]{display:none}.mobile-menu-wrapper.mobile-menu-toggle[data-v-7c2289ff]{display:flex!important}.mobile-menu-toggle[data-v-7c2289ff]{display:flex;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:8px 12px;border-radius:8px;cursor:pointer;font-size:20px;font-weight:500;transition:all .2s ease;outline:none;min-width:40px;height:36px;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.mobile-menu-toggle[data-v-7c2289ff]:hover{background:var(--button-hover-bg);border-color:var(--border-color-hover)}.mobile-essential-controls[data-v-7c2289ff]{display:flex;align-items:center;gap:8px;margin-left:8px}.mobile-essential-controls .zoom-display[data-v-7c2289ff]{font-size:13px;min-width:45px}.mobile-essential-controls button[data-v-7c2289ff]{min-width:32px;height:32px;padding:0;font-size:16px}.right[data-v-7c2289ff]{gap:8px}.right button[data-v-7c2289ff]{min-width:32px;height:32px;padding:0 8px;font-size:16px}}@media(max-width:480px){.left[data-v-7c2289ff]{font-size:18px}.mobile-essential-controls[data-v-7c2289ff]{gap:4px}.mobile-essential-controls .zoom-display[data-v-7c2289ff]{font-size:12px;min-width:40px}}.sidebar[data-v-5a45ea54]{width:80px;min-width:80px;flex-shrink:0;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 8px 12px 12px;overflow-y:auto;overflow-x:hidden;position:fixed;top:48px;left:0;bottom:0;z-index:100000;height:calc(100vh - 48px);height:calc(100dvh - 48px);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.sidebar button[data-v-5a45ea54]{width:56px;min-width:56px;max-width:56px;height:56px;border-radius:12px;background:transparent;border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;transition:all .2s ease;position:relative;font-size:20px;display:flex;align-items:center;justify-content:center;outline:none;box-shadow:0 1px 2px var(--shadow-sm);overflow:visible;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex-shrink:0}.sidebar button[data-v-5a45ea54]:hover:not(.active){background:var(--button-hover-bg);border-color:var(--border-color-hover);transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-sm)}.sidebar button[data-v-5a45ea54]:active:not(.active){transform:translateY(0);box-shadow:0 1px 2px var(--shadow-sm)}.sidebar button svg[data-v-5a45ea54]{width:20px;height:20px;transition:transform .2s ease}.sidebar button:hover svg[data-v-5a45ea54]{transform:scale(1.1)}.sidebar button.active[data-v-5a45ea54]{background:var(--active-button-bg);color:var(--active-button-text);border-color:var(--active-button-bg);box-shadow:0 4px 12px var(--button-active-shadow);transform:translateY(-2px)}.sidebar button.active[data-v-5a45ea54]:hover{box-shadow:0 6px 16px var(--button-active-shadow);transform:translateY(-3px)}.sidebar button[data-v-5a45ea54]:disabled{opacity:.4;cursor:not-allowed}.sidebar button[data-v-5a45ea54]:disabled:hover{transform:none;background:transparent;border-color:var(--border-color)}.sidebar button .tooltip[data-v-5a45ea54]{position:fixed;left:92px;transform:translateY(-50%);background:var(--bg-tertiary, #1f2430);color:var(--text-primary, #ffffff);padding:8px 12px;border-radius:8px;font-size:12px;font-weight:500;font-family:inherit;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:999999;border:1px solid var(--border-color, #1f2430);box-shadow:0 4px 12px var(--shadow-md, rgba(0, 0, 0, .3));display:block;line-height:1.2;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;will-change:opacity,visibility}.sidebar button .tooltip[data-v-5a45ea54]:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:var(--bg-tertiary, #1f2430)}@media(hover:hover){.sidebar button:hover .tooltip[data-v-5a45ea54],.sidebar button:focus .tooltip[data-v-5a45ea54],.sidebar button.active:hover .tooltip[data-v-5a45ea54],.sidebar button:hover:not(.active) .tooltip[data-v-5a45ea54]{opacity:1;visibility:visible}}@media(hover:none){.sidebar button .tooltip[data-v-5a45ea54]{display:none}}.sidebar hr[data-v-5a45ea54]{width:100%;border:none;border-top:1px solid var(--border-color);margin:4px 0}.input-wrapper[data-v-5a45ea54]{position:relative;width:100%;max-width:56px;display:flex;justify-content:center;z-index:100001;flex-shrink:0}.sidebar input[type=color][data-v-5a45ea54]{width:56px;height:56px;border:1px solid var(--border-color);border-radius:12px;cursor:pointer;background:transparent;position:relative;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.input-wrapper .tooltip[data-v-5a45ea54]{position:fixed;left:92px;transform:translateY(-50%);background:var(--bg-tertiary, #1f2430);color:var(--text-primary, #ffffff);padding:8px 12px;border-radius:8px;font-size:12px;font-weight:500;font-family:inherit;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:999999;border:1px solid var(--border-color, #1f2430);box-shadow:0 4px 12px var(--shadow-md, rgba(0, 0, 0, .3));display:block;line-height:1.2;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.input-wrapper .tooltip[data-v-5a45ea54]:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:var(--bg-tertiary, #1f2430)}@media(hover:hover){.input-wrapper:hover .tooltip[data-v-5a45ea54]{opacity:1;visibility:visible}}@media(hover:none){.input-wrapper .tooltip[data-v-5a45ea54]{display:none}}.sidebar input[type=range][data-v-5a45ea54]{width:100%;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.sidebar select[data-v-5a45ea54]{width:100%;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:8px 10px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s ease;outline:none;box-shadow:0 1px 2px var(--shadow-sm);touch-action:manipulation;-webkit-tap-highlight-color:transparent;position:relative;z-index:100001}.sidebar select[data-v-5a45ea54]:hover{border-color:var(--border-color-hover);background:var(--button-hover-bg)}.sidebar select[data-v-5a45ea54]:focus{border-color:var(--active-button-bg);box-shadow:0 0 0 3px var(--button-active-shadow)}.sidebar select option[data-v-5a45ea54]{background:var(--bg-tertiary);color:var(--text-primary);padding:8px}.sidebar[data-v-5a45ea54]::-webkit-scrollbar{width:6px}.sidebar[data-v-5a45ea54]::-webkit-scrollbar-track{background:transparent}.sidebar[data-v-5a45ea54]::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.sidebar[data-v-5a45ea54]::-webkit-scrollbar-thumb:hover{background:var(--border-color-hover)}.sidebar[data-v-5a45ea54]{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.text-input[data-v-0f91553d]{z-index:99999!important;pointer-events:auto!important;position:absolute!important;cursor:text!important;display:block!important;visibility:visible!important;opacity:1!important;transform-origin:left bottom!important;text-rendering:geometricPrecision!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.text-input[data-v-0f91553d]:focus{outline:none!important}.text-input[data-v-0f91553d]:empty:before{content:""}.text-input[data-v-0f91553d]::selection{background:transparent}.text-input[data-v-0f91553d]::-moz-selection{background:transparent}.text-input[data-v-0f91553d] *::selection{background:transparent}.text-input[data-v-0f91553d] *::-moz-selection{background:transparent}.canvas-wrapper[data-v-d26bec8f]{flex:1;min-width:0;min-height:0;overflow:visible;position:relative}canvas[data-v-d26bec8f]{touch-action:none;display:block;pointer-events:auto}.app[data-v-6fd25e8f]{width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;background:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column;overflow:hidden}.main[data-v-6fd25e8f]{flex:1;display:flex;overflow:hidden;min-height:0;padding-left:80px}.app-footer[data-v-6fd25e8f]{height:20px;background:var(--bg-secondary);flex-shrink:0;border-top:1px solid var(--border-color);width:calc(100% - 80px);margin-left:80px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-secondary);padding:0 16px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.app-footer .company-name[data-v-6fd25e8f]{font-weight:600;margin-left:4px;color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.app-footer .company-name[data-v-6fd25e8f]:hover{color:var(--text-primary);text-decoration:underline}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;font-family:Bebas Neue,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;letter-spacing:.02em}#app{width:100%;height:100%;overflow:hidden;font-family:inherit}:root[data-theme=dark]{--bg-primary: #0b0d12;--bg-secondary: #0f1115;--bg-tertiary: #1f2430;--border-color: #1f2430;--border-color-hover: #2d3440;--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .8);--shadow: rgba(0, 0, 0, .5);--shadow-sm: rgba(0, 0, 0, .2);--shadow-md: rgba(0, 0, 0, .3);--active-button-bg: #2563eb;--active-button-text: #ffffff;--button-hover-bg: rgba(255, 255, 255, .08);--button-active-shadow: rgba(37, 99, 235, .3)}:root[data-theme=light]{--bg-primary: #f0f8ff;--bg-secondary: #e6f3ff;--bg-tertiary: #d9ecff;--border-color: #b8d9f5;--border-color-hover: #9cc5e8;--text-primary: #1a3a5c;--text-secondary: rgba(26, 58, 92, .75);--shadow: rgba(26, 58, 92, .1);--shadow-sm: rgba(26, 58, 92, .05);--shadow-md: rgba(26, 58, 92, .08);--active-button-bg: #4a9eff;--active-button-text: #ffffff;--button-hover-bg: #2d7dd6;--button-hover-text: #ffffff;--button-active-shadow: rgba(74, 158, 255, .3)}
