:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f1f3ef;--panel:#fff;--panel-strong:#fcfcfa;--panel-muted:#f7f8f4;--ink:#1f211d;--muted:#63695f;--line:#d6dccf;--line-strong:#a9b3a2;--accent:#1d6f5f;--accent-strong:#145347;--accent-soft:#e6f2ee;--warning:#a74300;--danger:#b42318;--belt:#111;--focus:#176c9d;--shadow-soft:0 8px 24px #28302414;--shadow-tight:0 1px 2px #28302412}*{box-sizing:border-box}html,body,#root{min-height:100%}html{height:100%}body{background:var(--page);color:var(--ink);height:100%;margin:0;font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.4;overflow:hidden}button,input,select{font:inherit}button{border:1px solid var(--line-strong);background:var(--panel);min-width:0;min-height:2.25rem;color:var(--ink);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:0 .75rem;overflow:hidden}button:hover{border-color:var(--accent);color:var(--accent-strong)}button:disabled,button:disabled:hover{border-color:var(--line);color:#7a8177;cursor:not-allowed;opacity:.72;background:#eef1ed}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app-shell{grid-template-rows:auto 1fr;height:100vh;display:grid;overflow:hidden}.topbar{border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.25rem;display:flex;box-shadow:0 1px #2223210d}.topbar h1{letter-spacing:0;margin:0;font-size:clamp(1.25rem,2vw,1.65rem);font-weight:700}.topbar p{color:var(--muted);margin:.15rem 0 0;font-size:.92rem}.topbar-nav{flex-wrap:wrap;align-items:center;gap:.45rem;margin-left:auto;display:flex}.topbar-nav a{border:1px solid var(--line-strong);background:var(--panel);min-height:2.1rem;color:var(--ink);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;padding:0 .7rem;font-size:.88rem;font-weight:650;text-decoration:none;display:inline-flex}.topbar-nav a:hover{border-color:var(--accent);color:var(--accent-strong)}.status{background:var(--accent-soft);max-width:min(48rem,48vw);color:var(--accent-strong);text-align:right;border:1px solid #b8cec6;border-radius:999px;padding:.35rem .65rem;font-size:.88rem;font-weight:650;line-height:1.2}.status.danger{color:var(--danger);background:#fff5f4;border-color:#e1aaa5}.workspace{grid-template-columns:minmax(340px,430px) minmax(0,1fr);gap:1rem;min-height:0;padding:1rem;display:grid}.control-pane{scrollbar-width:thin;flex-direction:column;gap:.85rem;min-width:0;min-height:0;padding-right:.2rem;display:flex;overflow:auto}.plot-pane{border:1px solid var(--line);background:var(--panel-strong);min-width:0;min-height:0;box-shadow:var(--shadow-soft), inset 0 1px 0 #ffffffbd;border-radius:8px;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.metrics-bar{border-bottom:1px solid var(--line);background:linear-gradient(#fffffff5,#f7f8f4f5);flex-wrap:wrap;align-items:center;gap:.45rem;min-width:0;min-height:3.65rem;padding:.55rem .65rem;display:flex}.metric{border:1px solid var(--line);background:var(--panel-muted);white-space:nowrap;border-radius:6px;flex-direction:column;justify-content:center;align-items:flex-start;gap:.08rem;min-width:6.45rem;min-height:2.45rem;padding:.36rem .55rem;display:inline-flex;box-shadow:0 1px #2830240a}.metric.primary{background:var(--accent);color:#fff;border-color:#a9c6bd;box-shadow:0 7px 16px #1d6f5f29}.metric-label{color:var(--muted);text-transform:uppercase;font-size:.68rem;font-weight:700;line-height:1}.metric-value{color:var(--ink);font-size:.92rem;font-weight:700;line-height:1.15}.metric.primary .metric-label,.metric.primary .metric-value{color:#fff}.metric.warning{background:#fff7ed;border-color:#d8a46f}.metric.warning .metric-value{color:var(--warning)}.metric.danger{background:#fff5f4;border-color:#e1aaa5}.metric.danger .metric-value{color:var(--danger)}#layoutSvg{width:100%;height:100%;min-height:0;display:block}.toolbar{z-index:2;background:var(--page);grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;padding:0 0 .12rem;display:grid;position:sticky;top:0}.solver-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))}.toolbar button{font-weight:650}.toolbar button:first-child{background:var(--accent);border-color:var(--accent);color:#fff}.toolbar button:first-child:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow-tight);border-radius:8px;padding:.95rem}.panel h2{color:#20251f;letter-spacing:0;margin:0 0 .8rem;font-size:.95rem;font-weight:700}.control-list{border-top:1px solid var(--line);gap:0;display:grid}.field{border-bottom:1px solid var(--line);color:var(--muted);grid-template-columns:minmax(9rem,1fr) minmax(5.8rem,8.2rem) 2.9rem;align-items:center;gap:.45rem .55rem;padding:.55rem 0;font-size:.88rem;display:grid}.field>span:first-child{color:#343a32;font-weight:600}.field.compact{border-bottom:0;grid-template-columns:minmax(8.5rem,1fr) minmax(8rem,1fr);margin-bottom:.6rem;padding:0 0 .65rem}.field input[type=range]{--range-progress:0%;appearance:none;cursor:pointer;background:0 0;grid-column:1/-1;width:100%;height:1.1rem;margin:0}.field input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) 0 var(--range-progress), #dfe5dc var(--range-progress) 100%);border:1px solid #bcc7b6;border-radius:999px;height:.34rem}.field input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);border:2px solid #fff;border-radius:50%;width:1rem;height:1rem;margin-top:-.39rem;box-shadow:0 1px 3px #1f211d38}.field input[type=range]::-moz-range-track{background:#dfe5dc;border:1px solid #bcc7b6;border-radius:999px;height:.34rem}.field input[type=range]::-moz-range-progress{background:var(--accent);border-radius:999px;height:.34rem}.field input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid #fff;border-radius:50%;width:.8rem;height:.8rem;box-shadow:0 1px 3px #1f211d38}.field input[type=range]:disabled{cursor:not-allowed}.field input[type=range]:disabled::-webkit-slider-runnable-track{background:linear-gradient(90deg, #b8c0b4 0 var(--range-progress), #e5e9e2 var(--range-progress) 100%)}.field input[type=range]:disabled::-webkit-slider-thumb{background:#aeb7a9}.field input[type=range]:disabled::-moz-range-progress{background:#b8c0b4}.field input[type=range]:disabled::-moz-range-thumb{background:#aeb7a9}.field input[type=number],.field input[type=text],.field input[type=color],.field select{border:1px solid var(--line-strong);width:100%;min-width:0;color:var(--ink);background:#fff;border-radius:6px;padding:.38rem .45rem}.field input[type=number]:hover,.field input[type=text]:hover,.field input[type=color]:hover,.field select:hover{border-color:var(--accent)}.field input[type=color]{height:2.2rem;padding:.18rem}.customizer-check{grid-template-columns:minmax(9rem,1fr) 2.25rem 2.9rem}.customizer-check input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent);justify-self:start}.field input:disabled{color:#555b52;background:#eef1ed}.unit{color:var(--muted);font-size:.82rem}.diagnostics-panel{grid-template-rows:auto 1fr;min-height:16rem;display:grid}.diagnostics{border:1px solid var(--line);background:var(--panel-muted);color:#2f332d;white-space:pre-wrap;border-radius:6px;min-height:14rem;max-height:26rem;margin:0;padding:.75rem;font-family:Consolas,SFMono-Regular,Liberation Mono,monospace;font-size:.8rem;line-height:1.35;overflow:auto}.danger-text{color:var(--danger)}.page-shell{overflow:auto}.dashboard-page{min-height:0;padding:1rem}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),34rem));align-content:start;gap:.85rem;display:grid}.project-card{border:1px solid var(--line);background:var(--panel);max-width:34rem;color:var(--ink);box-shadow:var(--shadow-tight);border-radius:8px;gap:.35rem;padding:1rem;text-decoration:none;display:grid}.project-card:hover{border-color:var(--accent);box-shadow:var(--shadow-soft)}.project-card-kicker{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:.72rem;font-weight:750}.project-card strong{font-size:1.12rem}.project-card span:last-child{color:var(--muted);font-size:.9rem}.customizer-shell{min-height:100vh}.customizer-workspace{grid-template-columns:minmax(340px,430px) minmax(0,1fr);gap:1rem;min-height:0;padding:1rem;display:grid}.customizer-controls{min-height:0}.customizer-preview{grid-template-rows:auto minmax(20rem,1fr) auto minmax(9rem,.35fr);gap:.75rem;min-width:0;min-height:0;display:grid}.customizer-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;display:grid}.customizer-actions button{font-weight:650}.customizer-actions button:first-child{background:var(--accent);border-color:var(--accent);color:#fff}.customizer-actions button:first-child:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.viewer-frame{border:1px solid var(--line);background:var(--panel-strong);min-height:20rem;box-shadow:var(--shadow-soft), inset 0 1px 0 #ffffffbd;border-radius:8px;position:relative;overflow:hidden}.viewer-frame canvas{width:100%;height:100%;display:block}.viewer-empty{text-align:center;align-content:center;justify-items:center;gap:.35rem;padding:1rem;display:grid;position:absolute;inset:0}.viewer-empty strong{font-size:1rem}.viewer-empty span{max-width:22rem;color:var(--muted);font-size:.9rem}.render-status{background:var(--accent-soft);min-height:2.25rem;color:var(--accent-strong);border:1px solid #b8cec6;border-radius:6px;align-items:center;padding:.35rem .65rem;font-size:.9rem;font-weight:650;display:flex}.render-status.danger{color:var(--danger);background:#fff5f4;border-color:#e1aaa5}.customizer-log-panel{min-height:0}.customizer-log-panel .diagnostics{min-height:7rem;max-height:none}.traction-workspace{grid-template-columns:minmax(340px,430px) minmax(0,1fr);gap:1rem;min-height:0;padding:1rem;display:grid}.traction-toolbar{grid-template-columns:minmax(0,1fr)}.traction-results-pane{border:1px solid var(--line);background:var(--panel-strong);min-width:0;min-height:0;box-shadow:var(--shadow-soft), inset 0 1px 0 #ffffffbd;border-radius:8px;grid-template-rows:auto minmax(18rem,1fr) auto;display:grid;overflow:hidden}.traction-preview{border-bottom:1px solid var(--line);background:linear-gradient(90deg, #d6dccf8c 1px, transparent 1px), linear-gradient(180deg, #d6dccf8c 1px, transparent 1px), var(--panel-muted);background-size:28px 28px;place-items:center;min-width:0;min-height:0;padding:1rem;display:grid}.traction-svg{width:min(100%,46rem);height:min(100%,28rem);min-height:18rem;display:block}.svg-wheel-body{fill:#d9ded8;stroke:#879080;stroke-width:1.4px}.svg-groove{fill:#f7f8f4;stroke:#8f9989;stroke-width:1.1px}.svg-oring{fill:#111;stroke:#343a32;stroke-width:1.2px}.svg-reference-line,.svg-dimension-line{stroke:#677063;stroke-width:1px;stroke-linecap:round}.svg-dimension-line{stroke-dasharray:3 3}.traction-svg-title{fill:#252924;font-size:14px;font-weight:750}.traction-svg-label{fill:#31372f;font-size:11px;font-weight:650}.result-list{border-top:1px solid var(--line);background:var(--panel);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid}.result-item{border-right:1px solid var(--line);border-bottom:1px solid var(--line);gap:.2rem;min-width:0;padding:.72rem .8rem;display:grid}.result-item span{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:750;line-height:1.1}.result-item strong{min-width:0;color:var(--ink);overflow-wrap:anywhere;font-size:.95rem;line-height:1.2}.plot-grid{stroke:#e1e6dc;stroke-width:.45px}.axis-line{stroke:#6e786a;stroke-width:.75px;stroke-dasharray:4 4}.belt-line{stroke:var(--belt);fill:none;stroke-linecap:round;stroke-linejoin:round}.belt-shadow{stroke:#2026222e;fill:none;stroke-linecap:round;stroke-linejoin:round}.circle-line{fill:#ffffff94;stroke:#303b33;stroke-width:1.3px}.circle-pulley{fill:#fbfcfa}.circle-idler{fill:#f3f8f6}.circle-warning{stroke:var(--danger)}.slot-line{stroke:#176c9d;stroke-width:1.05px}.dimension-line{stroke:#677063;stroke-width:.62px;fill:none}.extension-line{stroke:#8c9688;stroke-width:.48px;stroke-dasharray:2.5 2.5}.center-mark{stroke:#2f332d;stroke-width:.95px}.annotation-pill{fill:#fcfcfae6;stroke:#a9b3a2bf;stroke-width:.35px}.plot-label-pill{fill:#fffffff0}.dimension-label-pill{fill:#ffffffe0}.error-label-pill{fill:#fff5f4;stroke:#e1aaa5;stroke-width:.45px}.plot-label{fill:#252924;font-size:4px;font-weight:650}.dimension-label{fill:#31372f;font-size:3.45px;font-weight:600}.error-label{fill:var(--danger);font-size:4.6px;font-weight:700}@media (width<=980px){body{height:auto;overflow:hidden auto}.app-shell{height:auto;min-height:100vh;overflow:visible}.topbar{flex-direction:column;align-items:start}.topbar-nav{margin-left:0}.status{text-align:left;max-width:100%}.workspace,.customizer-workspace,.traction-workspace{grid-template-columns:minmax(0,1fr);gap:.75rem;min-height:auto}.control-pane{display:contents}.toolbar{order:1;min-width:0;padding-top:.35rem;position:sticky;top:0}.plot-pane{order:2}.traction-results-pane{order:2;min-height:34rem}.panel{order:3}.diagnostics-panel{order:4}.plot-pane,#layoutSvg{min-height:32rem}.metrics-bar{align-content:start}.customizer-preview{grid-template-rows:auto minmax(24rem,1fr) auto minmax(9rem,auto);min-height:36rem}.result-list{grid-template-columns:repeat(2,minmax(0,1fr))}.customizer-controls{gap:.75rem;display:grid}}@media (width<=520px){.workspace{padding:.5rem}.field{grid-template-columns:1fr 6.7rem 2.6rem;gap:.4rem}.toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.solver-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar button{padding:0 .45rem}.customizer-workspace,.traction-workspace,.dashboard-page{padding:.5rem}.customizer-actions{grid-template-columns:minmax(0,1fr)}.metrics-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;padding:.4rem;display:grid}.metric{width:100%;min-width:0;padding:.15rem .35rem}.metric-label{font-size:.66rem}.metric-value{font-size:.78rem}.plot-label{font-size:4.8px}.dimension-label{font-size:3.9px}.result-list{grid-template-columns:minmax(0,1fr)}.traction-preview{padding:.5rem}}
