:root{--color-saturation-hatch:#666;--color-scrim:#00000059;--color-aa-hydro:#0072b238;--color-aa-polar:#009e7338;--color-aa-pos:#d55e0038;--color-aa-neg:#cc79a752;--font-ui:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--size-xs:12px;--size-sm:14px;--size-md:16px;--size-lg:20px;--size-xl:24px;--size-xxl:32px;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-48:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 4px 16px #00000026;--shadow-md:0 8px 30px #00000040}:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#fff;--color-surface:#fafaf9;--color-surface-2:#f4f3ec;--color-border:#e5e4e7;--color-text:#241f2e;--color-text-muted:#6b6375;--color-accent:#aa3bff;--color-accent-contrast:#6d28d9;--color-focus:#6d28d9;--color-support-weak:#b45309;--color-wrong-clade:#b3261e;--color-highlight:#aa3bff;--color-danger:#b3261e;--color-success:#1a7f37;--color-text-h:#08060d;--color-accent-bg:#aa3bff1a;--color-accent-border:#aa3bff80;--color-aa-text:#241f2e;--color-aa-special:#f0e44273}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#16171d;--color-surface:#1c1d24;--color-surface-2:#1f2028;--color-border:#2e303a;--color-text:#e5e7eb;--color-text-muted:#9ca3af;--color-accent:#c084fc;--color-accent-contrast:#c084fc;--color-focus:#c084fc;--color-support-weak:#fbbf24;--color-wrong-clade:#f28b82;--color-highlight:#c084fc;--color-danger:#f28b82;--color-success:#3fb950;--color-text-h:#f3f4f6;--color-accent-bg:#c084fc26;--color-accent-border:#c084fc80;--color-aa-text:#e5e7eb;--color-aa-special:#f0e44240}:root[data-presenter]{--size-xs:18px;--size-sm:21px;--size-md:24px;--size-lg:30px;--size-xl:36px;--size-xxl:48px;--space-4:6px;--space-8:12px;--space-12:18px;--space-16:24px;--space-24:36px;--space-32:48px;--space-48:72px}:root{font-family:var(--font-ui);font-size:var(--size-md);color:var(--color-text-muted);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:145%}*{box-sizing:border-box}html,body{height:100%}body{margin:0}h1,h2{font-family:var(--font-ui);color:var(--color-text-h);font-weight:500}h1{font-size:var(--size-lg);margin:0}h2{font-size:var(--size-sm);margin:12px 0 6px}p{margin:0}#root{height:100%}.app{grid-template-rows:auto minmax(0,1fr) auto;height:100%;display:grid}.app-loading{padding:32px}.app-header{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 16px;display:flex}@media (width>=1024px){:root:not([data-presenter]) .app-header{flex-wrap:nowrap}}.app-header h1,.app-header .toast{min-width:0}.app-header h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-header>:not(h1):not(.toast){flex-shrink:0}@media (width<1280px){.app-header{gap:var(--space-8)}}.wordmark{align-items:center;gap:var(--space-8);font-family:var(--font-ui);color:var(--color-text);white-space:nowrap;flex-shrink:0;font-weight:600;display:inline-flex}@media (width<1280px){.wordmark-text{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.wordmark img{display:block}.wordmark-md{font-size:var(--size-lg)}.wordmark-md img{width:24px;height:24px}.wordmark-sm{font-size:var(--size-md)}.wordmark-sm img{width:20px;height:20px}.mode-switch{border:1px solid var(--color-border);border-radius:6px;display:flex;overflow:hidden}.mode-switch button{font:inherit;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;padding:4px 14px}.mode-switch button+button{border-left:1px solid var(--color-border)}.mode-switch button[aria-checked=true]{background:var(--color-accent-bg);color:var(--color-accent-contrast);font-weight:600}.lessons-menu{position:relative}.lessons-menu>button{border:1px solid var(--color-border);color:var(--color-text);font:inherit;font-size:var(--size-sm);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px}.lessons-menu>button:hover,.lessons-menu>button:focus-visible,.lessons-menu>button[aria-expanded=true]{border-color:var(--color-accent-border)}.lessons-menu-list{z-index:10;border:1px solid var(--color-border);background:var(--color-bg);min-width:300px;box-shadow:var(--shadow-sm);max-height:calc(100dvh - var(--lessons-menu-top,0px) - var(--space-16));border-radius:6px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden auto}.lessons-menu-list [role=menuitemradio]{font:inherit;text-align:left;border:0;border-bottom:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;padding:8px 12px}.lessons-menu-list [role=menuitemradio]:last-child{border-bottom:0}.lessons-menu-list [role=menuitemradio]:hover,.lessons-menu-list [role=menuitemradio]:focus-visible{background:var(--color-accent-bg);outline:none}.lessons-menu-list [role=menuitemradio][aria-checked=true]{background:var(--color-accent-bg)}.lessons-menu-title{color:var(--color-text);font-weight:600;display:block}.lessons-menu-list [role=menuitemradio][aria-checked=true] .lessons-menu-title:after{content:" — current";color:var(--color-accent-contrast);font-weight:400}.lessons-menu-summary{font-size:var(--size-xs);color:var(--color-text-muted);display:block}.lessons-menu-tour{font:inherit;font-size:var(--size-sm);text-align:left;margin-top:var(--space-8);border:0;border-top:1px solid var(--color-border);color:var(--color-text);cursor:pointer;background:0 0;padding:8px 12px}.lessons-menu-tour:hover,.lessons-menu-tour:focus-visible{background:var(--color-accent-bg);outline:none}.no-true-tree{color:var(--color-text-muted);text-align:center;place-self:center;padding:16px}.app-grid{grid-template-columns:230px minmax(0,1fr) 300px;grid-template-areas:"controls center explain";min-height:0;display:grid;overflow:hidden}@media (width>=1280px){.app-grid:not(:has(>.col-controls)){grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"center explain"}}.col-controls{border-right:1px solid var(--color-border);grid-area:controls;padding:8px 14px;overflow-y:auto}.col-explain{border-left:1px solid var(--color-border);grid-area:explain;padding:8px 14px;overflow-y:auto}.col-center{grid-area:center;min-width:0;padding:12px;display:block;overflow:hidden auto}.col-center>*+*{margin-top:12px}.col-center>.notices{flex-direction:column;gap:8px;display:flex}.col-center>.prompts{max-height:34vh;overflow-y:auto}.trees{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;width:100%;min-height:0;display:grid}.tree-panel{flex-direction:column;min-width:0;min-height:0;margin:0;display:flex}.tree-col{min-width:0}.unrooted-note{color:var(--color-text);font-size:var(--size-sm);margin:6px 0 0}.tree-panel figcaption{color:var(--color-text);font-weight:500;font-size:var(--size-sm);margin-bottom:4px}.tree-canvas{max-height:1180px;overflow:auto}.tree-canvas svg{color:var(--color-text);display:block}.tree-canvas .branch-hit{cursor:pointer}.tree-canvas .branch-hit>line{stroke:#0000;stroke-width:12px}.tree-canvas .branch-hit-pad{fill:#0000;stroke:none;display:none}.tree-canvas .branch-hit:focus-visible{outline:none}.tree-canvas .branch-hit:focus-visible>line{stroke:currentColor;stroke-width:3px;stroke-dasharray:3 3}.matrix-wrap{max-width:560px;margin:12px auto 0;overflow-x:auto}.matrix-wrap>svg{width:100%;min-width:var(--matrix-w);height:auto;color:var(--color-text);display:block}@media (1024px<=width<1280px){.app-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"center""explain";overflow:clip auto}.col-center,.col-explain{overflow:visible}.col-explain{border-left:0;border-top:1px solid var(--color-border)}}@media (width<1024px){.app-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"center""explain";overflow:clip auto}.col-center{flex-direction:column;display:flex;overflow:visible}.col-center>.notices{order:-1}.col-center>.trees{order:0}.col-center>.matrix-wrap{order:1;width:100%}.col-center>.prompts{order:2}.trees{grid-template-columns:minmax(0,1fr)}.col-explain{border-left:0;border-right:0;border-top:1px solid var(--color-border);overflow-y:visible}.app-footer .repo-link{display:none}}.app-footer{border-top:1px solid var(--color-border);padding:8px calc(16px + env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px));flex-wrap:wrap;align-items:center;gap:4px 16px;display:flex}.app-footer>.stepper{flex:1}.app-footer .repo-link{font-size:var(--size-xs);color:var(--color-text);opacity:.7;white-space:nowrap;margin-left:auto}.app-footer .repo-link:hover,.app-footer .repo-link:focus-visible{opacity:1}.stepper{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stepper input[type=range]{flex:1;min-width:96px}.stepper-status{font-family:var(--font-mono);font-size:var(--size-sm);white-space:nowrap}.stepper-rf{font-family:var(--font-mono);font-size:var(--size-sm);color:var(--color-accent-contrast);white-space:nowrap}.stepper-note{font-size:var(--size-sm)}:root[data-presenter] .stepper button{padding:var(--space-8) var(--space-12)}.error{border:1px solid var(--color-danger);width:100%;color:var(--color-danger);border-radius:6px;padding:8px 10px}.toast{border:1px solid var(--color-accent-border);background:var(--color-accent-bg);color:var(--color-text);font-size:var(--size-sm);border-radius:6px;padding:6px 10px}.error-boundary{border:1px solid var(--color-danger);max-width:480px;color:var(--color-text);border-radius:8px;margin:64px auto;padding:24px}.error-boundary h1{font-size:var(--size-lg);margin:0 0 8px}.notice{border:1px solid var(--color-accent-border);background:var(--color-accent-bg);width:100%;color:var(--color-text);border-radius:6px;padding:8px 10px}.notice h2{margin:0 0 4px}.notice p{margin:0 0 6px}.notice .notice-pairs{font-family:var(--font-mono);font-size:var(--size-sm)}.notice .notice-progress{font-style:italic}.notice-fixes{flex-wrap:wrap;gap:6px;display:flex}.saturation-chart{max-width:300px;color:var(--color-text);display:block}.controls .field{font-size:var(--size-sm);justify-content:space-between;align-items:center;gap:8px;margin:6px 0;display:flex}.controls .field.seed{flex-wrap:wrap}.controls .field.seed label{flex:1;justify-content:space-between;align-items:center;gap:8px;display:flex}.controls input[type=number]{width:90px}.controls select,.controls input,.stepper input,button{font:inherit;color:var(--color-text-h);background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:3px 6px}.controls select:disabled,.controls input:disabled,button:disabled{opacity:.5}button{cursor:pointer}button:disabled{cursor:default}.matrix-toggle[aria-checked=true]{border-color:var(--color-accent-border);background:var(--color-accent-bg)}.mode-toggle{gap:6px;margin-bottom:10px;display:flex}.mode-toggle button{flex:1}.mode-toggle button[aria-pressed=true]{border-color:var(--color-accent-border);background:var(--color-accent-bg)}.explain-body{color:var(--color-text)}.explain-body p{font-size:var(--size-md);margin:0 0 8px}.math-line{white-space:nowrap;padding:var(--space-4) 0 var(--space-8);font-size:var(--size-md);margin:0 0 8px;display:block;overflow:auto hidden}.math-line-box{position:relative}.math-line-box:before,.math-line-box:after{content:"";width:var(--space-24);pointer-events:none;opacity:0;z-index:1;transition:opacity .16s;position:absolute;top:0;bottom:0}.math-line-box:before{background:linear-gradient(to right, var(--color-bg), transparent);left:0}.math-line-box:after{background:linear-gradient(to left, var(--color-bg), transparent);right:0}.math-line-box[data-fade-left]:before,.math-line-box[data-fade-right]:after{opacity:1}.katex{color:var(--color-text)}.math-note{font-size:var(--size-xs);color:var(--color-text);opacity:.8}.zero-len{fill:var(--color-text-muted)}.wrong rect,.wrong text{color:var(--color-wrong-clade)}.import-panel{flex-direction:column;gap:8px;margin-top:12px;display:flex}.import-panel h2{margin:0}.import-text{flex-direction:column;align-items:stretch}.import-text textarea{font:inherit;font-family:var(--font-mono);font-size:var(--size-xs);color:var(--color-text-h);background:var(--color-surface);border:1px solid var(--color-border);resize:vertical;border-radius:4px;padding:6px}.import-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.import-file{font-size:var(--size-sm);align-items:center;gap:6px;display:flex}.import-hint{font-size:var(--size-xs);color:var(--color-text);opacity:.8;margin:0}.alphabet-badge{border:1px solid var(--color-accent-border);background:var(--color-accent-bg);color:var(--color-text);font-size:var(--size-sm);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.alphabet-notice{border:1px solid var(--color-accent-border);background:var(--color-accent-bg);color:var(--color-text);font-size:var(--size-sm);border-radius:6px;margin:0;padding:6px 10px}.phylip-names{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.phylip-names button[aria-checked=true]{border-color:var(--color-accent-border);background:var(--color-accent-bg)}.prompts{flex-direction:column;gap:8px;display:flex}.prompt-card{border:1px solid var(--color-accent-border);background:var(--color-accent-bg);color:var(--color-text);border-radius:6px;padding:8px 10px}.prompt-card p{margin:0 0 6px}.prompt-card p:last-child{margin-bottom:0}.prompt-verdict{font-weight:600}.prompt-verdict.correct{color:var(--color-success)}.prompt-verdict.wrong{color:var(--color-danger)}.prompt-hint{font-size:var(--size-sm);opacity:.85}.prompt-math{font-family:var(--font-mono);font-size:var(--size-sm)}.prompt-show-pair,.prompt-continue{margin-top:4px;display:block}.explain .revisit{color:var(--color-text);font-size:var(--size-sm);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.sheet-backdrop{background:var(--color-scrim);z-index:10;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sheet-backdrop:has(>.settings-drawer){z-index:50}@media (width<1024px){.sheet-backdrop>section:not(.settings-drawer){border:0;border-radius:0;width:100%;max-width:none;height:100%;max-height:none;padding-top:52px}}.settings-drawer{background:var(--color-bg);width:min(320px,92vw);color:var(--color-text);border-right:1px solid var(--color-border);box-shadow:var(--shadow-md);padding:14px 18px;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.settings-drawer-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.settings-drawer-head h2{font-size:var(--size-lg);color:var(--color-text-h);margin:0 0 8px}.pair-panel{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:8px;max-width:min(560px,92vw);max-height:88vh;padding:14px 18px;overflow-y:auto}.pair-panel-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.pair-panel-head h2{font-size:var(--size-lg);color:var(--color-text-h);margin:0 0 8px}.pair-panel-head .pair-names{color:var(--color-text-muted);font-weight:400}.pair-panel-head .mode-toggle{align-self:center;margin-bottom:0}.pair-panel-head .mode-toggle button{flex:none;padding:2px 8px}.pair-panel .close{font-size:var(--size-lg);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:6px;padding:2px 8px;line-height:1}.pair-seqs{font-family:var(--font-mono);font-size:var(--size-sm);border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;gap:10px;margin-bottom:10px;padding:6px 8px;line-height:1.5;display:flex}.pair-seq-legend{flex-direction:column;flex:0 0 90px;display:flex;overflow:hidden}.pair-seq-legend .seq-label{text-overflow:ellipsis;white-space:nowrap;height:20px;color:var(--color-text-muted);line-height:20px;overflow:hidden}.pair-seq-strip{min-width:0;overflow-x:auto}.pair-seq-grid{display:flex}.pair-col{text-align:center;flex-direction:column;flex:none;width:1.7ch;display:flex}.pair-col>span{height:20px;line-height:20px}.pair-col .pair-pos{font-size:var(--size-xs);color:var(--color-text-muted);text-align:left;white-space:nowrap;line-height:20px}.pair-col .pair-marker{color:var(--color-danger);font-weight:700}.pair-seqs [data-missing]{opacity:.4}.pair-seqs .aa-hydro{background:var(--color-aa-hydro);color:var(--color-aa-text)}.pair-seqs .aa-polar{background:var(--color-aa-polar);color:var(--color-aa-text)}.pair-seqs .aa-pos{background:var(--color-aa-pos);color:var(--color-aa-text)}.pair-seqs .aa-neg{background:var(--color-aa-neg);color:var(--color-aa-text)}.pair-seqs .aa-special{background:var(--color-aa-special);color:var(--color-aa-text)}.pair-numbers{border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;gap:18px;margin:0 0 10px;padding:8px 10px;display:flex}.pair-numbers div{flex-direction:column;display:flex}.pair-numbers dt{font-size:var(--size-xs);color:var(--color-text-muted)}.pair-numbers dd{font-family:var(--font-mono);font-size:var(--size-md);color:var(--color-text-h);margin:0}.likelihood-curve{width:100%;max-width:340px;color:var(--color-text);margin-bottom:10px;display:block}.likelihood-curve .axis{stroke:var(--color-border);stroke-width:1px}.likelihood-curve .curve{stroke:var(--color-accent-contrast);stroke-width:1.8px}.likelihood-curve .peak-line{stroke:var(--color-accent-contrast);stroke-width:1px;stroke-dasharray:3 3}.likelihood-curve .peak-marker{fill:var(--color-accent-contrast)}.likelihood-curve .axis-label{font-size:var(--size-xs);fill:var(--color-text-muted)}.likelihood-curve .below-range-mark{fill:var(--color-text-muted);opacity:.6}.pair-concept{margin:0 0 8px}.pair-math .math-line{margin:0 0 4px}.pair-no-overlap{margin:8px 0}.header-toggles{z-index:40;align-items:center;gap:var(--space-8);display:flex;position:relative}.theme-toggle,.presenter-toggle{border:1px solid var(--color-border);color:var(--color-text);font:inherit;font-size:var(--size-sm);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px}.theme-toggle:hover,.theme-toggle:focus-visible,.presenter-toggle:hover,.presenter-toggle:focus-visible{border-color:var(--color-accent-border)}.theme-toggle[aria-pressed=true],.presenter-toggle[aria-pressed=true]{background:var(--color-accent-bg);border-color:var(--color-accent-border);color:var(--color-accent-contrast);font-weight:600}@media (width<1024px){.app:has(>.sheet-backdrop>section:not(.settings-drawer)) .header-toggles{position:fixed;top:10px;right:16px}}:root[data-presenter] .app:has(>.sheet-backdrop>section:not(.settings-drawer)) .header-toggles{position:fixed;top:4px;right:16px}@media (width>=1024px){:root[data-presenter] .sheet-backdrop>section:not(.settings-drawer){margin-top:var(--space-48);max-height:calc(88vh - var(--space-48))}}.phylip-help-open,.labs-link{border:1px solid var(--color-border);color:var(--color-text);font-size:var(--size-sm);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px}a.labs-link{align-items:center;text-decoration:none;display:inline-flex}.phylip-help-open:hover,.phylip-help-open:focus-visible,.labs-link:hover,.labs-link:focus-visible{border-color:var(--color-accent-border)}.settings-drawer-tour{width:100%;margin-top:var(--space-16)}.settings-drawer-labs{border:1px solid var(--color-border);color:var(--color-text);font-size:var(--size-sm);margin-top:var(--space-16);text-align:center;border-radius:6px;padding:8px 10px;text-decoration:none;display:block}.settings-drawer-labs:hover,.settings-drawer-labs:focus-visible{border-color:var(--color-accent-border)}.phylip-help .phylip-help-map{margin:8px 0 0;padding-left:18px}.phylip-help .phylip-help-map li{margin:0 0 8px}.phylip-help code{font-family:var(--font-mono)}.phylip-note{font-size:var(--size-sm);color:var(--color-text-muted);margin-top:8px}.phylip-note p{margin:4px 0 0}.phylip-note a{color:var(--color-accent-contrast)}.export-theme-match{font-size:var(--size-sm);color:var(--color-text-muted);align-items:center;gap:8px;margin-top:8px;display:flex}.newick-name-mode{font-size:var(--size-sm);color:var(--color-text-muted);margin-top:8px;display:block}.newick-name-mode select{max-width:100%}.bootstrap-panel{border-top:1px solid var(--color-border);font-size:var(--size-sm);margin-top:10px;padding-top:6px}.bootstrap-panel h2{font-size:var(--size-md);margin:0 0 6px}.bootstrap-panel p{margin:4px 0}.bootstrap-panel .grouping-count,.bootstrap-panel .bootstrap-explain{color:var(--color-text)}.bootstrap-panel .math-line{margin:4px 0}.bootstrap-panel .bootstrap-progress,.bootstrap-panel .bootstrap-confirm{margin:6px 0}.bootstrap-panel .bootstrap-progress-text{color:var(--color-text)}.bootstrap-panel .bootstrap-status{margin:6px 0}.bootstrap-panel .bootstrap-results-label{color:var(--color-text);font-size:var(--size-xs)}.bootstrap-panel .bootstrap-skipped{color:var(--color-text)}.bootstrap-panel .bootstrap-warning,.bootstrap-panel .bootstrap-error strong{color:var(--color-danger)}.bootstrap-panel .bootstrap-actions{gap:8px;margin:8px 0;display:flex}.reroot-toggle{font-size:var(--size-sm);margin-top:4px;display:block}.support-label{font-weight:500}.support-pill{fill:var(--color-bg);stroke:var(--color-border);stroke-width:1px}.support-leader{stroke:var(--color-border);stroke-width:1px}.consensus-tabs{min-width:0}.consensus-tabs [role=tablist]{border-bottom:1px solid var(--color-border);flex-wrap:wrap;flex-shrink:0;gap:2px;margin-bottom:4px;display:flex}.consensus-tabs [role=tab]{font-size:var(--size-sm);color:var(--color-text);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:4px 4px 0 0;flex-shrink:0;padding:3px 10px}.consensus-tabs [role=tab][aria-selected=true]{border-color:var(--color-border);font-weight:600}.consensus-tabs [role=tab]:disabled{opacity:.45;cursor:default}.consensus-tabs .tree-canvas{overflow:auto}.consensus-dropped{color:var(--color-text);font-size:var(--size-sm);margin:6px 0 0}.replicate-panel{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:8px;max-width:min(880px,94vw);max-height:88vh;padding:14px 18px;overflow-y:auto}.replicate-panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.replicate-panel-head h2{font-size:var(--size-lg);color:var(--color-text-h);margin:0 0 8px}.replicate-panel-head .replicate-nav{align-items:center;gap:8px;display:flex}.replicate-panel .close{font-size:var(--size-lg);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:6px;padding:2px 8px;line-height:1}.rep-strip{max-height:120px;font-family:var(--font-mono);font-size:var(--size-xs);border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;flex-wrap:wrap;gap:1px;margin:6px 0;padding:4px;line-height:1.4;display:flex;overflow-y:auto}.rep-col{text-align:center;background:var(--color-bg);border-radius:2px;min-width:16px}.rep-col[data-weight="0"]{opacity:.35}.replicate-panel .rep-undrawn,.replicate-panel .rep-diff,.replicate-panel .rep-skipped,.replicate-panel .replicate-computing{margin:6px 0}.replicate-trees{align-items:flex-start;gap:16px;display:flex}.replicate-trees .tree-panel{flex:1;min-width:0}.skip-link{z-index:60;border:1px solid var(--color-accent-border);background:var(--color-bg);color:var(--color-text);font-size:var(--size-sm);border-radius:6px;padding:8px 12px;position:absolute;top:-64px;left:8px}.skip-link:focus-visible{top:8px}.drawer-toggle,.more-menu>button{border:1px solid var(--color-border);color:var(--color-text);font:inherit;font-size:var(--size-sm);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px}.drawer-toggle:hover,.drawer-toggle:focus-visible,.more-menu>button:hover,.more-menu>button:focus-visible{border-color:var(--color-accent-border)}.more-menu{position:relative}.more-menu-list{z-index:10;border:1px solid var(--color-border);background:var(--color-bg);min-width:220px;box-shadow:var(--shadow-sm);border-radius:6px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.more-menu-list [role=menuitem]{font:inherit;text-align:left;border:0;border-bottom:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;padding:8px 12px;text-decoration:none}.more-menu-list [role=menuitem]:last-child{border-bottom:0}.more-menu-list [role=menuitem]:hover,.more-menu-list [role=menuitem]:focus-visible{background:var(--color-accent-bg);outline:none}@media (pointer:coarse){button,[role=button],[role=switch],[role=tab],[role=menuitem]{min-width:40px;min-height:40px}.export-theme-match{min-height:40px}a.labs-link{min-width:40px;min-height:40px}.settings-drawer-labs{justify-content:center;align-items:center;min-height:40px;display:flex}.more-menu-list [role=menuitem],.app-footer .repo-link{align-items:center;display:inline-flex}.matrix-wrap{overflow-x:auto}.matrix-wrap>svg{min-width:var(--matrix-min)}.tree-canvas .branch-hit-pad{display:block}}button,[role=menuitem]{transition:background-color .12s,border-color .12s}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}}.app-loading{gap:var(--space-16);flex-direction:column;display:flex}.skeleton{border-radius:var(--radius-md);background:var(--color-border);opacity:.5}.skeleton-header{height:48px}.skeleton-row{gap:var(--space-16);flex:1;grid-template-columns:1fr 2fr 1fr;display:grid}.skeleton-panel{min-height:240px}.empty-state{padding:var(--space-8) 0}.empty-state-text{color:var(--color-text-muted);font-size:var(--size-sm);margin:0 0 var(--space-8)}.empty-actions{gap:var(--space-8);flex-wrap:wrap;display:flex}.consensus-tabs .empty-state-text{margin:var(--space-4) 0}.tour{z-index:70;pointer-events:none;position:fixed;inset:0}.tour-backdrop{background:var(--color-scrim);position:absolute;inset:0}.tour-ring{border:2px solid var(--color-focus);border-radius:var(--radius-md);box-shadow:0 0 0 4px var(--color-accent-bg);position:absolute}.tour-card{pointer-events:auto;padding:var(--space-16);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);box-shadow:var(--shadow-sm);outline:none;position:absolute}.tour-status{font-size:var(--size-sm);color:var(--color-text-muted);margin:0 0 var(--space-8)}.tour-text{font-size:var(--size-sm);margin:0 0 var(--space-12)}.tour-actions{justify-content:flex-end;gap:var(--space-8);display:flex}.editor-page{min-height:100%;padding:var(--space-24)}.editor-page-head{max-width:1100px;margin:0 auto var(--space-16)}.editor-home{align-items:center;display:inline-flex}.editor-panel{max-width:1100px;margin:0 auto}.editor-panel h1{margin:0 0 var(--space-8)}.editor-intro{color:var(--color-text-muted);font-size:var(--size-sm);margin:0 0 var(--space-16)}.editor-views{gap:var(--space-24);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}@media (width<1024px){.editor-views{grid-template-columns:1fr}}.editor-view-label{font-size:var(--size-sm);color:var(--color-text);margin-bottom:var(--space-4);font-weight:500;display:block}.branch-table caption{text-align:left;font-size:var(--size-sm);color:var(--color-text);margin-bottom:var(--space-4);font-weight:500}.newick-input{width:100%;min-height:140px;font-family:var(--font-mono);font-size:var(--size-xs);color:var(--color-text-h);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-8);resize:vertical}.branch-table{border-collapse:collapse;width:100%;font-size:var(--size-sm)}.branch-table th,.branch-table td{text-align:left;padding:var(--space-4) var(--space-8) var(--space-4) 0;border-bottom:1px solid var(--color-border);vertical-align:middle}.branch-table th[scope=row]{font-weight:400;font-family:var(--font-mono);color:var(--color-text-h)}.branch-table input{width:110px;font:inherit;font-family:var(--font-mono);color:var(--color-text-h);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-8)}.newick-input:focus-visible,.branch-table input:focus-visible,.editor-home:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.newick-input[aria-invalid=true],.branch-table input[aria-invalid=true]{border-color:var(--color-danger)}.editor-error{color:var(--color-danger);font-size:var(--size-xs);margin:var(--space-4) 0 0}.editor-hint,.editor-loading{color:var(--color-text-muted);font-size:var(--size-xs);margin:var(--space-4) 0 0}.draw-view{grid-column:1/-1}.draw-canvas-box{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);max-height:1180px;overflow:auto}.draw-canvas-inner{position:relative}.draw-canvas{color:var(--color-text);-webkit-user-select:none;user-select:none;touch-action:manipulation;display:block}.draw-canvas .node-hit{cursor:grab;touch-action:none}.draw-canvas-inner .node-touch{touch-action:none;cursor:grab;display:none;position:absolute}@media (pointer:coarse){.draw-canvas-inner .node-touch{display:block}}.draw-canvas .edge-hit{cursor:pointer}.draw-canvas .edge-target{stroke:#0000;stroke-width:12px}.draw-canvas .node-target{fill:#0000}.draw-canvas .node-hit-pad,.draw-canvas .edge-hit-pad{fill:#0000;stroke:none;display:none}.draw-canvas .node-hit:focus-visible,.draw-canvas .edge-hit:focus-visible,.draw-canvas:focus-visible{outline:none}.draw-canvas:focus-visible{border:2px solid var(--color-focus);border-radius:var(--radius-sm)}.draw-canvas .focus-ring{fill:none;stroke:none;pointer-events:none}.draw-canvas .node-hit:focus-visible .focus-ring,.draw-canvas .edge-hit:focus-visible .focus-ring{stroke:var(--color-focus);stroke-width:2.5px}.draw-canvas .node-hit[data-selected=true] .node-dot{fill:var(--color-accent)}.draw-canvas .edge-hit[data-selected=true] .edge-line{stroke:var(--color-accent);stroke-width:3px}.draw-canvas .drag-line{stroke:var(--color-accent);stroke-width:1.5px;stroke-dasharray:4 3;pointer-events:none}.draw-canvas .drag-dot{fill:none;stroke:var(--color-accent);pointer-events:none}.draw-canvas .detached-cap{fill:var(--color-text-muted)}.new-leaf-row{align-items:flex-end;gap:var(--space-8);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.new-leaf-form{align-items:flex-end;gap:var(--space-8);flex-wrap:wrap;display:flex}.new-leaf-form label{margin-bottom:0}.new-leaf-form input{font:inherit;color:var(--color-text-h);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-8)}.new-leaf-form input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}@media (pointer:coarse){.editor-panel input,.editor-panel textarea{min-width:40px;min-height:40px}.editor-home{justify-content:center;min-width:40px;min-height:40px}.draw-canvas .node-hit-pad,.draw-canvas .edge-hit-pad{display:block}.new-leaf-row button{min-width:40px;min-height:40px}}.editor-section{margin-top:var(--space-24)}.editor-section h2{margin:0 0 var(--space-8)}.editor-actions{align-items:flex-end;gap:var(--space-8);margin-bottom:var(--space-16);flex-wrap:wrap;display:flex}.editor-actions .import-field{gap:var(--space-4);font-size:var(--size-sm);flex-direction:column;display:flex}.editor-actions .import-field input{width:280px;font-family:var(--font-mono);font-size:var(--size-xs);color:var(--color-text-h);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-8)}.import-file-input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.editor-actions .import-file{font-size:inherit}.import-file-btn{font:inherit;color:var(--color-text-h);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:3px 6px;display:inline-flex}.import-file-name{font-size:var(--size-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:240px;overflow:hidden}.editor-notice{margin-bottom:var(--space-16)}.share-link-out{width:100%;margin-top:var(--space-4);font-family:var(--font-mono);font-size:var(--size-xs);color:var(--color-text-h);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-8);display:block}.editor-warning{color:var(--color-support-weak);font-size:var(--size-xs);margin:var(--space-4) 0 0}.settings-form .settings-row{gap:var(--space-16);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.settings-form .field{gap:var(--space-4);font-size:var(--size-sm);flex-direction:column;display:flex}.settings-form .field>span{color:var(--color-text)}.settings-form input,.settings-form select{font:inherit;color:var(--color-text-h);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-8)}.settings-form input[aria-invalid=true]{border-color:var(--color-danger)}.settings-form input:focus-visible,.settings-form select:focus-visible,.editor-actions input:focus-visible,.editor-actions button:focus-visible,.editor-view-buttons button:focus-visible,.import-file input:focus-visible+.import-file-btn,.prompt-list input:focus-visible,.prompt-list select:focus-visible,.prompt-list textarea:focus-visible,.prompt-list button:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.freq-set{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-8);margin:0 0 var(--space-8)}.freq-set legend{font-size:var(--size-sm);color:var(--color-text);padding:0 var(--space-4)}.freq-field input{width:72px;font-family:var(--font-mono)}.editor-view-buttons{gap:var(--space-8);display:flex}.editor-sheet{background:var(--color-bg);color:var(--color-text);padding:var(--space-24);overflow:auto}.editor-sheet-head{margin-bottom:var(--space-16);justify-content:space-between;align-items:center;display:flex}.editor-sheet-head h2{margin:0}.editor-sheet .close{font-size:var(--size-lg);color:var(--color-text);cursor:pointer;padding:var(--space-8);background:0 0;border:none;line-height:1}.prompt-list{gap:var(--space-16);flex-direction:column;display:flex}.prompt-item{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-8);gap:var(--space-8);flex-direction:column;display:flex}.prompt-item legend{font-size:var(--size-sm);color:var(--color-text);padding:0 var(--space-4);font-weight:500}.prompt-item-head{align-items:flex-end;gap:var(--space-16);flex-wrap:wrap;display:flex}.prompt-list .field{gap:var(--space-4);font-size:var(--size-sm);flex-direction:column;display:flex}.prompt-list .field>span,.prompt-pair .field-label{color:var(--color-text)}.prompt-list input,.prompt-list select,.prompt-list textarea{font:inherit;color:var(--color-text-h);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-8)}.prompt-list textarea{font-family:var(--font-body,inherit);resize:vertical;min-height:48px}.prompt-step input{width:72px}.prompt-actions{gap:var(--space-8);margin-left:auto;display:flex}.prompt-pair{align-items:center;gap:var(--space-8);font-size:var(--size-sm);flex-wrap:wrap;display:flex}.prompt-add-row{gap:var(--space-8);flex-wrap:wrap;display:flex}@media (pointer:coarse){.editor-actions button,.editor-actions .import-file-btn,.editor-view-buttons button,.prompt-actions button,.prompt-add-row button{min-width:40px;min-height:40px}}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/inter-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/inter-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/inter-400-greek.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/inter-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:block;src:url(/fonts/inter-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:block;src:url(/fonts/inter-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:block;src:url(/fonts/inter-500-greek.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:block;src:url(/fonts/inter-500-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:block;src:url(/fonts/inter-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:block;src:url(/fonts/inter-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:block;src:url(/fonts/inter-600-greek.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:block;src:url(/fonts/inter-600-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/jetbrains-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/jetbrains-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/jetbrains-mono-400-greek.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/jetbrains-mono-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}
