:root{--bg:#0b0d12;--panel:#16181f;--stroke:#2b3240;--text:#eef2ff;--muted:#97a0b5;--drop:#38bdf8;--print:#1d9bf0;--delay:#c2185b;--led:#14b8a6;--loop:#00c2a8;--wire:rgba(148, 163, 184, 0.45);--chip-dark:#0f141d;--chip-face:#1a2230;--pin-metal:#a8b4c7;--pin-shadow:#5b6575;--sidebar-width:280px;--sidebar-collapsed-width:68px;--code-width:400px;--ui-scale:0.8}*{box-sizing:border-box}body,html{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Inter,Arial,sans-serif;color:var(--text);background:#1f1f1f}#loaderOverlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:rgba(3,7,18,.62);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:opacity .35s ease}body.app-loading #loaderOverlay{opacity:1;pointer-events:all}#loaderOverlay .loader{width:min(360px,calc(100vw - 32px));padding:18px 20px 14px;border-radius:16px;border:1px solid rgba(148,163,184,.3);background:rgba(15,23,42,.86);box-shadow:0 18px 44px rgba(0,0,0,.45);text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}#loaderOverlay .sandwich{position:relative;width:130px;height:96px}#loaderOverlay .slice{position:absolute;width:100%;height:100%;opacity:0;transform:translateY(22px);transition:transform .32s ease,opacity .32s ease}#loaderOverlay .slice.show{opacity:1;transform:translateY(0)}#loaderOverlay .slice img{width:100%;display:block;filter:brightness(0) invert(1) contrast(1.05)}#loaderOverlay .top img{clip-path:inset(0 0 55% 0)}#loaderOverlay .mid1 img{clip-path:inset(25% 0 35% 0)}#loaderOverlay .mid2 img{clip-path:inset(45% 0 20% 0)}#loaderOverlay .bottom img{clip-path:inset(70% 0 0 0)}#loaderOverlay .progress-bar{width:100%;height:8px;margin:10px 0 10px;border-radius:999px;background:rgba(148,163,184,.2);overflow:hidden}#progress{width:12%;height:100%;border-radius:999px;background:linear-gradient(90deg,#38bdf8,#22c55e);box-shadow:0 0 18px rgba(56,189,248,.45);transition:width .24s ease;position:relative;overflow:hidden}#progress.initializing{animation:loaderProgressPulse 1.1s ease-in-out infinite}#progress.initializing::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.35) 50%,transparent 100%);transform:translateX(-100%);animation:loaderProgressSweep 1.2s linear infinite}#tools{width:44px;opacity:0;filter:brightness(0) invert(1) contrast(1.05);transition:opacity .35s ease}#tools.show{opacity:1}#status{font-size:13px;color:#cbd5e1}body.app-loading .app{filter:blur(8px);pointer-events:none}@keyframes loaderFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes loaderProgressPulse{0%,100%{box-shadow:0 0 12px rgba(56,189,248,.35)}50%{box-shadow:0 0 22px rgba(56,189,248,.7)}}@keyframes loaderProgressSweep{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}body.interaction-active{user-select:none}*{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,0.2) transparent}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:rgba(148,163,184,.15);border-radius:20px}::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.3)}::-webkit-scrollbar-corner{background:0 0}.app{position:fixed;top:8px;left:8px;margin:0;width:calc((100vw - 16px)/ var(--ui-scale));min-height:calc((100vh - 16px)/ var(--ui-scale));height:calc((100vh - 16px)/ var(--ui-scale));border-radius:40px;background:#0f1117;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr) 10px var(--code-width);grid-template-rows:auto minmax(0,1fr);overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.38);transform:scale(var(--ui-scale));transform-origin:top left}.app.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed-width) minmax(0,1fr) 10px var(--code-width)}.top-toolbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;background:linear-gradient(180deg,rgba(18,22,31,.98),rgba(14,18,25,.96));border-bottom:1px solid rgba(148,163,184,.1)}.toolbar-brand{display:flex;align-items:center;gap:12px;min-width:fit-content;flex:0 0 auto;color:inherit;text-decoration:none;transition:transform .16s ease,opacity .16s ease}.toolbar-brand img{width:44px;height:44px;border-radius:14px;object-fit:cover;filter:brightness(0) invert(1) contrast(1.08);box-shadow:0 6px 18px rgba(0,0,0,.28)}.toolbar-brand strong{font-size:2rem;color:#eef2ff}.toolbar-brand:focus-visible,.toolbar-brand:hover{transform:translateY(-1px);opacity:.96}.toolbar-brand span{color:var(--muted);font-size:12px}.toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;flex:1;margin-left:auto}.toolbar-group{display:flex;align-items:center;gap:10px;padding:6px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(148,163,184,.08)}.toolbar-group.connect-group{margin-left:auto}.toolbar-group.firmware-group{justify-content:center;margin-left:18px}.toolbar-group.run-group{margin-left:18px}.toolbar-group.firmware-group::before{content:"Firmware";color:#94a3b8;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-right:2px}.toolbar-actions button{border:none;border-radius:14px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer}.toolbar-actions .device-btn{background:rgba(255,255,255,.08);color:#eef2ff}.toolbar-actions .device-btn.connect-state.connected{background:rgba(239,68,68,.16);color:#fecaca;box-shadow:inset 0 0 0 1px rgba(239,68,68,.18)}.toolbar-actions .device-btn.connect-state.disconnected{background:rgba(58,205,21,.12);color:#dbe4f2;box-shadow:inset 0 0 0 1px rgba(148,163,184,.18)}.toolbar-actions .github-repo-btn{background:rgba(15,23,42,.92);color:#f8fafc;box-shadow:inset 0 0 0 1px rgba(148,163,184,.22)}.toolbar-actions .github-repo-btn.connected{background:rgba(22,163,74,.16);color:#dcfce7;box-shadow:inset 0 0 0 1px rgba(34,197,94,.28)}.premium-select-wrapper{position:relative;display:inline-block;width:100%;user-select:none}.premium-select-wrapper.header-selector{width:auto;min-width:160px}.premium-select-display{display:flex;align-items:center;justify-content:space-between;background-color:rgba(255,255,255,.05);color:#eef2ff;border:1px solid rgba(148,163,184,.12);border-radius:10px;padding:8px 12px;font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4, 0, .2, 1);box-shadow:0 2px 4px rgba(0,0,0,.1);gap:12px}.premium-select-wrapper:hover .premium-select-display{background-color:rgba(255,255,255,.09);border-color:rgba(148,163,184,.24);box-shadow:0 4px 8px rgba(0,0,0,.15)}body.interaction-active .premium-select-wrapper{pointer-events:none}.premium-select-wrapper.open .premium-select-display{border-color:var(--drop);box-shadow:0 0 0 2px rgba(56,189,248,.15)}.premium-select-wrapper.open .premium-select-display svg{transform:rotate(180deg)}.premium-select-display svg{transition:transform .3s ease;flex-shrink:0}.header-selector .premium-select-display{border-radius:14px;padding:10px 14px;font-size:14px;font-weight:600}.premium-select-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#16181f;border:1px solid rgba(148,163,184,.15);border-radius:10px;overflow:hidden;z-index:9999;box-shadow:0 10px 25px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s cubic-bezier(.4, 0, .2, 1);max-height:250px;overflow-y:auto}.premium-select-wrapper.open .premium-select-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.premium-select-option{padding:10px 14px;color:#94a3b8;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.header-selector .premium-select-option{font-size:14px}.premium-select-option:hover{background:rgba(56,189,248,.1);color:var(--drop)}.premium-select-option.selected{background:rgba(56,189,248,.15);color:var(--drop);font-weight:600;border-left:3px solid var(--drop)}.premium-select-wrapper select{display:none!important}.toolbar-actions .icon-text{display:inline-flex;align-items:center;gap:8px}.toolbar-actions .icon-text svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.toolbar-actions .icon-text .connect-sandwich-icon{width:16px;height:16px;object-fit:contain;transition:filter .16s ease,opacity .16s ease}.toolbar-actions .device-btn.connect-state.disconnected .connect-sandwich-icon{filter:grayscale(1) brightness(.75);opacity:.55}.toolbar-actions .device-btn.connect-state.connected .connect-sandwich-icon{filter:invert(1) brightness(2);opacity:1}@keyframes sandwichPulse{0%{transform:scale(1);filter:invert(1) brightness(2)}50%{transform:scale(1.2);filter:invert(1) brightness(3) drop-shadow(0 0 8px #facc15)}100%{transform:scale(1);filter:invert(1) brightness(2)}}.connect-sandwich-icon.pulsing{animation:sandwichPulse 1s infinite ease-in-out}.connect-sandwich-icon.cooked{filter:invert(.8) sepia(1) saturate(5) hue-rotate(10deg) brightness(1.2) drop-shadow(0 0 10px #fb923c)!important;transform:scale(1.1);transition:all .5s cubic-bezier(.175, .885, .32, 1.275)}.toolbar-actions .icon-only{width:42px;padding:10px 0;justify-content:center}.toolbar-actions .firmware-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.firmware-picker{display:inline-flex;align-items:center;gap:10px;min-width:250px;max-width:340px;padding:0 4px 0 0;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(148,163,184,.08)}.firmware-choose{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 14px;border-radius:12px;background:#f8fafc;color:#0f172a;font-size:13px;font-weight:700;cursor:pointer;flex:0 0 auto}.firmware-name{min-width:0;flex:1 1 auto;color:#cbd5e1;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.firmware-picker.has-file{border-color:rgba(56,189,248,.28);background:rgba(56,189,248,.08);box-shadow:0 0 0 1px rgba(56,189,248,.08) inset}.firmware-picker.has-file .firmware-name{color:#e0f2fe;font-weight:600}.firmware-clear{display:none;width:28px;height:28px;border:none;border-radius:999px;align-items:center;justify-content:center;background:rgba(255,255,255,.08);color:#eef2ff;font-size:15px;cursor:pointer;flex:0 0 auto}.firmware-picker.has-file .firmware-clear{display:inline-flex}.toolbar-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.panel{min-width:0;background:linear-gradient(180deg,rgba(22,24,31,.98),rgba(10,12,17,.98));border-right:1px solid rgba(148,163,184,.08)}.sidebar{position:relative;padding:10px 14px 0;display:flex;flex-direction:column;overflow:hidden;grid-row:2;transition:padding .18s ease}.sidebar::after{content:"";position:absolute;right:6px;top:50%;transform:translateY(-50%);width:4px;height:180px;border-radius:999px;background:rgba(148,163,184,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);pointer-events:none}.sidebar::before{content:"";position:absolute;right:6px;top:50%;transform:translateY(-50%);width:4px;height:178px;border-radius:999px;background:linear-gradient(180deg,rgba(125,211,252,.02) 0,rgba(56,189,248,.14) 18%,rgba(56,189,248,.92) 50%,rgba(56,189,248,.14) 82%,rgba(125,211,252,.02) 100%);box-shadow:inset 0 0 4px rgba(125,211,252,.18),inset 0 18px 18px rgba(125,211,252,.08),inset 0 -18px 18px rgba(125,211,252,.08);pointer-events:none;z-index:1}.app.sidebar-collapsed .sidebar{padding:18px 10px 0;overflow:hidden!important}.app.sidebar-collapsed .sidebar::before{background:linear-gradient(180deg,rgba(203,213,225,.02) 0,rgba(148,163,184,.12) 18%,rgba(100,116,139,.72) 50%,rgba(148,163,184,.12) 82%,rgba(203,213,225,.02) 100%);box-shadow:inset 0 0 3px rgba(203,213,225,.12),inset 0 18px 18px rgba(203,213,225,.05),inset 0 -18px 18px rgba(203,213,225,.05)}.app.sidebar-collapsed .sidebar::after,.app.sidebar-collapsed .sidebar::before{display:none!important}#openSimulatorBtn{display:none;justify-content:center}.app.sidebar-collapsed #openSimulatorBtn{display:flex}.sidebar-toggle{border:none;width:46px;height:46px;max-width:46px;padding:0 14px;border-radius:16px;display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;overflow:hidden;white-space:nowrap;background:0 0;color:#eef2ff;font-size:22px;cursor:pointer;border:1px solid transparent;box-shadow:none;opacity:.7;transition:max-width .18s ease,transform .18s ease,background .2s,border .2s,box-shadow .2s,opacity .2s}.sidebar-toggle:focus-visible,.sidebar-toggle:hover{background:linear-gradient(180deg,rgba(29,36,50,.9),rgba(19,24,34,.96));border-color:rgba(148,163,184,.12);box-shadow:0 10px 24px rgba(0,0,0,.18);opacity:1}.sidebar-toggle .sidebar-toggle-icon{flex:0 0 22px;width:22px;height:18px;position:relative}.app:not(.sidebar-collapsed) .sidebar-toggle .sidebar-toggle-icon{display:none}.sidebar-toggle .sidebar-toggle-icon::after,.sidebar-toggle .sidebar-toggle-icon::before{content:"";position:absolute;left:1px;width:20px;height:7px;border:2px solid #eef2ff;border-radius:7px}.sidebar-toggle .sidebar-toggle-icon::before{top:1px;border-bottom:none;border-radius:10px 10px 6px 6px}.sidebar-toggle .sidebar-toggle-icon::after{bottom:1px;background:rgba(238,242,255,.06)}.sidebar-toggle .sidebar-toggle-label{opacity:0;transition:opacity .15s ease;font-size:13px;font-weight:700;letter-spacing:.02em;display:none}.sidebar-toggle .sidebar-toggle-arrow{opacity:0;transition:opacity .15s ease;font-size:30px;font-weight:700;display:none;line-height:1}.app:not(.sidebar-collapsed) .sidebar-toggle{max-width:46px;padding:0 12px;justify-content:center}.app:not(.sidebar-collapsed) .sidebar-toggle .sidebar-toggle-arrow{display:inline;opacity:1}.app:not(.sidebar-collapsed) .sidebar-toggle:focus-visible,.app:not(.sidebar-collapsed) .sidebar-toggle:hover{max-width:110px;justify-content:center}.app:not(.sidebar-collapsed) .sidebar-toggle:focus-visible .sidebar-toggle-label,.app:not(.sidebar-collapsed) .sidebar-toggle:hover .sidebar-toggle-label{display:inline;opacity:1}.app:not(.sidebar-collapsed) .sidebar-toggle:focus-visible .sidebar-toggle-arrow,.app:not(.sidebar-collapsed) .sidebar-toggle:hover .sidebar-toggle-arrow{display:none;opacity:0}.collapsed-separator{width:24px;height:1px;background:rgba(255,255,255,.15);margin:4px 0}.open-only{display:flex!important}.app.sidebar-collapsed .open-only{display:none!important}.collapsed-only{display:none!important}.app.sidebar-collapsed .collapsed-only{display:flex!important}.app.sidebar-collapsed .category-drawer,.app.sidebar-collapsed .drawer label,.app.sidebar-collapsed .drawer-actions,.app.sidebar-collapsed .file-tree,.app.sidebar-collapsed .header-back,.app.sidebar-collapsed .library-search-container,.app.sidebar-collapsed .section-toolbar,.app.sidebar-collapsed .sidebar-intro{display:none!important}.app.sidebar-collapsed .sidebar-section{border:none;background:0 0;padding:2px 0;margin:0;align-items:center}.app.sidebar-collapsed .drawer{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:0;width:100%}.app.sidebar-collapsed .sidebar-toggle{max-width:46px;padding:0 12px;justify-content:center}.app.sidebar-collapsed .sidebar-toggle:focus-visible,.app.sidebar-collapsed .sidebar-toggle:hover{max-width:130px;justify-content:flex-start}.app.sidebar-collapsed .sidebar-toggle:focus-visible .sidebar-toggle-label,.app.sidebar-collapsed .sidebar-toggle:hover .sidebar-toggle-label{display:inline;opacity:1}.sidebar h1{margin:0 0 6px;font-size:20px}.code-head p,.sidebar p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.sidebar-intro{display:flex;flex-direction:column;gap:6px}.sidebar-intro h1{font-size:16px;font-weight:800;margin:0 0 6px 0;color:#fff;letter-spacing:-.02em}.sidebar-section{display:flex;flex-direction:column;overflow:hidden;background:0 0;border-bottom:1px solid rgba(148,163,184,.08);margin-top:0;padding:2px 0 10px 0;min-height:0}.explorer-section{flex:0 0 250px;display:flex;flex-direction:column;overflow:hidden}.file-tree{display:flex;flex-direction:column;gap:1px;overflow-y:auto;overflow-x:hidden;padding-right:4px;flex:1}.tree-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .15s ease;color:#94a3b8;border:1px solid transparent;width:100%}.tree-item.folder{cursor:default;padding-left:4px;color:#cbd5e1;font-weight:500}.tree-file-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.tree-action-btn{background:0 0;border:none;color:#94a3b8;font-size:18px;padding:0 4px;cursor:pointer;opacity:0;transition:opacity .2s,color .2s;line-height:1}.tree-item:hover .tree-action-btn{opacity:.6}.tree-action-btn:hover{opacity:1!important}.tree-action-btn.delete:hover{color:#ef4444}.tree-item:hover{background:rgba(255,255,255,.04);color:#fff}.tree-item.active{background:rgba(56,189,248,.08);color:var(--drop);border-color:transparent;font-weight:500}.tree-icon{font-size:12px;width:14px;display:flex;align-items:center;justify-content:center;opacity:.6}.tree-children{margin-left:10px;border-left:1px solid rgba(148,163,184,.1);padding-left:2px;display:flex;flex-direction:column;gap:1px}.library-section{flex:1.5;border-bottom:none}.panel-resizer{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));cursor:col-resize;grid-row:2}.panel-resizer::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:76px;border-radius:999px;background:linear-gradient(180deg,rgba(148,163,184,.22),rgba(56,189,248,.45),rgba(148,163,184,.22));box-shadow:0 0 12px rgba(56,189,248,.15)}.drawer{display:flex;align-items:center;gap:2px;min-height:32px;flex-shrink:0}.panel-resizer.dragging::before,.panel-resizer:hover::before{background:linear-gradient(180deg,rgba(125,211,252,.4),rgba(56,189,248,.9),rgba(125,211,252,.4))}.explorer-drawer{display:flex;flex-direction:row;padding:0 6px 6px 0!important;border-bottom:1px solid rgba(255,255,255,.05);margin-bottom:6px;min-height:36px}.drawer-main{flex:1;display:flex;flex-direction:column;gap:4px}.drawer-title-row{display:flex;align-items:center;min-height:14px}.drawer-actions-row{display:flex;align-items:center;min-height:20px}.drawer-side{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-left:8px;border-left:1px solid rgba(255,255,255,.05)}.app.sidebar-collapsed .explorer-drawer{padding:4px 0!important;border:none;flex-direction:column}.app.sidebar-collapsed .drawer-main{display:none}.app.sidebar-collapsed .drawer-side{border:none;padding:0;width:100%;display:flex;flex-direction:column;align-items:center;gap:12px}.app.sidebar-collapsed .header-more svg{width:22px!important;height:22px!important}.drawer label{font-size:10px;color:#64748b;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.library-section .drawer{padding:8px 12px 8px 12px;min-height:32px}.header-back,.header-more{background:0 0!important;border:none!important;color:#94a3b8!important;cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:all .2s;padding:0!important;flex-shrink:0}.header-back:hover,.header-more:hover{opacity:1;color:#fff!important}#libManagerBtn svg,#libManagerBtnTop svg{width:18px;height:18px;stroke-width:2.2}.category-drawer{display:grid;grid-template-columns:repeat(3,1fr);justify-items:center;align-content:start;gap:16px 8px;overflow-y:auto;overflow-x:hidden;padding:8px 0;flex:1}.category-drawer::-webkit-scrollbar{width:4px}.category-drawer::-webkit-scrollbar-thumb{background:rgba(56,189,248,.15);border-radius:10px}.category-drawer::-webkit-scrollbar-thumb:hover{background:rgba(56,189,248,.3)}.library-search-container{padding:6px 12px 12px 12px;background:0 0}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input-wrapper .search-icon{position:absolute;left:10px;width:14px;height:14px;color:#64748b;pointer-events:none}.search-input-wrapper input{width:100%;background:rgba(30,41,59,.5);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:7px 10px 7px 32px;color:#fff;font-size:12px;transition:all .2s ease;font-family:inherit}.search-input-wrapper input:focus{outline:0;border-color:rgba(56,189,248,.3);background:rgba(30,41,59,.8);box-shadow:0 0 10px rgba(56,189,248,.1)}.search-input-wrapper input::placeholder{color:#64748b}.palette-block{border:none;background:0 0;color:#fff;display:flex;flex-direction:column;align-items:center;padding:0;cursor:grab;transition:transform .2s;min-height:auto}.palette-block.category-item{cursor:pointer}.palette-block:hover{transform:translateY(-2px)}.icon-wrapper{width:68px;height:68px;background:rgba(30,41,59,.4);border:1px solid rgba(255,255,255,.08);border-radius:16px;display:flex;align-items:center;justify-content:center;transition:all .2s;position:relative;overflow:hidden}.palette-block:hover .icon-wrapper{background:rgba(30,41,59,.7);border-color:rgba(255,255,255,.15);box-shadow:0 8px 16px rgba(0,0,0,.2)}.palette-block strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:12px;font-weight:500;color:rgba(255,255,255,.8);white-space:normal;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:center;line-height:1.3;height:2.6em}.palette-block small{display:none}.palette-block .block-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:all .2s}.palette-block .block-icon svg{width:100%;height:100%;display:block}.palette-block:hover .block-icon{transform:scale(1.1);filter:drop-shadow(0 0 8px currentColor)}.controls{display:flex;flex-direction:column;gap:10px}.controls button{border:none;border-radius:16px;padding:13px 16px;font-size:15px;cursor:pointer}.ghost-btn{background:#e5e7eb;color:#111827}.primary-btn{background:linear-gradient(135deg,var(--drop),#2563eb);color:#fff;font-weight:700}.drawer-actions{display:flex;gap:2px;margin-right:4px;align-items:center}.drawer-actions button{background:0 0;border:none;color:#94a3b8;width:22px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.6;transition:all .2s;border-radius:4px;padding:0}.drawer-actions button:hover{opacity:1;background:rgba(255,255,255,.05);color:#fff}.drawer-actions svg{width:14px;height:14px;stroke-width:2.5}.drawer-actions button:hover{background:rgba(255,255,255,.06);color:#fff;opacity:1}.workspace-panel{min-width:0;position:relative;background:radial-gradient(circle at center,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(34,197,94,.04) 1px,transparent 1px),linear-gradient(rgba(34,197,94,.035) 1px,transparent 1px),linear-gradient(180deg,#171a22,#11141b);background-size:28px 28px,84px 84px,84px 84px,auto;grid-row:2;overflow:hidden}.code-head,.workspace-head{padding:16px 18px;border-bottom:1px solid rgba(148,163,184,.08)}.workspace-head{position:absolute;top:14px;left:18px;right:18px;z-index:5;padding:0;border-bottom:none;background:0 0;user-select:none;pointer-events:none}.code-head h2,.workspace-head h2{margin:0 0 4px;font-size:17px}.workspace-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.workspace-left-tools{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.workspace-title-chip{display:inline-flex;align-items:center;padding:10px 14px;border-radius:14px;background:rgba(15,23,42,.66);border:1px solid rgba(148,163,184,.1);backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(0,0,0,.18)}.canvas-actions{position:relative;z-index:6;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:auto}.canvas-action-list{display:flex;flex-direction:column;align-items:center;gap:12px;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.canvas-actions.open .canvas-action-list{opacity:1;transform:translateY(0);pointer-events:auto}.canvas-action-toggle{border:none;width:50px;height:50px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#f8fafc;color:#0f172a;box-shadow:0 12px 24px rgba(0,0,0,.24);font-size:22px;line-height:1;cursor:pointer;border:1px solid rgba(255,255,255,.72)}.canvas-action-toggle img{width:35px;height:35px;object-fit:contain;display:block;pointer-events:none}.canvas-actions.open .canvas-action-toggle{background:rgba(8,11,18,.96);color:#f8fafc;border-color:rgba(148,163,184,.24)}.floating-action{border:none;border-radius:999px;width:auto;height:35px;min-width:35px;max-width:35px;padding:0;display:inline-flex;align-items:center;gap:8px;overflow:hidden;white-space:nowrap;cursor:pointer;justify-content:center;box-shadow:0 10px 24px rgba(0,0,0,.24);transition:max-width .18s ease,background .18s ease,transform .18s ease,border-color .18s ease}.floating-action:focus-visible,.floating-action:hover{max-width:160px;padding:0 12px;justify-content:flex-start}.floating-action .action-icon{width:100%;text-align:center;flex:0 0 100%;font-size:16px;line-height:1;opacity:1;display:inline-flex;align-items:center;justify-content:center}.floating-action:focus-visible .action-icon,.floating-action:hover .action-icon{width:16px;flex:0 0 16px}.floating-action .action-label{display:none;opacity:0;font-size:12px;font-weight:700;transition:opacity .15s ease}.floating-action:focus-visible .action-label,.floating-action:hover .action-label{display:inline;opacity:1}.floating-action.clear-action,.floating-action.generate-action,.floating-action.layout-action,.floating-action.max-action,.floating-action.run-action{background:#f8fafc;color:#0f172a;font-weight:700;border:1px solid rgba(255,255,255,.7)}.floating-action.run-action{font-weight:600}.floating-action.alt-dark{background:rgba(8,11,18,.92);color:#f8fafc;font-weight:600;border:1px solid rgba(148,163,184,.24)}.canvas-fab{position:static;display:flex;align-items:center;gap:8px;padding:8px;margin-left:auto;border-radius:18px;background:rgba(15,23,42,.72);border:1px solid rgba(148,163,184,.12);backdrop-filter:blur(10px);pointer-events:auto}.zoom-btn,.zoom-readout{border:none;border-radius:12px;padding:8px 12px;font-size:13px}.zoom-btn{cursor:pointer;background:rgba(255,255,255,.08);color:#eef2ff}.zoom-btn.home-btn{background:linear-gradient(135deg,rgba(45,212,191,.22),rgba(14,116,144,.28));color:#ccfbf1}.zoom-btn.icon-btn{min-width:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;font-size:17px;line-height:1}.zoom-readout{min-width:74px;text-align:center;background:rgba(56,189,248,.12);color:#7dd3fc}#workspace{position:absolute;inset:0;min-height:0;overflow:auto;cursor:grab;user-select:none}#workspace.panning{cursor:grabbing}.canvas-shell{position:relative;min-width:0;min-height:0}.canvas{position:relative;min-width:3000px;min-height:3000px;transform-origin:top left}.connections{position:absolute;inset:0;pointer-events:none}.wire-base{fill:none;stroke:var(--wire);stroke-width:2.5;stroke-linecap:round}.wire-flow{fill:none;stroke:#7dd3fc;stroke-width:2;stroke-linecap:round;stroke-dasharray:10 14;animation:flow-dash 1.15s linear infinite;filter:drop-shadow(0 0 4px rgba(125, 211, 252, .55))}.wire-flow.loop-wire{stroke:#5eead4;filter:drop-shadow(0 0 4px rgba(94, 234, 212, .5))}.wire-base.loop-wire{stroke:rgba(94,234,212,0.45)}.wire-base.preview-wire{stroke:rgba(245,158,11,0.7);stroke-dasharray:6 6}.wire-flow.preview-wire{stroke:#f59e0b;animation-duration:.7s;filter:drop-shadow(0 0 5px rgba(245, 158, 11, .45))}.node-layer{position:absolute;inset:0}.empty-state{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 48px));padding:22px;border:1px dashed rgba(148,163,184,.35);border-radius:20px;text-align:center;color:var(--muted);background:rgba(10,12,17,.78);z-index:4;pointer-events:none}.node{position:absolute;width:210px;border-radius:20px;color:#fff;overflow:visible;cursor:grab;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.01));box-shadow:0 18px 30px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.1),inset 0 -8px 18px rgba(0,0,0,.18);border:2px solid rgba(255,255,255,.12)}body.interaction-active .node{cursor:grabbing}body.interaction-active .node input,body.interaction-active .node select{pointer-events:auto}.node::after,.node::before{content:"";position:absolute;top:18px;bottom:18px;width:12px;pointer-events:none;display:none;opacity:.72;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .3));z-index:-1}.node::before{left:-10px;border-radius:4px 0 0 4px}.node::after{right:-10px;border-radius:0 4px 4px 0}.node.pkg-qfp::after,.node.pkg-qfp::before{top:14px;bottom:14px;width:14px;display:none}.node.pkg-qfp::marker{content:""}.node.pkg-qfp .node-body{border-radius:0 0 18px 18px}.node.pkg-qfp{border-radius:12px;clip-path:polygon(8% 0,92% 0,100% 8%,100% 92%,92% 100%,8% 100%,0 92%,0 8%);border-color:rgba(251,191,36,.9);box-shadow:0 18px 30px rgba(0,0,0,.34),0 0 0 1px rgba(251,191,36,.18),inset 0 1px 0 rgba(255,255,255,.08)}.node.pkg-module{width:214px;border-radius:16px;clip-path:polygon(0 10%,10% 0,90% 0,100% 10%,100% 90%,90% 100%,10% 100%,0 90%);border-color:rgba(96,165,250,.85)}.node.pkg-module::after,.node.pkg-module::before{top:26px;bottom:26px;width:10px}.node.pkg-sensor{width:214px;border-radius:30px 30px 22px 22px;border-color:rgba(45,212,191,.88);box-shadow:0 18px 30px rgba(0,0,0,.34),0 0 0 1px rgba(45,212,191,.14),inset 0 1px 0 rgba(255,255,255,.08)}.node.pkg-sensor::after,.node.pkg-sensor::before{top:22px;bottom:22px;width:10px}.node.pkg-can{width:188px;border-radius:54px 54px 28px 28px;border-color:rgba(250,204,21,.85);box-shadow:0 18px 30px rgba(0,0,0,.34),0 0 0 1px rgba(250,204,21,.16),inset 0 1px 0 rgba(255,255,255,.08)}.node.pkg-can::before{left:auto;right:-18px;top:48px;bottom:auto;width:34px;height:4px;border-radius:999px;background:#f59e0b;box-shadow:0 10px 0 #f59e0b,0 20px 0 #f59e0b}.node.pkg-can::after{display:none}.node.pkg-can .node-body{border-radius:0 0 26px 26px}.node.pkg-buzzer{width:210px;border-radius:42px 42px 28px 28px;clip-path:polygon(12% 0,88% 0,100% 18%,100% 84%,84% 100%,16% 100%,0 84%,0 18%);border-color:rgba(250,204,21,.95);box-shadow:0 18px 30px rgba(0,0,0,.34),0 0 0 1px rgba(250,204,21,.2),inset 0 1px 0 rgba(255,255,255,.1)}.node.pkg-buzzer::before{left:auto;right:-18px;top:54px;bottom:auto;width:36px;height:4px;border-radius:999px;background:#d97706;box-shadow:0 12px 0 #d97706,0 24px 0 #d97706}.node.pkg-buzzer::after{display:none}.node.pkg-pir{width:214px;border-radius:44px 44px 34px 34px;clip-path:polygon(8% 12%,18% 0,82% 0,92% 12%,100% 28%,100% 84%,84% 100%,16% 100%,0 84%,0 28%);border-color:rgba(45,212,191,.94);box-shadow:0 18px 30px rgba(0,0,0,.34),0 0 0 1px rgba(45,212,191,.18),inset 0 1px 0 rgba(255,255,255,.08)}.node.pkg-pir::before{left:auto;right:-18px;top:60px;bottom:auto;width:32px;height:4px;border-radius:999px;background:#d97706;box-shadow:0 12px 0 #d97706}.node.pkg-pir::after{display:none}#maxOverlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.65);backdrop-filter:blur(12px);z-index:9999;padding:24px;overflow:auto}#maxOverlay.active{display:flex}#maxOverlay .max-content{position:relative;width:min(100%,600px);max-height:min(100%,90vh);background:rgba(30,33,43,.96);border:1px solid rgba(255,255,255,.12);border-radius:18px;box-shadow:0 18px 40px rgba(0,0,0,.45);padding:20px;overflow:auto;backdrop-filter:blur(0px)}#maxOverlay .max-close{position:absolute;top:12px;right:12px;border:none;background:rgba(255,255,255,.1);color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:20px;line-height:1}#maxOverlay h3{margin:0 0 10px;font-size:1rem;color:#d3dce6}#maxOverlay .max-code-output{margin:0;padding:14px;background:rgba(10,15,27,.9);color:#e2e8f0;border-radius:12px;border:1px solid rgba(148,163,184,.2);max-height:70vh;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:1rem}body.no-scroll{overflow:hidden}.node.pkg-ldr{width:210px;border-radius:24px 24px 16px 16px;clip-path:polygon(0 16%,14% 0,86% 0,100% 16%,100% 100%,0 100%);border-color:rgba(45,212,191,.92)}.node.pkg-ldr::after,.node.pkg-ldr::before{top:18px;bottom:18px;width:14px}.node.pkg-pot{width:210px;border-radius:18px;clip-path:polygon(18% 0,82% 0,100% 18%,100% 82%,82% 100%,18% 100%,0 82%,0 18%);border-color:rgba(168,85,247,.86);box-shadow:0 18px 30px rgba(0,0,0,.34),0 0 0 1px rgba(168,85,247,.16),inset 0 1px 0 rgba(255,255,255,.08)}.node.pkg-pot::after,.node.pkg-pot::before{display:none}.node.pkg-ultrasonic{width:214px;border-radius:18px;clip-path:polygon(0 10%,10% 0,90% 0,100% 10%,100% 90%,90% 100%,10% 100%,0 90%);border-color:rgba(74,222,128,.92);box-shadow:0 18px 30px rgba(0,0,0,.34),0 0 0 1px rgba(74,222,128,.16),inset 0 1px 0 rgba(255,255,255,.08)}.node.pkg-ultrasonic::after,.node.pkg-ultrasonic::before{top:24px;bottom:24px;width:10px;opacity:.45}.node.pkg-dht{width:210px;border-radius:14px;clip-path:polygon(0 12%,12% 0,88% 0,100% 12%,100% 88%,88% 100%,12% 100%,0 88%);border-color:rgba(96,165,250,.9)}.node.pkg-dht::after,.node.pkg-dht::before{top:18px;bottom:18px;width:10px}.node.pkg-controller{width:196px;border-radius:18px;clip-path:polygon(10% 0,90% 0,100% 10%,100% 88%,88% 100%,12% 100%,0 88%,0 10%);border-color:rgba(45,212,191,.9)}.node.pkg-controller::after,.node.pkg-controller::before{width:15px;top:16px;bottom:16px}.node.pkg-dip{width:194px;border-radius:10px;border-color:rgba(148,163,184,.88);box-shadow:0 18px 30px rgba(0,0,0,.34),0 0 0 1px rgba(148,163,184,.12),inset 0 1px 0 rgba(255,255,255,.06)}.node.pkg-dip::after,.node.pkg-dip::before{top:14px;bottom:14px;width:16px;display:none}.node.pkg-soic{width:196px;border-radius:22px 22px 12px 12px;clip-path:polygon(10% 0,90% 0,100% 10%,100% 90%,90% 100%,10% 100%,0 90%,0 10%);border-color:rgba(244,114,182,.9)}.node.pkg-soic::after,.node.pkg-soic::before{top:24px;bottom:24px;width:12px}.node.pkg-board{width:182px;border-radius:18px;clip-path:polygon(0 8%,8% 0,92% 0,100% 8%,100% 92%,92% 100%,8% 100%,0 92%);border-color:rgba(74,222,128,.88)}.node.pkg-board::after,.node.pkg-board::before{top:20px;bottom:20px;width:9px;opacity:.55}.node.pkg-octagon{width:190px;border-radius:0;clip-path:polygon(18% 0,82% 0,100% 18%,100% 82%,82% 100%,18% 100%,0 82%,0 18%);border-color:rgba(244,114,182,.9)}.node.pkg-octagon::after,.node.pkg-octagon::before{display:none}.node.pkg-tabbed{width:196px;border-radius:22px;border-color:rgba(251,191,36,.9)}.node.pkg-tabbed::before{left:20px;right:20px;top:-10px;bottom:auto;width:auto;height:12px;border-radius:10px 10px 0 0;background:linear-gradient(180deg,#d1d5db,#6b7280)}.node.pkg-tabbed::after{right:-12px;top:26px;bottom:26px;width:12px}.node.pkg-regular{width:214px;border-radius:16px;clip-path:none}.node.pkg-regular::after,.node.pkg-regular::before{top:22px;bottom:22px;width:12px}.node-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;font-weight:700;font-size:17px;letter-spacing:.02em;cursor:grab;text-shadow:0 1px 0 rgba(0,0,0,.24)}.node-title-wrap{display:flex;align-items:center;gap:8px;min-width:0}.node-title-wrap>span:first-child{white-space:nowrap}.help-wrap{position:relative;display:flex;align-items:center;z-index:6;margin-left:auto;margin-right:6px}.help-icon{width:22px;height:22px;border:none;border-radius:50%;background:rgba(255,255,255,.12);color:#eef2ff;font-size:12px;font-weight:700;cursor:help}.help-tooltip{position:absolute;bottom:34px;right:0;transform:none;min-width:200px;max-width:220px;padding:12px 14px;border-radius:14px;background:rgba(7,12,20,.98);border:1px solid rgba(125,211,252,.28);color:#f8fbff;font-size:12px;line-height:1.55;box-shadow:0 16px 34px rgba(0,0,0,.42);opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease}.help-tooltip::after{content:"";position:absolute;right:10px;top:100%;border-width:7px 7px 0 7px;border-style:solid;border-color:rgba(7,12,20,.98) transparent transparent transparent}.help-wrap:focus-within .help-tooltip,.help-wrap:hover .help-tooltip{opacity:1;transform:translateY(-4px)}.node-body{position:relative;padding:14px 12px 12px;background:linear-gradient(180deg,rgba(9,13,20,.9),rgba(18,23,32,.94)),repeating-linear-gradient(90deg,rgba(56,189,248,.035) 0 1px,transparent 1px 14px);border:none;border-top:1px solid rgba(255,255,255,.07);border-radius:0 0 20px 20px;overflow:visible}.node-body::before{display:none}.node label{display:block;color:rgba(255,255,255,.78);font-size:12px;margin-bottom:6px}.node-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;overflow:visible}.node-row:last-child{margin-bottom:0}.node input,.node select{width:100%;border-radius:14px;border:1px solid rgba(148,163,184,.12);background:linear-gradient(180deg,#171b26,#131720);color:#e5e7eb;padding:10px 12px;outline:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);pointer-events:auto;position:relative;z-index:100}.node select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23e5e7eb' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.node select::-ms-expand{display:none}.node input[type=number]{-moz-appearance:textfield;appearance:textfield}.node input[type=number]::-webkit-inner-spin-button,.node input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.node select:focus{border-color:rgba(56,189,248,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 0 0 2px rgba(56,189,248,.15)}.node select option{background:#161b25;color:#eef2ff;padding:8px 12px}.node-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.mini-btn{border:none;border-radius:14px;padding:8px 11px;font-size:12px;cursor:pointer;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.08));color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.code-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.code-head h2{margin:0}.code-tools{display:flex;align-items:center;gap:8px}.code-tool-btn{width:32px;height:32px;border:none;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);color:#eef2ff;cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease}.code-tool-btn:focus-visible,.code-tool-btn:hover{background:rgba(56,189,248,.16);color:#7dd3fc;transform:translateY(-1px)}.code-tool-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.code-open-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.port{position:absolute;width:18px;height:18px;border-radius:50%;background:#3b4252;border:2px solid rgba(255,255,255,.18);cursor:pointer;z-index:12;touch-action:none}.port:hover{background:var(--drop);border-color:#dbeafe}.port.connecting{background:#f59e0b;border-color:#fef3c7;box-shadow:0 0 0 4px rgba(245,158,11,.18)}.port.in{left:50%;top:-9px;transform:translateX(-50%)}.port.out{left:50%;bottom:-9px;transform:translateX(-50%)}.port.side{right:-9px;top:50%;transform:translateY(-50%)}.workspace-drop{position:absolute;inset:16px;border:2px dashed transparent;border-radius:24px;pointer-events:none;transition:border-color .15s ease,background .15s ease}.workspace-drop.active{border-color:var(--drop);background:rgba(56,189,248,.08)}.code-panel{min-width:0;min-height:0;display:flex;flex-direction:column;background:#12141a;overflow:hidden;grid-row:2}.editor-shell{position:relative;flex:1;min-width:0;min-height:260px;background:#12141a;overflow:hidden}#editor,#editorHighlight{margin:0;width:100%;height:100%;padding:16px 18px;font-family:Consolas,"Courier New",monospace;font-size:13px;line-height:1.5;tab-size:4;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}#editorHighlight{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;pointer-events:none;color:#e5e7eb;background:#12141a}#editor{position:relative;border:none;outline:0;resize:none;background:0 0;color:transparent;caret-color:#e5e7eb;overflow-y:auto;overflow-x:hidden}#editor::selection{background:rgba(59,130,246,.28)}#editorHighlight .tok-comment{color:#6b7280}#editorHighlight .tok-keyword{color:#c084fc;font-weight:600}#editorHighlight .tok-builtin{color:#60a5fa}#editorHighlight .tok-string{color:#f59e0b}#editorHighlight .tok-number{color:#22c55e}#editorHighlight .tok-boolean{color:#f472b6;font-weight:600}#editorHighlight .tok-function{color:#38bdf8}.device-terminal{display:flex;flex-direction:column;min-height:240px;flex:0 0 240px;min-width:0;border-top:1px solid rgba(148,163,184,.08);background:#05070c;overflow:hidden}#terminal{flex:1;min-height:180px;padding:14px 18px;overflow-y:auto;overflow-x:hidden;color:#22c55e;font-family:Consolas,"Courier New",monospace;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}#terminalInput{width:100%;border:none;border-top:1px solid rgba(148,163,184,.08);outline:0;background:#0b1020;color:#86efac;padding:12px 18px;font-family:Consolas,"Courier New",monospace;font-size:13px}.node.print{background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 35%),linear-gradient(135deg,#3ba5ff,#1d4ed8)}.node.delay{background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 35%),linear-gradient(135deg,#f43f5e,#881337)}.node.led{background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 35%),linear-gradient(135deg,#facc15,#b45309)}.node.loop{background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 35%),linear-gradient(135deg,#2dd4bf,#0f766e)}.node.logic{background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 35%),linear-gradient(135deg,#fb923c,#ea580c)}@keyframes flow-dash{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}@media (max-width:1100px){.app{grid-template-columns:minmax(240px,32vw) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) 320px}.top-toolbar{align-items:flex-start;flex-direction:column}.toolbar-actions{width:100%;justify-content:flex-start}.right-resizer{display:none}.code-panel{grid-column:1/-1;grid-row:3;min-height:0;border-top:1px solid rgba(148,163,184,.08)}.workspace-panel{grid-column:3;grid-row:2}.sidebar{grid-row:2}.panel-resizer{grid-row:2}#workspace{height:100%;min-height:0}}@media (max-width:760px){.app{height:auto;min-height:calc(100vh - 16px);grid-template-columns:1fr;grid-template-rows:auto auto minmax(420px,56vh) 280px}.toolbar-group{width:100%;flex-wrap:wrap}.toolbar-group.connect-group,.toolbar-group.firmware-group,.toolbar-group.run-group{margin-inline:0}.github-form-grid{grid-template-columns:1fr}.github-actions,.github-file-preview,.github-status-card{align-items:stretch;flex-direction:column}.panel-resizer{display:none}.code-panel,.sidebar,.workspace-panel{grid-column:1}.top-toolbar{flex-direction:column;align-items:flex-start}.toolbar-actions{width:100%;justify-content:flex-start}.toolbar-status{max-width:none;width:100%}.sidebar{grid-row:2;max-height:none}.workspace-panel{grid-row:3}.code-panel{grid-row:4}#workspace{height:100%;min-height:420px}.workspace-topbar{align-items:flex-start;flex-direction:column}.canvas-actions{right:10px;bottom:10px;top:auto;transform:none}.workspace-head{top:10px;left:10px;right:10px}}.sidebar .user-info{margin-top:auto;margin-right:0;margin-left:0;padding:8px 12px;border-top:1px solid rgba(148,163,184,.12);width:100%;display:flex;align-items:center;gap:12px;transition:all .25s cubic-bezier(.4, 0, .2, 1);overflow:hidden;background:rgba(15,23,42,.25)}.app.sidebar-collapsed .sidebar .user-info{padding:8px 0;justify-content:center;gap:10px;flex-direction:column;background:0 0;border-top-color:rgba(148,163,184,.08)}#currentUserDisplay{color:#eef2ff;font-size:13px;font-weight:600;white-space:nowrap;opacity:1;transition:opacity .2s ease,width .2s ease}.app.sidebar-collapsed #currentUserDisplay{display:none}.user-btn{background:rgba(255,255,255,.1);border:1px solid rgba(148,163,184,.2);border-radius:6px;padding:8px 12px;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.user-btn:hover{background:rgba(255,255,255,.15);border-color:rgba(148,163,184,.3)}.chef-btn{border:none;border-radius:999px;width:46px;height:46px;flex:0 0 46px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(56,189,248,.2),rgba(56,189,248,.1));border:1px solid rgba(56,189,248,.2);color:#fff;cursor:pointer;font-size:20px;transition:all .2s ease;box-shadow:0 4px 12px rgba(0,0,0,.15)}.chef-btn:hover{background:rgba(56,189,248,.3)}.chef-btn.is-default{filter:invert(1) brightness(1.2)}.sidebar-github-btn{background:0 0;border:none;color:#94a3b8;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:all .2s;padding:0;margin:0 auto 24px auto}.sidebar-github-btn svg{width:32px;height:32px}.sidebar-github-btn:hover{opacity:1;color:#fff;transform:scale(1.1)}.sidebar-github-btn.connected{color:#dcfce7;opacity:1}.quick-slider{position:fixed;right:0;top:0;height:100%;width:280px;background:rgba(11,13,18,.96);border-left:1px solid rgba(148,163,184,.32);box-shadow:-12px 0 24px rgba(0,0,0,.45);z-index:3000;transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column;gap:12px;padding:16px}.quick-slider.show{transform:translateX(0)}.quick-slider.hidden{visibility:hidden}.quick-slider h4{margin:0 0 6px 0;font-size:1rem;color:#eef2ff}.slider-close{border:none;background:rgba(255,255,255,.08);color:#eef2ff;font-size:22px;border-radius:999px;width:34px;height:34px;align-self:flex-end;cursor:pointer}.slider-item{width:100%;border:1px solid rgba(148,163,184,.3);border-radius:10px;background:rgba(28,33,48,.75);color:#eef2ff;padding:10px 14px;cursor:pointer;text-align:left;font-size:14px}.slider-item:hover{background:rgba(56,189,248,.15)}.slider-item.logout{border-color:rgba(239,68,68,.5);color:#fecaca;background:rgba(220,38,38,.12)}.slider-item.logout:hover{background:rgba(220,38,38,.23)}.slider-profile-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 10px 18px;margin-bottom:10px;background:0 0;border:none;color:#eef2ff;text-align:center}.slider-profile-card:hover{background:0 0}.slider-profile-avatar{position:relative;width:84px;height:84px;flex:0 0 84px;border-radius:50%;overflow:hidden;border:2px solid rgba(56,189,248,.45);background:#1e293b;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s cubic-bezier(.4, 0, .2, 1),border-color .2s ease,box-shadow .2s ease}.slider-profile-avatar:hover{transform:scale(1.06);border-color:rgba(56,189,248,.85);box-shadow:0 0 20px rgba(56,189,248,.25)}.slider-profile-avatar img{width:100%;height:100%;object-fit:cover;display:block}.slider-profile-default-icon{font-size:2rem;color:#fff;display:block}.slider-profile-name{color:#fff;font-weight:700;font-size:1rem;letter-spacing:.01em;opacity:.95;text-shadow:0 2px 4px rgba(0,0,0,.3)}.slider-item.hidden{display:none!important}.profile-top-row{display:none}.profile-main-grid{display:grid;grid-template-columns:180px 1fr;gap:40px;align-items:flex-start}.profile-left-column{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:10px}.profile-right-column{display:flex;flex-direction:column;gap:16px}.profile-photo-input{width:100%}.input-group{display:flex;gap:8px;align-items:center;width:100%}.input-edit-btn{width:36px;height:36px;border-radius:50%;border:1px solid #00bcd4;background:0 0;color:#00bcd4;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.input-edit-btn:hover{background:rgba(0,188,212,.1);border-color:#28d7eb}.profile-photo-label{display:block;margin-bottom:4px;color:#aaa;font-size:12px;text-align:center}.profile-avatar{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;border:3px solid #00bcd4;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.85);margin-bottom:0}.profile-edit-btn{display:none;background:rgba(56,189,248,.15);color:#f8fafc;border:1px solid rgba(56,189,248,.4);border-radius:8px;padding:8px 12px;cursor:pointer;font-size:1rem}.profile-edit-btn:hover{background:rgba(56,189,248,.25)}.profile-avatar-img{width:100%;height:100%;object-fit:cover;display:none}.profile-avatar-icon{font-size:48px;display:flex;align-items:center;justify-content:center}.profile-avatar-container{position:relative;width:140px;height:140px;margin-bottom:24px}.avatar-edit-pen{position:absolute;top:50%;left:50%;width:44px;height:44px;border-radius:50%;background:rgba(56,189,248,.9);border:2px solid #fff;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s cubic-bezier(.4, 0, .2, 1);box-shadow:0 8px 32px rgba(0,0,0,.4);z-index:25;padding:0;opacity:0;transform:translate(-50%,-50%) scale(.8);pointer-events:none}.profile-avatar-container:hover .avatar-edit-pen{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto}.profile-avatar-container:hover .profile-avatar{border-color:var(--drop);filter:blur(2px) brightness(.7)}.avatar-edit-pen:hover{transform:translate(-50%,-50%) scale(1.1)!important;background:#0ea5e9;box-shadow:0 0 20px rgba(56,189,248,.6)}.avatar-edit-menu{position:absolute;top:calc(50% + 30px);left:50%;transform:translateX(-50%) translateY(10px);background:#1a1e26;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:6px;display:none;flex-direction:column;gap:2px;box-shadow:0 12px 32px rgba(0,0,0,.5);z-index:30;min-width:120px;backdrop-filter:blur(10px)}.avatar-edit-menu.show{display:flex;animation:menuFadeInCenter .2s ease-out forwards}@keyframes menuFadeInCenter{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.avatar-edit-menu button{background:0 0;border:none;color:#e2e8f0;padding:10px 14px;text-align:left;font-size:13px;font-weight:500;border-radius:8px;cursor:pointer;transition:all .15s ease;width:100%}.avatar-edit-menu button:hover{background:rgba(56,189,248,.12);color:var(--drop)}.avatar-edit-menu button:last-child{border-top:1px solid rgba(148,163,184,.1);margin-top:2px}.profile-input{flex:1;width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(148,163,184,.35);color:var(--text);padding:10px 12px;border-radius:8px;min-height:36px;font-size:14px}.profile-input:disabled{opacity:.7;cursor:not-allowed}.profile-input:not(:disabled){background:rgba(255,255,255,.12);border-color:rgba(0,188,212,.5);color:var(--muted);width:100%}.profile-info-column{display:flex;flex-direction:column;gap:12px}.info-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%}.info-row label{justify-self:end;color:var(--muted);font-size:14px;font-weight:500}.slider-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(1px);z-index:2500;visibility:hidden;opacity:0;transition:opacity .2s ease,visibility .2s ease}.slider-overlay.show{visibility:visible;opacity:1}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;visibility:hidden;transition:all .3s ease}.modal.show{opacity:1;visibility:visible}.modal-content{background:var(--bg);border-radius:12px;box-shadow:0 20px 40px rgba(0,0,0,.4);max-width:600px;width:90%;max-height:80vh;overflow:hidden;transform:scale(.9);transition:transform .3s ease}.modal.show .modal-content{transform:scale(1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(148,163,184,.2)}.modal-header h3{margin:0;color:var(--text);font-size:18px}.modal-close{background:0 0;border:none;color:var(--muted);font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.modal-close:hover{background:rgba(255,255,255,.1);color:var(--text)}.modal-body{padding:24px;max-height:calc(80vh - 80px);overflow-y:auto}.library-list{display:flex;flex-direction:column;gap:12px}.library-item{display:flex;align-items:center;justify-content:space-between;padding:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:background .2s,border-color .2s}.library-item:hover{background:rgba(255,255,255,.05);border-color:rgba(56,189,248,.3)}.library-info{display:flex;flex-direction:column;gap:4px}.library-name{font-weight:700;color:#eef2ff;font-size:15px}.library-desc{font-size:13px;color:var(--muted)}.library-actions{display:flex;align-items:center;gap:12px}.lib-status{font-size:12px;font-weight:600;padding:4px 8px;border-radius:6px}.lib-status.installed{background:rgba(34,197,94,.1);color:#4ade80}.lib-status.missing{background:rgba(148,163,184,.1);color:var(--muted)}.project-form{margin-bottom:30px}.form-group{margin-bottom:16px}.form-group label{display:block;color:var(--text);font-weight:500;margin-bottom:6px;font-size:14px}.form-group input,.form-group textarea{width:100%;padding:10px 12px;background:var(--panel);border:1px solid rgba(148,163,184,.2);border-radius:6px;color:var(--text);font-size:14px;transition:border-color .2s ease}.form-group input:focus,.form-group textarea:focus{outline:0;border-color:var(--drop);box-shadow:0 0 0 2px rgba(56,189,248,.2)}.form-group textarea{resize:vertical;min-height:80px}.modal-btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.modal-btn.primary{background:linear-gradient(135deg,var(--drop),#2563eb);color:#fff}.modal-btn.primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(56,189,248,.3)}.github-modal-content{max-width:720px}.github-modal-body{display:flex;flex-direction:column;gap:16px}.github-status-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid rgba(148,163,184,.18);border-radius:8px;background:rgba(15,23,42,.48)}.github-status-card span,.github-status-card strong{display:block}.github-status-card strong{color:#f8fafc;font-size:14px;margin-bottom:4px}.github-status-card span{color:var(--muted);font-size:12px}.github-disconnect{display:none}.github-status-card.connected .github-disconnect{display:inline-flex}.github-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.github-remember-row{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;width:fit-content}.github-file-preview{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;padding:10px 12px;border-radius:8px;background:rgba(255,255,255,.04)}.github-progress{height:8px;overflow:hidden;border-radius:999px;background:rgba(148,163,184,.18)}#githubProgressBar{width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,#38bdf8);transition:width .2s ease}.github-push-log{min-height:44px;max-height:120px;overflow:auto;padding:10px 12px;border:1px solid rgba(148,163,184,.16);border-radius:8px;background:rgba(2,6,23,.38);color:#cbd5e1;font-family:Consolas,SFMono-Regular,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap}.github-actions{display:flex;justify-content:flex-end;gap:12px}.project-list h4{margin:0 0 16px 0;color:var(--text);font-size:16px}.project-items{display:grid;gap:12px}.project-item{background:var(--panel);border:1px solid rgba(148,163,184,.2);border-radius:8px;padding:16px;cursor:pointer;transition:all .2s ease}.project-item:hover{border-color:rgba(56,189,248,.3);background:rgba(56,189,248,.05)}.project-item h5{margin:0 0 4px 0;color:var(--text);font-size:16px}.project-item p{margin:0;color:var(--muted);font-size:13px}.project-item .project-date{font-size:12px;color:var(--muted);margin-top:8px}.project-actions{display:flex;gap:8px;margin-top:12px}.project-action-btn{padding:6px 12px;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s ease}.project-action-btn.load{background:#10b981;color:#fff}.project-action-btn.load:hover{background:#059669}.project-action-btn.delete{background:#ef4444;color:#fff}.project-action-btn.delete:hover{background:#dc2626}.profile-content{display:flex;flex-direction:column;gap:24px}.info-row span{color:var(--text);font-size:14px;font-weight:600}.profile-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:12px;border-top:1px solid rgba(148,163,184,.1)}.settings-content{display:flex;flex-direction:column;gap:24px}.settings-section{display:flex;flex-direction:column;gap:16px}.settings-section h4{margin:0;color:var(--text);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(148,163,184,.1);padding-bottom:12px}.settings-item{display:flex;align-items:center;gap:12px;padding:10px 0}.settings-item label{display:flex;align-items:center;gap:8px;color:var(--text);font-size:14px;cursor:pointer;flex:1}.settings-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--drop)}.settings-item select{padding:8px 12px;background:var(--panel);border:1px solid rgba(148,163,184,.2);border-radius:6px;color:var(--text);font-size:14px;cursor:pointer;transition:border-color .2s ease}.settings-item select:focus{outline:0;border-color:var(--drop)}.settings-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:12px;border-top:1px solid rgba(148,163,184,.1);margin-top:24px}.modal-btn.secondary{background:var(--panel);color:var(--text);border:1px solid rgba(148,163,184,.2)}.modal-btn.secondary:hover{background:rgba(148,163,184,.1);border-color:rgba(148,163,184,.3)}.modal-btn.danger{background:#e53e3e;color:#fff;border:none}.modal-btn.danger:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(229,62,62,.16)}.modal-btn .btn-icon{display:inline-flex;align-items:center;justify-content:center;margin-right:8px;width:16px;height:16px}.modal-btn .btn-icon path,.modal-btn .btn-icon svg{stroke:currentColor;fill:none}.delete-left{margin-right:auto}.confirm-delete-body p{margin:0 0 8px 0}.confirm-delete-input{width:100%;max-width:420px;padding:10px 12px;border-radius:8px;background:var(--panel);border:1px solid rgba(148,163,184,.12);color:var(--text);font-size:14px}.confirm-delete-input:focus{outline:0;border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.12)}.confirm-delete-btn.disabled{opacity:.5;transform:none;cursor:not-allowed}.confirm-delete-btn{min-width:140px}:root.dark-mode{--bg:#0a0c10;--panel:#0f1219;--stroke:#1a2030}.app.dark-mode{filter:invert(1) hue-rotate(180deg)}.app.dark-mode .node{filter:invert(1) hue-rotate(180deg)}.app.dark-mode .connections line,.app.dark-mode .connections path{filter:invert(1) hue-rotate(180deg)}@keyframes slideIn{from{transform:translateX(400px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideOut{from{transform:translateX(0);opacity:1}to{transform:translateX(400px);opacity:0}}.notification{animation:slideIn .3s ease forwards}.notification-success{background:#4caf50!important}.notification-error{background:#f44336!important}.notification-info{background:#2196f3!important}.notification-warning{background:#ff9800!important}.infinity-container{display:flex;justify-content:center;align-items:center;padding:20px 0;width:100%}.infinity-svg{width:110px;height:44px;overflow:visible}.infinity-path-bg{fill:rgba(255,255,255,0.08);stroke:none}.infinity-pulse{stroke:var(--loop);stroke-dasharray:200;stroke-dashoffset:200;animation:pulse-infinity 2.5s linear infinite;filter:drop-shadow(0 0 4px var(--loop))}@keyframes pulse-infinity{0%{stroke-dashoffset:200}50%{stroke-dashoffset:0}100%{stroke-dashoffset:-200}}.selection-marquee{position:absolute;background:rgba(56,189,248,.15);border:1px solid rgba(56,189,248,.6);pointer-events:none;z-index:1000;border-radius:4px}.node.selected{outline:2px solid var(--drop);outline-offset:2px;box-shadow:0 0 15px rgba(56,189,248,.4);filter:brightness(1.1)}.context-menu{position:fixed;background:rgba(18,22,31,.98);backdrop-filter:blur(12px);border:1px solid rgba(148,163,184,.15);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.5);padding:6px;z-index:10000;min-width:160px;display:flex;flex-direction:column;gap:2px}.context-menu-item{background:0 0;border:none;color:#eef2ff;padding:10px 14px;font-size:13px;font-weight:600;text-align:left;cursor:pointer;border-radius:8px;display:flex;align-items:center;gap:10px;transition:background .15s ease}.context-menu-item:hover{background:rgba(56,189,248,.15);color:var(--drop)}.context-menu-item.danger:hover{background:rgba(239,68,68,.15);color:#ef4444}.context-menu-item i{font-size:14px;opacity:.7}.stack-visualization-wrap{display:flex;flex-direction:column;align-items:center;padding:15px 0;gap:12px;width:100%}.stack-isometric{position:absolute;width:100%;height:100%;transform-style:preserve-3d;transform:rotateX(56deg) rotateZ(45deg);transition:transform .4s cubic-bezier(.4, 0, .2, 1)}.stack-layer{position:absolute;width:120px;height:120px;left:20px;top:20px;transform-style:preserve-3d;transition:transform .4s cubic-bezier(.4, 0, .2, 1)}.layer-1{background:#064e3b;background-image:radial-gradient(circle at 30% 20%,#ca8a04 1.5px,transparent 1.5px),radial-gradient(circle at 70% 80%,#ca8a04 1px,transparent 1px),linear-gradient(45deg,transparent 48%,#ca8a04 48%,#ca8a04 52%,transparent 52%),linear-gradient(-45deg,transparent 48%,#ca8a04 48%,#ca8a04 52%,transparent 52%);background-size:20px 20px,15px 15px,25px 25px,30px 30px;transform:translateZ(40px);z-index:5;border:1px solid rgba(202,138,4,.4);border-radius:4px}.layer-2{background:#022c22;transform:translateZ(30px);z-index:4;border-radius:4px}.layer-3{background:#064e3b;background-image:radial-gradient(circle at 10% 20%,rgba(202,138,4,.1) 1px,transparent 1px);transform:translateZ(20px);z-index:3;border:1px solid rgba(202,138,4,.2);border-radius:4px}.layer-4{background:#111827;transform:translateZ(10px);z-index:2;border-radius:4px}.layer-5{background:#fb923c;transform:translateZ(0);z-index:1;border:1px solid rgba(0,0,0,.2);border-radius:4px}.side-pins{position:absolute;top:70px;bottom:70px;width:10px;display:flex;flex-direction:column;justify-content:space-around;z-index:0;pointer-events:none}.pin-tooth{width:100%;height:3px;background:#cbd5e1;box-shadow:inset 0 1px 1px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.3);border-radius:1px}.pins-left{left:-7px}.pins-right{right:-7px}.node.sanwitch_stack{min-width:250px;max-width:270px;height:270px;background:0 0!important;border:none!important;box-shadow:none!important;backdrop-filter:none!important;display:flex!important;flex-direction:column!important;align-items:center!important;padding-top:16px!important}.node.sanwitch_stack .node-header,.node.sanwitch_stack .side-pins,.node.sanwitch_stack::after,.node.sanwitch_stack::before{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important;content:none!important}.node.sanwitch_stack.selected{outline:2px solid var(--drop);outline-offset:40px;border-radius:40px;box-shadow:0 0 100px rgba(56,189,248,.15)!important}.stack-floating-label{background:rgba(14,19,29,.82);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.08);padding:8px 36px;border-radius:999px;color:#eef2f7;font-size:14px;font-weight:600;margin-bottom:20px;z-index:10;white-space:nowrap;box-shadow:0 10px 30px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.08);letter-spacing:.4px;font-family:Outfit,Inter,sans-serif}.node.sanwitch_stack .stack-visualization-wrap{position:relative;width:170px;height:170px;perspective:1300px;transform:scale(1.04);margin-top:0}.node.sanwitch_stack .stack-isometric{position:absolute;width:100%;height:100%;transform-style:preserve-3d;transform:rotateX(44deg) rotateZ(45deg);transition:transform .4s cubic-bezier(.4, 0, .2, 1);filter:drop-shadow(0 18px 22px rgba(0, 0, 0, .45))}.node.sanwitch_stack:hover .stack-isometric{transform:rotateX(41deg) rotateZ(45deg) translateY(-5px)}.node.sanwitch_stack .stack-layer{position:absolute;width:128px;height:128px;left:21px;top:21px;transform-style:preserve-3d;transition:transform .4s cubic-bezier(.4, 0, .2, 1)}.node.sanwitch_stack .layer-face{position:absolute;border-radius:11px}.node.sanwitch_stack .top-face{width:100%;height:100%;transform:translateZ(14px)}.node.sanwitch_stack .side-face{width:100%;height:18px;top:100%;transform-origin:top;transform:rotateX(-90deg);border-radius:0 0 11px 11px}.node.sanwitch_stack .pcb-layer{transform:translateZ(82px) scale(1);z-index:3}.node.sanwitch_stack .pcb-layer .top-face{background-color:#0f5c2b;background-image:url("pcb.svg");background-size:cover;border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 2px 0 rgba(255,255,255,.08),inset 0 0 20px rgba(0,0,0,.35),0 18px 35px rgba(0,0,0,.35)}.node.sanwitch_stack .pcb-layer .side-face{background:linear-gradient(180deg,#0a4b24,#052912);border:1px solid rgba(0,0,0,.35);height:18px}.node.sanwitch_stack .middle-layer{transform:translateZ(42px) scale(1.11);z-index:2}.node.sanwitch_stack .middle-layer .top-face{background:#12233a;border:1px solid rgba(167,198,255,.42);box-shadow:inset 0 0 14px rgba(0,0,0,.42),0 8px 16px rgba(0,0,0,.45)}.node.sanwitch_stack .middle-layer .side-face{background:linear-gradient(180deg,#111b2c,#080d16);border:1px solid rgba(0,0,0,.55);height:16px}.node.sanwitch_stack .bottom-layer{transform:translateZ(-4px) scale(1.24);z-index:1}.node.sanwitch_stack .bottom-layer .top-face{background:#f4a11a;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.08),rgba(255,255,255,.08) 8px,rgba(176,88,6,.22) 8px,rgba(176,88,6,.22) 16px);border:1px solid rgba(255,255,255,.12);box-shadow:0 22px 40px rgba(0,0,0,.45)}.node.sanwitch_stack .bottom-layer .side-face{background:linear-gradient(180deg,#c26a10,#7a3a10);height:20px}.node.sanwitch_stack .port{z-index:50;background:#3b4252;border:2px solid rgba(255,255,255,.2);opacity:0;transition:all .3s ease;width:20px;height:20px}.node.sanwitch_stack:hover .port{opacity:1}.node.sanwitch_stack:hover .port:hover{background:var(--drop);box-shadow:0 0 15px rgba(56,189,248,.5);transform:scale(1.2)}.node.sanwitch_stack .port.in{top:10px;left:50%;transform:translateX(-50%)}.node.sanwitch_stack .port.out{bottom:10px;left:50%;transform:translateX(-50%)}.stack-footer-grid{display:none!important}.node.sanwitch_stack .stack-visualization-wrap{position:relative;width:186px;height:186px;perspective:1150px;transform:scale(1.02);margin-top:0}.node.sanwitch_stack .swstack-iso{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(56deg) rotateZ(45deg);transition:transform .35s cubic-bezier(.4, 0, .2, 1);filter:drop-shadow(0 20px 24px rgba(0, 0, 0, .5))}.node.sanwitch_stack:hover .swstack-iso{transform:rotateX(53deg) rotateZ(45deg) translateY(-4px)}.node.sanwitch_stack .swstack-layer{position:absolute;width:116px;height:116px;left:35px;top:24px;transform-style:preserve-3d}.node.sanwitch_stack .swstack-top-face{position:absolute;inset:0;border-radius:11px;transform:translateZ(10px)}.node.sanwitch_stack .swstack-side-face{position:absolute;width:100%;top:100%;transform-origin:top;transform:rotateX(-90deg);border-radius:0 0 11px 11px}.node.sanwitch_stack .swstack-right-face{position:absolute;left:100%;top:0;height:100%;transform-origin:left;transform:rotateY(90deg);border-radius:0 11px 11px 0}.node.sanwitch_stack .swstack-top{transform:translate3d(-24px,-24px,90px) scale(1.14);z-index:3}.node.sanwitch_stack .swstack-top .swstack-top-face{background-color:#0f5d2c;background-image:url("pcb.svg");background-size:cover;border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 2px 0 rgba(255,255,255,.08),inset 0 0 20px rgba(0,0,0,.35),0 14px 24px rgba(0,0,0,.35)}.node.sanwitch_stack .swstack-top .swstack-side-face{height:12px;background:linear-gradient(180deg,#0a4b24,#062a14);border:1px solid rgba(0,0,0,.38)}.node.sanwitch_stack .swstack-top .swstack-right-face{width:12px;background:linear-gradient(90deg,#0b4f27,#063118);border:1px solid rgba(0,0,0,.4)}.node.sanwitch_stack .swstack-middle{transform:translate3d(0,0,34px) scale(1.1);z-index:2}.node.sanwitch_stack .swstack-middle .swstack-top-face{background:#101a2a;border:1px solid rgba(134,164,216,.24);box-shadow:inset 0 0 12px rgba(0,0,0,.42),0 8px 16px rgba(0,0,0,.4)}.node.sanwitch_stack .swstack-middle .swstack-side-face{height:7px;background:linear-gradient(180deg,#15233a,#0a121d);border:1px solid rgba(0,0,0,.58)}.node.sanwitch_stack .swstack-middle .swstack-right-face{width:7px;background:linear-gradient(90deg,#132038,#09121f);border:1px solid rgba(0,0,0,.58)}.node.sanwitch_stack .swstack-bottom{transform:translate3d(20px,20px,0) scale(1.14);z-index:1}.node.sanwitch_stack .swstack-bottom .swstack-top-face{background:#f4a11a;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.08),rgba(255,255,255,.08) 8px,rgba(176,88,6,.22) 8px,rgba(176,88,6,.22) 16px);border:1px solid rgba(255,255,255,.12);box-shadow:0 26px 42px rgba(0,0,0,.48)}.node.sanwitch_stack .swstack-bottom .swstack-side-face{height:10px;background:linear-gradient(180deg,#ca7415,#7c3d11);border:1px solid rgba(0,0,0,.34)}.node.sanwitch_stack .swstack-bottom .swstack-right-face{width:10px;background:linear-gradient(90deg,#d67f1f,#874513);border:1px solid rgba(0,0,0,.34)}.node.gps{background:linear-gradient(135deg,#7c3aed,#4f46e5)!important;box-shadow:0 0 20px rgba(124,58,237,.3)!important}.palette-block.gps .icon-wrapper{background:linear-gradient(135deg,#7c3aed,#4f46e5)}#libManagerModal .modal-content{background:rgba(11,13,18,.5)!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;border:1px solid rgba(255,255,255,.1)!important;border-radius:16px!important}.sidebar .user-info{margin-top:auto!important;margin-right:-14px!important;margin-left:-14px!important;margin-bottom:0!important;padding:12px 14px!important;border-top:1px solid rgba(255,255,255,.08)!important;width:calc(100% + 28px)!important;background:rgba(11,15,23,.75)!important;box-shadow:0 -4px 12px rgba(0,0,0,.3)!important;border-bottom:none!important}.app.sidebar-collapsed .sidebar .user-info{margin-right:-10px!important;margin-left:-10px!important;margin-top:0!important;margin-bottom:0!important;padding:12px 0!important;width:calc(100% + 20px)!important;background:rgba(11,15,23,.75)!important;border-top:1px solid rgba(255,255,255,.08)!important;box-shadow:0 -4px 12px rgba(0,0,0,.3)!important;border-bottom:none!important}.sidebar-footer-actions{margin-top:auto;width:100%;justify-content:center;align-items:center;padding:0 0 10px}.app.sidebar-collapsed .sidebar-footer-actions{display:flex!important}.app.sidebar-collapsed .sidebar-footer-actions .sidebar-github-btn{width:28px;height:28px}.library-icon svg{width:22px;height:22px;display:block}.mobile-sync-fab{position:relative;display:flex!important;align-items:center;justify-content:center;gap:0;height:42px;min-width:42px;padding:0 10px;background:linear-gradient(135deg,#10b981,#059669)!important;border:1px solid rgba(16,185,129,.4)!important;border-radius:21px!important;color:#fff!important;cursor:pointer;overflow:hidden;transition:all .4s cubic-bezier(.175, .885, .32, 1.275);box-shadow:0 4px 12px rgba(16,185,129,.3);z-index:100;white-space:nowrap;pointer-events:auto!important}.mobile-sync-fab:hover{gap:10px;padding:0 20px;box-shadow:0 8px 24px rgba(16,185,129,.5);transform:translateY(-2px)}.sync-icon-wrapper{display:flex;align-items:center;justify-content:center;flex-shrink:0}.sync-text{max-width:0;opacity:0;white-space:nowrap;font-size:13px;font-weight:700;transition:all .4s ease;color:#fff!important}.mobile-sync-fab:hover .sync-text{max-width:200px;opacity:1}.sync-arrow{animation:syncBounce 2s infinite}@keyframes syncBounce{0%,100%,20%,50%,80%{transform:translateY(0)}40%{transform:translateY(3px)}60%{transform:translateY(1.5px)}}.hidden{display:none!important}@media (min-width:1920px){:root{--ui-scale:1.0}.app{top:24px;left:24px;width:calc(100vw - 48px);height:calc(100vh - 48px);border-radius:48px}}@media (max-width:1200px){.app{grid-template-columns:var(--sidebar-collapsed-width) minmax(0,1fr) 10px 300px}}@media (max-width:900px){.app{grid-template-columns:var(--sidebar-collapsed-width) minmax(0,1fr)}.code-panel,.panel-resizer{display:none!important}}@media (max-width:600px){:root{--ui-scale:1.0}.app{top:0;left:0;width:100vw;height:100vh;border-radius:0;grid-template-columns:1fr;transform:none}.sidebar{display:none!important}.top-toolbar{flex-direction:column;padding:12px;gap:12px;height:auto}.toolbar-actions{flex-direction:column;justify-content:stretch;width:100%;margin:0}.toolbar-group{width:100%;justify-content:space-between;margin:0!important}.workspace-topbar{flex-direction:column;align-items:stretch;gap:10px}.canvas-fab{align-self:center}}