:root{--bg:#f4f3ef;--panel:#fff;--overlay:#ffffffeb;--ink:#1f2328;--muted:#6b7078;--line:#e2e0da;--hover:#0000000d;--accent:#2f6fde;--accent-soft:#e3ecfc;--warn:#b26a00;--warn-soft:#fff3d6;--match:#ffe58a;--tok-keyword:#7c4dbd;--tok-attribute:#0b7a75;--tok-string:#3f7a1f;--tok-number:#b05a00;--paper:#fff;--paper-ink:#1f2328;--paper-muted:#6b7078;--paper-line:#e2e0da;--paper-warn:#b26a00;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--radius-sm:6px;--radius-md:10px;--shadow-sm:0 1px 4px #0000000f;--shadow-md:0 8px 24px #00000024;--z-canvas:0;--z-overlay:10;--z-card:20;--z-popover:100;--mono:ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);font-family:Inter,system-ui,-apple-system,sans-serif;font-size:13px}@media (prefers-color-scheme:dark){:root{--bg:#17181b;--panel:#212327;--overlay:#212327eb;--ink:#e6e7e9;--muted:#9a9fa7;--line:#35383e;--hover:#ffffff12;--accent:#6c9ef2;--accent-soft:#6c9ef233;--warn:#e3a345;--warn-soft:#e3a3452e;--match:#ffe58a47;--tok-keyword:#b796f0;--tok-attribute:#4fc1b9;--tok-string:#8fc66b;--tok-number:#e8a25a;--shadow-sm:0 1px 4px #0000004d;--shadow-md:0 8px 24px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{margin:0}button{font:inherit;color:inherit;border-radius:var(--radius-sm);padding:3px var(--space-2);cursor:pointer;background:0 0;border:1px solid #0000}button:has(>svg){align-items:center;gap:var(--space-1);display:inline-flex}button:hover{background:var(--hover)}button.active{background:var(--accent-soft);color:var(--accent)}button:disabled{opacity:.35;cursor:default}svg{flex:none}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.muted{color:var(--muted)}.sep{flex:1}.primary{background:var(--ink);color:var(--panel)}.primary:hover{background:var(--ink);opacity:.85}.segmented{border:1px solid var(--line);border-radius:calc(var(--radius-sm) + 1px);padding:1px;display:inline-flex}.segmented button{padding:1px var(--space-2);font-size:12px}.layout-switch button{align-items:center;height:24px;padding:0 5px;display:inline-flex}.swatch{width:18px;height:18px;display:inline-block;border-radius:50%!important}.swatch.active{box-shadow:0 0 0 2px var(--panel), 0 0 0 3px var(--ink)}.swatches{padding:var(--space-1);gap:2px;display:flex}.swatches .swatch{width:16px;height:16px}.token{font-family:var(--mono);background:var(--accent-soft);border-radius:var(--radius-sm);cursor:grab;padding:0 6px;display:inline-block}.tag{border:1px solid var(--line);border-radius:999px;padding:0 6px}.badge{text-align:center;min-width:18px;color:var(--warn);background:var(--warn-soft);border-radius:999px;padding:0 5px;font-size:11px}.dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.app{grid-template-rows:44px 1fr 26px;grid-template-columns:1fr 320px;height:100vh;display:grid}.app.inspector-closed{grid-template-columns:1fr 36px}.main{min-width:0;min-height:0;position:relative}.open-progress{align-items:center;gap:var(--space-2);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);flex-direction:column;padding:14px 18px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.open-progress progress{width:240px}.topbar{align-items:center;gap:var(--space-3);padding:0 var(--space-2);background:var(--panel);border-bottom:1px solid var(--line);white-space:nowrap;grid-column:1/-1;grid-template-columns:1fr minmax(240px,520px) 1fr;display:grid}.topbar-start{align-items:center;gap:var(--space-2);min-width:0;display:flex}.topbar-end{justify-content:flex-end;display:flex}.file-button{gap:var(--space-1);min-width:0;max-width:180px;font-weight:600;display:inline-flex}.file-name{text-overflow:ellipsis;overflow:hidden}.pages{gap:2px;min-width:0;display:flex;overflow:hidden}.pages button{flex:none}.command{position:relative}.command input{width:100%;font:inherit;color:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);padding:6px 10px}.command input:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.command-count{color:var(--muted);font-variant-numeric:tabular-nums;pointer-events:none;font-size:11px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.command-list{z-index:var(--z-popover);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin:0;padding:6px;list-style:none;position:absolute;top:36px;left:0;right:0}.command-list button{text-align:left;justify-content:space-between;width:100%;display:flex}.command-list button.current{background:var(--accent-soft)}.command-group{padding:var(--space-1) var(--space-2);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.popover{z-index:var(--z-popover);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);max-height:calc(100vh - 16px);box-shadow:var(--shadow-md);cursor:default;padding:6px;position:fixed;overflow:auto}.menu{min-width:200px;max-width:320px}.menu>button{justify-content:space-between;align-items:center;gap:var(--space-3);text-align:left;white-space:nowrap;width:100%;display:flex}.menu-title{padding:var(--space-1) var(--space-2);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.problem-list{width:420px;max-height:260px;margin:0;padding:0;list-style:none;overflow:auto}.problem-list li{gap:var(--space-2);padding:3px 10px;display:flex}.problem-list .error{color:var(--warn)}.export-data{gap:var(--space-1);flex-direction:column;width:240px;display:flex}.export-data label{gap:6px;display:flex}.chooser{flex-direction:column;padding:3px;display:flex}.chooser button{text-align:left;white-space:nowrap}.chooser button.current{background:var(--accent-soft)}.shortcuts{gap:var(--space-1) var(--space-4);padding:var(--space-1) 6px;grid-template-columns:auto 1fr;margin:0;font-size:12px;display:grid}.shortcuts>div{display:contents}.shortcuts dt{white-space:nowrap}.shortcuts dd{color:var(--muted);white-space:nowrap;margin:0}.explore{height:100%;display:flex}.canvas{z-index:var(--z-canvas);background:var(--paper);cursor:grab;-webkit-user-select:none;user-select:none;flex:1;position:relative;overflow:hidden}.canvas canvas{touch-action:none;width:100%;height:100%;display:block}.canvas canvas.dragging{cursor:grabbing}.canvas canvas,.canvas .action-bar,.canvas .hover-card{transition:opacity .2s ease-out}.canvas.changing canvas,.canvas.changing .action-bar,.canvas.changing .hover-card{opacity:0;pointer-events:none;transition-duration:.12s;transition-timing-function:ease-in}.loading{border:2px solid var(--paper-line);border-top-color:var(--paper-muted);pointer-events:none;border-radius:50%;width:22px;height:22px;margin:-11px;animation:.15s ease-out .35s both loading-in,.8s linear infinite loading-spin;position:absolute;top:50%;left:50%}@keyframes loading-in{0%{opacity:0}}@keyframes loading-spin{to{transform:rotate(1turn)}}.empty{color:var(--paper-muted);text-align:center;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.ruler{width:18px;margin:var(--space-2) 0 var(--space-2) var(--space-2);background:var(--paper-line);cursor:ns-resize;border-radius:4px;position:relative;overflow:hidden}.ruler canvas{opacity:.85;width:100%;height:100%;image-rendering:pixelated;display:block}.ruler .ruler-hits{position:absolute;inset:0}.ruler-selected{background:var(--accent);width:4px;min-height:2px;position:absolute;right:0}.ruler-brush{background:var(--accent);opacity:.3;pointer-events:none;position:absolute;left:0;right:0}.ruler-viewport{border:2px solid var(--paper-ink);background:#ffffff40;border-radius:3px;position:absolute;left:0;right:0}.corner{z-index:var(--z-overlay);cursor:default;gap:6px;display:flex;position:absolute}.corner>*{background:var(--overlay);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.corner>button{height:28px}.corner>button:hover{background:var(--bg)}.corner.top-left{top:var(--space-2);left:var(--space-2);flex-direction:column;align-items:flex-start}.corner.top-right{top:var(--space-2);right:var(--space-2);align-items:center}.corner.bottom-left{bottom:var(--space-2);left:var(--space-2);pointer-events:none}.corner.bottom-right{bottom:var(--space-2);right:var(--space-2);flex-direction:column;max-height:calc(100% - 60px)}.tree-switch{align-items:center;gap:2px;height:28px;padding:2px;display:flex}.tree-switch button{padding:3px}.tree-switch select{font:inherit;color:inherit;background:0 0;border:none}.unrooted{padding:2px var(--space-2);color:var(--muted);font-size:11px}.unrooted button{padding:0 var(--space-1)}.scale-bar{padding:var(--space-1) var(--space-2);font-size:11px}.scale-length{font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:flex}.scale-line{border:1px solid;border-top:none;height:6px}.legend{min-height:0;padding:6px var(--space-2);font-size:11px;overflow:auto}.legend-group+.legend-group{margin-top:6px}.legend-title{color:var(--muted);margin-bottom:2px}.legend-entry{align-items:center;gap:6px;display:flex;position:relative}.legend-entry .swatch{width:12px;height:12px;padding:0}.legend-range{align-items:center;gap:6px;display:flex}.legend-bar{border-radius:4px;width:80px;height:8px}.hint{z-index:var(--z-overlay);bottom:var(--space-2);color:var(--muted);background:var(--overlay);border:1px solid var(--line);pointer-events:none;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:11px;position:absolute;left:50%;transform:translate(-50%)}.hint kbd{padding:0 var(--space-1);font:inherit;border:1px solid var(--line);border-radius:4px}.action-bar{z-index:var(--z-card);width:280px;padding:6px var(--space-2);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-md);cursor:default;position:absolute;top:0;left:0}.action-title{align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-1);white-space:nowrap;font-size:12px;display:flex}.action-title strong{text-overflow:ellipsis;font-weight:600;overflow:hidden}.action-title strong:has(+.action-tips){flex-shrink:0}.action-tips{text-overflow:ellipsis;min-width:0;font-family:var(--mono);color:var(--muted);font-size:11px;overflow:hidden}.action-row,.action-footer{align-items:center;gap:2px;min-height:28px;display:flex}.action-footer{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--line)}.action-row button,.action-footer button{align-items:center;gap:2px;padding:3px 5px;display:inline-flex}.action-row .segmented button{padding:1px 3px}.action-row .swatch{width:16px;height:16px;padding:0}.action-label{width:52px;color:var(--muted);flex:none;font-size:12px}.hover-card{z-index:calc(var(--z-card) + 1);min-width:200px;max-width:320px;padding:var(--space-2) 10px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-md);pointer-events:none;font-size:12px;position:absolute}.hover-title{margin-bottom:var(--space-1);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.hover-card dl{gap:2px var(--space-3);grid-template-columns:auto 1fr;margin:0;display:grid}.hover-card dl>div{display:contents}.hover-card dt{color:var(--muted)}.hover-card dd{font-variant-numeric:tabular-nums;margin:0}.inspector{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex}.inspector.closed{align-items:center;padding-top:6px}.inspector.closed button,.inspector-head>button:last-child{padding:var(--space-1);color:var(--muted);display:inline-flex}.inspector-head{padding:6px var(--space-2);border-bottom:1px solid var(--line);align-items:center;gap:2px;display:flex}.inspector-body{margin:0;padding:6px;list-style:none;overflow:auto}.inspector-hint{padding:var(--space-2) 10px;color:var(--muted);margin:0;font-size:12px}.inspector-body .inspector-hint{padding:2px var(--space-1) var(--space-2)}.data-list{margin:0;padding:0;list-style:none}.data-row{min-height:28px;padding:0 var(--space-1);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:6px;display:flex}.data-row:hover{background:var(--hover)}.disclosure{color:var(--muted);padding:2px;display:inline-flex}.disclosure svg{transition:transform .12s ease-out}.disclosure[aria-expanded=true] svg{transform:rotate(90deg)}.kind-glyph{color:var(--muted)}.data-row .token{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-values{margin:0 0 6px 44px;font-size:12px}.data-values ul{margin:0;padding:0;list-style:none}.data-values li{justify-content:space-between;gap:var(--space-2);padding:1px var(--space-2) 1px 0;font-variant-numeric:tabular-nums;display:flex}.data-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-summaries{margin-top:var(--space-1);flex-wrap:wrap;gap:3px;font-size:11px;display:flex}.set-list button{text-align:left;width:100%}.recipe{flex-direction:column;flex:1;min-height:0;display:flex}.recipe-head{padding:6px var(--space-2);border-bottom:1px solid var(--line);align-items:center;gap:2px;display:flex}.recipe-head>button{padding:var(--space-1)}.steps{padding:6px;overflow:auto}.steps ul,.history{margin:0;padding:0;list-style:none}.steps li{align-items:flex-start;gap:var(--space-1);display:flex}.steps input{margin-top:6px}.steps-group{align-items:center;gap:var(--space-1);margin:var(--space-2) 0 2px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:600;display:flex}.steps-count{font-weight:400}.steps-clear{color:var(--muted);margin-left:auto;font-size:11px}.step{text-align:left;font-family:var(--mono);word-break:break-word;flex:1;font-size:11px;line-height:1.5}.step-remove{color:var(--muted);margin-top:3px;padding:2px}.history button{width:100%;padding:3px var(--space-2);text-align:left;font-size:12px;display:block}.history .head{color:var(--accent);font-weight:700}.history .off-path{opacity:.4}.step-editor{align-items:flex-start;gap:var(--space-1);flex-direction:column;font-size:12px;display:flex}.swatches{gap:4px;display:flex}.swatches button{border-radius:4px;width:18px;height:18px;box-shadow:inset 0 0 0 1px #0003}.swatches .active{outline:2px solid var(--accent);outline-offset:1px}.tok-keyword{color:var(--tok-keyword)}.tok-clade{color:var(--accent);cursor:pointer}.tok-attribute{color:var(--tok-attribute)}.tok-string{color:var(--tok-string)}.tok-number,.tok-colour{color:var(--tok-number)}.tok-swatch{vertical-align:-1px;border-radius:2px;width:9px;height:9px;margin-right:3px;display:inline-block;box-shadow:inset 0 0 0 1px #0003}.steps .off .step span{color:inherit}.steps .off .step{color:var(--muted);text-decoration:line-through}.steps li.skipped .step{opacity:.6;text-decoration:line-through}.steps-hint{padding:var(--space-2);color:var(--muted);font-size:12px}.project-text{padding:var(--space-3);font-family:var(--mono);white-space:pre-wrap;margin:0;font-size:11px;line-height:1.6;overflow:auto}.figure-tab{font-size:12px}.figure-form{align-items:center;gap:6px var(--space-2);padding:var(--space-1);grid-template-columns:52px minmax(0,1fr);display:grid}.figure-form>:nth-child(odd){color:var(--muted)}.figure-form>:has(+.label-density){align-self:start;padding-top:3px}.figure-form input:not([type=checkbox]),.figure-form select{min-width:0;font:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:inherit;padding:2px 6px}.figure-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.figure-size,.figure-layout{align-items:center;gap:6px;display:flex}.figure-form .mm{width:64px}.figure-check{align-items:center;gap:var(--space-1);display:inline-flex}.checks-head{padding:var(--space-2) var(--space-1) var(--space-1);border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:10px;display:flex}.checks-head .figure-check{color:var(--muted)}.checks{padding:0 var(--space-1);margin:0;line-height:1.5;list-style:none}.checks li{align-items:start;gap:var(--space-1);padding:var(--space-1) 0;grid-template-columns:14px minmax(0,1fr) auto;display:grid}.checks li>svg{margin-top:2px}.checks .warn{color:var(--warn)}.checks li button{border-color:var(--line);color:var(--ink);white-space:nowrap;padding:1px 6px}.figure-area{padding:24px;display:flex;position:absolute;inset:0;overflow:auto}.paper{background:var(--paper);flex:none;margin:auto;position:relative;box-shadow:0 1px 3px #0000001f,0 12px 32px #0000001a}.paper-content,.paper-content svg{width:100%;height:100%;display:block}.check-marker{background:var(--paper-warn);width:18px;height:18px;color:var(--paper);box-shadow:0 0 0 2px var(--paper);cursor:help;border-radius:50%;place-items:center;margin:-9px 0 0 -9px;font-size:11px;font-weight:700;display:grid;position:absolute}.statusbar{background:var(--panel);border-top:1px solid var(--line);color:var(--muted);white-space:nowrap;grid-column:1/-1;align-items:center;gap:6px;padding:0 10px;font-size:11px;display:flex}.statusbar button{padding:0 6px}.status-file{text-overflow:ellipsis;overflow:hidden}.status-hits{margin-left:var(--space-1);color:var(--ink);background:var(--match);border-radius:999px;padding:0 6px}.problem{color:var(--warn)}@media (prefers-reduced-motion:reduce){.canvas canvas,.canvas .action-bar,.canvas .hover-card,.disclosure svg{transition:none}}.label-density{align-items:flex-start;gap:var(--space-1);flex-direction:column;display:flex}.labels-popover{gap:var(--space-2);flex-direction:column;min-width:220px;font-size:12px;display:flex}.labels-popover input[type=number]{width:4em}
