
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;background:#f4f3fb;color:#18172b}button,textarea,select{font:inherit}button{cursor:pointer}.review{background:#171425;color:#fff;padding:16px 25px;display:flex;align-items:center;gap:22px;font-size:13px}.review small{color:#b5aecb}.review button{background:#342945;color:#fff;border:1px solid #655179;border-radius:8px;padding:8px 13px}.review .active{background:#8054f5}.nav{height:65px;background:#ffffffe0;display:flex;align-items:center;gap:22px;padding:0 25px;border-bottom:1px solid #e3dff1}.logo{font-size:25px;font-weight:900;letter-spacing:-1px}.logo i{color:#8557ef;font-style:normal}.muted{color:#9691a9;font-size:12px}.sp{flex:1}.btn{border:1px solid #e0daef;border-radius:9px;padding:9px 14px;background:white;color:#554968;font-size:12px}.primary{background:linear-gradient(120deg,#a481ff,#7344ed);color:white;border:0}.app{display:grid;grid-template-columns:150px 1fr 300px;height:calc(100vh - 123px);min-height:740px}.rail{padding:23px 15px;border-right:1px solid #e3dff1;background:linear-gradient(#efebfb,#f9f8ff)}.rail h5{color:#938ba5;font-size:10px;letter-spacing:1px;font-weight:500;margin-top:30px}.rail .item{padding:12px 10px;font-size:12px;color:#70677e}.rail .item.on{background:white;border-radius:8px;color:#7546e6}.board{position:relative;overflow:auto;background-image:radial-gradient(#bab0d966 1px,transparent 1px),radial-gradient(ellipse at 70% 10%,#e8e1ff80,transparent 60%);background-size:22px 22px,100% 100%;}.world{width:980px;height:1030px;position:relative}.tools{position:sticky;left:20px;top:16px;display:flex;gap:8px;z-index:5;width:max-content;padding:0 20px;height:0}.hint{position:absolute;top:68px;left:32px;font-size:11px;color:#90879e}.node{position:absolute;width:220px;background:#fff;border:1px solid #ddd6ee;border-radius:16px;box-shadow:0 8px 22px #65539a0c;z-index:2}.node.selected{border:2px solid #9164f6;box-shadow:0 0 0 4px #9164f611}.nhead{padding:12px 14px;font-size:12px;display:flex;gap:8px;align-items:center;cursor:grab;border-bottom:1px solid #eeeaf6;user-select:none}.nhead b{font-weight:600}.nhead small{color:#9c92ae;margin-left:auto}.photo{height:138px;margin:9px;border-radius:9px;overflow:hidden;background:#e7e2f5}.photo img{width:100%;height:100%;object-fit:cover}.role{display:flex;align-items:center;padding:0 10px 11px;gap:6px;font-size:10px;color:#94869e}.role select{font-size:10px;border:0;border-radius:6px;padding:5px;background:#f3effb;color:#756387;max-width:110px}.port{position:absolute;border:1px solid #a789e5;color:#8753ed;border-radius:50%;background:#fff;width:23px;height:23px;display:grid;place-items:center;padding:0;z-index:4;font-size:18px;left:calc(50% - 11px);bottom:-12px;cursor:crosshair}.port.in{top:-12px;bottom:auto}.port:hover,.port.chosen{background:#8250ec;color:white;box-shadow:0 0 0 5px #9066ee22}.generation{width:360px}.content{padding:15px}.refs{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}.refs span{background:#f2edfd;color:#7d58b5;padding:5px 7px;border-radius:6px;font-size:10px}.content textarea{resize:vertical;width:100%;height:74px;border:1px solid #e5dff0;background:#fcfbff;border-radius:10px;padding:11px;font-size:12px;line-height:1.65;outline-color:#bba0f1}.controls{display:flex;gap:8px;margin:12px 0}.controls select{border:1px solid #e4dcee;border-radius:7px;background:white;color:#72657e;font-size:11px;padding:6px}.content .primary{width:100%;padding:11px;border-radius:9px}.output{font-size:12px;line-height:1.9;color:#695a7b;background:#f6f2ff;border-radius:10px;padding:12px;margin-top:12px}.output .label{font-size:10px;color:#9266d4;margin-bottom:7px}.copy{border:0;background:transparent;color:#8555e2;float:right;cursor:pointer;font-size:11px}.chat{background:#fefeff;border-left:1px solid #e3dff1;padding:22px 19px;display:flex;flex-direction:column;gap:15px}.chat h3{font-size:16px;margin:0}.scope{padding:11px;border:1px solid #e6def5;background:#f7f3ff;border-radius:10px;font-size:11px;color:#825db0}.bubble{font-size:12px;line-height:1.9;color:#81738d;background:#f5f3fa;padding:13px;border-radius:12px}.bubble.user{background:#8552ee;color:white;margin-left:25px}.chat textarea{width:100%;height:100px;border:1px solid #e0d7ef;border-radius:13px;padding:13px;resize:none;outline-color:#b99af1;font-size:12px}.chat .bottom{margin-top:auto}.chat .bottom .btn{float:right;margin-top:9px}.links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.links path{fill:none;stroke:#a386e6;stroke-width:2}.legend{font-size:10px;color:#9d94ad;line-height:1.8}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:12px;background:#292037;color:white;z-index:50;display:none;font-size:12px}.footnote{padding:15px 25px;background:#171425;color:#c2b8d6;font-size:11px;line-height:1.8}@media(max-width:1000px){.app{grid-template-columns:1fr 270px}.rail{display:none}.review{flex-wrap:wrap}}

