:root{--color-bg-main:#d0d0d0;--color-bg-window:#e0e0e0;--color-bg-panel:#f0f0f0;--color-bg-code:#f8f8f8;--color-bg-button:#fc0;--color-bg-button-hover:#fd3;--color-bg-tab:#ccc;--color-bg-tab-active:#f0f0f0;--color-bg-view:#2d3748;--color-text-dark:#000;--color-text-light:#fff;--color-text-dim:#666;--color-code-keyword:#00f;--color-code-operator:#666;--color-code-number:#f60;--color-code-string:#080;--color-code-comment:#888;--color-code-value:#c00;--color-border:#888;--color-border-light:#ccc;--color-border-dark:#444;--font-mono:"Monocraft", monospace;--font-ui:"Monocraft", sans-serif;--border-width:1px;--border-width-thick:2px;--border-radius:0px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-ui);background-color:var(--color-bg-main);color:var(--color-text-dark);min-height:100vh;overflow:hidden}.cublica-container{background-color:var(--color-bg-main);border:var(--border-width) solid var(--color-border-dark);flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.cublica-header{background-color:var(--color-bg-window);border-bottom:var(--border-width) solid var(--color-border-dark);align-items:center;height:30px;padding:0 5px;display:flex}.cublica-logo{color:var(--color-text-light);text-align:center;background-color:red;margin-right:auto;padding:2px 10px;font-size:12px;font-weight:700}.cublica-title{color:var(--color-text-dark);padding:0 10px;font-size:14px;font-weight:700}.cublica-close{cursor:pointer;padding:0 5px;font-size:16px}.cublica-content{flex:1;display:flex;overflow:hidden}.code-panel{border-right:var(--border-width) solid var(--color-border-dark);flex-direction:column;width:50%;display:flex}.code-tabs{background-color:var(--color-bg-window);border-bottom:var(--border-width) solid var(--color-border-dark);display:flex}.code-tab{cursor:pointer;border-right:var(--border-width) solid var(--color-border-dark);padding:5px 15px;font-size:14px}.code-tab.active{background-color:var(--color-bg-tab-active);font-weight:700}.code-tab-placeholder{color:var(--color-text-dim);text-align:center;background-color:var(--color-bg-tab);border-left:var(--border-width) solid var(--color-border-dark);margin-left:auto;padding:5px 15px;font-size:14px}.code-editor-container{background-color:var(--color-bg-code);border-bottom:var(--border-width) solid var(--color-border-dark);flex:1;position:relative;overflow:hidden}.code-textarea{width:100%;height:100%;font-family:var(--font-mono);color:var(--color-text-dark);background-color:var(--color-bg-code);resize:none;tab-size:2;border:none;outline:none;padding:10px;font-size:16px;line-height:1.5}.code-mirror-wrapper{height:100%;font-family:var(--font-mono)}.code-mirror-wrapper .cm-editor{height:100%;font-family:var(--font-mono)!important}.code-mirror-wrapper .cm-scroller{font-family:var(--font-mono);line-height:1.5}.code-mirror-wrapper .cm-content{font-family:var(--font-mono)}.code-stats{background-color:var(--color-bg-window);border-top:var(--border-width) solid var(--color-border-dark);justify-content:space-between;padding:5px 10px;font-size:12px;display:flex}.code-run-button{background-color:var(--color-bg-button);text-align:center;cursor:pointer;border-top:var(--border-width) solid var(--color-border-dark);border-bottom:var(--border-width) solid var(--color-border-dark);padding:8px;font-weight:700}.code-run-button:hover{background-color:var(--color-bg-button-hover)}.view-panel{flex-direction:column;width:50%;display:flex;overflow:hidden}.view-top-section{border-bottom:var(--border-width) solid var(--color-border-dark);flex-direction:column;height:50%;display:flex}.view-top-content{flex:1;position:relative;overflow:hidden}.view-bottom-section{flex-direction:column;height:50%;display:flex;position:relative}.view-bottom-content{flex:1;position:relative;overflow:hidden}.view-section-header{background-color:var(--color-bg-window);border-bottom:var(--border-width) solid var(--color-border-dark);padding:5px 15px;font-size:14px;font-weight:700}.cube-view-top,.cube-view-bottom{background-color:var(--color-bg-view);height:calc(100% - 30px);position:relative}.cube-canvas{width:100%;height:100%;position:relative;overflow:hidden}.cube-canvas canvas{display:block;width:100%!important;height:100%!important}.docs-container-top{background-color:var(--color-bg-panel);height:100%;padding:20px;overflow-y:auto}.docs-container-top h2{border-bottom:var(--border-width) solid var(--color-border);margin-bottom:15px;padding-bottom:5px;font-size:18px}.docs-container-top h3{margin:15px 0 5px;font-size:16px}.docs-container-top p{margin-bottom:10px;font-size:14px;line-height:1.5}.view-tabs{background-color:var(--color-bg-window);border-bottom:var(--border-width) solid var(--color-border-dark);display:flex}.view-tab{cursor:pointer;border-right:var(--border-width) solid var(--color-border-dark);padding:5px 15px;font-size:14px}.view-tab.active{background-color:var(--color-bg-tab-active);font-weight:700}.view-nav{margin-left:auto;display:flex}.view-nav button{cursor:pointer;border:none;border-left:var(--border-width) solid var(--color-border-dark);background:0 0;padding:5px 10px;font-size:12px}.view-nav button:hover{background-color:var(--color-bg-tab)}.view-container{flex-direction:row;flex:1;display:flex}.cube-view{border-bottom:var(--border-width) solid var(--color-border-dark);border-right:var(--border-width) solid var(--color-border-dark);flex:1;position:relative}.cube-view:last-child{border-right:none}.cube-canvas{background-color:var(--color-bg-view);width:100%;height:100%;position:relative}canvas{display:block;width:100%!important;height:100%!important}.axis-label{color:var(--color-text-light);z-index:10;font-size:12px;font-weight:700;position:absolute}.x-axis{color:red;bottom:10px;left:10px}.y-axis{color:#0f0;top:10px;left:10px}.z-axis{color:#08f;bottom:10px;right:10px}.grid-coordinates{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.coordinate{color:#ffffff80;text-align:center;font-size:10px;position:absolute}.x-coordinate{bottom:5px}.y-coordinate{left:5px}.z-coordinate{top:5px}.cube-title{background-color:var(--color-bg-window);border-bottom:var(--border-width) solid var(--color-border-dark);padding:5px 10px;font-size:14px;font-weight:700}.view-controls{gap:5px;display:flex;position:absolute;bottom:10px;right:10px}.view-control{border:var(--border-width) solid #ffffff80;width:24px;height:24px;color:var(--color-text-light);cursor:pointer;background-color:#fff3;border-radius:3px;justify-content:center;align-items:center;font-size:14px;display:flex}.view-control:hover{background-color:#ffffff4d}.view-mode-controls{flex-direction:column;gap:3px;display:flex;position:absolute;top:10px;right:10px}.view-mode-button{border:var(--border-width) solid #ffffff80;width:40px;height:24px;color:var(--color-text-light);cursor:pointer;background-color:#fff3;border-radius:3px;justify-content:center;align-items:center;font-size:12px;display:flex}.view-mode-button:hover{background-color:#ffffff4d}.view-mode-button.active{background-color:#fff6;border-color:#fffc;font-weight:700}.voxel-count{color:var(--color-text-light);background-color:#00000080;border-radius:3px;padding:5px 8px;font-size:12px;position:absolute;bottom:10px;left:10px}.cublica-footer{background-color:var(--color-bg-window);border-top:var(--border-width) solid var(--color-border-dark);justify-content:space-between;align-items:center;height:30px;padding:0 10px;display:flex}.settings-panel{background-color:var(--color-bg-panel);height:100%;padding:20px;overflow-y:auto}.settings-panel h3{margin-bottom:10px;font-size:16px}.settings-panel h4{margin:15px 0 5px;font-size:14px}.puzzle-selector{border:var(--border-width) solid var(--color-border);background-color:var(--color-bg-window);width:100%;font-family:var(--font-ui);margin-bottom:15px;padding:8px}.puzzle-description{border:var(--border-width) solid var(--color-border-light);background-color:var(--color-bg-window);margin-bottom:20px;padding:10px}.puzzle-description p{margin-top:5px;font-size:14px;line-height:1.4}.action-buttons{gap:10px;margin-top:20px;display:flex}.action-buttons button{background-color:var(--color-bg-button);border:var(--border-width) solid var(--color-border-dark);cursor:pointer;padding:8px 15px;font-weight:700}.action-buttons button:hover{background-color:var(--color-bg-button-hover)}.docs-container{background-color:var(--color-bg-panel);height:100%;padding:20px;overflow-y:auto}.docs-container h2{border-bottom:var(--border-width) solid var(--color-border);margin-bottom:15px;padding-bottom:5px;font-size:18px}.docs-container h3{margin:15px 0 5px;font-size:16px}.docs-container p{margin-bottom:10px;font-size:14px;line-height:1.5}.docs-code{background-color:var(--color-bg-code);border:var(--border-width) solid var(--color-border-light);font-family:var(--font-mono);white-space:pre-wrap;margin:10px 0;padding:10px;font-size:14px;overflow-x:auto}.color-list{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;padding:0;list-style:none;display:grid}.color-list li{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.color-swatch{border-radius:.25rem;width:1rem;height:1rem;display:inline-block;box-shadow:inset 0 0 0 1px #0000001a}.color-strip{z-index:10;border-top:1px solid #ddd;width:100%;height:24px;display:flex;position:relative;overflow:hidden}.color-block{cursor:pointer;flex:1;justify-content:center;align-items:center;min-width:20px;transition:transform .1s;display:flex;position:relative}.color-block:hover{z-index:20;transform:scaleY(1.2)}.color-label{color:#fff;text-shadow:0 0 2px #000000b3;-webkit-user-select:none;user-select:none;font-size:.7rem;font-weight:700}.code-editor-container{border:1px solid #ddd;border-radius:4px;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.code-mirror-wrapper{flex:1;overflow:hidden}.color-strip-container{z-index:5;background-color:#1e1e1e;width:100%;height:24px;position:relative}.auto-run-container{align-items:center;gap:10px;font-size:12px;display:flex}.toggle-switch{background-color:var(--color-bg-tab);border:var(--border-width) solid var(--color-border);cursor:pointer;border-radius:10px;width:36px;height:18px;position:relative}.toggle-switch.active{background-color:var(--color-bg-button)}.toggle-switch-handle{background-color:var(--color-bg-window);border:var(--border-width) solid var(--color-border);border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;top:1px;left:1px}.toggle-switch.active .toggle-switch-handle{transform:translate(18px)}.footer-status{color:var(--color-text-dim);font-size:12px}
