:root{--bg:#f3f5f8;--panel:#fff;--line:#dde2e9;--line2:#eceff3;--ink:#1d2733;--ink2:#4b5a6b;--muted:#7a8796;--accent:#2b7de9;--accent-soft:#e6f0fd;--sel:#f2b01e;--danger:#c0504d;--ok:#2f9e5b;--warn:#c98a12;--manual:#d9822b;--radius:10px;--touch:44px;--dock-w:372px;--rail-w:64px;--top-h:56px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.4}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}input,textarea,select,.rec-body,.snippet,.summary{-webkit-user-select:text;user-select:text}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}button:disabled{opacity:.4;cursor:default}input,textarea,select{font:inherit;color:var(--ink);border:1px solid var(--line);min-height:var(--touch);background:#fff;border-radius:8px;outline:none;padding:9px 10px;font-size:16px}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--accent);flex:none}input[type=range]{min-height:0;box-shadow:none;accent-color:var(--accent);border:0;padding:0}textarea{resize:vertical;width:100%;min-height:72px}h2,h3{margin:0}h2{font-size:17px}h3{font-size:14px}mark{color:inherit;background:#ffe58a;border-radius:2px}details>summary{cursor:pointer;list-style:none}details>summary::-webkit-details-marker{display:none}.grow{flex:auto;min-width:0}.muted{color:var(--muted)}.small{font-size:13px}.left{text-align:left}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row{align-items:center;gap:10px;margin:6px 0;display:flex}.row select{flex:1}.check{min-height:var(--touch);align-items:center;gap:8px;display:flex}.ok{color:var(--ok);font-size:13px;font-weight:600}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.btn{min-height:var(--touch);border:1px solid var(--line);white-space:nowrap;color:var(--ink);background:#fff;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.btn:active:not(:disabled){background:var(--line2)}.btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:active:not(:disabled){background:#1f68c8}.btn.ghost{color:var(--ink2);background:0 0;border-color:#0000}.btn.danger{color:var(--danger);border-color:#efc9c8}.btn.small{min-height:36px;padding:0 10px;font-size:13px}.btn svg{flex:none}.icon-btn{width:var(--touch);height:var(--touch);color:var(--ink2);border-radius:9px;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:active:not(:disabled){background:var(--line2)}.icon-btn.small{width:36px;height:36px}.icon-btn.small svg{width:16px;height:16px}.icon-btn.danger{color:var(--danger)}.linkish{color:var(--accent);min-height:30px;padding:4px 6px;font-size:12px;font-weight:600}.plain{padding:4px 0;display:block}.app{grid-template-columns:var(--rail-w) 1fr;grid-template-rows:var(--top-h) 1fr;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);grid-template-areas:"top top""rail stage";display:grid}.app.dock-open{grid-template-columns:var(--rail-w) 1fr var(--dock-w);grid-template-areas:"top top top""rail stage dock"}.topbar{background:var(--panel);border-bottom:1px solid var(--line);grid-area:top;align-items:center;gap:6px;min-width:0;padding:0 8px;display:flex}.chart-btn{min-height:var(--touch);border:1px solid var(--line);border-radius:9px;align-items:center;gap:8px;min-width:0;max-width:340px;padding:0 12px;display:flex}.chart-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.tb-group{margin-left:6px;display:flex}.designer-flag{color:#8f2f2c;background:#fbe6e5;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:700}.rail{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;grid-area:rail;align-items:center;gap:6px;padding:10px 0;display:flex}.rail-btn{width:50px;height:50px;color:var(--ink2);border-radius:11px;flex-direction:column;justify-content:center;align-items:center;display:flex}.rail-btn small{margin-top:-1px;font-size:10px;font-weight:600}.rail-btn.on{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}.rail-btn:active{background:var(--line2)}.rail-sep{background:var(--line);width:34px;height:1px;margin:4px 0}.stage{flex-direction:column;grid-area:stage;min-width:0;min-height:0;display:flex}.chart-area{flex:auto;min-height:0;position:relative;overflow:hidden}.chart-host{touch-action:none;background-color:var(--bg);background-image:radial-gradient(#d3d9e1 1px,#0000 1px);background-size:24px 24px;position:absolute;inset:0}.dock{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;grid-area:dock;min-height:0;display:flex}.tabs{border-bottom:1px solid var(--line);flex:none;display:flex}.tab{min-height:54px;color:var(--muted);border-bottom:2.5px solid #0000;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1px;font-size:11px;font-weight:600;display:flex}.tab svg{width:20px;height:20px}.tab.on{color:var(--accent);border-bottom-color:var(--accent)}.tab.truth-tab{color:#a3403d}.dock-body,.panel{flex-direction:column;flex:1;min-height:0;display:flex}.panel-head{flex-wrap:wrap;flex:none;align-items:center;gap:8px;min-height:52px;padding:12px 14px 8px;display:flex}.panel-head h2{flex:0 auto;min-width:0}.list,.scroll,.reader-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;padding:4px 12px 24px;overflow-y:auto}.list{flex-direction:column;gap:8px;display:flex}.modal .list{padding:0;overflow:visible}.actions{flex-wrap:wrap;flex:none;gap:8px;padding:4px 12px 8px;display:flex}.hint,.note{color:var(--muted);flex:none;padding:2px 14px 8px;font-size:12.5px}.note{background:var(--line2);border-radius:8px;margin-top:6px;padding:10px 12px}.chips{flex-wrap:wrap;flex:none;align-items:center;gap:6px;padding:2px 12px 8px;display:flex}.chip{border:1px solid var(--line);min-height:36px;color:var(--ink2);background:#fff;border-radius:18px;align-items:center;gap:5px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.chip b{color:var(--muted);font-weight:700}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.chip.on b{color:var(--accent)}.seg{border:1px solid var(--line);border-radius:10px;flex:none;margin:2px 12px 8px;display:flex;overflow:hidden}.seg button{min-height:40px;color:var(--ink2);border-left:1px solid var(--line);flex:1;padding:0 6px;font-size:13px;font-weight:600}.seg button:first-child{border-left:0}.seg button.on{background:var(--accent-soft);color:var(--accent)}.seg button b{color:var(--muted);margin-left:3px}.seg.compact{margin:0}.seg.compact button{min-height:36px;padding:0 12px}.searchbox{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:10px;flex:none;align-items:center;gap:6px;margin:0 12px 8px;padding-left:10px;display:flex}.scroll .searchbox{margin:0 0 6px}.searchbox input{min-width:0;box-shadow:none;border:0;flex:1;padding-left:2px}.card{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:100%;padding:10px 12px;display:block}button.card:active,.card.btn-row:active{background:var(--line2)}.card.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.card-top{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.card-title{margin-top:3px;font-weight:600}.node-card{align-items:center;gap:10px;min-height:56px;display:flex}.node-card .card-title{margin:0}.rec-card .card-title{font-size:14.5px}.snippet{color:var(--ink2);margin:4px 0 2px;font-size:13px}.held{color:var(--ok);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700}.group{flex-direction:column;gap:8px;display:flex}.group-title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:10px 0 2px;font-size:12px;font-weight:700}.type-icon{flex:none}.type-ghost{width:22px;height:22px;color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.tag{color:#9a5a14;background:#fbefe1;border-radius:10px;padding:2px 7px;font-size:11px;font-weight:700}.grade{border:1px solid;border-radius:6px;flex:none;padding:2px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;font-weight:700}.g-confirmed{color:#24734a;background:#ecf7f0;border-color:#b4dcc4}.g-probable{color:#8a6408;background:#fdf6e3;border-color:#ecd59b}.g-tentative{color:#8f2f2c;background:#fbeeee;border-color:#ebc0bf}.strength{border-radius:10px;flex:none;padding:2px 8px;font-size:11.5px;font-weight:700}.st-confirmed{color:#24734a;background:#ecf7f0}.st-probable{color:#8a6408;background:#fdf6e3}.st-tentative{color:#8f2f2c;background:#fbeeee}.src{text-transform:uppercase;letter-spacing:.04em;color:#fff;border-radius:6px;flex:none;padding:2px 7px;font-size:11px;font-weight:700}.src-intake{background:#5f7185}.src-open{background:#2a9d8f}.src-docs{background:#3b82c4}.src-fin{background:#b58f12}.src-access{background:#d07a1e}.src-comms{background:#c94d7d}.section{border-bottom:1px solid var(--line2);padding:4px 0 10px}.section>summary{min-height:var(--touch);align-items:center;gap:8px;display:flex}.section>summary:before{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:7px;height:7px;margin:0 4px 0 2px;transition:transform .15s;transform:rotate(-45deg)}.section[open]>summary:before{transform:rotate(45deg)}.sec-title{font-size:14px;font-weight:700}.count{color:var(--muted);background:var(--line2);border-radius:10px;padding:1px 7px;font-size:12px;font-weight:700}.sec-body{flex-direction:column;gap:6px;display:flex}.empty{text-align:center;color:var(--muted);padding:26px 12px}.empty-title{color:var(--ink2);margin-bottom:4px;font-weight:700}.empty-body{font-size:13.5px}.empty.small{padding:16px;font-size:13px}.item-head{flex:none;align-items:flex-start;gap:12px;padding:14px 14px 8px;display:flex}.item-name{cursor:text;font-size:19px}.name-edit{width:100%;font-weight:700}.kv{border-bottom:1px dashed var(--line2);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0;display:flex}.kv .k{color:var(--muted);min-width:96px;font-size:13px}.kv .v{-webkit-user-select:text;user-select:text;flex:1;font-weight:600}.kv.conflict .v{color:var(--warn)}.src-line{flex-wrap:wrap;gap:2px;width:100%;margin-top:-4px;margin-left:96px;display:flex}.warn{color:var(--warn);background:#fdf3dd;border-radius:10px;padding:2px 7px;font-size:11px;font-weight:700}.warn-line{color:#7d5408;background:#fdf3dd;border-radius:8px;margin:6px 0;padding:8px 10px;font-size:13px}.add-attr{gap:6px;margin-top:6px;display:flex}.add-attr input{flex:1;min-width:0}.rel-group{margin-bottom:4px}.conn{min-height:var(--touch);border-bottom:1px dashed var(--line2);text-align:left;align-items:center;gap:8px;width:100%;padding:6px 0;display:flex}.conn .arrow{text-align:center;width:18px;color:var(--muted);flex:none;font-weight:700}.notes{margin-top:4px}.link-card{margin-bottom:10px}.props{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.prop{background:var(--line2);border-radius:6px;padding:3px 8px;font-size:13px}.prop.conflict{color:#7d5408;background:#fdf3dd}.evidence{text-align:left;border:1px solid var(--line2);background:#fafbfc;border-radius:8px;width:100%;margin-bottom:6px;padding:8px 10px;display:block}.evidence:active{background:var(--line2)}.reader .panel-head{border-bottom:1px solid var(--line2)}.rec-title{margin:12px 0 4px;font-size:19px}.meta{color:var(--muted);flex-wrap:wrap;gap:6px;font-size:13px;display:flex}.meta.small{margin-top:2px;font-size:12.5px}.rec-body{white-space:pre-wrap;margin:14px 0;font-family:Georgia,Iowan Old Style,Times New Roman,serif;font-size:15.5px;line-height:1.6}.mention{color:var(--ink);background:color-mix(in srgb, var(--mc) 16%, transparent);box-shadow:inset 0 -2px 0 var(--mc);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;margin:0 -1px;padding:1px 3px;font-weight:600;display:inline}.mention.on{background:color-mix(in srgb, var(--mc) 38%, transparent)}.mention-inline{background:#fff3c4;border-radius:3px;padding:0 3px}.mention-card{border:1px solid var(--accent);border-radius:var(--radius);z-index:2;background:#fff;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;display:flex;position:sticky;bottom:8px;box-shadow:0 6px 20px #14284624}.claims-head{justify-content:space-between;align-items:center;margin:18px 0 8px;display:flex}.claim{border-bottom:1px dashed var(--line2);padding:8px 0}.claim-main{flex-wrap:wrap;align-items:baseline;gap:5px;display:flex}.claim .ent{font-weight:600}.claim .rel{color:var(--accent);font-size:13.5px}.claim .rel.allegation{color:var(--danger)}.claim-props{color:var(--ink2);margin-top:2px;font-size:13px}.claim-act{margin-top:4px}.claim.attr{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.pick{cursor:pointer;align-items:center;gap:10px;min-height:56px;display:flex}.pick.on{border-color:var(--accent);background:#f7fbff}.slots{flex:none;align-items:center;gap:4px;padding:0 12px 8px;display:flex}.slot{border:1px solid var(--line);border-radius:10px;flex:1;align-items:center;gap:6px;min-width:0;min-height:48px;padding:6px 8px;font-size:14px;font-weight:600;display:flex}.slot.empty{border-style:dashed;font-weight:400}.slot-k{color:#fff;background:var(--ink2);border-radius:5px;flex:none;padding:1px 6px;font-size:11px;font-weight:800}.opts{flex:none;padding:0 14px 6px}.opts .row input[type=range]{flex:1}.opts details .chips{padding:6px 0}.path{cursor:pointer}.path-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.path-chain{flex-wrap:wrap;align-items:center;gap:4px;font-size:13.5px;display:flex}.path-seg{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.path-node{background:var(--line2);border-radius:6px;padding:2px 7px;font-weight:700}.path-edge{color:var(--accent);font-size:12.5px}.toggle{min-height:var(--touch);cursor:pointer;align-items:center;gap:10px;display:flex}.toggle.off{opacity:.5}.legend{color:var(--ink2);flex-direction:column;gap:4px;margin-top:4px;font-size:13px;display:flex}.legend svg{vertical-align:middle}.truth .banner{color:#8f2f2c;background:#fbe6e5;border-radius:8px;margin:0 12px 8px;padding:8px 10px;font-size:13px;font-weight:600}.stats{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px;display:grid}.stats>div{background:var(--line2);text-align:center;border-radius:8px;padding:8px 6px;font-size:13px}.stats b{font-size:18px}.stats span{color:var(--muted);font-size:11px;display:block}.btn-row{align-items:center;gap:8px;display:flex}.pattern{margin-bottom:8px;padding:0}.pat-head{width:100%;min-height:var(--touch);align-items:center;gap:10px;padding:10px 12px;display:flex}.bar{background:var(--line2);border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.bar i{background:var(--ok);height:100%;display:block}.pat-body{padding:0 12px 10px}.pat-body .summary{color:var(--ink2);margin:4px 0 8px;font-size:13.5px}.pat-item{border-bottom:1px dashed var(--line2);align-items:center;gap:8px;padding:5px 0;font-size:13px;display:flex}.pat-item .dot{width:9px;height:9px}.pat-item.ok .dot{background:var(--ok)}.pat-item.mid .dot{background:var(--warn)}.pat-item.bad .dot{background:var(--danger)}.pat-item.inf .dot{border:2px solid var(--muted);background:#fff}.zoom{border:1px solid var(--line);z-index:5;background:#fff;border-radius:12px;flex-direction:column;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 2px 10px #14284614}.selbar{border:1px solid var(--line);z-index:6;background:#fff;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;width:fit-content;max-width:calc(100% - 24px);margin:0 auto;padding:6px;display:flex;position:absolute;bottom:14px;left:0;right:0;box-shadow:0 6px 24px #14284629}.sel-count{color:var(--ink2);white-space:nowrap;padding:0 6px;font-size:13px;font-weight:700}.anchor{position:relative}.popover{border:1px solid var(--line);z-index:20;background:#fff;border-radius:12px;padding:6px;position:absolute;box-shadow:0 10px 30px #14284633}.arrange-pop{min-width:210px;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.menu-item{text-align:left;width:100%;min-height:var(--touch);border-radius:8px;padding:0 12px;font-size:14px;font-weight:600;display:block}.menu-item:active{background:var(--line2)}.hintbar{color:#fff;z-index:6;white-space:nowrap;background:#1d2733;border-radius:12px;align-items:center;gap:10px;width:fit-content;margin:0 auto;padding:6px 6px 6px 14px;font-size:14px;display:flex;position:absolute;top:12px;left:0;right:0}.hintbar .btn.ghost{color:#cfd8e3}.chart-empty{text-align:center;max-width:340px;color:var(--ink2);pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.chart-empty b{color:var(--ink);font-size:17px}.chart-empty .btn{pointer-events:auto}.toast{top:calc(var(--top-h) + 72px + env(safe-area-inset-top));color:#fff;z-index:100;pointer-events:none;background:#1d2733;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:600;animation:.18s ease-out toast-in;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0003}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-6px)}}.timeline{background:var(--panel);border-top:1px solid var(--line);flex-direction:column;flex:none;height:300px;display:flex}.tl-head{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 8px 0 14px;display:flex}.tl-lanes{padding:4px 14px 6px}.tl-lanes .chip{min-height:32px;font-size:12px}.tl-lanes .chip:not(.on){opacity:.5}.tl-body{flex:1;min-height:0;position:relative;overflow:hidden auto}.tl-body svg{display:block}.tick{stroke:var(--line2);stroke-width:1px}.tick.major{stroke:var(--line)}.tick-label{fill:var(--muted);font-size:11px}.lane-bg{fill:#0000;stroke:var(--line2)}.lane-label{font-size:11.5px;font-weight:700}.mk{cursor:pointer}.mk.on circle:not([fill=transparent]),.mk.on rect{stroke:var(--sel);stroke-width:3px}.mk-probable{fill-opacity:.7}.mk-tentative{fill-opacity:.4}.tl-detail{border:1px solid var(--line);pointer-events:none;background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;gap:3px;max-width:340px;padding:8px 10px;font-size:13px;display:flex;position:absolute;top:6px;right:10px;box-shadow:0 4px 16px #1428461f}.tl-list{flex:1;padding:0 8px 12px;overflow-y:auto}.tl-row{width:100%;min-height:var(--touch);text-align:left;border-bottom:1px solid var(--line2);align-items:center;gap:10px;padding:0 8px;font-size:14px;display:flex}.tl-row.on{background:var(--accent-soft)}.tl-row .when{color:var(--ink2);flex:none;width:150px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px}.modal-back{z-index:50;background:#141e2d61;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;flex-direction:column;width:480px;max-width:100%;max-height:100%;display:flex;box-shadow:0 20px 60px #00000040}.modal.wide{width:620px}.modal-head{align-items:center;padding:10px 10px 6px 18px;display:flex}.modal-body{flex-direction:column;gap:10px;padding:0 18px 18px;display:flex;overflow-y:auto}.modal-body p{margin:0}.modal-foot{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.field{color:var(--ink2);flex-direction:column;flex:1;gap:4px;font-size:13px;font-weight:600;display:flex}.form-row{gap:10px;display:flex}.type-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.type-btn{border:1px solid var(--line);border-radius:10px;flex-direction:column;align-items:center;gap:4px;min-height:68px;padding:8px 2px;font-size:11.5px;font-weight:600;display:flex}.type-btn.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.link-ends{align-items:center;gap:8px;display:flex}.link-ends .end{border:1px solid var(--line);border-radius:10px;flex:1;align-items:center;gap:8px;min-width:0;padding:8px 10px;font-weight:700;display:flex}.rel-pick{padding:0}.chart-row{align-items:center;gap:4px;display:flex}.setting{border-bottom:1px solid var(--line2);align-items:center;gap:12px;padding:8px 0;display:flex}.confirm{background:#fbeeee;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.confirm p{color:#6e2523;width:100%;font-size:14px}.intro-list{color:var(--ink2);flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:14px;display:flex}.selbar .btn{padding:0 11px}.nowrap{white-space:nowrap}.tl-head{flex-wrap:nowrap;gap:4px;padding-top:2px}.tl-head h3{white-space:nowrap;margin-right:4px}.tl-head .check{white-space:nowrap;gap:5px;margin-right:4px}.tl-head .icon-btn{width:38px;height:38px}.tl-lanes{flex-wrap:nowrap;gap:4px;padding-top:0;overflow-x:auto}.tl-lanes .chip{white-space:nowrap;min-height:30px;padding:0 9px;font-size:11.5px}
