:root{
  --black:#000;--white:#fff;--paper:#fff;--ink:#000;--line:#000;--dim:#555;--accent:#ff8c00;--cyan:#23b7c6;--pink:#ff5a8a;--green:#25d366;--blue:#9ee7ff;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{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 var(--black);background:var(--white);font-weight:900;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;box-shadow:2px 2px 0 var(--black);min-height:32px}button:hover{background:var(--black);color:var(--white)}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.primary{background:var(--black);color:var(--white)}.primary:hover{background:var(--accent);color:var(--black)}.apply{background:var(--green);color:var(--black)}.tiny{min-height:26px;padding:2px 7px;font-size:10px}.smallDark{background:#000;color:#fff;padding:2px 10px;min-height:26px}textarea,input,select{border:2px solid var(--black);background:#fff;padding:7px;outline:none;width:100%;box-shadow:2px 2px 0 #000}textarea:focus,input:focus,select:focus{outline:3px solid var(--accent)}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}.top{display:flex;align-items:center;justify-content:space-between;border:3px solid #000;padding:6px;background:#fff}.brand{display:flex;align-items:center;gap:8px;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;color:#333;font-size:10px}.topActions{display:flex;gap:5px}.modelGate{border:3px solid #000;background:#fff4cf;padding:6px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;box-shadow:3px 3px 0 #000}.modelGate.ready{background:#e8fff1}.modelGate.error{background:#ffd8d8}.modelGate span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command{border:3px solid #000;padding:8px;background:#fff}.command textarea{height:74px;resize:none;line-height:1.35;text-transform:none;font-size:12px}.mainButtons,.microButtons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.microButtons{grid-template-columns:repeat(3,1fr)}.tight{margin-top:5px}.operatingMap,.boundZone,.resultZone{border:3px solid #000;background:#fff;min-height:0;display:flex;flex-direction:column}.sectionHead{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #000;padding:5px 7px;background:#f7f7f7;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}.codonCards{min-height:0;overflow:auto;padding:7px;display:grid;gap:7px}.empty{display:grid;place-items:center;color:#333;text-align:center;padding:15px;border:2px dashed #000;margin:7px}.codonCard{border:2px solid #000;background:#fff;box-shadow:2px 2px 0 #000;display:grid;grid-template-columns:54px 1fr auto;gap:6px;padding:6px;align-items:start;cursor:pointer}.codonCard:hover,.codonCard.bound{outline:3px solid var(--accent)}.codonType{border:2px solid #000;min-height:48px;display:grid;place-items:center;font-weight:900}.codonType.STY{background:#d7f8ff}.codonType.OPR{background:#bde8ff}.codonType.INV{background:#ffe29a}.codonType.HPL{background:#c7ffd8}.codonType.IMG{background:#ffd1df}.codonType.TXT{background:#fff}.codonType.REP{background:#e2d6ff}.codonTitle{font-weight:900;font-size:12px}.codonControls{font-size:11px;color:#111;margin-top:2px;line-height:1.25}.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}.boundZone{padding-bottom:6px}.boundCard{margin:7px;border:2px solid #000;padding:7px;min-height:82px;max-height:112px;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{margin:0 7px;width:calc(100% - 14px);height:52px;resize:none;text-transform:none}.boundZone .mainButtons{margin:6px 7px 0}.resultZone{min-height:108px}.resultSummary{padding:7px;line-height:1.35;overflow:auto;min-height:48px}.resultGood{font-weight:900}.resultBad{color:#a00;font-weight:900}.resultZone .microButtons{margin:0 7px 7px}.modal{border:4px solid #000;padding:0;box-shadow:6px 6px 0 #000;max-width:94vw;width:420px;background:#fff}.modal::backdrop{background:rgba(0,0,0,.45)}.modal form{padding:0;margin:0}.modal header{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #000;padding:8px;background:#fff}.modal h2{margin:0;font-size:14px}.modal label{padding:8px;margin:0}.modal textarea{min-height:145px;resize:vertical;text-transform:none}.note{padding:0 8px 10px;margin:0;color:#333;line-height:1.35}.debugModal{width:520px}.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 4px;margin-right:5px}.logKind.ERROR{background:#ff4d4d;color:#000}.logKind.RECV{background:#c7ffd8;color:#000}.logKind.SEND{background:#d7f8ff;color:#000}.logKind.STATUS{background:#ffe29a;color:#000}@media(max-height:640px){.command textarea{height:54px}.boundCard{max-height:86px}.resultZone{min-height:86px}}
