:root{--page: #f6f5f1;--surface: #ffffff;--ink: #1f2328;--muted: #5e6570;--line: #dcd9d1;--accent: #0e7c6b;--accent-tint: rgba(14, 124, 107, .13);--error: #c62828;--error-tint: rgba(198, 40, 40, .07);--code-keyword: #7a3e9d;--code-type: #0b6e99;--code-literal: #9c4c19;--code-string: #2b722e;--code-comment: #5e6570;--field: #fbfaf7;--grid: #ebe8e0;--mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body{height:100%}body{margin:0;display:flex;flex-direction:column;background:var(--page);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.bar{display:flex;align-items:baseline;gap:18px;padding:10px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.bar h1{margin:0;font-size:16px;font-weight:650}.hint{flex:1;margin:0;color:var(--muted)}.status{margin:0;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.workbench{flex:1;min-height:0;display:grid;grid-template-columns:minmax(380px,1fr) minmax(0,1fr);grid-template-rows:minmax(0,3fr) minmax(0,2fr);grid-template-areas:"arena program" "arena stages";gap:14px;padding:14px 20px 20px}.views{display:none}.arena{grid-area:arena;min-height:0;display:flex;flex-direction:column;gap:10px}.field{width:100%;aspect-ratio:4 / 3;border:1px solid var(--line);border-radius:6px}.robots{margin:0;padding:0;list-style:none}.robots li{display:grid;grid-template-columns:14px var(--name-width, 9.5rem) minmax(0,1fr) 8ch;align-items:center;gap:10px;padding:4px 2px}.swatch{width:14px;height:14px;border-radius:50%}.robots .name{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.strip{width:100%;max-width:300px;height:32px}.legend{margin:0;color:var(--muted);font-size:13px}.robots .energy{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.replay{display:flex;align-items:center;gap:12px}.replay button,.match-bar button{min-width:6ch;padding:4px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit}.replay input{flex:1;accent-color:var(--accent)}.replay output{min-width:9ch;color:var(--muted);font-variant-numeric:tabular-nums}.match-bar{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px}.match-bar button{white-space:nowrap}.opponent{color:var(--muted)}.opponent select{margin-left:6px;font:inherit}.result{margin:0;font-weight:600}.notice{margin:0;color:var(--error)}.notice:empty{display:none}.pane{grid-area:program;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;background:var(--surface);overflow:hidden}.editor{flex:1;min-height:0}.editor .cm-editor{height:100%}.editor .cm-editor.cm-focused{outline:none}.editor .cm-activeLine{background:var(--accent-tint)}.editor .cm-activeLineGutter{background:var(--accent-tint);color:var(--accent);font-weight:600}.cm-scroller{font-family:var(--mono);font-size:13px;line-height:1.5}.keys{display:none;margin:0;padding:5px 14px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.program:focus-within .keys{display:block}.errors{max-height:30%;margin:0;padding:0;overflow:auto;list-style:none;border-top:1px solid var(--line)}.errors:empty{display:none}.errors button{display:flex;gap:12px;width:100%;padding:7px 14px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.errors button:hover,.errors button:focus-visible{background:var(--error-tint)}.errors button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.errors .position{min-width:4ch;color:var(--error);font-family:var(--mono);font-size:13px}.stages{grid-area:stages;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);gap:4px}.stage-switch{display:flex;gap:16px}.stage-switch button{min-height:32px;padding:4px 2px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font:inherit;font-size:14px;text-align:left}.stage-switch button[aria-pressed=true],.pass-switch button[aria-pressed=true]{border-bottom-color:var(--accent);color:var(--ink);font-weight:600}.pass-switch{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px;color:var(--muted);font-size:13px}.pass-switch[hidden]{display:none}.pass-switch button{min-height:28px;padding:2px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font:inherit}.stage:not(.chosen){visibility:hidden}.stage{grid-row:3;grid-column:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;background:var(--surface);overflow:hidden}.stages.stale .stage .cm-content{color:var(--muted)}.stages.stale .stage .cm-scroller{cursor:default}.pane:focus-within,.stage:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.stage header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:6px 12px;border-bottom:1px solid var(--line)}.stage h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.stage .count{color:var(--accent);font-size:13px;font-variant-numeric:tabular-nums}.stage .cm-editor{flex:1;min-height:0}.stage .cm-scroller{font-size:12px;cursor:pointer}.cm-traced{background:var(--accent-tint);box-shadow:inset 3px 0 0 var(--accent)}@media(max-width:820px){html,body{height:auto}.bar{flex-wrap:wrap;row-gap:2px;padding:8px 16px}.hint{order:3;flex-basis:100%;font-size:14px}.workbench{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 70vh;grid-template-areas:"arena" "views" "program";gap:10px;padding:10px 16px 16px}.robots li{--name-width: 6rem}.views{grid-area:views;display:grid;grid-template-columns:1fr 1fr;gap:6px}.views button{min-height:40px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:15px}.views button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint);font-weight:600}.stages{grid-area:program}.stage-switch{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.workbench[data-view=program] .stages,.workbench[data-view=stages] .program{visibility:hidden}.status{white-space:normal}}
