:root {
  --bg: #0c1014;
  --surface: #151b20;
  --surface-2: #1b2228;
  --border: #2b353d;
  --text: #eaf0f2;
  --muted: #83919a;
  --green: #64f5a4;
  --green-dim: #163f2d;
  --amber: #ffb84d;
  --red: #f0524f;
  --blue: #49a8ff;
  --mono: "Cascadia Code", "SFMono-Regular", Consolas, monospace;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display:none !important; }
html { color-scheme: dark; }
body { margin: 0; min-width: 320px; overflow-x:hidden; background: var(--bg); color: var(--text); font-family: var(--sans); font-size: 13px; }
button, select, textarea, input { font: inherit; }
button, select { color: inherit; }
button { cursor: pointer; }
[data-tooltip] { position:relative; }
[data-tooltip]::after { content:attr(data-tooltip); position:absolute; z-index:80; left:50%; bottom:calc(100% + 8px); width:max-content; max-width:220px; padding:7px 9px; border:1px solid #46545c; border-radius:4px; background:#090e11; color:#d8e1e5; font:9px/1.4 var(--sans); font-weight:500; letter-spacing:0; text-align:left; white-space:normal; box-shadow:0 7px 22px rgba(0,0,0,.55); opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,4px); transition:opacity .15s,transform .15s,visibility .15s; }
[data-tooltip]:hover::after,[data-tooltip]:focus-visible::after { opacity:1;visibility:visible;transform:translate(-50%,0) }

.topbar { height: 68px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding: 0 24px; border-bottom: 1px solid var(--border); background: #10151a; }
.brand { display: flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; letter-spacing: .08em; }
.brand-mark { display: grid; place-items: center; width: 36px; height: 36px; background: var(--green); color: #08110c; font-weight: 900; font-size: 20px; clip-path: polygon(0 0, 100% 0, 100% 65%, 65% 100%, 0 100%); }
.brand strong, .brand small { display: block; }
.brand small { color: var(--muted); font-size: 9px; margin-top: 2px; }
.machine-selector { display: flex; padding: 4px; border-radius: 7px; background: #090d10; border: 1px solid #202a31; }
.machine-tab { padding: 9px 18px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .07em; }
.machine-tab.active { background: var(--green-dim); color: var(--green); }
.machine-tab.wip{opacity:.42;cursor:not-allowed}.machine-tab small{margin-left:4px;padding:2px 4px;border-radius:3px;background:#3a3030;color:#e5a27c;font-size:6px}
.machine-tab.package-locked{opacity:.3;cursor:not-allowed;filter:grayscale(1)}
.machine-selector[hidden],[data-single-machine="true"] .machine-selector{display:none}.back-to-landing{color:#7f8d92;font:700 8px var(--mono);letter-spacing:.5px;white-space:nowrap}.back-to-landing:hover{color:var(--green)}.back-to-landing i{margin-right:5px}.boot-error{position:fixed;z-index:9999;inset:20px;display:grid;place-content:center;gap:10px;text-align:center;background:#11191d;border:1px solid #ff625d;color:#dce7e2}.boot-error strong{color:#ff625d}.boot-error span{color:#91a0a6}.boot-error a{color:#64f5a4;text-decoration:none}
.header-status { justify-self: end; display: flex; align-items: center; gap: 9px; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.cheatsheet-button { gap:7px; padding:8px 11px; border:1px solid #397a58; border-radius:4px; background:var(--green-dim); color:var(--green); font-size:9px; font-weight:900; letter-spacing:.07em; }.cheatsheet-button i{font-size:12px}
.status-dot, .ok-dot, .neutral-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 8px rgba(100,245,164,.7); }
.neutral-dot { background: var(--muted); box-shadow: none; }
.alert-icon{margin-right:4px}.alert-icon.ok{color:var(--green)}.alert-icon.warning{color:var(--amber)}.alert-icon.danger{color:var(--red)}.alert-icon.neutral{color:var(--muted)}
.icon-button { width: 31px; height: 31px; border: 1px solid var(--border); border-radius: 5px; color: var(--muted); background: var(--surface-2); font-weight: 800; }
.icon-button:hover { color: var(--text); border-color: #4a5963; }

.workspace { --editor-width:420px;--controller-width:290px;display:grid;grid-template-columns:minmax(360px,1fr) minmax(260px,var(--editor-width)) minmax(230px,var(--controller-width));grid-template-rows:minmax(480px,calc(100vh - 190px)) 64px;gap:12px;padding:12px; }
.panel-card { background: var(--surface); border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.visualizer-card, .editor-card { display: flex; flex-direction: column; min-height: 0; }.editor-card,.control-panel{position:relative}.panel-resize-handle{position:absolute;z-index:40;left:0;top:0;bottom:0;width:9px;cursor:col-resize;touch-action:none}.panel-resize-handle::after{content:"";position:absolute;left:3px;top:42%;height:16%;border-left:1px solid #53616a;opacity:.55}.panel-resize-handle:hover::after,.resizing-panels .panel-resize-handle::after{border-color:var(--green);opacity:1}.resizing-panels{cursor:col-resize;user-select:none}
.card-heading { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-bottom: 1px solid var(--border); }
.card-heading{position:relative;z-index:15}.card-heading [data-tooltip]::after{top:calc(100% + 8px);bottom:auto}#fitView::after{left:auto;right:0;transform:none}#fitView:hover::after,#fitView:focus-visible::after{transform:none}
.topbar [data-tooltip]::after{top:calc(100% + 8px);bottom:auto}.control-panel [data-tooltip]::after{left:auto;right:0;transform:none}.control-panel [data-tooltip]:hover::after,.control-panel [data-tooltip]:focus-visible::after{transform:none}
.card-heading.compact { min-height: 61px; }
.eyebrow { display: block; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .13em; margin-bottom: 5px; }
h1, h2 { margin: 0; font-size: 15px; letter-spacing: .03em; }
.view-actions { display: flex; gap: 5px; align-items: center; }
.chip { border: 1px solid var(--border); border-radius: 4px; background: var(--surface-2); color: var(--muted); padding: 6px 9px; font-size: 10px; font-weight: 800; }
.chip.active { color: var(--green); border-color: #397a58; background: var(--green-dim); }
select { padding: 7px 28px 7px 9px; border: 1px solid var(--border); border-radius: 4px; background: var(--surface-2); color: #bdc7cc; font-size: 10px; }

.canvas-wrap { position: relative; flex: 1; min-height: 300px; background: #0b1013; overflow: hidden; }
#cncCanvas, #cncWebglCanvas { position:absolute; inset:0; width:100%; height:100%; display:block; }
#cncWebglCanvas { visibility:hidden; }
.webgl-active #cncWebglCanvas { visibility:visible; }
.webgl-active #cncCanvas { visibility:hidden; }
#cncCanvas.orbit-enabled, #cncWebglCanvas.orbit-enabled { cursor:grab; }
#cncCanvas.orbit-enabled.dragging, #cncWebglCanvas.orbit-enabled.dragging { cursor:grabbing; }
#cncCanvas.orbit-enabled.panning, #cncWebglCanvas.orbit-enabled.panning { cursor:move; }
#cncCanvas.path-hover:not(.orbit-enabled), #cncWebglCanvas.path-hover:not(.orbit-enabled) { cursor:pointer; }
.canvas-overlay { position: absolute; display: flex; gap: 14px; font-size: 9px; color: var(--muted); }
.top-left { top: 12px; left: 14px; right:72px; flex-wrap:wrap; row-gap:6px; }
.state-legend { top:58px; left:14px; gap:12px; }
.canvas-layer-controls{display:grid;gap:9px;margin:0;padding:12px;border:0;background:transparent}.canvas-layer-controls legend{padding:0 0 2px;color:#6f7e86;font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.canvas-layer-controls label{display:flex;align-items:center;justify-content:flex-start;gap:8px;color:#8c999f;font-size:9px;font-weight:700;cursor:pointer}.canvas-layer-controls input{width:13px;height:13px;margin:0;accent-color:var(--green)}.canvas-layer-controls input:checked+span{color:#d1dbde}.canvas-layer-controls .mesh-quality{display:grid;grid-template-columns:1fr;gap:6px;margin-top:4px;padding-top:10px;border-top:1px solid #334047}.canvas-layer-controls .mesh-quality select{width:100%;min-height:30px;padding:4px 24px 4px 8px;font-size:9px}
.canvas-layer-controls .view-range{display:grid;grid-template-columns:1fr auto;gap:5px 8px;cursor:default}.canvas-layer-controls .view-range input{grid-column:1/-1;width:100%;height:4px;accent-color:var(--green)}.canvas-layer-controls .view-range output{color:#b9c7cc;font:8px var(--mono)}
.legend { display: flex; align-items: center; gap: 5px; }
.legend i { width: 16px; border-top: 2px dashed var(--amber); }
.legend.cut i { border: 0; border-top: 2px solid var(--green); }
.legend.removal i{height:7px;border:0;border-radius:4px;background:rgba(100,245,164,.28);box-shadow:inset 0 0 0 1px rgba(100,245,164,.2)}
.legend[class*="roughness-"] i{width:15px;height:9px;border:1px solid rgba(255,255,255,.18);border-radius:2px}.legend.roughness-rough i{background:#b87333}.legend.roughness-finish i{background:#58c4cd}.legend.roughness-thread i{background:#b36fe0}.legend.roughness-knurl i{background:repeating-linear-gradient(45deg,transparent 0 2px,#f6bd60 2px 3px),repeating-linear-gradient(-45deg,#76501d 0 2px,#f6bd60 2px 3px)}.legend.roughness-reamed i{background:#43b8a4}.legend.roughness-drilled i{background:#3d8dcc}
.path-state{display:flex;align-items:center;gap:5px}.path-state i{width:15px;border-top:2px solid var(--green)}.path-state.future i{opacity:.18}.path-state.running i{border-top-width:3px;box-shadow:0 0 5px var(--green)}.path-state.done i{opacity:.68}
.axis-gizmo { position: absolute; right: 20px; bottom: 18px; width: 50px; height: 50px; }
.axis-gizmo b { position: absolute; font-size: 9px; }
.axis-gizmo:before, .axis-gizmo:after { content:""; position: absolute; left: 18px; bottom: 14px; transform-origin: bottom left; width: 27px; border-top: 2px solid; }
.axis-gizmo:before { border-color: #f15c57; transform: rotate(0); }
.axis-gizmo:after { border-color: #5de28e; transform: rotate(-90deg); }
.axis-x { color: #f15c57; right: 0; bottom: 8px; }.axis-y { color: #5de28e; left: 12px; top: 0; }.axis-z { color: var(--blue); left: 0; bottom: 7px; }
.empty-state { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; color: var(--muted); pointer-events: none; }
.empty-state.hidden { display: none; }
.empty-icon { font-size: 36px; color: #38464f; margin-bottom: 6px; }
.empty-state strong { color: #a9b4ba; font-size: 12px; }.empty-state small { margin-top: 5px; font-size: 10px; }
.progress-row { height: 42px; display: grid; grid-template-columns: 55px 1fr 55px; align-items: center; gap: 8px; padding: 0 14px; color: var(--muted); font-family: var(--mono); font-size: 9px; }
input[type="range"] { accent-color: var(--green); height: 3px; }

.editor-shell { position: relative; display: grid; grid-template-columns: 44px 1fr; flex: 1; min-height: 300px; background: #0e1317; overflow: hidden; }
.line-numbers { padding: 14px 0 60px; text-align: right; color: #4f5c64; border-right: 1px solid #252d33; font: 12px/1.75 var(--mono); user-select: none; overflow: hidden; }
.line-number{display:block;width:100%;height:21px;margin:0;padding:0 9px 0 2px;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;line-height:21px;text-align:right;cursor:pointer}.line-number:hover{background:rgba(73,168,255,.1);color:#9dcfff}.line-number.selected{background:rgba(100,245,164,.09);color:var(--green);box-shadow:inset -2px 0 var(--green)}.line-number:focus-visible{outline:1px solid var(--blue);outline-offset:-2px}
#gcodeEditor,.code-highlight{grid-column:2;grid-row:1;width:100%;height:100%;margin:0;border:0;padding:14px 14px 60px;font:12px/1.75 var(--mono);tab-size:2;white-space:pre}.code-highlight{position:relative;z-index:4;pointer-events:none;overflow:hidden;background:transparent;color:#b7c1c6}.code-highlight .token-g{color:#64f5a4}.code-highlight .token-m{color:#49a8ff}.code-highlight .token-t{color:#ffb84d}.code-highlight .token-s{color:#cf8cff}.code-highlight .token-f{color:#63d9e6}.code-highlight .token-axis{color:#ff817b}.code-highlight .token-parameter{color:#63d9e6}.code-highlight .token-program{color:#ffd36b;font-weight:800}.code-highlight .token-number{color:#d7dee1}.code-highlight .token-comment{color:#69777f;font-style:italic}
#gcodeEditor{position:relative;z-index:3;resize:none;outline:0;background:transparent;color:transparent;-webkit-text-fill-color:transparent;caret-color:var(--green);overflow:auto}#gcodeEditor::selection{background:rgba(73,168,255,.3);-webkit-text-fill-color:transparent}
.active-line { display: none; position: absolute; z-index:1; left: 44px; right: 0; height: 21px; top: 14px; background: rgba(100,245,164,.07); border-left: 2px solid var(--green); pointer-events: none; }
.code-suggestions{position:absolute;z-index:30;width:min(310px,calc(100% - 58px));max-height:190px;overflow-y:auto;border:1px solid #46545d;border-radius:6px;background:#10171b;box-shadow:0 14px 36px rgba(0,0,0,.6)}.code-suggestions button{width:100%;display:grid;grid-template-columns:52px 1fr;gap:9px;align-items:center;padding:8px 10px;border:0;border-bottom:1px solid #253038;background:transparent;text-align:left}.code-suggestions button:last-child{border-bottom:0}.code-suggestions button.active{background:#203129;box-shadow:inset 2px 0 var(--green)}.code-suggestions code{font:900 11px var(--mono);color:#dce5e8}.code-suggestions .category-g{color:var(--green)}.code-suggestions .category-m{color:var(--blue)}.code-suggestions span,.code-suggestions strong,.code-suggestions small{display:block}.code-suggestions strong{color:#c8d2d6;font-size:9px}.code-suggestions small{margin-top:2px;color:#718087;font:8px var(--mono)}
.editor-footer { height: 42px; display: flex; justify-content: space-between; align-items: center; padding: 0 14px; color: var(--muted); font-size: 9px; border-top: 1px solid var(--border); }

.control-panel { grid-column: 3; grid-row: 1 / 3; background: #20272c; border-color: #3a454c; padding: 10px; box-shadow: inset 0 0 0 3px #171d21; overflow:visible; }
.controller-brand { display: flex; justify-content: space-between; align-items:center; padding: 3px 5px 10px; font-weight: 900; letter-spacing: .08em; }.controller-brand>div span,.controller-brand>div small{display:block}
.controller-brand span { color: var(--green); }.controller-brand small { color: var(--muted); font-size: 7px; }
.display { padding: 10px; color: #d6f8e3; background: #07110c; border: 2px solid #4a555a; border-radius: 3px; box-shadow: inset 0 0 16px rgba(83,255,147,.06); font-family: var(--mono); }
.display-header { display:flex; justify-content:space-between; color: #7ea58c; font-size: 8px; border-bottom: 1px solid #24412e; padding-bottom: 6px; }
.display-header span:last-child { color: var(--green); }
.position-grid { display: grid; grid-template-columns: 22px 1fr; gap: 2px; align-items: baseline; padding: 7px 0; }
.position-grid span { color: var(--green); font-size: 13px; }.position-grid strong { text-align: right; font-size: 21px; line-height: 1.25; font-weight: 500; }
.display-meta { display: flex; justify-content: space-between; padding-top: 6px; border-top: 1px solid #24412e; font-size: 8px; color: #7ea58c; }.display-meta b { color: #d6f8e3; }
.display-meta i{font-style:normal}
.panel-section { margin-top: 11px; padding-top: 10px; border-top: 1px solid #364148; }
.section-label { display: flex; justify-content: space-between; color: #a1adb3; font-size: 8px; font-weight: 800; letter-spacing: .11em; margin-bottom: 8px; }
.range-labels { display:flex; justify-content:space-between; color:var(--muted); font-size:7px; }.panel-section input[type="range"] { width:100%; }
.mode-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; }
.panel-key { padding: 10px 2px; border: 1px solid #505c63; border-radius: 3px; background: #313a40; color: #aeb8bd; font-size: 8px; font-weight: 800; box-shadow: inset 0 -2px 0 #1a2024; }
.panel-key.active { color: var(--green); border-color: #4a8764; background: #294837; }
.jog-control { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.jog-key,.axis-center { min-height:38px; display:flex; align-items:center; justify-content:center; border:1px solid #505c63; border-radius:3px; background:#313a40; font-size:8px; font-weight:800; }
.jog-key{flex-direction:column;gap:3px}.jog-key i{font-size:10px;color:#bfc9ce}.jog-key b{font-size:7px}.jog-key.z-axis i{color:var(--blue)}.jog-key:active { background: var(--green-dim); color:var(--green); }.axis-center { color:var(--muted); background:#171d21; }.axis-center i{font-size:14px}.jog-spacer{min-height:38px}
.jog-key:disabled{opacity:.25;cursor:not-allowed}
.jog-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:7px}.jog-steps button{min-width:0;min-height:27px;padding:0 2px;border:1px solid #4a565d;border-radius:3px;background:#293239;color:#89969d;font:700 7px var(--mono)}.jog-steps button.active{border-color:#4b946a;background:var(--green-dim);color:var(--green)}
.cycle-controls { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:12px; }
.cycle-button { min-height:55px; border:1px solid #59666d; border-radius:4px; background:#30393f; font-size:7px; font-weight:800; box-shadow:inset 0 -3px 0 #1a2024; }
.cycle-button{display:flex;flex-direction:column;gap:4px}.cycle-button i { display:block; font-style:normal; font-size:13px; }.cycle-button.start i{color:var(--green)}.cycle-button.hold i{color:var(--amber)}.cycle-button.reset i{color:#a9b3b8}
.cycle-button:active { transform:translateY(1px); }.estop { grid-column:1/-1; min-height:58px; border:5px solid #f1c445; border-radius:5px; background:#ae2628; color:white; box-shadow:inset 0 -7px 0 #701518; }
.estop i{margin-right:7px;color:#ffd65a}.estop span,.estop strong { display:block; font-size:8px; letter-spacing:.12em; }.estop strong { font-size:13px; }

.diagnostics { grid-column: 1 / 3;grid-row:2;display:grid; grid-template-columns: 1fr 1fr 1.4fr auto; align-items:center; gap:0; padding:0 14px; }

@media (min-width:1121px){
  .workspace.editor-collapsed{grid-template-columns:minmax(560px,1fr) 0 minmax(230px,var(--controller-width))}.editor-collapsed .editor-card{display:none}.editor-collapsed .visualizer-card{grid-column:1/3}
  .workspace.controller-collapsed{grid-template-columns:minmax(420px,1fr) minmax(300px,var(--editor-width));grid-template-rows:minmax(480px,calc(100vh - 322px)) 118px 64px}.controller-collapsed .control-panel{grid-column:1/3;grid-row:2;display:grid;grid-template-columns:minmax(300px,.8fr) minmax(480px,1.2fr);gap:12px;padding:9px 12px;overflow:hidden}.controller-collapsed .diagnostics{grid-column:1/3;grid-row:3}
  .controller-collapsed .control-panel .panel-resize-handle,.controller-collapsed .control-panel .controller-brand,.controller-collapsed .control-panel .panel-section,.controller-collapsed .control-panel .display-header,.controller-collapsed .control-panel .display-meta{display:none}.controller-collapsed .control-panel .display{grid-column:1;grid-row:1;padding:8px 13px}.controller-collapsed .position-grid{grid-template-columns:20px repeat(3,1fr);align-items:center}.controller-collapsed .position-grid span,.controller-collapsed .position-grid strong{display:block}.controller-collapsed .position-grid span:nth-of-type(1){grid-column:1}.controller-collapsed .position-grid strong:nth-of-type(1){grid-column:2}.controller-collapsed .position-grid span:nth-of-type(2){grid-column:1}.controller-collapsed .position-grid strong:nth-of-type(2){grid-column:3}.controller-collapsed .position-grid span:nth-of-type(3){grid-column:1}.controller-collapsed .position-grid strong:nth-of-type(3){grid-column:4}.controller-collapsed .cycle-controls{grid-column:2;grid-row:1;grid-template-columns:repeat(4,1fr);margin:0}.controller-collapsed .cycle-button,.controller-collapsed .estop{grid-column:auto;min-height:82px}
  .workspace.editor-collapsed.controller-collapsed{grid-template-columns:1fr;grid-template-rows:minmax(480px,calc(100vh - 322px)) 118px 64px}.editor-collapsed.controller-collapsed .visualizer-card,.editor-collapsed.controller-collapsed .control-panel,.editor-collapsed.controller-collapsed .diagnostics{grid-column:1}
}
.diagnostic-item { padding: 0 16px; border-right:1px solid var(--border); }.diagnostic-item:first-child{padding-left:0}.diagnostic-item strong{font-family:var(--mono);font-size:10px}.diagnostic-item .eyebrow{margin-bottom:3px}.alarm strong{color:#b8c3c8}.diagnostic-item.alarm{margin:5px 8px;padding:9px 12px;border:1px solid transparent;border-radius:5px}.diagnostic-item.alarm[data-severity="warning"]{border-color:#73562f;background:rgba(246,189,96,.08)}.diagnostic-item.alarm[data-severity="critical"]{border-color:#bd4948;background:rgba(255,58,61,.16);box-shadow:0 0 15px rgba(255,58,61,.13)}.diagnostic-item.alarm[data-severity="critical"] strong{color:#ffb4ae;font-size:11px}
.secondary-button { border:1px solid #40505a; border-radius:4px; background:#222c32; color:#b8c3c8; padding:10px 13px; font-size:8px; font-weight:800; letter-spacing:.07em; }

dialog { width:min(510px,calc(100% - 30px)); border:1px solid #41505a; border-radius:8px; padding:25px; background:#171e23; color:var(--text); box-shadow:0 20px 80px #000; } dialog::backdrop{background:rgba(0,0,0,.7)}
.dialog-close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:var(--muted);font-size:23px}.quick-guide-dialog{width:min(820px,calc(100% - 30px));max-height:calc(100vh - 30px);overflow:auto}.quick-guide-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin:20px 0}.quick-guide-grid section{padding:15px;border:1px solid #344149;border-radius:6px;background:#11181c}.quick-guide-grid h3{display:flex;align-items:center;gap:8px;margin:0 0 13px;color:#d5dfe2;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.quick-guide-grid h3 i{color:var(--green);font-size:14px}.shortcut-list{display:grid;gap:7px}.shortcut-list div{display:grid;grid-template-columns:minmax(120px,.8fr) 1.2fr;gap:12px;align-items:center;min-height:35px;padding:6px 8px;border-radius:4px;background:#182126;color:#aab5ba;font-size:10px;line-height:1.4}.shortcut-list kbd{display:inline-block;background:#293239;border:1px solid #46545c;padding:3px 5px;border-radius:3px;font-family:var(--mono);font-size:9px}.mouse-action{display:flex;align-items:center;gap:7px;color:#d3dce0;font:9px var(--mono)}.mouse-action i{width:15px;color:var(--blue);text-align:center}dialog p{color:var(--muted);font-size:11px;line-height:1.6;border-top:1px solid var(--border);padding-top:15px}

.cheatsheet-dialog { width:min(1050px,calc(100% - 28px)); height:min(760px,calc(100vh - 28px)); padding:0; overflow:hidden; }
.cheatsheet-header { min-height:82px; padding:18px 22px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border); }
.cheatsheet-header p { margin:5px 0 0; padding:0; border:0; line-height:1.3; }
.cheatsheet-header .dialog-close { position:static; font-size:27px; }
.support-legend { display:flex; gap:18px; padding:9px 22px; border-bottom:1px solid var(--border); background:#12181c; color:var(--muted); font-size:9px; }
.support-legend span { display:flex; align-items:center; gap:6px; }
.support-dot { display:inline-block; width:8px; height:8px; border-radius:50%; }.support-dot.supported{background:var(--green);box-shadow:0 0 7px rgba(100,245,164,.45)}.support-dot.partial{background:var(--amber)}.support-dot.unsupported{background:#67747c}
.cheatsheet-toolbar { min-height:54px; padding:9px 14px; display:flex; justify-content:space-between; align-items:center; gap:12px; border-bottom:1px solid var(--border); }
.code-filters { display:flex; gap:5px; flex-wrap:wrap; }
.code-filter { min-width:39px; padding:7px 10px; border:1px solid var(--border); border-radius:4px; background:var(--surface-2); color:var(--muted); font:800 9px var(--mono); }
.code-filter.active { color:var(--green); border-color:#397a58; background:var(--green-dim); }
.search-field { width:235px; display:flex; align-items:center; gap:7px; padding:0 10px; border:1px solid var(--border); border-radius:4px; background:#0f1519; color:var(--muted); }
.search-field input { width:100%; padding:8px 0; border:0; outline:0; background:transparent; color:var(--text); font-size:10px; }
.cheatsheet-layout { height:calc(100% - 174px); display:grid; grid-template-columns:330px 1fr; min-height:0; }
.code-list { overflow-y:auto; padding:8px; border-right:1px solid var(--border); background:#11171b; }
.code-item { width:100%; display:grid; grid-template-columns:52px 1fr 10px; align-items:center; gap:9px; padding:10px; border:1px solid transparent; border-bottom-color:#252e34; background:transparent; text-align:left; }
.code-item:hover,.code-item.active { border-color:#3b4a52; border-radius:4px; background:#1b242a; }.code-item.active{border-left:2px solid var(--green)}
.code-item code { color:#d9e3e7; font:800 13px var(--mono); }.code-item span { color:#9daab1; font-size:10px; }.code-item small { display:block; margin-top:3px; color:#65737b; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }
.code-item.category-g code,.detail-title h3.category-g,.token-g{color:#64f5a4}.code-item.category-m code,.detail-title h3.category-m,.token-m{color:#49a8ff}.code-item.category-t code,.detail-title h3.category-t,.token-t{color:#ffb84d}.code-item.category-s code,.detail-title h3.category-s,.token-s{color:#cf8cff}.code-item.category-f code,.detail-title h3.category-f,.token-f{color:#63d9e6}.code-token{font-weight:900}.syntax-block .code-token{display:inline-block;text-shadow:0 0 10px currentColor}
.code-detail { overflow-y:auto; padding:26px 30px 35px; background:#151b20; }
.detail-title { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding-bottom:18px; border-bottom:1px solid var(--border); }
.detail-title h3 { margin:2px 0 5px; font:700 24px var(--mono); }.detail-title p { margin:0; padding:0; border:0; color:#b5c0c5; font-size:13px; }
.support-badge { flex:none; padding:6px 9px; border-radius:20px; font-size:8px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.support-badge.supported{background:var(--green-dim);color:var(--green)}.support-badge.partial{background:#48371c;color:var(--amber)}.support-badge.unsupported{background:#2d3438;color:#a2adb3}
.detail-section { margin-top:21px; }.detail-section h4{margin:0 0 8px;color:var(--muted);font-size:8px;letter-spacing:.14em}.detail-section p{margin:0;padding:0;border:0;color:#c2ccd1;font-size:11px;line-height:1.65}
.syntax-block { padding:12px 14px; border:1px solid #304039; border-left:3px solid var(--green); border-radius:4px; background:#0d1411; color:#bff8d4; font:12px/1.7 var(--mono); white-space:pre-wrap; }
.parameter-grid { display:grid; grid-template-columns:auto 1fr; gap:7px 12px; }.parameter-grid dt{color:var(--green);font:800 11px var(--mono)}.parameter-grid dd{margin:0;color:#aab6bc;font-size:10px;line-height:1.45}
.code-preview { position:relative; height:150px; margin-top:21px; border:1px solid var(--border); border-radius:5px; background-color:#0b1013;background-image:linear-gradient(#182127 1px,transparent 1px),linear-gradient(90deg,#182127 1px,transparent 1px);background-size:20px 20px;overflow:hidden; }
.preview-path { position:absolute; left:12%; top:24%; width:72%; height:52%; border:2px solid #354940; border-radius:3px; }.preview-path.arc{border:0;border-top:2px solid #354940;border-radius:50%}.preview-tool{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);left:12%;top:calc(76% - 5px);animation:previewLinear 3s ease-in-out infinite}.code-preview.rapid .preview-tool{background:var(--amber);box-shadow:0 0 12px var(--amber);animation-duration:1.4s}.code-preview.arc .preview-tool{animation:previewArc 3s linear infinite}.preview-caption{position:absolute;right:9px;bottom:7px;color:#66747c;font:8px var(--mono)}
@keyframes previewLinear{0%{left:12%;top:calc(76% - 5px)}25%{left:84%;top:calc(76% - 5px)}50%{left:84%;top:calc(24% - 5px)}75%{left:12%;top:calc(24% - 5px)}100%{left:12%;top:calc(76% - 5px)}}
@keyframes previewArc{0%{left:14%;top:70%}25%{left:30%;top:28%}50%{left:50%;top:15%}75%{left:70%;top:28%}100%{left:84%;top:70%}}
.code-schema{margin-top:21px;border:1px solid var(--border);border-radius:6px;background-color:#0b1013;background-image:linear-gradient(#172128 1px,transparent 1px),linear-gradient(90deg,#172128 1px,transparent 1px);background-size:20px 20px;overflow:hidden}.code-schema svg{display:block;width:100%;height:auto;max-height:230px;padding:8px 12px 0;font:10px var(--mono);fill:#8d9aa1}.code-schema marker path{fill:var(--green)}.schema-axis{fill:none;stroke:#425059;stroke-width:1.4}.schema-path{fill:none;stroke:var(--green);stroke-width:3}.schema-path.muted{stroke:#65737b;stroke-dasharray:6 5}.schema-rapid{fill:none;stroke:var(--amber);stroke-width:2.5;stroke-dasharray:7 5}.schema-nominal{fill:none;stroke:#7c8990;stroke-width:2;stroke-dasharray:6 5}.schema-dimension{fill:none;stroke:#49a8ff;stroke-width:1.2;stroke-dasharray:3 3}.schema-start{fill:var(--amber);stroke:#12191d;stroke-width:2}.schema-end{fill:var(--green);stroke:#12191d;stroke-width:2}.schema-center{fill:#49a8ff}.schema-home{fill:#0b1013;stroke:#f2f6f7;stroke-width:3}.schema-ring{fill:#111a1f;stroke:#52616a;stroke-width:2}.schema-stock{fill:rgba(154,108,64,.22);stroke:#9a6c40;stroke-width:2}.schema-plane{fill:rgba(73,168,255,.12);stroke:#49a8ff;stroke-width:2}.schema-tool-shape{fill:#536169;stroke:#aeb9bf;stroke-width:2}.schema-coolant{fill:none;stroke:#49a8ff;stroke-width:4;stroke-linecap:round}.schema-generic{fill:#121b20;stroke:#52616a;stroke-width:2}.schema-caption{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:10px 13px;border-top:1px solid #263139;background:rgba(12,17,20,.88)}.schema-caption strong{color:#65747c;font:8px var(--mono);letter-spacing:.06em}.schema-caption span{color:#aab5ba;font-size:9px;line-height:1.45}
.schema-moving-tool{fill:var(--green);stroke:#ddffeb;stroke-width:2;filter:drop-shadow(0 0 5px rgba(72,255,148,.8))}.animated-path{stroke-dasharray:9 6;animation:schema-flow .9s linear infinite}.schema-spinner{transform-box:fill-box;transform-origin:center;animation:schema-spin 2.2s linear infinite}.schema-pulse{transform-box:fill-box;transform-origin:center;animation:schema-pulse 1.7s ease-in-out infinite}.schema-clock{transform-box:fill-box;transform-origin:50% 50%;animation:schema-clock 2.5s linear infinite}.schema-coolant{stroke-dasharray:8 6;animation:schema-flow .75s linear infinite}.schema-3d svg{transform-origin:center;animation:schema-depth 5s ease-in-out infinite}.schema-3d .schema-plane,.schema-3d .schema-stock{filter:drop-shadow(8px 7px 5px rgba(0,0,0,.3))}
.schema-dwell-progress{fill:none;stroke:var(--amber);stroke-width:5;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;transform:rotate(-90deg);transform-origin:250px 112px}.schema-direction-label{font-weight:900;fill:#c9d3d7}.plane-xy{fill:rgba(100,245,164,.13);stroke:#64f5a4}.plane-xz{fill:rgba(73,168,255,.14);stroke:#49a8ff}.plane-yz{fill:rgba(207,140,255,.14);stroke:#cf8cff}.example-reading{padding:12px 14px;border:1px solid #344149;border-radius:5px;background:#11191d}.example-reading h4{color:var(--green)}
@keyframes schema-flow{to{stroke-dashoffset:-30}}
@keyframes schema-spin{to{transform:rotate(360deg)}}
@keyframes schema-pulse{50%{transform:scale(1.12);stroke:var(--amber);opacity:.58}}
@keyframes schema-clock{to{transform:rotate(360deg)}}
@keyframes schema-depth{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.animated-path,.schema-spinner,.schema-pulse,.schema-clock,.schema-coolant,.schema-3d svg{animation:none}.schema-moving-tool{filter:none}.schema-dwell-progress{stroke-dashoffset:25}}
.empty-codes { padding:35px 15px; text-align:center; color:var(--muted); font-size:11px; }

@media (max-width: 1120px) {
  .panel-resize-handle{display:none}
  .workspace { grid-template-columns: 1fr 1fr; grid-template-rows: 560px auto 64px; }
  .control-panel { grid-column:1/3; grid-row:2; display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }
  .controller-brand { grid-column:1/-1 }.display{grid-row:2/5}.panel-section{margin-top:0}.cycle-controls{grid-column:3;grid-row:2/5;margin-top:0}.diagnostics{grid-column:1/3;grid-row:3}.jog-section{grid-column:2}
}
@media (max-width: 820px) {
  .topbar { height:auto; min-height:68px; grid-template-columns:1fr auto; padding:10px 14px }.machine-selector{grid-row:2;grid-column:1/3;width:100%}.machine-tab{flex:1}.header-status #machineStatus{display:none}
  .workspace{display:flex;flex-direction:column;padding:8px}.visualizer-card{height:500px}.editor-card{height:520px}.control-panel{display:block}.panel-section{margin-top:11px}.cycle-controls{margin-top:12px}.diagnostics{display:grid;grid-template-columns:1fr 1fr;padding:12px;gap:14px}.diagnostic-item{padding:0;border:0}.secondary-button{grid-column:1/-1}.brand small{display:none}
  .cheatsheet-button span{display:none}.cheatsheet-dialog{height:calc(100vh - 16px);width:calc(100% - 16px)}.cheatsheet-toolbar{align-items:stretch;flex-direction:column}.search-field{width:100%}.cheatsheet-layout{height:calc(100% - 221px);grid-template-columns:1fr}.code-list{max-height:210px;border-right:0;border-bottom:1px solid var(--border)}.code-detail{padding:20px}.support-legend{gap:10px;flex-wrap:wrap}.cheatsheet-header{padding:14px 16px}
}

/* UI refinement and setup/library surfaces */
button { display:inline-flex; align-items:center; justify-content:center; line-height:1.15; }
.topbar { min-height:72px; height:auto; }
.workspace { gap:14px; padding:14px; }
.panel-card { border-color:#303b43; box-shadow:0 1px 0 rgba(255,255,255,.02); }
.card-heading { padding:13px 18px; gap:12px; }
.card-heading > div:first-child { min-width:0; }
.card-heading h1,.card-heading h2 { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.editor-card .card-heading { flex-wrap:wrap; }
.editor-card .view-actions { margin-left:auto; flex-wrap:wrap; justify-content:flex-end; }
.action-button { gap:5px; min-height:31px; padding:0 10px; border:1px solid #3c4850; border-radius:4px; background:#212a30; color:#aeb9bf; font-size:8px; font-weight:850; letter-spacing:.06em; white-space:nowrap; }
.action-button:hover { border-color:#5a6a73; color:var(--text); }.action-button.primary{border-color:#397a58;background:var(--green-dim);color:var(--green)}
.chip,.icon-button,.machine-tab,.panel-key,.cycle-button,.secondary-button,.confirm-button,.danger-button { text-align:center; }
.chip { min-width:36px; min-height:30px; padding:0 8px; }
.icon-button { flex:none; display:inline-flex; }
.canvas-wrap { min-height:340px; }
.stock-summary { position:absolute; z-index:11; left:14px; bottom:13px; max-width:min(620px,calc(100% - 100px)); padding:8px 11px; border:1px solid #34454d; border-radius:5px; background:rgba(9,14,17,.9); color:#a8b5ba; font:10px var(--mono); line-height:1.4; letter-spacing:.03em; backdrop-filter:blur(6px); pointer-events:auto; transition:transform .16s,border-color .16s,background .16s,box-shadow .16s; transform-origin:left bottom; }
.stock-summary:hover,.stock-summary:focus-visible{transform:scale(1.08);border-color:#58717c;background:rgba(10,17,21,.98);box-shadow:0 10px 28px rgba(0,0,0,.38);outline:0}
.stock-summary.invalid { border-color:#805245;color:#ff9f78;background:rgba(48,25,19,.88) }
.active-tool-badge{position:absolute;z-index:12;left:14px;bottom:57px;display:flex;align-items:center;gap:11px;max-width:min(440px,calc(100% - 100px));padding:10px 13px;border:1px solid #3b5059;border-radius:6px;background:rgba(9,14,17,.92);backdrop-filter:blur(6px);pointer-events:auto;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;transform-origin:left bottom}.active-tool-badge:hover,.active-tool-badge:focus-visible{transform:scale(1.08);background:rgba(10,17,21,.99);box-shadow:0 12px 30px rgba(0,0,0,.42);outline:0}.active-tool-badge>i{color:var(--green);font-size:17px}.active-tool-badge span,.active-tool-badge small,.active-tool-badge strong{display:block;min-width:0}.active-tool-badge small{color:#91a0a6;font-size:9px;line-height:1.35;letter-spacing:.07em}.active-tool-badge strong{margin-top:4px;overflow:hidden;color:#d3dde0;font:10px var(--mono);text-overflow:ellipsis;white-space:nowrap}.active-tool-badge.changing{border-color:#7b6034;background:rgba(35,27,13,.94)}.active-tool-badge.changing>i,.active-tool-badge.changing strong{color:var(--amber)}
.critical-alarm-overlay{position:absolute;z-index:30;top:62px;left:50%;display:flex;align-items:center;gap:12px;width:min(520px,calc(100% - 28px));padding:13px 16px;border:2px solid #ff625d;border-radius:7px;background:rgba(65,12,15,.95);color:#fff;box-shadow:0 0 0 3px rgba(255,56,61,.15),0 14px 36px rgba(0,0,0,.5);transform:translateX(-50%);animation:critical-pulse .9s ease-in-out infinite alternate;pointer-events:none}.critical-alarm-overlay[hidden]{display:none}.critical-alarm-overlay>i{font-size:24px;color:#ffb0a8}.critical-alarm-overlay span,.critical-alarm-overlay strong,.critical-alarm-overlay small{display:block}.critical-alarm-overlay strong{font-size:11px;letter-spacing:.12em}.critical-alarm-overlay small{margin-top:4px;color:#ffd2cd;font:10px var(--mono);line-height:1.4}@keyframes critical-pulse{to{border-color:#fff;box-shadow:0 0 0 5px rgba(255,56,61,.25),0 14px 40px rgba(0,0,0,.58)}}
.editor-footer,.progress-row { min-height:42px; }
.control-panel { padding:12px; }
.panel-section { padding-top:12px; margin-top:12px; }
.panel-key,.jog-key { min-height:36px; }
.cycle-button { padding:7px 3px; }
.estop { display:flex; flex-direction:column; align-items:center; justify-content:center; }

.form-dialog { width:min(680px,calc(100% - 28px)); padding:26px; overflow:visible; }
.stock-dialog{max-height:calc(100vh - 28px);overflow-y:auto}
.form-dialog > p { margin:6px 0 22px; padding:0; border:0; }
.mesh-export-dialog{width:min(590px,calc(100% - 28px))}.mesh-export-summary{display:flex;align-items:center;gap:13px;margin:4px 0 18px;padding:15px;border:1px solid #344149;border-radius:5px;background:#10171b}.mesh-export-summary>i{display:grid;place-items:center;width:38px;height:38px;border-radius:5px;background:var(--green-dim);color:var(--green);font-size:17px}.mesh-export-summary strong,.mesh-export-summary small{display:block}.mesh-export-summary strong{font:800 10px var(--mono);letter-spacing:.06em}.mesh-export-summary small{margin-top:5px;color:var(--muted);font:9px var(--mono)}.mesh-export-note{display:flex!important;gap:9px!important;margin:16px 0 0!important;padding:11px 12px!important;border:1px solid #31414a!important;border-radius:4px;background:#10161a;color:#84949b;font-size:9px;line-height:1.5}.mesh-export-note i{color:var(--blue)}.mesh-export-message{display:block;min-height:17px;margin-top:12px;color:var(--green);font:9px var(--mono)}
.laser-power-display{display:flex;align-items:center;gap:14px;margin:18px 0;padding:16px;border:1px solid #644b2b;border-radius:5px;background:#1d1710}.laser-power-display>i{color:var(--amber);font-size:25px}.laser-power-display span,.laser-power-display strong{display:block}.laser-power-display span{color:#a99880;font-size:8px;letter-spacing:.1em}.laser-power-display strong{margin-top:4px;color:#ffd17b;font:22px var(--mono)}.laser-power-range{display:flex;flex-direction:column;gap:10px;margin-top:18px;color:#99a6ac;font-size:9px}.laser-power-range span{display:flex;justify-content:space-between}.laser-power-range b{color:var(--amber);font:12px var(--mono)}.laser-power-range input{width:100%;accent-color:var(--amber)}.laser-note{display:flex;gap:10px;margin-top:18px;padding:12px;border:1px solid #39464e;border-radius:4px;background:#11181c;color:#89979e;font-size:9px;line-height:1.5}.laser-note i{color:var(--blue);margin-top:2px}
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-grid.two{grid-template-columns:repeat(2,1fr)}
.turret-position-note{display:flex;align-items:center;gap:10px;min-height:39px;padding:8px 10px;border:1px solid #334047;border-radius:4px;background:#10161a;color:#8f9ca3;font-size:9px;line-height:1.45}.turret-position-note i{color:var(--green);font-size:15px}
.form-grid label,.tool-form label { display:flex; flex-direction:column; gap:6px; min-width:0; }
.form-grid label > span,.tool-form label > span { color:#8f9ca3; font-size:8px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.form-grid input,.form-grid select,.tool-form input,.tool-form select { width:100%; min-height:39px; padding:0 11px; border:1px solid #37434b; border-radius:4px; outline:0; background:#10161a; color:#dbe3e6; font:11px var(--mono); }
.form-grid input:focus,.form-grid select:focus,.tool-form input:focus,.tool-form select:focus { border-color:#4d9c70; box-shadow:0 0 0 2px rgba(100,245,164,.08); }
.form-section { margin-top:18px; padding-top:18px; border-top:1px solid var(--border); }.form-section h3{margin:0 0 13px;font-size:10px;letter-spacing:.08em}
.stock-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:14px}.stock-presets button{min-height:54px;gap:7px;border:1px solid #37434b;border-radius:4px;background:#151d22;color:#8f9ba2;font-size:8px;font-weight:800}.stock-presets button i{color:#91a0a7;font-size:15px}.stock-presets button.active{border-color:#4a8764;background:var(--green-dim);color:var(--green)}.stock-presets button.active i{color:var(--green)}
.material-row { margin-bottom:14px; }.material-row .material-swatch{grid-column:1/-1}.material-swatch{display:flex;align-items:center;gap:10px;min-height:39px;padding:0 11px;border:1px solid #37434b;border-radius:4px;background:#10161a}.material-swatch>i{width:19px;height:19px;border-radius:50%;background:#90979b;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}.material-swatch strong,.material-swatch small{display:block}.material-swatch strong{font-size:9px}.material-swatch small{margin-top:3px;color:var(--muted);font-size:8px}
.cutting-recommendation,.stock-validation{margin-top:14px;padding:12px 14px;border:1px solid #344149;border-radius:5px;background:#10161a}.cutting-recommendation{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:12px;align-items:center}.cutting-recommendation span,.stock-validation span{display:block;color:var(--muted);font-size:8px;letter-spacing:.07em}.cutting-recommendation strong{display:block;margin-top:4px;color:var(--green);font:15px var(--mono)}.cutting-recommendation p{margin:0;padding:0;border:0;font-size:9px;line-height:1.45}.stock-validation{color:#9daab0;font-size:9px;line-height:1.5}.stock-validation.ok{border-color:#315c43;color:#8fd9ad}.stock-validation.warning{border-color:#7a5135;color:#ffb27a}
.machine-zero-callout { display:flex; align-items:center; gap:11px; margin:14px 0 4px; padding:11px 13px; border:1px solid #33434b; border-radius:5px; background:#10171b; }.machine-zero-callout>span{display:grid;place-items:center;width:30px;height:30px;border:1px solid #58666e;border-radius:50%;color:#dce5e8;font:800 11px var(--mono)}.machine-zero-callout strong,.machine-zero-callout small{display:block}.machine-zero-callout strong{font-size:8px;letter-spacing:.1em}.machine-zero-callout small{margin-top:4px;color:var(--muted);font:9px var(--mono)}
.dialog-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:24px; padding-top:17px; border-top:1px solid var(--border); }
.dialog-actions button { min-height:36px; padding:0 14px; border-radius:4px; font-size:8px; font-weight:900; letter-spacing:.07em; }
.confirm-button { border:1px solid #4f9b70; background:var(--green); color:#07120c; }.danger-button{margin-right:auto;border:1px solid #793e40;background:#351d1e;color:#ff8986}.danger-button:disabled{opacity:.35;cursor:not-allowed}
.zero-presets { display:flex; align-items:center; gap:7px; margin-top:12px; color:var(--muted); font-size:9px; }.zero-presets button{min-height:29px;padding:0 9px;border:1px solid var(--border);border-radius:4px;background:#20292f;color:#aeb8bd;font-size:8px}.zero-presets button.active{border-color:#4a8764;background:var(--green-dim);color:var(--green)}

.library-dialog { width:min(920px,calc(100% - 28px)); height:min(660px,calc(100vh - 28px)); padding:0; overflow:hidden; }
.library-header { min-height:88px; padding:14px 22px; display:grid; grid-template-columns:1fr auto auto auto; gap:12px; align-items:center; border-bottom:1px solid var(--border); }.library-header p{margin:5px 0 0;padding:0;border:0}.library-header .dialog-close{position:static}.library-new-tool{min-height:34px;padding:0 12px;border-radius:4px;border-color:#4f9b70;color:var(--green);font-size:8px;font-weight:900;letter-spacing:.06em;white-space:nowrap}
.library-tabs { display:flex; padding:3px; border:1px solid var(--border); border-radius:5px; background:#0e1418; }.library-tabs button{min-height:32px;padding:0 11px;border:0;border-radius:3px;background:transparent;color:#7e8b92;font-size:8px;font-weight:900;letter-spacing:.07em}.library-tabs button.active{background:var(--green-dim);color:var(--green)}.library-tabs b{display:inline-grid;place-items:center;min-width:16px;height:16px;margin-left:4px;border-radius:8px;background:#2b363c;color:#c6d0d4;font-size:7px}
.library-layout { display:grid; grid-template-columns:320px 1fr; height:calc(100% - 88px); min-height:0; }
.tool-browser { display:flex; flex-direction:column; min-height:0; border-right:1px solid var(--border); background:#11171b; }.tool-browser>.search-field{width:auto;margin:10px 10px 7px;flex:none}.tool-type-filters{display:flex;flex-wrap:wrap;gap:4px;padding:0 10px 8px}.tool-type-filters button{flex:none;min-height:25px;padding:0 7px;border:1px solid var(--border);border-radius:3px;background:#1b2328;color:#7f8c93;font-size:7px;font-weight:800}.tool-type-filters button.active{border-color:#397a58;background:var(--green-dim);color:var(--green)}
.tool-list { padding:2px 10px 10px; overflow-y:auto; }
.tool-item { width:100%; display:grid; grid-template-columns:42px 1fr auto; gap:10px; align-items:center; padding:11px; border:1px solid transparent; border-bottom-color:#273138; background:transparent; text-align:left; }.tool-item:hover,.tool-item.active{border-color:#3d4a52;border-radius:4px;background:#1d262c}.tool-item.active{border-left:2px solid var(--green)}
.tool-item-icon { width:38px;height:38px;border:1px solid #354249;border-radius:50%;background:#151d21;color:var(--green);font-size:18px }.tool-item strong,.tool-item small{display:block}.tool-item strong{font:700 10px var(--mono);color:#d0dade}.tool-item small{margin-top:4px;color:#748189;font-size:8px}.tool-item .active-tool{padding:4px 6px;border-radius:10px;background:var(--green-dim);color:var(--green);font-size:7px;font-weight:900}.tool-item .catalog-code{color:#829098;font:7px var(--mono)}
.tool-form { overflow-y:auto; padding:22px 26px; }.tool-visual{height:76px;margin-bottom:18px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #2e3a41;border-radius:5px;background:#0e1418;color:#6d7b82}.tool-visual span{color:var(--green);font-size:35px}.tool-visual strong{font:9px var(--mono);letter-spacing:.12em}
.active-tool-badge[data-health="warm"]{border-color:#8b6735}.active-tool-badge[data-health="warm"] i{color:#ffb84d}.active-tool-badge[data-health="critical"]{border-color:#9b483c;background:rgba(255,98,93,.12)}.active-tool-badge[data-health="critical"] i{color:#ff784f}.active-tool-badge[data-health="failure"]{border-color:#ff625d;background:rgba(255,38,48,.22);box-shadow:0 0 18px rgba(255,60,60,.3)}.active-tool-badge[data-health="failure"] i{color:#fff}

@media (max-width: 1280px) {
  .machine-tab{padding:9px 10px;font-size:9px}
  .editor-card .card-heading { align-content:center; }
  .editor-card .view-actions { width:100%; justify-content:flex-start; }
  .editor-card .card-heading { min-height:104px; }
}
@media (max-width: 820px) {
  .workspace{gap:10px}.card-heading{padding:12px}.editor-card .card-heading{min-height:auto}.editor-card .view-actions{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.editor-card .view-actions select{grid-column:1/3}.editor-card .view-actions .icon-button{width:100%}
  .quick-guide-grid{grid-template-columns:1fr}.quick-guide-dialog{padding:20px}.shortcut-list div{grid-template-columns:minmax(110px,.75fr) 1.25fr}
  .form-grid,.form-grid.two,.form-grid.three{grid-template-columns:1fr}.zero-presets{align-items:stretch;flex-direction:column}.zero-presets button{width:100%}
  .stock-presets{grid-template-columns:1fr 1fr}.material-row .material-swatch{grid-column:1}
  .library-dialog{height:calc(100vh - 16px);width:calc(100% - 16px)}.library-header{grid-template-columns:1fr auto auto}.library-tabs{grid-row:2;grid-column:1/3}.library-new-tool{grid-row:2;grid-column:3}.library-layout{grid-template-columns:1fr;height:calc(100% - 136px);overflow-y:auto}.tool-browser{max-height:275px;border-right:0;border-bottom:1px solid var(--border)}.tool-list{overflow-y:auto}.tool-form{overflow:visible}.tool-form .form-grid.two{grid-template-columns:1fr 1fr}
}
@media (max-width: 470px) {
  .tool-form .form-grid.two{grid-template-columns:1fr}.library-header{grid-template-columns:1fr auto;padding:12px}.library-tabs{grid-column:1/3}.library-new-tool{grid-row:3;grid-column:1/3;width:100%}.header-status .cheatsheet-button{width:34px;padding:8px}.card-heading .view-actions{gap:4px}.stock-summary{max-width:calc(100% - 28px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.active-tool-badge{max-width:calc(100% - 28px)}.shortcut-list div{grid-template-columns:1fr;gap:5px}.quick-guide-grid section{padding:10px}
}
@media (prefers-reduced-motion:reduce){.critical-alarm-overlay{animation:none}.stock-summary,.active-tool-badge{transition:none}}

/* Application shell v21: command menus, consistent panels and editor metrics */
.command-bar{position:relative;z-index:70;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 14px;border-bottom:1px solid #29343b;background:#0d1317;box-shadow:0 5px 20px rgba(0,0,0,.12)}
.command-menus{display:flex;align-items:center;gap:5px}.app-menu{position:relative}.app-menu>summary{list-style:none;min-height:34px;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid transparent;border-radius:5px;color:#98a5ab;font-size:9px;font-weight:800;letter-spacing:.04em;cursor:pointer;user-select:none}.app-menu>summary::-webkit-details-marker{display:none}.app-menu>summary:hover,.app-menu[open]>summary{border-color:#35434b;background:#182127;color:#e3eaed}.app-menu[open]>summary{border-color:#397a58;background:#14271e;color:var(--green)}.app-menu .menu-caret{margin-left:4px;font-size:7px;transition:transform .16s}.app-menu[open] .menu-caret{transform:rotate(180deg)}
.menu-popover{position:absolute;z-index:100;top:calc(100% + 7px);left:0;width:286px;padding:6px;border:1px solid #3b4951;border-radius:7px;background:#141b20;box-shadow:0 18px 50px rgba(0,0,0,.62)}.menu-popover button{width:100%;display:grid;grid-template-columns:30px 1fr;gap:9px;align-items:center;min-height:49px;padding:7px 9px;border:0;border-radius:5px;background:transparent;color:#aeb9be;text-align:left}.menu-popover button:hover,.menu-popover button:focus-visible{outline:0;background:#202b31;color:#edf3f5}.menu-popover button>i{color:#7f8d94;font-size:14px}.menu-popover button:hover>i{color:var(--green)}.menu-popover button span,.menu-popover button strong,.menu-popover button small{display:block;min-width:0}.menu-popover button strong{font-size:10px}.menu-popover button small{margin-top:3px;color:#75838a;font-size:8px;line-height:1.35}.menu-popover .menu-toggle.active>i{color:var(--green)}
.example-picker{display:flex;align-items:center;gap:8px;min-width:300px;color:#77858c;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.example-picker>i{color:#66747b}.example-picker select{flex:1;min-width:0;min-height:34px;background:#151d22;font-size:9px;text-transform:none;letter-spacing:0}
.panel-card{position:relative;border-radius:9px}.panel-toggle{position:absolute;z-index:46;right:10px;top:10px;width:32px;height:32px;background:#11181d;border-color:#354149}.panel-toggle:hover{border-color:#4b6658;color:var(--green)}.panel-toggle i{pointer-events:none}.editor-card>.card-heading{padding-right:54px;flex-wrap:nowrap}.controller-brand{min-height:42px;padding:3px 42px 10px 5px}
.viewport-options{position:absolute;z-index:12;right:12px;top:12px;width:178px}.viewport-options>summary{list-style:none;min-height:32px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 10px;border:1px solid #334149;border-radius:5px;background:rgba(12,18,22,.9);color:#95a2a8;font-size:8px;font-weight:800;letter-spacing:.04em;backdrop-filter:blur(7px);cursor:pointer}.viewport-options>summary::-webkit-details-marker{display:none}.viewport-options>summary i:last-child{margin-left:auto;font-size:7px;transition:transform .16s}.viewport-options[open]>summary{border-color:#397a58;border-radius:5px 5px 0 0;color:var(--green)}.viewport-options[open]>summary i:last-child{transform:rotate(180deg)}.viewport-options .canvas-layer-controls{border:1px solid #334149;border-top:0;border-radius:0 0 6px 6px;background:rgba(12,18,22,.95);box-shadow:0 15px 35px rgba(0,0,0,.42);backdrop-filter:blur(8px)}
.editor-shell{--editor-line-height:21px;grid-template-columns:44px minmax(0,1fr)}.line-numbers{padding:14px 0 60px;font-family:var(--mono);font-size:12px;font-weight:400;line-height:var(--editor-line-height);font-variant-ligatures:none;letter-spacing:0}.code-highlight,#gcodeEditor{box-sizing:border-box;margin:0;border:0;padding:14px 16px 60px;font-family:var(--mono);font-size:12px;font-weight:400;font-style:normal;line-height:var(--editor-line-height);font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0;letter-spacing:0;tab-size:2;white-space:pre;overflow-wrap:normal;word-break:normal}.code-highlight{position:absolute;z-index:4;inset:0;grid-column:2;grid-row:1;width:auto;height:auto}.code-highlight .token-program{font-weight:400}.code-highlight .token-comment{font-style:normal}.active-line{height:var(--editor-line-height)}#gcodeEditor{position:relative;z-index:3;grid-column:2;grid-row:1;width:100%;height:100%;overflow:auto;scrollbar-gutter:stable;color:transparent;-webkit-text-fill-color:transparent;caret-color:#9affc7;background:transparent;resize:none;outline:0}

@media (min-width:1121px){
  .workspace.editor-collapsed{grid-template-columns:minmax(420px,1fr) 54px minmax(230px,var(--controller-width))}.editor-collapsed .visualizer-card{grid-column:1}.editor-collapsed .editor-card{display:flex;grid-column:2}.editor-collapsed .editor-card .card-heading{height:100%;min-height:0;padding:0;border:0}.editor-collapsed .editor-card .card-heading>div,.editor-collapsed .editor-card .editor-shell,.editor-collapsed .editor-card .editor-footer,.editor-collapsed .editor-card .panel-resize-handle{display:none}.editor-collapsed .editor-card .panel-toggle{top:10px;right:10px}
  .workspace.controller-collapsed{grid-template-columns:minmax(420px,1fr) minmax(280px,var(--editor-width)) 250px;grid-template-rows:minmax(480px,calc(100vh - 196px)) 64px}.controller-collapsed .control-panel{grid-column:3;grid-row:1/3;display:block;padding:10px;overflow:hidden}.controller-collapsed .diagnostics{grid-column:1/3;grid-row:2}.controller-collapsed .control-panel .panel-resize-handle,.controller-collapsed .control-panel .panel-section,.controller-collapsed .control-panel .display-meta{display:none}.controller-collapsed .control-panel .controller-brand{display:flex}.controller-collapsed .control-panel .display-header{display:flex}.controller-collapsed .control-panel .display{display:block;padding:10px}.controller-collapsed .position-grid{display:grid;grid-template-columns:22px 1fr}.controller-collapsed .position-grid span,.controller-collapsed .position-grid strong{display:block;grid-column:auto!important}.controller-collapsed .cycle-controls{display:grid;grid-template-columns:1fr 1fr;margin-top:12px}.controller-collapsed .cycle-button,.controller-collapsed .estop{grid-column:auto;min-height:58px}.controller-collapsed .estop{grid-column:1/-1}
  .workspace.editor-collapsed.controller-collapsed{grid-template-columns:minmax(420px,1fr) 54px 250px;grid-template-rows:minmax(480px,calc(100vh - 196px)) 64px}.editor-collapsed.controller-collapsed .visualizer-card{grid-column:1}.editor-collapsed.controller-collapsed .editor-card{grid-column:2}.editor-collapsed.controller-collapsed .control-panel{grid-column:3}.editor-collapsed.controller-collapsed .diagnostics{grid-column:1/3;grid-row:2}
}
@media (max-width:1120px){
  .command-bar{align-items:stretch}.example-picker{min-width:260px}.panel-resize-handle{display:none}.panel-toggle{display:inline-flex}.workspace.editor-collapsed .editor-card{display:none}.workspace.editor-collapsed .visualizer-card{grid-column:1/3}.workspace.controller-collapsed .control-panel .panel-section,.workspace.controller-collapsed .control-panel .display-meta{display:none}.workspace.controller-collapsed .control-panel{grid-template-columns:minmax(260px,.8fr) minmax(430px,1.2fr)}.workspace.controller-collapsed .control-panel .display{grid-row:2}.workspace.controller-collapsed .control-panel .cycle-controls{grid-column:2;grid-row:2;margin:0;grid-template-columns:repeat(4,1fr)}.workspace.controller-collapsed .control-panel .cycle-button,.workspace.controller-collapsed .control-panel .estop{grid-column:auto;min-height:72px}
}
@media (max-width:820px){
  .command-bar{align-items:stretch;flex-direction:column;gap:6px;padding:7px 8px}.command-menus{width:100%}.app-menu{flex:1}.app-menu>summary{justify-content:center}.menu-popover{position:fixed;top:auto;left:8px;right:8px;width:auto}.example-picker{width:100%;min-width:0}.example-picker span{display:none}.workspace.controller-collapsed .control-panel{display:block}.workspace.controller-collapsed .control-panel .cycle-controls{display:grid;grid-template-columns:repeat(2,1fr);margin-top:12px}.workspace.controller-collapsed .control-panel .estop{grid-column:1/-1}.viewport-options{top:54px}.top-left{max-width:calc(100% - 24px);flex-wrap:wrap}.state-legend{top:48px}.editor-card>.card-heading{min-height:64px}.editor-shell{min-height:0}
}
@media (max-width:470px){.app-menu>summary span{display:none}.app-menu>summary .menu-caret{display:inline-block}.command-menus{justify-content:flex-start}.menu-popover{max-height:70vh;overflow:auto}.view-actions .chip{min-width:31px;padding:0 6px;font-size:8px}.viewport-options{width:154px}.canvas-overlay{font-size:7px}.panel-toggle{right:8px;top:8px}}

/* Application shell v36: navigazione unificata, editor assistito e footer */
.topbar.app-navigation{position:relative;z-index:90;height:auto;min-height:66px;display:flex;align-items:center;gap:10px;padding:8px 14px;flex-wrap:wrap;box-shadow:0 5px 20px rgba(0,0,0,.14)}
.app-navigation .brand{flex:0 0 auto;margin-right:4px}.app-navigation .brand-mark{width:34px;height:34px}.app-navigation .machine-selector{display:flex!important;flex:0 1 auto;min-width:0}.app-navigation .machine-tab{display:flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:7px 10px;color:var(--muted);text-decoration:none;font-size:8px;white-space:nowrap}.app-navigation .machine-tab i{font-size:10px}.app-navigation .machine-tab.active{color:var(--green)}
.app-navigation .command-menus{flex:0 0 auto;padding-left:8px;border-left:1px solid #2a353c}.app-navigation .app-menu>summary,.app-navigation .app-nav-action{min-height:34px}.app-nav-action{display:flex;align-items:center;gap:7px;padding:0 11px;border:1px solid transparent;border-radius:5px;background:transparent;color:#98a5ab;font-size:9px;font-weight:800;letter-spacing:.04em}.app-nav-action:hover,.app-nav-action:focus-visible{outline:0;border-color:#397a58;background:#14271e;color:var(--green)}
.app-navigation .example-picker{flex:1 1 210px;min-width:180px;max-width:310px;margin-left:auto}.app-navigation .header-status{flex:0 0 auto;margin-left:2px}.app-navigation .header-status #machineStatus{font-size:8px;white-space:nowrap}.app-navigation [data-tooltip]::after{top:calc(100% + 8px);bottom:auto}
.command-bar{display:none}
.workspace{grid-template-rows:minmax(480px,calc(100vh - 200px)) 64px}
.app-footer{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 14px;border-top:1px solid #29343b;background:#0d1317;color:#738189;font:8px var(--mono);letter-spacing:.05em}.app-footer strong{color:#aeb9be}.app-footer a{color:#83d9aa;text-decoration:none}.app-footer a:hover,.app-footer a:focus-visible{color:var(--green);text-decoration:underline}
.editor-card,.control-panel{z-index:5}.panel-toggle::after{top:calc(100% + 8px);right:0;bottom:auto;left:auto;transform:none}.panel-toggle:hover::after,.panel-toggle:focus-visible::after{transform:none}.editor-card{overflow:visible}.editor-card>.card-heading{border-radius:9px 9px 0 0;background:var(--surface)}.editor-card>.editor-footer{border-radius:0 0 9px 9px;background:var(--surface)}
.active-line{right:17px;overflow:hidden}.code-highlight{right:17px!important}.code-suggestions{isolation:isolate}.code-quick-info{position:absolute;z-index:36;max-width:calc(100% - 58px);padding:11px;border:1px solid #4a5a63;border-radius:7px;background:#11191e;box-shadow:0 16px 40px rgba(0,0,0,.68);color:#aebbc0}.code-quick-info>div{display:flex;align-items:center;gap:9px}.code-quick-info code{min-width:42px;color:var(--green);font:900 12px var(--mono)}.code-quick-info code.category-m{color:var(--blue)}.code-quick-info strong{color:#eef3f5;font-size:10px}.code-quick-info p{margin:8px 0;color:#929fa5;font-size:9px;line-height:1.45}.code-quick-info button{padding:0;border:0;background:transparent;color:#75dca2;font-size:8px;font-weight:800}.code-quick-info button i{margin-right:5px}
.code-item.category-rules code,.detail-title .category-rules,.code-quick-info .category-rules{color:#ffd36b}.code-filter[data-code-category="RULES"]{min-width:58px}
@media (max-width:1450px){.topbar.app-navigation{align-items:center}.app-navigation .brand small{display:none}.app-navigation .example-picker{order:5;max-width:none;margin-left:48px}.app-navigation .header-status{margin-left:auto}.workspace{grid-template-rows:minmax(480px,calc(100vh - 244px)) 64px}}
@media (max-width:1040px){.topbar.app-navigation{padding:8px}.app-navigation .brand{width:auto}.app-navigation .brand>span:last-child{display:none}.app-navigation .machine-selector{order:2;flex:1}.app-navigation .machine-tab{flex:1;padding-inline:6px}.app-navigation .command-menus{order:4;width:100%;padding:6px 0 0;border-left:0;border-top:1px solid #273139}.app-navigation .app-menu{flex:1}.app-navigation .app-menu>summary,.app-navigation .app-nav-action{justify-content:center}.app-navigation .example-picker{order:5;margin-left:0}.app-navigation .header-status{order:3}.workspace{grid-template-rows:auto}.app-footer{flex-wrap:wrap}}
@media (max-width:650px){.app-navigation .machine-tab span{display:none}.app-navigation .machine-tab.wip{display:none}.app-navigation .example-picker{flex-basis:100%;max-width:none}.app-navigation .header-status #machineStatus{display:none}.app-navigation .app-nav-action span,.app-navigation .app-menu>summary span{display:none}.app-navigation .command-menus{justify-content:stretch}.app-navigation .app-nav-action{flex:1;justify-content:center}.app-footer{justify-content:center;text-align:center}}
