:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--screen-bg:#111;--panel-bg:#1a1a1a;--text-green:#0f0;--text-dim:#0a0;--alarm-red:#f33;--plastic-grey:#b0b4b8;--dark-plastic:#333}body,html{background-color:var(--plastic-grey);-webkit-user-select:none;user-select:none;margin:0;padding:0;font-family:Courier New,Courier,monospace}.cnc-console{box-sizing:border-box;flex-direction:column;gap:20px;height:100vh;padding:20px;display:flex}.cnc-screen{background-color:var(--screen-bg);color:var(--text-green);border:15px solid #222;border-radius:10px;flex-direction:column;flex:1;display:flex;overflow:hidden;box-shadow:inset 0 0 20px #000,0 10px 30px #00000080}.status-bar{border-bottom:2px solid var(--text-dim);background-color:#000;justify-content:space-between;padding:10px 20px;font-size:1.2rem;font-weight:700;display:flex}.status-bar.alarm{background-color:var(--alarm-red);color:#fff;animation:1s infinite blink}@keyframes blink{50%{opacity:.8}}.display-grid{flex:1;display:flex;overflow:hidden}.panel{border-right:1px solid #333;flex-direction:column;padding:10px;display:flex}.panel-title{color:#fff;text-align:center;background-color:#333;margin:0 0 10px;padding:5px;font-size:1rem}.data-panel{width:250px;padding-right:8px;overflow-y:auto}.data-panel::-webkit-scrollbar{width:6px}.data-panel::-webkit-scrollbar-track{background:#000}.data-panel::-webkit-scrollbar-thumb{background:var(--text-dim);border-radius:3px}.dro-row{align-items:center;margin-bottom:10px;font-size:1.5rem;display:flex}.axis{color:#fff;width:30px}.dro-input{border:none;border-bottom:2px solid var(--text-dim);color:var(--text-green);text-align:right;background:0 0;outline:none;width:150px;font-family:inherit;font-size:1.5rem}.modal-state{color:var(--text-dim);grid-template-columns:1fr 1fr;gap:10px;font-size:1.1rem;display:grid}.program-panel{flex:1;position:relative}.gcode-editor{color:var(--text-green);resize:none;background:0 0;border:none;outline:none;flex:1;padding:10px;font-family:inherit;font-size:1.1rem;line-height:1.5}.alarm-banner{background:var(--alarm-red);color:#fff;border-top:3px solid #fff;padding:15px;font-weight:700;position:absolute;bottom:0;left:0;right:0}.graphics-panel{background:#fff;width:500px}.canvas-wrapper{flex:1;position:relative;overflow:hidden}.canvas-wrapper canvas{object-fit:contain;width:100%!important;height:100%!important}.viz-container{width:100%;height:100%;position:relative}.viz-container canvas{cursor:grab;display:block;width:100%!important;height:100%!important}.viz-container canvas:active{cursor:grabbing}.viz-hud{letter-spacing:.5px;color:#333;pointer-events:none;background:#ffffffd9;border:1px solid #ccc;border-radius:3px;align-items:center;gap:12px;padding:4px 9px;font-family:Courier New,Courier,monospace;font-size:.7rem;display:flex;position:absolute;top:8px;left:8px}.viz-hud-item{align-items:center;gap:5px;display:flex}.viz-swatch{width:12px;height:3px;display:inline-block}.viz-swatch.cut{background:#f33}.viz-swatch.rapid{background:repeating-linear-gradient(90deg,#25f 0 3px,#0000 3px 6px)}.viz-swatch.stock{background:#d9a066;border:1px solid #8a5a2b;width:12px;height:8px}.viz-swatch.tool{background:#222;border-radius:50%;width:8px;height:8px}.viz-progress{letter-spacing:.5px;color:#333;pointer-events:none;white-space:nowrap;background:#ffffffe6;border:1px solid #ccc;border-radius:3px;align-items:center;gap:8px;padding:4px 9px;font-family:Courier New,Courier,monospace;font-size:.65rem;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.viz-progress-track{background:#ddd;border-radius:3px;width:90px;height:6px;overflow:hidden}.viz-progress-fill{background:#17a2b8;width:0%;height:100%;transition:width 80ms linear}.viz-paused-badge{color:#d39e00;font-weight:700}.viz-warning{letter-spacing:.5px;color:#fff;background:var(--alarm-red);border-radius:3px;padding:6px 10px;font-family:Courier New,Courier,monospace;font-size:.7rem;font-weight:700;animation:1s infinite blink;position:absolute;top:8px;right:8px;box-shadow:0 2px 6px #0006}.viz-hint{letter-spacing:.5px;color:#999;pointer-events:none;font-family:Courier New,Courier,monospace;font-size:.65rem;position:absolute;bottom:8px;right:10px}.viz-coords{letter-spacing:.5px;color:#999;pointer-events:none;font-family:Courier New,Courier,monospace;font-size:.65rem;position:absolute;bottom:8px;left:8px}.cnc-control-board{background:var(--dark-plastic);border-top:2px solid #555;border-bottom:5px solid #111;border-radius:5px;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:30px;height:120px;padding:0 30px;display:flex;overflow-x:auto;box-shadow:inset 0 5px 10px #ffffff1a,0 5px 15px #00000080}.cnc-control-board::-webkit-scrollbar{height:6px}.cnc-control-board::-webkit-scrollbar-track{background:#111}.cnc-control-board::-webkit-scrollbar-thumb{background:#666;border-radius:3px}.brand-plate{white-space:nowrap;flex-shrink:0}.brand-plate h2{color:#fff;letter-spacing:2px;margin:0;font-family:sans-serif;font-size:1.3rem}.brand-plate p{color:#888;letter-spacing:1px;margin:0;font-size:.75rem}.btn-group{flex-wrap:nowrap;flex-shrink:0;gap:14px;display:flex}.hardware-btn{cursor:pointer;border:none;border-radius:5px;flex-shrink:0;width:105px;height:78px;font-family:sans-serif;font-weight:700;transition:all .1s;position:relative;box-shadow:0 5px #111}.hardware-btn:active{transform:translateY(5px);box-shadow:0 0 #111}.indicator-light{background:#333;border:1px solid #111;border-radius:50%;width:15px;height:15px;margin:0 auto 10px}.cycle-start{color:#fff;background-color:#28a745;border:2px solid #1e7e34}.cycle-start .indicator-light{background-color:#50fa7b;box-shadow:0 0 10px #50fa7b}.feed-hold{color:#000;background-color:#ffc107;border:2px solid #d39e00}.reset-btn{color:#fff;background-color:#6c757d;border:2px solid #545b62}.e-stop{color:#fff;background-color:#dc3545;border:3px solid #bd2130;border-radius:50%;width:100px;height:100px;font-size:1.2rem}.rapid-toggle{color:#fff;background-color:#17a2b8;border:2px solid #117a8b}.view-toggle{color:#fff;letter-spacing:.5px;background-color:#6f42c1;border:2px solid #59339d;font-size:.72rem}.graphics-header{background-color:#333;justify-content:space-between;align-items:center;margin-bottom:10px;padding-right:5px;display:flex}.maximize-btn{color:var(--text-green);border:1px solid var(--text-dim);cursor:pointer;background:0 0;padding:3px 8px;font-family:inherit;font-size:.9rem;font-weight:700;transition:all .2s}.maximize-btn:hover{background:var(--text-dim);color:#000}.graphics-panel:fullscreen{background-color:#0a0a0a;flex-direction:column;padding:20px;display:flex}.graphics-panel:fullscreen .canvas-wrapper{height:100%}
