.login-overlay[data-v-8333686c]{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary, #1a1a2e);z-index:9999}.login-box[data-v-8333686c]{background:var(--color-bg-secondary, #16213e);padding:2rem;border-radius:12px;display:flex;flex-direction:column;gap:1rem;min-width:280px;border:1px solid rgba(255,255,255,.1)}.login-box h2[data-v-8333686c]{margin:0;text-align:center;font-size:1.1rem;color:var(--color-text-primary, #fff)}.login-box form[data-v-8333686c]{display:flex;flex-direction:column;gap:.75rem}input[type=password][data-v-8333686c]{background:var(--color-bg-tertiary, #334155);border:1px solid rgba(255,255,255,.1);color:var(--color-text-primary, #f8fafc);padding:.6rem .75rem;border-radius:var(--radius-sm, 6px);font-size:1rem;font-family:inherit;width:100%;box-sizing:border-box;transition:border-color .2s}input[type=password][data-v-8333686c]:focus{outline:none;border-color:var(--color-primary, #0ea5e9)}input[type=password][data-v-8333686c]:disabled{opacity:.5}.error[data-v-8333686c]{color:#ef4444;font-size:.85rem;margin:0;text-align:center}.app-header[data-v-fc7f2e0c]{height:calc(60px + env(safe-area-inset-top,0px));display:flex;align-items:center;justify-content:space-between;padding:env(safe-area-inset-top,0px) calc(2rem + env(safe-area-inset-right,0px)) 0 calc(2rem + env(safe-area-inset-left,0px));z-index:100;position:relative}.logo[data-v-fc7f2e0c]{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-fc7f2e0c]{display:flex;gap:1rem}nav a[data-v-fc7f2e0c]{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-fc7f2e0c]:hover,nav a.active[data-v-fc7f2e0c]{color:var(--color-text-primary);background-color:var(--color-bg-tertiary)}main[data-v-fc7f2e0c]{flex:1;display:flex;overflow:hidden;position:relative;padding-bottom:env(safe-area-inset-bottom,0px)}@media(max-width:768px){.app-header[data-v-fc7f2e0c]{height:auto;padding:calc(.25rem + env(safe-area-inset-top,0px)) calc(.5rem + env(safe-area-inset-right,0px)) .25rem calc(.5rem + env(safe-area-inset-left,0px))}.logo[data-v-fc7f2e0c]{font-size:.85rem}nav[data-v-fc7f2e0c]{gap:.25rem}nav a[data-v-fc7f2e0c]{padding:.2rem .5rem;font-size:.85rem}}.viewer-view{width:100%;height:100%;display:flex;flex-direction:column}.properties-panel[data-v-7f1d4f44]{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-7f1d4f44]{width:100%;height:40%;border-left:none;border-top:1px solid rgba(255,255,255,.1)}}.panel-header[data-v-7f1d4f44]{padding:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.panel-header h2[data-v-7f1d4f44]{margin:0;font-size:1.25rem}.panel-content[data-v-7f1d4f44]{flex:1;overflow-y:auto;padding:1rem}.hint[data-v-7f1d4f44]{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:1.5rem}.button-group[data-v-7f1d4f44]{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.input-group[data-v-7f1d4f44]{margin-bottom:1rem}.input-group.inline[data-v-7f1d4f44]{display:flex;gap:.5rem}.input-group label[data-v-7f1d4f44]{display:block;font-size:.85rem;color:var(--color-text-secondary);margin-bottom:.25rem}.config-actions[data-v-7f1d4f44],.danger-actions[data-v-7f1d4f44]{border-top:1px solid rgba(255,255,255,.1);padding-top:1rem}.header-row[data-v-7f1d4f44]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.icon-btn.close[data-v-7f1d4f44]{background:transparent;color:var(--color-text-primary);padding:.5rem;font-size:1.5rem}.icon-btn.danger[data-v-7f1d4f44]{background:transparent;color:var(--color-danger);padding:.2rem}.icon-btn.danger[data-v-7f1d4f44]:hover{background:#ef44441a;border-color:var(--color-danger)}.section-title[data-v-7f1d4f44]{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-7f1d4f44]{display:flex;gap:.5rem}.color-picker-row[data-v-7f1d4f44]{display:flex;gap:.5rem;align-items:center}.color-picker-row input[type=color][data-v-7f1d4f44]{border:none;width:30px;height:30px;padding:0;background:none;cursor:pointer}.input-group.checkbox label[data-v-7f1d4f44]{display:flex;align-items:center;gap:.5rem;color:var(--color-text-primary);cursor:pointer}.io-actions[data-v-7f1d4f44]{display:flex;gap:.5rem;margin-top:1rem}.io-actions button[data-v-7f1d4f44]{flex:1;font-size:.85rem;padding:.5rem}.hidden-input[data-v-7f1d4f44]{display:none}.app-icon-row[data-v-7f1d4f44]{display:flex;align-items:center;gap:.75rem}.app-icon-preview[data-v-7f1d4f44]{width:48px;height:48px;border-radius:var(--radius-md);object-fit:cover;background:var(--color-bg-tertiary);flex-shrink:0}.app-icon-buttons[data-v-7f1d4f44]{display:flex;flex-direction:column;gap:.35rem}.image-buttons[data-v-7f1d4f44]{display:flex;flex-direction:column;gap:.5rem}button.active[data-v-7f1d4f44]{background-color:var(--color-primary);color:#fff}.hint.small[data-v-7f1d4f44]{margin-bottom:.5rem;font-size:.8rem}.panel-footer[data-v-7f1d4f44]{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}.device-selector[data-v-7f1d4f44]{position:relative}.device-dropdown[data-v-7f1d4f44]{position:absolute;top:100%;left:0;right:0;background:var(--color-bg-primary, #1a1a2e);border:1px solid rgba(255,255,255,.2);border-radius:4px;max-height:180px;overflow-y:auto;z-index:200;margin-top:2px}.device-option[data-v-7f1d4f44]{padding:.4rem .6rem;cursor:pointer;font-size:.82rem;font-family:monospace;color:var(--color-text-primary, #fff)}.device-option[data-v-7f1d4f44]:hover{background:var(--color-bg-tertiary, rgba(255, 255, 255, .08))}.entity-overlay[data-v-111d9d41]{box-sizing:border-box;transition:border-color .2s}.entity-label[data-v-111d9d41]{position:absolute;top:50%;left:50%;background:#000000b3;padding:2px 4px;border-radius:4px;white-space:nowrap;pointer-events:auto;cursor:grab;line-height:1.2}.entity-label[data-v-111d9d41]:active{cursor:grabbing}.canvas-area[data-v-cd99d9a4]{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-cd99d9a4]{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-cd99d9a4]:hover{border-color:var(--color-primary);background:#0ea5e90d}.upload-content[data-v-cd99d9a4]{text-align:center}.icon[data-v-cd99d9a4]{font-size:3rem;margin-bottom:1rem}.hidden-input[data-v-cd99d9a4]{display:none}.canvas-container[data-v-cd99d9a4]{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-cd99d9a4]{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-cd99d9a4]{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-cd99d9a4]:hover{background:#fff3}.scroll-frame[data-v-cd99d9a4]{flex:1;overflow:auto;position:relative;padding:20px}.image-wrapper[data-v-cd99d9a4]{position:relative;display:inline-block;line-height:0;cursor:crosshair;transition:transform .2s ease}.overlay-layer[data-v-cd99d9a4]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.overlay-layer polygon[data-v-cd99d9a4]{vector-effect:non-scaling-stroke}.image-wrapper img[data-v-cd99d9a4]{max-width:none;display:block;-webkit-user-select:none;user-select:none;width:100%}@media(max-width:768px){.canvas-area[data-v-cd99d9a4]{padding:.5rem}.scroll-frame[data-v-cd99d9a4]{padding:5px}}.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;-webkit-text-size-adjust:100%;text-size-adjust:100%;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;min-height:100dvh}#app{width:100%;height:100vh;height:100dvh;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:block;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;container-type:inline-size}.image-wrapper img{width:100%;height:auto;display:block}.entity-label{position:absolute;top:50%;left:50%;background:#000000b3;color:#fff;padding:2px 4px;font-size:14px;font-size:1.5cqw;border-radius:4px;white-space:nowrap;pointer-events:none;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}.text-entity{background:#000000b3;color:#fff;padding:3px 8px;border-radius:4px;white-space:nowrap;font-size:1.8cqw;font-family:monospace;line-height:1.4;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:10}.number-stepper{display:inline-flex;align-items:stretch;background:#fff;border-radius:.45em;box-shadow:0 .12em .4em #00000040;overflow:hidden;font-family:system-ui,sans-serif;-webkit-user-select:none;user-select:none;line-height:1;z-index:10}.number-stepper .number-btn{border:none;background:transparent;color:#111;font-size:1.15em;font-weight:700;line-height:1;padding:.45em .7em;cursor:pointer;display:flex;align-items:center;justify-content:center}.number-stepper .number-btn:hover:not(:disabled){background:#0000000f}.number-stepper .number-btn:disabled{color:#bbb;cursor:not-allowed}.number-stepper .number-value{padding:.45em .7em;font-size:1em;font-weight:700;color:#111;min-width:2.4em;display:flex;align-items:center;justify-content:center;border-left:.06em solid rgba(0,0,0,.12);border-right:.06em solid rgba(0,0,0,.12);white-space:nowrap}.button-widget{display:inline-flex;background:#fff;border-radius:.45em;box-shadow:0 .12em .4em #00000040;overflow:hidden;font-family:system-ui,sans-serif;-webkit-user-select:none;user-select:none;line-height:1;z-index:10}.button-widget .button-widget-btn{border:none;background:transparent;color:#111;font-size:1em;font-weight:700;line-height:1;padding:.45em .9em;cursor:pointer;display:flex;align-items:center;justify-content:center;white-space:nowrap}.button-widget .button-widget-btn:hover{background:#0000000f}.button-widget .button-widget-btn:active{background:#0000001f}.toggle-switch{display:inline-flex;align-items:center;width:2.4em;height:1.3em;padding:.12em;border-radius:1em;background:#b0b6c0;box-shadow:0 .12em .4em #00000040;cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;transition:background .2s ease;z-index:10}.toggle-switch.on{background:#22c55e}.toggle-switch .toggle-knob{width:1.06em;height:1.06em;border-radius:50%;background:#fff;box-shadow:0 .05em .15em #00000059;transition:transform .2s ease}.toggle-switch.on .toggle-knob{transform:translate(1.1em)}.multi-switch{display:inline-flex;background:#fff;border-radius:.45em;box-shadow:0 .12em .4em #00000040;overflow:hidden;font-family:system-ui,sans-serif;-webkit-user-select:none;user-select:none;line-height:1;z-index:10}.multi-switch .multi-switch-btn{border:none;background:transparent;color:#111;font-size:1em;font-weight:700;line-height:1;padding:.45em .7em;cursor:pointer;display:flex;align-items:center;justify-content:center;white-space:nowrap;border-left:.06em solid rgba(0,0,0,.12)}.multi-switch .multi-switch-btn:first-child{border-left:none}.multi-switch .multi-switch-btn:hover:not(.active){background:#0000000f}.multi-switch .multi-switch-btn.active{background:#22c55e;color:#fff}@media(max-width:768px){.viewer-area{padding:.5rem}}
