:root {
  --paper:#e7dfcf; --paper-deep:#d7cdb9; --paper-bright:#f4eee2; --ink:#242923; --muted:#6d7067;
  --forest:#31473b; --forest-deep:#1e3028; --moss:#71806a; --gold:#b58b48; --danger:#a64b42;
  --canvas:#18211d; --canvas-panel:#222d27; --grid:rgba(208,218,207,.075); --wire:#e6e7e2;
  --shadow:0 14px 34px rgba(9,14,11,.34); --header-h:82px; --left-w:292px; --right-w:340px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink); background:var(--paper);
}
*{box-sizing:border-box} html,body{width:100%;height:100%;margin:0} body{min-width:1180px;overflow:hidden;background:var(--paper)}
button,input,textarea,select{font:inherit} button{border:1px solid #7f8177;color:#2d342e;background:#eee8da;cursor:pointer} button:hover:not(:disabled){border-color:var(--gold);background:#faf5e8} button:disabled{opacity:.42;cursor:not-allowed}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid rgba(214,176,96,.8);outline-offset:1px}
input,textarea,select{width:100%;border:1px solid #a39b8b;border-radius:2px;color:var(--ink);background:#f8f2e7} input,select{height:31px;padding:0 8px} textarea{min-height:64px;padding:8px;resize:vertical;line-height:1.55}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow{margin:0 0 3px;color:#d1ad69;font-family:Georgia,"Songti SC",serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase}

.editor-masthead{height:var(--header-h);position:relative;z-index:60;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;padding:9px 14px;border-bottom:1px solid #0e1713;color:#f3efe5;background:var(--forest-deep)}
.brand-block{min-width:286px;display:flex;align-items:center;gap:10px}.back-link{width:42px;height:34px;flex:0 0 42px;display:grid;place-items:center;border:1px solid #56675d;border-radius:3px;color:#d5d6ce;background:#26372e;line-height:1;text-decoration:none}.back-arrow-icon{width:29px;height:17px;display:block;overflow:visible}.back-arrow-icon path{fill:currentColor;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.back-link:hover,.back-link:focus-visible{border-color:#c5a463;color:white;background:#354a3e;outline:none}.editor-masthead h1{margin:0;font-family:Georgia,"Songti SC",serif;font-size:24px;font-weight:500}.editor-masthead-actions{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:9px}.document-state{width:7em;min-width:7em;max-width:7em;flex:0 0 7em;display:grid;justify-items:end;margin-left:0;padding-left:9px;border-left:1px solid rgba(203,178,123,.42);transform:translateX(1px)}.document-state span{max-width:100%;overflow:hidden;color:#aab5ab;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.document-state strong{width:7em;max-width:7em;overflow:hidden;text-overflow:clip;white-space:nowrap;font-family:Georgia,"Songti SC",serif;font-weight:500;text-align:right}
.toolbar{width:max-content;min-width:0;max-width:calc(100% - 8.5em);flex:0 1 auto;display:flex;justify-content:flex-end;gap:5px;align-items:center;margin-left:auto;overflow-x:auto;padding:3px 0 6px;scrollbar-width:thin;scrollbar-color:#607268 transparent}.toolbar button,.toolbar-link{height:33px;flex:0 0 auto;padding:0 9px;border:1px solid #5c6b62;color:#dedfd8;background:#293a31;font-size:11px;white-space:nowrap}.toolbar-link{display:inline-flex;align-items:center;text-decoration:none}.toolbar button:hover:not(:disabled),.toolbar-link:hover{background:#3b5145}.toolbar .primary{border-color:#b29055;color:#29251c;background:#d7c18f}
.cloud-submit-dialog{width:min(520px,calc(100vw - 32px));padding:0;border:1px solid #86785f;color:var(--ink);background:#eee7d6;box-shadow:0 26px 90px rgba(0,0,0,.52)}.cloud-submit-dialog::backdrop{background:rgba(12,18,14,.74)}.cloud-submit-dialog form{padding:22px}.cloud-submit-dialog h2{margin:0 0 10px;font-family:Georgia,"Songti SC",serif}.cloud-submit-dialog p{line-height:1.7}.cloud-submit-dialog menu{display:flex;justify-content:flex-end;gap:8px;margin:18px 0 0;padding:0}.cloud-submit-dialog menu button{min-height:36px;padding:0 14px}.cloud-submit-dialog menu .primary{border-color:#58705d;color:#f4eee2;background:#34483b}

.editor-shell{height:calc(100vh - var(--header-h));display:grid;grid-template-columns:var(--left-w) minmax(560px,1fr) var(--right-w);overflow:hidden}.left-rail,.inspector{overflow-y:auto;background:#e3dbc9}.left-rail{border-right:1px solid #8b8a7f}.inspector{border-left:1px solid #8b8a7f;background:#ede5d6}.rail-section{padding:15px;border-bottom:1px solid #b9ad99}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.section-heading h2{margin:0;font-family:Georgia,"Songti SC",serif;font-size:16px}.section-heading>span{color:var(--muted);font-size:10px}label{display:grid;gap:5px;margin-bottom:9px;color:#50564f;font-size:10px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.inline-check{display:flex;align-items:center;gap:7px;margin:0}.inline-check input{width:15px;height:15px}.compact-search{margin-bottom:9px}.rail-help{margin:-4px 0 10px;color:var(--muted);font-size:9px;line-height:1.5}

.palette-group{margin:0 0 9px}.palette-group h3{margin:0 0 5px;color:#68685e;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.node-palette{display:grid;gap:5px}.palette-button{min-height:38px;display:grid;grid-template-columns:6px 1fr auto;align-items:center;gap:8px;padding:5px 8px;text-align:left}.palette-button i{width:6px;height:25px;background:var(--node-color)}.palette-button span{font-size:11px}.palette-button small{color:var(--muted);font-size:9px}.palette-button[draggable=true]{cursor:grab}.palette-button[draggable=true]:active{cursor:grabbing}.palette-tooltip{max-width:320px;position:fixed;z-index:90;padding:12px 13px;border:1px solid #7e876f;color:#edece5;background:#25342c;box-shadow:var(--shadow);font-size:11px;line-height:1.65;pointer-events:none}.palette-tooltip strong{display:block;margin-bottom:4px;color:#e1c17d}.palette-tooltip em{display:block;margin-top:6px;color:#b8c2b9;font-style:normal}

.variable-list,.node-outline{display:grid;gap:6px}.variable-card{position:relative;padding:8px 8px 8px 12px;border:1px solid #b2a690;background:#efe7d7}.variable-card::before{content:"";width:5px;position:absolute;inset:0 auto 0 0;background:var(--variable-color)}.variable-card summary{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px;list-style:none;cursor:pointer}.variable-card summary::-webkit-details-marker{display:none}.variable-card strong{font-size:11px}.variable-card .variable-meta{display:flex;gap:5px;align-items:center;color:var(--muted);font-size:9px}.variable-card .variable-body{padding-top:9px}.variable-card .row{display:grid;grid-template-columns:1fr 1fr;gap:5px}.variable-actions{display:flex;gap:5px;margin-top:7px}.variable-actions button{flex:1;min-height:29px;font-size:9px}.variable-reference-warning{margin-top:7px;padding:7px;border:1px solid #ad7a45;background:#f5e4c8;color:#674c2c;font-size:9px;line-height:1.5}.add-row{width:100%;min-height:32px;margin-top:7px;border-style:dashed;background:transparent}.outline-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;text-align:left}.outline-item.active{border-color:var(--gold);background:#f6ebd4}.outline-item small{color:var(--muted);font-size:9px}
.item-stack-editor{margin:8px 0;padding:8px;border:1px solid #b8aa91}.item-stack-editor legend{padding:0 5px;color:#4f514b;font-size:10px}.item-stack-list{display:grid;gap:6px}.item-stack-row{display:grid;grid-template-columns:minmax(0,1fr) 66px 42px;gap:5px;align-items:end}.item-stack-row label{margin:0}.item-stack-row button{height:31px;padding:0 5px;font-size:9px}.item-stack-empty{margin:2px 0;color:var(--muted);font-size:9px}

.canvas-panel{min-width:0;position:relative;overflow:hidden;background:var(--canvas)}.canvas-toolbar{height:40px;display:flex;align-items:center;gap:14px;padding:0 10px;border-bottom:1px solid #47534b;color:#b7c1b9;background:#233029;font-size:10px}.canvas-toolbar>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-status{display:flex;gap:10px;margin-left:auto;color:#84938a;white-space:nowrap}.zoom-controls{display:flex;gap:3px}.zoom-controls button{min-width:30px;height:27px;border-color:#56645b;color:#dce0da;background:#2d3d34}.blueprint-canvas{height:calc(100% - 40px);position:relative;overflow:hidden;outline:none;background-color:var(--canvas);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;cursor:default}.blueprint-canvas.panning{cursor:grabbing}.blueprint-canvas.connecting{cursor:crosshair}.canvas-world{width:1px;height:1px;position:absolute;inset:0 auto auto 0;transform-origin:0 0;overflow:visible}.connection-layer,.node-layer,.comment-layer,.reroute-layer{width:1px;height:1px;position:absolute;inset:0;overflow:visible}.connection-layer{pointer-events:none}.wire{fill:none;stroke:var(--wire);stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}.wire.data{stroke:var(--pin-color)}.wire.selected,.wire.hovered,.wire.runtime{stroke:#e7bb5d;stroke-width:3}.wire.error{stroke:#d7584d;stroke-width:3}.wire-hit{fill:none;stroke:transparent;stroke-width:14;vector-effect:non-scaling-stroke;pointer-events:stroke}.wire-draft{fill:none;stroke:#e5c26e;stroke-width:2;stroke-dasharray:7 5;vector-effect:non-scaling-stroke}.reroute-point{width:13px;height:13px;position:absolute;border:2px solid #d7d9d3;border-radius:50%;background:#39453e;transform:translate(-50%,-50%);cursor:move}.reroute-point.selected{border-color:#f3c86f;background:#6d5830}.comment-box{position:absolute;min-width:250px;min-height:160px;border:1px solid rgba(208,169,90,.55);background:rgba(132,101,42,.1);pointer-events:none}.comment-box header{height:28px;padding:5px 8px;color:#dcb968;background:rgba(78,59,28,.66);font-size:11px}.selection-box,.marquee-screen{position:absolute;z-index:20;border:1px solid #e6bd67;background:rgba(230,189,103,.12);pointer-events:none}.selection-box{display:none}.minimap{width:170px;height:104px;position:absolute;right:12px;bottom:48px;overflow:hidden;border:1px solid #58665c;background:rgba(13,19,15,.9);box-shadow:0 6px 18px rgba(0,0,0,.28)}.mini-node,.mini-comment,.mini-viewport{position:absolute}.mini-node{width:8px;height:5px;background:#8ca094}.mini-node.selected{background:#e0b85f}.mini-comment{border:1px solid rgba(204,167,87,.5)}.mini-viewport{border:1px solid #d8dcd5;background:rgba(255,255,255,.04)}

.blueprint-node{width:270px;position:absolute;border:1px solid #66746b;border-radius:4px;color:#e7e9e4;background:#2a3530;box-shadow:0 9px 24px rgba(0,0,0,.32);user-select:none}.blueprint-node.selected{border-color:#e1b65f;box-shadow:0 0 0 2px rgba(225,182,95,.25),0 12px 30px rgba(0,0,0,.4)}.blueprint-node.issue-error{border-color:#d3564c}.blueprint-node.issue-warning:not(.issue-error){border-color:#c99a43}.blueprint-node.runtime-node{box-shadow:0 0 0 3px rgba(89,203,139,.45),0 12px 30px rgba(0,0,0,.4)}.node-head{height:38px;display:grid;grid-template-columns:7px 1fr auto;align-items:stretch;border-radius:3px 3px 0 0;border-bottom:1px solid #56625a;background:linear-gradient(180deg,var(--node-header),#303c36);cursor:grab}.node-head:active{cursor:grabbing}.node-type-mark{background:var(--node-color);border-radius:3px 0 0}.node-heading-copy{min-width:0;padding:6px 8px}.node-heading-copy strong,.node-heading-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-heading-copy strong{font-size:11px}.node-heading-copy small{margin-top:2px;color:#acb6ae;font-size:8px}.node-badges{display:flex;gap:3px;align-items:center;padding-right:7px}.node-badge{min-width:18px;height:18px;display:grid;place-items:center;border-radius:9px;color:white;background:#b04b42;font-size:9px}.node-badge.warning{background:#af7d32}.node-summary{margin:0;padding:8px 11px;border-bottom:1px solid #414e47;color:#b8c1ba;font-size:9px;line-height:1.5}.pin-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:7px 0 9px}.pin-column{display:grid;align-content:start;gap:3px}.pin-row{min-height:25px;display:flex;align-items:center;gap:6px;color:#ccd2cd;font-size:9px;white-space:nowrap}.pin-row.input{justify-content:flex-start;padding-right:5px}.pin-row.output{justify-content:flex-end;padding-left:5px;text-align:right}.pin-label{max-width:105px;overflow:hidden;text-overflow:ellipsis}.pin{width:13px;height:13px;flex:0 0 13px;padding:0;border:2px solid var(--pin-color);border-radius:50%;background:#243029}.pin.connected{background:var(--pin-color)}.pin.exec{width:15px;height:13px;flex-basis:15px;border:0;border-radius:0;background:var(--pin-color);clip-path:polygon(0 0,55% 0,100% 50%,55% 100%,0 100%,30% 50%)}.pin.exec:not(.connected){background:linear-gradient(var(--pin-color),var(--pin-color)) padding-box;opacity:.42}.pin:hover,.pin.related{filter:drop-shadow(0 0 4px var(--pin-color));transform:scale(1.18)}.pin.incompatible{border-color:#e45149;background:#3e2423;animation:reject .18s linear 2}@keyframes reject{50%{transform:translateX(3px)}}

.inspector-heading{position:sticky;top:0;z-index:10;margin:0;padding:14px;border-bottom:1px solid #b8ad99;background:#ede5d6}.inspector-heading h2{font-size:18px}.inspector-actions{display:flex;gap:5px}.inspector-actions button{padding:5px 7px;font-size:9px}.inspector-body{padding:14px}.inspector-group{margin-bottom:17px;padding-bottom:13px;border-bottom:1px solid #c7baa6}.inspector-group h3{margin:0 0 9px;color:#5a6058;font-size:10px;letter-spacing:.09em;text-transform:uppercase}.inspector-note{margin:0 0 10px;padding:8px;border:1px solid #c3b6a1;color:#625f55;background:#e5dccb;font-size:9px;line-height:1.55}.target-grid{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:6px;margin-bottom:6px}.target-grid span{font-size:10px}.repeat-list{display:grid;gap:7px}.repeat-card{padding:8px;border:1px solid #b5a892;background:#e5dccb}.repeat-card .row{display:grid;grid-template-columns:minmax(0,1fr) 82px 27px;gap:4px}.repeat-card .row.two{grid-template-columns:1fr 1fr}.repeat-card button{height:31px}.code-field{font-family:"Cascadia Mono",Consolas,monospace;font-size:10px}.field-issue{border-color:#c84f46!important;box-shadow:0 0 0 2px rgba(200,79,70,.16)}

.bottom-dock{height:var(--dock-height);position:fixed;z-index:40;right:0;bottom:0;left:var(--left-w);display:grid;grid-template-rows:34px 1fr;border-top:2px solid #88713f;background:#202923;box-shadow:0 -14px 34px rgba(8,12,10,.4);transition:height .18s ease}.bottom-dock.collapsed{height:34px}.dock-resizer{height:7px;position:absolute;z-index:3;right:0;top:-5px;left:0;border:0;background:transparent;cursor:ns-resize}.dock-tabs{display:flex;align-items:stretch;border-bottom:1px solid #4d584f;background:#2a352f}.dock-tab{padding:0 13px;border:0;border-right:1px solid #465149;color:#c8cec8;background:transparent;font-size:10px}.dock-tab.active{color:#f1dfb4;background:#1e2722}.dock-tab b{margin-left:5px;color:#d7b263}.dock-spacer{flex:1}.dock-tabs>button:not(.dock-tab),.dock-tabs .party-control{margin:3px 4px;height:27px}.dock-tabs>button:not(.dock-tab){padding:0 9px;border-color:#59665e;color:#d6dbd6;background:#34423a;font-size:9px}.party-control{display:flex;align-items:center;gap:5px;color:#b8c1bb;font-size:9px}.party-control select{width:52px;height:27px;color:#e9ebe8;background:#334139;border-color:#5d6a62}.dock-body{min-height:0;overflow:hidden}.dock-pane{height:100%;display:none;overflow:auto;color:#d7dcd7;background:#1d2521}.dock-pane.active{display:block}.compile-summary{min-height:38px;display:flex;align-items:center;gap:14px;padding:8px 13px;border-bottom:1px solid #3d4741;color:#aeb8b0;font-size:10px}.compile-summary strong{color:#e1d9c7}.issue-table{display:grid}.issue-row{display:grid;grid-template-columns:74px 112px minmax(0,1fr) 150px;gap:8px;align-items:center;min-height:33px;padding:5px 12px;border:0;border-bottom:1px solid #303a34;color:#d0d6d1;background:transparent;text-align:left;font-size:10px}.issue-row:hover{background:#2b3730}.issue-row .level{color:#df6b61}.issue-row.warning .level{color:#d6a64d}.issue-row .location{color:#89968d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:#758178}.bottom-dock.has-errors .status-dot{background:#d65a50}.bottom-dock.is-stale .status-dot{background:#c6953f}.search-toolbar{display:flex;gap:12px;padding:9px 12px;border-bottom:1px solid #3c4740}.search-toolbar input{max-width:600px;height:31px;color:#e6e9e5;background:#2c3731;border-color:#58645c}.search-results{display:grid}.search-result{display:grid;grid-template-columns:140px 170px 1fr;gap:12px;padding:9px 13px;border-bottom:1px solid #303a34;color:#d4d9d5;font-size:10px;text-align:left;background:transparent}.search-result:hover{background:#2b3730}.search-result small{color:#89958d}.preview-dock.active{display:grid;grid-template-columns:minmax(0,1fr) 270px}.preview-pane{overflow-y:auto;padding:14px;background:#d5cdbc}.preview-controls{overflow-y:auto;padding:12px;border-left:1px solid #4a544d;color:#252a26;background:#e7dfd1}.preview-controls h3{margin:0 0 8px;font-family:Georgia,"Songti SC",serif;font-size:14px}.preview-controls button{width:100%;min-height:33px;margin-bottom:6px;text-align:left}.player-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:7px;margin-bottom:12px}.player-preview{padding:8px 10px;border:1px solid #9c9385;background:#ece6da}.player-preview.active{border-color:#a57a32}.player-preview strong,.player-preview small{display:block}.player-preview small{margin-top:2px;color:var(--muted);font-size:9px}.story-log,.qq-log{max-width:840px;display:grid;gap:9px;margin:0 auto}.story-card{padding:12px 14px;border:1px solid #9f9789;color:#333a34;background:#f2eee5;line-height:1.7;white-space:pre-wrap;font-size:12px}.story-card.private{border-left:5px solid #805c46;background:#eaded3}.qq-log{padding:4px}.qq-row{display:flex;align-items:flex-start}.qq-row.player{justify-content:flex-end}.qq-bubble-wrap{max-width:78%}.qq-sender{margin:0 5px 3px;color:#676d67;font-size:9px}.qq-row.player .qq-sender{text-align:right}.qq-message{padding:9px 12px;border:1px solid #78867c;border-radius:3px 13px 13px;color:#edf0ec;background:#35473d;line-height:1.6;white-space:pre-wrap;font-size:12px}.qq-row.player .qq-message{border-color:#9d824d;border-radius:13px 3px 13px 13px;color:#2e302d;background:#e9d6a8}.qq-row.private .qq-message{border-color:#84654e;background:#62493a}.qq-row.countdown .qq-message{min-width:46px;text-align:center;color:#302d25;background:#e7ddc8}.preview-empty{margin:34px auto;color:var(--muted);text-align:center}

.script-sheet,.modal-sheet{position:fixed;z-index:70;inset:28px;display:grid;padding:17px;border:1px solid #7f7565;background:#e8e0d1;box-shadow:0 24px 80px rgba(0,0,0,.55);opacity:0;pointer-events:none;transform:translateY(12px);transition:.16s ease}.script-sheet{grid-template-rows:auto auto auto 1fr}.modal-sheet{grid-template-rows:auto auto auto 1fr}.script-sheet.open,.modal-sheet.open{opacity:1;pointer-events:auto;transform:none}.script-sheet header,.modal-sheet header{display:flex;align-items:center;justify-content:space-between;gap:12px}.script-sheet h2,.modal-sheet h2{margin:0;font-family:Georgia,"Songti SC",serif}.script-actions,.shortcut-toolbar{display:flex;gap:6px}.script-actions button,.shortcut-toolbar button,.modal-sheet header>button{min-height:33px;padding:0 11px}.script-note,.script-status,.shortcut-note{color:var(--muted);font-size:10px}.script-status.error{color:var(--danger);white-space:pre-wrap}.script-status.success{color:#3e654f}#scriptEditor{height:100%;min-height:0;resize:none;border-color:#4d5a52;color:#e8ece8;background:#1c2621;font-family:"Cascadia Mono",Consolas,monospace;font-size:11px;line-height:1.7}.shortcut-toolbar{margin:10px 0}.shortcut-toolbar input{max-width:420px}.shortcut-list{overflow:auto;border:1px solid #aaa08e}.shortcut-row{display:grid;grid-template-columns:180px 1fr 160px 160px;gap:9px;align-items:center;padding:8px 10px;border-bottom:1px solid #c2b6a3;font-size:10px}.shortcut-row small{color:var(--muted)}.shortcut-key{height:31px;font-family:"Cascadia Mono",Consolas,monospace;text-align:center}.context-menu{min-width:220px;max-height:380px;position:fixed;z-index:100;overflow:auto;padding:6px;border:1px solid #69766e;color:#e6e9e5;background:#26332c;box-shadow:var(--shadow)}.context-menu input{margin-bottom:5px;color:#ecefeb;background:#1d2722;border-color:#55635a}.context-menu button{width:100%;min-height:32px;padding:5px 8px;border:0;color:#dce1dc;background:transparent;text-align:left;font-size:10px}.context-menu button:hover{background:#3a4a41}.context-menu small{display:block;color:#95a198;font-size:8px}.toast{position:fixed;z-index:120;right:16px;bottom:46px;max-width:380px;padding:10px 13px;border:1px solid #748178;color:#eef1ed;background:#293830;box-shadow:var(--shadow);opacity:0;transform:translateY(8px);pointer-events:none;transition:.16s}.toast.show{opacity:1;transform:none}.mobile-notice{display:none}

@media(max-width:1180px) and (min-width:821px){:root{--left-w:250px;--right-w:300px}body{min-width:1024px}.editor-shell{grid-template-columns:var(--left-w) minmax(460px,1fr) var(--right-w)}.editor-masthead{gap:10px;padding-inline:10px}.brand-block{min-width:246px;gap:10px}.back-link{width:38px;flex-basis:38px}.eyebrow{font-size:8px}.editor-masthead h1{font-size:21px}.document-state{width:7em;min-width:7em;max-width:7em;flex-basis:7em}.document-state strong{font-size:12px}.toolbar button,.toolbar-link{padding-inline:7px;font-size:10px}}
.preview-input-form{display:grid;gap:8px;margin:10px 0 14px;padding:10px;border:1px solid #9d8a68;background:#f0e8da}.preview-input-form h3{margin:0}.preview-input-form label{display:grid;gap:4px;margin:0;font-size:10px}.preview-input-form input,.preview-input-form select,.preview-input-form textarea{width:100%;min-width:0}.preview-input-actor{margin:0;color:#65645d;font-size:9px}.preview-input-error{margin:0;padding:7px;border:1px solid #a55950;color:#7e302c;background:#f1d8d1;font-size:9px}.preview-input-actions{display:grid;grid-template-columns:1fr;gap:5px}.preview-input-actions button{margin:0}

@media(max-width:820px){body{min-width:0;overflow:auto}.editor-masthead{height:auto;grid-template-columns:1fr;grid-template-rows:auto;gap:8px}.brand-block{min-width:0}.editor-masthead-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:7px}.document-state{grid-row:1;max-width:none;justify-items:start;transform:none}.toolbar{grid-row:2;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.toolbar button,.toolbar-link{flex:0 0 auto}.editor-shell{height:auto;display:block}.left-rail,.inspector{max-height:none;border:0}.palette-section{display:none}.canvas-panel{min-height:530px}.canvas-toolbar>span,.canvas-status{display:none}.blueprint-canvas{height:490px;pointer-events:none}.inspector-actions,#autoLayout,#duplicateNode,#deleteNode,#openShortcuts{display:none}.bottom-dock{left:0}.bottom-dock:not(.collapsed){height:78vh}.preview-dock.active{grid-template-columns:1fr}.preview-controls{max-height:190px;border-top:1px solid #4a544d;border-left:0}.script-sheet,.modal-sheet{inset:7px}.shortcut-row{grid-template-columns:1fr}.mobile-notice{display:block;position:sticky;z-index:60;bottom:0;padding:9px;color:white;background:#67483b;font-size:11px;text-align:center}}
.connection-layer{pointer-events:auto}
.palette-button{cursor:grab}.palette-button:active{cursor:grabbing}.drag-ghost{position:fixed;z-index:130;padding:6px 10px;border:1px solid #c8a45d;color:#f3e6c5;background:#2c3a32;box-shadow:var(--shadow);font-size:10px;pointer-events:none}

/* V5 高级功能与单层子图导航 */
.advanced-palette{margin:4px 0 0;border:1px solid #81704e;background:linear-gradient(180deg,#ded4c1,#d3c6b0)}
.advanced-palette>summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;cursor:pointer;list-style:none;color:#3f493f;background:rgba(88,75,50,.08)}
.advanced-palette>summary::-webkit-details-marker{display:none}.advanced-palette>summary:before{content:"›";margin-right:2px;color:#7a5e2d;font-size:18px;line-height:1;transition:transform .16s ease}.advanced-palette[open]>summary:before{transform:rotate(90deg)}
.advanced-palette>summary>span:first-of-type{min-width:0;display:grid;gap:2px;margin-right:auto}.advanced-palette>summary strong{font-size:11px;letter-spacing:.08em}.advanced-palette>summary small{overflow:hidden;color:#756e61;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.advanced-palette-groups{padding:9px 8px 2px;border-top:1px solid rgba(102,84,50,.22)}.advanced-issue-badges{display:flex;gap:4px}.advanced-issue-badges b{min-width:20px;padding:2px 5px;border-radius:9px;color:#fff;background:#a2524c;font-size:8px;text-align:center}.advanced-issue-badges b.warning{color:#322817;background:#c59a49}
.graph-breadcrumb{min-width:max-content;display:flex;align-items:center;gap:6px;padding-right:10px;border-right:1px solid #4c5d52;color:#d9ded8;white-space:nowrap}.graph-breadcrumb button{height:25px;padding:3px 7px;border-color:#617167;color:#dfe5df;background:#304239;font-size:9px}.graph-breadcrumb i{color:#9d8a61;font-size:15px;font-style:normal}.graph-breadcrumb strong{max-width:150px;overflow:hidden;text-overflow:ellipsis}.graph-breadcrumb span{padding:2px 5px;border:1px solid #6f654c;color:#ceb778;background:#342f24;font-size:8px}.canvas-toolbar>#canvasHint{min-width:0;flex:1}
.advanced-service-note{margin:0 0 10px;padding:9px 10px;border:1px solid #9a7d45;border-left:4px solid #9a6c42;color:#554b3c;background:#e7dbc4}.advanced-service-note strong{display:block;margin-bottom:3px;color:#744c36;font-size:10px;letter-spacing:.08em}.advanced-service-note p{margin:0;font-size:9px;line-height:1.55}.subgraph-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0 10px}.outcome-row .row{grid-template-columns:minmax(0,1fr) minmax(90px,1fr) 27px}
@media(prefers-reduced-motion:reduce){.advanced-palette>summary:before{transition:none}}
.comment-box{min-height:120px;pointer-events:auto}.comment-box.selected{border-color:#efc15f;box-shadow:0 0 0 2px rgba(239,193,95,.18)}.comment-box header{cursor:grab}.comment-box header:active{cursor:grabbing}.comment-box p{margin:0;padding:9px;color:#b9aa8b;font-size:10px;line-height:1.5;white-space:pre-wrap}.comment-resize{width:17px;height:17px;position:absolute;right:-1px;bottom:-1px;padding:0;border:0;border-radius:0;background:linear-gradient(135deg,transparent 0 45%,#d3aa55 46% 58%,transparent 59% 68%,#d3aa55 69% 81%,transparent 82%);cursor:nwse-resize}.blueprint-node.comment-contained:not(.selected){box-shadow:0 0 0 2px rgba(220,185,104,.22),0 9px 24px rgba(0,0,0,.32)}
.technical-details{margin-top:9px;padding:7px 8px;border:1px dashed #b7aa94;background:rgba(230,220,201,.55);font-size:9px;line-height:1.55}.technical-details summary{cursor:pointer;color:#6b665c}.technical-details p{margin:7px 0 0}.technical-details code{font-family:"Cascadia Mono",Consolas,monospace;word-break:break-all}.template-toolbar{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}.template-toolbar button{min-height:29px;padding:5px 8px;font-size:9px}.template-preview{margin-top:7px;padding:9px;border-left:4px solid #78917d;background:#e5dccb;color:#4e4c45;font-size:10px;line-height:1.65;white-space:pre-wrap}.effect-summary{margin:6px 0;padding:7px;border:1px solid #b7aa94;background:#f0e7d6;font-size:10px}.player-setup{margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid #b8ad99}.player-setup-row{display:grid;grid-template-columns:1fr 1.5fr;gap:5px;margin-top:5px}.player-setup-row input{min-width:0}.context-menu .empty-context{padding:12px;color:#c9c1b0;font-size:10px;line-height:1.6}
.pin{position:relative;width:17px;height:17px;flex-basis:17px}.pin::after{content:"";position:absolute;inset:-7px}.pin.exec{width:18px;height:16px;flex-basis:18px}

/* Phase 1.3: creator guidance, location picker and template centre. */
[data-help]:not(.pin){cursor:help}.blueprint-node{cursor:grab}.blueprint-node:active{cursor:grabbing}.blueprint-node input,.blueprint-node textarea,.blueprint-node select,.blueprint-node button,.blueprint-node a,.blueprint-node .pin{cursor:auto}.blueprint-node .pin{cursor:crosshair}
.pin.attach{width:18px;height:18px;flex-basis:18px;border:2px solid #efe7d3;border-radius:4px;background:transparent;transform:rotate(45deg)}.pin.attach.connected{background:#efe7d3}.wire.attach{stroke:#efe7d3;stroke-dasharray:8 5}
.location-editor{position:relative}.location-tags{display:flex;flex-wrap:wrap;gap:5px;min-height:28px;margin-bottom:6px}.location-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #a6977e;border-radius:999px;background:#e8dfcd;font-size:9px}.location-tag button{width:18px;min-height:18px;padding:0;border:0;border-radius:50%;background:#cdbfa7}.location-picker{margin-top:6px;padding:8px;border:1px solid #aaa08e;background:#eee6d8;box-shadow:0 8px 22px rgba(47,39,28,.18)}.location-picker[hidden]{display:none}.location-options{max-height:210px;overflow:auto;margin:7px 0}.location-options section+section{margin-top:8px;padding-top:7px;border-top:1px solid #c8bba5}.location-options h3{margin:0 0 5px;font-size:9px;color:#686256}.location-options label{display:flex;align-items:center;gap:6px;padding:4px 3px;font-size:9px}.location-options input{width:auto}.location-custom{display:grid;grid-template-columns:1fr auto;gap:5px}
.context-menu{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(360px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:min(430px,calc(100vh - 80px));overflow:hidden}.context-menu-results{min-height:0;overflow:auto}.context-menu .empty-context{margin:0}.context-menu input{position:sticky;top:0;z-index:1;margin:0 0 5px}
.readonly-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 12px;border-bottom:1px solid #b5975d;color:#f0e3c3;background:#5c4932;font-size:10px}.readonly-banner[hidden]{display:none}.readonly-banner button{min-height:29px;padding:4px 9px}.help-tooltip{position:fixed;z-index:150;max-width:290px;padding:8px 10px;border:1px solid #a88c56;color:#efe9dc;background:#26332c;box-shadow:0 8px 24px rgba(0,0,0,.36);font-size:9px;line-height:1.6;pointer-events:none}
.custom-location{display:grid;grid-template-columns:1fr auto;gap:5px}
.readonly-banner{position:fixed;z-index:65;top:var(--header-h);right:0;left:0;box-shadow:0 7px 18px rgba(0,0,0,.25)}

/* Phase 1.4: final-message preview, map popover and export workflow. */
.context-menu[hidden]{display:none!important}
.template-preview{overflow:hidden;padding:0;border:1px solid #a99b84;border-left:0;background:#d5cdbc}
.template-preview>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-bottom:1px solid #b8aa94;color:#55574f;background:#ece5d8;font-size:9px;letter-spacing:.04em}
.template-preview>header strong{font-family:Georgia,"Songti SC",serif;font-size:12px}.template-preview>header span{color:#766f63}
.template-preview-context{margin:0;padding:6px 10px;border-bottom:1px solid #bcae98;color:#625f56;background:#e7dfd1;font-size:8px;line-height:1.45}
.final-preview-log{display:grid;gap:8px;padding:10px;background:linear-gradient(rgba(255,255,255,.12),rgba(255,255,255,0)),#d5cdbc}
.final-preview-log .qq-bubble-wrap{max-width:92%}.final-preview-log .qq-message{font-size:10px}.final-preview-log .qq-row.private .qq-message{color:#f1ebe5}
.final-preview-empty{margin:0;padding:14px;color:#746f65;text-align:center;font-size:9px}.final-preview-error{display:grid;gap:4px;padding:11px;color:#7f312d;background:#f0d7d2;font-size:9px}.final-preview-error strong{font-size:10px}
.node-message-preview{margin-top:12px}.node-message-preview .final-preview-log{max-height:280px;overflow:auto}.final-preview-empty.logic-only{border-top:1px dashed #b7aa94;color:#675f54;background:#e7dfd1;line-height:1.6}
.location-picker{width:min(300px,calc(100vw - 28px));max-height:min(520px,calc(100vh - 110px));position:fixed;z-index:85;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;margin:0;padding:10px;border-color:#8d806c;background:#f1e9dc;box-shadow:0 18px 44px rgba(30,25,18,.32)}
.location-picker[hidden]{display:none}.location-picker>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.location-picker>header strong{font-family:Georgia,"Songti SC",serif;font-size:14px}.location-picker>header span{color:#777064;font-size:9px}
.location-picker>input{height:34px;font-size:11px}.location-options{max-height:none;min-height:0;margin:8px 0;overflow:auto;padding-right:3px}.location-options section+section{margin-top:9px;padding-top:8px}.location-options h3{position:sticky;top:0;z-index:1;margin:0 0 4px;padding:4px 2px;color:#5e5b53;background:#f1e9dc;font-size:10px;letter-spacing:.04em}.location-options label{min-height:29px;padding:4px 5px;border-radius:3px;font-size:11px}.location-options label:hover{background:#dfd5c4}.location-options input{width:15px;height:15px}.custom-location{padding-top:8px;border-top:1px solid #c8bba5}.custom-location input,.custom-location button{height:33px;font-size:10px}
.script-sheet{grid-template-rows:auto auto auto auto minmax(0,1fr)}.script-tabs{display:flex;gap:5px;margin:9px 0 3px;border-bottom:1px solid #b9ad9a}.script-tabs button{min-height:32px;padding:0 13px;border-bottom:0;background:#ddd3c2}.script-tabs button.active{color:#f0e4c9;background:#34443a}.script-sheet textarea[hidden]{display:none!important}#implementationEditor,#legacySourceEditor{height:100%;min-height:0;resize:none;border-color:#6d675d;color:#252b27;background:#f4efe6;font-family:"Cascadia Mono","PingFang SC",monospace;font-size:11px;line-height:1.75}.legacy-migration-notice{margin:0 0 12px;padding:10px 11px;border:1px solid #897348;border-left:4px solid #9a7740;color:#3c433d;background:#efe4cb;font-size:10px;line-height:1.6}.legacy-migration-notice strong{display:block;margin-bottom:3px;color:#765421;font-family:Georgia,"Songti SC",serif;font-size:12px}.legacy-migration-notice code{font-family:"Cascadia Mono",Consolas,monospace;font-size:9px}
.player-preview[type="button"]{width:100%;min-height:0;margin:0;color:#333a34;text-align:left;cursor:pointer}.player-preview[type="button"]:hover:not(:disabled){border-color:#8b6d36;background:#f2ead9}.player-preview[type="button"]:disabled{opacity:.72;cursor:not-allowed}
@media(max-width:820px){.location-picker{width:min(340px,calc(100vw - 14px));max-height:72vh;position:fixed}.script-actions{overflow-x:auto}.script-actions button{flex:0 0 auto}}

/* Phase 1.6: preview controls, teaching templates and visual polish. */
.template-sheet{width:min(1440px,calc(100vw - 32px));height:min(640px,calc(100vh - 32px));max-height:none;inset:50% auto auto 50%;grid-template-rows:auto auto minmax(0,1fr);padding:22px;transform:translate(-50%,calc(-50% + 12px))}.template-sheet.open{transform:translate(-50%,-50%)}
.template-sheet .shortcut-note{max-width:900px;margin:10px 0 18px;font-size:13px;line-height:1.65}.template-gallery{display:grid;grid-auto-flow:column;grid-template-columns:repeat(4,minmax(260px,1fr));gap:14px;min-width:0;overflow-x:auto;overflow-y:hidden;padding:4px 5px 12px}.template-card{--template-accent:#777970;--template-tint:#eee8dd;min-width:260px;min-height:460px;display:flex;flex-direction:column;padding:20px;border:1px solid color-mix(in srgb,var(--template-accent) 54%,#a69a86);border-top:5px solid var(--template-accent);background:linear-gradient(180deg,color-mix(in srgb,var(--template-tint) 72%,white) 0 82px,#f1e9dc 175px);box-shadow:0 7px 20px rgba(49,40,27,.15)}
.template-card.template-blank{--template-accent:#777970;--template-tint:#d9d5ca}.template-card.template-battle{--template-accent:#8e4f48;--template-tint:#ead4cf}.template-card.template-exploration{--template-accent:#58725f;--template-tint:#d5e0d2}.template-card.template-puzzle{--template-accent:#655f82;--template-tint:#ddd8e8}.template-card>div:first-child>span{color:var(--template-accent);font-size:11px;font-weight:700;letter-spacing:.04em}.template-card h3{margin:8px 0 10px;color:#343830;font-family:Georgia,"Songti SC",serif;font-size:22px}.template-card p,.template-card li,.template-card small{font-size:13px;line-height:1.7}.template-card p{margin:0}.template-card ul{margin:18px 0 0;padding-left:21px}.template-card small{margin-top:16px;color:#625f56}.template-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:auto;padding-top:2.4em}.template-actions button{min-height:39px;padding:7px;font-size:12px}.template-actions .primary{border-color:var(--template-accent);color:#f7f1e5;background:var(--template-accent)}
.condition-insert-sheet{width:min(560px,calc(100vw - 36px));height:auto;inset:50% auto auto 50%;grid-template-rows:auto auto auto auto auto;gap:10px;padding:20px;transform:translate(-50%,calc(-50% + 12px))}.condition-insert-sheet.open{transform:translate(-50%,-50%)}.condition-insert-sheet #conditionInsertFields{display:grid;gap:8px}.condition-insert-sheet .primary{min-height:38px;color:#f3ecd9;background:#35483d}
.preview-mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:7px 0}.preview-mode-toggle button{min-height:31px;margin:0;text-align:center}.preview-mode-toggle button.active{border-color:#a77c36;background:#d8c28f}.auto-player-card,.manual-player-card{display:grid;gap:5px;margin-top:6px;padding:8px;border:1px solid #b3a68f;background:#eee6d8}.auto-player-card strong{font-size:10px}.auto-player-card span,.auto-player-card small{font-size:9px;line-height:1.45}.auto-player-card small{color:#746d60}.manual-player-card textarea{min-height:42px;font-family:"Cascadia Mono",Consolas,monospace;font-size:9px}.tag-definition summary strong{color:#6a4053}
.binding-preview-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.binding-preview-actions button{min-height:34px;margin:0}.binding-preview-actions .primary{border-color:#806b3e;color:#f6edd8;background:#43574a}.binding-preview-result{display:grid;gap:3px;margin-top:7px;padding:7px 8px;border:1px solid #b6a990;background:#f1eadc}.binding-preview-result small{color:#716b60;font-size:8px}.binding-preview-result output{overflow-wrap:anywhere;color:#35443b;font-size:10px}.binding-preview-result.pending{border-style:dashed}.binding-preview-result.warn,.binding-preview-result.stale{border-color:#b98c45;background:#f2e2bf}.binding-preview-result.error{border-color:#b95b53;background:#efd5d0}
.template-preview>header{align-items:center;padding:8px 10px;white-space:normal}.template-preview>header>div:first-child{display:flex;align-items:baseline;gap:7px}.condition-preview-toggle{display:flex;gap:4px}.condition-preview-toggle button{min-height:26px;padding:4px 7px;border-color:#a79a84;background:#ddd4c5;font-size:8px}.condition-preview-toggle button.active{border-color:#6c7c70;color:#f5eee0;background:#43574b}
.editor-setting-group{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px;align-items:end;margin:12px 0;padding:14px;border:1px solid #aa9d87;background:#efe7d8}.editor-setting-group h3,.settings-subtitle{margin:0 0 5px;font-family:Georgia,"Songti SC",serif}.editor-setting-group p{margin:0;color:var(--muted);font-size:10px;line-height:1.6}.editor-setting-group label{margin:0}.settings-subtitle{margin-top:6px;font-size:15px}.editor-confirm-dialog{width:min(520px,calc(100vw - 28px));padding:0;border:1px solid #86785f;color:var(--ink);background:#eee7d6;box-shadow:0 26px 90px rgba(0,0,0,.52)}.editor-confirm-dialog::backdrop{background:rgba(12,18,14,.76);backdrop-filter:blur(3px)}.editor-confirm-dialog form{padding:22px}.editor-confirm-dialog h2{margin:0 0 9px;font-family:Georgia,"Songti SC",serif}.editor-confirm-dialog p{line-height:1.7}.editor-confirm-dialog menu{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0}.editor-confirm-dialog menu button{min-height:36px;padding:0 14px}.editor-confirm-dialog .primary{border-color:#58705d;color:#f4eee2;background:#34483b}.editor-confirm-dialog .danger{border-color:#884a43;color:#fff1e7;background:#8f4840}.dialog-error{min-height:1.4em;margin:4px 0 0;color:#963e37;font-size:10px}
:where(.left-rail,.inspector,.template-gallery,.location-options,.dock-pane,.preview-pane,.preview-controls,.shortcut-list,.context-menu-results){scrollbar-width:thin;scrollbar-color:#607268 transparent;scrollbar-gutter:stable;overscroll-behavior:contain}:where(.left-rail,.inspector,.template-gallery,.location-options,.dock-pane,.preview-pane,.preview-controls,.shortcut-list,.context-menu-results)::-webkit-scrollbar{width:9px;height:9px}:where(.left-rail,.inspector,.template-gallery,.location-options,.dock-pane,.preview-pane,.preview-controls,.shortcut-list,.context-menu-results)::-webkit-scrollbar-track{margin:4px;background:rgba(50,63,55,.08);border-radius:9px}:where(.left-rail,.inspector,.template-gallery,.location-options,.dock-pane,.preview-pane,.preview-controls,.shortcut-list,.context-menu-results)::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:9px;background:#607268;background-clip:padding-box}:where(.left-rail,.inspector,.template-gallery,.location-options,.dock-pane,.preview-pane,.preview-controls,.shortcut-list,.context-menu-results)::-webkit-scrollbar-thumb:hover{background:#a27f48;background-clip:padding-box}
@media(max-width:820px){.template-sheet,.template-sheet.open{width:auto;height:auto;inset:7px;padding:15px;transform:none}.template-sheet .shortcut-note{font-size:12px}.template-gallery{grid-auto-flow:row;grid-template-columns:1fr;grid-auto-columns:auto;overflow-x:hidden;overflow-y:auto}.template-card{min-width:0;min-height:330px;padding:18px}.template-card h3{font-size:20px}.template-card p,.template-card li,.template-card small{font-size:12px}.template-actions{padding-top:1.8em}.condition-insert-sheet{width:calc(100vw - 14px);max-height:calc(100vh - 14px);overflow:auto}.binding-preview-actions{grid-template-columns:1fr}.condition-preview-toggle{flex-direction:column}.editor-setting-group{grid-template-columns:1fr}}

/* Keep the dock inside the canvas column so it never blocks the property inspector. */
.bottom-dock{right:var(--right-w)}
@media(max-width:820px){.bottom-dock{right:0}}
.toolbar .owner-action{border-color:#b99056;color:#fff0d4;background:#7f3f39}.toolbar .owner-action:hover:not(:disabled){border-color:#d5b06e;background:#965049}
