canvas.a9s-gl-canvas{height:100%;left:0;position:absolute;top:0;width:100%}canvas.a9s-gl-canvas.hidden{display:none}canvas.a9s-gl-canvas.hover{cursor:pointer!important}svg.svelte-g4ws1v.svelte-g4ws1v{pointer-events:none}svg.drawing.svelte-g4ws1v.svelte-g4ws1v,svg.editing.svelte-g4ws1v .svelte-g4ws1v{pointer-events:all}svg.hover.svelte-g4ws1v.svelte-g4ws1v{cursor:pointer}svg.svelte-g4ws1v .svelte-g4ws1v{pointer-events:all}text.svelte-1rehw2p{fill:#fff;font-family:Arial,Helvetica,sans-serif;font-weight:600}rect.svelte-1rehw2p{stroke-width:1.2;vector-effect:non-scaling-stroke}polygon.svelte-fgq4n0{stroke-width:1.2;vector-effect:non-scaling-stroke}rect.svelte-gze948{stroke-width:1.2;vector-effect:non-scaling-stroke}svg.svelte-1krwc4m{position:absolute;top:0;left:0;width:100%;height:100%;outline:none;pointer-events:none}svg.svelte-jwrce3{overflow:visible;position:absolute;top:0;left:0;width:100%;height:100%;outline:none;pointer-events:none}.a9s-osd-selectionlayer :is(rect,path,polygon,ellipse,line){fill:#3182ed40;stroke:#3182ed;stroke-width:1.5px;vector-effect:non-scaling-stroke}rect.a9s-union-fg.svelte-jwrce3{fill:#3182ed1f;stroke-width:1px}rect.a9s-union-bg.svelte-jwrce3{fill:transparent;stroke:#fff;stroke-width:2px}circle.a9s-handle-buffer.svelte-qtyc7s:focus{outline:none}circle.a9s-handle-buffer.svelte-qtyc7s:focus-visible{stroke:#fffc;stroke-width:3px}.a9s-polygon-midpoint.svelte-12ykj76{cursor:crosshair}.a9s-polygon-midpoint-buffer.svelte-12ykj76{fill:transparent}.a9s-polygon-midpoint-outer.svelte-12ykj76{display:none;fill:transparent;pointer-events:none;stroke:#00000059;stroke-width:1.5px;vector-effect:non-scaling-stroke}.a9s-polygon-midpoint-inner.svelte-12ykj76{fill:#00000040;pointer-events:none;stroke:#fff;stroke-width:1px;vector-effect:non-scaling-stroke}mask.a9s-polygon-editor-mask.svelte-1h2slbm>rect.svelte-1h2slbm{fill:#fff}mask.a9s-polygon-editor-mask.svelte-1h2slbm>circle.svelte-1h2slbm,mask.a9s-polygon-editor-mask.svelte-1h2slbm>polygon.svelte-1h2slbm{fill:#000}mask.a9s-rectangle-editor-mask.svelte-1bwhzbc rect.rect-mask-bg.svelte-1bwhzbc{fill:#fff}mask.a9s-rectangle-editor-mask.svelte-1bwhzbc polygon.rect-mask-fg.svelte-1bwhzbc{fill:#000}.a9s-rotation-handle-line-bg{stroke:#00000080;stroke-width:1.5px;vector-effect:non-scaling-stroke}.a9s-rotation-handle-line-fg{stroke:#fff;stroke-width:1px;stroke-dasharray:3 1;vector-effect:non-scaling-stroke}mask.a9s-multipolygon-editor-mask.svelte-1vxo6dc>rect.svelte-1vxo6dc{fill:#fff}mask.a9s-multipolygon-editor-mask.svelte-1vxo6dc>circle.svelte-1vxo6dc,mask.a9s-multipolygon-editor-mask.svelte-1vxo6dc>path.svelte-1vxo6dc{fill:#000}mask.a9s-rubberband-rectangle-mask.svelte-1a76qe7>rect.rect-mask-bg.svelte-1a76qe7{fill:#fff}mask.a9s-rubberband-rectangle-mask.svelte-1a76qe7>rect.rect-mask-fg.svelte-1a76qe7{fill:#000}mask.a9s-rubberband-polygon-mask.svelte-18wrg3t>rect.svelte-18wrg3t{fill:#fff}mask.a9s-rubberband-polygon-mask.svelte-18wrg3t>polygon.svelte-18wrg3t{fill:#000}circle.a9s-handle.svelte-18wrg3t.svelte-18wrg3t{fill:#fff;pointer-events:none;stroke:#00000059;stroke-width:1px;vector-effect:non-scaling-stroke}path.open.svelte-1w0132l{fill:transparent!important}.a9s-annotationlayer{box-sizing:border-box;height:100%;left:0;outline:none;position:absolute;top:0;touch-action:none;width:100%;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.a9s-annotationlayer.hover{cursor:pointer}.a9s-annotationlayer.hidden{display:none}.a9s-annotationlayer ellipse,.a9s-annotationlayer line,.a9s-annotationlayer path,.a9s-annotationlayer polygon,.a9s-annotationlayer rect{fill:transparent;shape-rendering:geometricPrecision;vector-effect:non-scaling-stroke;-webkit-tap-highlight-color:transparent}.a9s-touch-halo{fill:transparent;pointer-events:none;stroke-width:0;transition:fill .15s}.a9s-touch-halo.touched{fill:#fff6}.a9s-handle-buffer{fill:transparent}.a9s-handle [role=button]{cursor:inherit!important}.a9s-handle-dot{fill:#fff;pointer-events:none;stroke:#00000059;stroke-width:1px;vector-effect:non-scaling-stroke}.a9s-handle-dot.selected{fill:#1a1a1a;stroke:none}.a9s-handle-selected{animation:dash-rotate .35s linear infinite reverse;fill:#ffffff40;stroke:#000000e6;stroke-dasharray:2 2;stroke-width:1px;pointer-events:none;vector-effect:non-scaling-stroke}@keyframes dash-rotate{0%{stroke-dashoffset:0}to{stroke-dashoffset:4}}.a9s-edge-handle{fill:transparent;stroke:transparent;stroke-width:6px;vector-effect:non-scaling-stroke}.a9s-shape-handle,.a9s-handle{cursor:move}.a9s-handle.a9s-corner-handle{cursor:crosshair}.a9s-edge-handle-top{cursor:n-resize}.a9s-edge-handle-right{cursor:e-resize}.a9s-edge-handle-bottom{cursor:s-resize}.a9s-edge-handle-left{cursor:w-resize}.a9s-handle.a9s-corner-handle-topleft{cursor:nw-resize}.a9s-handle.a9s-corner-handle-topright{cursor:ne-resize}.a9s-handle.a9s-corner-handle-bottomright{cursor:se-resize}.a9s-handle.a9s-corner-handle-bottomleft{cursor:sw-resize}.a9s-annotationlayer .a9s-outer,div[data-theme=dark] .a9s-annotationlayer .a9s-outer{display:none}.a9s-annotationlayer .a9s-inner,div[data-theme=dark] .a9s-annotationlayer .a9s-inner{fill:#0000001f;stroke:#000;stroke-width:1px}rect.a9s-handle,div[data-theme=dark] rect.a9s-handle{fill:#000;rx:2px}rect.a9s-close-polygon-handle,div[data-theme=dark] rect.a9s-close-polygon-handle{fill:#000;rx:1px}.a9s-annotationlayer .a9s-outer,div[data-theme=light] .a9s-annotationlayer .a9s-outer{display:block;stroke:#00000059;stroke-width:3px}.a9s-annotationlayer .a9s-inner,div[data-theme=light] .a9s-annotationlayer .a9s-inner{fill:#ffffff26;stroke:#fff;stroke-width:1.5px}rect.a9s-handle,div[data-theme=light] rect.a9s-handle{fill:#fff;rx:1px;stroke:#00000073;stroke-width:1px}rect.a9s-close-polygon-handle,div[data-theme=light] rect.a9s-close-polygon-handle{fill:#fff;rx:1px;stroke:#00000073;stroke-width:1px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#e8e8ec;background:#16161a}.app{display:flex;flex-direction:column;height:100%}.tabs{display:flex;gap:4px;margin-bottom:4px}.tab{flex:1;background:#22222a;color:#b8b8c2;border:1px solid #2c2c36;border-radius:6px 6px 0 0;padding:8px 0;font-size:13px;font-weight:600;cursor:pointer}.tab--active{background:#2a2a34;color:#e8e8ec;border-color:#3b5bdb}.result{display:flex;align-items:center;gap:6px;margin-bottom:6px}.result__vis{flex-shrink:0;cursor:pointer}.result__select{flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#2a2a34;color:#e8e8ec;border:1px solid #3a3a46;border-radius:6px;padding:8px 10px;font-size:13px;text-align:left;cursor:pointer}.result--active .result__select{border-color:#3b5bdb;background:#2b2f45}.result__badge{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#8fa2ff}.result__del{width:32px;background:#2a2a34;color:#c9737a;border:1px solid #3a3a46;border-radius:6px;font-size:16px;line-height:1;cursor:pointer}.result__del:hover{background:#3a2a2e;color:#e5484d}.classes{display:flex;flex-wrap:wrap;gap:6px 12px;margin:8px 0 4px}.class-color{display:flex;align-items:center;gap:6px;font-size:12px;color:#c9c9d2;cursor:pointer}.class-color input[type=color]{width:22px;height:22px;padding:0;border:1px solid #3a3a46;border-radius:4px;background:none;cursor:pointer}.app__header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#1f1f26;border-bottom:1px solid #2c2c36}.app__title{font-size:16px;font-weight:600}.app__subtitle{font-size:12px;color:#9a9aa6}.app__toolbar{margin-left:auto;display:flex;gap:8px}.btn{background:#2a2a34;color:#e8e8ec;border:1px solid #3a3a46;border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}.btn:hover{background:#33333f}.btn--active{background:#3b5bdb;border-color:#3b5bdb}.btn--primary{background:#2b8a3e;border-color:#2b8a3e}.btn--primary:hover{background:#329a47}.btn--block{width:100%}.panel .btn--block+.btn--block{margin-top:8px}.btn:disabled{opacity:.6;cursor:default}.app__progress{position:absolute;left:50%;bottom:16px;transform:translate(-50%);background:#14141ae6;border:1px solid #3a3a46;border-radius:6px;padding:8px 14px;font-size:13px;z-index:10;font-variant-numeric:tabular-nums}.app__progress-eta{color:#9a9aa6}.app__body{flex:1;min-height:0;display:flex}.app__viewer-wrap{flex:1;min-width:0;position:relative}.viewer{width:100%;height:100%;background:#0d0d10}.sidebar{width:264px;flex-shrink:0;background:#1b1b21;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.sidebar--left{border-right:1px solid #2c2c36}.sidebar--right{border-left:1px solid #2c2c36}.panel{background:#22222a;border:1px solid #2c2c36;border-radius:8px;padding:12px}.panel__title{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#9a9aa6}.kv{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;padding:3px 0}.kv span{color:#9a9aa6}.btn-row{display:flex;gap:8px;margin-bottom:8px}.btn-row .btn{flex:1}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;color:#9a9aa6}.input{width:100%;background:#2a2a34;color:#e8e8ec;border:1px solid #3a3a46;border-radius:6px;padding:6px 8px;font-size:13px}.checkbox{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:10px;cursor:pointer}.hint{margin:8px 0 0;font-size:12px;color:#8a8a96;line-height:1.4}.seg{display:flex;border:1px solid #3a3a46;border-radius:6px;overflow:hidden;margin-bottom:12px}.seg__btn{flex:1;background:#2a2a34;color:#e8e8ec;border:none;padding:7px 0;font-size:13px;cursor:pointer}.seg__btn--active{background:#3b5bdb}.seg__btn:disabled{opacity:.4;cursor:default}.progress-bar{margin-top:10px;height:6px;background:#2a2a34;border-radius:3px;overflow:hidden}.progress-bar__fill{height:100%;background:#2b8a3e;transition:width .2s ease}.legend{margin-top:4px}.legend__bar{height:12px;border-radius:3px;background:linear-gradient(to right,#e6141426,#e61414)}.legend__labels{display:flex;justify-content:space-between;font-size:11px;color:#9a9aa6;margin-top:2px}.legend__caption{font-size:12px;color:#8a8a96;margin-top:4px}.badge{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:4px;color:#0d0d10}.badge--real-time{background:#2ecc71}.badge--fast{background:#f1c40f}.badge--slow{background:#e67e22}.layer{padding:8px 0;border-top:1px solid #2c2c36}.layer:first-of-type{border-top:none;padding-top:0}.layer .checkbox{margin-bottom:6px}.layer__opacity{width:100%}
