:root{--g-shared:#94600a;--g-coord:#0b7285;--g-models:#6741d9}:root[data-theme=dark]{--g-shared:#e3a94b;--g-coord:#4fc3d3;--g-models:#a99bff}[data-group=shared]{--accent:var(--g-shared)}[data-group=coord]{--accent:var(--g-coord)}[data-group=models]{--accent:var(--g-models)}.slider{flex-direction:column;gap:4px;display:flex}.slider .label{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);justify-content:space-between;display:flex}.slider .label strong{font:600 13px var(--mono);color:var(--ink);letter-spacing:0}@media (width>=861px){.wordmark{font-size:22px}}.btn-row{flex-wrap:wrap;gap:8px;display:flex}:root{--t0:#3b5bdb;--t1:#d9480f;--t2:#9c36b5;--t3:#0c8599;--t4:#c2255c}:root[data-theme=dark]{--t0:#91a7ff;--t1:#ffa94d;--t2:#e599f7;--t3:#66d9e8;--t4:#faa2c1}.who-0{--who:var(--t0)}.who-1{--who:var(--t1)}.who-2{--who:var(--t2)}.who-3{--who:var(--t3)}.who-4{--who:var(--t4)}.who--1{--who:var(--ink-3)}.gantt{width:100%;height:auto;display:block}.gantt .lane-label{fill:var(--ink-2);font:500 11px var(--mono)}.gantt .lane-rule{stroke:var(--rule);stroke-width:1px}.gantt .seg rect{fill:var(--who)}.gantt .seg text{fill:#fff;font:600 11px var(--mono);text-anchor:middle}.gantt .seg.kind-oven rect,.gantt .seg.kind-switch rect{fill:color-mix(in srgb, var(--who) 25%, var(--sheet));stroke:var(--who);stroke-dasharray:3 2}.gantt .seg.kind-oven text{fill:var(--who)}.gantt .tick{fill:var(--ink-3);font:10px var(--mono);text-anchor:middle}.lane-block{fill:var(--who);stroke:none}.chart{min-width:0}.code{font:13px/1.6 var(--mono);background:var(--paper);border:1px solid var(--rule);counter-reset:ln;margin:0;padding:8px 0;list-style:none;overflow-x:auto}.code li{white-space:pre;counter-increment:ln;padding:1px 10px}.code li:before{content:counter(ln);width:1.6em;color:var(--ink-3);text-align:right;margin-right:8px;font-size:11px;display:inline-block}.code li.now{background:var(--accent-tint);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.code li.past{color:var(--ink-3)}.code.small{font-size:12px}.code-block{font:12px/1.55 var(--mono);background:var(--paper);border:1px solid var(--rule);white-space:pre;margin:0;padding:10px 12px;overflow-x:auto}.threads,.cores{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1.1fr);align-items:start;gap:16px;display:grid}.card.thread{border-top:5px solid var(--who)}.card.thread .card-title{color:var(--who)}.card.thread.is-blocked{background:repeating-linear-gradient(-45deg, var(--bad-tint) 0 2px, var(--sheet) 2px 9px)}.state.ok{color:var(--ok)}.state.bad,.warn{color:var(--bad)}.reg{color:var(--ink-2);font-size:13px}.card.memory{border-top:5px solid var(--ink)}.counter{font:500 22px var(--mono)}.notice.good{border-left-color:var(--ok);background:color-mix(in srgb, var(--ok) 10%, var(--sheet))}.trace{margin-top:16px}.trace summary{cursor:pointer;font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}.trace .code li{color:var(--who)}.hist,.bars,.level{border-bottom:1px solid var(--rule-strong);align-items:flex-end;gap:2px;height:160px;padding:4px;display:flex}.hist span,.bars span,.level span{background:color-mix(in srgb, var(--accent) 55%, transparent);flex:1;min-width:2px}.hist span.ok{background:var(--ok)}.bars{height:110px}.bars span.on{background:var(--accent)}.level span{background:var(--accent);gap:0}.level span.max{background:var(--bad)}.hist-axis{justify-content:space-between;display:flex}.hbars{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.hbars li{grid-template-columns:3em minmax(0,1fr) 4em;align-items:center;gap:10px;display:grid}.hbars .bar{width:100%;margin:0}.hbars .num{text-align:right}.hbars li.bad .bar span{background:var(--bad)}.table-wrap{width:100%;max-width:380px;margin:0 auto;position:relative}.philo .fork line{stroke:var(--ink-3);stroke-width:4px;stroke-linecap:round}.philo .fork.held line{stroke:var(--who)}.philo text{font-size:10px}.phil{width:58px;height:58px;font:600 13px/1 var(--mono);color:var(--on-accent);background:var(--who);border:3px solid var(--sheet);box-shadow:0 0 0 1px var(--who);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%)}.phil small{font:500 10px var(--mono);opacity:.85}.phil.eating{box-shadow:0 0 0 4px var(--ok)}.phil.waiting{opacity:.55}.ticks{flex-direction:column;gap:6px;display:flex}.tick-row{grid-template-columns:2.2em minmax(0,1fr);align-items:center;gap:6px;display:grid}.cells,.strip{grid-template-columns:repeat(40,minmax(0,1fr));gap:1px;display:grid}.cell{height:22px;font:600 10px var(--mono);background:var(--paper);color:var(--ink-3);place-items:center;display:grid}i.cell{vertical-align:middle;width:18px;height:18px;font-style:normal;display:inline-grid}.cell.hidden{visibility:hidden}.act-take,.act-both{background:color-mix(in srgb, var(--accent) 30%, var(--sheet));color:var(--ink)}.act-fail{background:var(--bad-tint);color:var(--bad)}.act-work{background:var(--ok);color:var(--sheet)}.act-wait{background:var(--rule)}.legend-row{flex-wrap:wrap;gap:6px 14px;display:flex}.job-H{background:color-mix(in srgb, var(--accent) 40%, var(--sheet));color:var(--ink)}.job-L{background:var(--ok);color:var(--sheet)}.slots{flex-wrap:wrap;gap:6px;display:flex}.slot{width:44px;height:44px;font:600 15px var(--mono);border:2px dashed var(--rule);background:var(--paper);place-items:center;display:grid}.slot.filled{border-style:solid;border-color:var(--accent);background:var(--accent-tint)}.slot.rendezvous{width:64px;color:var(--accent)}.sems{flex-wrap:wrap;gap:8px 20px;display:flex}.sem{font:13px var(--mono);color:var(--ink-2)}.sem strong{font:400 28px/1 var(--serif);color:var(--accent);margin-right:4px}.chan{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;margin-bottom:12px;display:grid}.pipe{border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);flex-direction:column;align-items:center;gap:8px;padding:12px;display:flex}.mailbox{flex-wrap:wrap;gap:3px;min-height:30px;display:flex}.msg{width:22px;height:22px;font:600 10px var(--mono);color:#fff;place-items:center;display:grid}.msg.from-A{background:var(--t0)}.msg.from-B{background:var(--t1)}.msg.from-C{background:var(--t2)}.events{flex-direction:column;gap:4px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.ev{border-left:3px solid var(--ink-3);background:var(--paper);padding:4px 8px}.ev.who-C1{border-left-color:var(--t0)}.ev.who-C2{border-left-color:var(--t1)}.ev.who-P{border-left-color:var(--t2)}.ev strong{font:600 12px var(--mono);margin-right:6px}.ev.bad{background:var(--bad-tint);color:var(--bad)}.sbuf{gap:6px;min-height:30px;display:flex}.node{min-width:34px;height:30px;font:600 13px var(--mono);border:1.5px solid var(--accent);background:var(--accent-tint);place-items:center;padding:0 8px;display:inline-grid}.node.bad{border-color:var(--bad);color:var(--bad);background:var(--bad-tint)}.node.freed{border-style:dashed;border-color:var(--ink-3);color:var(--ink-3);background:0 0;text-decoration:line-through}.nodes{flex-wrap:wrap;gap:6px;min-height:30px;display:flex}.aba-row{flex-direction:column;gap:6px;display:flex}.card.aba.is-bad{border-color:var(--bad)}.amdahl{stroke:none}.amdahl .grid-line{stroke:var(--rule);stroke-width:1px}.amdahl .axis-label{fill:var(--ink-3);font:500 10px var(--mono);letter-spacing:0}.amdahl .axis-label.end{text-anchor:end}.amdahl .ref-line{fill:none;stroke:var(--rule-strong);stroke-width:1px;opacity:.35}.amdahl .main-line{fill:none;stroke:var(--accent);stroke-width:3px}.amdahl .dot{fill:var(--accent);stroke:var(--sheet);stroke-width:2px}.loop{gap:12px}.queue{border:1px solid var(--rule);background:var(--paper);flex-direction:column;gap:6px;padding:10px;display:flex}.queue.micro{border-left:3px solid var(--t2)}.queue.macro{border-left:3px solid var(--t1)}.queue.stack{border-left:3px solid var(--t0)}.queue.console{border-left:3px solid var(--ink)}.q-items{flex-wrap:wrap;gap:6px;min-height:26px;display:flex}.queue.stack .q-items{flex-direction:column}.q-item{background:var(--sheet);border:1px solid var(--rule-strong);overflow-wrap:anywhere;padding:3px 8px;font-size:12px}.q-item.out{font-size:15px;font-weight:600}.btn.chip{justify-content:center;min-width:44px;font-size:15px}.guess{margin:0;font-size:18px}.procs{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:20px;display:grid}.heap{border:1px solid var(--accent);background:var(--accent-tint);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.heap .label,.thread-box .label,.aba-row .label,.card>.label,.queue .label,.pipe .label,.chart>.label{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.heap strong{font-size:20px}.thread-row{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.thread-box{border:1px dashed var(--rule-strong);flex-direction:column;gap:6px;padding:8px;display:flex}.table.cost td:first-child{white-space:normal;width:auto;font:14px var(--sans)}.table.cost td:last-child{white-space:normal;width:auto;color:var(--ink-2);font-size:14px}.race-list{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.race-list li{border-left:3px solid var(--bad);background:var(--bad-tint);overflow-wrap:anywhere;padding:6px 8px}.trace-code li{white-space:pre-wrap}.trace-code .tname{min-width:5.5em;color:var(--who);font-weight:600;display:inline-block}.trace-code li.race{background:var(--bad-tint);color:var(--bad)}.check{min-height:36px;font:14px var(--sans);color:var(--ink);cursor:pointer;align-items:center;gap:10px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent)}@media (width<=1100px){.threads,.cores{grid-template-columns:repeat(2,minmax(0,1fr))}.threads .memory,.cores .memory{grid-column:1/-1}}@media (width<=720px){.threads,.cores,.chan{grid-template-columns:minmax(0,1fr)}.cells,.strip{grid-template-columns:repeat(20,minmax(0,1fr))}.phil{width:48px;height:48px;font-size:12px}}@media (pointer:coarse){.check,.phil{min-height:44px}}.lab{flex-direction:column;gap:20px;display:flex}.lab>.section-title{margin:28px 0 0}.lab>.section-title:first-child{margin-top:0}.lab>.lead{margin:-8px 0 0}.thread-row{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.card.narrow{max-width:420px}@media (width<=720px){.lab .btn{white-space:normal;max-width:100%;line-height:1.3}}.chapter-select{width:100%;min-width:0;max-width:100%}:root[data-theme=dark] .gantt .seg:not(.kind-oven) text{fill:#151412}
