.dock-tab{z-index:50;color:#374151;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:600;transition:all .2s;display:flex;position:fixed;box-shadow:0 4px 12px #00000026}.dark .dock-tab{color:#d1d5db;background:#1f2937;border-color:#374151;box-shadow:0 2px 12px #0000004d}.dock-tab:hover{color:#1f2937;background:#f9fafb;border-color:#3b82f6;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f633}.dark .dock-tab:hover{color:#f3f4f6;background:#374151;border-color:#60a5fa;box-shadow:0 4px 16px #60a5fa4d}.dock-tab--open{color:#fff;background:#3b82f6;border-color:#3b82f6}.dark .dock-tab--open{background:#2563eb;border-color:#2563eb}.dock-tab__icon{flex-shrink:0;align-items:center;display:flex}.dock-tab__label{white-space:nowrap;-webkit-user-select:none;user-select:none}.dock-tab--edge-right{right:var(--right-sidebar-offset,0);writing-mode:vertical-rl;border-top-left-radius:0;border-bottom-left-radius:0;transform:translate(0)rotate(180deg)}.dock-tab--right-top{top:200px}.dock-tab--right-center{top:50%;transform:translate(0)translateY(-50%)rotate(180deg)}.dock-tab--right-bottom{bottom:200px}.dock-tab--edge-left{left:var(--left-sidebar-offset,0);writing-mode:vertical-rl;border-top-left-radius:0;border-bottom-left-radius:0;transform:translate(0)}.dock-tab--left-top{top:200px}.dock-tab--left-center{top:50%;transform:translate(0)translateY(-50%)}.dock-tab--left-bottom{bottom:200px}.dock-tab--edge-bottom{border-bottom-right-radius:0;border-bottom-left-radius:0;bottom:0;transform:translateY(0)}.dock-tab--bottom-left{left:200px}.dock-tab--bottom-center{left:50%;transform:translate(-50%)translateY(0)}.dock-tab--bottom-right{right:200px}.dock-tab--edge-top{border-top-left-radius:0;border-top-right-radius:0;top:0;transform:translateY(0)}.dock-tab--top-left{left:200px}.dock-tab--top-center{left:50%;transform:translate(-50%)translateY(0)}.dock-tab--top-right{right:200px}.dock-tab--edge-right:hover{transform:translate(-4px)rotate(180deg)}.dock-tab--right-center:hover{transform:translate(-4px)translateY(-50%)rotate(180deg)}.dock-tab--edge-left:hover{transform:translate(4px)}.dock-tab--left-center:hover{transform:translate(4px)translateY(-50%)}.dock-tab--edge-bottom:hover{transform:translateY(4px)}.dock-tab--bottom-center:hover{transform:translate(-50%)translateY(4px)}.dock-tab--edge-top:hover{transform:translateY(-4px)}.dock-tab--top-center:hover{transform:translate(-50%)translateY(-4px)}.dock-tab--open.dock-tab--edge-right{transform:translate(-8px)rotate(180deg)}.dock-tab--open.dock-tab--right-center{transform:translate(-8px)translateY(-50%)rotate(180deg)}.dock-tab--open.dock-tab--edge-left{transform:translate(8px)}.dock-tab--open.dock-tab--left-center{transform:translate(8px)translateY(-50%)}.dock-tab--open.dock-tab--edge-bottom{transform:translateY(8px)}.dock-tab--open.dock-tab--bottom-center{transform:translate(-50%)translateY(8px)}.dock-tab--open.dock-tab--edge-top{transform:translateY(-8px)}.dock-tab--open.dock-tab--top-center{transform:translate(-50%)translateY(-8px)}
.dock-panel{background:0 0;border:none;flex-direction:column;padding:0;display:flex;overflow:hidden!important}.dock-panel--left,.dock-panel--right{top:unset!important;bottom:unset!important;height:auto!important;max-height:90vh!important;inset-block-start:unset!important;inset-block-end:unset!important}.dock-panel--vertical-top{top:200px!important}.dock-panel--vertical-center{top:50%!important}.dock-panel--left.dock-panel--vertical-top[data-state=open]{transform:translate(60px)translateY(-50%)!important}.dock-panel--left.dock-panel--vertical-top[data-state=closed]{transform:translate(-100%)translateY(-50%)!important}.dock-panel--right.dock-panel--vertical-top[data-state=open]{transform:translate(-60px)translateY(-50%)!important}.dock-panel--right.dock-panel--vertical-top[data-state=closed]{transform:translate(100%)translateY(-50%)!important}.dock-panel--left.dock-panel--vertical-center[data-state=open]{transform:translate(60px)translateY(-50%)!important}.dock-panel--left.dock-panel--vertical-center[data-state=closed]{transform:translate(-100%)translateY(-50%)!important}.dock-panel--right.dock-panel--vertical-center[data-state=open]{transform:translate(-60px)translateY(-50%)!important}.dock-panel--right.dock-panel--vertical-center[data-state=closed]{transform:translate(100%)translateY(-50%)!important}.dock-panel--left.dock-panel--vertical-bottom[data-state=open]{transform:translate(60px)translateY(25%)!important}.dock-panel--left.dock-panel--vertical-bottom[data-state=closed]{transform:translate(-100%)translateY(25%)!important}.dock-panel--right.dock-panel--vertical-bottom[data-state=open]{transform:translate(-60px)translateY(25%)!important}.dock-panel--right.dock-panel--vertical-bottom[data-state=closed]{transform:translate(100%)translateY(25%)!important}.dock-panel--vertical-bottom{bottom:200px!important;top:unset!important}.dock-panel--horizontal-left{left:200px!important}.dock-panel--horizontal-center{left:50%!important}.dock-panel--horizontal-right{right:200px!important;left:unset!important}.dock-panel--top.dock-panel--horizontal-left[data-state=open]{transform:translateY(60px)!important}.dock-panel--top.dock-panel--horizontal-left[data-state=closed]{transform:translateY(-100%)!important}.dock-panel--top.dock-panel--horizontal-center[data-state=open]{transform:translate(-50%)translateY(60px)!important}.dock-panel--top.dock-panel--horizontal-center[data-state=closed]{transform:translate(-50%)translateY(-100%)!important}.dock-panel--top.dock-panel--horizontal-right[data-state=open]{transform:translateY(60px)!important}.dock-panel--top.dock-panel--horizontal-right[data-state=closed]{transform:translateY(-100%)!important}.dock-panel--bottom.dock-panel--horizontal-left[data-state=open]{transform:translateY(-60px)!important}.dock-panel--bottom.dock-panel--horizontal-left[data-state=closed]{transform:translateY(100%)!important}.dock-panel--bottom.dock-panel--horizontal-center[data-state=open]{transform:translate(-50%)translateY(-60px)!important}.dock-panel--bottom.dock-panel--horizontal-center[data-state=closed]{transform:translate(-50%)translateY(100%)!important}.dock-panel--bottom.dock-panel--horizontal-right[data-state=open]{transform:translateY(-60px)!important}.dock-panel--bottom.dock-panel--horizontal-right[data-state=closed]{transform:translateY(100%)!important}.dark .dock-panel{background:0 0}.dock-panel__header{border-bottom:1px solid #e5e7eb;flex-shrink:0;padding:16px 20px;position:relative}.dark .dock-panel__header{border-bottom-color:#374151}.dock-panel__title{color:#111827;margin:0;font-size:16px;font-weight:600}.dark .dock-panel__title{color:#f9fafb}.dock-panel__close{color:#6b7280;border-radius:6px;width:32px;height:32px;transition:all .2s;position:absolute;top:12px;right:16px}.dock-panel__close:hover{color:#111827;background:#f3f4f6}.dark .dock-panel__close{color:#9ca3af}.dark .dock-panel__close:hover{color:#f9fafb;background:#1f2937}.dock-panel__content{flex:1;padding:20px;overflow:auto}.dock-panel[data-state=closed] .dock-panel__content,.dock-panel[data-state=closed] .dock-panel__header{visibility:hidden;opacity:0;transition:visibility linear,opacity .1s linear}.dock-panel[data-state=open] .dock-panel__content,.dock-panel[data-state=open] .dock-panel__header{visibility:visible;opacity:1;transition:visibility linear,opacity .2s linear .1s}.dock-panel--right{box-shadow:none;border-left:1px solid #e5e7eb1a}.dark .dock-panel--right{box-shadow:none;border-left-color:#3741511a}.dock-panel--left{box-shadow:none;border-right:1px solid #e5e7eb1a}.dark .dock-panel--left{box-shadow:none;border-right-color:#3741511a}.dock-panel--bottom{box-shadow:none;border-top:1px solid #e5e7eb1a}.dark .dock-panel--bottom{box-shadow:none;border-top-color:#3741511a}.dock-panel--top{box-shadow:none;border-bottom:1px solid #e5e7eb1a}.dark .dock-panel--top{box-shadow:none;border-bottom-color:#3741511a}[data-slot=sheet-portal]:has(.dock-panel) [data-slot=sheet-overlay]{display:none!important}.dock-panel [data-slot=sheet-close]{display:none!important}.dock-panel{pointer-events:auto}.dock-panel__content{scrollbar-width:thin;scrollbar-color:#d1d5db #f3f4f6}.dark .dock-panel__content{scrollbar-color:#4b5563 #1f2937}.dock-panel__content::-webkit-scrollbar{width:8px;height:8px}.dock-panel__content::-webkit-scrollbar-track{background:#f3f4f6}.dark .dock-panel__content::-webkit-scrollbar-track{background:#1f2937}.dock-panel__content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.dark .dock-panel__content::-webkit-scrollbar-thumb{background:#4b5563}.dock-panel__content::-webkit-scrollbar-thumb:hover{background:#9ca3af}.dark .dock-panel__content::-webkit-scrollbar-thumb:hover{background:#6b7280}
.react-flow{direction:ltr}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1px;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:grab;position:absolute}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background:#1a192b;border:1px solid #fff;border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-top{top:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{top:50%;right:-4px;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{background:#ffffff80;margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{color:#222;text-align:center;background-color:#fff;border:1px solid #1a192b;border-radius:3px;width:150px;padding:10px;font-size:12px}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{box-sizing:content-box;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fefefe;border:none;border-bottom:1px solid #eee;justify-content:center;align-items:center;width:16px;height:16px;padding:5px;display:flex}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;width:4px;height:4px;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}
.assembly-canvas{width:100%;height:100%}.assembly-canvas--loading,.assembly-canvas--error,.assembly-canvas--empty{justify-content:center;align-items:center;display:flex}.assembly-canvas__error-content,.assembly-canvas__empty-content{text-align:center;flex-direction:column;align-items:center;gap:1rem;max-width:400px;padding:2rem;display:flex}.assembly-widget-content-enter{opacity:0;filter:blur(2px);transform:scale(.98)}.assembly-widget-content-enter-active{opacity:1;filter:blur();transition:opacity .25s ease-out,transform .25s ease-out,filter .2s ease-out;transform:scale(1)}.assembly-widget-smooth{animation:.3s ease-out forwards widgetSmoothAppear}@keyframes widgetSmoothAppear{0%{opacity:0;transform:scale(.98)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}.assembly-widget-placeholder{opacity:.3;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.assembly-widget-skeleton{opacity:0;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;animation:.15s ease-out .1s forwards skeletonFadeIn;display:flex}@keyframes skeletonFadeIn{to{opacity:.4}}.assembly-widget-skeleton--circle{border-radius:50%;width:300px;height:300px}.assembly-widget-skeleton--guitar{width:500px;height:200px}.assembly-widget-skeleton--piano{width:400px;height:150px}.assembly-widget-skeleton--chord-chart{width:350px;height:300px}.assembly-widget-skeleton--chord-info{width:300px;height:250px}.assembly-widget-skeleton__pulse{border-radius:inherit;background:linear-gradient(90deg,#0000 25%,#8080801a 50%,#0000 75%) 0 0/200% 100%;width:80%;height:80%;animation:1.5s infinite pulse}@keyframes pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.assembly-widget-renderer{background:hsl(var(--card));box-shadow:0 2px 8px hsl(var(--foreground) / .08);border-radius:8px;padding:1rem}.assembly-widget-renderer--unknown{border:2px dashed hsl(var(--border));background:hsl(var(--muted));min-width:200px;min-height:150px;color:hsl(var(--muted-foreground));justify-content:center;align-items:center;display:flex}.assembly-widget--readonly{pointer-events:none;opacity:.7;position:relative}.assembly-widget--readonly:after{content:"";cursor:not-allowed;background:hsl(var(--background) / .5);border-radius:inherit;position:absolute;inset:0}.dark .assembly-widget-skeleton__pulse{background:linear-gradient(90deg,#0000 25%,#ffffff0d 50%,#0000 75%) 0 0/200% 100%}.assembly-widget{box-sizing:border-box;background:0 0;border:none;border-radius:12px;flex-direction:column;width:100%;height:100%;animation:.2s ease-out fadeIn;display:flex;position:relative;overflow:visible}.assembly-widget--minimized{height:auto!important;min-height:0!important}.assembly-widget__controls{background:hsl(var(--card) / .92);border:1px solid hsl(var(--border));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;opacity:0;pointer-events:none;border-radius:6px;align-items:center;gap:2px;padding:4px;transition:opacity .15s;display:flex;position:absolute;top:4px;right:4px}.assembly-widget:hover .assembly-widget__controls{opacity:1;pointer-events:auto}.assembly-widget .drag-handle{cursor:grab!important}.assembly-widget .drag-handle:active{cursor:grabbing!important}.assembly-widget__action-btn{width:36px;min-width:36px;height:36px;min-height:36px;color:hsl(var(--muted-foreground));background:0 0;border:none;border-radius:6px;padding:0}.assembly-widget__action-btn--enharmonic{background:hsl(var(--primary) / .08);width:44px;min-width:44px;color:hsl(var(--foreground));border-radius:999px;margin-right:12px;font-weight:600}.assembly-widget__action-btn--direction-active,.assembly-widget__action-btn--direction-active:hover{background:hsl(var(--primary) / .14);color:hsl(var(--foreground))}.assembly-widget__enharmonic-toggle-label{justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex}.assembly-widget__action-icon{width:24px;height:24px}.assembly-widget__action-btn:hover{background:hsl(var(--foreground) / .08);color:hsl(var(--foreground))}.assembly-widget__action-btn--close:hover{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive))}.assembly-widget__minimized-label{color:hsl(var(--muted-foreground));background:hsl(var(--card) / .9);border:1px solid hsl(var(--border));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;white-space:nowrap;cursor:grab;border-radius:8px;justify-content:center;align-items:center;min-height:52px;padding:12px 28px;font-size:15px;font-weight:500;display:flex}.assembly-widget__minimized-label:active{cursor:grabbing}.assembly-widget__content{overscroll-behavior:contain;flex:1;justify-content:center;align-items:center;min-height:0;margin:5px;padding:3px;display:flex;overflow:hidden}.assembly-widget__content>div{width:100%;height:100%}.assembly-widget__resizer-line{border-color:#3b82f633!important}.assembly-widget__resizer-handle{background:hsl(var(--primary) / .35)!important;border:1px solid hsl(var(--card) / .8)!important;border-radius:2px!important;width:8px!important;height:8px!important}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.assembly-canvas svg text[y="0"],.assembly-widget svg text[y="0"],.at-surface svg text[y="0"],.at-viewport svg text[y="0"],.at-main svg text[y="0"]{visibility:hidden!important;opacity:0!important;display:none!important}.assembly-canvas-right-sidebar{background:hsl(var(--card));border-inline-start:1px solid hsl(var(--border));box-shadow:-4px 0 8px hsl(var(--foreground) / .05)}[dir=rtl] .assembly-canvas-right-sidebar{box-shadow:4px 0 8px hsl(var(--foreground) / .05)}.assembly-canvas-right-sidebar [data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none}.assembly-canvas-right-sidebar [data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}.canvas-toolbar{z-index:10;background:hsl(var(--card) / .95);border:1px solid hsl(var(--border));box-shadow:0 4px 6px hsl(var(--foreground) / .08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:.5rem;align-items:center;gap:.25rem;padding:.5rem;display:flex;position:absolute;top:1rem;right:calc(1rem + 100px)}.canvas-toolbar__add-widget{border-right:1px solid hsl(var(--border));margin-right:.5rem;padding-right:.75rem}.canvas-toolbar__btn{width:2rem;height:2rem;padding:0}.canvas-toolbar__zoom-display{text-align:center;min-width:3rem;color:hsl(var(--foreground));padding:0 .5rem;font-size:.875rem;font-weight:500}.canvas-toolbar__separator{background:hsl(var(--border));width:1px;height:1.5rem;margin:0 .25rem}.canvas-toolbar__enharmonic-group{background:hsl(var(--muted) / .5);border:1px solid hsl(var(--border) / .6);border-radius:.375rem;align-items:center;gap:.125rem;padding:.125rem;display:flex}.canvas-toolbar__enharmonic-btn{min-width:2rem;height:1.75rem;color:hsl(var(--muted-foreground));cursor:pointer;background:0 0;border:none;border-radius:.25rem;padding:0 .5rem;font-size:.875rem;font-weight:600;line-height:1;transition:all .15s}.canvas-toolbar__enharmonic-btn:hover{color:hsl(var(--foreground));background:hsl(var(--muted))}.canvas-toolbar__enharmonic-btn--active{background:linear-gradient(135deg, hsl(var(--primary)), #7430e8);color:hsl(var(--primary-foreground));box-shadow:0 1px 4px hsl(var(--primary) / .35)}.canvas-toolbar__enharmonic-btn--active:hover{background:linear-gradient(135deg, hsl(var(--primary)), #7430e8);color:hsl(var(--primary-foreground))}.react-flow__node-musicLabelWidget{box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;padding:0!important}.react-flow__node-musicLabelWidget.selected,.react-flow__node-musicLabelWidget:focus,.react-flow__node-musicLabelWidget:focus-visible{box-shadow:none!important;outline:none!important}.music-label-runtime{width:100%;height:100%;color:hsl(var(--foreground));background:0 0;overflow:hidden}.music-label-runtime__resizer-line{border-color:#a78bfa14!important}.music-label-runtime__resizer-handle{background:#a78bfa1f!important;border:none!important;border-radius:1px!important;width:5px!important;height:5px!important}.assembly-canvas--layout-locked .react-flow__node,.assembly-canvas--layout-locked .react-flow__node:active{cursor:default}.assembly-canvas--layout-locked .react-flow__resize-control{display:none}.tools-panel-node{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.tools-panel-node--selected{border-color:hsl(var(--primary));box-shadow:0 0 0 1px hsl(var(--primary))}.tools-panel-node__header{background:hsl(var(--muted));border-bottom:1px solid hsl(var(--border));justify-content:space-between;align-items:center;min-height:32px;padding:4px 8px;display:flex}.tools-panel-node__header-left{align-items:center;gap:6px;display:flex}.tools-panel-node__header-icon{width:14px;height:14px;color:hsl(var(--muted-foreground))}.tools-panel-node__header-label{color:hsl(var(--foreground));font-size:12px;font-weight:600}.tools-panel-node__content{flex:1;justify-content:center;align-items:center;padding:8px;display:flex}.tools-panel-node__content--stacked{flex-direction:column;align-items:stretch;gap:6px}.tools-panel-node__section{align-items:center;gap:8px;display:flex}.tools-panel-node__section-label{color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.03em;min-width:56px;font-size:10px;font-weight:600}.tools-panel-node__tool-group{align-items:center;gap:8px;display:flex}.tools-panel-node__button{border:1px solid hsl(var(--border));background:hsl(var(--muted));color:hsl(var(--foreground));cursor:pointer;border-radius:6px;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;transition:all .15s;display:flex}.tools-panel-node__button:hover:not(:disabled){background:hsl(var(--accent) / .15);border-color:hsl(var(--muted-foreground) / .5)}.tools-panel-node__button:active:not(:disabled){background:hsl(var(--accent) / .25)}.tools-panel-node__button--disabled,.tools-panel-node__button:disabled{opacity:.35;cursor:not-allowed}.tools-panel-node__button-counter{color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;font-size:9px}.tools-panel-node__resizer-line{border-color:hsl(var(--primary))!important}.tools-panel-node__resizer-handle{background:hsl(var(--primary))!important;border:1px solid hsl(var(--card))!important;border-radius:2px!important;width:8px!important;height:8px!important}
.slot-instrument-panel{flex-direction:column;gap:.75rem;padding:.75rem;display:flex}.slot-instrument-panel__header h3{color:#1a1a1a;font-size:.875rem;font-weight:600}.slot-instrument-panel__header .text-muted{color:#666;margin-top:.25rem;font-size:.75rem}.slot-instrument-panel__list{flex-direction:column;gap:.5rem;display:flex}.instrument-card{cursor:pointer;text-align:left;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;transition:all .15s;display:flex}.instrument-card:hover{background:#f0f7ff;border-color:#3b82f6}.instrument-card--active{background:#eff6ff;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.instrument-card__info{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.instrument-card__name{color:#1a1a1a;white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.instrument-card__preset{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.instrument-card__check{color:#3b82f6;flex-shrink:0;width:1rem;height:1rem}.instrument-mini-preview{color:#6b7280;background:#f3f4f6;border-radius:4px;flex-shrink:0;width:3.5rem;height:2rem;padding:2px}.instrument-card--active .instrument-mini-preview{color:#3b82f6;background:#dbeafe}.slot-section__header{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.5rem;padding:.5rem 0;font-size:.75rem;font-weight:600;display:flex}.slot-transition{opacity:1;height:100%;transition:opacity .15s ease-in-out}.slot-transition--active{opacity:0}.assembly-right-sidebar__tabs{border-bottom:1px solid #e5e7eb;padding:0 .5rem;display:flex}.assembly-right-sidebar__tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.375rem;padding:.5rem .75rem;font-size:.75rem;font-weight:500;transition:all .15s;display:flex}.assembly-right-sidebar__tab:hover{color:#1a1a1a}.assembly-right-sidebar__tab--active{color:#3b82f6;border-bottom-color:#3b82f6}.dark .slot-instrument-panel__header h3{color:#f0f0f0}.dark .slot-instrument-panel__header .text-muted{color:#9ca3af}.dark .instrument-card{background:#1f2937;border-color:#374151}.dark .instrument-card:hover{background:#1e3a5f;border-color:#3b82f6}.dark .instrument-card--active{background:#1e3a5f;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.dark .instrument-card__name{color:#f0f0f0}.dark .instrument-card__preset{color:#9ca3af}.dark .instrument-mini-preview{color:#9ca3af;background:#374151}.dark .instrument-card--active .instrument-mini-preview{color:#60a5fa;background:#1e3a5f}.dark .slot-section__header{color:#9ca3af}.dark .assembly-right-sidebar__tabs{border-bottom-color:#374151}.dark .assembly-right-sidebar__tab{color:#9ca3af}.dark .assembly-right-sidebar__tab:hover{color:#f0f0f0}.dark .assembly-right-sidebar__tab--active{color:#60a5fa;border-bottom-color:#60a5fa}
.mobile-assembly{background:hsl(var(--background));flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.mobile-assembly__header{border-bottom:1px solid hsl(var(--border));background:hsl(var(--background));z-index:10;will-change:transform;align-items:center;gap:.5rem;min-height:3.5rem;padding:.75rem 1rem;transition:transform .3s ease-in-out;display:flex;position:absolute;top:0;left:0;right:0}.mobile-assembly__header[data-hidden]{transform:translateY(-100%)}.mobile-assembly__header-title{color:hsl(var(--foreground));white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:1rem;font-weight:600;overflow:hidden}.mobile-assembly__content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0;padding-top:3.5rem;padding-bottom:calc(3.5rem + env(safe-area-inset-bottom,0px));flex:1;transition:padding-top .3s ease-in-out;overflow:hidden auto}.mobile-assembly__header[data-hidden]~.mobile-assembly__content{padding-top:0}.mobile-widget-list{flex-direction:column;display:flex}.mobile-collapsible-trigger{border:none;border-bottom:1px solid hsl(var(--border));width:100%;color:hsl(var(--foreground));cursor:pointer;text-align:start;background:0 0;align-items:center;gap:.75rem;padding:.875rem 1rem;font-size:.9375rem;font-weight:500;transition:background-color .15s;display:flex}.mobile-collapsible-trigger:active{background:hsl(var(--accent))}.mobile-collapsible-trigger__icon{width:1.25rem;height:1.25rem;color:hsl(var(--muted-foreground));flex-shrink:0}.mobile-collapsible-trigger__chevron{width:1rem;height:1rem;color:hsl(var(--muted-foreground));flex-shrink:0;margin-inline-start:auto;transition:transform .2s}.mobile-collapsible-trigger[data-state=open] .mobile-collapsible-trigger__chevron{transform:rotate(180deg)}.mobile-collapsible-content{border-bottom:1px solid hsl(var(--border));overflow:hidden}.mobile-collapsible-content[data-state=open]{padding:.75rem}.mobile-inline-label,.mobile-inline-label__chips{border-bottom:1px solid hsl(var(--border));padding:.5rem 1rem}.mobile-landscape-trigger{border-bottom:1px solid hsl(var(--border));cursor:pointer;align-items:center;gap:.75rem;padding:1rem;transition:background-color .15s;display:flex}.mobile-landscape-trigger:active{background:hsl(var(--accent))}.mobile-landscape-trigger__icon{width:1.25rem;height:1.25rem;color:hsl(var(--muted-foreground));flex-shrink:0}.mobile-landscape-trigger__name{color:hsl(var(--foreground));font-size:.9375rem;font-weight:500}.mobile-landscape-trigger__badge{color:hsl(var(--muted-foreground));align-items:center;gap:.5rem;margin-inline-start:auto;font-size:.75rem;display:flex}.mobile-landscape-overlay{z-index:100;background:hsl(var(--background));flex-direction:column;display:flex;position:fixed;inset:0}.mobile-landscape-overlay__header{padding:.5rem;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background));z-index:50;flex-shrink:0;align-items:center;gap:.5rem;min-height:3rem;padding-inline-start:.75rem;display:flex;position:relative}.mobile-landscape-overlay__title{color:hsl(var(--foreground));font-size:.875rem;font-weight:500}.mobile-landscape-overlay__widget{background:hsl(var(--background));flex:1;padding:.25rem;overflow:hidden}.mobile-rotate-prompt{background:hsl(var(--foreground) / .85);color:hsl(var(--background));z-index:40;white-space:nowrap;pointer-events:none;border-radius:9999px;align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:500;display:inline-flex;position:absolute;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0003}.mobile-rotate-prompt__icon{flex-shrink:0;width:1rem;height:1rem}.mobile-rotate-prompt__text{font-size:.8125rem}@keyframes rotate-hint{0%,to{transform:rotate(0)}50%{transform:rotate(90deg)}}.animate-rotate-hint{animation:2s ease-in-out infinite rotate-hint}.mobile-tools-fab{bottom:1.5rem;z-index:30;position:fixed;inset-inline-end:1.5rem}.mobile-tools-fab__button{background:hsl(var(--primary));width:3rem;height:3rem;color:hsl(var(--primary-foreground));cursor:pointer;border:none;border-radius:9999px;justify-content:center;align-items:center;transition:transform .15s;display:flex;box-shadow:0 4px 12px #00000026}.mobile-tools-fab__button:active{transform:scale(.95)}.mobile-tools-fab__panel{bottom:3.5rem;background:hsl(var(--popover));border:1px solid hsl(var(--border));border-radius:.75rem;gap:.5rem;padding:.5rem;display:flex;position:absolute;inset-inline-end:0;box-shadow:0 4px 12px #0000001a}.mobile-assembly .assembly-scale-circle-container{aspect-ratio:1;width:100%;max-width:340px;margin:0 auto}.mobile-skeleton{flex-direction:column;gap:.75rem;padding:1rem;display:flex}.mobile-skeleton__bar{background:hsl(var(--muted));border-radius:.5rem;height:3rem;animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.mobile-state-message{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.75rem;padding:3rem 1.5rem;display:flex}.mobile-state-message__title{color:hsl(var(--foreground));font-size:1.125rem;font-weight:600}.mobile-state-message__desc{color:hsl(var(--muted-foreground));max-width:280px;font-size:.875rem}
