:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#182131;background:#f5f6f8;font-size:16px;--accent:#00bce5;--ink:#172132;--line:#dce1e7}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #008cae;outline-offset:3px}.header{height:82px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:24px}.brand{font-size:25px;font-weight:800;letter-spacing:-1px;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:9px}.brandmark{background:var(--ink);color:var(--accent);border-radius:10px;width:34px;height:34px;display:grid;place-items:center;font-weight:900;font-size:34px;line-height:1;transform:rotate(180deg)}.branddot{color:#009cbe;margin-left:-8px}.header-note,.eyebrow{font-size:12px;font-weight:750;letter-spacing:1.5px}.header-note{color:#697487}.privacy{font-size:14px;border:1px solid #cbe7ee;border-radius:30px;padding:8px 13px;color:#316779;background:#eefaff}.workspace{max-width:1600px;margin:auto;display:grid;grid-template-columns:340px minmax(0,1fr)}.controls{border-right:1px solid var(--line);background:#fff;padding:28px 25px;max-height:calc(100dvh - 82px);overflow-y:auto;scrollbar-width:thin}.intro .eyebrow{color:#788394;font-size:11px}h1{font-size:27px;letter-spacing:-1px;margin:9px 0}p{line-height:1.5}.intro p{color:#738091;margin:5px 0 25px;font-size:14px}section{border-top:1px solid var(--line);padding:22px 0 6px}h2{font-size:16px;margin:0 0 16px;font-weight:750;letter-spacing:-.2px}.step{font-size:12px;color:#738091;margin-right:9px;font-weight:500}.upload{border:1.5px dashed #b9c3d1;background:#f8f9fb;border-radius:12px;display:flex;align-items:center;flex-direction:column;padding:19px 6px;cursor:pointer;position:relative;gap:6px}.upload.drag{background:#eafaff;border-color:#00a1ca}.upload input,.file-project input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload:focus-within,.file-project:focus-within{outline:3px solid #008cae;outline-offset:2px}.upload-icon{width:35px;height:35px;background:#fff;border:1px solid var(--line);border-radius:9px;text-align:center;font-size:25px}.upload strong{font-size:14px}.upload span:not(.upload-icon){font-size:12px;color:#748095}.upload small{font-size:11px;color:#748095}.filename{margin:9px 0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6b7687}.row{display:flex;gap:7px}.quiet{border:0;background:transparent;color:#637084;font-size:12px;padding:8px 0;font-weight:650}.row .quiet{flex:1;text-align:left}.file-project{position:relative;display:inline-block;margin-bottom:7px}.label-row{display:flex;align-items:center;justify-content:space-between;margin:12px 0 8px;font-size:14px;font-weight:600}.label-row output{font-size:12px;color:#788394;font-weight:400}input[type=range]{width:100%;accent-color:#00a2c8}select,input[type=number]{width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;padding:9px 10px;color:var(--ink);min-height:40px;font-size:14px}select{padding-right:20px}.palette{display:flex;gap:6px;margin:9px 0;flex-wrap:wrap}.swatch{width:25px;height:25px;border:1px solid #0002;border-radius:6px;padding:0;overflow:hidden}.swatch input{width:38px;height:38px;border:0;margin:-6px;cursor:pointer}.check{font-size:13px;display:flex;align-items:center;gap:7px;margin:12px 0 5px}.check input{accent-color:#009fc4;width:16px;height:16px}.hint{color:#788394;font-size:12px;line-height:1.5;margin:8px 0 14px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:13px 0}.fields label{font-size:13px;color:#586578}.fields label span{float:right;color:#94a0af;font-size:11px}.fields input,.fields select{margin-top:6px}.colorlabel{font-size:13px;display:flex;align-items:center;justify-content:space-between}.colorlabel input{width:40px;height:27px;padding:0;border:0;background:none}.secondary,.primary{border:1px solid #cbd3df;border-radius:8px;padding:12px 16px;font-size:14px;font-weight:700;background:#fff;color:var(--ink);transition:background .15s}.secondary:hover{background:#f0f3f7}.primary{background:var(--accent);border-color:var(--accent)}.primary:hover{background:#00afd5}.primary span{margin-left:12px}.full{width:100%;font-size:12px;padding:10px}.studio{padding:27px 30px;min-width:0}.studio-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.view-tabs{display:flex;background:#e9edf2;border-radius:9px;padding:4px;gap:2px}.view-tabs button{font-size:13px;color:#6c7889;border:0;background:none;padding:10px 15px;border-radius:6px;font-weight:650}.view-tabs button.active{background:#fff;color:var(--ink);box-shadow:0 1px 5px #0001}.stage{height:clamp(360px,57vh,680px);min-height:360px;border:1px solid #d8dee7;border-radius:16px;position:relative;overflow:hidden;}.stage canvas{display:block;width:100%;height:100%;touch-action:none;position:absolute;inset:0}.stage canvas[hidden]{display:none}.stage-label{position:absolute;left:22px;top:20px;pointer-events:none;display:flex;flex-direction:column;gap:5px;color:#6c7c8f}.stage-label .eyebrow{font-size:11px}.stage-label>span:last-child{font-size:12px}.dimension{position:absolute;bottom:18px;right:20px;font-size:12px;color:#657389;background:#fff9;padding:7px 12px;border-radius:5px;pointer-events:none}.loading{position:absolute;inset:0;display:grid;place-items:center;background:#eaf0f5ed;color:#687789;font-size:14px}.loading[hidden]{display:none}.statusbar{display:flex;justify-content:space-between;gap:15px;margin:13px 4px;color:#7b8796;font-size:12px}.statusbar .ok{color:#317d90}.statusbar .warn{color:#a56924}.feedback{font-size:13px;background:#fff3e4;border:1px solid #f0d3a7;color:#7a4c1d;border-radius:8px;padding:12px 15px;line-height:1.5;margin:14px 0}.export-area{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:23px;margin-top:20px}.export-area h2{font-size:18px;margin-bottom:7px}.export-area p{font-size:13px;color:#728093;margin:0 0 5px}.export-area small{font-size:11px;color:#8995a5}.export-buttons{display:flex;gap:9px;flex-wrap:wrap}.notes{margin:18px 3px;font-size:12px;color:#7b8796;line-height:1.6}.notes summary{cursor:pointer;font-weight:600}.notes p{max-width:840px}.magnet-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.magnet-item{background:#f6f8fa;border:1px solid #e3e8ee;border-radius:7px;padding:8px;display:grid;grid-template-columns:22px 1fr 1fr;gap:6px;align-items:center;font-size:12px}.magnet-item.selected{border-color:#00a1ca}.magnet-item label{font-size:11px;color:#748194}.magnet-item input{padding:5px;font-size:12px;min-height:30px}footer{border-top:1px solid var(--line);padding:15px 36px;font-size:12px;color:#788394}footer span{margin-left:15px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:13px 22px;border-radius:9px;font-size:14px;box-shadow:0 4px 25px #0002;z-index:10}@media(min-width:1450px){.workspace{grid-template-columns:370px minmax(0,1fr)}.controls{padding:32px}}@media(max-width:1050px){.header-note{display:none}.workspace{grid-template-columns:300px minmax(0,1fr)}.studio{padding:23px 18px}.controls{padding:24px 18px}.studio-top{flex-wrap:wrap}.view-tabs button{padding:9px 10px}.export-area{align-items:flex-start;flex-direction:column}.export-buttons{width:100%}.export-buttons button{flex:1}}@media(max-width:720px){.header{height:65px;padding:0 18px}.brand{font-size:22px}.privacy{font-size:11px;padding:6px 8px}.workspace{display:flex;flex-direction:column}.studio{order:0;padding:15px}.controls{order:1;max-height:none;border-right:0;padding:24px}.intro{display:none}.studio-top{margin-bottom:12px}.studio-top>.quiet{display:none}.view-tabs{width:100%}.view-tabs button{flex:1;font-size:12px;padding:10px 4px}.stage{height:380px;min-height:300px;border-radius:12px}.stage-label{top:15px;left:15px}.export-area{padding:17px;margin-top:13px}.export-area h2{font-size:16px}.export-buttons button{padding:12px 7px;font-size:12px}.notes{margin-bottom:0}footer{padding:15px 22px}.statusbar{font-size:11px}.controls section:first-of-type{border-top:0}section{padding-top:22px}.upload span:not(.upload-icon),.upload small{font-size:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.swatch.chosen{outline:2px solid #172132;outline-offset:3px}.swatch{cursor:pointer}.surface-editor{border:1px solid var(--line);border-radius:9px;padding:12px;margin:14px 0;background:#f8fafc}.surface-tabs{display:flex;border-bottom:1px solid var(--line);gap:15px;margin-bottom:12px}.surface-tabs button{border:0;background:none;padding:7px 0 11px;font-size:13px;color:#718098;font-weight:650}.surface-tabs button[aria-selected=true]{color:#172132;border-bottom:2px solid #009fc4}.selected-color{display:flex;align-items:center;gap:9px;font-size:14px}.selected-color>span{width:24px;height:24px;border-radius:5px;border:1px solid #0002}.surface-editor input[type=color]{width:100%;height:40px;margin-top:6px;border:1px solid var(--line);border-radius:7px;padding:3px}.change-row{display:flex;align-items:center;gap:8px;font-size:12px;padding:8px 0;border-bottom:1px solid #e2e8ef}.change-row>span:first-child{width:17px;height:17px;border:1px solid #0002;border-radius:4px;flex-shrink:0}#panel-changes>label:first-child{font-size:13px;color:#586578}#panel-changes>label:first-child span{float:right;color:#94a0af}#panel-changes>label:first-child input{margin-top:6px}
.settings-category{border-top:1px solid var(--line);padding:0;margin:0}.settings-category>summary{list-style:none;display:flex;align-items:center;gap:0;padding:18px 0;font-size:14px;font-weight:750;cursor:pointer}.settings-category>summary::-webkit-details-marker{display:none}.settings-category>summary::after{content:'+';margin-left:auto;font-size:21px;line-height:1;color:#7a8899;font-weight:400}.settings-category[open]>summary::after{content:'−'}.category-body{padding:0 0 16px}.settings-category:not([open]) .category-body{display:none}.controls .settings-category:first-of-type{border-top:0}.settings-category>summary:hover{color:#0084a5}.settings-category[open]>summary{padding-bottom:13px}
.category-icon{width:31px;height:31px;border-radius:8px;background:#edf2f7;color:#5b7089;display:grid;place-items:center;margin-right:10px;flex-shrink:0}.category-icon svg{width:19px;height:19px}.settings-category[open]>.summary,.settings-category[open]>summary{color:#123e4d}.settings-category[open] .category-icon{background:#e5f9fe;color:#0084a5}.settings-category{margin:7px 0;border:1px solid #e0e6ed;border-radius:11px;background:#fff}.settings-category>summary{padding:12px 13px;font-size:13px}.settings-category[open]>summary{padding-bottom:12px;border-bottom:1px solid #edf0f4}.category-body{padding:14px}.controls .settings-category:first-of-type{border-top:1px solid #e0e6ed}.controls{background:#f8fafc;padding:24px 15px}.intro{padding:0 9px}.height-intro{font-size:12px;color:#65768b;line-height:1.5}.preset-actions{display:flex;gap:7px;margin:12px 0}.preset-actions button{font-size:11px;padding:9px 7px;flex:1}.color-rows{display:flex;flex-direction:column;gap:7px}.color-row{display:grid;grid-template-columns:30px 1fr 78px;gap:8px;align-items:center;border:1px solid #e0e6ed;background:white;border-radius:8px;padding:9px}.color-row.selected{border-color:#00a1ca;box-shadow:0 0 0 1px #00a1ca22}.color-row input[type=color]{width:28px;height:30px;margin:0;padding:0;border:0;background:none}.color-row .color-description{font-size:12px;font-weight:700;color:#35465b;cursor:pointer}.color-row .color-description small{display:block;font-size:10px;font-weight:400;color:#8190a2;margin-top:3px}.color-row .height-cell input{font-size:13px;padding:6px;min-height:33px}.height-cell label{font-size:10px;color:#7a899b}.layer-settings{margin-top:14px;padding-top:12px;border-top:1px solid #dfe6ee}.layer-settings>label:first-child{font-size:12px}.layer-settings>label:first-child span{float:right;font-size:11px;color:#7c8da2}.print-plan{margin-top:13px;font-size:12px}.print-plan summary{cursor:pointer;font-weight:700;padding:8px 0}.surface-editor{padding:11px;margin-bottom:4px}.pocket-plan{background:#eef4fb;border:1px solid #d6e3f1;border-radius:8px;padding:11px;font-size:12px;line-height:1.6;margin:10px 0}.pocket-plan strong{display:block;color:#375373}.fit-advice{padding:11px;background:#fff6e8;border:1px solid #efdab9;border-radius:8px;margin:11px 0;font-size:12px}.fit-advice p{margin:0 0 9px}.fields[hidden],.fields label[hidden],.fit-advice[hidden]{display:none}.controls .fields{gap:9px}.category-body .fields label{font-size:12px}.pocket-badge{font-size:10px;border-radius:3px;background:#eafaff;padding:3px 5px}
/* Compact, readable workshop controls. */
.workspace{grid-template-columns:370px minmax(0,1fr)}
.settings-category>summary,.category-body .fields label,.colorlabel,.check,.full{font-size:14px}
.hint,.height-intro,.pocket-plan,.fit-advice,.color-row .color-description small,.height-cell label{font-size:12px}
.preset-actions button,.color-row .color-description,.color-row .height-cell input,.print-plan,.layer-settings>label:first-child{font-size:14px}
.setting-group{margin:0 0 17px;padding-bottom:15px;border-bottom:1px solid #e3e9ef}
.setting-group:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}
.setting-group-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:750;color:#344a62;margin-bottom:9px}
.setting-group-title svg{width:19px;height:19px;flex-shrink:0;color:#607c98}
.setting-group .label-row{margin-top:8px}.setting-group .fields{margin:10px 0 0}
.fields.one-column{grid-template-columns:1fr}.wide{grid-column:1/-1}
#embedded-fields[hidden]{display:none}.fields.setting-group{padding-bottom:15px}
.pocket-plan{margin-bottom:0}.pocket-plan strong{font-size:13px}
.palette{gap:9px}.palette-color{position:relative;display:flex;align-items:center;gap:4px;padding:4px;border:1px solid #dce3ec;border-radius:8px;background:white;font-size:12px;color:#65758b;cursor:pointer}
.palette-color input{width:30px;height:30px;padding:0;background:none;border:0;cursor:pointer}.palette-color span{padding-right:3px}.palette-hint{margin-top:5px}
.slider-number input[type=range]{padding:0;min-height:22px;display:block;margin:5px 0 0}.inactive{opacity:.5}
.setting-help{margin-top:13px;font-size:12px;color:#65768b;line-height:1.6}.setting-help summary{cursor:pointer;list-style:none;display:flex;gap:6px;align-items:center}.setting-help summary::before{content:'?';border:1px solid #a0afbf;border-radius:50%;width:16px;height:16px;display:grid;place-items:center;font-size:11px;line-height:1}.setting-help p{margin:7px 0 0}
.color-row{grid-template-columns:30px minmax(0,1fr) 88px;padding:8px;gap:7px}.surface-editor{padding:9px}.color-description small{line-height:1.4}
@media(max-width:900px){.workspace{grid-template-columns:330px minmax(0,1fr)}}
@media(max-width:720px){.workspace{display:flex;flex-direction:column}.color-row{grid-template-columns:32px minmax(0,1fr) 98px}.setting-group-title{font-size:14px}}

.feedback-action{display:block;margin-top:12px;font-size:14px;padding:10px 16px;min-height:44px;max-width:100%;white-space:normal}

.svg-upload{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;margin-top:10px;padding:11px 14px;cursor:pointer;font-size:14px;font-weight:700;border:1px solid var(--line);border-radius:10px}.svg-upload svg{width:22px;height:22px;flex-shrink:0}.svg-upload-hint{margin:7px 0 12px}

.color-selection{position:absolute;bottom:14px;left:14px;right:14px;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;background:#fff;border:1px solid #cbe7ee;border-radius:10px;padding:10px 12px;box-shadow:0 4px 16px #17213218;font-size:14px;z-index:2}.color-selection[hidden]{display:none}.selection-message{display:flex;align-items:center;gap:9px;font-weight:650}#selected-swatch{width:23px;height:23px;border:1px solid #778291;border-radius:5px;flex-shrink:0}.color-selection button{font-size:14px;min-height:44px;padding:9px 13px}.has-color-selection .dimension{bottom:108px}.color-highlight{animation:color-highlight 1.8s ease-out}@keyframes color-highlight{0%,35%{background:#e5f9fe;box-shadow:0 0 0 3px #00a1ca}100%{background:#fff;box-shadow:none}}@media(prefers-reduced-motion:reduce){.color-highlight{animation:none;background:#e5f9fe}}

#clear-color-selection{margin-left:auto;min-width:44px;font-size:22px;line-height:1;padding:8px}.has-color-selection .dimension{bottom:140px}

.color-choice-dialog{width:min(420px,calc(100vw - 28px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--line);border-radius:16px;padding:20px;color:var(--ink);box-shadow:0 16px 60px #17213240}.color-choice-dialog::backdrop{background:#17213266}.color-choice-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.color-choice-heading h2{margin:0;font-size:20px}.color-choice-heading button{font-size:24px;min-width:44px;min-height:44px;padding:6px}.color-choice-dialog>p{font-size:14px}.existing-model-colors{display:grid;grid-template-columns:1fr 1fr;gap:8px}.model-color-choice{display:flex;align-items:center;gap:9px;min-height:58px;padding:10px;text-align:left;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:14px}.model-color-choice:hover{background:#eefaff;border-color:#00a1ca}.model-color-swatch{width:30px;height:30px;flex-shrink:0;border:1px solid #8090a0;border-radius:5px}.model-color-choice small{display:block;font-size:12px;color:#697487;margin-top:4px}.custom-model-color{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;font-weight:650;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.custom-model-color input{width:50px;height:44px;margin:0}.has-color-selection .dimension{bottom:195px}@media(max-width:380px){.existing-model-colors{grid-template-columns:1fr}}

.brand-logo{width:52px;height:52px;object-fit:contain;flex-shrink:0}.branddot{color:#00bce5}.mount-options{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mount-options legend{font-size:14px;font-weight:650;margin-bottom:10px}.mount-choice{position:relative;cursor:pointer}.mount-choice input{position:absolute;opacity:0;width:1px;height:1px}.mount-choice>span{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:80px;padding:8px 3px;gap:7px;border:1px solid var(--line);border-radius:9px;background:#fff}.mount-choice strong{font-size:12px}.mount-choice small{font-size:11px;line-height:1.4;color:#697487}.mount-choice input:checked+span{border-color:#00a1ca;background:#eafaff;box-shadow:0 0 0 1px #00a1ca}.mount-choice input:focus-visible+span{outline:3px solid #008cae;outline-offset:2px}#pocket-details[hidden]{display:none}select[hidden]{display:none}@media(max-width:700px){.brand-logo{width:44px;height:44px}.brand{font-size:24px}}

input[type=number][aria-invalid="true"]{border-color:#b94736;box-shadow:0 0 0 2px #b9473620;}
.source-tabs{display:flex;gap:6px;padding:5px;background:#e8edf2;border-radius:12px;margin-bottom:18px}.source-tabs button{flex:1;background:transparent;border:0;padding:11px;border-radius:9px;font-weight:700}.source-tabs button.active{background:#fff;box-shadow:0 2px 6px #18304712}.text-label{display:block;font-weight:700;margin-bottom:8px}#magnet-text{width:100%;box-sizing:border-box;padding:14px;border:1px solid #d6dce2;border-radius:12px;font:600 24px/1.3 system-ui;resize:vertical;min-height:110px}.text-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.text-options label{font-size:12px}.text-options select,.text-options input{width:100%;box-sizing:border-box;margin-top:6px}.text-options label:first-child{grid-column:1/-1}.font-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.font-card{min-width:0;padding:12px 5px;border:1px solid #dde3e8;border-radius:10px;background:#fff;overflow:hidden;cursor:pointer}.font-card.selected{border-color:#009fc4;background:#eafaff;box-shadow:0 0 0 1px #009fc4}.font-sample{display:block;font-size:23px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.font-card small{display:block;font:500 10px system-ui;color:#617080;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.font-dialog{width:min(760px,calc(100vw - 40px));box-sizing:border-box;max-height:85dvh;padding:24px;border:1px solid #d7dfe7;border-radius:20px;overflow-y:auto}.font-dialog::backdrop{background:#13263980;backdrop-filter:blur(3px)}.font-dialog-head{display:flex;justify-content:space-between;align-items:start;gap:15px}.font-dialog h2{margin:8px 0 20px;font-size:23px}.font-dialog-head button{border:0;background:#edf1f5;border-radius:50%;font-size:24px;width:36px;height:36px}.font-dialog .font-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.font-dialog #font-search{width:100%;box-sizing:border-box;margin-bottom:10px}#apply-text{margin-top:12px}#text-feedback.error{color:#a53131}[hidden]{display:none!important}@media(max-width:500px){.font-dialog{padding:18px}.font-dialog .font-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

#export-3mf{background:#00bce5;border-color:#00bce5;color:#082b3b}#export-3mf:hover{background:#00afd5;border-color:#00afd5}
