.copy-lab{--cb-ink:var(--ink,#213b35);--cb-muted:#53675d;--cb-line:var(--line,#dce1d5);--cb-teal:var(--teal,#247862);font-size:16px;line-height:1.6;color:var(--cb-ink)}
.copy-lab *{box-sizing:border-box}.copy-lab [hidden]{display:none!important}.copy-lab button,.copy-lab input{font:inherit;color:inherit}.copy-lab button{cursor:pointer;touch-action:manipulation}.copy-lab button:disabled{opacity:.48;cursor:not-allowed}.copy-lab button:focus-visible,.copy-lab input:focus-visible,.copy-lab [tabindex]:focus-visible,.copy-lab summary:focus-visible{outline:3px solid #48896c;outline-offset:3px}.copy-lab ::selection{background:#c6e3bf;color:#173e2d}.copy-lab code{font:15px/1.65 var(--mono,Consolas,monospace);overflow-wrap:anywhere}.copy-lab p{margin:0}.copy-lab svg{display:block;flex:none}.copy-lab .cb-intro{max-width:74ch;color:var(--cb-muted);margin-bottom:20px}.copy-lab .cb-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:18px}.copy-lab .cb-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border:1px solid var(--cb-line);border-radius:7px;background:#fffef9;padding:9px 15px;font-size:16px;font-weight:600;line-height:1.5}.copy-lab .cb-button:hover:not(:disabled){background:#edf3e7}.copy-lab .cb-button.cb-primary{background:var(--cb-teal);border-color:var(--cb-teal);color:#fff}.copy-lab .cb-button.cb-primary:hover:not(:disabled){background:#1e604c}.copy-lab .cb-secondary{font-size:14px!important;background:transparent!important}.copy-lab .cb-toolbar-note{font-size:14px;color:var(--cb-muted)}
.copy-lab .cb-form{border:1px solid #b9cdb0;background:#f0f6e9;border-radius:12px;padding:20px;margin-bottom:20px}.copy-lab .cb-form h3{font-size:21px;margin:0 0 8px;font-weight:650}.copy-lab .cb-form-hint{font-size:15px;color:#49613e;max-width:72ch;margin-bottom:15px}.copy-lab .cb-label{display:block;font-size:14px;font-weight:650;margin-bottom:8px}.copy-lab .cb-initializer{display:block;width:100%;min-height:50px;border:1px solid #b7c8ad;background:#fffef9;border-radius:6px;padding:12px 14px;font:16px/1.75 var(--mono,Consolas,monospace);caret-color:var(--cb-teal)}.copy-lab .cb-form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:13px}.copy-lab .cb-form-error{font-size:15px;color:#913f25;margin-top:10px;white-space:pre-wrap}.copy-lab .cb-form-example{font-size:13px;color:var(--cb-muted);margin-top:10px}.copy-lab .cb-operation{background:#eef3e5;border:1px solid #d2dfc6;border-radius:10px;padding:16px 19px;margin-bottom:20px}.copy-lab .cb-operation-code{display:block;font-size:16px;font-weight:600;color:#24543c;margin-bottom:5px;white-space:pre-wrap}.copy-lab .cb-operation-text{font-size:16px;line-height:1.65;max-width:76ch}.copy-lab .cb-operation.cb-error{background:#fff0e6;border-color:#e3b79e;color:#843b23}.copy-lab .cb-operation.cb-error .cb-operation-code{color:#843b23}
.copy-lab .cb-board{display:block;min-width:0;min-height:220px;margin-bottom:20px}.copy-lab .cb-shared-figure{margin:0;min-width:0;border:1px solid var(--cb-line);border-radius:12px;background:var(--surface,#fffef9);overflow:hidden}
.copy-lab .cb-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;min-height:250px;padding:28px;border:1px dashed #9bb991;border-radius:12px;background:#f5f8ef;text-align:center}.copy-lab .cb-empty h3{font-size:22px;font-weight:600;margin:0}.copy-lab .cb-empty p{font-size:16px;color:var(--cb-muted);max-width:48ch}
.copy-lab .cb-card{min-width:0;margin:0;border:1px solid var(--cb-line);border-radius:12px;background:var(--surface,#fffef9);overflow:hidden}.copy-lab .cb-origin{padding:15px 20px;border-bottom:1px solid var(--cb-line);background:#f0f4e9}.copy-lab .cb-origin code{display:block;font-size:15px;line-height:1.7;white-space:pre-wrap}
.copy-lab .cb-diagram-scroll{width:100%;max-height:max(300px,min(70vh,760px));overflow:auto;overscroll-behavior-x:contain;scrollbar-color:#8da384 #edf2e5;scrollbar-width:thin}.copy-lab .cb-diagram-stage{position:relative;margin-inline:auto;overflow:hidden}.copy-lab .cb-diagram{position:absolute;top:0;left:0;transform-origin:top left;isolation:isolate}.copy-lab .cb-connectors{position:absolute;inset:0;pointer-events:none;overflow:visible}.copy-lab .cb-connectors path{fill:none;stroke:#739581;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.copy-lab .cb-edge-label{font:15px var(--mono,Consolas,monospace);fill:#3f5b48;paint-order:stroke;stroke:#fffef9;stroke-width:7px;stroke-linejoin:round}.copy-lab .cb-edge-selected path{stroke:#246849;stroke-width:2.5}.copy-lab .cb-edge-selected .cb-edge-label{fill:#164d34;font-weight:650}.copy-lab .cb-feedback-edge{stroke-dasharray:5 4}
.copy-lab .cb-node{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:0;padding:6px 10px;border:1.5px solid #a7ba9b;border-radius:12px;background:#fffef9;cursor:grab;touch-action:none;user-select:none;scroll-margin:28px;text-align:center}.copy-lab .cb-node[data-object-id]{background:#eef4e6;border-color:#8fa983}.copy-lab .cb-node:hover{border-color:#49795e;background:#f1f7e9}.copy-lab .cb-node.cb-selected{border:2px solid var(--cb-teal);background:#dbebd2}.copy-lab .cb-node-changed:after{content:'';position:absolute;bottom:8px;right:8px;width:6px;height:6px;border-radius:50%;background:#99612f}.copy-lab .cb-path{position:absolute;top:-28px;left:50%;transform:translateX(-50%);padding:0 5px;background:var(--surface,#fffef9);font-size:15px;line-height:22px;color:#465f50;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.copy-lab .cb-root-node .cb-path{font-size:17px;font-weight:650;color:var(--cb-ink)}.copy-lab .cb-node-type{font-size:17px;font-weight:600;line-height:22px}.copy-lab .cb-id{border:0;border-radius:4px;background:transparent;padding:0 6px;min-height:28px;font:500 15px/1.5 var(--mono,Consolas,monospace);color:#325a40}.copy-lab .cb-id:hover,.copy-lab .cb-id[aria-pressed=true]{background:#c8dfba}.copy-lab .cb-shared{font-size:13px;font-weight:600;line-height:19px;color:#795619}.copy-lab .cb-size{font-size:13px;line-height:19px;color:var(--cb-muted)}.copy-lab .cb-node:has(.cb-shared) .cb-size,.copy-lab .cb-alias .cb-size,.copy-lab .cb-alias .cb-shared{display:none}.copy-lab .cb-value{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:21px;line-height:1.5;white-space:nowrap}.copy-lab .cb-menu-trigger{position:absolute;top:1px;right:1px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:6px;background:transparent;color:#4e6b44}.copy-lab .cb-menu-trigger svg{width:16px;height:16px}.copy-lab .cb-menu-trigger:hover,.copy-lab .cb-menu-trigger[aria-expanded=true]{background:#dce9d1}.copy-lab .cb-alias-note,.copy-lab .cb-collapsed{font-size:13px;line-height:18px;color:var(--cb-muted)}.copy-lab .cb-alias{border-style:dashed}.copy-lab .cb-collapsed{border-style:dashed;padding:10px}
.copy-lab .cb-inspection{margin:19px 0 0;font-size:15px;line-height:1.7;color:var(--cb-muted);overflow-wrap:anywhere}.copy-lab .cb-board-note{margin-top:11px;font-size:14px;color:var(--cb-muted);max-width:85ch}.copy-lab .cb-help{margin-top:23px;padding-top:16px;border-top:1px solid var(--cb-line)}.copy-lab .cb-help summary{cursor:pointer;font-size:16px;font-weight:650}.copy-lab .cb-help p{font-size:15px;line-height:1.8;max-width:75ch;color:var(--cb-muted);margin-top:10px}
.copy-lab .cb-context{position:fixed;z-index:1000;width:274px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto;border:1px solid #acc39d;border-radius:10px;background:#fffef7;padding:7px;box-shadow:0 10px 26px #203d2b24}.copy-lab .cb-context-title{padding:9px 10px 10px;border-bottom:1px solid #dce4d4;margin-bottom:5px;color:var(--cb-muted);font:13px/1.6 var(--mono,Consolas,monospace);overflow-wrap:anywhere;white-space:pre-wrap}.copy-lab .cb-context button{display:block;width:100%;min-height:44px;border:0;border-radius:5px;text-align:left;background:transparent;padding:9px 11px;font-size:16px;line-height:1.5}.copy-lab .cb-context button:hover,.copy-lab .cb-context button:focus{background:#eaf2e1;outline-offset:-2px}.copy-lab .cb-context .cb-menu-danger{color:#913f29}.copy-lab .cb-separator{height:1px;background:#dce4d4;margin:6px 5px}.copy-lab .cb-context-note{font-size:13px;color:var(--cb-muted);padding:8px 11px;line-height:1.65}
@media(max-width:560px){.copy-lab .cb-form{padding:16px}.copy-lab .cb-board{gap:18px;grid-template-columns:1fr}.copy-lab .cb-origin{padding:13px 15px}.copy-lab .cb-toolbar{align-items:flex-start}.copy-lab .cb-toolbar-note{flex-basis:100%;font-size:14px}.copy-lab .cb-menu-trigger{width:38px;height:38px;top:0;right:0}.copy-lab .cb-node{padding-top:13px}.copy-lab .cb-operation{padding:15px}.copy-lab .cb-operation-code{font-size:15px}.copy-lab .cb-empty{min-height:230px;padding:24px 17px}}
@media(prefers-reduced-motion:reduce){.copy-lab *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.copy-lab .cb-binding-node{background:#294d3e;border-color:#294d3e;color:#fffef9;padding-right:31px;border-radius:8px}.copy-lab .cb-binding-node:hover{background:#355d49}.copy-lab .cb-binding-node.cb-selected{background:#294d3e;color:#fffef9;border:2px solid #a8753e}.copy-lab .cb-binding-name{max-width:100%;font-size:17px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.copy-lab .cb-binding-node .cb-menu-trigger{color:#fffef9;top:10px}.copy-lab .cb-binding-node .cb-menu-trigger:hover,.copy-lab .cb-binding-node .cb-menu-trigger[aria-expanded=true]{background:#3d6550}.copy-lab .cb-operation-code{margin-bottom:0}.copy-lab .cb-node:not([data-object-id]):not(.cb-binding-node):not(.cb-collapsed){padding-top:14px}
.copy-lab .cb-dragging{cursor:grabbing;z-index:3}.copy-lab .cb-demo-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}.copy-lab .cb-demo-controls .cb-toolbar-note{margin-left:auto}.copy-lab .cb-node-changed{animation:cb-change 700ms ease-out}@keyframes cb-change{from{background:#d8eac9;border-color:#547a3e}to{background:#eef4e6}}.reduced-motion .copy-lab *{animation:none!important;transition:none!important}
.copy-lab .cb-canvas-tools{display:flex;justify-content:flex-end;align-items:center;gap:5px;padding:8px 10px;border-bottom:1px solid var(--cb-line)}.copy-lab .cb-canvas-tools .cb-button{min-height:34px;min-width:36px;padding:3px 9px;font-size:14px}.copy-lab .cb-canvas-tools svg{width:17px;height:17px}
