body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg:#0b0f14;--panel:#0f1623;--panel2:#111a2b;--text:#e6edf3;--muted:#9aa4b2;--border:#ffffff14;--accent:#7c3aed;--accent-2:#22c55e;--danger:#ef4444;--warning:#f59e0b;--mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*{box-sizing:border-box}body{background:#0b0f14;background:var(--bg);color:#e6edf3;color:var(--text)}a{color:inherit}.pylab-root{display:grid;grid-template-rows:52px 1fr;min-height:100vh}.pylab-topbar{background:linear-gradient(180deg,#ffffff0a,#0000);border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);justify-content:space-between;padding:0 16px}.pylab-brand,.pylab-topbar{align-items:center;display:flex}.pylab-brand{font-weight:700;gap:10px;letter-spacing:.2px}.pylab-badge{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:999px;color:#9aa4b2;color:var(--muted);font-size:12px;padding:2px 8px}.pylab-actions{align-items:center;display:flex;gap:8px}.btn{background:#ffffff08;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;color:#e6edf3;color:var(--text);cursor:pointer;font-size:14px;padding:8px 10px}.btn:hover{background:#ffffff0d;border-color:#ffffff29}.btn-primary{background:#7c3aed33;border-color:#7c3aed80}.btn-primary:hover{background:#7c3aed47}.btn-danger{background:#ef444429;border-color:#ef444473}.btn-danger:hover{background:#ef444438}.pylab-body{display:grid;grid-template-columns:300px 1fr;min-height:0}.pylab-sidebar{background:#ffffff05;border-right:1px solid #ffffff14;border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.pylab-sidebar-header{align-items:stretch;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px;padding:12px 12px 10px}.pylab-search{background:#ffffff08;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;color:#e6edf3;color:var(--text);padding:9px 10px;width:100%}.pylab-filters{align-items:center;display:flex;gap:8px}.pylab-select{background:#ffffff08;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;color:#e6edf3;color:var(--text);flex:1 1;padding:9px 10px}.pylab-tagbar{display:flex;flex-wrap:wrap;gap:6px}.pylab-tagchip{background:#ffffff05;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:999px;color:#9aa4b2;color:var(--muted);cursor:pointer;font-size:12px;padding:4px 8px}.pylab-tagchip:hover{background:#ffffff0d;border-color:#ffffff29}.pylab-tagchip.active{background:#22c55e14;border-color:#22c55e80;color:#22c55ef2}.pylab-list{overflow:auto;padding:8px}.pylab-item-row{align-items:stretch;gap:8px;margin-bottom:15px}.pylab-item-open{align-items:center;background:#0000;border:1px solid #0000;border-radius:12px;color:#e6edf3;color:var(--text);cursor:pointer;display:flex;flex:1 1;gap:10px;justify-content:space-between;padding:10px;text-align:left;width:100%}.pylab-item-row:hover .pylab-item-open{background:#ffffff08;border-color:#ffffff0f}.pylab-item-active .pylab-item-open{background:#7c3aed1f;border-color:#7c3aed59}.pylab-item-title{font-size:14px;font-weight:600}.pylab-item-sub{color:#9aa4b2;color:var(--muted);font-size:12px;margin-top:2px}.pylab-item-badge{border:1px solid #22c55e59;border-radius:999px;color:#22c55ef2;display:inline-block;font-size:11px;margin-right:8px;padding:2px 7px}.pylab-item-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.pylab-item-tag{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:999px;color:#9aa4b2;color:var(--muted);font-size:11px;padding:2px 7px}.pylab-item-actions{align-items:center;display:flex;gap:6px;margin-top:5px;opacity:0;pointer-events:none}.pylab-item-row:focus-within .pylab-item-actions,.pylab-item-row:hover .pylab-item-actions{opacity:1;pointer-events:auto}.btn-small{border-radius:10px;font-size:12px;padding:6px 8px}.pylab-main{min-height:0;overflow:auto}.modal-overlay{background:#0000008c;display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:20}.modal-card{background:#0f1623fa;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:16px;max-width:520px;padding:14px;width:100%}.modal-title{font-size:16px;font-weight:800;margin:2px 0 12px}.modal-body{grid-gap:10px;display:grid;gap:10px}.modal-row{grid-gap:8px;display:grid;gap:8px}.modal-label{color:#9aa4b2;color:var(--muted);font-size:12px}.modal-input{background:#ffffff08;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;color:#e6edf3;color:var(--text);padding:10px}.modal-input:focus{background:#ffffff05;border-color:#7c3aed8c;outline:none}.modal-help{color:#9aa4b2;color:var(--muted);font-size:12px}.modal-actions{align-items:center;display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.nb-wrap{margin:0 auto;max-width:980px;padding:18px 20px 40px}.nb-banner{align-items:center;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:14px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:12px;padding:10px 12px}.nb-banner-text{color:#e6edf3;color:var(--text);font-size:13px}.nb-banner-actions{align-items:center;display:flex;gap:8px;justify-content:flex-end}.nb-banner-offline{background:#f59e0b1f;border-color:#f59e0b80}.nb-banner-ws{background:#ef44441a;border-color:#ef44448c}.nb-header{align-items:center;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:14px;padding-bottom:12px}.nb-title{background:#0000;border:1px solid #0000;border-radius:10px;color:#e6edf3;color:var(--text);font-size:18px;font-weight:700;padding:6px 8px;width:100%}.nb-title:focus{background:#ffffff05;border-color:#7c3aed8c;outline:none}.nb-status{color:#9aa4b2;color:var(--muted);font-size:12px;white-space:nowrap}.nb-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.cells{display:flex;flex-direction:column;gap:12px}.cell{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:14px;overflow:hidden}.cell,.cell-toolbar{background:#ffffff05}.cell-toolbar{align-items:center;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex;gap:10px;justify-content:space-between;padding:8px 10px}.cell-kind{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:999px;color:#9aa4b2;color:var(--muted);font-size:12px;padding:2px 8px}.cell-actions{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.btn:disabled{cursor:not-allowed;opacity:.45}.cell-editor{width:100%}.cell-editor .cm-editor{background:#0000!important}.cell-editor .cm-scroller{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-family:var(--mono);font-size:13px;line-height:1.4;min-height:120px}.cell-editor-markdown .cm-scroller{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:14px}.cell-editor .cm-content{padding:12px}.cell-editor .cm-gutters{background:#0000!important;border-right:1px solid #ffffff14;border-right:1px solid var(--border)}.cell-editor .cm-lineNumbers{color:#9aa4b2;color:var(--muted)}.cell-editor .cm-editor.cm-focused{outline:1px solid #7c3aed59;outline-offset:-1px}.cell-preview{padding:12px}.cell-collapsed{align-items:baseline;color:#9aa4b2;color:var(--muted);cursor:pointer;display:flex;gap:12px;justify-content:space-between;padding:12px}.cell-collapsed:hover{background:#ffffff05}.cell-collapsed-snippet{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-family:var(--mono);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-collapsed-meta{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:999px;font-size:12px;padding:2px 8px;white-space:nowrap}.md-preview{color:#e6edf3;color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:14px;line-height:1.6}.md-preview a{color:#22c55ef2}.md-preview code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-family:var(--mono);font-size:13px}.md-preview pre{background:#0003;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;overflow:auto;padding:10px 12px}.md-preview blockquote{background:#ffffff05;border-left:3px solid #7c3aed8c;border-radius:8px;color:#9aa4b2;color:var(--muted);margin:10px 0;padding:6px 10px}.md-preview img{height:auto;max-width:100%}.md-preview .pylab-mermaid{overflow-x:auto}.md-preview .pylab-mermaid svg{height:auto;max-width:100%}.md-preview-error{color:#fecaca}.pylab-mermaid-error{color:#fecaca;white-space:pre-wrap}.cell-textarea{background:#0000;border:0;color:#e6edf3;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-family:var(--mono);font-size:13px;line-height:1.4;min-height:120px;outline:none;padding:12px;resize:vertical;width:100%}.cell-markdown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:14px}.cell-output{background:#0000002e;border-top:1px solid #ffffff14;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px;padding:10px 12px}.out-item{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-family:var(--mono);font-size:12.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.out-item.out-rich{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:14px;line-height:1.6;white-space:normal}.out-item.out-rich code,.out-item.out-rich pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-family:var(--mono)}.out-image-wrap{overflow-x:auto}.out-image{background:#0000001f;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;display:block;height:auto;max-width:100%}.out-stderr{color:#fca5a5}.out-error{color:#fecaca}.empty-state{color:#9aa4b2;color:var(--muted);padding:42px 0;text-align:center}.auth-wrap{display:grid;min-height:100vh;padding:20px;place-items:center}.auth-card{background:#ffffff05;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:16px;max-width:420px;padding:16px;width:100%}.auth-title{font-size:18px;font-weight:800;margin:4px 0 12px}.auth-row{grid-gap:8px;display:grid;gap:8px;margin-bottom:10px}.auth-label{color:#9aa4b2;color:var(--muted);font-size:12px}.auth-input{background:#ffffff08;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;color:#e6edf3;color:var(--text);padding:10px}.auth-input:focus{border-color:#7c3aed8c;outline:none}.auth-footer{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:10px}.link{background:#0000;border:0;color:#e7e1ffe6;cursor:pointer;font-size:13px;padding:0;text-decoration:underline}.toast{font-size:13px;margin-top:10px}.pill,.toast{color:#9aa4b2;color:var(--muted)}.pill{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:999px;font-size:12px;padding:4px 10px}.pill-ok{border-color:#22c55e80;color:#22c55ef2}.pill-warn{border-color:#f59e0b80;color:#f59e0bf2}.pill-bad{border-color:#ef44448c;color:#ef4444f2}
/*# sourceMappingURL=main.18c619d8.css.map*/