@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-color: #f6f5ef;--surface-color: #faf9f5;--surface-hover: #f0eee6;--border-color: #d5d0c4;--text-primary: #334155;--text-secondary: #64748b;--accent-primary: #0d7377;--accent-secondary: #10856a;--accent-tertiary: #10b981;--danger: #dc2626;--gradient-main: linear-gradient(135deg, #0d7377, #10856a);--pid-bg: #f8fafc;--pid-grid: #e2e8f0;--pid-border: #cbd5e1;--pid-stroke: #0f172a;--pid-text: #334155;--pid-accent: #2563eb;--canvas-bg: #f6f5ef;--z-canvas: 0;--z-node: 1;--z-edge-label: 5;--z-toolbar: 10;--z-panel: 20;--z-dropdown: 30;--z-modal: 50;--z-modal-backdrop: 49;--z-toast: 60;--z-tooltip: 70;--z-overlay: 100}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background-color:var(--bg-color);color:var(--text-primary);height:100vh;width:100vw;overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}#root{height:100%;width:100%}body.scrollable-page{overflow:auto;height:auto;min-height:100vh}body.scrollable-page #root{height:auto;min-height:100vh}.app-container{display:flex;height:100%;width:100%}.sidebar{position:absolute;bottom:0;--dock-left-edge: 40px;--dock-right-edge: 290px;left:calc((var(--dock-left-edge) + 100% - var(--dock-right-edge)) / 2);transform:translate(-50%);width:min(90%,calc(100% - var(--dock-left-edge) - var(--dock-right-edge) - 40px));max-width:1400px;background:#faf9f5;backdrop-filter:none;-webkit-backdrop-filter:none;display:flex;flex-direction:column;z-index:1000;border-radius:14px 14px 0 0;border:1px solid #d5d0c4;border-bottom:none;box-shadow:0 -4px 16px #2d262114,0 1px 4px #0000000a;overflow:visible}.pid-sidebar{--dock-right-edge: 640px;background:#faf9f5;border:1px solid #d5d0c4;border-bottom:none;box-shadow:0 -4px 16px #2d262114,0 1px 4px #0000000a}.dock-scroll-handle{display:flex;align-items:center;justify-content:center;cursor:ns-resize;height:12px;-webkit-user-select:none;user-select:none;touch-action:none;position:relative;border-top:1px solid transparent}.dock-tactile-button{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;padding:5px 16px;background:#faf9f5;border:1.5px solid #d5d0c4;border-radius:20px;box-shadow:0 4px 10px #2d262126;cursor:ns-resize;z-index:1010;transition:all .2s ease;white-space:nowrap;pointer-events:auto}.dock-tactile-button:hover{background:#f6f5ef;border-color:#a09586;box-shadow:0 6px 14px #2d262133;transform:translate(-50%,-53%) scale(1.02)}.dock-tactile-button:active{background:#e2dfd5;border-color:#7c7267;transform:translate(-50%,-48%) scale(.98)}.dock-tactile-text{font-family:var(--font-sans, system-ui, -apple-system, sans-serif);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#7c7267;-webkit-user-select:none;user-select:none}.dock-tactile-grip{font-size:.8rem;font-weight:900;color:#a09586;letter-spacing:-.1em;line-height:1;opacity:.8}.dock-scroll-body{display:flex;flex-direction:column;gap:4px;padding:0 14px;overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:#d5d0c4 transparent}.sidebar-collapsed .dock-scroll-body{padding:0}.sidebar-expanded{box-shadow:0 -6px 32px #00000040,0 1px 4px #00000026}.pid-sidebar.sidebar-expanded{box-shadow:0 -6px 24px #2d26211f,0 1px 4px #0000000a}.sidebar-collapsed{min-width:280px;box-shadow:0 -2px 8px #2d26210f,0 1px 4px #00000005}.pid-sidebar.sidebar-collapsed{box-shadow:0 -2px 8px #2d26210f,0 1px 4px #00000005}.minimize-btn{background:#f1f5f9;border:none;color:#64748b;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s}.minimize-btn:hover{background:#fee2e2;color:#ef4444}.pid-sidebar .minimize-btn{background:#f1f5f9;color:#64748b}.pid-sidebar .minimize-btn:hover{background:#fee2e2;color:#ef4444}.sidebar-content{display:flex;flex-direction:column;gap:0;padding:0;overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:#d5d0c4 transparent}.pid-sidebar .sidebar-content{scrollbar-color:#d5d0c4 transparent}.sidebar-section{display:flex;flex-direction:column;gap:4px;padding:6px 12px;border-bottom:1px solid #e2e8f0;flex-shrink:0}.sidebar-section:last-child{border-bottom:none}.pid-sidebar .sidebar-section{border-bottom:1px solid #e2e8f0}.pid-sidebar .sidebar-section:last-child{border-bottom:none}.section-header{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:#475569;margin-bottom:2px;display:flex;align-items:center;gap:5px;padding:2px 4px;border-radius:4px;white-space:nowrap}.pid-sidebar .section-header{color:#94a3b8}.section-body{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px;overflow:hidden}.sidebar-content::-webkit-scrollbar{width:4px}.sidebar-content::-webkit-scrollbar-track{background:transparent}.sidebar-content::-webkit-scrollbar-thumb{background:#2d334d;border-radius:3px}.pid-sidebar .sidebar-content::-webkit-scrollbar-thumb{background:#d5d0c4}.sidebar-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}.dock-section-label{width:100%;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:#475569;padding:6px 6px 2px;display:flex;align-items:center;gap:4px;border-top:1px solid #2d334d}.dock-section-label:first-child{border-top:none;padding-top:0}.pid-sidebar .dock-section-label{color:#94a3b8;border-top-color:#e2e8f0}.dock-section-label-forged{color:#c78a4e}.pid-sidebar .dock-section-label-forged{color:#b08040}.draggable-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 4px 5px;cursor:grab;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;border-radius:10px;width:110px;flex-shrink:0;background:transparent;border:1px solid transparent}.draggable-item span{font-size:.72rem;font-weight:600;color:#64748b;transition:all .2s ease;white-space:normal;text-align:center;line-height:1.15;pointer-events:none;max-width:100%;overflow-wrap:break-word}.pid-sidebar .draggable-item span{color:#64748b}.draggable-item:hover{transform:translateY(-6px) scale(1.08);background:#f0eee6;border-color:#d5d0c4;z-index:10;box-shadow:0 8px 20px #00000014}.pid-sidebar .draggable-item:hover{background:#f1f5f9;border-color:#e2e8f0;box-shadow:0 8px 20px #00000014}.draggable-item:hover span{opacity:1;color:#1e293b}.pid-sidebar .draggable-item:hover span{color:#1e293b}.icon-wrapper{display:flex;align-items:center;justify-content:center;width:68px;height:68px;background:transparent;transition:all .3s ease}.icon-wrapper svg{display:block}.sidebar .icon-wrapper svg{filter:none}.pid-sidebar .icon-wrapper svg{filter:brightness(0)}.item-reactor:hover .icon-wrapper{filter:drop-shadow(0 0 12px rgba(244,63,94,.5))}.item-distillation:hover .icon-wrapper{filter:drop-shadow(0 0 12px rgba(139,92,246,.5))}.item-mixer:hover .icon-wrapper{filter:drop-shadow(0 0 12px rgba(16,185,129,.5))}.item-heater:hover .icon-wrapper{filter:drop-shadow(0 0 12px rgba(245,158,11,.5))}.item-pump:hover .icon-wrapper{filter:drop-shadow(0 0 12px rgba(59,130,246,.5))}.draggable-item:active{cursor:grabbing;transform:scale(.9)}.item-reactor .icon-wrapper{color:#f43f5e}.item-distillation .icon-wrapper{color:#8b5cf6}.item-mixer .icon-wrapper{color:#10b981}.item-heater .icon-wrapper{color:#f59e0b}.item-pump .icon-wrapper{color:#3b82f6}.flow-container{flex:1;position:relative;height:100%;background:var(--canvas-bg)}.react-flow,.react-flow__renderer,.react-flow__pane{background:var(--canvas-bg)!important}.top-bar{position:absolute;top:16px;right:16px;z-index:var(--z-toolbar);display:flex;gap:4px;align-items:center;background:#f1f5f9d1;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(226,232,240,.6);border-radius:12px;padding:4px 6px;box-shadow:0 2px 12px #0000000f}.toolbar-group{display:flex;align-items:center;gap:1px;padding:0 2px;position:relative}.toolbar-group:before{content:"";position:absolute;left:-2px;top:4px;bottom:4px;width:1px;background:#94a3b840}.toolbar-group:first-child:before{display:none}.toolbar-file-btn{gap:2px}.btn-compact{padding:4px 10px;font-size:.72rem}.project-name-pill{display:flex;align-items:center;gap:7px;background:#f1f5f9d1;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(226,232,240,.6);border-radius:10px;padding:5px 14px 5px 10px;box-shadow:0 2px 12px #0000000f;max-width:240px;overflow:hidden}.project-name-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;flex-shrink:0;box-shadow:0 0 6px #22c55e66}.project-name-text{font-size:.76rem;font-weight:600;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em;font-family:Inter,system-ui,sans-serif}.mode-toggle{display:flex;background:#f1f5f980;padding:2px;border-radius:8px;border:1px solid rgba(226,232,240,.5);margin-right:0}.btn-icon{padding:6px;border-radius:4px;background:transparent;color:var(--text-secondary);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-icon:hover{background:#f0eee6;color:#334155}.btn-icon.active{background:#334155;color:#faf9f5}.btn{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;border:none;font-family:inherit;font-weight:600;font-size:.78rem;cursor:pointer;transition:all .2s}.btn-primary{background:var(--gradient-main);color:#fff;box-shadow:0 4px 12px #0d73774d}.btn-primary:hover{box-shadow:0 6px 16px #0d737780;transform:translateY(-1px)}.btn-secondary{background:#f1f5f9;color:#334155;border:1px solid #e2e8f0}.btn-secondary:hover{background:#e2e8f0}.pfd-node{position:relative;width:100%;height:100%;transition:all .2s ease}.rotate-handle{position:absolute;top:-20px;right:-20px;z-index:20;cursor:grab;color:#3b82f6;background:#ffffffe6;border-radius:50%;padding:2px;box-shadow:0 1px 4px #00000026}.pfd-node.selected .pfd-svg-container svg{filter:drop-shadow(0 0 8px rgba(59,130,246,.8))}.pfd-svg-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;z-index:2}.pfd-data-panel{background:#0f111a66;backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);border:1px solid rgba(255,255,255,.08);border-top:1px solid rgba(255,255,255,.15);border-radius:12px;padding:10px 14px;min-width:150px;box-shadow:0 10px 30px #00000080,inset 0 1px #ffffff0d;margin-top:14px;z-index:10;pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.pfd-data-panel.active{min-width:180px;background:#0f111a99}.pfd-node.selected .pfd-data-panel{border-color:#3b82f666;background:#3b82f60d;box-shadow:0 0 20px #3b82f626,0 10px 40px #0009}.pfd-header{border-bottom:1px solid var(--border-color);padding-bottom:6px;margin-bottom:6px}.pfd-header div:first-child{font-weight:600;font-size:.9rem;color:var(--text-primary)}.pfd-type{font-size:.85rem;color:var(--text-secondary);font-weight:600}.pfd-content{font-size:.9rem}.pfd-prop{display:flex;justify-content:space-between;margin-bottom:4px}.pfd-prop-label{color:var(--text-secondary)}.pfd-prop-value{color:var(--text-primary);font-weight:500}.custom-handle{width:10px;height:10px;background:#fff;border:2px solid var(--accent-primary);opacity:0;transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;z-index:100;pointer-events:all}.pfd-node:hover .custom-handle,.pfd-node.selected .custom-handle{opacity:1}.custom-handle:after{content:"";position:absolute;inset:-15px;background:transparent}.custom-handle:hover{background:var(--accent-primary);border-color:var(--accent-primary);transform:translate(-50%,-50%) scale(1.4)!important}.pid-handle{opacity:0;width:12px!important;height:12px!important;background:#fff!important;border:1.5px solid var(--handle-color, #3b82f6)!important;border-radius:2px;transition:opacity .15s ease,transform .15s ease!important;pointer-events:all!important;z-index:1000;right:auto!important;bottom:auto!important}.pid-handle:before,.pid-handle:after{content:"";position:absolute;background:var(--handle-color, #3b82f6)}.pid-handle:before{top:50%;left:20%;right:20%;height:1.5px;transform:translateY(-50%)}.pid-handle:after{left:50%;top:20%;bottom:20%;width:1.5px;transform:translate(-50%)}.pfd-node:hover .pid-handle,.pfd-node.selected .pid-handle,.pid-handle.react-flow__handle-connecting,.pid-handle.react-flow__handle-valid,.custom-handle.react-flow__handle-connecting,.custom-handle.react-flow__handle-valid{opacity:1!important}.react-flow.connecting .pid-handle,.react-flow.connecting .custom-handle{opacity:.7!important;pointer-events:none!important}.react-flow.connecting .pfd-node:hover .pid-handle,.react-flow.connecting .pfd-node:hover .custom-handle{opacity:1!important;pointer-events:none!important}.react-flow.rf-connecting .pid-handle,.react-flow.rf-connecting .custom-handle{opacity:.7!important;pointer-events:none!important}.react-flow.rf-connecting .pfd-node:hover .pid-handle,.react-flow.rf-connecting .pfd-node:hover .custom-handle{opacity:1!important;pointer-events:none!important}html body .react-flow__node,html body .react-flow__node.selected,html body .pfd-node,html body .react-flow__edge,html body .react-flow__edge-path{opacity:1!important;visibility:visible!important}html body .react-flow__edges{display:block!important;opacity:1!important;visibility:visible!important}html body .react-flow__node>div,html body .react-flow__node>svg{opacity:1!important;visibility:visible!important}.pid-handle:hover{transform:translate(-50%,-50%) scale(1.3)!important;background:#eff6ff!important;box-shadow:0 0 8px color-mix(in srgb,var(--handle-color, #3b82f6) 40%,transparent)}.pid-signal-handle{width:10px!important;height:10px!important;border-radius:50%!important;border:1.5px solid var(--handle-color, #f59e0b)!important;background:#fffbeb!important;transform:translate(-50%,-50%) rotate(45deg)}.pid-signal-handle:before{top:50%;left:50%;right:auto;width:4px;height:4px;border-radius:50%;background:var(--handle-color, #f59e0b);transform:translate(-50%,-50%)}.pid-signal-handle:after{display:none}.pid-signal-handle:hover{transform:translate(-50%,-50%) rotate(45deg) scale(1.4)!important;background:#fef3c7!important;box-shadow:0 0 10px color-mix(in srgb,var(--handle-color, #f59e0b) 50%,transparent)}.react-flow__edge-path{stroke:var(--text-secondary);stroke-width:2}.react-flow__connection-path{stroke:var(--accent-primary);stroke-width:2}.properties-panel{width:100%;flex:1;min-height:0;background-color:transparent;display:flex;flex-direction:column;z-index:var(--z-panel);overflow:hidden;min-width:0}.custom-resize-handle{width:8px;background-color:transparent;cursor:col-resize;position:relative;display:flex;align-items:center;justify-content:center;z-index:50}.custom-resize-handle:after{content:"";position:absolute;left:3px;top:0;bottom:0;width:2px;background-color:var(--border-color);transition:background-color .2s ease}.custom-resize-handle:hover:after,.custom-resize-handle[data-resize-handle-state=drag]:after{background-color:var(--accent-primary);box-shadow:0 0 6px var(--accent-primary)}.properties-header{padding:20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.properties-title{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.properties-content{flex:1;min-height:0;overflow-y:auto;padding:12px 14px;scrollbar-width:thin;scrollbar-color:var(--accent-primary) transparent}.property-group{margin-bottom:12px}.property-label{display:block;font-size:.75rem;font-weight:600;color:#64748b;margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}.property-input{width:100%;background:#fff;border:1px solid #cbd5e1;color:#334155;padding:6px 10px;border-radius:6px;font-family:inherit;font-size:.85rem;transition:all .2s;box-shadow:inset 0 1px 2px #00000005}.property-input:focus{outline:none;background:#fff;border-color:#94a3b8;box-shadow:0 0 0 2px #64748b1f,inset 0 1px 2px #00000005}.property-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-color:#fff;padding-right:28px;cursor:pointer}.property-select option{background:#fff;color:#334155;padding:8px}.property-row{display:flex;gap:12px;margin-bottom:12px}.property-row>*{flex:1;min-width:0}.property-row .property-group{margin-bottom:0}.property-card{background:#fff9;border:1px solid rgba(0,0,0,.06);border-radius:8px;padding:12px;margin-bottom:12px}.property-card-title{font-size:.8rem;font-weight:700;color:#334155;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(0,0,0,.06)}.add-property-form{margin-top:24px;padding-top:20px;border-top:1px dashed var(--border-color)}.add-property-form h4{font-size:.9rem;color:var(--text-secondary);margin-bottom:12px}.add-prop-inputs{display:flex;gap:8px;margin-bottom:12px}.icon-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:4px}.icon-btn:hover{background:var(--surface-hover);color:var(--accent-primary)}.specialized-panel{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}.special-header{font-size:.8rem;color:var(--accent-tertiary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}.segment-handle:hover{opacity:1!important;background:var(--accent-primary)!important;box-shadow:0 0 8px #3b82f699;transform:translate(-50%,-50%) scale(1.3)}.segment-handle:active{background:var(--accent-secondary)!important;opacity:1!important}.react-flow__edge:hover .segment-handle{opacity:.6!important}.dropdown-container{position:relative;display:inline-block}.dropdown-container:after{content:"";position:absolute;top:100%;left:0;width:100%;height:12px}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:8px;background:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 10px 30px #2d26211f,0 1px 3px #0000000f;display:flex;flex-direction:column;min-width:240px;z-index:var(--z-dropdown);overflow:visible;opacity:0;pointer-events:none;transform:translateY(-8px);transition:all .2s cubic-bezier(.4,0,.2,1)}.dropdown-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)}.dropdown-item{display:flex;align-items:center;gap:8px;padding:12px 16px;color:var(--text-primary);cursor:pointer;transition:all .2s;font-size:.9rem;font-weight:500;border:none;background:transparent;width:100%;text-align:left;border-bottom:1px solid rgba(0,0,0,.04)}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background:var(--surface-hover);color:var(--accent-primary);padding-left:20px}.dropdown-section-label{padding:10px 16px 4px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-primary);opacity:.7;pointer-events:none}.dropdown-divider{height:1px;background:var(--border-color);margin:4px 12px}.user-avatar-pill{background:none;border:none;cursor:pointer;padding:2px;display:flex;align-items:center;transition:transform .15s ease}.user-avatar-pill:hover{transform:scale(1.08)}.user-avatar-circle{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#334155,#475569);color:#f1f5f9;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;font-family:Inter,system-ui,sans-serif;letter-spacing:.02em;border:2px solid rgba(255,255,255,.15);box-shadow:0 2px 6px #00000026;transition:all .2s}.user-avatar-pill:hover .user-avatar-circle{border-color:#ffffff4d;box-shadow:0 4px 12px #0000004d}.pid-mode .user-avatar-circle{background:linear-gradient(135deg,#5a5347,#78716c);color:#faf9f5;border-color:#d5d0c4;box-shadow:0 2px 8px #2d262126}.pid-mode .user-avatar-pill:hover .user-avatar-circle{border-color:#94a3b8;box-shadow:0 4px 12px #2d262133}.pid-mode .top-bar,.pid-mode .project-name-pill{background:#faf9f5d9;border-color:#d5d0c4;box-shadow:0 2px 12px #2d262114}.pid-mode .project-name-text{color:#44403c}.pid-mode .toolbar-group:before{background:#b4aa9b4d}.pid-mode .dropdown-menu{background:#faf9f5;border:1px solid #d5d0c4;box-shadow:0 10px 30px #2d26211f,0 1px 3px #0000000f}.pid-mode .dropdown-item{color:#334155;border-bottom:1px solid rgba(0,0,0,.04)}.pid-mode .dropdown-item:hover{background:#f0eee6;color:#1e293b}.pid-mode .dropdown-item:last-child{border-bottom:none}.pid-mode .dropdown-section-label{color:#64748b}.pid-mode .dropdown-divider{background:#e2ddd2}.pid-mode .btn-icon{color:#64748b}.pid-mode .btn-icon:hover{background:#f0eee6;color:#334155}.pid-mode .btn-icon.active{background:#334155;color:#faf9f5}.pid-mode .mode-toggle{background:#f0eee6;border-color:#d5d0c4}.pid-mode .snap-toggle{background:#f0eee6;border-color:#d5d0c4;color:#64748b}.pid-mode .snap-toggle:hover{background:#e8e5db;color:#334155}.pid-mode .snap-toggle.active{background:#334155;color:#faf9f5;border-color:#334155}.pid-mode .btn-secondary{background:#f0eee6;color:#334155;border-color:#d5d0c4}.pid-mode .btn-secondary:hover{background:#e8e5db}.pid-property-panel{background:#faf9f5!important;border-color:#d5d0c4!important;color:#334155!important;box-shadow:0 24px 80px #2d262126!important}.pid-property-panel .property-input,.pid-property-panel .property-select{background:#f0eee6;border-color:#d5d0c4;color:#1e293b}.pid-property-panel .property-input:focus,.pid-property-panel .property-select:focus{border-color:#94a3b8;box-shadow:0 0 0 2px #64748b26}.pid-property-panel .property-label{color:#64748b}.pid-property-panel .property-card{background:#fff9;border-color:#0000000f}.pid-property-panel .property-card-title{color:#334155;border-bottom-color:#0000000f}.pid-mode .dock-scroll-handle:hover .dock-grab-bar{background:#a09586}.pid-mode .dock-collapsed-label{color:#8a7e6e}.pid-mode .minimize-btn{background:#f0eee6;color:#94a3b8}.pid-mode .minimize-btn:hover{background:#fef2f2;color:#ef4444}.dropdown-item.signout-item{color:#ef4444;border-top:1px solid rgba(0,0,0,.06);margin-top:4px}.dropdown-item.signout-item:hover{background:#ef44440f;color:#dc2626}.pid-mode .toast-msg{background:#faf9f5;border-color:#d5d0c4;color:#334155;box-shadow:0 8px 24px #2d26211f}.pid-mode .forge-dock-fab{background:#faf9f5;border-color:#d5d0c4;color:#334155;box-shadow:0 2px 8px #2d262114}.pid-mode .forge-dock-fab:hover{background:#f0eee6;border-color:#94a3b8}.pid-mode .btn-primary{background:#334155;color:#faf9f5;box-shadow:0 2px 8px #2d262126}.pid-mode .btn-primary:hover{background:#1e293b;box-shadow:0 4px 12px #2d262133}.pid-mode .btn-icon:disabled{color:#cbd5e1;opacity:.5}.pid-mode .title-block-toggle{background:#faf9f5;border-color:#d5d0c4;color:#64748b;-webkit-backdrop-filter:none;backdrop-filter:none}.pid-mode .title-block-toggle:hover{background:#f0eee6;color:#334155;border-color:#94a3b8}.pid-mode .title-block{background:#faf9f5;border-color:#5a5347}.pid-mode .title-block-header{background:#5a5347;color:#faf9f5}.pid-mode .title-block-grid>div:nth-child(odd){background:#f0eee6;color:#64748b}.pid-mode .title-block-grid>div{border-color:#d5d0c4}.pid-mode .title-block-grid{border-top-color:#5a5347}.pid-mode .title-block-input:focus{background:#f0eee6}.pid-mode .title-block-rev-table th{background:#f0eee6;color:#64748b;border-color:#d5d0c4}.pid-mode .title-block-rev-table td{border-color:#d5d0c4}.pid-mode .react-flow__controls{background:#faf9f5!important;border:1px solid #d5d0c4!important;box-shadow:0 4px 12px #2d262114!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.pid-mode .react-flow__controls-button{border-bottom:1px solid rgba(0,0,0,.04)!important;fill:#64748b!important;color:#64748b!important}.pid-mode .react-flow__controls-button:hover{background:#f0eee6!important;fill:#334155!important;color:#334155!important}.pid-mode ::-webkit-scrollbar-thumb{background:#d5d0c4}.pid-mode ::-webkit-scrollbar-thumb:hover{background:#b8b2a4}.pid-mode .dropdown-menu hr{border-top-color:#e2ddd2!important}.pid-sidebar .icon-wrapper{color:var(--text-primary)!important}.pid-sidebar .draggable-item:hover .icon-wrapper{filter:none!important}.pid-sidebar .icon-wrapper svg *{stroke:var(--text-primary)!important}.pid-sidebar .icon-wrapper svg text{fill:var(--text-primary)!important;stroke:none!important}@keyframes pid-panel-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.pid-property-panel{animation:pid-panel-in .18s ease-out forwards;font-family:var(--font-family)}.pid-property-panel .property-label{font-size:.72rem;font-weight:600;color:#94a3b8;letter-spacing:.02em}.pid-property-panel .toggle-switch{position:relative;display:inline-block;width:32px;height:18px}.pid-property-panel .toggle-switch input{opacity:0;width:0;height:0}.pid-property-panel .toggle-slider{position:absolute;inset:0;background:#ffffff1a;border-radius:18px;cursor:pointer;transition:background .2s}.pid-property-panel .toggle-slider:before{content:"";position:absolute;width:14px;height:14px;left:2px;bottom:2px;background:#94a3b8;border-radius:50%;transition:transform .2s,background .2s}.pid-property-panel .toggle-switch input:checked+.toggle-slider{background:#3b82f64d}.pid-property-panel .toggle-switch input:checked+.toggle-slider:before{transform:translate(14px);background:#3b82f6}.sidebar-header{padding:16px;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center}.sidebar-header h3{margin:0;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.app-container.pid-mode{background-color:var(--pid-bg)!important}.app-container.pid-mode .react-flow__renderer{background-color:var(--pid-bg)}.pid-node{border:none!important;background:transparent!important}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ffffff1a;border-radius:20px;transition:.2s}.toggle-slider:before{content:"";position:absolute;height:14px;width:14px;left:3px;bottom:3px;background-color:#64748b;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider{background-color:#3b82f64d}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px);background-color:#3b82f6}.nozzle-editor{display:flex;flex-direction:column;gap:10px}.nozzle-palette{display:flex;flex-direction:column;gap:6px}.nozzle-palette-hint{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:700}.nozzle-palette-items{display:flex;gap:4px;flex-wrap:wrap}.nozzle-palette-chip{display:flex;align-items:center;gap:4px;padding:5px 8px;border:1px solid color-mix(in srgb,var(--chip-color, #3b82f6) 40%,transparent);border-radius:6px;background:color-mix(in srgb,var(--chip-color, #3b82f6) 10%,transparent);color:var(--chip-color, #3b82f6);cursor:grab;font-size:10px;font-weight:700;transition:all .15s;-webkit-user-select:none;user-select:none;touch-action:none}.nozzle-palette-chip:hover{background:color-mix(in srgb,var(--chip-color, #3b82f6) 20%,transparent);border-color:var(--chip-color, #3b82f6);box-shadow:0 0 8px color-mix(in srgb,var(--chip-color, #3b82f6) 30%,transparent)}.nozzle-palette-chip.active{background:color-mix(in srgb,var(--chip-color, #3b82f6) 30%,transparent);border-color:var(--chip-color, #3b82f6);transform:scale(.92);cursor:grabbing}.nozzle-grip{opacity:.4}.nozzle-zoom-controls{position:absolute;top:4px;right:4px;z-index:20;display:flex;align-items:center;gap:2px;background:#ffffffd9;border:1px solid rgba(0,0,0,.08);border-radius:6px;padding:2px 4px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nozzle-zoom-controls button{all:unset;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#475569;cursor:pointer;border-radius:4px;transition:all .12s}.nozzle-zoom-controls button:hover:not(:disabled){background:#3b82f626;color:#2563eb}.nozzle-zoom-controls button:disabled{opacity:.3;cursor:default}.nozzle-zoom-controls span{font-size:10px;font-weight:600;color:#64748b;min-width:32px;text-align:center;-webkit-user-select:none;user-select:none}.nozzle-preview-viewport{position:relative;overflow:hidden;border-radius:10px;height:260px;cursor:grab;background:radial-gradient(circle,rgba(0,0,0,.06) 1px,transparent 1px);background-size:16px 16px;background-position:center center;border:1px solid rgba(0,0,0,.06)}.nozzle-preview-viewport:active{cursor:grabbing}.nozzle-preview-viewport.placing{cursor:crosshair}.nozzle-canvas-transform{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform-origin:center center;will-change:transform;pointer-events:none}.nozzle-preview{position:relative;width:65%;background:#00000005;border:2px dashed rgba(0,0,0,.12);border-radius:4px;overflow:visible;transition:border-color .2s,background .2s;pointer-events:auto}.nozzle-preview.placing{border-color:#3b82f659;background:#3b82f608;cursor:crosshair}.nozzle-preview-svg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.nozzle-preview-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:11px;font-weight:600;pointer-events:none}.nozzle-snap-guide{position:absolute;z-index:var(--z-edge-label);pointer-events:none}.nozzle-snap-guide.v{top:0;bottom:0;width:1px;background:#3b82f659}.nozzle-snap-guide.h{left:0;right:0;height:1px;background:#3b82f659}.nozzle-coord-readout{position:absolute;bottom:4px;right:6px;font-size:9px;font-weight:700;font-family:SF Mono,Cascadia Code,monospace;color:#3b82f6b3;background:#0006;padding:1px 5px;border-radius:3px;pointer-events:none;z-index:20}.nozzle-marker{position:absolute;width:14px;height:14px;border:2px solid;border-radius:3px;transform:translate(-50%,-50%) rotate(45deg);cursor:grab;transition:all .1s ease;z-index:10;touch-action:none}.nozzle-marker.dragging{cursor:grabbing;transition:none;z-index:15}.nozzle-marker.ghost{opacity:.6;pointer-events:none;animation:nozzle-pulse .8s ease infinite;z-index:12}@keyframes nozzle-pulse{0%,to{transform:translate(-50%,-50%) rotate(45deg) scale(1)}50%{transform:translate(-50%,-50%) rotate(45deg) scale(1.3)}}.nozzle-marker.hovered{transform:translate(-50%,-50%) rotate(45deg) scale(1.3);box-shadow:0 0 10px currentColor}.nozzle-marker-id{font-size:7px;font-weight:800;pointer-events:none;line-height:1;white-space:nowrap;position:absolute;top:-14px;left:50%;transform:rotate(-45deg) translate(-50%)}.nozzle-list{display:flex;flex-wrap:wrap;gap:4px;max-height:200px;overflow-y:auto}.nozzle-list-item{display:flex;align-items:center;gap:6px;padding:5px 6px;background:#fff9;border:1px solid rgba(0,0,0,.06);border-radius:6px;transition:all .15s}.nozzle-list-item.hovered{background:#fff;border-color:#0000001f}.nozzle-id-badge{min-width:28px;padding:2px 5px;border-radius:4px;font-size:10px;font-weight:800;text-align:center;border:1px solid;flex-shrink:0}.nozzle-item-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.nozzle-label-text{font-size:11px;color:#475569;cursor:text;padding:1px 4px;border-radius:3px;transition:background .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nozzle-label-text:hover{background:#0000000a;color:#0f172a}.nozzle-label-input{font-size:11px;background:#fff;border:1px solid #94a3b8;color:#334155;padding:1px 4px;border-radius:3px;outline:none;font-family:inherit;width:100%}.nozzle-type-select{font-size:9px;font-weight:700;text-transform:uppercase;background:transparent;border:none;cursor:pointer;padding:0 2px;font-family:inherit;outline:none;opacity:.7}.nozzle-type-select option{background:#1e293b;color:#e2e8f0}.nozzle-delete-btn{background:none;border:none;color:#0000004d;cursor:pointer;padding:3px;border-radius:4px;display:flex;transition:all .15s;flex-shrink:0}.nozzle-delete-btn:hover{color:#ef4444;background:#ef44441a}.annotation-node{position:relative;width:100%;height:100%;cursor:default}.annotation-text{display:flex;align-items:center;justify-content:center}.annotation-text-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-transform:uppercase;white-space:pre-wrap;word-break:break-word;text-align:center;padding:4px 8px;-webkit-user-select:none;user-select:none}.annotation-callout{background:#fffffff2;border:1.5px solid #94a3b8;border-radius:4px;padding:10px 12px;box-shadow:0 1px 4px #00000014}.annotation-callout.selected{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.annotation-callout-content{width:100%;height:100%;white-space:pre-wrap;word-break:break-word;line-height:1.5;-webkit-user-select:none;user-select:none;overflow:hidden}.annotation-area{border:2px dashed #94a3b8;border-radius:6px;background:#94a3b80a;position:relative}.annotation-area.selected{border-color:#3b82f6;background:#3b82f608}.annotation-area-label{position:absolute;top:-1px;left:12px;background:#f8fafc;padding:2px 10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;transform:translateY(-50%);border-radius:3px;border:1px solid #cbd5e1;white-space:nowrap;-webkit-user-select:none;user-select:none}.annotation-edit-input{width:100%;height:100%;background:transparent;border:none;outline:none;resize:none;font-family:Inter,sans-serif;line-height:1.5;padding:0}.annotation-area-edit{width:auto;height:auto;min-width:120px;background:#fff}.title-block-toggle{position:absolute;top:76px;left:16px;z-index:100;background:#0f172ad9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);color:#94a3b8;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px;transition:all .2s}.title-block-toggle:hover{background:#1e293bf2;color:#e2e8f0;border-color:#fff3}.title-block{position:absolute;top:76px;left:16px;z-index:100;background:#fffffff7;border:2px solid #1e293b;font-family:Inter,sans-serif;color:#1e293b;font-size:11px;min-width:460px;box-shadow:0 4px 20px #00000026;-webkit-user-select:none;user-select:none}.title-block-header{display:flex;justify-content:space-between;align-items:center;background:#1e293b;color:#fff;padding:4px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.title-block-close{background:none;border:none;color:#fff9;cursor:pointer;padding:2px;display:flex;transition:color .15s}.title-block-close:hover{color:#f87171}.title-block-grid{display:grid;grid-template-columns:100px 1fr;border-top:1px solid #1e293b}.title-block-grid>div{padding:4px 8px;border-bottom:1px solid #cbd5e1;border-right:1px solid #cbd5e1;display:flex;align-items:center}.title-block-grid>div:nth-child(odd){font-weight:700;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;background:#f1f5f9}.title-block-grid>div:nth-child(2n){font-size:11px;color:#1e293b}.title-block-input{width:100%;border:none;background:transparent;font-family:Inter,sans-serif;font-size:11px;color:#1e293b;padding:0;outline:none}.title-block-input:focus{background:#eff6ff;border-radius:2px}.title-block-rev-table{width:100%;border-collapse:collapse;font-size:10px}.title-block-rev-table th{background:#f1f5f9;padding:3px 6px;text-align:left;font-weight:700;font-size:9px;text-transform:uppercase;color:#64748b;border:1px solid #cbd5e1}.title-block-rev-table td{padding:3px 6px;border:1px solid #cbd5e1}.title-block-rev-table input{width:100%;border:none;background:transparent;font-family:inherit;font-size:10px;outline:none;padding:0}.alignment-guide-line{stroke:#3b82f6;stroke-width:1;stroke-dasharray:4 3;pointer-events:none;opacity:.7}.snap-toggle{display:flex;align-items:center;gap:4px;padding:6px 10px;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s;border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-secondary)}.snap-toggle.active{background:#3b82f626;border-color:#3b82f666;color:#60a5fa}.snap-toggle:hover{background:var(--surface-hover)}.react-flow__controls{background:#faf9f5eb!important;-webkit-backdrop-filter:blur(14px) saturate(1.4)!important;backdrop-filter:blur(14px) saturate(1.4)!important;border:1px solid #d5d0c4!important;border-radius:8px!important;box-shadow:0 4px 12px #2d262114!important;padding:2px!important;display:flex;flex-direction:column;gap:2px}.react-flow__controls-button{background:transparent!important;border:none!important;border-bottom:1px solid rgba(0,0,0,.04)!important;fill:#64748b!important;color:#64748b!important;transition:all .2s ease!important;border-radius:4px}.react-flow__controls-button:last-child{border-bottom:none!important}.react-flow__controls-button:hover{background:#f0eee6!important;fill:#334155!important;color:#334155!important}.app-container.is-recording .top-bar,.app-container.is-recording .sidebar,.app-container.is-recording .react-flow__controls,.app-container.is-recording .properties-panel{opacity:0!important;pointer-events:none!important;transition:opacity .2s ease!important}.app-container.is-recording .pfd-data-panel button{opacity:0!important;pointer-events:none!important}.app-container.is-recording,.app-container.is-recording *{cursor:none!important}.ai-forge-panel{position:fixed;z-index:var(--z-modal);background:#f4f1e8;border:1px solid #d5d0c4;border-radius:12px;box-shadow:0 8px 32px #5046321f,0 1px 4px #5046320f;display:flex;flex-direction:column;overflow:hidden;font-family:var(--font-family);font-size:12px}.ai-forge-embedded{position:relative;width:100%;max-width:820px;min-height:500px;background:#f4f1e8;border:2px solid #1a6b6a;border-radius:12px;box-shadow:0 8px 32px #1a6b6a1f;display:flex;flex-direction:column;overflow:hidden;font-family:var(--font-family);font-size:12px;margin:0 auto 40px}.ai-forge-embedded .forge-body{flex:1;min-height:420px}.ai-forge-embedded .forge-right{min-height:280px}.forge-resize-handle{position:absolute;z-index:10}.forge-resize-e{top:8px;right:-4px;bottom:8px;width:8px;cursor:ew-resize}.forge-resize-w{top:8px;left:-4px;bottom:8px;width:8px;cursor:ew-resize}.forge-resize-s{left:8px;right:8px;bottom:-4px;height:8px;cursor:ns-resize}.forge-resize-n{left:8px;right:8px;top:-4px;height:8px;cursor:ns-resize}.forge-resize-se{right:-4px;bottom:-4px;width:12px;height:12px;cursor:se-resize}.forge-resize-sw{left:-4px;bottom:-4px;width:12px;height:12px;cursor:sw-resize}.forge-resize-ne{right:-4px;top:-4px;width:12px;height:12px;cursor:ne-resize}.forge-resize-nw{left:-4px;top:-4px;width:12px;height:12px;cursor:nw-resize}.forge-resize-se:hover,.forge-resize-sw:hover,.forge-resize-ne:hover,.forge-resize-nw:hover{background:#78643c26;border-radius:2px}.ai-forge-header{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;background:#ede9dd;border-bottom:1px solid #d5d0c4;font-weight:600;font-size:13px;color:#3b3427;-webkit-user-select:none;user-select:none}.forge-icon-btn{background:none;border:none;color:#7a7060;cursor:pointer;padding:4px;border-radius:5px;display:flex;align-items:center;transition:color .15s,background .15s}.forge-icon-btn:hover{color:#3b3427;background:#d5d0c4}.forge-tabs{display:flex;border-bottom:1px solid #d5d0c4;background:#ede9dd}.forge-tab{flex:1;padding:9px;background:none;border:none;color:#9a8f7d;cursor:pointer;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:color .15s,border-bottom .15s;border-bottom:2px solid transparent}.forge-tab.active{color:#5a4a2a;border-bottom-color:#8b7355}.forge-body{display:flex;flex:1;overflow:hidden}.forge-left{width:360px;min-width:360px;padding:14px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;border-right:1px solid #d5d0c4;background:#f4f1e8}.forge-right{flex:1;padding:14px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;background:#f6f3ec}.forge-section{display:flex;flex-direction:column;gap:4px}.forge-label{font-size:10px;font-weight:700;color:#7a7060;letter-spacing:.08em;text-transform:uppercase}.forge-input,.forge-textarea{background:#faf8f2;border:1px solid #c8c1b3;border-radius:6px;color:#3b3427;padding:7px 10px;font-size:12px;font-family:var(--font-family);resize:vertical;transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 1px 2px #5046320a}.forge-input:focus,.forge-textarea:focus{outline:none;border-color:#8b7355;box-shadow:0 0 0 3px #8b735526,inset 0 1px 2px #5046320a}.forge-textarea.forge-code{font-family:Courier New,monospace;font-size:10px;color:#4a4035;background:#f0ede4}.forge-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .15s}.forge-btn:disabled{opacity:.45;cursor:not-allowed}.forge-btn-primary{background:linear-gradient(135deg,#6b5a3e,#8b7355);color:#faf8f2;box-shadow:0 1px 3px #6b5a3e4d}.forge-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#5a4a2a,#6b5a3e)}.forge-btn-secondary{background:#ede9dd;border:1px solid #d5d0c4;color:#5a4a2a}.forge-btn-secondary:hover:not(:disabled){background:#d5d0c4;color:#3b3427}.forge-btn-save{background:linear-gradient(135deg,#059669,#10b981);color:#fff;box-shadow:0 1px 3px #05966940}.forge-btn-save:hover{background:linear-gradient(135deg,#047857,#059669)}.forge-error{background:#faf0ee;border:1px solid #e0c4be;border-radius:6px;padding:8px 10px;color:#a03020;font-size:11px;line-height:1.5}.forge-preview-label{font-size:10px;font-weight:700;color:#7a7060;letter-spacing:.08em;text-transform:uppercase}.forge-preview-box{flex:1;min-height:180px;max-height:280px;background:#faf8f2;border:1.5px dashed #c8c1b3;border-radius:8px;display:flex;align-items:center;justify-content:center}.forge-handle-list{display:flex;flex-direction:column;gap:4px}.forge-handle-item{display:flex;align-items:center;gap:8px;padding:5px 8px;background:#ede9dd;border:1px solid #d5d0c4;border-radius:5px;font-size:11px;color:#4a4035}.forge-handle-dot{width:8px;height:8px;border-radius:50%;background:#a78bfa;flex-shrink:0}.forge-handle-dot[data-pos=top]{background:#34d399}.forge-handle-dot[data-pos=bottom]{background:#fb923c}.forge-handle-dot[data-pos=left]{background:#60a5fa}.forge-handle-dot[data-pos=right]{background:#f472b6}.forge-handle-label{flex:1;color:#3b3427}.forge-handle-pos{color:#9a8f7d;font-size:10px;font-family:monospace}.forge-props-preview{display:flex;flex-direction:column;gap:3px}.forge-prop-row{display:flex;justify-content:space-between;padding:3px 8px;background:#ede9dd;border-radius:4px;font-size:11px;color:#7a7060}.forge-prop-row span:last-child{color:#3b3427;font-family:monospace}.forge-library{flex:1;overflow-y:auto}.forge-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;padding:12px}.forge-library-card{background:#faf8f2;border:1px solid #d5d0c4;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;position:relative;transition:border-color .15s,box-shadow .15s}.forge-library-card:hover{border-color:#b0a48e;box-shadow:0 2px 8px #78643c1a}.forge-library-preview{height:100px;display:flex;align-items:center;justify-content:center;padding:12px;background:#f0ede4;border-bottom:1px solid #d5d0c4}.forge-library-info{padding:8px 10px}.forge-library-label{font-weight:600;color:#3b3427;font-size:11px}.forge-library-category{color:#9a8f7d;font-size:10px;margin-top:2px}.forge-library-delete{position:absolute;top:6px;right:6px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444;border-radius:4px;padding:3px 5px;cursor:pointer;opacity:0;transition:opacity .15s;display:flex;align-items:center}.forge-library-card:hover .forge-library-delete{opacity:1}.forge-spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(250,248,242,.4);border-top-color:#faf8f2;border-radius:50%;animation:forge-spin .7s linear infinite}.forge-spinner-large{display:inline-block;width:32px;height:32px;border:3px solid rgba(139,115,85,.2);border-top-color:#8b7355;border-radius:50%;animation:forge-spin .9s linear infinite}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes forge-spin{to{transform:rotate(360deg)}}.forge-dock-fab{position:absolute;top:-46px;left:8px;height:34px;padding:0 14px 0 11px;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:11.5px;font-weight:600;font-family:var(--font-family);letter-spacing:.01em;white-space:nowrap;cursor:pointer;box-shadow:0 2px 8px #00000014,0 1px 2px #0000000d;transition:all .18s ease;z-index:10}.forge-dock-fab:hover{background:#f8fafc;border-color:#94a3b8;box-shadow:0 4px 14px #0000001f,0 1px 3px #00000014;color:#1e293b}.forge-dock-fab:active{transform:scale(.97);box-shadow:0 1px 4px #0000001a}.forge-dock-fab svg{color:#f59e0b}.forge-provider-btn{flex:1;padding:5px 8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:5px;color:#64748b;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--font-family)}.forge-provider-btn:hover{background:#ffffff1a;color:#94a3b8}.forge-provider-btn.active{background:#7c3aed40;border-color:#a78bfa80;color:#c4b5fd}.sidebar-nav{display:flex;align-items:center;gap:2px;padding:0 8px 8px;flex-wrap:nowrap;flex-shrink:0;min-width:fit-content;border-bottom:1px solid #e2e8f0}.pid-sidebar .sidebar-nav{border-bottom:1px solid #e2e8f0}.sidebar-nav-btn{background:transparent;border:1px solid transparent;border-radius:6px;padding:5px 14px;font-size:.82rem;font-weight:600;letter-spacing:.02em;cursor:pointer;white-space:nowrap;transition:all .2s ease;font-family:inherit;line-height:1.4}.sidebar-nav-btn.active,.pid-sidebar .sidebar-nav-btn.active{background:#e2e8f0;color:#1e293b;border-color:#cbd5e1}.sidebar-nav-btn.inactive{color:#475569}.sidebar-nav-btn.inactive:hover{color:#475569;background:#f1f5f9}.pid-sidebar .sidebar-nav-btn.inactive{color:#94a3b8}.pid-sidebar .sidebar-nav-btn.inactive:hover{color:#475569;background:#f1f5f9}.sidebar-nav-btn.custom-nav-btn.active{background:#f59e0b1f;color:#f59e0b;border-color:#f59e0b4d}.pid-sidebar .sidebar-nav-btn.custom-nav-btn.active{background:#f59e0b14;color:#d97706;border-color:#f59e0b33}.expand-all-btn{color:#64748b!important;font-size:.55rem!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.08em;padding:3px 6px!important}.expand-all-btn:hover,.pid-sidebar .expand-all-btn:hover{color:#10b981!important;background:#10b9810f!important}.collapse-all-btn{color:#64748b!important;font-size:.55rem!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.08em;padding:3px 6px!important}.collapse-all-btn:hover,.pid-sidebar .collapse-all-btn:hover{color:#ef4444!important;background:#ef44440f!important}.nav-divider{width:1px;height:14px;background:#2d334d;flex-shrink:0;margin:0 2px;opacity:.5}.pid-sidebar .nav-divider{background:#cbd5e1}.section-header.static-header{cursor:default;pointer-events:none}.section-header.static-header:hover{background:transparent}.section-header.custom-header{color:#f59e0b}.pid-sidebar .section-header.custom-header{color:#d97706}.forge-permanent-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 3px 4px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;border-radius:10px;width:64px;flex-shrink:0;background:transparent;border:1px dashed #3b4268}.forge-permanent-item span{font-size:.5rem;font-weight:600;color:#64748b;transition:all .2s ease;white-space:normal;text-align:center;line-height:1.15;pointer-events:none;max-width:100%;overflow-wrap:break-word}.forge-permanent-icon{color:#f59e0b;opacity:.5;transition:all .3s ease}.forge-permanent-item:hover{transform:translateY(-4px) scale(1.05);background:#f59e0b0f;border-color:#f59e0b4d;box-shadow:0 4px 12px #f59e0b1a}.forge-permanent-item:hover .forge-permanent-icon{opacity:1}.forge-permanent-item:hover span{color:#f59e0b}.pid-sidebar .forge-permanent-item{border-color:#e2e8f0}.pid-sidebar .forge-permanent-item:hover{background:#f59e0b0a;border-color:#f59e0b33;box-shadow:0 4px 12px #f59e0b0f}.pid-sidebar .forge-permanent-item:hover span{color:#d97706}.forge-library-panel-overlay{position:fixed;inset:0;background:#1e191259;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}.forge-library-panel{background:#faf8f3;border:1px solid #d5d0c4;border-radius:12px;box-shadow:0 16px 48px #1e191240;width:560px;max-width:90vw;max-height:75vh;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.forge-library-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #d5d0c4;font-size:13px;font-weight:700;color:#3a3020;letter-spacing:.02em}.forge-library-panel-close{background:none;border:1px solid #d5d0c4;border-radius:6px;padding:4px;cursor:pointer;color:#7a7060;transition:all .15s}.forge-library-panel-close:hover{background:#f0ece2;color:#3a3020}.forge-library-panel-body{flex:1;overflow-y:auto;padding:12px;scrollbar-width:thin;scrollbar-color:#d5d0c4 transparent}.forge-library-panel-empty{padding:40px 24px;text-align:center;color:#9a8f7d;font-size:12px;line-height:1.6}.forge-library-panel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.forge-library-panel-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f4f1ea;border:1px solid #e5e0d4;border-radius:8px;transition:all .15s}.forge-library-panel-card:hover{background:#efeade;border-color:#d5d0c4}.forge-library-panel-card.in-dock{border-color:#0d73774d;background:#0d73770a}.forge-library-panel-preview{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.forge-library-panel-preview svg{max-width:38px;max-height:38px}.forge-library-panel-info{flex:1;min-width:0}.forge-library-panel-label{font-size:12px;font-weight:600;color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forge-library-panel-category{font-size:10px;color:#7a7060;margin-top:1px}.forge-library-panel-actions{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.forge-picker-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:5px;font-size:10px;font-weight:600;cursor:pointer;border:1px solid;transition:all .15s;white-space:nowrap;flex-shrink:0}.forge-picker-btn.add{background:#0d737714;border-color:#0d7377;color:#0d7377}.forge-picker-btn.add:hover{background:#0d73772e}.forge-picker-btn.remove{background:#b482320f;border-color:#b48232;color:#b48232}.forge-picker-btn.remove:hover{background:#b4823224}.forge-picker-btn.delete-cloud{background:#dc26260d;border-color:#dc2626;color:#dc2626}.forge-picker-btn.delete-cloud:hover{background:#dc262624}@media(max-width:768px){.landing-page header{padding:16px 20px!important}.landing-page main{padding:48px 16px 40px!important}.landing-page footer{padding:20px!important;flex-direction:column!important;gap:8px!important;text-align:center!important}}.react-flow__node-printBoundary .react-flow__resize-control,.react-flow__node-printBoundary .react-flow__node-resizer,.react-flow__node-printBoundary .react-flow__handle,.react-flow__node-printBoundary .custom-drag-handle{pointer-events:auto!important}@media print{@page{size:letter landscape;margin:0!important}body,html{background-color:var(--canvas-bg)!important;color:#000!important;width:11in!important;height:8.5in!important;margin:0!important;padding:0!important;overflow:hidden!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.toolbar-container,.sidebar-container,.sidebar,.equipment-dock-wrap,.property-sidebar-container,.floating-panel,.mobile-view-banner,.profile-menu,.dropdown-menu,.react-flow__controls,.toast-container,.toast,button,a,.nozzle-editor-btn,.expand-all-btn,.resize-handle,.grab-handle,.user-avatar-pill,.toolbar-file-btn,.top-bar,.mode-toggle,.project-name-pill,.custom-controls,.pid-property-panel,.ai-forge-panel,.fup-root,.pid-handle,.custom-handle,.react-flow__handle,.react-flow__resize-control,.react-flow__node-resizer,.custom-drag-handle,.alignment-guide-line,.nozzle-snap-guide,.pid-signal-handle,.segment-handle,.custom-resize-handle,.no-print{display:none!important}.app-container,.canvas-container,.flow-container,.react-flow,.react-flow__renderer,.react-flow__pane{width:11in!important;height:8.5in!important;position:absolute!important;top:0!important;left:0!important;border:none!important;background-color:var(--canvas-bg)!important;margin:0!important;padding:0!important;overflow:hidden!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.app-container.pid-mode,.app-container.pid-mode .canvas-container,.app-container.pid-mode .flow-container,.app-container.pid-mode .react-flow,.app-container.pid-mode .react-flow__renderer,.app-container.pid-mode .react-flow__pane{background-color:var(--pid-bg)!important}.react-flow__background{display:none!important}.title-block-container,.compact-title-block-container,div[style*="position: fixed"][style*="bottom: 0"][style*="right: 0"]{position:absolute!important;bottom:0!important;right:0!important;z-index:99999!important;border:2px solid #000000!important;background:#fff!important;box-shadow:none!important;display:block!important}input,select,textarea{border:none!important;background:transparent!important}}
