:root{--ink:#000;--paper:#fff;--blue:#0000AA;--cyan:#00AAAA;--hi:#FFFF55;--bad:#AA0000;--ok:#00AA00}
*{border-radius:0!important;box-sizing:border-box}
html,body{margin:0;background:#000;color:#000;font-family:'VT323',monospace;font-size:18px}
body{background:#000 repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 3px)}
.px{font-family:'Press Start 2P',monospace}
.dither{background:repeating-conic-gradient(#000 0% 25%,#fff 0% 50%) 0 0/2px 2px}
.panel{background:var(--paper);border:2px solid var(--ink);display:flex;flex-direction:column;min-height:0}
.ptitle{display:flex;align-items:center;gap:6px;border-bottom:2px solid #000;height:24px;position:relative}
.ptitle .box{width:22px;height:22px;background:#fff;border-right:2px solid #000;display:flex;align-items:center;justify-content:center}
.ptitle .box i{display:block;width:12px;height:3px;background:#000}
.ptitle span{background:#fff;padding:0 8px;margin:0 auto;font-family:'Press Start 2P';font-size:9px;line-height:20px}
.btn{font-family:'Press Start 2P';font-size:9px;border:2px solid #000;background:#fff;color:#000;padding:6px 8px;cursor:pointer;white-space:nowrap}
.btn:hover:not(:disabled){background:#000;color:#fff}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn.on{background:#000;color:#fff}
.mono{font-family:'VT323',monospace;line-height:1.05}
.chg{background:var(--hi);animation:fl .6s}
@keyframes fl{from{background:#FFFF55}to{background:#FFFF55}}
.row:hover{background:#000;color:#fff;cursor:pointer}
.cur{background:var(--blue);color:#fff}
.drop{border:2px dashed #000;padding:14px;text-align:center;cursor:pointer}
.drop.over{background:#000;color:#fff}
.chip{border:2px solid #000;padding:0 6px;cursor:pointer;font-family:'Press Start 2P';font-size:9px;line-height:18px}
.chip.set{background:#000;color:#fff}
canvas#desk{image-rendering:pixelated;image-rendering:crisp-edges;width:100%;aspect-ratio:4/3;display:block;background:#555;outline:none;touch-action:none}
.pill{font-family:'Press Start 2P';font-size:8px;padding:5px 8px;border:2px solid #fff;color:#fff}
.pill.run{background:var(--ok)}.pill.halt{background:var(--bad)}.pill.wait{background:var(--blue)}
.ok{color:var(--ok)}.bad{color:var(--bad)}
.scroll{overflow:auto;min-height:0}
details>summary{cursor:pointer;font-family:'Press Start 2P';font-size:9px;padding:6px 4px;border-top:2px solid #000;list-style:none}
details>summary:hover{background:#000;color:#fff}
details[open]>summary{background:#000;color:#fff}
table.t{width:100%;border-collapse:collapse}
table.t td,table.t th{border:1px solid #000;padding:0 4px;text-align:left}
.toast{background:#fff;border:2px solid #000;box-shadow:4px 4px 0 #000;padding:8px 10px;max-width:340px;animation:pop .25s steps(3)}
@keyframes pop{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
.splash{position:fixed;inset:0;background:#000;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;animation:fade .4s 1.5s steps(4) forwards}
@keyframes fade{to{opacity:0;visibility:hidden}}
.splash pre{color:#55FFFF;font-size:16px;line-height:1}
.dlg{background:#fff;border:2px solid #000;box-shadow:6px 6px 0 rgba(0,0,0,.8);min-width:260px;max-width:90%}
.dlgbar{background:var(--blue);color:#fff;text-align:center;font-family:'Press Start 2P';font-size:9px;padding:5px;border-bottom:2px solid #000}
input.inp,textarea.inp{border:2px solid #000;font-family:'VT323';font-size:18px;padding:2px 6px;background:#fff}
input[type=range]{accent-color:#000}
a{color:inherit}