:root{--bg:#0f1419;--panel:#161c24;--panel2:#1b232d;--line:#273140;--text:#d7dee8;--dim:#8794a6;--accent:#29b5e8;--accent2:#ff6b35;--ok:#3ddc97;--err:#ff6b6b;--kw:#c792ea;--str:#a5e075;--num:#f78c6c;--cmt:#5c6b7f;--fn:#82aaff;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}:root[data-theme=light]{--bg:#f5f7fa;--panel:#fff;--panel2:#f0f3f7;--line:#dde3ea;--text:#1b2430;--dim:#667487;--accent:#0a7fb5;--accent2:#d9480f;--ok:#12805c;--err:#c92a2a;--kw:#7b3fb0;--str:#2f7d16;--num:#c2410c;--cmt:#8895a7;--fn:#2b59c3}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.45 var(--sans);flex-direction:column;display:flex;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--accent)}.top{background:var(--panel);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:14px;height:44px;padding:0 14px;display:flex}.logo{letter-spacing:.2px;align-items:center;gap:8px;font-weight:700;display:flex}.logo i{background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:5px;width:18px;height:18px;display:inline-block}.crumbs{color:var(--dim);align-items:center;gap:6px;display:flex}.crumbs b{color:var(--text);font-weight:500}.spacer{flex:1}.pill{border:1px solid var(--line);background:var(--panel2);color:var(--dim);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;display:flex}.dot{background:var(--ok);border-radius:50%;width:7px;height:7px}.icon-btn{border:1px solid var(--line);color:var(--dim);background:0 0;border-radius:6px;padding:4px 9px}.icon-btn:hover{color:var(--text);border-color:var(--dim)}#menu{display:none}.avwrap{position:relative}.avatar{border:2px solid var(--line);background:linear-gradient(135deg,var(--accent),var(--accent2));color:#04202c;border-radius:50%;width:30px;height:30px;padding:0;font-size:11px;font-weight:700;display:block;position:relative;overflow:hidden}.avatar:hover,.avatar.on{border-color:var(--accent)}.avatar span{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.avatar img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.dd{background:var(--panel);border:1px solid var(--line);z-index:15;border-radius:10px;min-width:220px;position:absolute;top:38px;right:0;overflow:hidden;box-shadow:0 10px 30px #0008}.dd[hidden]{display:none}.dd-head{border-bottom:1px solid var(--line);flex-direction:column;padding:12px 14px;display:flex}.dd-head small{color:var(--dim)}.dd-item{text-align:left;background:0 0;border:0;width:100%;padding:9px 14px;display:block}.dd-item:hover{background:var(--panel2)}.nb{flex:1;padding:20px 28px 60px;overflow:auto}.nb-in{max-width:900px;margin:0 auto}.cell{gap:10px;margin:0 0 14px;display:flex}.cell .pr{text-align:right;width:58px;font:11px var(--mono);color:var(--cmt);flex:none;padding-top:10px}.cell .bd{flex:1;min-width:0}.cell pre.src{background:var(--panel);border:1px solid var(--line);font:12.5px/1.55 var(--mono);white-space:pre;border-radius:6px;margin:0;padding:10px 12px;overflow:auto}.cell .out{font:12px/1.5 var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--text);max-height:420px;margin:6px 0 0;overflow:auto}.cell .out.err{color:var(--err)}.cell img.o{background:#fff;border-radius:4px;max-width:100%}.cell iframe{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;height:260px}.md h1,.md h2,.md h3{margin:.6em 0 .3em}.md p{margin:.4em 0;line-height:1.65}.md code{font:12px var(--mono);background:var(--panel2);border-radius:4px;padding:1px 5px}.srcwrap{position:relative}.runb{background:var(--panel2);border:1px solid var(--line);width:26px;height:24px;color:var(--ok);opacity:.55;border-radius:5px;padding:0;font-size:11px;position:absolute;top:6px;right:6px}.cell:hover .runb,.runb:focus{opacity:1}.runb:hover{border-color:var(--ok)}.cell pre.src[contenteditable]{outline:none;padding-right:42px}.cell pre.src[contenteditable]:focus{border-color:var(--accent)}.cell.busy .pr{color:var(--accent2)}.outs .out table{font:12px var(--mono);min-width:0;margin:2px 0}.outs .out th{position:static}.outs .out{overflow:auto}.nbbar .btn{padding:2px 9px}.nbbar{max-width:900px;color:var(--dim);align-items:center;gap:10px;margin:0 auto 14px;font-size:12px;display:flex}.bio{align-items:center;gap:20px;margin-bottom:8px;display:flex}.bio .big{object-fit:cover;border:2px solid var(--line);border-radius:50%;flex:none;width:96px;height:96px}.tl{border-left:2px solid var(--line);margin:8px 0 0 6px;padding-left:16px}.tl div{margin-bottom:12px;position:relative}.tl div:before{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px;position:absolute;top:6px;left:-23px}.tl small{color:var(--dim);display:block}.main{flex:1;min-height:0;display:flex}.side{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;flex:none;width:270px;min-height:0;display:flex}.side-tabs{border-bottom:1px solid var(--line);display:flex}.side-tabs button{color:var(--dim);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:9px 0}.side-tabs button.on{color:var(--text);border-color:var(--accent)}.tree{flex:1;padding:6px 0;overflow:auto}.tree[hidden]{display:none}.row{padding:3px 10px 3px calc(10px + var(--d,0)*14px);cursor:pointer;white-space:nowrap;color:var(--text);align-items:center;gap:6px;display:flex}.row:hover{background:var(--panel2)}.row.sel{background:color-mix(in srgb,var(--accent) 16%,transparent)}.row .tw{width:10px;color:var(--dim);font-size:10px}.row .ic{text-align:center;width:16px;color:var(--dim)}.row .meta{color:var(--dim);margin-left:auto;padding-left:8px;font-size:11px}.row.col{color:var(--dim);cursor:default;font-family:var(--mono);font-size:12px}.row.col .meta{font-size:10.5px}.side-foot{border-top:1px solid var(--line);gap:8px;padding:10px;display:flex}.btn{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:5px 10px}.btn:hover{border-color:var(--dim)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#04202c;font-weight:600}.btn.primary:hover{filter:brightness(1.1)}.work{flex-direction:column;flex:1;min-width:0;display:flex}.tabs{background:var(--panel);border-bottom:1px solid var(--line);flex:none;display:flex;overflow-x:auto}.tab{border-right:1px solid var(--line);color:var(--dim);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.tab.on{background:var(--bg);color:var(--text);box-shadow:inset 0 2px 0 var(--accent)}.tab .x{opacity:.5;background:0 0;border:0;padding:0 2px}.tab .x:hover{opacity:1}.tab.add{color:var(--dim);border-right:0}.toolbar{border-bottom:1px solid var(--line);background:var(--bg);flex:none;align-items:center;gap:10px;padding:8px 12px;display:flex}.sel-ctx{color:var(--dim);font-family:var(--mono);font-size:12px}.hint{color:var(--dim);font-size:12px}kbd{border:1px solid var(--line);font:11px var(--mono);background:var(--panel2);border-bottom-width:2px;border-radius:4px;padding:0 5px}.pane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.editor{background:var(--bg);border-bottom:1px solid var(--line);flex:none;height:190px;min-height:90px;display:flex;position:relative;overflow:hidden}.gutter{text-align:right;width:44px;color:var(--cmt);font:13px/1.6 var(--mono);-webkit-user-select:none;user-select:none;border-right:1px solid var(--line);white-space:pre;flex:none;padding:12px 8px 12px 0;overflow:hidden}.code{flex:1;position:relative;overflow:hidden}.code pre,.code textarea{font:13px/1.6 var(--mono);white-space:pre;tab-size:2;border:0;margin:0;padding:12px 14px;position:absolute;inset:0;overflow:auto}.code pre{pointer-events:none;color:var(--text)}.code textarea{color:#0000;caret-color:var(--text);resize:none;background:0 0;outline:none}.code textarea::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}.k{color:var(--kw)}.s{color:var(--str)}.n{color:var(--num)}.c{color:var(--cmt);font-style:italic}.f{color:var(--fn)}.resizer{cursor:row-resize;background:var(--line);opacity:.5;flex:none;height:5px}.resizer:hover{opacity:1;background:var(--accent)}.results{background:var(--panel);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.rtabs{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:2px;padding:0 10px;display:flex}.rtabs button{color:var(--dim);background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 12px}.rtabs button.on{color:var(--text);border-color:var(--accent)}.stat{color:var(--dim);align-items:center;gap:14px;margin-left:auto;font-size:12px;display:flex}.stat .ok{color:var(--ok)}.stat .bad{color:var(--err)}.grid{background:var(--bg);flex:1;min-width:0;overflow:auto}table{border-collapse:separate;border-spacing:0;font:12.5px var(--mono);min-width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;max-width:460px;padding:6px 12px;overflow:hidden}th{background:var(--panel2);color:var(--dim);z-index:1;font-weight:600;position:sticky;top:0}th small{color:var(--cmt);margin-left:6px;font-weight:400}td.rn,th.rn{background:var(--panel2);color:var(--cmt);text-align:right;width:44px;min-width:44px;position:sticky;left:0}td.num{text-align:right;color:var(--num)}td.nul{color:var(--cmt);font-style:italic}td a{border-bottom:1px dotted var(--accent);text-decoration:none}tr:hover td{background:color-mix(in srgb,var(--accent) 7%,transparent)}.msg{font-family:var(--mono);padding:18px;font-size:12.5px}.msg.err{color:var(--err)}.chartwrap{background:var(--bg);flex:1;padding:16px;overflow:auto}.bar{font:12px var(--mono);align-items:center;gap:10px;margin:5px 0;display:flex}.bar .l{text-align:right;width:200px;color:var(--dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bar .b{background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 60%,var(--accent2)));border-radius:3px;height:16px}.bar .v{color:var(--dim)}.doc{flex:1;max-width:820px;padding:28px 36px;overflow:auto}.doc h1{margin:0 0 4px;font-size:22px}.doc .sub{color:var(--dim);margin-bottom:18px}.doc p,.doc li{line-height:1.65}.doc h2{margin:22px 0 4px;font-size:15px}.doc code{font:12px var(--mono);background:var(--panel2);border-radius:4px;padding:1px 5px}.chip{border:1px solid var(--line);background:var(--panel2);color:var(--dim);border-radius:999px;margin:0 6px 6px 0;padding:2px 10px;font-size:12px;display:inline-block}.doc pre{background:var(--panel);border:1px solid var(--line);font:12.5px/1.6 var(--mono);border-radius:8px;padding:12px;overflow:auto}.modal{z-index:10;background:#0009;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal.on{display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:min(520px,92vw);padding:20px}.card h3{margin:0 0 4px}.ds{border:1px solid var(--line);background:var(--panel2);border-radius:8px;align-items:flex-start;gap:12px;margin:10px 0;padding:12px;display:flex}.ds div{flex:1}.ds small{color:var(--dim)}.drop{border:1.5px dashed var(--line);text-align:center;color:var(--dim);border-radius:8px;margin-top:10px;padding:16px}.drop.over{border-color:var(--accent);color:var(--text)}.toast{background:var(--panel2);border:1px solid var(--line);opacity:0;pointer-events:none;z-index:20;border-radius:8px;padding:8px 14px;transition:all .2s;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.toast.on{opacity:1}@media (max-width:760px){#menu{display:inline-block}.side{z-index:5;width:84vw;transition:all .2s;position:absolute;top:44px;bottom:0;left:0;transform:translate(-100%)}.side.open{transform:none;box-shadow:0 0 40px #000a}.crumbs,.hint{display:none}.doc{padding:18px}}.measure{visibility:hidden;white-space:pre;font:13px/1.6 var(--mono);pointer-events:none;position:absolute}.ac{z-index:30;background:var(--panel);border:1px solid var(--line);min-width:240px;max-width:380px;max-height:240px;font:12.5px var(--mono);border-radius:8px;padding:4px;position:fixed;overflow:auto;box-shadow:0 10px 30px #0008}.ac-i{cursor:pointer;white-space:nowrap;border-radius:5px;align-items:center;gap:8px;padding:4px 8px;display:flex}.ac-i.on{background:color-mix(in srgb,var(--accent) 22%,transparent)}.ac-k{width:16px;height:16px;font:700 10px var(--sans);color:#04202c;border-radius:4px;flex:none;justify-content:center;align-items:center;display:flex}.ac-k.table{background:var(--accent)}.ac-k.column{background:var(--ok)}.ac-k.keyword{background:var(--kw);color:#fff}.ac-k.function{background:var(--accent2)}.ac-d{color:var(--dim);margin-left:auto;padding-left:12px;font-size:11px}.ac-foot{border-top:1px solid var(--line);color:var(--dim);font:11px var(--sans);margin-top:4px;padding:4px 8px 2px}.code.plain{flex:none;position:relative}.cellwrap{border:1px solid var(--line);background:var(--panel);border-radius:6px;position:relative;overflow:hidden}.cellwrap:focus-within{border-color:var(--accent)}.cellwrap .code{position:relative}.cellwrap .code pre,.cellwrap .code textarea{position:absolute}.cellwrap .runb{z-index:2}a.inapp{cursor:pointer}.ssr-note{display:none}.doc img{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:100%;height:auto;margin:12px 0;display:block}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.skip{position:absolute;left:-999px}.skip:focus{z-index:50;background:var(--panel);border-radius:6px;padding:6px 10px;top:8px;left:8px}@media (max-width:760px){.pill,.lbl{display:none}.top{gap:8px;padding:0 10px}.logo{margin-right:auto}}
