:root{--black:#000;--white:#fff;--paper:#fff;--ink:#000;--dim:#333;--muted:#f4f4f4;--warn:#ffec99;--busy:#d8efff;--done:#d9ffe7;--err:#ffd8d8;--orange:#ff8c00;--green:#d9ffe7;--cyan:#ccf2ff;--pink:#ffd8d8;--lav:#e8ddff;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;background:var(--paper);color:var(--ink);font-family:var(--mono);font-size:12px;overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}button{border:2px solid #000;background:#fff;font-weight:900;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;box-shadow:2px 2px 0 #000;min-height:32px}button:hover{background:#000;color:#fff}button:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.primary{background:#000;color:#fff}.primary:hover,.hot:hover{background:var(--orange);color:#000}.hot{background:var(--warn)}.tiny{font-size:10px;min-height:25px;padding:2px 7px}textarea,input,select{border:2px solid #000;background:#fff;padding:7px;width:100%;outline:none;box-shadow:2px 2px 0 #000}textarea:focus,input:focus,select:focus{outline:3px solid var(--orange)}label{display:block;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin:0 0 5px}.app{height:100vh;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:6px;padding:6px;overflow:hidden}.topbar{display:flex;justify-content:space-between;align-items:center;border:3px solid #000;padding:6px;background:#fff}.brand{display:flex;gap:8px;align-items:center;min-width:0}.brand img{width:28px;height:28px}.brand h1{margin:0;font-size:12px;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand p{margin:1px 0 0;font-size:10px;color:#333}.topActions,.buttonGrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.topActions{display:flex}.statusBlock{border:4px solid #000;box-shadow:4px 4px 0 #000;padding:6px;background:var(--warn);display:grid;gap:5px}.statusBlock.busy{background:var(--busy);animation:pulse 1s steps(2,end) infinite}.statusBlock.done{background:var(--done)}.statusBlock.error{background:var(--err)}@keyframes pulse{50%{filter:brightness(.94)}}.stateTop{display:flex;align-items:center;justify-content:space-between}.stateTop span,.stateGrid span{font-size:9px;font-weight:900;color:#333;letter-spacing:.12em}.stateTop b{font-size:16px;letter-spacing:.08em}.stateGrid{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:5px}.stateGrid div{border:2px solid #000;background:#fff;padding:3px 5px;min-width:0}.stateGrid b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}.progressTrack{height:9px;border:2px solid #000;background:#fff}.progressTrack div{height:100%;width:0%;background:#000;transition:width .25s}.lastEvent{font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.commandBox,.workspace,.boundShell{border:3px solid #000;background:#fff}.commandBox{padding:8px}.commandBox textarea{height:56px;resize:none;text-transform:none;line-height:1.35}.mainActions{margin-top:7px}.secondaryActions{grid-template-columns:repeat(4,1fr);margin-top:7px}.workspace{min-height:0;display:flex;flex-direction:column;overflow:hidden}.modeTabs{display:grid;grid-template-columns:1fr 1fr 1fr;border-bottom:3px solid #000}.modeTabs button{border:0;border-right:2px solid #000;box-shadow:none;min-height:32px}.modeTabs button:last-child{border-right:0}.modeTabs .active{background:#000;color:#fff}.pane{display:none;min-height:0;flex:1;overflow:hidden;flex-direction:column}.pane.active{display:flex}.paneHead{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:6px 8px;border-bottom:2px solid #000;background:#f8f8f8}.paneHead h2{margin:0;font-size:12px;letter-spacing:.08em}.paneHead span{font-size:10px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cards{min-height:0;overflow:auto;padding:8px;display:grid;gap:7px}.empty{display:grid;place-items:center;color:#333;text-align:center;padding:14px;border:2px dashed #000;margin:8px}.codonCard{border:2px solid #000;box-shadow:2px 2px 0 #000;background:#fff;display:grid;grid-template-columns:50px 1fr auto;gap:7px;padding:6px;cursor:pointer;align-items:start}.codonCard:hover,.codonCard.bound{outline:3px solid var(--orange)}.codonType{border:2px solid #000;min-height:42px;display:grid;place-items:center;font-weight:900}.codonType.RSN{background:var(--cyan)}.codonType.EVD{background:var(--green)}.codonType.STY{background:var(--warn)}.codonType.FLR{background:var(--pink)}.codonType.MUT{background:#ffd1ef}.codonType.SEL{background:var(--lav)}.codonType.OPR,.codonType.HPL{background:#bde8ff}.codonType.IMG,.codonType.REP{background:#ffd9a8}.codonMain{min-width:0}.codonTitle{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.codonPayload{font-size:11px;line-height:1.25;text-transform:none;max-height:44px;overflow:hidden}.stateTag{border:2px solid #000;padding:2px 4px;font-size:9px;font-weight:900}.stateTag.intron{background:#eee;color:#555}.programSummary{padding:8px;border-bottom:2px solid #000;font-weight:900;line-height:1.35}.programPreviewWrap{margin:8px;border:3px solid #000;box-shadow:3px 3px 0 #000;min-height:0;display:flex;flex-direction:column;flex:1}.hidden{display:none!important}.previewHead{padding:5px 7px;background:#000;color:#fff;font-weight:900;letter-spacing:.07em}.programPreview{border:0;background:#fff;min-height:260px;flex:1;width:100%}.boundShell{display:flex;flex-direction:column;min-height:198px;max-height:260px}.boundCard{margin:7px;border:2px solid #000;padding:7px;line-height:1.35;max-height:80px;overflow:auto;text-transform:none}.boundCard b{background:#000;color:#fff;padding:1px 3px}.boundShell textarea{margin:0 7px;width:calc(100% - 14px);height:44px;resize:none;text-transform:none;box-shadow:none}.boundActions{padding:7px;margin:0}.modal{border:4px solid #000;box-shadow:8px 8px 0 #000;width:min(96vw,720px);max-height:92vh;background:#fff;color:#000}.modal::backdrop{background:rgba(0,0,0,.45)}.modal form{display:grid;gap:9px}.modal header{display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid #000;padding-bottom:6px}.modal h2{margin:0}.modal textarea{height:180px;text-transform:none}.note{font-size:11px;line-height:1.35}.debugLog{height:60vh;overflow:auto;border:2px solid #000;padding:6px;background:#fff}.debugRow{border-bottom:1px solid #000;padding:4px 0;white-space:pre-wrap;word-break:break-word}.debugRow b{display:inline-block;min-width:46px}.debugRow .SEND{color:#0000b8}.debugRow .RECV{color:#007a2f}.debugRow .ERROR{color:#c40000}@media(max-height:780px){.commandBox textarea{height:42px}.boundShell{max-height:214px}.programPreview{min-height:200px}.brand p{display:none}}
