:root{font-family:Arial,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#21313b;background:#fff;--accent:#1b7e93;--line:#d6dee3;--muted:#61717c;--stage:#f3f8fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.48}button:focus-visible,a:focus-visible,canvas:focus-visible,input:focus-visible{outline:3px solid #2695ac;outline-offset:3px}.header{height:84px;padding:19px 30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.header h1{font-size:23px;line-height:1.2;letter-spacing:-.6px;margin:0 0 6px;font-weight:700}.header a{font-size:13px;color:#176b80;text-decoration:none}.header a:hover{text-decoration:underline}.link-separator{font-size:13px;margin:0 8px;color:#9ca9b0}#model-status{font-size:12px;color:var(--muted);white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 324px;height:calc(100dvh - 84px);min-height:620px}.stage{position:relative;min-width:0;background:var(--stage);overflow:hidden;isolation:isolate}.stage:fullscreen,.stage.expanded{height:100dvh;width:100vw}.stage.expanded{position:fixed;inset:0;z-index:100}#canvas-host{position:absolute;inset:0;z-index:1}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}#view-title{position:absolute;top:26px;left:30px;margin:0;z-index:2;font-size:16px;font-weight:600;pointer-events:none}.canvas-hint{position:absolute;bottom:20px;left:30px;z-index:2;font-size:11px;letter-spacing:.1px;color:var(--muted);margin:0;pointer-events:none}.fullscreen{position:absolute;z-index:3;right:22px;bottom:15px;width:36px;height:36px;border:1px solid var(--line);border-radius:6px;background:#ffffffba;display:grid;place-items:center;color:#405a67}.fullscreen svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.rail{padding:24px 21px 28px;overflow-y:auto;border-left:1px solid var(--line);background:#fff;scrollbar-width:thin}.rail section+section{margin-top:22px}.rail h2{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:1px;margin:0 0 9px}.button-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.button-grid button,.rotate{border:1px solid #cbd6dc;background:#fff;color:#21313b;border-radius:6px;min-height:40px;padding:9px 8px;font-size:12px;line-height:1.4;transition:background .15s,border-color .15s}.button-grid button:hover,.rotate:hover{background:#edf5f7;border-color:#87aab6}.button-grid button[aria-pressed=true],.rotate[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:white}.wide{grid-column:1/-1;width:100%}.views{grid-template-columns:repeat(3,minmax(0,1fr))}.zoom{margin-top:9px}.rotate{margin-top:8px}.range-label{margin-top:13px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}#explode{width:100%;margin:9px 0 0;accent-color:var(--accent);cursor:pointer}.manual{border-top:1px solid var(--line);padding-top:20px}.manual a{display:flex;justify-content:space-between;font-size:12px;color:#176b80;text-decoration:none;padding:7px 0}.manual a:hover{text-decoration:underline}.loading{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:#f3f8fb;color:var(--muted);font-size:13px}.progress{width:160px;height:3px;background:#dce8ed;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}.stage.ready .loading{display:none}.load-error{position:absolute;inset:0;z-index:4;background:#f3f8fbee;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:28px;text-align:center;font-size:14px;line-height:1.8}.load-error[hidden]{display:none}.load-error button{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:10px 24px}.part-labels{position:absolute;inset:0;pointer-events:none;z-index:2}.part-label{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;white-space:nowrap;font:11px Arial,"PingFang SC",sans-serif;padding:5px 8px;border:1px solid #d8e3e9;background:#ffffffeb;border-radius:4px;color:#48606b}.part-label:hover{background:var(--accent);color:white}.part-label[hidden]{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.header{height:auto;min-height:84px;padding:17px 20px;align-items:flex-start}.header h1{font-size:20px}.header a{font-size:11px}#model-status{font-size:10px;margin-top:5px}.workspace{height:auto;min-height:0;display:flex;flex-direction:column}.stage{height:58dvh;min-height:380px;max-height:640px;width:100%;position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line)}#view-title{top:20px;left:20px;font-size:14px}.canvas-hint{bottom:22px;left:20px;font-size:9px;max-width:calc(100% - 80px)}.rail{overflow:visible;border-left:0;padding:22px 20px 30px}.rail section+section{margin-top:22px}.rail h2{font-size:12px}.button-grid button,.rotate{font-size:13px;min-height:43px}.scopes{grid-template-columns:repeat(3,minmax(0,1fr))}.scopes .wide{grid-column:auto}.components{grid-template-columns:repeat(3,minmax(0,1fr))}.views{grid-template-columns:repeat(3,minmax(0,1fr))}.part-label{font-size:9px;padding:4px 5px}.manual a{font-size:13px}.stage:fullscreen{position:relative}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-width:760px){html{scroll-padding-top:calc(clamp(380px,58dvh,640px) + 16px)}.rail button,.rail input{scroll-margin-top:12px}}

.section-note{font-size:11px;line-height:1.7;color:var(--muted);margin:8px 0 0}.section-note[hidden]{display:none}.button-grid button:disabled{cursor:default}@media(max-width:760px){.scopes{grid-template-columns:repeat(2,minmax(0,1fr))}}

.composition-presets{margin:12px 0}.composition-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.composition-list label{display:flex;align-items:center;gap:7px;min-height:36px;padding:6px 8px;background:#f6f9fa;border:1px solid #e0e8ec;border-radius:5px;font-size:11px;cursor:pointer}.composition-list label:has(input:checked){background:#e7f4f6;border-color:#87b7c1}.composition-list input{margin:0;accent-color:var(--accent);flex-shrink:0;cursor:pointer}.composition .section-note{margin-top:0}.composition #composition-summary{margin-top:9px}@media(max-width:760px){.composition-list label{font-size:12px;min-height:42px}.composition-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

.payment-picker{margin:15px 0}.payment-picker h3{font-size:11px;color:var(--muted);font-weight:600;margin:12px 0 7px}.payment-options{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-options button{font-size:11px;padding:8px 3px}.payment-picker .section-note{margin-top:9px}

@media(max-width:760px){.header{flex-wrap:wrap;gap:8px}#model-status{margin-top:0}.canvas-hint{line-height:1.5}.composition-list span{overflow-wrap:anywhere}}

[hidden]{display:none!important}.assembly-list{grid-template-columns:1fr}.assembly-list button{text-align:left}

.header .comparison-link{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;padding:7px 10px;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:#fff;text-decoration:none}.header .comparison-link:hover{background:#146b7d;border-color:#146b7d;color:#fff;text-decoration:none}
