.app-header[data-v-c08a94da]{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;z-index:100;position:relative}.logo[data-v-c08a94da]{font-weight:700;font-size:1.25rem;background:linear-gradient(to right,#ffffff,var(--color-text-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}nav[data-v-c08a94da]{display:flex;gap:1rem}nav a[data-v-c08a94da]{color:var(--color-text-secondary);text-decoration:none;font-weight:500;transition:color .2s;padding:.5rem 1rem;border-radius:var(--radius-md)}nav a[data-v-c08a94da]:hover,nav a.active[data-v-c08a94da]{color:var(--color-text-primary);background-color:var(--color-bg-tertiary)}main[data-v-c08a94da]{flex:1;display:flex;overflow:hidden;position:relative}.viewer-view[data-v-d6508429]{width:100%;height:100%;display:flex;flex-direction:column}.properties-panel[data-v-67ae34d8]{width:300px;background-color:var(--color-bg-primary);border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;height:100%;z-index:10}@media(max-width:768px){.properties-panel[data-v-67ae34d8]{width:100%;height:40%;border-left:none;border-top:1px solid rgba(255,255,255,.1)}}.panel-header[data-v-67ae34d8]{padding:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.panel-header h2[data-v-67ae34d8]{margin:0;font-size:1.25rem}.panel-content[data-v-67ae34d8]{flex:1;overflow-y:auto;padding:1rem}.hint[data-v-67ae34d8]{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:1.5rem}.button-group[data-v-67ae34d8]{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.input-group[data-v-67ae34d8]{margin-bottom:1rem}.input-group label[data-v-67ae34d8]{display:block;font-size:.85rem;color:var(--color-text-secondary);margin-bottom:.25rem}.config-actions[data-v-67ae34d8]{border-top:1px solid rgba(255,255,255,.1);padding-top:1rem}.header-row[data-v-67ae34d8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.icon-btn.danger[data-v-67ae34d8]{background:transparent;color:var(--color-danger);padding:.2rem}.icon-btn.danger[data-v-67ae34d8]:hover{background:#ef44441a;border-color:var(--color-danger)}.section-title[data-v-67ae34d8]{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-accent);margin-top:1.5rem;margin-bottom:.5rem;font-weight:600}.row[data-v-67ae34d8]{display:flex;gap:.5rem}.color-picker-row[data-v-67ae34d8]{display:flex;gap:.5rem;align-items:center}.color-picker-row input[type=color][data-v-67ae34d8]{border:none;width:30px;height:30px;padding:0;background:none;cursor:pointer}.input-group.checkbox label[data-v-67ae34d8]{display:flex;align-items:center;gap:.5rem;color:var(--color-text-primary);cursor:pointer}.io-actions[data-v-67ae34d8]{display:flex;gap:.5rem;margin-top:1rem}.io-actions button[data-v-67ae34d8]{flex:1;font-size:.85rem;padding:.5rem}.hidden-input[data-v-67ae34d8]{display:none}button.active[data-v-67ae34d8]{background-color:var(--color-primary);color:#fff}.hint.small[data-v-67ae34d8]{margin-bottom:.5rem;font-size:.8rem}.panel-footer[data-v-67ae34d8]{padding:.5rem;text-align:center;font-size:.7rem;color:var(--color-text-secondary);border-top:1px solid rgba(255,255,255,.1);margin-top:auto}.entity-overlay[data-v-0e19c914]{box-sizing:border-box;transition:border-color .2s}.entity-label[data-v-0e19c914]{position:absolute;top:50%;left:50%;background:#000000b3;padding:2px 4px;border-radius:4px;white-space:nowrap;pointer-events:auto;cursor:grab}.entity-label[data-v-0e19c914]:active{cursor:grabbing}.canvas-area[data-v-ec2e63d0]{flex:1;background-color:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;padding:2rem}.upload-zone[data-v-ec2e63d0]{width:100%;max-width:500px;height:300px;border:2px dashed var(--color-text-secondary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;transition:all .2s}.upload-zone[data-v-ec2e63d0]:hover{border-color:var(--color-primary);background:#0ea5e90d}.upload-content[data-v-ec2e63d0]{text-align:center}.icon[data-v-ec2e63d0]{font-size:3rem;margin-bottom:1rem}.hidden-input[data-v-ec2e63d0]{display:none}.canvas-container[data-v-ec2e63d0]{box-shadow:var(--shadow-xl);border-radius:var(--radius-sm);overflow:hidden;position:relative;display:flex;flex-direction:column;width:100%;height:100%}.zoom-controls[data-v-ec2e63d0]{position:absolute;top:10px;right:10px;z-index:100;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:4px;border-radius:4px;display:flex;gap:8px;align-items:center;color:#fff}.zoom-btn[data-v-ec2e63d0]{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px}.zoom-btn[data-v-ec2e63d0]:hover{background:#fff3}.scroll-frame[data-v-ec2e63d0]{flex:1;overflow:auto;position:relative;padding:20px}.image-wrapper[data-v-ec2e63d0]{position:relative;display:inline-block;line-height:0;cursor:crosshair;transition:transform .2s ease}.overlay-layer[data-v-ec2e63d0]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.overlay-layer polygon[data-v-ec2e63d0]{vector-effect:non-scaling-stroke}.image-wrapper img[data-v-ec2e63d0]{max-width:none;display:block;-webkit-user-select:none;user-select:none;width:100%}.editor-layout[data-v-3edd50ac]{display:flex;height:100%;width:100%;overflow:hidden}@media(max-width:768px){.editor-layout[data-v-3edd50ac]{flex-direction:column}}*,*:before,*:after{box-sizing:border-box}:root{--color-bg-primary: #0f172a;--color-bg-secondary: #1e293b;--color-bg-tertiary: #334155;--color-text-primary: #f8fafc;--color-text-secondary: #94a3b8;--color-text-accent: #38bdf8;--color-primary: #0ea5e9;--color-primary-hover: #0284c7;--color-danger: #ef4444;--color-success: #22c55e;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:var(--color-text-primary);background-color:var(--color-bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;min-width:320px;min-height:100vh}#app{width:100%;height:100vh;display:flex;flex-direction:column}button{cursor:pointer;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border-radius:var(--radius-md);transition:border-color .25s,background-color .25s}button:hover{border-color:var(--color-primary)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.glass-panel{background:#1e293bb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-lg)}.flex-center{display:flex;align-items:center;justify-content:center}input[type=text],input[type=number],select{background:var(--color-bg-tertiary);border:1px solid var(--color-bg-tertiary);color:var(--color-text-primary);padding:.5rem;border-radius:var(--radius-sm);width:100%;box-sizing:border-box}input:focus{outline:none;border-color:var(--color-primary)}.viewer-area{flex:1;background-color:var(--color-bg-secondary);display:flex;overflow:auto;position:relative;padding:2rem;height:100%}.canvas-container{box-shadow:var(--shadow-xl);border-radius:var(--radius-sm);overflow:hidden;position:relative;max-width:100%;margin:auto}.image-wrapper{position:relative;display:block;width:100%;line-height:0}.image-wrapper img{width:100%;height:auto;display:block}.entity-label{position:absolute;top:100%;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:2px 4px;font-size:.75rem;border-radius:4px;white-space:nowrap;pointer-events:none;margin-top:4px;line-height:1.2}.overlay-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.overlay-layer polygon{vector-effect:non-scaling-stroke}.interactive-entity{z-index:10}
