*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-size-adjust:100%;-webkit-text-size-adjust:100%}html{height:100%;width:100%}body{margin:0;padding:0;width:100%;height:100%;min-height:100vh;overflow:hidden;position:fixed;inset:0}#root{width:100%;height:100%;position:fixed;inset:0}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button{border-radius:4px;border:1px solid transparent;cursor:pointer;transition:background-color .2s,border-color .2s;-webkit-appearance:button}button:disabled{cursor:not-allowed;opacity:.5}button:not(:disabled):hover{filter:brightness(1.1)}button:focus-visible{outline:2px solid #4CAF50;outline-offset:2px}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:#fff3;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#4caf50;cursor:pointer}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#4caf50;cursor:pointer;border:none}::selection{background-color:#4caf504d;color:#fff}*{box-sizing:border-box;margin:0;padding:0}.playground{position:fixed;inset:0;display:flex;flex-direction:column;background-color:#1e1e1e;color:#d4d4d4;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.playground-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:#252526;border-bottom:1px solid #3e3e42;flex-shrink:0;min-height:60px}.playground-header h1{font-size:1.5rem;font-weight:600;margin:0;color:#ccc}.playground-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.backend-selector{padding:.5rem 1rem;background-color:#3c3c3c;color:#ccc;border:1px solid #3e3e42;border-radius:4px;font-size:.9rem;cursor:pointer;outline:none;transition:background-color .2s;font-family:inherit}.backend-selector:hover{background-color:#505050}.backend-selector:focus{border-color:#007acc}.status-indicator{padding:.4rem .8rem;border-radius:4px;font-size:.85rem;font-weight:500;white-space:nowrap}.status-indicator.compiling{background-color:#3a3d41;color:#ccc}.status-indicator.success{background-color:#1e5b1e;color:#8fd888}.status-indicator.error{background-color:#5a1e1e;color:#f48771}.playground-content{display:flex;flex:1;min-height:0;overflow:hidden;position:relative}.playground-pane{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.editor-pane{flex:1 1 50%;min-width:300px;display:flex;flex-direction:column}.visualizer-pane{flex:1 1 50%;min-width:300px;background-color:#1e1e1e;display:flex;flex-direction:column}.playground-resizer{width:4px;background-color:#3e3e42;cursor:col-resize;flex-shrink:0;transition:background-color .2s;-webkit-user-select:none;user-select:none}.playground-resizer:hover{background-color:#007acc}.pane-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background-color:#2d2d30;border-bottom:1px solid #3e3e42;flex-shrink:0;min-height:45px}.pane-header h2{font-size:1rem;font-weight:500;margin:0;color:#ccc}.pane-header .stats{display:flex;gap:1rem;font-size:.85rem;color:#999;flex-wrap:wrap}.pane-content{flex:1;min-height:0;overflow:hidden;position:relative;display:flex;flex-direction:column}.loading-indicator,.error-indicator,.placeholder{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:#999;font-size:1rem;padding:2rem;text-align:center}.error-indicator{color:#f48771}.errors-panel{background-color:#2d2d30;border-top:1px solid #3e3e42;max-height:200px;overflow-y:auto;flex-shrink:0}.errors-panel h3{margin:0;padding:.5rem 1rem;font-size:.9rem;font-weight:500;color:#f48771;background-color:#3a2626;border-bottom:1px solid #5a1e1e;position:sticky;top:0;z-index:1}.errors-list{padding:.5rem 0}.error-item{display:flex;padding:.5rem 1rem;gap:1rem;border-left:3px solid #f48771;margin:.25rem 0;background-color:#352626;cursor:pointer;transition:background-color .2s}.error-item:hover{background-color:#3a2828}.error-location{font-family:Consolas,Monaco,Courier New,monospace;color:#999;font-size:.85rem;min-width:80px;flex-shrink:0}.error-message{color:#f48771;font-size:.9rem;flex:1;word-break:break-word}.playground-footer{background-color:#252526;border-top:1px solid #3e3e42;max-height:300px;overflow:hidden;flex-shrink:0;display:flex;flex-direction:column}.gcode-panel{height:100%;min-height:0;display:flex;flex-direction:column}.gcode-panel h3{margin:0;padding:.75rem 1rem;font-size:.9rem;font-weight:500;color:#ccc;background-color:#2d2d30;border-bottom:1px solid #3e3e42;flex-shrink:0}.gcode-output{flex:1;margin:0;padding:1rem;background-color:#1e1e1e;color:#d4d4d4;font-family:Consolas,Monaco,Courier New,monospace;font-size:.85rem;line-height:1.5;overflow:auto;white-space:pre}.gcode-output::-webkit-scrollbar{width:10px;height:10px}.gcode-output::-webkit-scrollbar-track{background:#1e1e1e}.gcode-output::-webkit-scrollbar-thumb{background:#424242;border-radius:5px}.gcode-output::-webkit-scrollbar-thumb:hover{background:#4e4e4e}@media(max-width:1024px){.playground-header{flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem 1rem}.playground-header h1{font-size:1.25rem}.playground-controls{width:100%;justify-content:flex-start}}@media(max-width:768px){.playground-content{flex-direction:column}.playground-resizer{width:100%;height:4px;cursor:row-resize}.editor-pane,.visualizer-pane{min-width:unset;min-height:200px;flex:1 1 50%}.pane-header,.playground-header{padding:.5rem .75rem}}@media print{.playground{position:static;height:auto}.playground-header,.playground-resizer{display:none}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
