@font-face{font-family:Source Sans Pro;src:url(./assets/SourceSansPro-Regular-so5UI2yf.otf) format("opentype");font-weight:400;font-style:normal}@font-face{font-family:Source Sans Pro;src:url(./assets/SourceSansPro-It-D0ylWGSs.otf) format("opentype");font-weight:400;font-style:italic}.algvis,.algvis *{box-sizing:border-box}.algvis{display:flex;flex-direction:column;height:600px;font-family:Source Sans Pro,sans-serif;font-size:14px}body>#app.algvis{height:100vh}body:has(>#app.algvis){margin:0}.algvis:focus{outline:none}.algvis:focus-visible{outline:2px solid #6395ee;outline-offset:-2px}.algvis:fullscreen{height:100%;background:#fff}.algvis-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.algvis-canvas{flex:1;min-height:0;width:100%;background:#fff;touch-action:none;-webkit-user-select:none;user-select:none;cursor:default;font-family:Source Sans Pro,sans-serif}.algvis-canvas.panning{cursor:grabbing}.algvis-panel{border-top:1px solid #b5b5b5;background:#ececec;padding:4px 8px;position:relative}.algvis-corner{position:absolute;right:6px;bottom:4px;display:flex;align-items:center;gap:4px}.algvis-row{display:flex;align-items:center;justify-content:center;gap:6px;padding:2px 0}.algvis-row label{display:inline-flex;align-items:center;gap:3px;margin:0}.algvis-row input[type=checkbox],.algvis-row input[type=radio]{margin:0;vertical-align:middle}.algvis-status{color:#444;font-style:italic;min-height:1.2em}.algvis-stats{color:#222}.algvis button,.algvis input,.algvis select{font-family:inherit;font-size:inherit}.algvis button{appearance:none;border:1px solid #b5b5b5;border-radius:6px;background:linear-gradient(#fff,#f0f0f0);color:#222;padding:3px 10px;cursor:pointer}.algvis button:hover:not(:disabled){background:linear-gradient(#fff,#e4e4e4)}.algvis button:active:not(:disabled){background:#e4e4e4}.algvis button:focus-visible{outline:2px solid #6395ee;outline-offset:1px}.algvis button:disabled{opacity:.5;cursor:default}.algvis label:has(input:disabled),.algvis label:has(select:disabled){opacity:.5;cursor:default}.algvis button.algvis-icon-button{padding:3px 6px;line-height:0}.algvis-icon-button img{width:14px;height:14px;opacity:.75}.algvis input[type=text],.algvis input[type=number],.algvis select{border:1px solid #b5b5b5;border-radius:6px;padding:3px 8px;background:#fff}.algvis input[type=text]:focus-visible,.algvis input[type=number]:focus-visible,.algvis select:focus-visible{outline:2px solid #6395ee;outline-offset:1px}.algvis .node circle{stroke:#000;stroke-width:1}.algvis .node .mark-ring{stroke:none}.algvis .node .mark-ring.visible{stroke:#000;stroke-width:1}.algvis .node text{text-anchor:middle;dominant-baseline:central;font-size:11px;pointer-events:none}.algvis .node .node-tag{text-anchor:start;font-size:11px;fill:#333}.algvis .node .node-tag.left{text-anchor:end}.algvis .node .node-tag.below{text-anchor:middle}.algvis .node .node-tag.small{font-size:8px}.algvis .node rect{stroke:#000;stroke-width:1}.algvis .node rect.mark-ring{stroke:none}.algvis .node text.halo{stroke:#fff;stroke-width:4px;stroke-linejoin:round;paint-order:stroke}.algvis .node text.hit{pointer-events:all}.algvis .node rect.mark-ring.visible{stroke:#000;stroke-width:1}.algvis .node text.small{font-size:8px}.algvis .node text tspan.split-key{font-weight:700}.algvis .node text tspan.dim-key{font-size:8px}.algvis .row-node rect{stroke:#999;stroke-width:.5}.algvis .row-node rect.row-box{fill:#fff;stroke:#000;stroke-width:1}.algvis .rubber-band{fill:#6395ee26;stroke:#6395ee;stroke-width:1;stroke-dasharray:4 3;pointer-events:none}.algvis .cover-box{stroke-width:1}.algvis .node{cursor:pointer}.algvis .edge{stroke:#000;stroke-width:1}.algvis .edge.dimmed{stroke:#cfcfcf}.algvis .edge.dashed{stroke-dasharray:2 5}.algvis .shade-line{stroke:#b0b0b0;stroke-width:12;stroke-linecap:round;opacity:.5}.algvis .shade-blob{stroke:gray;stroke-width:27;stroke-linecap:round}.algvis .shade-poly{opacity:.35;stroke-width:27;stroke-linejoin:round;stroke-linecap:round}.algvis .brace{fill:none;stroke-width:1.2}.algvis .curve{fill:none;stroke-linecap:round}.algvis .stub-line{stroke:#000;stroke-width:1}.algvis .stub-dot{fill:#000}.algvis .stub-text{font-size:9px;fill:#333;text-anchor:middle;dominant-baseline:central;stroke:#fff;stroke-width:3px;stroke-linejoin:round;paint-order:stroke}.algvis .dimmed .stub-line{stroke:#cfcfcf}.algvis .dimmed .stub-dot{fill:#cfcfcf}.algvis .dimmed .stub-text{fill:#b0b0b0}.algvis .red-edge{stroke:red;fill:none;stroke-width:1.2}.algvis .arrow{stroke:#000;fill:none;stroke-width:1.2}.algvis .arrow-head{fill:#000;stroke:none}.algvis .cmp-arrow .arrow{stroke:gray}.algvis .cmp-arrow .arrow-head{fill:gray}.algvis .arrow.dashed{stroke-dasharray:3 3}.algvis .compare-pair .arrow{stroke:red;stroke-width:2}.algvis .compare-pair .arrow-head{fill:red}.algvis .cell rect{stroke:#000;stroke-width:1}.algvis .cell.clickable{cursor:pointer}.algvis .cell rect.cell-marked{stroke-width:2.5}.algvis .cell .cell-cross{stroke:#333;stroke-width:1}.algvis .cell.dimmed{opacity:.3}.algvis .cell text{text-anchor:middle;dominant-baseline:central;font-size:10px}.algvis .cell text.small{font-size:8px}.algvis .cell .cell-top-back{fill:#fff;stroke:#fff}.algvis .cell .cell-top-label{dominant-baseline:auto;font-size:9px;fill:#333}.algvis .free-label{font-size:11px}.algvis .free-label.halo{stroke:#fff;stroke-width:4px;stroke-linejoin:round;paint-order:stroke}.algvis .free-label.small{font-size:9px}.algvis .free-label-box rect{fill:#fff;rx:4;stroke-width:1.2}.algvis .free-label-box text{text-anchor:middle;dominant-baseline:central;font-weight:600}.algvis .edge-label rect{stroke:#999;rx:3}.algvis .edge-label text.halo{stroke:#fff;stroke-width:3px;stroke-linejoin:round;paint-order:stroke}.algvis .edge-label text{text-anchor:middle;dominant-baseline:central;font-size:9px}.algvis .edge-label.dimmed rect{fill:#eee}.algvis .edge-label.dimmed text{fill:#b0b0b0}.algvis .bubble rect{fill:#fffeed;stroke:#c8c8a8;rx:6}.algvis .bubble text{font-size:11px}.algvis .ruler line{stroke:#c8c8c8;stroke-width:1}.algvis .ruler text{fill:#787878;text-anchor:middle;font-size:9px}.algvis .ruler text.big{font-size:11px}
