*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:#ddd;background:#1e1e1e;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;height:100vh;display:flex}.topbar{color:#ddd;background:#1e1e1e;border-bottom:1px solid #333;align-items:center;gap:12px;padding:6px 12px;font-size:13px;display:flex}.brand{font-weight:600}.room{color:#999;font-family:ui-monospace,monospace}.lang{color:#ddd;background:#2d2d2d;border:1px solid #444;border-radius:10px;padding:1px 8px;font-size:12px}.spacer{flex:1}.topbar button{color:#ddd;cursor:pointer;background:#2d2d2d;border:1px solid #444;border-radius:4px;padding:3px 8px;font-size:12px}.topbar button:hover{background:#3a3a3a}.history{color:#999;align-items:center;gap:5px;margin-right:8px;font-size:12px;display:inline-flex}.history .dot{background:#666;border-radius:50%;width:8px;height:8px}.history-connected .dot{background:#3cb44b}.history-connecting .dot{background:#f5a623}.history-offline .dot,.history-full .dot{background:#e6194b}.peers{gap:6px;display:flex}.peer{color:#fff;text-shadow:0 0 2px #0009;border-radius:10px;padding:2px 8px;font-size:12px}.peer.local{cursor:pointer}.workspace{flex-direction:column;flex:1;min-height:0;display:flex}.editor{flex:1;min-height:0}.output{background:#181818;border-top:1px solid #333;flex-direction:column;height:32vh;min-height:120px;font-size:13px;display:flex}.output-bar{background:#1e1e1e;border-bottom:1px solid #2a2a2a;align-items:center;gap:10px;padding:4px 12px;display:flex}.output-title{color:#ccc;font-weight:600}.muted{color:#888}.run-btn{color:#fff;cursor:pointer;background:#2e7d32;border:none;border-radius:4px;padding:4px 12px;font-size:13px;font-weight:600}.run-btn:hover{background:#388e3c}.run-btn.cancel{background:#b71c1c}.run-btn.cancel:hover{background:#c62828}.output-list{flex:1;overflow:auto}.output-list .empty{padding:12px}.run{border-bottom:1px solid #2a2a2a}.run summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:4px 12px;list-style:none;display:flex}.run summary::-webkit-details-marker{display:none}.run summary:before{content:"▸";color:#777;width:10px}.run[open] summary:before{content:"▾"}.run-status{min-width:64px;font-family:ui-monospace,monospace;font-size:12px}.run-ok .run-status{color:#3cb44b}.run-error .run-status,.run-timeout .run-status,.run-cancelled .run-status{color:#e6194b}.run-running .run-status{color:#f5a623}.run-who{color:#fff;text-shadow:0 0 2px #0009;border-radius:9px;padding:1px 7px;font-size:11px}.run-time,.run-dur{color:#888;font-size:12px}button.link{color:#6ea8fe;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.run-source,.run-output{white-space:pre-wrap;word-break:break-word;margin:0;padding:6px 12px 8px 30px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.45}.run-source{color:#9cdcfe;background:#141414;border-bottom:1px dashed #2a2a2a}.run-output{color:#ddd}.run-output .stderr{color:#f48771}.yRemoteSelection{opacity:.5}.yRemoteSelectionHead{box-sizing:border-box;height:100%;position:absolute}.yRemoteSelectionHead:after{color:#fff;white-space:nowrap;opacity:0;border-radius:3px 3px 3px 0;padding:0 4px;font-size:11px;line-height:1.3em;transition:opacity .15s;position:absolute;top:-1.35em;left:-2px}.yRemoteSelectionHead:hover:after{opacity:1}
