.viz-widget-host{border:1px solid hsl(var(--border));background:hsl(var(--card) / .5);border-radius:12px;flex-direction:column;gap:.5rem;margin:1.25rem 0;padding:.75rem;display:flex}.viz-widget-host__title{color:hsl(var(--foreground));font-size:.9rem;font-weight:600}.viz-widget-host__canvas{display:flex;overflow:auto}.viz-widget-host__scale{flex-direction:column;align-items:center;width:max-content;min-width:100%;margin:auto;display:flex}.viz-widget-host__caption{color:hsl(var(--muted-foreground));text-align:center;min-height:1.2em;font-size:.85rem}.viz-widget-host--unavailable{color:hsl(var(--muted-foreground));font-size:.875rem}.viz-widget-host--error{border-color:hsl(var(--status-err) / .4);background:hsl(var(--status-err-bg) / .08);color:hsl(var(--status-err));font-size:.875rem}.viz-svg{max-width:100%;height:auto}.viz-array__index text{fill:hsl(var(--muted-foreground));font-family:var(--font-mono);font-size:11px}.viz-cell rect{fill:hsl(var(--background));stroke:hsl(var(--border));transition:fill var(--viz-fade,.35s), stroke var(--viz-fade,.35s)}.viz-cell text{font-family:var(--font-mono);fill:hsl(var(--foreground));font-size:15px}.viz-cell--new rect{stroke:hsl(var(--status-ok))}.viz-cell--changed rect{fill:hsl(var(--primary) / .14);stroke:hsl(var(--primary))}.viz-cell--removed rect{opacity:.35;stroke-dasharray:4 3}.viz-caret__name{font-family:var(--font-mono);font-size:11px;font-weight:600}.viz-caret text{font-size:12px}.viz-stack__top{fill:hsl(var(--primary));font-family:var(--font-mono);font-size:11px;font-weight:600}.viz-node circle,.viz-node rect{fill:hsl(var(--background));stroke:hsl(var(--border));transition:fill var(--viz-fade,.35s), stroke var(--viz-fade,.35s)}.viz-node text{font-family:var(--font-mono);fill:hsl(var(--foreground));font-size:14px}.viz-node--new circle,.viz-node--new rect{stroke:hsl(var(--status-ok))}.viz-node--changed circle,.viz-node--changed rect{fill:hsl(var(--primary) / .14);stroke:hsl(var(--primary))}.viz-node--removed circle,.viz-node--removed rect{opacity:.35;stroke-dasharray:4 3}.viz-node--cursor circle{stroke-width:2px}.viz-node--key>text{fill:hsl(var(--muted-foreground));font-style:italic}.viz-node__ring{stroke-width:2px}.viz-node__cursor{font-family:var(--font-mono);font-size:11px;font-weight:600}.viz-node__cursor-caret{font-size:10px}.viz-edge{stroke:hsl(var(--muted-foreground));stroke-width:1.5px}.viz-edge--prev{stroke-dasharray:3 3;opacity:.7}.viz-arrowhead{fill:hsl(var(--muted-foreground))}.viz-chain__null text,.viz-chain__null{fill:hsl(var(--muted-foreground));font-size:18px}.viz-edge__label{fill:hsl(var(--muted-foreground));font-family:var(--font-mono);font-size:11px}.viz-edge__label,.viz-node__cursor,.viz-node__cursor-caret,.viz-caret__name{paint-order:stroke;stroke:hsl(var(--card));stroke-width:4px}.transport{border:1px solid hsl(var(--border));border-radius:var(--radius-md);background:hsl(var(--card) / .6);align-items:center;gap:8px;padding:.35rem .5rem;display:flex}.transport__btn{border:1px solid hsl(var(--border));border-radius:var(--radius-sm);background:hsl(var(--background));min-width:30px;height:30px;color:hsl(var(--foreground));cursor:pointer;font-size:.8rem}.transport__btn:hover:not(:disabled){border-color:hsl(var(--primary) / .4)}.transport__btn:disabled{opacity:.45;cursor:default}.transport__btn--play{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.transport__scrubber{accent-color:hsl(var(--primary));flex:1}.transport__label{font-family:var(--font-mono);text-align:right;min-width:56px;color:hsl(var(--muted-foreground));font-size:.75rem}.viz-modal{z-index:80;justify-content:center;align-items:center;padding:2.5vh 2vw;display:flex;position:fixed;inset:0}.viz-modal__scrim{background:hsl(var(--foreground) / .45);backdrop-filter:blur(2px);position:absolute;inset:0}.viz-modal__frame{border:1px solid hsl(var(--border));background:hsl(var(--background));width:min(1280px,100%);height:100%;box-shadow:0 24px 64px hsl(var(--foreground) / .25);border-radius:14px;flex-direction:column;display:flex;position:relative;overflow:hidden}.viz-modal__bar{border-bottom:1px solid hsl(var(--border));background:hsl(var(--card) / .6);align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex}.viz-modal__eyebrow{font-family:var(--font-mono);letter-spacing:.12em;color:hsl(var(--muted-foreground));font-size:.7rem}.viz-modal__prompt{color:hsl(var(--primary))}.viz-modal__title{font-weight:600;font-family:var(--font-mono);font-size:.9rem}.viz-modal__bar-spacer{flex:1}.viz-modal__retrace,.viz-modal__close{border:1px solid hsl(var(--border));border-radius:var(--radius-sm);background:hsl(var(--background));color:hsl(var(--foreground));cursor:pointer;padding:.3rem .6rem;font-size:.8rem}.viz-modal__retrace:hover,.viz-modal__close:hover{border-color:hsl(var(--primary));color:hsl(var(--primary))}.viz-modal__body{flex:1;padding:.9rem 1rem;overflow:auto}.viz-modal__status{height:100%;color:hsl(var(--muted-foreground));justify-content:center;align-items:center;gap:.6rem;display:flex}.viz-modal__spinner{border:2px solid hsl(var(--border));border-top-color:hsl(var(--primary));border-radius:50%;width:16px;height:16px;animation:.8s linear infinite viz-spin}@keyframes viz-spin{to{transform:rotate(360deg)}}.viz-modal__failed{max-width:640px;margin:3rem auto}.viz-modal__failed-title{color:hsl(var(--status-err));margin-bottom:.5rem;font-weight:600}.viz-modal__failed-msg{font-family:var(--font-mono);white-space:pre-wrap;border:1px solid hsl(var(--status-err) / .4);border-radius:var(--radius-md);background:hsl(var(--status-err-bg) / .08);padding:.75rem;font-size:.8rem}.viz-modal__ready{flex-direction:column;gap:.75rem;min-height:100%;display:flex}.viz-modal__casestrip{gap:.4rem;display:flex}.viz-modal__case{border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer;border-radius:999px;padding:.2rem .7rem;font-size:.75rem}.viz-modal__case--active{border-color:hsl(var(--primary));color:hsl(var(--primary));background:hsl(var(--primary) / .1)}.viz-modal__layout{grid-template-columns:minmax(0,3fr) minmax(280px,2fr);align-items:start;gap:.75rem;display:grid}.viz-modal__canvas-col .viz-widget-host{margin:0}.viz-modal__side-col{flex-direction:column;gap:.75rem;min-width:0;display:flex}.viz-modal__source{border:1px solid hsl(var(--border));border-radius:var(--radius-md);height:280px;overflow:hidden}.viz-modal__output summary{cursor:pointer;color:hsl(var(--muted-foreground));font-size:.85rem}.viz-modal__output pre{font-family:var(--font-mono);white-space:pre-wrap;border:1px solid hsl(var(--border));border-radius:var(--radius-md);background:hsl(var(--card) / .6);margin-top:.4rem;padding:.6rem;font-size:.8rem}@media (width<=900px){.viz-modal{padding:0}.viz-modal__frame{border:0;border-radius:0}.viz-modal__layout{grid-template-columns:1fr}}.viz-frames{flex-direction:column;gap:.5rem;display:flex}.viz-frame{border:1px solid hsl(var(--border));border-radius:var(--radius-md);background:hsl(var(--card) / .5);opacity:.75;padding:.5rem .6rem}.viz-frame--active{opacity:1;border-color:hsl(var(--primary) / .5)}.viz-frame__fn{font-family:var(--font-mono);align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;display:flex}.viz-frame__lines{margin-left:auto}.viz-frame__line{font-family:var(--font-mono);color:hsl(var(--primary));background:hsl(var(--primary) / .12);border-radius:999px;padding:.05rem .5rem;font-size:.7rem;font-weight:600}.viz-frame__locals{flex-direction:column;gap:.15rem;margin-top:.35rem;display:flex}.viz-frame__local{font-family:var(--font-mono);align-items:baseline;gap:.5rem;font-size:.75rem;display:flex}.viz-frame__local--changed .viz-frame__local-value{color:hsl(var(--primary));font-weight:600}.viz-frame__local-name{color:hsl(var(--foreground))}.viz-frame__local-type{color:hsl(var(--muted-foreground));font-size:.7rem}.viz-frame__local-value{text-align:right;min-width:0;color:hsl(var(--muted-foreground));text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.viz-legend{border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));flex-wrap:wrap;gap:14px;margin-top:10px;padding-top:8px;font-size:11px;display:flex}.viz-legend__item{align-items:center;gap:6px;display:inline-flex}.viz-legend__swatch{border:2px solid;border-radius:50%;flex:none;justify-content:center;align-items:center;width:14px;height:14px;font-size:9px;display:inline-flex}.viz-legend__line{border-radius:1px;flex:none;width:22px;height:2px;display:inline-block}.wb-source-current-line{background:hsl(var(--primary) / .22);box-shadow:inset 3px 0 0 hsl(var(--primary))}.wb-source-current-gutter{border-left:3px solid hsl(var(--primary))}.wb-source-next-line{background:hsl(var(--primary) / .1);box-shadow:inset 3px 0 0 hsl(var(--muted-foreground) / .55)}.viz-dom-widget{font-family:var(--font-mono);flex-direction:column;gap:10px;padding:4px 0;display:flex}.viz-dom-cursor{pointer-events:none;flex-direction:column;align-items:center;line-height:1.15;display:flex;position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%)}.viz-dom-cursor__name{white-space:nowrap;font-size:11px;font-weight:600}.viz-dom-cursor__caret{font-size:10px}.viz-dom-null{color:hsl(var(--muted-foreground));font-size:15px}.viz-dom-connector{color:hsl(var(--muted-foreground));padding:0 8px}.viz-hashmap{gap:12px}.viz-hashmap__empty{align-items:center;gap:6px;display:flex}.viz-hashmap__bucket{align-items:center;gap:10px;padding-top:26px;display:flex}.viz-hashmap__index{border:1px solid hsl(var(--border));background:hsl(var(--muted) / .6);min-width:30px;height:30px;color:hsl(var(--muted-foreground));border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.viz-hashmap__index--new{border-color:hsl(var(--status-ok,var(--primary)))}.viz-hashmap__index--changed{background:hsl(var(--primary) / .14);border-color:hsl(var(--primary))}.viz-hashmap__index--removed{opacity:.35;border-style:dashed}.viz-hashmap__chain{flex-wrap:wrap;align-items:center;row-gap:8px;display:flex}.viz-hashmap__entry{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:6px;align-items:center;gap:6px;padding:6px 11px;font-size:14px;display:inline-flex;position:relative}.viz-hashmap__entry-key,.viz-hashmap__entry-sep{color:hsl(var(--muted-foreground))}.viz-hashmap__entry-value{font-weight:600}.viz-hashmap__entry--new{border-color:hsl(var(--status-ok,var(--primary)))}.viz-hashmap__entry--changed{background:hsl(var(--primary) / .14);border-color:hsl(var(--primary))}.viz-hashmap__entry--removed{opacity:.35;border-style:dashed}.viz-hashmap__entry--cursor{box-shadow:0 0 0 2px hsl(var(--primary) / .35)}.viz-queue{align-items:flex-start}.viz-queue__hint{letter-spacing:.08em;text-transform:uppercase;width:100%;max-width:460px;color:hsl(var(--muted-foreground));justify-content:space-between;font-size:12px;display:flex}.viz-queue__hint--stack{justify-content:center;max-width:130px}.viz-queue__cells{margin-top:30px;display:flex}.viz-queue__cells--stack{flex-direction:column;width:130px;margin-top:6px}.viz-queue__cell{border:1px solid hsl(var(--border));background:hsl(var(--card));border-right-width:0;flex-direction:column;align-items:center;gap:3px;min-width:56px;padding:10px 10px 8px;display:flex;position:relative}.viz-queue__cell:first-child{border-radius:8px 0 0 8px}.viz-queue__cell:last-child{border-right-width:1px;border-radius:0 8px 8px 0}.viz-queue__cell:only-child{border-radius:8px}.viz-queue__cells--stack .viz-queue__cell{border-bottom-width:0;border-right-width:1px;width:100%}.viz-queue__cells--stack .viz-queue__cell:first-child{border-radius:8px 8px 0 0}.viz-queue__cells--stack .viz-queue__cell:last-child{border-bottom-width:1px;border-radius:0 0 8px 8px}.viz-queue__cells--stack .viz-queue__cell:only-child{border-radius:8px}.viz-queue__cell--end{border-color:var(--viz-end-color,hsl(var(--border)))}.viz-queue__cell--end+.viz-queue__cell{border-left-color:var(--viz-end-color,hsl(var(--border)))}.viz-queue__cells--stack .viz-queue__cell--end+.viz-queue__cell{border-left-color:hsl(var(--border));border-top-color:var(--viz-end-color,hsl(var(--border)))}.viz-queue__cell-marker{text-transform:uppercase;color:var(--viz-end-color,transparent);min-height:11px;font-size:9px}.viz-queue__cell-marker--blank{visibility:hidden}.viz-queue__cell-value{font-size:16px;font-weight:600}.viz-queue__cell-index{color:hsl(var(--muted-foreground));font-size:11px}.viz-queue__cell--new{box-shadow:inset 0 0 0 1px hsl(var(--status-ok,var(--primary)))}.viz-queue__cell--changed{background:hsl(var(--primary) / .14)}.viz-queue__cell--removed{opacity:.35}.viz-list__row{flex-wrap:wrap;align-items:center;row-gap:34px;padding-top:30px;display:flex}.viz-list__node{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:6px;align-items:stretch;display:inline-flex;position:relative;overflow:visible}.viz-list__field{text-transform:uppercase;color:hsl(var(--muted-foreground));background:hsl(var(--muted) / .45);align-items:center;padding:0 7px;font-size:8px;display:inline-flex}.viz-list__field--prev{border-right:1px solid hsl(var(--border));border-radius:5px 0 0 5px}.viz-list__field--next{border-left:1px solid hsl(var(--border));border-radius:0 5px 5px 0}.viz-list__val{padding:8px 12px;font-size:15px;font-weight:600}.viz-list__arrows{flex-direction:column;flex:none;gap:2px;padding:0 2px;display:inline-flex}.viz-list__node--new{box-shadow:0 0 0 2px hsl(var(--status-ok,var(--primary)) / .6)}.viz-list__node--changed{box-shadow:0 0 0 2px hsl(var(--primary) / .6)}.viz-list__node--removed{opacity:.35;border-style:dashed}.viz-grid{align-items:flex-start;gap:0;padding-top:26px}.viz-grid__empty{align-items:center;gap:6px;display:flex}.viz-grid__row{display:flex}.viz-grid__colidx,.viz-grid__rowidx,.viz-grid__corner{min-width:44px;min-height:26px;color:hsl(var(--muted-foreground));flex:none;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.viz-grid__rowidx,.viz-grid__corner{min-width:26px}.viz-grid__cell{border:1px solid hsl(var(--border));background:hsl(var(--card));flex:none;justify-content:center;align-items:center;min-width:44px;min-height:38px;margin:-.5px;padding:2px 6px;font-size:14px;display:inline-flex;position:relative}.viz-grid__cell--hole{opacity:.4;background:0 0;border-style:dashed}.viz-grid__cell--new{box-shadow:inset 0 0 0 1px hsl(var(--status-ok,var(--primary)))}.viz-grid__cell--changed{background:hsl(var(--primary) / .14)}.viz-grid__cell--removed{opacity:.35}.viz-grid__cell--cursor{box-shadow:0 0 0 2px hsl(var(--primary) / .35)}.viz-dual{gap:14px}.viz-dual__pane{flex-direction:column;align-items:center;gap:4px;display:flex}.viz-dual__caption{color:hsl(var(--muted-foreground));font-size:11px}.viz-modal__canvas-col .viz-dual .viz-svg{width:auto;max-width:100%;max-height:34vh}.viz-frame__line--next{color:hsl(var(--muted-foreground));background:0 0}.viz-modal__controls{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.viz-modal__zoom{align-items:center;gap:4px;display:flex}.viz-modal__zoom-btn{border:1px solid hsl(var(--border));background:hsl(var(--card));width:24px;height:24px;color:hsl(var(--foreground));cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.viz-modal__zoom-btn:hover{border-color:hsl(var(--primary) / .5);color:hsl(var(--primary))}.viz-modal__zoom-pct{min-width:46px;font-family:var(--font-mono);cursor:pointer;color:hsl(var(--muted-foreground));background:0 0;border:0;padding:2px 6px;font-size:12px}.viz-modal__diff{border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));cursor:pointer;background:0 0;border-radius:6px;padding:3px 10px;font-size:12px}.viz-modal__diff--on{color:hsl(var(--primary));border-color:hsl(var(--primary) / .5);background:hsl(var(--primary) / .08)}.viz-modal__canvas-col .viz-widget-host__canvas{justify-content:center;align-items:center;min-height:40vh;max-height:64vh;overflow:auto}.viz-modal__canvas-col .viz-svg{width:auto;max-width:100%;max-height:60vh}.viz-timeline{flex-wrap:wrap;gap:4px;margin-top:10px;display:flex}.viz-timeline__tick{border:1px solid hsl(var(--border));min-width:24px;height:22px;color:hsl(var(--foreground));font-size:11px;font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:5px;padding:0 4px}.viz-timeline__tick--unchanged{color:hsl(var(--muted-foreground) / .55);border-color:hsl(var(--border) / .5)}.viz-timeline__tick--active{border-color:hsl(var(--primary));color:hsl(var(--primary));background:hsl(var(--primary) / .12);font-weight:600}.viz-modal__output{border-top:1px solid hsl(var(--border));flex-direction:column;gap:10px;margin-top:16px;padding-top:12px;display:flex}.viz-output__summary{cursor:pointer;color:hsl(var(--muted-foreground));font-size:.85rem}.viz-output__pre{background:hsl(var(--secondary) / .5);font-family:var(--font-mono);white-space:pre-wrap;border-radius:8px;max-height:140px;margin:6px 0 0;padding:8px 10px;font-size:12px;overflow:auto}.viz-stdin{flex-direction:column;gap:6px;display:flex}.viz-stdin__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:hsl(var(--muted-foreground));font-size:10.5px}.viz-stdin__input{border:1px solid hsl(var(--border));background:hsl(var(--secondary) / .4);font-family:var(--font-mono);color:hsl(var(--foreground));resize:vertical;border-radius:8px;padding:8px 10px;font-size:12.5px}.viz-stdin__retrace{border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--foreground));cursor:pointer;border-radius:8px;align-self:flex-start;padding:5px 10px;font-size:12.5px}.viz-stdin__retrace:hover{border-color:hsl(var(--primary));color:hsl(var(--primary))}.viz-modal__guide-wrap{position:relative}.viz-modal__info{border:1px solid hsl(var(--border));width:32px;height:32px;color:hsl(var(--muted-foreground));cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.viz-modal__info--on{color:hsl(var(--primary-foreground));background:hsl(var(--primary));border-color:#0000}.viz-modal__info-ic{width:17px;height:17px}.viz-modal__guide-scrim{z-index:60;position:fixed;inset:0}.viz-modal__guide{z-index:61;background:hsl(var(--card));border:1px solid hsl(var(--border));width:300px;box-shadow:0 18px 44px -16px hsl(var(--foreground) / .4);border-radius:14px;flex-direction:column;gap:13px;padding:16px 16px 14px;display:flex;position:absolute;top:calc(100% + 10px);right:0}.viz-modal__guide-title{margin:0;font-size:15.5px;font-weight:700}.viz-modal__guide-eyebrow{font-family:var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:hsl(var(--muted-foreground));margin-bottom:2px;font-size:10px}.viz-modal__guide-body{color:hsl(var(--foreground));font-size:12.5px;line-height:1.5}.wb__lang{position:relative}.wb__lang-pill{border:1px solid hsl(var(--border));background:hsl(var(--card));height:28px;font-family:var(--font-mono);color:hsl(var(--foreground));border-radius:8px;align-items:center;gap:6px;padding:0 9px;font-size:12.5px;display:inline-flex}.wb__lang-pill--btn{cursor:pointer}.wb__lang-play{width:12px;height:12px;color:hsl(var(--primary));flex:none}.wb__lang-chev{opacity:.6;width:13px;height:13px}.wb__lang-scrim{z-index:30;position:fixed;inset:0}.wb__lang-menu{z-index:31;border:1px solid hsl(var(--border));background:hsl(var(--card));min-width:150px;box-shadow:0 10px 30px -10px hsl(var(--foreground) / .4);border-radius:10px;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.wb__lang-opt{text-align:left;font-family:var(--font-mono);color:hsl(var(--foreground));cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;display:flex}.wb__lang-opt:hover{background:hsl(var(--secondary) / .5)}.wb__lang-opt--active{color:hsl(var(--primary))}.wb__ghost-ic{flex:none;width:12px;height:12px}.wb__ghost--icon{padding:.25rem .4rem}.wb__ghost--icon .wb__ghost-ic{width:14px;height:14px}.wb__submit-ic{flex:none;width:13px;height:13px}.runnable__run-ic{flex:none;width:12px;height:12px}.runnable__run,.wb__submit,.wb__ghost{align-items:center;gap:.35rem;display:inline-flex}.editor-copy{z-index:4;border:1px solid hsl(var(--border));background:hsl(var(--card) / .85);width:30px;height:30px;color:hsl(var(--muted-foreground));opacity:.55;cursor:pointer;backdrop-filter:blur(4px);border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:8px;right:12px}.runnable__editor:hover .editor-copy{opacity:1}.editor-copy--done{color:hsl(var(--status-ok));border-color:hsl(var(--status-ok) / .5);opacity:1}.editor-copy__ic{width:15px;height:15px}
