:root{--bg:#0b0e14;--surface:#11161f;--surface2:#161c27;--border:#232b3a;--border2:#2e3849;--text:#e7eaf1;--body:#cfd4df;--muted:#8b94a7;--faint:#5d6679;--accent:#8b9cff;--accent-bg:#8b9cff1f;--accent-ring:#8b9cff2e;--on-accent:#0b0e14;--accent-grad:linear-gradient(180deg,#9aa9ff,#7d8ff7);--green:#3ddc97;--green-bg:#3ddc971a;--amber:#f5b942;--amber-bg:#f5b9421c;--sky:#5cc8ff;--sky-bg:#5cc8ff1a;--rose:#ff6b8a;--rose-bg:#ff6b8a1c;--del-text:#ffb1c1;--ins-text:#a6f3cf;--edge:#3a4559;--grid:#ffffff10;--shadow:0 8px 24px #0008;--tabshadow:0 1px 3px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f5f6fa;--surface:#fff;--surface2:#f2f4f8;--border:#e4e8f0;--border2:#d4dae5;--text:#121826;--body:#2e3646;--muted:#5d677a;--faint:#8a93a6;--accent:#4f5fe8;--accent-bg:#4f5fe814;--accent-ring:#4f5fe826;--on-accent:#fff;--accent-grad:linear-gradient(180deg,#6170f0,#4757e0);--green:#0e9f65;--green-bg:#0e9f6514;--amber:#b7791f;--amber-bg:#d9921a17;--sky:#0a8bd0;--sky-bg:#0a8bd014;--rose:#dc3558;--rose-bg:#dc355812;--del-text:#b4233f;--ins-text:#0b7a4c;--edge:#c3cad8;--grid:#0000000d;--shadow:0 8px 24px #1a22381a;--tabshadow:0 1px 3px #1a223822;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-wrap:anywhere;font:14px/1.5 Inter,system-ui,sans-serif}code,.mono{font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px}pre{max-width:100%;overflow-x:auto}a{color:var(--accent)}button{font:inherit}.app{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:18px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.logo{letter-spacing:.2px;align-items:center;gap:10px;font-weight:700;display:flex}.logo i{color:#0b0e14;background:linear-gradient(135deg,#8b9cff,#5cc8ff);border-radius:8px;place-items:center;width:28px;height:28px;font-size:13px;font-style:normal;display:grid}.repo{border:1px solid var(--border);background:var(--surface2);width:100%;color:var(--text);border-radius:10px;padding:6px 8px;font-size:13px}.repo-meta{color:var(--muted);margin:4px 2px 0;font-size:11px;display:block}.navh{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:0 8px 6px;font-size:11px}.nv{color:var(--muted);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:7px 10px;font-weight:500;text-decoration:none;display:flex}.nv:hover{background:var(--surface2);color:var(--text)}.nv.on{background:var(--accent-bg);color:var(--text)}.c{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:0 7px;font-size:11px}.c.wait{color:var(--amber);border-color:var(--amber)}.dot{border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.foot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;display:flex}.user{color:var(--muted);font-size:13px}.theme{background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:2px;display:inline-flex}.theme button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:4px 7px;font-size:13px}.theme button.on{background:var(--surface);color:var(--text);box-shadow:var(--tabshadow)}.main{min-width:0;padding:22px 28px}.tabbar{display:none}.loadbar{z-index:40;pointer-events:none;background:var(--accent-bg);height:3px;display:none;position:fixed;top:0;left:0;right:0;overflow:hidden}.loadbar.on{display:block}.loadbar:after{content:"";background:var(--accent-grad);width:40%;animation:1.1s ease-in-out infinite load;position:absolute;top:0;bottom:0;left:-40%}@keyframes load{to{left:100%}}.offline{background:var(--amber-bg);color:var(--amber);border-radius:9px;margin:0 0 12px;padding:6px 10px;font-size:12.5px;font-weight:550}.crumb{color:var(--muted);margin-bottom:6px;font-size:13px}.crumb a{color:inherit}.head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px;display:flex}.head h1{letter-spacing:-.01em;margin:0 0 6px;font-size:22px;font-weight:650}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:12px;font-weight:550;display:inline-flex}.chip.hard,.chip.removed{background:var(--rose-bg);color:var(--rose)}.chip.wait,.chip.modified{background:var(--amber-bg);color:var(--amber)}.chip.ok,.chip.added,.chip.active{background:var(--green-bg);color:var(--green)}.chip.sky,.chip.specd{background:var(--sky-bg);color:var(--sky)}.chip.acc{background:var(--accent-bg);color:var(--accent)}.chip.node{background:var(--surface2);color:var(--text);border-color:var(--border2)}.chip.mute{background:var(--surface2);color:var(--muted)}.btns{flex-wrap:wrap;gap:8px;display:flex}.btn{border:1px solid var(--border2);background:var(--surface2);color:var(--text);cursor:pointer;border-radius:9px;padding:8px 14px;font-weight:550;text-decoration:none}.btn.pri{background:var(--accent-grad);color:var(--on-accent);border-color:#0000}.btn:disabled{opacity:.5;cursor:not-allowed}.tabs{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:3px;display:inline-flex}.tab{color:var(--muted);cursor:pointer;border-radius:7px;padding:6px 14px;font-size:13px;font-weight:550;text-decoration:none}.tab.on{background:var(--surface2);color:var(--text);box-shadow:var(--tabshadow)}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px}.sec{padding:18px 20px}.card+.card{margin-top:16px}h3.h{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:0 0 10px;font-size:12px;font-weight:600}.md{color:var(--body)}.md p{margin:0 0 8px}.md li{margin:4px 0}.pill{border:1px solid var(--border2);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;margin:2px 4px 0 0;padding:1px 6px;font-size:11px;display:inline-block}.pill.on{border-color:var(--accent);color:var(--accent)}.kv{color:var(--muted);justify-content:space-between;gap:8px;padding:4px 0;font-size:13px;display:flex}.kv b{color:var(--text);font-weight:550}.note{color:var(--faint);margin-top:6px;font-size:12px}.empty{color:var(--muted);padding:24px 0}.gpages{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.gpages a{border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:4px 10px;font-size:13px;text-decoration:none}.gpages a.on{border-color:var(--accent);color:var(--text);background:var(--accent-bg)}.gdoc{overflow-wrap:anywhere;max-width:760px;padding:20px 24px}.gdoc h1{margin:0 0 12px;font-size:22px}.gdoc h2{margin:20px 0 8px;font-size:17px}.gdoc a{color:var(--accent)}.gdoc pre{background:var(--surface2);border-radius:8px;padding:10px;overflow-x:auto}del{background:var(--rose-bg);color:var(--del-text);border-radius:3px;padding:0 2px;text-decoration:line-through}ins{background:var(--green-bg);color:var(--ins-text);border-radius:3px;padding:0 2px;text-decoration:none}.gwrap{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:18px;display:grid}.canvas{height:var(--canvas-h,520px);background:var(--surface);border:1px solid var(--border);background-image:radial-gradient(var(--grid) 1px,transparent 1px);touch-action:none;background-size:18px 18px;border-radius:14px;min-height:320px;position:relative;overflow:hidden}.stage{transform-origin:0 0;position:absolute;top:0;left:0}.stage svg{position:absolute;inset:0;overflow:visible}.e{fill:none;stroke:var(--edge);stroke-width:1.4px}.e.eh{stroke:var(--accent);stroke-width:1.8px;opacity:.9}.n{background:var(--surface2);border:1px solid var(--border2);cursor:pointer;text-align:left;width:150px;height:66px;color:var(--text);border-radius:12px;padding:7px 10px;transition:border-color .15s;position:absolute}.n:hover,.n.sel{border-color:var(--accent)}.n .t,.gh .t{white-space:nowrap;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex;overflow:hidden}.n .s,.gh .s{background:var(--green);width:7px;height:7px;box-shadow:0 0 0 3px var(--green-bg);border-radius:50%;flex:0 0 7px}.n .p,.gh .p{background:var(--border);border-radius:4px;height:4px;margin-top:6px;overflow:hidden}.n .p i,.gh .p i{background:var(--green);height:100%;display:block}.n .f,.gh .f{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:11px;overflow:hidden}.own{color:var(--faint)}.n.specd{border-style:dashed}.n.specd .s,.grp.specd .s{background:var(--sky);box-shadow:0 0 0 3px var(--sky-bg)}.n.hit{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring),var(--shadow)}.grp{border:1px solid var(--border2);background:color-mix(in srgb,var(--surface2) 55%,transparent);border-radius:14px;position:absolute}.grp.specd{border-style:dashed}.grp.hit,.grp.sel{border-color:var(--accent)}.grp.hit{box-shadow:0 0 0 4px var(--accent-ring)}.gh{cursor:pointer;border-bottom:1px dashed var(--border);border-radius:14px 14px 0 0;height:40px;padding:6px 12px;position:absolute;top:0;left:0;right:0}.gh:hover{background:var(--accent-bg)}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:12px;display:flex;position:absolute;bottom:12px;left:14px}.legend span{align-items:center;gap:6px;display:flex}.root{color:var(--muted);font-size:12px;position:absolute;top:12px;left:14px}.zoom{flex-direction:column;gap:6px;display:flex;position:absolute;top:10px;right:12px}.zoom button{background:var(--surface);border:1px solid var(--border);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:9px}.insp .sec{padding:16px 18px}.insp .sec+.sec{border-top:1px solid var(--border)}.mini{border:1px solid var(--border);color:var(--body);border-radius:10px;margin-top:8px;padding:9px 11px;font-size:12.5px}.mini b{justify-content:space-between;gap:6px;margin-bottom:4px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500;display:flex}.prl{color:var(--text);border-bottom:1px solid var(--border);padding:14px 18px;text-decoration:none;display:block}.prl:last-child{border-bottom:0}.prl:hover{background:var(--surface2)}.prhead{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;display:grid}.doc{grid-template-columns:minmax(0,1fr) 300px;gap:18px;margin-top:16px;display:grid}.req{border:1px solid var(--border);border-radius:12px;margin-top:12px;overflow:hidden}.req .rh{background:var(--surface2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex}.req .rh b{font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500}.req .rb{color:var(--body);white-space:pre-wrap;padding:12px 14px;font-size:13.5px}.req .ctx{opacity:.62}.req iframe{background:#fff;border:0;border-radius:8px;width:100%;height:320px}.aside .sec+.sec{border-top:1px solid var(--border)}.dec{background:var(--surface2);border:1px solid var(--border);border-radius:9px;margin-top:8px;padding:8px 10px;font-size:13px}.dec code{color:var(--accent)}.approve-bar{display:contents}.full{grid-template-columns:200px minmax(0,1fr);gap:0;display:grid}.fbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 18px;display:flex}.fnav{align-items:center;gap:6px;display:flex}.fnav .pos{color:var(--muted);margin:0 4px;font-size:12.5px}.ib{border:1px solid var(--border2);background:var(--surface2);width:30px;height:30px;color:var(--text);cursor:pointer;border-radius:8px;place-items:center;display:grid}.seg{background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:2px;display:inline-flex}.seg button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:4px 10px;font-size:12px;font-weight:550}.seg .on{background:var(--surface);color:var(--text)}.toc{border-right:1px solid var(--border);padding:14px 10px;font-size:12.5px}.toc .t{color:var(--muted);cursor:pointer;border-radius:7px;justify-content:space-between;align-items:center;padding:4px 8px;display:flex}.toc .t.sub{padding-left:20px;font-family:JetBrains Mono,monospace;font-size:11.5px}.toc .m{background:var(--amber);border-radius:50%;flex:0 0 7px;width:7px;height:7px}.fdoc{min-width:0;padding:18px 26px}.blk{color:var(--body);white-space:pre-wrap;margin:0 0 8px}.blk.hd{color:var(--text);margin-top:14px}.blk.hd:first-line{font-weight:650}.blk.ctx{opacity:.62}.chg{border-radius:10px;margin:0 -12px 8px;padding:8px 12px;scroll-margin:80px;position:relative}.chg:before{content:"";background:var(--amber);border-radius:3px;width:3px;position:absolute;top:6px;bottom:6px;left:-6px}.chg.focus{background:var(--amber-bg);box-shadow:0 0 0 1px color-mix(in srgb,var(--amber) 45%,transparent)}.chg .why{color:var(--amber);margin-bottom:3px;font-size:11.5px;font-weight:600}.fold{color:var(--faint);border:1px dashed var(--border2);cursor:pointer;background:0 0;border-radius:8px;margin:4px 0 8px;padding:4px 10px;font-size:12px;display:inline-block}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.stat{padding:14px 16px}.stat .v{letter-spacing:-.02em;font-size:24px;font-weight:650}.stat .l{color:var(--muted);font-size:12px}.switch{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:3px;display:inline-flex}.switch button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 14px;font-size:13px;font-weight:550}.switch button.on{background:var(--surface2);color:var(--text);box-shadow:var(--tabshadow)}.runs{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:18px;display:grid}.fn{border:1px solid var(--border);background:var(--surface2);border-radius:12px;margin-top:10px;padding:10px 12px;scroll-margin:80px}.fn .top,.chg .top,.rt .top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fn .top b,.chg .top b,.rt .top b{font-family:JetBrains Mono,monospace;font-size:13.5px;font-weight:500}.fn .d{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.5}.fn.claimed{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.fn.blocked{border-color:color-mix(in srgb,var(--rose) 50%,var(--border))}.fn.interactive{border-color:color-mix(in srgb,var(--amber) 50%,var(--border))}.pend{color:var(--muted);margin-top:6px;font-size:12px}.pend .pc{color:var(--text);font-weight:550}.reqs{margin:4px 0 0;padding-left:18px}.rq{margin:2px 0}.rq.behind code{color:var(--amber)}.rq.specd code{color:var(--sky)}.rq.obsolete code{color:var(--rose)}.nl{color:var(--accent);text-decoration:none}.nl:hover{text-decoration:underline}.grp-changes{margin-top:12px}.gs{text-transform:uppercase;letter-spacing:.07em;color:var(--faint);margin-bottom:4px;font-size:11px;font-weight:600}.chg{border:1px solid var(--border);background:var(--surface2);border-radius:12px;margin-top:8px;padding:10px 12px}.prog{color:var(--muted);align-items:center;gap:10px;margin-top:8px;font-size:12px;display:flex}.bar{background:var(--border);border-radius:4px;flex:1;height:4px;overflow:hidden}.bar i{background:var(--green);height:100%;display:block}.rt{border:1px solid var(--border);background:var(--surface2);border-radius:12px;margin-top:10px;padding:10px 12px}.holds{margin:6px 0 0;padding-left:18px;font-size:12.5px}.held{margin:3px 0}.via{color:var(--faint)}.lease{background:var(--border);border-radius:4px;height:4px;margin-top:8px;overflow:hidden}.lease i{background:var(--accent);height:100%;display:block}.feed .sec{padding:16px 18px}.ev{border-bottom:1px solid var(--border);gap:10px;padding:8px 0;font-size:13px;display:flex}.ev:last-child{border-bottom:0}.ev .ic{border-radius:7px;flex:0 0 24px;place-items:center;width:24px;height:24px;font-size:12px;display:grid}.ev .tm{color:var(--faint);font-size:11.5px}.waiting{border-color:color-mix(in srgb,var(--amber) 45%,var(--border));margin-bottom:18px}.waiting .bi{border-color:color-mix(in srgb,var(--amber) 30%,var(--border))}.kan{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.colh{align-items:center;gap:8px;margin:0 4px 10px;font-size:13px;font-weight:600;display:flex}.colh .c{color:var(--muted);font-weight:500}.bi{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:10px;padding:12px}.bi .ttl{margin-bottom:8px;font-size:13.5px;font-weight:550}.bi .slug{color:var(--faint);font-family:JetBrains Mono,monospace;font-size:11.5px}.bi .blocks{color:var(--amber);margin-top:6px;font-size:12px}.filter{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.signin{text-align:center;max-width:420px;margin:15vh auto;padding:28px}.signin p{color:var(--muted)}@media (width<=899.98px){.app{min-height:auto;padding-bottom:calc(64px + env(safe-area-inset-bottom));display:block}.sidebar{display:none}.main{padding:14px 16px 90px}.tabbar{height:calc(62px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--border);background:var(--surface);z-index:20;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--muted);flex-direction:column;align-items:center;gap:2px;min-width:56px;font-size:10.5px;text-decoration:none;display:flex;position:relative}.tabbar a b{font-size:17px;font-weight:400;line-height:1}.tabbar a.on{color:var(--accent)}.tabbar .bdg{background:var(--amber);color:#1a1300;border-radius:9px;padding:0 5px;font-size:9px;font-weight:700;position:absolute;top:-4px;right:6px}.mtop{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.mtop select{max-width:60vw}.head h1{font-size:19px}.prhead,.doc,.gwrap,.runs,.full{grid-template-columns:minmax(0,1fr)}.stat .v{font-size:20px}.kan{grid-template-columns:minmax(0,1fr)}.toc{display:none}.fdoc{padding:12px 4px}.approve-bar{left:0;right:0;bottom:calc(62px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 30%);z-index:15;padding:10px 16px 12px;display:block;position:fixed}.approve-bar .btn{border-radius:12px;width:100%;padding:12px}.insp{left:0;right:0;bottom:calc(62px + env(safe-area-inset-bottom));z-index:18;border-radius:20px 20px 0 0;max-height:55vh;position:fixed;overflow-y:auto;box-shadow:0 -10px 30px #0006}.insp.closed{display:none}.insp .grab{background:var(--border2);border-radius:4px;width:38px;height:4px;margin:8px auto 0}}@media (width>=900px){.mtop,.insp .grab{display:none}.insp{max-height:var(--canvas-h,520px);overflow-y:auto}}
