/* Chapter 32: formal executors, state machines and assessment. */
.executor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.executor-card{display:block;padding:19px;border:1px solid var(--line);border-radius:13px;background:var(--panel);color:var(--ink);text-decoration:none;transition:.18s}.executor-card:hover{border-color:var(--cyan);transform:translateY(-2px);text-decoration:none}.executor-card .kicker{color:var(--amber);font:10px "JetBrains Mono",monospace;letter-spacing:.06em;text-transform:uppercase}.executor-card h3{margin:7px 0;color:var(--ink);font-size:17px}.executor-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.executor-card.featured{border-color:rgba(34,211,238,.55);background:linear-gradient(145deg,rgba(34,211,238,.1),var(--panel))}
.executor-theory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:16px}.executor-theory{padding:16px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.executor-theory h3{margin:0 0 6px;color:var(--cyan);font-size:15px}.executor-theory p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.executor-chain{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;margin-top:18px}.executor-chain>div{flex:1 1 130px;padding:13px;border:1px solid #365069;border-radius:9px;background:#0d1a29;text-align:center}.executor-chain span{display:block;color:#8fa6c0;font:9px "JetBrains Mono",monospace;text-transform:uppercase}.executor-chain b{display:block;margin-top:5px;color:#e6edf5;font-size:12px}.executor-chain i{align-self:center;color:#fcd34d;font-style:normal}
.executor-diagnostic-lab{display:grid;grid-template-columns:minmax(210px,.75fr) minmax(260px,1.25fr);gap:16px}.executor-mini-board{display:grid;grid-template-columns:repeat(3,58px);grid-auto-rows:58px;justify-content:center;padding:18px;border:1px solid #365069;border-radius:10px;background:#07111f}.executor-mini-cell{position:relative;border:1px solid rgba(143,166,192,.22)}.executor-mini-cell.wall-right{border-right:5px solid #fb7185}.mini-robot{position:absolute;inset:10px;display:grid;place-items:center;border:1px solid #22d3ee;border-radius:7px;background:rgba(34,211,238,.18);color:#67e8f9;font:700 14px "JetBrains Mono",monospace}.executor-mini-board.revealed .wall-right{box-shadow:inset -8px 0 14px rgba(251,113,133,.17)}.executor-predictions{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.executor-choice{padding:8px 10px;border:1px solid #365069;border-radius:7px;background:#0d1a29;color:#b9c9d8;cursor:pointer}.executor-choice:hover,.executor-choice.selected{border-color:#22d3ee;color:#67e8f9;background:rgba(34,211,238,.08)}
.executor-lab{margin-top:18px;border:1px solid #314b65;border-radius:14px;background:#081421;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.18)}.executor-toolbar{display:flex;align-items:end;gap:9px;flex-wrap:wrap;padding:13px 15px;border-bottom:1px solid #2d4054;background:#0b1826}.executor-toolbar label,.executor-prediction-panel label{display:grid;gap:5px;color:#8fa6c0;font:9px "JetBrains Mono",monospace;text-transform:uppercase}.executor-toolbar select,.executor-prediction-panel select,.executor-prediction-panel input{min-height:38px;padding:8px 9px;border:1px solid #365069;border-radius:7px;background:#07111f;color:#e6edf5;font:12px "JetBrains Mono",monospace}.executor-brief{padding:12px 15px;border-bottom:1px solid #2d4054;background:rgba(252,211,77,.045)}.executor-brief strong{color:#fcd34d}.executor-brief p{margin:5px 0 0;color:#b9c9d8;font-size:12px;line-height:1.5}.executor-workspace{display:grid;grid-template-columns:minmax(270px,.85fr) minmax(340px,1.15fr);min-width:0}.executor-editor-panel,.executor-stage-panel{min-width:0;padding:15px}.executor-editor-panel{border-right:1px solid #2d4054}.executor-editor-panel h3,.executor-stage-panel h3{margin:0 0 8px;color:#e6edf5;font-size:14px}.executor-editor{width:100%;min-height:205px;padding:12px;resize:vertical;border:1px solid #365069;border-radius:8px;background:#07111f;color:#e6edf5;font:12px/1.65 "JetBrains Mono",monospace;tab-size:2}.executor-editor:focus{border-color:#22d3ee;outline:3px solid rgba(34,211,238,.1)}.executor-code-preview{max-height:220px;margin-top:10px;overflow:auto;border:1px solid #263e58;border-radius:8px;background:#07111f}.executor-code-line{display:grid;grid-template-columns:30px 1fr;padding:2px 8px;font:11px/1.55 "JetBrains Mono",monospace}.executor-code-line b{color:#526b83;text-align:right;padding-right:8px}.executor-code-line code{padding:0;background:none;color:#b9c9d8;white-space:pre}.executor-code-line.active{background:rgba(34,211,238,.13)}.executor-code-line.active b,.executor-code-line.active code{color:#67e8f9}.executor-code-line.error{background:rgba(251,113,133,.13)}.executor-code-line.error b,.executor-code-line.error code{color:#fda4af}.executor-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.executor-prediction-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;padding:11px;border:1px solid #c39b36;border-radius:9px;background:rgba(252,211,77,.055)}.executor-prediction-panel .wide{grid-column:1/-1}.executor-prediction-panel .btn-c{align-self:end;justify-self:start}.executor-feedback{min-height:42px;margin-top:11px;padding:9px 11px;border:1px solid #365069;border-radius:8px;color:#b9c9d8;font-size:12px;line-height:1.5}.executor-feedback.success{border-color:rgba(52,211,153,.6);color:#a7f3d0;background:rgba(52,211,153,.06)}.executor-feedback.failure{border-color:rgba(251,113,133,.6);color:#fda4af;background:rgba(251,113,133,.06)}.executor-feedback.warning{border-color:rgba(252,211,77,.6);color:#fde68a;background:rgba(252,211,77,.06)}
.robot-board{display:grid;grid-template-columns:repeat(var(--robot-cols),minmax(24px,1fr));aspect-ratio:1.28;max-width:610px;margin:0 auto;padding:8px;border:1px solid #365069;border-radius:11px;background:#07111f}.robot-axis,.robot-corner{display:grid;place-items:center;color:#718ba3;font:9px "JetBrains Mono",monospace}.robot-cell{position:relative;display:grid;place-items:center;margin:-1px 0 0 -1px;border:1px solid rgba(143,166,192,.18);background:#0b1826;box-sizing:border-box}.robot-cell.wall-up{border-top:4px solid #8fa6c0}.robot-cell.wall-down{border-bottom:4px solid #8fa6c0}.robot-cell.wall-left{border-left:4px solid #8fa6c0}.robot-cell.wall-right{border-right:4px solid #8fa6c0}.robot-cell.start::after{content:"S";position:absolute;left:3px;top:2px;color:#526b83;font:8px "JetBrains Mono",monospace}.robot-cell.goal{background:rgba(52,211,153,.1)}.robot-cell.goal::before{content:"◎";color:#34d399;font-size:16px}.robot-cell.paint-target{background-image:repeating-linear-gradient(45deg,rgba(252,211,77,.08) 0 5px,transparent 5px 10px)}.robot-cell.painted{background:#4d3f18}.robot-cell.robot b{position:absolute;z-index:2;display:grid;place-items:center;width:68%;aspect-ratio:1;border:1px solid #22d3ee;border-radius:7px;background:#123b4a;color:#67e8f9;font:700 12px "JetBrains Mono",monospace;box-shadow:0 0 13px rgba(34,211,238,.22)}.robot-cell.refusal{animation:executorRefusal .35s ease-out 2;box-shadow:inset 0 0 0 3px #fb7185}.executor-state-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.executor-state-grid>div{min-height:58px;padding:9px;border:1px solid #263e58;border-radius:8px;background:#0d1a29}.executor-state-grid span{display:block;color:#718ba3;font:9px "JetBrains Mono",monospace;text-transform:uppercase}.executor-state-grid strong{display:block;margin-top:6px;color:#a7f3d0;font:11px/1.45 "JetBrains Mono",monospace}.executor-trace{margin:13px 15px 15px;overflow:auto;border:1px solid #263e58;border-radius:9px;background:#07111f}.executor-trace-head,.executor-trace-row{display:grid;grid-template-columns:55px 60px minmax(150px,1fr) minmax(125px,.8fr);min-width:520px}.executor-trace-head span,.executor-trace-row span{padding:7px 8px;border-bottom:1px solid #263e58}.executor-trace-head{background:#13283c;color:#8fa6c0;font:9px "JetBrains Mono",monospace;text-transform:uppercase}.executor-trace-row{color:#b9c9d8;font:10px/1.35 "JetBrains Mono",monospace}.executor-trace-row.active{background:rgba(34,211,238,.1);color:#67e8f9}.executor-trace-row.refusal{background:rgba(251,113,133,.08);color:#fda4af}.executor-empty{display:block;padding:18px;color:#718ba3;text-align:center;font-size:11px}
.turtle-canvas{display:block;width:100%;height:auto;max-width:700px;margin:0 auto;border:1px solid #365069;border-radius:10px;background:#07111f}.turtle-prediction{grid-template-columns:repeat(4,minmax(75px,1fr))}.turtle-prediction .btn-c{grid-column:1/-1}.executor-trace-head.turtle,.executor-trace-row.turtle{grid-template-columns:55px 60px minmax(145px,1fr) minmax(150px,.9fr)}.executor-command-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.executor-command-list code{display:block;padding:9px;border:1px solid #365069;border-radius:7px;background:#07111f;color:#67e8f9;font-size:11px}.executor-command-list span{display:block;margin-top:4px;color:#8fa6c0;font:10px "Manrope",sans-serif}
.executor-assessment{padding:15px;border:1px solid #314b65;border-radius:14px;background:#081421}.executor-assessment-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid #2d4054}.executor-assessment-toolbar>div{display:grid;gap:4px}.executor-assessment-toolbar>div:nth-child(2){flex:1}.executor-assessment-toolbar span,.executor-seed-tools label{color:#8fa6c0;font:9px "JetBrains Mono",monospace;text-transform:uppercase}.executor-assessment-toolbar strong{color:#e6edf5;font:700 13px "JetBrains Mono",monospace}.executor-assessment-toolbar strong.warning{color:#fb7185}.executor-seed-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;padding:8px;border:1px solid #263e58;border-radius:8px;background:#07111f}.executor-seed-tools input{width:145px;padding:8px;border:1px solid #365069;border-radius:7px;background:#0d1a29;color:#e6edf5;font:12px "JetBrains Mono",monospace;text-transform:uppercase}.executor-seed-tools span{color:#fcd34d;font-size:11px}.executor-assessment-message{display:grid;gap:6px;padding:28px 15px;color:#8fa6c0;text-align:center}.executor-assessment-message b{color:#fcd34d}.executor-question{margin-top:13px;padding:15px;border:1px solid #2d4054;border-radius:10px;background:#0d1a29}.executor-question.right{border-color:rgba(52,211,153,.6);background:rgba(52,211,153,.045)}.executor-question.wrong{border-color:rgba(251,113,133,.6);background:rgba(251,113,133,.045)}.executor-question-head{display:flex;justify-content:space-between;gap:8px;color:#fcd34d;font:9px "JetBrains Mono",monospace;text-transform:uppercase}.executor-question-head b{display:grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:#13283c}.executor-question h3{margin:10px 0;color:#e6edf5;font-size:15px;line-height:1.45}.executor-options{display:grid;gap:7px}.executor-option{display:flex;align-items:flex-start;gap:8px;width:100%;padding:9px;border:1px solid #365069;border-radius:7px;background:#07111f;color:#d6e2ed;text-align:left;cursor:pointer}.executor-option>span{display:grid;place-items:center;min-width:22px;height:22px;border:1px solid #526b83;border-radius:50%;color:#8fa6c0;font:10px "JetBrains Mono",monospace}.executor-option:hover,.executor-option.selected{border-color:#22d3ee;color:#67e8f9}.executor-option.correct-answer{border-color:#34d399;color:#a7f3d0;background:rgba(52,211,153,.08)}.executor-short{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.executor-short label{display:grid;gap:5px;flex:1;color:#8fa6c0;font-size:11px}.executor-short input{width:100%;padding:10px;border:1px solid #365069;border-radius:7px;background:#07111f;color:#e6edf5;font:13px "JetBrains Mono",monospace}.executor-short>span{color:#a7f3d0;font:11px "JetBrains Mono",monospace}.executor-answer-feedback{margin-top:10px;padding:9px;border-left:3px solid #22d3ee;background:#07111f;color:#b9c9d8;font-size:12px;line-height:1.5}.executor-answer-feedback a{color:#67e8f9}.executor-assessment-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.executor-assessment-nav span{color:#8fa6c0;font:10px "JetBrains Mono",monospace;text-align:center}.executor-result{display:none;margin-top:13px}.executor-result.visible{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border:1px solid #365069;border-radius:9px;background:#07111f}.executor-result>strong{color:#fcd34d;font:700 18px "JetBrains Mono",monospace}.executor-result>span{color:#b9c9d8;font-size:12px}.executor-diagnostic-note{width:100%;margin:0;color:#8fa6c0;font-size:11px}.executor-diagnostics{display:flex;gap:7px;flex-wrap:wrap;width:100%}.executor-diagnostic{display:flex;align-items:center;justify-content:space-between;gap:9px;min-width:180px;padding:8px 9px;border:1px solid #365069;border-radius:7px;color:#d6e2ed;text-decoration:none}.executor-diagnostic span{font-size:10px}.executor-diagnostic b{font:10px "JetBrains Mono",monospace}.executor-diagnostic.strong{border-color:rgba(52,211,153,.55)}.executor-diagnostic.strong b{color:#34d399}.executor-diagnostic.weak{border-color:rgba(251,113,133,.55)}.executor-diagnostic.weak b{color:#fb7185}.executor-diagnostic.unchecked{border-style:dashed;color:#8fa6c0}.executor-diagnostic.unchecked b{color:#8fa6c0}
.exam-foundation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.exam-foundation>div{padding:14px;border:1px solid #365069;border-radius:9px;background:#0d1a29}.exam-foundation span{color:#fcd34d;font:10px "JetBrains Mono",monospace}.exam-foundation h3{margin:6px 0;color:#e6edf5;font-size:15px}.exam-foundation p{margin:0;color:#8fa6c0;font-size:12px;line-height:1.5}
.theme-fab{position:absolute;top:14px;right:14px;width:44px;height:44px}.robot-row{display:contents}.rail a.cur.done{border-color:var(--cyan);background:linear-gradient(180deg,rgba(34,211,238,.12),rgba(52,211,153,.06))}.btn-c,.nav-back,.nav-prev,.nav-next,.executor-choice,.executor-option,.executor-toolbar select,.executor-prediction-panel select,.executor-prediction-panel input,.executor-seed-tools input,.executor-short input,.executor-seed-tools .btn-c,.executor-assessment-nav .btn-c{min-height:44px}.executor-choice:focus-visible,.executor-option:focus-visible,.btn-c:focus-visible,.nav-back:focus-visible,.nav-prev:focus-visible,.nav-next:focus-visible,.executor-toolbar select:focus-visible,.executor-prediction-panel select:focus-visible,.executor-prediction-panel input:focus-visible,.executor-seed-tools input:focus-visible,.executor-short input:focus-visible,.executor-editor:focus-visible,.rail a:focus-visible,.executor-card:focus-visible{outline:3px solid #fcd34d;outline-offset:2px;border-color:#fcd34d}.executor-trace{scrollbar-color:#365069 #07111f;scrollbar-width:thin}
@keyframes executorRefusal{50%{transform:translateX(3px)}}
@media(max-width:820px){.executor-workspace{grid-template-columns:1fr}.executor-editor-panel{border-right:0;border-bottom:1px solid #2d4054}.executor-diagnostic-lab{grid-template-columns:1fr}.executor-mini-board{grid-template-columns:repeat(3,52px);grid-auto-rows:52px}.executor-prediction-panel{grid-template-columns:1fr 1fr}.turtle-prediction{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.executor-grid,.executor-theory-grid,.exam-foundation{grid-template-columns:1fr}.executor-toolbar label{width:100%}.executor-toolbar select{width:100%}.executor-toolbar .btn-c,.executor-actions .btn-c{flex:1;justify-content:center;min-height:44px}.executor-editor-panel,.executor-stage-panel{padding:11px}.robot-board{padding:4px}.robot-cell.robot b{font-size:10px}.executor-state-grid,.executor-command-list{grid-template-columns:1fr}.executor-prediction-panel,.turtle-prediction{grid-template-columns:1fr}.executor-prediction-panel .btn-c{width:100%;justify-content:center}.executor-assessment{padding:11px}.executor-assessment-toolbar>div:nth-child(2){flex-basis:100%}.executor-assessment-nav .btn-c{min-width:0;padding:9px}.executor-seed-tools input{flex:1;min-width:100px}.executor-diagnostic{width:100%}.executor-trace::before{content:"Проведи в сторону, чтобы увидеть всю трассу";position:sticky;left:0;display:block;width:max-content;padding:6px 9px;color:#8fa6c0;font:9px "JetBrains Mono",monospace}}
@media(prefers-reduced-motion:reduce){.executor-card,.robot-cell,.executor-trace-row{transition:none}.robot-cell.refusal{animation:none}}

/* Visualizer surfaces follow the shared theme instead of forcing a dark window. */
.executor-mini-board,.executor-editor,.executor-code-preview,.robot-board,.executor-trace,.executor-seed-tools,.executor-assessment-message,.turtle-canvas{background:var(--bg)}
.executor-lab,.executor-assessment{border-color:var(--line);background:var(--bg2)}
.executor-toolbar,.executor-brief{border-color:var(--line);background:var(--panel)}
.executor-editor-panel{border-color:var(--line)}
.executor-toolbar select,.executor-prediction-panel select,.executor-prediction-panel input,.executor-seed-tools input,.executor-short input{border-color:var(--line);background:var(--panel);color:var(--ink)}
.executor-code-line code,.executor-question h3,.executor-assessment-toolbar strong{color:var(--ink)}
.executor-code-line b,.executor-toolbar label,.executor-prediction-panel label,.executor-state-grid span,.executor-question-head,.executor-assessment-toolbar span,.executor-seed-tools label{color:var(--muted)}
.robot-cell{border-color:color-mix(in srgb,var(--muted) 28%,transparent);background:var(--panel2)}
.robot-cell.wall-up{border-top-color:var(--muted)}.robot-cell.wall-down{border-bottom-color:var(--muted)}.robot-cell.wall-left{border-left-color:var(--muted)}.robot-cell.wall-right{border-right-color:var(--muted)}
.robot-cell.start::after,.robot-axis,.robot-corner{color:var(--muted)}
.robot-cell.goal{background:color-mix(in srgb,var(--green) 12%,var(--panel2))}.robot-cell.goal::before{color:var(--green)}
.robot-cell.paint-target{background-image:repeating-linear-gradient(45deg,color-mix(in srgb,var(--amber) 16%,transparent) 0 5px,transparent 5px 10px)}.robot-cell.painted{background:color-mix(in srgb,var(--amber) 36%,var(--panel2))}
.robot-cell.robot b{border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 18%,var(--panel));color:var(--cyan)}
.executor-state-grid>div,.executor-question,.executor-option,.executor-choice,.executor-diagnostic,.exam-foundation>div{border-color:var(--line);background:var(--panel)}
.executor-option,.executor-choice{color:var(--ink)}
.executor-trace-head,.executor-trace-row{border-color:var(--line);background:var(--panel)}
.executor-trace-row.active{background:color-mix(in srgb,var(--cyan) 12%,var(--panel))}
.turtle-canvas{--ex-canvas-bg:var(--bg);--ex-canvas-axis:var(--muted);--ex-canvas-grid:color-mix(in srgb,var(--muted) 22%,transparent);--ex-canvas-label:var(--muted);--ex-canvas-path:var(--cyan);--ex-canvas-marker:var(--amber)}

/* Applied one-of-four assessment scenes. */
.executor-assessment{border-color:var(--line);background:var(--bg2);box-shadow:0 18px 42px color-mix(in srgb,var(--bg) 42%,transparent)}
.executor-assessment-toolbar{border-color:var(--line)}
.executor-assessment-toolbar span,.executor-seed-tools label{color:var(--muted)}
.executor-assessment-toolbar strong{color:var(--ink)}
.executor-assessment-toolbar strong.warning,.executor-assessment-message.failure{color:var(--red)}
.executor-seed-tools,.executor-assessment-message{border-color:var(--line);background:var(--bg)}
.executor-seed-tools input{border-color:var(--line);background:var(--panel);color:var(--ink)}
.executor-seed-tools span,.executor-assessment-message b{color:var(--amber)}
.executor-question{padding:clamp(13px,2.2vw,20px);border-color:var(--line);background:var(--panel)}
.executor-question.right{border-color:color-mix(in srgb,var(--green) 68%,var(--line));background:color-mix(in srgb,var(--green) 7%,var(--panel))}
.executor-question.wrong{border-color:color-mix(in srgb,var(--red) 68%,var(--line));background:color-mix(in srgb,var(--red) 7%,var(--panel))}
.executor-question-head{color:var(--amber)}
.executor-question-head b{background:var(--panel2);color:var(--ink)}
.executor-question.right .executor-question-head b{background:color-mix(in srgb,var(--green) 16%,var(--panel2));color:var(--green)}
.executor-question.wrong .executor-question-head b{background:color-mix(in srgb,var(--red) 16%,var(--panel2));color:var(--red)}
.executor-question h3{max-width:900px;margin:12px 0;color:var(--ink);font-size:clamp(15px,2vw,18px)}
.executor-assessment-scene{display:grid;grid-template-columns:minmax(220px,.82fr) minmax(280px,1.18fr);gap:10px;margin:14px 0}
.executor-scene-pane{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.executor-scene-pane-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--panel2);font:9px "JetBrains Mono",monospace;letter-spacing:.05em;text-transform:uppercase}
.executor-scene-pane-head span{color:var(--muted)}
.executor-scene-pane-head b{color:var(--amber);font-weight:600;text-align:right}
.executor-assessment-scene.revealed .executor-scene-pane-head b{color:var(--green)}
.executor-scene-code pre{max-height:285px;margin:0;padding:9px 0;overflow:auto;background:var(--bg);font:11px/1.55 "JetBrains Mono",monospace;tab-size:2}
.executor-scene-code-line{display:grid;grid-template-columns:32px minmax(max-content,1fr);min-height:20px;padding:1px 10px 1px 0}
.executor-scene-code-line i{padding-right:8px;border-right:1px solid var(--line);color:var(--muted);font-style:normal;text-align:right;user-select:none}
.executor-scene-code-line code{padding-left:9px;background:transparent;color:var(--ink);font:inherit;white-space:pre}
.executor-scene-code-line:has(code:not(:empty)){background:color-mix(in srgb,var(--cyan) 2%,transparent)}
.executor-scene-visual{display:flex;flex-direction:column}
.executor-scene-visual>.robot-board,.executor-scene-visual>.turtle-canvas,.executor-scene-model{margin:10px auto}
.executor-assessment-board.robot-board{width:min(100% - 20px,390px);max-width:390px;aspect-ratio:auto;grid-auto-rows:minmax(28px,38px);padding:5px;border-color:var(--line);background:var(--bg)}
.executor-assessment-board .robot-cell{background:var(--panel)}
.executor-assessment-board .robot-cell.refusal{box-shadow:inset 0 0 0 3px var(--red)}
.executor-assessment-board .robot-cell.robot b{border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 17%,var(--panel));color:var(--cyan);box-shadow:0 0 12px color-mix(in srgb,var(--cyan) 24%,transparent)}
.executor-assessment-turtle{width:calc(100% - 20px);max-width:460px;margin:10px auto;border-color:var(--line);background:var(--bg);--ex-canvas-bg:var(--bg);--ex-canvas-axis:var(--muted);--ex-canvas-grid:color-mix(in srgb,var(--muted) 22%,transparent);--ex-canvas-label:var(--muted);--ex-canvas-path:var(--cyan);--ex-canvas-marker:var(--amber)}
.executor-scene-legend{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:0 10px 8px;color:var(--muted);font:9px "JetBrains Mono",monospace}
.executor-scene-legend span{display:flex;align-items:center;gap:5px}
.executor-scene-legend i{display:inline-grid;place-items:center;width:17px;height:17px;font-style:normal}
.executor-scene-legend .legend-robot{border:1px solid var(--cyan);border-radius:4px;color:var(--cyan)}
.executor-scene-legend .legend-goal{color:var(--green);font-size:15px}
.executor-scene-legend .legend-wall{width:19px;height:4px;background:var(--red)}
.executor-scene-legend .legend-course{color:var(--amber);font-size:16px}
.executor-scene-legend .legend-path{width:20px;height:0;border-top:3px solid var(--cyan)}
.executor-scene-status{margin:auto 10px 10px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--muted);font:10px/1.45 "JetBrains Mono",monospace}
.executor-scene-status.revealed{border-color:color-mix(in srgb,var(--green) 45%,var(--line));color:var(--ink)}
.executor-scene-model{display:flex;align-items:stretch;justify-content:center;gap:7px;width:calc(100% - 20px);min-height:105px}
.executor-scene-node{display:grid;align-content:center;flex:1 1 0;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);text-align:center}
.executor-scene-node span{color:var(--muted);font:9px "JetBrains Mono",monospace;text-transform:uppercase}
.executor-scene-node b{margin-top:7px;color:var(--ink);font-size:11px;overflow-wrap:anywhere}
.executor-scene-node.tone-danger{border-color:color-mix(in srgb,var(--red) 65%,var(--line));background:color-mix(in srgb,var(--red) 8%,var(--panel))}
.executor-scene-node.tone-fixed{border-color:color-mix(in srgb,var(--violet) 55%,var(--line));background:color-mix(in srgb,var(--violet) 8%,var(--panel))}
.executor-scene-arrow{align-self:center;color:var(--amber);font:15px "JetBrains Mono",monospace;font-style:normal}
.executor-outcome-prompt{margin:13px 0 8px;color:var(--muted);font:10px "JetBrains Mono",monospace;text-transform:uppercase}
.executor-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.executor-option{min-height:52px;padding:10px;border-color:var(--line);background:var(--bg);color:var(--ink);line-height:1.4;text-align:left;transition:border-color .16s,background .16s,transform .16s}
.executor-option>span{display:grid;flex:0 0 25px;place-items:center;width:25px;height:25px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--muted);font:700 10px "JetBrains Mono",monospace}
.executor-option:hover:not(:disabled){transform:translateY(-1px);border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 6%,var(--bg))}
.executor-option.selected{border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 10%,var(--bg));color:var(--ink)}
.executor-option.selected>span{border-color:var(--cyan);color:var(--cyan)}
.executor-option.correct-answer,.executor-option.correct-answer:disabled{border-color:var(--green);background:color-mix(in srgb,var(--green) 11%,var(--bg));color:var(--ink);opacity:1}
.executor-option.correct-answer>span{border-color:var(--green);color:var(--green)}
.executor-option.incorrect-answer,.executor-option.incorrect-answer:disabled{border-color:var(--red);background:color-mix(in srgb,var(--red) 9%,var(--bg));color:var(--ink);opacity:1}
.executor-option.incorrect-answer>span{border-color:var(--red);color:var(--red)}
.executor-option:disabled{cursor:default;opacity:.78}
.executor-option:focus-visible{outline-color:var(--amber);border-color:var(--amber)}
.executor-answer-feedback{margin-top:11px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--muted);font-size:12px;line-height:1.55}
.executor-answer-feedback strong{color:var(--ink)}
.executor-answer-feedback a{color:var(--cyan)}
.executor-question.right .executor-answer-feedback strong{color:var(--green)}
.executor-question.wrong .executor-answer-feedback strong{color:var(--red)}
.executor-answer-feedback.neutral{color:var(--muted)}
.executor-assessment-nav{border-color:var(--line);color:var(--muted)}
.executor-result{border-color:var(--line);background:var(--panel);color:var(--muted)}
.executor-result>strong{color:var(--amber)}
.executor-diagnostic-note{color:var(--muted)}
.executor-diagnostic{border-color:var(--line);background:var(--bg);color:var(--ink)}
.executor-diagnostic strong,.executor-diagnostic b{color:var(--ink)}
.executor-diagnostic.strong{border-color:color-mix(in srgb,var(--green) 55%,var(--line))}
.executor-diagnostic.weak{border-color:color-mix(in srgb,var(--red) 55%,var(--line))}
.executor-diagnostic.unchecked{border-color:var(--line);color:var(--muted)}
.exam-foundation>div{border-color:var(--line);background:var(--panel)}
.exam-foundation span{color:var(--amber)}
.exam-foundation h3{color:var(--ink)}
.exam-foundation p{color:var(--muted)}

@media(max-width:820px){.executor-assessment-scene{grid-template-columns:1fr}.executor-scene-code pre{max-height:230px}.executor-scene-model{min-height:90px}}
@media(max-width:620px){.executor-options{grid-template-columns:1fr}.executor-scene-model{flex-direction:column}.executor-scene-arrow{transform:rotate(90deg)}.executor-assessment-board.robot-board{grid-auto-rows:minmax(25px,34px)}.executor-scene-pane-head{align-items:flex-start}.executor-scene-pane-head b{max-width:55%}}
@media(prefers-reduced-motion:reduce){.executor-option{transition:none}}

/* Lab chrome and generated states inherit the active shared theme. */
code{background:var(--bg2)}
.executor-chain>div{border-color:var(--line);background:var(--panel)}
.executor-chain span{color:var(--muted)}.executor-chain b{color:var(--ink)}.executor-chain i{color:var(--amber)}
.executor-mini-board{border-color:var(--line);background:var(--bg)}
.executor-mini-cell{border-color:color-mix(in srgb,var(--muted) 28%,transparent)}
.mini-robot{border-color:var(--cyan);background:var(--panel2);color:var(--cyan)}
.executor-choice.selected,.executor-choice:hover{border-color:var(--cyan);background:var(--panel2);color:var(--ink)}

.executor-lab{color:var(--ink)}
.executor-brief strong{color:var(--amber)}.executor-brief p{color:var(--ink)}
.executor-editor-panel h3,.executor-stage-panel h3{color:var(--ink)}
.executor-editor{border-color:var(--line);background:var(--bg);color:var(--ink)}
.executor-code-preview{border-color:var(--line);background:var(--bg)}
.executor-code-line b{color:var(--muted)}.executor-code-line code{color:var(--ink)}
.executor-code-line.active{background:var(--panel2)}
.executor-code-line.active b{color:var(--cyan)}.executor-code-line.active code{color:var(--ink)}
.executor-feedback{border-color:var(--line);background:var(--panel);color:var(--muted)}
.executor-feedback.success{color:var(--green)}.executor-feedback.warning{color:var(--amber)}.executor-feedback.failure{color:var(--red)}
.executor-state-grid>div{border-color:var(--line);background:var(--panel)}
.executor-state-grid span{color:var(--muted)}.executor-state-grid strong{color:var(--green)}
.executor-trace{border-color:var(--line);background:var(--bg)}
.executor-trace-head{border-color:var(--line);background:var(--panel2);color:var(--muted)}
.executor-trace-row{border-color:var(--line);background:var(--panel);color:var(--ink)}
.executor-trace-row.active{background:var(--panel2);color:var(--ink)}
.executor-trace-row b{color:var(--muted)}.executor-trace-row code{color:var(--ink)}
.executor-trace-row.active b{color:var(--cyan)}.executor-trace-row.active code{color:var(--ink)}
.executor-command-list code{border-color:var(--line);background:var(--bg);color:var(--cyan)}
.executor-command-list span{color:var(--muted)}
.executor-run-summary,.executor-diagnostic{border-color:var(--line);background:var(--panel);color:var(--muted)}

.executor-option.selected{border-color:var(--cyan);background:var(--panel2);color:var(--ink)}
.executor-option.correct-answer,.executor-option.correct-answer:disabled,.executor-option.incorrect-answer,.executor-option.incorrect-answer:disabled{color:var(--ink)}
.executor-code-line.error{background:var(--panel2)}
.executor-code-line.error b,.executor-code-line.error code{color:var(--red)}
.executor-empty{color:var(--muted)}
.robot-cell.robot b,.executor-assessment-board .robot-cell.robot b{border-color:var(--cyan);background:var(--panel);color:var(--cyan)}
.executor-question.right .executor-question-head b,.executor-question.wrong .executor-question-head b{background:var(--panel2)}
.executor-assessment-nav #practicePosition,.executor-assessment-nav #examPosition{color:var(--muted)!important}
.executor-assessment-message{color:var(--muted)}

/* Completed summaries override the original dark-only result palette. */
.executor-result.visible{border-color:var(--line);background:var(--panel);color:var(--ink)}
.executor-result.visible>strong{color:var(--amber)}
.executor-result.visible>span{color:var(--ink)}
.executor-result.visible .executor-diagnostic-note{color:var(--muted)}
.executor-result.visible .executor-diagnostic{border-color:var(--line);background:var(--bg);color:var(--ink)}
.executor-result.visible .executor-diagnostic span{color:var(--ink)}
.executor-result.visible .executor-diagnostic b,.executor-result.visible .executor-diagnostic strong{color:var(--ink)}
.executor-result.visible .executor-diagnostic.strong{border-color:var(--green)}
.executor-result.visible .executor-diagnostic.strong b{color:var(--green)}
.executor-result.visible .executor-diagnostic.weak{border-color:var(--red)}
.executor-result.visible .executor-diagnostic.weak b{color:var(--red)}
.executor-result.visible .executor-diagnostic.unchecked{border-color:var(--line);background:var(--bg);color:var(--muted)}
.executor-result.visible .executor-diagnostic.unchecked span,.executor-result.visible .executor-diagnostic.unchecked b{color:var(--muted)}
