:root{--dp-red: rgb(196, 18, 48);--dp-blue: rgb(0, 88, 160);--dp-teal: rgb(0, 142, 134);--dp-orange: rgb(230, 108, 20);--dp-gray: rgb(95, 95, 95);--light-gray: rgb(242, 242, 242);--soft-blue: rgb(230, 242, 255);--soft-green: rgb(232, 248, 240);--soft-red: rgb(255, 235, 235);--soft-orange: rgb(255, 243, 230);--page: rgb(252, 252, 251);--surface: rgb(255, 255, 255);--ink: rgb(28, 28, 30);--ink-soft: rgb(95, 95, 95);--line: rgb(226, 226, 224);--radius: 10px;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--page);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%}a{color:var(--dp-blue)}.wrap{max-width:1180px;margin:0 auto;padding:24px 20px 168px}.crumb{font-size:14px;color:var(--ink-soft);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.crumb a{text-decoration:none}.crumb a:hover{text-decoration:underline}h1{font-size:26px;font-weight:600;margin:8px 0 4px;letter-spacing:-.01em}h2{font-size:19px;font-weight:600;margin:32px 0 12px}.lede{color:var(--ink-soft);margin:0 0 24px}.banner{background:var(--soft-blue);border-radius:16px;padding:12px;margin:0 0 28px;display:flex;justify-content:center}.banner img{width:100%;max-width:760px;height:auto;display:block}.weeks{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;text-decoration:none;color:inherit;display:block;min-height:118px}a.card:hover{border-color:var(--dp-teal)}.card.muted{background:transparent;border-style:dashed;color:var(--ink-soft)}.card.ready{border-color:var(--dp-teal);border-width:2px}.card .eyebrow{font-size:13px;color:var(--ink-soft)}.card .name{font-size:15px;font-weight:500;margin-top:6px}.card .meta{font-size:13px;color:var(--dp-teal);margin-top:10px}.card.muted .meta{color:var(--ink-soft)}.classblock{border-top:1px solid var(--line);padding-top:16px;margin-top:24px}.classblock .day{font-size:13px;color:var(--ink-soft)}.classblock .title{font-size:17px;font-weight:500;margin:2px 0 12px}.topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.empty{font-size:14px;color:var(--ink-soft);font-style:normal}.grid{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);grid-template-areas:"code viz" "mem exp";gap:22px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;min-width:0;overflow:hidden}.panel h3{font-size:13px;font-weight:500;color:var(--ink-soft);margin:0 0 10px}.area-code{grid-area:code}.area-viz{grid-area:viz}.area-mem{grid-area:mem}.area-exp{grid-area:exp}.code{font-family:var(--font-mono);font-size:13px;line-height:1.7;margin:0;overflow-x:auto;max-width:100%}.code .ln{display:flex;gap:12px;padding:1px 6px;border-radius:5px;white-space:pre}.code .ln .num{color:var(--ink-soft);width:14px;text-align:right;flex:none}.code .ln.on{background:var(--soft-blue);color:var(--dp-blue)}.cells{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;padding:4px 0 2px}.cellwrap{display:flex;flex-direction:column;align-items:center;gap:4px;flex:none}.cell{width:52px;height:44px;border-radius:8px;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:15px;background:var(--surface);transition:transform .16s ease,background .16s ease}.cell.sorted{background:var(--soft-green);border-color:var(--dp-teal)}.cell.compare{background:var(--soft-blue);border-color:var(--dp-blue)}.cell.keyed,.cell.moving{background:var(--soft-orange);border-color:var(--dp-orange)}.cell.hole{background:transparent;border-style:dashed}.cell.changed{transform:translateY(-3px)}.idx{font-size:12px;color:var(--ink-soft);font-family:var(--font-mono)}.tag{font-size:11px;color:var(--ink-soft)}.keychip{display:flex;align-items:center;gap:10px;margin-bottom:12px;min-height:48px}.keychip .cell{border-color:var(--dp-orange);background:var(--soft-orange)}.keychip span{font-size:13px;color:var(--ink-soft)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-soft);margin-top:12px}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:-1px;border:1.5px solid}.legend .s{background:var(--soft-green);border-color:var(--dp-teal)}.legend .c{background:var(--soft-blue);border-color:var(--dp-blue)}.legend .k{background:var(--soft-orange);border-color:var(--dp-orange)}.legend .h{background:transparent;border-color:var(--line);border-style:dashed}.frames{display:flex;flex-direction:column-reverse;gap:6px}.frame{border:1.5px solid var(--line);border-radius:8px;padding:8px 10px;font-family:var(--font-mono);font-size:13px;background:var(--surface)}.frame.active{border-color:var(--dp-orange);background:var(--soft-orange)}.frame.waiting{border-color:var(--dp-gray);background:var(--light-gray)}.frame.returning{border-color:var(--dp-teal);background:var(--soft-green)}.frame .sub{font-size:12px;color:var(--ink-soft)}.phasebar{font-size:13px;padding:6px 10px;border-radius:8px;margin-bottom:10px;display:inline-block}.phasebar.descent{background:var(--soft-blue);color:var(--dp-blue)}.phasebar.unwind{background:var(--soft-green);color:var(--dp-teal)}.phasebar.done{background:var(--light-gray);color:var(--ink-soft)}.pending{font-family:var(--font-mono);font-size:14px;margin-top:12px;color:var(--ink)}.vars{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-mono);font-size:14px}.var{padding:3px 9px;border-radius:7px;background:var(--light-gray)}.var.changed{background:var(--soft-orange);color:#783808}.counters{margin-top:12px;font-size:13px;color:var(--ink-soft)}.machine{margin-top:12px;font-family:var(--font-mono);font-size:13px;color:var(--ink-soft)}.explain{font-size:15px;margin:0}.why{margin-top:12px;font-size:14px;color:var(--ink-soft);background:var(--light-gray);border-radius:8px;padding:10px 12px}.whybtn{margin-top:10px}.summary{font-size:14px}.summary strong{font-weight:600}.controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-top:14px}button,select{font:inherit;font-size:14px;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer;min-height:44px}button:hover:not(:disabled){border-color:var(--dp-teal)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--soft-blue);border-color:var(--dp-blue);color:var(--dp-blue)}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--dp-blue);outline-offset:2px}.spacer{flex:1}.count{font-family:var(--font-mono);font-size:13px;color:var(--ink-soft)}.track{position:relative;height:8px;border-radius:4px;background:var(--light-gray);margin-top:10px;overflow:hidden}.track .fill{position:absolute;inset:0 auto 0 0;background:var(--dp-teal);opacity:.55}.track .tick{position:absolute;top:0;bottom:0;width:1px;background:var(--surface)}@media (max-width: 1023px){.grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"viz" "code" "mem" "exp"}}@media (max-width: 767px){.wrap{padding:16px 14px 190px}h1{font-size:22px}.grid{gap:10px}.grid{grid-template-areas:"viz" "exp" "tabs"}.area-code,.area-mem{display:none}.tabbed .area-code,.tabbed .area-mem{display:block;grid-area:tabs}.tabs{display:flex;gap:8px;margin-top:10px}.cell{width:44px;height:40px;font-size:14px}button{min-height:52px;padding:8px 16px}}@media (min-width: 768px){.tabs{display:none}}@media (prefers-reduced-motion: reduce){.cell{transition:none}.cell.changed{transform:none;box-shadow:inset 0 0 0 2px var(--dp-orange)}}.arrowband{position:relative;width:100%}.cells{position:relative}.ptr{font-size:12px;font-family:var(--font-mono);color:var(--dp-blue);min-height:18px}.divider{position:absolute;top:-4px;bottom:26px;width:0;border-left:2px dashed var(--dp-teal);transform:translate(-3px)}.vars.consts{margin-top:8px}.var.const{background:transparent;border:1px dashed var(--line);color:var(--ink-soft)}.stackregion{display:flex;flex-direction:column;gap:4px}.slot{display:flex;align-items:stretch;gap:10px;position:relative;border:1.5px solid var(--line);border-radius:8px;padding:8px 10px;min-height:58px;background:var(--surface)}.slot .addr{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);flex:none;width:88px}.slot .slotbody{min-width:0}.slot .slothead{font-family:var(--font-mono);font-size:13px}.slot .slothead em{font-style:normal;color:var(--ink-soft);font-size:12px}.slot .slotvars{display:flex;gap:12px;flex-wrap:wrap;font-family:var(--font-mono);font-size:12px;margin-top:3px}.slot .slotvars .ret{color:var(--ink-soft)}.slot.active{border-color:var(--dp-orange);background:var(--soft-orange)}.slot.waiting{border-color:var(--dp-gray);background:var(--light-gray)}.slot.returning{border-color:var(--dp-teal);background:var(--soft-green)}.slot.released{border-style:dashed;color:var(--ink-soft);background:repeating-linear-gradient(45deg,transparent,transparent 7px,var(--light-gray) 7px,var(--light-gray) 14px)}.slot.never{border-style:dashed;color:var(--ink-soft);background:transparent}.spmark{position:absolute;right:-6px;top:50%;transform:translate(100%,-50%);font-family:var(--font-mono);font-size:12px;color:var(--dp-red);white-space:nowrap}.spmark.top{position:static;transform:none;margin-top:6px}.stackregion{padding-right:78px}@media (max-width: 767px){.slot .addr{width:72px;font-size:11px}.stackregion{padding-right:62px}}.inlineval{margin-left:16px;color:var(--dp-gray);font-size:12px;opacity:.95}.code .ln.on .inlineval{color:#5a5a5c}.watch{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.watch h4{font-size:13px;font-weight:500;color:var(--ink-soft);margin:0 0 8px}.watch table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:13px}.watch td{padding:4px 8px;border-bottom:1px solid var(--line)}.watch tr:last-child td{border-bottom:none}.watch td.expr{color:var(--ink);white-space:nowrap}.watch td.val{text-align:right;font-weight:600}.watch tr.compare td.val{color:var(--dp-blue)}.watch tr.key td.val{color:var(--dp-orange)}.watch tr.moving td.val{color:var(--dp-teal)}@media (max-width: 767px){.inlineval{display:none}.watch td{padding:6px}}.controlbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fcfcfbf7;border-top:1px solid var(--line);padding:10px 20px calc(10px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.controlinner{max-width:1180px;margin:0 auto}.controlbar .controls{margin-top:0;border:none;background:transparent;padding:0;border-radius:0}.controlbar .track{margin-top:8px}.inlineval,.watch td.val,.slot .slotvars span,.var{font-style:italic}.watch td.expr,.var.const{font-style:normal}@media (max-width: 767px){.controlbar{padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))}.controlbar .controls{gap:6px}}.treeview{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.treelevel{display:flex;align-items:center;gap:10px;margin-bottom:6px}.treelevel .lvl{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);width:22px;flex:none}.treerow{display:flex;gap:6px;flex-wrap:wrap;min-width:0}.tnode{border:1.5px solid var(--line);border-radius:7px;padding:3px 7px;font-family:var(--font-mono);font-size:11px;background:var(--surface);display:flex;flex-direction:column;line-height:1.35}.tnode.active{border-color:var(--dp-orange);background:var(--soft-orange)}.tnode.waiting{border-color:var(--dp-gray);background:var(--light-gray)}.tnode.done{border-color:var(--dp-teal);background:var(--soft-green)}.tnode.pending{border-style:dashed;color:var(--ink-soft)}.tnode.here{outline:2px solid var(--dp-blue);outline-offset:1px}.tnode .tresult{font-size:10px;color:var(--ink-soft);font-style:italic}.lvlwork{font-size:11px;color:var(--ink-soft);font-family:var(--font-mono)}.cell.dim{opacity:.35}.cell.half-left{box-shadow:inset 0 -3px 0 var(--dp-blue)}.cell.half-right{box-shadow:inset 0 -3px 0 var(--dp-red)}.cell.sentinel{font-style:italic;color:var(--dp-orange);border-style:dashed}.threecase{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;font-size:12px;font-family:var(--font-mono)}.threecase .case{padding:4px 9px;border-radius:7px;border:1.5px solid var(--line)}.threecase .left{background:var(--soft-blue);border-color:var(--dp-blue)}.threecase .cross{background:var(--soft-orange);border-color:var(--dp-orange)}.threecase .right{background:var(--soft-red);border-color:var(--dp-red)}.threecase .win{outline:2px solid var(--dp-teal);outline-offset:1px;font-weight:600}.scanline{margin-top:10px;font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);font-style:italic}.matrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.matbox{text-align:center}.matname{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);margin-bottom:3px}.matop{font-size:18px;color:var(--ink-soft)}table.matrix{border-collapse:collapse;font-family:var(--font-mono);font-size:13px}table.matrix td{width:32px;height:30px;text-align:center;border:1px solid var(--line)}table.matrix td.q11{background:var(--soft-blue)}table.matrix td.q12{background:var(--soft-green)}table.matrix td.q21{background:var(--soft-orange)}table.matrix td.q22{background:var(--soft-red)}.striprow{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.stripname{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);width:16px;flex:none;padding-top:12px}@media (max-width: 767px){.tnode{font-size:10px;padding:2px 5px}table.matrix td{width:26px;height:26px;font-size:12px}}.toolsection{margin-top:22px;padding-top:16px;border-top:1px dashed var(--border-strong, var(--line))}.toolhead{font-size:13px;color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px}.card.tool{background:var(--soft-blue);border-color:var(--dp-blue);border-style:dashed}.card.tool .eyebrow{color:var(--dp-blue);font-weight:600}.toolnote{font-size:13px;color:var(--ink-soft);margin-top:10px}.abf{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;font-size:12px}.abf .chip{padding:4px 9px;border-radius:7px;border:1.5px solid var(--line);font-family:var(--font-mono)}.abf .a{background:var(--soft-orange);border-color:var(--dp-orange)}.abf .b{background:var(--soft-blue);border-color:var(--dp-blue)}.abf .f{background:var(--soft-green);border-color:var(--dp-teal)}.dirbanner{font-size:12px;padding:4px 9px;border-radius:7px;display:inline-block;margin-bottom:8px}.dirbanner.down{background:var(--soft-blue);color:var(--dp-blue)}.dirbanner.up{background:var(--soft-green);color:var(--dp-teal)}.treelevel.hot{background:var(--light-gray);border-radius:8px}table.levels{border-collapse:collapse;width:100%;margin-top:14px;font-family:var(--font-mono);font-size:12px}table.levels th{text-align:left;font-weight:500;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:5px 8px}table.levels td{padding:5px 8px;border-bottom:1px solid var(--line)}table.levels tr.hot td{background:var(--soft-orange)}.canvaswrap{overflow-x:auto}.bnode circle{fill:var(--surface);stroke:var(--border-strong);stroke-width:1.6}.bnode text{font-family:var(--font-mono);font-size:14px;fill:var(--ink)}.bnode.current circle{fill:var(--soft-orange);stroke:var(--dp-orange);stroke-width:2.6}.bnode.output circle{fill:var(--soft-green);stroke:var(--dp-teal);stroke-width:2}.bnode.onstack circle{fill:var(--surface);stroke:var(--dp-orange);stroke-width:2}.bnode .halo{fill:none;stroke:var(--dp-orange);stroke-width:1;opacity:.4}.bnode.unvisited circle{stroke:var(--line)}.edge{stroke:var(--dp-gray);stroke-width:1.6;opacity:.55}.edge.hot{opacity:1;stroke-width:3}.edge.hot.left,.edge.hot.right{stroke:var(--dp-blue)}.edge.hot.up{stroke:var(--dp-teal);stroke-dasharray:5 4}.nullstub line{stroke:var(--line);stroke-width:1.2;stroke-dasharray:3 3}.nullstub text{font-family:var(--font-mono);font-size:10px;fill:var(--ink-soft)}.nullstub.live line{stroke:var(--dp-red);stroke-dasharray:none}.nullstub.live text{fill:var(--dp-red);font-weight:600}.legend .cur{background:var(--soft-orange);border-color:var(--dp-orange)}.legend .stk{background:var(--surface);border-color:var(--dp-orange)}.legend .out{background:var(--soft-green);border-color:var(--dp-teal)}.legend .un{background:var(--surface);border-color:var(--line)}.outputline{margin-top:12px;font-family:var(--font-mono);font-size:14px}.outputline .olabel{font-family:var(--font-sans);font-size:12px;color:var(--ink-soft);margin-right:10px}.frames{display:flex;flex-direction:column-reverse;gap:5px}.bnode.queued circle{fill:var(--surface);stroke:var(--dp-blue);stroke-width:2;stroke-dasharray:4 3}.bnode.deleted circle{fill:none;stroke:var(--line);stroke-width:1.2;stroke-dasharray:3 3}.bnode.deleted text{fill:var(--ink-soft);opacity:.4}.nodeval{font-family:var(--font-mono);font-size:11px;fill:var(--dp-teal)}.legend .que{background:var(--surface);border-color:var(--dp-blue);border-style:dashed}.legend .del{background:transparent;border-color:var(--line);border-style:dashed}.queuestrip{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.qcell{min-width:30px;padding:5px 8px;text-align:center;border-radius:6px;border:1.5px solid var(--dp-blue);background:var(--soft-blue);font-family:var(--font-mono);font-size:13px}.qcell.front{border-color:var(--dp-orange);background:var(--soft-orange);font-weight:600}.comparebox{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.cmprow{display:flex;gap:12px;align-items:baseline;font-size:12px;margin-bottom:4px}.cmprow span{color:var(--ink-soft);width:104px;flex:none}.cmprow code{font-family:var(--font-mono);font-size:13px;letter-spacing:.06em}.cmprow.live code{color:var(--dp-teal);font-weight:600}.rules{margin-top:10px;font-size:12px;color:var(--ink-soft);line-height:1.8}.rules b{font-weight:500;color:var(--ink)}.structnote{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;font-size:12px}.ptrchip{font-family:var(--font-mono);padding:3px 9px;border-radius:7px;border:1.5px dashed var(--line);color:var(--ink-soft)}.ptrchip.on{border-style:solid;border-color:var(--dp-teal);background:var(--soft-green);color:#0c5041}.ovchip{padding:3px 9px;border-radius:7px;background:var(--soft-blue);color:var(--dp-blue)}.nullstub.always line{stroke:var(--border-strong)}.nullstub.always text{fill:var(--ink-soft)}.blockedmark{font-family:var(--font-mono);font-size:11px;fill:var(--dp-red);font-weight:600}.bst circle,.bst rect{fill:var(--surface);stroke:var(--border-strong);stroke-width:1.5}.bst text{font-family:var(--font-mono);font-size:13px;fill:var(--ink)}.bst text.tag{font-size:10px;fill:var(--dp-gray);font-family:var(--font-sans)}.bst.current circle,.bst.current rect{stroke:var(--dp-orange);stroke-width:3.2;fill:var(--soft-orange)}.bst.visited circle,.bst.visited rect{stroke:var(--dp-teal);stroke-width:2.6}.bst.rejected circle,.bst.rejected rect{fill:url(#hatch);stroke:var(--line);stroke-dasharray:3 3}.bst.role-w circle,.bst.role-y circle,.bst.role-x circle,.bst.role-x rect,.bst.role-z rect,.bst.role-z circle{stroke:var(--dp-blue);stroke-width:2.6}.bstedge{stroke:var(--dp-gray);fill:none}.bstedge.traversed{stroke:var(--dp-teal)}.bstedge.selected{stroke:var(--dp-orange)}.entrychip rect{fill:var(--soft-orange);stroke:var(--dp-orange);stroke-width:1.5;stroke-dasharray:4 3}.entrychip text{font-family:var(--font-mono);font-size:12px;fill:#783808}.cmpline{margin-top:10px;font-family:var(--font-mono);font-size:14px}.bstlegend{margin-top:10px}.legend i.lg{width:11px;height:11px;border:1.8px solid var(--line);display:inline-block;border-radius:50%;margin-right:5px}.legend i.lg.current{border-color:var(--dp-orange);background:var(--soft-orange)}.legend i.lg.visited{border-color:var(--dp-teal)}.legend i.lg.rejected{border-style:dashed;background:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--light-gray) 3px,var(--light-gray) 6px)}.legend i.lg.ext{border-radius:2px}.legend i.lg.edge-traversed{border:none;border-top:3px solid var(--dp-teal);height:0;border-radius:0;width:16px;vertical-align:4px}.legend i.lg.edge-selected{border:none;border-top:3px dashed var(--dp-orange);height:0;border-radius:0;width:16px;vertical-align:4px}.exttoggle{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:14px}.exttoggle input{width:18px;height:18px}.comparegrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.minitree{min-width:0}.minilabel{font-size:13px;font-weight:500;margin-bottom:2px}.miniorder{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);margin-bottom:6px}.minimetrics{font-family:var(--font-mono);font-size:13px;margin-top:4px}@media (max-width: 767px){.comparegrid{grid-template-columns:1fr}}.cross line{stroke:var(--dp-red);stroke-width:3;stroke-linecap:round}.bst.removing circle,.bst.removing rect{stroke-dasharray:5 3}.bst.promoting circle,.bst.promoting rect{stroke:var(--dp-teal);stroke-width:3}.ghost circle{fill:none;stroke:var(--dp-teal);stroke-width:1.6;stroke-dasharray:4 4}.ghost line{stroke:var(--dp-teal);stroke-width:1.8;stroke-dasharray:4 4}.legend i.lg.removing{border-color:var(--dp-red);border-style:dashed}.legend i.lg.promoting{border-color:var(--dp-teal);border-width:3px}.avlnode circle,.avlnode rect{fill:var(--surface);stroke:var(--border-strong);stroke-width:1.5}.avlnode text.key{font-family:var(--font-mono);font-size:13px;fill:var(--ink)}.avlnode.ext rect{fill:var(--light-gray);stroke:var(--line)}.avlnode.current circle{stroke-width:3.2}.avlnode.role-z circle{stroke:var(--dp-red);stroke-width:3;fill:var(--soft-red)}.avlnode.role-y circle{stroke:var(--dp-orange);stroke-width:3;fill:var(--soft-orange)}.avlnode.role-x circle{stroke:var(--dp-blue);stroke-width:3;fill:var(--soft-blue)}.avlnode.role-w circle{stroke:var(--dp-orange);stroke-width:2.4;stroke-dasharray:4 3}.avlnode.violation circle{stroke-dasharray:5 3}.rolebadge{font-family:var(--font-mono);font-size:12px;font-weight:700;fill:var(--dp-red)}.abbadge{font-family:var(--font-mono);font-size:11px;fill:var(--dp-teal);font-weight:700}.subbadge{font-family:var(--font-mono);font-size:10px;fill:var(--dp-gray)}.hlabel{font-family:var(--font-mono);font-size:10px;fill:var(--ink-soft)}.addr{font-family:var(--font-mono);font-size:9px;fill:var(--dp-gray)}.avledge{stroke:var(--dp-gray);stroke-width:1.5;opacity:.55}.avledge.path{stroke:var(--dp-orange);stroke-width:3;opacity:1}.violline{margin-top:10px;font-family:var(--font-mono);font-size:13px;color:var(--dp-red)}.legend i.lg.role-z{border-color:var(--dp-red);background:var(--soft-red)}.legend i.lg.role-y{border-color:var(--dp-orange);background:var(--soft-orange)}.legend i.lg.role-x{border-color:var(--dp-blue);background:var(--soft-blue)}.legend i.lg.role-w{border-color:var(--dp-orange);border-style:dashed}.toggles{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px}.lnode rect{fill:var(--surface);stroke:var(--border-strong);stroke-width:1.5}.lnode line{stroke:var(--line);stroke-width:1}.lnode text.val{font-family:var(--font-mono);font-size:15px;fill:var(--ink)}.lnode text.val.small{font-size:9px;fill:var(--ink-soft)}.lnode text.addr{font-family:var(--font-mono);font-size:9px;fill:var(--dp-gray)}.lnode .nextdot{fill:var(--dp-blue);stroke:none}.lnode.operand rect{stroke:var(--dp-orange);stroke-width:2.4;stroke-dasharray:5 3}.heldband rect{fill:var(--soft-orange);stroke:var(--dp-orange);stroke-width:1.2;stroke-dasharray:4 3;opacity:.55}.heldband text{font-family:var(--font-sans);font-size:10px;fill:#783808}.linkcross line{stroke:var(--dp-gray);stroke-width:2;stroke-linecap:round}.lnode.orphan rect{stroke:var(--dp-red);stroke-dasharray:3 3;opacity:.6}.lnode.failed rect{stroke:var(--dp-red);stroke-width:2.6;fill:var(--soft-red)}.lnode.helper rect{fill:var(--light-gray);stroke-dasharray:4 3}.lnode.destroyed rect{fill:none;opacity:.5;stroke-dasharray:3 3}.destroycross line{stroke:var(--dp-red);stroke-width:2.6;stroke-linecap:round}.larc{fill:none;stroke:var(--dp-blue);stroke-width:1.8}.larc.hot{stroke:var(--dp-orange);stroke-width:3}.larc.faded{stroke:var(--dp-gray);stroke-width:1.6;opacity:.55;stroke-dasharray:5 4}.nullmark path{stroke:var(--dp-gray);stroke-width:1.6;fill:none}.nullmark line{stroke:var(--dp-gray);stroke-width:1.8}.nullmark text{font-family:var(--font-mono);font-size:9px;fill:var(--dp-gray)}.nullmark.hot path,.nullmark.hot line{stroke:var(--dp-orange);stroke-width:2.4}.nullmark.hot text{fill:var(--dp-orange)}.anchor path{stroke:var(--dp-red);stroke-width:2.2;fill:none}.anchor circle{fill:var(--dp-red)}.anchor text{font-family:var(--font-mono);font-size:11px;fill:var(--dp-red);font-weight:600}.anchor.an1 path{stroke:var(--dp-teal)}.anchor.an1 circle{fill:var(--dp-teal)}.anchor.an1 text{fill:var(--dp-teal)}.ptr path{fill:none;stroke-width:1.7;stroke-dasharray:5 3}.ptrlabel{font-family:var(--font-mono);font-size:12px;fill:var(--ink-soft)}.pv0 path{stroke:#7846b4;fill:none}.pv1 path{stroke:var(--dp-orange);fill:none}.pv2 path{stroke:var(--dp-teal);fill:none}.pv3 path{stroke:var(--dp-gray);fill:none}.pv0 .ptrlabel,text.ptrlabel.pv0{fill:#7846b4}.pv1 .ptrlabel,text.ptrlabel.pv1{fill:var(--dp-orange)}.pv2 .ptrlabel,text.ptrlabel.pv2{fill:var(--dp-teal)}.pv3 .ptrlabel,text.ptrlabel.pv3{fill:var(--dp-gray)}.ptr.dangling path{stroke:var(--dp-red)}.ptrlabel.dangling{fill:var(--dp-red);font-weight:600}.inlinekey rect{fill:none;stroke:var(--line);stroke-width:1}.inlinekey line{stroke:var(--line)}.inlinekey .val{font-size:10px;fill:var(--ink-soft)}.inlinekey .nextdot{fill:var(--dp-blue)}.inlinekey .keytext{font-family:var(--font-sans);font-size:9px;fill:var(--ink-soft)}.failline{margin-top:10px;font-size:13px;color:var(--dp-red)}.failline b{text-transform:uppercase;letter-spacing:.04em;font-size:11px}.mistakeflag{color:var(--dp-red);font-weight:500}.diag{font-size:12px;margin:4px 0;color:var(--ink-soft)}.diag b{text-transform:uppercase;font-size:10px;letter-spacing:.04em;margin-right:6px}.diag.transient b{color:var(--dp-blue)}.diag.warning b{color:var(--dp-orange)}.diag.failure b{color:var(--dp-red)}.legend i.lg.link{border:none;border-top:3px solid var(--dp-blue);height:0;border-radius:0;width:16px;vertical-align:4px}.legend i.lg.linkhot{border:none;border-top:3px solid var(--dp-orange);height:0;border-radius:0;width:16px;vertical-align:4px}.legend i.lg.linkold{border:none;border-top:3px dashed var(--dp-gray);height:0;border-radius:0;width:16px;vertical-align:4px;opacity:.6}.legend i.lg.anch{border:none;border-left:3px solid var(--dp-red);height:11px;border-radius:0;width:0;margin-right:8px}.legend i.lg.pv0{border:none;border-top:3px dashed rgb(120,70,180);height:0;border-radius:0;width:16px;vertical-align:4px}.legend i.lg.pv1{border:none;border-top:3px dashed var(--dp-orange);height:0;border-radius:0;width:16px;vertical-align:4px}.legend i.lg.pv2{border:none;border-top:3px dashed var(--dp-teal);height:0;border-radius:0;width:16px;vertical-align:4px}.legend i.lg.heldn{border-color:var(--dp-orange);border-style:dashed;border-radius:3px}.larc.under{stroke-dasharray:none;opacity:.95}.rowlabel{font-family:var(--font-sans);font-size:10px;fill:var(--ink-soft)}.nodemark{font-family:var(--font-sans);font-size:10px;font-weight:600}.nodemark.found{fill:var(--dp-teal)}.nodemark.note{fill:var(--dp-gray)}.nodemark.wrong{fill:var(--dp-red)}.accessrow{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.accesschip{min-width:28px;text-align:center;padding:4px 8px;border-radius:6px;border:1.5px solid var(--line);font-family:var(--font-mono);font-size:13px;color:var(--ink-soft)}.accesschip.now{border-color:var(--dp-orange);background:var(--soft-orange);color:#783808;font-weight:600}.cachegrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cacheside{border:1px solid var(--line);border-radius:10px;padding:12px}.cachehead{display:flex;align-items:center;gap:10px}.cachename{font-family:var(--font-mono);font-size:14px;font-weight:600}.outcome{font-size:11px;padding:2px 8px;border-radius:10px;letter-spacing:.04em}.outcome.hit{background:var(--soft-green);color:#0c5041}.outcome.miss{background:var(--soft-red);color:#821424}.cachenote{font-size:12px;color:var(--ink-soft);margin:4px 0 10px}.cachelines{display:flex;flex-direction:column;gap:5px}.cacheline{display:flex;align-items:baseline;gap:10px;padding:6px 9px;border-radius:7px;border:1.5px solid var(--line);font-family:var(--font-mono);font-size:13px}.cacheline.empty{border-style:dashed;color:var(--ink-soft)}.cacheline.current{border-color:var(--dp-orange);background:var(--soft-orange)}.cacheline .slot{font-size:11px;color:var(--ink-soft);width:44px;flex:none}.cacheline .holds{flex:1;letter-spacing:.08em}.cacheline .age{font-size:10px;color:var(--ink-soft)}.evicted{margin-top:8px;font-size:12px;color:var(--dp-red)}.cachestats{margin-top:10px;font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}@media (max-width: 767px){.cachegrid{grid-template-columns:1fr}}.heaparray{display:flex;gap:5px;flex-wrap:wrap;align-items:flex-start;margin-bottom:14px}.hcell{min-width:42px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 7px;border-radius:7px;border:1.8px solid var(--dp-blue);background:var(--soft-blue)}.hcell .hkey{font-family:var(--font-mono);font-size:15px;color:var(--ink)}.hcell .hidx{font-family:var(--font-mono);font-size:9px;font-style:italic;color:var(--dp-gray)}.hcell.current{border-color:var(--dp-orange);background:var(--soft-orange)}.hcell.compare{border-color:var(--dp-orange);border-style:dashed}.hcell.violation{border-color:var(--dp-red);background:var(--soft-red)}.hcell.settled{border-color:var(--dp-teal);background:var(--soft-green)}.hcell.sorted{border-color:var(--dp-gray);background:var(--light-gray);opacity:.85}.hcell.onpath{box-shadow:0 2px 0 var(--dp-orange)}.boundarynote{align-self:center;font-size:11px;color:var(--ink-soft);margin-left:8px}.hnode circle{fill:var(--soft-blue);stroke:var(--dp-blue);stroke-width:1.8}.hnode .hnkey{font-family:var(--font-mono);font-size:14px;fill:var(--ink)}.hnidx{font-family:var(--font-mono);font-size:9px;font-style:italic;fill:var(--dp-gray)}.hnode.current circle{fill:var(--soft-orange);stroke:var(--dp-orange);stroke-width:3}.hnode.compare circle{stroke:var(--dp-orange);stroke-width:2.6;stroke-dasharray:4 3}.hnode.violation circle{fill:var(--soft-red);stroke:var(--dp-red);stroke-width:2.6}.hnode.settled circle{fill:var(--soft-green);stroke:var(--dp-teal)}.hedge{stroke:var(--dp-gray);stroke-width:1.6}.hedge.hot{stroke:var(--dp-orange);stroke-width:3}.hedge.bad{stroke:var(--dp-red);stroke-width:3}.hphantom circle{fill:none;stroke:var(--line);stroke-width:1.5;stroke-dasharray:4 4}.hphantom line{stroke:var(--line);stroke-width:1.4;stroke-dasharray:4 4}.arith{margin-top:10px;font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);line-height:1.7}.legend i.lg.hactive{border-color:var(--dp-blue);background:var(--soft-blue)}.legend i.lg.hcurrent{border-color:var(--dp-orange);background:var(--soft-orange)}.legend i.lg.hcompare{border-color:var(--dp-orange);border-style:dashed}.legend i.lg.hviol{border-color:var(--dp-red);background:var(--soft-red)}.legend i.lg.hsettled{border-color:var(--dp-teal);background:var(--soft-green)}.legend i.lg.hsorted{border-color:var(--dp-gray);background:var(--light-gray)}.gvlabel{font-family:var(--font-sans);font-size:15px;font-weight:600;fill:var(--ink)}.gvtag{font-family:var(--font-mono);font-size:11px;font-style:italic;fill:var(--ink-soft)}.gvnote{font-family:var(--font-mono);font-size:11px;fill:var(--dp-teal)}.gelabel{font-family:var(--font-sans);font-size:14px;fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:4px}.getag{font-family:var(--font-mono);font-size:11px;font-style:italic;fill:var(--ink-soft);paint-order:stroke;stroke:var(--surface);stroke-width:3px}.getag.alt,.getag.new{fill:var(--dp-orange)}.getag.lost{fill:var(--dp-red)}.gcross line{stroke:var(--dp-red);stroke-width:2.6}.gstruct{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.gstruct h4{font-size:12px;font-weight:500;color:var(--ink-soft);margin:8px 0 6px}.gtable{border-collapse:collapse;font-family:var(--font-mono);font-size:13px}.gtable th,.gtable td{padding:3px 9px;border-bottom:1px solid var(--line);text-align:center}.gtable th{font-weight:500;color:var(--ink-soft)}.grow.current td{background:var(--soft-blue)}.grow.match td{background:var(--soft-green)}.grow.skip td{color:var(--ink-soft)}.gtag{font-style:italic;text-align:left!important;min-width:84px}.gmatrixwrap{overflow-x:auto}.gidx{display:block;font-size:9px;font-style:italic;color:var(--dp-gray)}.gcell{min-width:34px}.gcell.empty{color:var(--ink-soft)}.gcell.hot{background:var(--soft-orange);outline:2px solid var(--dp-orange);outline-offset:-2px;font-weight:700}.gcell.read{outline:2px dashed var(--dp-blue);outline-offset:-2px}.grefrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0;font-family:var(--font-mono);font-size:13px}.gowner{min-width:92px;color:var(--ink-soft)}.gempty{color:var(--ink-soft);font-style:italic}.gref{border:1.5px solid var(--dp-blue);background:var(--soft-blue);border-radius:6px;padding:1px 8px}.gref em{font-size:10px}.gref.current{border-color:var(--dp-orange);background:var(--soft-orange);border-width:2.5px}.gref.visited{border-color:var(--dp-teal);background:var(--soft-green)}.gref.removed{border-style:dashed;background:transparent;color:var(--ink-soft);text-decoration:line-through}.gref.dangling{border-color:var(--dp-red);background:var(--soft-red);border-width:2.5px}.gref.destroyed{border-color:var(--dp-gray);background:var(--light-gray);text-decoration:line-through}.gdiags{margin-top:8px}.glegend i.gl{border-radius:50%}.glegend i.v-query{border-color:var(--dp-orange);background:var(--soft-orange);border-width:2.5px}.glegend i.v-neighbour{border-color:var(--dp-teal);background:var(--soft-green);border-style:dashed}.glegend i.v-current{border-color:var(--dp-orange);background:var(--soft-orange);box-shadow:0 0 0 2px var(--soft-orange)}.glegend i.v-root{border-color:var(--dp-teal);background:var(--soft-green);box-shadow:0 0 0 1.5px var(--surface),0 0 0 3px var(--dp-teal)}.glegend i.v-assigned{border-color:var(--dp-teal);background:var(--soft-green)}.glegend i.v-route{border-color:var(--dp-orange);background:var(--soft-orange);border-style:dotted}.glegend i[class*=" e-"]{width:18px;height:0;border-radius:0;border-width:0 0 3px 0;vertical-align:3px}.glegend i.e-plain{border-color:var(--dp-blue)}.glegend i.e-alt{border-color:var(--dp-orange)}.glegend i.e-scan{border-color:var(--dp-blue);border-bottom-style:dashed}.glegend i.e-match{border-color:var(--dp-teal);border-bottom-width:5px}.glegend i.e-current{border-color:var(--dp-orange);border-bottom-width:5px;box-shadow:0 2px 0 3px var(--soft-orange)}.glegend i.e-new{border-color:var(--dp-orange);border-bottom-style:dotted}.glegend i.e-refused{border-color:var(--dp-gray);border-bottom-style:dotted}.glegend i.e-blocked{border-color:var(--dp-gray);border-bottom-style:dashed}.glegend i.e-lost{border-color:var(--dp-red);border-bottom-style:dashed}.glegend i.e-destroyed{border-color:var(--dp-gray)}.xbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;margin:6px 0 14px}.xhist{display:flex;gap:8px}.xbar .xfield,.xbar select{max-width:100%}.xtablewrap{overflow-x:auto;max-width:100%}.xsub{display:block;font-size:11px;color:var(--ink-soft)}.xgrid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:22px;align-items:start}@media (max-width: 1023px){.xgrid{grid-template-columns:minmax(0,1fr)}}.xcanvas{position:sticky;top:12px}@media (max-width: 1023px){.xcanvas{position:static}}.xsvg .xvertex,.xsvg .xedge{cursor:pointer}.xsvg.mode-addVertex{cursor:crosshair}.xsvg .xvertex:focus-visible,.xsvg .xedge:focus-visible{outline:3px solid var(--dp-blue);outline-offset:2px}.xsvg .xvertex:focus{outline:none}.xsvg .xvertex:focus-visible circle:last-of-type{stroke-width:4}.xmsg{font-size:14px;margin:10px 0 0;min-height:1.6em;color:var(--ink-soft)}.xmsg.ok{color:var(--dp-teal)}.xmsg.error{color:var(--dp-red)}.xmsg.error:before{content:"Refused: ";font-weight:600}.xtabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}.xtabs button{font-size:14px}.xtabs button.on{background:var(--soft-blue);border-color:var(--dp-blue);color:var(--dp-blue);font-weight:600}.xpanel{font-size:14px}.xpanel p{margin:6px 0}.xstack{display:flex;flex-direction:column;gap:12px}.xrow{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.xfield{display:inline-flex;flex-direction:column;gap:2px;font-size:12px;color:var(--ink-soft)}.xfield input,.xfield select{font:inherit;font-size:15px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.xfield input:focus-visible{outline:3px solid var(--dp-blue);outline-offset:2px}.xcheck{display:flex;gap:8px;align-items:center;font-size:14px;margin:4px 0}.xcheck input{width:18px;height:18px}.xset{border:1px solid var(--line);border-radius:10px;padding:8px 12px 10px;margin:0}.xset legend{font-size:13px;font-weight:600;padding:0 4px}.xnote{font-size:13px;color:var(--ink-soft)}.xh{font-size:13px;font-weight:600;margin:10px 0 2px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.xhot{background:var(--soft-orange)}.gtable th.xhot,.gtable td.xhot{background:var(--soft-orange);font-weight:700}.gcell.xline{background:var(--light-gray)}.gcell.xmatch{background:var(--soft-green);outline:2px solid var(--dp-teal);outline-offset:-2px;font-weight:700}.xbad{color:var(--dp-red);font-family:var(--font-sans);font-size:13px;text-align:left!important}.xmini{width:100%;max-width:360px;height:auto;display:block}.xprops th,.xmem td:first-child{text-align:left;font-family:var(--font-sans)}.intro{display:grid;grid-template-columns:max-content 1fr;gap:3px 10px;margin:0 0 12px;padding:8px 10px;background:var(--light-gray);border-radius:8px;font-size:13px;line-height:1.5}.intro dt{font-weight:600;color:var(--ink-soft)}.intro dd{margin:0}.mwrap{overflow-x:auto}.mobj rect{fill:var(--surface);stroke:var(--dp-blue);stroke-width:1.6}.mobj line{stroke:var(--line)}.mobj.VNode rect,.mobj.ENode rect{fill:var(--light-gray)}.mobj.new rect{stroke:var(--dp-orange);stroke-width:2.4;stroke-dasharray:5 3}.mobj.focus rect{stroke:var(--dp-teal);stroke-width:3;fill:var(--soft-green)}.mobj.destroyed rect{stroke:var(--dp-gray);fill:var(--light-gray);opacity:.8}.mobj.destroyed text{fill:var(--ink-soft)}.mcross{stroke:var(--dp-red)!important;stroke-width:2.4}.mhead{font-family:var(--font-sans);font-size:12px;font-weight:600;fill:var(--ink)}.maddr{font-family:var(--font-mono);font-size:11px;fill:var(--dp-gray)}.mfname{font-family:var(--font-mono);font-size:11.5px;fill:var(--ink-soft)}.mfval{font-family:var(--font-mono);font-size:11.5px;fill:var(--ink)}.mfield.hot .mfname,.mfield.hot .mfval{fill:var(--dp-orange);font-weight:700}.mfield.dangling .mfval{fill:var(--dp-red);font-weight:700}.mtag{font-family:var(--font-mono);font-size:11px;font-style:italic;fill:var(--dp-orange)}.mtag.dead{fill:var(--dp-red)}.mrow{font-family:var(--font-sans);font-size:11px;fill:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.manchor{font-family:var(--font-mono);font-size:11px;fill:var(--ink-soft)}.manchor.hot{fill:var(--dp-orange);font-weight:700}.mptr{fill:none;stroke:var(--dp-blue);stroke-width:1.2;opacity:.75}.mptr.hot{stroke:var(--dp-orange);stroke-width:2.6;opacity:1}.mptr.dangling{stroke:var(--dp-red);stroke-width:2;stroke-dasharray:5 3;opacity:1}.mnote{font-size:12px;color:var(--ink-soft);margin:6px 0 0}.gfacts th{text-align:left;font-family:var(--font-sans)}.gfacts td{text-align:left}.msvg{max-width:100%;height:auto;min-width:600px}@media (min-width: 1024px){.grid.widecode{grid-template-columns:minmax(0,530px) minmax(0,1fr)}}.gvnote,.gvtag{paint-order:stroke;stroke:var(--surface);stroke-width:3px}.glegend i.e-discovery{border-color:var(--dp-teal);border-bottom-width:4px}.glegend i.e-back{border-color:var(--dp-gray);border-bottom-style:dashed}.glegend i.e-cross{border-color:var(--dp-gray);border-bottom-style:dotted}.glegend i.e-conflict{border-color:var(--dp-red);border-bottom-width:4px;border-bottom-style:dashed}.glegend i.v-onstack{border-color:var(--dp-blue);background:var(--soft-blue);box-shadow:0 0 0 1.5px var(--surface),0 0 0 3px var(--dp-blue)}.glegend i.v-finished{border-color:var(--dp-teal);background:var(--soft-green)}.glegend i.v-frontier{border-color:var(--dp-blue);border-style:dashed}.glegend i.v-sideU{border-color:var(--dp-blue);background:var(--soft-blue)}.glegend i.v-sideW{border-color:var(--dp-orange);background:var(--soft-orange)}.tvstack{margin:4px 0 8px;padding-left:22px;font-size:13px}.tvstack li{margin:2px 0}.tvstack li span{margin-left:10px;color:var(--ink-soft);font-family:var(--font-mono);font-size:12px}.tvstack li.top code{color:var(--dp-orange);font-weight:700}.tvstack li em{font-size:11px;color:var(--ink-soft);margin-left:6px}.tvlevels th{text-align:left;font-family:var(--font-sans)}.tvlevels td{text-align:left}.tvscan{font-size:13px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tvnote{font-size:12px;color:var(--ink-soft);margin:6px 0 0}.glegend i.e-tree{border-color:var(--dp-teal);border-bottom-width:3px}.glegend i.e-path{border-color:var(--dp-teal);border-bottom-width:6px}.glegend i.e-improve{border-color:var(--dp-orange);border-bottom-width:5px}.glegend i.e-noimprove{border-color:var(--dp-blue);border-bottom-style:dashed}.glegend i.e-skip{border-color:var(--dp-gray);border-bottom-style:dotted}.glegend i.e-negative{border-color:var(--dp-red);border-bottom-width:4px;border-bottom-style:dashed}.glegend i.v-settled{border-color:var(--dp-teal);background:var(--soft-green);border-width:2.5px}.glegend i.v-open{border-color:var(--dp-blue);border-style:dashed;border-width:2px}.glegend i.v-examined{border-color:var(--dp-blue);background:var(--soft-blue);border-style:dotted;border-width:2.5px}.glegend i.v-onpath{border-color:var(--dp-teal);background:var(--soft-green);box-shadow:0 0 0 1.5px var(--surface),0 0 0 3.5px var(--dp-teal)}.glegend.gridlegend i.gl{border-radius:3px}.glegend i.c-blocked{border-color:var(--dp-gray);background:repeating-linear-gradient(45deg,var(--dp-gray) 0 2px,var(--light-gray) 2px 6px)}.gcellid{font-family:var(--font-mono);font-size:10px;fill:var(--ink-soft)}.gcellsg{font-family:var(--font-sans);font-size:18px;font-weight:700;fill:var(--ink)}.gcellval{font-family:var(--font-mono);font-size:11px;fill:var(--ink)}.gcellf{font-family:var(--font-mono);font-size:12px;font-weight:700;fill:var(--dp-blue)}.gcellno{font-family:var(--font-mono);font-size:10px;font-weight:700;fill:var(--dp-teal)}.gaxis{font-family:var(--font-mono);font-size:11px;fill:var(--ink-soft)}.sv .svcalc{font-family:var(--font-mono);font-size:13px;border:1.5px solid var(--dp-blue);border-radius:6px;padding:6px 10px;margin:4px 0 8px;line-height:1.6}.sv .svcalc.improved,.sv .svcalc.discovered{border-color:var(--dp-orange);border-width:2.5px;background:var(--soft-orange)}.sv .svcalc b{font-weight:700}.sv .svsets{font-family:var(--font-mono);font-size:13px;margin:4px 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.sv .svsets .gowner{min-width:64px}.sv .svtablewrap{max-height:440px;overflow:auto}.sv .grow.changed td{background:var(--soft-orange);font-weight:700}.sv td.svstatus{font-style:italic;text-align:left;font-family:var(--font-sans);font-size:12px}.gcelltext text{paint-order:stroke;stroke:var(--surface);stroke-width:3px}.racecontrols{margin:0 0 14px}.racefield{display:inline-flex;align-items:center;gap:6px;font-size:14px}.racefield input[type=range]{width:120px;accent-color:var(--dp-blue)}.racegrid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:center}.racepanel h3{color:var(--ink);font-size:14px}.racepanel.done{border-color:var(--dp-teal)}.racecanvas{display:block;width:100%;max-width:560px;height:auto;aspect-ratio:1;margin:0 auto}.racestats{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-family:var(--font-mono);font-size:13px;color:var(--ink-soft)}.racestats b{color:var(--ink)}.racestatus{flex-basis:100%;font-family:var(--font-sans)}.racepanel.done .racestatus{color:var(--dp-teal);font-weight:600}.racemid{display:flex;flex-direction:column;align-items:center;gap:10px}.racestart{font-size:18px;font-weight:600;padding:12px 20px;min-width:150px}.raceclock{font-family:var(--font-mono);font-size:14px;color:var(--ink-soft)}.raceclock b{font-size:22px;color:var(--ink)}.racelegend i.r-open{border-color:var(--dp-blue);background:var(--soft-blue);border-width:2px}.racelegend i.r-closed{border-color:#008e8652;background:radial-gradient(circle,var(--dp-teal) 0 1.6px,rgba(0,142,134,.32) 2px)}.racelegend i.r-current{border-color:var(--ink);background:var(--dp-orange)}.raceresult,.racenotes{margin-top:14px}.raceresult p,.racenotes p{font-size:14px;margin:8px 0 0}.racebar{display:grid;grid-template-columns:80px minmax(0,1fr) 48px;gap:10px;align-items:center;margin-top:6px;font-size:14px}.racebar b{font-family:var(--font-mono);text-align:right}.racebartrack{height:14px;background:var(--light-gray);border-radius:4px;overflow:hidden}.racebarfill{display:block;height:100%;background:var(--dp-blue)}.racebarfill.manhattan{background:repeating-linear-gradient(45deg,var(--dp-blue) 0 6px,rgb(0,70,130) 6px 9px)}.racenotes details{margin-top:10px}.racenotes summary{cursor:pointer;font-size:14px}.racenotes pre.code{margin-top:8px}@media (max-width: 767px){.racegrid{grid-template-columns:1fr}.racemid{flex-direction:row;flex-wrap:wrap;justify-content:center}}.glegend i.e-mst,.glegend i.e-mstonly{border-color:var(--dp-teal);border-bottom-width:5px}.glegend i.e-both{border-color:var(--dp-teal);border-bottom-width:6px}.glegend i.e-rejected{border-color:var(--dp-red);border-bottom-style:dashed}.glegend i.e-unexamined{border-color:var(--dp-gray);border-bottom-style:dotted;border-bottom-width:2px}.glegend i.e-candidate{border-color:var(--dp-orange);border-bottom-width:5px;box-shadow:0 2px 0 3px var(--soft-orange)}.glegend i.e-internal{border-color:var(--dp-gray);border-bottom-style:dashed;border-bottom-width:2px}.glegend i.e-keyedge{border-color:var(--dp-blue);border-bottom-style:dashed}.glegend i.e-spt,.glegend i.e-sptonly{border-color:var(--dp-blue);border-bottom-style:dashed;border-bottom-width:4px}.glegend i.e-parent{border-color:var(--ink-soft)}.glegend i.v-intree{border-color:var(--dp-teal);background:var(--soft-green);border-width:2.5px}.mstqueue{display:flex;flex-wrap:wrap;gap:6px;font-family:var(--font-mono);font-size:13px}.mstq small{display:block;font-size:10px;font-family:var(--font-sans)}.mstq.current{border-color:var(--dp-orange);background:var(--soft-orange);border-width:2.5px}.mstq.accepted{border-color:var(--dp-teal);background:var(--soft-green);border-width:2.5px}.mstq.rejected{border-color:var(--dp-red);background:var(--soft-red);border-style:dashed}.mstq.unexamined{border-color:var(--dp-gray);background:transparent;border-style:dotted;color:var(--ink-soft)}.mstnote{font-size:12px;color:var(--ink-soft);margin-left:8px}.ufdetails{margin-top:10px}.ufdetails summary{cursor:pointer;font-size:12px;color:var(--ink-soft)}.ufforest{display:block;margin:6px 0;max-width:100%;height:auto}.ufnode circle{fill:var(--surface);stroke:var(--ink-soft)}.ufnode.hot circle:first-child{fill:var(--soft-orange);stroke:var(--dp-orange)}.ufnode text{font-family:var(--font-mono);font-size:13px;fill:var(--ink)}.gtable td.ufroot{font-weight:700;background:var(--soft-green)}.raceblocked{font-size:12px;color:var(--dp-red);border:1.5px dashed var(--dp-red);border-radius:6px;padding:2px 8px}
