:root{--bg-page:#faf7f0;--surface:#fffdf8;--ink-1:#2a2620;--ink-2:#6b6253;--ink-3:#9a9080;--line-1:#ebe4d6;--line-2:#f3eee2;--line-3:#e3d6bf;--code-bg:#f3ede0;--link:#a8551d;--accent:#a8551d;--accent-ink:#8a4416;--accent-line:#e7d6bd;--logo-bg:linear-gradient(135deg,#b45309,#d97706);--font-sans:-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Source Han Sans SC",sans-serif;--font-mono:"Sarasa Mono SC","Cascadia Code",Consolas,monospace;--fs-h2:22px;--fs-h3:19px;--fs-lead:18px;--fs-body:16px;--fs-ui:14px;--fs-sm:14px;--lh-head:1.4;--lh-text:1.7;--lh-card:1.65;--lh-ui:1.55;--w-reg:400;--w-semi:600;--w-bold:700;--wm-bg: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%22220%22%3E%3Ctext%20x%3D%22150%22%20y%3D%22120%22%20text-anchor%3D%22middle%22%20transform%3D%22rotate%28-22%20150%20120%29%22%20font-size%3D%2217%22%20font-family%3D%22Arial%2C%20%26apos%3BPingFang%20SC%26apos%3B%2C%20%26apos%3BMicrosoft%20YaHei%26apos%3B%2C%20sans-serif%22%20fill%3D%22%23a8551d%22%20fill-opacity%3D%220.10%22%3E%E6%98%8E%E6%B5%81%20%C2%B7%20yoyflow%3C%2Ftext%3E%3C%2Fsvg%3E)}a{color:inherit;text-decoration:none}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background:var(--bg-page);color:var(--ink-1);overflow:hidden}.app{display:flex;height:calc(100vh - 60px);overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--line-1);display:flex;flex-direction:column;height:100%;overflow:hidden;flex-shrink:0}.zone{display:flex;align-items:center;gap:6px;padding:8px 16px;border-bottom:1px solid var(--line-1);flex-shrink:0}.zone-1{background:var(--line-2)}.zone-2{background:var(--surface);flex-wrap:wrap}.zone-3{background:var(--line-2);border-top:1px solid var(--line-1);border-bottom:none;justify-content:center}.zone-label{font-size:12px;font-weight:600;color:var(--ink-1);white-space:nowrap}.zone-btn{padding:5px 12px;font-size:12px;border:1px solid var(--line-1);border-radius:0;background:var(--surface);color:var(--ink-2);cursor:pointer;transition:all .15s;white-space:nowrap}.zone-btn:hover{background:var(--line-2);border-color:var(--ink-3)}.zone-btn.danger{color:#f56c6c;border-color:#fbc4c4}.zone-btn.danger:hover{background:#fef0f0;border-color:#f56c6c}.zone-btn.primary{color:#fff;background:var(--accent);border-color:var(--accent)}.zone-btn.primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{background:var(--surface);border-radius:0;padding:24px 28px;max-width:420px;box-shadow:none}.modal-title{font-size:16px;font-weight:600;color:var(--ink-1);margin-bottom:12px}.modal-text{font-size:13px;line-height:1.7;color:var(--ink-2);margin-bottom:20px}.modal-text strong{color:#f56c6c}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);margin-bottom:18px;cursor:pointer;-webkit-user-select:none;user-select:none}.modal-check input{width:15px;height:15px;cursor:pointer}.tb-select{padding:5px 8px;font-size:12px;border:1px solid var(--line-1);border-radius:0;background:var(--surface);color:var(--ink-1);cursor:pointer;transition:border-color .15s}.tb-select:hover{border-color:var(--ink-3)}.tb-select:focus{outline:none;border-color:var(--accent)}.tb-select-sm{padding:4px 6px;font-size:11px;border:1px solid var(--line-1);border-radius:0;background:var(--surface);color:var(--ink-2);cursor:pointer}.tb-select-sm:focus{outline:none;border-color:var(--accent)}.save-status{display:flex;align-items:center;gap:12px;padding:3px 16px;font-size:11px;color:var(--ink-3);background:var(--surface);border-bottom:1px solid var(--line-1);flex-shrink:0;height:22px;white-space:nowrap;overflow:hidden}.save-status .ss-status{color:#67c23a;min-width:86px}.save-status .ss-copy{color:var(--accent)}.save-status .ss-undo{color:var(--ink-3);margin-left:auto}.draft-box{border-bottom:1px solid var(--line-1);background:var(--surface);flex-shrink:0}.draft-head{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;font-size:12px;font-weight:600;color:var(--ink-1);cursor:pointer;-webkit-user-select:none;user-select:none}.draft-head:hover{background:var(--line-2)}.draft-list{max-height:200px;overflow-y:auto;padding:0 12px 8px}.draft-empty{font-size:11px;color:var(--ink-3);line-height:1.5;padding:4px 4px 6px}.draft-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 6px;border-top:1px dashed var(--line-2)}.draft-item:first-child{border-top:none}.draft-meta{display:flex;flex-direction:column;min-width:0}.draft-name{font-size:12px;color:var(--ink-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.draft-time{font-size:10px;color:var(--ink-3)}.draft-acts{display:flex;gap:4px;flex-shrink:0}.draft-btn{padding:3px 8px;font-size:11px;border:1px solid var(--line-1);border-radius:0;background:var(--surface);color:var(--accent);cursor:pointer}.draft-btn:hover{background:var(--line-2)}.draft-btn.del{color:#f56c6c;border-color:#fbc4c4}.draft-btn.del:hover{background:#fef0f0}.form-scroll{flex:1;overflow-y:auto;overflow-x:hidden}.spec-gate{padding:12px 16px;border-bottom:1px solid var(--line-1);background:var(--surface)}.spec-gate-label{font-size:13px;font-weight:600;color:var(--ink-1);margin-bottom:8px}.spec-required{color:#f56c6c}.spec-buttons{display:flex;gap:0}.spec-btn{flex:1;padding:8px 4px;font-size:12px;font-weight:500;border:1px solid var(--line-1);border-right:none;background:var(--surface);color:var(--ink-2);cursor:pointer;transition:all .15s;text-align:center}.spec-btn:last-child{border-right:1px solid var(--line-1);border-radius:0}.spec-btn:first-child{border-radius:0}.spec-btn:hover{background:var(--line-2);color:var(--accent)}.spec-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.spec-btn.active:hover{background:var(--accent-ink)}.spec-orientation{font-size:11px;color:var(--ink-3);margin-top:6px}.spec-gate-hint{font-size:11px;color:#e6a23c;margin-top:6px;font-weight:500}.form-disabled{opacity:.4;pointer-events:none}.section{border-bottom:1px solid var(--line-1)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;background:var(--line-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:600;color:var(--ink-1);transition:background .15s}.section-header:hover{background:var(--line-2)}.arrow-toggle{font-size:12px;color:var(--ink-3);-webkit-user-select:none;user-select:none}.section-body{padding:10px 20px}.form-row{display:flex;gap:10px;margin-bottom:8px;align-items:center}.form-row:last-child{margin-bottom:0}.form-field{flex:1;display:flex;flex-direction:column;gap:2px}.form-field label{font-size:11px;color:var(--ink-3);font-weight:400}.form-field input,.form-field select{padding:5px 8px;font-size:13px;border:1px solid var(--line-1);border-radius:0;color:var(--ink-1);background:var(--surface);transition:border-color .15s;width:100%}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--accent)}.form-field input::placeholder{color:var(--ink-3);font-size:12px}.tag-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px}.tag-item{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;background:var(--line-2);border:1px solid var(--accent-line);border-radius:0;font-size:12px;color:var(--accent)}.tag-item .tag-remove{cursor:pointer;font-size:14px;color:var(--ink-3);line-height:1}.tag-item .tag-remove:hover{color:#f56c6c}.tag-item .tag-arrow{font-size:9px;color:var(--accent-line);cursor:pointer;line-height:1;-webkit-user-select:none;user-select:none}.tag-item .tag-arrow:hover{color:var(--accent)}.tag-item .tag-label{padding:0 2px}.tag-add{display:flex;gap:4px}.tag-add input{flex:1;min-width:80px;padding:4px 8px;font-size:12px;border:1px solid var(--line-1);border-radius:0}.tag-add input:focus{outline:none;border-color:var(--accent)}.tag-add button{padding:4px 10px;font-size:12px;border:1px solid var(--line-1);border-radius:0;background:var(--surface);color:var(--ink-2);cursor:pointer;white-space:nowrap}.tag-add button:hover{background:var(--line-2);border-color:var(--ink-3)}.checkbox-row{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;color:var(--ink-2);cursor:pointer}.checkbox-row input{cursor:pointer}.body-label{padding:8px 20px 4px;font-size:13px;font-weight:600;color:var(--ink-1);background:var(--surface);border-bottom:1px solid var(--line-1)}.body-editor{padding:8px 16px 12px;background:var(--surface);border-bottom:1px solid var(--line-1)}.body-empty{text-align:center;padding:20px;color:var(--ink-3);font-size:13px}.body-card{background:var(--surface);border:1px solid var(--line-1);border-left:3px solid var(--accent);border-radius:0;margin-bottom:6px;overflow:visible;transition:box-shadow .15s}.body-card:hover{box-shadow:none}.body-card-header{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 2px}.body-card-badge{display:inline-block;padding:1px 8px;border-radius:0;font-size:11px;font-weight:600}.body-card-actions{display:flex;gap:2px}.card-btn{width:22px;height:22px;border:1px solid var(--line-1);border-radius:0;background:var(--surface);color:var(--ink-2);cursor:pointer;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s}.card-btn:hover:not(:disabled){background:var(--line-2);border-color:var(--ink-3)}.card-btn:disabled{opacity:.4;cursor:not-allowed}.card-btn.del:hover:not(:disabled){background:#fef0f0;border-color:#f56c6c;color:#f56c6c}.card-btn.reset-node{width:auto;padding:0 7px;font-size:11px;color:var(--accent);border-color:var(--accent-line);background:var(--line-2)}.card-btn.reset-node:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.card-act{display:inline-flex;align-items:center;justify-content:center;padding:3px 9px;font-size:12px;line-height:1.4;border:1px solid var(--line-1);border-radius:0;background:var(--surface);color:var(--ink-2);cursor:pointer;white-space:nowrap;transition:all .15s}.card-act:hover{background:var(--line-2);border-color:var(--accent);color:var(--accent)}.card-act.doc{border-color:#f0e0b0;color:#bf9000;background:var(--surface)}.card-act.doc:hover{background:#fff7e6;border-color:#e0c878;color:#a87b00}.card-act.mini{padding:2px 7px;font-size:11px;color:#67c23a;border-color:#c2e7b0;background:#f0f9eb}.card-act.mini:hover{background:#67c23a;border-color:#67c23a;color:#fff}.card-locked{font-size:10px;color:var(--ink-3);padding:2px 6px;background:var(--line-2);border-radius:0}.body-card-row{display:flex;align-items:center;gap:6px;padding:5px 8px}.card-row-spacer{flex:1}.card-add-wrap{position:relative;display:flex}.card-btn-insert{height:22px;padding:0 8px;border:1px solid var(--accent-line);border-radius:0;background:var(--line-2);color:var(--accent);cursor:pointer;font-size:11px;line-height:1;white-space:nowrap;transition:all .15s}.card-btn-insert:hover{background:var(--accent);border-color:var(--accent);color:#fff}.card-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.card-add-menu{position:absolute;top:24px;right:0;z-index:41;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:4px;background:var(--surface);border:1px solid var(--line-1);border-radius:0;box-shadow:none}.card-add-menu-title{grid-column:1 / -1;font-size:10px;color:var(--ink-3);padding:2px 4px 4px;border-bottom:1px solid var(--line-1);margin-bottom:2px;white-space:nowrap}.card-add-menu-item{padding:4px 10px;font-size:12px;border:1px solid var(--line-2);border-radius:0;background:var(--surface);cursor:pointer;white-space:nowrap;transition:background .12s}.card-add-menu-item:hover{background:var(--line-2);border-color:var(--accent-line)}.body-card-body{display:flex;gap:4px;padding:2px 8px 6px;align-items:center;flex-wrap:wrap}.decision-group{border:1px dashed #e6a23c;border-radius:0;background:#fffdf8;margin:4px 0 10px}.decision-group-bar{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px dashed #f0d9b5}.decision-group-label{font-size:10px;font-weight:600;color:#e6a23c;letter-spacing:1px}.decision-group-btns{display:flex;gap:4px}.decision-group-btns button{font-size:10px;padding:1px 7px;border:1px solid #f0d9b5;background:var(--surface);color:#e6a23c;border-radius:0;cursor:pointer;line-height:1.5;white-space:nowrap}.decision-group-btns button:hover{background:#e6a23c;color:#fff;border-color:#e6a23c}.decision-group-body{padding:6px 8px 8px}.decision-group-body>.body-card{margin-bottom:4px}.decision-group-body>.body-card:not(:first-child){border-left-color:#f0d9b5}.decision-group-body>.body-card:last-child{margin-bottom:0}.card-input{flex:1;min-width:80px;padding:4px 8px;font-size:12px;border:1px solid var(--line-1);border-radius:0;color:var(--ink-1)}.card-input:focus{outline:none;border-color:var(--accent)}.card-input::placeholder{color:var(--ink-3)}.card-input-sm{width:90px;padding:4px 8px;font-size:11px;border:1px solid var(--line-1);border-radius:0;color:var(--ink-2)}.card-input-sm:focus{outline:none;border-color:var(--accent)}.card-input-sm::placeholder{color:var(--ink-3)}.card-select-sm{padding:4px 6px;font-size:11px;border:1px solid var(--line-1);border-radius:0;color:var(--ink-2);background:var(--surface);cursor:pointer}.card-select-sm:focus{outline:none;border-color:var(--accent)}.card-select{flex:1;min-width:100px;max-width:220px;padding:4px 6px;font-size:12px;border:1px solid var(--line-1);border-radius:0;color:var(--ink-1);background:var(--surface);cursor:pointer}.card-select:focus{outline:none;border-color:var(--accent)}.card-prefix{font-size:11px;color:var(--ink-3);white-space:nowrap}.card-input.input-dup{border-color:#d93026;background:#fff5f5}.card-input.input-dup:focus{border-color:#d93026}.dup-hint{font-size:11px;color:#d93026;line-height:1.5;padding:2px 2px 0}.card-docs{border-top:1px dashed #e7e2d4;padding:6px 8px 8px;background:#fcfbf4}.card-docs-title{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#bf9000;font-weight:600;margin-bottom:4px}.card-docs-close{border:none;background:transparent;color:#bf9000;border-radius:0;width:20px;height:20px;cursor:pointer;font-size:15px;line-height:1;padding:0;flex:0 0 auto}.card-docs-close:hover{background:#f3e6e6;color:#c0392b}.card-doc-input{width:100%;box-sizing:border-box;border:1px solid #e6e0cf;border-radius:0;padding:4px 6px;font-size:12px;color:var(--ink-1);font-family:inherit;line-height:1.5;resize:vertical}.card-doc-input:focus{outline:none;border-color:#bf9000}.card-docs-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.card-doc-chip{display:inline-flex;align-items:center;gap:4px;background:#fff7e6;border:1px solid #f0e0b0;border-radius:0;padding:1px 4px 1px 8px;font-size:11px;color:#7a5b00;max-width:100%}.card-doc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.card-doc-del{border:none;background:#f3e6e6;color:#c0392b;border-radius:0;width:18px;height:18px;cursor:pointer;font-size:12px;line-height:1;padding:0;flex:0 0 auto}.card-doc-del:hover{background:#eccaca}.card-docs-empty{padding:4px 8px 6px}.body-card.doc-orphan{border-left-color:#bf9000}.body-add-bar{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.quick-btn{padding:4px 10px;font-size:12px;border:1px solid var(--line-1);border-radius:0;background:var(--surface);color:var(--ink-2);cursor:pointer;transition:all .15s;white-space:nowrap}.quick-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--line-2)}.add-divider{font-size:11px;color:var(--ink-3);margin:0 2px}.add-btn{padding:4px 10px;font-size:12px;border:1px solid var(--ink-3);border-radius:0;background:var(--surface);color:var(--ink-1);cursor:pointer;transition:all .15s}.add-btn:hover{background:var(--line-2)}.undo-btn{margin-left:auto;padding:4px 12px;font-size:12px;border:1px solid #e6a23c;border-radius:0;background:#fdf6ec;color:#e6a23c;cursor:pointer;transition:all .15s;white-space:nowrap}.undo-btn:hover:not(:disabled){background:#e6a23c;color:#fff}.undo-btn:disabled{opacity:.4;cursor:not-allowed}.reset-btn{padding:4px 12px;font-size:12px;border:1px solid var(--ink-3);border-radius:0;background:var(--line-2);color:var(--ink-3);cursor:pointer;transition:all .15s;white-space:nowrap}.reset-btn:hover:not(:disabled){background:var(--ink-3);color:#fff}.reset-btn:disabled{opacity:.4;cursor:not-allowed}.reset-btn.active{border-color:var(--accent);background:var(--line-2);color:var(--accent);font-weight:600}.reset-btn.active:hover:not(:disabled){background:var(--accent);color:#fff}.manual-hint{margin-top:6px;font-size:11px;color:#e6a23c;background:#fdf6ec;border:1px solid #faecd8;border-radius:0;padding:4px 8px;line-height:1.5}.manual-toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--line-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:600;color:var(--ink-1);transition:background .15s}.manual-toggle:hover{background:var(--line-2)}.manual-body{max-height:0;overflow:hidden;transition:max-height .3s ease;background:var(--line-2)}.manual-body.open{max-height:600px;overflow-y:auto}.manual-content{padding:4px 20px 16px}.manual-content h3{font-size:13px;font-weight:600;color:var(--ink-1);margin-top:12px;margin-bottom:4px;padding-bottom:3px;border-bottom:1px solid var(--line-1)}.manual-content h3:first-child{margin-top:4px}.manual-content p{font-size:12px;color:var(--ink-2);line-height:1.8;margin-bottom:2px}.manual-content ul{list-style:none}.manual-content li{font-size:12px;color:var(--ink-2);line-height:2}.manual-content code{background:var(--line-1);padding:1px 5px;border-radius:0;font-size:11px;color:var(--ink-1);font-family:Cascadia Code,monospace}.manual-content .tip{background:var(--line-2);border-left:3px solid var(--accent);padding:6px 10px;margin:6px 0;font-size:12px;color:var(--ink-1);line-height:1.7;border-radius:0}.canvas{flex:1 1 0;min-width:0;overflow:auto;padding:20px;background:var(--bg-page);display:flex;flex-direction:column;align-items:center;position:relative}.watermark-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background-image:var(--wm-bg);background-size:300px 220px;background-repeat:repeat}.canvas-inner{background:var(--surface);border-radius:0;box-shadow:none;padding:0;width:fit-content;max-width:100%;min-width:0}.canvas-inner .paper-svg-wrap{width:100%}.canvas svg{display:block}.canvas-spec-overlay{position:relative;z-index:2;align-self:flex-start;flex:0 0 auto;margin-bottom:12px;max-width:400px;overflow:auto;background:var(--surface);border:1px solid var(--line-1);border-radius:0;box-shadow:none}.canvas-spec-overlay .spec-items{max-height:none}.flow-node.draggable{cursor:grab}.flow-node.draggable:active{cursor:grabbing}.flow-node[data-invalid=true]>rect,.flow-node[data-invalid=true]>polygon{stroke:#f56c6c!important;stroke-width:3!important}.flow-node[data-warning=true]>rect,.flow-node[data-warning=true]>polygon{stroke:#e6a23c!important;stroke-width:3!important}.empty-hint{display:flex;align-items:center;justify-content:center;height:400px;color:var(--ink-3);font-size:14px}.right-panel{flex:0 0 460px;min-width:320px;background:var(--surface);border-left:1px solid var(--line-1);display:flex;flex-direction:column;overflow:hidden}.rp-tabs{display:flex;flex-shrink:0;border-bottom:1px solid var(--line-1);background:var(--line-2)}.rp-tab{flex:1;padding:10px 8px;font-size:12px;color:var(--ink-2);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;position:relative}.rp-tab:hover{color:var(--ink-1);background:var(--line-2)}.rp-tab.active{color:var(--accent);font-weight:600;background:var(--surface);border-bottom-color:var(--accent)}.rp-tab-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#67c23a;margin-left:5px;vertical-align:middle}.analysis-block{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px 16px;overflow:hidden}.ab-desc{display:block;font-size:11px;color:var(--ink-3);font-weight:400;margin:2px 0 8px;line-height:1.5;flex-shrink:0}.ab-note{font-size:10px;color:var(--ink-3);background:var(--line-2);border:1px dashed var(--line-3);border-radius:0;padding:4px 6px;margin:0 0 8px;line-height:1.5;flex-shrink:0}.ab-label{display:block;font-size:11px;color:var(--ink-3);margin-bottom:4px;flex-shrink:0}.ab-input{width:100%;height:400px;min-height:80px;max-height:70vh;resize:vertical;padding:8px 10px;font-size:12px;line-height:1.6;border:1px solid var(--line-1);border-radius:0;font-family:inherit;color:var(--ink-1);box-sizing:border-box;flex-shrink:0}.ab-input:focus{outline:none;border-color:var(--accent)}.ab-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;flex-shrink:0}.ab-dl-label{font-size:11px;color:var(--ink-3);margin-left:4px}.ab-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:0;margin-left:8px;vertical-align:middle}.ab-badge.ai{background:var(--line-2);color:var(--accent);border:1px solid var(--accent-line)}.ab-badge.local{background:var(--line-2);color:var(--ink-3);border:1px solid var(--line-1)}.ab-btn.sm{padding:4px 10px;font-size:11px}.ab-btn{padding:5px 16px;font-size:12px;border:1px solid var(--line-1);border-radius:0;background:var(--surface);color:var(--ink-2);cursor:pointer;transition:all .15s}.ab-btn:hover:not(:disabled){background:var(--line-2);border-color:var(--ink-3)}.ab-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.ab-btn.primary:hover:not(:disabled){background:var(--accent-ink)}.ab-btn:disabled{opacity:.5;cursor:not-allowed}.ab-preview{background-color:var(--surface);background-image:var(--wm-bg);background-size:300px 220px;background-repeat:repeat;border:1px solid var(--line-1);border-radius:0;padding:10px 12px;flex:1;min-height:0;overflow:auto;font-size:12px;color:var(--ink-1)}.ab-preview.empty{color:var(--ink-3);text-align:center;padding:18px 12px}.ab-form{border:1px solid var(--line-1);border-radius:0;margin-bottom:8px;flex-shrink:0;overflow:hidden}.ab-form-head{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--line-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:600;color:var(--ink-1)}.ab-form-head:hover{background:var(--line-2)}.ab-form-body{padding:8px 10px;display:flex;flex-direction:column;gap:6px;background:var(--surface);max-height:220px;overflow-y:auto}.ab-field{display:flex;flex-direction:column;gap:2px}.ab-field label{font-size:11px;color:var(--ink-2);font-weight:500}.ab-field-input{width:100%;padding:5px 8px;font-size:12px;line-height:1.5;border:1px solid var(--line-1);border-radius:0;color:var(--ink-1);font-family:inherit;resize:vertical;box-sizing:border-box}.ab-field-input:focus{outline:none;border-color:var(--accent)}.ab-form-hint{font-size:10px;color:var(--ink-3);background:var(--line-2);border:1px dashed var(--line-3);padding:4px 6px;margin-bottom:8px;line-height:1.5}.ab-required-mark{display:inline-block;font-size:9px;font-weight:600;color:#fff;background:var(--accent);border-radius:0;padding:0 4px;margin-left:6px;vertical-align:middle}.ab-sop-target{display:flex;align-items:center;gap:6px;margin-bottom:8px;padding:4px 6px;background:var(--line-2);border:1px dashed var(--line-3)}.ab-sop-target-label{font-size:11px;color:var(--ink-3);white-space:nowrap}.ab-sop-target-select{flex:1;min-width:0;padding:4px 6px;font-size:12px;border:1px solid var(--line-1);background:#fff;color:var(--ink-1)}.ab-preview.editable{cursor:text;outline:none}.ab-preview.editable:focus{border-color:var(--accent);box-shadow:none}.ab-preview.dirty{border-color:#e6a23c;box-shadow:none}.ab-preview.no-wm{background-image:none}.todo-fill{background:#fff6cc;color:#8a6d00;border-radius:0;padding:0 2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.ab-badge.dirty{background:#fdf6ec;color:#e6a23c;border:1px solid #f5d99e}.md-h1{font-size:15px;font-weight:700;margin:2px 0 6px;border-bottom:1px solid var(--line-1);padding-bottom:3px}.md-h2{font-size:13px;font-weight:700;margin:10px 0 4px;color:var(--accent)}.md-h3{font-size:12px;font-weight:700;margin:8px 0 3px}.md-p{line-height:1.7;margin:3px 0}.md-ul{margin:3px 0 3px 18px;list-style:disc}.md-ul li{line-height:1.7}.md-table{border-collapse:collapse;width:100%;margin:6px 0;font-size:11px}.md-table th,.md-table td{border:1px solid var(--line-1);padding:3px 6px;text-align:left;vertical-align:top}.md-table th{background:var(--line-2);font-weight:600}hr{border:none;border-top:1px solid var(--line-1);margin:8px 0}.spec-panel{padding:0;font-size:13px}.spec-summary{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;border-bottom:1px solid var(--line-1)}.spec-summary.pass{background:#f0f9ff;color:#67c23a;border-color:#b3e19d}.spec-summary.fail{background:#fef0f0;color:#f56c6c;border-color:#fbc4c4}.spec-badge{display:inline-block;padding:1px 8px;border-radius:0;font-size:11px;font-weight:600}.spec-badge.err{background:#fef0f0;color:#f56c6c}.spec-badge.warn{background:#fdf6ec;color:#e6a23c}.spec-badge.info{background:var(--line-2);color:var(--ink-3)}.spec-badge.ok{background:#f0f9ff;color:#67c23a}.spec-items{padding:6px 0;max-height:260px;overflow-y:auto}.spec-item{display:flex;gap:8px;padding:4px 16px;line-height:1.6;align-items:flex-start}.spec-item .icon{flex-shrink:0;width:18px;text-align:center;font-size:14px}.spec-item.err .icon{color:#f56c6c}.spec-item.warn .icon{color:#e6a23c}.spec-item.info .icon{color:var(--ink-3)}.spec-item .msg{color:var(--ink-1)}.spec-item .rule{color:var(--ink-3);font-size:11px}.login-gate-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#2a262073;display:flex;align-items:center;justify-content:center}.login-gate{position:relative;width:360px;max-width:calc(100vw - 40px);background:var(--surface);border:1px solid var(--line-1);border-radius:0;padding:28px 28px 24px;text-align:center}.login-gate-close{position:absolute;top:10px;right:12px;font-size:20px;line-height:1;color:var(--ink-3);background:none;border:0;border-radius:0;cursor:pointer;padding:4px 6px}.login-gate-close:hover{color:var(--ink-1)}.login-gate-title{font-size:19px;font-weight:700;color:var(--ink-1);margin-bottom:10px}.login-gate-text{font-size:14px;line-height:1.7;color:var(--ink-2);margin-bottom:20px}.login-gate-btn{display:block;width:100%;font-family:inherit;font-size:15px;font-weight:600;color:#fff;background:var(--accent);border:0;border-radius:0;padding:10px 0;cursor:pointer;text-decoration:none;transition:background .15s}.login-gate-btn:hover{background:var(--accent-ink)}.login-gate-sub{font-size:12px;color:var(--ink-3);margin-top:10px}.sidebar,.sidebar *,.canvas,.canvas *,.right-panel,.right-panel *{scrollbar-width:thin;scrollbar-color:var(--line-3) transparent}.sidebar::-webkit-scrollbar,.sidebar *::-webkit-scrollbar,.canvas::-webkit-scrollbar,.canvas *::-webkit-scrollbar,.right-panel::-webkit-scrollbar,.right-panel *::-webkit-scrollbar{width:2px;height:2px}.sidebar::-webkit-scrollbar-track,.sidebar *::-webkit-scrollbar-track,.canvas::-webkit-scrollbar-track,.canvas *::-webkit-scrollbar-track,.right-panel::-webkit-scrollbar-track,.right-panel *::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb,.sidebar *::-webkit-scrollbar-thumb,.canvas::-webkit-scrollbar-thumb,.canvas *::-webkit-scrollbar-thumb,.right-panel::-webkit-scrollbar-thumb,.right-panel *::-webkit-scrollbar-thumb{background:var(--line-3);border-radius:0}.sidebar::-webkit-scrollbar-thumb:hover,.sidebar *::-webkit-scrollbar-thumb:hover,.canvas::-webkit-scrollbar-thumb:hover,.canvas *::-webkit-scrollbar-thumb:hover,.right-panel::-webkit-scrollbar-thumb:hover,.right-panel *::-webkit-scrollbar-thumb:hover{background:var(--accent-line)}
