*{box-sizing:border-box}:root{font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;color:#263432;background:#f1f3f2;font-synthesis:none;font-size:13px;--accent:#285c54;--muted:#83908a;--line:#e1e6e2}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;transition:background .18s,color .18s,box-shadow .18s}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #428e7a;outline-offset:3px}button:disabled{cursor:wait;opacity:.55}button{color:inherit}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}header{height:76px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:20px}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:36px;height:36px;background:#28534e;border-radius:8px;color:#fff;display:grid;place-items:center;font-size:14px;font-weight:650;letter-spacing:-1px}.brand-title{font-size:15px;font-weight:650;letter-spacing:.2px}.brand-subtitle{font-size:10px;letter-spacing:1.6px;color:#8a9691;margin-top:5px}.header-center{display:flex;gap:8px;color:#8a948f;font-size:12px}.header-center strong{color:#35453f;font-weight:500}.header-actions{display:flex;align-items:center;gap:9px}.revision{font:11px Consolas,monospace;border:1px solid var(--line);border-radius:4px;padding:5px 7px;margin-right:12px;color:#7c8982}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #d9e0db;background:#fff;border-radius:6px;padding:9px 13px;font-size:12px;white-space:nowrap}.button:hover{background:#f3f6f3}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{background:#1e4c44}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 326px;height:calc(100vh - 76px);min-height:660px}.viewport{position:relative;overflow:hidden;isolation:isolate;background:#f1f3f2;touch-action:none}.stage{position:absolute;inset:0;z-index:0}.stage canvas{width:100%;height:100%;display:block;outline:none}.view-toolbar{position:absolute;top:22px;left:26px;right:26px;display:flex;justify-content:space-between;align-items:center;z-index:4;gap:12px}.segmented{display:flex;padding:3px;border:1px solid #dde3de;background:#ffffffd9;border-radius:7px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);gap:2px}.segmented button{border:0;background:transparent;border-radius:4px;padding:7px 14px;color:#79867e;font-size:12px}.segmented button.active{color:#294f46;background:#e3eae5;box-shadow:0 1px 2px #193a2310}.tools{display:flex;gap:7px}.icon-button{width:34px;height:34px;display:grid;place-items:center;background:#fff;border:1px solid #dde3de;border-radius:6px;color:#67776d}.icon-button:hover,.icon-button.active{color:#245f50;background:#e6eee8}.product-heading{position:absolute;top:91px;left:32px;pointer-events:none;z-index:2}.eyebrow{font:10px Consolas,monospace;letter-spacing:2.2px;color:#83948a}.product-heading h1{font-size:34px;letter-spacing:-1px;font-weight:500;line-height:1.2;margin:9px 0 7px}.product-heading p{font-size:12px;color:#87938b;margin:0;letter-spacing:.2px}.view-cube{position:absolute;right:30px;top:92px;z-index:3;display:grid;grid-template-columns:repeat(2,34px);gap:4px}.view-cube button{height:29px;border:1px solid #dce3dd;border-radius:4px;background:#ffffffb0;font-size:10px;color:#7b8880}.view-cube button.active{background:#e2eae4;color:#28544a;border-color:#b9cbc0}.lower-tools{position:absolute;left:30px;bottom:114px;z-index:3;display:flex;gap:8px;align-items:center}.lower-tools .button{background:#ffffffdb;font-size:11px;padding:9px 11px}.view-hint{position:absolute;bottom:120px;right:28px;font-size:10px;letter-spacing:.2px;color:#91a097;z-index:2}.metrics{position:absolute;bottom:0;left:0;right:0;border-top:1px solid #dfe5df;background:#f7f9f6c9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:grid;grid-template-columns:repeat(4,1fr);padding:19px 22px 21px;z-index:3}.metric{padding-left:16px;border-right:1px solid #dfe5de}.metric:last-child{border-right:0}.metric-label{font-size:10px;color:#8b998f;margin-bottom:7px}.metric-value{font:22px Segoe UI,sans-serif;font-weight:450;letter-spacing:-.4px}.metric-value small{font:10px Segoe UI,sans-serif;color:#839087;margin-left:5px}.metric-value.accent{color:#2e6959}.axis{position:absolute;left:30px;bottom:176px;color:#9ba69e;font:10px Consolas,monospace;pointer-events:none}.axis span{margin-right:12px}.axis span:first-child{color:#b97768}.axis span:nth-child(2){color:#77907f}.axis span:nth-child(3){color:#6a8da2}.panel{background:#fff;border-left:1px solid var(--line);overflow:auto;scrollbar-width:thin;scrollbar-color:#d6ddd6 transparent}.panel-title{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 19px}.panel-title h2{font-size:14px;font-weight:600;margin:0}.unit{font:10px Consolas,monospace;letter-spacing:.3px;color:#92a096;background:#f4f6f3;padding:4px 6px;border-radius:4px}.panel-section{padding:20px 24px;border-top:1px solid #eef1ed}.section-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:550;margin-bottom:17px}.section-heading span{font-weight:400;font-size:10px;color:#9da89f}.preset{width:100%;padding:10px 11px;border:1px solid #dfe5de;border-radius:5px;background:#fafbf9;color:#475b4f;font-size:12px}.angle-status{display:flex;align-items:center;justify-content:space-between;margin:6px 0 16px}.angle-value{font-size:35px;font-weight:450;letter-spacing:-1px}.angle-value small{font-size:16px;vertical-align:top;display:inline-block;margin-top:8px;color:#78897d}.status{display:flex;gap:5px;align-items:center;color:#47816d;font-size:10px;background:#eff6ef;border:1px solid #dfebdf;border-radius:4px;padding:5px 7px}.status i{width:5px;height:5px;border-radius:50%;background:currentColor}.status.unlocked{color:#b77b40;background:#fcf5ec;border-color:#f2e6d4}.angle-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.angle-buttons button{border:1px solid #e0e7df;border-radius:4px;background:#fff;padding:9px 0;font:11px Consolas,monospace}.angle-buttons button.active{color:#fff;background:var(--accent);border-color:var(--accent)}.angle-caption{display:flex;justify-content:space-between;color:#a0aaa3;font-size:9px;margin-top:8px}.lock-actions{display:flex;gap:7px;margin-top:16px}.lock-actions .button{flex:1;font-size:10px;padding:8px 6px}.field{margin-top:17px}.field-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;font-size:11px;color:#76867a}.field-number{display:flex;align-items:center;gap:5px}.field input[type=number]{width:62px;padding:4px 5px;border:1px solid #e3e9e2;border-radius:4px;color:#394d40;background:#fafbf9;font:11px Consolas,monospace;text-align:right;appearance:textfield}.field input::-webkit-inner-spin-button{appearance:none}.field-row small{font-size:9px;color:#9ba69d}input[type=range]{width:100%;height:3px;display:block;appearance:none;background:linear-gradient(to right,#6d9884 var(--progress,50%),#e7ece5 var(--progress,50%));border-radius:4px;cursor:pointer;margin:9px 0 2px}input[type=range]::-webkit-slider-thumb{appearance:none;width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid #608d74;box-shadow:0 1px 3px #244c3018}.field-range{display:flex;justify-content:space-between;margin-top:7px;font:9px Consolas,monospace;color:#b1bbb1}.swatches{display:flex;gap:12px;margin:12px 0 5px}.swatch{border:3px solid white;outline:1px solid #e0e6df;width:27px;height:27px;border-radius:50%;background:var(--swatch);position:relative}.swatch.active{outline:2px solid #658b77}.color-name{font-size:10px;color:#8d9a90;margin-top:13px}.panel-footer{padding:17px 24px;font-size:10px;color:#a0aaa3;border-top:1px solid #edf0eb;display:flex;justify-content:space-between}.layers{position:absolute;left:30px;bottom:160px;width:232px;border:1px solid #dce4dd;background:#ffffffeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:15px 10px 10px;border-radius:8px;z-index:6;box-shadow:0 12px 40px #2c443012}.layers[hidden]{display:none}.layers-title{display:flex;align-items:center;justify-content:space-between;margin:0 5px 12px;font-size:12px;font-weight:550}.layers-title small{font:10px Consolas,monospace;color:#99a69b}.part-row{display:flex;align-items:center;gap:8px;border-radius:4px;padding:2px}.part-row.selected{background:#e8f0e8}.part-row button{flex:1;border:0;background:none;text-align:left;padding:8px 5px;font-size:11px}.part-row input{accent-color:var(--accent)}.part-info{position:absolute;right:26px;bottom:167px;background:#fff;border:1px solid #dce5dd;border-radius:6px;z-index:3;padding:12px 16px;max-width:240px}.part-info[hidden]{display:none}.part-info strong{font-size:12px;font-weight:550}.part-info p{font-size:10px;color:#8d9b90;margin:6px 0 0}.dimension-label{position:absolute;font:10px Consolas,Microsoft YaHei,monospace;background:#f8faf6df;color:#667f70;padding:4px 7px;border-radius:3px;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap;z-index:2}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);padding:12px 21px;border:1px solid #c9dccc;background:#fcfffa;border-radius:6px;box-shadow:0 8px 30px #143b1720;z-index:20;font-size:12px}.toast[hidden]{display:none}.loading{position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:#f1f3f2;font-size:13px;color:#6b8072}.loading[hidden]{display:none}.error{max-width:460px;line-height:1.8;padding:30px;text-align:center}.model-counter{position:absolute;right:28px;top:175px;z-index:2;font:9px Consolas,monospace;color:#a0afa4;letter-spacing:.4px}.explosion-slider{position:absolute;top:70px;left:30px;width:220px;padding:10px 14px;background:#ffffffd9;border:1px solid #dee5dc;border-radius:5px;z-index:6}.explosion-slider[hidden]{display:none}.explosion-slider label{font-size:10px;color:#798b7d}.export-menu{position:absolute;top:65px;right:26px;width:156px;background:#fff;border:1px solid #dce3dc;border-radius:6px;padding:5px;box-shadow:0 10px 35px #17341f16;z-index:30}.export-menu[hidden]{display:none}.export-menu button{display:flex;gap:10px;align-items:center;border:0;background:none;width:100%;padding:11px 8px;font-size:11px;border-radius:4px}.export-menu button:hover{background:#eef4ee}#viewport:fullscreen{width:100vw;height:100vh}.mobile-title{display:none}@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 356px}.panel-section{padding:23px 28px}.panel-title{padding-left:28px}.product-heading h1{font-size:40px}}@media(max-height:850px)and (min-width:901px){.panel-section{padding-top:16px;padding-bottom:16px}.field{margin-top:13px}.field-range{display:none}.section-heading{margin-bottom:12px}.angle-status{margin-bottom:10px}.panel-title{padding-top:20px;padding-bottom:16px}}@media(max-width:1000px){.header-center{display:none}.workspace{grid-template-columns:minmax(0,1fr) 292px}.panel-section{padding-left:19px;padding-right:19px}.product-heading h1{font-size:28px}.view-hint,.revision{display:none}.metric{padding-left:5px}.metrics{padding-left:15px;padding-right:15px}.metric-value{font-size:19px}.view-toolbar{left:18px;right:18px}.segmented button{padding:7px 10px}}@media(max-width:700px){header{height:68px;padding:0 15px}.brand-subtitle{font-size:8px;letter-spacing:1px}.brand-title{font-size:13px}.brand-mark{width:31px;height:31px}.brand{gap:9px}.header-actions .button{padding:8px 10px}.header-actions .button span{display:none}.workspace{display:flex;flex-direction:column;height:auto;min-height:0}.viewport{height:68vh;min-height:500px}.panel{border-left:0;border-top:1px solid var(--line);overflow:visible}.panel-title{padding:20px}.panel-section{padding:20px 23px}.product-heading{top:81px;left:22px}.product-heading h1{font-size:25px}.product-heading p{font-size:10px}.eyebrow{font-size:8px}.view-cube{top:84px;right:20px}.view-toolbar{top:18px}.metrics{padding:14px 12px}.metric-value{font-size:19px}.metric-label{font-size:9px}.metric-value small{font-size:8px}.lower-tools{left:20px;bottom:92px}.axis,.model-counter{display:none}.part-info{bottom:138px;right:15px}.layers{left:20px;bottom:136px}.panel-footer{padding:18px 23px}.field{margin-top:21px}.field input[type=number]{width:74px}.explosion-slider{left:20px}.export-menu{right:15px;top:60px}}
