:root{--panel-width:500px;--ai-panel-width:500px;--min-panel-width:500px;--max-panel-width:800px;--tag-visible-width:20px;--grid-cell-size:50px}body.dragging-panel iframe{pointer-events:none}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;background:#f5f5f5;color:#333}#theme-toggle{position:fixed;top:10px;left:10px;width:32px;height:32px;background:#fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1003;font-size:18px}.dark-mode{background:#222;color:#ddd}.dark-mode #board-container{background:#333}.dark-mode .node-item{background:#444;color:#ddd;border-color:#555}.dark-mode .node-header{background:#000;color:#fff}.dark-mode #toolbar{background:#111}.dark-mode #ai-panel{background:#111;color:#ddd}#ai-panel{position:fixed;top:0;right:0;bottom:0;width:var(--panel-width);min-width:var(--panel-width);background:#000;color:#fff;display:flex;flex-direction:column;border-top-left-radius:3px;border-bottom-left-radius:3px;box-shadow:-4px 0 12px rgba(0,0,0,.3);z-index:1000;transition:transform .3s ease}#ai-toggle-flag{position:absolute;top:10px;right:100%;width:50px;height:40px;background:#444141;cursor:pointer;z-index:1001;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff}#ai-header{padding:12px;font-weight:600;text-align:center;border-bottom:1px solid #333}#chat-messages{flex:1 1;overflow-y:auto;padding:10px}.chat-message{margin-bottom:10px;padding:10px 14px;border-radius:12px;max-width:80%;display:inline-block;word-wrap:break-word;font-size:14px;line-height:1.4;position:relative}.chat-message.user{background:#fff;float:right;border:1px solid #ddd}.chat-message.ai,.chat-message.user{color:#333;clear:both;text-align:left}.chat-message.ai{background:#eee;float:left;border:1px solid #ccc}.attached-files{margin-top:4px;font-size:12px;color:#555;border-top:1px solid #ddd;padding-top:4px}.attachment-item{position:relative;padding-right:20px;margin-bottom:4px}.remove-attachment{position:absolute;right:4px;top:50%;transform:translateY(-50%);cursor:pointer;font-weight:700;color:#fff}.highlight{background-color:#ff0;font-weight:700;color:#000;padding:0 2px;border-radius:3px}#chat-input-wrapper{flex-shrink:0;padding:12px;background:#000;border-top:1px solid #333}#attachment-preview{margin-bottom:8px;padding:4px;border:1px dashed #555;border-radius:6px;font-size:13px;color:#fff;display:none}#chat-input-container{display:flex;align-items:center;background:#202123;border:1px solid #343541;border-radius:20px;padding:8px 12px;margin-bottom:8px}#media-btn,#mic-btn,#send-btn{background:#343541;color:#fff;border:none;border-radius:50%;width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;margin-right:8px}#chat-input{flex:1 1;border:none;outline:none;background:transparent;color:#fff;font-size:14px;font-family:inherit;padding:0 8px;resize:none;overflow-y:auto;max-height:150px;line-height:1.4;white-space:pre-wrap;word-wrap:break-word}#chat-input.listening{border:2px solid #39f;box-shadow:0 0 8px #39f}#chat-disclaimer{font-size:12px;color:#aaa;text-align:center}.caret{display:inline-block;width:1px;background:currentColor;margin-left:2px;animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}#resizer{position:absolute;left:0;top:50%;transform:translateY(-50%);width:5px;height:500px;cursor:col-resize;opacity:0;transition:opacity .3s ease;background:transparent}#ai-panel:hover #resizer,#resizer:hover{opacity:1;background:#444}#board-container{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto;background:#fafafa;cursor:-webkit-grab;cursor:grab}#board-container.panning{cursor:-webkit-grabbing;cursor:grabbing}#board{position:relative;width:10000px;height:10000px;background:linear-gradient(0deg,transparent 24%,rgba(0,0,0,.08) 25%,rgba(0,0,0,.08) 26%,transparent 27%,transparent 74%,rgba(0,0,0,.08) 75%,rgba(0,0,0,.08) 76%,transparent 77%,transparent),linear-gradient(90deg,transparent 24%,rgba(0,0,0,.08) 25%,rgba(0,0,0,.08) 26%,transparent 27%,transparent 74%,rgba(0,0,0,.08) 75%,rgba(0,0,0,.08) 76%,transparent 77%,transparent);transform-origin:0 0}#toolbar{position:fixed;bottom:20px;left:20px;right:calc(20px + var(--ai-panel-width, 0px));max-width:300px;margin:0 auto;display:flex;justify-content:center;gap:8px;padding:8px 12px;background:#111;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.3);z-index:1002}#toolbar button{display:inline-flex;align-items:center;justify-content:center;background:#222;color:#fff;border:none;border-radius:6px;padding:6px 10px;font-size:13px;cursor:pointer;transition:background .2s ease}#toolbar button:hover{background:#333}.node-item{position:absolute;border:1px solid #ccc;background:#fff;color:#000;box-shadow:0 2px 5px rgba(0,0,0,.15);border-radius:8px;overflow:hidden;transition:box-shadow .2s ease}.node-item:hover{box-shadow:0 3px 8px rgba(0,0,0,.2)}.node-item.selected{outline:2px solid #06c;box-shadow:0 4px 8px rgba(0,0,0,.25)}.node-header{background:#000;color:#fff;padding:5px;text-align:center;cursor:move;border-top-left-radius:8px;border-top-right-radius:8px}.node-content{width:calc(100% - 5%);height:calc(100% - 15%);background:#fafafa;overflow:auto;padding:16px}.node-content iframe{width:100%;height:100%;border:none}.resize-handle{position:absolute;width:14px;height:14px;right:0;bottom:0;cursor:se-resize;background:rgba(0,0,0,.2);border-bottom-right-radius:8px;z-index:2}.connector{position:absolute;width:18px;height:18px;background:#fff;border:2px solid #999;border-radius:50%;font-size:11px;line-height:18px;text-align:center;color:#444;cursor:crosshair;z-index:3;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:border-color .2s ease,color .2s ease}.connector.hovered{border-color:#06c;color:#06c}#connection-layer{position:absolute;top:0;left:0;width:10000px;height:10000px;pointer-events:none;z-index:1;transform-origin:0 0}.connection-line:hover{cursor:pointer}.connection-line.selected path:nth-child(2){stroke:#06c;stroke-width:3}#error-message{position:absolute;top:10px;left:50%;transform:translateX(-50%);background:rgba(255,0,0,.8);color:#fff;padding:10px 20px;border-radius:5px;z-index:10005}.bar-chart-wrapper{padding:8px;color:#000}.bar-row{display:flex;align-items:center;margin-bottom:8px}.bar-label{width:80px;font-weight:700;margin-right:8px;color:#000}.bar-rect{height:20px;background-color:#39f;border-radius:4px;transition:width .3s}#mic-btn{transition:background-color .5s ease}#mic-btn.active{background-color:red}.spinner{width:24px;height:24px;border:3px solid rgba(0,0,0,.1);border-top-color:#555;border-radius:50%;animation:spin 1s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(1turn)}}