:root{--black:#000;--white:#fff;--paper:#fff;--ink:#000;--dim:#444;--warn:#ffec99;--busy:#d7f1ff;--done:#d9ffe7;--err:#ffd8d8;--orange:#ff8c00;--cyan:#9ee7ff;--green:#25d366;--pink:#ffccd8;--lav:#e2d8ff;--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:.05em;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{background:var(--orange);color:#000}.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 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:13px;letter-spacing:.08em}.brand p{margin:1px 0 0;font-size:10px;color:#333}.topActions{display:flex;gap:5px}.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)}.statusBlock.done{background:var(--done)}.statusBlock.error{background:var(--err)}.stateBig{display:flex;align-items:center;justify-content:space-between;gap:8px}.stateLabel,.stateGrid span{font-size:9px;font-weight:900;color:#333;letter-spacing:.12em}.stateBig b{font-size:16px;letter-spacing:.08em}.stateGrid{display:grid;grid-template-columns:1fr 1fr 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}.progressFill{height:100%;width:0%;background:#000;transition:width .2s}.lastEvent{font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.commandBox{border:3px solid #000;padding:8px;background:#fff}.commandBox textarea{height:64px;resize:none;text-transform:none;line-height:1.35}.primaryRow,.viewRow{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.viewRow{grid-template-columns:repeat(4,1fr)}.compact{margin:6px 7px 0}.genomeShell,.boundShell,.resultShell{border:3px solid #000;background:#fff;min-height:0;display:flex;flex-direction:column}.tabbar{display:grid;grid-template-columns:1fr 1fr 1fr;border-bottom:3px solid #000}.tab{box-shadow:none;border:0;border-right:2px solid #000;min-height:32px}.tab:last-child{border-right:0}.tab.active{background:#000;color:#fff}.tabMeta{padding:5px 7px;border-bottom:2px solid #000;background:#f7f7f7;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.genomeCards{min-height:0;overflow:auto;padding:7px;display:grid;gap:7px}.empty{display:grid;place-items:center;color:#333;text-align:center;padding:14px;border:2px dashed #000;margin:7px}.codonCard{border:2px solid #000;box-shadow:2px 2px 0 #000;background:#fff;display:grid;grid-template-columns:52px 1fr auto;gap:6px;padding:6px;cursor:pointer;align-items:start}.codonCard:hover,.codonCard.bound{outline:3px solid var(--orange)}.codonType{border:2px solid #000;min-height:44px;display:grid;place-items:center;font-weight:900}.codonType.RSN{background:#d7f1ff}.codonType.EVD{background:#d9ffe7}.codonType.STY{background:#ffec99}.codonType.FLR{background:#ffd8d8}.codonType.MUT{background:var(--pink)}.codonType.SEL{background:var(--lav)}.codonType.OPR{background:#bde8ff}.codonType.INV{background:#ffe29a}.codonType.HPL{background:#c7ffd8}.codonType.IMG{background:#ffd1df}.codonType.TXT{background:#fff}.codonTitle{font-weight:900;font-size:12px}.codonPayload{font-size:11px;line-height:1.25;margin-top:2px;max-height:42px;overflow:hidden}.codonMeta{font-size:10px;color:#333;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.statePill{font-size:9px;font-weight:900;border:2px solid #000;padding:2px 4px;background:#fff}.statePill.off{background:#ddd;text-decoration:line-through}.sectionHead{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #000;background:#f7f7f7;padding:5px 7px;gap:8px}.sectionHead h2{font-size:12px;margin:0;letter-spacing:.1em}.sectionHead span{font-size:10px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.boundCard{margin:7px;border:2px solid #000;padding:7px;min-height:80px;max-height:115px;overflow:auto;background:#fff}.boundTitle{font-size:13px;font-weight:900}.boundLine{margin-top:4px;line-height:1.35}.boundLine b{background:#000;color:#fff;padding:1px 3px}#codonChat{height:54px;resize:none;margin:0 7px;width:calc(100% - 14px);text-transform:none}.childSummary{padding:7px;line-height:1.35;min-height:54px;max-height:120px;overflow:auto}.bottom{margin:0 7px 7px}.modal{border:4px solid #000;padding:0;box-shadow:6px 6px 0 #000;max-width:94vw;width:430px;background:#fff}.modal::backdrop{background:rgba(0,0,0,.45)}.modal form{margin:0}.modal header{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #000;padding:8px}.modal h2{margin:0;font-size:14px}.modal label{padding:8px;margin:0}.modal textarea{min-height:140px;resize:vertical;text-transform:none}.note{margin:0;padding:0 8px 10px;color:#333;line-height:1.35}.debugModal{width:540px}.debugLog,.jsonView{height:62vh;overflow:auto;margin:8px;border:2px solid #000;background:#fff;padding:8px;white-space:pre-wrap;font-size:11px}.logRow{border-bottom:1px solid #000;padding:4px 0}.logKind{font-weight:900;background:#000;color:#fff;padding:1px 3px;margin-right:5px}.fitnessGrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.fitnessCell{border:2px solid #000;padding:6px;background:#fff}.fitnessCell b{display:block;font-size:16px}.childBadge{display:inline-block;border:2px solid #000;background:#fff;padding:2px 5px;margin:2px 3px 2px 0;font-weight:900}.mutated{background:#fff4cf}
