#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;height:100vh;width:100vw;margin:0;padding:0}.home[data-v-f3c3539e]{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2)}.header[data-v-f3c3539e]{text-align:center;margin-bottom:60px;color:#fff}.header h1[data-v-f3c3539e]{font-size:48px;margin-bottom:20px;font-weight:700}.header p[data-v-f3c3539e]{font-size:20px;opacity:.9}.features[data-v-f3c3539e]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px;margin-bottom:60px;max-width:1000px;width:100%}.feature-card[data-v-f3c3539e]{background:#fff;padding:30px;border-radius:15px;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.1);transition:transform .3s ease}.feature-card[data-v-f3c3539e]:hover{transform:translateY(-5px)}.feature-icon[data-v-f3c3539e]{font-size:48px;margin-bottom:20px}.feature-card h3[data-v-f3c3539e]{font-size:24px;margin-bottom:15px;color:#333}.feature-card p[data-v-f3c3539e]{color:#666;line-height:1.6}.actions[data-v-f3c3539e]{text-align:center}@media (max-width:768px){.header h1[data-v-f3c3539e]{font-size:36px}.header p[data-v-f3c3539e]{font-size:18px}.features[data-v-f3c3539e]{grid-template-columns:1fr;gap:20px}.feature-card[data-v-f3c3539e]{padding:20px}}.annotation-canvas-container[data-v-e742a8f6]{width:100%;height:100%;display:flex;flex-direction:column;position:relative}.canvas-controls[data-v-e742a8f6]{display:flex;align-items:center;justify-content:space-between;padding:10px;background-color:#fff;border-bottom:1px solid #e4e7ed}.zoom-controls[data-v-e742a8f6]{display:flex;align-items:center;gap:10px}.zoom-info[data-v-e742a8f6]{font-size:12px;color:#666;min-width:40px}.canvas-wrapper[data-v-e742a8f6]{flex:1;position:relative;overflow:hidden;cursor:crosshair}.canvas-wrapper.dragging[data-v-e742a8f6]{cursor:move}.canvas-content[data-v-e742a8f6]{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;transition:transform .1s ease}.canvas-image[data-v-e742a8f6]{max-width:100%;max-height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.annotation-box[data-v-e742a8f6],.drawing-box[data-v-e742a8f6]{border:2px solid var(--annotation-color);background-color:transparent;cursor:move}.annotation-box.selected[data-v-e742a8f6]{border-color:var(--annotation-color);box-shadow:0 0 0 2px rgba(64,158,255,.3)}.annotation-border[data-v-e742a8f6]{position:absolute;top:0;left:0;right:0;bottom:0;border:2px solid var(--annotation-color);background-color:rgba(64,158,255,.1)}.annotation-info[data-v-e742a8f6]{position:absolute;top:-25px;left:0;background-color:var(--annotation-color);color:#fff;padding:2px 6px;border-radius:3px;font-size:12px;white-space:nowrap;z-index:10}.annotation-label[data-v-e742a8f6]{font-weight:500}.resize-handles[data-v-e742a8f6]{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.resize-handle[data-v-e742a8f6]{position:absolute;width:8px;height:8px;background-color:var(--annotation-color);border:1px solid #fff;pointer-events:all;z-index:20}.resize-handle-nw[data-v-e742a8f6]{top:-4px;left:-4px;cursor:nw-resize}.resize-handle-n[data-v-e742a8f6]{top:-4px;left:50%;transform:translateX(-50%);cursor:n-resize}.resize-handle-ne[data-v-e742a8f6]{top:-4px;right:-4px;cursor:ne-resize}.resize-handle-w[data-v-e742a8f6]{top:50%;left:-4px;transform:translateY(-50%);cursor:w-resize}.resize-handle-e[data-v-e742a8f6]{top:50%;right:-4px;transform:translateY(-50%);cursor:e-resize}.resize-handle-sw[data-v-e742a8f6]{bottom:-4px;left:-4px;cursor:sw-resize}.resize-handle-s[data-v-e742a8f6]{bottom:-4px;left:50%;transform:translateX(-50%);cursor:s-resize}.resize-handle-se[data-v-e742a8f6]{bottom:-4px;right:-4px;cursor:se-resize}.annotation-actions[data-v-e742a8f6]{position:absolute;top:-35px;right:0;z-index:15}.no-image-placeholder[data-v-e742a8f6]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:#f5f7fa;color:#909399}.placeholder-content[data-v-e742a8f6]{text-align:center}.placeholder-content i[data-v-e742a8f6]{font-size:48px;margin-bottom:10px;display:block}.placeholder-content p[data-v-e742a8f6]{margin:0;font-size:14px}@media (max-width:768px){.canvas-controls[data-v-e742a8f6]{flex-direction:column;gap:10px}.zoom-controls[data-v-e742a8f6]{width:100%;justify-content:center}.drawing-mode[data-v-e742a8f6]{width:100%;text-align:center}}.image-upload-container[data-v-20bb17a2]{padding:20px}.upload-area[data-v-20bb17a2]{border:2px dashed #d9d9d9;border-radius:8px;background-color:#fafafa;padding:40px;text-align:center;cursor:pointer;transition:all .3s ease}.upload-area[data-v-20bb17a2]:hover{border-color:#409eff;background-color:#f0f8ff}.upload-area.drag-over[data-v-20bb17a2]{border-color:#409eff;background-color:#e6f7ff}.upload-area.uploading[data-v-20bb17a2]{pointer-events:none;opacity:.7}.upload-content[data-v-20bb17a2]{display:flex;flex-direction:column;align-items:center}.upload-icon[data-v-20bb17a2]{margin-bottom:20px}.upload-icon i[data-v-20bb17a2]{font-size:48px;color:#409eff}.upload-text[data-v-20bb17a2]{color:#666}.upload-title[data-v-20bb17a2]{font-size:16px;font-weight:500;margin:0 0 10px 0}.upload-subtitle[data-v-20bb17a2]{font-size:14px;color:#999;margin:0}.upload-progress[data-v-20bb17a2]{margin-top:20px}.preview-area[data-v-20bb17a2]{margin-top:30px}.preview-area h4[data-v-20bb17a2]{margin:0 0 15px 0;font-size:16px;color:#333}.preview-list[data-v-20bb17a2]{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;max-height:300px;overflow-y:auto}.preview-item[data-v-20bb17a2]{display:flex;align-items:center;padding:10px;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff}.preview-item img[data-v-20bb17a2]{width:50px;height:50px;-o-object-fit:cover;object-fit:cover;border-radius:4px;margin-right:10px}.preview-info[data-v-20bb17a2]{flex:1}.preview-name[data-v-20bb17a2]{font-size:14px;color:#333;margin-bottom:5px}.preview-size[data-v-20bb17a2]{font-size:12px;color:#666}.preview-actions[data-v-20bb17a2]{display:flex;align-items:center}.upload-actions[data-v-20bb17a2]{display:flex;justify-content:flex-end;gap:10px}@media (max-width:768px){.upload-area[data-v-20bb17a2]{padding:20px}.upload-icon i[data-v-20bb17a2]{font-size:36px}.upload-title[data-v-20bb17a2]{font-size:14px}.upload-subtitle[data-v-20bb17a2]{font-size:12px}.preview-item[data-v-20bb17a2]{flex-direction:column;align-items:flex-start}.preview-item img[data-v-20bb17a2]{width:100%;height:150px;margin-right:0;margin-bottom:10px}.preview-actions[data-v-20bb17a2]{width:100%;justify-content:flex-end}}.annotation-container[data-v-d00ec05a]{height:100vh;display:flex;flex-direction:column;background-color:#f5f5f5}.toolbar[data-v-d00ec05a]{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background-color:#fff;border-bottom:1px solid #e4e7ed;box-shadow:0 2px 4px rgba(0,0,0,.1)}.toolbar-center[data-v-d00ec05a]{font-weight:500;color:#333}.main-content[data-v-d00ec05a]{flex:1;display:flex;overflow:hidden}.left-panel[data-v-d00ec05a],.right-panel[data-v-d00ec05a]{width:300px;background-color:#fff;border-right:1px solid #e4e7ed;display:flex;flex-direction:column;overflow:hidden;height:100%}.right-panel[data-v-d00ec05a]{border-right:none;border-left:1px solid #e4e7ed}.panel-section[data-v-d00ec05a]{padding:15px;border-bottom:1px solid #e4e7ed}.panel-section[data-v-d00ec05a]:first-child{flex:1;display:flex;flex-direction:column;min-height:0}.panel-section h3[data-v-d00ec05a]{margin:0 0 10px 0;font-size:14px;color:#333;font-weight:600}.image-list[data-v-d00ec05a]{flex:1;overflow-y:auto;padding-right:4px}.image-item[data-v-d00ec05a]{display:flex;align-items:center;padding:8px;margin-bottom:8px;border:1px solid #e4e7ed;border-radius:4px;cursor:pointer;transition:all .3s;height:64px}.image-item[data-v-d00ec05a]:hover{background-color:#f5f7fa}.image-item.active[data-v-d00ec05a]{border-color:#409eff;background-color:#ecf5ff}.image-item img[data-v-d00ec05a]{width:48px;height:48px;-o-object-fit:cover;object-fit:cover;border-radius:4px;margin-right:10px;flex-shrink:0}.image-info[data-v-d00ec05a]{flex:1}.image-name[data-v-d00ec05a]{font-size:12px;color:#333;margin-bottom:2px}.annotation-count[data-v-d00ec05a]{font-size:11px;color:#909399}.category-list[data-v-d00ec05a]{display:flex;flex-direction:column;gap:8px}.category-item[data-v-d00ec05a]{display:flex;align-items:center;padding:8px;border:1px solid #e4e7ed;border-radius:4px;cursor:pointer;transition:all .3s}.category-item[data-v-d00ec05a]:hover{background-color:#f5f7fa}.category-item.active[data-v-d00ec05a]{border-color:#409eff;background-color:#ecf5ff}.category-color[data-v-d00ec05a]{width:16px;height:16px;border-radius:50%;margin-right:8px}.category-name[data-v-d00ec05a]{flex:1;font-size:14px;color:#333}.category-shortcut[data-v-d00ec05a]{font-size:12px;color:#909399;background-color:#f5f7fa;padding:2px 6px;border-radius:3px}.annotation-list[data-v-d00ec05a]{max-height:200px;overflow-y:auto}.annotation-item[data-v-d00ec05a]{display:flex;align-items:center;justify-content:space-between;padding:8px;margin-bottom:8px;border:1px solid #e4e7ed;border-radius:4px;cursor:pointer;transition:all .3s}.annotation-item[data-v-d00ec05a]:hover{background-color:#f5f7fa}.annotation-item.active[data-v-d00ec05a]{border-color:#409eff;background-color:#ecf5ff}.annotation-info[data-v-d00ec05a]{flex:1}.annotation-category[data-v-d00ec05a]{display:flex;align-items:center;font-size:12px;color:#333;margin-bottom:2px}.annotation-coords[data-v-d00ec05a],.annotation-size[data-v-d00ec05a]{font-size:10px;color:#909399}.canvas-area[data-v-d00ec05a]{flex:1;display:flex;align-items:center;justify-content:center;background-color:#f5f5f5;overflow:hidden}.help-text[data-v-d00ec05a]{font-size:12px;color:#666;line-height:1.5}.help-text p[data-v-d00ec05a]{margin:0 0 5px 0}@media (max-width:1200px){.left-panel[data-v-d00ec05a],.right-panel[data-v-d00ec05a]{width:250px}}@media (max-width:768px){.left-panel[data-v-d00ec05a],.right-panel[data-v-d00ec05a]{width:200px}.toolbar[data-v-d00ec05a]{padding:10px}.toolbar-center[data-v-d00ec05a]{display:none}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.tooltip{position:relative;display:inline-block;cursor:pointer}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}.tooltip-text{visibility:hidden;opacity:0;bottom:125%;background-color:#555;color:#fff;text-align:center;padding:5px 8px;border-radius:4px;font-size:12px;white-space:nowrap;z-index:1000;transition:opacity .3s}.tooltip-text,.tooltip-text:after{position:absolute;left:50%;transform:translateX(-50%)}.tooltip-text:after{content:"";top:100%;border:4px solid transparent;border-top-color:#555}.btn-primary{background-color:#409eff;border-color:#409eff;color:#fff;padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-size:14px;transition:all .3s}.btn-primary:hover{background-color:#66b1ff;border-color:#66b1ff}.btn-secondary{background-color:#909399;border-color:#909399;color:#fff;padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-size:14px;transition:all .3s}.btn-secondary:hover{background-color:#a6a9ad;border-color:#a6a9ad}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform .3s}.slide-enter,.slide-leave-to{transform:translateX(-100%)}@media (max-width:768px){.mobile-hidden{display:none}}.drag-over{border:2px dashed #409eff;background-color:rgba(64,158,255,.1)}.selected{outline:2px solid #409eff;outline-offset:2px}.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}