.notebook-canvas{position:absolute;inset:0;overflow:hidden;background:var(--canvas-bg);touch-action:none}.notebook-canvas__background,.notebook-canvas__pane{position:absolute;inset:0}.notebook-canvas__background{pointer-events:none}.notebook-canvas__pane{cursor:default}.canvas-wrap[data-tool=pen] .notebook-canvas__pane{cursor:crosshair}.canvas-wrap[data-tool=pan] .notebook-canvas__pane{cursor:grab}.canvas-wrap[data-tool=text] .notebook-canvas__pane{cursor:text}.notebook-canvas__viewport{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0;pointer-events:none;will-change:transform}.notebook-canvas__edges{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}.notebook-canvas__node{position:absolute;pointer-events:auto;outline:none}.notebook-canvas__node:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}.notebook-canvas__node-drag-handle{cursor:grab}.notebook-canvas__node-drag-handle:active{cursor:grabbing}.notebook-canvas__selection{position:absolute;pointer-events:none;background:#6366f10f;border:1.5px solid rgba(99,102,241,.6);border-radius:4px}.notebook-canvas__handle{position:absolute;z-index:5;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:transparent;opacity:0;transform:translate(-50%,-50%) scale(.7);transition:opacity .12s,transform .12s;cursor:crosshair;touch-action:none}.notebook-canvas__handle:after{content:"";position:absolute;inset:5px;border:2px solid var(--canvas-bg);border-radius:50%;background:var(--accent)}.notebook-canvas__node:hover .notebook-canvas__handle,.notebook-canvas__node.selected .notebook-canvas__handle,.notebook-canvas__handle:focus-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.notebook-canvas__handle--top{left:50%;top:0}.notebook-canvas__handle--bottom{left:50%;top:100%}.notebook-canvas__handle--left{left:0;top:50%}.notebook-canvas__handle--right{left:100%;top:50%}.notebook-canvas__handle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.notebook-canvas__minimap{display:block;width:180px;height:120px;overflow:hidden;cursor:crosshair;touch-action:none}@media(prefers-reduced-motion:reduce){.notebook-canvas__handle{transition:none}}@media(pointer:coarse){.notebook-canvas__handle{width:44px;height:44px}.notebook-canvas__handle:after{inset:16px}}:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--accent: #6366f1;--accent-hover: #818cf8;--surface: rgba(20, 22, 30, .88);--surface-solid: #14161e;--surface-border: rgba(255, 255, 255, .07);--surface-hover: rgba(255, 255, 255, .06);--text: #f1f5f9;--muted: #64748b;--danger: #f87171;--success: #34d399;--warn: #fbbf24;--canvas-bg: #0f1117;--ctrl-bg: #0b0c12}:root[data-theme=light]{--surface: rgba(245, 247, 250, .94);--surface-solid: #f1f5f9;--surface-border: rgba(0, 0, 0, .08);--surface-hover: rgba(0, 0, 0, .04);--text: #1e293b;--muted: #94a3b8;--canvas-bg: #ffffff;--ctrl-bg: #eef2f6}*{box-sizing:border-box}body{margin:0;overflow:hidden;width:100vw;height:100vh;background:var(--canvas-bg);color:var(--text)}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed}.app-shell{position:relative;width:100vw;height:100vh;overflow:hidden}.canvas-wrap{position:absolute;inset:0}.toolbar-float{position:absolute;left:50%;bottom:24px;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:1px;padding:5px 6px;background:var(--surface);border:1px solid var(--surface-border);border-radius:13px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 40px #0000008c,0 1px #ffffff0a inset}.divider{width:1px;height:20px;background:var(--surface-border);margin:0 5px;flex-shrink:0}.tool-btn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;background:transparent;color:var(--muted);transition:background .1s,color .1s;padding:0;flex-shrink:0}.tool-btn:hover{background:var(--surface-hover);color:var(--text)}.tool-btn.active{background:var(--accent);color:#fff}.tool-btn svg{width:17px;height:17px}.tool-btn:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%);white-space:nowrap;font-size:11px;font-weight:500;letter-spacing:.01em;color:var(--text);background:var(--ctrl-bg);border:1px solid var(--surface-border);border-radius:6px;padding:4px 8px;pointer-events:none;opacity:0;transition:opacity .1s;z-index:100}.tool-btn:hover:after{opacity:1}.topbar-left{position:absolute;top:14px;left:14px;z-index:20;display:flex;align-items:center;gap:8px}.brand-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--accent);border:none;color:#fff;font-size:15px;font-weight:700;padding:0;flex-shrink:0;transition:background .1s}.brand-btn:hover{background:var(--accent-hover)}.notebook-title{font-size:13px;font-weight:500;color:var(--text);opacity:.65;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:opacity .1s;padding:2px 5px;border-radius:4px;border:1px solid transparent}.notebook-title:hover{opacity:1;background:var(--surface-hover)}.notebook-title-input{font-size:13px;font-weight:500;color:var(--text);background:var(--surface);border:1px solid var(--accent);border-radius:4px;padding:2px 5px;max-width:180px;outline:none;font-family:inherit}.topbar-right{position:absolute;top:14px;right:14px;z-index:20;display:flex;align-items:center;gap:6px}.kernel-mode-select{height:34px;max-width:150px;padding:0 8px;border:1px solid var(--surface-border);border-radius:8px;background:var(--ctrl-bg);color:var(--text);font:inherit;font-size:12px}.notebook-auth-gate{min-height:100vh;display:grid;align-content:center;justify-items:center;gap:14px;padding:24px;background:var(--bg, #10131c);color:var(--text, #f1f5f9);text-align:center}.notebook-auth-gate button,.notebook-auth-gate a{border:1px solid var(--surface-border, #444);border-radius:8px;padding:9px 14px;background:var(--accent, #6366f1);color:#fff}.native-sign-out{position:fixed;z-index:30;bottom:14px;left:14px;border:1px solid var(--surface-border);border-radius:8px;padding:7px 10px;background:var(--ctrl-bg);color:var(--text)}@media(max-width:720px){.topbar-right{top:58px;right:10px}.topbar-right .icon-btn{padding-inline:8px;font-size:11px}.kernel-mode-select{max-width:120px}}.icon-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:5px;height:34px;padding:0 11px;border:1px solid var(--surface-border);border-radius:8px;background:var(--surface);color:var(--muted);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:12px;font-weight:500;white-space:nowrap;transition:background .1s,color .1s,border-color .1s}.icon-btn svg{width:14px;height:14px;flex-shrink:0}.icon-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text);border-color:#ffffff1f}.icon-btn.primary{background:var(--accent);border-color:transparent;color:#fff}.icon-btn.primary:hover:not(:disabled){background:var(--accent-hover)}.icon-btn:after{content:attr(data-tip);position:absolute;top:calc(100% + 8px);right:0;white-space:nowrap;font-size:11px;font-weight:500;color:var(--text);background:var(--ctrl-bg);border:1px solid var(--surface-border);border-radius:6px;padding:4px 8px;pointer-events:none;opacity:0;transition:opacity .1s;z-index:100}.icon-btn:hover:not(:disabled):after{opacity:1}.dot{width:7px;height:7px;border-radius:50%;background:#334155;flex-shrink:0}.dot.connected{background:var(--success)}.dot.connecting{background:var(--warn)}.canvas-controls{position:absolute;right:14px;bottom:24px;z-index:20;display:flex;flex-direction:column;gap:1px;padding:4px;background:var(--surface);border:1px solid var(--surface-border);border-radius:11px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 4px 24px #0006}.ctrl-btn{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:7px;background:transparent;color:var(--muted);transition:background .1s,color .1s;padding:0}.ctrl-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.ctrl-btn svg{width:16px;height:16px}.ctrl-btn:after{content:attr(data-tip);position:absolute;top:50%;right:calc(100% + 10px);transform:translateY(-50%);white-space:nowrap;font-size:11px;font-weight:500;color:var(--text);background:var(--ctrl-bg);border:1px solid var(--surface-border);border-radius:6px;padding:4px 8px;pointer-events:none;opacity:0;transition:opacity .1s;z-index:100}.ctrl-btn:hover:not(:disabled):after{opacity:1}.ctrl-divider{width:20px;height:1px;background:var(--surface-border);margin:2px auto}.minimap-wrap{position:absolute;right:62px;bottom:24px;z-index:20}.minimap-wrap .notebook-canvas__minimap{background:#0f1117e6!important;border:1px solid var(--surface-border)!important;border-radius:10px!important;overflow:hidden}.notebook-panel{position:absolute;top:56px;left:14px;z-index:30;width:248px;background:var(--surface);border:1px solid var(--surface-border);border-radius:12px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 16px 48px #0009;overflow:hidden;animation:panel-in .13s ease}@keyframes panel-in{0%{opacity:0;transform:translateY(-5px) scale(.985)}to{opacity:1;transform:none}}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border-bottom:1px solid var(--surface-border)}.panel-header button{background:transparent;border:1px solid var(--surface-border);color:var(--muted);border-radius:5px;padding:2px 7px;font-size:11px}.panel-header button:hover{color:var(--text);border-color:#ffffff2e}.notebook-list{display:flex;flex-direction:column;max-height:280px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.nb-row{display:flex;align-items:stretch;border-radius:0;transition:background .1s}.nb-row:hover{background:var(--surface-hover)}.nb-row.active{background:#6366f11f}.nb-item{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0;padding:8px 12px;border:none;background:transparent;text-align:left;color:var(--text);font-size:12.5px;transition:background .1s;cursor:pointer}.nb-row.active .nb-item{background:transparent}.nb-item strong{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nb-item span{font-size:10.5px;color:var(--muted)}.nb-delete-btn{display:flex;align-items:center;justify-content:center;width:32px;flex-shrink:0;border:none;background:transparent;color:var(--muted);cursor:pointer;padding:0;transition:color .1s,background .1s;opacity:0;border-radius:0}.nb-row:hover .nb-delete-btn,.nb-row.active .nb-delete-btn{opacity:1}.nb-delete-btn:hover{color:var(--danger);background:#f8717114}.nb-delete-btn svg{width:14px;height:14px}.nb-delete-btn:after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);right:0;white-space:nowrap;font-size:10.5px;font-weight:500;color:var(--text);background:var(--ctrl-bg);border:1px solid var(--surface-border);border-radius:5px;padding:3px 7px;pointer-events:none;opacity:0;transition:opacity .1s;z-index:31}.nb-delete-btn{position:relative}.nb-delete-btn:hover:after{opacity:1}.selection-panel{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:max(24px,env(safe-area-inset-left));z-index:20;width:210px;background:var(--surface);border:1px solid var(--surface-border);border-radius:12px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 32px #00000080;padding:10px;display:flex;flex-direction:column;gap:7px;animation:panel-in .13s ease}@media(max-width:960px){.selection-panel{bottom:max(80px,env(safe-area-inset-bottom))}}.selection-panel textarea{width:100%;background:#ffffff0a;border:1px solid var(--surface-border);border-radius:7px;color:var(--text);padding:7px 9px;font-size:12.5px;resize:vertical;min-height:72px;outline:none;transition:border-color .1s}.selection-panel textarea:focus{border-color:var(--accent)}.sel-actions{display:flex;gap:5px}.sel-actions .icon-btn{flex:1;justify-content:center;padding:0 6px;font-size:11px}.selection-panel .icon-btn:after{left:0;right:auto}.btn-danger{background:transparent;border:1px solid rgba(248,113,113,.25);color:var(--danger);border-radius:7px;padding:5px 8px;font-size:11.5px;transition:background .1s,border-color .1s;flex:1}.btn-danger:hover{background:#f8717114;border-color:var(--danger)}.pen-toolbar{position:absolute;left:50%;bottom:80px;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface);border:1px solid var(--surface-border);border-radius:11px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 32px #00000073;animation:panel-in .13s ease}.color-swatches{display:flex;align-items:center;gap:5px}.color-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:border-color .1s,transform .1s;flex-shrink:0}.color-swatch:hover{transform:scale(1.15)}.color-swatch.active{border-color:var(--text);transform:scale(1.15)}.color-swatch.picker{border:1.5px solid var(--surface-border);display:flex;align-items:center;justify-content:center;background:transparent;position:relative;overflow:hidden}.color-swatch.picker input[type=color]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;padding:0;border:none}.color-swatch.picker svg{width:12px;height:12px;color:var(--muted);pointer-events:none}.pen-size-control{display:flex;align-items:center;gap:6px}.pen-size-control input[type=range]{width:64px;height:3px;-webkit-appearance:none;appearance:none;background:var(--surface-border);border-radius:2px;outline:none;cursor:pointer}.pen-size-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.pen-size-control input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.pen-size-dot{border-radius:50%;background:var(--text);flex-shrink:0}.pen-opacity-control{display:flex;align-items:center;gap:6px}.pen-opacity-control input[type=range]{width:56px;height:3px;-webkit-appearance:none;appearance:none;background:var(--surface-border);border-radius:2px;outline:none;cursor:pointer}.pen-opacity-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.pen-opacity-control input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.pen-opacity-label{font-size:10.5px;font-weight:500;color:var(--muted);min-width:28px;text-align:right}.peer-cursor{position:absolute;pointer-events:none;z-index:50;transform:translate(-2px,-2px);transition:left .05s linear,top .05s linear}.peer-cursor__label{display:inline-block;margin-top:2px;margin-left:14px;padding:2px 6px;border-radius:999px;font-size:10.5px;font-weight:600;color:#fff;white-space:nowrap;line-height:1.7}.text-node{padding:7px 11px;border-radius:8px;border:1.5px solid transparent;background:#161923eb;line-height:1.5;color:#dde3ee;box-shadow:0 2px 12px #00000059}.text-node--selected{border-color:var(--accent);box-shadow:0 0 0 3px #6366f12e,0 2px 12px #00000059}.text-node__body{pointer-events:none;white-space:pre-wrap;word-break:break-word}.image-node{border-radius:8px;overflow:hidden;background:#161923eb;box-shadow:0 2px 12px #00000059}.image-node--selected{border-color:var(--accent);box-shadow:0 0 0 3px #6366f12e,0 2px 12px #00000059;outline:2px solid var(--accent);outline-offset:2px;border-radius:10px}.stroke-node{overflow:visible}.stroke-node--selected{filter:drop-shadow(0 0 6px rgba(99,102,241,.85))}.sel-text-format{display:flex;align-items:center;gap:6px;padding:2px 0}.sel-font-size{display:flex;align-items:center;gap:3px;flex:1}.sel-font-size__label{font-size:11px;font-weight:500;color:var(--muted);min-width:28px;text-align:center}.sel-text-align{display:flex;align-items:center;gap:2px}.icon-btn--sm{width:28px!important;height:26px!important;padding:0!important}.icon-btn--sm svg{width:13px!important;height:13px!important}.icon-btn--sm.active{color:var(--accent)!important;background:#6366f11f!important}.embed-node{display:flex;flex-direction:column;border-radius:8px;overflow:hidden;background:#0d1117;border:1.5px solid rgba(255,255,255,.08);box-shadow:0 2px 12px #00000059;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.embed-node--selected{border-color:var(--accent);box-shadow:0 0 0 3px #6366f12e,0 2px 12px #00000059}.embed-node:hover .nb-conn-handle{opacity:1;transform:scale(1)}.embed-node__header{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.07);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;gap:6px}.embed-node__title{font-size:11px;font-weight:600;color:#8b949e;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.embed-node__header-actions{display:flex;gap:2px;flex-shrink:0}.embed-node__action-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;background:transparent;border:none;color:#8b949e;cursor:pointer;text-decoration:none;transition:background .1s,color .1s}.embed-node__action-btn:hover{background:#ffffff14;color:#c9d1d9}.embed-node__action-btn svg{width:12px;height:12px}.embed-node__action-btn--danger:hover{background:#f8514926;color:#f85149}.embed-node__frame-wrap{flex:1;overflow:hidden;position:relative}.embed-node__iframe{display:block;width:100%;height:100%;border:none;background:#fff}.embed-node__url-form{flex:1;display:flex;flex-direction:column;gap:8px;padding:16px;overflow:auto}.embed-node__url-hint{font-size:11px;color:#8b949e;margin:0;line-height:1.5}.embed-node__url-input{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#e6edf3;font-size:13px;padding:7px 10px;outline:none;box-sizing:border-box;font-family:inherit}.embed-node__url-input:focus{border-color:#6366f199;background:#6366f10f}.embed-node__title-input{margin-top:-2px}.embed-node__url-actions{display:flex;gap:6px}.embed-node__submit-btn{padding:6px 14px;border-radius:6px;background:#6366f1;border:none;color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}.embed-node__submit-btn:hover{background:#5254cc}.embed-node__cancel-btn{padding:6px 12px;border-radius:6px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#8b949e;font-size:13px;cursor:pointer;font-family:inherit}.embed-node__cancel-btn:hover{background:#ffffff1a;color:#c9d1d9}.embed-node__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#484f58;font-size:13px;background:transparent;border:none;cursor:pointer;width:100%}.embed-node__empty:hover{color:#8b949e}.embed-node__empty svg{opacity:.5}.embed-node__empty:hover svg{opacity:.8}.embed-node__error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;color:#8b949e;font-size:12px;text-align:center}.embed-node__error a{color:#79c0ff}.shape-node{position:relative;cursor:default;-webkit-user-select:none;user-select:none}.shape-node--selected .shape-node__svg path{outline:none;filter:drop-shadow(0 0 4px rgba(99,102,241,.7))}.shape-node:hover .nb-conn-handle{opacity:1;transform:scale(1)}.shape-node__svg{display:block;width:100%;height:100%;position:absolute;inset:0;pointer-events:none;overflow:visible}.shape-node__label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;font-size:13px;font-weight:600;pointer-events:none;padding:6px;text-shadow:0 1px 3px rgba(0,0,0,.6);word-break:break-word;overflow:hidden}.shape-node__label-input{position:absolute;inset:20%;background:#00000080;border:1px solid rgba(255,255,255,.3);border-radius:4px;color:#fff;font-size:13px;text-align:center;padding:4px 8px;outline:none}.shape-node__panel-btn{position:absolute;top:-24px;right:0;width:22px;height:22px;border-radius:4px;background:#1e1e28e6;border:1px solid rgba(255,255,255,.15);color:#c9d1d9;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;z-index:10}.shape-node__panel-btn:hover{background:#6366f14d}.shape-node__panel{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:#161b22;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 12px;box-shadow:0 4px 24px #00000080;z-index:100;min-width:200px;display:flex;flex-direction:column;gap:8px}.shape-node__panel-row{display:flex;align-items:center;gap:8px}.shape-node__panel-label{font-size:11px;color:#8b949e;width:44px;flex-shrink:0}.shape-node__panel-value{font-size:11px;color:#8b949e;width:32px;text-align:right}.shape-node__shape-btn{width:28px;height:28px;border-radius:4px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#c9d1d9;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s}.shape-node__shape-btn:hover{background:#ffffff1f}.shape-node__shape-btn.active{background:#6366f14d;border-color:#6366f199;color:#a5b4fc}.shape-node__color-input{width:32px;height:22px;border:none;border-radius:4px;padding:0;cursor:pointer;background:none}.shape-node__range{flex:1;accent-color:#6366f1;height:4px}.shape-node__panel-actions{gap:6px;flex-wrap:wrap;margin-top:2px}.shape-node__action-btn{padding:3px 8px;border-radius:4px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#8b949e;font-size:10px;font-weight:600;cursor:pointer;transition:background .1s,color .1s}.shape-node__action-btn:hover{background:#ffffff1f;color:#c9d1d9}.shape-node__action-btn--danger{color:#f85149}.shape-node__action-btn--danger:hover{background:#f8514933}.table-node{border-radius:8px;overflow:visible;background:#0d1117;border:1.5px solid rgba(255,255,255,.08);box-shadow:0 2px 12px #00000059;display:flex;flex-direction:column;min-width:200px;font-size:13px;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.table-node--selected{border-color:var(--accent);box-shadow:0 0 0 3px #6366f12e,0 2px 12px #00000059}.table-node:hover .nb-conn-handle{opacity:1;transform:scale(1)}.table-node__header{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.07);border-radius:6px 6px 0 0;cursor:grab;-webkit-user-select:none;user-select:none}.table-node__title{font-size:11px;font-weight:600;color:#8b949e;letter-spacing:.05em;text-transform:uppercase}.table-node__header-actions{display:flex;gap:4px}.table-node__action-btn{padding:2px 6px;border-radius:4px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#8b949e;font-size:10px;font-weight:600;cursor:pointer;transition:background .1s,color .1s}.table-node__action-btn:hover{background:#ffffff1f;color:#c9d1d9}.table-node__action-btn.active{background:#6366f133;color:#a5b4fc;border-color:#6366f166}.table-node__scroll{overflow:auto;max-height:400px;border-radius:0 0 6px 6px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.table-node__table{border-collapse:collapse;table-layout:fixed}.table-node__cell{padding:0;border:1px solid rgba(255,255,255,.07);min-width:80px;position:relative;color:#c9d1d9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;font-size:13px}.table-node__cell--header{background:#ffffff0d;font-weight:600;color:#e6edf3}.table-node__cell--del-row,.table-node__cell--del-col{width:20px;min-width:20px;background:transparent;border:none;padding:0;text-align:center;vertical-align:middle}.table-node__cell>*:not(input){display:block;padding:6px 8px;min-height:28px;line-height:1.4}.table-node__placeholder{color:transparent;min-height:28px;display:block}.table-node__cell-input{display:block;width:100%;padding:6px 8px;min-height:28px;background:#6366f11a;border:none;outline:1px solid rgba(99,102,241,.6);color:#e6edf3;font-size:13px;font-family:inherit;box-sizing:border-box}.table-node__del-btn{width:16px;height:16px;border-radius:50%;background:#f8514926;border:none;color:#f85149;cursor:pointer;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .1s}.table-node__row:hover .table-node__del-btn,.table-node__cell--del-col:hover .table-node__del-btn,thead:hover .table-node__del-btn{opacity:1}.table-node__del-btn:hover{background:#f851494d}.code-block-node{border-radius:8px;overflow:visible;background:#0d1117;border:1.5px solid rgba(255,255,255,.07);box-shadow:0 2px 12px #00000059;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;display:flex;flex-direction:column}.code-block-node--selected{border-color:var(--accent);box-shadow:0 0 0 3px #6366f12e,0 2px 12px #00000059}.code-block__header{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.06);border-radius:8px 8px 0 0;position:relative;z-index:2}.code-block__lang-selector{position:relative}.code-block__lang-btn{display:flex;align-items:center;gap:4px;padding:2px 8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:5px;color:#8b949e;font-size:11px;font-family:inherit;cursor:pointer;transition:background .1s}.code-block__lang-btn:hover{background:#ffffff1a;color:#c9d1d9}.code-block__lang-btn:after{display:none}.code-block__lang-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:100;min-width:140px;max-height:200px;overflow-y:auto;background:#161b22;border:1px solid rgba(255,255,255,.1);border-radius:6px;box-shadow:0 8px 24px #00000080;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.code-block__lang-option{display:block;width:100%;padding:5px 10px;border:none;background:transparent;color:#c9d1d9;font-size:11.5px;text-align:left;cursor:pointer;font-family:inherit;transition:background .1s}.code-block__lang-option:hover{background:#6366f126}.code-block__lang-option.active{color:var(--accent);background:#6366f11a}.code-block__run-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:#34d39926;color:#34d399;cursor:pointer;transition:color .1s,background .1s;position:relative}.code-block__run-btn:hover{background:#34d39940;color:#6ee7b7}.code-block__copy-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:#484f58;cursor:pointer;transition:color .1s,background .1s;position:relative}.code-block__copy-btn:hover{color:#8b949e;background:#ffffff0d}.code-block__copy-btn:after{content:attr(data-tip);position:absolute;top:calc(100% + 4px);right:0;white-space:nowrap;font-size:10.5px;color:#c9d1d9;background:#161b22;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:2px 6px;pointer-events:none;opacity:0;transition:opacity .1s;z-index:100;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.code-block__copy-btn:hover:after{opacity:1}.code-block__editor{position:relative;overflow:hidden;flex:0 0 auto;min-height:84px}.code-block__textarea{position:absolute;inset:0;width:100%;height:100%;padding:10px 14px;margin:0;border:none;background:transparent;color:transparent;caret-color:#c9d1d9;resize:none;outline:none;overflow:auto;white-space:pre;word-wrap:normal;tab-size:4;-webkit-text-fill-color:transparent;font-family:inherit;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent;z-index:2}.code-block__textarea::placeholder{color:#484f58;-webkit-text-fill-color:#484f58}.code-block__textarea:read-only{cursor:default}.code-block__highlight{position:absolute;inset:0;padding:10px 14px;margin:0;pointer-events:none;overflow:auto;white-space:pre;word-wrap:normal;tab-size:4;font-family:inherit;z-index:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.code-block__highlight code{font-family:inherit;font-size:inherit;line-height:inherit;color:#c9d1d9}.hl-comment{color:#8b949e;font-style:italic}.hl-string{color:#a5d6ff}.hl-keyword{color:#ff7b72}.hl-type{color:#ffa657}.hl-builtin{color:#d2a8ff}.hl-number{color:#79c0ff}.hl-operator{color:#ff7b72}.hl-tag{color:#7ee787}.hl-attr{color:#79c0ff}.code-block__run-btn--running{opacity:.6;cursor:not-allowed}.code-block__clear-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:#484f58;cursor:pointer;transition:color .1s,background .1s}.code-block__clear-btn:hover{color:#8b949e;background:#ffffff0d}.code-block__widgets{border-top:1px solid rgba(255,255,255,.07);background:#0d1117;padding:10px 14px 8px;display:flex;flex-direction:column;gap:10px}.nb-widget{display:flex;flex-direction:column;gap:4px;cursor:default;-webkit-user-select:none;user-select:none}.nb-widget--checkbox{flex-direction:row;align-items:center;gap:8px}.nb-widget__label{font-size:11px;color:#8b949e;font-weight:500;letter-spacing:.02em}.nb-widget__slider-row{display:flex;align-items:center;gap:10px}.nb-widget__slider-row input[type=range]{flex:1;height:4px;accent-color:#58a6ff;cursor:pointer}.nb-widget__slider-row input[type=range]:disabled{opacity:.4;cursor:not-allowed}.nb-widget__value{font-size:12px;color:#58a6ff;font-family:Fira Mono,Cascadia Code,monospace;min-width:36px;text-align:right}.nb-widget--checkbox input[type=checkbox]{width:14px;height:14px;accent-color:#58a6ff;cursor:pointer;flex-shrink:0}.nb-widget--checkbox input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}.nb-widget--dropdown select,.nb-widget--text input[type=text]{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:5px;color:#c9d1d9;font-size:12px;padding:4px 8px;outline:none;font-family:inherit;transition:border-color .15s}.nb-widget--dropdown select:focus,.nb-widget--text input[type=text]:focus{border-color:#58a6ff}.nb-widget--dropdown select:disabled,.nb-widget--text input[type=text]:disabled{opacity:.4;cursor:not-allowed}.nb-widget--dropdown select option{background:#161b22;color:#c9d1d9}.code-block__output{border-top:1px solid rgba(255,255,255,.07);background:#0d1117;border-radius:0 0 8px 8px;padding:8px 14px 10px;min-height:36px;max-height:220px;overflow:auto;flex:0 0 auto}.code-block__output--error{background:#f851490f;border-top-color:#f8514940}.code-block__output-label{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#484f58;margin-bottom:5px;-webkit-user-select:none;user-select:none}.code-block__output--error .code-block__output-label{color:#f85149}.code-block__output-pre{margin:0;padding:0;font-family:Fira Mono,Cascadia Code,Menlo,monospace;font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;color:#c9d1d9;max-height:240px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.code-block__output-pre--error{color:#f85149}.code-block__output-empty{font-size:12px;color:#484f58;font-style:italic}.code-block__output-html{color:#c9d1d9;font-size:13px;line-height:1.65;max-height:320px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.code-block__output-html h1,.code-block__output-html h2,.code-block__output-html h3{font-weight:600;margin:.6em 0 .3em;color:#e6edf3}.code-block__output-html h1{font-size:1.3em}.code-block__output-html h2{font-size:1.15em}.code-block__output-html h3{font-size:1em}.code-block__output-html p{margin:.4em 0}.code-block__output-html ul,.code-block__output-html ol{padding-left:1.4em;margin:.3em 0}.code-block__output-html code{background:#ffffff12;border-radius:3px;padding:.1em .35em;font-size:.9em;font-family:Fira Mono,Cascadia Code,monospace;color:#a5d6ff}.code-block__output-html pre{background:#ffffff0d;border-radius:5px;padding:8px 12px;overflow-x:auto;margin:.4em 0}.code-block__output-html pre code{background:none;padding:0;color:#c9d1d9}.code-block__output-html a{color:#79c0ff}.code-block__output-html blockquote{border-left:3px solid rgba(255,255,255,.15);margin:.4em 0;padding-left:.8em;color:#8b949e}.code-block__output-html hr{border:none;border-top:1px solid rgba(255,255,255,.1);margin:.6em 0}.code-block__output-plot{display:block;max-width:100%;border-radius:6px;margin:6px 0;background:#fff}.code-block__output-latex{padding:8px 12px;overflow-x:auto;color:#c9d1d9}.code-block__output-latex-loading{display:block;padding:6px 12px;font-size:12px;color:#484f58}.code-block__output-df-wrap{overflow-x:auto;max-height:280px;overflow-y:auto;margin:4px 0;border-radius:4px;border:1px solid rgba(255,255,255,.07)}.code-block__output-df{border-collapse:collapse;font-size:11.5px;width:100%;color:#c9d1d9}.code-block__output-df th,.code-block__output-df td{padding:4px 10px;border:1px solid rgba(255,255,255,.07);white-space:nowrap;text-align:right}.code-block__output-df th{background:#ffffff0d;font-weight:600;text-align:center;color:#e6edf3;position:sticky;top:0}.code-block__output-df tr:hover td{background:#ffffff08}
