.chat-node{backdrop-filter:blur(15px);color:var(--white-color);text-shadow:0 1px 2px rgba(0,0,0,.8);transform:translate(var(--tx,0), var(--ty,0));transform-origin:50%;background-color:rgba(25,30,40,.95);border:1px solid #4a5568;border-radius:0;flex-direction:column;font-family:monospace;animation:.2s ease-out forwards nodeSpawn;display:flex;position:absolute;box-shadow:0 15px 40px rgba(0,0,0,.95),inset 0 1px rgba(255,255,255,.05)}@keyframes nodeSpawn{0%{opacity:0;transform:translate(var(--tx,0), var(--ty,0)) scale(0)}to{opacity:1;transform:translate(var(--tx,0), var(--ty,0)) scale(1)}}.chat-node.active{border:1px solid var(--accent-color);box-shadow:0 0 20px rgba(194,254,12,.15),0 15px 40px rgba(0,0,0,.95)}.chat-node.active .node-tongue{border-color:var(--accent-color)}.chat-node-header{border-bottom:1px dotted #444;justify-content:space-between;align-items:center;padding:10px 15px;display:flex}.chat-node-title{text-transform:uppercase;letter-spacing:.2em;color:#ccc;font-size:.7rem;font-weight:700}.chat-node-model{text-transform:uppercase;letter-spacing:.1em;color:#999;font-size:.65rem}.chat-node-model select option{color:var(--white-color)!important;background-color:#191e28!important}.chat-node-content{flex-direction:column;flex-grow:1;min-height:0;padding:10px 15px;display:flex}.message-list{flex-direction:column;flex-grow:1;justify-content:flex-start;gap:15px;min-height:0;margin-top:10px;padding-right:10px;display:flex;overflow-y:auto}.message-list::-webkit-scrollbar{width:2px}.message-list::-webkit-scrollbar-track{background:0 0}.message-list::-webkit-scrollbar-thumb{background-color:#333}.message-list::-webkit-scrollbar-thumb:hover{background-color:var(--accent-color)}.message{word-wrap:break-word;overflow-wrap:anywhere;white-space:pre-wrap;border-radius:0;max-width:90%;padding:0;font-size:.85rem;line-height:1.4}.message.user{color:var(--accent-color);text-align:right;background-color:transparent;align-self:flex-end}.message.ai{color:var(--white-color);background-color:transparent;border-left:2px solid #333;align-self:flex-start;padding-left:10px}.message.ai p{margin:0 0 10px}.message.ai p:last-child{margin:0}.message.ai pre{background:#111;border:1px solid #333;border-radius:4px;margin:10px 0;padding:10px;overflow-x:auto}.message.ai code{background:rgba(255,255,255,.1);border-radius:2px;padding:2px 4px}.message.ai pre code{background:0 0;padding:0}.message.ai ul,.message.ai ol{margin-top:0;margin-bottom:10px;padding-left:20px}.chat-node-input{box-sizing:border-box;width:100%;color:var(--white-color);resize:none;overflow-wrap:break-word;word-wrap:break-word;white-space:pre-wrap;field-sizing:content;background-color:transparent;border:none;border-bottom:1px solid #333;border-radius:0;outline:none;height:auto;min-height:40px;margin-top:15px;padding:10px 0;font-family:monospace;font-size:.85rem;transition:all .2s}.chat-node-input:focus{border-bottom:1px solid var(--accent-color);box-shadow:none}.resize-handle{background-color:transparent;border:1px solid #444;width:6px;height:6px;transition:all .2s;position:absolute}.resize-handle:after{content:"";background-color:transparent;position:absolute;inset:-20px}.chat-node:hover .resize-handle{border-color:#666}.chat-node.active .resize-handle{border-color:var(--accent-color);background-color:var(--accent-color)}.top-left{cursor:nwse-resize;top:-3px;left:-3px}.top-right{cursor:nesw-resize;top:-3px;right:-3px}.bottom-left{cursor:nesw-resize;bottom:-3px;left:-3px}.bottom-right{cursor:nwse-resize;bottom:-3px;right:-3px}.spawn-node-button{color:#ccc;cursor:pointer;z-index:10;background:rgba(0,0,0,.9);border:1px solid #444;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:20px;line-height:1;transition:all .2s;display:flex;position:absolute;bottom:-40px;left:50%;transform:translate(-50%);box-shadow:0 4px 10px rgba(0,0,0,.5)}.spawn-node-button:hover{border-color:var(--accent-color);color:var(--accent-color);background:rgba(20,20,20,.95);box-shadow:0 0 10px rgba(194,254,12,.2)}.connection-port{cursor:crosshair;z-index:20;opacity:0;background-color:#191e28;border:2px solid #4a5568;border-radius:50%;width:14px;height:14px;transition:all .2s;position:absolute;transform:translate(-50%,-50%)}.connection-port:after{content:"";background-color:transparent;border-radius:50%;position:absolute;inset:-20px}.chat-node:hover .connection-port,.connection-port:hover{opacity:1}@keyframes portPulse{0%{transform:translate(-50%,-50%)scale(1);box-shadow:0 0 5px rgba(194,254,12,.2)}50%{transform:translate(-50%,-50%)scale(1.4);box-shadow:0 0 15px rgba(194,254,12,.8)}to{transform:translate(-50%,-50%)scale(1);box-shadow:0 0 5px rgba(194,254,12,.2)}}.connection-port:hover{border-color:var(--accent-color);background-color:var(--accent-color);animation:1.5s ease-in-out infinite portPulse}.connection-port.top{top:0;left:50%}.connection-port.bottom{top:100%;left:50%}.connection-port.left{top:50%;left:0}.connection-port.right{top:50%;left:100%}.chat-node.minimized{color:#111;background-color:rgba(200,200,50,.95);border:1px solid #d4d428;transition:all .3s;box-shadow:2px 5px 15px rgba(0,0,0,.5)}.chat-node.minimized.active{border:1px solid var(--accent-color);box-shadow:0 0 15px rgba(194,254,12,.5),2px 5px 15px rgba(0,0,0,.5)}.chat-node.minimized .chat-node-header{border-bottom:none}.chat-node.minimized .chat-node-title{color:#333}.chat-node.minimized .chat-node-model{color:#555}.chat-node.minimized .chat-node-minimize-btn{color:#111!important}.chat-node-focus-btn{color:var(--text-color);cursor:pointer;text-transform:uppercase;letter-spacing:.1em;background:0 0;border:1px solid #333;margin-left:auto;padding:2px 8px;font-family:monospace;font-size:.7rem;line-height:1;transition:all .2s;position:relative}.chat-node-focus-btn:after{content:attr(data-tooltip);border:1px solid var(--accent-color);color:var(--white-color,#fff);text-transform:none;letter-spacing:normal;white-space:pre-wrap;opacity:0;pointer-events:none;z-index:1000;text-align:left;background:rgba(25,30,40,.95);width:max-content;max-width:200px;padding:6px 10px;font-family:sans-serif;font-size:.65rem;transition:opacity .2s,transform .2s;position:absolute;bottom:100%;right:0;transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.8)}.chat-node-focus-btn:hover:after{opacity:1;transform:translateY(-10px)}.chat-node-focus-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.chat-node-focus-btn.active{background:var(--accent-color);color:var(--bg-color,#111);border-color:var(--accent-color);box-shadow:0 0 10px rgba(194,254,12,.3)}.board-transform-layer.focusing{transition:transform .3s ease-out}.chat-node-header-right{align-items:center;gap:8px;display:flex}.ocr-clear-btn{color:#ccc;cursor:pointer;text-transform:uppercase;background:0 0;border:1px solid #4a5568;padding:2px 6px;font-family:monospace;font-size:.6rem;transition:all .2s}.ocr-clear-btn:hover{border-color:var(--accent-color);color:var(--accent-color);box-shadow:0 0 8px rgba(194,254,12,.2)}.chat-node-input.ocr-error{color:#f55;border-bottom:1px solid #f55}.node-server-error{color:#f55;backdrop-filter:blur(15px);z-index:100;background:rgba(25,30,40,.95);border:1px solid #f55;padding:4px 8px;font-family:monospace;font-size:.7rem;position:absolute;top:-35px;left:0}.ocr-markdown-output{color:var(--white-color);flex:1;margin-top:15px;padding-right:5px;font-size:.85rem;line-height:1.4;overflow-y:auto}.ocr-markdown-output::-webkit-scrollbar{width:2px}.ocr-markdown-output::-webkit-scrollbar-track{background:0 0}.ocr-markdown-output::-webkit-scrollbar-thumb{background-color:#333}.ocr-markdown-output::-webkit-scrollbar-thumb:hover{background-color:var(--accent-color)}.ocr-markdown-output p{margin:0 0 10px}.ocr-markdown-output p:last-child{margin:0}.ocr-markdown-output pre{background:#111;border:1px solid #333;border-radius:4px;margin:10px 0;padding:10px;overflow-x:auto}.ocr-markdown-output code{background:rgba(255,255,255,.1);border-radius:2px;padding:2px 4px}.ocr-markdown-output pre code{background:0 0;padding:0}.ocr-markdown-output ul,.ocr-markdown-output ol{margin-top:0;margin-bottom:10px;padding-left:20px}.ocr-markdown-output table{border-collapse:collapse;width:100%;margin:10px 0;font-size:.8rem}.ocr-markdown-output th,.ocr-markdown-output td{text-align:left;border:1px solid #4a5568;padding:6px 8px}.ocr-markdown-output th{color:var(--accent-color);background-color:rgba(255,255,255,.05)}.ocr-processing-container{border:1px dashed var(--accent-color);background:rgba(15,20,30,.6);flex-direction:column;flex:1;justify-content:center;align-items:center;height:140px;margin-top:15px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 15px rgba(194,254,12,.05)}.ocr-scanner-grid{pointer-events:none;background-image:linear-gradient(rgba(194,254,12,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(194,254,12,.03) 1px,transparent 1px);background-position:50%;background-size:15px 15px;position:absolute;inset:0}.ocr-scanner-laser{background:var(--accent-color);height:2px;box-shadow:0 0 8px var(--accent-color), 0 0 15px var(--accent-color);pointer-events:none;animation:2s ease-in-out infinite scan;position:absolute;left:0;right:0}@keyframes scan{0%{opacity:.3;top:0%}50%{opacity:1;top:100%}to{opacity:.3;top:0%}}.ocr-processing-content{z-index:2;flex-direction:column;align-items:center;gap:8px;display:flex}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes blink{0%,to{opacity:.8}50%{opacity:1}}@keyframes extractSlideOut{0%{opacity:0;right:0}to{opacity:1;right:-130px}}@keyframes thinkingPulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes thinkingDots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.chat-node-header-actions{z-index:2;flex-direction:column;align-items:center;gap:8px;display:flex}.ocr-processing-spinner{border:2px solid rgba(194,254,12,.1);border-top:2px solid var(--accent-color);border-radius:50%;width:16px;height:16px;animation:1s linear infinite spin}.ocr-processing-status{color:var(--accent-color);letter-spacing:.15em;text-transform:uppercase;text-shadow:0 0 5px rgba(194,254,12,.4);font-size:.75rem;font-weight:700;animation:1.5s infinite blink}.ocr-processing-sub{color:#666;letter-spacing:.1em;text-transform:uppercase;font-size:.55rem}.ocr-node-inner{box-sizing:border-box;flex-direction:column;width:100%;height:100%;min-height:0;display:flex;overflow:hidden}.ocr-node-inner .chat-node-content{min-height:0}.extract-btn{background-color:var(--accent-color);color:var(--dark-color);border:1px solid var(--accent-color);cursor:pointer;text-transform:uppercase;z-index:100;padding:5px 10px;font-family:monospace;font-size:10px;font-weight:700;transition:all .2s;animation:.3s cubic-bezier(.175,.885,.32,1.275) forwards extractSlideOut;position:absolute;right:-130px;transform:translateY(-50%)}.extract-btn:hover{color:var(--accent-color);background-color:transparent;box-shadow:0 0 10px rgba(194,254,12,.4)}.note-color-picker-wrapper{cursor:pointer;justify-content:center;align-items:center;width:14px;height:14px;display:flex;position:relative}.note-color-picker-input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;top:0;left:0}.note-color-swatch{pointer-events:none;border:1px solid rgba(255,255,255,.3);width:10px;height:10px}.note-title-input{color:#fff;border:1px solid var(--accent-color);background:0 0;outline:none;width:100px;padding:0 4px;font-family:monospace;font-size:.7rem}.note-title-text{cursor:pointer}.note-title-edit-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.note-title-edit-btn img{transition:opacity .2s}.note-title-edit-btn:hover img{opacity:1!important}.chat-node-input:disabled{opacity:.5;cursor:not-allowed;border-bottom:1px dashed #555}.message.ai.thinking{color:#888;align-items:center;gap:8px;font-style:italic;animation:1.5s ease-in-out infinite thinkingPulse;display:inline-flex}.thinking-dots:after{content:"...";text-align:left;width:20px;animation:1.5s steps(4,end) infinite thinkingDots;display:inline-block}.chat-node-header-actions{gap:6px;margin-left:auto;display:flex}.chat-node-header-actions .chat-node-focus-btn{margin-left:0}.chat-node-split-icon{filter:invert();vertical-align:middle;width:10px;height:10px;margin-right:4px;display:inline-block}.chat-node-split-text{vertical-align:middle}.chat-node-regenerate-container{justify-content:flex-start;margin-top:10px;padding-left:10px;display:flex}.chat-node-regenerate-btn{color:#999;cursor:pointer;letter-spacing:.1em;text-transform:uppercase;background:0 0;border:1px solid #4a5568;border-radius:0;padding:4px 8px;font-family:monospace;font-size:.65rem;transition:all .2s}.chat-node-regenerate-btn:hover{border-color:var(--accent-color);color:var(--accent-color);box-shadow:0 0 8px rgba(194,254,12,.2)}