:root{--bg:#fff;--text:#3a3a3a;--muted:#8a8a8a;--line:#e6e6e6;--accent:#1a1a1a;--font-body:"Courier New", "Nimbus Mono PS", "Songti SC", serif;--font-heading:"Courier New", "Nimbus Mono PS", "Songti SC", serif;--sidebar-w:420px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button{color:inherit;font-family:inherit}a{color:inherit;text-decoration:none}.app{background:var(--bg);min-height:100%;display:flex}.app.editing .stage{padding-right:320px}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);flex-direction:column;justify-content:center;align-self:flex-start;height:100vh;margin-left:1vw;padding:40px 20px 40px 32px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{font-family:var(--font-heading);letter-spacing:.02em;text-underline-offset:4px;cursor:pointer;white-space:nowrap;text-align:left;background:0 0;border:0;margin:0 0 30px;padding:0;font-size:24px;font-weight:700;line-height:1.35;text-decoration:underline;display:block}.nav{font-size:21px;line-height:1.9}.nav-group{margin-bottom:26px}.nav-item{text-align:left;cursor:pointer;width:100%;color:var(--text);letter-spacing:.01em;white-space:nowrap;opacity:.78;background:0 0;border:0;padding:0;font-size:21px;line-height:1.9;transition:opacity .15s;display:block}.nav-item:hover{opacity:1}.nav-item.active{opacity:1;text-underline-offset:3px;text-decoration:underline}.nav-item.level-0{text-underline-offset:4px;opacity:1;margin-bottom:6px;font-weight:700;text-decoration:underline}.nav-item.level-1{padding-left:2px}.nav-item.level-2{padding-left:18px}.nav-item.level-3{padding-left:34px}.nav-children{margin:2px 0 10px}.nav-add{color:var(--muted);border:1px dashed var(--line);cursor:pointer;background:0 0;margin-top:10px;padding:4px 8px;font-size:12px}.stage{flex-direction:column;flex:auto;align-items:center;min-width:0;min-height:100vh;padding:40px 24px;transition:padding .2s;display:flex}.canvas-wrap{width:100%;margin:auto 0;position:relative}.canvas{transform-origin:0 0;background:var(--bg);position:relative}.canvas.grid{background-image:linear-gradient(90deg,#0000000b 1px,#0000 1px),linear-gradient(#0000000b 1px,#0000 1px);background-size:40px 40px}.block{position:absolute}.text-body{white-space:pre-wrap;word-break:break-word;width:100%;height:100%;overflow:hidden}.img-body{width:100%;height:100%;overflow:hidden}.img-body img{width:100%;height:100%;display:block}.img-placeholder{text-align:center;color:#b0b0b0;letter-spacing:.06em;background:#f2f2f2;justify-content:center;align-items:center;width:100%;height:100%;padding:10px;font-size:12px;display:flex}.img-caption{color:var(--muted);letter-spacing:.04em;margin-top:8px;font-size:17px}.block.editable{cursor:move}.block.editable:hover{outline:1px solid #0000002e}.block.selected{outline:1px solid #2f6fed}.handle{background:#fff;border:1px solid #2f6fed;border-radius:1px;width:9px;height:9px;position:absolute}.h-nw{cursor:nwse-resize;top:-5px;left:-5px}.h-n{cursor:ns-resize;margin-left:-4px;top:-5px;left:50%}.h-ne{cursor:nesw-resize;top:-5px;right:-5px}.h-e{cursor:ew-resize;margin-top:-4px;top:50%;right:-5px}.h-se{cursor:nwse-resize;bottom:-5px;right:-5px}.h-s{cursor:ns-resize;margin-left:-4px;bottom:-5px;left:50%}.h-sw{cursor:nesw-resize;bottom:-5px;left:-5px}.h-w{cursor:ew-resize;margin-top:-4px;top:50%;left:-5px}.toolbar{z-index:60;border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff0;align-items:center;gap:6px;padding:6px 8px;display:flex;position:fixed;bottom:16px;right:16px}.tb-btn{letter-spacing:.03em;border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:#fff;padding:5px 9px;font-size:12px}.tb-btn:hover{border-color:#bdbdbd}.tb-btn.primary{color:#fff;background:#1a1a1a;border-color:#1a1a1a}.tb-btn.danger:hover{color:#c0392b;border-color:#c0392b}.inspector{border-left:1px solid var(--line);z-index:55;background:#fcfcfc;width:304px;height:100vh;padding:18px 18px 90px;font-family:ui-sans-serif,system-ui,PingFang SC,sans-serif;font-size:12px;position:fixed;top:0;right:0;overflow-y:auto}.insp-title{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);margin:18px 0 8px;padding-bottom:5px;font-size:11px}.insp-title:first-child{margin-top:0}.field{margin-bottom:9px}.field>label{color:#666;margin-bottom:3px;font-size:11px;display:block}.row{gap:6px;display:flex}.row>*{flex:1;min-width:0}input[type=text],input[type=number],select,textarea{border:1px solid var(--line);background:#fff;border-radius:2px;width:100%;padding:5px 6px;font-family:inherit;font-size:12px}textarea{resize:vertical;min-height:78px;line-height:1.5}input[type=color]{border:1px solid var(--line);background:#fff;width:100%;height:26px;padding:0}input[type=range]{width:100%}.seg{border:1px solid var(--line);border-radius:2px;display:flex;overflow:hidden}.seg button{border:0;border-right:1px solid var(--line);cursor:pointer;background:#fff;flex:1;padding:5px 0;font-size:11px}.seg button:last-child{border-right:0}.seg button.on{color:#fff;background:#1a1a1a}.hint{color:var(--muted);font-size:11px;line-height:1.6}.mobile-bar{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);background:#fffffff5;justify-content:space-between;align-items:center;padding:14px 18px;display:none;position:sticky;top:0}.mobile-bar .m-brand{font-family:var(--font-heading);letter-spacing:.02em;font-size:20px;font-weight:700}.burger{cursor:pointer;background:0 0;border:0;width:26px;height:18px;padding:0;position:relative}.burger span{background:var(--text);height:1px;position:absolute;left:0;right:0}.burger span:first-child{top:2px}.burger span:nth-child(2){top:8px}.burger span:nth-child(3){top:14px}.flow{padding:26px 20px 70px}.flow-item{margin-bottom:26px}.flow-item .text-body{height:auto;overflow:visible}@media (width<=820px){.app{display:block}.mobile-bar{display:flex}.sidebar{background:var(--bg);z-index:50;justify-content:flex-start;width:100%;height:100vh;margin-left:0;padding:26px 26px 60px;display:none;position:fixed;inset:0}.sidebar.open{display:flex}.stage{min-height:0;padding:0;display:block}.canvas-wrap{margin:0}.app.editing .stage{padding-right:0}.toolbar,.inspector{display:none}}
