.tool-feedback-band{background:var(--surface)}.map-maker-workspace-section+.tool-feedback-band{border-block:1px solid var(--line)}.tool-feedback-strip{align-items:center;gap:16px;padding-block:24px;display:flex}.tool-feedback-icon{color:var(--accent);flex-shrink:0;width:20px;height:20px}.tool-feedback-copy{flex:1;gap:4px;min-width:0;display:grid}.tool-feedback-link{flex-shrink:0}@media (max-width:640px){.tool-feedback-strip{grid-template-columns:20px minmax(0,1fr);align-items:start;gap:12px;display:grid}.tool-feedback-icon{margin-top:2px}.tool-feedback-link{grid-column:2;justify-self:start}}.tool-workbench-section{--tool-workbench-frame-gap:12px;--tool-workbench-max-width:1420px;--tool-workbench-height:min(1120px, max(620px, calc(100dvh - var(--site-header-height) - 84px)));--tool-stage-main-min-height:max(320px, min(420px, calc(var(--tool-workbench-height) - 260px)));--tool-viewer-min-height:max(360px, min(520px, calc(var(--tool-workbench-height) - 300px)));min-height:calc(var(--tool-workbench-height) + (var(--tool-workbench-frame-gap) * 2));padding:var(--tool-workbench-frame-gap) 0 calc(var(--tool-workbench-frame-gap) + 8px)}.tool-workbench-section.is-after-compact-hero{padding-top:var(--tool-workbench-frame-gap)}.tool-workbench-wrap{max-width:none;padding-inline:clamp(12px,2vw,32px)}.workbench-breadcrumb-slot{max-width:var(--maxw);padding-bottom:16px;justify-content:flex-start;width:100%;margin-inline:auto;padding-inline:32px;display:flex}.workbench-breadcrumb-slot .breadcrumbs{width:fit-content;max-width:100%;margin-bottom:0}.generator-workbench-band{padding:16px 0 24px}.generator-workbench{background:var(--line-2);border:1px solid var(--line-2);height:var(--tool-workbench-height,calc(100dvh - var(--site-header-height) - 84px));border-radius:8px;grid-template-columns:minmax(300px,348px) minmax(0,1fr);gap:1px;width:100%;min-height:0;margin-inline:auto;display:grid;overflow:hidden}.generator-controls,.generator-preview{background:var(--surface);min-width:0;min-height:0}.generator-controls{scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;flex-direction:column;gap:16px;padding:18px 16px;display:flex;overflow-y:auto}.generator-controls::-webkit-scrollbar{width:8px}.generator-controls::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.generator-panel-head,.generator-preview-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.generator-panel-head{border-bottom:1px solid var(--line);padding-bottom:18px}.generator-panel-head h2,.generator-preview-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin-top:6px;font-size:22px;font-weight:600}.generator-preview-head h2{letter-spacing:0;font-size:clamp(24px,3vw,36px);font-weight:700}.generator-control-list{gap:14px;padding:0 6px 4px 0;display:grid}.generator-control{gap:8px;display:grid}.generator-control-head{color:var(--text);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:11px;display:flex}.generator-control-head strong,.generator-control-head label{font-weight:500}.generator-control-head span{color:var(--text-3)}.generator-control small,.generator-toggle-control small{color:var(--text-3);font-size:11.5px;line-height:1.45;display:block}.generator-number-row{grid-template-columns:minmax(0,1fr) 86px;align-items:center;gap:10px;display:grid}.generator-number-row input[type=range]{accent-color:var(--accent);width:100%}.generator-control select{background:var(--bg);color:var(--text);font-family:var(--font-mono);border:1px solid var(--line-2);border-radius:var(--radius);outline:none;width:100%;height:36px;padding:0 9px;font-size:12px}.generator-number-field{height:52px}.generator-number-field .number-stepper-input{padding:0 10px;font-size:12px}.generator-toggle-control{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding-top:18px;display:flex}.generator-toggle-control strong{font-family:var(--font-display);font-size:14px;font-weight:600;display:block}.generator-toggle-control input{accent-color:var(--accent);flex-shrink:0;width:20px;height:20px}.generator-preview{scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;padding:20px;display:grid;overflow-y:auto}.generator-preview::-webkit-scrollbar{width:8px}.generator-preview::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.generator-preview-head{border-bottom:1px solid var(--line);padding-bottom:18px}.generator-preview-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.generator-viewport{background:radial-gradient(ellipse 92% 68% at 50% 10%, var(--viewer-glow) 0%, var(--viewer-glow-mid) 42%, transparent 78%), linear-gradient(180deg, var(--surface), var(--bg));border:1px solid var(--line);border-radius:8px;min-height:0;margin-top:18px;position:relative;overflow:hidden}.tool-viewer-mount,.tool-viewer-canvas{background:var(--bg);width:100%;height:100%;display:block;position:relative}.tool-orientation-gizmo{pointer-events:none;z-index:4;width:96px;height:96px;position:absolute;top:14px;right:14px;overflow:visible;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important}.tool-orientation-gizmo svg{box-shadow:none;background:0 0;border:0;width:100%;height:100%;display:block;overflow:visible}.tool-orientation-gizmo-line{stroke-linecap:round}.tool-orientation-gizmo-line.is-negative{stroke-dasharray:2.5 3.5}.tool-orientation-gizmo-center{fill:var(--text-2);opacity:.85}.tool-orientation-gizmo-label{dominant-baseline:middle;font-family:var(--font-mono);text-anchor:middle;font-size:10px;font-weight:800}@media (max-width:640px){.tool-orientation-gizmo{width:78px;height:78px;top:10px;right:10px}}.generator-viewer-mount,.generator-canvas{background:var(--bg);width:100%;height:100%;position:absolute;inset:0}.generator-preview-empty{color:var(--text-2);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:32px;display:flex;position:absolute;inset:0}.generator-preview-empty strong{font-family:var(--font-display);margin-top:18px;font-size:19px;font-weight:600}.generator-preview-empty p{color:var(--text-3);max-width:36ch;margin-top:6px;font-size:13px}.generator-preview-cube{border:1px solid var(--accent);width:48px;height:48px;display:block;position:relative;transform:rotate(30deg)skew(-6deg,-6deg)}.generator-preview-cube:before,.generator-preview-cube:after{border:1px solid var(--line-2);content:"";position:absolute;inset:8px}.generator-preview-cube:after{border-color:var(--accent-2);inset:16px}.generator-stale-note{background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid var(--accent-2);border-radius:var(--radius);color:var(--accent-2);font-family:var(--font-mono);white-space:nowrap;padding:8px 12px;font-size:11px;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.generator-status{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-3);justify-content:space-between;align-items:center;gap:18px;min-height:56px;margin-top:14px;padding:10px;font-size:12px;display:flex}.generator-status.is-error{color:var(--accent-2)}.generator-model-notes{max-width:880px}.generator-model-notes ul{gap:10px;margin-top:18px;display:grid}.generator-model-notes li{color:var(--text-2);font-size:14px;line-height:1.6;list-style-position:inside}.tool-workbench-section.model-splitter-workspace-section{--tool-workbench-height:max(0px, calc(100dvh - var(--site-header-height) - var(--workspace-bottom-ad-height,0px) - 1px));--tool-stage-main-min-height:0px;--tool-viewer-min-height:0px;--tool-workbench-max-width:none;min-height:0;padding:0}.model-splitter-workspace-section>.tool-workbench-wrap{padding:0}.model-splitter-workspace-section .model-splitter-workbench{border:0;border-radius:0;max-width:none}.model-splitter-workspace-section .model-splitter-workbench .three-mf-stage-head{align-items:center;gap:12px;padding-bottom:8px;display:flex}.model-splitter-workspace-section .model-splitter-workbench .three-mf-stage-head>div{min-width:0;display:block}.model-splitter-workspace-section .model-splitter-workbench .three-mf-stage-head h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:18px;overflow:hidden}.model-splitter-workspace-section .model-splitter-workbench:not(.region-editor) .three-mf-stage-head>div:first-child>span,.model-splitter-workspace-section .model-splitter-workbench .three-mf-local-badge{display:none}.model-splitter-drop-zone{min-width:0;position:relative}.model-splitter-drop-overlay{z-index:30;border:2px dashed var(--accent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 94%, transparent);color:var(--accent);pointer-events:none;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:absolute;inset:12px}.model-splitter-drop-overlay strong{font-family:var(--font-display);font-size:22px;font-weight:700}.model-splitter-drop-overlay span{font-family:var(--font-body);color:var(--text-2);font-size:13px}.model-splitter-drop-error{z-index:31;background:var(--surface);border:1px solid var(--line-2);border-left:3px solid var(--accent-2);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:13px;display:flex;position:absolute;bottom:16px;left:16px;right:16px}.compressor-controls{flex-direction:column;gap:16px;display:flex}.compressor-controls p{margin:0}.compressor-controls .compressor-hint{color:var(--text-3);font-size:13px;line-height:1.55}.compressor-controls fieldset{border:0;flex-direction:column;gap:14px;margin:0;padding:0;display:flex}.compressor-controls input[type=range]{width:100%;accent-color:var(--accent)}.compressor-controls .btn{justify-content:center;width:100%}.compressor-error{border-left:3px solid #c55435;padding:10px;font-size:13px}.compressor-result{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:12px;padding:16px 0;display:grid}.compressor-result h3{font-family:var(--font-display);margin:0;font-size:18px;font-weight:700;line-height:1.55}.compressor-result p,.compressor-status,.compressor-next{font-size:13px;line-height:1.6}.model-compressor-workbench .three-mf-stage-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.model-compressor-workbench .three-mf-stage-head h2{overflow-wrap:anywhere}.model-compressor-workbench .three-mf-stage-head .compressor-view-toggle{flex-shrink:0;display:flex}.compressor-view-toggle button{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;padding:8px 12px}.compressor-view-toggle button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.compressor-tolerance-figure{margin:24px 0}.compressor-tolerance-legend{color:var(--text-2);flex-wrap:wrap;gap:12px 24px;margin-bottom:16px;font-size:13px;display:flex}.compressor-tolerance-legend span{align-items:center;gap:8px;display:inline-flex}.compressor-tolerance-legend i{width:24px;display:inline-block}.compressor-tolerance-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.compressor-tolerance-example{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);overflow:hidden}.compressor-tolerance-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;padding:14px 14px 0;display:flex}.article-body .compressor-tolerance-title h3{font-family:var(--font-display);margin:0;font-size:18px;font-weight:700;line-height:1.55}.compressor-tolerance-title>span{color:var(--accent);background:var(--accent-soft);border-radius:var(--radius);padding:2px 6px;font-size:11px}.compressor-tolerance-example svg{width:100%;height:auto;display:block}.compressor-tolerance-count{flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:0 14px 14px;display:flex}.compressor-tolerance-count strong{font-family:var(--font-display);font-size:18px;font-weight:700}.compressor-tolerance-count span{color:var(--text-3);font-size:13px}.article-body .compressor-tolerance-figure figcaption{color:var(--text-2);margin-top:14px;font-size:13px;line-height:1.55}@media (max-width:760px){.compressor-tolerance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:380px){.compressor-tolerance-grid{grid-template-columns:1fr}}.model-compressor-workbench .three-mf-stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:980px){.model-compressor-workbench .three-mf-viewer-shell{min-height:55dvh}.model-compressor-workbench .three-mf-stage-head{flex-wrap:wrap}.model-compressor-workbench .three-mf-stat-strip{grid-template-columns:1fr}}@media (min-width:981px){.model-splitter-workspace-section .three-mf-splitter-stage{overflow:hidden}}.article-body .mesh-quality-comparison-graphic{width:100%;height:auto;margin-top:22px;display:block}.openscad-code-example{--code-bg:#fff;--code-header:#f7f9fb;--code-border:#d7dfe7;--code-text:#344457;--code-muted:#69798c;--code-keyword:#8136a6;--code-path:#20724f;--code-function:#1b5fae;--code-number:#a44c12;--code-button:#edf2f7;--code-button-border:#d6dfe9;--code-button-text:#163a5e;background:var(--code-bg);border:1px solid var(--code-border);border-radius:10px;margin-block:20px;overflow:hidden}[data-theme=dark] .openscad-code-example{--code-bg:#151b24;--code-header:#1d2632;--code-border:#354252;--code-text:#dce5ee;--code-muted:#93a1b3;--code-keyword:#c4a4ef;--code-path:#98cfac;--code-function:#8bc7ed;--code-number:#efbd83;--code-button:#f6b94c;--code-button-border:#f6b94c;--code-button-text:#202024;box-shadow:0 5px 14px #00000024}.openscad-example-header{background:var(--code-header);border-bottom:1px solid var(--code-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}.openscad-example-filename{color:var(--code-muted);font-family:var(--font-mono);align-items:center;gap:8px;font-size:12px;display:inline-flex}.openscad-example-filename svg{width:16px;height:16px}.openscad-example-run{background:var(--code-button);border:1px solid var(--code-button-border);color:var(--code-button-text);cursor:pointer;border-radius:5px;align-items:center;gap:8px;min-height:36px;padding:8px 12px;font-size:12px;font-weight:600;display:inline-flex}.openscad-example-run:hover{filter:brightness(.94)}.openscad-example-run svg{width:13px;height:13px}.openscad-playground-workbench{scroll-margin-top:80px}.openscad-code-example pre{color:var(--code-text);tab-size:4;max-width:100%;margin:0;padding:18px 20px 20px;overflow-x:auto}.openscad-code-example pre code{font-family:var(--font-mono);white-space:pre;font-size:13px;line-height:1.75;display:block}.openscad-example-line:before{color:var(--code-muted);content:attr(data-line);text-align:right;-webkit-user-select:none;user-select:none;width:16px;margin-right:16px;font-size:11px;display:inline-block}.openscad-code-example .openscad-token-keyword{color:var(--code-keyword)}.openscad-code-example .openscad-token-path{color:var(--code-path)}.openscad-code-example .openscad-token-function{color:var(--code-function)}.openscad-code-example .openscad-token-number{color:var(--code-number)}.openscad-code-example .openscad-token-comment{color:var(--code-muted)}@media (max-width:480px){.openscad-example-header{gap:8px;padding:10px 12px}.openscad-example-run{min-height:44px}.openscad-code-example pre{padding-inline:12px}.openscad-example-line:before{margin-right:10px}}.svg-converter-workspace{grid-template-columns:1fr;gap:18px;display:grid}.svg-converter-card,.svg-converter-preview,.svg-converter-output{min-width:0}.svg-converter-result-stack{gap:18px;min-width:0;display:grid}.svg-converter-privacy{color:var(--ok);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;display:inline-flex}.svg-converter-privacy svg{width:15px;height:15px}.svg-converter-body{gap:18px}@media (min-width:900px){.svg-converter-card .svg-converter-body{grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);align-items:start;display:grid}.svg-converter-card .calc-note,.svg-converter-card .svg-converter-alert,.svg-converter-card .svg-converter-submit{grid-column:1/-1}.svg-converter-card .svg-upload-zone{height:100%;min-height:184px}}.svg-upload-zone{background:var(--bg);border:1px dashed var(--line-2);cursor:pointer;border-radius:8px;align-items:center;gap:14px;min-height:92px;padding:18px;transition:all .15s;display:flex}.svg-upload-zone:hover{border-color:var(--accent)}.svg-upload-zone svg{color:var(--accent);flex:none;width:26px;height:26px}.svg-upload-zone span{gap:4px;min-width:0;display:grid}.svg-upload-zone strong{font-family:var(--font-display);font-size:18px;font-weight:600}.svg-upload-zone small{color:var(--text-3);overflow-wrap:anywhere}.svg-upload-zone input{opacity:0;width:1px;height:1px;position:absolute}.svg-converter-options{grid-template-columns:repeat(2,minmax(0,1fr))}.svg-checkbox-field{border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-2);align-items:center;gap:10px;padding:12px;font-size:13px;line-height:1.4;display:flex}.svg-checkbox-field input{accent-color:var(--accent);width:16px;height:16px}.svg-converter-alert{background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius);color:var(--text-2);align-items:flex-start;gap:10px;padding:12px;font-size:13px;line-height:1.5;display:flex}.svg-converter-alert svg{color:var(--accent);flex:none;width:16px;height:16px;margin-top:2px}.svg-converter-alert.is-error{background:#e4602a1a;border-color:#e4602a3d}.svg-converter-alert.is-error svg{color:var(--accent-2)}.svg-converter-alert p+p{margin-top:6px}.svg-converter-submit{width:100%}.svg-output-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.svg-preview-body{gap:12px;padding:18px;display:grid}.svg-preview-viewport{border:1px solid var(--line-2);border-radius:var(--radius);min-height:var(--tool-viewer-min-height,520px)}.svg-preview-status{padding-top:12px}.svg-output-body{gap:14px;padding:18px;display:grid}.svg-stats-grid{grid-template-columns:repeat(4,1fr);gap:1px;display:grid;overflow:hidden}.svg-stats-grid span{background:var(--bg);border:1px solid var(--line);color:var(--text-3);font-family:var(--font-mono);text-transform:uppercase;gap:4px;padding:10px;font-size:11px;display:grid}.svg-stats-grid b{color:var(--text);font-family:var(--font-display);font-size:20px;font-weight:600}.svg-code-output{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);min-height:var(--tool-viewer-min-height,520px);resize:vertical;tab-size:2;outline:none;width:100%;padding:14px;font-size:12px;line-height:1.55}.svg-code-output:focus{border-color:var(--accent)}.svg-output-empty{color:var(--text-2);min-height:var(--tool-viewer-min-height,520px);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.svg-output-empty svg{color:var(--accent);width:34px;height:34px}.svg-output-empty strong{font-family:var(--font-display);margin-top:14px;font-size:20px;font-weight:600}.svg-output-empty p{color:var(--text-3);max-width:40ch;margin-top:6px;font-size:13px}.three-mf-workspace{gap:18px;display:grid}.three-mf-control-card,.three-mf-report-card,.three-mf-results-card{min-width:0}.three-mf-control-body,.three-mf-report-body,.three-mf-results-body{gap:18px;padding:18px;display:grid}.three-mf-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.three-mf-stats span,.three-mf-model-path,.three-mf-report-panel li,.three-mf-result-item{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius)}.three-mf-stats span{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;gap:5px;padding:12px;font-size:11px;display:grid}.three-mf-stats b{color:var(--text);font-family:var(--font-display);letter-spacing:0;text-transform:none;font-size:20px;font-weight:600}.three-mf-mode-list{gap:10px;display:grid}.three-mf-mode{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-2);cursor:pointer;text-align:left;gap:5px;padding:13px;transition:all .15s;display:grid}.three-mf-mode:hover:not(:disabled),.three-mf-mode.is-active{border-color:var(--accent);color:var(--text)}.three-mf-mode:disabled{cursor:not-allowed;opacity:.45}.three-mf-mode span{font-family:var(--font-display);font-size:16px;font-weight:600}.three-mf-mode small{color:var(--text-3);line-height:1.45}.three-mf-warning-list,.three-mf-actions,.three-mf-result-list{gap:10px;display:grid}.three-mf-actions{grid-template-columns:1fr 1.2fr}.three-mf-model-path{align-items:center;gap:12px;padding:14px;display:flex}.three-mf-model-path svg{color:var(--accent);width:22px;height:22px}.three-mf-model-path span{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:11px;display:grid}.three-mf-model-path b{color:var(--text);font-family:var(--font-mono);letter-spacing:0;overflow-wrap:anywhere;text-transform:none;font-size:13px}.three-mf-report-grid{gap:14px;display:grid}.three-mf-report-panel{gap:10px;display:grid}.three-mf-report-panel h3{color:var(--text);font-family:var(--font-display);align-items:center;gap:8px;font-size:18px;font-weight:600;display:flex}.three-mf-report-panel h3 svg{color:var(--accent);width:18px;height:18px}.three-mf-report-panel ul{gap:8px;padding:0;list-style:none;display:grid}.three-mf-report-panel li{gap:4px;padding:11px;display:grid}.three-mf-report-panel li span,.three-mf-result-item strong{color:var(--text);font-family:var(--font-display);font-weight:600}.three-mf-report-panel li small,.three-mf-report-panel p,.three-mf-result-item span,.three-mf-result-item small,.three-mf-result-item em,.three-mf-empty-report p,.three-mf-empty-results p{color:var(--text-3);line-height:1.45}.three-mf-result-item{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;display:grid}.three-mf-result-item>div{gap:4px;min-width:0;display:grid}.three-mf-result-item small{font-family:var(--font-mono);overflow-wrap:anywhere}.three-mf-result-item em{font-size:12px;font-style:normal}.three-mf-empty-report,.three-mf-empty-results{color:var(--text-2);text-align:center;place-items:center;min-height:240px;padding:20px;display:grid}.three-mf-empty-report strong,.three-mf-empty-results strong{color:var(--text);font-family:var(--font-display);margin-top:10px;font-size:20px;font-weight:600}.three-mf-empty-results svg{color:var(--accent);width:34px;height:34px}@media (min-width:1060px){.three-mf-workspace{grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr)}.three-mf-results-card{grid-column:1/-1}.three-mf-report-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:700px){.three-mf-stats,.three-mf-actions,.three-mf-result-item{grid-template-columns:1fr}.three-mf-result-item .btn{width:100%}}.three-mf-splitter-workbench{background:var(--line-2);border:1px solid var(--line-2);height:var(--tool-workbench-height,calc(100dvh - var(--site-header-height) - 84px));border-radius:8px;grid-template-columns:minmax(300px,348px) minmax(0,1fr);gap:1px;width:100%;min-height:0;margin-inline:auto;display:grid;overflow:hidden}.three-mf-splitter-rail,.three-mf-splitter-stage{background:var(--surface);min-width:0;min-height:0}.three-mf-splitter-rail{background:linear-gradient(var(--surface) 24%, transparent) top, linear-gradient(transparent, var(--surface) 72%) bottom, linear-gradient(to bottom, color-mix(in srgb, var(--text) 16%, transparent), transparent) top, linear-gradient(to top, color-mix(in srgb, var(--text) 20%, transparent), transparent) bottom, var(--surface);scrollbar-gutter:stable;scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;background-repeat:no-repeat;background-size:100% 34px,100% 54px,100% 12px,100% 24px,100% 100%;background-attachment:local,local,scroll,scroll,scroll;flex-direction:column;gap:16px;padding:18px 16px;display:flex;overflow-y:auto;container:splitter-rail/inline-size}.three-mf-splitter-rail::-webkit-scrollbar{width:8px}.three-mf-splitter-rail::-webkit-scrollbar-track{background:color-mix(in srgb, var(--line) 55%, transparent)}.three-mf-splitter-rail::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.three-mf-toolmark{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding-bottom:14px;display:flex}.three-mf-toolmark strong{color:var(--text);font-family:var(--font-display);font-size:18px;font-weight:700}.three-mf-toolmark-icon{background:linear-gradient(140deg, var(--accent) 0 48%, transparent 48%), linear-gradient(320deg, var(--accent-2) 0 50%, var(--surface-2) 50%);border:1px solid var(--line-2);border-radius:6px;width:28px;height:28px;display:block;transform:rotate(30deg)skew(-6deg,-6deg)}.three-mf-upload-dropzone{background:var(--bg);border:1px dashed var(--line-2);border-radius:var(--radius);cursor:pointer;align-items:center;gap:14px;min-height:112px;padding:18px;transition:all .15s;display:flex;position:relative}.three-mf-upload-dropzone:hover{border-color:var(--accent)}.three-mf-upload-dropzone.is-loading{border-color:var(--accent);cursor:progress}.three-mf-upload-dropzone svg{color:var(--accent);flex:none;width:28px;height:28px}.three-mf-upload-copy{gap:5px;width:100%;min-width:0;display:grid}.three-mf-upload-dropzone>span{gap:5px;min-width:0;display:grid}.three-mf-upload-dropzone strong{color:var(--text);font-family:var(--font-display);font-size:18px;font-weight:600;line-height:1.15}.three-mf-upload-dropzone small,.three-mf-control-help{color:var(--text-3);overflow-wrap:anywhere;font-size:12px;line-height:1.35;display:block}.three-mf-upload-dropzone input{opacity:0;width:1px;height:1px;position:absolute}.stl-upload-dropzone{cursor:default;align-items:stretch;gap:0;padding:0;overflow:hidden}.stl-upload-select{cursor:pointer;flex:auto;align-items:center;gap:14px;min-width:0;padding:18px;display:flex;position:relative}.stl-upload-select>span{gap:5px;min-width:0;display:grid}.stl-upload-clear{border:0;border-left:1px solid var(--line-2);color:#ff4f68;cursor:pointer;background:0 0;flex:0 0 54px;justify-content:center;align-self:stretch;align-items:center;transition:all .15s;display:grid}.stl-upload-clear:hover{background:#ff4f681a}.stl-upload-clear:focus-visible{outline-offset:-3px;outline:2px solid #ff4f6873}.stl-upload-clear svg{color:currentColor;stroke-width:1.8px;width:34px;height:34px}.three-mf-upload-progress,.three-mf-loading-progress{background:color-mix(in srgb, var(--line-2) 72%, transparent);border-radius:999px;width:100%;height:6px;display:block;overflow:hidden}.three-mf-upload-progress>span,.three-mf-loading-progress>span{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:inherit;height:100%;transition:width .2s;display:block}.three-mf-rail-section{border-top:1px solid var(--line);gap:12px;padding-top:14px;display:grid}.three-mf-section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.three-mf-section-head h2,.three-mf-section-head h3{color:var(--text);font-family:var(--font-display);letter-spacing:0;font-size:15px;font-weight:700}.three-mf-subsection-head h3{color:var(--text-2);font-size:13px}.three-mf-section-head>span{color:var(--text-3);font-family:var(--font-mono);font-size:11px}.three-mf-section-head button{color:var(--text-3);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;transition:all .15s}.three-mf-section-head button:hover:not(:disabled){color:var(--accent)}.three-mf-section-head button:disabled{cursor:default;opacity:.45}.mesh-quality-presets{gap:8px;display:grid}.mesh-quality-preset{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-2);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:58px;padding:10px 11px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.mesh-quality-preset:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 48%, var(--line-2))}.mesh-quality-preset:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.mesh-quality-preset.is-active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 66%, var(--line-2))}.mesh-quality-preset:disabled{cursor:default;opacity:.58}.mesh-quality-preset-copy{gap:3px;display:grid}.mesh-quality-preset-copy strong{color:var(--text);font-size:13px;font-weight:700}.mesh-quality-preset-copy small,.mesh-quality-help{color:var(--text-3);font-size:11px;line-height:1.4}.mesh-quality-preset-value{color:var(--text-3);font-family:var(--font-mono);flex:none;font-size:10px}.mesh-quality-preset.is-active .mesh-quality-preset-value,.mesh-quality-preset.is-active .mesh-quality-preset-copy strong{color:var(--accent)}.mesh-quality-help{margin:-2px 1px 0}.stl-scale-suggestion{background:color-mix(in srgb, var(--warn) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--warn) 42%, var(--line));border-radius:var(--radius);color:var(--text-2);align-items:flex-start;gap:9px;padding:11px;display:flex}.stl-scale-suggestion>svg{color:var(--warn);flex:none;width:17px;height:17px;margin-top:1px}.stl-scale-suggestion>div{gap:6px;min-width:0;display:grid}.stl-scale-suggestion strong{color:var(--text);font-size:12px}.stl-scale-suggestion p{color:var(--text-3);margin:0;font-size:11px;line-height:1.45}.stl-scale-suggestion-actions{grid-template-columns:1fr;gap:7px;display:grid}.stl-scale-suggestion-actions .btn{justify-content:center;width:100%;min-height:40px;padding:8px 10px}.three-mf-selection-empty,.three-mf-output-empty{border:1px dashed var(--line);border-radius:var(--radius);color:var(--text-3);text-align:center;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:12px;font-size:13px;display:flex}.three-mf-selection-empty svg{color:var(--accent);width:16px;height:16px}.three-mf-output-list,.three-mf-warning-stack{gap:9px;display:grid}.three-mf-region-list{scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;gap:8px;max-height:240px;padding-right:2px;display:grid;overflow-y:auto}.three-mf-region-list::-webkit-scrollbar{width:8px}.three-mf-region-list::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.three-mf-region-list button{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);cursor:pointer;text-align:left;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:10px;min-height:46px;padding:9px 10px;transition:all .15s;display:grid}.three-mf-region-list button:hover:not(:disabled),.three-mf-region-list button:focus-visible{border-color:var(--accent);outline:none}.three-mf-region-list button.is-selected{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 38%, transparent)}.three-mf-region-list button:disabled{cursor:default;opacity:.54}.three-mf-color-chip{border:1px solid color-mix(in srgb, var(--text) 32%, transparent);border-radius:999px;width:18px;height:18px}.three-mf-region-list button>span:not(.three-mf-color-chip){gap:3px;min-width:0;display:grid}.three-mf-region-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.three-mf-region-list small{color:var(--text-3);font-size:11px;line-height:1.25}.three-mf-region-status{color:var(--accent);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:10px}.three-mf-viewer-region-list button{grid-template-columns:18px minmax(0,1fr)}.three-mf-viewer-region-list button.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 42%, transparent)}.three-mf-viewer-region-list button>span:not(.three-mf-color-chip){border:0;border-radius:0;gap:3px;width:auto;min-width:0;height:auto;display:grid}.three-mf-viewer-region-list small{color:var(--text-3);font-size:11px;line-height:1.25}.three-mf-field{gap:7px;display:grid}.three-mf-field label,.three-mf-field>span{color:var(--text);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.three-mf-field select,.three-mf-field input:not(.number-stepper-input){background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);outline:none;width:100%;height:38px;padding:0 10px;font-size:13px}.three-mf-field select:focus,.three-mf-field input:not(.number-stepper-input):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.three-mf-field .inputwrap.number-stepper-field{height:38px}.three-mf-field .inputwrap .number-stepper-input{padding:0 10px;font-size:13px}.three-mf-field .inputwrap .number-stepper-buttons button{min-height:0}.three-mf-segmented{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.three-mf-segmented button{color:var(--text-2);cursor:pointer;background:0 0;border:0;height:38px;padding:0 8px;font-size:13px;transition:all .15s}.three-mf-segmented button+button{border-left:1px solid var(--line-2)}.three-mf-segmented button.is-active{background:var(--accent-soft);color:var(--accent)}.three-mf-mode-summary{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);gap:10px;padding:11px;display:grid}.three-mf-mode-summary p{color:var(--text-2);margin:0;font-size:12px;line-height:1.45}.three-mf-mode-output-list{scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;gap:7px;max-height:188px;padding-right:2px;display:grid;overflow-y:auto}.three-mf-mode-output-list::-webkit-scrollbar{width:8px}.three-mf-mode-output-list::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.three-mf-mode-output-list article{border-top:1px solid var(--line);gap:3px;min-width:0;padding-top:7px;display:grid}.three-mf-mode-output-list strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.three-mf-mode-output-list span{color:var(--text-3);font-size:11px}.three-mf-mode-panel{gap:10px;display:grid}.three-mf-action-pair{grid-template-columns:.82fr 1.18fr;gap:10px;padding-top:2px;display:grid}.three-mf-action-pair .btn{width:100%}.three-mf-wide-command{justify-content:center;width:100%;min-height:38px}.three-mf-cut-controls{gap:12px;display:grid}.three-mf-cut-status{background:color-mix(in srgb, var(--accent) 11%, transparent);border:1px solid color-mix(in srgb, var(--accent) 34%, var(--line));border-radius:var(--radius);color:var(--text-2);margin:0;padding:9px 10px;font-size:12px;line-height:1.45}.three-mf-axis-control{grid-template-columns:repeat(3,minmax(0,1fr))}.three-mf-axis-control button+button{border-left:1px solid var(--line-2)}.three-mf-cut-position-head{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.three-mf-cut-position-head button{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-2);cursor:pointer;flex:none;align-items:center;gap:6px;height:32px;padding:0 10px;font-size:11px;transition:all .15s;display:inline-flex}.three-mf-cut-position-head button:hover:not(:disabled),.three-mf-cut-position-head button:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.three-mf-cut-position-head button:disabled{cursor:default;opacity:.48}.three-mf-cut-position-head svg{width:14px;height:14px}.three-mf-field input[type=range]{accent-color:var(--accent);cursor:pointer;width:100%;height:24px}.three-mf-cut-tilts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.three-mf-cut-tilts .three-mf-field,.three-mf-cut-tilts .inputwrap.number-stepper-field{min-width:0}@container splitter-rail (max-width:340px){.three-mf-cut-position-head{flex-direction:column;align-items:stretch}.three-mf-cut-position-head button{justify-content:center;width:100%}.three-mf-cut-tilts{grid-template-columns:1fr}}.three-mf-output-section{margin-top:auto}.three-mf-output-list article{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:10px;padding:11px;display:grid}.three-mf-output-list article.is-working{background:color-mix(in srgb, var(--accent) 8%, var(--bg));border-color:color-mix(in srgb, var(--accent) 42%, var(--line-2))}.three-mf-output-list article>div{gap:4px;min-width:0;display:grid}.three-mf-output-list strong,.three-mf-output-name input{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.three-mf-output-name{gap:4px;display:grid}.three-mf-output-name span{color:var(--text-3);letter-spacing:.05em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.2}.three-mf-output-name input{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);font-family:var(--font-body);width:100%;min-width:0;padding:7px 8px}.three-mf-output-name input:focus{border-color:var(--accent);outline:2px solid color-mix(in srgb, var(--accent) 25%, transparent);outline-offset:1px}.three-mf-output-list span,.three-mf-output-list small,.three-mf-output-list em{color:var(--text-3);overflow-wrap:anywhere;font-size:11.5px;font-style:normal;line-height:1.4}.three-mf-output-list article>button{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-2);cursor:pointer;place-items:center;width:34px;height:34px;transition:all .15s;display:grid}.three-mf-output-list article>button:hover{border-color:var(--accent);color:var(--accent)}.three-mf-output-list svg{width:15px;height:15px}.three-mf-splitter-stage{grid-template-rows:auto minmax(var(--tool-stage-main-min-height,360px), 1fr) auto;scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;row-gap:18px;padding:16px 20px 14px;display:grid;overflow-y:auto}.three-mf-splitter-stage::-webkit-scrollbar{width:8px}.three-mf-splitter-stage::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.three-mf-stage-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:14px;display:flex}.three-mf-stage-head span{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.three-mf-stage-head h2{color:var(--text);font-family:var(--font-display);letter-spacing:0;overflow-wrap:anywhere;margin-top:6px;font-size:clamp(24px,3vw,36px);font-weight:700}.three-mf-stage-actions{flex-shrink:0;place-items:flex-end end;gap:8px;display:grid}.three-mf-history-actions{gap:8px;display:flex}.three-mf-local-badge{border:1px solid var(--line-2);border-radius:var(--radius);flex-shrink:0;align-items:center;gap:7px;padding:9px 10px;display:flex}.three-mf-local-badge svg{color:var(--ok);width:14px;height:14px}.three-mf-undo-command{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);cursor:pointer;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:8px 12px;font-size:11px;transition:border-color .15s,color .15s,opacity .15s;display:inline-flex}.three-mf-undo-command:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.three-mf-undo-command:disabled{cursor:not-allowed;opacity:.45}.three-mf-undo-command svg{width:14px;height:14px}.three-mf-viewer-shell{background:radial-gradient(ellipse 96% 72% at 50% 12%, var(--viewer-glow) 0%, var(--viewer-glow-mid) 42%, transparent 78%), linear-gradient(180deg, var(--surface), var(--bg));border:1px solid var(--line);min-height:var(--tool-viewer-min-height,0);border-radius:8px;margin-top:0;position:relative;overflow:hidden}.three-mf-viewer-mount,.three-mf-viewer-canvas{background:var(--bg);width:100%;height:100%;position:absolute;inset:0}.three-mf-viewer-empty{color:var(--text-2);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:32px;display:flex;position:absolute;inset:0}.three-mf-viewer-empty strong{color:var(--text);font-family:var(--font-display);margin-top:18px;font-size:22px;font-weight:700}.three-mf-viewer-empty p{color:var(--text-3);max-width:40ch;margin-top:8px;font-size:13px;line-height:1.5}.openscad-example-button{margin-top:18px}.three-mf-loading-overlay{background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;z-index:4;flex-direction:column;justify-content:center;align-items:center;padding:32px;display:flex;position:absolute;inset:0}.three-mf-loading-overlay strong{color:var(--text);font-family:var(--font-display);margin-top:14px;font-size:22px;font-weight:700}.three-mf-loading-overlay p{color:var(--text-3);max-width:44ch;margin-top:8px;font-size:13px;line-height:1.5}.three-mf-loading-spinner{border:2px solid color-mix(in srgb, var(--accent) 22%, transparent);border-top-color:var(--accent);border-radius:999px;width:34px;height:34px;animation:.85s linear infinite three-mf-spin;display:block}.three-mf-loading-progress{max-width:300px;margin-top:14px}.three-mf-cancel-unpack{background:color-mix(in srgb, var(--surface) 86%, transparent);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);cursor:pointer;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;min-height:38px;margin-top:30px;padding:0 16px;font-size:12px;transition:all .15s}.three-mf-cancel-unpack:hover{border-color:var(--accent);color:var(--accent)}@keyframes three-mf-spin{to{transform:rotate(360deg)}}.three-mf-viewer-hud{pointer-events:none;z-index:2;flex-wrap:wrap;gap:8px;display:flex;position:absolute;bottom:14px;left:14px}.three-mf-viewer-hud span{background:color-mix(in srgb, var(--surface) 90%, transparent);border:1px solid var(--line-2);color:var(--text-2);border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:12px;display:flex}.three-mf-viewer-hud svg{color:var(--accent);width:14px;height:14px}.three-mf-grid-toggle{appearance:none;background:color-mix(in srgb, var(--surface) 90%, transparent);border:1px solid var(--line-2);color:var(--text-2);cursor:pointer;font-family:var(--font-body);pointer-events:auto;border-radius:999px;align-items:center;gap:6px;padding:8px 11px;font-size:12px;line-height:1;transition:background .15s,border-color .15s,color .15s;display:flex}.three-mf-grid-toggle:hover,.three-mf-grid-toggle:focus-visible{border-color:var(--accent);color:var(--text);outline:none}.three-mf-grid-toggle.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.three-mf-grid-toggle.is-active svg{color:var(--accent)}.three-mf-stage-footer{scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;z-index:1;gap:10px;max-height:none;padding-top:0;display:grid;position:relative;overflow:visible}.three-mf-stage-footer::-webkit-scrollbar{width:8px}.three-mf-stage-footer::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.three-mf-stat-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.three-mf-stat-strip span{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-3);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;gap:5px;padding:10px;font-size:10.5px;display:grid}.three-mf-stat-strip b{color:var(--text);font-family:var(--font-display);letter-spacing:0;text-transform:none;font-size:18px;font-weight:700}.three-mf-inspector{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.three-mf-inspector>div{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);align-items:center;gap:10px;min-width:0;padding:10px;display:flex}.three-mf-inspector svg{color:var(--accent);flex:none;width:18px;height:18px}.three-mf-inspector span{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;gap:4px;min-width:0;font-size:10.5px;display:grid}.three-mf-inspector b{color:var(--text);font-family:var(--font-mono);letter-spacing:0;overflow-wrap:anywhere;text-transform:none;font-size:12px;font-weight:600}@media (min-width:1060px){.generator-workbench,.three-mf-splitter-workbench{max-width:var(--tool-workbench-max-width,1420px);width:100%;min-width:min(100%,860px)}}@media (min-width:981px){.generator-preview-head{min-height:161.391px}.generator-status{min-height:71px}}@media (max-width:980px){.three-mf-splitter-workbench{grid-template-columns:1fr;height:auto}.three-mf-splitter-rail{order:2;max-height:none}.three-mf-splitter-stage{order:1;min-height:680px}.three-mf-viewer-shell{min-height:420px}}@media (max-width:700px){.three-mf-splitter-rail,.three-mf-splitter-stage{padding:14px}.three-mf-stage-head{flex-direction:column;align-items:stretch}.three-mf-stage-actions{place-items:start}.three-mf-local-badge{width:fit-content}.openscad-file-viewer-heading{grid-template-columns:1fr}.openscad-file-viewer-heading .three-mf-local-badge{grid-column:1;justify-self:start}.three-mf-stat-strip,.three-mf-inspector,.three-mf-action-pair,.openscad-export-grid,.openscad-file-viewer-inspector,.three-mf-output-list article{grid-template-columns:1fr}}.stl-viewer-workspace{grid-template-columns:minmax(280px,.42fr) minmax(0,1fr);gap:18px;display:grid}.stl-viewer-card,.stl-preview-card{min-width:0}.stl-viewer-body{gap:18px}.stl-upload-zone{min-height:160px}.stl-file-stats{gap:1px;display:grid;overflow:hidden}.stl-file-stats span{background:var(--bg);border:1px solid var(--line);color:var(--text-3);font-family:var(--font-mono);text-transform:uppercase;gap:6px;padding:10px;font-size:11px;display:grid}.stl-file-stats b{color:var(--text);font-family:var(--font-display);overflow-wrap:anywhere;text-transform:none;font-size:14px;font-weight:600}.stl-viewer-actions{flex-wrap:wrap;gap:8px;display:flex}.stl-preview-body{gap:12px;padding:18px;display:grid}.stl-preview-viewport{border:1px solid var(--line-2);border-radius:var(--radius);min-height:var(--tool-viewer-min-height,520px)}.qr-stl-workbench{background:var(--line-2);border:1px solid var(--line-2);height:var(--tool-workbench-height,min(1120px, calc(100dvh - var(--site-header-height) - 84px)));max-width:var(--tool-workbench-max-width,1420px);border-radius:10px;grid-template-columns:minmax(340px,.36fr) minmax(0,.64fr);width:100%;min-height:720px;margin-inline:auto;display:grid;overflow:hidden}.qr-stl-rail,.qr-stl-stage{background:var(--surface);min-width:0;min-height:0}.qr-stl-rail{scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;flex-direction:column;gap:16px;padding:22px;display:flex;overflow-y:auto}.qr-stl-stage{grid-template-rows:auto auto minmax(340px,1fr) 86px auto;gap:14px;padding:24px;display:grid;position:relative;overflow-y:auto}.qr-stl-rail-head,.qr-stl-stage-head,.qr-stl-stage-actions,.qr-stl-settings-actions,.qr-stl-file-action>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.qr-stl-rail-head h2,.qr-stl-stage-head h2{font-family:var(--font-display);letter-spacing:-.025em;margin-top:5px;font-size:22px;font-weight:650}.qr-stl-icon-button{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-2);cursor:pointer;flex:none;justify-content:center;align-items:center;width:38px;height:38px;transition:all .15s;display:inline-flex}.qr-stl-icon-button:hover{border-color:var(--accent);color:var(--accent)}.qr-stl-icon-button svg{width:16px;height:16px}.qr-stl-control-group{background:var(--bg);border:1px solid var(--line-2);border-radius:8px;gap:13px;padding:15px;display:grid}.qr-stl-group-title{border-bottom:1px solid var(--line);color:var(--text);font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;align-items:center;gap:8px;padding-bottom:11px;font-size:11px;font-weight:700;display:flex}.qr-stl-group-title svg{color:var(--accent);width:16px;height:16px}.qr-stl-text-field,.qr-stl-file-action{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.055em;text-transform:uppercase;gap:7px;min-width:0;font-size:10.5px;display:grid}.qr-stl-text-field input,.qr-stl-text-field select,.qr-stl-text-field textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);font-family:var(--font-sans);letter-spacing:0;text-transform:none;outline:none;width:100%;min-height:42px;padding:10px 11px;font-size:13px;transition:all .15s}.qr-stl-text-field textarea{resize:vertical;min-height:86px;line-height:1.45}.qr-stl-text-field input:focus,.qr-stl-text-field select:focus,.qr-stl-text-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.qr-stl-text-field small{color:var(--text-3);letter-spacing:.03em;font-size:10px}.qr-stl-inline-fields,.qr-stl-number-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.qr-stl-number-grid.is-nested{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:11px}.qr-stl-number-grid .field,.qr-stl-control-group>.field{margin:0}.qr-stl-number-grid .field-label,.qr-stl-control-group>.field .field-label{font-size:10px}.qr-stl-number-grid .number-stepper-field,.qr-stl-control-group>.field .number-stepper-field{background:var(--surface);min-height:42px}.qr-stl-control-with-warning{align-content:start;gap:6px;min-width:0;display:grid}.qr-stl-context-warning{background:color-mix(in srgb, var(--accent-2) 8%, var(--surface));border-left:2px solid var(--accent-2);border-radius:0 var(--radius) var(--radius) 0;color:var(--text-2);padding:7px 8px;font-size:10.5px;line-height:1.4}.qr-stl-context-warning.is-toggle{margin-left:48px}.qr-stl-toggle{color:var(--text);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:38px;margin:0;padding:0;display:grid}.qr-stl-toggle-switch{background:var(--surface-2);border:1px solid var(--line-2);border-radius:999px;width:38px;height:22px;transition:all .15s;position:relative}.qr-stl-toggle-switch:after{background:var(--text-3);content:"";border-radius:50%;width:14px;height:14px;transition:all .15s;position:absolute;top:3px;left:3px}.qr-stl-toggle.is-checked .qr-stl-toggle-switch{background:var(--accent-soft);border-color:var(--accent)}.qr-stl-toggle.is-checked .qr-stl-toggle-switch:after{background:var(--accent);transform:translate(16px)}.qr-stl-toggle:focus-visible{outline:none}.qr-stl-toggle:focus-visible .qr-stl-toggle-switch{box-shadow:0 0 0 3px var(--accent-soft)}.qr-stl-toggle-copy{gap:3px;min-width:0;display:grid}.qr-stl-toggle-copy b{align-items:center;gap:7px;font-size:12px;font-weight:650;display:flex}.qr-stl-toggle-copy b svg{color:var(--accent);width:14px;height:14px}.qr-stl-toggle-copy small{color:var(--text-3);font-size:11px;line-height:1.35}.qr-stl-file-action .btn,.qr-stl-settings-actions .btn{justify-content:center;width:100%;min-height:40px;padding-inline:12px}.qr-stl-file-action.is-wide>div{justify-content:flex-start}.qr-stl-file-action.is-wide .btn{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.qr-stl-center-icon-control{gap:8px;display:grid}.qr-stl-center-icon-control .qr-stl-file-action .btn svg{color:var(--accent)}.qr-stl-center-icon-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.qr-stl-center-icon-option{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-2);cursor:pointer;font-family:var(--font-sans);text-align:left;justify-content:flex-start;align-items:center;gap:8px;width:100%;min-width:0;min-height:42px;padding:8px 9px;font-size:11px;transition:all .15s;display:flex}.qr-stl-center-icon-option:hover,.qr-stl-center-icon-option.is-selected{border-color:var(--accent);color:var(--text)}.qr-stl-center-icon-option:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.qr-stl-center-icon-option.is-selected{background:var(--accent-soft)}.qr-stl-center-icon-option svg{color:var(--accent);flex:none;width:17px;height:17px}.qr-stl-center-icon-option span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.qr-stl-settings-actions{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.qr-stl-primary-actions{background:linear-gradient(180deg, transparent, var(--surface) 24%);z-index:4;margin:-6px -4px -22px;padding:18px 4px 22px;position:sticky;bottom:-22px}.qr-stl-primary-actions .btn{justify-content:center;width:100%;min-height:48px}.qr-stl-cancel{border-color:var(--accent-2);color:var(--accent-2)}.qr-stl-preview-tabs{background:var(--bg);border:1px solid var(--line-2);border-radius:999px;padding:3px;display:flex}.qr-stl-preview-tabs button{color:var(--text-3);cursor:pointer;font-family:var(--font-mono);letter-spacing:.045em;text-transform:uppercase;background:0 0;border:0;border-radius:999px;min-height:34px;padding:0 13px;font-size:10px}.qr-stl-preview-tabs button.is-active{background:var(--accent);color:var(--on-accent)}.qr-stl-stat-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.qr-stl-stat-strip span{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);gap:5px;min-width:0;padding:10px;display:grid}.qr-stl-stat-strip small{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.065em;text-transform:uppercase;font-size:9.5px}.qr-stl-stat-strip b{color:var(--text);font-family:var(--font-display);overflow-wrap:anywhere;font-size:15px}.qr-stl-preview-shell{background:radial-gradient(circle at 25% 20%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 34%), var(--bg);border:1px solid var(--line-2);border-radius:8px;min-height:0;position:relative;overflow:hidden}.qr-stl-model-preview,.qr-stl-pattern-preview{height:100%;min-height:360px;display:none;position:absolute;inset:0}.qr-stl-model-preview.is-visible,.qr-stl-pattern-preview.is-visible{display:block}.qr-stl-model-preview .generator-viewer-mount,.qr-stl-model-preview .tool-viewer-mount{width:100%;height:100%;min-height:360px}.qr-stl-pattern-preview.is-visible{flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;overflow:auto}.qr-stl-pattern-preview canvas{border:1px solid var(--line-2);background:#fff;width:auto;max-width:min(70%,520px);height:auto;max-height:min(70%,520px);box-shadow:0 18px 50px #0000001f}.qr-stl-pattern-preview p{color:var(--text-3);text-align:center;max-width:56ch;margin-top:16px;font-size:12px;line-height:1.5}.qr-stl-empty-preview{color:var(--text-3);text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:40px;display:flex}.qr-stl-empty-preview>svg{color:var(--accent);opacity:.8;width:58px;height:58px;margin-bottom:18px}.qr-stl-empty-preview h3{color:var(--text);font-family:var(--font-display);font-size:20px;font-weight:600}.qr-stl-empty-preview p{max-width:50ch;margin-top:8px;font-size:13px;line-height:1.55}.qr-stl-loading{background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;z-index:5;flex-direction:column;justify-content:center;align-items:center;padding:32px;display:flex;position:absolute;inset:0}.qr-stl-loading>span{border:2px solid color-mix(in srgb, var(--accent) 25%, transparent);border-top-color:var(--accent);border-radius:999px;width:38px;height:38px;animation:.85s linear infinite three-mf-spin}.qr-stl-loading b{color:var(--text);font-family:var(--font-display);margin-top:14px;font-size:19px}.qr-stl-loading p{color:var(--text-3);margin-top:7px;font-size:12px}.qr-stl-feedback{align-content:start;gap:6px;min-height:0;display:grid;overflow:visible}.qr-stl-message{background:color-mix(in srgb, var(--accent-2) 8%, var(--bg));border:1px solid color-mix(in srgb, var(--accent-2) 32%, var(--line-2));border-radius:var(--radius);color:var(--text-2);padding:10px 12px;font-size:12px;line-height:1.45}.qr-stl-message.is-error{background:color-mix(in srgb, #e74c3c 9%, var(--bg));border-color:color-mix(in srgb, #e74c3c 38%, var(--line-2));color:color-mix(in srgb, #e74c3c 80%, var(--text))}.qr-stl-message.is-success{background:color-mix(in srgb, #2fbf71 8%, var(--bg));border-color:color-mix(in srgb, #2fbf71 34%, var(--line-2));color:color-mix(in srgb, #2fbf71 72%, var(--text))}.qr-stl-stage-actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;padding-top:14px}.qr-stl-download-tip{background:color-mix(in srgb, var(--accent) 8%, var(--bg));border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line-2));border-radius:var(--radius);color:var(--text-3);flex:1 0 100%;align-items:flex-start;gap:9px;padding:10px 12px;font-size:12px;line-height:1.45;display:flex}.qr-stl-download-tip svg{color:var(--accent);flex:none;width:17px;height:17px;margin-top:1px}.qr-stl-download-tip strong{color:var(--text)}.qr-stl-stage-actions .btn{justify-content:center;min-width:154px}@media (max-width:1060px){.qr-stl-workbench{grid-template-columns:minmax(320px,.43fr) minmax(0,.57fr)}.qr-stl-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:820px){.qr-stl-workbench{flex-direction:column;height:auto;max-height:none;display:flex}.qr-stl-stage{order:1;grid-template-rows:auto auto minmax(360px,1fr) auto auto;min-height:720px}.qr-stl-rail{order:2;max-height:none;overflow:visible}.qr-stl-primary-actions{bottom:0}}@media (max-width:560px){.qr-stl-rail,.qr-stl-stage{padding:14px}.qr-stl-stage-head{flex-direction:column;align-items:flex-start}.qr-stl-inline-fields,.qr-stl-number-grid,.qr-stl-settings-actions{grid-template-columns:1fr}.qr-stl-center-icon-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.qr-stl-pattern-preview canvas{max-width:90%;max-height:min(75%,430px)}.qr-stl-stage-actions{flex-direction:column;align-items:stretch}.qr-stl-stage-actions .btn{width:100%}}.openscad-playground-workbench{background:var(--line-2);border:1px solid var(--line-2);height:var(--tool-workbench-height,calc(100dvh - var(--site-header-height) - 84px));border-radius:8px;grid-template-columns:minmax(420px,.45fr) minmax(0,.55fr);gap:1px;min-height:0;display:grid;overflow:hidden}.openscad-editor-panel,.openscad-preview-panel{background:var(--surface);min-width:0;min-height:0}.openscad-editor-panel{grid-template-rows:auto minmax(0,1fr) auto;gap:16px;padding:22px;display:grid}.openscad-preview-panel{grid-template-rows:auto minmax(0,1fr) auto;padding:22px;display:grid}.openscad-panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:18px;display:flex}.openscad-panel-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin-top:6px;font-size:22px;font-weight:600}.openscad-code-editor{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);resize:none;tab-size:2;outline:none;width:100%;height:100%;min-height:0;padding:16px;font-size:12.5px;line-height:1.65}.openscad-code-editor:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.openscad-editor-footer{border-top:1px solid var(--line);color:var(--text-3);font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:12px;padding-top:14px;font-size:12px;display:flex}.openscad-action-row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.openscad-preview-viewport{border:1px solid var(--line-2);border-radius:var(--radius)}.openscad-playground-workbench{background:var(--surface);height:var(--tool-workbench-height,calc(100dvh - var(--site-header-height) - 84px));display:block;position:relative}.openscad-preview-panel{background:var(--bg);z-index:1;padding:0;display:block;position:absolute;inset:0}.openscad-preview-viewport{border:0;border-radius:0;min-height:0;position:absolute;inset:0}.openscad-editor-panel{background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--line-2);box-shadow:var(--card-shadow);z-index:5;border-radius:8px;width:clamp(390px,34vw,540px);height:calc(100% - 52px);max-height:calc(100% - 52px);position:absolute;top:26px;left:26px;overflow:hidden}@media (min-width:1440px){.workbench-breadcrumb-slot .breadcrumbs{transform:translate(-96px)}}@media (min-width:1060px){.openscad-playground-workbench,.stl-viewer-workspace{max-width:var(--tool-workbench-max-width,1420px);width:100%;min-width:min(100%,860px);margin-inline:auto}}.openscad-preview-panel>.openscad-panel-head{z-index:6;border:0;padding:0;position:absolute;top:26px;right:26px}.openscad-preview-panel>.openscad-panel-head>div:first-child{display:none}.resizable-workbench.three-mf-splitter-workbench{background:var(--line-2);grid-template-columns:minmax(300px, min(var(--resizable-workbench-rail-width,372px), calc(100% - 530px))) 10px minmax(0, 1fr);height:var(--tool-workbench-height,calc(100dvh - var(--site-header-height) - 84px));gap:0;display:grid;position:static;overflow:hidden}.resizable-workbench.is-resizing-editor{cursor:col-resize;-webkit-user-select:none;user-select:none}.workbench-resizer{background:var(--line-2);cursor:col-resize;touch-action:none;z-index:5;border:0;justify-content:center;align-items:center;width:10px;min-width:10px;min-height:0;padding:0;display:flex;position:relative}.workbench-resizer:before{background:color-mix(in srgb, var(--text-3) 35%, transparent);content:"";border-radius:999px;width:2px;height:88px;transition:background-color .15s,height .15s,width .15s}.workbench-resizer:hover:before,.workbench-resizer:focus-visible:before,.resizable-workbench.is-resizing-editor .workbench-resizer:before{background:var(--accent);width:3px;height:132px}.workbench-resizer:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.openscad-toolmark-icon{background:linear-gradient(135deg, var(--accent-2) 0 45%, transparent 45%), linear-gradient(315deg, var(--accent) 0 48%, var(--surface-2) 48%)}.openscad-code-section{flex:390px;grid-template-rows:auto minmax(0,1fr) auto;min-height:360px}.openscad-code-editor{padding:12px;font-size:12px;line-height:1.58}.openscad-code-meta{color:var(--text-3);font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:10px;min-width:0;font-size:11.5px;display:flex}.openscad-code-meta span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.openscad-status-card{background:var(--bg);border:1px dashed var(--line);border-radius:var(--radius);color:var(--text-3);gap:7px;min-height:74px;padding:12px;font-size:12.5px;line-height:1.45;display:grid}.openscad-status-card b{color:var(--text);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.openscad-status-card.is-error{border-color:var(--accent-2);color:var(--accent-2)}.openscad-status-card.is-error b{color:var(--accent-2)}.openscad-render-actions .btn,.openscad-code-actions .btn{min-width:0;padding-inline:8px}.openscad-output-section{margin-top:auto}.openscad-viewer-shell .generator-viewer-mount,.openscad-viewer-shell .generator-canvas{border-radius:0}.openscad-viewer-shell .three-mf-viewer-hud,.openscad-converter-viewer-shell .three-mf-viewer-hud{top:14px;bottom:auto}.openscad-file-viewer-stage{row-gap:28px}.openscad-file-viewer-workbench.tool-viewer-workbench.three-mf-splitter-workbench{height:var(--tool-workbench-height,calc(100dvh - var(--site-header-height) - 84px))}.openscad-file-viewer-shell{z-index:0;margin-bottom:20px}.openscad-file-viewer-footer{background:var(--surface);z-index:2}.openscad-stage-footer{max-height:none}.tool-viewer-workbench.three-mf-splitter-workbench{background:var(--line-2);height:var(--tool-workbench-height,calc(100dvh - var(--site-header-height) - 84px));max-width:var(--tool-workbench-max-width,1420px);min-width:0;margin-inline:auto;display:grid;position:static;overflow:hidden}@media (max-width:980px){.resizable-workbench.qr-stl-workbench .qr-stl-stage{order:1}.resizable-workbench.qr-stl-workbench .qr-stl-rail{order:2;max-height:none}.resizable-workbench.three-mf-splitter-workbench,.tool-viewer-workbench.three-mf-splitter-workbench,.openscad-file-viewer-workbench.tool-viewer-workbench.three-mf-splitter-workbench{grid-template-columns:1fr;gap:1px;height:auto;overflow:visible}.workbench-resizer{display:none}.tool-viewer-workbench .three-mf-splitter-stage{order:1;min-height:680px}.openscad-file-viewer-workbench .openscad-file-viewer-stage{height:680px}.tool-viewer-workbench .three-mf-splitter-rail{order:2;max-height:none}}.stl-toolmark-icon{background:linear-gradient(140deg, var(--accent-2) 0 44%, transparent 44%), linear-gradient(320deg, var(--accent) 0 50%, var(--surface-2) 50%)}.three-dm-toolmark-icon{background:linear-gradient(135deg, var(--accent) 0 38%, transparent 38%), linear-gradient(225deg, var(--accent-2) 0 50%, var(--surface-2) 50%)}.three-dm-upload{min-height:104px}.three-dm-viewer-stage{grid-template-rows:auto minmax(var(--tool-stage-main-min-height,420px), 1fr) auto;overflow-x:hidden}.three-dm-viewer-shell{min-height:var(--tool-viewer-min-height,520px)}.three-dm-viewer-mount,.three-dm-viewer-canvas{min-height:var(--tool-viewer-min-height,520px);display:block}.three-dm-viewer-canvas{cursor:grab}.three-dm-viewer-canvas:active{cursor:grabbing}.stl-inspector-file-list{gap:8px;display:grid}.stl-inspector-file-list span{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-3);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;gap:5px;padding:10px;font-size:10.5px;display:grid}.stl-inspector-file-list b{color:var(--text);font-family:var(--font-mono);letter-spacing:0;overflow-wrap:anywhere;text-transform:none;font-size:12px;font-weight:600}.stl-measure-section-head .stl-unit-toggle{background:var(--bg);border:1px solid var(--line-2);color:var(--text-2);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:6px;padding:6px 8px;font-size:10.5px;font-weight:700;line-height:1}.stl-measure-section-head .stl-unit-toggle:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.stl-measure-section-head .stl-unit-toggle:focus-visible{border-color:var(--accent);outline:2px solid var(--accent-soft);outline-offset:2px}.stl-measure-dimensions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stl-measure-dimensions span,.stl-measure-result{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-3);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;gap:5px;min-width:0;padding:10px;font-size:10.5px;display:grid}.stl-measure-dimensions b,.stl-measure-result b{color:var(--text);letter-spacing:0;overflow-wrap:anywhere;text-transform:none;font-size:12px;font-weight:700}.stl-measure-result{gap:8px}.stl-measure-result span{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.stl-measure-result small{color:var(--text-3);font-family:var(--font-body);letter-spacing:0;text-transform:none;font-size:12px;line-height:1.4}.stl-measure-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.stl-measure-actions .btn.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.stl-download-action{padding-top:2px;display:grid}.stl-download-action .btn{width:100%}.stl-measurement-active{cursor:crosshair}.resizable-workbench.model-splitter-workbench{grid-template-columns:minmax(260px, min(var(--resizable-workbench-rail-width,300px), calc(100% - 530px))) 10px minmax(0, 1fr)}.model-splitter-workbench .three-mf-splitter-stage{row-gap:10px;padding:12px}.model-splitter-workbench .three-mf-stage-head h2{font-size:clamp(19px,2vw,28px)}.region-editor-controls{flex-direction:column;gap:14px;display:flex}.region-editor-controls p,.model-splitter-workbench .three-mf-help-text{color:var(--text-2);font-size:13px;line-height:1.5}.region-editor-controls label{justify-content:space-between;align-items:center;font-size:13px;display:flex}.region-editor-controls button,.region-editor-controls select,.model-region-open{background:var(--surface-2);color:var(--text);border:1px solid var(--line-2);border-radius:var(--radius);font:inherit;padding:10px 12px;font-size:13px}.region-editor-controls button,.model-region-open{cursor:pointer}.model-region-open{width:100%}.region-editor-controls button:disabled,.model-region-open:disabled{opacity:.45;cursor:not-allowed}.region-editor-controls button:focus-visible,.model-region-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.region-editor-controls .region-primary,.model-region-open{border-color:var(--accent)}.region-editor-controls input[type=range]{width:100%;accent-color:var(--accent)}.region-editor-controls input[type=color]{cursor:pointer;width:46px;height:32px}.region-editor-controls .region-editor-hint{color:var(--text-3);font-size:12px}.region-editor-controls .region-error{color:var(--danger,#eb746c)}.region-editor-finish{border-top:1px solid var(--line);gap:10px;padding-top:16px;display:grid}.model-region-error{padding:32px}.three-mf-splitter-rail.model-tool-controls{font-family:var(--font-body);gap:16px;padding:18px 16px}.model-tool-controls .generator-panel-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:6px 0 0;font-size:22px;font-weight:600;line-height:1.55}.model-tool-controls.compressor-controls .generator-panel-head h2{letter-spacing:normal;font-size:18px;font-weight:700}.compressor-controls .generator-control-head label{font-family:var(--font-display);letter-spacing:0;text-transform:none;font-size:15px;font-weight:700}.model-tool-controls .three-mf-field label,.model-tool-controls .three-mf-field>span,.model-tool-controls.region-editor-controls>label{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:500}.model-tool-controls .three-mf-field select,.model-tool-controls.region-editor-controls select{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);height:36px;padding:0 9px;font-size:12px}.model-tool-controls .three-mf-help-text,.model-tool-controls.region-editor-controls p{color:var(--text-3);font-size:11.5px;line-height:1.45}.model-tool-controls .three-mf-section-head h2,.model-tool-controls .three-mf-section-head h3{font-family:var(--font-display);font-weight:600}.model-tool-controls .number-stepper-input{font-size:12px}.model-tool-controls.region-editor-controls button:not(.region-palette button),.model-tool-controls .model-region-open{font-family:var(--font-body);background:var(--bg);font-size:13px;font-weight:600}.model-tool-controls.region-editor-controls button.region-primary:not(:disabled){background:var(--bg);border-color:var(--line-2);color:var(--text)}.model-tool-controls.region-editor-controls button.region-primary:disabled{background:var(--surface-2);border-color:var(--line-2);color:var(--text-2);opacity:1}.model-tool-controls.region-editor-controls select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.model-tool-controls.region-editor-controls>label strong{color:var(--text-3);font-weight:400}.model-tool-controls.region-editor-controls .region-error{color:var(--danger,#eb746c)}.model-tool-controls.region-editor-controls .region-tool-picker{border:0;gap:8px;margin:0;padding:0;display:grid}.model-tool-controls.region-editor-controls .region-tool-picker legend{color:var(--text);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;padding:0;font-size:11px;font-weight:500}.model-tool-controls.region-editor-controls .region-tool-buttons button{min-width:0;padding:9px 5px}.model-tool-controls.region-editor-controls .region-tool-buttons button[aria-pressed=true]{background:var(--surface-2);border-color:var(--text-3);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text-3) 30%, transparent)}@media (max-width:980px){.resizable-workbench.model-splitter-workbench{flex-direction:column;height:auto;display:flex}.model-splitter-workbench .three-mf-splitter-rail{max-height:none}.model-splitter-workbench .three-mf-viewer-shell{min-height:60dvh}}.stl-selection-active{cursor:pointer}.stl-inspector-stage-footer .three-mf-stat-strip b{overflow-wrap:anywhere;font-size:16px}.model-file-warning-list{gap:8px;display:grid}.model-file-warning-list span{background:color-mix(in srgb, var(--warn) 12%, var(--bg));border:1px solid color-mix(in srgb, var(--warn) 36%, var(--line-2));border-radius:var(--radius);color:var(--text-2);align-items:flex-start;gap:8px;padding:9px 10px;font-size:12px;line-height:1.45;display:flex}.model-file-warning-list svg{color:var(--warn);flex:none;width:15px;height:15px;margin-top:1px}.stl-inspector-stage-footer,.openscad-converter-stage-footer{max-height:none}.stl-gcode-toolmark-icon{background:linear-gradient(140deg, var(--accent) 0 34%, transparent 34%), linear-gradient(220deg, var(--ok) 0 52%, var(--surface-2) 52%)}.stl-gcode-upload{min-height:98px}.stl-gcode-settings-grid{gap:10px;display:grid}.stl-gcode-settings-grid .field{gap:5px}.stl-gcode-settings-grid .field-label-text{font-size:11px}.stl-gcode-mode-toggle{margin-bottom:12px}.stl-gcode-mode-toggle button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.stl-gcode-mode-toggle svg{width:14px;height:14px}.stl-gcode-advanced-settings{gap:12px;display:grid}.stl-gcode-setting-group{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);gap:10px;padding:10px;display:grid}.stl-gcode-setting-group h3{color:var(--text);font-family:var(--font-display);font-size:14px;font-weight:700}.stl-gcode-select-grid,.stl-gcode-toggle-grid,.stl-gcode-gcode-grid{gap:8px;display:grid}.stl-gcode-select-field,.stl-gcode-textarea-field{gap:6px;display:grid}.stl-gcode-select-field label,.stl-gcode-textarea-field label,.stl-gcode-toggle-field span{color:var(--text);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.stl-gcode-select-field select,.stl-gcode-textarea-field textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);outline:0;width:100%;font-size:12px}.stl-gcode-select-field select{height:36px;padding:0 10px}.stl-gcode-textarea-field textarea{resize:vertical;min-height:92px;padding:10px;line-height:1.5}.stl-gcode-select-field select:focus,.stl-gcode-textarea-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.stl-gcode-toggle-field{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);cursor:pointer;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:38px;padding:8px 10px;display:grid}.stl-gcode-toggle-field input{accent-color:var(--accent);width:16px;height:16px}.stl-gcode-toggle-field b{color:var(--text-2);font-family:var(--font-mono);text-align:right;text-transform:uppercase;min-width:22px;font-size:11px;font-weight:600}.stl-gcode-actions{grid-template-columns:1fr 1fr}.stl-gcode-clear{justify-content:center;width:100%}.stl-gcode-stage-actions{min-width:min(100%,260px)}.stl-gcode-viewer-link{white-space:nowrap;width:100%;min-height:38px}.stl-gcode-view-toggle{width:100%}.stl-gcode-view-toggle button{white-space:nowrap}.stl-gcode-view-toggle button:disabled{cursor:not-allowed;opacity:.5}.stl-gcode-stage{grid-template-rows:auto minmax(var(--tool-stage-main-min-height,360px), 1fr) auto;overflow-x:hidden}.stl-gcode-main-grid{background:var(--line);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr);gap:1px;min-height:0;margin-top:0;display:grid;overflow:hidden}.stl-gcode-viewer-shell{min-height:var(--tool-viewer-min-height,520px);border:0;border-radius:0;margin-top:0}.stl-gcode-viewer-error{margin-top:10px}.stl-gcode-stage-footer{max-height:none}.stl-gcode-warning-panel{grid-template-columns:1fr}.stl-gcode-warning-panel span{letter-spacing:0;text-transform:none;line-height:1.45}.gcode-viewer-toolmark-icon{background:linear-gradient(135deg, var(--accent-2) 0 36%, transparent 36%), linear-gradient(315deg, var(--accent) 0 52%, var(--surface-2) 52%)}.gcode-viewer-upload{min-height:98px}.gcode-viewer-stage{grid-template-rows:auto minmax(var(--tool-stage-main-min-height,420px), 1fr) auto;overflow-x:hidden}.gcode-viewer-canvas-shell{background:var(--bg);border:1px solid var(--line);min-height:var(--tool-viewer-min-height,520px);border-radius:8px;margin-top:0;position:relative;overflow:hidden}.gcode-viewer-three-mount,.gcode-viewer-webgl-canvas{height:100%;min-height:var(--tool-viewer-min-height,520px);width:100%;display:block}.gcode-viewer-webgl-canvas{cursor:grab}.gcode-viewer-webgl-canvas:active{cursor:grabbing}.gcode-viewer-hud{flex-wrap:wrap;gap:8px;display:flex;position:absolute;bottom:14px;left:14px}.gcode-viewer-hud span{background:color-mix(in srgb, var(--bg) 84%, transparent);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-2);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:6px;padding:7px 9px;font-size:11px;display:inline-flex}.gcode-viewer-hud svg{color:var(--accent);width:14px;height:14px}.gcode-viewer-mode-toggle{margin-bottom:10px}.gcode-viewer-travel-toggle{margin-top:10px}.gcode-viewer-detected-grid{gap:8px;display:grid}.gcode-viewer-detected-grid span{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-3);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;gap:5px;padding:10px;font-size:10.5px;display:grid}.gcode-viewer-detected-grid b{color:var(--text);letter-spacing:0;overflow-wrap:anywhere;text-transform:none;font-size:12px;font-weight:600}.gcode-viewer-stat-list b{line-height:1.35}@media (max-width:1180px){.stl-gcode-viewer-shell{min-height:460px}}@media (max-width:640px){.stl-gcode-main-grid{margin-top:0}.stl-gcode-viewer-shell{min-height:320px}.gcode-viewer-canvas-shell,.gcode-viewer-three-mount,.gcode-viewer-webgl-canvas{min-height:360px}}@media (min-width:981px){.resizable-workbench .three-mf-stage-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;padding-bottom:14px;display:grid}.resizable-workbench .three-mf-stage-head>div{display:contents}.resizable-workbench .three-mf-stage-head>div>span:first-child{grid-area:1/1}.resizable-workbench .three-mf-stage-head .three-mf-local-badge{grid-area:1/2;justify-self:end}.resizable-workbench .three-mf-stage-head h2{overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap;grid-area:2/1/auto/-1;min-width:0;margin-top:6px;font-size:clamp(22px,2.6vw,34px);overflow:hidden}.resizable-workbench .three-mf-viewer-shell{margin-top:0}.resizable-workbench .stl-gcode-stage .three-mf-stage-head>.stl-gcode-stage-actions{grid-area:1/2;grid-template-columns:auto auto;align-items:center;gap:8px;display:grid}.stl-gcode-stage-actions .stl-gcode-viewer-link{grid-column:1/-1}.openscad-converter-workbench.tool-viewer-workbench.three-mf-splitter-workbench{height:min(900px, var(--tool-workbench-height,calc(100dvh - var(--site-header-height) - 84px)))}.openscad-converter-stage{grid-template-rows:auto minmax(180px,1fr) auto;overflow:hidden auto}.openscad-converter-viewer-shell{height:100%;min-height:0;margin-top:0}.openscad-converter-stage-footer{padding-top:0;overflow:visible}.openscad-converter-stage .three-mf-stat-strip span,.openscad-converter-stage .three-mf-inspector>div{padding:9px 10px}}.openscad-converter-upload{min-height:96px}.openscad-converter-options{gap:12px;display:grid}.openscad-converter-options .number-stepper-field{min-height:48px}.openscad-converter-checkbox{background:var(--bg)}.openscad-converter-output-section{margin-top:auto}.openscad-converter-code-output{resize:vertical;min-height:220px}.openscad-converter-empty-output{flex-direction:column;gap:4px;min-height:66px}.openscad-converter-empty-output small{color:var(--text-3);font-size:11.5px;line-height:1.4}.openscad-converter-stage-note{background:var(--bg);border:1px dashed var(--line);border-radius:var(--radius);color:var(--text-3);padding:12px;font-size:13px;line-height:1.5}.openscad-file-viewer-heading{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 18px;width:100%;min-width:0;display:grid}.openscad-file-viewer-heading h2{grid-column:1/-1;margin-top:0}.openscad-file-viewer-heading .three-mf-local-badge{grid-column:2;justify-self:end}.openscad-file-upload{min-height:104px}.openscad-url-section .btn{width:100%}.openscad-url-status{color:var(--text-3);font-size:12px;line-height:1.45}.openscad-param-section{gap:14px}.openscad-param-stack,.openscad-param-group{gap:11px;display:grid}.openscad-param-group{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);padding:11px}.openscad-param-group h3{color:var(--text);font-family:var(--font-display);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.openscad-param-group h3 svg{color:var(--accent);width:15px;height:15px}.openscad-param-field{gap:7px;display:grid}.openscad-param-field>span{color:var(--text);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:8px;min-width:0;font-size:11px;display:flex}.openscad-param-field small{color:var(--text-3);letter-spacing:0;text-overflow:ellipsis;text-transform:none;white-space:nowrap;font-size:10px;overflow:hidden}.openscad-param-field input:not([type=range]),.openscad-param-field select{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);outline:0;width:100%;height:36px;padding:0 10px;font-size:12px}.openscad-param-field input:not([type=range]):focus,.openscad-param-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.openscad-param-toggle{background:var(--surface)}.openscad-export-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.openscad-export-grid .btn{min-width:0;padding-inline:8px}.openscad-reset-view-button{width:100%}.openscad-source-section details{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);overflow:hidden}.openscad-source-section summary{color:var(--text);cursor:pointer;font-family:var(--font-mono);align-items:center;gap:8px;padding:11px 12px;font-size:12px;list-style:none;display:flex}.openscad-source-section summary::-webkit-details-marker{display:none}.openscad-source-section summary svg{color:var(--accent);width:15px;height:15px}.openscad-source-code{background:var(--surface);border-top:1px solid var(--line-2);color:var(--text-2);font-family:var(--font-mono);tab-size:2;max-height:340px;margin:0;padding:10px 0;font-size:11.5px;line-height:1.55;overflow:auto}.openscad-source-line{grid-template-columns:42px minmax(0,1fr);min-width:max-content;padding:0 12px;display:grid}.openscad-source-line-number{color:var(--text-3);text-align:right;-webkit-user-select:none;user-select:none;padding-right:12px}.openscad-token-keyword{color:var(--accent)}.openscad-token-comment{color:var(--text-3)}.openscad-error-report{align-items:stretch}.openscad-error-report span{white-space:pre-wrap}.openscad-file-viewer-inspector{grid-template-columns:1fr}.tool-viewer-workbench .three-mf-viewer-shell .generator-viewer-mount,.tool-viewer-workbench .three-mf-viewer-shell .generator-canvas{border-radius:0}@media (max-width:980px){.tool-workbench-section{min-height:auto;padding:32px 0 42px}.tool-workbench-wrap{max-width:var(--maxw)}.workbench-breadcrumb-slot{padding-inline:0}.generator-workbench,.openscad-playground-workbench{background:var(--line-2);grid-template-columns:1fr;height:auto;display:grid;position:static}.resizable-workbench.three-mf-splitter-workbench{grid-template-columns:1fr;gap:1px;height:auto;overflow:visible}.workbench-resizer{display:none}.generator-preview,.openscad-preview-panel{background:var(--surface);padding:22px;position:static;inset:auto}.openscad-preview-panel{display:grid}.openscad-editor-panel{min-height:620px}.generator-controls,.openscad-editor-panel{box-shadow:none;border:0;border-radius:0;width:auto;max-height:none;position:static;top:auto;left:auto}.openscad-code-editor{min-height:420px}.openscad-preview-panel{grid-template-rows:auto minmax(500px,1fr) auto;min-height:620px}.generator-controls{display:block;overflow:visible}.generator-preview-head,.openscad-preview-panel>.openscad-panel-head{border-bottom:1px solid var(--line);padding-bottom:18px;position:static}.generator-preview-head>div:first-child,.openscad-preview-panel>.openscad-panel-head>div:first-child{display:block}.generator-preview-actions{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.generator-status{border:0;border-top:1px solid var(--line);background:0 0;border-radius:0;max-width:none;padding:12px 0 0;position:static;bottom:auto;left:auto;transform:none}.generator-control-list{padding-right:0;overflow:visible}.generator-preview{grid-template-rows:auto minmax(500px,1fr) auto}.generator-viewport{border:1px solid var(--line-2);border-radius:var(--radius);min-height:500px;position:relative;inset:auto}}@media (max-width:560px){.svg-output-actions{justify-content:flex-start}.svg-code-output,.svg-output-empty,.svg-preview-viewport,.stl-preview-viewport{min-height:360px}.generator-preview{grid-template-rows:auto minmax(360px,1fr) auto;padding:18px}.openscad-editor-panel,.openscad-preview-panel{padding:18px}.openscad-editor-panel{min-height:520px}.openscad-code-editor{min-height:320px}.openscad-preview-panel{grid-template-rows:auto minmax(360px,1fr) auto;min-height:520px}.openscad-panel-head,.openscad-editor-footer{flex-direction:column;align-items:flex-start}.openscad-action-row{justify-content:flex-start}.generator-viewport{min-height:360px}.generator-preview-head,.generator-status{flex-direction:column;align-items:flex-start}.generator-preview-actions{justify-content:flex-start}.generator-stale-note{text-align:center;white-space:normal;max-width:calc(100% - 24px);bottom:12px}}.map-maker-workbench{border:0;border-radius:0;max-width:none}.map-maker-workbench .three-mf-splitter-rail{background:var(--surface);gap:12px;padding:18px 0 0;overflow:hidden}.map-maker-workbench .three-mf-toolmark,.map-maker-settings-tabs{flex-shrink:0;margin-inline:16px}.map-maker-settings-tabs .btn{flex:1}.map-maker-settings-scroll{scrollbar-gutter:stable;flex-direction:column;flex:1;gap:16px;min-height:0;padding:0 16px 18px;display:flex;overflow-y:auto}.map-maker-actions{border-top:1px solid var(--line);background:var(--surface);flex-shrink:0;padding:0 16px 14px}.map-maker-actions .three-mf-rail-section{border-top:0;gap:8px;padding-top:10px}.map-maker-actions .openscad-status-card{min-height:0;max-height:64px;padding:8px;overflow-y:auto}.map-maker-actions .svg-converter-alert{max-height:80px;overflow-y:auto}.map-maker-layer-list.is-basic{gap:10px}.map-maker-stage{flex-direction:column;padding:0;display:flex;overflow:hidden}.map-maker-stage .three-mf-stage-head{flex-shrink:0;padding:14px 20px}.map-maker-viewer-shell{border:0;border-radius:0;flex:1;min-height:360px;overflow:hidden}@media (min-width:981px){.map-maker-workspace-section .map-maker-viewer-shell{min-height:0}}.map-maker-map-pane,.map-maker-preview-pane,.map-maker-map{position:absolute;inset:0}.map-maker-map-pane.is-hidden,.map-maker-preview-pane.is-hidden{visibility:hidden;pointer-events:none}.map-maker-map{z-index:0}.map-maker-perspective.maplibregl-map{z-index:1;background:var(--bg);position:absolute;inset:0}.map-maker-dimension-toggle{z-index:500;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:4px;position:absolute;top:12px;right:12px}.map-maker-perspective .maplibregl-ctrl-attrib{background:var(--surface);color:var(--text)}.map-maker-perspective .maplibregl-ctrl-attrib a{color:var(--accent)}.map-maker-map.leaflet-container{background:var(--bg)}.map-maker-map.leaflet-container .leaflet-bar a,.map-maker-map.leaflet-container .leaflet-control-attribution{background-color:var(--surface);color:var(--text)}.map-maker-map .leaflet-control-attribution a{color:var(--accent)}[data-theme=dark] .map-maker-map .leaflet-draw-toolbar a{filter:invert(.9);background-color:#e6eaef}.map-maker-display-error{z-index:1000;background:var(--surface);color:var(--text);border:1px solid var(--line);align-items:center;gap:12px;padding:12px;display:flex;position:absolute;bottom:30px;left:12px;right:12px}.map-maker-display-error .btn{flex-shrink:0}.map-maker-map.leaflet-container,.map-maker-map .leaflet-control{font-family:var(--font-body)}.map-maker-view-tabs,.map-maker-shape-buttons{flex-wrap:wrap;gap:6px;display:flex}.map-maker-shape-buttons{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.map-maker-shape-buttons .btn{min-width:0}.map-maker-view-tabs .btn[aria-pressed=true]{background:var(--surface-2);border-color:var(--accent);color:var(--text)}.map-maker-search{gap:8px;display:grid}.map-maker-search>div{gap:6px;display:flex}.map-maker-search input{flex:1;min-width:0}.map-maker-place-list{gap:6px;margin:8px 0;padding:0;list-style:none;display:grid}.map-maker-place-list .btn{white-space:normal;text-align:left;justify-content:flex-start;width:100%}.map-maker-layer-list{gap:12px;display:grid}.map-maker-layer-list label{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.map-maker-layer-list input,.map-maker-check input{accent-color:var(--accent);margin-top:4px}.map-maker-layer-list span{gap:3px;display:grid}.map-maker-layer-list small{color:var(--text-3)}.map-maker-check{align-items:flex-start;gap:10px;display:flex}.map-maker-stage-footer{background:var(--surface);border-top:1px solid var(--line);flex-shrink:0;max-height:30dvh;padding:12px 20px;overflow:auto}.map-maker-notes{color:var(--text-3);margin-top:10px}.map-maker-notes summary{cursor:pointer}.map-maker-notes li{margin:6px 0}.map-maker-workbench .generator-control-fields{gap:12px;display:grid}.map-maker-workbench .three-mf-rail-section>.btn{width:100%;margin-top:8px}@media (max-width:980px){.map-maker-workspace-section .map-maker-workbench{flex-direction:column;height:auto;display:flex}.map-maker-workspace-section .map-maker-stage{height:75dvh;min-height:550px}.map-maker-workspace-section .map-maker-viewer-shell{min-height:200px}.map-maker-workspace-section .three-mf-splitter-rail{height:max(580px,100dvh - 90px);max-height:850px;overflow:hidden}.map-maker-stage .three-mf-stage-head{flex-wrap:wrap;gap:8px}}.map-maker-selection-widget{z-index:500;background:var(--surface);width:max-content;max-width:calc(100% - 16px);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px;position:absolute;transform:translate(-50%);box-shadow:0 4px 18px #0003}.map-maker-selection-buttons{gap:4px;display:flex}.map-maker-selection-buttons .btn{white-space:nowrap;min-height:40px;padding:8px}.map-maker-rotation-control{align-items:center;gap:8px;padding:8px 4px 2px;display:flex}.map-maker-rotation-control input{width:120px;accent-color:var(--accent)}.map-maker-rotation-control output{font-family:var(--font-mono);min-width:4ch}.map-maker-move-handle{cursor:grab;touch-action:none}.map-maker-move-handle:active{cursor:grabbing}.three-mf-piece-overlay{z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:min(240px,46%);max-height:calc(100% - 76px);padding:10px;position:absolute;top:12px;left:12px;overflow-y:auto;box-shadow:0 4px 16px #00000012}.three-mf-piece-overlay .three-mf-region-list{max-height:none}.three-mf-piece-overlay .three-mf-region-list button>span:last-child{overflow-wrap:anywhere;min-width:0}.three-mf-piece-overlay svg{flex-shrink:0;width:16px;height:16px}.three-mf-piece-overlay .three-mf-color-chip{place-items:center;display:grid}.model-splitter-workbench .three-mf-splitter-stage-expanded{grid-template-rows:auto minmax(var(--tool-stage-main-min-height,360px), 1fr)}.model-splitter-workbench .three-mf-splitter-stage-expanded:has(>.three-mf-stage-footer){grid-template-rows:auto minmax(var(--tool-stage-main-min-height,360px), 1fr) auto}.three-mf-piece-overlay .three-mf-piece-row{flex-flow:row;align-items:stretch;gap:4px;width:100%;min-width:0;display:flex}.three-mf-piece-overlay .three-mf-piece-row>button:first-child{flex:1 1 0;min-width:0;min-height:36px;padding:8px 10px;display:block}.three-mf-piece-overlay .three-mf-piece-row strong{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.three-mf-piece-overlay .three-mf-piece-visibility{flex:0 0 34px;justify-content:center;align-items:center;min-height:36px;padding:6px;display:flex}.three-mf-piece-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.three-mf-transform-modes{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%;margin-top:10px;display:grid}.three-mf-transform-modes button{background:var(--surface);border:1px solid var(--line-2);color:var(--text-2);cursor:pointer;font-family:var(--font-body);border-radius:7px;justify-content:center;align-items:center;gap:5px;min-width:0;padding:7px 5px;font-size:11px;line-height:1;display:flex}.three-mf-transform-modes button:hover,.three-mf-transform-modes button:focus-visible,.three-mf-transform-modes button.is-selected{border-color:var(--accent);color:var(--text);outline:none}.three-mf-transform-modes button.is-selected{background:var(--accent-soft)}.three-mf-transform-modes kbd{background:var(--surface-2);border:1px solid var(--line-2);color:var(--text);font-family:var(--font-mono);border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;display:inline-flex}.three-mf-transform-modes button.is-selected kbd{border-color:var(--accent);color:var(--accent)}.three-mf-transform-modes button:disabled{cursor:not-allowed;opacity:.55}.three-mf-workspace-error{z-index:6;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);padding:12px;position:absolute;bottom:48px;left:12px;right:12px}.bas-relief-file-input{display:none}.bas-relief-dropzone.is-dragging{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.bas-relief-mode{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);display:flex;overflow:hidden}.bas-relief-mode button{color:var(--text-2);cursor:pointer;background:0 0;border:0;flex:1;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:8px 12px;display:inline-flex}.bas-relief-mode button.is-active{background:var(--accent);color:var(--bg)}.bas-relief-mode.bas-relief-quality{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.bas-relief-quality button:nth-child(3){border-left:0}.bas-relief-quality button:nth-child(n+3){border-top:1px solid var(--line-2)}.bas-relief-quality button.is-capped:not(.is-active){opacity:.55}.bas-relief-quality button{flex-direction:column;gap:2px;min-height:62px;padding:8px 4px}.bas-relief-quality button:disabled{cursor:progress}.bas-relief-quality-name{font-weight:600}.bas-relief-quality-meta{font-family:var(--font-mono);opacity:.85;white-space:nowrap;font-size:11px;line-height:1.3}.bas-relief-options button{min-height:38px;padding:6px 4px;font-size:13px}.bas-relief-option-field{gap:8px;display:grid}.bas-relief-help.is-warning{color:var(--danger,#d94b50)}.bas-relief-quality-field{gap:8px;display:grid}.bas-relief-mode svg{width:17px;height:17px}.bas-relief-help,.bas-relief-background p,.bas-relief-source-panel p{color:var(--text-2);margin:0;font-size:13px;line-height:1.5}.bas-relief-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.bas-relief-fields .field:first-child,.bas-relief-fields .field:nth-child(3),.bas-relief-fields .field:last-child{grid-column:1/-1}.bas-relief-check{color:var(--text);align-items:flex-start;gap:9px;font-size:13px;line-height:1.4;display:flex}.bas-relief-check input{accent-color:var(--accent);margin-top:2px}.bas-relief-background{border-top:1px solid var(--line);gap:11px;padding-top:14px;display:grid}.bas-relief-control-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;padding-top:14px;display:flex}.bas-relief-control-actions .btn svg,.bas-relief-download-buttons .btn svg{width:16px;height:16px}.bas-relief-source-panel{border-top:1px solid var(--line);gap:10px;min-width:0;padding-top:14px;display:grid}.bas-relief-mask-canvas{background-color:var(--bg);background-image:linear-gradient(45deg, var(--surface-2) 25%, transparent 25%), linear-gradient(-45deg, var(--surface-2) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--surface-2) 75%), linear-gradient(-45deg, transparent 75%, var(--surface-2) 75%);border:1px solid var(--line);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;border-radius:6px;justify-self:center;max-width:100%;height:auto;display:block}.bas-relief-mask-canvas.is-pickable{cursor:crosshair}.bas-relief-feedback{pointer-events:none;z-index:2;justify-items:start;gap:6px;max-width:min(520px,100% - 120px);display:grid;position:absolute;top:12px;left:12px}.bas-relief-feedback:empty{display:none}.bas-relief-feedback p{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;margin:0;padding:8px 12px;font-size:13px;line-height:1.4;box-shadow:0 2px 8px #00000014}.bas-relief-feedback p.is-error{border-color:var(--danger,#d94b50);color:var(--danger,#d94b50)}.bas-relief-download-buttons{flex-wrap:wrap;gap:8px;display:flex}.bas-relief-rail>*{flex-shrink:0}.bas-relief-workbench .three-mf-stage-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.bas-relief-workbench .three-mf-stage-head h2{overflow-wrap:anywhere}.bas-relief-workbench .three-mf-viewer-empty svg{width:17px;height:17px}@media (max-width:980px){.bas-relief-workbench .three-mf-viewer-shell{min-height:55dvh}.bas-relief-workbench .three-mf-stage-head{flex-wrap:wrap}.bas-relief-workbench .three-mf-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
