.expert-forest-canvas line.candidate-edge,.expert-forest-canvas path.candidate-edge{stroke:var(--warning-color);stroke-width:5px;stroke-dasharray:8 5;fill:none;vector-effect:non-scaling-stroke;animation:.8s linear infinite expertEdgeFlow}.expert-forest-canvas line.candidate-edge.rejected,.expert-forest-canvas path.candidate-edge.rejected{stroke:var(--danger-color)}.union-find-candidate-label{z-index:2;background:var(--card-bg);color:var(--danger-color);font:800 .6rem var(--font-mono);text-transform:uppercase;white-space:nowrap;border-radius:5px;padding:2px 5px;position:absolute;transform:translate(-50%,-50%)}.expert-forest-union-find{align-self:flex-start;height:auto;min-height:0}.expert-forest-union-find>header{box-sizing:border-box;height:104px;min-height:104px;max-height:104px}.expert-forest-union-find .union-find-evidence{box-sizing:border-box;flex-wrap:nowrap;justify-content:flex-start;height:66px;min-height:66px;overflow-x:auto}.expert-forest-union-find .expert-forest-canvas{flex:0 0 280px;width:100%;min-height:280px}.union-find-depth-guide{z-index:0;pointer-events:none;position:absolute;inset:0}.union-find-depth-guide span{width:12%;color:var(--text-tertiary);font:700 .46rem var(--font-mono);letter-spacing:.08em;position:absolute;left:1%;transform:translateY(-50%)}.union-find-depth-guide span:after{background:color-mix(in srgb,var(--border-color) 55%,transparent);content:"";width:720%;height:1px;position:absolute;top:50%;left:100%}.union-find-stable-layer{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.union-find-stable-layer path{fill:none;stroke:var(--border-color);stroke-width:2px;vector-effect:non-scaling-stroke;transition:stroke .25s,opacity .25s}.union-find-stable-layer path.parent-edge.active,.union-find-stable-layer path.parent-edge.compressed{stroke:var(--accent-color);stroke-width:4px}.union-find-stable-layer path.compression-old-edge{stroke:var(--danger-color);stroke-width:3px;stroke-dasharray:7 5;opacity:.65;animation:1.1s ease-in-out infinite alternate oldParentFade}.expert-forest-union-find .expert-forest-node{box-sizing:border-box;background:var(--card-bg);width:52px;min-width:52px;min-height:52px;box-shadow:none;border-width:2px;border-radius:10px;place-content:center;padding:4px 2px;transition:top .35s cubic-bezier(.2,.8,.2,1),border-color .2s,background-color .2s;display:grid;transform:translate(-50%,-50%)}.expert-forest-union-find .expert-forest-node small{white-space:nowrap;font-size:.43rem}.expert-forest-union-find .expert-forest-node.active{border-color:var(--accent-color);background:color-mix(in srgb,var(--accent-color) 8%,var(--card-bg));box-shadow:none;transform:translate(-50%,-50%)}.expert-forest-union-find .expert-forest-node.compression-source{border-color:var(--accent-color);background:color-mix(in srgb,var(--accent-color) 9%,var(--card-bg));animation:.9s ease-in-out infinite alternate compressionSourcePulse}.expert-forest-union-find .expert-forest-node.compression-old-parent{border-color:var(--danger-color);background:color-mix(in srgb,var(--danger-color) 7%,var(--card-bg));box-shadow:none}.expert-forest-union-find .expert-forest-node.compression-root{border-color:var(--success-color);background:color-mix(in srgb,var(--success-color) 8%,var(--card-bg));box-shadow:none}.union-find-arc-label{z-index:2;background:var(--card-bg);font:800 .5rem var(--font-mono);white-space:nowrap;border-radius:5px;padding:2px 5px;position:absolute;transform:translate(-50%,-50%)}.union-find-arc-label.new-parent{color:var(--accent-color)}.union-find-arc-label.old-parent{color:var(--danger-color);text-decoration:line-through}@keyframes expertEdgeFlow{to{stroke-dashoffset:-26px}}@keyframes oldParentFade{to{opacity:.3}}@keyframes compressionSourcePulse{to{background:color-mix(in srgb,var(--accent-color) 16%,var(--card-bg))}}.trie-operation{border:1px solid var(--border-color);background:color-mix(in srgb,var(--bg-primary) 82%,var(--accent-color) 5%);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 11px;display:grid}.trie-operation-label,.trie-transition{flex-direction:column;display:flex}.trie-operation-label b,.union-find-edge-rail>div b{color:var(--accent-color);font:800 .62rem var(--font-mono);letter-spacing:.08em}.trie-operation-label span,.union-find-edge-rail>div span{color:var(--text-tertiary);font-size:.58rem}.trie-character-rail{justify-content:center;align-items:center;gap:5px;display:flex}.trie-character-rail>span{border:1px solid var(--border-color);text-align:center;background:var(--bg-secondary);border-radius:9px;min-width:42px;padding:5px;transition:transform .25s,border-color .25s,box-shadow .25s;display:grid}.trie-character-rail b{color:var(--text-primary);font:800 .88rem var(--font-mono)}.trie-character-rail small{color:var(--text-tertiary);font-size:.48rem}.trie-character-rail .done{opacity:.68;border-color:color-mix(in srgb,var(--success-color) 50%,var(--border-color))}.trie-character-rail .current{border-color:var(--warning-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--warning-color) 14%,transparent);transform:translateY(-3px)}.trie-character-rail .current.miss{border-color:var(--danger-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--danger-color) 14%,transparent)}.trie-transition{border-left:2px solid var(--warning-color);min-width:118px;padding-left:10px}.trie-transition small{color:var(--text-tertiary);font:.5rem var(--font-mono);text-transform:uppercase}.trie-transition b{color:var(--text-primary);font:.66rem var(--font-mono)}.trie-transition i{color:var(--warning-color);font-style:normal}.trie-transition.transition-miss{border-color:var(--danger-color)}.trie-transition.transition-miss i{color:var(--danger-color)}.trie-transition.transition-mark-terminal,.trie-transition.transition-check-terminal{border-color:var(--success-color)}.trie-transition.transition-mark-terminal i,.trie-transition.transition-check-terminal i{color:var(--success-color)}.union-find-edge-rail{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:12px;align-items:center;gap:12px;padding:8px 10px;display:flex}.union-find-edge-rail>div{flex-direction:column;min-width:105px;display:flex}.union-find-edge-rail ol{gap:6px;min-width:0;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.union-find-edge-rail li{border:1px solid var(--border-color);background:var(--bg-secondary);text-align:center;border-radius:8px;min-width:70px;padding:5px 8px;transition:all .25s;display:grid}.union-find-edge-rail li small{color:var(--text-tertiary);text-transform:uppercase;font-size:.48rem}.union-find-edge-rail li b{color:var(--text-secondary);font:.68rem var(--font-mono)}.union-find-edge-rail li.done{opacity:.58;border-color:color-mix(in srgb,var(--success-color) 45%,var(--border-color))}.union-find-edge-rail li.current{border-color:var(--warning-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--warning-color) 12%,transparent);transform:translateY(-2px)}.union-find-edge-rail li.current b{color:var(--warning-color)}.union-find-edge-rail li.current.accepted{border-color:var(--success-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--success-color) 12%,transparent)}.union-find-edge-rail li.current.accepted b{color:var(--success-color)}.union-find-edge-rail li.rejected{border-color:var(--danger-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--danger-color) 12%,transparent)}.union-find-edge-rail li.rejected b{color:var(--danger-color)}.union-find-find-role{align-content:center;display:grid;border-left:4px solid var(--warning-color)!important}.union-find-find-role b{color:var(--warning-color);font:.78rem var(--font-mono)}.union-find-find-role span{color:var(--text-secondary);font-size:.58rem}.union-find-checklist{grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr) auto minmax(120px,1fr);align-items:center;gap:7px;display:grid}.union-find-checklist>div{border:1px solid var(--border-color);background:var(--card-bg);border-radius:9px;align-content:center;min-height:46px;padding:6px 9px;transition:border-color .2s,background-color .2s;display:grid}.union-find-checklist small{color:var(--text-tertiary);font:.5rem var(--font-mono);text-transform:uppercase}.union-find-checklist b{color:var(--text-secondary);font:.66rem var(--font-mono)}.union-find-checklist>i{color:var(--text-tertiary);font-style:normal}.union-find-checklist>div.active{border-color:var(--warning-color);background:color-mix(in srgb,var(--warning-color) 9%,var(--card-bg))}.union-find-checklist>div.active b{color:var(--warning-color)}.union-find-checklist>div.done{border-color:var(--success-color);background:color-mix(in srgb,var(--success-color) 7%,var(--card-bg))}.union-find-checklist>div.done b,.union-find-checklist>div.winner b{color:var(--success-color)}.union-find-checklist>div.rejected{border-color:var(--danger-color);background:color-mix(in srgb,var(--danger-color) 7%,var(--card-bg))}.union-find-checklist>div.rejected b{color:var(--danger-color)}.union-find-checklist>div.skipped{opacity:.62;border-style:dashed}@media (max-width:760px){.trie-operation{grid-template-columns:1fr}.trie-operation-label{align-items:center}.trie-transition{border-left:0;border-top:2px solid var(--warning-color);text-align:center;padding:6px 0 0}.trie-character-rail{justify-content:flex-start;overflow-x:auto}.union-find-edge-rail{flex-direction:column;align-items:flex-start}.union-find-edge-rail ol{width:100%}.union-find-checklist{grid-template-columns:1fr}.union-find-checklist>i{display:none}.expert-forest-union-find{min-width:620px}.expert-forest-union-find .expert-forest-canvas{flex-basis:280px;min-height:280px}}@media (prefers-reduced-motion:reduce){.union-find-stable-layer path.compression-old-edge,.expert-forest-node.compression-source,.expert-forest-canvas line.candidate-edge,.expert-forest-canvas path.candidate-edge{animation:none}.expert-forest-node,.trie-character-rail>span,.union-find-edge-rail li{transition:none}.trie-character-rail .current,.union-find-edge-rail li.current{transform:none}}.union-find-evidence{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:10px;display:flex}.union-find-evidence>div{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:10px;padding:7px 10px}.union-find-evidence small{color:var(--text-tertiary);font:.56rem var(--font-mono);text-transform:uppercase;display:block}.union-find-path p{align-items:center;gap:5px;margin:4px 0 0;display:flex}.union-find-path b{background:color-mix(in srgb,var(--accent-color) 12%,var(--card-bg));min-width:28px;min-height:28px;color:var(--accent-color);border-radius:50%;place-items:center;display:grid}.union-find-path i{color:var(--accent-color);font-style:normal;font-weight:900}.union-find-roots{gap:7px;display:flex}.union-find-roots>span{border:1px solid var(--border-color);text-align:center;border-radius:8px;min-width:72px;padding:5px;display:grid}.union-find-roots>span.winner{border-color:var(--success-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--success-color) 12%,transparent)}.union-find-roots b{color:var(--text-primary)}.union-find-roots em{color:var(--text-secondary);font:.58rem var(--font-mono);font-style:normal}.union-find-compression{gap:2px;display:grid;border-left:4px solid var(--accent-color)!important}.union-find-compression b{color:var(--accent-color);font:.72rem var(--font-mono)}.union-find-compression span{color:var(--text-secondary);font-size:.62rem}.union-find-component-change{text-align:center;align-content:center;display:grid}.union-find-component-change b{color:var(--success-color);font:800 .9rem var(--font-mono)}.union-find-depth-guide span,.expert-forest-union-find .expert-forest-node small{font-size:.56rem}.trie-operation-label b,.union-find-edge-rail>div b{font-size:.72rem}.trie-operation-label span,.union-find-edge-rail>div span{font-size:.66rem}.trie-character-rail>span{min-width:44px;padding:6px}.trie-character-rail b{font-size:1rem}.trie-character-rail small{font-size:.6rem}.trie-transition{min-width:126px}.trie-transition small{font-size:.6rem}.trie-transition b{font-size:.76rem}.union-find-edge-rail li{min-width:76px;padding:6px 8px}.union-find-edge-rail li small{font-size:.58rem}.union-find-edge-rail li b{font-size:.76rem}.union-find-find-role b{font-size:.84rem}.union-find-find-role span{font-size:.66rem}.union-find-checklist small{font-size:.6rem}.union-find-checklist b{font-size:.76rem}
.trie-board-renderer{flex-direction:column;gap:10px;width:100%;min-height:480px;padding:12px;display:flex}.trie-board-renderer>header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.trie-board-renderer>header>div:first-child{flex-direction:column;display:flex}.trie-board-renderer>header strong{color:var(--text-primary)}.trie-board-renderer>header span{color:var(--text-secondary);font-size:.66rem}.trie-board-found{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;display:flex}.trie-board-found small{color:var(--text-tertiary);font:.52rem var(--font-mono);text-transform:uppercase}.trie-board-found b{background:color-mix(in srgb,var(--success-color) 13%,var(--bg-primary));color:var(--success-color);font:.62rem var(--font-mono);border-radius:999px;padding:3px 7px}.trie-board-found em{color:var(--text-tertiary);font-size:.62rem}.trie-board-sync{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:10px;grid-template-columns:minmax(0,.8fr) auto minmax(0,1.2fr) auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.trie-board-sync>div{min-width:0;display:grid}.trie-board-sync small{color:var(--text-tertiary);font:.5rem var(--font-mono);text-transform:uppercase}.trie-board-sync b{color:var(--text-primary);font:.63rem var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trie-board-sync>i{color:var(--accent-color);font-style:normal;font-weight:900}.trie-board-sync>strong{background:color-mix(in srgb,var(--accent-color) 12%,var(--card-bg));color:var(--accent-color);font:.55rem var(--font-mono);text-transform:uppercase;border-radius:999px;padding:4px 7px}.trie-board-sync>strong.outcome-prefix-miss,.trie-board-sync>strong.outcome-visited{background:color-mix(in srgb,var(--danger-color) 11%,var(--card-bg));color:var(--danger-color)}.trie-board-sync>strong.outcome-found{background:color-mix(in srgb,var(--success-color) 12%,var(--card-bg));color:var(--success-color)}.trie-board-stage{grid-template-columns:minmax(250px,.72fr) minmax(440px,1.28fr);gap:10px;min-height:350px;display:grid}.trie-board-panel,.trie-board-trie{border:1px solid var(--border-color);background:var(--card-bg);border-radius:12px;min-width:0}.trie-board-panel{flex-direction:column;padding:10px;display:flex}.trie-board-panel>header{justify-content:space-between;align-items:center;display:flex}.trie-board-panel>header strong{font-size:.72rem}.trie-board-panel>header span{color:var(--accent-color);font:.68rem var(--font-mono)}.trie-board-grid-wrap{flex:1;place-items:center;min-height:280px;display:grid;position:relative}.trie-board-grid-wrap>svg{z-index:1;aspect-ratio:1;width:min(92%,320px);position:absolute;overflow:visible}.trie-board-grid-wrap line{stroke:var(--accent-color);stroke-width:3.5px;stroke-linecap:round}.trie-board-grid-wrap line.candidate{stroke:var(--warning-color);stroke-dasharray:7 5;animation:.75s linear infinite trieBoardEdgeFlow}.trie-board-grid-wrap line.candidate.prefix-miss,.trie-board-grid-wrap line.candidate.visited{stroke:var(--danger-color)}.trie-board-grid-wrap marker path{fill:var(--accent-color)}.trie-board-grid{z-index:2;aspect-ratio:1;gap:8px;width:min(92%,320px);display:grid;position:relative}.trie-board-grid>div{border:2px solid var(--border-color);background:var(--bg-secondary);border-radius:11px;place-items:center;min-width:0;transition:transform .25s,border-color .25s,box-shadow .25s;display:grid;position:relative}.trie-board-grid>div>small{color:var(--text-tertiary);font:.47rem var(--font-mono);position:absolute;top:4px;left:5px}.trie-board-grid>div>b{color:var(--text-primary);font:900 1.05rem var(--font-mono)}.trie-board-grid>div>i{background:var(--accent-color);color:#fff;width:17px;height:17px;font:.5rem var(--font-mono);border-radius:50%;place-items:center;font-style:normal;display:grid;position:absolute;bottom:4px;right:4px}.trie-board-grid>div.in-path{border-color:var(--accent-color);background:color-mix(in srgb,var(--accent-color) 10%,var(--bg-secondary))}.trie-board-grid>div.current{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent-color) 16%,transparent);transform:scale(1.04)}.trie-board-grid>div.candidate{border-color:var(--warning-color)}.trie-board-grid>div.candidate.prefix-miss,.trie-board-grid>div.candidate.visited{border-color:var(--danger-color);background:color-mix(in srgb,var(--danger-color) 9%,var(--bg-secondary));animation:.45s trieBoardReject}.trie-board-trie{overflow:hidden}.trie-board-trie .expert-forest{box-sizing:border-box;min-height:348px}.trie-board-reason{border-left:3px solid var(--accent-color);background:var(--bg-primary);color:var(--text-secondary);border-radius:7px;margin:0;padding:7px 10px;font-size:.68rem}.trie-board-reason b{color:var(--accent-color);text-transform:capitalize}.trie-board-empty{min-height:360px;color:var(--text-secondary);place-items:center;display:grid}@keyframes trieBoardEdgeFlow{to{stroke-dashoffset:-24px}}@keyframes trieBoardReject{50%{transform:translate(3px)}}@media (max-width:850px){.trie-board-stage{grid-template-columns:1fr}.trie-board-panel{min-height:340px}.trie-board-trie .expert-forest{min-height:420px}}@media (max-width:620px){.trie-board-sync{grid-template-columns:1fr auto}.trie-board-sync>strong{justify-self:end}.trie-board-stage{grid-template-columns:minmax(680px,1fr);overflow-x:auto}.trie-board-grid-wrap{min-height:250px}}@media (prefers-reduced-motion:reduce){.trie-board-grid-wrap line.candidate,.trie-board-grid>div.candidate.prefix-miss,.trie-board-grid>div.candidate.visited{animation:none}}
.trie-board-renderer{container:trie-board/inline-size}.trie-board-trie .expert-forest-node{box-sizing:border-box;border-radius:12px;align-content:center;place-items:center;min-width:56px;min-height:56px;padding:4px 5px;display:grid}.trie-board-trie .expert-forest-node.active{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent-color) 18%, transparent)}.trie-board-trie .expert-forest-node small{display:none}.trie-board-trie .expert-forest-node strong{font-size:1.15rem}.trie-board-trie .expert-forest-canvas text{font-size:14px}.trie-board-trie .expert-forest-edge-label{stroke:var(--card-bg);stroke-width:7px;stroke-linejoin:round;paint-order:stroke fill}.trie-board-trie .expert-forest-canvas{min-height:390px}.trie-board-grid{aspect-ratio:1;gap:0;width:min(88%,300px)}.trie-board-grid-wrap>svg{width:min(88%,300px)}.trie-board-grid>div{border-radius:10px;transform:scale(.62)}.trie-board-grid>div.current{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent-color) 20%, transparent);transform:scale(.69)}.trie-board-grid>div.candidate.prefix-miss,.trie-board-grid>div.candidate.visited{animation-name:trieBoardRejectCompact}.trie-board-grid>div>b{font-size:1.25rem}.trie-board-grid>div>small{font-size:.95rem;font-weight:700;top:5px;left:6px}.trie-board-grid>div>i{width:30px;height:30px;font-size:1.05rem;font-weight:800;bottom:5px;right:5px}@container trie-board (max-width:760px){.trie-board-stage{grid-template-columns:minmax(170px,.72fr) minmax(245px,1fr);gap:8px}.trie-board-panel{min-height:360px;padding:8px}.trie-board-trie .expert-forest{min-height:470px;padding:9px}.trie-board-trie .expert-forest>header{gap:5px}.trie-board-trie .expert-forest-decision{max-width:58%;padding:6px 7px}.trie-board-trie .trie-operation{display:none}.trie-board-trie .expert-forest-canvas{min-height:380px}}@keyframes trieBoardRejectCompact{0%,to{transform:scale(.62)}50%{transform:translate(3px)scale(.62)}}@container trie-board (max-width:420px){.trie-board-sync{grid-template-columns:1fr auto}.trie-board-sync>strong{justify-self:end}.trie-board-stage{grid-template-columns:minmax(0,1fr);overflow-x:visible}.trie-board-grid-wrap{min-height:250px}}
