*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body,h1,h2,h3,h4,h5,h6,p,ul,ol,li,figure,figcaption,blockquote,dl,dd{margin:0;padding:0}ul,ol{list-style:none}input,button,textarea,select{font:inherit;color:inherit;background:none;border:none;padding:0;margin:0}button{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield;-moz-appearance:textfield}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}select{-webkit-appearance:none;-moz-appearance:none;appearance:none}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*{scrollbar-width:thin;scrollbar-color:var(--border-color, #d1d5db) var(--bg-secondary, #f8fafc)}:root{--font-ui: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Monaco", "Inconsolata", "Roboto Mono", "Courier New", monospace;--radius-block: 10px;--radius-ui: 8px;--radius-port: 50%;--bg-primary: #ffffff;--bg-secondary: #fdfdfe;--bg-secondary-rgb: 253, 253, 254;--bg-tertiary: #f8fafc;--bg-canvas: #f1f5f9;--bg-block: #ffffff;--bg-block-rgb: 255, 255, 255;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--border-color: #cbd5e1;--border-light: #e2e8f0;--accent-primary: #2563eb;--accent-hover: #1d4ed8;--accent-bg: #dbeafe;--success: #059669;--warning: #d97706;--danger: #dc2626;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px -2px rgba(0, 0, 0, .08), 0 2px 6px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--grid-color: rgba(203, 213, 225, .15);--connection-color: #94a3b8;--glass-bg: rgba(255, 255, 255, .75);--glass-border: rgba(255, 255, 255, .3);--glass-blur: blur(16px) saturate(180%);--pulse-color: #60a5fa;--pulse-glow: 0 0 12px rgba(59, 130, 246, .4);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--transition-fast: .15s var(--ease-out-expo);--transition-standard: .3s var(--ease-out-expo)}body{font-family:var(--font-ui);line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sr-only-focusable:focus,.sr-only-focusable:active{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}@keyframes tourFadeIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes tourSpotlightPulse{0%,to{filter:drop-shadow(0 0 8px rgba(59,130,246,.5))}50%{filter:drop-shadow(0 0 16px rgba(59,130,246,.9))}}@keyframes executionPulse{0%{box-shadow:0 0 0 0 currentColor;border-color:currentColor}70%{box-shadow:0 0 0 10px transparent;border-color:currentColor}to{box-shadow:0 0 0 0 transparent;border-color:var(--block-border)}}@keyframes signalPulse{0%{offset-distance:0%;opacity:0;transform:scale(.5)}10%{opacity:1;transform:scale(1.2)}90%{opacity:1;transform:scale(1.2)}to{offset-distance:100%;opacity:0;transform:scale(.5)}}[data-theme=dark]{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-secondary-rgb: 30, 41, 59;--bg-tertiary: #334155;--bg-canvas: #121826;--bg-block: #1e293b;--bg-block-rgb: 30, 41, 59;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--border-color: #475569;--border-light: #334155;--accent-primary: #3b82f6;--accent-hover: #2563eb;--accent-bg: #1e3a8a;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .4);--shadow-md: 0 6px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 24px rgba(0, 0, 0, .6);--grid-color: #334155;--connection-color: #94a3b8;--glass-bg: rgba(30, 41, 59, .7);--glass-border: rgba(255, 255, 255, .08)}.browser-firefox [data-theme=dark] .sidebar{background:rgba(var(--bg-secondary-rgb, 30, 58, 95),.95);backdrop-filter:blur(12px) saturate(1.8);-webkit-backdrop-filter:blur(12px) saturate(1.8)}.browser-edge [data-theme=dark]{--bg-canvas: #1c2333;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-block: #1e293b;--accent-primary: #60a5fa;--accent-hover: #3b82f6;--accent-bg: #1e40af}.browser-edge [data-theme=dark] .sidebar{background:rgba(var(--bg-secondary-rgb, 30, 41, 59),.95);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2)}.app-container{display:flex;height:100vh;width:100%;background:var(--bg-primary);overflow:hidden}.main-canvas{position:absolute;inset:0;overflow:hidden;background:var(--bg-canvas);display:flex;flex-direction:column}.canvas{width:100%;height:100%;position:relative;overflow:hidden}.canvas.dragging-over{box-shadow:inset 0 0 0 2px var(--accent-primary),inset 0 0 24px #2563eb14;transition:box-shadow .15s ease}#root{width:100%;height:100vh}.sidebar.pinned{width:var(--sidebar-width, 320px);box-shadow:4px 0 12px #0000000d}.pin-button,.toolbar-pin-button{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.pin-button:hover,.toolbar-pin-button:hover{background:var(--bg-tertiary);color:var(--accent-primary)}.pin-button.active,.toolbar-pin-button.active{color:var(--accent-primary)}.toolbar-wrapper{position:absolute;top:0;left:0;right:0;display:flex;justify-content:center;pointer-events:none;z-index:1000}.toolbar-wrapper.pinned{pointer-events:auto}.toolbar-wrapper>*{pointer-events:auto}.toolbar-pin-button{position:absolute;right:20px;top:50%;transform:translateY(-50%);z-index:1001;background:var(--bg-primary);box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}@media(max-width:767px){.app-container{flex-direction:column}.main-canvas{height:calc(100vh - 180px)}}.block{--block-rotation: 0deg;background:transparent;border-width:2.5px;border-style:solid;border-radius:10px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 10px 20px -5px #00000040,0 6px 12px -3px #00000026,0 0 0 1px #00000014,inset 0 1px #ffffff1a;cursor:move;position:absolute;font-family:var(--font-ui);transition:box-shadow .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.34,1.56,.64,1),border-color .25s ease,border-width .25s ease;transform:rotate(var(--block-rotation))}[data-theme=dark] .block{box-shadow:0 12px 24px -6px #00000080,0 8px 16px -4px #0000004d,0 0 0 1px #0003,inset 0 1px #ffffff0d}.resize-handle{position:absolute;cursor:se-resize;z-index:150;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);border-bottom-right-radius:2px;opacity:.5;transition:all .2s}.resize-handle:hover{opacity:1;border-color:var(--accent-primary);transform:scale(1.1)}[data-theme=dark] .block:hover{box-shadow:0 20px 40px -10px #0009,0 12px 20px -6px #0006,0 0 0 1px #0000004d,inset 0 2px #ffffff1a}.block:hover{box-shadow:0 16px 32px -8px #0000004d,0 10px 16px -5px #0003,0 0 0 1px #0000001a,inset 0 2px #ffffff40;transform:translateY(-3px) scale(1.02) rotate(var(--block-rotation));border-width:3px}.block.selected{outline:none!important;box-shadow:0 0 0 3px currentColor,0 0 20px 4px currentColor,0 0 40px 8px currentColor,0 12px 24px -6px #0000004d;border-width:3px;animation:selection-pulse 2s ease-in-out infinite;z-index:100;transform:scale(1.02) rotate(var(--block-rotation))}.block.disable-hover:hover{transform:rotate(var(--block-rotation));border-width:2.5px;box-shadow:0 10px 20px -5px #00000040,0 6px 12px -3px #00000026,0 0 0 1px #00000014,inset 0 1px #ffffff1a}[data-theme=dark] .block.disable-hover:hover{box-shadow:0 12px 24px -6px #00000080,0 8px 16px -4px #0000004d,0 0 0 1px #0003,inset 0 1px #ffffff0d}@keyframes selection-pulse{0%,to{box-shadow:0 0 0 3px currentColor,0 0 20px 4px currentColor,0 0 40px 8px currentColor,0 12px 24px -6px #0000004d}50%{box-shadow:0 0 0 3px currentColor,0 0 30px 6px currentColor,0 0 60px 12px currentColor,0 16px 32px -8px #0006}}.block.is-preview{position:relative!important;transform:none!important;left:auto!important;top:auto!important;margin:0 auto;cursor:pointer;box-shadow:none;border-width:1px}.block.simulating{animation:executionPulse 2s infinite;color:var(--block-category-color, var(--accent-primary))}.block-header{padding:2px;font-size:clamp(8px,2cqw,10px);font-weight:600;border-bottom:1.5px solid var(--border-color);border-top-left-radius:10px;border-top-right-radius:10px;white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.12em;transition:all .2s ease;opacity:1;font-family:var(--font-ui);display:flex;align-items:center;justify-content:center;position:relative;z-index:2;background:#ffffff80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-shrink:0;overflow:hidden}[data-theme=light] .block-header{color:#334155;background:#ffffff80}[data-theme=dark] .block-header{color:#cbd5e1;background:#0f172a80}.block.palette-preview .block-header{padding:2px 6px;font-size:9px;border-bottom-width:1px}.block-header.clickable-docs{cursor:pointer}.block-header.clickable-docs:hover{background:var(--accent-bg);color:var(--accent-primary)}.block-body{padding:2px;font-size:15px;font-weight:600;color:var(--text-primary);text-align:center;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;background:transparent;transition:color .2s ease}.draggable-block{position:absolute;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.draggable-block.dragging{opacity:.9;z-index:1000!important}.draggable-block:focus-visible{outline:3px solid var(--accent-primary);outline-offset:4px;border-radius:12px}.draggable-block.focused .block{transform:scale(1.02) rotate(var(--block-rotation))}.block-icon-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:2px;box-sizing:border-box;overflow:hidden}.block-icon-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.block-icon{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;overflow:visible;opacity:1;pointer-events:none;stroke:currentColor;stroke-width:2;fill:none;filter:drop-shadow(0 0 2px rgba(255,255,255,.1));transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}.block-icon svg{width:100%;height:100%;display:block;stroke-linecap:round;stroke-linejoin:round}.block-icon svg text{font-weight:700;fill:currentColor;stroke:none}.block-icon svg text.icon-param-text{font-size:clamp(3.5px,4.5cqw,6.5px)}.block-text-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-weight:600;font-size:clamp(9px,8cqw,14px);letter-spacing:.01em;color:var(--text-primary);text-shadow:0 0 8px rgba(0,0,0,.2);padding:4px;box-sizing:border-box;text-align:center;line-height:1.1;word-break:normal;overflow:hidden}.port{width:10px;height:10px;background:var(--bg-block);border:1.5px solid var(--border-color);border-radius:50%;position:absolute;z-index:10;cursor:crosshair;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 0 0 1px #0000000d,inset 0 1px 2px #0000001a}.port:hover{transform:scale(1.3);z-index:100;box-shadow:0 0 10px var(--accent-primary)}.port:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;box-shadow:0 0 0 4px #3182ce66;z-index:200;transform:scale(1.3)}.port.port-magnetic{transform:scale(1.6);border-color:var(--accent-primary);background:#3b82f633;box-shadow:0 0 0 6px #3b82f64d,0 0 12px #3b82f666;animation:magnetic-pulse .6s ease-in-out infinite}@keyframes magnetic-pulse{0%,to{box-shadow:0 0 0 6px #3b82f64d,0 0 12px #3b82f666}50%{box-shadow:0 0 0 8px #3b82f633,0 0 16px #3b82f680}}.port.port-connected{background:var(--accent-primary);border-color:var(--accent-primary)}.port.port-connected-multiple{background:var(--accent-primary);border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--bg-block),0 0 0 4px var(--accent-primary)}.port[data-datatype=number]{border-color:#f59e0b}.port[data-datatype=number].port-connected{background:#f59e0b}.port[data-datatype=boolean]{border-color:#3b82f6}.port[data-datatype=boolean].port-connected{background:#3b82f6}.port[data-datatype=signal]{border-color:#10b981}.port[data-datatype=signal].port-connected{background:#10b981}.port[data-datatype=complex]{border-color:#8b5cf6}.port[data-datatype=complex].port-connected{background:#8b5cf6}.port-label{position:absolute;white-space:nowrap;font-size:9px;font-weight:600;color:var(--text-muted);pointer-events:none;opacity:0;transition:opacity .2s;z-index:5}.port:hover .port-label,.port-magnetic .port-label,.type-subsystem .port-label{opacity:1}.port-label-left{left:16px;top:50%;transform:translateY(-50%)}.port-label-right{right:16px;top:50%;transform:translateY(-50%)}.port-label-top{top:16px;left:50%;transform:translate(-50%)}.port-label-bottom{bottom:16px;left:50%;transform:translate(-50%)}.block-type-label{margin-top:0;font-weight:700;font-size:clamp(7px,6cqw,9px);opacity:.5;letter-spacing:.05em;text-transform:uppercase;max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1}.block-type-label.sub-text{font-size:clamp(6px,5cqw,8px);opacity:.4;font-weight:600}.dominant-text{display:flex;align-items:center;justify-content:center;gap:2px;width:100%;height:100%}[data-theme=light] .block-body{color:#1e293b!important}[data-theme=light] .block-body svg{color:#1e293b!important}[data-theme=dark] .block-body{color:#f1f5f9!important}[data-theme=dark] .block-body svg{color:#f1f5f9!important}.block-body.text-dark-on-light{color:#1e293b!important}.block-body.text-light-on-dark{color:#f8fafc!important}.block-body.text-light-gray{color:#f1f5f9!important}.block-body.text-default{color:var(--text-muted)!important}.type-uplotdisplay .block-body,.type-uplotscope .block-body,.type-xyplot .block-body,.type-histogram .block-body,.type-barchart .block-body,.type-scatterplot .block-body,.type-surfaceplot .block-body,.type-numericdisplay .block-body,.type-gauge .block-body,.type-sevensegment .block-body{padding:0!important}[data-theme=dark] .type-uplotdisplay,[data-theme=dark] .type-uplotscope,[data-theme=dark] .type-xyplot{background:#0f172a!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}[data-theme=light] .type-uplotdisplay,[data-theme=light] .type-uplotscope,[data-theme=light] .type-xyplot{background:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.u-select{border:1.5px dashed var(--uplot-zoom-color, var(--accent-primary, #3b82f6))!important;background:color-mix(in srgb,var(--uplot-zoom-color, var(--accent-primary, #3b82f6)) 10%,transparent)!important}[data-theme=dark] .u-select{border-color:color-mix(in srgb,var(--uplot-zoom-color, rgba(56, 189, 248)) 60%,transparent)!important;background:color-mix(in srgb,var(--uplot-zoom-color, rgba(56, 189, 248)) 10%,transparent)!important}.uplot .u-cursor-pt,[data-uplot-chart] .u-cursor-pt{display:none!important;opacity:0!important;width:0!important;height:0!important}.uplot .u-title{height:0!important;min-height:0!important;padding:0!important;margin:0!important;font-size:0!important;line-height:0!important;overflow:hidden!important}.type-area{box-shadow:none!important;border-style:dashed!important;border-width:1.5px!important;border-radius:8px!important}.type-area:hover{box-shadow:none!important;transform:rotate(var(--block-rotation))!important;border-width:1.5px!important}.type-area.selected{box-shadow:0 0 0 2px currentColor,0 0 12px 2px currentColor!important}.type-area .block-header{display:none!important}.type-area .block-body{padding:0!important}.type-textnote{box-shadow:none!important;border:none!important;background:transparent!important}.type-textnote:hover{box-shadow:none!important;transform:rotate(var(--block-rotation))!important}.type-textnote.selected{outline:1.5px dashed var(--accent-primary)!important;outline-offset:4px!important;box-shadow:none!important}.type-textnote .block-header{display:none!important}.type-textnote .block-body{padding:0!important}.text-dark-on-light{color:#334155}.text-light-gray{color:#e2e8f0}.connection-group{transition:opacity .2s ease}.connection-group.dimmed{opacity:.25}.connection-group.highlighted{opacity:1}.connection-line-base{fill:none;cursor:pointer;transition:filter .15s ease,stroke-width .2s ease;stroke-linecap:round;stroke-linejoin:round}.connection-line-base.selected{filter:drop-shadow(0 0 6px currentColor);stroke-width:4}.connection-line-base:hover{filter:drop-shadow(0 0 3px currentColor)}.connection-line-base.hovered{filter:drop-shadow(0 0 4px currentColor);stroke-width:6}.connection-glow{pointer-events:none;opacity:.4;filter:blur(4px)}.connection-flow-animation{animation:flowAnimation .8s linear infinite;stroke:#fff;stroke-width:2;stroke-dasharray:4,16;stroke-linecap:round;opacity:.9;pointer-events:none}@keyframes flowAnimation{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}.connection-line-temp{stroke:var(--accent-primary);stroke-width:2;stroke-dasharray:8,4;fill:none;animation:tempDash .5s linear infinite}@keyframes tempDash{to{stroke-dashoffset:-12}}.connection-arrow{opacity:.9;transition:opacity .15s ease,transform .15s ease}.connection-arrow.highlighted{opacity:1;filter:drop-shadow(0 0 2px currentColor)}.connection-group:hover .connection-arrow{opacity:1}.connection-line-base[data-datatype=number]{stroke:#f59e0b}.connection-line-base[data-datatype=boolean]{stroke:#3b82f6}.connection-line-base[data-datatype=signal]{stroke:#10b981}.connection-line-base[data-datatype=complex]{stroke:#8b5cf6}.connection-line{stroke:var(--connection-color);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:1;pointer-events:stroke;cursor:pointer}.connections-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.sidebar{width:300px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:2100;transition:transform .3s cubic-bezier(.4,0,.2,1),background .3s ease;box-shadow:2px 0 12px #00000026;background:var(--glass-bg);backdrop-filter:var(--glass-blur) saturate(1.2);-webkit-backdrop-filter:var(--glass-blur) saturate(1.2)}.sidebar.collapsed{transform:translate(-300px)}.browser-firefox .sidebar{background:rgba(var(--bg-secondary-rgb, 30, 58, 95),.95);backdrop-filter:blur(12px) saturate(1.8);-webkit-backdrop-filter:blur(12px) saturate(1.8)}.browser-edge .sidebar{background:rgba(var(--bg-secondary-rgb, 30, 41, 59),.95);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2)}.sidebar-header{padding:16px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.sidebar-header h2{margin:0;font-size:13px;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-ui)}.sidebar-content{flex:1;overflow:hidden;padding:12px;max-height:100%;display:flex;flex-direction:column}.sidebar-toggle{width:24px;height:24px;border-radius:50%;background:var(--bg-primary);border-width:1px;border-style:solid;border-color:var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-primary);transition:all .2s ease;margin-left:8px}.sidebar-toggle:hover{background:var(--accent-bg);border-color:var(--accent-primary)}.palette{display:flex;flex-direction:column;gap:0;flex:1;min-height:0;height:100%}.palette-split-pane{display:flex;flex:1;min-height:0;border-top:1px solid var(--border-color)}.palette-content-area{flex:1;min-width:0;height:100%;position:relative;overflow:hidden;background:var(--bg-primary);background:rgba(var(--bg-block-rgb, 255, 255, 255),.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding-right:4px;display:flex;flex-direction:column}.palette-search{position:relative;margin-bottom:8px}.palette-search-input{width:100%;padding:8px 32px 8px 12px;border:1px solid var(--border-color);border-radius:var(--radius-ui);font-size:13px;color:var(--text-primary);background:var(--bg-primary);transition:all .15s;font-family:var(--font-ui)}.palette-search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #2563eb26}.palette-search-input::placeholder{color:var(--text-muted)}.palette-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:var(--bg-tertiary);border:none;width:20px;height:20px;border-radius:50%;font-size:14px;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.palette-search-clear:hover{background:var(--border-color);color:var(--text-primary)}.palette-search-info{font-size:11px;color:var(--text-muted);padding:0 4px;margin-bottom:4px}.palette-no-results{padding:16px;text-align:center;color:var(--text-muted);font-size:13px}.palette-sections{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0}.palette-section{margin-bottom:4px}.palette-section-header{display:flex;align-items:center;width:100%;padding:6px 8px;background:var(--bg-tertiary);border:none;border-radius:6px;cursor:pointer;text-align:left;transition:all .15s}.palette-section-header:hover{background:var(--bg-secondary)}.palette-section-icon{font-size:10px;color:var(--text-muted);margin-right:6px;width:12px}.palette-section-title{flex:1;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.category-rail{width:140px;background:var(--bg-tertiary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;gap:2px;padding:8px 4px;overflow-y:auto;flex-shrink:0}.category-rail-item{width:100%;padding:8px 12px;min-height:32px;display:flex;align-items:center;justify-content:flex-start;border-radius:6px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .1s;text-align:left;font-family:var(--font-ui)}.category-rail-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.category-rail-item.active{background:var(--accent-bg);color:var(--accent-primary);font-weight:600}.category-rail-label{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-block-container{display:flex;align-items:center;justify-content:center;padding:0;margin:0;-webkit-user-select:none;user-select:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.palette-block-container:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.palette-block-container:active{cursor:grabbing;transform:scale(.98)}.palette-block-scaled{transform-origin:center center;pointer-events:none}.palette-block-container .block{pointer-events:none}.palette-block-container .block:hover{box-shadow:none}.palette-item-compact:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);z-index:5}@media(max-width:767px){.sidebar{width:clamp(340px,25vw,400px)}.sidebar.collapsed{height:60px;width:100%}.palette{display:flex;overflow-x:auto;gap:16px}.palette-section{flex-shrink:0;width:200px}}.toolbar{position:absolute;top:12px;left:312px;right:12px;background:var(--glass-bg);backdrop-filter:var(--glass-blur) saturate(1.2);-webkit-backdrop-filter:var(--glass-blur) saturate(1.2);padding:4px 8px;border-radius:8px;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 16px #0000001f,0 0 0 1px #ffffff0d;display:flex;align-items:center;gap:12px;z-index:2000;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s ease,box-shadow .3s ease}.toolbar.collapsed{transform:translateY(-100%);opacity:0;pointer-events:none;height:0}.toolbar-menus{display:flex;align-items:center;gap:4px}.toolbar-spacer{flex:1}.header-buttons{display:flex;align-items:center;gap:8px}.theme-toggle{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-ui);padding:6px 10px;font-size:16px;cursor:pointer;color:var(--text-secondary);transition:all .15s}.theme-toggle:hover{background:var(--accent-bg);border-color:var(--accent-primary)}@keyframes runButtonPulse{0%{box-shadow:0 0 #10b98166}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}.toolbar-dropdown{position:relative}.toolbar-dropdown-trigger{background:transparent;border:none;padding:6px 10px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:4px;border-radius:4px;transition:all .15s}.toolbar-dropdown-trigger:hover,.toolbar-dropdown-trigger.active{background:var(--bg-tertiary);color:var(--text-primary)}.toolbar-dropdown-trigger:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.toolbar-dropdown-menu{position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-block);border:1px solid var(--border-color);border-radius:var(--radius-ui);box-shadow:var(--shadow-lg);min-width:200px;padding:4px;z-index:2000;display:flex;flex-direction:column}.toolbar-dropdown-item{width:100%;padding:8px 12px;border:none;background:transparent;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text-primary);border-radius:4px;cursor:pointer;text-align:left;transition:all .1s}.toolbar-dropdown-item:hover{background:var(--accent-bg);color:var(--accent-primary)}.toolbar-dropdown-item:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.toolbar-dropdown-item.active{color:var(--accent-primary);font-weight:600}.toolbar-dropdown-item:disabled{opacity:.5;cursor:not-allowed}.toolbar-dropdown-divider{height:1px;background:var(--border-color);margin:4px 0}.dropdown-item-shortcut{font-size:11px;color:var(--text-muted);font-weight:400}.dropdown-item-check{color:var(--accent-primary);margin-left:8px}.simulation-controls{position:absolute;bottom:12px;right:12px;background:var(--bg-block);border-width:1px;border-style:solid;border-color:var(--border-color);border-radius:10px;box-shadow:var(--shadow-md);z-index:110;min-width:200px;overflow:hidden;transition:min-width .3s ease}.simulation-controls.expanded{min-width:280px}.sim-controls-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-secondary)}.sim-controls-buttons{display:flex;gap:4px}.sim-ctrl-btn{width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;background:var(--bg-tertiary);color:var(--text-secondary)}.sim-ctrl-btn:hover{transform:scale(1.05)}.sim-ctrl-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.sim-ctrl-btn.play{background:var(--success);color:#fff}.sim-ctrl-btn.play:hover{background:#0ea56e}.sim-ctrl-btn.pause{background:var(--warning);color:#fff}.sim-ctrl-btn.pause:hover{background:#e08f07}.sim-ctrl-btn.stop{background:var(--danger);color:#fff}.sim-ctrl-btn.stop:hover{background:#dc2626}.sim-ctrl-btn.reset{background:var(--bg-tertiary);color:var(--text-secondary)}.sim-ctrl-btn.reset:hover{background:var(--accent-bg);color:var(--accent-primary)}.sim-ctrl-btn.play.ready-to-run{animation:runButtonPulse 2s infinite}.sim-progress-section{flex:1;min-width:120px}.sim-progress-bar-container{height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;margin-bottom:4px}.sim-progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--success));border-radius:3px;transition:width .1s ease}.sim-progress-info{display:flex;justify-content:space-between;font-size:10px;color:var(--text-muted)}.sim-time{font-family:monospace;font-weight:500}.sim-remaining{opacity:.8}.sim-idle-info{flex:1;display:flex;flex-direction:column;font-size:11px;color:var(--text-secondary)}.sim-steps{font-size:10px;color:var(--text-muted)}.sim-completed-info{flex:1;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-secondary)}.sim-done-badge{background:var(--success);color:#fff;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600}.sim-perf-badge{background:var(--bg-tertiary, #2a2a3e);color:var(--text-secondary, #aaa);padding:2px 6px;border-radius:4px;font-size:10px;font-weight:500;cursor:default}.dominant-text{font-size:24px;font-weight:800;line-height:1;letter-spacing:-.02em}.sub-text{font-size:10px;opacity:.8;margin-top:2px}.sim-settings-toggle{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.sim-settings-toggle:hover{background:var(--bg-tertiary);color:var(--text-primary)}.simulation-controls.expanded .sim-settings-toggle{background:var(--accent-bg);color:var(--accent-primary)}.sim-settings-panel{padding:12px;border-top:1px solid var(--border-color);background:var(--bg-primary)}.sim-setting-group{margin-bottom:12px}.sim-setting-group:last-child{margin-bottom:0}.sim-setting-group>label{display:block;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.sim-setting-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.sim-setting-header label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.sim-toggle-group{display:flex;gap:2px;background:var(--bg-tertiary);padding:2px;border-radius:4px}.sim-toggle-group button{padding:2px 8px;font-size:10px;border:none;border-radius:3px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}.sim-toggle-group button.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.sim-setting-row{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.sim-input,.sim-input-small{padding:6px 8px;border-width:1px;border-style:solid;border-color:var(--border-color);border-radius:6px;font-size:12px;color:var(--text-primary);background:var(--bg-secondary);text-align:right;width:70px}.sim-input-small{width:50px}.sim-input-stacked{display:flex;flex-direction:column;gap:2px;flex:1}.sim-input-stacked label{font-size:9px;font-weight:600;color:var(--text-muted);text-transform:uppercase;margin-bottom:0}.sim-input-stacked input{width:100%!important}.sim-input:focus,.sim-input-small:focus{outline:none;border-color:var(--accent-primary)}.sim-input:disabled,.sim-input-small:disabled{opacity:.5;cursor:not-allowed}.sim-select{padding:6px 8px;border-width:1px;border-style:solid;border-color:var(--border-color);border-radius:6px;font-size:12px;color:var(--text-primary);background:var(--bg-secondary);flex:1}.sim-select:disabled{opacity:.5}.sim-hint{font-size:10px;color:var(--text-muted)}.sim-reset-defaults{width:100%;padding:8px;margin-top:8px;border-width:1px;border-style:solid;border-color:var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .15s}.sim-reset-defaults:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--accent-primary)}.sim-reset-defaults:disabled{opacity:.5;cursor:not-allowed}.context-menu{position:fixed;background:var(--bg-block);border:1px solid var(--border-color);border-radius:var(--radius-ui);box-shadow:var(--shadow-md);padding:4px;z-index:1000;min-width:160px}.context-menu-item{padding:6px 12px;display:flex;align-items:center;gap:8px;cursor:pointer;border-radius:4px;font-size:13px;color:var(--text-primary);transition:all .1s}.context-menu-item:hover{background:var(--accent-bg);color:var(--accent-primary)}.context-menu-separator{height:1px;background:var(--border-color);margin:4px 0}.context-menu-item.danger{color:var(--danger)}.context-menu-item.danger:hover{background:#fee2e2;color:#dc2626}.property-editor-floating{box-shadow:var(--shadow-lg);border-radius:var(--radius-ui);overflow:hidden;animation:fadeIn .15s ease-out}.property-editor{width:300px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-ui);display:flex;flex-direction:column;max-height:80vh}.property-editor.wide{width:600px}.property-editor-header{padding:12px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;cursor:grab;-webkit-user-select:none;user-select:none}.property-editor-floating.dragging .property-editor-header{cursor:grabbing}.property-editor-header h3{margin:0;font-size:14px;font-weight:700;color:var(--text-primary)}.property-editor-close{background:none;border:none;font-size:20px;color:var(--text-muted);cursor:pointer;line-height:1}.property-editor-close:hover{color:var(--danger)}.property-editor-content{padding:16px;overflow-y:auto;flex:1}.property-editor-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border-color);padding-bottom:8px}.property-editor-tab{flex:1;background:transparent;border:none;padding:6px 12px;font-size:12px;font-weight:600;color:var(--text-muted);cursor:pointer;border-radius:4px;transition:all .15s}.property-editor-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.property-editor-tab.active{background:var(--accent-bg);color:var(--accent-primary)}.property-editor-tab:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.property-field{margin-bottom:12px}.property-field label{display:block;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;margin-bottom:4px}.property-field input,.property-field select{width:100%;padding:6px 10px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:13px;font-family:inherit}.property-field-readonly{padding:6px 10px;background:var(--bg-tertiary);border-radius:4px;font-size:13px;color:var(--text-secondary);font-family:var(--font-mono)}.property-field-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.property-field-value{font-size:13px;color:var(--text-primary);font-weight:500}.property-field-btn{padding:4px 10px;font-size:12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .1s}.property-field-btn:hover{background:var(--accent-bg);border-color:var(--accent-primary);color:var(--accent-primary)}.simulation-live-badge{display:flex;align-items:center;gap:6px;padding:4px 10px;margin-bottom:8px;background:#10b9811a;border:1px solid rgba(16,185,129,.35);border-radius:4px;font-size:10px;font-weight:600;color:#10b981;letter-spacing:.3px;text-transform:uppercase}.simulation-live-dot{width:6px;height:6px;border-radius:50%;background:#10b981;flex-shrink:0;animation:livePulse 1.5s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.4}}.param-locked input,.param-locked select,select.param-locked,input.param-locked{opacity:.45;cursor:not-allowed;background:var(--bg-tertiary)!important}.ss-panel{display:flex;flex-direction:column;gap:10px;padding:0}.ss-info-row{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.ss-chip{font-size:10px;padding:2px 7px;border-radius:10px;border:1px solid var(--border-color, #333);color:var(--text-secondary, #888);background:var(--bg-tertiary, #1a1a1a);font-family:monospace;white-space:nowrap}.ss-chip-eq{font-style:italic;letter-spacing:.02em}.ss-chip-dim{color:var(--text-muted, #666)}.ss-matrices-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ss-matrix-block{background:var(--bg-secondary, #141414);border:1px solid var(--border-color, #2a2a2a);border-radius:4px;padding:6px}.ss-matrix-header{display:flex;align-items:baseline;gap:5px;margin-bottom:5px}.ss-matrix-name{font-weight:700;font-size:14px;font-style:italic;color:var(--text-primary, #eee);line-height:1}.ss-matrix-subtitle{font-size:9px;color:var(--text-muted, #666);flex:1}.ss-matrix-dim{font-size:9px;color:#555;font-family:monospace;margin-left:auto}.ss-matrix-wrapper{display:flex;gap:4px;align-items:flex-start}.ss-matrix-scroll{overflow:auto;max-height:140px;flex:1}.ss-matrix-table{border-collapse:collapse}.ss-matrix-table td{padding:1px}.ss-matrix-table input[type=text]{width:56px;padding:3px 5px;background:var(--bg-primary, #0d0d0d);border:1px solid var(--border-color, #2a2a2a);border-radius:2px;color:var(--text-primary, #eee);font-size:11px;font-family:monospace;text-align:right}.ss-matrix-table input[type=text]:focus{outline:none;border-color:var(--accent-color, #4a9eff);background:var(--bg-secondary, #141414)}.ss-matrix-btns{display:flex;flex-direction:column;gap:2px;flex-shrink:0}.ss-matrix-btns button{width:26px;height:22px;padding:0;background:var(--bg-tertiary, #222);border:1px solid var(--border-color, #333);border-radius:3px;color:var(--text-secondary, #aaa);cursor:pointer;font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center}.ss-matrix-btns button:hover:not(:disabled){background:var(--bg-hover, #2e2e2e);color:var(--text-primary, #eee)}.ss-matrix-btns button:disabled{opacity:.25;cursor:not-allowed}.ss-eigenvalues{background:var(--bg-secondary, #141414);border:1px solid var(--border-color, #2a2a2a);border-radius:4px;padding:8px}.ss-eig-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:11px;color:var(--text-secondary, #888)}.ss-stability-badge{font-size:10px;padding:1px 7px;border:1px solid currentColor;border-radius:10px;font-weight:600}.ss-eig-plot{display:block;margin:0 auto 6px;background:var(--bg-primary, #0a0a0a);border-radius:3px}.ss-eig-table{width:100%;border-collapse:collapse;font-size:11px;font-family:monospace}.ss-eig-table th,.ss-eig-table td{padding:2px 5px;text-align:right;border-bottom:1px solid var(--border-subtle, #1e1e1e);color:var(--text-secondary, #888)}.ss-eig-table th{font-size:9px;text-transform:uppercase;color:#555;font-family:sans-serif;letter-spacing:.04em}.ss-eig-hint{margin-top:6px;font-size:9px;color:#555;line-height:1.5}.ss-aug-block{background:var(--bg-secondary, #141414);border:1px solid var(--border-color, #2a2a2a);border-radius:4px;padding:6px;position:relative}.ss-aug-header{display:flex;align-items:baseline;gap:6px;margin-bottom:6px}.ss-aug-title{font-size:11px;font-weight:600;color:var(--text-secondary, #888);flex:1}.ss-aug-col-label{font-size:8px;font-weight:400;color:#555;font-family:monospace;text-align:center;padding:0 1px 3px;white-space:nowrap}.ss-aug-col-label.ss-aug-col-input{color:#4a7aaa}.ss-aug-row-label{font-size:8px;font-weight:400;color:#555;font-family:monospace;text-align:right;padding:0 4px 0 0;white-space:nowrap}.ss-aug-row-label.ss-aug-row-output{color:#4a7aaa}.ss-aug-corner{padding:0;min-width:18px}.ss-aug-qlabel{font-size:12px;font-style:italic;font-weight:700;text-align:center;padding:2px 4px;letter-spacing:.02em}.ss-aug-qlabel-A,.ss-aug-qlabel-C{color:var(--text-primary, #ccc)}.ss-aug-qlabel-B,.ss-aug-qlabel-D{color:#4a7aaa}.ss-aug-grid-wrap{display:flex;gap:4px;align-items:flex-start}.ss-aug-scroll{overflow:auto;max-height:200px;flex:1}.ss-aug-table{border-collapse:collapse}.ss-aug-table td{padding:1px}.ss-aug-table input[type=text]{width:46px;padding:3px 4px;background:var(--bg-primary, #0d0d0d);border:1px solid var(--border-color, #2a2a2a);border-radius:2px;color:var(--text-primary, #eee);font-size:11px;font-family:monospace;text-align:right}.ss-aug-table input[type=text]:focus{outline:none;border-color:var(--accent-color, #4a9eff);background:var(--bg-secondary, #141414)}.ss-aug-table input.ss-cell-invalid{border-color:#f87171!important;background:#f8717114!important}.ss-aug-hsep-row td{padding:0;height:5px;border-bottom:1px solid var(--border-color, #333)}.ss-aug-vsep-cell{width:6px;padding:0;border-left:1px solid var(--border-color, #333)}.ss-aug-btns{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.ss-aug-btn-group{display:flex;align-items:center;gap:2px}.ss-aug-btn-label{font-size:8px;color:#555;font-family:monospace;width:10px;text-align:center;font-style:italic}.ss-aug-btn-group button{width:22px;height:20px;padding:0;background:var(--bg-tertiary, #222);border:1px solid var(--border-color, #333);border-radius:3px;color:var(--text-secondary, #aaa);cursor:pointer;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}.ss-aug-btn-group button:hover:not(:disabled){background:var(--bg-hover, #2e2e2e);color:var(--text-primary, #eee)}.ss-aug-btn-group button:disabled{opacity:.25;cursor:not-allowed}.ss-pzplot-wrap{margin-bottom:8px}.ss-pzplot-legend{display:flex;gap:16px;font-size:11px;color:var(--text-secondary, #888);justify-content:center;margin-top:4px}.ss-pzplot-legend span{display:flex;align-items:center;gap:5px}.ss-pzplot-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.ss-pzplot-zero{border:2px solid #4ade80}.ss-pzplot-x{color:#f87171;font-weight:700;font-size:12px}.command-palette-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);display:flex;justify-content:center;padding-top:15vh;z-index:9999}.command-palette-content{width:100%;max-width:600px;max-height:50vh;background:var(--bg-primary);border-radius:12px;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-color)}.command-palette-header{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-color);gap:12px}.command-palette-search-icon{color:var(--text-muted)}.command-palette-input{flex:1;background:transparent;border:none;font-size:16px;color:var(--text-primary);outline:none;font-family:inherit}.command-palette-esc{font-size:10px;font-weight:600;padding:2px 6px;background:var(--bg-tertiary);border-radius:4px;color:var(--text-muted)}.command-palette-list{flex:1;overflow-y:auto;padding:8px}.command-palette-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .1s ease}.command-palette-item.selected{background:var(--accent-bg)}.command-palette-item-info{display:flex;flex-direction:column}.command-palette-item-category{font-size:10px;text-transform:uppercase;color:var(--text-muted);font-weight:600;letter-spacing:.05em}.command-palette-item-label{font-size:14px;color:var(--text-primary);font-weight:500}.command-palette-item-shortcut{font-size:11px;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 6px;border-radius:4px}.command-palette-item.selected .command-palette-item-label{color:var(--accent-primary)}.command-palette-no-results{padding:32px;text-align:center;color:var(--text-muted);font-size:14px}.command-palette-footer{padding:10px 16px;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.command-palette-hint{display:flex;gap:16px;font-size:11px;color:var(--text-muted)}.command-palette-hint kbd{background:var(--bg-tertiary);border-radius:3px;padding:1px 4px;margin:0 2px;font-family:inherit}.minimap{position:absolute;top:70px;right:12px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-lg);z-index:100;overflow:hidden;cursor:pointer;opacity:.85;transition:all .2s var(--ease-out-expo)}.minimap:hover{opacity:1;transform:translateY(-2px);box-shadow:var(--shadow-xl)}.minimap-blocks{position:absolute;top:0;left:0}.minimap-block{fill:var(--text-muted);fill-opacity:.4;stroke:var(--text-muted);stroke-width:.5}.minimap-viewport{position:absolute;border:2px solid var(--accent-primary);background:var(--accent-bg);opacity:.2;pointer-events:none;border-radius:2px}.quick-add-overlay{position:fixed;inset:0;z-index:2000}.quick-add-menu{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow-xl);width:280px;max-height:400px;display:flex;flex-direction:column;overflow:hidden;animation:quick-add-appear .3s var(--ease-out-expo)}@keyframes quick-add-appear{0%{opacity:0;transform:translate(-50%,10px) scale(.95)}to{opacity:1;transform:translate(-50%) scale(1)}}.quick-add-input{width:100%;padding:14px 16px;border:none;border-bottom:1px solid var(--border-color);background:transparent;color:var(--text-primary);outline:none;font-size:14px}.quick-add-list{overflow-y:auto;padding:6px}.quick-add-item{padding:10px 14px;display:flex;align-items:center;gap:12px;cursor:pointer;border-radius:8px;transition:background .2s ease}.quick-add-item.selected,.quick-add-item:hover{background:var(--accent-bg)}.quick-add-item-icon{font-size:18px}.quick-add-item-label{flex:1;font-size:14px;font-weight:500;color:var(--text-primary)}.quick-add-item-category{font-size:10px;opacity:.6;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.breadcrumb{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:200;display:flex;align-items:center;gap:2px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:20px;padding:5px 12px;box-shadow:var(--shadow-lg);font-size:12px;font-weight:500;white-space:nowrap}.breadcrumb-item,.breadcrumb-back{background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:10px;color:var(--text-secondary);font-size:12px;font-weight:500;transition:background .15s,color .15s}.breadcrumb-item:hover:not(:disabled),.breadcrumb-back:hover{background:var(--accent-primary);color:#fff}.breadcrumb-item:disabled{cursor:default;color:var(--text-primary)}.breadcrumb-item.breadcrumb-current{color:var(--text-primary);font-weight:600}.breadcrumb-separator{color:var(--text-muted, var(--text-secondary));padding:0 1px;-webkit-user-select:none;user-select:none}.breadcrumb-back{margin-left:6px;border-left:1px solid var(--glass-border);padding-left:10px;color:var(--accent-primary)}.breadcrumb-back:hover{background:var(--accent-primary);color:#fff}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;animation:modalFadeIn .15s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:modalSlideIn .2s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border, #e0e0e0);background:var(--bg-secondary, #f5f5f5)}.modal-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary, #1a1a2e)}.modal-close-btn{background:none;border:none;font-size:24px;line-height:1;color:var(--text-secondary, #666);cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s}.modal-close-btn:hover{background:var(--bg-tertiary, #e5e5e5);color:var(--text-primary, #1a1a2e)}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-input{width:100%;padding:12px 14px;border:2px solid var(--border, #e0e0e0);border-radius:8px;font-size:14px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #1a1a2e);outline:none;box-sizing:border-box;transition:border-color .15s}.modal-input:focus{border-color:var(--accent, #3b82f6)}.modal-input::placeholder{color:var(--text-muted, #999)}.modal-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border, #e0e0e0)}.modal-btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.modal-btn-primary{background:var(--accent, #3b82f6);color:#fff}.modal-btn-primary:hover:not(:disabled){background:var(--accent-hover, #2563eb)}.modal-btn-primary:disabled{background:var(--text-muted, #999);cursor:not-allowed;opacity:.6}.modal-btn-secondary{background:var(--bg-tertiary, #e5e5e5);color:var(--text-primary, #1a1a2e)}.modal-btn-secondary:hover{background:var(--border, #d0d0d0)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.performance-overlay{position:absolute;top:70px;left:50%;transform:translate(-50%);z-index:1000;pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1);opacity:0}.performance-overlay.running,.performance-overlay.paused,.performance-overlay.completed{opacity:1;top:80px}.perf-glass-panel{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:16px;padding:12px 20px;box-shadow:0 8px 32px #1f268726;display:flex;flex-direction:column;gap:10px;min-width:280px}.perf-header{display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(0,0,0,.05);padding-bottom:6px}.perf-status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.perf-status-dot.running{background:var(--success);box-shadow:0 0 8px var(--success);animation:pulse 2s infinite}.perf-status-dot.paused{background:var(--warning)}.perf-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary)}.perf-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.perf-item{display:flex;flex-direction:column}.perf-label{font-size:10px;color:var(--text-muted);font-weight:500}.perf-value{font-size:14px;font-family:var(--font-mono);font-weight:600;color:var(--text-primary)}.perf-value small{font-size:9px;font-weight:500;opacity:.7}.perf-heartbeat-bar{height:2px;background:#0000000d;border-radius:1px;overflow:hidden;margin-top:4px}.perf-heartbeat-inner{height:100%;width:30%;background:var(--accent-primary);border-radius:1px;animation:heartbeatMove 1.5s infinite ease-in-out}@keyframes heartbeatMove{0%{transform:translate(-100%)}to{transform:translate(400%)}}@keyframes pulse{0%{transform:scale(.95);opacity:.8}50%{transform:scale(1.05);opacity:1}to{transform:scale(.95);opacity:.8}}[data-theme=dark] .perf-glass-panel{background:#0f172ab3;border:1px solid rgba(255,255,255,.1)}[data-theme=dark] .perf-header{border-bottom:1px solid rgba(255,255,255,.1)}.intro-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#13151f;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:20px 20px;z-index:99999;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#f97316}.intro-canvas{position:relative;width:800px;height:600px}.intro-logo-block{position:absolute;width:100px;height:50px;border:2px solid #f97316;display:flex;align-items:center;justify-content:center;font-family:Space Mono,monospace;font-weight:700;font-size:24px;letter-spacing:.1em;background-color:transparent}.intro-logo-werk{background-color:#f97316;color:#13151f}.intro-tagline{position:absolute;bottom:40px;left:50%;transform:translate(-50%);font-family:IBM Plex Mono,monospace;font-weight:300;font-size:11px;letter-spacing:.15em;color:#4a5070;white-space:nowrap}.intro-skip{position:absolute;top:50%;right:20px;transform:translateY(-50%);background:#f973161a;border:1px solid rgba(249,115,22,.3);border-radius:4px;color:#f97316;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.1em;cursor:pointer;padding:6px 12px;transition:all .2s;z-index:100000}.intro-skip:hover{background:#f9731633;color:#fff}.play-button{position:absolute;width:32px;height:32px;background:#f97316;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#13151f;cursor:pointer;z-index:30;box-shadow:0 0 15px #f9731666}@media(max-width:768px){.intro-canvas{width:100%;height:100%;transform:scale(.7)}}.intro-sidebar-hint{position:absolute;left:0;top:0;width:200px;height:100%;background:#ffffff0d;border-right:1px solid rgba(249,115,22,.2);display:flex;flex-direction:column;padding:20px;pointer-events:none}.intro-sidebar-item{width:100%;height:30px;background:#ffffff14;border-radius:4px;margin-bottom:10px}.intro-sidebar-highlight{pointer-events:none;z-index:9999}.intro-palette-item-highlight{pointer-events:none;z-index:9999;box-shadow:0 0 20px #f9731666}.intro-cursor{pointer-events:none;width:24px;height:24px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.intro-tagline-container{pointer-events:none;-webkit-user-select:none;user-select:none}.intro-phantom-wire{stroke-dasharray:5,5;animation:intro-wire-dash .8s linear infinite;filter:drop-shadow(0 0 5px rgba(249,115,22,.4))}@keyframes intro-wire-dash{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}body.intro-active .canvas-empty-state{visibility:hidden;pointer-events:none}.intro-phantom-logo-block{animation:intro-logo-pulse 2s ease-in-out infinite}@keyframes intro-logo-pulse{0%,to{box-shadow:0 0 20px #f9731640,0 0 6px #f9731626}50%{box-shadow:0 0 55px #f9731699,0 0 20px #f9731666}}
