*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #667eea;--primary-dark: #764ba2;--secondary-color: #f093fb;--background-color: #f5f5f5;--surface-color: #ffffff;--text-primary: #2c3e50;--text-secondary: #666666;--border-color: #e0e0e0;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .15);--drawing-stroke: #fbbf24;--polygon-fill: rgba(102, 126, 234, .3);--polygon-stroke: #667eea;--vertex-fill: #ffffff;--vertex-stroke: #667eea}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);background-color:var(--background-color);line-height:1.6}#app{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}p{margin-bottom:1rem}button{font-family:inherit;font-size:1rem;padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:var(--primary-color);color:#fff}button:hover{background-color:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}input[type=file]{font-family:inherit;font-size:1rem}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.p-1{padding:.5rem}.p-2{padding:1rem}.p-3{padding:1.5rem}.p-4{padding:2rem}@media(max-width:768px){body{font-size:14px}button{font-size:.9rem;padding:.4rem .8rem}}.image-loader[data-v-f7af1b34]{width:100%;display:flex;flex-direction:column;gap:1.5rem}.upload-section[data-v-f7af1b34]{display:flex;flex-direction:column;align-items:center;gap:.5rem}.file-label[data-v-f7af1b34]{display:inline-block;cursor:pointer}.label-text[data-v-f7af1b34]{display:inline-block;padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));color:#fff;border-radius:6px;font-weight:500;transition:all .2s ease;box-shadow:var(--shadow-sm)}.label-text[data-v-f7af1b34]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.file-input[data-v-f7af1b34]{display:none}.file-info[data-v-f7af1b34]{color:var(--text-secondary);font-size:.9rem;margin:0;text-align:center}.preview-section[data-v-f7af1b34]{width:100%;display:flex;justify-content:center;align-items:center}.image-container[data-v-f7af1b34]{max-width:100%;max-height:70vh;border-radius:8px;overflow:hidden;box-shadow:var(--shadow-lg);background-color:#f0f0f0}.preview-image[data-v-f7af1b34]{display:block;max-width:100%;max-height:70vh;width:auto;height:auto;object-fit:contain}.placeholder-section[data-v-f7af1b34]{width:100%;min-height:300px;display:flex;align-items:center;justify-content:center;background-color:var(--surface-color);border:2px dashed var(--border-color);border-radius:8px}.placeholder-content[data-v-f7af1b34]{text-align:center;color:var(--text-secondary)}.placeholder-icon[data-v-f7af1b34]{font-size:4rem;margin:0 0 1rem}.placeholder-text[data-v-f7af1b34]{font-size:1.2rem;margin:.5rem 0;color:var(--text-primary)}.placeholder-subtext[data-v-f7af1b34]{font-size:1rem;margin:.5rem 0 0;opacity:.7}@media(max-width:768px){.image-container[data-v-f7af1b34],.preview-image[data-v-f7af1b34]{max-height:50vh}.placeholder-icon[data-v-f7af1b34]{font-size:3rem}.placeholder-text[data-v-f7af1b34]{font-size:1rem}.placeholder-subtext[data-v-f7af1b34]{font-size:.9rem}}.annotation-canvas-container[data-v-66b52def]{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.canvas-wrapper[data-v-66b52def]{position:relative;display:inline-block;box-shadow:var(--shadow-lg);border-radius:4px;overflow:hidden;background-color:#f0f0f0}.base-image[data-v-66b52def]{display:block;-webkit-user-select:none;user-select:none;pointer-events:none}.drawing-layer[data-v-66b52def]{position:absolute;top:0;left:0;cursor:crosshair;-webkit-user-select:none;user-select:none}.completed-polygon[data-v-66b52def]{fill:var(--polygon-fill);stroke:var(--polygon-stroke);stroke-width:2;opacity:.8}.polygon-vertex[data-v-66b52def]{fill:var(--vertex-fill);stroke:var(--vertex-stroke);stroke-width:2}.current-polyline[data-v-66b52def]{fill:none;stroke:var(--drawing-stroke);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.preview-line[data-v-66b52def]{stroke:var(--drawing-stroke);stroke-width:2;stroke-dasharray:5,5;opacity:.6}.current-vertex[data-v-66b52def]{fill:var(--drawing-stroke);stroke:#fff;stroke-width:2;cursor:pointer}.first-vertex-closable[data-v-66b52def]{fill:#22c55e;stroke:#fff;stroke-width:3;cursor:pointer;animation:pulse-66b52def 1s ease-in-out infinite}@keyframes pulse-66b52def{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}.instructions[data-v-66b52def]{background-color:#fffffff2;border:1px solid var(--border-color);border-radius:8px;padding:1rem 1.5rem;box-shadow:var(--shadow-md);text-align:center;max-width:600px}.instructions p[data-v-66b52def]{margin:.5rem 0;color:var(--text-primary);font-size:.9rem;line-height:1.5}@media(max-width:768px){.instructions[data-v-66b52def]{font-size:.85rem;padding:.75rem 1rem}.instructions p[data-v-66b52def]{font-size:.8rem}}.control-panel[data-v-a966cef3]{width:100%;max-width:400px;background:var(--surface-color);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow-md);border:1px solid var(--border-color)}.control-section[data-v-a966cef3]{margin-bottom:1.5rem}.control-section[data-v-a966cef3]:last-child{margin-bottom:0}.section-title[data-v-a966cef3]{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.button-group[data-v-a966cef3]{display:flex;flex-direction:column;gap:.75rem}.btn[data-v-a966cef3]{width:100%;padding:.75rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-danger[data-v-a966cef3]{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:var(--shadow-sm)}.btn-danger[data-v-a966cef3]:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary[data-v-a966cef3]{background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));color:#fff;box-shadow:var(--shadow-sm)}.btn-secondary[data-v-a966cef3]:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-dark),#5a3d8a);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-export[data-v-a966cef3]{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:var(--shadow-sm)}.btn-export[data-v-a966cef3]:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn[data-v-a966cef3]:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn[data-v-a966cef3]:active:not(:disabled){transform:translateY(0)}.polygon-list[data-v-a966cef3]{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto;padding:.5rem;background:var(--background-color);border-radius:6px}.polygon-item[data-v-a966cef3]{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#fff;border-radius:6px;border:1px solid var(--border-color);transition:all .2s ease}.polygon-item[data-v-a966cef3]:hover{box-shadow:var(--shadow-sm);border-color:var(--primary-color)}.polygon-info[data-v-a966cef3]{display:flex;align-items:center;gap:.75rem}.polygon-number[data-v-a966cef3]{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;background:var(--primary-color);color:#fff;border-radius:50%;font-size:.85rem;font-weight:600}.polygon-details[data-v-a966cef3]{font-size:.9rem;color:var(--text-secondary)}.btn-delete[data-v-a966cef3]{width:32px;height:32px;padding:0;border:none;border-radius:50%;background:#fee2e2;color:#dc2626;font-size:1.2rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn-delete[data-v-a966cef3]:hover{background:#dc2626;color:#fff;transform:scale(1.1)}.status-section[data-v-a966cef3]{background:#fbbf241a;padding:1rem;border-radius:6px;border:1px solid rgba(251,191,36,.3)}.status-text[data-v-a966cef3]{margin:0;font-size:.9rem;color:var(--text-primary);text-align:center;font-weight:500}.modal-overlay[data-v-a966cef3]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-a966cef3 .2s ease}@keyframes fadeIn-a966cef3{0%{opacity:0}to{opacity:1}}.modal-content[data-v-a966cef3]{background:#fff;border-radius:12px;padding:2rem;max-width:500px;width:90%;box-shadow:0 20px 40px #0000004d;animation:slideUp-a966cef3 .3s ease}@keyframes slideUp-a966cef3{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-content h3[data-v-a966cef3]{margin-top:0;margin-bottom:1rem;color:var(--text-primary);font-size:1.25rem}.modal-content p[data-v-a966cef3]{color:var(--text-secondary);line-height:1.6;margin-bottom:.75rem}.modal-buttons[data-v-a966cef3]{display:flex;gap:1rem;margin-top:1.5rem}.modal-buttons .btn[data-v-a966cef3]{flex:1}.polygon-list[data-v-a966cef3]::-webkit-scrollbar{width:6px}.polygon-list[data-v-a966cef3]::-webkit-scrollbar-track{background:transparent}.polygon-list[data-v-a966cef3]::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.polygon-list[data-v-a966cef3]::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.toast-notification[data-v-a966cef3]{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:#10b981f2;color:#fff;padding:1rem 2rem;border-radius:8px;box-shadow:0 8px 24px #0003;font-size:.95rem;font-weight:500;z-index:2000;animation:slideUpFade-a966cef3 .3s ease;max-width:90%;text-align:center}@keyframes slideUpFade-a966cef3{0%{transform:translate(-50%,20px);opacity:0}to{transform:translate(-50%);opacity:1}}@media(max-width:768px){.control-panel[data-v-a966cef3]{max-width:100%;padding:1rem}.section-title[data-v-a966cef3]{font-size:.9rem}.btn[data-v-a966cef3]{font-size:.85rem;padding:.6rem .8rem}.modal-content[data-v-a966cef3]{padding:1.5rem;width:95%}.modal-content h3[data-v-a966cef3]{font-size:1.1rem}.modal-content p[data-v-a966cef3]{font-size:.9rem}}#app-container[data-v-7e65a12b]{display:flex;flex-direction:column;min-height:100vh}.app-header[data-v-7e65a12b]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem 2rem;text-align:center;box-shadow:0 2px 8px #0000001a}.app-header h1[data-v-7e65a12b]{margin:0;font-size:2rem;font-weight:600}.subtitle[data-v-7e65a12b]{margin:.5rem 0 0;font-size:1rem;opacity:.9}.app-main[data-v-7e65a12b]{flex:1;padding:2rem;background-color:#f5f5f5}.workspace[data-v-7e65a12b]{background:#fff;border-radius:8px;padding:2rem;min-height:400px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px #00000014}.annotation-workspace[data-v-7e65a12b]{width:100%;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.main-content[data-v-7e65a12b]{width:100%;display:flex;gap:2rem;align-items:flex-start;justify-content:center;flex-wrap:wrap}.controls-top[data-v-7e65a12b]{display:flex;justify-content:center;gap:1rem}.file-label-small[data-v-7e65a12b]{display:inline-block;cursor:pointer}.file-label-small span[data-v-7e65a12b]{display:inline-block;padding:.5rem 1rem;background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));color:#fff;border-radius:6px;font-size:.9rem;font-weight:500;transition:all .2s ease;box-shadow:var(--shadow-sm)}.file-label-small span[data-v-7e65a12b]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.file-input-hidden[data-v-7e65a12b]{display:none}.app-footer[data-v-7e65a12b]{background-color:#2c3e50;color:#fff;padding:1rem 2rem;text-align:center;font-size:.9rem}.app-footer p[data-v-7e65a12b]{margin:0}@media(max-width:1024px){.main-content[data-v-7e65a12b]{flex-direction:column;align-items:center}}@media(max-width:768px){.app-main[data-v-7e65a12b],.workspace[data-v-7e65a12b]{padding:1rem}.app-header h1[data-v-7e65a12b]{font-size:1.5rem}.subtitle[data-v-7e65a12b]{font-size:.9rem}}
