:root{--bg:#f6f7f9;--surface:#fff;--border:#e3e6eb;--text:#1b1f24;--muted:#5e6875;--accent:#2563eb;--ok:#15803d;--ok-bg:#ecfdf3;--warn-bg:#fff8e6;--warn:#92400e;--err:#b42318;--err-bg:#fef3f2;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);margin:0;overflow:hidden}h1{margin:0 0 .75rem;font-size:1.4rem}h2{margin:0 0 .75rem;font-size:1.05rem}.mono{word-break:break-all;font-family:ui-monospace,SF Mono,Menlo,monospace}.small{font-size:.8rem}.muted{color:var(--muted)}.top{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:1rem;padding:.9rem 1.5rem;display:flex}.brand{color:var(--text);font-weight:650;text-decoration:none}.layout{grid-template-columns:300px 1fr;gap:1.5rem;max-width:1280px;margin:0 auto;padding:1.5rem;display:grid}@media (width<=800px){.layout{grid-template-columns:1fr;padding:1rem}}.sidebar,.stack{flex-direction:column;gap:1rem;display:flex}.sidebar h2{margin:.5rem 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem}.row{align-items:center;gap:.5rem;display:flex}.between{justify-content:space-between}label{margin-bottom:.4rem;font-weight:600;display:block}input:not([type=file]){border:1px solid var(--border);min-width:0;font:inherit;border-radius:6px;flex:1;padding:.5rem .6rem}button{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:6px;padding:.5rem .9rem}button.link{color:var(--accent);text-align:left;background:0 0;padding:0}.list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.list a{color:var(--text);border-radius:6px;flex-direction:column;padding:.5rem .6rem;text-decoration:none;display:flex}.list a:hover{background:#eef2f7}.list a.active{background:#e8efff}.meta{grid-template-columns:max-content 1fr;gap:.3rem 1rem;margin:0;font-size:.85rem;display:grid}.meta dt{color:var(--muted)}.meta dd{margin:0}.docs{border-collapse:collapse;width:100%}.docs td{border-top:1px solid var(--border);padding:.45rem .4rem}.docs tr.active{background:#f3f6fd}.badge{white-space:nowrap;border-radius:999px;padding:.15rem .5rem;font-size:.75rem}.badge.complete{background:var(--ok-bg);color:var(--ok)}.badge.partial{background:var(--warn-bg);color:var(--warn)}.badge.failed{background:var(--err-bg);color:var(--err)}.integrity.pass{border-left:4px solid var(--ok)}.integrity.fail{border-left:4px solid var(--err)}.ok{color:var(--ok)}.error{background:var(--err-bg);color:var(--err);border-radius:6px;margin-top:.6rem;padding:.6rem .8rem}.error p{margin:0}.warn{background:var(--warn-bg);color:var(--warn);border-radius:6px;padding:.6rem .8rem}.note{background:#f1f4f8;border-radius:6px;padding:.6rem .8rem;font-size:.85rem}.warn ul,.note ul{margin:.3rem 0 0;padding-left:1.2rem}.blocks{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.block{border:1px solid var(--border);border-radius:8px;overflow:hidden}.block-meta{border-bottom:1px solid var(--border);background:#f8f9fb;padding:.3rem .6rem}.block-text{white-space:pre-wrap;word-break:break-word;tab-size:4;margin:0;padding:.6rem;font-family:inherit}.block.code_block .block-text{background:#fbfbfc;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85rem}.block.heading .block-text{font-weight:650}.top nav a{color:var(--muted);border-radius:6px;padding:.25rem .5rem;text-decoration:none}.top nav a.active{color:var(--accent);background:#e8efff}.layout.single{grid-template-columns:1fr;max-width:1100px}.grid2{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=800px){.grid2{grid-template-columns:1fr}}select{border:1px solid var(--border);font:inherit;border-radius:6px;max-width:100%;padding:.45rem .5rem}button:disabled{cursor:not-allowed;background:#c7cdd6}.acts{flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.acts li{grid-template-columns:13rem 1fr;align-items:center;gap:.6rem;display:grid}.acts li.blocked span{color:var(--warn)}.acts li.enabled span{color:var(--ok)}.acts button{text-align:left}@media (width<=800px){.acts li{grid-template-columns:1fr}}.highlighter{align-items:start}.hl{cursor:pointer;border-radius:3px;padding:0 1px}.hl.ai{color:inherit;background:#dbe7ff}.hl.manual{color:inherit;background:#fde8b0}.hl.active{outline:2px solid var(--accent);background:#b9cffb}.items{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.item{border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;gap:.2rem;padding:.5rem .6rem;display:flex}.item.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.item.rejected{opacity:.6}.item.manual{background:#fffaf0}.badge.ai{color:var(--accent);background:#e8efff}.badge.manual{color:var(--warn);background:#fff1d6}.error-text{color:var(--err)}.review{cursor:default;flex-direction:column;gap:.4rem;margin-top:.4rem;display:flex}.row.wrap{flex-wrap:wrap}.manual-form{flex-direction:column;gap:.4rem;margin-top:.6rem;display:flex}.hl.model{color:inherit;background:#d9f2e3}.hl.model.active,.hl.active{outline:2px solid var(--accent)}.pick{margin-top:.2rem}label.inline{font-weight:400;display:inline}h3{margin:0;font-size:.95rem}.stack-tight{flex-direction:column;gap:.35rem;display:flex}.legend{flex-wrap:wrap;align-items:center;gap:.4rem 1rem;display:flex}.canvas{border:1px solid var(--border);cursor:grab;background:#fbfcfe;border-radius:8px;height:clamp(300px,56vh,720px);padding-top:48px;overflow:auto}.canvas svg{touch-action:none;-webkit-user-select:none;user-select:none;display:block}.node{cursor:grab}.node rect{fill:#fff;stroke:#94a3b8;stroke-width:1.5px}.node rect.uncertain{stroke-dasharray:5 3;stroke:var(--warn)}.node.active rect{stroke:var(--accent);stroke-width:3px}.node.manual_none rect{fill:#fffaf0}.node.invalid rect{stroke:var(--err)}.node-name{fill:var(--text);font-size:13px;font-weight:600}.node-role{fill:var(--muted);font-size:11px}.node-src{fill:var(--muted);font-size:10px}.edge{cursor:pointer}.edge-label{paint-order:stroke;stroke:#fbfcfe;stroke-width:4px;font-size:11px;font-weight:600}.edge-label.bad{-webkit-text-decoration:underline wavy var(--err);text-decoration:underline wavy var(--err)}.elements{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}textarea{width:100%;font:inherit;border:1px solid var(--border);border-radius:6px;padding:.4rem}.shell{flex-direction:column;height:100vh;display:flex}.top{flex:none;align-items:center;padding:.6rem 1rem}button.ghost,.tool{color:var(--text);background:#eef2f7}button.ghost:disabled{color:#9aa3ae;background:#f3f4f6}.app-main{flex:1;grid-template-columns:270px minmax(0,1fr);min-height:0;display:grid}.app-main.collapsed{grid-template-columns:minmax(0,1fr)}.app-main>.sidebar{border-right:1px solid var(--border);background:#f9fafb;padding:1rem;overflow:auto}.content{min-width:0;overflow:auto}.content.has-workspace{flex-direction:column;display:flex;overflow:hidden}.sim-main{flex:1;overflow:auto}.pad{padding:1.25rem}.flash{flex:none;padding:.4rem 1rem 0}.flash p{margin:0}.tree nav{padding:.3rem 0 .3rem .6rem;font-size:.85rem}.tree ul{margin:.2rem 0 0;padding-left:.8rem;list-style:none}.tree a{color:var(--text);border-radius:5px;align-items:center;gap:.4rem;padding:.15rem .4rem;text-decoration:none;display:inline-flex}.tree a.active{color:var(--accent);background:#e8efff}.workspace{flex-direction:column;flex:1;min-height:0;display:flex}.doc-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:.4rem 1rem;padding:.5rem 1rem;display:flex}.crumbs{align-items:baseline;gap:.4rem;min-width:0;display:flex}.crumbs h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1rem;overflow:hidden}.crumbs a{color:var(--muted)}.tabs{gap:.25rem;margin-left:auto;display:flex}.tab{color:var(--muted);background:0 0;border-radius:6px;padding:.35rem .75rem}.tab.active{color:var(--accent);background:#e8efff;font-weight:600}.badge.neutral{color:var(--muted);background:#eef2f7}.badge.active-model{color:#166534;background:#dcfce7;font-weight:600}.split{grid-template-columns:minmax(320px, var(--split,45%)) 8px minmax(380px, 1fr);flex:1;min-height:0;display:grid}.pane{flex-direction:column;gap:.9rem;min-width:0;min-height:0;padding:.9rem;display:flex;overflow:auto}.splitter{background:var(--border);cursor:col-resize;touch-action:none}.splitter:hover,.splitter:focus-visible{background:var(--accent)}.source-facts summary{cursor:pointer;font-weight:600}.source-facts[open] summary{margin-bottom:.6rem}.canvas-area{position:relative}.canvas.with-inspector{padding-right:min(340px,50%)}.palette{z-index:5;border:1px solid var(--border);background:#fffffff0;border-radius:8px;align-items:center;gap:.25rem;padding:.25rem;display:flex;position:absolute;top:8px;left:8px;box-shadow:0 2px 8px #0f172a14}.palette .tool{padding:.3rem .6rem;font-size:.8rem}.palette .tool.active{color:var(--accent);background:#e8efff}.palette .sep{background:var(--border);align-self:stretch;width:1px}.popover{z-index:6;width:min(460px,100% - 16px);max-height:calc(100% - 60px);position:absolute;top:52px;left:8px;overflow:auto;box-shadow:0 8px 24px #0f172a29}.inspector-overlay{z-index:4;width:min(340px,50%);max-height:calc(100% - 52px);position:absolute;top:52px;right:0;overflow:auto;box-shadow:-6px 0 20px #0f172a24}.canvas svg{cursor:grab}.node:focus,.edge:focus{outline:none}.node:focus-visible rect{stroke:var(--accent);stroke-width:3px;stroke-dasharray:4 2}.edge:focus-visible path:nth-child(2){stroke-width:4px}.edge.active path:nth-child(2){filter:drop-shadow(0 0 2px #2563eb99)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.hl:focus-visible{outline:3px solid var(--accent)}.hl.ai{text-underline-offset:3px;-webkit-text-decoration:underline dashed #6b8fd6;text-decoration:underline dashed #6b8fd6}.hl.manual{-webkit-text-decoration:underline dotted var(--warn);text-decoration:underline dotted var(--warn);text-underline-offset:3px}.hl.model{-webkit-text-decoration:underline solid var(--ok);text-decoration:underline solid var(--ok);text-underline-offset:3px}.legend .hl{cursor:default;padding:0 .3rem}.item:focus-visible{outline:3px solid var(--accent)}[hidden]{display:none!important}.content.has-workspace>.pad{flex:1;overflow:auto}.inspector-overlay .row>label{flex:1;min-width:0}.inspector-overlay input:not([type=checkbox]){width:100%}
