:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;color:#273632;background:#f8f9f6;font-synthesis:none;font-size:14px;--accent: #237b68;--border: #e5e8e1;--muted: #84908a}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,select{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #53bba0;outline-offset:3px}button{border:0;background:none}a{color:inherit;text-decoration:none}svg{width:17px;height:17px;stroke-width:1.7;flex-shrink:0}h1,h2,h3,p{margin:0}h2{font-size:14px;font-weight:600}hr{border:0;border-top:1px solid var(--border);margin:23px 0}.topbar{height:82px;display:flex;align-items:center;gap:25px;padding:0 30px;background:#fcfdfb;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px;font-family:Space Grotesk,sans-serif;font-size:22px;font-weight:600;line-height:1}.brand-mark{width:40px;height:40px;display:grid;place-items:center;background:var(--accent);color:#fff;border-radius:13px;font-size:33px;font-weight:500}.brand-sub{display:block;font-family:DM Sans,sans-serif;font-size:9px;letter-spacing:2.7px;font-weight:500;margin-top:7px}.header-divider{height:28px;width:1px;background:var(--border)}.project-label{font-size:13px;color:#75837b}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;border-radius:8px;border:1px solid var(--border);background:#fff;font-size:12px;font-weight:500;white-space:nowrap}.button:hover{background:#f1f5ef}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{background:#1a6655}.button.subtle{background:transparent}.saved{font-size:11px;color:#84938a;margin-right:15px}.saved:before{content:"";display:inline-block;width:5px;height:5px;background:#80a890;border-radius:50%;margin-right:7px}.workspace{display:grid;grid-template-columns:232px minmax(0,1fr) 286px;grid-template-rows:minmax(600px,calc(100vh - 278px)) auto;max-width:1920px;margin:auto}.parts-panel{border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;padding:25px 17px 0;background:#fcfdfb}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.count{font:11px Space Grotesk,sans-serif;background:#edf1eb;border:1px solid #e5eae1;border-radius:5px;padding:3px 6px;color:#7e8b81}.search{display:flex;align-items:center;gap:8px;background:#f0f3ed;border:1px solid #e8ece3;border-radius:7px;padding:10px;color:#8f9b91}.search input{min-width:0;width:100%;border:0;background:transparent;outline:none;font-size:12px;color:#43524a}.part-filters{display:flex;gap:15px;margin:16px 0 8px;border-bottom:1px solid var(--border)}.part-filters button{font-size:12px;padding:0 3px 11px;color:#8c978e}.part-filters .active{border-bottom:2px solid var(--accent);color:var(--accent);font-weight:600}.part-list{overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:#dce3d8 transparent;padding-bottom:12px}.part-list summary{font-size:11px;font-weight:600;color:#8c968f;cursor:pointer;padding:17px 4px 10px;list-style:none}.part-list .part-aside{margin-top:12px;border-top:1px dashed var(--border)}.part-list .part-aside summary{color:#a7b0a8}.part-list .part-aside .part-row{opacity:.55}.part-list .part-aside .part-row.selected,.part-list .part-aside .part-row:hover{opacity:1}.part-list summary:before{content:"⌄";margin-right:8px}.part-list details:not([open]) summary:before{content:"›"}.part-list summary span{float:right;font-size:10px;font-weight:400}.part-row{display:flex;align-items:center;width:100%;gap:9px;padding:10px 8px;border-radius:6px;text-align:left;font-size:12px;line-height:1.35;margin:1px 0}.part-row:hover{background:#f0f4ed}.part-row.selected{background:#e3f0e9;color:#206d5b;font-weight:500}.part-row>span:nth-child(2){overflow-wrap:anywhere}.part-swatch{width:13px;height:13px;flex-shrink:0;border-radius:4px;border:1px solid #00000013}.part-row small{margin-left:auto;font-size:9px;white-space:nowrap;color:#92a097}.parts-footer{padding:15px 0;display:flex;gap:7px;align-items:center;font-size:10px;color:#8c978e;border-top:1px solid var(--border)}.parts-footer svg{width:12px}.stage{position:relative;min-width:0;background:#eef0eb;overflow:hidden}.stage-top{position:absolute;top:30px;left:32px;right:28px;display:flex;justify-content:space-between;z-index:1;pointer-events:none}.eyebrow{font-family:Space Grotesk,sans-serif;font-size:9px;letter-spacing:1.7px;color:#8b9a90;font-weight:500}.stage h1{font-size:25px;letter-spacing:1px;font-weight:500;margin:9px 0 10px}.model-label{font-size:11px;color:#8c988e}.live-tag{display:flex;align-items:center;gap:6px;background:#ffffff9c;border:1px solid #fff;padding:6px 10px;height:27px;font-size:10px;border-radius:20px;color:#7f9186}.live-tag b{width:5px;height:5px;background:#498c70;border-radius:50%}#viewport{width:100%;height:100%;min-height:560px;touch-action:none}#viewport canvas{display:block;width:100%;height:100%}#loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;font-size:13px;color:#748378;background:#eef0eb;z-index:3}.loader{border:2px solid #d6e4d8;border-top-color:#34856c;width:28px;height:28px;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stage-tools{position:absolute;top:152px;right:22px;display:flex;flex-direction:column;padding:5px;background:#ffffffc9;border:1px solid #fff;border-radius:10px;box-shadow:0 3px 15px #36433806;gap:3px}.icon-button{width:32px;height:32px;display:grid;place-items:center;border-radius:6px}.icon-button:hover{background:#e9eee6}.stage-tools>span{height:1px;background:#e5e9e1;margin:2px 5px}.stage-bottom{position:absolute;bottom:55px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;gap:10px}.view-controls{display:flex;padding:4px;gap:2px;background:#ffffffca;border:1px solid white;border-radius:9px}.view-controls button{font-size:11px;padding:7px 12px;border-radius:5px;color:#89938a}.view-controls .active{background:#e8eee5;color:#3b5144}.gesture{font-size:10px;color:#8e9c90}.stage-caption{position:absolute;left:30px;right:30px;bottom:18px;display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#91a08f}.inspector{background:#fcfdfb;border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.inspector-scroll{overflow-y:auto;scrollbar-width:thin;padding:25px 23px 18px;flex:1}.inspector .panel-title>svg{width:15px;color:#94a094}.selected-heading{padding:6px 0 21px}.selected-heading h3{font-size:19px;font-weight:500;margin:9px 0}.meta{font-size:10px;line-height:1.6;color:#8a988d;overflow-wrap:anywhere}.field-label{font-size:11px;display:flex;justify-content:space-between;align-items:center;margin:16px 0 10px;font-weight:500}.field-label span,.field-label output{font-family:Space Grotesk,sans-serif;font-size:10px;color:#87978a;font-weight:400}.color-entry{height:42px;background:#fff;border:1px solid var(--border);border-radius:8px;display:flex;align-items:center;padding:6px;gap:7px}.color-entry input[type=color]{width:29px;height:28px;border:0;padding:0;background:none;border-radius:5px;cursor:pointer}.color-entry input[type=text],#hex-color{border:0;min-width:0;width:78px;font-size:11px;letter-spacing:.5px;font-family:Space Grotesk,monospace;color:#65756a;outline:none}.text-button{font-size:10px;white-space:nowrap;color:#3d8c72;padding:3px 0;margin-left:auto}.quick-colors{display:flex;gap:7px;margin:13px 0 23px}.quick-colors button{width:21px;height:21px;border-radius:50%;border:1px solid #0000000d}.quick-colors button:hover{outline:2px solid #8caa97;outline-offset:2px}.material-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}.material-options button{border:1px solid var(--border);border-radius:7px;font-size:11px;text-align:left;padding:12px 10px;background:#fff}.material-options button:before{content:"";display:inline-block;width:10px;height:10px;background:linear-gradient(130deg,#f7f7f4,#a2b2a6);border-radius:50%;margin-right:7px}.material-options button[data-material=matte-pla]:before{background:#a5b3a8}.material-options button[data-material=petg]:before{background:linear-gradient(110deg,#a5b8aa 10%,#fff 45%,#83998a 60%,#ccd9cc)}.material-options button[data-material=tpu]:before{background:#7b9181}.material-options .active{border-color:#66a18a;color:#27785e;background:#edf5ed;box-shadow:0 0 0 1px #66a18a20}.small-note{font-size:10px;line-height:1.8;color:#8d998f;margin-top:11px}.check-row{display:flex;align-items:center;gap:7px;font-size:11px;color:#728277;margin-top:16px;cursor:pointer}.check-row input{accent-color:#2e876c;width:13px;height:13px;margin:0}.part-actions{display:flex;gap:8px;margin-top:17px}.part-actions button{flex:1;padding:8px 4px;font-size:10px;gap:5px}.part-actions svg{width:13px}.part-actions .active{background:#e4f0e7;color:var(--accent)}.section-heading{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;margin-bottom:16px}.section-heading svg{color:#829180;width:14px}.stage-controls{display:flex;align-items:center;gap:6px}.module-controls button.active{background:var(--accent);color:#fff}.module-controls button:disabled{opacity:.5}.segmented{display:flex;gap:3px;background:#eef2eb;padding:4px;border-radius:7px}.segmented button{flex:1;padding:7px 2px;font-size:10px;color:#8b978b;border-radius:4px}.segmented .active{background:#fff;color:#4b6351;box-shadow:0 1px 4px #35482f0d}input[type=range]{width:100%;accent-color:#408d70;height:4px;display:block;margin:14px 0 18px;cursor:pointer}.agent-link{border-top:1px solid var(--border);padding:15px 20px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#728b7c;background:#f6f8f3;gap:5px}.agent-link svg{width:13px}.disabled{opacity:.4}.palette-tray{grid-column:1/-1;border-top:1px solid var(--border);display:flex;align-items:center;padding:25px 30px;gap:30px;min-width:0;background:#fcfdfb}.palette-title{flex-shrink:0}.palette-title h2{font-size:14px;font-weight:500;margin:7px 0}.palette-title>span:last-child{font-size:10px;color:#919b90}.preset-list{display:flex;gap:11px;flex:1;min-width:0}.preset{padding:8px;border:1px solid var(--border);border-radius:9px;text-align:left;flex:1;min-width:65px;position:relative;background:#fff}.preset:hover{border-color:#94b49c;transform:translateY(-2px)}.preset.active{border-color:#6b9b7d;background:#f2f6ef;box-shadow:0 0 0 2px #6b9b7d12}.swatch-strip{height:30px;display:flex;overflow:hidden;border-radius:5px;margin-bottom:8px}.swatch-strip span{flex:1}.swatch-strip span:first-child{flex:1.8}.preset-name{display:block;font-size:10px;white-space:nowrap}.preset-tag{font-size:8px;color:#9aa397;display:block;margin-top:3px}.group-colors{border-left:1px solid var(--border);padding-left:23px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;flex-shrink:0}.group-colors>span{grid-column:1/-1;font-size:10px;color:#81907f;margin-bottom:2px}.group-colors label{display:flex;flex-direction:column;gap:6px;align-items:center;font-size:9px;color:#859180}.group-colors input{width:24px;height:24px;border:0;padding:0;border-radius:5px;background:none;cursor:pointer}.footer{display:flex;justify-content:space-between;gap:12px;padding:15px 30px;border-top:1px solid var(--border);font-size:9px;color:#99a293}.footer>span:first-child{font-family:Space Grotesk,sans-serif;letter-spacing:.5px}.footer a{color:#688973;margin-left:12px}#toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,12px);background:#244537;color:#fff;max-width:90%;padding:13px 20px;border-radius:10px;box-shadow:0 6px 25px #18332722;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:10}#toast.show{opacity:1;transform:translate(-50%)}dialog{border:1px solid var(--border);border-radius:18px;max-width:520px;width:calc(100% - 32px);padding:26px;color:#344738;box-shadow:0 20px 90px #223c3433}dialog::backdrop{background:#1b2e2844;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}dialog p{font-size:12px;line-height:1.8;color:#819184}.api-links{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:#287c5e;margin:20px 0}pre{background:#edf2ec;border-radius:8px;padding:18px;font-size:11px;line-height:1.8;overflow:auto;color:#42624b}.empty{padding:24px 8px;font-size:12px;color:#96a08f}@media(min-width:1600px){.workspace{grid-template-columns:260px minmax(0,1fr) 310px}.stage-top{left:42px;top:38px}.stage h1{font-size:30px}.palette-tray{gap:40px;padding:30px 40px}.preset{padding:12px}.swatch-strip{height:38px}.preset-name{font-size:12px}}@media(max-width:1150px){.workspace{grid-template-columns:200px minmax(0,1fr) 254px}.parts-panel{padding-left:12px;padding-right:12px}.inspector-scroll{padding:23px 17px}.project-label{display:none}.stage-top{left:23px}.stage h1{font-size:21px}.stage-top .live-tag{display:none}.palette-tray{gap:18px;padding:20px}.palette-title{width:160px}.group-colors,.gesture,.preset-tag,.saved{display:none}.color-entry{gap:4px}.text-button{font-size:9px}}@media(max-width:850px){.workspace{grid-template-columns:minmax(0,1fr) 250px;grid-template-rows:620px auto auto}.parts-panel{grid-column:1/-1;grid-row:3;max-height:300px;border-top:1px solid var(--border);padding-top:18px}.part-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.parts-footer{display:none}.stage{grid-column:1;grid-row:1}.inspector{grid-column:2;grid-row:1}.palette-tray{grid-row:2;flex-wrap:wrap}.palette-title{width:100%}.palette-title h2{display:inline;margin-right:12px}.palette-title .eyebrow{display:none}.preset-list{width:100%}.topbar{padding:0 20px}.stage-caption span:last-child{display:none}.footer{flex-wrap:wrap}.stage-tools{right:12px}}@media(max-width:560px){.topbar{height:70px;padding:0 15px;gap:10px}.brand{font-size:18px;gap:8px}.brand-mark{width:33px;height:33px;font-size:28px;border-radius:10px}.brand-sub{font-size:7px;letter-spacing:1.8px}.header-divider{display:none}.top-actions{gap:5px}.top-actions .button{padding:9px;font-size:11px}.top-actions .subtle span{display:none}.workspace{display:flex;flex-direction:column}.stage{height:560px;order:0}.inspector{order:2;border-top:1px solid var(--border);border-left:0}.inspector-scroll{overflow:visible;padding:24px}.parts-panel{order:3;max-height:370px}.part-list{grid-template-columns:1fr 1fr}.palette-tray{order:1;display:block;padding:20px 17px}.preset-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:15px}.preset-name{font-size:11px}.preset-tag{display:none}.swatch-strip{height:28px}.palette-title{width:auto}.palette-title>span:last-child{display:none}.group-colors{display:flex;border:0;padding:15px 0 0;align-items:center;gap:18px}.group-colors label{flex-direction:row}.stage-top{left:22px;top:25px}.stage-tools{top:133px}.stage-bottom,.stage-caption{left:22px;right:22px}.footer{padding:16px;font-size:9px;line-height:1.8}.footer a{margin-left:0}.inspector .selected-heading h3{font-size:22px}.material-options{grid-template-columns:repeat(4,1fr)}.color-entry{max-width:100%}.color-entry #hex-color{flex:1}.quick-colors{gap:12px}.quick-colors button{width:25px;height:25px}.part-actions .button{padding:12px}.inspector .field-label,.check-row{font-size:12px}.small-note{font-size:11px}.view-controls button{padding:9px 13px}.text-button{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.inventory-dialog{max-width:950px;width:calc(100% - 32px);max-height:90vh;padding:30px}.inventory-dialog>.panel-title h2{font-size:22px;margin-top:8px;font-weight:500}.inventory-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px}.inventory-heading{display:flex;justify-content:space-between;align-items:center;min-height:48px;margin-bottom:10px}.inventory-heading h3{font-size:13px;font-weight:500}.inventory-heading h3 span{font-size:10px;color:#91a28f;margin-left:7px}.stock-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.stock-row>input[type=color]{width:37px;height:44px;flex-shrink:0;padding:0;border:0;background:none;cursor:pointer}.stock-row>div{min-width:0;flex:1}.stock-name{display:block;width:100%;font-size:12px;padding:4px 0;border:0;border-bottom:1px solid transparent;background:transparent;color:#536950}.stock-name:focus{border-bottom-color:#82ac83;outline:none}.stock-row select{font-size:10px;padding:5px 3px;margin-top:5px;border:1px solid var(--border);border-radius:4px;color:#7c8e78;background:#f5f8f2}.stock-row .icon-button{color:#91a48d}.inventory-actions{display:flex;justify-content:space-between;gap:15px;margin:17px 0}.inventory-actions .text-button{margin:0;font-size:10px}.stock-empty{padding:40px 15px;color:#99a692;font-size:12px;line-height:2;background:#f6f8f1;border-radius:8px;text-align:center}.recommend-modes{margin-bottom:12px}.recommend-modes button{font-size:11px;padding:10px 4px}#recommend-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}#recommend-list>.stock-empty{grid-column:1/-1}.recommend-card{padding:13px;border:1px solid var(--border);border-radius:10px;background:#fff;display:flex;flex-direction:column}.recommend-head h4{font-size:12px;font-weight:500;margin:0 0 5px}.recommend-head>span{font-size:9px;color:#91a08a}.recommend-swatches{display:flex;height:28px;border-radius:5px;overflow:hidden;margin:13px 0}.recommend-swatches>span{flex:1}.recommend-swatches>span:first-child{flex:1.7}.recommend-uses{display:flex;flex-direction:column;gap:7px;font-size:9px;color:#799071;margin-bottom:12px}.recommend-uses span{display:flex;align-items:center;gap:5px}.recommend-uses b,.missing-materials b{width:9px;height:9px;display:inline-block;flex-shrink:0;border-radius:3px;border:1px solid #00000010}.recommend-card>.button{margin-top:auto;font-size:10px;padding:9px 5px}.missing-materials,.paint-advice{background:#f7f3e7;border-radius:5px;padding:8px;margin-bottom:12px;font-size:9px;line-height:1.8;color:#97804b}.missing-materials p{font-size:9px;color:#97804b;margin-bottom:5px}.missing-materials small,.paint-advice small{display:block;font-size:9px;color:#a59b7d;line-height:1.7}.coating-note{color:#ae884e!important}.inventory-open{white-space:nowrap}.recommend-open{font-size:10px;color:#2b8768;margin-top:9px;display:block;padding:0}.inventory-close{font-size:24px;font-weight:400}.inventory-dialog .small-note{font-size:10px}@media(max-width:850px){.inventory-layout{grid-template-columns:1fr;gap:20px}.inventory-dialog{max-width:650px}.inventory-dialog>.panel-title h2{font-size:20px}#stock-list{max-height:240px;overflow:auto}}@media(max-width:560px){.top-actions .inventory-open{font-size:0;padding:9px}.top-actions .inventory-open:before{content:"耗材";font-size:11px}.inventory-dialog{padding:20px 16px}.inventory-dialog>.panel-title h2{font-size:18px}#recommend-list{grid-template-columns:1fr}.recommend-card{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.recommend-card .recommend-head{grid-column:1}.recommend-card .recommend-swatches{grid-column:2;grid-row:1;margin:0}.recommend-card .recommend-uses,.recommend-card .missing-materials,.recommend-card .paint-advice,.recommend-card>.small-note{grid-column:1/-1;margin-top:10px}.recommend-card>.button{grid-column:1/-1;margin-top:8px}.recommend-uses{font-size:11px}.missing-materials p,.paint-advice,.missing-materials small,.paint-advice small{font-size:10px}.recommend-open{display:inline;margin-left:10px}.inventory-heading .button{min-height:40px}.stock-row select{font-size:12px}.stock-name{font-size:14px}}.reference-heading{margin-bottom:8px;color:#8a988b}.owned-materials{background:#f0f6ed;border:1px solid #dbe8d6;border-radius:9px;padding:12px;margin:17px 0}.owned-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:500}.owned-heading .text-button{font-size:10px}.stock-match{font-size:9px;line-height:1.6;margin:10px 0}.in-stock{color:#278564}.not-stock{color:#ac8142}.owned-chips{display:grid;grid-template-columns:1fr;gap:6px}.owned-chip{border:1px solid #dfe8d9;background:#fff;border-radius:6px;display:flex;align-items:center;gap:8px;padding:8px;text-align:left;font-size:11px}.owned-chip>b{width:22px;height:22px;flex-shrink:0;border-radius:5px;border:1px solid #00000010}.owned-chip>span{min-width:0;overflow-wrap:anywhere}.owned-chip small{font-size:9px;display:block;color:#94a28e;margin-top:3px}.owned-chip.active{border-color:#6f9f79}.owned-reference{box-shadow:0 0 0 2px #fff,0 0 0 3px #549971}#shuffle-recommend{font-size:11px}.language-toggle{font-size:11px;font-weight:600;color:#5f7f6a;padding:8px;border:1px solid var(--border);border-radius:6px;white-space:nowrap}html[lang=en] .stage h1{font-size:27px;letter-spacing:-.6px}html[lang=en] .part-row{font-size:11px}html[lang=en] .stage-tools{top:165px}html[lang=en] .group-colors{gap:7px}html[lang=en] .palette-title{max-width:180px}html[lang=en] .preset-name{white-space:normal;font-size:10px}html[lang=en] .view-controls button{padding-left:9px;padding-right:9px}html[lang=en] .part-actions .button,html[lang=en] .owned-chip,html[lang=en] .stock-match{font-size:10px}html[lang=en] .inventory-dialog{max-width:1050px}html[lang=en] .inventory-layout{grid-template-columns:260px minmax(0,1fr)}html[lang=en] .recommend-card>.button{white-space:normal;line-height:1.5}html[lang=en] .reference-heading{font-size:10px}@media(max-width:1150px){html[lang=en] .stage h1{font-size:23px}html[lang=en] .project-label{display:none}html[lang=en] .palette-title{max-width:150px}}@media(max-width:850px){html[lang=en] .inventory-layout{grid-template-columns:1fr}html[lang=en] .palette-title{max-width:none}}@media(max-width:560px){.language-toggle{padding:8px 5px}.topbar{gap:6px}.top-actions{gap:4px}html[lang=en] .top-actions .inventory-open:before{content:"Stock"}html[lang=en] .top-actions .button.primary span{font-size:0}html[lang=en] .top-actions .button.primary span:after{content:"Export";font-size:10px}html[lang=en] .stage h1{font-size:25px}.brand-sub{letter-spacing:1px}html[lang=en] .material-options{grid-template-columns:1fr 1fr}html[lang=en] .inventory-dialog>.panel-title h2{font-size:20px}html[lang=en] .group-colors{display:flex}}.owned-chips{max-height:180px;overflow-y:auto;scrollbar-width:thin;grid-template-columns:1fr 1fr}.owned-chip{padding:7px;gap:6px}.owned-chip>b{width:18px;height:18px}.project-github{text-decoration:none;color:var(--accent)}.project-github:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:560px){.top-actions .project-github{padding:7px 4px}.project-github svg{width:16px;height:16px}}.language-toggle{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.language-toggle svg{width:16px;height:16px}.slogan-row{display:flex;align-items:center;gap:8px}.slogan-row .icon-button{width:28px;height:28px;flex-shrink:0;opacity:.65}.slogan-row h1{text-wrap:balance}@media(max-width:560px){.language-toggle{font-size:10px}.language-toggle svg{width:13px;height:13px}.top-actions .project-github{padding:5px 2px}.slogan-row{max-width:290px}}.export-split{position:relative;display:inline-flex;gap:0}.export-split>#export{border-radius:8px 0 0 8px}.export-split>.export-arrow{border-radius:0 8px 8px 0;padding:8px;border-left-color:#fff4}#export-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:205px;z-index:60;background:#fff;padding:6px;border:1px solid var(--border);box-shadow:0 12px 35px #12342a22;border-radius:10px}#export-menu button{padding:12px;background:transparent;border:0;border-radius:6px;width:100%;text-align:left;color:var(--ink)}#export-menu button:hover,#export-menu button:focus-visible{background:#e6f0e8}.print-dialog{max-width:min(1100px,94vw);width:min(1100px,94vw);max-height:90vh;padding:28px;border:1px solid var(--border);border-radius:18px;color:var(--ink);background:#fbfcf8;overflow:auto}.print-dialog::backdrop{background:#10251e88;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.print-dialog h2{margin:8px 0}.print-upload{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin:20px 0}#print-source-name{overflow-wrap:anywhere;font-size:12px}.print-dimensions{display:grid;grid-template-columns:repeat(5,1fr) 2fr;gap:10px}.print-dimensions label{display:grid;gap:7px;font-size:11px}.print-dialog input[type=number],.print-dialog select{min-width:0;width:100%;border:1px solid var(--border);border-radius:6px;padding:9px;background:#fff;color:var(--ink);font:inherit;font-size:12px}.print-toolbar{display:flex;gap:16px;align-items:center;font-size:12px}.print-object-list{max-height:350px;overflow:auto;border:1px solid var(--border);border-radius:10px}.print-object{display:grid;grid-template-columns:1.1fr 1.2fr .7fr;align-items:center;gap:14px;padding:12px;border-bottom:1px solid var(--border)}.print-object-name{display:flex;align-items:center;gap:10px;min-width:0;font-size:12px;overflow-wrap:anywhere}.print-object small{display:block;font-size:10px;color:#748178;margin-top:5px}.print-finish{display:flex;gap:7px;align-items:center}.print-finish input[type=color]{width:32px;height:32px;flex-shrink:0;border:0;padding:0;background:none}.print-finish :disabled{opacity:.6}.print-actions{display:flex;justify-content:flex-end;gap:10px;margin:20px 0}.print-plan-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.print-plate{border:1px solid var(--border);border-radius:10px;padding:12px;min-width:0}.print-plate h4{display:flex;gap:6px;align-items:center;margin:0 0 12px;font-size:11px}.print-plate h4 i{width:14px;height:14px;border-radius:50%;border:1px solid #0002}.print-plate svg{width:100%;height:auto;max-height:none}.print-plate ol{font-size:10px;padding-left:20px;overflow-wrap:anywhere}#print-status.error{color:#a83d31}@media(max-width:750px){.print-dimensions{grid-template-columns:repeat(3,1fr)}.print-object{grid-template-columns:1fr}.print-plan-preview{grid-template-columns:repeat(2,1fr)}.print-dialog{padding:16px}.print-toolbar{display:block}}@media(max-width:560px){.top-actions .export-arrow{padding:5px 2px}.export-arrow svg{width:12px}.print-plan-preview{grid-template-columns:1fr}}@media(max-width:560px){.topbar{height:auto;flex-wrap:wrap;padding:12px 16px;row-gap:10px}.top-actions{flex-basis:100%;width:100%;justify-content:flex-end;margin-left:0}}@media(max-width:760px),(pointer:coarse){.top-actions #import,.top-actions .export-split{display:none}}#loading details{max-width:90%;font-size:11px;overflow-wrap:anywhere}#loading>span{max-width:300px;text-align:center;line-height:1.7}.printer-picker{display:grid;gap:8px;max-width:420px;font-size:12px;margin:18px 0 8px}.print-dimensions input:disabled{background:#eef1ec;color:#66766d}.brand-mark img{width:100%;height:100%;display:block}.looks-split{position:relative;display:inline-flex}.looks-toggle{gap:8px;padding:5px 12px 5px 15px}.looks-text{display:grid;gap:2px;min-width:0;text-align:left}.looks-title{font-size:12px;line-height:1}.looks-toggle svg{width:13px;height:13px;opacity:.65}.looks-label{display:block;max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1;color:#84938a}#looks-menu{position:absolute;right:0;top:calc(100% + 8px);width:min(380px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 140px));overflow:auto;z-index:70;padding:16px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 40px #12342a26}.looks-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.looks-head h3{margin:5px 0 0;font-size:15px}.looks-save{display:flex;gap:8px;margin:15px 0 4px}.looks-save input{flex:1;min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:8px;font-size:12px;background:#fff;color:var(--ink)}.looks-save .button{padding:9px 12px;font-size:11px}#looks-hint{margin-top:9px}.looks-list{margin-top:12px}.looks-empty{padding:22px 6px;font-size:11px;line-height:2;text-align:center;color:#8d998f}.look-row{padding:8px;margin-bottom:8px;background:#fff;border:1px solid var(--border);border-radius:10px}.look-row.active{border-color:#6f9f79;background:#f2f8f1}.look-apply{display:flex;align-items:center;gap:10px;width:100%;padding:4px;border-radius:7px;text-align:left}.look-apply:hover{background:#eef4ec}.look-strip{display:flex;flex-shrink:0;overflow:hidden;border:1px solid #00000012;border-radius:5px}.look-strip span{display:block;width:13px;height:26px}.look-meta{flex:1;min-width:0}.look-meta b{display:block;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.look-meta small{display:block;margin-top:3px;font-size:10px;color:#8d998f}.look-rename{width:100%;padding:3px 6px;font-size:12px;border:1px solid #6f9f79;border-radius:5px}.look-state{flex-shrink:0;font-size:10px;color:#93a09a}.look-row.active .look-state{color:var(--accent);font-weight:500}.look-tools{display:flex;gap:6px;margin-top:7px}.look-tools button{flex:1;padding:6px 4px;font-size:10px;color:#6b7d72;background:#fbfcf8;border:1px solid var(--border);border-radius:6px}.look-tools button:hover{background:#eef4ec;color:var(--ink)}.look-tools button.confirm{color:#a83d31;background:#fdecea;border-color:#e0a49b;font-weight:500}.part-row small.linked{color:#3d8a6d}.part-row small+small{margin-left:6px}.stock-match .text-button{margin-left:6px;font-size:9px;text-decoration:underline}.light-note{margin-top:10px}.print-object.needs-review{background:#fdf4f2}.print-asterisk{color:#c0392b;font-weight:700;margin-right:3px}.print-hint-blocked{color:#a83d31}.print-match-warning{display:flex;gap:10px;margin-top:12px;padding:12px 14px;background:#fdf1ef;border:1px solid #e6b3aa;border-radius:10px}.print-match-warning>b{color:#c0392b;font-size:18px;line-height:1.1}.print-match-warning p{margin:0 0 6px;font-size:11px;line-height:1.7;color:#8f3a2c}.print-match-warning .check-row{margin-top:4px;color:#8f3a2c}.stock-row .stock-linked{display:block;margin-top:4px;font-size:9px;color:#3d8a6d}.material-options button[data-material=silk-pla]:before{background:linear-gradient(115deg,#e6ebdd 5%,#fff 40%,#9cb2a3 60%,#f4f6ef)}.material-options button[data-material=pla-cf]:before{background:#3f4642}.material-options button[data-material=petg-cf]:before{background:#4a504c}.material-options button[data-material=metallic-petg]:before{background:linear-gradient(110deg,#8f9a95 10%,#f2f4f2 45%,#69746f 60%,#cdd4d1)}.material-options button[data-material=abs]:before{background:#b9bfb5}.material-options button[data-material=asa]:before{background:#a8afa5}.material-options button[data-material=pc]:before{background:linear-gradient(120deg,#dfe6e2,#8fa39a)}.material-options button[data-material=pa]:before{background:#cfd3c8}.material-options button[data-material=pa-cf]:before{background:#33383a}#temperature{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:8px;border-radius:4px;margin:12px 0 16px;background:linear-gradient(90deg,#ff9a3c,#ffd7a8 26%,#fff6ec,#dbe9ff 74%,#a9c6ff)}#temperature::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:1px solid #a9b6ad;box-shadow:0 1px 3px #00000026}#temperature::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:#fff;border:1px solid #a9b6ad}#pattern-row{margin-bottom:2px}.light-options{flex-wrap:wrap}.print-object.needs-check{background:#fdf8ef}.print-asterisk.check{color:#b07a1e}.print-hint-check{color:#96641a}.print-match-warning>b:after{content:""}.pattern-heading{margin-top:16px}.stage.dark-stage .eyebrow,.stage.dark-stage h1,.stage.dark-stage .model-label,.stage.dark-stage .gesture,.stage.dark-stage .stage-caption,.stage.dark-stage #loading{color:#eaece7}.stage.dark-stage .eyebrow,.stage.dark-stage .model-label,.stage.dark-stage .gesture,.stage.dark-stage .stage-caption{opacity:.6}.stage.dark-stage .live-tag,.stage.dark-stage .stage-tools,.stage.dark-stage .view-controls{background:#ffffff14;border-color:#ffffff1f;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:0 3px 18px #0000004d}.stage.dark-stage .live-tag,.stage.dark-stage .icon-button{color:#eaece7}.stage.dark-stage .live-tag b{background:#7fd6b4}.stage.dark-stage .stage-tools>span{background:#ffffff26}.stage.dark-stage .icon-button:hover{background:#ffffff1f}.stage.dark-stage .view-controls button{color:#b6c0b6}.stage.dark-stage .view-controls .active{background:#ffffff26;color:#fff;box-shadow:none}.stage.dark-stage .slogan-row .icon-button{color:#c8d0c6}.motion-tools{position:relative;display:flex}#motion-toggle.active{background:#e2efe6;color:var(--accent)}#motion-menu{position:absolute;right:calc(100% + 10px);top:-6px;z-index:40;opacity:1;transform:translate(0);transition:opacity .16s ease,transform .16s ease;width:168px;padding:8px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px #12342a22}#motion-menu.closing{opacity:0;transform:translate(6px);pointer-events:none}#motion-menu .eyebrow{display:block;padding:4px 8px 6px}#motion-menu button{display:block;width:100%;padding:8px;border-radius:6px;font-size:11px;text-align:left;color:var(--ink)}#motion-menu button:hover,#motion-menu button:focus-visible{background:#e6f0e8}#motion-menu button.active{background:#e2efe6;color:var(--accent);font-weight:500}.stage.dark-stage #motion-menu{background:#12171a;border-color:#ffffff26;box-shadow:0 12px 30px #000000a6}.stage.dark-stage #motion-menu button{color:#e6eae4}.stage.dark-stage #motion-menu button:hover,.stage.dark-stage #motion-menu button:focus-visible{background:#ffffff1f}.stage.dark-stage #motion-menu button.active,.stage.dark-stage #motion-toggle.active{background:#ffffff26;color:#fff}.light-legend b{display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 3px -1px 5px;border:1px solid #143b33}.light-legend b.key-dot{background:#fff}.light-legend b.fill-dot{background:#fff9;border-color:#143b3380}#demo-cursor{position:fixed;left:0;top:0;z-index:999;pointer-events:none;opacity:0;transition:left .18s ease-out,top .18s ease-out,opacity .15s linear;transform:translate(-4px,-2px);filter:drop-shadow(0 2px 4px #00000040)}#demo-cursor.visible{opacity:1}#demo-cursor svg{width:26px;height:26px;fill:#16352d;stroke:#fff;stroke-width:1.2;stroke-linejoin:round}.demo-press{animation:demo-press .28s ease-out}@keyframes demo-press{0%{box-shadow:0 0 #237b6873;outline:2px solid transparent;outline-offset:0}35%{box-shadow:0 0 0 6px #237b6826;outline:2px solid #237b68;outline-offset:3px}to{box-shadow:0 0 0 10px #237b6800;outline:2px solid transparent;outline-offset:6px}}.stage:fullscreen,.stage.is-fullscreen{width:100vw;height:100vh;background:#eef0eb}.stage.is-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.stage:fullscreen #viewport,.stage.is-fullscreen #viewport{min-height:0;height:100vh}.stage:fullscreen .stage-caption,.stage.is-fullscreen .stage-caption{bottom:24px}
