/* v3 canvas: isolated prototype overrides */
#app{grid-template-columns:256px minmax(0,1fr)}.brand{align-items:baseline;gap:4px;margin-inline:2px;font-size:26px;line-height:1;letter-spacing:-1.3px}.brand-symbol{align-self:center}.brand button{position:relative;font:300 1em/1 'Avenir Next',Avenir,'Helvetica Neue',Arial,sans-serif;letter-spacing:-.045em;border:0;padding:0 2px;margin-left:2px;overflow:visible}.brand button:after{content:'';position:absolute;inset:.07em -.07em .17em;border:.7px solid #8ba3b8;pointer-events:none}.canvas-layout{height:calc(100vh - 228px);min-height:610px;grid-template-columns:minmax(0,1fr) 248px}.board-wrap{background:#f7f9f2;overflow:visible}#board{background:none;isolation:isolate;overflow:hidden;touch-action:none;border-radius:12px 0 0 0}.canvas-lane{position:absolute;overflow:hidden;background-color:#f8faf4;background-image:radial-gradient(#d0d8c9 .8px,transparent .8px);background-size:20px 20px;isolation:isolate}.canvas-lane[data-lane=revenues]{background-color:#f5f8fb;background-image:radial-gradient(#cbd6df .8px,transparent .8px)}.canvas-lane[data-lane=result]{background-color:#f8f6ee;background-image:radial-gradient(#dcd6c7 .8px,transparent .8px)}.canvas-lane>header{height:40px;display:flex;align-items:center;gap:8px;padding:0 14px;background:#f2f6edee;border-bottom:1px solid #dce4d5;position:relative;z-index:2;font-size:10px;white-space:nowrap;overflow:hidden}.canvas-lane[data-lane=revenues]>header{background:#eff4f8ee;border-color:#d8e1e9}.canvas-lane[data-lane=result]>header{background:#f1eddfef;border-color:#e2dcca}.canvas-lane>header strong{font-size:10px;letter-spacing:.1px;font-weight:600;overflow:hidden;text-overflow:ellipsis}.canvas-lane>header>span:last-of-type{margin-left:auto;font-size:11px;font-variant-numeric:tabular-nums}.canvas-lane>header small{color:#9b967f;font-size:8px;margin-left:8px}.lane-dot{height:6px;width:6px;flex:0 0 6px;border-radius:50%;background:#83a777}.canvas-lane[data-lane=revenues] .lane-dot{background:#7b9fbf}.canvas-lane[data-lane=result] .lane-dot{background:#b6a76a}.lane-viewport{position:absolute;inset:40px 0 0;overflow:hidden}.lane-world{position:absolute;left:0;top:0;width:6000px;height:6000px;transform-origin:0 0;will-change:transform}.active-lane>header{box-shadow:inset 0 2px 0 #729e7b}#connections{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none;overflow:visible}.edge-path{stroke:#7f9f80;stroke-width:1.6;fill:none;pointer-events:none}.line-hit{fill:none;stroke:transparent;stroke-width:15;pointer-events:stroke;cursor:pointer}.line-op-bg{fill:#fffffc;stroke:#bbd1b7;stroke-width:1;pointer-events:all;cursor:pointer}.edge-op{fill:#456d4e;font:13px system-ui;pointer-events:none}.edge-selected{stroke:#188458;stroke-width:2.8}.result-tether{fill:none;stroke:#aab5a1;stroke-width:1;stroke-dasharray:3 4;pointer-events:none}.legacy-edge{opacity:.5;stroke-dasharray:3 3}.drawing-edge{stroke:#15784c;stroke-width:2.6;stroke-dasharray:5 3}.chip{min-height:103px;border-radius:11px;cursor:pointer;overflow:visible;touch-action:none}.chip-value{padding-bottom:13px}.chip.result{background:#e6efdb}.chip.automatic{background:#f1eddb;border-color:#cbbf8b}.canvas-lane[data-lane=revenues] .chip{border-color:#bfcfdf}.canvas-lane[data-lane=revenues] .chip.result{background:#e4edf5}.chip.selected{border-color:#237d54;box-shadow:0 0 0 4px #0d8a6420}.chip-port{position:absolute;top:42%;right:-8px;width:16px;height:16px;border-radius:50%;background:#fffdf5;border:2px solid #6d9669;padding:0;cursor:crosshair;z-index:5;touch-action:none}.chip-port:after{content:'+';position:absolute;inset:0;display:grid;place-items:center;font-size:10px;line-height:1;color:#64925d;opacity:0}.chip:hover .chip-port:after,.chip-port:focus-visible:after{opacity:1}.chip-formula{font-size:8px;line-height:1.4;color:#7f9273;padding:0 12px 9px;max-height:31px;overflow:hidden;text-overflow:ellipsis}.chip.compact .chip-top{opacity:.2}.chip.compact .chip-formula{opacity:0;max-height:0;padding-bottom:0}.animate-board .chip,.animate-board .group-frame,.animate-board .lane-world{transition:transform 220ms ease,left 220ms ease,top 220ms ease,width 220ms ease,height 220ms ease,opacity 200ms ease}.resizing *{transition:none!important}.canvas-splitter{position:absolute;z-index:8;background:#e3e7dc;touch-action:none;display:flex;align-items:center;justify-content:center}.canvas-splitter:hover,.canvas-splitter:focus-visible{background:#bfcfba}.canvas-splitter.vertical{top:0;width:10px;cursor:col-resize}.canvas-splitter.horizontal{left:0;width:100%;height:10px;cursor:row-resize}.canvas-splitter span{background:#99ad90;border-radius:3px;pointer-events:none}.canvas-splitter.vertical span{width:3px;height:35px}.canvas-splitter.horizontal span{height:3px;width:40px}.canvas-tools{z-index:10;top:52px;left:8px;padding:4px;gap:2px;overflow:visible}.canvas-tools button{position:relative;display:grid;place-items:center;width:29px;height:30px}.canvas-tools button svg{height:18px;width:18px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.canvas-tools button[data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 13px);top:50%;transform:translateY(-50%) translateX(-4px);max-width:240px;width:max-content;padding:9px 11px;border-radius:7px;background:#213c2d;color:#f5fbf1;box-shadow:0 5px 18px #17371b21;white-space:normal;text-align:left;font:500 10px/1.5 'Avenir Next',system-ui;opacity:0;visibility:hidden;pointer-events:none;z-index:20;transition:opacity 120ms,transform 120ms,visibility 120ms}.canvas-tools button:hover:after,.canvas-tools button:focus-visible:after{opacity:1;visibility:visible;transform:translateY(-50%)}.canvas-tools button:disabled:hover:after{opacity:1;visibility:visible}.canvas-hint{z-index:9;left:14px;bottom:10px;font-size:8px;max-width:calc(100% - 190px);background:#f7f6edc9;padding:3px 5px;border-radius:4px}.zoom-bar{bottom:8px;right:8px;z-index:9;background:#fffdf2}.line-menu{position:absolute;z-index:12;width:266px;max-height:calc(100% - 25px);overflow:auto;padding:15px;border:1px solid #bbd0b4;background:#fffef8;border-radius:11px;box-shadow:0 12px 40px #28451e26;text-align:left}.line-menu-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px}.line-menu-heading button{font-size:20px}.line-menu>p{font-size:11px;line-height:1.9;margin:13px 0}.line-menu>p>span{font-size:8px;letter-spacing:1px;color:#8e9d82;padding-right:7px}.line-operations{display:grid;grid-template-columns:1fr 1fr;gap:6px}.line-operations button{font-size:10px;text-align:left;padding:9px;border:1px solid #d9e2ce;border-radius:6px}.line-operations button.active{background:#e3f0d8;border-color:#94b982;color:#246344}.line-equation{padding:10px;background:#f0f5e8;border-radius:6px;overflow-wrap:anywhere}.line-equation strong{color:#326445}.line-equation small{display:block;color:#a86d45}.line-menu-footer{display:grid;gap:8px}.line-menu-footer button{font-size:10px;text-align:left;color:#658353}.line-menu-footer button:last-child{color:#a06c56}.selection-summary{padding:13px;border:1px solid #d5e3c8;background:#eff5e8;border-radius:9px;margin-bottom:17px}.selection-summary strong{display:block;font-size:13px}.selection-summary p{font-size:10px;color:#7b8e6b;margin:7px 0}.selection-summary button{font-size:10px;color:#326d41}.allocation-row{padding:12px 0;border-bottom:1px solid #e2e7d8}.allocation-row strong{font-size:11px}.allocation-row small{display:block;color:#899578;font-size:9px;line-height:1.5;margin-top:5px}.allocation-row button{font-size:10px;color:#a7755d;margin-top:7px}.finance-warning{font-size:10px;padding:10px;color:#96623f;background:#fff1df;border-radius:6px;line-height:1.5}.result-inspector-buttons{display:grid;gap:8px;margin:15px 0}.result-inspector-buttons button{font-size:10px;white-space:normal}#board[data-tool=move] .chip{cursor:move}#board[data-tool=pan],#board[data-tool=pan] .chip{cursor:grab}#board[data-tool=connect] .chip{cursor:crosshair}.tool-help{font-size:10px;color:#738669;line-height:1.6}.brand-preview-alignment{font-family:'Avenir Next',Avenir,sans-serif}
@media(max-width:1200px){#app{grid-template-columns:228px minmax(0,1fr)}.brand{font-size:24px;gap:3px}.brand button{font-size:1em}.brand-symbol{width:24px;flex-basis:24px;margin-right:3px}.brand-symbol i{width:15px;border-width:3px}.canvas-layout{grid-template-columns:minmax(0,1fr) 220px}.canvas-page{padding-inline:12px}.canvas-lane>header{padding-inline:8px;gap:5px}.canvas-lane>header strong{font-size:9px}.canvas-lane>header small{display:none}}
@media(max-width:950px){.canvas-layout{height:720px;grid-template-columns:minmax(0,1fr) 205px}.canvas-lane>header>span:last-of-type{font-size:9px}.canvas-hint{display:none}.canvas-header .actions{gap:5px}}
@media(max-width:680px){#app{display:block}.brand{font-size:26px}.canvas-layout{height:1050px;grid-template-columns:1fr;grid-template-rows:670px 380px}.canvas-tools button{width:26px}.canvas-tools{left:4px}.brand-symbol{width:28px;flex-basis:28px}.line-menu{width:250px}.canvas-page{padding-inline:8px}.canvas-lane>header strong{font-size:9px}.canvas-splitter.vertical{width:12px}.canvas-splitter.horizontal{height:12px}.canvas-lane[data-lane=result]>header{padding-right:8px}}
@media(prefers-reduced-motion:reduce){.animate-board .chip,.animate-board .group-frame,.animate-board .lane-world,.canvas-tools button:after{transition:none!important}}
