:root{--g-engine:#94600a;--g-tx:#8b3d8f;--g-scale:#a61e4d}:root[data-theme=dark]{--g-engine:#e3a94b;--g-tx:#d391d6;--g-scale:#f783ac}[data-group=engine]{--accent:var(--g-engine)}[data-group=tx]{--accent:var(--g-tx)}[data-group=scale]{--accent:var(--g-scale)}.grid-2.wide-left{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}.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}.btn-row{flex-wrap:wrap;gap:8px;display:flex}select{font:14px var(--sans);color:var(--ink);background:var(--sheet);border:1px solid var(--rule-strong);border-radius:0;padding:7px 10px}.chart .ball{fill:var(--accent);stroke:var(--sheet);stroke-width:2px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{font:13px var(--sans);color:var(--ink-2);background:var(--sheet);border:1px solid var(--rule);cursor:pointer;padding:5px 10px}.chip:hover{border-color:var(--accent)}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.check{font:12px var(--mono);color:var(--ink-2);cursor:pointer;align-items:center;gap:6px;display:inline-flex}.check input{width:auto;accent-color:var(--accent)}.pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.pair figure{flex-direction:column;gap:6px;margin:0;display:flex}@media (width<=1100px){.grid-2.wide-left{grid-template-columns:minmax(0,1fr)}}:root{--shard-0:#0e6e8c;--shard-1:#94600a;--shard-2:#8b3d8f;--shard-3:#a61e4d;--shard-4:#1f6f43;--shard-5:#57534a;--wait:#b07a00}:root[data-theme=dark]{--shard-0:#5cc6e6;--shard-1:#e3a94b;--shard-2:#d391d6;--shard-3:#f783ac;--shard-4:#7cc493;--shard-5:#b3ac9c;--wait:#f2c14e}.after{margin-top:24px}.mono{font-family:var(--mono)}.card-title.mono{text-transform:none;letter-spacing:.02em;font-size:13px}.controls-row{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:end;gap:16px 24px;margin-bottom:20px;display:grid}.field>.label,.slider .label,.label{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}pre.code,pre.sql-line,pre.db-out,pre.file{font:13px/1.55 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--paper);border:1px solid var(--rule);margin:0;padding:10px 12px}pre.sql-line{color:var(--accent);border-left:3px solid var(--accent)}.db-out{font:13px/1.55 var(--mono);margin:0}p.db-out{background:var(--bad-tint);border-left:3px solid var(--bad);padding:10px 12px}.db-out.ok{color:var(--ok);border-left:3px solid var(--ok)}.db-out.bad{color:var(--bad);border-left:3px solid var(--bad);background:var(--bad-tint)}.console-out.is-ok{border-top:4px solid var(--ok)}.console-out.is-bad{border-top:4px solid var(--bad)}.bad-text{color:var(--bad);font-weight:600}.table.data{font-size:14px}.table.data th{text-transform:none;letter-spacing:.02em;padding:0 12px 8px 0;font-size:12px}.table.data td{padding:7px 12px 7px 0}.table.data td:first-child{width:auto;font:14px var(--sans);white-space:nowrap}.table.data td:last-child{width:auto}.table.data td.num{font-family:var(--mono);font-size:13px}.table.data td.null,.null{color:var(--ink-3);font:italic 12px var(--mono)}.table.data td.key-col{font:600 13px var(--mono);color:var(--accent)}.table.data td.fk-col{font:13px var(--mono);color:var(--accent);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.table.data caption{text-align:left;padding-bottom:6px}.table.data tr.hit td{background:color-mix(in srgb, var(--ok) 16%, transparent)}.table.data tr.probe td{background:var(--accent-tint)}.table.data tr.padded td{background:color-mix(in srgb, var(--ink-3) 8%, transparent)}.table.data tr{transition:background .15s}.form-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.mini-field input,.inline-form input{width:100%;min-width:0;font:14px var(--mono);color:var(--ink);background:var(--paper);border:1px solid var(--rule-strong);border-radius:0;padding:8px 10px}.mini-btn{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--rule);cursor:pointer;background:0 0;padding:4px 10px}.mini-btn:hover{color:var(--bad);border-color:var(--bad)}.cell-select{padding:4px 6px;font-size:13px}.table.flat tr.conflict td{background:var(--bad-tint)}.table.flat td.dup{color:var(--ink-2)}.anomalies{flex-direction:column;gap:8px;display:flex}.norm-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.why-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:20px;display:grid}.race-bars{flex-direction:column;gap:6px;display:flex}.bar-row{background:var(--paper);border:1px solid var(--rule);height:10px;display:block}.bar-row i{background:var(--accent);height:100%;transition:width .4s;display:block}.bar-row i.slow{background:var(--bad)}.stages{color:var(--ink-3);flex-direction:column;gap:6px;margin:0;padding:0 0 0 20px;font-size:14px;display:flex}.stages li.on{color:var(--ink)}.stages li.on::marker{color:var(--accent);font-weight:600}.pair figcaption.label{margin-bottom:4px;display:block}pre.file.ok{border-left:3px solid var(--ok)}.file .gone{color:var(--bad);text-decoration:line-through}.cursor-cut{color:var(--bad);animation:.8s step-end infinite blink}@keyframes blink{50%{opacity:0}}.flow strong{margin:6px 0 4px;display:block}.sql-editor{width:100%;min-height:9em;font:14px/1.6 var(--mono);color:var(--ink);background:var(--paper);border:1px solid var(--rule-strong);resize:vertical;border-radius:0;padding:12px}.sql-editor:focus{outline:2px solid var(--accent);outline-offset:-1px}.schema{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.schema li{border-top:1px solid var(--rule);padding:8px 0}.schema li:first-child{border-top:0}.schema code{font:12px var(--mono);color:var(--ink-2);overflow-wrap:anywhere;margin-top:2px;display:block}.link-like{font:600 14px var(--mono);color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.clause-order ol{flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.clause-order li{background:var(--sheet);border:1px solid var(--rule);align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.clause-order li code{font:600 13px var(--mono);color:var(--ink-3)}.clause-order li .stat{border:1px solid var(--rule);border-radius:50%;place-items:center;width:20px;height:20px;display:inline-grid}.clause-order li.on{border-color:var(--accent);background:var(--accent-tint)}.clause-order li.on code{color:var(--ink)}.clause-order li.on .stat{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.join-kinds{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.join-kinds button{text-align:left;color:var(--ink);background:var(--sheet);border:1px solid var(--rule);cursor:pointer;font:14px var(--sans);flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;display:flex}.join-kinds button strong{font:600 12px var(--mono);letter-spacing:.04em}.join-kinds button small{color:var(--ink-3);font-size:12px}.join-kinds button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint);box-shadow:inset 0 3px 0 var(--accent)}.venn{fill:none;width:46px;height:26px;stroke:var(--ink-2);stroke-width:1.2px}.venn .fill{fill:var(--accent);stroke:none;opacity:.55}.loop-bar{background:var(--rule);height:6px;display:block}.loop-bar span{background:var(--accent);height:100%;transition:width .2s;display:block}.join-tables{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:12px;display:grid}.pipeline{font:12px var(--mono);flex-wrap:wrap;gap:4px;margin:0 0 18px;padding:0;list-style:none;display:flex}.pipeline li{background:var(--accent-tint);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);padding:5px 10px}.pipeline li+li:before{content:"→ ";color:var(--ink-3)}.pipeline li.skip{opacity:.45;background:0 0;border-style:dashed}.buckets{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.bucket{background:var(--sheet);border:1px solid var(--rule-strong);border-top:4px solid var(--accent);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.bucket header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.bucket-key{font:600 13px var(--mono)}.bucket header strong{font:400 26px/1 var(--serif);color:var(--accent)}.bucket ul{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.bucket li{font:11px var(--mono);color:var(--ink-2);background:var(--paper);border:1px solid var(--rule);padding:2px 6px}.bucket li b{color:var(--ink);font-weight:600}.bucket.out{opacity:.55;border-top-color:var(--bad)}.bucket.out header strong{color:var(--ink-3);text-decoration:line-through}@media (prefers-reduced-motion:no-preference){.bucket li{animation:.35s ease-out backwards drop}@keyframes drop{0%{opacity:0;transform:translateY(-10px)}}}.storage-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.anatomy-row{grid-template-columns:minmax(0,220px) minmax(0,1fr);align-items:center;gap:16px;display:grid}.page-svg{width:100%;height:auto}.page-frame{fill:var(--paper);stroke:var(--rule-strong);stroke-width:1.5px}.page-head{fill:var(--ink-2)}.page-ptr{fill:var(--accent);opacity:.7}.page-free{fill:var(--sheet)}.page-tuple{fill:var(--accent);opacity:.55}.page-tuple.alt{opacity:.8}.page-label{font:12px var(--mono);fill:var(--ink-3);text-anchor:middle}.key-list{color:var(--ink-2);flex-direction:column;gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.sw{vertical-align:-1px;border:1px solid var(--rule);width:12px;height:12px;margin-right:6px;display:inline-block}.sw.head{background:var(--ink-2)}.sw.ptr{background:color-mix(in srgb, var(--accent) 70%, transparent)}.sw.free{background:var(--sheet)}.sw.tuple{background:color-mix(in srgb, var(--accent) 60%, transparent)}.heap{grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;display:grid}.heap span{aspect-ratio:1;background:var(--paper);border:1px solid var(--rule-strong);transition:background .1s}.heap span.read{background:var(--accent-tint);border-color:var(--accent)}.heap span.found{background:var(--ok);border-color:var(--ok)}.tree-wrap{padding:4px 0;overflow-x:auto}.tree{width:100%;height:auto;margin:0 auto;display:block}.tree .edge{stroke:var(--rule-strong);stroke-width:1.2px}.tree .node rect{fill:var(--sheet);stroke:var(--rule-strong);stroke-width:1.2px}.tree .node text{font:600 13px var(--mono);fill:var(--ink);text-anchor:middle}.tree .node.on-path rect{fill:var(--accent-tint);stroke:var(--accent);stroke-width:2.5px}.tree .node text.hot{fill:var(--accent);text-decoration:underline}.btree-msg{min-height:2.6em}.inline-form{align-items:flex-end;gap:8px;display:flex}.inline-form .field{flex:1}.checks{flex-direction:column;gap:8px;display:flex}.cost-chart{width:100%;height:auto;display:block}.cost-chart .axis-line{stroke:var(--rule-strong)}.cost-chart .tick{font:10px var(--mono);fill:var(--ink-3);text-anchor:middle}.cost-chart .tick.start{text-anchor:start}.cost-chart .tick.end{text-anchor:end;fill:var(--ink-2)}.cost-chart .cross{stroke:var(--ink-3);stroke-dasharray:4 3}.cost-chart .series{fill:none;stroke-width:2.5px}.cost-chart .series.seq{stroke:var(--ink-2)}.cost-chart .series.idx{stroke:var(--accent)}pre.code.plan{color:var(--ink);border-left:3px solid var(--accent)}.query-log{flex-direction:column;gap:3px;max-height:340px;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.query-log li{gap:8px;font-size:12px;display:flex}.query-log li .stat{text-align:right;flex:none;width:2.6em}.query-log code{font:12px var(--mono);overflow-wrap:anywhere}.phase.is-bad{border-color:var(--bad);border-top:4px solid var(--bad)}.phase p{margin:0}.acid-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);align-items:start;gap:16px;display:grid}.balances dt{font:500 12px var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}.balances dd{font:400 28px/1 var(--serif);margin:0}.wiped{opacity:.6;border-style:dashed}.wal{font:13px var(--mono);flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.wal li{background:var(--paper);border-left:3px solid var(--rule);padding:4px 8px}.wal li.commit,.wal li.redo{border-left-color:var(--ok)}.wal li.undo{border-left-color:var(--bad)}.recovery.is-ok{border-top:4px solid var(--ok)}.recovery.is-bad{border-top:4px solid var(--bad)}.sessions{flex-direction:column;gap:6px;display:flex}.sessions-head,.sessions-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.sessions-head span{font:600 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--rule);padding-bottom:6px}.sess-op{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--rule);flex-direction:column;gap:4px;padding:8px 10px;display:flex}.sess-op code{font:12.5px/1.45 var(--mono);overflow-wrap:anywhere}.sess-op.todo{opacity:.5}.sess-op.next{opacity:.85;border-left-color:var(--accent);border-style:dashed}.sess-op.ran{border-left-color:var(--accent)}.op-status{font:600 12px var(--mono)}.op-status.ok{color:var(--ok)}.op-status.wait{color:var(--wait)}.op-status.bad{color:var(--bad)}.op-status.skip{color:var(--ink-3);font-weight:400}.verdict{border-left:4px solid var(--rule);background:var(--paper);padding:12px 14px}.verdict.is-ok{border-left-color:var(--ok)}.verdict.is-bad{border-left-color:var(--bad);background:var(--bad-tint)}.verdict.is-meh{border-left-color:var(--wait)}.verdict p{margin:6px 0 0}.table.matrix td,.table.matrix th{text-align:center;white-space:nowrap}.table.matrix td:first-child{text-align:left;font:14px var(--sans);width:auto}.table.matrix td.ok{color:var(--ok);font:12px var(--mono)}.table.matrix td.bad{color:var(--bad);font:600 12px var(--mono);background:var(--bad-tint)}.table.matrix td.here{outline:2px solid var(--accent);outline-offset:-2px}.table.matrix th.cur{color:var(--accent)}.table.matrix tr.cur td:first-child{font-weight:600}.tx-panel{flex-direction:column;gap:10px;display:flex}.tx-row{background:var(--paper);border:1px solid var(--rule);border-left:4px solid var(--accent);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.tx-row.waiting{border-left-color:var(--wait)}.tx-row.committed{border-left-color:var(--ok)}.tx-row.aborted{border-left-color:var(--bad);background:var(--bad-tint)}.tx-name{align-items:baseline;gap:10px;display:flex}.tx-row .btn{padding:8px 12px}.wait-graph{width:100%;max-width:420px;height:auto;margin:0 auto;display:block}.wait-graph line{stroke-width:2px}.wait-graph line.hold{stroke:var(--ink-2)}.wait-graph line.wait{stroke:var(--wait);stroke-dasharray:6 4}.wait-graph line.cyc{stroke:var(--bad);stroke-width:3px}.wait-graph .arrowhead{fill:var(--ink-2)}.wait-graph .res rect{fill:var(--sheet);stroke:var(--rule-strong);stroke-width:1.5px}.wait-graph .res.taken rect{fill:var(--accent-tint);stroke:var(--accent)}.wait-graph text{font:600 14px var(--mono);text-anchor:middle;fill:var(--ink)}.wait-graph .txn circle{fill:var(--sheet);stroke:var(--accent);stroke-width:2px}.wait-graph .txn.waiting circle{stroke:var(--wait);stroke-dasharray:4 3}.wait-graph .txn.committed circle{stroke:var(--ok);fill:color-mix(in srgb, var(--ok) 15%, var(--sheet))}.wait-graph .txn.aborted circle{stroke:var(--bad);fill:var(--bad-tint)}.wait-graph .txn.cyc circle{stroke:var(--bad);stroke-width:3px}.graph-legend{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;display:flex}.lg{border-top:2px solid var(--ink-2);width:24px;display:inline-block}.lg.wait{border-top:2px dashed var(--wait)}.event-log{flex-direction:column;gap:4px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.event-log li{border-left:2px solid var(--rule);padding:4px 0 4px 10px}.event-log li:first-child{border-left-color:var(--accent)}.event-log li.bad{border-left-color:var(--bad);color:var(--bad)}.model-tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.model-tabs button{text-align:left;color:var(--ink);background:var(--sheet);border:1px solid var(--rule);cursor:pointer;font:14px var(--sans);border-bottom-width:4px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.model-tabs button small{font:11px var(--mono);color:var(--ink-3)}.model-tabs button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint)}.model-tabs button.fit-great{border-bottom-color:var(--ok)}.model-tabs button.fit-poor{border-bottom-color:var(--bad)}.model-tabs button.fit-ok{border-bottom-color:var(--wait)}.patterns{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pattern{text-align:left;width:100%;font:14px/1.4 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--rule);cursor:pointer;padding:10px 12px}.pattern[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);background:var(--accent-tint)}.pattern.done{color:var(--ink-2)}.graph-fig{flex-direction:column;gap:10px;margin:0;display:flex}.people{width:100%;max-width:380px;height:auto;margin:0 auto;display:block}.people line{stroke:var(--rule-strong);stroke-width:1.5px}.people line.hop1{stroke:var(--accent);stroke-width:2.5px}.people line.hop2{stroke:var(--ok);stroke-width:2.5px;stroke-dasharray:5 3}.people .arrowhead{fill:var(--ink-2)}.people circle{fill:var(--sheet);stroke:var(--rule-strong);stroke-width:1.5px}.people .me circle{fill:var(--accent);stroke:var(--accent)}.people .me text{fill:var(--on-accent)}.people .fof circle{stroke:var(--ok);stroke-width:3px}.people text{font:600 10px var(--sans);text-anchor:middle;fill:var(--ink)}.section-title.first{margin-top:0}.repl{width:100%;height:auto;display:block}.repl-line{stroke:var(--rule-strong);stroke-width:1.5px;stroke-dasharray:5 4}.packet{fill:var(--accent)}.srv rect{fill:var(--sheet);stroke:var(--rule-strong);stroke-width:1.5px}.srv.primary rect{fill:var(--accent-tint);stroke:var(--accent);stroke-width:2px}.srv.behind rect{stroke:var(--wait);stroke-dasharray:5 3}.srv-name{font:600 10px var(--mono);text-anchor:middle;fill:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}.srv-val{font:400 22px var(--serif);text-anchor:middle;fill:var(--ink)}.srv.behind .srv-val{fill:var(--wait)}.shard-bars{flex-direction:column;gap:6px;display:flex}.shard-bar{grid-template-columns:2.2em minmax(0,1fr) 3.5em;align-items:center;gap:8px;display:grid}.shard-bar .bar-fill{height:16px;transition:width .3s;display:block}.shard-bar .num{font:12px var(--mono);text-align:right}.shard-c0{background:var(--shard-0);stroke:var(--shard-0)}.shard-c1{background:var(--shard-1);stroke:var(--shard-1)}.shard-c2{background:var(--shard-2);stroke:var(--shard-2)}.shard-c3{background:var(--shard-3);stroke:var(--shard-3)}.shard-c4{background:var(--shard-4);stroke:var(--shard-4)}.shard-c5{background:var(--shard-5);stroke:var(--shard-5)}.mini-dist{border:1px solid var(--rule-strong);height:26px;display:flex}.mini-dist span{min-width:0;font:600 11px var(--mono);color:#fff;place-items:center;transition:flex-grow .3s;display:grid;overflow:hidden}:root[data-theme=dark] .mini-dist span{color:#151412}.ring{width:140px;height:140px;margin:0 auto;display:block}.ring-line{fill:none;stroke:var(--rule);stroke-width:1px}.ring line{stroke-width:3px}@media (width<=1100px){.why-grid,.norm-grid{grid-template-columns:minmax(0,1fr)}.acid-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.acid-grid .wal-card{grid-column:1/-1}.model-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=720px){.join-kinds{grid-template-columns:repeat(2,minmax(0,1fr))}.join-tables,.storage-grid{grid-template-columns:minmax(0,1fr)}.anatomy-row{grid-template-columns:minmax(0,150px) minmax(0,1fr)}.form-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.model-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.sessions-head,.sessions-row{gap:6px}.sess-op{padding:6px 7px}.sess-op code{font-size:11px}.heap{grid-template-columns:repeat(8,minmax(0,1fr))}.table.data,.table.matrix{table-layout:auto}}@media (pointer:coarse){.mini-btn,.join-kinds button,.model-tabs button,.pattern,.link-like,.cell-select{min-height:44px}}.flow.plain li+li:before{display:none}.grid-2{align-items:start}.card .tiles{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));margin-bottom:0}.table.data td,.table.data th{text-align:left}
