:root{--hover-bg:color-mix(in srgb, var(--surface-2), var(--text) 8%);--button-text:color-mix(in srgb, var(--text) 80%, var(--muted));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef0f3;--surface:#fff;--surface-2:#f5f6f8;--border:#d9dde3;--text:#1b1f24;--muted:#5d6671;--accent:#e8741c;--accent-text:#fff;--info:#2f6fd6;--ok:#1f9d55;--warn:#c98a00;--danger:#d33f3f;--focus:#2f6fd6;--viewport-bg:#dfe3e8;--grid:#c9ced6;--grid-major:#aeb5bf;--envelope:#7c8693;--path-preview:#5b6b80;--path-rapid:#7d8ea5;--path-cut:#e8741c;--path-travel:#2f6fd6;--radius:10px;--mono:"Kode Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"Jost", system-ui, -apple-system, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1216;--surface:#171b21;--surface-2:#1d222a;--border:#2a313b;--text:#e6e9ed;--muted:#8f99a6;--accent:#f08a35;--accent-text:#1a0e04;--info:#5b93f0;--ok:#3fbf74;--warn:#e5b23a;--danger:#f06464;--focus:#5b93f0;--viewport-bg:#12161b;--grid:#1f252d;--grid-major:#2d3540;--envelope:#4a5563;--path-preview:#7f93ad;--path-rapid:#56657a;--path-cut:#f08a35;--path-travel:#5b93f0}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1216;--surface:#171b21;--surface-2:#1d222a;--border:#2a313b;--text:#e6e9ed;--muted:#8f99a6;--accent:#f08a35;--accent-text:#1a0e04;--info:#5b93f0;--ok:#3fbf74;--warn:#e5b23a;--danger:#f06464;--focus:#5b93f0;--viewport-bg:#12161b;--grid:#1f252d;--grid-major:#2d3540;--envelope:#4a5563;--path-preview:#7f93ad;--path-rapid:#56657a;--path-cut:#f08a35;--path-travel:#5b93f0}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.4 var(--sans);flex-direction:column;display:flex}button,select,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.topbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.logo{background:conic-gradient(from 45deg, var(--accent), var(--info), var(--accent));border-radius:6px;width:22px;height:22px}.topbar-end{align-items:center;gap:12px;min-width:0;display:flex}.source{color:var(--muted);font-size:13px;text-decoration:none}.source:hover{color:var(--text);text-decoration:underline}.badge.remote{color:var(--info);border-color:var(--info);text-overflow:ellipsis;white-space:nowrap;max-width:40vw;overflow:hidden}h1{white-space:nowrap;margin:0;font-size:16px;font-weight:600}h1 span{color:var(--muted);font-weight:500}.badge{font:500 11px var(--mono);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 7px}.state{font:600 12px var(--mono);letter-spacing:.04em;text-transform:uppercase;background:var(--surface-2);border:1px solid var(--c);--c:var(--muted);color:var(--c);border-radius:999px;padding:5px 10px 5px 24px;transition:border-color .2s,color .2s;position:relative}.state:before{content:"";aspect-ratio:1/2;background:var(--c);border-radius:999px 0 0 999px;transition:background-color .2s;position:absolute;inset:2px auto 2px 2px}.state[data-state=Idle]{--c:var(--ok)}.state[data-state=Run],.state[data-state=Jog]{--c:var(--info)}.state[data-state=Hold],.state[data-state=Door]{--c:var(--warn)}.state[data-state=Alarm]{--c:var(--danger)}.state[data-state=Home]{--c:var(--accent)}.segmented{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{cursor:pointer;color:var(--muted);font:500 12px var(--mono);background:0 0;border:0;border-radius:0;padding:5px 10px}.segmented button+button{border-left:1px solid var(--border)}.segmented button[aria-checked=true]{background:var(--accent);color:var(--accent-text)}.layout{flex:1;grid-template-columns:minmax(0,1fr) 360px;min-height:0;display:grid}.viewport{background:var(--viewport-bg);min-height:0;position:relative;overflow:hidden}.viewport canvas{display:block}.hud,.hud-actions,.legend{background:color-mix(in srgb, var(--surface) 85%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:8px;padding:6px 10px;position:absolute}.hud{min-width:150px;font-size:12px;top:12px;left:12px}.hud-row{justify-content:space-between;gap:12px;display:flex}.hud-row span{color:var(--muted)}.hud-row b{font:500 12px var(--mono)}.hud-actions{gap:6px;padding:4px;display:flex;top:12px;right:12px}.sim-controls{flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:12px;right:12px}.legend{color:var(--muted);gap:14px;font-size:12px;display:flex;bottom:12px;left:12px}.swatch{vertical-align:3px;border-radius:2px;width:14px;height:3px;margin-right:6px;display:inline-block}.swatch.cut{background:var(--path-cut)}.swatch.travel{background:var(--path-travel)}.swatch.preview{background:var(--path-preview)}.panel{border-left:1px solid var(--border);background:var(--bg);flex-direction:column;gap:12px;min-height:0;padding:12px;display:flex;overflow-y:auto}.panel>.card{flex-shrink:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.card h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;font-size:12px;font-weight:600}.dro{font-family:var(--mono);gap:2px;display:grid}.dro-head,.dro-row{grid-template-columns:28px 1fr 1fr;align-items:baseline;gap:8px;display:grid}.dro-head span{font:500 11px var(--sans);color:var(--muted);text-align:right}.dro-row .axis{color:var(--muted);font-weight:600}.dro-row .work{text-align:right;font-variant-numeric:tabular-nums;font-size:22px;font-weight:500}.dro-row .mach{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.readouts{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;padding-top:10px;display:grid}.readouts div{flex-direction:column;display:flex}.readouts span{color:var(--muted);font-size:11px}.readouts b{font:500 15px var(--mono);font-variant-numeric:tabular-nums}.readouts small{color:var(--muted);font-size:11px}button,.button{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-weight:500;display:inline-flex}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);border-color:#0000}button.danger{color:var(--danger)}button.ghost{background:0 0;border-color:#0000;padding:4px 8px;font-size:12px}button,.button{color:var(--button-text);transition:background-color .12s,color .12s}button:hover:not(:disabled),.button:hover{background:var(--hover-bg);color:var(--text)}button.primary{color:var(--accent-text)}button.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, var(--text));color:var(--accent-text)}button.danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 12%, var(--surface-2));color:var(--danger)}button.ghost:hover:not(:disabled){background:var(--hover-bg)}.segmented button:hover:not(:disabled):not([aria-checked=true]){background:var(--hover-bg);color:var(--text)}.segmented button[aria-checked=true]:hover{background:var(--accent);color:var(--accent-text)}.button-row{flex-wrap:wrap;gap:6px;display:flex}.file input{display:none}.jog{grid-template-columns:auto 1fr;align-items:end;gap:6px 14px;margin-top:12px;display:grid}.jog-pad{grid-row:span 2;grid-template-rows:repeat(3,34px);grid-template-columns:repeat(4,40px);gap:4px;display:grid}.jog-pad button{font:500 12px var(--mono);padding:0}.y-plus{grid-area:1/2}.x-minus{grid-area:2/1}.x-plus{grid-area:2/3}.y-minus{grid-area:3/2}.z-plus{grid-area:1/4}.z-minus{grid-area:3/4}.field{color:var(--muted);flex-direction:column;gap:3px;font-size:11px;display:flex}.field select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:4px 6px}.program-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.progress{background:var(--surface-2);border:1px solid var(--border);border-radius:3px;height:6px;margin:8px 0 4px;overflow:hidden}.progress div{background:var(--accent);width:0;height:100%;transition:width .2s}.program-meta{font:12px var(--mono);color:var(--muted);min-height:1.4em;margin-bottom:8px}.console{flex-direction:column;flex-grow:1;display:flex}.log{min-height:160px;font:12px/1.45 var(--mono);background:var(--surface-2);border:1px solid var(--border);white-space:pre-wrap;word-break:break-all;border-radius:7px;flex:1 1 0;padding:6px 8px;overflow-y:auto}.log .tx{color:var(--info)}.log .tx:before{content:"› "}.log .rx{color:var(--text)}.log .ok{color:var(--muted)}.log .msg{color:var(--accent)}.log .error{color:var(--danger)}.log .alarm{color:var(--danger);font-weight:600}.log .note{color:var(--muted);font-style:italic}#command{margin-top:6px}#command input{width:100%;font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:7px 9px;font-size:13px}.field-grid{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px;display:grid}.field-grid input{width:100%;min-width:0;font:13px var(--mono);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:4px 6px}.tool-table{gap:4px;margin-bottom:8px;display:grid}.tool-head,.tool-row{grid-template-columns:28px 58px repeat(4,minmax(0,1fr)) 22px;align-items:center;gap:4px;display:grid}.tool-head span{color:var(--muted);font-size:11px}.tool-row input,.tool-row select{width:100%;min-width:0;font:12px var(--mono);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:4px 3px}.tool-row button{padding:2px 0}.tool-row input[type=number],.field-grid input[type=number]{appearance:textfield}.tool-row input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field-grid input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.findings{gap:4px;max-height:240px;margin:8px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.findings:empty{display:none}.findings li button{text-align:left;grid-template-columns:10px auto 1fr;align-items:baseline;gap:8px;width:100%;padding:6px 8px;font-size:12px;line-height:1.35;display:grid}.findings .dot{background:var(--danger);border-radius:50%;align-self:center;width:8px;height:8px}.findings .warning .dot{background:var(--warn)}.findings .where{font:500 12px var(--mono);color:var(--muted);white-space:nowrap}.findings .count{color:var(--muted)}#simulate+button+.segmented{margin-left:auto}[data-layout=viewer] .topbar,[data-layout=viewer] .panel{display:none}[data-layout=viewer] .layout{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.button.file:has(input:disabled){opacity:.45;cursor:default;pointer-events:none}input:disabled{opacity:.45}@media (max-width:860px){.layout{grid-template-rows:55vh auto;grid-template-columns:1fr}.panel{border-left:0;border-top:1px solid var(--border);overflow:visible}.topbar{padding:10px 16px}.legend{display:none}}
