:root{--background-color: var(--bg-app);--primary-color: var(--bg-sidebar);--secondary-color: var(--border-color);--surface-color: var(--surface-color);--text-color: var(--text-primary);--accent-color: var(--accent-primary);--accent-hover-color: var(--accent-primary-hover);--error-color: var(--accent-stop);--success-color: var(--accent-run);--warning-color: var(--accent-warning);--info-color: var(--accent-info);--node-header-color: var(--chip-header);--font-family: var(--font-ui);--font-family-mono: var(--font-mono);--vhdl-keyword: #c678dd;--vhdl-type: #56b6c2;--vhdl-comment: #7f848e;--vhdl-string: #98c379;--vhdl-number: #d19a66;--vhdl-operator: #abb2bf}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-family);background-color:var(--background-color);color:var(--text-color);line-height:1.6;overflow:hidden;height:100vh;width:100vw}.main-layout{display:flex;height:100%}#library-panel{width:280px;background-color:var(--bg-1);padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;border-right:1px solid var(--line);z-index:10}#library-panel h2{text-align:center;color:var(--amber);border-bottom:1px solid var(--line);padding-bottom:1rem;font-size:var(--font-size-md)}.button-primary{background-color:var(--accent-primary);color:var(--text-inverse);border:none;border-radius:var(--border-radius);padding:.75rem 1.5rem;font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.button-primary:hover{background-color:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.button-secondary{background-color:var(--surface-color);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:.6rem 1.2rem;font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.button-secondary:hover{background-color:var(--surface-hover);border-color:var(--accent-primary)}#component-list{list-style:none;display:flex;flex-direction:column;gap:1rem;overflow-y:auto}.library-component{background-color:var(--surface-color);border-radius:var(--border-radius);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:var(--font-size-sm);transition:all var(--transition-fast)}.entity-row{display:flex;align-items:center;padding:.6rem .75rem;font-weight:500;cursor:pointer;transition:background-color .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.entity-row:active{cursor:grabbing}.library-component:hover .entity-row{background-color:var(--surface-hover)}.hierarchy-icon-container{width:25px;height:16px;flex-shrink:0;position:relative;display:flex;align-items:center}.library-component.has-children .hierarchy-icon-container:before,.library-component.is-leaf .hierarchy-icon-container:before{content:"";width:10px;height:10px;border-radius:50%;background-color:var(--text-tertiary);position:absolute;left:12px;top:50%;transform:translateY(-50%)}.toggle-icon{font-size:1.2rem;line-height:1;color:var(--text-primary);transition:transform var(--transition-fast);position:absolute;left:0;top:50%;transform:translateY(-50%) rotate(0);-webkit-user-select:none;-moz-user-select:none;user-select:none}.library-component.expanded .toggle-icon{transform:translateY(-50%) rotate(90deg)}.entity-name{flex-grow:1;margin-right:8px}.entity-actions{display:flex;align-items:center}.nested-components{list-style:none;padding-left:25px;border-top:1px solid var(--border-light);background-color:var(--bg-secondary);display:none;padding:.5rem 0}.library-component.expanded .nested-components{display:block}.nested-component-item{padding:.3rem 1rem .3rem 1.5rem;font-size:var(--font-size-sm);color:var(--text-primary);position:relative}.nested-component-item:before{content:"";position:absolute;left:10px;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:50%;background-color:var(--text-tertiary)}.instance-type{color:var(--text-secondary)}.edit-component-btn,.delete-entity-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.2rem;padding:.2rem .5rem;border-radius:var(--border-radius-sm);line-height:1;transition:all var(--transition-fast);flex-shrink:0}.edit-component-btn:hover,.delete-entity-btn:hover{background-color:var(--surface-hover);color:var(--text-primary)}.delete-entity-btn{font-size:1rem}#simulation-area{flex-grow:1;display:flex;flex-direction:column;position:relative}#workspace-tabs{display:flex;background-color:var(--bg-1);flex-shrink:0;border-bottom:1px solid var(--line);align-items:stretch}.workspace-tab{background-color:transparent;color:var(--text-mid);border:none;border-right:1px solid var(--line);padding:0 16px;height:36px;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);font-weight:500;font-family:var(--font-ui);white-space:nowrap}.workspace-tab:hover{background-color:var(--bg-2);color:var(--text-hi)}.workspace-tab.active{background-color:var(--bg-0);color:var(--amber);font-weight:600;border-bottom:2px solid var(--amber)}.close-tab-btn{background:none;border:none;color:currentColor;font-size:1.2rem;line-height:1;padding:2px 4px;border-radius:50%;cursor:pointer;opacity:.7;transition:all var(--transition-fast)}.close-tab-btn:hover{background-color:#0003;opacity:1;transform:scale(1.1)}#workspace-content{flex-grow:1;position:relative;background-color:var(--bg-workspace);overflow:hidden}.workspace-panel{width:100%;height:100%;display:none;flex-direction:column;overflow:hidden}#canvas-toolbar{position:absolute;top:10px;left:50%;transform:translate(-50%);background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:6px;display:flex;gap:4px;box-shadow:var(--shadow-lg);z-index:20}#canvas-toolbar button{background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--border-radius);width:36px;height:36px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}#canvas-toolbar button:hover{background-color:var(--surface-hover);border-color:var(--border-color);color:var(--text-primary);transform:scale(1.05)}#canvas-toolbar button:disabled{opacity:.3;cursor:not-allowed;background-color:transparent;color:var(--text-disabled)}#canvas-viewport-panel{cursor:grab;background-color:var(--bg-workspace);background-image:var(--grid-display)!important;background-size:var(--grid-size) var(--grid-size);background-position:-1px -1px}#canvas-viewport-panel.panning{cursor:grabbing}#viewport{width:100%;height:100%;position:relative;transform-origin:0 0;-webkit-font-smoothing:antialiased;background:transparent;background-image:none!important}#simulation-canvas{position:absolute;top:0;left:0;width:100%;height:100%;background-image:none!important}#connections-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:visible}.connection-path{stroke:var(--wire-color);stroke-width:2px;fill:none;stroke-linecap:round;transition:all var(--transition-fast);pointer-events:stroke;cursor:pointer}.connection-path.active{stroke:var(--accent-primary);stroke-width:3px}.connection-path:hover{stroke:var(--accent-primary-hover);stroke-width:3px}.connection-path.selected{stroke:var(--accent-stop)!important;stroke-width:4px;filter:drop-shadow(0 0 4px var(--accent-stop));z-index:1000}.connection-path.mismatch{stroke:var(--error-color)}.connection-path.mismatch:hover{stroke:var(--accent-stop-hover)}.connection-path.mismatch.selected{stroke:var(--accent-stop)!important;stroke-width:5px;filter:drop-shadow(0 0 6px var(--accent-stop))}.canvas-welcome{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--text-tertiary);-webkit-user-select:none;-moz-user-select:none;user-select:none}.canvas-welcome h2{font-size:2rem}.canvas-editor-view .canvas-component{position:absolute;background-color:var(--chip-fill);border:2px solid var(--chip-stroke);border-radius:var(--border-radius);box-shadow:var(--shadow-md);z-index:2;cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:220px;transition:all var(--transition-fast)}.canvas-editor-view .canvas-component:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.canvas-editor-view .component-header{background-color:var(--chip-header);padding:.5rem 1rem;font-weight:700;font-size:var(--font-size-sm);color:var(--text-primary);border-bottom:1px solid var(--border-color);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);display:flex;justify-content:space-between;align-items:center;gap:8px}:root:not([data-theme=dark]) .canvas-editor-view .component-header,[data-theme=light] .canvas-editor-view .component-header,body:not([data-theme=dark]) .canvas-editor-view .component-header{background-color:#c1bebe!important}.component-header-text{flex-grow:1;color:#000!important}.canvas-editor-view .component-header-actions{display:flex;align-items:center;gap:4px}.canvas-editor-view .component-body-ports{display:flex;justify-content:space-between;padding:.5rem 0}.component-ports-left,.component-ports-right{display:flex;flex-direction:column;gap:12px;flex-basis:50%}.canvas-editor-view .component-port{display:flex;align-items:center;gap:8px;font-family:var(--font-family-mono);font-size:.9rem;white-space:nowrap;position:relative;padding:.3rem 1rem}.port-name{line-height:1}.component-ports-left .component-port{justify-content:flex-start}.component-ports-right .component-port{justify-content:flex-end}.canvas-editor-view .port-dot{width:14px;height:14px;background-color:var(--surface-color);border:2px solid var(--text-color);border-radius:50%;cursor:crosshair;transition:background-color .2s,border-color .2s;flex-shrink:0;position:absolute;top:50%;pointer-events:auto}.component-ports-left .port-dot{left:0;transform:translate(-50%,-50%)}.component-ports-right .port-dot{right:0;transform:translate(50%,-50%)}.port-dot.active,.port-dot:hover{background-color:var(--accent-color);border-color:var(--accent-color)}.component-port-vector-header{font-weight:500;cursor:pointer;background-color:#0000001a;transition:background-color .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:.5rem 1rem}.component-port-vector-header:hover{background-color:var(--secondary-color)}.vector-toggle-icon{display:inline-block;width:1em;font-size:.8em;transition:transform .2s ease-in-out}[data-theme=dark] .vector-toggle-icon{color:#fff!important}[data-theme=light] .vector-toggle-icon{color:#000!important}.bus-value-display{width:auto;min-width:30px;padding:0 4px;height:16px;background-color:var(--secondary-color);color:var(--text-color);border:1px solid var(--text-color);border-radius:4px;font-size:.75rem;line-height:14px;text-align:center;font-weight:700;flex-shrink:0;font-family:var(--font-family-mono)}.bus-value-display.input-bus{cursor:pointer;transition:background-color .2s,border-color .2s;pointer-events:auto}.bus-value-display.input-bus:hover{background-color:var(--secondary-color);border-color:var(--accent-color)}.canvas-editor-view .bus-port-dot{width:12px;height:20px;border-radius:2px;border-width:2px;pointer-events:auto;cursor:crosshair}.input-toggle{width:16px;height:16px;background-color:var(--secondary-color);color:var(--text-color);border:1px solid var(--text-color);border-radius:4px;cursor:pointer;font-size:.75rem;line-height:14px;text-align:center;font-weight:700;transition:background-color .2s;flex-shrink:0;pointer-events:auto}.input-toggle.active{background-color:var(--accent-color)}.input-toggle.active{background-color:var(--secondary-color);color:var(--accent-color);border-color:var(--accent-color);border-width:2px;line-height:12px;font-size:11px}.output-value-display{width:16px;height:16px;background-color:var(--secondary-color);color:var(--text-color);border:1px solid var(--text-color);border-radius:4px;font-size:.75rem;line-height:14px;text-align:center;font-weight:700;flex-shrink:0}.output-value-display.active{background-color:var(--accent-color)}.output-value-display.active{background-color:var(--secondary-color);color:var(--accent-color);border-color:var(--accent-color);border-width:2px;line-height:12px;font-size:11px}.input-toggle:hover,.input-toggle.active:hover,.output-value-display:hover,.output-value-display.active:hover{background-color:var(--secondary-color);box-shadow:0 0 0 2px #22c55e33}#timing-diagram-panel{display:flex;flex-direction:column;height:100%}#timing-diagram-signals{width:250px;flex-shrink:0;background-color:var(--primary-color);border-right:1px solid var(--secondary-color);overflow-y:auto}.timing-diagram-group-header{font-family:var(--font-family-mono);font-weight:700;font-size:.95rem;padding:0 1rem;height:40px;line-height:40px;border-bottom:1px solid var(--border-light);background-color:var(--surface-color);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;align-items:center;gap:8px;transition:all var(--transition-fast)}.timing-diagram-group-header:hover{background-color:var(--surface-hover)}.timing-diagram-group-header .toggle-arrow{transition:transform var(--transition-fast)}.timing-diagram-group-header.expanded .toggle-arrow{transform:rotate(90deg)}.timing-diagram-signal-item{font-family:var(--font-family-mono);font-size:.9rem;height:40px;line-height:40px;border-bottom:1px solid var(--border-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:0 1rem 0 2rem}#timing-diagram-wave-container{flex-grow:1;overflow-x:auto;overflow-y:auto;position:relative}#timing-diagram-canvas{position:absolute;top:0;left:0}#schematic-viewer-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--modal-overlay);z-index:50;cursor:pointer}#schematic-viewer-window{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;height:90%;max-width:1400px;max-height:900px;background-color:var(--modal-bg);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);z-index:51;display:flex;flex-direction:column}.schematic-viewer-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.schematic-viewer-header h3{margin:0;font-size:1.2rem;color:var(--accent-primary)}.close-viewer-btn{background:none;border:none;color:var(--text-secondary);font-size:2rem;line-height:1;cursor:pointer;padding:0 .5rem;opacity:.7;transition:all var(--transition-fast)}.close-viewer-btn:hover{opacity:1;color:var(--accent-stop);transform:scale(1.1)}.schematic-viewer-content{flex-grow:1;overflow:auto;padding:1rem}.schematic-viewer-content svg{stroke:var(--text-primary);fill:var(--text-primary);font-family:var(--font-family-mono);font-size:12px;overflow:visible;shape-rendering:geometricPrecision}.schematic-viewer-content svg g:active{cursor:grabbing}.schematic-toggle-btn,.delete-instance-btn{background:var(--surface-color);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);padding:0;pointer-events:auto}.schematic-toggle-btn:hover,.delete-instance-btn:hover{background-color:var(--surface-hover);border-color:var(--accent-primary);color:var(--text-primary);transform:scale(1.1)}.delete-instance-btn{font-size:1.5rem;line-height:1}.schematic-wire{stroke:var(--wire-color);stroke-width:2px;fill:none;transition:all var(--transition-fast);stroke-linecap:round;stroke-linejoin:round;shape-rendering:geometricPrecision}.schematic-wire.active{stroke:var(--accent-primary)}.wire-label textPath{fill:var(--text-primary);font-size:9px;text-anchor:middle;dominant-baseline:middle}.wire-label textPath:hover{font-weight:700}.gate-body{stroke-width:2px;stroke:var(--text-primary);fill:var(--chip-fill)}.gate-text{font-size:10px;font-weight:700;fill:var(--text-primary);text-anchor:middle;dominant-baseline:middle}.schematic-io-port{cursor:move}.schematic-io-port .gate-body{fill:var(--node-header-color);stroke:var(--border-color);stroke-width:1px;rx:var(--border-radius);transition:all var(--transition-fast)}.schematic-io-port:hover .gate-body{stroke:var(--accent-primary)}.schematic-io-port .gate-text{font-size:11px}.schematic-instance-box{stroke:var(--accent-primary);stroke-width:1.5px;fill:var(--chip-fill);rx:var(--border-radius)}.schematic-instance-box.missing{stroke:var(--error-color);stroke-dasharray:4 4;fill:#ff4d4d1a}.missing-text,.missing-name{text-anchor:middle;dominant-baseline:middle;fill:var(--error-color)}.missing-text{font-size:11px;font-weight:700}.missing-name{font-size:10px;font-family:var(--font-family-mono)}.schematic-instance-header{fill:var(--node-header-color);stroke:none;border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);cursor:move}.schematic-instance-header:active{cursor:grabbing}.schematic-instance-label,.schematic-instance-name{text-anchor:middle;dominant-baseline:middle;fill:var(--text-primary);pointer-events:none}.schematic-instance-label{font-size:11px;font-weight:700}.schematic-instance-name{font-size:10px;font-style:italic;opacity:.8}.schematic-instance-port-text{font-size:10px;fill:var(--text-primary);dominant-baseline:middle;pointer-events:none}.schematic-instance-port-dot{fill:var(--pin-color);stroke:none}.editor-panel{padding:1.5rem;background-color:var(--surface-color);overflow-y:auto}.editor-section{display:flex;flex-direction:column;gap:1rem;height:100%}label{font-size:1.1rem;font-weight:500}#vhdl-editor-container{display:flex;flex-direction:column;flex-grow:1;min-height:0}#vhdl-editor-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}#vhdl-editor-toolbar button{background-color:var(--surface-color);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:.3rem .6rem;font-family:var(--font-ui);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}#vhdl-editor-toolbar button:hover{background-color:var(--surface-hover);border-color:var(--accent-primary);transform:translateY(-1px)}.editor-wrapper{position:relative;flex-grow:1;min-height:250px;background-color:var(--bg-input);border-radius:var(--border-radius)}.vhdl-input,.vhdl-highlighting-layer{margin:0;padding:1rem;border:1px solid var(--border-color);border-radius:var(--border-radius);font-family:var(--font-family-mono);font-size:1rem;line-height:1.5;-moz-tab-size:2;-o-tab-size:2;tab-size:2;white-space:pre;overflow-wrap:normal;position:absolute;top:0;left:0;width:100%;height:100%}.vhdl-input{z-index:1;background-color:transparent;color:transparent;caret-color:var(--text-primary);resize:none}.vhdl-input:focus{outline:none;border-color:var(--border-highlight);box-shadow:0 0 0 3px #3b82f61a}.vhdl-input::-moz-selection{background:#64647866}.vhdl-input::selection{background:#64647866}.vhdl-highlighting-layer{z-index:0;color:var(--text-primary);pointer-events:none;overflow:hidden}.vhdl-keyword{color:var(--vhdl-keyword)}.vhdl-comment{color:var(--vhdl-comment)}.vhdl-keyword,.vhdl-type,.vhdl-comment,.vhdl-string,.vhdl-number,.vhdl-operator{font-weight:400;font-style:normal}.editor-footer{display:flex;justify-content:flex-end;align-items:center;gap:1rem;margin-top:1rem}.analyze-button{display:flex;align-items:center;justify-content:center}.error-message{color:var(--error-color);background-color:#ff4d4d1a;border:1px solid var(--error-color);border-radius:var(--border-radius);padding:.5rem 1rem;display:none;flex-grow:1;text-align:left}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--modal-overlay);display:none;justify-content:center;align-items:center;z-index:100}.customization-modal-content{background-color:var(--modal-bg);color:var(--text-primary);padding:0;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:800px;position:relative;display:flex;flex-direction:column;max-height:90vh;border:1px solid var(--border-color)}.customization-modal-header{padding:.75rem 1.5rem;border-bottom:1px solid var(--secondary-color);background-color:var(--surface-color);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.customization-modal-header h3{margin:0;font-size:1.1rem;font-weight:500;color:var(--accent-primary)}.customization-modal-header .close-modal-btn{color:var(--text-secondary);opacity:.7;font-size:1.25rem;top:.5rem;right:.5rem;transition:all var(--transition-fast)}.customization-modal-header .close-modal-btn:hover{opacity:1}.customization-modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto;flex-grow:1}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;font-weight:700;color:var(--text-primary);opacity:.8}.form-group input,.form-group select{padding:.5rem;border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-input);font-family:var(--font-ui);font-size:var(--font-size-base);color:var(--text-primary)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--border-highlight);box-shadow:0 0 0 3px #3b82f61a}.ports-fieldset{border:1px solid var(--secondary-color);border-radius:var(--border-radius);padding:1rem;background-color:var(--surface-color)}.ports-fieldset legend{padding:0 .5rem;font-weight:700;color:var(--text-primary)}.ports-grid-header{display:grid;grid-template-columns:2fr 1.5fr 1.5fr 2fr 1fr;gap:8px;padding:0 8px 8px;border-bottom:1px solid var(--secondary-color);font-weight:700;font-size:.8rem;text-transform:uppercase;color:var(--text-secondary);opacity:.7}.port-range-header{text-align:center}#ports-list-container{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.port-row{display:grid;grid-template-columns:2fr 1.5fr 1.5fr 2fr 1fr;gap:8px;align-items:center}.port-row input,.port-row select{width:100%;padding:.4rem;font-size:.9rem}.port-row .port-range-container{display:flex;align-items:center;justify-content:center;gap:4px;visibility:hidden}.port-row .port-range-container.visible{visibility:visible}.port-row .port-range-container input{width:40px;text-align:center}.delete-port-btn{background:transparent;color:var(--error-color);border:1px solid var(--secondary-color);border-radius:50%;width:28px;height:28px;font-size:1.5rem;line-height:1;font-weight:300;cursor:pointer;transition:all var(--transition-fast);justify-self:center;display:flex;align-items:center;justify-content:center}.delete-port-btn:hover{background:var(--error-color);color:var(--text-inverse);border-color:var(--error-color)}#add-port-btn{margin-top:1rem;align-self:flex-start}.customization-modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--secondary-color);display:flex;justify-content:flex-end;gap:1rem;background-color:var(--surface-color);border-bottom-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);flex-shrink:0}.radio-group{display:flex;gap:1rem;background-color:var(--surface-color);padding:.5rem;border-radius:6px;border:1px solid var(--secondary-color)}.radio-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer}#ps-range-group .port-range-container{justify-content:flex-start}#ps-range-group .port-range-container input{width:60px}.form-divider{border:none;border-top:1px solid var(--secondary-color);margin:1rem 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.5rem}.code-preview-area{background-color:var(--background-color);border:1px solid var(--secondary-color);border-radius:var(--border-radius);padding:1rem;font-family:var(--font-family-mono);font-size:.9rem;line-height:1.5;white-space:pre;min-height:150px;max-height:250px;overflow-y:auto;color:var(--text-primary)}.code-preview-area .vhdl-keyword{color:var(--vhdl-keyword)}.code-preview-area .vhdl-comment{color:var(--vhdl-comment)}.code-preview-area .vhdl-string{color:var(--vhdl-string)}.code-preview-area .vhdl-number{color:var(--vhdl-number)}.we-case-row{display:grid;grid-template-columns:2fr auto 2fr auto;gap:.75rem;align-items:center;margin-bottom:.5rem}.we-case-row label{font-size:.9rem;font-weight:400;opacity:.8;justify-self:center;white-space:nowrap}.we-case-row input,.we-case-row select{padding:.4rem;font-size:.9rem}.we-case-row .delete-port-btn{width:28px;height:28px;font-size:1.5rem}#bus-input-modal p{margin-bottom:1rem;font-size:.9rem;opacity:.8}#bus-input-modal .error-message{margin-top:.5rem;flex-grow:0}.notification-container{position:fixed;top:80px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.notification{background-color:var(--surface-color);border-left:4px solid var(--accent-color);border-radius:var(--border-radius);padding:1rem 1.5rem;box-shadow:0 4px 12px #0000004d;display:flex;align-items:center;gap:12px;min-width:300px;max-width:500px;pointer-events:auto;opacity:0;transform:translate(400px);transition:all .3s cubic-bezier(.68,-.55,.265,1.55)}.notification.show{opacity:1;transform:translate(0)}.notification.hide{opacity:0;transform:translate(400px)}.notification-success{border-left-color:var(--success-color)}.notification-success .notification-icon{color:var(--success-color)}.notification-error{border-left-color:var(--error-color)}.notification-error .notification-icon{color:var(--error-color)}.notification-warning{border-left-color:var(--warning-color)}.notification-warning .notification-icon{color:var(--warning-color)}.notification-info{border-left-color:var(--info-color)}.notification-info .notification-icon{color:var(--info-color)}.notification-icon{font-size:1.5rem;font-weight:700;flex-shrink:0}.notification-message{flex-grow:1;line-height:1.4;word-wrap:break-word}.notification-actions{display:flex;gap:8px;flex-shrink:0}.notification-action{background:var(--accent-color);border:none;color:#fff;padding:.4rem .8rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s;font-family:var(--font-family)}.notification-action:hover{background:var(--accent-hover-color)}.notification-close{background:none;border:none;color:var(--text-color);font-size:1.5rem;cursor:pointer;padding:0;line-height:1;opacity:.7;transition:opacity .2s;flex-shrink:0}.search-container{position:relative;margin:1rem 0}.search-input{width:100%;padding:.6rem .8rem;background-color:var(--surface-color);border:1px solid var(--secondary-color);border-radius:var(--border-radius);color:var(--text-color);font-size:.9rem;font-family:var(--font-family);transition:border-color .2s,box-shadow .2s}.search-input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px #00aaff1a}.search-results{position:absolute;top:calc(100% + 5px);left:0;right:0;background-color:var(--surface-color);border:1px solid var(--secondary-color);border-radius:var(--border-radius);max-height:300px;overflow-y:auto;z-index:100;box-shadow:0 4px 12px #0000004d}.search-result-item{padding:.6rem .8rem;cursor:pointer;transition:background-color .2s;border-bottom:1px solid var(--secondary-color)}.search-result-item:last-child{border-bottom:none}.search-result-item:hover,.search-result-item:focus{background-color:var(--secondary-color);outline:none}.search-result-name{font-weight:500;font-family:var(--font-family-mono);color:var(--accent-color);margin-bottom:.2rem}.search-result-meta{font-size:.8rem;color:var(--text-color);opacity:.6;margin-bottom:.2rem}.search-result-matches{font-size:.85rem;color:var(--text-color);opacity:.7}.search-no-results{padding:1rem;text-align:center;color:var(--text-color);opacity:.6}.shortcut-category{margin-bottom:1.5rem}.shortcut-category h4{color:var(--accent-color);margin-bottom:.5rem;border-bottom:1px solid var(--secondary-color);padding-bottom:.3rem}.shortcuts-table{width:100%;border-collapse:collapse}.shortcuts-table th,.shortcuts-table td{padding:.6rem;text-align:left;border-bottom:1px solid var(--secondary-color)}.shortcuts-table th{font-weight:500;color:var(--text-color);background-color:var(--surface-color)}.shortcuts-table tbody tr:hover{background-color:var(--surface-color)}kbd{display:inline-block;padding:.2rem .5rem;background-color:var(--surface-color);border:1px solid var(--secondary-color);border-radius:4px;font-family:var(--font-family-mono);font-size:.85rem;box-shadow:0 2px 4px #0003;white-space:nowrap}.component-port{font-size:.8rem!important;padding:.25rem .4rem!important;gap:.3rem!important}.port-name{font-size:.75rem!important;white-space:nowrap!important}.component-port-vector-header{display:flex!important;align-items:center!important;gap:.35rem!important;padding:.25rem .4rem!important;font-size:.8rem!important}.vector-toggle-icon{flex-shrink:0!important;cursor:pointer!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;font-size:.7rem!important}.bus-value-display{font-family:var(--font-family-mono)!important;font-size:.7rem!important;padding:.15rem .35rem!important;min-width:45px!important;text-align:center!important}.port-dot{flex-shrink:0!important;width:10px!important;height:10px!important}.input-toggle,.output-value-display{font-size:.7rem!important;padding:.15rem .35rem!important;min-width:25px!important}.canvas-component{min-width:200px!important;width:auto!important;max-width:350px!important}.component-body-ports{min-width:100%;width:auto}.component-port{min-width:100%;width:auto;display:flex;align-items:center;gap:.4rem;white-space:nowrap;padding:.3rem .5rem}.component-port-vector-header{display:flex!important;align-items:center!important;gap:.4rem!important;padding:.3rem .5rem!important;white-space:nowrap!important}.vector-toggle-icon{font-size:.8rem;line-height:1;cursor:pointer;flex-shrink:0}.port-name{flex:1 1 auto;font-size:.85rem;overflow:hidden;text-overflow:ellipsis}.bus-value-display{font-size:.75rem;padding:.2rem .4rem;min-width:40px;text-align:center;border-radius:3px;background-color:var(--secondary-color);flex-shrink:0}.port-dot{flex-shrink:0;margin:0!important}.component-ports-left,.component-ports-right{display:flex;flex-direction:column;gap:.2rem;min-width:0;flex:1}.bus-value-display{font-size:.75rem!important;padding:.35rem .5rem!important;min-width:45px!important;height:24px!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important}.component-port-vector-header{min-height:28px!important;align-items:center!important}.input-toggle,.output-value-display{min-height:22px!important;padding:.3rem .4rem!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important}.component-port{position:relative!important}.canvas-component{min-width:180px!important;width:auto!important;max-width:none!important}.port-name{flex:1 1 auto!important;font-size:.85rem!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;min-width:-moz-fit-content!important;min-width:fit-content!important}.component-body-ports{min-width:100%!important;width:auto!important}.component-ports-left,.component-ports-right{min-width:0!important;flex:1 1 auto!important}.component-port-vector-header{width:100%!important;min-width:-moz-fit-content!important;min-width:fit-content!important}.component-port{min-width:100%!important;width:100%!important;box-sizing:border-box!important}:root{--grid-display: linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(to right, var(--grid-color) 1px, transparent 1px)}:root.grid-hidden{--grid-display: none}#toggle-grid-btn.active{opacity:1;background-color:var(--accent-primary);color:var(--text-inverse)}#toggle-grid-btn:not(.active){opacity:.6;background-color:transparent}.hex-keypad{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:var(--surface-color);border-radius:8px;margin:1rem 0}.hex-keypad-display{background:#1a1a1a;color:#0f0;font-family:Courier New,monospace;font-size:2rem;font-weight:700;padding:1rem;text-align:right;border-radius:6px;border:2px solid var(--primary-color);min-height:60px;display:flex;align-items:center;justify-content:flex-end;box-shadow:inset 0 2px 8px #00000080;letter-spacing:3px}.hex-keypad-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.hex-key{padding:1.2rem;font-size:1.4rem;font-weight:700;border:2px solid var(--border-color);background:linear-gradient(135deg,var(--surface-color) 0%,var(--secondary-color) 100%);color:var(--text-color);border-radius:6px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0003;min-height:55px;display:flex;align-items:center;justify-content:center}.hex-key:hover{background:linear-gradient(135deg,var(--primary-color) 0%,var(--accent-color) 100%);transform:translateY(-2px);box-shadow:0 4px 8px #0000004d;border-color:var(--primary-color)}.hex-key:active{transform:translateY(0);box-shadow:0 1px 2px #0000004d}.hex-key-action{background:linear-gradient(135deg,#ff6b6b,#c92a2a);color:#fff;font-size:.9rem}.hex-key-action:hover{background:linear-gradient(135deg,#ff8787,#e03131)}#bus-hex-input[style*="display: none"]~.hex-keypad{display:flex}.hex-keypad-compact{display:flex;flex-direction:column;padding:.5rem;margin:.5rem 0}.hex-keypad-grid-compact{display:grid;grid-template-columns:repeat(4,1fr);gap:.3rem}.hex-key-compact{padding:.6rem;font-size:1rem;font-weight:700;border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-color);border-radius:4px;cursor:pointer;transition:all .15s ease;min-height:40px;min-width:40px}.hex-key-compact:hover{background:var(--primary-color);color:#fff;transform:scale(1.05)}.hex-key-compact:active{transform:scale(.95)}.hex-key-compact-action{background:#ff6b6b;color:#fff;font-size:.75rem}.hex-key-compact-action:hover{background:#ff8787}#bus-input-modal .modal-content{max-width:280px}.hex-keypad-compact{display:flex;flex-direction:column;gap:.5rem;padding:1rem;margin:.5rem 0}.hex-key-compact{padding:.7rem;font-size:1.1rem;font-weight:700;border:2px solid var(--border-color);background:linear-gradient(135deg,var(--surface-color) 0%,var(--secondary-color) 100%);color:var(--text-color);border-radius:6px;cursor:pointer;transition:all .15s ease;min-height:45px;min-width:45px}.hex-key-compact:hover{background:linear-gradient(135deg,var(--primary-color) 0%,var(--accent-color) 100%);color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.hex-key-compact:active{transform:translateY(0);box-shadow:0 1px 2px #0003}.hex-action-btn{flex:1;padding:.7rem;font-size:.95rem;font-weight:700;border:2px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .15s ease;min-height:45px}.hex-del-btn{background:linear-gradient(135deg,#ff6b6b,#c92a2a);color:#fff}.hex-del-btn:hover{background:linear-gradient(135deg,#ff8787,#e03131);transform:translateY(-2px);box-shadow:0 4px 8px #ff6b6b66}.hex-ok-btn{background:linear-gradient(135deg,#51cf66,#2f9e44);color:#fff}.hex-ok-btn:hover{background:linear-gradient(135deg,#69db7c,#37b24d);transform:translateY(-2px);box-shadow:0 4px 8px #51cf6666}.hex-cancel-btn{background:linear-gradient(135deg,var(--surface-color) 0%,var(--secondary-color) 100%);color:var(--text-color)}.hex-cancel-btn:hover{background:linear-gradient(135deg,var(--secondary-color) 0%,var(--border-color) 100%);transform:translateY(-2px)}.component-port,.component-port-vector-header{display:flex!important;align-items:center!important;justify-content:flex-start!important;min-height:32px!important}.port-dot,.bus-port-dot{align-self:center!important;margin:0!important}.port-name{align-self:center!important;line-height:1!important;display:flex!important;align-items:center!important}.vector-toggle-icon{align-self:center!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important}.input-toggle,.output-value-display,.bus-value-display{align-self:center!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important}.canvas-component{min-width:180px!important;width:auto!important;max-width:none!important;display:flex;flex-direction:column}.component-body-ports{min-width:100%!important;width:auto!important;display:flex;justify-content:space-between}.component-ports-left,.component-ports-right{display:flex;flex-direction:column;min-width:0!important;flex:1 1 auto}.component-port,.component-port-vector-header{position:relative!important;display:flex!important;align-items:center!important;min-height:28px!important;padding:.2rem .5rem!important;box-sizing:border-box!important}.component-ports-right .component-port,.component-ports-right .component-port-vector-header{justify-content:flex-end!important;text-align:right!important}.input-toggle,.output-value-display,.bus-value-display,.vector-toggle-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;vertical-align:middle!important;line-height:1!important}.port-dot,.bus-port-dot{position:absolute!important;top:50%!important;transform:translateY(-50%)!important;z-index:100!important;margin:0!important}.port-dot{width:10px!important;height:10px!important;border-radius:50%!important}.canvas-editor-view .bus-port-dot{width:10px!important;height:18px!important;border-radius:2px!important}.component-ports-left .port-dot{left:-6px!important;right:auto!important}.component-ports-left .bus-port-dot{left:-5px!important;right:auto!important}.component-ports-right .port-dot{right:-6px!important;left:auto!important}.component-ports-right .bus-port-dot{right:-5px!important;left:auto!important}.input-toggle,.output-value-display,.bus-value-display{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;vertical-align:middle!important;line-height:1!important}.hex-keypad-compact{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--surface-color);border-radius:6px;margin:.5rem 0}.hex-keypad-grid-compact{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}.hex-key-compact{padding:.8rem;font-size:1.1rem;font-weight:700;border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-color);border-radius:4px;cursor:pointer;transition:all .15s ease;min-height:45px;min-width:45px}.hex-key-compact:hover{background:var(--primary-color);color:#fff;transform:scale(1.08);box-shadow:0 2px 6px #0003}.hex-key-compact:active{transform:scale(.98)}.hex-keypad-actions{display:flex;gap:.4rem;margin-top:.3rem}.hex-key-action{flex:1;padding:.8rem;font-size:.9rem;font-weight:700;background:#ff6b6b;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease}.hex-key-action:hover{background:#ff8787;transform:scale(1.05)}.hex-key-action:active{transform:scale(.98)}#bus-input-modal .modal-content{max-width:300px}.ide-menu-bar{display:flex;justify-content:space-between;align-items:center;height:32px;background-color:var(--bg-1);border-bottom:1px solid var(--line);padding:0 8px;font-family:var(--font-ui);font-size:13px;z-index:100;flex-shrink:0}.menu-bar-left{display:flex;gap:1px;align-items:center}.menu-bar-right{display:flex;align-items:center;gap:12px}.menu-btn{background:transparent;border:none;color:var(--text-mid);padding:3px 10px;cursor:pointer;font-family:var(--font-ui);font-size:12.5px;border-radius:4px;transition:background-color .12s ease,color .12s ease;height:24px;display:inline-flex;align-items:center}.menu-btn:hover{background-color:var(--bg-3);color:var(--text-hi)}.menu-btn.menu-btn-home{color:var(--amber);font-weight:600;border-right:1px solid var(--line);margin-right:4px;padding-right:12px;border-radius:0}.menu-btn.menu-btn-home:hover{background-color:color-mix(in srgb,var(--amber) 12%,transparent);color:var(--amber)}.ide-toolbar{display:flex;align-items:center;height:40px;background-color:var(--bg-1);border-bottom:1px solid var(--line);padding:0 10px;gap:4px;flex-shrink:0}.toolbar-section{display:flex;align-items:center;gap:2px}.toolbar-separator{width:1px;height:20px;background:var(--line);margin:0 4px;flex-shrink:0}.eda-icon-btn{background:transparent;border:none;color:var(--text-mid);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;cursor:pointer;transition:background-color .12s ease,color .12s ease;flex-shrink:0}.eda-icon-btn:hover{background-color:var(--bg-3);color:var(--text-hi)}.eda-icon-btn.active{background-color:var(--bg-3);color:var(--amber)}.eda-icon-btn:disabled{opacity:.25;cursor:not-allowed}.ide-menu-dropdown{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 12px #0000004d;min-width:220px;padding:4px 0;animation:slideDown .15s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ide-menu-item{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;cursor:pointer;color:var(--text-primary);font-size:13px;transition:background-color .15s}.ide-menu-item:hover{background-color:var(--accent-color);color:#fff}.menu-shortcut{color:var(--text-secondary);font-size:11px;margin-left:24px}.ide-menu-item:hover .menu-shortcut{color:#fffc}.menu-separator{height:1px;background-color:var(--border-color);margin:4px 8px}#panel-controls{display:flex;gap:8px;align-items:center;margin-left:auto;padding:0 12px}.panel-toggle-btn{display:flex;align-items:center;gap:6px;background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-secondary);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:13px;transition:all .2s}.panel-toggle-btn:hover{background-color:var(--secondary-color);border-color:var(--accent-color)}.panel-toggle-btn svg{width:18px;height:18px}[data-target-panel=vhdl-simulator-panel].active~#panel-controls #toggle-timing-btn{display:none}.dockable-panel{background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);overflow-y:auto}.dockable-panel:not([style*="display: none"]){display:flex!important}#canvas-container{position:relative!important}#timing-diagram-panel.dockable-panel{border-right:none;border-top:1px solid var(--border-color)}.explorer-header{display:flex;justify-content:space-between;align-items:center;padding:12px;background-color:var(--node-header-color);border-bottom:1px solid var(--border-color)}.explorer-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-color)}.explorer-actions{display:flex;gap:4px}.explorer-btn{background:transparent;border:none;color:var(--text-color);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.explorer-btn:hover{background-color:var(--secondary-color)}.explorer-tree{overflow-y:auto;overflow-x:hidden;height:calc(100% - 50px);padding:4px 0}.explorer-node{-webkit-user-select:none;-moz-user-select:none;user-select:none}.explorer-node-content{display:flex;align-items:center;padding:4px 8px;cursor:pointer;transition:background-color .15s;white-space:nowrap;overflow:hidden}.explorer-node-content:hover{background-color:var(--secondary-color)}.explorer-node-content.selected{background-color:var(--accent-color);color:#fff}.explorer-toggle{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;margin-right:4px;flex-shrink:0}.explorer-icon{margin-right:6px;font-size:16px;flex-shrink:0}.explorer-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explorer-tree::-webkit-scrollbar{width:8px}.explorer-tree::-webkit-scrollbar-track{background:var(--primary-color)}.explorer-tree::-webkit-scrollbar-thumb{background:var(--secondary-color);border-radius:4px}.explorer-tree::-webkit-scrollbar-thumb:hover{background:var(--accent-color)}.ide-menu-bar{display:flex;justify-content:space-between;align-items:center;background-color:var(--primary-color);border-bottom:1px solid var(--border-color);padding:0 8px;height:30px;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .3s,border-color .3s}.menu-bar-left{display:flex}.menu-btn{background:transparent;border:none;color:var(--text-color);padding:0 10px;height:30px;font-size:13px;cursor:pointer;transition:background-color .2s}.menu-btn:hover{background-color:var(--secondary-color)}.ide-toolbar{display:flex;align-items:center;background-color:var(--surface-color);border-bottom:1px solid var(--border-color);padding:6px 12px;height:42px;transition:background-color .3s,border-color .3s}.toolbar-section{display:flex;align-items:center;gap:6px}.eda-icon-btn{background:transparent;border:1px solid transparent;color:var(--text-color);width:28px;height:28px;border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.eda-icon-btn:hover{background-color:var(--secondary-color);border-color:var(--border-color)}.eda-icon-btn svg{width:18px;height:18px}.toolbar-separator{width:1px;height:20px;background-color:var(--border-color);margin:0 8px}#workspace-tabs{display:flex;align-items:center;background-color:var(--bg-sidebar);border-bottom:1px solid var(--border-color);height:36px;padding-top:4px;transition:background-color .3s,border-color .3s}.tabs-container{display:flex;padding-left:8px}.workspace-tab{background-color:transparent;border:none;color:var(--text-secondary);padding:6px 16px;font-size:13px;cursor:pointer;border-top-left-radius:6px;border-top-right-radius:6px;margin-right:2px;position:relative;transition:all .2s}.workspace-tab:hover{background-color:var(--secondary-color);color:var(--text-color)}.workspace-tab.active{background-color:var(--background-color);color:var(--accent-color);font-weight:600;border-bottom:2px solid var(--accent-color)}.panel-toggle-btn{display:flex;align-items:center;gap:6px;background-color:transparent;border:1px solid var(--border-color);color:var(--text-secondary);padding:4px 10px;border-radius:4px;cursor:pointer;font-size:12px;height:26px;transition:all .2s}.panel-toggle-btn:hover{background-color:var(--secondary-color);color:var(--text-color)}.panel-toggle-btn.active{background-color:var(--accent-color);color:#fff;border-color:var(--accent-color)}.library-tabs{background-color:var(--surface-color)!important;border-bottom:1px solid var(--border-color)!important}.library-tab-btn{color:var(--text-secondary)}.library-tab-btn.active{color:var(--text-color)!important;border-bottom-color:var(--accent-color)!important}.canvas-component{background-color:var(--component-bg)!important;border:1px solid var(--component-border)!important;color:var(--component-text)!important;box-shadow:0 4px 6px #0000001a!important}.node-header{background-color:var(--component-header)!important;border-bottom:1px solid var(--component-border)!important;color:var(--component-text)!important}.node-title{color:var(--component-text)!important}.library-component{background-color:var(--surface-color)!important;border:1px solid var(--border-color)!important;color:var(--text-color)!important}.library-component:hover{background-color:var(--secondary-color)!important}.entity-row{color:var(--text-color)!important}#timing-diagram-panel{background-color:var(--timing-bg)!important;color:var(--text-color)!important}.timing-labels{background-color:var(--timing-labels-bg)!important;border-right:1px solid var(--border-color)!important}.timing-label text{fill:var(--text-color)!important}.ide-menu-bar{background-color:var(--menu-bg)!important}.ide-toolbar{background-color:var(--toolbar-bg)!important}.workspace-tab{color:var(--text-secondary)!important}.workspace-tab.active{color:var(--accent-color)!important;background-color:var(--background-color)!important}.port-label{color:var(--component-text)!important}[data-theme=light] .ide-menu-bar,[data-theme=light] .ide-toolbar,[data-theme=light] #workspace-tabs,[data-theme=dark] .ide-menu-bar,[data-theme=dark] .ide-toolbar,[data-theme=dark] #workspace-tabs{background-color:var(--bg-1);border-color:var(--line)}[data-theme=light] #library-panel,[data-theme=light] .library-content{background-color:#f5f5f5!important;color:#333!important}[data-theme=light] .library-component{background-color:#fff!important;border-color:#e0e0e0!important;color:#333!important}[data-theme=light] .explorer-node-content{color:#333!important}[data-theme=light] .explorer-node-content:hover{background-color:#e0e0e0!important}[data-theme=light] #timing-diagram-panel{background-color:#fff!important}[data-theme=light] .timing-labels{background-color:#f9f9f9!important;border-color:#eee!important}[data-theme=light] .timing-track{border-bottom:1px solid #eee!important}[data-theme=light]{--bg-app: #ffffff !important;--bg-sidebar: #f5f5f5 !important;--bg-workspace: #ffffff !important;--component-bg: #eaedf1 !important;--component-border: #000000 !important;--component-text: #000000 !important}[data-theme=light] .connection-path{stroke:#000!important;stroke-width:2px!important}[data-theme=light] .connection-path.active{stroke:#0c0!important;stroke-width:3px!important}[data-theme=light] .canvas-component.selected{border-color:#2196f3!important;box-shadow:0 0 0 2px #2196f34d!important}[data-theme=dark] .canvas-component{background-color:#2c2c34!important;border-color:#444452!important;box-shadow:0 4px 12px #0000004d!important;border-radius:6px!important;z-index:2!important;overflow:visible!important}[data-theme=dark] .component-header{background-color:#c1bebe!important;border-bottom:1px solid #444452!important;border-radius:4px 4px 0 0!important;z-index:5!important;color:#000!important}[data-theme=dark] .component-header .component-header-text{color:#000!important}[data-theme=dark] .input-toggle,[data-theme=dark] .output-value-display{background-color:#444452!important;color:#f0f0f0!important;border-color:#f0f0f0!important}[data-theme=dark] .port-dot{background-color:#2c2c34!important;border-color:currentColor!important;z-index:100!important}[data-theme=dark] .component-body-ports{background-color:transparent!important}[data-theme=dark] .ide-menu-bar{background-color:var(--bg-1);color:var(--text-mid);border-bottom:1px solid var(--line)}[data-theme=dark] .ide-toolbar,[data-theme=dark] #workspace-tabs{background-color:var(--bg-1);border-bottom:1px solid var(--line)}[data-theme=dark] .workspace-tab{color:var(--text-mid)}[data-theme=dark] .workspace-tab:hover{background-color:var(--bg-2);color:var(--text-hi)}[data-theme=dark] .workspace-tab.active{background-color:var(--bg-0);color:var(--amber);border-bottom:2px solid var(--amber)}[data-theme=dark] .eda-icon-btn{color:var(--text-mid)}[data-theme=dark] .eda-icon-btn:hover{background-color:var(--bg-3);color:var(--text-hi)}[data-theme=dark] #project-panel{background-color:var(--bg-1);border-right:1px solid var(--line)}[data-theme=dark] #timing-diagram-panel{background-color:#1a1a1d!important;color:#f0f0f0!important}[data-theme=dark] #timing-diagram-signals{background-color:#23232b!important;border-right:1px solid #444452!important;color:#f0f0f0!important}[data-theme=dark] .timing-diagram-group-header{background-color:#2c2c34!important;border-bottom:1px solid #444452!important;color:#f0f0f0!important}[data-theme=dark] .timing-diagram-group-header:hover{background-color:#444452!important}[data-theme=dark] .timing-diagram-signal-item{background-color:#23232b!important;border-bottom:1px solid #444452!important;color:#94a3b8!important}[data-theme=dark] .timing-diagram-signal-item:hover{background-color:#2c2c34!important}[data-theme=dark] #timing-diagram-wave-container{background-color:#1a1a1d!important}[data-theme=dark] #timing-diagram-canvas{background-color:transparent!important}[data-theme=dark] .canvas-component{border:2px solid #ffffff!important;box-shadow:0 4px 12px #ffffff0d!important;border-radius:6px!important}[data-theme=dark] .port-dot,[data-theme=dark] .bus-port-dot{border-color:#fff!important;background-color:#2c2c34!important}[data-theme=dark] .connection-path{stroke:#fff!important;stroke-dasharray:0!important;stroke-width:1.5px!important;shape-rendering:geometricPrecision!important;stroke-linecap:round!important;stroke-linejoin:round!important}[data-theme=dark] .connection-path.is-bus{stroke-width:5px!important;stroke:gold!important}[data-theme=dark] .connection-path.connection-preview{stroke:#fff!important;stroke-dasharray:5,5!important;stroke-width:1.5px!important}[data-theme=dark] .connection-path.connection-preview.is-bus{stroke:gold!important;stroke-width:5px!important;stroke-dasharray:5,5!important}[data-theme=light] .canvas-component{border:1px solid var(--chip-stroke)!important;background-color:var(--chip-fill)!important;box-shadow:var(--shadow-md)!important}[data-theme=light] .component-header{background-color:var(--chip-header)!important;border-bottom:1px solid var(--chip-stroke)!important}[data-theme=light] .component-body-ports{background-color:transparent!important}[data-theme=light] .port-dot,[data-theme=light] .bus-port-dot{border-color:var(--chip-stroke)!important;background-color:var(--surface-color, #ffffff)!important;z-index:100!important}[data-theme=light] .connection-path{stroke:var(--wire-color)!important;stroke-dasharray:0!important;stroke-width:1.5px!important;shape-rendering:geometricPrecision!important;stroke-linecap:round!important;stroke-linejoin:round!important}[data-theme=light] .connection-path.is-bus{stroke-width:5px!important;stroke:var(--wire-bus-color)!important}[data-theme=light] .connection-path.connection-preview{stroke:#000!important;stroke-dasharray:5,5!important;stroke-width:1.5px!important}[data-theme=light] .connection-path.connection-preview.is-bus{stroke:#e67e22!important;stroke-width:5px!important;stroke-dasharray:5,5!important}[data-theme=dark] .connection-path.selected,[data-theme=light] .connection-path.selected{stroke:red!important;stroke-width:2.5px!important;filter:drop-shadow(0 0 3px rgba(255,0,0,.8))!important;z-index:1000;stroke-dasharray:0!important}[data-theme=dark] .connection-path.selected.is-bus,[data-theme=light] .connection-path.selected.is-bus{stroke-width:6px!important}svg{shape-rendering:geometricPrecision;text-rendering:geometricPrecision}[data-theme=dark] #schematic-viewer-window{background-color:#1a1a1d!important;border-color:#444452!important}[data-theme=dark] .schematic-viewer-header{background-color:#23232b!important;border-bottom-color:#444452!important}[data-theme=dark] .schematic-viewer-content{background-color:#1a1a1d!important}[data-theme=dark] .schematic-wire{stroke:#fff!important}[data-theme=dark] .schematic-wire.active{stroke:#0af!important}[data-theme=dark] .gate-body{stroke:#f0f0f0!important;fill:#2c2c34!important}[data-theme=dark] .gate-text{fill:#f0f0f0!important}.schematic-instance-box{stroke-width:2.5px;rx:10px;ry:10px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3)) drop-shadow(0 2px 4px rgba(0,0,0,.2));transition:filter .2s}.schematic-instance-box:hover{filter:drop-shadow(0 6px 12px rgba(0,0,0,.4)) drop-shadow(0 3px 6px rgba(0,0,0,.3))}.schematic-instance-header{rx:10px 10px 0 0;ry:10px 10px 0 0;stroke-width:0;opacity:.95}.schematic-instance-label{fill:var(--text-primary);font-weight:700;font-size:12px;text-anchor:middle;dominant-baseline:middle;pointer-events:none;text-shadow:0 1px 2px rgba(255,255,255,.3)}[data-theme=dark] .schematic-instance-label{text-shadow:0 1px 2px rgba(0,0,0,.8)!important}.schematic-instance-port-dot{stroke-width:2.5px;fill:var(--primary-color);transition:r .15s,stroke-width .15s;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.schematic-instance-port-dot:hover{r:5;stroke-width:3px}.schematic-instance-port-text{font-size:11px;font-weight:500;fill:var(--text-color);dominant-baseline:middle;pointer-events:none}[data-theme=dark] .schematic-instance-box{stroke:#fff!important;filter:drop-shadow(0 6px 12px rgba(0,0,0,.6)) drop-shadow(0 3px 6px rgba(0,0,0,.4))}[data-theme=dark] .schematic-instance-box:hover{filter:drop-shadow(0 8px 16px rgba(0,0,0,.7)) drop-shadow(0 4px 8px rgba(0,0,0,.5))}[data-theme=dark] .schematic-instance-label{fill:#fff!important;font-size:13px!important;text-shadow:0 1px 2px rgba(0,0,0,.8)!important;-webkit-font-smoothing:antialiased}[data-theme=dark] .schematic-instance-port-dot{fill:#2c2c34!important;stroke:#fff!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}[data-theme=dark] .schematic-instance-port-text{fill:#fff!important;font-size:11px!important;font-weight:600!important;text-shadow:0 1px 3px rgba(0,0,0,.9)!important;-webkit-font-smoothing:antialiased}.schematic-viewer-content svg text{paint-order:markers stroke fill;font-family:Inter,Segoe UI,sans-serif!important}[data-port-index="0"],[data-theme] [data-port-index="0"]{--current-port-color: #FF6B6B}[data-port-index="1"],[data-theme] [data-port-index="1"]{--current-port-color: #4ECDC4}[data-port-index="2"],[data-theme] [data-port-index="2"]{--current-port-color: #45B7D1}[data-port-index="3"],[data-theme] [data-port-index="3"]{--current-port-color: #FFA07A}[data-port-index="4"],[data-theme] [data-port-index="4"]{--current-port-color: #98D8C8}[data-port-index="5"],[data-theme] [data-port-index="5"]{--current-port-color: #F7DC6F}[data-port-index="6"],[data-theme] [data-port-index="6"]{--current-port-color: #BB8FCE}[data-port-index="7"],[data-theme] [data-port-index="7"]{--current-port-color: #85C1E2}[data-port-index="8"],[data-theme] [data-port-index="8"]{--current-port-color: #F8B195}[data-port-index="9"],[data-theme] [data-port-index="9"]{--current-port-color: #C06C84}[data-port-index="10"],[data-theme] [data-port-index="10"]{--current-port-color: #6C5B7B}[data-port-index="11"],[data-theme] [data-port-index="11"]{--current-port-color: #355C7D}.port-name[data-port-index]{color:var(--current-port-color)!important}.input-toggle[data-port-index],.output-value-display[data-port-index],.bus-value-display[data-port-index]{border-color:var(--current-port-color)!important}[data-theme=light],[data-theme=light] body,[data-theme=light] #simulation-area,[data-theme=light] #canvas-container,[data-theme=light] #canvas-viewport-panel{background-color:var(--bg-workspace)!important}[data-theme=light] #viewport,[data-theme=light] #simulation-canvas{background-color:transparent!important}[data-theme=light] .canvas-component{background-color:var(--chip-fill)!important;border:2px solid var(--chip-stroke)!important;box-shadow:var(--shadow-md)!important;border-radius:6px!important;overflow:visible!important;z-index:2!important}[data-theme=light] .component-header{background-color:var(--chip-header)!important;border-bottom:1px solid var(--chip-stroke)!important;border-radius:4px 4px 0 0!important;z-index:5!important}[data-theme=light] .component-header-text{color:var(--text-primary)!important}[data-theme=light] .port-component{background-color:var(--chip-fill)!important;border:1px solid var(--chip-stroke)!important;box-shadow:var(--shadow-sm)!important;border-radius:var(--border-radius)!important}[data-theme=light] .connection-path:not(.is-incomplete){stroke:var(--wire-color)!important;stroke-width:1.5px!important}[data-theme=light] .connection-path.is-bus:not(.is-incomplete){stroke:var(--wire-bus-color)!important;stroke-width:5px!important}[data-theme] .connection-path.is-incomplete{stroke:#2ecc71!important;stroke-dasharray:0!important}[data-theme] .connection-path.is-incomplete.is-bus{stroke:#2ecc71!important;stroke-width:5px!important}[data-theme] .connection-path.selected.is-incomplete{stroke:red!important}[data-theme] .connection-path.selected{stroke:red!important;stroke-width:3px!important;filter:drop-shadow(0 0 3px rgba(255,0,0,.8))!important;z-index:1000;stroke-dasharray:0!important;opacity:1!important}[data-theme] .connection-path.selected.is-bus{stroke-width:6px!important}.flex-center{display:flex;align-items:center;justify-content:center}.behavioral-block{min-width:300px;background-color:#0d1117!important;border:2px solid #30363d!important;border-radius:8px!important;box-shadow:0 8px 24px #0006;z-index:10}.component-body-behavioral{padding:15px;background-color:#0003}.behavioral-code{margin:0;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-variant-ligatures:none;font-size:13px;line-height:1.6;color:#e6edf3;white-space:pre-wrap;word-break:break-all}.behavioral-code .vhdl-keyword{color:#ff7b72;font-weight:700}.behavioral-code .vhdl-operator{color:#79c0ff}[data-theme=light] .behavioral-block{background-color:#f6f8fa!important;border-color:#d0d7de!important;box-shadow:0 4px 12px #0000001a}[data-theme=light] .behavioral-code{color:#1f2328}[data-theme=light] .behavioral-code .vhdl-keyword{color:#cf222e}[data-theme=light] .behavioral-code .vhdl-operator{color:#0550ae}.behavioral-content-wrapper{display:flex;align-items:stretch;min-height:80px;position:relative}.behavioral-side-ports{flex-basis:40px!important;min-width:40px;padding:10px 0;z-index:2}.behavioral-block .component-body-behavioral{flex-grow:1;padding:15px 10px;border-left:1px solid rgba(255,255,255,.1);border-right:1px solid rgba(255,255,255,.1);display:flex;align-items:center}[data-theme=light] .behavioral-block .component-body-behavioral{border-color:#0000000d}.behavioral-block .component-port{padding:5px 2px!important}.behavioral-block .port-name{display:none}.customization-modal-header .close-modal-btn{background:transparent;border:none;font-size:28px;font-weight:700;color:var(--text-primary);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;line-height:1;transition:color var(--transition-fast)}.customization-modal-header .close-modal-btn:hover{color:var(--accent-stop)}#vhdl-preview-code{font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.6;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:16px;-moz-tab-size:4;-o-tab-size:4;tab-size:4;white-space:pre;overflow-x:auto}.vhdl-code-display{font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.6;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:16px;-moz-tab-size:4;-o-tab-size:4;tab-size:4;white-space:pre;overflow-x:auto;min-height:400px;width:100%}.vhdl-keyword{color:var(--vhdl-keyword);font-weight:700}.vhdl-type{color:var(--vhdl-type)}.vhdl-comment{color:var(--vhdl-comment);font-style:italic}.vhdl-string{color:var(--vhdl-string)}.vhdl-number{color:var(--vhdl-number)}.vhdl-operator{color:var(--vhdl-operator)}.vhdl-entity{color:var(--vhdl-entity);font-weight:700}.vhdl-signal{color:var(--accent-primary)}.customization-modal{background-color:var(--modal-overlay)}.customization-modal-content{background-color:var(--modal-bg);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl)}.customization-modal-header{background-color:var(--modal-header-bg);border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:16px 24px;border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0}.customization-modal-header h2{color:var(--text-primary);margin:0;font-size:var(--font-size-lg)}.customization-modal-body{padding:24px;background-color:var(--modal-bg);color:var(--text-primary)}.customization-modal-footer{background-color:var(--modal-footer-bg);border-top:1px solid var(--border-color);padding:16px 24px;border-radius:0 0 var(--border-radius-lg) var(--border-radius-lg);display:flex;gap:12px;justify-content:flex-end}.customization-modal input[type=text],.customization-modal input[type=number],.customization-modal select,.customization-modal textarea{background-color:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:8px 12px;font-family:var(--font-ui);font-size:var(--font-size-base)}.customization-modal input:focus,.customization-modal select:focus,.customization-modal textarea:focus{border-color:var(--border-highlight);outline:none;box-shadow:0 0 0 3px #3b82f61a}.customization-modal label{color:var(--text-primary);font-weight:600;font-size:var(--font-size-sm);margin-bottom:6px;display:block}.customization-modal table{width:100%;border-collapse:collapse;margin:16px 0}.customization-modal th{background-color:var(--surface-color);color:var(--text-primary);font-weight:600;padding:10px;text-align:left;border-bottom:2px solid var(--border-color)}.customization-modal td{padding:10px;border-bottom:1px solid var(--border-light);color:var(--text-primary)}.customization-modal tr:hover{background-color:var(--surface-hover)}#add-port-btn{width:36px!important;height:36px!important;padding:0!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;vertical-align:middle!important;line-height:1!important;box-sizing:border-box!important;background-color:var(--surface-color)!important;border:1px solid var(--border-color)!important;border-radius:var(--border-radius-sm)!important;color:var(--text-secondary)!important;cursor:pointer!important;transition:all var(--transition-fast)!important}#add-port-btn:hover{background-color:var(--surface-hover)!important;border-color:var(--accent-primary)!important;color:var(--accent-primary)!important;transform:scale(1.05)!important}#add-port-btn:active{transform:scale(.95)!important}#add-port-btn svg{width:20px!important;height:20px!important;display:block!important;margin:0!important;padding:0!important;fill:currentColor!important}#add-port-btn path{margin:0!important;padding:0!important}.port-action-btn{background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--border-radius-sm);padding:6px 12px;cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);font-family:var(--font-ui)}.port-action-btn:hover{background-color:var(--surface-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.port-action-btn.delete:hover{background-color:var(--accent-stop);border-color:var(--accent-stop);color:#fff}.vhdl-label{color:var(--accent-run);font-weight:600;font-family:var(--font-mono);font-size:var(--font-size-sm)}.vhdl-label-entity{color:var(--vhdl-entity);font-weight:700}.vhdl-label-signal{color:var(--accent-primary);font-weight:500}.vhdl-label-port{color:var(--text-secondary);font-weight:500}.vhdl-label-comment{color:var(--vhdl-comment);font-style:italic}.workspace-panel{display:none!important;width:100%;height:100%;background-color:var(--bg-workspace);overflow:hidden}.workspace-panel.active{display:flex!important;flex-direction:column}.workspace-panel{transition:opacity var(--transition-base)}.workspace-panel.active{opacity:1}#canvas-panel{background-color:var(--bg-workspace)}#vhdl-simulator-panel{background-color:var(--bg-panel)}#code-editor-panel{background-color:var(--bg-input)}.notification-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;pointer-events:none}.notification{background-color:var(--surface-color);color:var(--text-color);border-radius:6px;padding:12px 16px;box-shadow:0 4px 12px #0000004d;display:flex;align-items:center;gap:12px;min-width:300px;max-width:450px;pointer-events:auto;transform:translate(120%);transition:transform .3s cubic-bezier(.175,.885,.32,1.27);border-left:4px solid transparent;font-family:var(--font-family);font-size:14px;line-height:1.5}.notification.show{transform:translate(0)}.notification.hide{transform:translate(120%)}.notification-icon{font-size:18px;display:flex;align-items:center;justify-content:center}.notification-message{flex-grow:1;word-break:break-word}.notification-close{background:transparent;border:none;color:inherit;opacity:.6;cursor:pointer;font-size:18px;padding:0 4px;line-height:1;transition:opacity .2s}.notification-close:hover{opacity:1}.notification-actions{display:flex;gap:8px}.notification-action{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:inherit;padding:4px 8px;font-size:12px;border-radius:4px;cursor:pointer;transition:background .2s}.notification-action:hover{background:#fff3}.notification-success{background-color:#2e7d32;color:#fff;border-left-color:#4caf50}[data-theme=light] .notification-success{background-color:#e8f5e9;color:#1b5e20;border-left-color:#2e7d32;box-shadow:0 4px 12px #00000026;border:1px solid #c8e6c9}.notification-error{background-color:#c62828;color:#fff;border-left-color:#ef5350}[data-theme=light] .notification-error{background-color:#ffebee;color:#b71c1c;border-left-color:#c62828;box-shadow:0 4px 12px #00000026;border:1px solid #ffcdd2}.notification-warning{background-color:#f57f17;color:#fff;border-left-color:#ffca28}[data-theme=light] .notification-warning{background-color:#fff8e1;color:#f57f17;border-left-color:#ff8f00;box-shadow:0 4px 12px #00000026;border:1px solid #ffe082}.notification-info{background-color:#0277bd;color:#fff;border-left-color:#29b6f6}[data-theme=light] .notification-info{background-color:#e1f5fe;color:#01579b;border-left-color:#0277bd;box-shadow:0 4px 12px #00000026;border:1px solid #b3e5fc}#dashboard-panel{position:fixed;inset:0;z-index:9999;display:none;flex-direction:column;background:var(--bg-0);color:var(--text-hi);font-family:var(--font-ui);overflow-y:auto;-webkit-font-smoothing:antialiased}#dashboard-panel.visible{display:flex;animation:dashboardFadeIn .2s ease-out}@keyframes dashboardFadeIn{0%{opacity:0}to{opacity:1}}.db-hero{background:var(--bg-1);border-bottom:1px solid var(--line);padding:24px 32px;flex-shrink:0}.db-hero-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.db-brand{display:flex;align-items:center;gap:12px}.db-brand-icon{width:42px;height:42px;border-radius:10px;background:var(--amber);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px var(--accent-glow);flex-shrink:0}.db-brand-icon svg{width:22px;height:22px;color:#090d16;fill:currentColor}.db-brand-title{font-size:22px;font-weight:900;letter-spacing:-.5px;color:var(--text-hi);margin:0}.db-brand-title span{color:var(--amber)}.db-brand-subtitle{font-size:12px;color:var(--text-mid);margin:2px 0 0;font-weight:500}.db-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.db-btn-primary{display:flex;align-items:center;gap:6px;padding:9px 16px;border-radius:10px;font-weight:700;font-size:13px;border:none;cursor:pointer;transition:all .15s ease;background:var(--amber);color:#090d16;box-shadow:0 2px 8px #00000026}.db-btn-primary:hover{opacity:.88;transform:translateY(-1px);box-shadow:0 4px 12px #00000040}.db-btn-primary:active{transform:scale(.97)}.db-btn-secondary{display:flex;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;font-weight:600;font-size:13px;cursor:pointer;transition:all .15s ease;background:var(--bg-2);color:var(--text-hi);border:1px solid var(--line)}.db-btn-secondary:hover{background:var(--bg-3);border-color:var(--text-low)}.db-btn-accent{display:flex;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;font-weight:600;font-size:13px;cursor:pointer;transition:all .15s ease;background:var(--bg-3);color:var(--amber);border:1px solid var(--amber)}.db-btn-accent:hover{background:var(--amber);color:#090d16}.db-content{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:24px 32px;display:flex;flex-direction:column;gap:20px}.db-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.db-tabs{display:flex;align-items:center;gap:4px;padding:4px;background:var(--bg-1);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap}.db-tab{padding:6px 12px;border-radius:7px;font-size:12px;font-weight:700;cursor:pointer;border:none;background:transparent;color:var(--text-mid);transition:all .15s ease}.db-tab:hover{color:var(--text-hi)}.db-tab.active{background:var(--amber);color:#090d16}.db-search-wrap{position:relative;flex:1;max-width:280px}.db-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-low);pointer-events:none}.db-search{width:100%;padding:7px 10px 7px 32px;border-radius:8px;border:1px solid var(--line);background:var(--bg-2);color:var(--text-hi);font-size:12px;font-family:var(--font-ui);outline:none;transition:border-color .15s ease}.db-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.db-search::-moz-placeholder{color:var(--text-low)}.db-search::placeholder{color:var(--text-low)}.db-sort-select{padding:7px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg-2);color:var(--text-hi);font-size:12px;font-family:var(--font-ui);cursor:pointer;outline:none}.db-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.db-card{background:var(--bg-1);border:1px solid var(--line);border-radius:12px;padding:16px;cursor:pointer;transition:all .18s ease;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:10px}.db-card:hover{border-color:var(--accent);background:var(--bg-2);transform:translateY(-2px);box-shadow:0 8px 20px #0003,0 0 0 1px var(--accent)}.db-card:hover .db-card-open-hint{opacity:1}.db-card-open-hint{position:absolute;top:10px;right:10px;opacity:0;transition:opacity .15s ease;color:var(--accent);font-size:11px;font-weight:600;display:flex;align-items:center;gap:4px}.db-card-header{display:flex;align-items:flex-start;gap:10px}.db-card-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--accent-dim);color:var(--accent)}.db-card-icon.template{background:color-mix(in srgb,var(--amber) 15%,transparent);color:var(--amber)}.db-card-name{font-size:13px;font-weight:700;color:var(--text-hi);margin:0;line-height:1.3;flex:1;word-break:break-word}.db-card-desc{font-size:11px;color:var(--text-mid);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.db-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.db-card-date{font-size:10px;color:var(--text-low);font-family:var(--font-mono);display:flex;align-items:center;gap:4px}.db-card-tag{padding:2px 7px;border-radius:20px;font-size:10px;font-weight:600;border:1px solid var(--line);color:var(--text-mid);background:var(--bg-3)}.db-card-tag.template{border-color:color-mix(in srgb,var(--amber) 40%,transparent);color:var(--amber);background:color-mix(in srgb,var(--amber) 10%,transparent)}.db-card-actions{display:flex;align-items:center;gap:4px;border-top:1px solid var(--line);padding-top:8px;margin-top:2px}.db-card-action-btn{padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid transparent;background:transparent;color:var(--text-low);transition:all .12s ease;display:flex;align-items:center;gap:4px}.db-card-action-btn:hover{background:var(--bg-3);color:var(--text-hi);border-color:var(--line)}.db-card-action-btn.danger:hover{color:var(--red);background:#ef444414;border-color:#ef44444d}.db-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;gap:12px}.db-empty-icon{width:56px;height:56px;border-radius:14px;background:var(--bg-2);display:flex;align-items:center;justify-content:center;color:var(--text-low);margin-bottom:4px}.db-empty-title{font-size:15px;font-weight:700;color:var(--text-hi);margin:0}.db-empty-desc{font-size:12px;color:var(--text-mid);margin:0}.db-card-rename-input{width:100%;background:var(--bg-0);border:1px solid var(--accent);border-radius:6px;padding:4px 8px;font-size:13px;font-weight:700;color:var(--text-hi);font-family:var(--font-ui);outline:none;box-shadow:0 0 0 3px var(--accent-glow)}.db-stats-row{display:flex;gap:12px;flex-wrap:wrap}.db-stat-card{flex:1;min-width:120px;background:var(--bg-1);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.db-stat-value{font-size:24px;font-weight:900;color:var(--amber);font-family:var(--font-mono);line-height:1}.db-stat-label{font-size:11px;color:var(--text-mid);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.db-section-title{font-size:11px;font-weight:700;color:var(--text-low);text-transform:uppercase;letter-spacing:1px;padding-bottom:10px;border-bottom:1px solid var(--line);margin:0}.db-delete-confirm{display:flex;align-items:center;gap:6px;padding:8px;background:#ef444414;border:1px solid rgba(239,68,68,.3);border-radius:8px;font-size:11px;color:var(--red)}.db-delete-confirm-yes{padding:3px 8px;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;border:1px solid var(--red);background:var(--red);color:#fff}.db-delete-confirm-no{padding:3px 8px;border-radius:5px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--text-mid)}:root,[data-theme=light]{--bg-0: #FFFFFF;--bg-1: #F8FAFC;--bg-2: #F1F5F9;--bg-3: #E2E8F0;--line: #CBD5E1;--line-soft: #E2E8F0;--text-hi: #0F172A;--text-mid: #475569;--text-low: #94A3B8;--amber: #B45309;--amber-dim: #FDE68A;--accent: #0D9488;--accent-dim: #CCFBF1;--accent-glow: rgba(13, 148, 136, .18);--teal: #0D9488;--teal-glow: rgba(13, 148, 136, .35);--cyan: #0891B2;--red: #DC2626;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "JetBrains Mono", "Fira Code", "Consolas", monospace;--bg-app: var(--bg-2);--bg-menu: var(--bg-0);--bg-toolbar: var(--bg-1);--bg-sidebar: var(--bg-1);--bg-header: var(--bg-0);--bg-workspace: var(--bg-3);--bg-panel: var(--bg-0);--bg-secondary: var(--bg-3);--bg-input: var(--bg-0);--bg-input-disabled: var(--bg-2);--bg-input-focus: var(--bg-0);--surface-color: var(--bg-0);--surface-hover: var(--bg-2);--surface-active: var(--bg-3);--border-color: var(--line);--border-light: var(--line-soft);--border-dark: #1e293b;--border-highlight: var(--accent);--border-radius: 4px;--border-radius-sm: 2px;--border-radius-lg: 8px;--text-primary: var(--text-hi);--text-secondary: var(--text-mid);--text-tertiary: var(--text-low);--text-inverse: #ffffff;--text-disabled: var(--line);--text-link: var(--accent);--text-link-hover: #0f766e;--accent-primary: var(--accent);--accent-primary-hover: #0f766e;--accent-primary-active: #115e59;--accent-secondary: #7c3aed;--accent-run: #10b981;--accent-run-hover: #059669;--accent-stop: var(--red);--accent-stop-hover: #dc2626;--accent-warning: var(--amber);--accent-info: var(--cyan);--font-family: var(--font-ui);--font-family-mono: var(--font-mono);--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 13px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .15);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .2);--grid-color: rgba(15, 23, 42, .06);--grid-size: 20px;--chip-fill: var(--bg-0);--chip-stroke: #1e293b;--chip-stroke-width: 1px;--chip-header: var(--bg-3);--wire-color: #334155;--wire-bus-color: #c2410c;--pin-color: #1e293b;--pin-text: var(--text-hi);--port-in-color: var(--accent);--port-out-color: #059669;--bit-bg-off: var(--bg-0);--bit-bg-on: var(--bg-0);--bit-text-off: var(--text-mid);--bit-text-on: #10b981;--bit-stroke-off: var(--line);--bit-stroke-on: #10b981;--vhdl-keyword: #7c3aed;--vhdl-type: #0891b2;--vhdl-comment: #64748b;--vhdl-string: #059669;--vhdl-number: #ea580c;--vhdl-operator: #475569;--vhdl-entity: var(--accent);--modal-overlay: rgba(15, 23, 42, .5);--modal-bg: var(--bg-0);--modal-header-bg: var(--bg-1);--modal-footer-bg: var(--bg-1);--scrollbar-track: transparent;--scrollbar-thumb: var(--line);--scrollbar-thumb-hover: var(--text-low);--state-success: #10b981;--state-error: var(--red);--state-warning: var(--amber);--state-info: var(--cyan);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}[data-theme=dark]{--bg-0: #0B0F14;--bg-1: #111820;--bg-2: #18212C;--bg-3: #202A38;--line: #263040;--line-soft: #1A2230;--text-hi: #E8EEF5;--text-mid: #8A99AE;--text-low: #4A5A70;--amber: #F59E0B;--amber-dim: #7A5F2B;--accent: #38BEF8;--accent-dim: #0C2A40;--accent-glow: rgba(56, 190, 248, .2);--teal: #4FD1C5;--teal-glow: rgba(79, 209, 197, .55);--cyan: #38BEF8;--red: #EF4444;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "JetBrains Mono", "Fira Code", "Consolas", monospace;--bg-app: var(--bg-0);--bg-menu: var(--bg-1);--bg-toolbar: var(--bg-1);--bg-sidebar: var(--bg-1);--bg-header: var(--bg-1);--bg-workspace: var(--bg-0);--bg-panel: var(--bg-1);--bg-secondary: var(--bg-2);--bg-input: var(--bg-0);--bg-input-disabled: var(--bg-1);--bg-input-focus: var(--bg-1);--surface-color: var(--bg-1);--surface-hover: var(--bg-2);--surface-active: var(--bg-3);--border-color: var(--line);--border-light: var(--line-soft);--border-dark: var(--bg-1);--border-highlight: var(--accent);--border-radius: 4px;--border-radius-sm: 2px;--border-radius-lg: 8px;--text-primary: var(--text-hi);--text-secondary: var(--text-mid);--text-tertiary: var(--text-low);--text-inverse: var(--bg-0);--text-disabled: var(--line);--text-link: var(--accent);--text-link-hover: #7DD3FC;--accent-primary: var(--accent);--accent-primary-hover: #7DD3FC;--accent-primary-active: #0EA5E9;--accent-secondary: #A78BFA;--accent-run: var(--teal);--accent-run-hover: #81E6D9;--accent-stop: var(--red);--accent-stop-hover: #F87171;--accent-warning: var(--amber);--accent-info: var(--cyan);--font-family: var(--font-ui);--font-family-mono: var(--font-mono);--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 13px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .4), 0 1px 2px -1px rgb(0 0 0 / .4);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .4), 0 2px 4px -2px rgb(0 0 0 / .4);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5), 0 4px 6px -4px rgb(0 0 0 / .5);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .5), 0 8px 10px -6px rgb(0 0 0 / .5);--grid-color: rgba(255, 255, 255, .04);--grid-size: 20px;--chip-fill: var(--bg-1);--chip-stroke: var(--text-low);--chip-stroke-width: 1px;--chip-header: var(--bg-2);--wire-color: var(--text-low);--wire-bus-color: #FB923C;--pin-color: var(--text-low);--pin-text: var(--text-mid);--port-in-color: var(--accent);--port-out-color: var(--teal);--bit-bg-off: var(--bg-1);--bit-bg-on: var(--bg-1);--bit-text-off: var(--text-low);--bit-text-on: var(--teal);--bit-stroke-off: var(--line);--bit-stroke-on: var(--teal);--vhdl-keyword: #C084FC;--vhdl-type: var(--cyan);--vhdl-comment: var(--text-low);--vhdl-string: var(--teal);--vhdl-number: #FB923C;--vhdl-operator: var(--text-mid);--vhdl-entity: var(--accent);--modal-overlay: rgba(0, 0, 0, .7);--modal-bg: var(--bg-1);--modal-header-bg: var(--bg-2);--modal-footer-bg: var(--bg-2);--scrollbar-track: transparent;--scrollbar-thumb: var(--line);--scrollbar-thumb-hover: var(--text-low);--state-success: var(--teal);--state-error: var(--red);--state-warning: var(--amber);--state-info: var(--cyan);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*{transition:background-color var(--transition-base),color var(--transition-base),border-color var(--transition-base)}button,input,select,textarea,a{transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-low)}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.theme-bg-app{background-color:var(--bg-app)}.theme-bg-panel{background-color:var(--bg-panel)}.theme-bg-surface{background-color:var(--surface-color)}.theme-text-primary{color:var(--text-primary)}.theme-text-secondary{color:var(--text-secondary)}.theme-border{border-color:var(--border-color)}.theme-accent{color:var(--accent-primary)}.menu-bar{display:flex;height:30px;background-color:var(--bg-header);border-bottom:1px solid var(--border-color);align-items:center;padding:0 8px;gap:2px;font-size:13px;z-index:100}.menu-item{position:relative}.menu-button{background:transparent;border:none;color:var(--text-primary);padding:4px 12px;cursor:pointer;font-family:var(--font-ui);font-size:13px;border-radius:4px;transition:all .15s}.menu-button:hover,.menu-button.active{background-color:var(--bg-sidebar)}.menu-dropdown{position:absolute;top:100%;left:0;min-width:220px;background-color:var(--bg-header);border:1px solid var(--border-color);border-radius:6px;box-shadow:var(--shadow-lg);padding:4px;margin-top:2px;z-index:1000;animation:menuFadeIn .15s ease-out}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu-dropdown-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 12px;background:transparent;border:none;color:var(--text-primary);font-family:var(--font-ui);font-size:13px;text-align:left;cursor:pointer;border-radius:4px;transition:all .1s}.menu-dropdown-item:hover{background-color:var(--accent-primary);color:#fff}.menu-item-label{flex:1}.menu-item-shortcut{font-size:11px;color:var(--text-secondary);margin-left:24px}.menu-dropdown-item:hover .menu-item-shortcut{color:#fffc}.menu-item-arrow{margin-left:8px;font-size:10px}.menu-divider{height:1px;background-color:var(--border-color);margin:4px 0}.toolbar{display:flex;align-items:center;height:42px;background-color:var(--bg-header);border-bottom:1px solid var(--border-color);padding:0 12px;gap:8px;box-shadow:var(--shadow-sm)}.toolbar-group{display:flex;align-items:center;gap:4px}.toolbar-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.toolbar-btn svg{width:18px;height:18px}.toolbar-btn:hover:not(:disabled){background-color:var(--bg-sidebar);color:var(--text-primary);transform:translateY(-1px)}.toolbar-btn:active:not(:disabled){transform:translateY(0)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn-run{color:var(--accent-run)}.toolbar-btn-run:hover:not(:disabled){background-color:var(--accent-run);color:#fff}.toolbar-btn-stop{color:var(--accent-stop)}.toolbar-btn-stop:hover:not(:disabled){background-color:var(--accent-stop);color:#fff}.toolbar-separator{width:1px;height:24px;background-color:var(--border-color);margin:0 4px}.side-panel{width:300px;background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0}.side-panel-tabs{display:flex;background-color:var(--bg-header);border-bottom:1px solid var(--border-color);padding:0}.side-panel-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-family:var(--font-ui);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.side-panel-tab:hover{color:var(--text-primary);background-color:#8080800d}.side-panel-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary);background-color:#3b82f60d}.tab-icon{font-size:16px}.tab-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px}.side-panel-body{flex:1;overflow-y:auto;overflow-x:hidden}.side-panel-content{padding:12px}.folder-tree{font-size:13px}.folder-item,.file-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;transition:background-color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.folder-item:hover,.file-item:hover{background-color:#8080801a}.folder-children{padding-left:20px;margin-top:2px}.folder-icon,.file-icon{font-size:16px;flex-shrink:0}.folder-name,.file-name{color:var(--text-primary);font-size:13px}.component-list{display:flex;flex-direction:column;gap:12px}.component-category{border-radius:6px;overflow:hidden}.category-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:#8080801a;font-weight:600;font-size:12px;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.category-icon{font-size:14px}.category-items{padding:4px}.component-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:4px;cursor:grab;transition:all .15s;border:1px solid transparent}.component-item:hover{background-color:var(--bg-header);border-color:var(--border-color);box-shadow:var(--shadow-sm)}.component-item:active{cursor:grabbing}.component-icon{font-size:18px}.component-name{font-size:13px;color:var(--text-primary)}.properties-panel{display:flex;flex-direction:column;gap:16px}.property-section{border-radius:6px;overflow:hidden;border:1px solid var(--border-color)}.property-section-header{padding:8px 12px;background-color:#8080801a;font-weight:600;font-size:12px;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.property-item{display:flex;justify-content:space-between;padding:8px 12px;font-size:12px;border-bottom:1px solid var(--border-color)}.property-item:last-child{border-bottom:none}.property-label{color:var(--text-secondary);font-weight:500}.property-value{color:var(--text-primary);font-family:var(--font-mono)}.property-empty{padding:12px;text-align:center;color:var(--text-secondary);font-size:12px;font-style:italic}.bottom-panel{height:250px;background-color:var(--bg-sidebar);border-top:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;z-index:50}.bottom-panel.minimized{height:32px}.bottom-panel-header{display:flex;align-items:center;justify-content:space-between;height:32px;background-color:var(--bg-header);border-bottom:1px solid var(--border-color);padding:0 8px;flex-shrink:0;width:100%;box-sizing:border-box;overflow:hidden}.bottom-panel-tabs{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.bottom-panel-tabs::-webkit-scrollbar{display:none}.bottom-panel-tab{display:flex;align-items:center;gap:6px;padding:4px 12px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-family:var(--font-ui);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.bottom-panel-tab:hover{color:var(--text-primary)}.bottom-panel-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.bottom-panel-actions{display:flex;gap:4px;flex-shrink:0;margin-left:8px}.panel-action-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.panel-action-btn svg{width:14px;height:14px}.panel-action-btn:hover{background-color:var(--bg-sidebar);color:var(--text-primary)}.bottom-panel-content{flex:1;overflow:auto;padding:12px}.bottom-panel-output{font-family:var(--font-mono);font-size:12px;line-height:1.6}.output-line{padding:2px 0;color:var(--text-primary)}.output-line.success{color:var(--accent-run)}.output-line.error{color:var(--accent-stop)}.bottom-panel-console{font-family:var(--font-mono);font-size:12px;line-height:1.8}.console-line{display:flex;gap:8px;padding:2px 0}.console-prompt{color:var(--accent-primary);font-weight:600}.console-text{color:var(--text-primary)}.bottom-panel-problems{display:flex;flex-direction:column;gap:4px}.problem-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:4px;background-color:#8080800d;border-left:3px solid transparent;font-size:12px;cursor:pointer;transition:background-color .15s}.problem-item:hover{background-color:#8080801a}.problem-icon{font-size:16px;flex-shrink:0}.problem-icon.warning{color:#f59e0b}.problem-icon.error{color:var(--accent-stop)}.problem-icon.info{color:var(--accent-primary)}.problem-message{color:var(--text-primary);flex:1}.ide-container{display:flex;flex-direction:column;height:100%;flex:1;min-width:0;overflow:hidden;background-color:var(--bg-app)}.main-layout{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden;background-color:var(--bg-app)}.ide-main{flex:1;display:flex;overflow:hidden}.ide-center{flex:1;display:flex;flex-direction:column;overflow:hidden}.panel-resizer{width:4px;background:transparent;cursor:col-resize;transition:background .2s;position:relative}.panel-resizer:hover,.panel-resizer.dragging{background:var(--accent-primary)}.side-panel-body::-webkit-scrollbar,.bottom-panel-content::-webkit-scrollbar{width:8px;height:8px}.side-panel-body::-webkit-scrollbar-track,.bottom-panel-content::-webkit-scrollbar-track{background:transparent}.side-panel-body::-webkit-scrollbar-thumb,.bottom-panel-content::-webkit-scrollbar-thumb{background:#8080804d;border-radius:4px}.side-panel-body::-webkit-scrollbar-thumb:hover,.bottom-panel-content::-webkit-scrollbar-thumb:hover{background:#80808080}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.side-panel{animation:slideInLeft .3s ease-out}.bottom-panel{animation:slideInBottom .3s ease-out}body{background-color:var(--bg-app);color:var(--text-primary);font-family:var(--font-ui);margin:0;overflow:hidden;transition:background-color .3s,color .3s}.main-layout{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background-color:var(--bg-app)}#library-panel{width:280px;background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;padding:16px;box-sizing:border-box;flex-shrink:0;z-index:10}#library-panel h2{font-size:13px;text-transform:uppercase;color:var(--text-secondary);margin:0 0 16px;font-weight:700;letter-spacing:.5px}#component-list{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1}#component-list li{padding:8px 12px;margin-bottom:4px;border-radius:6px;cursor:grab;font-size:13px;color:var(--text-primary);border:1px solid transparent;transition:all .2s;display:flex;align-items:center;gap:8px}#component-list li:hover{background-color:var(--bg-header);border-color:var(--border-color);box-shadow:var(--shadow-sm)}:root:not([data-theme=dark]) #component-list li,[data-theme=light] #component-list li{color:#0f172a!important}#simulation-area{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}#workspace-tabs{flex-shrink:0;display:flex;background-color:var(--bg-toolbar);border-bottom:1px solid var(--border-color);height:48px;align-items:center;padding:0 16px;gap:16px;justify-content:space-between;box-shadow:var(--shadow-sm);z-index:20}.ide-menu-bar{height:32px;background-color:var(--bg-menu);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 8px;justify-content:space-between}.ide-menu-bar button.menu-btn{background:transparent;border:none;color:var(--text-primary);font-size:12px;padding:0 12px;height:100%;cursor:pointer;font-family:var(--font-ui)}.ide-menu-bar button.menu-btn:hover{background-color:var(--bg-header);color:var(--accent-primary)}.ide-toolbar{height:44px;background-color:var(--bg-toolbar);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 12px;gap:8px}.toolbar-section{display:flex;align-items:center;gap:4px}.tabs-container{display:flex;gap:4px;background:var(--bg-sidebar);padding:4px;border-radius:8px;border:1px solid var(--border-color)}.workspace-tab{background:transparent;border:none;padding:6px 16px;color:var(--text-secondary);font-family:var(--font-ui);font-size:13px;font-weight:600;cursor:pointer;border-radius:6px;transition:all .2s}.workspace-tab:hover{color:var(--text-primary);background-color:#8080801a}.workspace-tab.active{color:var(--text-inverse);background-color:var(--accent-primary);box-shadow:var(--shadow-sm)}#global-actions{display:flex;align-items:center;gap:8px}#add-component-btn,#import-entity-btn{background-color:var(--bg-header);color:var(--text-primary);border:1px solid var(--border-color)}#add-component-btn:hover,#import-entity-btn:hover{background-color:var(--bg-input);border-color:var(--accent-primary)}.button-primary{background-color:var(--accent-primary)!important;color:#fff!important;border:none!important}.button-primary:hover{filter:brightness(1.1)}.eda-input,input[type=text],input[type=search]{background-color:var(--bg-input)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important;border-radius:6px;padding:6px 10px}.eda-input:focus,input[type=text]:focus,input[type=search]:focus{border-color:var(--accent-primary)!important;outline:none}#canvas-toolbar{position:absolute;top:16px;left:50%;transform:translate(-50%);background:var(--bg-header);border:1px solid var(--border-color);border-radius:12px;padding:6px 12px;display:flex;gap:8px;box-shadow:var(--shadow-lg);z-index:100;transition:background-color .3s}#canvas-toolbar button{width:36px;height:36px;border:none;background:transparent;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}#canvas-toolbar button:hover{background-color:var(--bg-sidebar);color:var(--text-primary);transform:translateY(-1px)}#canvas-toolbar button.active{background-color:var(--accent-primary);color:#fff}#canvas-toolbar button svg{width:20px;height:20px}.toolbar-separator{width:1px;height:24px;background-color:var(--border-color);margin:6px 4px}#workspace-content{flex:1;position:relative;overflow:hidden}.workspace-panel{display:none;width:100%;height:100%;overflow:hidden;position:relative;flex-direction:column}.workspace-panel.active{display:flex}#canvas-container{background-color:var(--bg-workspace);background-image:linear-gradient(var(--grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--grid-color) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);background-position:0 0;overflow:hidden}#vhdl-simulator-root{width:100%;height:100%;display:flex;flex-direction:column}.eda-app-container{display:flex;flex-direction:column;height:100%;width:100%}.eda-header{height:56px;background-color:var(--bg-header);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 16px;justify-content:space-between;box-shadow:var(--shadow-sm);z-index:50}.eda-toolbar-group{display:flex;align-items:center;gap:8px;background:var(--bg-sidebar);padding:4px;border-radius:8px;border:1px solid var(--border-color)}.eda-input{background-color:var(--bg-input)!important;border:1px solid var(--border-color)!important;color:var(--text-primary)!important;font-family:var(--font-mono);font-size:13px;padding:0 8px;height:28px;outline:none;min-width:120px;border-radius:4px}.eda-icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s}.eda-icon-btn:hover{background-color:var(--bg-header);color:var(--accent-primary)}.eda-icon-btn.active{background-color:var(--accent-primary);color:#fff}.eda-btn-action{height:32px;padding:0 16px;border-radius:6px;border:none;font-weight:600;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:transform .1s}.eda-btn-run{background-color:var(--accent-run)!important;color:#fff!important}.eda-btn-stop{background-color:var(--accent-stop)!important;color:#fff!important}.eda-main{flex:1;display:flex;overflow:hidden;position:relative}.eda-sidebar{width:280px;background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column}.eda-canvas{flex:1;background-color:var(--bg-workspace);position:relative;overflow:hidden}.eda-status-bar{height:28px;background-color:var(--bg-header);border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:11px;color:var(--text-secondary)}.vhdl-simulator-view .schematic-chip{fill:var(--chip-fill);stroke:var(--chip-stroke);stroke-width:var(--chip-stroke-width);filter:drop-shadow(0 4px 6px rgba(0,0,0,.1))}.vhdl-simulator-view .simulation-schematic-container .bit-rect{fill:var(--bg-panel);stroke:var(--border-light);stroke-width:1px}.vhdl-simulator-view .simulation-schematic-container .bit-rect.on{fill:#fff!important;stroke:#22c55e!important;stroke-width:4px!important}.vhdl-simulator-view .simulation-schematic-container .bit-text{fill:var(--text-secondary);font-family:var(--font-mono);font-weight:700;font-size:12px;pointer-events:none;text-anchor:middle}.vhdl-simulator-view .simulation-schematic-container .bit-text.on{fill:var(--accent-run)!important;font-weight:800!important}.gate-body{fill:var(--bg-input, #1e293b);stroke:var(--border-color, #475569);stroke-width:2px;transition:all var(--transition-fast)}.gate-text{fill:var(--text-primary, #f1f5f9);font-size:12px;font-weight:600;pointer-events:none}.schematic-instance-label{fill:#fff;font-size:14px;font-weight:700;pointer-events:none}.schematic-instance-port-text{fill:#fff;font-size:11px;font-weight:500;pointer-events:none}:root:not([data-theme=dark]) .gate-text,[data-theme=light] .gate-text,body:not([data-theme=dark]) .gate-text{fill:#000!important}:root:not([data-theme=dark]) .gate-body,[data-theme=light] .gate-body,body:not([data-theme=dark]) .gate-body{stroke:#000!important;fill:#fff!important}:root:not([data-theme=dark]) .schematic-instance-label,[data-theme=light] .schematic-instance-label,body:not([data-theme=dark]) .schematic-instance-label{fill:#000!important}:root:not([data-theme=dark]) .schematic-instance-port-text,[data-theme=light] .schematic-instance-port-text,body:not([data-theme=dark]) .schematic-instance-port-text{fill:#000!important}.gate-body:hover{stroke:var(--accent-primary)!important}
