.bashtorio-root{width:100%;height:100%;font-family:Segoe UI,system-ui,sans-serif;background:var(--ui-bg, #1a1a2e);color:var(--ui-fg, #eee)}.bashtorio-boot{position:fixed;inset:0;background:#000;display:flex;align-items:start;justify-content:center;padding-top:33vh;z-index:1000}.boot-content{text-align:center;max-width:700px;padding:30px}.boot-content h1{font-size:2.5rem;margin-bottom:5px;color:#fff}.boot-sh{color:#00ff41}.boot-subtitle{color:#fff;margin-bottom:20px;font-size:1rem}.boot-status{color:#00ff41;margin-bottom:15px;font-size:.9rem}.boot-terminal{background:#000;border-radius:8px;padding:2px;border:1px solid #00ff41;overflow:hidden}.screen-container{width:640px;max-width:100%;height:300px;overflow:hidden;background:#000}.screen-container>div{color:#0f0;padding:8px;height:100%;overflow:hidden}.bashtorio-game{width:100%;height:100%;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:1fr auto var(--sidebar-width, 720px);overflow:visible}.bashtorio-systembar{grid-row:1;grid-column:1 / -1;background:var(--ui-bg-surface, #1e1e32);display:flex;align-items:center;gap:8px;padding:6px 15px;border-bottom:1px solid var(--ui-border, #333);z-index:10;overflow:visible;position:relative}.bashtorio-systembar .action-btn{padding:4px 10px;font-size:.8rem}.bashtorio-systembar .vm-status{font-size:.8rem;padding:4px 10px}.systembar-spacer{flex:1}.bashtorio-systembar .mode-btn-wrapper{position:relative;overflow:visible}.bashtorio-systembar .storage-popout{bottom:auto;top:100%;margin-bottom:0;margin-top:8px;box-shadow:0 4px 12px #0006}.bashtorio-systembar .storage-popout:after{bottom:auto;top:-8px;border-top-color:transparent;border-bottom-color:var(--ui-border-light, #3a3a5a);border-top:none;border-bottom:8px solid var(--ui-border-light, #3a3a5a)}.game-canvas{grid-row:2;grid-column:1;width:100%;height:100%;min-height:0;display:block;background:var(--ui-bg-input, #12121f)}.sidebar-resize-handle{grid-row:2;grid-column:2;width:5px;cursor:col-resize;background:var(--ui-border, #333);transition:background .15s;z-index:5}.sidebar-resize-handle:hover,.sidebar-resize-handle.dragging{background:var(--ui-accent, #00d9ff)}.bashtorio-sidebar{grid-row:2;grid-column:3;background:var(--ui-bg, #1a1a2e);border-left:none;display:flex;flex-direction:column;overflow:hidden;z-index:1;box-shadow:-2px 0 8px #0000004d}.bashtorio-output{flex:1;display:flex;flex-direction:column;min-height:0}.bashtorio-stats{flex:0 0 auto;display:flex;flex-direction:column;border-top:1px solid var(--ui-border, #333)}.stats-body{padding:8px 12px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px}.stat-item{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:var(--ui-fg-muted, #888)}.stat-value{font-family:Consolas,Monaco,Courier New,monospace;font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--ui-accent, #00d9ff)}.stat-value.stat-error{color:#e09690}.bashtorio-streams{flex:0 0 auto;display:flex;flex-direction:column;border-top:1px solid var(--ui-border, #333)}.stream-entries{padding:6px 10px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.8rem}.stream-entries:empty{display:none}.stream-entries:empty+.bashtorio-cmdlog{border-top:none}.stream-entry{padding:4px 0;border-bottom:1px solid var(--ui-border, #222)}.stream-entry:last-child{border-bottom:none}.stream-cmd{display:flex;align-items:center;gap:8px}.stream-cmd-text{flex:1;color:var(--ui-fg, #eee);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stream-status{flex-shrink:0;font-size:.75rem;white-space:nowrap}.stream-entry--running .stream-status{color:#6ec86e;animation:cmdlog-pulse 1.5s ease-in-out infinite}.stream-entry--error .stream-cmd-text,.stream-entry--error .stream-status{color:#e09690}.bashtorio-cmdlog{flex:0 0 200px;max-height:200px;display:flex;flex-direction:column;border-top:1px solid var(--ui-border, #333)}.cmdlog-entries{flex:1;min-height:0;overflow-y:auto;padding:6px 10px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.8rem;scrollbar-width:none}.cmdlog-entries::-webkit-scrollbar{display:none}.cmdlog-entries.scrollable{scrollbar-width:thin}.cmdlog-entries.scrollable::-webkit-scrollbar{display:block;width:6px}.cmdlog-entries.scrollable::-webkit-scrollbar-thumb{background:var(--ui-border, #444);border-radius:3px}.panel-header-actions{display:flex;gap:4px;align-items:center}.cmdlog-autoscroll-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:.7rem;opacity:.4;transition:opacity .15s,background .15s}.cmdlog-autoscroll-btn.active{opacity:1}.cmdlog-entry{padding:4px 0;border-bottom:1px solid var(--ui-border, #222)}.cmdlog-entry:last-child{border-bottom:none}.cmdlog-cmd{display:flex;align-items:center;gap:8px}.cmdlog-cmd-text{flex:1;color:var(--ui-fg, #eee);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdlog-status{flex-shrink:0;color:var(--ui-fg-muted, #888);font-size:.75rem;white-space:nowrap}.cmdlog-io{color:var(--ui-fg-muted, #666);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;padding-left:12px}.cmdlog-entry--running .cmdlog-status{animation:cmdlog-pulse 1.5s ease-in-out infinite}.cmdlog-entry--error .cmdlog-cmd-text,.cmdlog-entry--error .cmdlog-status{color:#e09690}@keyframes cmdlog-pulse{0%,to{opacity:1}50%{opacity:.4}}.bashtorio-source{flex:0 0 150px;display:flex;flex-direction:column;border-top:1px solid var(--ui-border, #333)}.bashtorio-terminal{flex:0 0 180px;display:flex;flex-direction:column;border-top:1px solid var(--ui-border, #333)}.bashtorio-terminal.collapsed{flex:0 0 auto}.bashtorio-terminal.collapsed .game-terminal{display:none}.terminal-toggle-icon{font-size:.7rem;opacity:.6}.panel-header{padding:10px 15px;background:var(--ui-bg-surface, #1e1e32);border-bottom:1px solid var(--ui-border, #333);display:flex;justify-content:space-between;align-items:center;font-weight:500;flex-shrink:0}.panel-header button{padding:4px 10px;background:var(--ui-bg-element, #2a2a4a);border:none;border-radius:4px;color:var(--ui-fg-secondary, #aaa);cursor:pointer;font-size:.8rem}.panel-header button:hover{background:var(--ui-border-light, #3a3a5a);color:var(--ui-fg, #fff)}.output-sinks{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:10px}.sink-section{display:flex;flex-direction:column;border-radius:6px;overflow:hidden;border:1px solid var(--ui-border, #333)}.sink-label{padding:6px 12px;background:var(--ui-bg-element, #2a2a4a);color:var(--ui-accent, #00d9ff);font-size:.8rem;font-weight:500;border-bottom:1px solid var(--ui-border, #333)}.sink-output{padding:12px;background:#000;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.4;white-space:pre;overflow-x:auto;color:var(--ui-fg-secondary, #aaa);margin:0;min-height:60px;max-height:300px}.ansi-bold{font-weight:700}.ansi-dim{opacity:.7}.ansi-italic{font-style:italic}.ansi-underline{text-decoration:underline}.ansi-fg-black{color:#000}.ansi-fg-red{color:#c75646}.ansi-fg-green{color:#8eb33b}.ansi-fg-yellow{color:#d0b03c}.ansi-fg-blue{color:#72b3cc}.ansi-fg-magenta{color:#c8a0d1}.ansi-fg-cyan{color:#218693}.ansi-fg-white{color:#b0b0b0}.ansi-fg-bright-black{color:#5d5d5d}.ansi-fg-bright-red{color:#e09690}.ansi-fg-bright-green{color:#cdee69}.ansi-fg-bright-yellow{color:#ffe377}.ansi-fg-bright-blue{color:#9cd9f0}.ansi-fg-bright-magenta{color:#fbb1f9}.ansi-fg-bright-cyan{color:#77dfd8}.ansi-fg-bright-white{color:#f7f7f7}.ansi-bg-black{background-color:#000}.ansi-bg-red{background-color:#c75646}.ansi-bg-green{background-color:#8eb33b}.ansi-bg-yellow{background-color:#d0b03c}.ansi-bg-blue{background-color:#72b3cc}.ansi-bg-magenta{background-color:#c8a0d1}.ansi-bg-cyan{background-color:#218693}.ansi-bg-white{background-color:#b0b0b0}.ansi-bg-bright-black{background-color:#5d5d5d}.ansi-bg-bright-red{background-color:#e09690}.ansi-bg-bright-green{background-color:#cdee69}.ansi-bg-bright-yellow{background-color:#ffe377}.ansi-bg-bright-blue{background-color:#9cd9f0}.ansi-bg-bright-magenta{background-color:#fbb1f9}.ansi-bg-bright-cyan{background-color:#77dfd8}.ansi-bg-bright-white{background-color:#f7f7f7}.source-input{flex:1;padding:15px;background:transparent;border:none;color:var(--ui-fg-secondary, #ccc);font-family:Consolas,monospace;font-size:.9rem;resize:none}.source-input:focus{outline:none}.game-terminal{flex:1;background:#000;overflow:hidden}.game-terminal .screen-container{width:100%;height:100%;outline:none}.game-terminal .screen-container:focus{outline:1px solid #0f0}.game-terminal .screen-container>div{font:14px monospace!important;line-height:16px!important;color:#0f0;padding:5px;height:100%;overflow-y:auto}.bashtorio-toolbar{grid-row:3;grid-column:1 / -1;background:var(--ui-bg-surface, #1e1e32);display:flex;flex-direction:column;border-top:1px solid var(--ui-border, #333);overflow:visible;z-index:2;box-shadow:0 -2px 8px #0000004d;position:relative;z-index:10}.toolbar-main{padding:10px 15px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;overflow:visible;user-select:none}.tool-group{display:flex;align-items:center;gap:8px}.mode-group{overflow:visible}.mode-btn-wrapper{position:relative;overflow:visible}.placeable-popout{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;display:flex;flex-direction:row;gap:2px;padding:8px;background:var(--ui-bg-surface, #1e1e32);border:1px solid var(--ui-border-light, #3a3a5a);border-radius:8px;box-shadow:0 -4px 12px #0006;z-index:10}.popout-column{display:flex;flex-direction:column;gap:4px}.popout-column-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;color:var(--ui-fg-muted, #6a6a8a);text-align:center;padding-bottom:2px;border-bottom:1px solid var(--ui-bg-element, #2a2a4a);margin-bottom:2px}.placeable-popout:after{content:"";position:absolute;bottom:-8px;left:var(--arrow-left, 50%);transform:translate(-50%);border:8px solid transparent;border-top-color:var(--ui-border-light, #3a3a5a);border-bottom:none}.storage-popout{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;display:flex;flex-direction:column;gap:4px;padding:6px;background:var(--ui-bg-surface, #1e1e32);border:1px solid var(--ui-border-light, #3a3a5a);border-radius:8px;box-shadow:0 -4px 12px #0006;z-index:10}.storage-popout:after{content:"";position:absolute;bottom:-8px;left:var(--arrow-left, 50%);transform:translate(-50%);border:8px solid transparent;border-top-color:var(--ui-border-light, #3a3a5a);border-bottom:none}.storage-popout .action-btn{white-space:nowrap;text-align:left}.mode-btn{display:flex;flex-direction:column;align-items:center;padding:8px 12px;background:var(--ui-bg-element, #2a2a4a);border:2px solid var(--ui-border-light, #3a3a5a);border-radius:8px;color:var(--ui-fg-secondary, #ccc);cursor:pointer;transition:all .15s;min-width:55px}.mode-btn:hover{filter:brightness(1.2)}.mode-btn:active{box-shadow:inset 0 2px 4px #0006}.mode-btn.active{background:#3a5a8a;border-color:#4a8aca;color:var(--ui-fg, #fff)}.placeable-btn{display:flex;flex-direction:row;align-items:center;gap:8px;padding:8px 12px;background:var(--ui-bg-element, #2a2a4a);border:2px solid var(--ui-border-light, #3a3a5a);border-radius:6px;color:var(--ui-fg-secondary, #ccc);cursor:pointer;transition:all .15s;min-width:80px;white-space:nowrap}.placeable-btn:hover{filter:brightness(1.2)}.placeable-btn:active{box-shadow:inset 0 2px 4px #0006}.placeable-btn.active{background:#4a3a6a;border-color:#8a6aca;color:var(--ui-fg, #fff)}.placeable-btn .tool-icon{font-size:1.1rem}.placeable-btn .tool-label{font-size:.75rem}.tool-btn{display:flex;flex-direction:column;align-items:center;padding:8px 12px;background:var(--ui-bg-element, #2a2a4a);border:2px solid var(--ui-border-light, #3a3a5a);border-radius:8px;color:var(--ui-fg-secondary, #ccc);cursor:pointer;transition:all .15s;min-width:55px}.tool-btn:hover{filter:brightness(1.2)}.tool-btn.active{background:#3a5a8a;border-color:#4a8aca;color:var(--ui-fg, #fff)}.tool-icon{font-size:1.3rem;min-height:1.3em}.tool-label{font-size:.7rem;margin-top:2px}.dir-btn{width:36px;height:36px;font-size:1.3rem;background:var(--ui-bg-element, #2a2a4a);border:2px solid var(--ui-border-light, #3a3a5a);border-radius:6px;color:var(--ui-fg, #fff);cursor:pointer;display:flex;align-items:center;justify-content:center}.dir-arrow{transition:transform .15s ease}.dir-btn:hover{filter:brightness(1.2)}.dir-btn:active{box-shadow:inset 0 2px 4px #0006}.direction-label,.hint{color:var(--ui-fg-muted, #888);font-size:.85rem}.styled-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;background:var(--ui-bg-input, #12121f);border:1px solid var(--ui-border, #333);border-radius:3px;cursor:pointer;outline:none}.speed-slider{width:100px}.styled-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--ui-accent, #00d9ff);border:none;border-radius:50%;cursor:pointer;box-shadow:0 0 4px var(--ui-accent, #00d9ff)}.styled-slider::-moz-range-thumb{width:14px;height:14px;background:var(--ui-accent, #00d9ff);border:none;border-radius:50%;cursor:pointer;box-shadow:0 0 4px var(--ui-accent, #00d9ff)}.styled-slider::-moz-range-track{background:var(--ui-bg-input, #12121f);border:1px solid var(--ui-border, #333);border-radius:3px;height:6px}.speed-value{color:var(--ui-accent, #00d9ff);min-width:35px}.zoom-value{color:var(--ui-fg-secondary, #aaa);font-size:.8rem;min-width:35px;text-align:center}.version-info{margin-left:auto;font-size:.75rem;color:var(--ui-fg-muted, #666);display:flex;align-items:center;gap:8px}.version-info a{color:var(--ui-fg-muted, #888);text-decoration:underline;text-underline-offset:2px}.version-info a:hover{color:var(--ui-fg, #fff)}.version-icon{display:inline-flex;align-items:center;text-decoration:none!important;opacity:.6;transition:opacity .15s}.version-icon:hover{opacity:1}.action-btn{padding:8px 16px;background:var(--ui-accent-green, #2a4a2a);border:none;border-radius:6px;color:var(--ui-fg, #fff);cursor:pointer;font-size:.9rem;transition:filter .15s}.action-btn:hover:not(:disabled){filter:brightness(1.3)}.action-btn:active:not(:disabled){box-shadow:inset 0 2px 4px #0006}.action-btn:disabled{opacity:.5;cursor:not-allowed}.stop-btn{background:var(--ui-accent-red, #4a2a2a)}.stop-btn:hover:not(:disabled){filter:brightness(1.3)}.clear-btn{background:var(--ui-bg-element, #4a4a4a)}.clear-btn:hover{filter:brightness(1.3)}.save-btn{background:var(--ui-bg-element, #2a4a5a)}.save-btn:hover{filter:brightness(1.3)}.load-btn{background:var(--ui-bg-element, #4a3a2a)}.load-btn:hover{filter:brightness(1.3)}.presets-btn{background:var(--ui-bg-element, #4a2a5a)}.presets-btn:hover{filter:brightness(1.3)}.network-btn{background:var(--ui-bg-element, #2a2a4a)}.network-btn:hover{filter:brightness(1.3)}.network-btn.connected{background:#2a4a3a;border:1px solid #00ff88}.vm-status{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--ui-bg-deep, #0a0a1a);border-radius:4px;font-size:.85rem}.vm-status .status-dot{width:8px;height:8px;border-radius:50%;background:#0f8;animation:pulse 2s infinite}.vm-status.busy .status-dot{background:#fa0}.vm-status.error .status-dot{background:#f44;animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.machine-picker{position:fixed;display:flex;flex-direction:row;gap:2px;padding:8px;background:var(--ui-bg-surface, #1e1e32);border:1px solid var(--ui-border-light, #3a3a5a);border-radius:8px;box-shadow:0 4px 12px #0006;z-index:200}.machine-picker .picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.bashtorio-modal{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal-content{background:var(--ui-bg-surface, #1e1e32);padding:25px;border-radius:12px;min-width:400px;max-width:90vw;border:1px solid var(--ui-border, #333)}.modal-content h3{margin:0 0 20px;color:var(--ui-accent, #00d9ff)}.modal-description{color:var(--ui-fg-secondary, #aaa);font-size:.9rem;margin-bottom:15px;line-height:1.4}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;color:var(--ui-fg-secondary, #aaa);font-size:.9rem}.form-row{display:flex;gap:12px;justify-content:center}.form-row .form-group{flex:1;min-width:0;text-align:center}.form-row .form-group label{text-align:center}.form-row .form-group .dir-input{margin:0 auto}.source-newline-warn{margin-top:4px;font-size:.8rem;color:#e0a040}.form-group input[type=text],.form-group input[type=number]{-moz-appearance:textfield}.form-group input[type=number]::-webkit-inner-spin-button,.form-group input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-group input[type=text],.form-group input[type=number],.form-group textarea,.form-group select{width:100%;padding:10px;background:var(--ui-bg-input, #12121f);border:1px solid var(--ui-border, #333);border-radius:6px;color:var(--ui-fg, #fff);font-size:1rem;box-sizing:border-box;text-align:left}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--ui-accent, #00d9ff)}.form-group input[type=checkbox]{margin-right:8px}.relay-docker-cmd{display:block;padding:8px 12px;background:var(--ui-bg-deep, #0a0a1a);border:1px solid var(--ui-border, #333);border-radius:6px;font-family:Consolas,monospace;font-size:.85rem;color:var(--ui-fg, #fff);word-break:break-all;user-select:all}.modal-warning{font-size:.8rem;color:#e0a040;margin-bottom:10px}.network-status{display:flex;align-items:center;gap:8px;padding:10px;background:var(--ui-bg-deep, #0a0a1a);border-radius:6px;margin-bottom:15px;font-size:.9rem}.network-status .status-dot{width:10px;height:10px;border-radius:50%;background:#f44}.network-status .status-dot.connected{background:#0f8}.machine-panel-wrap{padding:0!important;background:transparent!important;border:none!important;min-width:400px}.machine-panel{background:var(--ui-bg-surface, #1e1e32);border:2px solid var(--ui-border-light, #4a6a8a);border-radius:8px;overflow:hidden}.cmd-terminal{background:var(--ui-bg-deep, #0a0a14);font-family:Consolas,Monaco,Courier New,monospace}.machine-panel-header{background:var(--ui-bg-surface, #1a1a2a);padding:8px 12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--ui-border, #333)}.machine-panel-title{color:var(--ui-fg-secondary, #aaa);font-size:.95rem;font-weight:500}.machine-panel-controls{display:flex;align-items:center;gap:10px}.machine-panel-check{display:flex;align-items:center;gap:5px;color:var(--ui-fg-secondary, #aaa);font-size:.8rem;cursor:pointer}.machine-panel-check:hover{color:var(--ui-fg, #ddd)}.modal-select{background:var(--ui-bg, #181828);color:var(--ui-fg-secondary, #aaa);border:1px solid var(--ui-border, #333);border-radius:3px;font-size:.8rem;padding:2px 4px;cursor:pointer}.modal-select:disabled{opacity:.4;cursor:not-allowed}.channel-row{display:flex;gap:6px;justify-content:center}.channel-btn{width:32px;height:32px;border-radius:50%;border:2px solid var(--ch-color);background:transparent;color:var(--ch-color);font-size:.85rem;font-weight:700;cursor:pointer;transition:background .12s,box-shadow .12s}.channel-btn:hover{background:color-mix(in srgb,var(--ch-color) 20%,transparent)}.channel-btn.active{background:var(--ch-color);color:#000;box-shadow:0 0 8px var(--ch-color)}.machine-panel-check input[type=checkbox]{appearance:none;width:14px;height:14px;border:1px solid var(--ui-border, #333);border-radius:3px;background:var(--ui-bg-input, #12121f);cursor:pointer;position:relative}.machine-panel-check input[type=checkbox]:checked{background:var(--ui-accent, #2a4a6a);border-color:var(--ui-accent, #2a4a6a)}.machine-panel-check input[type=checkbox]:checked:after{content:"";position:absolute;left:3px;top:0;width:4px;height:8px;border:solid var(--ui-fg, #fff);border-width:0 2px 2px 0;transform:rotate(45deg)}.machine-panel-body{padding:12px}.machine-panel-body .modal-description{margin-bottom:10px;font-size:.9rem}.machine-panel-body .form-group{margin-bottom:10px;text-align:center}.machine-panel-body .form-group:last-child{margin-bottom:0}.machine-panel-body .form-group label{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--ui-fg-secondary, #aaa)}.cmd-field-row{display:flex;gap:12px}.cmd-field{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.cmd-field-grow{flex:2}.cmd-field-label{color:var(--ui-fg-secondary, #aaa);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.cmd-prompt-line{display:flex;align-items:center;gap:8px}.cmd-prompt{color:#0f8;font-size:.95rem;white-space:nowrap}.cmd-prompt-test{color:var(--ui-fg-muted, #888)}.cmd-input{flex:1;background:var(--ui-bg-input, #12121f);border:1px solid var(--ui-border, #333);border-radius:4px;color:var(--ui-fg, #fff);font-family:inherit;font-size:.95rem;padding:6px 8px;outline:none}textarea.cmd-command{resize:vertical;min-height:1.6em;field-sizing:content}.cmd-input:focus{border-color:var(--ui-accent, #00d9ff)}.cmd-input::placeholder{color:#444}.cmd-separator{height:1px;background:var(--ui-border, #333);margin:12px 0}.cmd-test-section{opacity:.8}.cmd-test-label{color:var(--ui-fg-muted, #666);font-size:.75rem;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.cmd-run-input{flex:1;background:transparent;border:none;color:var(--ui-fg-secondary, #aaa);font-family:inherit;font-size:.85rem;padding:4px 0;outline:none}.cmd-run-input::placeholder{color:#444}.cmd-run-btn{padding:4px 12px;background:var(--ui-accent-green, #2a3a2a);border:1px solid var(--ui-border-light, #3a5a3a);border-radius:4px;color:var(--ui-fg-muted, #8a8);cursor:pointer;font-family:inherit;font-size:.8rem;transition:all .15s}.cmd-run-btn:hover:not(:disabled){filter:brightness(1.3)}.cmd-run-btn:disabled{opacity:.5;cursor:not-allowed}.cmd-run-output{margin-top:8px;padding:8px;background:#000;border:1px solid #222;border-radius:4px;color:#64c8ff;font-size:.85rem;white-space:pre-wrap;word-break:break-all;max-height:120px;overflow-y:auto;min-height:30px}.cmd-run-output:empty:before{content:"(output will appear here)";color:var(--ui-border, #333)}.machine-panel-footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;background:var(--ui-bg-surface, #1a1a2a);border-top:1px solid var(--ui-border, #333)}.machine-panel-footer button{padding:6px 16px;border:none;border-radius:4px;cursor:pointer;font-family:inherit;font-size:.85rem;transition:filter .15s}.machine-panel-footer button:not([data-cancel]):not([data-save]){margin-right:auto;background:var(--ui-bg-element, #2a2a3a);color:var(--ui-fg-secondary, #aaa)}.machine-panel-footer [data-cancel]{background:var(--ui-bg-element, #2a2a3a);color:var(--ui-fg-muted, #888)}.machine-panel-footer [data-cancel]:hover{filter:brightness(1.2)}.machine-panel-footer [data-save]{background:var(--ui-accent, #2a4a6a);color:var(--ui-fg, #fff)}.machine-panel-footer [data-save]:hover{filter:brightness(1.2)}.modal-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.modal-buttons button{padding:10px 20px;border:none;border-radius:6px;cursor:pointer;font-size:.95rem}.modal-buttons button:not(.primary){background:var(--ui-border, #333);color:var(--ui-fg-secondary, #aaa)}.modal-buttons button.primary{background:var(--ui-accent, #00d9ff);color:#000}.modal-buttons button:hover{opacity:.9}.presets-modal-content{min-width:500px;max-width:600px}.presets-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto;margin-bottom:15px}.preset-item{padding:12px 15px;background:var(--ui-bg-input, #12121f);border:1px solid var(--ui-border, #333);border-radius:8px;cursor:pointer;transition:all .15s}.preset-item:hover{background:var(--ui-bg, #1a1a2e);border-color:var(--ui-accent, #00d9ff)}.preset-name{font-weight:600;color:var(--ui-accent, #00d9ff);margin-bottom:4px}.preset-description{font-size:.85rem;color:var(--ui-fg-muted, #888)}.ack-modal-content{min-width:500px;max-width:650px;max-height:80vh;display:flex;flex-direction:column}.acknowledgements-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;margin-bottom:15px;max-height:60vh}.ack-item{padding:8px 12px;background:var(--ui-bg-input, #12121f);border-radius:4px}.ack-item-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.ack-name{font-weight:600;font-size:.9rem;color:var(--ui-fg, #eee)}.ack-version{font-weight:400;font-size:.8rem;color:var(--ui-fg-muted, #888)}.ack-license{font-size:.8rem;color:var(--ui-accent, #00d9ff);white-space:nowrap}.ack-item-meta{font-size:.8rem;color:var(--ui-fg-muted, #888);margin-top:2px}.ack-url{color:var(--ui-fg-muted, #888);text-decoration:none}.ack-url:hover{color:var(--ui-accent, #00d9ff);text-decoration:underline}.ack-footer{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--ui-fg-muted, #888)}.ack-footer button{padding:8px 20px;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;background:var(--ui-accent, #00d9ff);color:#000}.ack-footer button:hover{opacity:.9}.help-modal-content{min-width:550px;max-width:750px;max-height:85vh;display:flex;flex-direction:column}.help-body{flex:1;overflow-y:auto;max-height:70vh;padding-right:8px}.help-body h4{color:var(--ui-accent, #00d9ff);margin:24px 0 10px;font-size:1rem;border-bottom:1px solid var(--ui-border, #333);padding-bottom:6px}.help-body h4:first-child{margin-top:0}.help-body p{color:var(--ui-fg-secondary, #aaa);font-size:.9rem;line-height:1.6;margin:8px 0}.help-body code{background:var(--ui-bg-input, #12121f);color:var(--ui-accent, #00d9ff);padding:2px 6px;border-radius:3px;font-family:Cascadia Code,Fira Code,monospace;font-size:.85rem}.help-body pre{background:var(--ui-bg-input, #12121f);border:1px solid var(--ui-border, #333);border-radius:6px;padding:12px 14px;margin:10px 0;overflow-x:auto;font-family:Cascadia Code,Fira Code,monospace;font-size:.85rem;line-height:1.5;color:var(--ui-fg-secondary, #aaa)}.help-body pre code{background:none;padding:0;color:inherit}.help-diagram{color:var(--ui-accent, #00d9ff)!important}.help-footer{display:flex;justify-content:flex-end;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--ui-border, #333)}.help-footer button{padding:8px 20px;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;background:var(--ui-accent, #00d9ff);color:#000}.help-footer button:hover{opacity:.9}.manual-table{width:100%;border-collapse:collapse;margin-bottom:8px}.manual-table td{padding:4px 8px;border-bottom:1px solid var(--ui-border, #333);vertical-align:top}.manual-table td:first-child{white-space:nowrap;width:1%;color:var(--ui-accent, #00d9ff)}.help-body kbd{display:inline-block;padding:2px 6px;font-family:monospace;font-size:.85em;background:#ffffff1a;border:1px solid var(--ui-border, #444);border-radius:3px;min-width:1.4em;text-align:center}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--ui-bg, #1a1a2e)}::-webkit-scrollbar-thumb{background:var(--ui-border-light, #3a3a5a);border-radius:4px}::-webkit-scrollbar-thumb:hover{filter:brightness(1.3)}.byte-input{display:flex;flex-direction:column;align-items:center;gap:8px}.byte-input-duo{display:flex;gap:8px}.byte-input-col{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;background:var(--ui-bg-input, #12121f);border:1px solid var(--ui-border, #333);border-radius:6px;cursor:pointer;transition:border-color .15s}.byte-input-col--focused{border-color:var(--ui-accent, #00d9ff)}.byte-input-col-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;color:var(--ui-fg-muted, #888)}.byte-input-hex-cells{display:flex;gap:2px}.byte-input-nibble{font-family:Consolas,Monaco,monospace;font-size:1.4rem;font-weight:700;width:1.2ch;text-align:center;line-height:1}.byte-input-nibble--cursor{color:var(--ui-fg-muted, #555)!important}.byte-input-key-display{font-family:Consolas,Monaco,monospace;font-size:1.4rem;font-weight:700;min-width:2ch;text-align:center;line-height:1}.byte-input-capture{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.byte-input-popover-toggle{align-self:center;background:var(--ui-bg-input, #12121f);border:1px solid var(--ui-border, #333);border-radius:4px;color:var(--ui-fg-muted, #666);font-size:1rem;letter-spacing:2px;padding:4px 6px;cursor:pointer;line-height:1;transition:border-color .12s,color .12s}.byte-input-popover-toggle:hover{border-color:var(--ui-accent, #00d9ff);color:var(--ui-accent, #00d9ff)}.byte-input-popover{gap:3px;padding:8px;background:var(--ui-bg-deep, #0a0a14);border:1px solid var(--ui-border, #333);border-radius:6px;margin:0;inset:unset;position-area:bottom span-right}.byte-input-popover:popover-open{display:grid;grid-template-columns:repeat(6,1fr)}.byte-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:36px;height:36px;background:var(--ui-bg-input, #1a1a2a);border:2px solid var(--ui-border-light, #3a3a5a);border-radius:4px;cursor:pointer;transition:border-color .1s,background .1s;padding:2px}.byte-btn:hover{filter:brightness(1.2);border-color:var(--ui-border-light, #5a5a7a)}.byte-btn-label{font-family:Consolas,Monaco,monospace;font-size:.75rem;font-weight:600;line-height:1}.byte-btn-hex{font-family:Consolas,Monaco,monospace;font-size:.55rem;color:var(--ui-fg-muted, #666);line-height:1;margin-top:1px}.byte-btn--ctrl .byte-btn-label{color:#ff9632}.byte-btn--delim .byte-btn-label{color:#ff96c8}.byte-btn--delim[data-value=" "] .byte-btn-label{color:var(--ui-fg-muted, #888888)}.byte-btn--selected{border-color:var(--ui-accent, #00d9ff);background:var(--ui-bg-input, #1a2a3a)}.radio-group{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.radio-option input[type=radio]{display:none}.radio-option span{display:flex;align-items:center;justify-content:center;padding:5px 12px;background:var(--ui-bg-input, #12121f);border:1px solid var(--ui-border, #333);border-radius:4px;color:var(--ui-fg-secondary, #aaa);font-size:.85rem;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.radio-option span:hover{border-color:var(--ui-border-light, #5a5a7a)}.radio-option input:checked+span{border-color:var(--ui-accent, #00d9ff);color:var(--ui-accent, #00d9ff);background:var(--ui-bg-element, #1a2a3a)}.radio-group--compact .radio-option span{padding:5px 8px;font-family:Consolas,Monaco,monospace;font-weight:700}.radio-option input:disabled+span{opacity:.4;pointer-events:none}.dir-input{display:inline-grid;grid-template-columns:36px 36px 36px;grid-template-rows:36px 36px 36px;grid-template-areas:".    up    ." "left .     right" ".    down  .";gap:2px}.dir-input-btn input[type=radio]{display:none}.dir-input-btn span{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--ui-bg-input, #1a1a2a);border:2px solid var(--ui-border-light, #3a3a5a);border-radius:4px;color:var(--ui-fg-muted, #888);font-size:1.1rem;cursor:pointer;transition:border-color .1s,color .1s,background .1s}.dir-input-btn span:hover{border-color:var(--ui-border-light, #5a5a7a)}.dir-input-btn input:checked+span{border-color:var(--ui-accent, #00d9ff);color:var(--ui-accent, #00d9ff);background:var(--ui-bg-element, #1a2a3a)}@media (max-width: 900px){.bashtorio-game{grid-template-columns:1fr}.sidebar-resize-handle,.bashtorio-sidebar{display:none}.bashtorio-toolbar{justify-content:center}}.bashtorio-toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:#000000e6;color:#fff;padding:12px 24px;border-radius:8px;font-size:.95rem;z-index:2000;border:1px solid #444;box-shadow:0 4px 12px #00000080;animation:toast-fade-in .2s ease-out}@keyframes toast-fade-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.hex-input{display:flex;flex-direction:column;gap:6px;position:relative;width:100%}.hex-topbar{display:flex;align-items:center;gap:6px;justify-content:flex-end}.hex-col-label{font-size:.75rem;color:var(--ui-fg-muted, #888);min-width:2.5ch;text-align:center;font-family:Consolas,Monaco,Courier New,monospace}.hex-col-btn{background:var(--ui-bg-element, #2a2a4a);color:var(--ui-fg-secondary, #aaa);border:1px solid var(--ui-border, #333);border-radius:3px;font-size:.75rem;padding:1px 6px;cursor:pointer;line-height:1.4}.hex-col-btn:hover{background:var(--ui-bg-input, #12121f);color:var(--ui-fg, #eee)}.hex-capture{position:absolute;opacity:0;width:0;height:0;padding:0;border:none;overflow:hidden;pointer-events:none}.hex-display{font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.8;background:var(--ui-bg-input, #0a0a14);border:1px solid var(--ui-border, #333);border-radius:4px;padding:8px 10px;min-height:28px;max-height:180px;overflow-y:auto;cursor:text;user-select:none;transition:border-color .15s}.hex-display.hex-focused{border-color:var(--ui-accent, #00d9ff)}.hex-row{display:flex;align-items:center}.hex-addr{color:var(--ui-fg-muted, #555);margin-right:14px;flex-shrink:0}.hex-bytes{display:flex;gap:5px;flex-shrink:0}.hex-cell{padding:1px 2px;border-radius:2px;color:#6cf;cursor:pointer;width:2ch;text-align:center;flex-shrink:0}.hex-cell:hover{background:#66ccff1a}.hex-cell.hex-cursor{background:#6cf3}.hex-focused .hex-cell.hex-cursor{animation:hex-blink 1s step-end infinite}.hex-cell.hex-pending{color:#fa0;background:#ffaa0026}.hex-cell.hex-empty{color:transparent;cursor:default;pointer-events:none}.hex-cell.hex-mid{margin-left:6px}@keyframes hex-blink{50%{background:#66ccff0d}}.hex-ascii{color:#8c8;margin-left:14px;letter-spacing:.1em;flex-shrink:0;white-space:pre}.hex-helpers{display:flex;flex-wrap:wrap;gap:4px}.hex-quick-btn{display:flex;flex-direction:column;align-items:center;background:var(--ui-bg-element, #2a2a4a);border:1px solid var(--ui-border, #333);border-radius:3px;color:var(--ui-fg-secondary, #aaa);font-family:Consolas,Monaco,monospace;font-size:11px;padding:4px 8px;cursor:pointer;transition:border-color .1s,background .1s;line-height:1.3}.hex-quick-btn:hover{border-color:var(--ui-border-light, #5a5a7a);background:var(--ui-bg-surface, #1e1e32)}.hex-quick-label{font-weight:600}.hex-quick-hex{font-size:9px;color:var(--ui-fg-muted, #555)}
