body{margin:0;overflow:hidden;font-family:sans-serif;background:#222}body>canvas{display:block;width:100vw;height:100vh;position:absolute;top:0;left:0;z-index:0}#toolbar{position:absolute;top:0;left:0;width:100%;height:40px;background:#333;border-bottom:1px solid #555;display:flex;align-items:center;padding:0 10px;box-sizing:border-box;z-index:20;color:#eee;gap:20px;font-size:14px}.toolbar-item{cursor:pointer;padding:5px 10px;border-radius:4px}.toolbar-item:hover{background:#444}#left-bar,#right-bar{position:absolute;top:40px;bottom:25px;width:50px;background:#282828;border-right:1px solid #444;display:flex;flex-direction:column;align-items:center;padding-top:10px;gap:15px;z-index:20}#left-bar{left:0;border-right:1px solid #444}#right-bar{right:0;border-left:1px solid #444;border-right:none}.icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;border-radius:6px;color:#aaa;transition:background .2s,color .2s}.icon-btn:hover{background:#444;color:#fff}.icon-btn.dragging{opacity:.5;position:fixed;z-index:1000;pointer-events:none}.icon-btn-placeholder{width:36px;height:36px;background:#ffffff0d;border-radius:6px;border:1px dashed #555}#status-bar{position:absolute;bottom:0;left:0;width:100%;height:25px;background:#3c3836;color:#ebdbb2;display:flex;align-items:center;padding:0 10px;box-sizing:border-box;font-size:12px;z-index:20;border-top:1px solid #504945}.floating-window{position:absolute;top:100px;right:60px;width:300px;height:250px;background:#282828f2;border:1px solid #555;border-radius:4px;display:flex;flex-direction:column;z-index:30;box-shadow:0 4px 12px #00000080}.window-header{font-family:sans-serif;font-size:12px;color:#ebdbb2;background:#333;padding:5px 10px;display:flex;justify-content:space-between;align-items:center;cursor:move;border-radius:4px 4px 0 0;-webkit-user-select:none;user-select:none}.window-title{font-weight:700}.window-close{cursor:pointer;font-size:14px;color:#999}.window-close:hover{color:#fff}.plot-copy-btn{position:absolute;top:10px;right:10px;background:#323232cc;border:1px solid #666;border-radius:4px;padding:4px;cursor:pointer;font-size:16px;opacity:0;transition:opacity .2s;z-index:10;color:#ebdbb2;display:flex;align-items:center;justify-content:center}.plot-copy-btn:hover{background:#464646e6}.window-canvas{background:#282828;display:block;width:100%;flex:1;min-height:0}.window-footer{flex:0 0 auto;background:#333;border-top:1px solid #555;display:flex;flex-direction:column;padding:5px 10px;border-radius:0 0 4px 4px;position:relative;gap:4px}.resize-handle{position:absolute;bottom:0;right:0;width:15px;height:15px;cursor:se-resize;background:linear-gradient(135deg,transparent 50%,#665c54 50%);border-radius:0 0 4px;z-index:40}#stack-panel,#inspector-panel{position:absolute;top:50px;background:#282828f2;color:#eee;border-radius:6px;display:flex;flex-direction:column;max-height:calc(100vh - 90px);box-shadow:0 4px 12px #0000004d;border:1px solid #555;z-index:10}#stack-panel{left:60px;width:220px}#inspector-panel{right:60px;width:280px;overflow-y:auto}.panel-header{padding:12px;background:#333;color:#fff;font-weight:700;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom:1px solid #555}.panel-footer{padding:10px;border-top:1px solid #555}.stack-item{padding:10px 12px;border-bottom:1px solid #555;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .2s}.stack-item:hover{background:#555}.stack-item.active{background:#007bff;color:#fff;border-bottom-color:#0056b3}.stack-icon{font-family:monospace;font-weight:700;opacity:.7}.inspector-group{padding:10px 15px;border-bottom:1px solid #555}.inspector-group label{display:block;font-size:12px;color:#aaa;margin-bottom:5px;font-weight:600}.inspector-group input,.inspector-group select{width:100%;padding:8px;background:#222;color:#eee;border:1px solid #555;border-radius:4px;box-sizing:border-box;font-size:14px}.inspector-group input:focus{border-color:#007bff;outline:none}button{width:100%;padding:10px;background:#555;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:700;transition:background .2s}button:hover{background:#666}#add-lens-btn{background:#28a745}#add-lens-btn:hover{background:#218838}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}
