:root{--bg:#1b1e23;--panel:#23272e;--panel-2:#2a2f37;--border:#343a44;--text:#d8dde5;--muted:#8a93a1;--accent:#4a78b8;--accent-hi:#5b8bd0;--warn:#e0a030;--err:#e05050;--ok:#6dbb7a;--mono:ui-monospace, "Cascadia Mono", Consolas, "Liberation Mono", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:600}button,select,input[type=text],input[type=number]{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:3px;min-height:26px;padding:3px 8px}button{cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-hi)}button.active{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled,input:disabled,select:disabled{opacity:.45;cursor:not-allowed}button.link{text-align:left;min-height:0;color:inherit;background:0 0;border:0;padding:0}button.link:hover:not(:disabled){text-decoration:underline}:focus-visible{outline:2px solid var(--accent-hi);outline-offset:1px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.err{color:var(--err)}.warn{color:var(--warn)}.ok{color:var(--ok)}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.app{flex-direction:column;min-width:1000px;height:100%;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:6px 12px;display:flex}.app-title{white-space:nowrap;font-weight:600}.transport{gap:6px;display:flex}.speed{align-items:center;gap:6px;display:flex}.progress{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.progress-slider{flex:1;min-width:80px;display:flex}.progress-slider input[type=range]{min-width:0;accent-color:var(--accent);flex:1}.time{white-space:nowrap}.main{flex:1;min-height:0;display:flex}.left{width:var(--left-width);background:var(--panel);flex-direction:column;flex:none;min-width:0;display:flex}.splitter{cursor:col-resize;background:var(--border);touch-action:none;flex:none;width:5px}.splitter:hover{background:var(--accent)}.tabs{border-bottom:1px solid var(--border);display:flex}.tabs button{background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:7px 4px}.tabs button.active{background:var(--panel-2);border-bottom-color:var(--accent);color:var(--text)}.tab-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.program-panel{flex-direction:column;flex:1;min-height:0;display:flex}.panel-toolbar{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:6px 10px;display:flex}.badge{background:var(--warn);color:#1b1e23;border-radius:9px;padding:0 8px;font-size:11px;font-weight:600}.editor{flex:1;min-height:120px;display:flex;overflow:hidden}.editor .cm-editor{background:var(--bg);min-width:0;color:var(--text);flex:1}.editor .cm-scroller{font-family:var(--mono);font-size:13px;line-height:1.5}.editor .cm-gutters{background:var(--panel);color:var(--muted);border-right:1px solid var(--border)}.editor .cm-activeLine,.editor .cm-activeLineGutter{background:#ffffff0a}.editor .cm-cursor{border-left-color:var(--text)}.editor .cm-selectionBackground,.editor .cm-editor.cm-focused .cm-selectionBackground{background:#4a78b866!important}.editor .cm-current-line{box-shadow:inset 3px 0 0 var(--accent-hi);background:#4a78b859}.editor .cm-tooltip{background:var(--panel-2);border:1px solid var(--border);color:var(--text)}.editor .cm-diagnostic-error{border-left-color:var(--err)}.editor .cm-diagnostic-warning{border-left-color:var(--warn)}.editor .cm-lintRange-error{-webkit-text-decoration:underline wavy var(--err);text-decoration:underline wavy var(--err);background-image:none}.editor .cm-lintRange-warning{-webkit-text-decoration:underline wavy var(--warn);text-decoration:underline wavy var(--warn);background-image:none}.diag-list{border-top:1px solid var(--border);max-height:130px;margin:0;padding:4px 10px;font-size:12px;list-style:none;overflow:auto}.diag-list li{padding:1px 0}.diag-list li.error{color:var(--err)}.diag-list li.warning{color:var(--warn)}.diag-list li.info{color:var(--muted)}.form-panel{flex-direction:column;gap:8px;padding:10px 12px;display:flex}.field{grid-template-columns:130px 1fr;align-items:center;gap:8px;display:grid}.field-label{color:var(--muted)}.field select,.field input[type=text]{width:100%}.num{align-items:center;gap:6px;display:flex}.num input{text-align:right;width:100%;font-family:var(--mono)}.num.invalid input{border-color:var(--err)}.unit{color:var(--muted);width:22px;font-size:12px}.check{align-items:center;gap:8px;margin-left:138px;display:flex}.msg{margin:0;font-size:12px}.mount-row{flex-direction:column;gap:8px;display:flex}.sketch{background:var(--bg);border:1px solid var(--border);border-radius:3px;width:100%;max-height:150px;margin-top:4px}.sk-chuck{fill:#3a414c;stroke:var(--border)}.sk-stock{fill:#a98f4a;fill-opacity:.55;stroke:#cdb269}.sk-bore{fill:var(--bg);stroke:#cdb269;stroke-dasharray:3 2}.sk-z0{stroke:var(--accent-hi);stroke-dasharray:4 3}.sk-dim{stroke:var(--muted)}.sk-text{fill:var(--muted);font-size:10px;font-family:var(--mono)}.sk-tool{fill:#4a78b859;stroke:var(--accent-hi)}.sk-ref{fill:var(--warn)}.preview{max-height:110px}.preview-empty{padding:6px 0}.turret{border-collapse:collapse;width:100%;font-size:12px}.turret th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:4px 8px;font-weight:500}.turret td{border-bottom:1px solid var(--border);white-space:nowrap;padding:4px 8px}.turret tbody tr{cursor:pointer}.turret tbody tr:hover{background:var(--panel-2)}.turret tbody tr.selected{background:#4a78b847}.viewport{background:#12141a;min-width:0;min-height:0;position:relative}.viewport-canvas{color:var(--muted);justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.viewport-canvas canvas{width:100%;height:100%;display:block}.machine-viewport{flex:1}.overlay{pointer-events:none;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:calc(100% - 16px);display:flex;position:absolute;top:8px;right:8px}.overlay>*{pointer-events:auto}.overlay.overlay-left{left:8px;right:auto}.overlay button{background:#23272ee0}.overlay button.active{background:var(--accent)}.btn-group{align-items:center;gap:0;display:flex}.btn-group button{border-radius:0;margin-left:-1px}.btn-group button:first-of-type{border-radius:3px 0 0 3px;margin-left:0}.btn-group button:last-child{border-radius:0 3px 3px 0}.group-label{border:1px solid var(--border);color:var(--muted);background:#23272ee0;border-right:0;border-radius:3px 0 0 3px;padding:3px 8px;line-height:18px}.group-label+button{border-radius:0}.viewport-title{color:var(--muted);background:#23272ee0;border-radius:3px;padding:3px 8px}.right{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;flex:none;width:360px;min-height:0;display:flex}.part-viewport{border-bottom:1px solid var(--border);flex:50%;min-height:160px}.dro{flex:none;padding:8px 12px;overflow:auto}.dro-row{grid-template-columns:90px 1fr 48px;align-items:baseline;gap:6px;display:grid}.dro-label{color:var(--muted)}.dro-unit{color:var(--muted);font-size:11px}.dro-value{text-align:right}.dro-row.big{border-bottom:1px solid var(--border);padding:1px 0}.dro-row.big .dro-value{color:#f1f4f8;font-size:22px}.dro-grid{gap:1px;margin-top:6px;font-size:12px;display:grid}.statusbar{background:var(--panel);border-top:1px solid var(--border);align-items:center;gap:16px;padding:3px 12px;font-size:12px;display:flex}:is(.field>.field-label:has(+svg),.field>.field-label:has(+.preview-empty)){align-self:start}.turret td:last-child{padding-left:2px}.left{max-width:40vw}.overlay{min-width:0}.btn-group{max-width:100%}@media (max-width:1150px){.right{width:290px}.overlay button{padding:3px 6px}.overlay{flex-direction:column;align-items:flex-end}.overlay.overlay-left{align-items:flex-start}}@media (pointer:coarse){.fly-btn{display:none}}.dro-compact,.m-progress,.m-main,.m-machine{display:none}.err-badge{background:var(--err);color:#fff;margin-left:6px}@media (max-width:820px),(pointer:coarse) and (max-height:500px){html,body,#root{height:100dvh;overflow:hidden}button,select,input[type=text],input[type=number]{min-height:40px;padding:4px 10px;font-size:16px}.app.mobile{width:100vw;min-width:0;height:100dvh;overflow:hidden}.topbar.mobile{min-height:44px;padding:2px 8px;padding-top:max(2px, env(safe-area-inset-top));padding-left:max(8px, env(safe-area-inset-left));padding-right:max(8px, env(safe-area-inset-right));gap:8px}.topbar.mobile .app-title,.topbar.mobile .speed-label{display:none}.topbar.mobile .transport{gap:6px}.topbar.mobile .transport button{min-width:44px;padding:4px 8px;font-size:14px}.topbar.mobile .time{margin-left:auto;font-size:13px}.topbar.mobile select{padding:4px}.m-main{flex-direction:column;flex:1;min-height:0;display:flex}.m-view{flex-direction:column;flex:55 1 0;min-height:0;display:flex}.m-machine{flex:1;min-height:0;display:flex;position:relative}.m-machine .machine-viewport{flex:1}.m-progress{background:var(--panel);border-top:1px solid var(--border);padding:0 12px;display:block}.m-progress input[type=range]{width:100%;height:32px;accent-color:var(--accent);margin:0;display:block}.m-progress input[type=range]::-webkit-slider-thumb{width:28px;height:28px}.dro-compact{pointer-events:none;background:#12141abf;border-radius:3px;flex-wrap:wrap;gap:2px 10px;max-width:calc(100% - 12px);padding:3px 7px;font-size:12px;display:flex;position:absolute;bottom:6px;left:6px}.sheet{background:var(--panel);border-top:1px solid var(--border);min-height:0;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;flex:45 1 0;display:flex}.sheet .tabs{flex:none;overflow-x:auto}.sheet .tabs button{white-space:nowrap;flex:1 0 auto;min-height:44px;padding:4px 10px;font-size:14px}.sheet .tab-body{-webkit-overflow-scrolling:touch;overflow:auto}.part-tab .part-viewport{border-bottom:0;flex:1;min-height:0}.part-tab{position:relative}.part-tab:not([hidden]),.info-panel{flex-direction:column;display:flex}.info-panel .dro{flex:none}.info-panel .diag-list{max-height:none;font-size:14px}.info-panel .diag-list li{padding:5px 0}.editor{min-height:160px}.editor .cm-scroller{font-size:14px}.editor .cm-content{padding-bottom:40px}.diag-list{max-height:90px;font-size:13px}.panel-toolbar .muted{display:none}.field{grid-template-columns:1fr;gap:3px}.check{margin-left:0}.form-panel{padding:10px}.turret td,.turret th{padding:8px}.turret{font-size:13px}.overlay{flex-direction:row;align-items:flex-start;gap:6px}.overlay button,.overlay select{background:#23272ee0;min-height:40px}.overlay select{color:var(--text)}.part-viewport .overlay button{min-height:40px}}@media (max-width:820px) and (orientation:landscape),(pointer:coarse) and (max-height:500px){.m-main{flex-direction:row}.m-view{flex:55 1 0;min-width:0}.sheet{border-top:0;border-left:1px solid var(--border);min-width:0;padding-right:env(safe-area-inset-right);flex:45 1 0}.sheet .tabs button{flex:auto;padding:4px 5px;font-size:13px}.topbar.mobile{min-height:44px}}
