:root{color-scheme:light;--bg:#f6f5f1;--panel:#fff;--text:#282e2a;--muted:#777d77;--line:#e4e6df;--accent:#2b6555;--accent-soft:#edf4ee;--canvas:#fbfcf9;--dot:#dde2d8;--orange:#b17643;--red:#b54f50;--shadow:0 2px 5px #273e2703;--font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
:root[data-theme=dark]{color-scheme:dark;--bg:#151b19;--panel:#1d2521;--text:#e4e9e1;--muted:#9ba99f;--line:#344039;--accent:#9bc7ac;--accent-soft:#283d30;--canvas:#1a231e;--dot:#344038;--orange:#d8a271;--red:#f29694;--shadow:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:hover:not(:disabled){filter:brightness(.94)}a{color:inherit}input,select{background:var(--panel);border:1px solid var(--line);border-radius:7px;color:var(--text);padding:10px 12px;min-width:0}input[type=number]{width:76px}sup,sub{font-size:.7em}h1,h2,h3,p{margin:0}h2{font-size:15px;font-weight:600}h3{font-size:13px;font-weight:550}p{line-height:1.65}.math{font-family:Georgia,"Times New Roman",serif;font-size:17px}.muted,.micro{color:var(--muted)}.micro{font-size:11px;line-height:1.65}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.topbar{height:83px;padding:0 max(32px,calc((100vw - 1440px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--panel)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:25px;font-weight:650;letter-spacing:-1px}.brand-mark{display:flex;align-items:center;justify-content:center;width:37px;height:40px;border:1px solid var(--accent);border-radius:12px 12px 12px 2px;color:var(--accent);font:italic 35px Georgia}.brand-sub{display:block;font-size:10px;font-weight:400;letter-spacing:1.1px;color:var(--muted);margin-top:1px}.header-actions{display:flex;gap:20px;align-items:center}.local-indicator{color:var(--muted);font-size:11px;display:flex;align-items:center;gap:7px}.local-indicator i,.project-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.icon-button{width:34px;height:34px;display:inline-grid;place-items:center;font-size:20px;border-radius:6px}.icon-button:hover{background:var(--accent-soft)}.quiet-button{padding:8px 4px;font-size:12px;white-space:nowrap}.quiet-button span{margin-left:7px}.outline-button{padding:9px 15px;border:1px solid var(--line);border-radius:7px;font-size:12px;background:var(--panel)}.outline-button span{margin-left:16px}main{max-width:1440px;padding:44px 32px 0;margin:auto}.intro{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:39px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:600;color:var(--accent);margin-bottom:12px}h1{font:40px Georgia,serif;letter-spacing:-1.3px;line-height:1.2}.intro p{color:var(--muted);font-size:13px;margin-top:11px}.paper-link{font-size:10px;text-decoration:none;padding-bottom:4px;color:var(--muted)}.paper-link span{display:block;letter-spacing:1.2px;font-size:9px;margin-bottom:8px}.workspace-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:12px}.workspace-name{display:flex;align-items:center;gap:9px;min-width:0}.workspace-name input{border:0;background:transparent;padding:6px 0;font-weight:550;width:255px;font-size:13px}.save-state{font-size:10px;color:var(--muted);border-left:1px solid var(--line);padding-left:13px;white-space:nowrap}.workspace-actions{display:flex;align-items:center;gap:16px}.workspace-actions select{font-size:11px;padding:7px 9px;max-width:180px;background:transparent}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 305px;gap:20px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:11px;overflow:hidden;box-shadow:var(--shadow)}.panel-heading{height:60px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-heading>div,.results-heading>div{display:flex;align-items:center;gap:10px}.section-index{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.tag{font-size:10px;background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:3px 7px;color:var(--muted)}.history{gap:1px!important}.canvas-wrap{position:relative;background-color:var(--canvas);background-image:radial-gradient(var(--dot) .8px,transparent .8px);background-size:19px 19px}.toolbar{position:absolute;top:15px;left:17px;z-index:2;display:flex;padding:4px;gap:3px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 3px 10px #00000003}.toolbar button{font-size:11px;padding:8px 11px;border-radius:5px;display:flex;gap:6px;align-items:center}.toolbar button span:first-child{font-size:16px;line-height:16px}.toolbar button.active{background:var(--accent-soft);color:var(--accent)}#quiver{display:block;width:100%;height:372px;touch-action:none;user-select:none}#quiver .vertex circle{fill:var(--panel);stroke:var(--accent);stroke-width:1.7}#quiver .vertex text{fill:var(--accent);font:18px Georgia;pointer-events:none}#quiver .vertex.selected circle,#quiver .vertex.pending circle{stroke-width:3;fill:var(--accent-soft)}#quiver .edge .edge-line{stroke:var(--accent);stroke-width:1.8;fill:none;pointer-events:none}#quiver .edge.selected .edge-line,#quiver .edge.pending .edge-line{stroke-width:3.5;stroke:var(--orange)}#quiver .edge text{fill:var(--accent);font:italic 20px Georgia;stroke:var(--canvas);stroke-width:6px;paint-order:stroke;stroke-linejoin:round}#quiver .edge-hit{stroke:transparent;stroke-width:25;fill:none;cursor:pointer}#quiver marker path{fill:var(--accent)}#quiver .vertex{cursor:grab}#quiver .vertex:active{cursor:grabbing}.canvas-footer{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;border-top:1px solid var(--line);background:var(--canvas);gap:10px}.canvas-footer>span{font-size:10px;color:var(--muted);line-height:1.4}.canvas-footer button{font-size:10px}#selection-editor{position:absolute;bottom:56px;left:16px;display:flex;gap:8px;align-items:center;padding:7px 9px;background:var(--panel);border:1px solid var(--line);border-radius:7px;box-shadow:0 4px 16px #00000008}#selection-editor label{font-size:11px;color:var(--muted)}#selection-editor input{width:105px;padding:6px;margin-left:6px}.small-button{background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:7px 10px;font-size:11px}#empty-canvas{position:absolute;inset:45% 0 auto;text-align:center;color:var(--muted);font-family:Georgia;font-size:24px;pointer-events:none}#empty-canvas small{display:block;font:12px var(--font);margin-top:10px}.setup-body{padding:21px 20px 17px}.field-row label{display:block;font-size:11px;margin-bottom:9px}.field-row label span{color:var(--muted);margin-left:5px}.field-row select{width:100%;font-size:12px;height:38px}.field-row input{width:100%;margin-top:8px}.relations-heading{display:flex;justify-content:space-between;align-items:center;margin-top:22px;margin-bottom:10px}.relations{display:flex;gap:7px;flex-wrap:wrap;min-height:31px}.relation{display:flex;align-items:center;gap:10px;font:italic 15px Georgia;padding:5px 9px;background:var(--bg);border-radius:5px}.relation button{font:12px var(--font);color:var(--muted);padding:3px}.setup-body>.micro{margin-top:9px;font-size:10px}#validation{margin-top:18px;border-top:1px solid var(--line);padding-top:14px;font-size:11px;line-height:1.6;color:var(--accent)}#validation.error{color:var(--red)}#validation .valid-icon{display:inline-grid;place-items:center;border:1px solid var(--accent);width:13px;height:13px;font-size:9px;border-radius:50%;margin-right:6px}.compute-settings{display:flex;align-items:center;justify-content:space-between;margin:16px 0 12px;font-size:11px}.compute-settings input{width:56px;padding:6px 8px}.primary-button{display:flex;justify-content:space-between;align-items:center;background:var(--accent);color:var(--panel);border:1px solid var(--accent);border-radius:7px;padding:12px 15px;font-size:12px;font-weight:550;width:100%}:root[data-theme=dark] .primary-button{color:#17231b}.primary-button span{font-size:16px}#cancel{width:100%;margin-top:8px}#progress{margin-top:9px}.results-section{margin-top:34px}.results-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);overflow-x:auto;white-space:nowrap}.tabs button{font-size:12px;padding:0 0 15px;color:var(--muted);border-bottom:2px solid transparent}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tabs button span{margin-left:5px}.results-content{padding-top:23px;min-height:240px}.empty-results{text-align:center;padding:34px 15px;color:var(--muted)}.empty-symbol{font:italic 33px Georgia;color:var(--accent);margin-bottom:12px}.empty-results h3{font-family:Georgia;font-size:20px;font-weight:400;color:var(--text);margin-bottom:9px}.empty-results p{font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.metric{border:1px solid var(--line);border-radius:9px;padding:19px;background:var(--panel)}.metric-label{font-size:11px;color:var(--muted)}.metric-value{font:32px Georgia;margin:10px 0}.metric-foot{font-size:10px;color:var(--muted)}.overview-bottom{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;margin-top:20px}.result-card{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:21px;min-width:0}.result-card h3{font-size:13px;margin-bottom:17px}.result-card p{font-size:12px;color:var(--muted)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{font-weight:500;color:var(--muted);font-size:10px;letter-spacing:.3px;background:var(--bg)}th,td{padding:10px 12px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}.checked-line{font-size:11px;display:flex;gap:9px;align-items:flex-start;line-height:1.7;margin-bottom:10px}.checked-line b{font-weight:400;color:var(--accent)}.text-link{color:var(--accent);font-size:11px;display:inline-block;padding:10px 0 0;text-decoration:none}.notice{padding:12px 15px;border:1px solid var(--line);border-radius:7px;background:var(--accent-soft);font-size:11px;line-height:1.6;margin-bottom:18px;color:var(--accent)}.notice.error{color:var(--red);background:var(--panel)}.basis-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.basis-top p{font-size:12px;color:var(--muted)}.degree-select{display:flex;gap:9px;align-items:center;font-size:12px}.degree-select select{padding:7px 12px}.basis-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:10px;padding:15px 18px}.basis-card summary{cursor:pointer;font:17px Georgia}.basis-card .representative{padding-top:12px}.representative{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.9;overflow-wrap:anywhere;color:var(--muted)}.representative .term{display:block}.basis-label{color:var(--accent);margin-right:15px}.zero-space{padding:27px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font:24px Georgia}.zero-space small{display:block;font:12px var(--font);color:var(--muted);margin-top:10px}.operation-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.operation-controls{display:flex;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.operation-controls label{font-size:12px}.operation-controls select{font-size:12px}.coeff-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow:auto;margin:15px 0}.coeff-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:7px 1px;gap:12px}.coeff-row label{font:17px Georgia;color:var(--accent)}.coeff-row input{width:90px;padding:7px}.operation-result{margin-top:19px;padding:23px;border:1px solid var(--accent);background:var(--accent-soft);border-radius:8px}.operation-result .formula{font:24px Georgia;margin:13px 0;overflow-wrap:anywhere}.operation-result h3{font-size:11px;color:var(--accent)}.operation-run{max-width:210px;margin-top:18px}.operation-log{margin-top:20px}.operation-log details{border-top:1px solid var(--line);padding:12px 0;font-size:12px}.operation-log summary{cursor:pointer}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.method-grid p{margin-bottom:12px}.check-row{padding:12px 0;border-bottom:1px solid var(--line);font-size:12px;display:flex;gap:10px}.check-row span{color:var(--accent)}.check-row:last-child{border:0}.pill-list{display:flex;flex-wrap:wrap;gap:8px}.pill{padding:6px 9px;border-radius:5px;background:var(--bg);font:14px Georgia}.structure-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.structure-grid .wide{grid-column:1/-1}.stale{opacity:.55}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:35px;padding:22px 0 25px;color:var(--muted);font-size:10px}footer b{font-size:14px;font-weight:600;letter-spacing:-.5px;margin-right:4px}footer a{text-decoration:none}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:13px;width:min(610px,calc(100% - 30px));padding:25px;max-height:85vh}dialog::backdrop{background:#13231e66;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-top h2{font:24px Georgia}#modal-body p{font-size:13px;color:var(--muted);margin:12px 0}#modal-body li{font-size:13px;line-height:1.8;margin-bottom:8px}#modal-body .outline-button{display:block;width:100%;margin-top:12px;text-align:left;padding:14px}#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;transition:.2s;background:var(--text);color:var(--panel);padding:12px 20px;border-radius:8px;font-size:12px;z-index:10;max-width:90vw;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1450px){main{padding-top:50px}#quiver{height:420px}.setup-body{padding-top:25px}.relations-heading{margin-top:30px}}
@media(max-width:1100px){.save-state{display:none}.tabs{gap:22px}.tabs button span{display:none}.editor-grid{grid-template-columns:minmax(0,1fr) 280px}.toolbar button{padding:8px}.paper-link{max-width:240px;line-height:1.6}.workspace-actions{gap:9px}}
@media(max-width:800px){main{padding:28px 20px 0}.topbar{padding:0 20px;height:72px}.intro{margin-bottom:25px}.intro h1{font-size:34px}.paper-link{display:none}.header-actions{gap:10px}.local-indicator{display:none}.editor-grid{grid-template-columns:1fr}.setup-body{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px}.field-row{grid-column:1}.relations-heading{grid-column:2;grid-row:1;align-self:start;margin:0}.relations{grid-column:2;grid-row:1;align-self:end;margin-top:35px}.setup-body>.micro{grid-column:2;margin:0}.setup-body>#validation{grid-column:1;grid-row:2;margin:0}.compute-settings{grid-column:1;grid-row:3;margin:0}.setup-body>.primary-button{grid-column:2;grid-row:3}.setup-body>#progress{grid-column:1/-1}.setup-body>#cancel{grid-column:1/-1}.workspace-name input{width:240px}.workspace-actions #import{display:none}.overview-bottom{grid-template-columns:1fr 1fr}.metric{padding:15px}.metric-label{font-size:10px}.tabs{gap:23px}.canvas-wrap #quiver{height:345px}}
@media(max-width:540px){main{padding:26px 14px 0}.topbar{padding:0 16px}.brand{font-size:23px}.header-actions{gap:5px}.header-actions .quiet-button{font-size:11px}.outline-button{padding:8px 10px}.intro h1{font-size:32px}.intro p{font-size:11px}.eyebrow{font-size:9px}.workspace-heading{align-items:flex-start;flex-direction:column;gap:7px}.workspace-name{width:100%}.workspace-name input{flex:1}.workspace-actions{width:100%;justify-content:space-between}.workspace-actions #import{display:block}.workspace-actions select{max-width:180px}.toolbar{top:12px;left:10px;right:10px;justify-content:space-between;gap:0}.toolbar button{font-size:10px;padding:9px 7px}.panel-heading{padding:0 15px;height:53px}.canvas-wrap #quiver{height:310px}.canvas-footer{padding:0 11px;height:48px}.canvas-footer>span{font-size:9px;max-width:75%}.setup-body{display:block;padding:16px}.field-row select{height:42px}.relations-heading{margin:20px 0 10px}.relations{margin:0}.setup-body>.micro{margin-top:10px}.setup-body>#validation{margin-top:16px}.compute-settings{margin:14px 0}.setup-body>#progress{margin-top:9px}.results-heading>.micro{font-size:9px;max-width:160px;text-align:right}.results-section{margin-top:25px}.tabs{gap:23px}.tabs button{font-size:11px}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric-value{font-size:29px}.overview-bottom,.operation-grid,.method-grid,.structure-grid{grid-template-columns:1fr;gap:13px}.structure-grid .wide{grid-column:1}.basis-top{align-items:flex-start;flex-direction:column}.results-content{padding-top:17px}.result-card{padding:17px}footer{flex-direction:column;gap:10px}.basis-card{padding:14px}.result-status{font-size:9px}.operation-controls{gap:8px}button,input,select{min-height:34px}.relation button{min-height:24px}dialog{padding:20px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.paper-credits{display:flex;flex-direction:column;gap:8px}.paper-credits .paper-link{display:block}
@media(max-width:800px){.intro{flex-direction:column;align-items:flex-start;gap:18px}.paper-credits{max-width:100%}}
.algebra-tabs-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;min-width:0;flex-wrap:wrap}#algebra-tabs{display:flex;overflow-x:auto;gap:6px;flex:1;min-width:180px}.algebra-tab{display:flex;flex-shrink:0;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.algebra-tab.active{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.algebra-tab button{background:none;border:0;color:inherit;padding:10px 12px;max-width:250px;text-align:left}.algebra-tab button[role=tab]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.algebra-tab small{display:block;font-size:10px;opacity:.65;margin-top:3px}.algebra-tab button[data-close-algebra]{padding:8px}.path-value{display:inline-block}.path-value small{font:9px sans-serif;opacity:.65;margin-left:5px}.cochain-output,.chain-leading{color:var(--accent);font-weight:700}.term{overflow-wrap:anywhere}.derived-components{display:grid;gap:16px;margin:18px 0}.derived-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}.derived-controls select{max-width:100%;min-width:0}.derived-signature{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.comparison-result{margin-top:16px}.derived-evidence{margin-top:14px}.derived-evidence summary{cursor:pointer}.derived-evidence table{margin-top:12px}
#quiver .vertex text{font-size:calc(18px * var(--diagram-scale,1))}#quiver .edge text{font-size:calc(20px * var(--diagram-scale,1));stroke-width:calc(6px * var(--diagram-scale,1))}#quiver .edge .edge-line,#quiver .vertex circle{vector-effect:non-scaling-stroke}#quiver .edge-hit{stroke-width:calc(30px * var(--diagram-scale,1))}
