:root{--primary-bg:#e6e7e3;--secondary-bg:#f4f5f2;--accent:#b6e63a;--accent-hover:#a1ce30;--accent-light:#b6e63a33;--text-primary:#1a1a1a;--text-muted:#5f5f5f;--border-color:#d1d3cd;--logic-low:#d1d3cd;--logic-high:#b6e63a;--border-radius-lg:24px;--border-radius-md:16px;--border-radius-sm:8px;--shadow-soft:0px 12px 32px #0000000f;--shadow-inset:inset 0px 2px 8px #0000000d;--sans:"Outfit", "Inter", system-ui, -apple-system, sans-serif;--mono:ui-monospace, "Fira Code", monospace;font-family:var(--sans);background-color:var(--primary-bg);color:var(--text-primary);box-sizing:border-box;margin:0;padding:0}body{background-color:var(--primary-bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;width:100vw;height:100vh;margin:0;padding:0;overflow:hidden}#root{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}*{box-sizing:border-box}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--border-radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}button{font-family:var(--sans);border:1px solid var(--border-color);background-color:var(--secondary-bg);color:var(--text-primary);border-radius:var(--border-radius-sm);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:600;transition:transform .2s cubic-bezier(.16,1,.3,1),background-color .2s,border-color .2s;display:inline-flex}button:hover{border-color:var(--text-muted);background-color:#ebece8;transform:translateY(-2px)}button:active{background-color:var(--border-color);transform:translateY(0)}button.primary{background-color:var(--accent);border-color:var(--accent);color:var(--text-primary)}button.primary:hover{background-color:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:#c53030;background-color:#f7e6e6;border-color:#e5b2b2}button.danger:hover{background-color:#fddddd;border-color:#c53030}button.outline{border:1px solid var(--border-color);background-color:#0000}button.outline:hover{background-color:var(--secondary-bg)}h1,h2,h3,h4{letter-spacing:-.02em;margin:0;font-weight:700}.gate-body{fill:var(--secondary-bg);stroke:var(--border-color);stroke-width:2.5px;filter:drop-shadow(0 4px 12px #00000008);transition:stroke .15s,filter .15s}.gate-body.selected{stroke:var(--text-primary);stroke-width:3.5px}.gate-label{font-family:var(--sans);fill:var(--text-primary);-webkit-user-select:none;user-select:none;pointer-events:none;font-size:13px;font-weight:700}.gate-subtext{font-family:var(--mono);fill:var(--text-muted);-webkit-user-select:none;user-select:none;pointer-events:none;font-size:10px}.pin-circle{fill:var(--secondary-bg);stroke:var(--border-color);stroke-width:2px;cursor:crosshair;transition:r .15s,fill .15s,stroke .15s}.pin-circle:hover{r:7.5;stroke:var(--text-primary);fill:var(--accent)}.pin-circle.connected-high{fill:var(--logic-high);stroke:var(--logic-high)}.pin-circle.connected-low{fill:var(--logic-low);stroke:var(--border-color)}.wire-path{fill:none;stroke-width:3px;cursor:pointer;transition:stroke .2s,stroke-width .2s}.wire-path.high{stroke:var(--logic-high);filter:drop-shadow(0px 0px 4px var(--logic-high));stroke-width:3.5px}.wire-path.low{stroke:var(--logic-low);stroke-width:3px}.wire-path-hover-box{fill:none;stroke:#0000;stroke-width:12px;cursor:pointer}.wire-container:hover .wire-path.low{stroke:var(--text-muted);stroke-width:4px}.wire-container:hover .wire-path.high{stroke:var(--accent-hover);stroke-width:4.5px}.wire-draft-path{fill:none;stroke:var(--text-muted);stroke-width:2.5px;stroke-dasharray:5 5;pointer-events:none}.canvas-grid{fill:url(#grid-pattern)}body.dark-theme{--primary-bg:#141517;--secondary-bg:#222428;--accent:#b6e63a;--accent-hover:#a1ce30;--accent-light:#b6e63a26;--text-primary:#f5f6f8;--text-muted:#8e9093;--border-color:#32353a;--logic-low:#32353a;--logic-high:#b6e63a;--shadow-soft:0px 12px 32px #0006;--shadow-inset:inset 0px 2px 8px #0000004d}body.dark-theme button:hover{border-color:var(--text-muted);background-color:#2d3035}body.dark-theme button:active{background-color:var(--border-color)}body.dark-theme button.outline:hover{background-color:var(--secondary-bg)}@keyframes flow-particles{to{stroke-dashoffset:-20px}}.wire-particles{fill:none;stroke:var(--accent);stroke-width:3.5px;stroke-dasharray:5 12;pointer-events:none;opacity:.9;filter:drop-shadow(0px 0px 3px var(--accent));animation:1.5s linear infinite flow-particles}.wire-delete-btn-bg{fill:var(--secondary-bg);stroke:var(--border-color);stroke-width:1.5px;cursor:pointer;filter:drop-shadow(0 2px 4px #0000001a)}.wire-delete-btn-icon{stroke:var(--text-primary);stroke-width:2px;stroke-linecap:round;pointer-events:none}.wire-delete-group:hover .wire-delete-btn-bg{fill:#ff6b6b;stroke:#ff6b6b}.wire-delete-group:hover .wire-delete-btn-icon{stroke:#fff}.analyzer-panel{background-color:var(--secondary-bg);border-top:2px solid var(--border-color);color:var(--text-primary);flex-direction:column;transition:height .25s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.analyzer-header{background-color:var(--primary-bg);border-bottom:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;height:40px;min-height:40px;padding:0 16px;display:flex}.analyzer-title{letter-spacing:.05em;align-items:center;gap:8px;font-size:11px;font-weight:800;display:flex}.analyzer-controls{align-items:center;gap:8px;display:flex}.analyzer-body{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.analyzer-row{align-items:center;gap:16px;height:38px;display:flex}.analyzer-row-label{white-space:nowrap;text-overflow:ellipsis;border-right:1px solid var(--border-color);justify-content:space-between;align-items:center;width:140px;min-width:140px;height:100%;padding-right:12px;font-size:11px;font-weight:700;display:flex;overflow:hidden}.analyzer-row-remove{cursor:pointer;opacity:.5;padding:4px;font-size:10px;transition:opacity .15s,color .15s}.analyzer-row-remove:hover{opacity:1;color:#f55}.analyzer-wave-container{background-color:var(--primary-bg);border-radius:var(--border-radius-sm);border:1px solid var(--border-color);flex:1;height:100%;position:relative;overflow:hidden}.analyzer-svg{width:100%;height:100%}.analyzer-grid-line{stroke:var(--border-color);stroke-width:.5px;stroke-dasharray:2 4}.analyzer-signal-path{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.analyzer-signal-path.low{stroke:var(--text-muted)}.analyzer-empty{height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:32px 0;font-size:12px;font-style:italic;display:flex}.probe-btn{border-radius:var(--border-radius-sm);background-color:var(--secondary-bg);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;padding:5px 10px;font-size:10px;font-weight:700;transition:all .15s}.probe-btn:hover{border-color:var(--text-muted);transform:translateY(-1px)}.probe-btn.active{background-color:var(--accent-light);border-color:var(--accent);color:var(--text-primary)}.cursor-chat-bubble{background-color:var(--secondary-bg);border:2.5px solid var(--border-color);font-family:var(--sans);z-index:1000;pointer-events:auto;min-width:140px;color:var(--text-primary);border-radius:18px 18px 18px 4px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;font-weight:600;transition:transform .1s,opacity .2s;animation:.2s cubic-bezier(.16,1,.3,1) both cursor-chat-in;display:flex;box-shadow:0 8px 24px #0000001f}@keyframes cursor-chat-in{0%{opacity:0;transform:translate(10px,15px)scale(.9)}to{opacity:1;transform:translate(10px,15px)scale(1)}}.cursor-chat-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.cursor-chat-bubble input{font-family:inherit;font-size:inherit;font-weight:inherit;color:var(--text-primary);background:0 0;border:none;outline:none;width:150px;margin:0;padding:0}.cursor-chat-bubble input::placeholder{color:var(--text-muted);opacity:.7;font-style:italic}.cursor-chat-text{white-space:pre-wrap;word-break:break-word;max-width:250px}.cursor-chat-user{opacity:.8;margin-right:4px;font-weight:800}body.dark-theme .cursor-chat-bubble{background-color:var(--secondary-bg);border-color:var(--border-color)}.app-container{background-color:var(--primary-bg);flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.header-container{background-color:var(--secondary-bg);border-bottom:2px solid var(--border-color);z-index:10;justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.logo-section{flex-grow:1;flex-shrink:1;align-items:center;gap:12px;min-width:0;display:flex}.logo-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);font-size:20px;font-weight:800}.logo-badge{background-color:var(--accent);color:var(--text-primary);border-radius:var(--border-radius-sm);letter-spacing:.1em;padding:2px 6px;font-size:10px;font-weight:800}.action-bar{flex-shrink:0;align-items:center;gap:12px;display:flex}.divider{background-color:var(--border-color);width:2px;height:24px}.tabs-manager-header{scrollbar-width:thin;flex-shrink:1;align-items:flex-end;gap:6px;max-width:100%;display:flex;overflow-x:auto}.sub-header-tabs-bar{background-color:var(--secondary-bg);border-bottom:2px solid var(--border-color);z-index:9;align-items:flex-end;height:48px;padding:0 24px;display:flex}.tabs-manager-header::-webkit-scrollbar{height:4px}.tabs-manager-header::-webkit-scrollbar-track{background:0 0}.tabs-manager-header::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--border-radius-sm)}.tab-button{color:var(--text-muted);cursor:pointer;background-color:#0000;border:1px solid #0000;border-bottom:none;border-radius:12px 12px 0 0;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:700;transition:all .2s;display:flex;transform:none}.tab-button:hover{color:var(--text-primary);background-color:#fff6;transform:none}.tab-button.active{background-color:var(--secondary-bg);border-color:var(--border-color);color:var(--text-primary);z-index:2;position:relative;top:1px;box-shadow:0 -4px 12px #00000005}.tab-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:2px;font-size:10px;display:flex}.tab-close:hover{color:var(--text-primary);background-color:#0000000d;transform:none}.add-tab-btn{border:1px dashed var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-muted);background:0 0;margin-bottom:4px;padding:6px 12px;font-size:12px;font-weight:700}.add-tab-btn:hover{border-color:var(--text-primary);color:var(--text-primary);background-color:#ffffff80;transform:none}.editor-body{flex:1;display:flex;position:relative;overflow:hidden}.sidebar-container{background-color:var(--secondary-bg);border-right:2px solid var(--border-color);flex-direction:column;gap:24px;width:280px;padding:24px;display:flex;overflow-y:auto}.toolbox-group{flex-direction:column;gap:12px;display:flex}.toolbox-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:800}.toolbox-list{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.toolbox-item{background-color:var(--primary-bg);border:1px solid var(--border-color);border-radius:var(--border-radius-md);cursor:grab;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;transition:transform .2s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .2s;display:flex}.toolbox-item:hover{border-color:var(--text-primary);box-shadow:var(--shadow-soft);transform:translateY(-4px)}.toolbox-item:active{cursor:grabbing}.toolbox-item-icon{pointer-events:none;width:40px;height:28px}.toolbox-item-name{text-align:center;font-size:11px;font-weight:700}.custom-gate-item{border-left-width:5px;flex-direction:row;grid-column:span 2;justify-content:space-between;padding:12px 16px}.canvas-container{background-color:var(--primary-bg);outline:none;flex:1;position:relative;overflow:hidden}.canvas-svg{width:100%;height:100%;display:block}.inspector-container{background-color:var(--secondary-bg);border-left:2px solid var(--border-color);flex-direction:column;gap:20px;width:300px;padding:24px;display:flex;overflow-y:auto}.inspector-header{border-bottom:1px solid var(--border-color);margin-bottom:8px;padding-bottom:12px}.inspector-title{font-size:16px;font-weight:800}.inspector-subtitle{color:var(--text-muted);font-size:12px;font-family:var(--mono)}.inspector-group{flex-direction:column;gap:8px;display:flex}.inspector-label{color:var(--text-muted);font-size:12px;font-weight:700}.inspector-input{border-radius:var(--border-radius-sm);border:1px solid var(--border-color);width:100%;font-family:var(--sans);background-color:var(--primary-bg);color:var(--text-primary);outline:none;padding:10px 14px;font-size:14px;transition:border-color .15s}.inspector-input:focus{border-color:var(--text-primary)}.status-bar{background-color:var(--secondary-bg);border-top:1px solid var(--border-color);font-family:var(--mono);color:var(--text-muted);z-index:10;justify-content:space-between;align-items:center;padding:8px 24px;font-size:11px;display:flex}.status-left,.status-right{align-items:center;gap:16px;display:flex}.status-indicator{background-color:var(--border-color);border-radius:50%;width:8px;height:8px;display:inline-block}.status-indicator.active{background-color:var(--logic-high);box-shadow:0px 0px 6px var(--logic-high);animation:1.5s infinite alternate pulse}.status-error{color:#c53030;align-items:center;gap:6px;font-weight:700;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background-color:#1a1a1a66;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-container{background-color:var(--secondary-bg);border:2px solid var(--border-color);border-radius:var(--border-radius-lg);width:440px;max-width:90%;box-shadow:var(--shadow-soft);flex-direction:column;gap:20px;padding:32px;display:flex}.modal-header{border-bottom:1px solid var(--border-color);padding-bottom:12px;font-size:20px;font-weight:800}.modal-footer{justify-content:flex-end;gap:12px;margin-top:12px;display:flex}.color-picker{gap:8px;display:flex}.color-option{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px;transition:transform .15s,border-color .15s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--text-primary);transform:scale(1.1)}@keyframes pulse{0%{opacity:.5}to{opacity:1}}.canvas-controls{z-index:5;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--border-radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-soft);background-color:#f4f5f2d9;gap:8px;padding:6px;display:flex;position:absolute;bottom:20px;left:20px}.canvas-controls-btn{border-radius:var(--border-radius-sm);cursor:pointer;background:0 0;border:none;padding:6px;font-size:12px;font-weight:800}.canvas-controls-btn:hover{background-color:var(--primary-bg);transform:none}.curriculum-sidebar{background-color:var(--secondary-bg);border-right:2px solid var(--border-color);flex-direction:column;gap:20px;padding:20px;display:flex;width:340px!important}.curriculum-header-block{border-bottom:1px solid var(--border-color);padding-bottom:16px}.curriculum-mode-title{letter-spacing:.08em;color:var(--text-primary);margin-bottom:6px;font-size:14px;font-weight:900}.curriculum-mode-desc{color:var(--text-muted);font-size:11px;line-height:1.5}.curriculum-roadmap-list{border-bottom:1px solid var(--border-color);flex-direction:column;gap:8px;max-height:250px;padding-bottom:16px;padding-right:4px;display:flex;overflow-y:auto}.curriculum-roadmap-list::-webkit-scrollbar{width:4px}.curriculum-roadmap-list::-webkit-scrollbar-track{background:0 0}.curriculum-roadmap-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.roadmap-step-item{border:1px solid var(--border-color);background-color:var(--primary-bg);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:10px 14px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.roadmap-step-item.unlocked:hover{border-color:var(--text-primary);background-color:#ffffff0a;transform:translate(4px)}.roadmap-step-item.active{border-color:var(--text-primary);box-shadow:var(--shadow-soft);background-color:#ffffff14}.roadmap-step-item.locked{opacity:.4;cursor:not-allowed}.roadmap-step-icon-wrapper{flex-shrink:0}.step-status-badge{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:800;display:flex}.step-status-badge.cleared{color:#0f6;background-color:#00ff6626;border:1px solid #00ff664d}.step-status-badge.unlocked{color:var(--text-primary);border:1px solid var(--border-color);background-color:#ffffff14}.step-status-badge.locked{color:var(--text-muted);border:1px dashed var(--border-color);background-color:#0000}.roadmap-step-info{flex:1;min-width:0}.roadmap-step-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.roadmap-step-ports{color:var(--text-muted);margin-top:2px;font-size:10px}.active-mission-card{background-color:var(--primary-bg);border:1px solid var(--border-color);border-radius:16px;flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px;display:flex;overflow-y:auto}.mission-card-header{justify-content:space-between;align-items:center;display:flex}.mission-badge{color:var(--accent);letter-spacing:.08em;font-size:9px;font-weight:900}.mission-status-label{color:var(--text-muted);font-size:9px;font-weight:800}.mission-card-title{color:var(--text-primary);margin:0;font-size:14px;font-weight:800}.mission-card-desc{color:var(--text-muted);margin:0;font-size:11px;line-height:1.5}.mission-ports-section{border-top:1px solid var(--border-color);flex-direction:column;gap:8px;padding-top:10px;display:flex}.port-req-group{flex-direction:column;gap:4px;display:flex}.port-req-label{color:var(--text-muted);font-size:9px;font-weight:800}.port-req-badges{flex-wrap:wrap;gap:4px;display:flex}.port-badge{border:1px solid var(--border-color);border-radius:6px;padding:2px 6px;font-size:10px;font-weight:700}.port-badge.in{color:#b6e63a;background-color:#b6e63a14;border-color:#b6e63a33}.port-badge.out{color:var(--text-primary);background-color:#ffffff0a}.mission-hint-block{border-top:1px solid var(--border-color);padding-top:10px}.hint-toggle-btn{border:1px solid var(--border-color);width:100%;color:var(--text-primary);cursor:pointer;background-color:#ffffff0a;border-radius:8px;padding:8px;font-size:10px;font-weight:800;transition:all .15s}.hint-toggle-btn.active{color:#ffb800;background-color:#ffb8001a;border-color:#ffb8004d}.hint-content-box{color:var(--text-primary);white-space:pre-line;background-color:#ffb8000a;border:1px dashed #ffb80033;border-radius:8px;margin-top:8px;padding:10px;font-size:10px;line-height:1.4}.verification-feedback-box{white-space:pre-line;border-radius:8px;max-height:120px;padding:10px;font-size:10px;line-height:1.4;overflow-y:auto}.verification-feedback-box.success{color:#0f6;background-color:#00ff660f;border:1px solid #00ff664d}.verification-feedback-box.failure{color:#ff6b6b;background-color:#ff6b6b0f;border:1px solid #ff6b6b4d}.mission-action-row{gap:8px;margin-top:10px;display:flex}.mission-reset-btn{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;background-color:#0000;border-radius:10px;flex:1;padding:10px;font-size:11px;font-weight:800;transition:background-color .15s}.mission-reset-btn:hover{background-color:#ffffff0a}.mission-verify-btn{cursor:pointer;border-radius:10px;flex:1.5;padding:10px;font-size:11px;font-weight:800}.no-mission-placeholder{border:1px dashed var(--border-color);height:200px;color:var(--text-muted);border-radius:12px;justify-content:center;align-items:center;font-size:12px;display:flex}.curriculum-dock-container{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#1a1a1ad9;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:10px 18px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0006}.dock-title-label{letter-spacing:.15em;color:#fff6;text-transform:uppercase;font-size:8px;font-weight:900}.dock-items-wrapper{align-items:center;gap:8px;display:flex}.dock-item{cursor:grab;-webkit-user-select:none;user-select:none;background-color:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:54px;height:54px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.dock-item:hover{background-color:#ffffff14;border-color:#ffffff4d;transform:translateY(-6px);box-shadow:0 5px 15px #0000004d}.dock-item:active{cursor:grabbing}.dock-item-visual{justify-content:center;align-items:center;height:22px;display:flex}.dock-item-icon{width:36px;height:20px}.dock-item-name{color:#ffffffb3;text-transform:uppercase;letter-spacing:.02em;font-size:9px;font-weight:800}.dock-divider{background-color:#ffffff26;width:1px;height:36px;margin:0 4px}.custom-gate-dot{border-radius:50%;width:8px;height:8px}.canvas-container,.canvas-svg,.canvas-svg text,.canvas-svg tspan{-webkit-user-select:none;user-select:none}.cloud-circuit-item:hover{border-color:var(--text-primary)!important;background-color:#ffffff14!important}.minimap-container{z-index:20;background-color:var(--secondary-bg);border:1.5px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-soft);transition:box-shadow .2s;position:absolute;bottom:16px;right:16px;overflow:hidden}.minimap-container:hover{box-shadow:0 16px 40px #0000001f}.minimap-header{cursor:pointer;-webkit-user-select:none;user-select:none;background-color:var(--primary-bg);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.minimap-title{letter-spacing:.05em;color:var(--text-muted);text-transform:uppercase;font-size:10px;font-weight:800}.minimap-toggle{color:var(--text-muted);font-size:9px}.minimap-svg{cursor:crosshair;display:block}.minimap-bg{fill:var(--primary-bg)}.minimap-node{fill:var(--border-color);opacity:.7}.minimap-node--switch,.minimap-node--button,.minimap-node--port_in{fill:var(--accent);opacity:.8}.minimap-node--led,.minimap-node--port_out{fill:var(--text-muted);opacity:.6}.minimap-node--custom{fill:#b6e63a;opacity:.75}.minimap-node--clock{fill:#4d96ff;opacity:.75}.minimap-viewport{fill:var(--accent-light);stroke:var(--accent);stroke-width:1.5px;pointer-events:none;rx:2}body.dark-theme .minimap-container{box-shadow:0 8px 24px #00000080}.collab-panel{flex-direction:column;gap:10px;padding:4px 0;display:flex}.collab-panel-title{letter-spacing:.04em;color:var(--text-muted);text-transform:uppercase;align-items:center;gap:6px;font-size:11px;font-weight:800;display:flex}.collab-icon{font-size:14px}.collab-icon--live{animation:2s ease-in-out infinite collab-pulse}@keyframes collab-pulse{0%,to{opacity:1}50%{opacity:.5}}.collab-room-id{font-size:10px;font-weight:700;font-family:var(--mono);background-color:var(--accent-light);color:var(--text-primary);border:1px solid var(--border-color);-webkit-user-select:text;user-select:text;cursor:text;border-radius:4px;outline:none;width:82px;min-width:0;padding:1px 5px}.collab-room-id:focus{border-color:var(--accent)}.collab-error{color:#e53e3e;border-radius:var(--border-radius-sm);background-color:#e53e3e14;border:1px solid #e53e3e40;padding:6px 10px;font-size:11px}.collab-connecting{color:var(--text-muted);align-items:center;gap:8px;font-size:11px;font-style:italic;display:flex}.collab-spinner{border:2px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite collab-spin;display:inline-block}@keyframes collab-spin{to{transform:rotate(360deg)}}.collab-login-hint{color:var(--text-muted);font-size:11px;font-style:italic;line-height:1.4}.collab-join-row{align-items:center;gap:6px;display:flex}.collab-input{border:1.5px solid var(--border-color);border-radius:var(--border-radius-sm);background-color:var(--primary-bg);height:32px;color:var(--text-primary);font-family:var(--mono);outline:none;flex:1;min-width:0;padding:0 8px;font-size:11px;transition:border-color .15s}.collab-input:focus{border-color:var(--accent)}.collab-btn{border-radius:var(--border-radius-sm);border:1.5px solid var(--border-color);background-color:var(--secondary-bg);color:var(--text-primary);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;padding:6px 10px;font-size:11px;font-weight:700;transition:all .15s;display:flex}.collab-btn:hover:not(:disabled){border-color:var(--text-muted);transform:translateY(-1px)}.collab-btn:disabled{opacity:.45;cursor:default}.collab-btn.primary{background-color:var(--accent);border-color:var(--accent);color:var(--text-primary);justify-content:center;width:100%}.collab-btn.primary:hover{background-color:var(--accent-hover)}.collab-btn--copy{justify-content:center;width:100%}.collab-btn--copy.copied{background-color:var(--accent-light);border-color:var(--accent);color:var(--text-primary)}.collab-btn--leave{color:#e53e3e;background-color:#e53e3e12;border-color:#e53e3e4d;justify-content:center;width:100%;margin-top:4px}.collab-btn--leave:hover{background-color:#e53e3e1f;border-color:#e53e3e}.collab-members-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:10px;font-weight:700}.collab-members{flex-direction:column;gap:5px;display:flex}.collab-member{align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.collab-member-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.collab-member-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.collab-status-badge{color:var(--text-primary);background-color:var(--accent-light);border:1px solid var(--accent);border-radius:var(--border-radius-sm);padding:2px 8px;font-size:11px;font-weight:700;animation:2s ease-in-out infinite collab-pulse}