.app{height:calc(100vh - 65px);min-height:600px;grid-template-columns:175px minmax(0,1fr) 310px}.world{width:1800px;height:1600px}.nav .logo img{width:auto;height:26px;object-fit:contain}.project-title{width:230px;border:0;background:transparent;font:600 13px inherit;outline-color:#a587ed}.rail{overflow:auto}.rail .item{display:block;width:100%;text-align:left;border:0;background:transparent;cursor:pointer}.rail .item.on{background:white}.empty-state{position:absolute;top:230px;left:110px;width:480px;text-align:center;color:#92889e;line-height:2;font-size:13px}.empty-state h2{font-size:25px;color:#49355e}.empty-state .btn{margin:12px}.node .remove{border:0;background:transparent;color:#aaa;cursor:pointer;font-size:13px;padding:0}.image-state{font-size:10px;padding:0 12px 12px;color:#8b6caa}.image-replace{border:0;background:#f2ecfb;color:#8055b1;border-radius:5px;font-size:10px;margin-left:auto;cursor:pointer}.node textarea{max-width:100%}.result-text{white-space:pre-wrap}.ref-item{cursor:pointer}.status{font-size:11px;color:#9b90a9}.node.busy{border-color:#b295ec}.run:disabled{opacity:.5;cursor:wait}.chat-messages{overflow:auto;flex:1;min-height:100px}.chat .bottom{flex:none}.chat .bubble{margin-bottom:12px}.privacy-note{font-size:10px;line-height:1.6;margin-top:12px;color:#9b91a8}.node-image{object-fit:contain!important}.btn:focus-visible,.port:focus-visible{outline:3px solid #c2a6f2;outline-offset:3px}.content textarea{height:90px}.port.in{top:-12px}.board.dragging{cursor:grabbing}.photo{display:grid;place-items:center;color:#b3a7c4;font-size:12px}.toolbar-button{white-space:nowrap}.selection-note{font-size:11px;color:#94869f}.node .generation-error{font-size:11px;color:#b15b71;line-height:1.6}.head-actions{display:flex;margin-left:auto;gap:7px}.zoom-label{font-size:11px;padding:9px;color:#95889f}@media(max-width:1000px){.app{grid-template-columns:minmax(0,1fr) 280px}.rail{display:none}.nav{padding:0 16px;gap:12px}.project-title{width:160px}}@media(max-width:650px){.app{display:flex;flex-direction:column;height:auto}.board{height:65vh}.chat{min-height:400px}.nav .muted{display:none}.project-title{width:140px}.tools{gap:4px;padding:0 8px}.tools .btn{padding:8px;font-size:10px}.empty-state{left:30px;width:290px}}.tools{height:44px;align-items:center;margin-bottom:-44px;}.tools .btn{flex:none;height:34px;}.tools .zoom-label{background:#fffffff0;border-radius:8px;}[data-theme='dark'] .nav .logo img{filter:drop-shadow(0 0 3px #a99eff99);}

/* Side-mounted connection handles and canvas creation menu. */
.node .port,.node .port.in{top:50%;bottom:auto;left:auto;right:-12px;transform:translateY(-50%);touch-action:none}.node .port-left{left:-12px;right:auto}.node .port-right{right:-12px;left:auto}
.canvas-context-menu{position:fixed;z-index:1000;min-width:210px;padding:6px;background:#fff;border:1px solid #e3daf3;border-radius:13px;box-shadow:0 12px 36px #34234b26}.canvas-context-menu[hidden]{display:none}.canvas-context-menu button{display:block;width:100%;border:0;background:transparent;color:#59446f;text-align:left;padding:12px;border-radius:8px;font-size:13px}.canvas-context-menu button:hover,.canvas-context-menu button:focus-visible{background:#f0e9ff;color:#7544e6;outline:none}

.wire-preview{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:3}.wire-preview path{fill:none;stroke-linecap:round}.wire-base{stroke:#a78adf;stroke-width:2}.wire-glow{stroke:#91d9ff;stroke-width:3;stroke-dasharray:24 95;filter:drop-shadow(0 0 4px #8a78ff);animation:wire-flow 1.1s linear infinite}@keyframes wire-flow{to{stroke-dashoffset:-119}}.canvas-context-menu button[hidden]{display:none}@media(prefers-reduced-motion:reduce){.wire-glow{animation:none}}

/* Generous hit target without intercepting empty canvas gestures. */
.links .edge-line{pointer-events:none;transition:stroke .15s,stroke-width .15s}.links .edge-hit{stroke:transparent;stroke-width:20;pointer-events:stroke;cursor:pointer}.canvas-edge:hover .edge-line,.canvas-edge:focus-within .edge-line,.canvas-edge.edge-selected .edge-line{stroke:#8655ee;stroke-width:3}
.canvas-edge.edge-selected .edge-line,.canvas-edge:focus .edge-line{stroke:#713bff;stroke-width:4;filter:drop-shadow(0 0 4px #9872ff77)}.canvas-edge:focus{outline:none}

.empty-state{left:50%;top:50%;transform:translate(-50%,-50%);width:min(480px,calc(100% - 48px));margin:0}.tools{left:50%;transform:translateX(-50%);padding:0 8px}.hint{left:50%;transform:translateX(-50%);text-align:center;width:max-content;max-width:calc(100% - 40px)}.node:focus{outline:none}.node.selected{border-color:#9164f6;box-shadow:0 0 0 4px #9164f622}

.node .photo,.node-image{-webkit-user-drag:none;user-select:none;cursor:default}.node-refine{margin-top:16px;padding-top:14px;border-top:1px solid #e9e1f6}.node-refine-title{font-size:12px;font-weight:600;color:#72508e;margin-bottom:10px}.node-refine-messages{max-height:150px;overflow:auto}.node-refine-messages .bubble{font-size:11px;padding:8px;margin-bottom:7px}.node-refine textarea{height:76px}.node-refine-send{margin-top:8px}.mention-menu{position:relative;z-index:8;background:#fff;border:1px solid #dcd0f5;border-radius:10px;box-shadow:0 6px 18px #55337a15;max-height:180px;overflow:auto;margin:4px 0 8px}.mention-menu[hidden],.node-refine[hidden]{display:none}.mention-option{display:block;width:100%;border:0;text-align:left;padding:10px;background:transparent;font-size:12px;color:#68428f}.mention-option:hover,.mention-option.active{background:#f0e9ff}.mention-empty{font-size:12px;padding:12px;color:#94869e}

/* Landscape prompt workspace: settings left, readable result right. */
.generation{width:580px}
.generation .content:has(> .output:not([hidden])){display:grid;grid-template-columns:190px minmax(0,1fr);gap:10px 18px;align-items:start}
.generation .content > :not(.output):not(.node-refine){grid-column:1}
.generation .content > .output{grid-column:2;grid-row:1 / span 8;margin:0;min-height:300px;max-height:370px;overflow:auto;overscroll-behavior:contain;font-size:13px;line-height:1.85}
.generation .output .label{position:sticky;top:0;background:inherit;padding-bottom:8px}
.generation .content > .node-refine{grid-column:1 / -1;margin-top:0;padding-top:12px}
.generation .node-refine-messages{max-height:70px}
.generation .node-refine textarea{height:60px}
.generation .content > .run{margin:0}

.project-row{display:flex;align-items:center;border-radius:9px;margin:3px 0}.project-row.on{background:#fff;color:#8250e8}.project-row .item{min-width:0;flex:1;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:transparent}.project-more{border:0;background:transparent;color:#8c7ba1;border-radius:7px;width:28px;height:30px;font-size:20px;cursor:pointer;flex:none}.project-more:hover{background:#e8ddff}.project-menu{position:fixed;z-index:1100;width:156px;background:#fff;border:1px solid #e4dcf4;border-radius:12px;box-shadow:0 10px 30px #39205726;padding:5px}.project-menu button{display:block;width:100%;padding:10px;text-align:left;border:0;background:none;border-radius:7px;color:#514465;cursor:pointer}.project-menu button:hover,.project-menu button:focus-visible{background:#f2edff}.project-menu .danger,.project-dialog .danger{color:#b63756}.project-dialog{width:min(400px,90vw);padding:24px;border:1px solid #e5dcf5;border-radius:20px;color:#3c2d50;box-shadow:0 20px 80px #26173d33}.project-dialog::backdrop{background:#130b2b66;backdrop-filter:blur(4px)}.project-dialog h3{margin:0 0 12px}.project-dialog p{font-size:13px;line-height:1.7;overflow-wrap:anywhere}.project-dialog input{width:100%;padding:12px;border:1px solid #c8b5eb;border-radius:9px;font:inherit}.project-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.project-action-error{color:#b63756;font-size:12px;margin-top:10px}

/* 俊导 2026-09-16：导演画布对话 = 机器人头像 + TAKE X 助手（和别的页面对话框统一） */
.chat .bubble.ai{background:#f5f3fa;padding:10px 12px 12px}
.chat .bubble.ai .ai-head{display:flex;align-items:center;gap:7px;margin-bottom:8px}
.chat .bubble.ai .ai-head img{width:22px;height:22px;border-radius:50%;background:#fff;border:1px solid #e6def5;object-fit:cover;flex:none}
.chat .bubble.ai .ai-head b{font-size:12px;color:#3f3358;font-weight:700}
.chat .bubble.ai .ai-head .ai-sub{font-size:10px;color:#a79fbb}
.chat .bubble.ai .bd{font-size:12px;line-height:1.9;color:#6d6079;white-space:pre-wrap;word-break:break-word}
.node-refine-messages .bubble.ai .ai-head img{width:16px;height:16px}
.node-refine-messages .bubble.ai .ai-head b{font-size:10px}
.node-refine-messages .bubble.ai .ai-head .ai-sub{display:none}
