@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
.legend-bar #legend{column-gap:18px;row-gap:10px}.legend-bar .legend-button{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left}.legend-label{display:flex;align-items:center;gap:5px}.legend-description{font-size:10px;line-height:1.3;font-weight:400;color:#75849a}.legend-tooltip{display:none;position:absolute;top:calc(100% + 9px);left:0;z-index:10;width:225px;padding:11px 13px;background:#18263e;color:#f1f5ff;border-radius:7px;box-shadow:0 6px 20px #14233c25;font-size:12px;font-weight:400;line-height:1.5;pointer-events:none}.legend-button:hover .legend-tooltip,.legend-button:focus-visible .legend-tooltip{display:block}.legend-button:last-child .legend-tooltip{left:auto;right:0}.legend-caveat{margin:0;padding:0 24px 10px;color:#8190a5;font-size:10px;line-height:1.4}.legend-bar{flex-shrink:0}.legend-caveat{flex-shrink:0}@media(max-width:1050px){.legend-caveat{padding-inline:16px}.legend-bar #legend{column-gap:14px}}@media(max-width:720px){.legend-caveat{padding-inline:13px}.legend-description{font-size:9px;max-width:145px}.legend-tooltip{width:190px}.legend-bar .edge-key{display:none}.legend-bar #legend{row-gap:9px}.legend-bar{align-items:flex-start!important}}
.atlas-panel>rect{fill:#fff;fill-opacity:.8;stroke:#b7c8df;stroke-width:2}.atlas-module-title{font:600 23px 'DM Sans',sans-serif;fill:#314e77;cursor:pointer}.atlas-module-count{font:400 15px 'DM Sans',sans-serif;fill:#7f94b0;text-anchor:end}.atlas-node{cursor:pointer}.atlas-node rect{stroke:#b0a076;stroke-width:.7;fill-opacity:.26}.atlas-node.unaddressed rect{fill-opacity:1;stroke:#a1afc4}.atlas-node text{font:400 8px 'IBM Plex Mono',monospace;fill:#354865;pointer-events:none}.atlas-node.selected rect{stroke:#154fc1;stroke-width:3;fill-opacity:.8}.atlas-node.neighbor:not(.selected) rect{stroke:#5585c9;stroke-width:1.5}.atlas-node:hover rect{stroke:#154fc1;stroke-width:2.5;fill-opacity:.65}.atlas-node.dimmed{opacity:.12}.atlas-node.dimmed:hover{opacity:1}.atlas-edge{fill:none;stroke:#91a2bf;stroke-width:1.5;opacity:.06;pointer-events:none}.atlas-edge.related{stroke:#226de2;stroke-width:3;opacity:.65}.distant .atlas-node text{visibility:hidden}.distant .atlas-node rect{fill-opacity:.6}.graph-controls select{font-size:.7rem;max-width:115px;border:1px solid #dbe3ef;border-radius:5px;padding:4px;color:#64738c;background:white}.graph-expanded .workspace{grid-template-columns:210px minmax(0,1fr)}.graph-expanded .map-section{height:100%!important;min-height:0}.graph-expanded .inspector,.graph-expanded .splitter{display:none}.graph-expanded #expand{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:721px){body .map-section{height:60%}body .inspector{min-height:245px}.graph-footer{flex-wrap:wrap}.graph-controls{margin-left:auto}.map-toolbar .view-switch{flex-shrink:0}}@media(max-width:720px){.map-toolbar{flex-wrap:wrap}.view-switch{margin-left:auto}.graph-footer{flex-wrap:wrap}.graph-footer>span{max-width:none!important}.graph-controls{flex-wrap:wrap;margin-left:auto}.graph-expanded .workspace{height:calc(100dvh - 58px);min-height:0}.graph-expanded .sidebar{display:none}.graph-expanded main{flex:1}.graph-expanded .map-section{min-height:0!important}.graph-controls #page-label{display:none}}
.splitter{height:6px;min-height:6px;cursor:row-resize;background:#e7edf6;position:relative;touch-action:none}.splitter:after{content:'';position:absolute;width:35px;height:2px;border-radius:2px;background:#b8c8e0;left:calc(50% - 17px);top:2px}.splitter:hover,.splitter:focus{background:#c7d9f4}@media(max-width:720px){.splitter{display:none}}
:root{font-family:'DM Sans',system-ui,sans-serif;color:#1f2a41;background:#f5f7fb;font-size:16px;--nav:#121b2c;--line:#dfe5ef;--muted:#6b7890;--blue:#326ddd;--green:#087c52;--red:#c83f51;--amber:#a36a13}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:3px}button{cursor:pointer}button{border:1px solid var(--line);background:white;border-radius:6px;color:#45536c;font-size:.875rem;padding:6px 11px;transition:background .15s}button:hover{background:#edf2fb;color:#1e4fae}button:disabled{opacity:.35;cursor:default}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.topbar{height:65px;display:flex;align-items:center;justify-content:space-between;padding:0 25px;border-bottom:1px solid var(--line);background:white}.brand{display:flex;align-items:center;gap:10px;color:#18243b;font-size:1.25rem;letter-spacing:-.04em}.brand:hover{text-decoration:none}.brand strong{font-weight:500}.brand-mark{background:var(--nav);color:white;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;font-size:1.5rem;font-family:Georgia,serif}.beta{margin-left:13px;padding:4px 7px;font-size:.625rem;font-weight:700;letter-spacing:.12em;color:#687790;background:#eef2f8;border-radius:4px}.top-right{display:flex;align-items:center;gap:18px;font-size:.8125rem;color:var(--muted)}.quiet{border:0;background:transparent;font-size:.8125rem}.workspace{display:grid;grid-template-columns:244px minmax(0,1fr);height:calc(100vh - 65px)}.sidebar{background:var(--nav);color:#bac7dd;display:flex;flex-direction:column;min-height:0;border-right:1px solid #1a263b}.search-wrap{margin:20px 15px 23px;display:flex;align-items:center;gap:7px;padding:8px 9px;background:#1e2a40;border:1px solid #32405a;border-radius:6px}.search-wrap>span{font-size:1.25rem;color:#91a4c6}.search-wrap input{width:100%;min-width:0;background:transparent;border:0;color:#edf3ff;font-size:.875rem;outline:none}.search-wrap input::placeholder{color:#94a3bd}.search-wrap kbd{font-size:.75rem;color:#8599b8;border:1px solid #425371;border-radius:3px;padding:0 4px}.sidebar-heading{display:flex;justify-content:space-between;padding:0 21px 11px;font-size:.6875rem;letter-spacing:.11em;color:#8496b5;font-weight:600}.sidebar nav{overflow:auto;padding:0 9px 20px;flex:1}.module-button{width:100%;display:flex;align-items:center;gap:10px;text-align:left;border:0;background:none;color:#bac7dd;margin:2px 0;padding:9px 12px;font-size:.875rem}.module-button:hover{background:#22324e;color:white}.module-button.active{background:#233b60;color:#f2f7ff;box-shadow:inset 2px 0 #7aafff}.module-button .num{color:#7287aa;font:400 .6875rem 'IBM Plex Mono',monospace;min-width:18px}.module-button.active .num{color:#9cc3ff}.module-button .module-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-button small{color:#7f96b8;font-size:.6875rem}.nav-group{font-size:.6875rem;text-transform:uppercase;letter-spacing:.12em;color:#7287a7;margin:20px 12px 7px}.search-result{display:flex;align-items:flex-start;gap:8px;flex-direction:row}.search-result .result-content{min-width:0;flex:1}.search-result strong{font:400 .8125rem 'IBM Plex Mono',monospace;word-break:break-word;color:#e2e9f7;display:block}.search-result small{display:block;margin-top:4px}.sidebar-foot{border-top:1px solid #2a354b;margin:0 16px;display:flex;align-items:center;gap:10px;padding:15px 0 20px}.sidebar-foot strong{font-size:.75rem;font-weight:500;display:block}.sidebar-foot span:not(.pin-icon){font:400 .6875rem 'IBM Plex Mono',monospace;color:#6f83a6;display:block;margin-top:5px}.pin-icon{font-size:1.4rem;color:#7195cb}main{min-width:0;min-height:0;display:flex;flex-direction:column}.map-section{display:flex;flex-direction:column;height:47%;min-height:295px}.map-toolbar{display:flex;justify-content:space-between;align-items:center;padding:18px 24px 13px;gap:10px}.crumb{display:flex;align-items:center;gap:12px;min-width:0}.rank{border:1px solid #d7dfed;background:white;border-radius:6px;font:400 .875rem 'IBM Plex Mono',monospace;padding:8px;color:#7a88a0}.crumb h1{font-size:1.1rem;font-weight:600;margin:0;letter-spacing:-.025em}.crumb p{color:var(--muted);font-size:.75rem;margin:5px 0 0}.view-switch{display:flex;padding:3px;border:1px solid #dbe2ee;border-radius:7px;background:#e9eef6;white-space:nowrap}.view-switch button{border:0;background:transparent;font-size:.8125rem;padding:5px 10px}.view-switch button.active{background:white;color:#244469;box-shadow:0 1px 4px #2437551a}.legend-bar{padding:0 24px 13px;display:flex;gap:10px;align-items:center}.legend-bar #legend{display:flex;gap:13px;flex-wrap:wrap}.legend-button{font-size:.75rem;border:0;padding:0;background:none;display:flex;align-items:center;gap:5px;color:#6a768d}.legend-button:hover{background:none}.legend-button.chosen{color:#17284a;font-weight:700}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot.done{background:#25a672}.dot.broken{background:#e66770}.dot.progress{background:#6297f3}.dot.matched{background:#dfa940}.dot.unaddressed{background:white;border:1px solid #a0adbf}.edge-key{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:.6875rem;color:#8390a5;white-space:nowrap}.edge-key i{display:inline-block;width:17px;border-top:1.5px solid #758db0}.edge-key i.dashed{border-top-style:dashed;margin-left:7px}.graph-wrap{position:relative;overflow:auto;min-height:100px;flex:1;background-image:radial-gradient(#cfdaeb .8px,transparent .8px);background-size:18px 18px;background-color:#f5f7fb;border-top:1px solid #e4e9f2;scroll-behavior:smooth}.graph-wrap svg{display:block;min-width:100%;touch-action:pan-x pan-y}.graph-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 17px 8px 24px;background:#f8faff;border-top:1px solid #e3e9f2;gap:10px}.graph-footer>span{font-size:.6875rem;color:#8a97ad}.graph-controls{display:flex;align-items:center;gap:3px}.graph-controls button{font-size:.75rem;padding:3px 8px;background:transparent}.graph-controls>span{font-size:.6875rem;color:#738199;min-width:30px;text-align:center}.graph-controls .divider{height:17px;min-width:0;width:1px;background:#d9e1ec;margin:0 6px}.node{cursor:pointer;outline:none}.node .node-box{fill:white;stroke:#ccd5e3;stroke-width:1.2;filter:drop-shadow(0 2px 2px #1f35520a)}.node:hover .node-box{stroke:#7397ce;stroke-width:1.7}.node.selected .node-box{stroke:#326ddd;stroke-width:2;filter:drop-shadow(0 3px 6px #2e60ad20)}.node.done .node-box{fill:#f0faf5;stroke:#aad9c3}.node.broken .node-box{fill:#fff4f4;stroke:#ecc0c5}.node.progress .node-box{fill:#edf4ff;stroke:#b4cbf2}.node.matched .node-box{fill:#fffcf4;stroke:#e7d8b5}.node.selected .node-box{stroke:#326ddd}.node-title{font:500 12px 'IBM Plex Mono',monospace;fill:#293a54}.node-subtitle{font:400 11px 'DM Sans',sans-serif;fill:#7c8ca2}.node-number{font:400 10px 'IBM Plex Mono',monospace;fill:#9aa7b9}.node-kind{font:400 10px 'DM Sans',sans-serif;fill:#8796aa}.reference-edge{fill:none;stroke:#88a1c6;stroke-width:1;opacity:.36}.reference-edge.related{stroke:#4079cc;stroke-width:1.7;opacity:.9}.order-edge{fill:none;stroke:#b1bfd2;stroke-width:1;stroke-dasharray:3 4;opacity:.7}.module-edge{fill:none;stroke:#97a9c2;stroke-width:1.2;opacity:.48}.module-node .node-title{font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600}.module-node .node-subtitle{font-size:11px}.inspector{background:white;flex:1;min-height:270px;display:flex;flex-direction:column;border-top:1px solid #ccd6e5;box-shadow:0 -3px 18px #30425f04}.inspector-head{display:flex;justify-content:space-between;align-items:center;padding:14px 23px 9px;gap:10px}.selected-heading{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.selected-heading h2{margin:0;font:500 1rem 'IBM Plex Mono',monospace;letter-spacing:-.025em;overflow-wrap:anywhere}.selected-heading>span:last-child:not(.status-badge){font-size:.6875rem;color:#8a97aa}.status-badge{font-size:.6875rem;white-space:nowrap;border-radius:4px;padding:4px 7px}.status-badge.done{background:#e2f5eb;color:#1d7752}.status-badge.progress{background:#e8f0ff;color:#3b65b3}.status-badge.broken{background:#ffebed;color:#b2404b}.status-badge.matched{background:#fff3d9;color:#936a1e}.status-badge.unaddressed{background:#f1f4f8;color:#6b7a91}.step-controls{display:flex;gap:5px;white-space:nowrap}.step-controls button{font-size:.75rem}.review-note{font-size:.75rem;line-height:1.55;margin:0 23px 11px;color:#7a879b;max-width:1050px}.review-note a{font-weight:500}.source-grid{display:grid;grid-template-columns:1fr 1fr;flex:1;min-height:100px;border-top:1px solid var(--line)}.source-pane{display:flex;flex-direction:column;min-width:0;min-height:0}.source-pane+.source-pane{border-left:1px solid var(--line)}.source-pane>header{height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 17px;background:#fafbfd;border-bottom:1px solid #e7ecf3}.source-pane>header>div{display:flex;gap:10px;align-items:center;min-width:0;overflow:hidden}.source-pane>header a{white-space:nowrap;font-size:.6875rem;color:#7187a8}.source-pane>header span:not(.language){font:400 .6875rem 'IBM Plex Mono',monospace;color:#95a0b1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.language{font-size:.625rem;letter-spacing:.13em;font-weight:700;color:#647891}.language.lean{color:#3e75b7}.source-pane select{font-size:.6875rem;max-width:330px;min-width:0;width:100%;border:0;background:transparent;color:#617694;cursor:pointer}.source-scroll{overflow:auto;padding:14px 0 24px;min-height:0;flex:1;scrollbar-width:thin;font:400 .8125rem/1.75 'IBM Plex Mono',ui-monospace,monospace}.code-line{display:flex;min-width:max-content;min-height:1.75em}.line-number{user-select:none;width:49px;text-align:right;padding-right:13px;color:#b1baca;flex-shrink:0;font-size:.6875rem}.line-code{white-space:pre;padding-right:24px}.kw{color:#7c4dbe}.lit{color:#b27b16}.comment{color:#8796a3}.string{color:#20806c}.source-empty{padding:30px;max-width:440px;margin:auto;color:#8391a6;font:400 .875rem/1.65 'DM Sans',sans-serif}.source-empty strong{display:block;font-size:1rem;color:#415471;margin-bottom:8px}.relations{display:flex;align-items:center;gap:7px;flex-wrap:wrap;max-height:70px;overflow:auto;border-top:1px solid #edf0f5;padding:8px 22px;color:#95a0b2;font-size:.6875rem}.relations button{padding:3px 7px;background:#f7f9fc;border-color:#e4eaf3;font:400 .6875rem 'IBM Plex Mono',monospace}.relation-label{margin-right:3px;color:#8c9ab0}.empty-graph{font:400 15px 'DM Sans',sans-serif;fill:#798ba5}dialog{max-width:620px;width:calc(100% - 40px);border:1px solid #d2dceb;border-radius:12px;padding:36px;color:#4d607d;box-shadow:0 20px 100px #12244040}dialog::backdrop{background:#0c1a326b;backdrop-filter:blur(3px)}dialog h2{font-size:1.7rem;line-height:1.2;letter-spacing:-.04em;font-weight:500;color:#1f3352;margin:13px 0 22px}dialog p{font-size:.875rem;line-height:1.7}dialog code{font-size:.8125rem;background:#f0f4fa;padding:2px 4px;border-radius:3px}.dialog-close{position:absolute;right:17px;top:13px;border:0;font-size:1.4rem}.eyebrow{font-size:.6875rem;letter-spacing:.13em;color:#7a8fab}dialog footer{font-size:.75rem;line-height:1.8;color:#8b9ab1;margin-top:20px;border-top:1px solid #e4eaf3;padding-top:15px}#about-stats{display:flex;gap:24px;padding:15px 0;border-block:1px solid #e6ebf3}#about-stats strong{font-size:1.6rem;display:block;line-height:1.5;color:#274568}#about-stats span{font-size:.75rem;color:#7a8faa}.error-banner{padding:35px;color:#b83a48;font-size:1rem}.snapshot-pill{font-size:.6875rem;color:#597fae}.no-results{font-size:.875rem;line-height:1.6;padding:20px;color:#91a6c8}@media(min-width:1700px){.map-section{height:50%}.workspace{grid-template-columns:265px 1fr}.source-scroll{font-size:.875rem}.node-title{font-size:13px}}@media(max-width:1050px){.workspace{grid-template-columns:200px 1fr}.topbar{padding:0 17px}.beta{display:none}.map-toolbar{padding-inline:16px}.legend-bar{padding-inline:16px}.legend-bar #legend{gap:8px}.edge-key{display:none}.inspector-head{padding-inline:16px}.review-note{margin-inline:16px}.step-controls button{font-size:.6875rem;padding:5px}.source-pane>header{padding-inline:10px}.source-pane>header a{display:none}.graph-footer>span{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media(max-width:720px){.topbar{height:58px;padding:0 13px}.brand{font-size:1.05rem}.top-right #snapshot{display:none}.top-right{gap:0}.workspace{height:auto;min-height:calc(100vh - 58px);display:flex;flex-direction:column}.sidebar{min-height:0;max-height:230px}.search-wrap{margin:12px 14px 8px}.sidebar-heading,.sidebar-foot{display:none}.sidebar nav{display:flex;gap:4px;overflow:auto;padding:0 10px 9px;min-height:44px;max-height:130px}.module-button{width:auto;flex-shrink:0;padding:7px 10px}.module-button .num{min-width:auto}.module-button small,.nav-group{display:none}.search-result{max-width:230px}.search-result small{display:block}.map-section{height:385px;min-height:385px}.map-toolbar{padding:14px 13px 10px}.crumb h1{font-size:.9375rem}.crumb p{font-size:.6875rem}.rank{display:none}.view-switch button{font-size:.6875rem;padding:5px 7px}.legend-bar{padding:0 13px 10px}.legend-button{font-size:.6875rem}.graph-footer{padding:6px 10px}.graph-footer>span{font-size:.625rem;max-width:160px}.inspector{height:auto;min-height:600px}.inspector-head{align-items:flex-start;padding:14px 13px 8px;flex-wrap:wrap}.selected-heading h2{font-size:.875rem}.step-controls{margin-left:auto}.review-note{margin-inline:13px}.source-grid{grid-template-columns:1fr;display:grid;flex:none}.source-pane{height:310px}.source-pane+.source-pane{border-left:0;border-top:2px solid #d6e0ee}.source-pane>header a{display:inline}.relations{max-height:110px}.topbar .quiet{font-size:.75rem}dialog{padding:25px}dialog h2{font-size:1.5rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
