.type-hint,.cm-type-hint{display:inline-block;margin:0 3px 0 2px;padding:0 4px;border:1px solid var(--type-line);border-radius:4px;background:transparent;color:var(--muted);font-family:var(--mono);font-size:.82em;font-style:normal;font-weight:400;line-height:1.35;white-space:nowrap;vertical-align:baseline;user-select:none;-webkit-user-select:none}.type-hint{pointer-events:none}.type-hint-name{border-style:dashed}.type-hint-apply{border-style:solid;background:var(--type);color:var(--ink)}.type-hint-apply:before{content:"⟩ ";color:var(--muted)}.cm-activeLine .cm-type-hint{color:var(--ink)}.cm-tooltip.cm-tooltip-hover:has(.cm-type-tooltip){border:1px solid var(--type-line);border-radius:6px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}.cm-type-tooltip{max-width:min(60ch,90vw);padding:4px 8px;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.type-tooltip-code{font-family:var(--mono);font-size:12.5px}.type-tooltip-type,.palette-type{font-family:var(--mono);font-size:12px;padding:0 4px;border:1px solid var(--type-line);border-radius:4px;background:var(--type);color:var(--ink);overflow-wrap:anywhere}@media(forced-colors:active){.type-hint,.cm-type-hint,.type-hint-apply:before,.cm-activeLine .cm-type-hint{color:GrayText;border-color:GrayText}}section.editor-pane{grid-template-rows:minmax(0,1fr) auto}section.editor-pane>.typebar{grid-row:2;grid-column:1 / -1}.typebar{display:flex;align-items:center;min-width:0;min-height:26px;padding:3px 10px;border-top:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:13px;line-height:1.4}.typebar-line{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.typebar-code{font-family:var(--mono);font-size:12.5px}.typebar-type{font-family:var(--mono);font-size:12.5px;padding:0 4px;border:1px solid var(--type-line);border-radius:4px;background:var(--type);color:var(--ink)}.typebar-none,.typebar-stale{color:var(--muted)}.typebar-stale{font-style:italic}@media(max-width:860px){section.editor-pane{grid-template-rows:minmax(0,1fr) auto minmax(120px,30vh)}section.editor-pane.view-text{grid-template-rows:minmax(0,1fr) auto}}.ast-view{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--panel);color:var(--ink)}.ast-bar,.ast-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--bg);font-size:13px}.ast-status{border-bottom:0;border-top:1px solid var(--line);min-height:36px}.ast-status code{font-family:var(--mono);font-size:12px;padding:0 4px;border:1px solid var(--type-line);border-radius:4px;background:var(--type);color:var(--ink);overflow-wrap:anywhere}.ast-actions{display:inline-flex;gap:6px;margin-left:auto}.ast-legend{display:inline-flex;flex-wrap:wrap;gap:4px;margin-left:auto}.ast-chip{font-size:11px;padding:0 6px;border-radius:6px;border:1.5px solid var(--line);line-height:18px}.ast-forest{flex:1;min-height:0;overflow:auto;padding:4px 8px 24px}.ast-forest:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.ast-empty{color:var(--muted);padding:16px}.ast-tree{position:relative;margin:0 0 6px;border-bottom:1px dashed var(--line);content-visibility:auto}.ast-tree:last-child{border-bottom:0}.ast-edges{position:absolute;left:0;top:0;pointer-events:none}.ast-edges path{fill:none;stroke:var(--muted);stroke-width:1.3;opacity:.7}.ast-edges path.more{stroke-dasharray:3 3}.ast-node{position:absolute;box-sizing:border-box;height:26px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 8px;border-radius:7px;border:1.5px solid var(--line);background:var(--panel);font-family:var(--mono);font-size:12.5px;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.ast-node:hover:not(.selected){outline:1px solid color-mix(in srgb,var(--focus) 45%,transparent)}.ast-head{display:flex;align-items:center;justify-content:center;gap:6px;max-width:100%;line-height:17px}.ast-label{overflow:hidden;text-overflow:ellipsis}.ast-type{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-family:var(--mono);font-size:11px;font-weight:400;font-style:normal;line-height:14px;border-top:1px dotted var(--type-line);color:var(--muted)}.ast-node.step-hole .ast-type{color:inherit}.ast-view .cat-expr,.ast-view .cat-leaf{background:var(--expr);border-color:var(--expr-line)}.ast-view .cat-pat{background:var(--pat);border-color:var(--pat-line)}.ast-view .cat-type{background:var(--type);border-color:var(--type-line)}.ast-view .cat-item{background:var(--item);border-color:var(--item-line);font-weight:700}.ast-view .cat-binding,.ast-view .cat-clause,.ast-view .cat-other{background:var(--panel);border-color:var(--item-line)}.ast-view .cat-hole{background:var(--hole);border:1.5px dashed var(--hole-line);color:var(--warn);font-weight:700}.ast-view .cat-raw,.ast-view .ast-node.err{background:var(--err-bg);border-color:var(--err);color:var(--err)}.ast-node.lab-kw .ast-label{color:var(--kw);font-weight:700}.ast-node.lab-apply .ast-label{color:var(--muted);font-style:italic}.ast-node.t-number .ast-label,.ast-node.t-signed_number .ast-label{color:var(--num)}.ast-node.t-string .ast-label,.ast-node.t-character .ast-label{color:var(--str)}.ast-node.t-constructor_path .ast-label,.ast-node.t-constructor_name .ast-label{color:var(--cons)}.ast-role{position:absolute;bottom:calc(100% + 1px);left:50%;transform:translate(-50%);font-family:var(--sans);font-size:10.5px;font-weight:400;color:var(--muted);background:var(--panel);padding:0 3px;line-height:13px;border-radius:3px}.ast-more{background:var(--bg);border-style:dashed;color:var(--muted);font-family:var(--sans)}.ast-more:hover{color:var(--ink);border-color:var(--focus)}.ast-node.selected{outline:2.5px solid var(--focus);outline-offset:2px;z-index:2}.ast-node.step-done{background:var(--done);border-color:var(--done-line)}.ast-node.step-current{box-shadow:0 0 0 2px var(--accent)}.ast-node.step-todo{border-style:dashed;border-color:var(--todo-line)}.ast-node.step-callee{box-shadow:inset 3px 0 0 var(--accent)}.ast-node.step-focus,.ast-chip.step-focus{outline:3px solid var(--accent);outline-offset:1px;background:var(--current);z-index:1}.ast-node.step-focus.selected{outline-color:var(--focus);box-shadow:0 0 0 5px var(--accent)}.ast-node.step-hole{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.ast-badge{font-family:var(--sans);padding:0 6px;border-radius:9px;background:var(--done-line);color:#fff;font-size:11px;line-height:17px;font-weight:400;max-width:22ch;overflow:hidden;text-overflow:ellipsis}.ast-edit{position:absolute;z-index:5;display:flex;flex-direction:column;gap:2px}.ast-edit textarea{font-family:var(--mono);font-size:13px;border:2px solid var(--focus);border-radius:6px;padding:3px 5px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow);resize:both}.ast-edit-hint{font-size:11px;color:var(--muted);background:var(--panel);padding:0 4px;border-radius:4px;align-self:flex-start}@media(prefers-reduced-motion:no-preference){.ast-node{transition:outline-color .1s}}.v-closure .v-body{font-family:var(--mono);color:var(--ink);background:var(--expr);border-radius:3px;padding:0 2px;overflow-wrap:anywhere}.v-closure .v-body-open{white-space:pre-wrap;display:inline}.v-self,.v-fname{font-weight:600}.v-param,.v-envname{font-style:italic}.v-selfref{font-family:var(--mono);font-weight:600;text-decoration:underline dotted var(--muted);text-underline-offset:2px}.v-rec{white-space:nowrap}.v-wait,.v-cmt{color:var(--muted);font-style:italic}.v-captures{color:var(--ink)}.v-bodymore,.v-envbtn{font-family:inherit;font-size:11px;line-height:1.2;padding:0 4px;margin-left:4px;min-height:18px;vertical-align:baseline;border:1px solid var(--line);border-radius:3px;background:var(--panel);color:var(--accent);cursor:pointer}.v-bodymore:hover,.v-envbtn:hover{border-color:var(--accent)}.v-bodymore:focus-visible,.v-envbtn:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.graph-view{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--panel);color:var(--ink);position:relative}.gv-bar,.gv-status{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:5px 10px;border-bottom:1px solid var(--line);background:var(--bg);font-size:13px}.gv-status{border-bottom:0;border-top:1px solid var(--line);min-height:32px}.gv-status code{font-family:var(--mono)}.gv-type{color:var(--type-line, var(--muted))}.gv-val{color:var(--ok)}.gv-keys{color:var(--muted);font-size:12px}.gv-sep{width:1px;height:18px;background:var(--line)}.gv-zoom{font-variant-numeric:tabular-nums;min-width:3.2em;text-align:center;color:var(--muted);font-size:12px}.gv-values{display:inline-flex;align-items:center;gap:4px}.gv-at{font-size:12px;color:var(--muted)}.gv-err{color:var(--err)}.gv-muted{color:var(--muted)}.gv-legend{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-size:11px;color:var(--muted)}.gv-legend path{stroke:var(--muted);stroke-width:2;fill:none}.gv-legend .lg-var{stroke-dasharray:5 3}.gv-legend .lg-rec{stroke:var(--accent);stroke-dasharray:2 3}.gv-list-toggle[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.gv-canvas{position:relative;flex:1;min-height:0;overflow:hidden;cursor:default;touch-action:none;background-color:var(--panel);background-image:radial-gradient(circle,var(--line) 1px,transparent 1.2px);background-size:22px 22px;outline:none}.gv-canvas:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}.gv-canvas.panning{cursor:grabbing}.gv-canvas.wiring{cursor:crosshair}.gv-layer{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.gv-empty{position:absolute;left:16px;top:16px;color:var(--muted);max-width:40em}.graph-view>.gv-empty{position:static;padding:16px}.gv-band{position:absolute;border-radius:10px;background:color-mix(in srgb,var(--item) 55%,transparent);pointer-events:none}.gv-band.odd{background:color-mix(in srgb,var(--item) 25%,transparent)}.gv-wires{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.gv-wire-line{fill:none;stroke:var(--wc, var(--expr-line));stroke-width:2;opacity:.85}.gv-wire-hit{fill:none;stroke:transparent;stroke-width:10;pointer-events:stroke;cursor:pointer}.gv-wire.w-var .gv-wire-line{stroke-dasharray:6 3}.gv-wire.w-rec .gv-wire-line{stroke:var(--accent);stroke-dasharray:2 4;stroke-linecap:round}.gv-wire.uncertain .gv-wire-line{opacity:.45}.gv-wire.hot .gv-wire-line{stroke-width:3;opacity:1}.gv-wire.sel .gv-wire-line{stroke-width:4;stroke:var(--focus);opacity:1}.gv-wire:hover .gv-wire-line{stroke-width:3;opacity:1}.gv-wire-temp{fill:none;stroke:var(--focus);stroke-width:2.5;stroke-dasharray:4 3}.gv-wire-temp.good{stroke:var(--ok);stroke-dasharray:none}.gv-wire-temp.bad{stroke:var(--err)}.gv-wrap{position:absolute}.gv-wrap.dragging{z-index:3}.gv-wrap.active,.gv-wrap.selected{z-index:1}.gv-wrap.frame{z-index:auto}.gv-node{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box;border:1.5px solid var(--expr-line);border-radius:6px;background:var(--panel);font:12px/1 var(--mono);box-shadow:var(--shadow);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.gv-node:focus{outline:none}.gv-node:focus-visible,.gv-node.active:focus{outline:2.5px solid var(--focus);outline-offset:2px}.gv-node.selected{border-color:var(--focus);box-shadow:0 0 0 2px color-mix(in srgb,var(--focus) 35%,transparent)}.gv-node.dragging{opacity:.9;cursor:grabbing}.gv-node.step-focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 40%,transparent)}.gv-node.err{border-color:var(--err);border-style:dashed}.gv-head{height:26px;box-sizing:border-box;display:flex;align-items:center;padding:0 4px 0 9px;border-radius:4px 4px 0 0;background:var(--expr);overflow:hidden;white-space:nowrap}.gv-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:600}.gv-probe-btn{position:absolute;top:5px;right:5px;z-index:2;display:none;border:0;background:var(--expr);color:var(--muted);padding:2px;min-height:0;line-height:0;cursor:pointer;border-radius:3px}.gv-wrap.frame>.gv-probe-btn{background:var(--item)}.gv-wrap:hover>.gv-probe-btn,.gv-wrap.active>.gv-probe-btn,.gv-wrap.selected>.gv-probe-btn,.gv-probe-btn.on{display:inline-block}.gv-probe-btn.on{color:var(--accent)}.gv-probe-btn:hover{background:color-mix(in srgb,var(--ink) 10%,transparent)}.gv-node.k-let{border-color:var(--item-line)}.gv-node.k-let .gv-head,.gv-node.k-eval .gv-head{background:var(--item)}.gv-node.k-const .gv-title{color:var(--num)}.gv-node.k-const[title*=string] .gv-title{color:var(--str)}.gv-node.k-ctor .gv-title{color:var(--cons)}.gv-node.k-name .gv-title{color:var(--kw);font-weight:500}.gv-node.k-if .gv-title,.gv-node.k-match .gv-title,.gv-node.k-try .gv-title,.gv-node.k-for .gv-title,.gv-node.k-while .gv-title{color:var(--kw)}.gv-node.k-pattern{border-color:var(--pat-line)}.gv-node.k-pattern .gv-head{background:var(--pat)}.gv-node.k-hole{border-color:var(--hole-line);border-style:dashed}.gv-node.k-hole .gv-head{background:var(--hole)}.gv-node.k-annot .gv-head{background:var(--type)}.gv-node.k-code{border-color:var(--item-line);border-style:dashed}.gv-node.k-code .gv-head{background:var(--item)}.gv-code{margin:0;padding:3px 8px 0;font:12px/16px var(--mono);white-space:pre;overflow:hidden;color:var(--ink)}.gv-node.k-fun{background:color-mix(in srgb,var(--panel) 75%,transparent);border:1.5px solid var(--item-line);border-radius:10px;cursor:default;box-shadow:none}.gv-node.k-fun .gv-head{background:var(--item);border-radius:8px 8px 0 0;cursor:grab}.gv-node.k-fun.callee{border-color:var(--accent);border-style:dashed}.gv-node.k-fun.selected{border-color:var(--focus)}.gv-param-label,.gv-result-label{position:absolute;line-height:20px;color:var(--pat-line, var(--muted));font-weight:600;white-space:nowrap;pointer-events:none}.gv-result-label{color:var(--muted);font-weight:400}.gv-row{position:absolute;left:0;right:0;height:20px;display:flex;align-items:center;justify-content:space-between;padding:0 9px;box-sizing:border-box;gap:6px;pointer-events:none}.gv-row.sel{background:color-mix(in srgb,var(--focus) 15%,transparent)}.gv-in-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.gv-in-label.var{color:var(--ink);font-style:italic}.gv-in-val{color:var(--ok);font-style:normal}.gv-out-label{margin-left:auto;white-space:nowrap;font-weight:600;color:var(--ink)}.gv-port{position:absolute;width:10px;height:10px;box-sizing:border-box;border-radius:50%;border:2px solid var(--expr-line);background:var(--panel);cursor:crosshair;z-index:2}.gv-port:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%}.gv-port.in.filled{background:var(--expr-line);cursor:pointer}.gv-port.in.hole{border-color:var(--hole-line);background:var(--hole)}.gv-port.in.ro{border-style:dotted;cursor:not-allowed}.gv-port.out{border-color:var(--ink);background:var(--ink)}.gv-port.out.binder{border-color:var(--pat-line, var(--accent));background:var(--pat-line, var(--accent))}.gv-port:hover,.gv-port.drop,.gv-port.good{transform:scale(1.35);border-color:var(--ok)}.gv-port.bad{transform:scale(1.35);border-color:var(--err);background:var(--err-bg)}.gv-port.armed{box-shadow:0 0 0 3px var(--focus)}.gv-value{position:absolute;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 5px;border-radius:8px;border:1px solid var(--done-line, var(--ok));background:var(--done, var(--ok-bg));color:var(--ink);font:11px/16px var(--mono);pointer-events:none;z-index:2}.gv-probe{position:absolute;width:230px;z-index:4;background:var(--panel);border:1.5px solid var(--accent);border-radius:8px;box-shadow:0 4px 14px #0000002e;font-size:12px;cursor:default}.gv-probe header{display:flex;justify-content:space-between;align-items:center;padding:3px 4px 3px 8px;border-bottom:1px solid var(--line);background:var(--bg);border-radius:6px 6px 0 0}.gv-probe header button{border:0;background:transparent;min-height:0;padding:0 6px;font-size:16px;cursor:pointer;color:var(--muted)}.gv-probe p{margin:6px 8px}.gv-probe-list{list-style:none;margin:0;padding:2px 0;max-height:180px;overflow:auto}.gv-probe-list button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:2px 8px;min-height:0;font:inherit;color:var(--ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gv-probe-list button:hover,.gv-probe-list button:focus-visible{background:color-mix(in srgb,var(--focus) 12%,transparent)}.gv-probe-list button[aria-current=step]{background:var(--current, var(--hole));font-weight:600}.gv-probe-list li.gv-muted{padding:2px 8px}.gv-editor{position:absolute;z-index:5}.gv-editor textarea{width:100%;box-sizing:border-box;font:12px/16px var(--mono);padding:4px 6px;border:2px solid var(--focus);border-radius:6px;background:var(--panel);color:var(--ink);resize:both}.gv-menu{position:absolute;z-index:10;min-width:220px;max-width:300px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px #0003;padding:4px;font-size:13px}.gv-menu-title{padding:3px 6px 5px;color:var(--muted);font-size:12px}.gv-add input{width:100%;box-sizing:border-box;padding:4px 6px;margin-bottom:4px}.gv-add ul{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto}.gv-add li{padding:3px 6px;border-radius:4px;cursor:pointer;font-family:var(--mono);font-size:12px}.gv-add li .gv-muted{font-family:var(--sans, sans-serif);font-size:11px}.gv-add li.on,.gv-add li:hover{background:color-mix(in srgb,var(--focus) 15%,transparent)}.tpl-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;background:var(--expr-line)}.tpl-dot.c-item{background:var(--item-line)}.gv-node-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:4px 8px;border-radius:4px;font:inherit;color:var(--ink);cursor:pointer;min-height:0}.gv-node-menu button:hover,.gv-node-menu button:focus{background:color-mix(in srgb,var(--focus) 15%,transparent);outline:none}.gv-node-menu button:focus-visible{outline:2px solid var(--focus)}.gv-node-menu button.disabled{color:var(--muted)}.gv-list{max-height:38%;overflow:auto;border-top:1px solid var(--line);padding:6px 12px;font-size:13px;background:var(--bg)}.gv-list h4{margin:8px 0 2px;font-size:13px}.gv-list ul{list-style:none;margin:0;padding:0}.gv-list li{padding:1px 0}.gv-list button{border:0;background:transparent;padding:0 2px;min-height:0;font:inherit;color:var(--ink);cursor:pointer;text-decoration:underline dotted}.gv-list button[aria-pressed=true]{background:color-mix(in srgb,var(--focus) 15%,transparent)}.reduced-motion .gv-port{transition:none}@media(max-width:900px){.gv-legend,.gv-keys{display:none}}.gv-head .gv-title{flex:0 1 auto}.gv-ty{font-weight:400;font-style:normal;color:color-mix(in srgb,var(--type-line) 55%,var(--ink));white-space:nowrap}.gv-head .gv-ty{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:pre}.gv-ty.stale{opacity:.45}.gv-out-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.gv-param-label .gv-ty,.gv-result-label .gv-ty{font-weight:400}.gv-port.typed.in{border-color:var(--pc)}.gv-port.typed.in.filled{background:var(--pc)}.gv-port.typed.out,.gv-port.typed.out.binder{border-color:var(--pc);background:var(--pc)}.gv-port.typed.in.hole{border-color:var(--hole-line);background:var(--hole)}.gv-port.typed:hover,.gv-port.typed.drop,.gv-port.typed.good,.gv-port.good{border-color:var(--ok)}.gv-port.typed.bad,.gv-port.bad{border-color:var(--err);background:var(--err-bg)}.gv-port.warn,.gv-port.typed.warn{transform:scale(1.35);border-color:var(--warn);background:var(--warn-bg);box-shadow:0 0 0 2px var(--warn)}.gv-wire-temp.warn{stroke:var(--warn);stroke-dasharray:7 3}.gv-drag-tip{position:absolute;z-index:30;max-width:360px;padding:3px 7px;border:1px solid var(--line);border-radius:4px;background:var(--panel, var(--bg));color:var(--ink);font:12px/16px var(--mono);box-shadow:var(--shadow);pointer-events:none;white-space:normal}.gv-drag-tip.good{border-color:var(--ok)}.gv-drag-tip.bad{border-color:var(--err);color:var(--err)}.gv-drag-tip.warn{border-color:var(--warn);border-width:2px;background:var(--warn-bg)}.gv-node-menu button.warn{box-shadow:inset 3px 0 0 var(--warn)}.gv-warn-note{color:var(--ink);font-weight:600}.cg{display:flex;flex-direction:column;gap:8px;height:100%;min-height:0}.cg-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.cg-group{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.cg-group button{border:0;border-radius:0;min-width:32px;justify-content:center}.cg-group button+button{border-left:1px solid var(--line)}.cg-group button.on{background:var(--ink);color:var(--panel)}.cg-follow{display:inline-flex;align-items:center;gap:4px;font-size:12.5px}.cg-live{font-size:12.5px;color:var(--muted);margin-left:auto}.cg-note{margin:0;font-size:12.5px}.cg-view{position:relative;flex:1 1 auto;min-height:260px;border:1px solid var(--line);border-radius:8px;background:var(--bg);overflow:hidden;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.cg-view:active{cursor:grabbing}.cg-view:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.cg-view svg{display:block}.cg-edge path{fill:none;stroke:var(--todo-line, var(--muted));opacity:.85}.cg-arrowhead{fill:var(--todo-line, var(--muted))}.cg-arrowhead.hot{fill:var(--accent)}.cg-edge.back path{stroke-dasharray:1 0}.cg-edge.tail path{stroke-dasharray:6 4}.cg-edge.sometail path{stroke-dasharray:10 3 2 3}.cg-edge.stack path{stroke:var(--accent);opacity:.75}.cg-edge.taking path{stroke:var(--accent);opacity:1}.cg:not(.cg-still) .cg-edge.taking path{animation:cg-flow .8s linear infinite;stroke-dasharray:8 5}@keyframes cg-flow{to{stroke-dashoffset:-13}}@media(prefers-reduced-motion:reduce){.cg:not(.cg-still) .cg-edge.taking path{animation:none}}.cg-elabel{font-family:var(--mono);font-size:10.5px;fill:var(--muted);paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round}.cg-edge.stack .cg-elabel,.cg-edge.taking .cg-elabel{fill:var(--accent);font-weight:700}.cg-node rect:first-of-type{fill:var(--panel);stroke:var(--line);stroke-width:1.5}.cg-node[role=button]{cursor:pointer}.cg-node[role=button]:hover rect:first-of-type{stroke:var(--muted)}.cg-node:focus{outline:none}.cg-node:focus-visible rect:first-of-type{stroke:var(--focus);stroke-width:3}.cg-node.top rect:first-of-type{fill:var(--item);stroke:var(--item-line, var(--line))}.cg-node.lib rect:first-of-type{stroke-dasharray:4 2}.cg-node.stack rect:first-of-type{fill:var(--current, var(--hole));stroke:var(--accent);stroke-width:2}.cg-node.current rect:first-of-type{fill:var(--current, var(--hole));stroke:var(--accent);stroke-width:3.5}.cg-node.target rect:first-of-type{stroke:var(--accent);stroke-width:2.5;stroke-dasharray:5 3}.cg-name{font-family:var(--mono);font-size:12px;font-weight:600;fill:var(--ink)}.cg-calls{font-size:10.5px;fill:var(--muted)}.cg-type{font-family:var(--mono);font-size:10.5px;fill:var(--ink);opacity:.85}.cg-badge{fill:var(--type);stroke:var(--type-line, var(--line))}.cg-badge-text{font-size:9px;font-weight:700;fill:var(--ink)}.cg-legend{margin:0;font-size:12px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.cg-key{display:inline-block;width:18px;height:10px;border-radius:3px;vertical-align:middle}.cg-key.stack{background:var(--current, var(--hole));border:2px solid var(--accent)}.cg-key.current{background:var(--current, var(--hole));border:3px solid var(--accent)}.cg-key.taking{height:0;border-top:3px solid var(--accent);border-radius:0}.cg-key.tail{height:0;border-top:2px dashed var(--muted);border-radius:0}.cg-details summary{cursor:pointer;font-size:13px;padding:4px 0}.cg-table{border-collapse:collapse;width:100%;font-size:12.5px;margin-top:6px}.cg-table th,.cg-table td{text-align:left;vertical-align:top;padding:4px 6px;border-bottom:1px solid var(--line)}.cg-table thead th{color:var(--muted);font-weight:600}.cg-table td.num{text-align:right;font-variant-numeric:tabular-nums}.cg-table tr.stack th,.cg-table tr.current th{background:var(--current, var(--hole))}.cg-table button{min-height:26px;padding:2px 8px;font-size:12px;white-space:nowrap}.cg-pill{display:inline-block;margin-left:6px;padding:0 5px;border-radius:8px;font-size:10.5px;background:var(--type);color:var(--ink);font-weight:500}.cg-pill.now{background:var(--accent);color:var(--accent-ink)}.cg-table td.cg-ty code{font-family:var(--mono);font-size:12px;padding:0 4px;border:1px solid var(--type-line);border-radius:4px;background:var(--type);color:var(--ink);overflow-wrap:break-word}.cg-here{margin-top:3px;font-size:12px}.typesview{display:flex;flex-direction:column;gap:10px}.tv-section h3{margin:0 0 4px;font-size:13px}.tv-section p{margin:4px 0;line-height:1.6}.tv-ty{font-family:var(--mono);font-size:12.5px;padding:0 4px;border:1px solid var(--type-line);border-radius:4px;background:var(--type);color:var(--ink);overflow-wrap:break-word}.tv-inst{white-space:nowrap}.tv-here{padding:3px 8px;border-left:3px solid var(--type-line)}.tv-table thead th{color:var(--muted);font-family:var(--sans);font-weight:600;font-size:12px}.tv-table tr.tv-differs th{color:var(--ink)}.env-general{margin-left:6px;color:var(--muted);font-size:12px}:root{--bg: #f7f7f4;--panel: #ffffff;--ink: #1f2330;--muted: #646b7d;--line: #d9dbe2;--accent: #bf4d14;--accent-ink: #ffffff;--focus: #1d6fd6;--expr: #e8f1fb;--expr-line: #9cbfe6;--pat: #fbf0df;--pat-line: #e3b170;--type: #ece8fa;--type-line: #a99ee0;--item: #f4f5f8;--item-line: #b9bdcb;--hole: #fff4c2;--hole-line: #c89a00;--kw: #00796b;--str: #b03a1a;--num: #8a2a9e;--cons: #0a5ea8;--done: #dff3e3;--done-line: #2e8b47;--current: #fff1b8;--todo-line: #8a91a3;--err: #b42318;--err-bg: #fdecea;--warn: #8a5a00;--warn-bg: #fff6dc;--ok: #1d7a3a;--ok-bg: #e5f5e9;--shadow: 0 1px 2px rgba(20, 24, 40, .08);--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #15171c;--panel: #1d2027;--ink: #e6e8ee;--muted: #9aa1b2;--line: #353a46;--accent: #f0743a;--accent-ink: #1a1206;--focus: #6aa8ff;--expr: #1f2d40;--expr-line: #3d6ea3;--pat: #3a2e1d;--pat-line: #a07a40;--type: #2c2742;--type-line: #6d61b0;--item: #22252d;--item-line: #454b5a;--hole: #3d3410;--hole-line: #d6a92a;--kw: #4fc1b0;--str: #f0906e;--num: #d48ae6;--cons: #6fb3ff;--done: #1f3a27;--done-line: #4fbf6c;--current: #4a3f12;--todo-line: #7e869a;--err: #ff8a80;--err-bg: #3d1d1b;--warn: #ffcf6e;--warn-bg: #3a3016;--ok: #7ed49a;--ok-bg: #1b3324;--shadow: none;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:14px/1.45 var(--sans)}button,select,input,textarea{font:inherit;color:inherit}button,.button{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px 10px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:4px;min-height:30px}button:hover,.button:hover{border-color:var(--muted)}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}code,kbd,pre{font-family:var(--mono);font-size:.93em}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;z-index:10;background:var(--panel);padding:6px}.muted{color:var(--muted)}.app{display:flex;flex-direction:column;height:100%}.app>.panes{flex:1 1 auto}.app>.console-pane{flex:0 0 22vh;min-height:90px}.toolbar{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.toolbar .brand{display:flex;align-items:center;gap:8px;font-weight:700}.toolbar .group{display:flex;gap:6px;align-items:center}.toolbar .right{margin-left:auto}.seg{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.seg button{border:0;border-radius:0}.seg button.on{background:var(--ink);color:var(--panel)}.boot{font-size:12px;color:var(--muted);padding:2px 8px;border-radius:10px;border:1px solid var(--line)}.boot-ready{color:var(--ok);border-color:var(--ok)}.boot-failed{color:var(--err);border-color:var(--err)}.panes{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);min-height:0}.pane{min-height:0;min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--line)}.editor-pane{display:grid;grid-template-columns:minmax(0,1fr) 210px}.editor{overflow:auto;min-height:0;background:var(--panel)}.console-pane{border-top:1px solid var(--line);background:var(--panel);overflow:auto;min-height:0}.narrow-tabs{display:none}@media(max-width:860px){.app>.console-pane{flex-basis:16vh;min-height:70px}.narrow-tabs{display:flex;gap:4px;padding:4px 8px;background:var(--panel);border-bottom:1px solid var(--line)}.narrow-tabs button{flex:1;min-height:44px}.narrow-tabs button.on{background:var(--ink);color:var(--panel)}.panes{grid-template-columns:1fr}.narrow-code .right-pane,.narrow-machine .editor-pane,.narrow-stage .editor-pane{display:none}.editor-pane{grid-template-columns:1fr;grid-template-rows:1fr minmax(120px,30vh)}.toolbar .brand span{display:none}button{min-height:40px}}.message,.banner{padding:6px 16px;display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line)}.message.error,.banner.err{background:var(--err-bg);color:var(--err)}.message.info{background:var(--panel)}.banner.warn{background:var(--warn-bg);color:var(--warn)}.message button{margin-left:auto;border:0;background:transparent}.blocks{padding:14px 16px 60px;font-family:var(--mono);font-size:13.5px;line-height:1.9;outline:none;min-height:100%}.blocks.loading{font-family:var(--sans);color:var(--muted)}.item{margin:0 0 6px}.item-gap{height:10px}.blk{border-radius:6px;padding:1px 3px;margin:0 1px;position:relative;white-space:pre-wrap;overflow-wrap:anywhere;box-decoration-break:clone;-webkit-box-decoration-break:clone;cursor:pointer}.blk.multi{display:inline-block;vertical-align:top;max-width:100%}.blk.box{display:block;width:fit-content;max-width:calc(100% - 1.2em);margin:2px 0 2px 1.2em}.blk.box.t-match_case,.blk.box.t-then_clause,.blk.box.t-else_clause{margin-left:.4em}.blk.t-parenthesized_expression,.blk.t-parenthesized_pattern,.blk.t-parenthesized_type,.blk.t-value_path,.blk.t-type_constructor_path{background:transparent!important;border-color:transparent!important;padding:0}.blk.cat-item{max-width:100%}.density-framed .blk.cat-expr{background:var(--expr);border:1px solid var(--expr-line)}.density-framed .blk.cat-pat{background:var(--pat);border:1px solid var(--pat-line);border-radius:10px 2px}.density-framed .blk.cat-type{background:var(--type);border:1px solid var(--type-line);clip-path:none;border-radius:12px}.density-framed .blk.cat-item{background:var(--item);border:1px solid var(--item-line);padding:4px 8px;display:inline-block;box-shadow:var(--shadow)}.density-framed .blk.cat-binding,.density-framed .blk.cat-clause{background:transparent;border:1px dashed transparent}.density-framed .blk.cat-expr .blk.cat-expr{background:color-mix(in srgb,var(--expr) 70%,var(--panel))}.density-outlined .blk.cat-expr,.density-outlined .blk.cat-pat,.density-outlined .blk.cat-type{border:1px solid var(--line)}.density-outlined .blk.cat-item{border-left:3px solid var(--item-line);display:inline-block;padding-left:8px}.density-plain .blk{padding:0;margin:0}.blk.cat-comment{color:var(--muted);font-style:italic}.blk.cat-raw,.blk.err{background:var(--err-bg)!important;border:1px dashed var(--err)!important}.blk.missing:after{content:"…";color:var(--err)}.blk.cat-hole{background:none;border:0;padding:0}.hole-chip{display:inline-flex;align-items:center;gap:4px;background:var(--hole);border:1.5px dashed var(--hole-line);border-radius:8px;padding:0 7px;font-weight:700;color:var(--warn)}.hole-type{font-weight:400;font-size:11px;color:var(--muted)}.gl-kw{color:var(--kw);font-weight:700}.gl-op{font-weight:700}.t-string,.t-character{color:var(--str)}.t-number,.t-signed_number{color:var(--num)}.t-constructor_path,.t-constructor_name{color:var(--cons)}.blk.selected{outline:2.5px solid var(--focus);outline-offset:1px;z-index:1}.blk:hover:not(.selected){outline:1px solid color-mix(in srgb,var(--focus) 45%,transparent)}.blk.step-focus{outline:3px solid var(--accent)!important;outline-offset:1px;background:var(--current)!important}.blk.step-current{box-shadow:0 0 0 2px var(--accent)}.blk.step-done{background:var(--done)!important;border-color:var(--done-line)!important}.blk.step-todo{border-style:dashed!important;border-color:var(--todo-line)!important;opacity:.85}.blk.step-callee{box-shadow:inset 3px 0 0 var(--accent)}.blk.step-hole .hole-chip{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.blk.diag-error{border:2px solid var(--err)!important;background:var(--err-bg)!important}.blk.diag-error:before{content:"⚠";color:var(--err);font-size:11px;margin-right:2px}.blk.diag-warning{text-decoration:underline wavy var(--warn)}.value-badge{display:inline-block;margin-left:4px;padding:0 6px;border-radius:9px;background:var(--done-line);color:#fff;font-size:11.5px;line-height:1.6;vertical-align:baseline;max-width:22ch;overflow:hidden;text-overflow:ellipsis}.order-badge{position:absolute;top:-9px;left:-6px;background:var(--ink);color:var(--panel);border-radius:8px;font-size:10px;line-height:15px;min-width:15px;text-align:center;font-family:var(--sans);z-index:2}.inline-edit{position:relative;display:inline-block}.inline-edit textarea{font-family:var(--mono);font-size:13.5px;border:2px solid var(--focus);border-radius:6px;padding:2px 4px;background:var(--panel);resize:none;vertical-align:top;line-height:1.5}.suggest{position:absolute;left:0;top:100%;z-index:20;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 16px #00000026;min-width:200px;font-family:var(--sans)}.suggest [role=option]{padding:2px 8px;cursor:pointer}.suggest [role=option].on{background:var(--focus);color:#fff}.suggest .hint{font-size:11px;color:var(--muted);padding:2px 8px}.block-actions{position:sticky;bottom:0;margin-top:16px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-family:var(--sans);box-shadow:var(--shadow)}.block-actions .crumb{color:var(--muted);margin-right:auto}.empty-program{font-family:var(--sans);color:var(--muted)}.textview{height:100%}.textview .cm-editor{height:100%;font-size:13.5px}.textview .cm-scroller{font-family:var(--mono)}.cm-step-focus{background:var(--current);outline:2px solid var(--accent)}.cm-step-done{background:var(--done)}.cm-step-todo{text-decoration:underline dashed var(--todo-line)}.cm-diag-error{text-decoration:underline wavy var(--err)}.cm-diag-warning{text-decoration:underline wavy var(--warn)}.cm-step-hole{background:var(--accent);color:var(--accent-ink)}.palette{overflow:auto;border-left:1px solid var(--line);padding:8px;background:var(--bg)}.palette input[type=search]{width:100%;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.palette-for{font-size:12px;color:var(--muted);margin:6px 2px}.palette-group h3{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:10px 2px 4px}.palette-items{display:flex;flex-wrap:wrap;gap:4px}.tpl{font-family:var(--mono);font-size:12px;padding:2px 7px;min-height:26px}.tpl-expr{background:var(--expr);border-color:var(--expr-line)}.tpl-pat{background:var(--pat);border-color:var(--pat-line)}.tpl-type{background:var(--type);border-color:var(--type-line)}.tpl-item{background:var(--item);border-color:var(--item-line)}.right-pane{background:var(--panel)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding:0 8px;flex-wrap:wrap}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent}.tabs button.on{border-bottom-color:var(--accent);font-weight:600}.machine{display:flex;flex-direction:column;min-height:0;flex:1}.machine.empty{padding:24px;gap:12px;align-items:flex-start}.tabpanel{overflow:auto;padding:10px 14px;flex:1;min-height:0}.tabpanel h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:12px 0 6px}.controls{padding:8px 10px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.controls .btns{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.controls .scrub{display:flex;gap:8px;align-items:center}.controls .scrub input{flex:1}.controls .pos{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px;white-space:nowrap}.outcome{display:flex;flex-wrap:wrap;gap:4px}.pill{font-size:11.5px;padding:1px 8px;border-radius:10px;border:1px solid var(--line);color:var(--muted)}.pill.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}.pill.err{background:var(--err-bg);color:var(--err);border-color:var(--err)}.spinner{display:inline-block;width:10px;height:10px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.reduced-motion .spinner{animation:none}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.narration .sentence{font-size:15px;margin:4px 0}.narration details summary{cursor:pointer;color:var(--focus)}.pending{list-style:none;padding:0;margin:0}.pending li{margin-bottom:8px}.operands{display:flex;flex-direction:column;gap:2px;margin:4px 0 0 12px}.operand.done{color:var(--ok)}.operand.current{font-weight:600}.operand.todo{color:var(--muted)}table.env{border-collapse:collapse;font-family:var(--mono);font-size:13px}table.env th{text-align:left;padding:2px 10px 2px 0;font-weight:600;vertical-align:top}table.env td{padding:2px 10px 2px 0;vertical-align:top}table.env td.ty{color:var(--muted)}tr.shadowed,.shadowed{opacity:.5;text-decoration:line-through}.env-book{font-family:var(--mono);font-size:13px}.frame{border:1px solid var(--line);border-radius:8px;padding:4px 10px 8px;margin-bottom:8px}.frame h3{margin-top:6px}.stack{font-family:var(--mono);font-size:13px;padding-left:20px}.stack li.top{font-weight:700}.calltree{overflow:auto;max-height:420px;border:1px solid var(--line);border-radius:8px}.ct-edge{stroke:var(--line);stroke-width:1.5}.ct-node rect{fill:var(--panel);stroke:var(--line)}.ct-node text{font-family:var(--mono);font-size:11.5px;fill:var(--ink)}.ct-node .ct-res{fill:var(--ok);font-size:10.5px}.ct-node.done rect{fill:var(--done);stroke:var(--done-line)}.ct-node.active rect{fill:var(--current);stroke:var(--accent);stroke-width:2}.ct-node.exn rect{stroke:var(--err)}.ct-node.tail rect{stroke-dasharray:4 3}.ct-node[role=button]{cursor:pointer}.heap{display:flex;flex-wrap:wrap;gap:10px}.heapbox{border:2px solid var(--item-line);border-radius:8px;padding:6px 10px;background:var(--item);min-width:120px}.heapbox.hl{border-color:var(--accent)}.heaphead{font-size:12px;margin-bottom:4px}.heaphead .names{margin-left:6px;color:var(--muted)}.heaphead .names.alias{color:var(--accent);font-weight:600}.cells{display:flex;gap:0}.cell{border:1px solid var(--line);min-width:34px;text-align:center;background:var(--panel)}.cellv{padding:2px 4px;font-family:var(--mono)}.celli{font-size:10px;color:var(--muted);border-top:1px solid var(--line)}.v-heapref{font-family:var(--mono);font-size:12px;padding:0 6px;min-height:20px}.v-num{color:var(--num)}.v-str{color:var(--str)}.v-kw{color:var(--kw)}.v-cname{color:var(--cons);font-weight:600}.v-poly,.v-more{color:var(--muted)}.v-closure{font-family:var(--mono)}.v-funbtn{font-family:var(--mono);font-size:12px;padding:0 6px;min-height:20px}.v-picture{max-height:60px;vertical-align:middle;border:1px solid var(--line);background:#fff}.rewrite-text{white-space:pre-wrap;background:var(--bg);border-radius:8px;padding:10px;line-height:1.7}.rw-value,.rw-subst{background:var(--done);border-radius:4px;padding:0 3px}.rw-subst{outline:1px dashed var(--done-line)}.rw-focus{text-decoration-color:var(--accent);text-decoration-thickness:2px}.timeline .row{display:flex;gap:8px;align-items:center;margin-bottom:6px}.events{list-style:none;padding:0;margin:0;font-family:var(--mono);font-size:12.5px}.events li button{border:0;background:transparent;width:100%;text-align:left;min-height:22px;padding:1px 4px;justify-content:flex-start}.events li.here button{background:var(--current)}.evi{color:var(--muted);min-width:4ch;display:inline-block}.evk{font-weight:600;min-width:7ch;display:inline-block}.ev-raise .evk,.ev-unwind .evk{color:var(--err)}.ev-write .evk{color:var(--accent)}.evv{color:var(--ok)}.evout{color:var(--muted);font-family:var(--mono)}.predict{border:1px solid var(--accent);border-radius:8px;padding:8px 10px;margin-bottom:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.predict label{display:flex;flex-direction:column;gap:4px;flex:1 1 100%}.predict input{font-family:var(--mono);padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.feedback.ok{color:var(--ok)}.feedback.no{color:var(--err)}.console{padding:8px 14px;font-family:var(--mono);font-size:13px;white-space:pre-wrap}.console .line pre{margin:0;white-space:pre-wrap}.line-toplevel pre{color:var(--muted)}.line-error,.line-error .locbtn{color:var(--err)}.line-warning,.line-warning .locbtn{color:var(--warn)}.locbtn{border:0;background:transparent;font-family:var(--mono);text-align:left;white-space:pre-wrap;padding:0}.out-stderr{color:var(--err)}.inline-pic img,.stage img.picture{max-width:100%;border:1px solid var(--line);background:#fff}.inline-pic img{max-height:120px;display:block;margin:4px 0}.stage{padding:14px;overflow:auto;flex:1}.stage figure{margin:0 0 12px}.stage.empty{color:var(--muted)}.gui-island iframe{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;display:block}dialog.dialog{border:1px solid var(--line);border-radius:12px;padding:0;max-width:min(640px,94vw);width:100%;background:var(--panel);color:var(--ink);box-shadow:0 20px 50px #00000040}dialog.dialog.wide{max-width:min(980px,96vw)}dialog::backdrop{background:#0a0c1473}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--line)}.dialog-head h2{margin:0;font-size:17px}.dialog-head button{border:0;font-size:18px}.dialog-body{padding:12px 16px 18px;max-height:75vh;overflow:auto}.dialog-body section+section{margin-top:14px}.dialog-body h3{font-size:14px;margin:0 0 6px}.dialog fieldset{border:1px solid var(--line);border-radius:8px;margin:0 0 10px}.dialog fieldset label{display:block;padding:3px 0}.row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.row input{flex:1;min-width:200px;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}.qr{width:160px;margin-top:8px;background:#fff;padding:4px;border-radius:6px}.chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.chips button.on{background:var(--ink);color:var(--panel)}.gallery{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.gallery button{width:100%;height:100%;flex-direction:column;align-items:flex-start;text-align:left;padding:8px 10px;gap:2px}.gallery .topic{font-size:11px;color:var(--accent)}.gallery .blurb{font-size:12.5px;color:var(--muted)}.keys kbd{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:0 5px}.boundary{padding:16px;color:var(--err)}.blk.bind-def{box-shadow:0 0 0 2px var(--cons)}.blk.bind-use{box-shadow:0 0 0 1.5px var(--cons);background:color-mix(in srgb,var(--cons) 14%,transparent)!important}.blk.breakpoint:after{content:"";position:absolute;top:-4px;right:-4px;width:9px;height:9px;border-radius:50%;background:var(--err)}.cm-bind-def,.cm-bind-use{background:color-mix(in srgb,var(--cons) 18%,transparent)}.cm-breakpoint{border-bottom:2px solid var(--err)}.keyrow{display:none}@media(max-width:860px),(pointer:coarse){.keyrow{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;font-family:var(--sans)}.keyrow button{min-width:40px;min-height:40px;justify-content:center;font-family:var(--mono)}.inline-edit{display:inline-flex;flex-direction:column}}.kids{display:contents}.compare-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.compare-col .calltree{max-height:300px}.compare-vals{font-size:12px;white-space:pre-wrap;color:var(--muted)}.checks ul{list-style:none;padding:0;margin:0}.check.held{color:var(--ok)}.check.failed{color:var(--err)}.counts th,.counts td{text-align:right;padding:2px 8px}.gui-step{margin:6px 0 14px}.right-view{display:flex;flex-direction:column;flex:1;min-height:0}.right-view[hidden]{display:none}.editor-pane.view-text{grid-template-columns:minmax(0,1fr)}
