:root{--bg: #0b3d42;--surface: #12525c;--surface-2: #17627a;--border: #1d6b78;--fg: #f2f7f7;--fg-muted: #9dc0c4;--accent: #c8e6a0;--accent-fg: #0b3d42;--danger: #ff8f7a;--radius: 6px;--header-h: 56px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.6 var(--font);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}.shell{display:flex;flex-direction:column;height:100%}.header{height:var(--header-h);flex:0 0 var(--header-h);display:flex;align-items:center;gap:1rem;padding:0 1rem;border-bottom:1px solid var(--border)}.header .logo{height:26px;width:auto;display:block}.header .wordmark{font-size:1.05rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.header .spacer{flex:1}.header .user{display:flex;align-items:center;gap:.5rem;color:var(--fg-muted)}.header .avatar{width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-fg);display:grid;place-items:center;font-size:.75rem;font-weight:700}.body{flex:1;min-height:0;display:grid;grid-template-columns:var(--tree-w, 260px) 3fr 2fr;gap:0}.pane{min-width:0;min-height:0;display:flex;flex-direction:column}.pane+.pane{border-left:1px solid var(--border)}.pane.tree{border-right:2px solid var(--accent)}.pane-head{flex:0 0 auto;padding:.55rem .75rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.5rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted)}.pane-body{flex:1;min-height:0;overflow:auto}.repo-name{margin:.6rem .75rem .25rem;padding:.35rem .6rem;background:var(--surface-2);border-radius:var(--radius);font-weight:600;font-size:.9rem}.tree-search{padding:.5rem .75rem}.tree-search input{width:100%;padding:.35rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.tree-search input::placeholder{color:var(--fg-muted)}.tree ul{list-style:none;margin:0;padding:0}.tree li{position:relative}.node{display:flex;align-items:center;gap:.4rem;width:100%;text-align:left;padding:.2rem .5rem .2rem 0;background:none;border:0;cursor:pointer;border-radius:var(--radius);line-height:1.35}.node:hover{background:var(--surface-2)}.node.active{background:var(--accent);color:var(--accent-fg)}.node.active .node-sub{color:var(--accent-fg);opacity:.75}.node-caret{flex:0 0 12px;width:12px;text-align:center;color:var(--fg-muted);font-size:.7rem;transition:transform .12s ease}.node-caret.open{transform:rotate(90deg)}.node-id{font-family:var(--mono);font-size:.78rem;flex:0 0 auto}.node-label{flex:0 0 auto;font-weight:500}.node-sub{color:var(--fg-muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-count{margin-left:auto;flex:0 0 auto;color:var(--fg-muted);font-size:.72rem;font-variant-numeric:tabular-nums}.dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--fg-muted)}.tabs{flex:0 0 auto;display:flex;align-items:flex-end;gap:2px;padding:.4rem .5rem 0;overflow-x:auto;border-bottom:1px solid var(--border)}.tab{display:flex;align-items:center;gap:.4rem;padding:.35rem .6rem;background:var(--surface);border:1px solid var(--border);border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;cursor:pointer;white-space:nowrap;max-width:220px}.tab.active{background:var(--surface-2);border-color:var(--accent)}.tab-title{overflow:hidden;text-overflow:ellipsis}.tab-close{border:0;background:none;color:var(--fg-muted);cursor:pointer;padding:0 .1rem;line-height:1}.tab-close:hover{color:var(--danger)}.doc{padding:1.25rem 1.75rem 4rem;max-width:62rem}.md h1{font-size:1.5rem;margin:0 0 .5rem;letter-spacing:-.01em}.md h2{font-size:1.18rem;margin:2rem 0 .5rem}.md h3{font-size:1.02rem;margin:1.5rem 0 .4rem}.md h4{font-size:.94rem;margin:1.2rem 0 .3rem;color:var(--fg-muted)}.md p,.md li{line-height:1.68}.md ul,.md ol{padding-left:1.3rem}.md blockquote{margin:1rem 0;padding:.5rem .9rem;border-left:3px solid var(--accent);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0}.md code{font-family:var(--mono);font-size:.86em;background:var(--surface-2);padding:.1rem .3rem;border-radius:3px}.md pre{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem;overflow-x:auto}.md pre code{background:none;padding:0}.md hr{border:0;border-top:1px solid var(--border);margin:2rem 0}.table-wrap{overflow-x:auto;margin:1rem 0}.md table{border-collapse:collapse;width:100%;font-size:.88rem}.md th,.md td{border:1px solid var(--border);padding:.4rem .6rem;text-align:left;vertical-align:top}.md th{background:var(--surface);font-weight:600}.idref{font-family:var(--mono);font-size:.86em;background:var(--surface-2);color:var(--accent);padding:.05rem .3rem;border-radius:3px;cursor:pointer;border:1px solid transparent}.idref:hover{border-color:var(--accent);text-decoration:none}.entity-head{margin-bottom:1rem}.entity-title{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.entity-id{font-family:var(--mono);color:var(--accent);font-size:1rem}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .45rem;border-radius:999px;font-size:.74rem;border:1px solid currentColor}.meta{margin:.8rem 0;font-size:.86rem}.meta dt{color:var(--fg-muted);float:left;clear:left;width:9rem}.meta dd{margin:0 0 .2rem 9rem}.links-group{margin:.6rem 0}.links-group h4{margin:.5rem 0 .3rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--fg-muted)}.chips{display:flex;flex-wrap:wrap;gap:.3rem}.notice{border:1px solid var(--accent);border-left-width:3px;background:var(--surface);border-radius:var(--radius);padding:.6rem .8rem;margin:1rem 0;font-size:.88rem}.notice.warn{border-color:var(--danger)}.chat{display:flex;flex-direction:column;height:100%;min-height:0}.chat-log{flex:1;min-height:0;overflow:auto;padding:1.25rem 1.75rem}.msg{margin-bottom:1.4rem}.msg-role{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);margin-bottom:.25rem}.msg.user .msg-body{white-space:pre-wrap;background:var(--surface-2);padding:.5rem .7rem;border-radius:var(--radius)}.msg-body.md>:first-child{margin-top:0}.msg-body.md>:last-child{margin-bottom:0}.msg-body.md h1,.msg-body.md h2{font-size:1.02rem;margin:1rem 0 .35rem}.msg-body.md h3,.msg-body.md h4{font-size:.94rem;margin:.85rem 0 .3rem}.tool-line{font-family:var(--mono);font-size:.74rem;color:var(--fg-muted);padding:.1rem 0}.chat-form{flex:0 0 auto;border-top:1px solid var(--border);padding:.7rem 1.75rem .9rem}.chat-form textarea{width:100%;resize:vertical;min-height:62px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.45rem .6rem}.chat-form textarea::placeholder{color:var(--fg-muted)}.chat-actions{display:flex;gap:.5rem;align-items:center;margin-top:.45rem}.btn{padding:.38rem .85rem;border:0;border-radius:var(--radius);background:var(--accent);color:var(--accent-fg);font-weight:600;cursor:pointer}.btn:disabled{opacity:.45;cursor:default}.btn.ghost{background:none;border:1px solid var(--border);color:var(--fg-muted);font-weight:400}.btn.ghost:hover{border-color:var(--accent);color:var(--fg)}.center{height:100%;display:grid;place-items:center;color:var(--fg-muted);padding:2rem;text-align:center}.ingest-status{margin:0;padding:0 1.75rem 1.75rem}.center .ingest-status{padding:.5rem 0 0}.signin{max-width:21rem;width:100%;display:flex;flex-direction:column;gap:.7rem;text-align:left}.signin input{width:100%;padding:.5rem .65rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.muted{color:var(--fg-muted)}.small{font-size:.84rem}kbd{font-family:var(--mono);font-size:.78em;border:1px solid var(--border);border-bottom-width:2px;border-radius:3px;padding:0 .25rem;background:var(--surface)}.chat-toggle{display:none}@media(max-width:1100px){.chat-toggle{display:inline-block}.body{grid-template-columns:220px 1fr}.pane.chat-pane{display:none}.pane.chat-pane.open{display:flex;position:fixed;inset:var(--header-h) 0 0 auto;width:min(420px,100%);background:var(--bg);z-index:20;border-left:1px solid var(--border)}}.mermaid-figure{margin:1.2rem 0;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);position:relative}.mermaid-svg{overflow-x:auto}.mermaid-svg svg{max-width:100%;height:auto;display:block;margin:0 auto}.mermaid-expand{position:absolute;top:.5rem;right:.5rem;opacity:0;transition:opacity .12s ease;font-size:.78rem;padding:.2rem .55rem}.mermaid-figure:hover .mermaid-expand,.mermaid-expand:focus-visible{opacity:1}.mermaid-loading{padding:1.5rem;text-align:center}.mermaid-error pre{margin-top:.5rem}.diagram-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;background:var(--bg);background:color-mix(in srgb,var(--bg) 94%,black)}.diagram-toolbar{flex:0 0 auto;display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--surface)}.diagram-toolbar .spacer{flex:1}.diagram-title{font-family:var(--mono);font-size:.82rem;color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diagram-zoom{min-width:3.5rem;text-align:right;font-variant-numeric:tabular-nums}.diagram-viewport{flex:1;min-height:0;position:relative;overflow:hidden;cursor:grab;touch-action:none;outline:none}.diagram-viewport.dragging{cursor:grabbing}.diagram-content{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.diagram-content svg{display:block;width:100%!important;height:100%!important;max-width:none!important}.diagram-viewport.unmeasured{overflow:auto;cursor:default}.diagram-viewport.unmeasured .diagram-content{position:static;transform:none;padding:1.5rem}.diagram-viewport.unmeasured .diagram-content svg{width:auto!important;height:auto!important}.diagram-hint{flex:0 0 auto;padding:.4rem .75rem;border-top:1px solid var(--border);text-align:center}.diagram-hint kbd{margin:0 .15rem}
