.cpu-root{--cpu-cell: #fbf7ee;--cpu-line: #d9cfbb;--cpu-wire: #b8b0a0;--cpu-hot: #f59e0b;--cpu-read: #dbeafe;--cpu-write: #fde68a}[data-theme=dark] .cpu-root{--cpu-cell: #262b3b;--cpu-line: #3a4157;--cpu-wire: #4b5368;--cpu-hot: #fbbf24;--cpu-read: #1e3a5f;--cpu-write: #5c4708}.cpu-title{fill:var(--ink);font-size:15px;font-weight:750}.cpu-small{fill:var(--ink-soft);font-size:12.5px;font-weight:650;text-anchor:middle}.cpu-row{cursor:pointer}.cpu-cell{fill:var(--cpu-cell);stroke:var(--cpu-line);stroke-width:1.1}.cpu-cell.is-data{fill:color-mix(in srgb,var(--ui-accent) 8%,var(--cpu-cell))}.cpu-cell.is-read{fill:var(--cpu-read);stroke:var(--cs-blue);stroke-width:2}.cpu-cell.is-write{fill:var(--cpu-write);stroke:var(--cpu-hot);stroke-width:2}.cpu-cell.is-sel{stroke:var(--ui-accent);stroke-width:2.4;stroke-dasharray:5 3}.cpu-row:hover .cpu-cell{stroke:var(--ui-accent)}.cpu-addr{fill:var(--ink-soft);font-size:13px;font-weight:700;dominant-baseline:central;white-space:pre}.cpu-bin{fill:var(--ink);font-size:13.5px;font-weight:650;dominant-baseline:central}.cpu-op{fill:var(--ui-accent);font-size:13.5px;font-weight:800;dominant-baseline:central}.cpu-op.is-data{fill:var(--ink);font-weight:700}.cpu-pcmark{fill:var(--cs-red)}.cpu-tap{stroke:var(--cpu-line);stroke-width:1}.cpu-tap.is-hot{stroke:var(--cpu-hot);stroke-width:2.5}.cpu-bus{stroke:var(--cpu-wire);stroke-width:7;stroke-linecap:round;opacity:.7}.cpu-bus.is-hot{stroke:var(--cpu-hot);opacity:1}.cpu-wire{fill:none;stroke:var(--cpu-wire);stroke-width:3;stroke-linecap:round}.cpu-wire.is-hot{stroke:var(--cpu-hot);stroke-width:4;stroke-dasharray:10 6;animation:cpu-flow .6s linear infinite}@keyframes cpu-flow{to{stroke-dashoffset:-16}}@media(prefers-reduced-motion:reduce){.cpu-wire.is-hot{animation:none;stroke-dasharray:none}}.cpu-reg{fill:var(--bg-card);stroke:var(--ink-soft);stroke-width:1.6;transition:fill .2s}.cpu-reg.is-hot{fill:color-mix(in srgb,var(--cpu-hot) 22%,var(--bg-card));stroke:var(--cpu-hot);stroke-width:2.4}.cpu-reglbl{fill:var(--ink-soft);font-size:12px;font-weight:700}.cpu-regval{fill:var(--ink);font-size:16px;font-weight:750}.cpu-inc{fill:var(--cpu-hot);font-size:16px;font-weight:800}.cpu-alu{fill:color-mix(in srgb,var(--ui-accent) 14%,var(--bg-card));stroke:var(--ui-accent);stroke-width:2}.cpu-alu.is-hot{fill:color-mix(in srgb,var(--cpu-hot) 30%,var(--bg-card));stroke:var(--cpu-hot)}.cpu-alutxt{fill:var(--ui-accent);font-size:18px;font-weight:800;text-anchor:middle}.cpu-flag{fill:var(--cpu-line);stroke:var(--ink-soft);stroke-width:1.2}.cpu-flag.is-on{fill:var(--cs-red);stroke:var(--cs-red)}.cpu-screen{fill:#0f172a;stroke:#334155;stroke-width:2}.cpu-screen.is-hot{stroke:var(--cpu-hot);stroke-width:3}.cpu-screenlbl{fill:#94a3b8;font-size:12px;font-weight:700}.cpu-screennum{fill:#4ade80;font-size:44px;font-weight:800;text-anchor:end}.cpu-screenhist{fill:#64748b;font-size:13px;font-weight:600}.cpu-oplist{display:flex;flex-wrap:wrap;gap:.25rem .9rem;margin:0;padding:.1rem 1rem .85rem;list-style:none;color:var(--ink-soft);font-size:.74rem;font-weight:550;justify-content:center}.cpu-oplist b{color:var(--ui-accent)}.cpu-phases{display:flex;gap:.35rem}.cpu-phase{flex:1 1 0;text-align:center;padding:.3rem 0;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink-soft);font-size:.8rem;font-weight:700}.cpu-phase.is-on{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff}[data-theme=dark] .cpu-phase.is-on{color:#111827}.cpu-readout,.cp-viewer--full .cpu-readout{grid-template-columns:repeat(2,minmax(0,1fr))}.cpu-edit{display:flex;flex-direction:column;gap:.35rem}.cpu-editrow{display:flex;gap:.5rem}.cpu-select{flex:1 1 auto;min-width:0;font-size:.85rem;padding:.45rem .6rem}.cpu-num{flex:0 0 5.2rem;font-size:.9rem;padding:.45rem .6rem}@media(max-width:600px){.cpu-small,.cpu-reglbl,.cpu-bin,.cpu-op,.cpu-addr{font-size:16px}.cpu-regval{font-size:19px}}@media(min-width:900px){.cp-viewer--full .interactive.ui-root.cpu-root:has(>.interactive-hint){grid-template-rows:minmax(0,1fr) auto}.cp-viewer--full .ui-root.cpu-root>.interactive-side,.cp-viewer--full .ui-root.cpu-root>.interactive-canvas{grid-row:1}.cp-viewer--full .interactive.ui-root.cpu-root>.interactive-hint{grid-row:2}.cp-viewer--full .cpu-canvas{position:relative}.cp-viewer--full .cpu-canvas .interactive-fs-btn{top:.75rem;right:.75rem}}
