:root{--text:#fff;--bg:#0f172a;--card-bg:#1e293b;--border:#334155;--accent:#38bdf8;--accent-hover:#0ea5e9;--primary:#818cf8;--primary-hover:#6366f1;--header-height:80px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,system-ui,-apple-system,sans-serif}body{background:var(--bg);color:var(--text);height:100vh;margin:0;padding:0;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex}header{height:var(--header-height);background:var(--card-bg);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:0 40px;display:flex;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}header h1{background:linear-gradient(to right, var(--accent), var(--primary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;flex-shrink:0;margin:0;font-size:24px;font-weight:700}.status-container{flex-grow:1;justify-content:center;align-items:center;gap:24px;display:flex}.status-item{color:#64748b;border:1px solid var(--border);background:#ffffff08;border-radius:20px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:600;transition:color .3s;display:flex}.status-item.connected{color:#10b981;background:#10b9810d;border-color:#10b98133}.status-item.searching{color:#f59e0b;background:#f59e0b0d;border-color:#f59e0b33}.status-dot{background:#64748b;border-radius:50%;width:8px;height:8px;transition:all .3s;box-shadow:0 0 0 2px #64748b1a}.status-item.connected .status-dot{background:#10b981;animation:2s infinite pulse;box-shadow:0 0 8px #10b981}.status-item.searching .status-dot{background:#f59e0b;animation:1.5s infinite pulse-orange;box-shadow:0 0 8px #f59e0b}@keyframes pulse-orange{0%{box-shadow:0 0 #f59e0b66}70%{box-shadow:0 0 0 6px #f59e0b00}to{box-shadow:0 0 #f59e0b00}}@keyframes pulse{0%{box-shadow:0 0 #10b98166}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}.controls{gap:16px;display:flex}.premium-btn{border:1px solid var(--border);color:#fff;cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:8px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.premium-btn:hover{background:var(--card-bg);border-color:var(--accent);transform:translateY(-1px)}.premium-btn.primary{background:var(--primary);border-color:var(--primary)}.premium-btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:0 0 15px #818cf866}.premium-btn.connected{background:#10b981;border-color:#10b981;box-shadow:0 0 10px #10b9814d}.premium-btn.connected:hover{background:#059669;border-color:#059669}.dropdown{display:inline-block;position:relative}.dropdown-content{z-index:100;min-width:220px;padding-top:8px;display:none;position:absolute;top:100%;left:50%;transform:translate(-50%)}.dropdown-content.right-align{left:auto;right:0;transform:none}.dropdown-content:after{content:"";background:var(--card-bg);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:-1;border-radius:10px;display:block;position:absolute;inset:8px 0 0;box-shadow:0 10px 25px -5px #0000004d,0 8px 10px -6px #0000004d}.dropdown.active .dropdown-content{animation:.2s cubic-bezier(.4,0,.2,1) fadeInDown;display:block}@keyframes fadeInDown{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.dropdown-item{color:#94a3b8;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:12px 16px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.dropdown-item:first-of-type{border-radius:10px 10px 0 0}.dropdown-item:last-of-type{border-radius:0 0 10px 10px}.dropdown-item:hover{color:#fff;background:#ffffff0d}.dropdown-item.active{color:var(--accent);background:#38bdf80d}.dropdown-item.connected{color:#10b981}.dropdown-item.connected:after{content:"✓";margin-left:auto;font-size:12px}.premium-select{border:1px solid var(--border);background:var(--card-bg);color:#fff;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;border-radius:8px;outline:none;padding:10px 40px 10px 16px;font-size:14px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.premium-select:hover{border-color:var(--accent)}.premium-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #38bdf833}main{box-sizing:border-box;background:var(--bg);flex-grow:1;gap:16px;width:100%;padding:20px;display:flex;position:relative}#blocklyDiv{min-width:0;height:calc(100vh - var(--header-height) - 40px);border:1px solid var(--border);touch-action:none;background:#1a2744;border-radius:12px;flex:1;overflow:hidden}.blocklyHighlighted>.blocklyPath{filter:drop-shadow(0 0 6px var(--accent));stroke:var(--accent)!important;stroke-width:4px!important}.blocklyMainBackground{stroke:none!important;fill:#1a2744!important}.blocklyToolbox{border-right:1px solid var(--border)!important;color:var(--text)!important;background-color:#162035!important}.blocklyTreeLabel{color:var(--text)!important;font-family:inherit!important}.blocklyFlyoutBackground{fill:#1e2d4a!important;fill-opacity:.95!important}#sidebarRight{height:calc(100vh - var(--header-height) - 40px);border:1px solid var(--border);background:#0c1222;border-radius:12px;width:400px;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}#sidebarRight.collapsed{width:48px}.sidebar-tray{border-right:1px solid var(--border);background:#090e1a;flex-direction:column;flex-shrink:0;align-items:center;gap:12px;width:48px;padding:12px 0;display:flex}.tray-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:all .2s;display:flex}.tray-btn:hover{border-color:var(--border);background:#ffffff0d}.tray-btn.active{border-color:var(--accent);color:var(--accent);background:#38bdf826}.sidebar-content{flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.panel{flex-direction:column;flex:1;height:100%;animation:.3s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.panel.hidden{display:none}.panel-header{border-bottom:1px solid var(--border);background:#ffffff05;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.panel-header h3{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:14px;font-weight:600}.canvas-wrap{flex:1;min-height:0;position:relative}#simulationCanvas,#lidarCanvas{width:100%;height:100%;display:block}.panel-actions{align-items:center;gap:8px;display:flex}.premium-btn.sm{padding:6px 12px;font-size:11px}.text-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:12px;font-weight:600;transition:background .2s}.text-btn:hover{background:#38bdf81a}.premium-btn.danger{background:#ef4444;border-color:#ef4444;animation:2s infinite danger-glow}.premium-btn.danger:hover{background:#dc2626;border-color:#dc2626;box-shadow:0 0 15px #ef444480}.premium-btn.danger-estop{color:#fff;text-transform:uppercase;letter-spacing:1px;background:#dc2626;border-color:#b91c1c;font-weight:800;animation:1.5s infinite estop-pulse;box-shadow:0 0 20px #dc262699}.premium-btn.danger-estop:hover{background:#b91c1c;border-color:#991b1b;transform:scale(1.05);box-shadow:0 0 30px #dc2626cc}@keyframes estop-pulse{0%{box-shadow:0 0 10px #dc262666}50%{box-shadow:0 0 25px #dc2626cc}to{box-shadow:0 0 10px #dc262666}}@keyframes danger-glow{0%,to{box-shadow:0 0 5px #ef44444d}50%{box-shadow:0 0 15px #ef444480}}.premium-btn.primary:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.execution-bar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9;background:linear-gradient(135deg,#818cf814,#38bdf80f);border-bottom:1px solid #818cf833;align-items:center;gap:16px;height:44px;padding:0 40px;transition:all .35s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.execution-bar.hidden{opacity:0;border-bottom:none;height:0;padding-top:0;padding-bottom:0}.execution-bar.status-running{background:linear-gradient(135deg,#818cf81a,#38bdf80f);border-bottom-color:#818cf840}.execution-bar.status-finished{background:linear-gradient(135deg,#10b9811a,#34d3990f);border-bottom-color:#10b98140}.execution-bar.status-stopped{background:linear-gradient(135deg,#f59e0b1a,#fbbf240f);border-bottom-color:#f59e0b40}.execution-bar.status-error{background:linear-gradient(135deg,#ef44441a,#f871710f);border-bottom-color:#ef444440}.exec-status{flex-shrink:0;align-items:center;gap:10px;display:flex}.exec-icon{font-size:16px;line-height:1;animation:1.2s linear infinite spin-icon}.execution-bar:not(.status-running) .exec-icon{animation:none}@keyframes spin-icon{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.exec-text{color:#cbd5e1;white-space:nowrap;font-size:13px;font-weight:600}.execution-bar.status-running .exec-text{color:var(--primary)}.execution-bar.status-finished .exec-text{color:#10b981}.execution-bar.status-stopped .exec-text{color:#f59e0b}.execution-bar.status-error .exec-text{color:#ef4444}.exec-timer{color:#64748b;font-variant-numeric:tabular-nums;min-width:42px;font-size:12px;font-weight:500}.exec-progress-track{background:#ffffff0f;border-radius:4px;flex:1;height:4px;overflow:hidden}.exec-progress-bar{border-radius:4px;width:0%;height:100%;transition:width .3s}.execution-bar.status-running .exec-progress-bar{background:linear-gradient(90deg, var(--primary), var(--accent));animation:1.8s ease-in-out infinite progress-indeterminate;width:100%!important}.execution-bar.status-finished .exec-progress-bar{background:#10b981;animation:none;width:100%!important}.execution-bar.status-stopped .exec-progress-bar{background:#f59e0b;animation:none}.execution-bar.status-error .exec-progress-bar{background:#ef4444;animation:none;width:100%!important}@keyframes progress-indeterminate{0%{transform:translate(-100%)}50%{transform:translate(0%)}to{transform:translate(100%)}}.exec-stop-btn{color:#ef4444;cursor:pointer;background:#ef44441a;border:1px solid #ef444466;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;transition:all .2s;display:flex}.exec-stop-btn:hover{background:#ef444440;border-color:#ef4444;transform:scale(1.05)}.execution-bar:not(.status-running) .exec-stop-btn{opacity:0;pointer-events:none}#toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:12px;display:flex;position:fixed;top:24px;right:24px}.toast{background:var(--card-bg);border:1px solid var(--border);pointer-events:auto;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;align-items:center;gap:12px;min-width:280px;max-width:400px;padding:12px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;transform:translate(120%);box-shadow:0 10px 15px -3px #0006,0 4px 6px -2px #0003}.toast.visible{transform:translate(0)}.toast-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.toast-text{color:var(--text);font-size:14px;font-weight:500;line-height:1.4}.toast.success{border-left:4px solid #10b981}.toast.error{border-left:4px solid #ef4444}.toast.warning{border-left:4px solid #f59e0b}.toast.info{border-left:4px solid var(--accent)}.resizer{cursor:col-resize;z-index:5;background:0 0;width:4px;transition:background .2s;position:absolute;top:0;bottom:0;left:0}.resizer:hover,.resizer.resizing{background:var(--accent)}#sidebarRight{position:relative}
