:root{color:#18212f;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{min-width:86px;border:1px solid #1f5f8b;border-radius:6px;background:#246b9e;color:#fff;cursor:pointer;font:inherit;font-weight:700;padding:10px 14px}button:hover:not(:disabled){background:#1f5f8b}button:disabled{border-color:#aab4c2;background:#d7dde6;color:#697384;cursor:not-allowed}select{width:min(100%,360px);border:1px solid #bac6d6;border-radius:6px;background:#fff;color:#18212f;font:inherit;padding:10px 12px}code{color:#172033;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.95rem}.appShell{width:min(1120px,calc(100vw - 32px));margin:0 auto;padding:32px 0}.appHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.eyebrow{margin:0 0 4px;color:#4f6f52;font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.1}h2{margin-bottom:14px;font-size:1rem}.statusBadge{min-width:102px;border:1px solid #89b58e;border-radius:6px;background:#e5f4e7;color:#24552a;font-size:.85rem;font-weight:800;padding:8px 12px;text-align:center}.statusBadge[data-halted=true]{border-color:#d1a461;background:#fff2db;color:#724500}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.introPanel{border:1px solid #d7dee9;border-radius:8px;background:#fff;box-shadow:0 1px 2px #1c2a420f;color:#2c384c;font-size:1rem;line-height:1.7;margin-bottom:16px;padding:14px 16px}.samplePanel{display:grid;gap:10px;border:1px solid #d7dee9;border-radius:8px;background:#fff;box-shadow:0 1px 2px #1c2a420f;margin-bottom:16px;padding:16px}.samplePanel label,.learningPoint span{color:#627084;font-size:.78rem;font-weight:800;text-transform:uppercase}.samplePanel p{color:#475467;margin-bottom:0}.learningPoint{display:grid;gap:6px;border-left:4px solid #4f6f52;background:#f3f8f3;padding:10px 12px}.learningPoint strong{color:#203826;font-size:.98rem}.errorMessage{border:1px solid #d88080;border-radius:6px;background:#fff0f0;color:#8b2020;margin-bottom:18px;padding:10px 12px}.stateGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px}.stateTile,.currentInstruction,.programPanel,.logPanel{border:1px solid #d7dee9;border-radius:8px;background:#fff;box-shadow:0 1px 2px #1c2a420f}.stateTile{min-height:82px;padding:14px}.stateTile span,.currentInstruction span{display:block;color:#627084;font-size:.78rem;font-weight:800;text-transform:uppercase}.stateTile strong{display:block;margin-top:10px;font-size:1.65rem}.currentInstruction{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;padding:14px 16px}.currentInstruction strong{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:1.15rem}.workArea{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(360px,1.05fr);gap:16px}.programPanel,.logPanel{min-width:0;padding:16px}.programList,.logList{list-style:none;margin:0;padding:0}.programList{display:grid;gap:6px}.programList li{display:grid;grid-template-columns:42px 1fr;align-items:center;min-height:40px;border:1px solid #e1e7f0;border-radius:6px;background:#fbfcfe;padding:8px 10px}.programList li.isCurrent{border-color:#d3922e;background:#fff6e8;box-shadow:inset 4px 0 #d3922e}.address{color:#627084;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-weight:800}.emptyLog{color:#627084;margin-bottom:0}.logList{display:grid;gap:10px;max-height:440px;overflow:auto;padding-right:4px}.logList li{border-bottom:1px solid #e2e8f0;padding-bottom:10px}.logList li:last-child{border-bottom:0;padding-bottom:0}.logList div{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.logList span{color:#4f6f52;font-weight:800}.logList p{color:#475467;margin-bottom:0}@media(max-width:820px){.appHeader,.currentInstruction{align-items:flex-start;flex-direction:column}.stateGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.workArea{grid-template-columns:1fr}}
