:root{--bg:#fff;--fg:#000;--line:#000;--muted:#333;--teal:#1cb0c6;--orange:#f88c22;--green:#0b7a2a;--red:#b00020;--blue:#064ee4;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--bg);color:var(--fg);font:13px var(--sans);overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}button{border:2px solid var(--line);background:#fff;color:#000;font-weight:900;text-transform:uppercase;letter-spacing:.04em;padding:9px 10px;cursor:pointer;box-shadow:2px 2px 0 #000}button:hover{background:#000;color:#fff}button.primary{background:#000;color:#fff}button.primary:hover{background:#fff;color:#000}.small{font-size:11px;padding:4px 8px;box-shadow:none}textarea,input,select{border:2px solid #000;background:#fff;color:#000;width:100%;padding:8px;outline:none}textarea:focus,input:focus,select:focus{box-shadow:0 0 0 3px var(--orange)}pre{white-space:pre-wrap;word-break:break-word;margin:0;font:12px/1.45 var(--mono)}h1,h2,p{margin:0}h2{font:900 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;border-bottom:2px solid #000;padding-bottom:6px;margin-bottom:8px}.app{height:100dvh;display:flex;flex-direction:column;gap:8px;padding:8px;overflow:auto}.top{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;border:3px solid #000;padding:8px;background:#fff;flex:0 0 auto}.mark{width:34px;height:34px;border:2px solid #000;display:grid;place-items:center;overflow:hidden}.mark img{width:100%;height:100%;object-fit:cover}.titleBlock h1{font:900 15px var(--mono);letter-spacing:.06em;text-transform:uppercase}.titleBlock p{font:11px var(--mono);color:#000}.status{border:2px solid #000;padding:5px 8px;font:900 11px var(--mono);text-transform:uppercase}.status.idle{background:#fff}.status.work{background:#ffe66d}.status.ok{background:#93f5a0}.status.err{background:#ff9aa5}.command,.settings,article{border:3px solid #000;padding:10px;background:#fff}.command label,.boundPane label,.settings label{display:block;font:900 11px var(--mono);text-transform:uppercase;margin-bottom:5px}.command textarea{height:78px;font:13px/1.45 var(--mono)}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.primaryActions{grid-template-columns:repeat(4,minmax(0,1fr))}.secondaryActions{grid-template-columns:repeat(4,minmax(0,1fr))}.summaryGrid,.reportGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.summaryGrid article{min-height:110px}.workbench{display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(280px,.85fr);gap:8px;min-height:430px}.deckPane,.boundPane{min-height:0;display:flex;flex-direction:column}.paneHead{display:flex;align-items:center;justify-content:space-between;gap:8px}.paneHead h2{flex:1}.paneHead input{max-width:180px;font:12px var(--mono)}#encodingDeck{min-height:0;flex:1;overflow:auto;border:2px solid #000;padding:6px;background:#fff}.empty{display:grid;place-items:center;font:900 12px var(--mono);text-transform:uppercase;color:#000}.codonRow{display:grid;grid-template-columns:52px 1fr auto;gap:8px;align-items:stretch;border:2px solid #000;margin-bottom:7px;padding:6px;cursor:pointer;background:#fff}.codonRow:hover,.codonRow.bound{outline:4px solid var(--orange)}.codonRow.intron{opacity:.45;background:#eee}.tag{display:grid;place-items:center;border:2px solid #000;font:900 11px var(--mono);background:#fff}.tag.OPR{background:#b8e7ff}.tag.HPL{background:#d8c4ff}.tag.IMG{background:#ffd08c}.tag.ENT{background:#ffff80}.tag.TXT{background:#fff}.tag.INV{background:#7dff9a}.tag.STY{background:#ff99bb}.payload{font:900 12px var(--mono);line-height:1.35}.meta{font:11px var(--mono);color:#111;line-height:1.35;margin-top:3px}.codonOps{display:flex;flex-direction:column;gap:5px}.codonOps button{font-size:10px;padding:4px 6px;box-shadow:none}.boundPane pre{flex:1;min-height:190px;max-height:260px;overflow:auto;border:2px solid #000;padding:8px;background:#fff}.boundPane textarea{height:76px;font:12px/1.4 var(--mono)}.reportGrid{min-height:260px}.reportGrid article{min-height:240px;display:flex;flex-direction:column}.reportGrid pre{flex:1;overflow:auto;border:2px solid #000;padding:8px}.console{flex:1;border:2px solid #000;padding:8px;overflow:auto;background:#fff;font:12px/1.45 var(--mono)}.log{border-bottom:1px solid #000;padding:4px 0}.log b{display:inline-block;min-width:58px}.log.SEND b{color:#064ee4}.log.RECV b{color:#0b7a2a}.log.ERROR b{color:#b00020}.log.STATUS b{color:#000}.settings{flex:0 0 auto}.settings summary{font:900 12px var(--mono);cursor:pointer;text-transform:uppercase}.settingsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.settings textarea{height:140px;font:11px/1.35 var(--mono)}.note{font:12px/1.4 var(--mono);margin-top:8px;border-top:2px solid #000;padding-top:8px}
@media(max-width:900px){.summaryGrid,.reportGrid,.workbench{grid-template-columns:1fr}.primaryActions,.secondaryActions{grid-template-columns:repeat(2,minmax(0,1fr))}.top{grid-template-columns:36px 1fr}.status{grid-column:1/-1}.settingsGrid{grid-template-columns:1fr}}
