.tab-bar[data-v-06451ee9]{border-bottom:1px solid var(--ui-border);gap:.25rem;display:flex}.tab-bar .tab-button[data-v-06451ee9]{font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg-dim);border:none;border-bottom:3px solid color-mix(in srgb, var(--tab-colour) 45%, white);cursor:pointer;background:0 0;padding:.4rem .6rem;transition:border-bottom-color .15s}.tab-bar .tab-button[data-v-06451ee9]:hover{color:var(--ui-fg)}.tab-bar .tab-button.active[data-v-06451ee9]{color:var(--ui-fg);border-bottom-color:var(--tab-colour)}.control-row[data-v-c67e2bdf]{align-items:center;gap:var(--ui-row-gap);font-family:var(--ui-font);font-size:var(--ui-font-size);display:flex}.control-row .label[data-v-c67e2bdf]{color:var(--ui-fg-dim);flex:1}.value-input[data-v-acf27446]{width:var(--ui-control-width);box-sizing:border-box;text-align:right;font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);appearance:textfield;padding:.15rem .4rem}.value-input[data-v-acf27446]:hover{border-color:var(--ui-border-hover)}.value-input[data-v-acf27446]:focus{border-color:var(--ui-accent);outline:none}.value-input[data-v-acf27446]::-webkit-inner-spin-button{appearance:none;margin:0}.value-input[data-v-acf27446]::-webkit-outer-spin-button{appearance:none;margin:0}.ui-button[data-v-bf2e2997]{font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);cursor:pointer;padding:.15rem .4rem}.ui-button[data-v-bf2e2997]:hover:not(:disabled){border-color:var(--ui-border-hover)}.ui-button[data-v-bf2e2997]:disabled{color:var(--ui-fg-dim);cursor:default}.value-select[data-v-2d637661]{box-sizing:border-box;font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);cursor:pointer;padding:.15rem .4rem}.value-select[data-v-2d637661]:hover{border-color:var(--ui-border-hover)}.value-select[data-v-2d637661]:focus{border-color:var(--ui-accent);outline:none}.value-input[data-v-1297b9ab]{width:var(--ui-text-width);box-sizing:border-box;font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);padding:.15rem .4rem}.value-input[data-v-1297b9ab]:hover{border-color:var(--ui-border-hover)}.value-input[data-v-1297b9ab]:focus{border-color:var(--ui-accent);outline:none}.colour[data-v-8cb79599]{font-family:var(--ui-font);font-size:var(--ui-font-size);align-items:center;gap:.5rem;display:flex}.colour .swatch[data-v-8cb79599]{box-sizing:border-box;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);width:1.4rem;height:1.4rem;padding:0}.colour .swatch[data-v-8cb79599]:hover{border-color:var(--ui-border-hover)}.colour .swatch[data-v-8cb79599]::-webkit-color-swatch-wrapper{padding:0}.colour .swatch[data-v-8cb79599]::-webkit-color-swatch{border-radius:calc(var(--ui-radius) - 1px);border:none}.colour .swatch[data-v-8cb79599]::-moz-color-swatch{border-radius:calc(var(--ui-radius) - 1px);border:none}.colour .value[data-v-8cb79599]{color:var(--ui-fg-dim)}.colour-map-editor[data-v-ecb22040]{width:var(--ui-editor-width);font-family:var(--ui-font);font-size:var(--ui-font-size);flex-direction:column;gap:.5rem;display:flex}.colour-map-editor .track[data-v-ecb22040]{cursor:pointer;height:20px;position:relative}.colour-map-editor .track .bar[data-v-ecb22040]{border-radius:var(--ui-radius);pointer-events:none;height:4px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.colour-map-editor .track .dot[data-v-ecb22040]{box-sizing:border-box;border:2px solid var(--ui-bg);width:12px;height:12px;box-shadow:0 0 0 1px var(--ui-border);border-radius:var(--ui-radius);cursor:grab;touch-action:none;position:absolute;top:50%;transform:translate(-50%,-50%)}.colour-map-editor .track .dot[data-v-ecb22040]:hover{box-shadow:0 0 0 1px var(--ui-border-hover)}.colour-map-editor .track .dot.endpoint[data-v-ecb22040]{cursor:default}.colour-map-editor .track .dot.dragging[data-v-ecb22040]{cursor:grabbing;box-shadow:0 0 0 1px var(--ui-accent)}.colour-map-editor .stops[data-v-ecb22040]{flex-direction:column;gap:.25rem;display:flex}.colour-map-editor .stops .stop-row[data-v-ecb22040]{align-items:center;gap:.5rem;display:flex}.colour-map-editor .stops .stop-row[data-v-ecb22040] .control-row{flex:1}.colour-map-editor .stops .stop-row .remove[data-v-ecb22040]{font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg-dim);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);cursor:pointer;width:1.4rem;height:1.4rem;line-height:1}.colour-map-editor .stops .stop-row .remove[data-v-ecb22040]:hover{border-color:var(--ui-border-hover);color:var(--ui-fg)}.colour-map-editor .stops .stop-row .remove-placeholder[data-v-ecb22040]{flex-shrink:0;width:1.4rem;display:inline-block}.colour-map-select[data-v-79e1197d]{flex-direction:column;gap:.5rem;display:flex}.colour-map-select .row[data-v-79e1197d],.colour-map-select .save-row[data-v-79e1197d]{align-items:center;gap:.5rem;display:flex}.colour-map-select .error[data-v-79e1197d]{color:#c33}.pattern-config-tab[data-v-2257c284]{flex-direction:column;gap:.75rem;display:flex}.value-box[data-v-126fdf76]{width:var(--ui-control-width);box-sizing:border-box;text-align:right;font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none;padding:.15rem .4rem}.value-box[data-v-126fdf76]:hover{border-color:var(--ui-border-hover)}.value-box.dragging[data-v-126fdf76]{border-color:var(--ui-accent);cursor:ew-resize}.pattern-params-tab[data-v-104b9ba9]{flex-direction:column;gap:.25rem;display:flex}.checkbox[data-v-58397129]{font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg);cursor:pointer;align-items:center;gap:.5rem;display:flex}.slider[data-v-534cdb76]{font-family:var(--ui-font);font-size:var(--ui-font-size);align-items:center;gap:.5rem;display:flex}.slider .track[data-v-534cdb76]{width:var(--ui-slider-width);appearance:none;background:0 0;margin:0}.slider .track[data-v-534cdb76]::-webkit-slider-runnable-track{border-radius:var(--ui-radius);background:linear-gradient(to right, var(--ui-accent) var(--fill), var(--ui-border) var(--fill));height:4px}.slider .track[data-v-534cdb76]::-moz-range-track{border-radius:var(--ui-radius);background:var(--ui-border);height:4px}.slider .track[data-v-534cdb76]::-moz-range-progress{border-radius:var(--ui-radius);background:var(--ui-accent);height:4px}.slider .track[data-v-534cdb76]::-webkit-slider-thumb{appearance:none;border-radius:var(--ui-radius);background:var(--ui-bg);border:1px solid var(--ui-accent);width:10px;height:10px;margin-top:-3px}.slider .track[data-v-534cdb76]::-moz-range-thumb{border-radius:var(--ui-radius);background:var(--ui-bg);border:1px solid var(--ui-accent);width:10px;height:10px}.slider .track[data-v-534cdb76]:hover::-webkit-slider-thumb{background:var(--ui-accent)}.slider .track[data-v-534cdb76]:hover::-moz-range-thumb{background:var(--ui-accent)}.slider .value[data-v-534cdb76]{text-align:right;width:2.5rem;color:var(--ui-fg-dim)}.pattern-post-params-tab[data-v-4961ccd6]{font-family:var(--ui-font);font-size:var(--ui-font-size);flex-direction:column;gap:.5rem;display:flex}.pattern-viewer[data-v-e8444cba]{min-height:0;font-family:var(--ui-font);font-size:var(--ui-font-size);flex-direction:column;flex:1;display:flex}.pattern-viewer .toolbar[data-v-e8444cba]{border-bottom:1px solid var(--ui-border);align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.pattern-viewer .toolbar .count[data-v-e8444cba]{color:var(--ui-fg-dim)}.pattern-viewer .grid[data-v-e8444cba]{flex:1;grid-template-columns:repeat(auto-fill,128px);place-content:start center;gap:10px;min-height:0;padding:1rem;display:grid;overflow-y:auto}.pattern-viewer .grid .thumb[data-v-e8444cba]{object-fit:cover;border:1px solid var(--ui-border);cursor:pointer;width:128px;height:128px}.pattern-viewer .grid .thumb[data-v-e8444cba]:hover{border-color:var(--ui-border-hover)}.pattern-viewer .grid .sentinel[data-v-e8444cba]{grid-column:1/-1;height:1px}.pattern-viewer .status[data-v-e8444cba]{color:var(--ui-fg-dim);padding:.75rem 1rem}.pattern-viewer .status.error[data-v-e8444cba]{color:#c33}.pattern-viewer .detail-overlay[data-v-e8444cba]{z-index:10;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pattern-viewer .detail-overlay .detail-card[data-v-e8444cba]{background:var(--ui-bg);border-radius:var(--ui-radius);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.pattern-viewer .detail-overlay .detail-card .detail-image[data-v-e8444cba]{width:512px;height:512px;image-rendering:pixelated;border:1px solid var(--ui-border)}.pattern-viewer .detail-overlay .detail-card .detail-actions[data-v-e8444cba]{gap:.5rem;display:flex}.pattern-viewer .detail-overlay .detail-card .detail-actions span.spacer[data-v-e8444cba]{flex:1}.pattern-viewer .btn[data-v-e8444cba]{font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);cursor:pointer;padding:.3rem .75rem}.pattern-viewer .btn[data-v-e8444cba]:hover{border-color:var(--ui-border-hover)}.radio-group[data-v-3fc8dafd]{font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg);align-items:center;gap:.75rem;display:flex}.radio-group label[data-v-3fc8dafd]{cursor:pointer;align-items:center;gap:.25rem;display:flex}.path-config[data-v-36170195]{flex-wrap:wrap;align-items:flex-start;gap:20px;font-family:monospace;display:flex}.path-config .graph-panel[data-v-36170195]{flex-direction:column;flex-shrink:0;gap:10px;display:flex}.path-config .graph-panel .controls .row[data-v-36170195]{align-items:center;gap:12px;display:flex}.path-config .graph-panel .controls .hint[data-v-36170195]{color:#666;max-width:400px}.path-config svg.graph[data-v-36170195]{-webkit-user-select:none;user-select:none;border:1px dashed #aaa}.path-config svg.graph circle.node[data-v-36170195]{cursor:pointer;fill:#fff}.path-config svg.graph circle.node.highlight[data-v-36170195]{fill:#eee}.path-config svg.graph circle.node.highlight-start[data-v-36170195]{fill:#8f8}.path-config svg.graph text[data-v-36170195],.path-config svg.graph use[data-v-36170195]{-webkit-user-select:none;user-select:none;pointer-events:none}.path-config svg.graph .drag-preview[data-v-36170195]{pointer-events:none}.path-config svg.path-vis[data-v-36170195]{border:1px dashed #aaa;flex-shrink:0;margin-top:0}.svg-tab[data-v-54c769de]{flex-direction:column;gap:.75rem;display:flex}.svg-tab .trace-options[data-v-54c769de],.svg-tab .saved-configs[data-v-54c769de]{font-family:var(--ui-font);font-size:var(--ui-font-size);flex-direction:column;gap:.5rem;display:flex}.svg-tab .saved-configs .save-row[data-v-54c769de]{align-items:center;gap:.5rem;display:flex}.svg-tab .saved-configs .error[data-v-54c769de]{color:#c33}.app[data-v-0cd7fe1f]{height:100vh;font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg);flex-direction:column;display:flex;overflow:hidden}.app .app-header[data-v-0cd7fe1f]{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:baseline;gap:1rem;padding:.75rem 1rem;display:flex}.app .app-header .title[data-v-0cd7fe1f]{margin:0;font-size:1rem}.app .app-header .mode-switch[data-v-0cd7fe1f]{gap:.25rem;display:flex}.app .app-header .mode-switch button[data-v-0cd7fe1f]{font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg-dim);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);cursor:pointer;padding:.2rem .6rem}.app .app-header .mode-switch button[data-v-0cd7fe1f]:hover{border-color:var(--ui-border-hover)}.app .app-header .mode-switch button.active[data-v-0cd7fe1f]{color:var(--ui-fg);border-color:var(--ui-accent)}.app .app-header .midi-badge[data-v-0cd7fe1f]{font-family:var(--ui-font);font-size:var(--ui-font-size);color:var(--ui-fg-dim);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);padding:.2rem .6rem}.app .app-header .midi-badge.connected[data-v-0cd7fe1f]{color:#1a7a3c;background:#e6f4ea;border-color:#a6d9b6}.app .app-body[data-v-0cd7fe1f]{flex-direction:column;flex:1;min-height:0;display:flex}@media (aspect-ratio>=1){.app .app-body[data-v-0cd7fe1f]{flex-direction:row}}.preview-area[data-v-0cd7fe1f]{flex:1;gap:1rem;min-height:0;padding:1rem;display:flex;overflow-y:auto}.preview-area .canvas[data-v-0cd7fe1f]{border:1px solid var(--ui-border);image-rendering:pixelated}.preview-area .canvas.svg[data-v-0cd7fe1f]{image-rendering:auto}.preview-area .thumbnails[data-v-0cd7fe1f]{flex-direction:column;flex-shrink:0;gap:1rem;display:flex}.preview-area .thumbnails .canvas[data-v-0cd7fe1f]{max-width:100%;height:auto}.preview-area .big-viewer[data-v-0cd7fe1f]{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.preview-area .big-viewer .canvas[data-v-0cd7fe1f]{width:auto;max-width:100%;height:auto;max-height:100%}.controls-pane[data-v-0cd7fe1f]{border-top:1px solid var(--ui-border);flex-direction:column;flex:1;gap:.75rem;min-height:0;padding:1rem;display:flex;overflow-y:auto}@media (aspect-ratio>=1){.controls-pane[data-v-0cd7fe1f]{border-top:none;border-left:1px solid var(--ui-border);flex:0 0 20rem}}html,body{margin:0;padding:0}:root{--ui-font:monospace;--ui-font-size:12px;--ui-bg:#fff;--ui-fg:#222;--ui-fg-dim:#666;--ui-border:#ccc;--ui-border-hover:#999;--ui-accent:#333;--ui-radius:3px;--ui-row-gap:.5rem;--ui-control-width:5rem;--ui-slider-width:8rem;--ui-editor-width:20rem;--ui-text-width:10rem}
