.fdbg{--dbg-gap:14px;background:var(--paper);border:1px solid var(--line);border-radius:14px;margin:20px 0;padding:12px;font-size:13px;line-height:1.45;position:relative}.fdbg:focus{outline:none}.fdbg-loading,.fdbg-error{color:var(--muted);margin:8px 4px}.fdbg-error{color:var(--alert)}.fdbg-bar{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:10px;padding-bottom:10px;display:flex}.fdbg-ctrls{flex-wrap:wrap;gap:6px;display:flex}.fdbg-btn{font:inherit;color:var(--ink);background:var(--raised);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:8px;padding:5px 11px;font-weight:500}.fdbg-btn:hover{border-color:var(--accent)}.fdbg-btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.fdbg-breaks{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.fdbg-chk{color:var(--body);cursor:pointer;align-items:center;gap:5px;display:inline-flex}.fdbg-chk input{accent-color:var(--accent);margin:0}.fdbg-status{color:var(--warn);margin-left:auto}.fdbg-main{gap:var(--dbg-gap);grid-template-columns:minmax(260px,340px) minmax(0,1fr);display:grid}@media (width<=860px){.fdbg-main{grid-template-columns:minmax(0,1fr)}}.fdbg-left,.fdbg-right{flex-direction:column;gap:8px;min-width:0;display:flex}.fdbg-h{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-top:4px;font-size:11px;font-weight:500;display:flex}.fdbg-empty{color:var(--muted);margin:4px 0;font-style:italic}.fdbg-code{background:var(--bg);border:1px solid var(--line-soft);font-family:var(--f-mono);border-radius:10px;max-height:300px;padding:6px 0;font-size:12.5px;overflow:auto}.fdbg-code pre{color:var(--muted);white-space:pre-wrap;font:inherit;margin:0;padding:4px 12px 6px}.fdbg-setup summary{cursor:pointer;color:var(--muted);font-family:var(--f-body);padding:2px 12px;font-size:12px}.fdbg-def{border-bottom:1px dashed var(--line-soft)}.fdbg-line{cursor:pointer;color:var(--body);gap:6px;padding:2px 10px 2px 4px;display:flex}.fdbg-line:hover{background:var(--raised)}.fdbg-line .gut{width:14px;color:var(--c1);text-align:center;flex:none}.fdbg-line code{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere}.fdbg-line.done code{color:var(--muted)}.fdbg-line.current{background:#ffd1661f}.fdbg-line.current code{color:var(--ink)}.fdbg-line .err{color:var(--alert);font-family:var(--f-body)}.fdbg-toolrow{flex-wrap:wrap;gap:6px;display:flex}.fdbg-toolrow select,.fdbg-value{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;min-width:0;padding:4px 8px}.fdbg-value{font-family:var(--f-mono);flex:1;width:9em}.fdbg-log{background:var(--bg);border:1px solid var(--line-soft);border-radius:10px;max-height:340px;margin:0;padding:4px 0;list-style:none;overflow:auto}.fdbg-log .ev{padding:3px 10px 3px calc(10px + var(--depth,0) * 14px);cursor:pointer;border-left:3px solid #0000;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.fdbg-log .ev:hover{background:var(--raised)}.fdbg-log .ev.future{opacity:.45}.fdbg-log .ev.current{background:var(--raised);border-left-color:var(--c1)}.ev-t{min-width:0}.ev-fn{font-family:var(--f-mono);color:var(--muted);background:var(--raised);border-radius:4px;flex:none;margin-left:6px;padding:0 5px;font-size:10.5px}.tone-storage .ev-t{color:var(--ink)}.tone-command .ev-t{color:var(--c6)}.tone-callback .ev-t{color:var(--c2)}.tone-frame .ev-t{color:var(--c5)}.tone-muted .ev-t{color:var(--muted)}.fdbg-stats{text-transform:none;letter-spacing:0;flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.fdbg-stats b{color:var(--ink);font-weight:500}.fdbg-storage{position:relative}.fdbg-tables{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.fdbg-arrows{pointer-events:none;position:absolute;inset:0;overflow:visible}.fdbg-arrows .arrow{fill:none;stroke:var(--c1);stroke-width:2px;stroke-dasharray:5 4;animation:.8s linear infinite fdbg-dash}.fdbg-arrows .arrow-head{fill:var(--c1)}@keyframes fdbg-dash{to{stroke-dashoffset:-18px}}.tcard{background:var(--bg);border:1px solid var(--line);border-radius:10px;min-width:180px;max-width:100%;transition:border-color .2s,box-shadow .2s;overflow:hidden}.tcard.new{border-color:var(--good);box-shadow:0 0 0 2px #7fdba040}.tcard.target{border-color:var(--c1)}.tcard.iterating{border-color:var(--c2);box-shadow:0 0 0 2px #5fd4e840}.tcard.shrink{border-color:var(--alert)}.tc-h{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;display:flex}.tc-id{font-family:var(--f-mono);color:var(--muted);font-size:11px}.tc-type{flex-wrap:wrap;flex:1;gap:4px;display:flex}.tc-n{color:var(--muted);font-size:11px}.chip{font-family:var(--f-mono);border:1px solid var(--chip,var(--line));color:var(--chip,var(--body));background:color-mix(in srgb, var(--chip,var(--line)) 14%, transparent);white-space:nowrap;border-radius:999px;padding:0 7px;font-size:11px}.chip.k-tag{background:0 0;border-style:dashed}.chip.k-sparse{background:0 0;border-style:dotted}.chip.k-sparse:after{content:" ⇢"}.chip.k-name,.chip.k-root{--chip:var(--muted)}.tcard table{border-collapse:collapse;width:100%;font-family:var(--f-mono);font-size:12px}.tcard th{text-align:left;color:var(--chip,var(--muted));border-bottom:1px solid var(--line-soft);white-space:nowrap;padding:3px 8px;font-weight:500}.tcard td{white-space:nowrap;color:var(--body);padding:2px 8px}.tcard .rn{color:var(--muted);text-align:right;width:1%}.tcard td.ent,.locals td.ent,.fdbg-sset td.ent{color:var(--ink);font-family:var(--f-body);font-weight:500}.tcard .note{color:var(--warn);margin-left:6px;font-size:11px;font-weight:400}.tc-empty,.tc-hidden{color:var(--muted);margin:0;padding:6px 8px;font-style:italic}.row.arrive td,.fdbg-sset tr.arrive td{background:#7fdba029;animation:.5s ease-out fdbg-in}.row.leaving td,.fdbg-sset tr.leaving td{background:#ffd16624;text-decoration:line-through #ffd16699}.row.swapped td{background:#ffad6629;animation:.5s ease-out fdbg-in}.row.iter td{background:#5fd4e81f}.row.event td{background:#a9b8ff29}td.written{color:var(--ink);background:#ffd16647;animation:.5s ease-out fdbg-in}@keyframes fdbg-in{0%{filter:brightness(1.8)}}@media (prefers-reduced-motion:reduce){.fdbg *,.fdbg-arrows .arrow{animation:none!important}}.fdbg-sparse-sets{flex-wrap:wrap;gap:10px;display:flex}.fdbg-sset{background:var(--bg);border:1px dotted var(--line);border-radius:10px;min-width:140px;padding:6px 8px}.sset-h{align-items:center;gap:8px;margin-bottom:4px;display:flex}.sset-kind{color:var(--muted);font-size:11px}.fdbg-sset table{border-collapse:collapse;font-family:var(--f-mono);font-size:12px}.fdbg-sset td{padding:1px 8px 1px 0}.fdbg-now{background:var(--bg);border:1px solid var(--line-soft);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.now-t{color:var(--ink);margin:0;font-weight:500}.now-t code{font-family:var(--f-mono);color:var(--c1)}.now-why{color:var(--body);max-width:75ch;margin:0}.now-box{border-top:1px solid var(--line-soft);padding-top:8px;overflow-x:auto}.now-h{color:var(--muted);margin-bottom:4px;font-size:12px}.locals{border-collapse:collapse;font-family:var(--f-mono);font-size:12px}.locals th{text-align:left;color:var(--c2);padding:2px 10px 2px 0;font-weight:500}.locals td{white-space:nowrap;padding:1px 10px 1px 0}.queue{font-family:var(--f-mono);color:var(--body);margin:0;padding-left:22px;font-size:12px}.queue li.done{color:var(--muted);text-decoration:line-through}.queue li.current{color:var(--c6)}.queue .batch{font-family:var(--f-body);color:var(--muted);margin-left:8px;font-size:11px}.fdbg-variants{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.fdbg-var{font:inherit;color:var(--body);cursor:pointer;background:0 0;border:0;padding:5px 11px}.fdbg-var+.fdbg-var{border-left:1px solid var(--line)}.fdbg-var[aria-checked=true]{background:var(--raised);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}.fdbg-qs{flex-direction:column;gap:6px;display:flex}.fdbg-q{background:var(--bg);border:1px solid var(--line-soft);border-radius:10px;padding:6px 10px}.fdbg-q p{color:var(--body);margin:2px 0 0}.q-h{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.q-h code{font-family:var(--f-mono);color:var(--ink)}.q-kind{color:var(--muted);font-size:11px}.q-badge{color:var(--bg);background:var(--chip,var(--accent));border-radius:4px;padding:0 6px;font-size:11px;font-weight:500}.tc-q{flex-wrap:wrap;gap:4px;width:100%;display:flex}.tone-refs .ev-t,.tone-warn .ev-t{color:var(--c3)}.fdbg-refs{flex-direction:column;gap:6px;display:flex}.fdbg-ref{background:var(--bg);border:1px solid var(--line-soft);border-left:3px solid var(--good);border-radius:10px;grid-template-columns:auto auto 1fr;align-items:baseline;gap:4px 10px;padding:6px 10px;display:grid}.fdbg-ref.bad{border-left-color:var(--alert)}.fdbg-ref code{font-family:var(--f-mono);color:var(--ink)}.ref-st{text-transform:uppercase;letter-spacing:.06em;color:var(--good);font-size:11px;font-weight:500}.fdbg-ref.bad .ref-st{color:var(--alert)}.ref-why{color:var(--body)}.ref-pin{font-family:var(--f-mono);color:var(--good);margin-left:6px;font-size:11px;font-weight:500;display:inline-block}.ref-pin.bad{color:var(--alert)}.row.ghost td{color:var(--muted);border-top:1px dashed var(--line);font-style:italic}.tc-freed{color:var(--alert);border-top:1px dashed var(--alert);margin:0;padding:6px 8px;font-size:12px}.fdbg code{font-size:inherit;background:0 0;border:0;border-radius:0;padding:0}.tcard .eid{font-family:var(--f-mono);color:var(--muted);font-size:11px;font-weight:400}.fdbg-h-note{text-transform:none;letter-spacing:0;font-weight:400}
