@import"https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600&family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";.rc{display:flex;flex-direction:column}.rc-head{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;margin-bottom:4px}.rc-t{font-size:var(--fs-base);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.rc-sub{font-size:var(--fs-label);color:var(--ink-faint);margin-top:2px}.rc-meta{font-size:var(--fs-sm);color:var(--ink-dim);text-align:right;line-height:1.5}.rc-meta b{color:var(--salt);font-weight:600;font-variant-numeric:tabular-nums}.rc-meta-sub{color:var(--ink-faint)}.rc-pipe{position:relative;margin-top:14px;padding-left:30px}.rc-pipe:before{content:"";position:absolute;left:11px;top:10px;bottom:10px;width:2px;background:linear-gradient(180deg,color-mix(in srgb,var(--ink) 22%,transparent),color-mix(in srgb,var(--ink) 14%,transparent))}.rc-empty{font-size:var(--fs-sm);color:var(--ink-faint);padding:10px 2px}.rc-step{position:relative}.rc-node{position:absolute;left:-25px;top:15px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:2px solid var(--nd, var(--ink-faint));box-shadow:0 0 0 4px var(--bg);display:flex;align-items:center;justify-content:center}.rc-node b{width:4px;height:4px;border-radius:50%;background:var(--nd, var(--ink-faint))}.rc-card{position:relative;border:1px solid var(--border);border-left:3px solid var(--nd, var(--ink-faint));border-radius:var(--radius);background:var(--panel);padding:11px 12px 12px;margin-bottom:8px;transition:border-color .12s ease,background .12s ease}.rc-card:hover{border-color:color-mix(in srgb,var(--ink) 30%,transparent)}.rc-card.is-dragging{opacity:.4}.rc-card.is-over-before{box-shadow:0 -2px 0 0 var(--precision, var(--accent))}.rc-card.is-over-after{box-shadow:0 2px 0 0 var(--precision, var(--accent))}.rc-card-head{display:flex;align-items:center;gap:9px}.rc-grip{flex:none;display:flex;align-items:center;justify-content:center;width:16px;height:18px;margin:-2px 1px -2px -4px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--ink-faint);cursor:grab;touch-action:none}.rc-grip svg{display:block}.rc-grip:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}.rc-grip:active{cursor:grabbing}.rc-grip:focus-visible{outline:2px solid var(--accent);outline-offset:1px;color:var(--ink)}.rc-ic{flex:none;width:22px;height:22px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--nd) 45%,var(--border));background:color-mix(in srgb,var(--nd) 9%,transparent);display:flex;align-items:center;justify-content:center;color:var(--nd, var(--ink-dim))}.rc-ic svg{width:13px;height:13px;display:block}.rc-num{font-size:var(--fs-label);color:var(--ink-faint);font-variant-numeric:tabular-nums;min-width:12px;text-align:right;flex:none}.rc-name{font-size:var(--fs-base);font-weight:600;color:var(--ink);letter-spacing:-.005em}.rc-stream{font-size:var(--fs-label);color:var(--ink-faint);display:inline-flex;align-items:center;gap:5px;margin-left:2px;white-space:nowrap}.rc-stream i{width:7px;height:7px;border-radius:2px;display:inline-block;flex:none}.rc-spacer{flex:1}.rc-cv{font-size:var(--fs-sm);color:var(--ink-dim);font-variant-numeric:tabular-nums;white-space:nowrap}.rc-cv b{color:var(--ink);font-weight:600}.rc-cv .u{color:var(--ink-faint);font-weight:400;font-size:var(--fs-label)}.rc-rm{background:transparent;border:0;color:var(--ink-faint);font-size:15px;line-height:1;cursor:pointer;padding:0 0 0 2px;flex:none}.rc-rm:hover{color:var(--error)}.rc-chips{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0 0 31px}.rc-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);padding:2px 7px;font-size:var(--fs-label);color:var(--ink-dim);white-space:nowrap}.rc-chip .lbl{color:var(--ink-faint);text-transform:lowercase}.rc-chip .u{color:var(--ink-faint)}.rc-chip .ar{color:var(--ink-faint);font-size:10px}.rc-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--salt);flex:none}.rc-chip.muted{color:var(--ink-faint);font-style:italic}.rc-chip input{background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--border-2);border-radius:0;font:inherit;font-size:var(--fs-label);font-variant-numeric:tabular-nums;padding:0 2px 1px;text-align:center;caret-color:var(--ink);user-select:none;-webkit-user-select:none;transition:border-color .1s ease}.rc-chip input::selection{background:transparent}.rc-chip input:hover{border-bottom-color:var(--ink-faint)}.rc-chip input:focus{outline:none;border-bottom-color:var(--accent);background:transparent}.rc-bar-row{display:flex;align-items:center;gap:8px;margin:10px 0 1px 31px}.rc-bar{position:relative;flex:1;height:4px;border-radius:2px;background:color-mix(in srgb,var(--ink) 9%,transparent);overflow:hidden}.rc-bar .fill{position:absolute;left:0;top:0;bottom:0;border-radius:2px;background:color-mix(in srgb,var(--nd) 70%,transparent)}.rc-bar.grad .fill{background:linear-gradient(90deg,color-mix(in srgb,var(--salt) 28%,transparent),color-mix(in srgb,var(--salt) 95%,transparent))}.rc-bar-pct{font-size:var(--fs-label);color:var(--ink-faint);font-variant-numeric:tabular-nums;width:34px;text-align:right;flex:none}.rc-end{position:relative;min-height:16px;margin-top:2px;display:flex;align-items:center}.rc-end .rc-node{left:-25px;top:0;position:absolute;border-color:var(--ink-faint)}.rc-end .rc-node b{background:var(--ink-faint)}.rc-end-lbl{font-size:var(--fs-label);color:var(--ink-faint)}.rc-foot-note{font-size:var(--fs-label);color:var(--ink-faint);line-height:1.4;margin:12px 0 0 30px}.rc-palette{display:flex;flex-wrap:wrap;gap:5px;margin:16px 0 0 30px}.rc-add-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-2);background:transparent;color:var(--ink-dim);font:inherit;font-size:var(--fs-label);padding:3px 9px;border-radius:var(--radius);cursor:pointer;white-space:nowrap}.rc-add-chip:hover{color:var(--ink);border-color:var(--accent)}.rc-warn{font-size:var(--fs-label);color:var(--error);line-height:1.4;margin:10px 0 0 30px}.fw-mode-toggle .mode-seg{white-space:nowrap}.ws-lockup{margin-left:10px}.fw-workbench{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.fw-bar{flex:0 0 auto;display:flex;align-items:center;gap:.75rem;padding:.4rem .6rem;border-bottom:1px solid var(--border);background:var(--panel)}.fw-seg{display:inline-flex;border:1px solid var(--border-2);border-radius:var(--radius);overflow:hidden}.fw-seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-faint);font:inherit;font-size:11px;letter-spacing:0;padding:.3rem .8rem;cursor:pointer}.fw-seg button+button{border-left:1px solid var(--border-2)}.fw-seg button:hover{color:var(--ink);background:var(--panel-2)}.fw-seg button[aria-selected=true]{background:var(--accent);color:var(--bg)}.app.precision-on .fw-seg button[aria-selected=true]{background:var(--precision, var(--accent))}.fw-spacer{flex:1 1 auto}.fw-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-2);background:transparent;color:var(--ink-dim);font:inherit;font-size:11px;letter-spacing:0;height:26px;padding:0 .65rem;border-radius:var(--radius);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.fw-btn:hover:not(:disabled){color:var(--ink);border-color:var(--accent)}.fw-btn:disabled{opacity:.5;cursor:default}.fw-runstate{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:0;color:var(--ink-faint);white-space:nowrap}.fw-runstate-dot{width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--ink) 30%,transparent)}.fw-runstate.is-running{color:var(--ink-dim)}.fw-runstate.is-running .fw-runstate-dot{background:var(--precision, var(--accent));animation:fw-pulse 1.1s ease-in-out infinite}@keyframes fw-pulse{0%,to{opacity:1}50%{opacity:.3}}@media (prefers-reduced-motion: reduce){.fw-runstate.is-running .fw-runstate-dot{animation:none}}.fw-icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-2);background:transparent;color:var(--ink-dim);height:26px;width:26px;padding:0;border-radius:var(--radius);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.fw-icon-btn svg{width:15px;height:15px}.fw-icon-btn:hover:not(:disabled){color:var(--ink);border-color:var(--accent)}.fw-icon-btn:disabled{opacity:.5;cursor:default}.fw-icon-btn-cancel:hover{color:var(--error);border-color:var(--error)}.fw-win-fs{position:absolute;top:8px;right:8px;z-index:6;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-2);background:color-mix(in srgb,var(--bg) 68%,transparent);color:var(--ink-faint);height:22px;width:22px;padding:0;border-radius:var(--radius);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.fw-win-fs svg{width:13px;height:13px}.fw-win-fs:hover{color:var(--ink);border-color:var(--accent);background:var(--panel)}.fw-bar .chart-head{flex:1 1 auto;min-width:0;border-bottom:none;margin:0;padding:0;gap:10px;align-items:center;flex-wrap:nowrap}.fw-bar .chart-head .chart-title{font-size:var(--fs-base);min-width:0}.fw-bar .chart-head .chart-head-actions{flex-wrap:nowrap;gap:6px;flex-shrink:0}.fw-bar .chart-head .status{white-space:nowrap}.fw-stage{flex:1 1 auto;min-height:0;position:relative;display:flex;align-items:stretch}.fw-win{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg);position:relative}.fw-win-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:.3rem .7rem;border-bottom:1px solid var(--border);font-size:10px;font-weight:600;letter-spacing:0;text-transform:lowercase;color:var(--ink-faint);background:var(--panel)}.fw-win-title{display:inline-flex;align-items:center;gap:.4rem}.fw-win-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.fw-win-preset{margin-left:10px;padding-left:10px;border-left:1px solid var(--border-2);font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40ch}.fw-win-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.fw-win-results .fw-win-body{padding:1.25rem;overflow:auto}.fw-win-results .fw-win-body .chart-box{flex:0 0 auto;min-height:clamp(240px,34vh,380px)}.fw-win-results.is-full .fw-win-body .chart-box{min-height:clamp(300px,52vh,620px)}.fw-win-results .fw-win-body .chart-head{flex-wrap:wrap;gap:8px}.fw-win-results .fw-win-body .chart-head-actions{flex-wrap:wrap}.fw-divider{flex:0 0 7px;align-self:stretch;cursor:col-resize;background:var(--border)}.fw-divider:hover{background:var(--accent)}.fw-stage.is-vertical{flex-direction:column}.fw-stage.is-vertical .fw-divider{cursor:row-resize}.fw-canvas{flex:1 1 auto;min-height:0;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(0deg,transparent 0 23px,color-mix(in srgb,var(--border) 55%,transparent) 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,color-mix(in srgb,var(--border) 55%,transparent) 23px 24px),var(--bg)}.fw-canvas-hint{text-align:center;color:var(--ink-faint);font-size:12px;line-height:1.7;max-width:300px}.fw-canvas-hint b{color:var(--ink-dim);font-weight:600}.fw-canvas-wrap{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;--fw-product: #4a9d6b;--fw-waste: #c8607a;background:var(--bg)}.fw-dot{fill:color-mix(in srgb,var(--border) 85%,transparent)}.fw-dot-bg{pointer-events:none}.fw-canvas-svg{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.fw-canvas-svg.is-panning{cursor:grabbing}.fw-viewport.is-animating{transition:transform .2s cubic-bezier(.22,.61,.36,1)}.fw-node{cursor:grab}.fw-node:focus{outline:none}.fw-node.is-dragging{cursor:grabbing;filter:drop-shadow(0 9px 14px rgba(0,0,0,.5))}.fw-node-box{fill:transparent;stroke:transparent;stroke-width:1.5;transition:stroke .1s ease,fill .1s ease}.fw-node:hover .fw-node-box{stroke:var(--border-2)}.fw-node-ring-track{fill:none;stroke:color-mix(in srgb,var(--ink) 16%,transparent);stroke-width:1.5;pointer-events:none}.fw-node-ring{fill:none;stroke:color-mix(in srgb,var(--ink) 78%,transparent);stroke-width:2.5;stroke-linecap:round;pointer-events:none}.fw-node.is-displacing{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--error) 65%,transparent))}.fw-node.is-displacing .fw-node-box{stroke:color-mix(in srgb,var(--error) 60%,transparent)}.fw-node.is-wire-invalid{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--error) 55%,transparent))}.fw-node.is-wire-invalid .fw-node-box{stroke:color-mix(in srgb,var(--error) 50%,transparent)}.fw-node.is-swap-target .fw-node-box{stroke:color-mix(in srgb,var(--ink) 70%,transparent);stroke-dasharray:5 3;fill:color-mix(in srgb,var(--ink) 12%,transparent)}.fw-ghost.is-displacing{filter:drop-shadow(0 0 7px var(--error))}.fw-ghost.is-swapping{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--ink) 65%,transparent))}.fw-g-bead{fill:var(--ink-faint)}.fw-node-model{fill:var(--ink-faint);font-size:8.5px;font-family:var(--font-mono, ui-monospace, monospace);letter-spacing:0}.fw-node.is-selected .fw-node-box{fill:color-mix(in srgb,var(--ink) 5%,transparent);stroke:color-mix(in srgb,var(--ink) 60%,transparent);stroke-width:2}.fw-node.is-dragging .fw-node-box{fill:color-mix(in srgb,var(--ink) 6%,transparent);stroke:color-mix(in srgb,var(--ink) 42%,transparent)}.fw-node-label{fill:var(--ink-dim);font-size:11px;font-family:var(--font-sans)}.fw-node.is-selected .fw-node-label{fill:var(--ink)}.fw-node-detector{cursor:help}.fw-node-detector-dot{fill:var(--precision, var(--accent))}.fw-node-detector-ring{fill:color-mix(in srgb,var(--precision, var(--accent)) 18%,transparent);stroke:var(--precision, var(--accent));stroke-width:1}.fw-g-fill{fill:var(--panel-2);stroke:var(--border-2);stroke-width:1}.fw-g-cap{fill:var(--border)}.fw-g-mid{fill:var(--ink-faint)}.fw-g-cap-s{fill:none;stroke:var(--border);stroke-width:3;stroke-linecap:round}.fw-g-mid-s{fill:none;stroke:var(--ink-faint);stroke-width:7;stroke-linecap:round}.fw-g-product{fill:var(--fw-product)}.fw-g-waste{fill:var(--fw-waste)}.fw-edge{fill:none;stroke:var(--ink-faint);stroke-width:2}.fw-edge-arrow{fill:var(--ink-faint)}.fw-canvas-tools{position:absolute;bottom:12px;left:12px;display:flex;gap:4px;z-index:4}.fw-canvas-tools .fw-btn{background:color-mix(in srgb,var(--panel) 88%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);min-width:30px;text-align:center}.fw-tools-sep{width:1px;align-self:stretch;background:var(--border-2);margin:3px}.fw-style-seg{background:color-mix(in srgb,var(--panel) 88%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fw-style-seg button{padding:.26rem .55rem}.fw-g-pid{fill:none;stroke:var(--ink-dim);stroke-linecap:round;stroke-linejoin:round}.fw-g-pid-tint-product{fill:var(--fw-product);opacity:.22}.fw-g-pid-tint-waste{fill:var(--fw-waste);opacity:.22}.fw-edge-tabs{display:flex;flex-direction:column;height:100%;border-left:1px solid var(--border)}.fw-edge-tabs .panel-edge-tab{flex:1 1 50%;min-height:0;border-left:0}.fw-edge-tabs .panel-edge-tab+.panel-edge-tab{border-top:1px solid var(--border)}.fw-lib{--fw-product: #4a9d6b;--fw-waste: #c8607a}.fw-lib-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fw-lib-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 6px 9px;border:1px solid var(--border-2);border-radius:var(--radius);background:var(--panel-2);cursor:pointer;font:inherit}.fw-lib-item:hover:not(:disabled){border-color:var(--accent);background:var(--panel)}.fw-lib-item:disabled{opacity:.4;cursor:not-allowed}.fw-lib-glyph{width:58px;height:52px}.fw-lib-name{font-size:11px;font-weight:600;color:var(--ink)}.fw-lib-desc{font-size:9.5px;color:var(--ink-faint);text-align:center;line-height:1.3}.fw-lib-hint{font-size:10px;color:var(--ink-faint);margin:14px 2px 0;text-align:center;line-height:1.5}.fw-lib-subhead{font-size:var(--fs-label);color:var(--ink-faint);letter-spacing:var(--tracking-label);margin:.9rem 2px .45rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}.fw-lib-subhead:first-of-type{margin-top:.3rem}.fw-lib-item{cursor:grab}.fw-lib-item:active{cursor:grabbing}.fw-lib-tabs{display:flex;gap:5px;margin:0 0 .75rem}.fw-lib-tabs button{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-2);background:transparent;color:var(--ink-dim);font:inherit;font-size:11px;letter-spacing:0;padding:4px 0;border-radius:var(--radius);cursor:pointer}.fw-lib-tabs button:hover{color:var(--ink)}.fw-lib-tabs button[aria-selected=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}.app.precision-on .fw-lib-tabs button[aria-selected=true]{background:var(--precision, var(--accent));border-color:var(--precision, var(--accent))}.fw-mod-list{display:flex;flex-direction:column;gap:8px}.fw-mod{display:flex;flex-direction:column;text-align:left;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:1px solid var(--border);border-left:3px solid var(--precision, var(--accent));border-radius:var(--radius);background:var(--bg);padding:9px 10px;transition:border-color .12s ease,background .12s ease}.fw-mod:hover{border-color:color-mix(in srgb,var(--precision, var(--accent)) 55%,transparent);background:color-mix(in srgb,var(--precision, var(--accent)) 6%,transparent)}.fw-mod-head{display:flex;align-items:baseline;gap:7px}.fw-mod-name{flex:1;font-size:var(--fs-base);font-weight:600;color:var(--ink)}.fw-mod-count{font-size:9px;color:var(--ink-faint);border:1px solid var(--border-2);border-radius:var(--radius);padding:1px 5px;white-space:nowrap}.fw-mod-desc{font-size:10px;color:var(--ink-dim);line-height:1.45;margin:5px 0 0}.fw-mod-flow{display:flex;align-items:center;flex-wrap:wrap;gap:3px;margin-top:7px}.fw-mod-step{display:inline-flex;align-items:center;gap:3px}.fw-mod-arr{color:var(--ink-faint);font-size:9px}.fw-mod-pill{font-size:8.5px;color:var(--ink-dim);border:1px solid var(--border-2);border-radius:8px;padding:1px 6px;background:var(--panel-2);white-space:nowrap}.fw-mod-pill.is-col{border-color:color-mix(in srgb,var(--ink) 35%,transparent);color:var(--ink)}.fw-canvas-svg.is-dragging{cursor:grabbing}.fw-menu-deletezone{position:fixed;z-index:58;border:2px dashed var(--border-2);border-radius:var(--radius);background:color-mix(in srgb,var(--panel) 28%,transparent);display:grid;place-items:center;pointer-events:none;transition:background .12s ease,border-color .12s ease}.fw-menu-deletezone span{font-size:11px;font-weight:600;letter-spacing:0;color:var(--ink-faint)}.fw-menu-deletezone.is-over{border-color:var(--error);background:color-mix(in srgb,var(--error) 18%,transparent)}.fw-menu-deletezone.is-over span{color:var(--error)}.fw-ghost{position:fixed;z-index:60;width:80px;height:72px;transform:translate(-50%,-52%);pointer-events:none;opacity:.92;filter:drop-shadow(0 8px 14px rgba(0,0,0,.45));--fw-product: #4a9d6b;--fw-waste: #c8607a}.fw-ghost svg{width:100%;height:100%}.fw-trash{position:absolute;right:18px;bottom:18px;z-index:7;width:52px;height:52px;display:grid;place-items:center;border-radius:var(--radius);border:1px solid var(--border-2);background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);opacity:0;transform:translateY(16px) scale(.6);pointer-events:none;transition:opacity .15s ease,transform .16s cubic-bezier(.2,1.3,.5,1),border-color .12s ease,background .12s ease}.fw-trash.is-active{opacity:1;transform:translateY(0) scale(1);animation:fw-trash-shake .26s ease-in-out infinite}.fw-trash.is-open{animation:none;transform:translateY(-2px) scale(1.22);border-color:var(--error);background:color-mix(in srgb,var(--error) 24%,var(--panel))}.fw-trash svg{width:30px;height:30px;overflow:visible}.fw-trash-lid{transform-origin:9px 9px;transition:transform .14s ease}.fw-trash.is-open .fw-trash-lid{transform:translateY(-3px) rotate(-22deg)}.fw-trash-body{fill:none;stroke:var(--ink-dim);stroke-width:2.2;stroke-linejoin:round}.fw-trash-lid>rect{fill:var(--ink-dim)}.fw-trash-lines{stroke:var(--ink-dim);stroke-width:1.6;stroke-linecap:round}.fw-trash.is-open .fw-trash-body,.fw-trash.is-open .fw-trash-lines{stroke:#fff}.fw-trash.is-open .fw-trash-lid>rect{fill:#fff}@keyframes fw-trash-shake{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.fw-port{stroke:var(--bg);stroke-width:1.5;transition:fill .1s ease}.fw-port-out{fill:var(--ink-faint);cursor:crosshair}.fw-node:hover .fw-port-out,.fw-port-out:hover{fill:var(--accent)}.fw-port-in{fill:var(--border-2);pointer-events:none}.fw-port-in.is-valid{fill:var(--fw-product)}.fw-port-in.is-invalid{fill:var(--error)}.fw-port-in.is-snap{fill:var(--fw-product);stroke:var(--fw-product)}.fw-wire-temp{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-dasharray:6 4;pointer-events:none}.fw-edge-hit{fill:none;stroke:transparent;stroke-width:16;cursor:pointer}.fw-edge-g.is-selected .fw-edge{stroke:var(--precision, var(--accent));stroke-width:2.6}.fw-edge-del{cursor:pointer}.fw-edge-del circle{fill:var(--panel);stroke:var(--error);stroke-width:1.5}.fw-edge-del path{stroke:var(--error);stroke-width:1.8;stroke-linecap:round}.fw-edge-del:hover circle{fill:var(--error)}.fw-edge-del:hover path{stroke:#fff}.fw-orbit{pointer-events:none;transform-box:fill-box}.fw-orbit>*{pointer-events:auto}.fw-orbit-ring{fill:none;stroke:color-mix(in srgb,var(--ink) 18%,transparent);stroke-width:1.2;stroke-dasharray:3 4;pointer-events:none}.fw-orbit-cap rect{fill:var(--panel);stroke:var(--border-2);stroke-width:1}.fw-orbit-cap text{fill:var(--ink-faint);font-size:10px;font-family:var(--font-sans);letter-spacing:0;text-transform:lowercase}.fw-orbit-cap{pointer-events:none}.fw-orbit-link{stroke:color-mix(in srgb,var(--ink) 22%,transparent);stroke-width:1.4}.fw-orbit-item{cursor:pointer}.fw-orbit-item:focus{outline:none}.fw-orbit-pill-g{transform:translate(calc(var(--fw-orbit-px) * 1px),calc(var(--fw-orbit-py) * 1px))}.fw-orbit-pill{fill:var(--panel);stroke:var(--border-2);stroke-width:1.4;transition:fill .1s ease,stroke .1s ease}.fw-orbit-item:hover .fw-orbit-pill{stroke:var(--accent);fill:var(--panel-2)}.fw-orbit-item:focus-visible .fw-orbit-pill{stroke:var(--accent);stroke-width:2.4}.fw-orbit-item:focus-visible .fw-orbit-pill-g{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 55%,transparent))}.fw-orbit-item.is-on .fw-orbit-pill{fill:color-mix(in srgb,var(--ink) 88%,transparent);stroke:color-mix(in srgb,var(--ink) 88%,transparent)}.fw-orbit-item.is-on:hover .fw-orbit-pill{fill:var(--ink);stroke:var(--ink)}.fw-orbit-item.is-on .fw-orbit-link{stroke:color-mix(in srgb,var(--ink) 55%,transparent)}.fw-orbit-dot{stroke:#00000059;stroke-width:.5;pointer-events:none}.fw-orbit-item:not(.is-on) .fw-orbit-dot{opacity:.55}.fw-orbit-label{fill:var(--ink-dim);font-size:11px;font-family:var(--font-sans);letter-spacing:0;pointer-events:none}.fw-orbit-label.has-sub{font-size:10.5px}.fw-orbit-sub{fill:var(--ink-faint);font-size:7.5px;font-family:var(--font-mono, ui-monospace, monospace);letter-spacing:.02em;pointer-events:none;text-transform:uppercase}.fw-orbit-item:hover .fw-orbit-label{fill:var(--ink)}.fw-orbit-item.is-on .fw-orbit-label{fill:var(--bg);font-weight:600}.fw-orbit-item.is-on .fw-orbit-sub{fill:color-mix(in srgb,var(--bg) 78%,transparent)}.fw-orbit-check{fill:none;stroke:var(--bg);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.fw-orbit-ring,.fw-orbit-cap,.fw-orbit-link{animation:fw-orbit-fade .15s ease both}.fw-orbit-pill-g{animation:fw-orbit-pop .19s cubic-bezier(.22,.9,.3,1.1) both;animation-delay:calc(var(--fw-orbit-i) * 36ms);transform-box:fill-box;transform-origin:center}@keyframes fw-orbit-fade{0%{opacity:0}to{opacity:1}}@keyframes fw-orbit-pop{0%{opacity:0;transform:translate(calc(var(--fw-orbit-cx) * 1px),calc(var(--fw-orbit-cy) * 1px)) scale(.3)}to{opacity:1;transform:translate(calc(var(--fw-orbit-px) * 1px),calc(var(--fw-orbit-py) * 1px)) scale(1)}}.fw-orbit-name{animation:fw-orbit-fade .17s ease both}.fw-orbit-name-link{stroke:color-mix(in srgb,var(--ink) 22%,transparent);stroke-width:1.4}.fw-orbit-name-pill{cursor:text}.fw-orbit-name-pill rect{fill:var(--panel);stroke:var(--border-2);stroke-width:1.4;transition:fill .1s ease,stroke .1s ease}.fw-orbit-name-pill:hover rect{stroke:var(--accent);fill:var(--panel-2)}.fw-orbit-name-pill:focus{outline:none}.fw-orbit-name-pill:focus-visible rect{stroke:var(--accent);stroke-width:2.4}.fw-orbit-name-text{fill:var(--ink-dim);font-size:11px;font-family:var(--font-sans);letter-spacing:0;pointer-events:none}.fw-orbit-name-pill:hover .fw-orbit-name-text{fill:var(--ink)}.fw-orbit-name-icon{fill:none;stroke:var(--ink-faint);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.fw-orbit-name-pill:hover .fw-orbit-name-icon{stroke:var(--accent)}.fw-orbit-name.is-editing .fw-orbit-name-link{stroke:color-mix(in srgb,var(--accent) 55%,transparent)}.fw-orbit-name-input{box-sizing:border-box;width:calc(100% - 8px);height:26px;margin:2px 4px;padding:0 10px;border-radius:13px;border:1.6px solid var(--accent);background:var(--panel);color:var(--ink);font-size:12px;font-family:var(--font-sans);text-align:center;outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.fw-insp .section-head{margin-bottom:10px}.fw-insp-collect{display:flex;flex-direction:column;gap:8px;padding:12px 2px 2px;margin-top:8px;border-top:1px solid var(--border-2)}.fw-collect-chips{display:flex;flex-wrap:wrap;gap:6px}.fw-collect-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--border-2);border-radius:var(--radius);background:transparent;color:var(--ink-dim);font-size:11px;cursor:pointer}.fw-collect-chip:hover{color:var(--ink)}.fw-collect-chip.is-on{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 38%,transparent);background:color-mix(in srgb,var(--ink) 8%,transparent)}.fw-collect-dot{width:9px;height:9px;border-radius:2px;flex:none;opacity:.45}.fw-collect-chip.is-on .fw-collect-dot{opacity:1}.fw-feed-results{display:flex;flex-direction:column}.fw-feed-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-right:26px}.fw-feed-title{font-size:var(--fs-base);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.fw-feed-note{font-size:var(--fs-label);color:var(--ink-faint);line-height:1.6;margin:2px 0 14px}.fw-feed-comps{display:flex;flex-direction:column;gap:10px}.fw-feed-method{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--border)}.fw-comp-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}.fw-comp-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);padding:3px 6px 3px 7px}.fw-comp-chip.is-active{border-color:color-mix(in srgb,var(--precision, var(--accent)) 55%,var(--border));background:color-mix(in srgb,var(--precision, var(--accent)) 10%,transparent)}.fw-comp-chip.is-off{opacity:.55}.fw-comp-chip .comp-swatch{width:10px;height:10px;flex:none}.fw-comp-chip .fw-comp-chip-dot{width:9px;height:9px;border-radius:50%;flex:none}.fw-comp-chip.is-off .fw-comp-chip-dot{opacity:.5}.fw-comp-chip-name{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-label);cursor:pointer;padding:0;white-space:nowrap}.fw-comp-chip.is-off .fw-comp-chip-name{text-decoration:line-through;color:var(--ink-faint)}.fw-comp-chip-x{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-faint);font-size:13px;line-height:1;cursor:pointer;padding:0 1px}.fw-comp-chip-x:hover{color:var(--error)}.fw-comp-chip-add{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-2);border-radius:var(--radius);background:transparent;color:var(--ink-dim);font-size:14px;line-height:1;width:22px;height:22px;cursor:pointer}.fw-comp-chip-add:hover:not(:disabled){color:var(--ink);border-color:var(--accent)}.fw-comp-chip-add:disabled{opacity:.4;cursor:not-allowed}.fw-comp-body{border-top:1px solid var(--border);padding-top:10px}.fw-comp-body-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.fw-comp-body-head .comp-name{flex:1;font-size:var(--fs-base);font-weight:600}.fw-result{--fw-salt: #5aa6cf;--fw-load: color-mix(in srgb, var(--precision, var(--accent)) 16%, transparent);height:100%;min-height:0;display:flex;flex-direction:column;padding:14px 16px;gap:10px}.fw-result-scroll{overflow-y:auto}.fw-result-head{display:flex;flex-direction:column;gap:2px}.fw-result-title{font-size:14px;font-weight:600;color:var(--ink)}.fw-result-sub{font-size:11px;color:var(--ink-dim)}.fw-result-chart{flex:1 1 auto;min-height:180px}.fw-result-note{font-size:11px;color:var(--ink-faint);line-height:1.5;border-top:1px solid var(--border-2);padding-top:8px}.fw-result-empty{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:var(--ink-dim);padding:18px}.fw-result-empty p{font-size:12px;line-height:1.6;max-width:34ch;margin:0}.fw-result-empty-sub{color:var(--ink-faint);font-size:11px!important}.fw-result-empty-sub code{font-family:var(--font-mono, monospace);font-size:10px;color:var(--ink-dim)}.fw-result-empty-art{stroke:var(--border);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.7}.fw-pool{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:2px 2px 4px}.fw-pool-chart{flex:0 0 auto;height:150px}.fw-pool-window{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;min-width:0}.fw-pool-window-row{display:flex;align-items:flex-start;gap:10px}.fw-win-suggest{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-2);background:transparent;color:var(--ink-dim);font:inherit;font-size:10.5px;letter-spacing:0;padding:3px 9px;border-radius:var(--radius);cursor:pointer;white-space:nowrap;flex:0 0 auto;align-self:center}.fw-win-suggest:hover:not(:disabled){color:var(--ink);border-color:var(--accent)}.fw-win-suggest:disabled{opacity:.45;cursor:default}.fw-pool-window label{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-dim)}.fw-pool-window-k{width:28px;flex:0 0 auto}.fw-pool-window input[type=range]{flex:1 1 auto;accent-color:var(--ink-dim);height:14px;min-width:0}.fw-pool-window-num{width:46px;flex:0 0 auto;text-align:right;color:var(--ink);font:inherit;font-size:11px;font-variant-numeric:tabular-nums;background:var(--bg);border:1px solid var(--border-2);border-radius:var(--radius);padding:2px 4px;-moz-appearance:textfield}.fw-pool-window-num::-webkit-outer-spin-button,.fw-pool-window-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fw-pool-window-num:focus{outline:none;border-color:var(--accent)}.fw-pool-window-unit{flex:0 0 auto;width:16px;color:var(--ink-faint)}.fw-pool-hero{display:flex;align-items:center;gap:9px}.fw-pool-swatch{width:12px;height:12px;border-radius:var(--radius);flex:0 0 auto}.fw-pool-pct{font-size:30px;font-weight:600;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.01em;flex:0 0 auto}.fw-pool-cap{font-size:12px;color:var(--ink-dim);line-height:1.25;min-width:0}.fw-pool-sub2{font-size:11px;color:var(--ink-faint)}.fw-pool-bar{display:flex;width:100%;height:9px;border-radius:5px;overflow:hidden;background:var(--border-2);gap:1px}.fw-pool-seg{height:100%;min-width:1px}.fw-pool-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.fw-pool-table th{text-align:right;font-weight:500;color:var(--ink-faint);font-size:10.5px;letter-spacing:0;padding:0 0 6px 12px;border-bottom:1px solid var(--border-2);white-space:nowrap}.fw-pool-table th:first-child{text-align:left;padding-left:0}.fw-pool-table td{text-align:right;color:var(--ink);padding:6px 0 6px 12px;border-bottom:1px solid var(--border-2);white-space:nowrap}.fw-pool-table td:first-child{text-align:left;padding-left:0;color:var(--ink-dim);display:flex;align-items:center;gap:7px;white-space:normal}.fw-pool-table tr:last-child td{border-bottom:none}.fw-pool-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.fw-pool-metrics{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11.5px}.fw-pool-metric-h{color:var(--ink-faint);font-size:10.5px;margin-right:2px}.fw-pool-chip{padding:1px 7px;border:1px solid var(--border-2);border-radius:var(--radius);color:var(--ink-dim);font-variant-numeric:tabular-nums;white-space:nowrap}.fw-pool-chip.is-poor{border-color:color-mix(in srgb,var(--ink) 38%,transparent);color:var(--ink)}.fw-pool-stat{color:var(--ink-dim);font-variant-numeric:tabular-nums}.fw-pool-stat b{color:var(--ink);font-weight:600}.fw-pool-stat+.fw-pool-stat:before{content:"·";margin-right:6px;color:var(--ink-faint)}.fw-chrom-chart{flex:0 0 auto;height:188px}.fw-win-results.is-full .fw-chrom-chart{height:clamp(188px,42vh,460px)}.fw-win-results.is-full .fw-pool-chart{height:clamp(150px,36vh,400px)}.fw-chrom-strip{gap:14px;font-size:12.5px;padding-top:10px;border-top:1px solid var(--border-2)}.fw-chrom-strip .fw-pool-stat+.fw-pool-stat:before{margin-right:14px}.fw-chrom-stat-sub{color:var(--ink-faint);font-size:11px}.fw-run-error{font-size:10px;color:var(--error);margin-right:8px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.an-panel{--an-pad: 18px;--an-pos: #6f86a8;--an-neg: #b08568;--an-comp-b: #5aa6cf;--an-deriv: #c79a52;height:100%;min-height:0;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--font-sans)}.app[data-theme=light] .an-panel,:root[data-theme=light] .an-panel{--an-pos: #54708f;--an-neg: #9c6f50;--an-comp-b: #2f7fac;--an-deriv: #9a7320}.an-toolbar{flex:0 0 auto;display:flex;align-items:center;gap:.6rem;padding:.5rem var(--an-pad);border-bottom:1px solid var(--border);background:var(--panel)}.an-body{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--an-pad)}.an-seg{display:inline-flex;border:1px solid var(--border-2);border-radius:var(--radius);overflow:hidden}.an-seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-faint);font:inherit;font-size:11px;letter-spacing:0;padding:.3rem .8rem;cursor:pointer}.an-seg button+button{border-left:1px solid var(--border-2)}.an-seg button:hover{color:var(--ink);background:var(--panel-2)}.an-seg button[aria-selected=true]{background:var(--accent);color:var(--bg)}.an-sens .an-seg button[aria-selected=true]{background:var(--precision);color:#fff}.an-seg-sm button{font-size:10.5px;padding:.25rem .65rem}.an-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:11px;letter-spacing:0;border-radius:var(--radius);cursor:pointer;white-space:nowrap}.an-btn-ghost{border:1px solid var(--border-2);background:transparent;color:var(--ink-dim);padding:.25rem .6rem}.an-btn-ghost:hover{color:var(--ink);border-color:var(--accent)}.an-btn-primary{width:100%;margin-top:14px;border:1px solid color-mix(in srgb,var(--ink) 32%,transparent);background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink);padding:7px 12px}.an-btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 15%,transparent)}.an-btn-primary:disabled{opacity:.5;cursor:default}.an-scaling{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.an-card{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.an-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.an-card-title{margin:0 0 10px;font-size:var(--fs-label);letter-spacing:0;color:var(--ink-faint);font-weight:600}.an-card-head .an-card-title{margin:0}.an-field{display:grid;grid-template-columns:1fr 110px;align-items:center;gap:8px;margin:9px 0;font-size:12.5px;color:var(--ink-dim)}.an-field-label{display:inline-flex;align-items:baseline;gap:5px}.an-unit{color:var(--ink-faint);font-size:10.5px}.an-input{background:transparent;border:0;border-bottom:1px solid var(--border-2);color:var(--ink);border-radius:0;padding:3px 6px 3px 2px;font:inherit;font-size:12px;text-align:right;font-variant-numeric:tabular-nums;width:100%;caret-color:var(--ink);transition:border-color .1s ease}.an-input:hover{border-bottom-color:var(--ink-faint)}.an-input:focus{outline:none;border-bottom-color:var(--accent)}.an-input{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.an-input::-webkit-outer-spin-button,.an-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.an-stepper{position:relative;display:flex;align-items:center;width:100%}.an-stepper .an-input{padding-right:20px}.an-stepper-btns{position:absolute;right:3px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:1px}.an-step-btn{display:flex;align-items:center;justify-content:center;height:9px;padding:0;margin:0;background:transparent;border:0;color:var(--ink-faint);cursor:pointer;line-height:0;transition:color .1s ease}.an-step-btn:hover{color:var(--ink)}.an-select{text-align:left}.an-outs{margin-top:4px}.an-out{display:grid;grid-template-columns:1fr auto;gap:6px;margin:8px 0;font-size:12.5px;color:var(--ink-dim)}.an-out-val b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.an-out-val .an-unit{margin-left:3px}.an-factor{display:flex;align-items:baseline;gap:10px;margin:2px 0 14px}.an-factor-big{font-size:30px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1}.an-factor-cap{font-size:11px;color:var(--ink-faint)}.an-chip-group{margin-top:12px}.an-chip-head{font-size:var(--fs-label);letter-spacing:0;color:var(--ink-faint);margin-bottom:6px}.an-chips{display:flex;flex-wrap:wrap;gap:6px}.an-chip{font-size:11px;padding:3px 9px;border-radius:var(--radius);border:1px solid var(--border-2);color:var(--ink-dim)}.an-chip-held{border-color:color-mix(in srgb,var(--ink) 40%,transparent);background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink);font-weight:600}.an-chip-scaled{opacity:.82}.an-caveats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.an-caveat{font-size:11.5px;color:var(--ink-dim);line-height:1.5;padding:.375rem .5rem;border-left:2px solid var(--error);background:color-mix(in srgb,var(--error) 8%,transparent)}.an-error{font-size:12px;color:var(--error);margin:4px 0}.an-sens{display:flex;flex-direction:column;gap:12px;min-width:0}.an-sens-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-dim);border:1px solid var(--border-2);background:var(--panel-2);border-radius:var(--radius);padding:7px 11px}.an-sens-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-faint);flex:0 0 auto}.an-sens-banner-sub{margin-left:auto;color:var(--ink-faint);font-size:10.5px}.an-sens-grid{display:grid;grid-template-columns:210px minmax(0,1fr) 230px;gap:14px;align-items:start}@media (max-width: 1080px){.an-sens-grid{grid-template-columns:1fr}}.an-rail{min-width:0}.an-rail-title{font-size:var(--fs-label);letter-spacing:0;color:var(--ink-faint);font-weight:600;margin-bottom:10px}.an-rail-metric{letter-spacing:0;color:var(--ink-dim);font-weight:400}.an-rail-note{font-size:10.5px;color:var(--ink-faint);line-height:1.6;margin:10px 2px 0}.an-pick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}.an-pick{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-dim);margin:0;cursor:pointer}.an-pick input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:15px;height:15px;flex:0 0 auto;margin:0;border:1px solid color-mix(in srgb,var(--ink) 32%,transparent);border-radius:var(--radius);background:var(--bg);cursor:pointer;position:relative;transition:border-color .1s ease,background .1s ease}.an-pick input[type=checkbox]:hover{border-color:color-mix(in srgb,var(--ink) 55%,transparent)}.an-pick input[type=checkbox]:checked{background:var(--ink);border-color:var(--ink)}.an-pick input[type=checkbox]:checked:after{content:"";position:absolute;left:50%;top:50%;width:3px;height:6.5px;border:solid var(--bg);border-width:0 2px 2px 0;transform:translate(-50%,-60%) rotate(45deg)}.an-pick input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.an-pick-label{min-width:0;flex:1 1 auto}.an-gate{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:10.5px;color:var(--ink-dim);border:1px solid var(--border-2);border-radius:var(--radius);padding:6px 9px;margin-top:14px}.an-gate b{color:var(--ink);font-variant-numeric:tabular-nums}.an-sens-views{display:flex;flex-direction:column;gap:10px;min-width:0}.an-sens-views>.an-seg{display:flex}.an-sens-views>.an-seg>button{flex:1;text-align:center}.an-bands-ctl .an-seg{display:flex}.an-bands-ctl .an-seg>button{flex:1;text-align:center}.an-metric-pick{display:flex;gap:6px}.an-metric-pick button{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--panel-2);border:1px solid var(--border-2);color:var(--ink-dim);font:inherit;font-size:11px;padding:5px 0;border-radius:var(--radius);cursor:pointer}.an-metric-pick button.is-on{border-color:var(--accent);color:var(--ink)}.an-bands-ctl{display:flex;flex-direction:column;gap:8px}.an-delta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-dim)}.an-delta input[type=range]{flex:1;accent-color:var(--ink-dim)}.an-delta-v{font-variant-numeric:tabular-nums}.an-delta-param{margin-left:4px;color:var(--ink-faint)}.an-view-host{display:flex;align-items:center;justify-content:center;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px;min-height:0}.an-view-caption{font-size:11px;color:var(--ink-faint);line-height:1.6;text-align:center;margin:0}.an-rail-right .an-rank{display:grid;grid-template-columns:1fr auto;gap:3px 8px;align-items:center;font-size:12px;padding:6px 7px;border-radius:var(--radius);cursor:pointer;margin:5px 0}.an-rank:hover{background:var(--panel-2)}.an-rank.is-sel{background:color-mix(in srgb,var(--precision) 10%,transparent);box-shadow:inset 2px 0 0 var(--precision)}.an-rank-label{color:var(--ink-dim);min-width:0}.an-rank.is-sel .an-rank-label{color:var(--ink)}.an-rank-e{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}.an-rank.is-sel .an-rank-e{color:var(--precision)}.an-rank-sub{grid-column:1 / 3;font-size:9.5px;color:var(--ink-faint)}.an-rank-adv,.an-tor-adv{font-size:8.5px;letter-spacing:0;color:var(--ink-faint)}.an-rank-adv{margin-left:6px;padding:1px 5px;border:1px solid var(--border-2);border-radius:var(--radius)}.an-chart{width:100%;height:auto;display:block}.an-grid{stroke:var(--border);stroke-width:1}.an-axis-line{stroke:var(--border-2);stroke-width:1}.an-axis-txt{fill:var(--ink-dim);font-size:9px;font-family:var(--font-sans);font-variant-numeric:tabular-nums}.an-axis-cap{fill:var(--ink-dim);font-size:10px;font-family:var(--font-sans)}.an-tor-hit{fill:transparent}.an-tor-row.is-sel .an-tor-hit{fill:color-mix(in srgb,var(--precision) 12%,transparent)}.an-tor-lbl{fill:var(--ink-dim);font-size:11px;font-family:var(--font-sans)}.an-tor-row.is-sel .an-tor-lbl{fill:var(--precision);font-weight:600}.an-tor-val{fill:var(--ink-dim);font-size:10px;font-family:var(--font-sans);font-variant-numeric:tabular-nums}.an-tor-val.is-in{fill:var(--bg)}.an-axis-deriv{stroke:var(--an-deriv);opacity:.5}.an-axis-deriv-txt,.an-axis-deriv-cap{fill:var(--an-deriv);font-size:10px;font-family:var(--font-sans);font-variant-numeric:tabular-nums}.an-axis-b{fill:var(--ink-dim)}.an-legend-bg{fill:var(--panel);stroke:var(--border);stroke-width:1;opacity:.92}.an-legend-txt{fill:var(--ink-dim);font-size:11px;font-family:var(--font-sans)}.an-compute{width:100%;margin-top:10px;padding:7px 10px;background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid color-mix(in srgb,var(--ink) 28%,transparent);border-radius:var(--radius);color:var(--ink);font-size:12px;cursor:pointer}.an-compute:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 12%,transparent);border-color:color-mix(in srgb,var(--ink) 42%,transparent)}.an-compute:disabled{opacity:.5;cursor:default}.an-sens-empty{height:100%;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--ink-dim);font-size:13px;padding:24px}.an-sens-empty span{font-size:11px;color:var(--ink-faint)}.an-sens-progress{width:70%;max-width:280px;height:4px;margin-top:12px;background:var(--border);border-radius:2px;overflow:hidden}.an-sens-progress-fill{height:100%;background:var(--precision, var(--accent));transition:width .12s linear}.an-sens-empty.an-sens-err{color:var(--error);max-width:42ch}.main-grid.right-wide{grid-template-columns:260px 1fr minmax(460px,44%)}.main-grid.fw-2col.right-wide{grid-template-columns:1fr minmax(460px,44%)}.fw-analysis-host{--an-pos: #6f86a8;--an-neg: #b08568;--an-comp-b: #5aa6cf;--an-deriv: #c79a52;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}:root[data-theme=light] .fw-analysis-host,.app[data-theme=light] .fw-analysis-host{--an-pos: #54708f;--an-neg: #9c6f50;--an-comp-b: #2f7fac;--an-deriv: #9a7320}.fw-analysis-host>.section-head{flex:0 0 auto;margin:0;padding:.5rem .8rem .45rem}.fw-analysis-host>.an-sens,.fw-analysis-host>.an-scaling{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 .8rem .8rem}.fw-analysis-host .an-sens-grid{grid-template-columns:1fr}:root,[data-theme=dark]{--font-sans: "Geist", "Inter", -apple-system, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--tracking-label: 0;--fs-label: 10px;--fs-sm: 11px;--fs-base: 12px;--fs-stat: 16px;--fs-title: 17px;--fs-dialog: 19px;--fs-brand: 20px;--radius: 2px;--shadow-pop: 0 2px 8px var(--scrim);--bg: #121212;--panel: #1b1b1b;--panel-2: #161616;--border: #2c2c2c;--border-2: #3a3a3a;--ink: #ededed;--ink-dim: #a1a1a1;--ink-faint: #6e6e6e;--accent: #ededed;--accent-2: #b5b5b5;--salt: #5aa6cf;--error: #db7287;--warn: #d9a441;--precision: #e5556e;--scrim: rgba(0, 0, 0, .6);--axis-tick: #6e6e6e;--axis-line: #2c2c2c;--axis-label: #6e6e6e;--tooltip-bg: #1b1b1b;--tooltip-border: #3a3a3a}[data-theme=light]{--bg: #ffffff;--panel: #fafafa;--panel-2: #f2f2f2;--border: #e4e4e4;--border-2: #d0d0d0;--ink: #171717;--ink-dim: #555555;--ink-faint: #8a8a8a;--accent: #171717;--accent-2: #444444;--salt: #3a7ca5;--error: #c2516a;--warn: #b07d1a;--precision: #d63a5c;--scrim: rgba(0, 0, 0, .35);--axis-tick: #8a8a8a;--axis-line: #e4e4e4;--axis-label: #8a8a8a;--tooltip-bg: #ffffff;--tooltip-border: #d0d0d0}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--fs-base);font-variant-numeric:tabular-nums;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}sub{font-size:.72em;line-height:0;vertical-align:baseline;position:relative;bottom:-.28em}.app{display:flex;flex-direction:column;height:100vh;-webkit-user-select:none;user-select:none}input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text}.topbar{display:flex;align-items:baseline;gap:1.5rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--panel-2)}.brand-group{display:inline-flex;align-items:baseline;gap:.5rem}.brand{background:transparent;border:0;padding:0;margin:0;cursor:pointer;display:inline-flex;align-items:center}.brand:hover .brand-name em{color:var(--ink)}.brand-name{font-family:var(--font-sans);font-weight:600;font-size:var(--fs-brand);letter-spacing:-.02em;line-height:1;color:var(--ink)}.brand-name em{font-style:normal;font-weight:300;color:var(--ink-dim)}.brand-sep{font-size:var(--fs-brand);font-weight:200;line-height:1;color:var(--ink-faint);-webkit-user-select:none;user-select:none}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:.375rem}.topbar-sep{color:var(--ink-faint);font-weight:200;font-size:var(--fs-stat);line-height:1;-webkit-user-select:none;user-select:none;margin:0 .125rem;align-self:center}.dropdown{position:relative}.dropdown-btn{gap:.5rem;background:var(--bg);border:1px solid var(--border-2);color:var(--ink);border-radius:var(--radius);padding:0 .5rem;font:inherit;font-size:var(--fs-base);cursor:pointer;transition:border-color .12s ease}.dropdown-btn:hover{border-color:var(--accent)}.dropdown-caret{font-size:14px;line-height:1;color:var(--ink-dim)}.dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:100%;margin:0;padding:4px;list-style:none;background:var(--panel);border:1px solid var(--border-2);border-radius:var(--radius);box-shadow:var(--shadow-pop);z-index:50;white-space:nowrap}.dropdown-menu.drop-up{top:auto;bottom:calc(100% + 4px)}.dropdown-item{padding:.375rem .625rem;font-size:var(--fs-base);color:var(--ink-dim);cursor:pointer;border-radius:var(--radius)}.dropdown-item:hover{background:var(--panel-2);color:var(--ink)}.dropdown-item.is-selected{color:var(--ink)}.dropdown-item.is-selected:before{content:"✓";color:var(--accent);margin-right:.375rem}.dropdown-item:not(.is-selected):before{content:"";display:inline-block;width:calc(1ch + .375rem)}.mode-toggle{display:inline-flex;align-items:center;height:26px;border:1px solid var(--border-2);border-radius:var(--radius);overflow:hidden}.mode-seg{background:transparent;border:0;color:var(--ink-dim);font:inherit;font-size:var(--fs-sm);letter-spacing:0;height:100%;padding:0 .625rem;display:inline-flex;align-items:center;text-decoration:none;cursor:pointer;transition:color .12s ease,background .12s ease}.mode-seg+.mode-seg{border-left:1px solid var(--border-2)}.mode-seg:hover:not(.is-active){color:var(--ink)}.mode-seg.is-active{background:var(--accent);color:var(--bg)}.mode-seg-icon{padding:0 .5rem}.mode-seg-icon svg{width:15px;height:15px;display:block}.precision-lockup{display:inline-flex;align-items:baseline;gap:.5rem;overflow:hidden}.precision-word{font-family:var(--font-sans);font-weight:600;font-size:var(--fs-brand);letter-spacing:-.01em;line-height:1;color:var(--precision);white-space:nowrap;animation:precision-reveal .7s cubic-bezier(.2,.8,.2,1) both}.precision-word-btn{background:none;border:0;padding:0;margin:0;cursor:pointer}.powered-by-cadet{font-size:var(--fs-sm);font-weight:400;letter-spacing:0;color:var(--ink);text-decoration:none;white-space:nowrap}.powered-by-cadet:hover{text-decoration:underline}@keyframes precision-reveal{0%{clip-path:inset(0 100% 0 0);transform:translate(-10px);opacity:0}to{clip-path:inset(0 0 0 0);transform:translate(0);opacity:1}}.app.precision-on .metric-num,.app.precision-on .chart-latency{color:var(--precision)}.app.precision-on .mode-seg.is-active{background:var(--precision);color:#fff}@media (prefers-reduced-motion: reduce){.precision-word{animation:none}}.uc{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem;font-family:var(--font-sans)}.uc-back{position:fixed;top:1rem;left:1.25rem;color:#777;text-decoration:none;font-size:var(--fs-base);letter-spacing:0}.uc-back:hover{color:#fff}.uc-stage{display:flex;flex-direction:column;align-items:center;gap:1.5rem;max-width:560px}.uc-gif{max-width:480px;width:100%;height:auto;border-radius:var(--radius)}.uc-title{margin:0;font-size:clamp(1.6rem,5vw,2.6rem);font-weight:700;letter-spacing:0}.uc-emote{letter-spacing:normal}.uc-sub{margin:0;color:#9a9a9a;font-size:14px;letter-spacing:0}.uc-cadet{color:#fff;text-decoration:underline;text-underline-offset:3px}.uc-cadet:hover{opacity:.75}.run-btn{background:var(--accent);color:var(--bg);border:1px solid var(--accent);padding:.25rem .75rem;font:inherit;font-size:var(--fs-base);font-weight:500;cursor:pointer}.run-btn:hover{background:var(--accent-2);border-color:var(--accent-2)}.run-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn{background:transparent;color:var(--ink);border:1px solid var(--border);padding:.25rem .5rem;font:inherit;cursor:pointer;transition:color .12s ease,border-color .12s ease}.icon-btn:hover{color:var(--accent);border-color:var(--border-2)}.dropdown-btn,.reset-btn,.theme-toggle,.icon-btn{height:26px;display:inline-flex;align-items:center}.reset-btn,.theme-toggle{transition:color .12s ease,border-color .12s ease}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.main-grid{display:grid;grid-template-columns:260px 1fr 300px;flex:1;overflow:hidden}.panel{overflow-y:auto;padding:1rem}.panel-left{border-right:1px solid var(--border);background:var(--panel)}.panel-right{border-left:1px solid var(--border);background:var(--panel)}.panel.is-locked{opacity:.4;pointer-events:none;-webkit-user-select:none;user-select:none}.main-grid.components-collapsed{grid-template-columns:260px 1fr 28px}.main-grid.fw-2col{grid-template-columns:1fr 300px}.main-grid.fw-2col.components-collapsed{grid-template-columns:1fr 28px}.panel-edge-tab{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem 0;border:0;border-left:1px solid var(--border);background:var(--panel);color:var(--ink-faint);font:inherit;cursor:pointer;transition:color .12s ease,background .12s ease}.panel-edge-tab:hover{color:var(--accent);background:var(--panel-2)}.edge-tab-chevron{font-size:15px}.edge-tab-label{writing-mode:vertical-rl;font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:lowercase}.section-collapse-edge{background:transparent;border:0;padding:0 .125rem;color:var(--ink-faint);font-size:15px;line-height:1;cursor:pointer;transition:color .12s ease}.section-collapse-edge:hover{color:var(--accent)}.panel-center{padding:1.25rem;background:var(--bg);display:flex;flex-direction:column;overflow:hidden}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:2px;background:var(--border-2);outline:none;width:100%}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:var(--accent);cursor:pointer;border-radius:0}input[type=range]::-moz-range-thumb{width:12px;height:12px;background:var(--accent);cursor:pointer;border:0;border-radius:0}.panel::-webkit-scrollbar{width:6px}.panel::-webkit-scrollbar-track{background:transparent}.panel::-webkit-scrollbar-thumb{background:var(--border)}.section-head{font-size:var(--fs-label);font-weight:500;letter-spacing:var(--tracking-label);color:var(--ink-faint);text-transform:lowercase;margin:0 0 .5rem}.section-head.mt-6{margin-top:1.5rem}.section-head-toggle{display:flex;align-items:center;justify-content:space-between}.section-toggle{display:flex;align-items:center;gap:.375rem;flex:1;background:transparent;border:0;padding:0;margin:0;font:inherit;font-size:var(--fs-label);font-weight:500;letter-spacing:var(--tracking-label);text-transform:lowercase;color:var(--ink-faint);text-align:left;cursor:pointer;transition:color .12s ease}.section-toggle:hover{color:var(--ink-dim)}.section-chevron{display:inline-block;width:1em;font-size:15px;color:var(--ink-faint);flex-shrink:0}.section-toggle:hover .section-chevron{color:var(--accent)}.section-head-label{flex:1}.param-row{display:grid;grid-template-columns:48px 1fr 60px;align-items:center;gap:.625rem;padding:.25rem 0}.param-label{font-size:var(--fs-sm);color:var(--ink-dim)}.param-value{font-size:var(--fs-sm);text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.param-value-input{font:inherit;font-size:var(--fs-sm);text-align:right;color:var(--ink);font-variant-numeric:tabular-nums;background:transparent;border:0;border-bottom:1px solid var(--border-2);border-radius:0;padding:0 1px 1px;margin:0;min-width:3ch;max-width:100%;caret-color:var(--ink);transition:border-color .1s ease;box-sizing:content-box}.param-value-input:hover{border-bottom-color:var(--ink-faint)}.param-value-input:focus{border-bottom-color:var(--accent);background:transparent;outline:none}.param-unit{color:var(--ink-faint);margin-left:.25rem}.param-warn,.param-warn .param-value-input{color:var(--error)}.param-warn .param-unit{color:var(--error);opacity:.6}.param-charge-hint{display:flex;align-items:center;gap:6px;margin:0 0 4px 2px;font-size:var(--fs-label);color:var(--ink-faint);line-height:1.45}.param-charge-hint-glyph{color:var(--precision)}.param-charge-hint b{font-weight:600;font-variant-numeric:tabular-nums}.param-charge-hint .q-pos{color:#3a6ad6}.param-charge-hint .q-neg{color:#d63a5c}.param-charge-use{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-2);background:transparent;color:var(--ink-dim);border-radius:var(--radius);padding:1px 6px;font:inherit;font-size:var(--fs-label);cursor:pointer;margin-left:auto}.param-charge-use:hover{border-color:var(--precision);color:var(--precision)}.param-charge-use:focus-visible{outline:2px solid var(--precision);outline-offset:1px}.dim-footnote{font-size:var(--fs-label);color:var(--ink-faint);margin-top:.5rem}.metric-num{color:var(--salt);font-variant-numeric:tabular-nums}.panel-warn{font-size:var(--fs-label);line-height:1.4;color:var(--error);margin-top:.5rem;padding:.375rem .5rem;border-left:2px solid var(--error);background:color-mix(in srgb,var(--error) 8%,transparent)}.block-stack{display:flex;flex-direction:column;gap:.375rem}.block-row{display:grid;grid-template-columns:14px 1fr 16px;align-items:center;gap:.5rem;border:1px solid var(--border);background:var(--bg);padding:.5rem}.block-idx{font-size:var(--fs-label);color:var(--ink-faint)}.block-type{font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent);font-weight:500}.block-params{display:grid;grid-template-columns:1fr 1fr;gap:.125rem .5rem;font-size:var(--fs-label);color:var(--ink-dim);margin-top:.25rem}.block-params label{display:flex;align-items:center;gap:.25rem;min-width:0}.block-vu{display:flex;align-items:center;justify-content:flex-end;gap:.25rem;flex:1 1 0;min-width:0}.block-params .block-vu input{flex:0 1 3.2rem}.block-unit{flex:0 0 auto;font-size:var(--fs-label);color:var(--ink-dim);opacity:.85}.block-params input{flex:1 1 0;min-width:0;max-width:3.5rem;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);padding:.125rem .25rem;font:inherit;font-size:var(--fs-label);text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.block-params input::-webkit-outer-spin-button,.block-params input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.app input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:15px;height:15px;flex:0 0 auto;margin:0;vertical-align:middle;border:1px solid color-mix(in srgb,var(--ink) 32%,transparent);border-radius:var(--radius);background:var(--bg);cursor:pointer;position:relative;transition:border-color .1s ease,background .1s ease}.app input[type=checkbox]:hover{border-color:color-mix(in srgb,var(--ink) 55%,transparent)}.app input[type=checkbox]:checked{background:var(--ink);border-color:var(--ink)}.app input[type=checkbox]:checked:after{content:"";position:absolute;left:50%;top:50%;width:3px;height:6.5px;border:solid var(--bg);border-width:0 2px 2px 0;transform:translate(-50%,-60%) rotate(45deg)}.import-input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.import-input::-webkit-outer-spin-button,.import-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.block-params input:hover{border-color:var(--border-2)}.block-params input:focus{border-color:var(--accent);background:var(--bg);outline:none}.block-rm{background:transparent;border:0;color:var(--ink-faint);font-size:14px;line-height:1;cursor:pointer}.block-rm:hover{color:var(--error)}.block-add{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.chip{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-label);padding:.25rem .5rem;border:1px solid var(--border-2);background:transparent;color:var(--ink-dim);cursor:pointer}.chip:hover{border-color:var(--accent);color:var(--accent)}.comp-card{border:1px solid var(--border);padding:.75rem;margin-bottom:.625rem;background:var(--bg)}.comp-card.disabled{opacity:.4}.comp-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.comp-swatch{width:10px;height:10px;flex-shrink:0}.comp-name{flex:1;min-width:0;background:transparent;border:0;border-bottom:1px solid transparent;color:var(--ink);font:inherit;font-size:var(--fs-base);font-weight:500;padding:.125rem .25rem}.comp-name:focus{border-bottom-color:var(--border-2);outline:none}.toggle{font-size:var(--fs-label);padding:.125rem .375rem;border:1px solid;background:transparent;letter-spacing:var(--tracking-label);cursor:pointer;flex-shrink:0}.toggle.on{color:var(--accent);border-color:var(--accent-2)}.toggle.off{color:var(--ink-faint);border-color:var(--border)}.grm-block{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border)}.grm-block-head{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink-faint);margin-bottom:.375rem}.grm-derived{color:var(--ink-faint);font-style:italic}.grm-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.5rem}.grm-toggle-label{font-size:var(--fs-sm);color:var(--ink-dim);cursor:help}.grm-toggle-row .dropdown-btn{font-size:var(--fs-label);padding:.125rem .375rem;height:auto;color:var(--ink-faint);background:transparent;border-color:var(--border);letter-spacing:var(--tracking-label)}.grm-toggle-row .dropdown-btn:hover{color:var(--ink-dim);border-color:var(--border-2)}.grm-toggle-row .dropdown-caret{font-size:10px;color:var(--ink-faint)}.fw-results-column{margin-top:.75rem;padding-top:.25rem;border-top:1px solid var(--border)}.chart-head{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:.5rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}.chart-title{display:inline-flex;align-items:center;min-width:0;max-width:100%;font-family:var(--font-sans);font-weight:600;font-size:var(--fs-title);letter-spacing:-.01em;color:var(--ink)}.chart-title-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-latency{flex-shrink:0;margin-left:.625rem;font-size:var(--fs-sm);font-weight:400;letter-spacing:0;color:var(--salt);font-variant-numeric:tabular-nums}.conf-badge{position:relative;flex-shrink:0;margin-left:.5rem;padding:.125rem .375rem;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-label);border:1px solid;border-radius:var(--radius);cursor:help;white-space:nowrap;vertical-align:middle}.conf-illustrative{color:#e6a94e;border-color:color-mix(in srgb,#e6a94e 45%,transparent)}.conf-quantitative{color:#82c98e;border-color:color-mix(in srgb,#82c98e 45%,transparent)}.conf-hint{position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:268px;padding:10px 12px 11px;background:var(--panel);border:1px solid var(--border-2);border-radius:var(--radius);box-shadow:var(--shadow-pop);text-transform:none;letter-spacing:normal;font-size:var(--fs-sm);line-height:1.45;color:var(--ink-dim);white-space:normal;opacity:0;visibility:hidden;transform:translateY(-3px);transition:opacity .12s ease,transform .12s ease,visibility 0s linear .12s;pointer-events:none}.conf-badge:hover .conf-hint,.conf-badge:focus .conf-hint,.conf-badge:focus-within .conf-hint{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .12s ease,transform .12s ease}.conf-hint-portal{position:fixed;opacity:1;visibility:visible;transform:none;transition:none}.conf-hint-head{display:block;font-size:var(--fs-sm);font-weight:600;color:var(--ink);margin-bottom:6px}.conf-hint-count{color:var(--error);font-weight:700}.conf-warn-line{border-left:2px solid var(--error);background:color-mix(in srgb,var(--error) 8%,transparent);padding:4px 7px;border-radius:0 2px 2px 0}.conf-hint-why.conf-warn-line{margin-top:7px}.conf-hint-groups{display:block;margin-bottom:7px}.kit-disclaimer{margin:0 0 .5rem;border-left:2px solid var(--error);background:color-mix(in srgb,var(--error) 8%,transparent);padding:5px 9px;border-radius:0 2px 2px 0;font-size:var(--fs-sm);line-height:1.4;color:var(--ink-dim)}.conf-hint-group{display:block;margin:0 0 5px}.conf-hint-src{display:block;color:var(--ink);font-weight:600;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-label)}.conf-hint-params{display:block;color:var(--ink-dim)}.conf-hint-why{display:block;color:var(--ink-faint)}@media (prefers-reduced-motion: reduce){.conf-hint{transition:none;transform:none}}.status{font-size:var(--fs-label);letter-spacing:var(--tracking-label);color:var(--ink-faint);white-space:nowrap;margin-left:.375rem}.status-run{color:var(--accent)}.status-err{color:var(--error)}.chart-error,.chart-warn{font-size:var(--fs-sm);line-height:1.4;color:var(--error);margin-bottom:.5rem;padding:.375rem .625rem;border-left:2px solid var(--error);background:color-mix(in srgb,var(--error) 8%,transparent)}.chart-warn strong{color:var(--error)}.sim-progress{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;animation:sim-progress-in .2s ease-out}@keyframes sim-progress-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.sim-progress{animation:none}}.sim-progress-track{flex:1;height:3px;background:var(--border-2);overflow:hidden}.sim-progress-fill{height:100%;background:var(--accent);transition:width .12s linear}.sim-progress-fill.is-precision{transition:width .32s ease-out}.sim-progress-indeterminate{width:40%;transition:none;will-change:transform;animation:sim-progress-slide 1.1s ease-in-out infinite}@keyframes sim-progress-slide{0%{transform:translate(-110%)}to{transform:translate(260%)}}.axis-unit{display:inline-flex;align-items:center;height:24px;border:1px solid var(--border-2);border-radius:var(--radius);overflow:hidden}.axis-unit-seg{background:transparent;border:0;color:var(--ink-dim);font:inherit;font-size:var(--fs-label);letter-spacing:var(--tracking-label);height:100%;padding:0 .5rem;cursor:pointer;transition:color .12s ease,background .12s ease}.axis-unit-seg+.axis-unit-seg{border-left:1px solid var(--border-2)}.axis-unit-seg:hover:not(.is-active){color:var(--ink)}.axis-unit-seg.is-active{background:var(--accent);color:var(--bg)}.legend-rightpill{margin-left:auto;height:18px;align-self:center}.color-pick{display:inline-flex}.color-swatch{cursor:pointer;padding:0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius)}.color-pop{position:fixed;z-index:100;background:var(--panel);border:1px solid var(--border-2);border-radius:var(--radius);padding:7px;box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:6px}.color-pop-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.color-preset{width:16px;height:16px;border-radius:var(--radius);padding:0;cursor:pointer;border:1px solid var(--border-2)}.color-preset:hover{box-shadow:0 0 0 2px var(--accent)}.color-pop-foot{display:flex;align-items:stretch;gap:5px}.color-hex{background:var(--bg);border:1px solid var(--border-2);color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-sm);padding:.25rem .375rem;flex:1;min-width:0;width:84px;text-transform:lowercase}.color-hex:focus{outline:none;border-color:var(--accent-2)}.color-reset{display:inline-flex;align-items:center;justify-content:center;width:24px;flex-shrink:0;padding:0;cursor:pointer;background:transparent;border:1px solid var(--border-2);border-radius:var(--radius);color:var(--ink-dim)}.color-reset:hover{color:var(--accent);border-color:var(--accent)}.color-reset svg{width:13px;height:13px;display:block}.snap-swatch{width:10px;height:10px;flex-shrink:0}.legend{display:flex;flex-wrap:wrap;gap:.25rem 1rem;padding-bottom:.5rem;font-size:var(--fs-sm);color:var(--ink-dim)}.legend-item{display:flex;align-items:center;gap:.375rem}.swatch{width:14px;height:2px;flex-shrink:0}.swatch-dash{width:14px;border-top:1px dashed var(--salt);height:0;flex-shrink:0}.chart-box{flex:1;min-height:0;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}.chart-fill{flex:1;min-height:0;position:relative}.chart-xcaption{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2px 0 1px;font-size:var(--fs-label);color:var(--ink-faint)}.xcaption-label{letter-spacing:0}.chart-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.chart-empty-card{border:1px dashed var(--border-2);border-radius:var(--radius);padding:.875rem 1.5rem;color:var(--ink-faint);font-size:var(--fs-sm);letter-spacing:var(--tracking-label);text-transform:uppercase;text-align:center}.chart-empty-card.is-computing{color:var(--accent);border-color:var(--accent-2);animation:chart-empty-pulse 1.4s ease-in-out infinite}@keyframes chart-empty-pulse{0%,to{opacity:.5}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.chart-empty-card.is-computing{animation:none}}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:.5rem;background:var(--border);border:1px solid var(--border)}.stat-cell{background:var(--bg);padding:.5rem .75rem}.stat-label{font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-faint)}.stat-value{font-size:var(--fs-base);font-variant-numeric:tabular-nums;margin-top:.125rem;color:var(--ink)}.stat-warn{color:var(--error)}.diag-head{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.diag-toggle{height:20px;margin-left:auto}.diag-src{background:var(--bg);border:1px solid var(--border-2);color:var(--ink-dim);font:inherit;font-size:var(--fs-label);letter-spacing:var(--tracking-label);padding:.125rem .25rem;border-radius:var(--radius);cursor:pointer}.diag-src:hover{color:var(--ink);border-color:var(--accent)}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:50}.modal-body{background:var(--panel-2);border:1px solid var(--border-2);max-width:560px;width:100%;max-height:90vh;padding:1.5rem;color:var(--ink);line-height:1.55;overflow-y:auto}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.25rem}.modal-title{font-family:var(--font-sans);font-weight:600;font-size:var(--fs-dialog);letter-spacing:-.01em}.modal-close{background:transparent;border:0;color:var(--ink-faint);font-size:18px;line-height:1;cursor:pointer}.modal-close:hover{color:var(--ink)}.modal-body:focus{outline:none}.modal-body :focus-visible{outline:2px solid var(--accent);outline-offset:1px}.modal-body p{margin:0 0 .75rem;font-size:var(--fs-base)}.modal-body p.dim{color:var(--ink-dim);margin-bottom:1rem}.lib-intro{margin-bottom:.875rem}.lib-filters{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:1rem}.lib-filters .dropdown-btn{font-size:var(--fs-sm);height:24px}.lib-empty{margin:.5rem 0 0}.lib-groups{display:flex;flex-direction:column;gap:1rem}.lib-group-label{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink-faint);margin-bottom:.5rem}.lib-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.lib-item{width:100%;text-align:left;cursor:pointer;background:var(--panel);border:1px solid var(--border);padding:.5rem .625rem;color:var(--ink);display:flex;flex-direction:column;gap:.25rem;transition:border-color .12s ease,background .12s ease}.lib-item:hover{border-color:var(--accent);background:var(--panel-2)}.lib-item.is-current{box-shadow:inset 2px 0 0 var(--accent)}.lib-item-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.lib-item-name{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--fs-base);font-weight:600}.lib-item-tag{font-size:var(--fs-label);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink-faint)}.lib-item-lambda{font-size:var(--fs-sm);color:var(--ink-dim);white-space:nowrap}.lib-item-lambda .num{color:var(--ink)}.lib-item-lambda.is-missing{color:var(--ink-faint)}.lib-item-meta{font-size:var(--fs-label);color:var(--ink-dim)}.kit-badge{font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--border-2);border-radius:var(--radius);padding:1px 5px;white-space:nowrap;flex-shrink:0}.kit-proteins{font-size:var(--fs-label);color:var(--ink-faint);margin-top:3px}.lib-info{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:transparent;border:0;color:var(--ink-faint);cursor:help;position:relative}.lib-info:hover,.lib-info:focus-visible{color:var(--ink)}.lib-info[data-tip]:after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);left:0;white-space:pre-line;text-align:left;min-width:190px;max-width:240px;padding:.5rem .625rem;background:var(--panel);border:1px solid var(--border-2);border-radius:var(--radius);box-shadow:var(--shadow-pop);color:var(--ink-dim);font-size:var(--fs-label);font-weight:400;line-height:1.5;letter-spacing:0;text-transform:none;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:60}.lib-info[data-tip]:hover:after,.lib-info[data-tip]:focus-visible:after{opacity:1}.lib-info.tip-up[data-tip]:after{top:auto;bottom:calc(100% + 6px)}.modal-heading{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink-faint);margin:0 0 .5rem}.modal-dl{display:grid;grid-template-columns:auto 1fr;gap:.375rem .75rem;margin-bottom:1.25rem;font-size:var(--fs-sm)}.modal-dl dt{color:var(--accent);margin:0}.modal-dl dd{color:var(--ink-dim);margin:0}.modal-cite{font-size:var(--fs-sm);font-style:italic;color:var(--ink-dim);padding-left:.75rem;border-left:1px solid var(--border-2);margin-bottom:1rem}.modal-foot{font-size:var(--fs-label);color:var(--ink-faint);margin-top:1.5rem;padding-top:.75rem;border-top:1px solid var(--border)}.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem}.modal-dismiss{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-sm);color:var(--ink-dim);cursor:pointer}.modal-dismiss input{accent-color:var(--accent);cursor:pointer}.btn-primary{height:28px;padding:0 1rem;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--bg);font:inherit;font-size:var(--fs-sm);letter-spacing:0;white-space:nowrap;cursor:pointer;transition:opacity .12s ease}.btn-primary:hover{opacity:.85}.cadet-link{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.cadet-link:hover{opacity:.75}.chart-head-actions{display:flex;align-items:center;flex-wrap:nowrap;gap:.3rem;flex-shrink:0;margin-left:auto;justify-content:flex-end}.chart-head-actions .mini-btn{flex-shrink:0;white-space:nowrap}.btn-sep{color:var(--border-2);-webkit-user-select:none;user-select:none;font-size:var(--fs-sm)}.btn-group{display:flex;align-items:center;gap:.25rem}.btn-group+.btn-group{padding-left:.5rem;border-left:1px solid var(--border)}.mini-btn{background:transparent;border:1px solid var(--border-2);color:var(--ink-dim);font:inherit;font-size:var(--fs-label);letter-spacing:var(--tracking-label);padding:.25rem .625rem;cursor:pointer;transition:color .12s ease,border-color .12s ease,background .12s ease}.mini-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.mini-btn:disabled{opacity:.35;cursor:not-allowed}.mini-btn-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0}.mini-btn-icon svg{width:15px;height:15px;display:block}.mini-btn-icon[data-tip]:after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--panel);color:var(--ink);border:1px solid var(--border-2);border-radius:var(--radius);padding:2px 7px;font-size:var(--fs-label);font-weight:400;letter-spacing:0;text-transform:none;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease;box-shadow:var(--shadow-pop);z-index:30}.mini-btn-icon[data-tip]:hover:after,.mini-btn-icon[data-tip]:focus-visible:after{opacity:1}.icon-btn[data-tip],.theme-toggle[data-tip]{position:relative}.icon-btn[data-tip]:after,.theme-toggle[data-tip]:after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--panel);color:var(--ink);border:1px solid var(--border-2);border-radius:var(--radius);padding:2px 7px;font-size:var(--fs-label);font-weight:400;letter-spacing:0;text-transform:none;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease;box-shadow:var(--shadow-pop);z-index:30}.icon-btn[data-tip]:hover:after,.icon-btn[data-tip]:focus-visible:after,.theme-toggle[data-tip]:hover:after,.theme-toggle[data-tip]:focus-visible:after{opacity:1}.topbar-actions>:last-child[data-tip]:after{left:auto;right:0;transform:none}.icon-btn svg,.theme-toggle svg{display:block}@keyframes icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes icon-bob-up{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes icon-bob-dn{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@keyframes icon-draw{0%{stroke-dashoffset:30}to{stroke-dashoffset:0}}@keyframes icon-shutter{0%{transform:scale(1)}45%{transform:scale(.5)}to{transform:scale(1)}}@keyframes icon-rise{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5px)}}@keyframes icon-tilt{0%{transform:rotate(0) scale(1)}50%{transform:rotate(-20deg) scale(1.12)}to{transform:rotate(0) scale(1)}}.mini-btn-rerun:hover:not(:disabled) svg{animation:icon-spin .6s ease;transform-origin:50% 50%}.mini-btn-import .ic-up,.mini-btn-export .ic-down{transform-box:fill-box;transform-origin:center}.mini-btn-import:hover:not(:disabled) .ic-up{animation:icon-bob-up .75s ease infinite}.mini-btn-export:hover:not(:disabled) .ic-down{animation:icon-bob-dn .6s ease}.mini-btn-fit .ic-plot{stroke-dasharray:30}.mini-btn-fit:hover:not(:disabled) .ic-plot{animation:icon-draw .55s ease}.mini-btn-snap .ic-lens{transform-box:fill-box;transform-origin:center}.mini-btn-snap:hover:not(:disabled) .ic-lens{animation:icon-shutter .45s ease}.icon-btn-lib svg path{transform-box:fill-box;transform-origin:bottom}.icon-btn-lib:hover svg path{animation:icon-rise .5s ease}.icon-btn-lib:hover svg path:nth-child(2){animation-delay:.05s}.icon-btn-lib:hover svg path:nth-child(3){animation-delay:.1s}.icon-btn-lib:hover svg path:nth-child(4){animation-delay:.15s}.theme-toggle:hover svg{animation:icon-tilt .6s ease;transform-origin:50% 50%}@media (prefers-reduced-motion: reduce){.mini-btn-rerun:hover svg,.mini-btn-import:hover .ic-up,.mini-btn-export:hover .ic-down,.mini-btn-fit:hover .ic-plot,.mini-btn-snap:hover .ic-lens,.icon-btn-lib:hover svg path,.theme-toggle:hover svg{animation:none}}.mini-btn-quiet{border-color:var(--border);font-size:var(--fs-label);padding:.125rem .375rem}.mini-btn-quiet:hover:not(:disabled){color:var(--error);border-color:var(--error)}.mini-btn-cancel{color:var(--error);border-color:var(--error)}.mini-btn-cancel:hover:not(:disabled){color:var(--error);border-color:var(--error);opacity:.8}.target-btn{background:transparent;border:1px solid var(--border);color:var(--ink-faint);font:inherit;font-size:var(--fs-base);line-height:1;width:20px;height:20px;padding:0;cursor:pointer;flex-shrink:0}.target-btn:hover:not(:disabled){border-color:var(--accent-2);color:var(--accent)}.target-btn.on{background:var(--accent);border-color:var(--accent);color:var(--bg)}.target-btn:disabled{opacity:.25;cursor:not-allowed}.comp-card.is-target{border-color:var(--accent-2)}.chart-box .recharts-wrapper{cursor:crosshair}.pool-row .stat-cell{padding:.625rem .75rem}.pool-row .stat-value{font-size:var(--fs-stat);margin-top:.25rem}.stat-accent .stat-value{color:var(--accent)}.stat-sub{font-size:var(--fs-label);color:var(--ink-faint);margin-top:.125rem;font-variant-numeric:tabular-nums}.stat-label{display:flex;align-items:baseline;justify-content:space-between;gap:.375rem}.stat-action{background:transparent;border:0;color:var(--ink-faint);font:inherit;font-size:var(--fs-label);letter-spacing:var(--tracking-label);cursor:pointer;padding:0;text-transform:lowercase}.stat-action:hover{color:var(--accent)}.pool-hint{font-size:var(--fs-label);color:var(--ink-faint);letter-spacing:var(--tracking-label);text-align:center;padding:.375rem 0}.diag-row{margin-top:.25rem}.stat-small .stat-label{font-size:var(--fs-label)}.stat-small .stat-value{font-size:var(--fs-sm);margin-top:.125rem}.stat-small{padding:.375rem .625rem}.snap-strip{margin-top:.625rem;padding:.5rem .625rem;border:1px solid var(--border);background:var(--panel-2)}.snap-strip-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.snap-strip-label{font-size:var(--fs-label);letter-spacing:var(--tracking-label);color:var(--ink-faint);text-transform:uppercase}.snap-chips{display:flex;flex-wrap:wrap;gap:.375rem}.snap-chip{display:flex;align-items:center;gap:.375rem;padding:.25rem .375rem .25rem .5rem;border:1px solid var(--border);background:var(--bg);font-size:var(--fs-sm)}.snap-chip.snap-hidden{opacity:.4}.snap-visibility{width:10px;height:10px;border:1px solid;padding:0;cursor:pointer}.snap-label{background:transparent;border:0;color:var(--ink);font:inherit;font-size:var(--fs-sm);padding:0;cursor:text}.snap-label:hover{color:var(--accent)}.snap-label-input{background:var(--bg);border:1px solid var(--border-2);color:var(--ink);font:inherit;font-size:var(--fs-sm);padding:.0625rem .25rem;width:5rem;outline:none}.snap-load{background:transparent;border:1px solid var(--border-2);border-radius:var(--radius);color:var(--ink-dim);font:inherit;font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;line-height:1;cursor:pointer;padding:.125rem .25rem}.snap-load:hover{color:var(--accent);border-color:var(--accent)}.snap-rm{background:transparent;border:0;color:var(--ink-faint);font-size:var(--fs-base);line-height:1;cursor:pointer;padding:0 .125rem}.snap-rm:hover{color:var(--error)}.theme-toggle{background:transparent;border:1px solid var(--border);color:var(--ink);font:inherit;font-size:var(--fs-base);line-height:1;padding:.25rem .5rem;cursor:pointer}.theme-toggle:hover{color:var(--accent);border-color:var(--border-2)}.reset-btn{background:transparent;border:1px solid color-mix(in srgb,var(--precision) 45%,transparent);color:var(--precision);font:inherit;font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;line-height:1;padding:.25rem .5rem;cursor:pointer}.reset-btn:hover{color:var(--precision);border-color:var(--precision);background:color-mix(in srgb,var(--precision) 10%,transparent)}.comp-head-controls{display:inline-flex;align-items:center;gap:.375rem}.comp-head-sep{color:var(--border-2);font-size:var(--fs-base);line-height:1;-webkit-user-select:none;user-select:none}.comp-add{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-2);border-radius:var(--radius);color:var(--ink-dim);font-size:15px;line-height:1;cursor:pointer}.comp-add:hover:not(:disabled){color:var(--ink);border-color:var(--ink-faint)}.comp-add:disabled{opacity:.4;cursor:not-allowed}.comp-remove{flex-shrink:0;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;color:var(--ink-faint);font-size:var(--fs-stat);line-height:1;cursor:pointer}.comp-remove:hover{color:var(--error)}.fit-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}.fit-field{display:flex;flex-direction:column;gap:.25rem}.fit-field label{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink-faint)}.fit-field input,.fit-field select{background:var(--bg);border:1px solid var(--border);color:var(--ink);padding:.25rem .5rem;font:inherit;font-size:var(--fs-sm);outline:none;font-family:inherit}.fit-field input:focus,.fit-field select:focus{border-color:var(--accent-2)}.fit-field .dropdown{width:100%}.fit-field .dropdown-btn{width:100%;height:auto;justify-content:space-between;border-color:var(--border);border-radius:0;padding:.25rem .5rem;font-size:var(--fs-sm)}.fit-actions{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.fit-actions button{background:transparent;border:1px solid var(--border-2);color:var(--ink-dim);font:inherit;font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;padding:.375rem .75rem;cursor:pointer}.fit-actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.fit-actions button:disabled{opacity:.35;cursor:not-allowed}.fit-actions .fit-primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.fit-actions .fit-primary:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2);color:var(--bg)}.fit-table{width:100%;border-collapse:collapse;margin-bottom:.75rem;font-size:var(--fs-sm)}.fit-table th{text-align:left;font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-faint);font-weight:400;padding:.25rem .375rem;border-bottom:1px solid var(--border)}.fit-table td{padding:.25rem .375rem;color:var(--ink-dim);font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border)}.fit-table td.fit-td-label{color:var(--ink)}.fit-table input{background:var(--bg);border:1px solid var(--border);color:var(--ink);font:inherit;font-size:var(--fs-sm);padding:.125rem .25rem;width:5.5rem;outline:none}.fit-table button{background:transparent;border:0;color:var(--ink-faint);font-size:14px;line-height:1;padding:0 .25rem;cursor:pointer}.fit-table button:hover{color:var(--error)}.fit-empty{text-align:center;color:var(--ink-faint);font-size:var(--fs-sm);padding:.75rem;border:1px dashed var(--border);margin-bottom:.75rem}.fit-results{background:var(--panel);border:1px solid var(--border);padding:.75rem;margin-bottom:.75rem}.fit-results-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.fit-results-title{font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-faint)}.fit-results-quality{font-size:var(--fs-label);color:var(--ink-dim);font-variant-numeric:tabular-nums}.fit-results-quality.ok{color:var(--accent)}.fit-results-quality.warn{color:var(--error)}.fit-results-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem;font-size:var(--fs-base)}.fit-results-row{display:flex;justify-content:space-between;gap:.5rem}.fit-results-row span:first-child{color:var(--ink-faint);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-label)}.fit-results-row span:last-child{color:var(--ink);font-variant-numeric:tabular-nums}.fit-results-row.delta span:last-child{color:var(--accent)}.fit-plot-box{height:180px;background:var(--bg);border:1px solid var(--border);margin-bottom:.5rem}.fit-note{font-size:var(--fs-label);color:var(--ink-faint);line-height:1.5;margin-bottom:.5rem}.anim-panel{margin-top:.5rem;border:1px solid var(--border);background:var(--panel-2)}.anim-controls{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-top:1px solid var(--border);background:var(--panel)}.anim-play{min-width:28px}.anim-scrub{flex:1;height:2px}.anim-cv{font-size:var(--fs-label);color:var(--ink-faint);min-width:52px;text-align:right}.anim-speed{display:flex;gap:2px}.anim-speed .mini-btn.active{color:var(--accent);border-color:var(--accent-2)}.import-field{margin-bottom:1rem}.import-field .modal-heading{margin-bottom:.375rem}.import-textarea,.import-input{width:100%;background:var(--bg);border:1px solid var(--border-2);color:var(--ink);padding:.5rem;font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.5;resize:vertical}.import-textarea:focus,.import-input:focus{outline:none;border-color:var(--accent-2)}.import-textarea::placeholder{color:var(--ink-faint)}.import-input{font-size:var(--fs-base);padding:.375rem .5rem}select.import-input{cursor:pointer}.file-row{display:flex;align-items:center;gap:.5rem}.file-btn{display:inline-block;background:transparent;border:1px solid var(--border-2);color:var(--ink-dim);font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;padding:.375rem .75rem;cursor:pointer;white-space:nowrap;transition:color .12s ease,border-color .12s ease}.file-btn:hover{border-color:var(--accent);color:var(--accent)}.file-sep{color:var(--ink-faint);-webkit-user-select:none;user-select:none}.calib{margin-top:.5rem}.calib>summary{cursor:pointer;font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-faint);-webkit-user-select:none;user-select:none}.calib>summary:hover{color:var(--ink-dim)}.calib-body{margin-top:.5rem;display:flex;flex-direction:column;gap:.375rem}.calib-row{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;font-size:var(--fs-sm)}.calib-row>.dim{min-width:6.5rem}.calib-num{width:5rem!important}.calib-check{display:inline-flex;align-items:center;gap:.25rem;min-width:0!important}.file-name{font-size:var(--fs-sm);color:var(--ink-dim);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-preview{font-size:var(--fs-sm);color:var(--ink-dim);padding:.5rem 0;margin-bottom:.5rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-family:var(--font-mono)}.import-warnings{display:flex;flex-direction:column;gap:4px;margin:0 0 .5rem;padding:8px 10px;border:1px solid color-mix(in srgb,var(--warn, #d9a441) 40%,var(--border));border-radius:var(--radius);background:color-mix(in srgb,var(--warn, #d9a441) 8%,transparent)}.import-warn-row{display:flex;align-items:flex-start;gap:7px;font-size:var(--fs-label);color:var(--ink-dim);line-height:1.5}.import-warn-ico{flex:none;margin-top:2px;color:var(--warn, #d9a441)}.import-warn-msg{flex:1;min-width:0}.import-warn-x{flex:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-faint);font-size:14px;line-height:1;cursor:pointer;padding:0 2px}.import-warn-x:hover{color:var(--ink)}.import-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.mini-btn-accent{background:var(--accent);color:var(--bg);border-color:var(--accent)}.mini-btn-accent:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2)}.mini-btn-accent:disabled{background:var(--panel);color:var(--ink-faint);border-color:var(--border)}.crash-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:100}.crash-card{max-width:460px;width:100%;border:1px solid var(--border-2);background:var(--panel-2);padding:1.5rem;color:var(--ink)}.crash-title{font-family:var(--font-sans);font-weight:600;font-size:var(--fs-dialog);margin-bottom:.75rem}.crash-msg{font-size:var(--fs-base);line-height:1.55;color:var(--ink-dim);margin:0 0 1rem}.crash-detail{font-family:var(--font-mono);font-size:var(--fs-label);line-height:1.5;color:var(--error);background:var(--bg);border:1px solid var(--border);padding:.5rem;margin:0 0 1rem;max-height:120px;overflow:auto;white-space:pre-wrap;word-break:break-word}.crash-actions{display:flex;gap:.5rem;flex-wrap:wrap}.crash-btn{background:transparent;border:1px solid var(--border-2);color:var(--ink-dim);font:inherit;font-size:var(--fs-sm);letter-spacing:var(--tracking-label);padding:.375rem .75rem;cursor:pointer}.crash-btn:hover{border-color:var(--accent);color:var(--accent)}.crash-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}.crash-btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--bg)}@media (max-width: 1024px){.main-grid{grid-template-columns:200px 1fr 220px}.main-grid.components-collapsed{grid-template-columns:200px 1fr 28px}.topbar{gap:1rem}}@media (max-width: 720px){.app{height:auto;min-height:100vh}.main-grid,.main-grid.components-collapsed{grid-template-columns:1fr;overflow:visible}.panel-edge-tab{flex-direction:row;border-left:0;border-top:1px solid var(--border)}.panel-edge-tab .edge-tab-label{writing-mode:horizontal-tb}.panel{overflow:visible}.panel-left{border-right:0;border-bottom:1px solid var(--border)}.panel-right{border-left:0;border-top:1px solid var(--border)}.panel-center{overflow:visible;min-height:65vh}.stats-row{grid-template-columns:repeat(2,1fr)}.topbar{flex-wrap:wrap;gap:.75rem 1rem}.modal-body{max-width:none}}.export-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem}.export-item{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;text-align:left;background:transparent;border:1px solid var(--border-2);color:var(--ink);font:inherit;padding:.625rem .75rem;cursor:pointer}.export-item:hover{border-color:var(--accent)}.export-item-wide{grid-column:1 / -1}.export-item-label{font-size:var(--fs-base);font-weight:500;letter-spacing:var(--tracking-label);color:var(--accent)}.export-item-desc{font-size:var(--fs-label);color:var(--ink-dim);line-height:1.4}@media (max-width: 480px){.export-actions{grid-template-columns:1fr}}.icon-btn-tips.is-on{color:var(--accent);border-color:var(--accent)}.param-label-tip{cursor:help;text-decoration:underline dotted var(--ink-faint);text-underline-offset:3px;text-decoration-thickness:1px}.param-label-tip:hover{color:var(--ink);text-decoration-color:var(--ink-dim)}.ptip-layer{position:fixed;z-index:60;pointer-events:none}.ptip-card{width:236px;background:var(--panel);border:1px solid var(--border-2);border-radius:var(--radius);padding:11px 12px 12px;box-shadow:var(--shadow-pop);animation:ptipIn .12s ease-out}@keyframes ptipIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.ptip-head{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.ptip-sym{font-size:var(--fs-base);font-weight:600;color:var(--ink)}.ptip-name{font-size:var(--fs-sm);color:var(--ink-faint);letter-spacing:var(--tracking-label);text-transform:uppercase}.ptip-art{width:100%;height:112px;display:block;margin:6px 0 8px}.ptip-cap{font-size:var(--fs-sm);color:var(--ink-dim);line-height:1.45}.ptip-cap b{color:var(--ink);font-weight:500}.ptip-ring{transform-box:fill-box;transform-origin:center}.ptip-ring.a{animation:ptipRing 2.6s ease-out infinite}.ptip-ring.b{animation:ptipRing 2.6s ease-out infinite .86s}.ptip-ring.c{animation:ptipRing 2.6s ease-out infinite 1.72s}@keyframes ptipRing{0%{transform:scale(.06);opacity:.95}80%{opacity:.12}to{transform:scale(1);opacity:0}}.ptip-q{animation:ptipQ 1.5s linear infinite}@keyframes ptipQ{0%{transform:translate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translate(150px);opacity:0}}.ptip-eps{animation:ptipEps 3.4s linear infinite}@keyframes ptipEps{0%{transform:translate(6px,63px);opacity:0}8%{opacity:1}19%{transform:translate(42px,60px)}35%{transform:translate(71px,66px)}51%{transform:translate(100px,60px)}67%{transform:translate(129px,66px)}82%{transform:translate(158px,60px)}92%{opacity:1}to{transform:translate(192px,63px);opacity:0}}.ptip-plate{animation:ptipPlate 3.4s steps(5,jump-none) infinite}@keyframes ptipPlate{0%{transform:translate(0)}to{transform:translate(136px)}}.ptip-lam{transform-box:fill-box;transform-origin:50% 100%;animation:ptipLam 4.6s ease infinite}@keyframes ptipLam{0%,4%{opacity:0;transform:translateY(-8px) scale(.5)}12%{opacity:1;transform:translateY(0) scale(1)}84%{opacity:1;transform:translateY(0) scale(1)}94%,to{opacity:0;transform:translateY(-8px) scale(.5)}}.ptip-nu{animation:ptipDock 3.4s cubic-bezier(.5,0,.4,1) infinite}@keyframes ptipDock{0%,8%{transform:translateY(-30px)}34%,72%{transform:translateY(0)}96%,to{transform:translateY(-30px)}}.ptip-nubond{animation:ptipBond 3.4s ease infinite}@keyframes ptipBond{0%,30%{opacity:0}40%,70%{opacity:1}80%,to{opacity:0}}.ptip-wob{transform-box:fill-box;transform-origin:center;animation:ptipWob 1.7s ease-in-out infinite}@keyframes ptipWob{0%,to{transform:scale(1)}50%{transform:scale(1.05,.94)}}.ptip-keq{animation:ptipKeq 3s cubic-bezier(.6,0,.3,1) infinite}@keyframes ptipKeq{0%,46%{transform:translateY(0)}62%{transform:translateY(-26px)}78%,to{transform:translateY(0)}}.ptip-keqt{animation:ptipKeqT 3s ease infinite}@keyframes ptipKeqT{0%,46%{opacity:.5}62%{opacity:.12}78%,to{opacity:.5}}.ptip-sigshadow{transform-box:fill-box;transform-origin:center;animation:ptipSigShadow 3.4s ease infinite}@keyframes ptipSigShadow{0%,6%{transform:scaleX(0);opacity:0}28%,74%{transform:scaleX(1);opacity:.2}92%,to{transform:scaleX(0);opacity:0}}.ptip-sigblock{animation:ptipSigBlock 3.4s ease infinite}@keyframes ptipSigBlock{0%,14%{opacity:1}32%,74%{opacity:.22}90%,to{opacity:1}}.ptip-cf{animation:ptipCf 3.2s linear infinite}@keyframes ptipCf{0%{transform:translate(0);opacity:0}12%{opacity:1}86%{opacity:1}to{transform:translate(150px);opacity:0}}.block-type,.chip,.grm-block-head,.conf-badge,.conf-hint-src,.stat-label,.lib-group-label,.lib-item-tag,.kit-badge,.modal-heading,.snap-strip-label,.snap-load,.reset-btn,.fit-field label,.fit-actions button,.fit-table th,.fit-results-title,.fit-results-row span:first-child,.file-btn,.calib>summary,.ptip-name{text-transform:none}.section-head,.section-toggle,.edge-tab-label,.section-head-label{letter-spacing:0}
