.viewport-rotation-guide{box-sizing:border-box;z-index:5;pointer-events:auto;color:#2a4260;background:#fffffff5;border:1px solid #a8bed7;border-radius:7px;width:166px;height:218px;padding:7px 9px;position:absolute;box-shadow:0 2px 8px #1e3b5d22}.viewport-rotation-heading{justify-content:space-between;gap:5px;font-size:11px;font-weight:650;line-height:15px;display:flex}.viewport-rotation-heading span{color:#647b94;font-size:10px;font-weight:400}.viewport-rotation-controls{align-items:center;gap:3px;margin:4px 0;font-size:12px;display:flex}.viewport-rotation-controls button{background:#fff;border:1px solid #d5e0ed;border-radius:4px;width:20px;height:25px;padding:0;font-size:11px;font-weight:650}.viewport-rotation-controls .axis-x{color:#c84752}.viewport-rotation-controls .axis-y{color:#4b8740}.viewport-rotation-controls .axis-z{color:#3373ba}.viewport-rotation-controls button[aria-pressed=true]{background:#eaf3ff;border-color:currentColor}.viewport-rotation-controls input,.viewport-rotation-controls output{box-sizing:border-box;color:#263b53;text-align:right;font-variant-numeric:tabular-nums;background:#fff;border:1px solid #cbd8e8;border-radius:4px;width:100%;min-width:0;height:25px;margin-left:auto;padding:3px 5px;font-size:12px}.viewport-rotation-controls input[aria-invalid=true]{color:#ad2331;background:#fff0f0;border-color:#c6515b}.viewport-rotation-controls input:disabled{opacity:1;color:#52677f;background:#f2f6fa}.viewport-rotation-guide small{white-space:nowrap;color:#71849a;font-size:8px;line-height:12px;display:block}.rotation-protractor{color:#3373ba;pointer-events:none;width:144px;height:144px;margin:0 auto;display:block;overflow:visible}.rotation-protractor.axis-x{color:#c84752}.rotation-protractor.axis-y{color:#4b8740}.rotation-protractor.axis-view{color:#8661b3}.protractor-face{fill:#f7faff;stroke:#b9c9dc;stroke-width:1px}.protractor-tick{stroke:#9aafc4;stroke-width:1px}.protractor-tick.major{stroke:#647b94;stroke-width:1.5px}.protractor-label{fill:#425b76;text-anchor:middle;dominant-baseline:middle;font-variant-numeric:tabular-nums;font-size:10px}.protractor-zero{stroke:#bacbde;stroke-dasharray:3 3}.protractor-needle{stroke:currentColor;stroke-width:2.5px;stroke-linecap:round}.protractor-dot{fill:currentColor}.protractor-axis{fill:currentColor;text-anchor:middle;font-size:11px;font-weight:650}.viewport-rotation-controls .drag-number-input{flex:1;width:58px}.viewport-rotation-controls button{flex-shrink:0}.viewport-rotation-controls output{flex:1;width:58px}.editor-close-button{color:#385875;cursor:pointer;background:#fff;border:1px solid #c5d6e5;border-radius:5px;flex:0 0 34px;justify-content:center;align-items:center;width:34px;height:34px;padding:0;display:flex}.editor-close-button>svg{pointer-events:none;flex:none;display:block}.editor-close-button:hover:not(:disabled){color:#205c92;background:#edf4fc;border-color:#8baed0}.editor-close-button:focus-visible{outline-offset:2px;outline:2px solid #327bd2}.editor-close-button:disabled{opacity:.45;cursor:not-allowed}.sweep-editor{color:#294764;background:#fff;border:1px solid #bccfe1;border-radius:9px;flex-direction:column;width:min(1120px,100vw - 32px);height:min(790px,100dvh - 32px);display:flex;overflow:hidden;box-shadow:0 12px 45px #25445f30}.sweep-editor>header{border-bottom:1px solid #dbe5ef;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 20px;display:flex}.sweep-heading-copy{min-width:0}.sweep-heading-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.sweep-editor h2{margin:0;font-size:18px}.sweep-editor h2 small{margin-left:8px;font-size:12px;font-weight:400}.sweep-editor header p{color:#617a91;margin:6px 0 0;font-size:12px}.sweep-body{flex:1;grid-template-columns:290px minmax(0,1fr);min-height:0;display:grid}.sweep-settings{border-right:1px solid #dbe5ef;padding:16px;overflow:auto}.sweep-settings fieldset{border:1px solid #d3e1ed;border-radius:6px;margin:16px 0 0;padding:10px}.sweep-settings legend{font-size:12px;font-weight:600}.sweep-settings label{flex-direction:column;gap:5px;margin-bottom:8px;font-size:12px;display:flex}.sweep-settings input{color:#294764;background:#fff;border:1px solid #c5d6e5;border-radius:4px;width:100%;min-width:0;padding:7px}.sweep-settings p,.sweep-tip{color:#667f94;margin:9px 0 0;font-size:11px;line-height:1.7}.sweep-settings input[aria-invalid=true]{background:#fff3f1;border-color:#c95656}.sweep-diagram{background:#f1f7fb;border-radius:4px;width:100%;height:68px;margin-bottom:8px}.sweep-presets{flex-wrap:wrap;gap:5px;margin-bottom:8px;display:flex}.sweep-presets button{color:#286891;cursor:pointer;background:#f4faff;border:1px solid #bfd4e6;border-radius:4px;flex:1;padding:5px 7px}.sweep-result{flex-direction:column;gap:10px;min-width:0;min-height:0;padding:14px;display:flex}.sweep-preview-heading{justify-content:space-between;align-items:center;font-size:13px;display:flex}.sweep-preview{border:1px solid #d7e3ed;border-radius:6px;flex:1;min-height:220px;position:relative;overflow:hidden}.sweep-preview .viewport{width:100%;height:100%}.sweep-preview-status{min-height:24px;font-size:12px}.sweep-preview-status p{margin:0}.sweep-preview-status [role=alert]{color:#a3403d;background:#fff3f1;border:1px solid #eac6c1;border-radius:5px;padding:10px}.sweep-tip{margin:0}.sweep-editor>footer{border-top:1px solid #dbe5ef;justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.sweep-editor footer span{color:#6e8598;font-size:11px}.sweep-editor footer button{padding:9px 24px}.sweep-editor .primary{color:#fff;background:#327bcc;border:1px solid #327bcc}.sweep-editor .primary:disabled{opacity:.45;cursor:not-allowed}.sweep-preview .viewport-canvas{height:100%;min-height:0}@media (max-width:680px){.sweep-editor{width:calc(100vw - 16px);height:calc(100dvh - 16px)}.sweep-body{flex-direction:column;display:flex;overflow:auto}.sweep-settings{border-right:0;order:2;overflow:visible}.sweep-result{flex-shrink:0;min-height:320px}.sweep-preview{min-height:200px}.sweep-editor header{padding:12px}.sweep-editor h2 small{margin:5px 0 0;display:block}.sweep-editor footer span{display:none}.sweep-editor>footer{justify-content:flex-end}}.sweep-history{border-bottom:1px solid #dbe5ef;gap:8px;padding:7px 20px;display:flex}.sweep-history button{color:#286891;background:#f4faff;border:1px solid #bfd4e6;border-radius:4px;padding:5px 9px}.sweep-history button:disabled{opacity:.4}.sweep-settings select{color:#294764;background:#fff;border:1px solid #c5d6e5;border-radius:4px;width:100%;padding:7px}.sweep-settings summary{cursor:pointer;margin:7px 0;font-size:12px}.sweep-settings .full-button+.full-button{margin-top:6px}.sweep-settings .rail-check{flex-direction:row;align-items:center;display:flex}.sweep-settings input[type=checkbox]{width:auto}.rail-unverified{background:#fff7e6;border:1px solid #eed3a3;border-radius:5px;padding:8px;font-size:11px;line-height:1.6}.sweep-preview-status{max-height:190px;overflow:auto}.sweep-preview-status ul{padding-left:18px}.sweep-preview-status .rail-unverified{margin-top:7px}.sweep-editor footer>span{margin-right:auto}.workplane-trim-dialog>.sweep-result{flex:1}.workplane-trim-dialog>.sweep-result .sweep-preview{min-height:160px}.sweep-editor[data-simple=true] .sweep-advanced{display:none}.sweep-preview-reference{color:#74511e;pointer-events:none;background:#fff7e6ed;border:1px solid #e6c990;border-radius:5px;margin:0;padding:8px;font-size:12px;position:absolute;bottom:36px;left:10px;right:10px}.sweep-error-actions{background:#fff7e6;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 20px;font-size:12px;display:flex}.sweep-error-actions button{flex-shrink:0}.sweep-guide{background:#f3f8fc;border-bottom:1px solid #dbe5ef;flex-shrink:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 20px;display:grid}.sweep-guide button{text-align:left;color:#294764;cursor:pointer;background:#fff;border:1px solid #c8dbe9;border-radius:6px;align-items:center;gap:10px;min-width:0;padding:8px 12px;display:flex}.sweep-guide b{color:#256ab2;background:#e4f1ff;border-radius:50%;flex-shrink:0;place-items:center;width:25px;height:25px;font-size:13px;display:grid}.sweep-guide span{font-size:12px;font-weight:600}.sweep-guide small{color:#617a91;margin-top:3px;font-size:11px;font-weight:400;display:block}.sweep-guide button:hover,.sweep-starters button:hover{background:#eaf4ff;border-color:#7ca8d3}.sweep-guide button:focus-visible,.sweep-starters button:focus-visible,.sweep-editor [data-sweep-step]:focus{outline-offset:2px;outline:2px solid #3984d0}.sweep-history{flex-wrap:wrap;flex-shrink:0;align-items:center}.sweep-detail-toggle{cursor:pointer;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.sweep-detail-toggle input{accent-color:#327bcc}.sweep-starters{background:#f1f7fc;border:1px solid #ccdeec;border-radius:6px;margin-bottom:12px;padding:10px}.sweep-starters strong{font-size:12px}.sweep-starters p{margin:5px 0 8px}.sweep-starters>div{gap:5px;display:flex}.sweep-starters button{color:#286891;cursor:pointer;background:#fff;border:1px solid #b9d0e4;border-radius:4px;flex:1;min-width:0;padding:8px 3px;font-size:11px}.sweep-tip summary{cursor:pointer}.sweep-tip p{margin:6px 0}.sweep-editor>footer,.sweep-editor>footer button{flex-shrink:0}.sweep-starters button{white-space:nowrap}.sweep-editor[data-simple=true] .sweep-presets{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.sweep-editor[data-simple=true] .sweep-presets button{white-space:nowrap;padding:7px}@media (max-width:680px){.sweep-guide{gap:4px;padding:7px 10px}.sweep-guide button{gap:5px;padding:7px 5px}.sweep-guide b{width:20px;height:20px;font-size:11px}.sweep-guide span{font-size:11px}.sweep-guide small{display:none}.sweep-history{padding:7px 12px}.sweep-history button{padding:5px;font-size:11px}.sweep-detail-toggle{font-size:11px}.sweep-editor>footer{gap:8px;padding:10px 12px}.sweep-editor>footer button{padding:9px 12px}}.optimization-dialog{color:#26333c;background:#fbfaf7;border:1px solid #d9d6d0;border-radius:16px;width:min(1120px,100vw - 48px);max-width:none;max-height:calc(100vh - 48px);padding:0;box-shadow:0 22px 80px #17252e40}.optimization-dialog::backdrop{background:#17252e80}.optimization-header{border-bottom:1px solid #deddd7;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.optimization-header h2{margin:0 0 4px;font-size:20px}.optimization-header p{color:#687276;margin:0;font-size:12px}.optimization-body{grid-template-columns:minmax(300px,.95fr) minmax(360px,1.05fr);height:min(660px,100vh - 220px);min-height:300px;display:grid}.optimization-visual{border-right:1px solid #deddd7;flex-direction:column;min-width:0;min-height:0;display:flex}.optimization-view{flex:1;min-height:160px;position:relative}.optimization-view .viewport-canvas{height:100%}.optimization-view-label{pointer-events:none;background:#fffdf1eb;border-radius:7px;padding:6px 9px;font-size:12px;position:absolute;top:12px;left:14px}.optimization-view-tools{justify-content:center;gap:8px;padding:8px;display:flex}.optimization-ground{background:#f4f2e9;border-top:1px solid #e3e0d7;max-height:300px;padding:14px 18px;overflow:auto}.optimization-ground h3{margin:0 0 8px;font-size:14px}.optimization-ground p{margin:8px 0;font-size:12px;line-height:1.65}.optimization-details{padding:18px;overflow:auto}.optimization-inputs{grid-template-columns:1.35fr 1fr 1fr;gap:10px;display:grid}.optimization-summary{background:#fff5df;border-left:3px solid #b77d21;padding:10px 12px;font-size:12px;line-height:1.7}.optimization-checks{flex-direction:column;gap:10px;margin:12px 0;padding:0;list-style:none;display:flex}.optimization-check{background:#fff;border:1px solid #dadfdc;border-radius:9px;padding:12px}.optimization-check>div{justify-content:space-between;align-items:start;gap:8px;display:flex}.optimization-check h3{margin:0;font-size:13px}.optimization-check span{white-space:nowrap;color:#557268;font-size:10px}.optimization-check p{margin:7px 0 0;font-size:12px;line-height:1.7}.optimization-check.is-warning{border-color:#e0c484}.optimization-check.is-warning span{color:#85641d}.optimization-check.is-error{border-color:#dfa6a0}.optimization-check.is-error span{color:#a94136}.optimization-check.is-unanalysed{background:#f3f4f4}.optimization-check.is-unanalysed span{color:#687276}.optimization-check.is-sampled{background:#f3f7fc;border-color:#a4b5cc}.optimization-check.is-sampled span{color:#526983}.optimization-thickness{background:#f3f7fc;border:1px solid #a4b5cc;border-radius:9px;padding:12px}.optimization-thickness h3{margin:0;font-size:13px}.optimization-thickness p,.optimization-thickness li{font-size:12px;line-height:1.65}.optimization-thickness details{border-top:1px solid #d8e1ed;padding:9px 0}.optimization-thickness summary{cursor:pointer;font-size:12px}.optimization-thickness ol{padding-left:20px}.optimization-thickness li{overflow-wrap:anywhere;margin-bottom:8px}.optimization-footer{border-top:1px solid #deddd7;justify-content:flex-end;align-items:center;gap:10px;padding:14px 22px;display:flex}.optimization-footer>span{color:#a94136;margin-right:auto;font-size:12px}@media (max-width:760px){.optimization-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.optimization-body{height:calc(100vh - 195px);display:block;overflow:auto}.optimization-visual{border-right:0}.optimization-view{flex:none;height:220px}.optimization-details{overflow:visible}.optimization-header,.optimization-footer{padding:12px}}.optimization-launcher{border-bottom:1px solid #d8e1ed;flex-shrink:0;padding:12px}.optimization-launcher p{margin:7px 0 0;font-size:11px;line-height:1.6}.revolve-axis-label{fill:#4a7769;font-size:12px;font-weight:700}.revolve-coordinate-note{color:#377661;background:#edf8f3;border:1px solid #bad9cb;border-radius:5px;padding:8px;font-size:11px;line-height:1.7}.sketch-editor-heading{background:#fff;border-bottom:1px solid #dce5ef;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.sketch-editor-heading h2{color:#294764;min-width:0;margin:0;font-size:15px;font-weight:600;line-height:1.5}.sketch-cursor-coordinates{z-index:1;box-sizing:border-box;color:#294764;font-variant-numeric:tabular-nums;pointer-events:none;background:#ffffffed;border:1px solid #c6d9e8;border-radius:4px;max-width:calc(100% - 16px);padding:5px 8px;font-size:11px;position:absolute;top:8px;left:8px}.sketch-control-fields select{min-width:0;max-width:100%}.bezier-editor>.sketch-toolbar,.scribble-editor>.sketch-toolbar{flex-shrink:0}.sketch-strict-number[aria-invalid=true]{color:#a93d3d;background:#fff2f2!important;border-color:#b84848!important}.scribble-editor{background:#fff;border:1px solid #bccfe1;border-radius:8px;outline:none;flex-direction:column;width:min(1180px,100%);height:min(760px,100dvh - 40px);display:flex;overflow:hidden;box-shadow:0 12px 45px #25445f30}.scribble-editor .sketch-editor-body{flex:1;min-height:0}.scribble-editor .sketch-properties{overflow:auto}.scribble-editor .sketch-toolbar button[aria-pressed=true]{color:#17689e;background:#e0effb;border-color:#8ab2d5}.scribble-editor .sketch-properties label{flex-direction:column;gap:5px;margin-bottom:12px;display:flex}.scribble-editor .sketch-properties input{color:#294764;background:#fff;border:1px solid #c5d6e5;border-radius:4px;min-width:0;padding:6px}.scribble-editor .sketch-properties p{color:#6b8096;font-size:11px;line-height:1.7}.scribble-editor .sketch-properties p[role=alert]{color:#a6443e;background:#fff3f1;border:1px solid #e8c2bc;border-radius:5px;padding:8px}.scribble-editor .scribble-apply{width:100%;margin-top:8px}.scribble-editor .scribble-count{color:#55758e;margin:8px 0 14px;font-size:11px}.scribble-editor .sketch-canvas-wrap{min-width:0;min-height:0}.sketch-path-unclosed{background:#fff2f2!important;border:2px solid #c84d50!important}.sketch-snap-toggle{align-items:center;gap:6px;flex-direction:row!important;display:flex!important}.sketch-snap-toggle input{width:auto!important}.sketch-control-fields small{color:#637b91;font-size:10px;line-height:1.5;display:block}.spatial-path-editor{color:#294764;background:#fff;border:1px solid #bdcfdf;border-radius:9px;flex-direction:column;width:min(1220px,100vw - 24px);height:min(850px,100dvh - 24px);display:flex;overflow:hidden}.spatial-path-editor.is-maximized{z-index:1;border:0;border-radius:0;width:100vw;height:100dvh;position:fixed;inset:0}.spatial-window-controls{flex-shrink:0;align-items:center;gap:8px;display:flex}.spatial-window-controls>button:not(.editor-close-button){color:#286891;white-space:nowrap;cursor:pointer;background:#f4faff;border:1px solid #bfd4e6;border-radius:4px;padding:6px 10px}.spatial-point-axes [data-axis]{cursor:grab}.spatial-point-axes [aria-disabled=true]{opacity:.35;cursor:default}.spatial-point-axes [data-axis]:focus-visible{filter:drop-shadow(0 0 2px #1b5fbd);outline:none}.spatial-path-editor>header{border-bottom:1px solid #d5e2ed;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 18px;display:flex}.spatial-path-editor h2{margin:0;font-size:18px}.spatial-path-editor p{margin:7px 0;font-size:12px;line-height:1.6}.spatial-toolbar{border-bottom:1px solid #d5e2ed;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 18px;font-size:12px;display:flex}.spatial-main{flex:1;grid-template-columns:minmax(0,1fr) 235px;min-height:0;display:grid}.spatial-views{background:#ceddeb;grid-template-rows:1fr 1fr;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px;min-height:0;display:grid}.spatial-view{background:#edf5fc;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.spatial-view-heading{white-space:nowrap;background:#e8f0f8;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;height:30px;padding:0 9px;display:flex}.spatial-view-heading strong{font-size:12px}.spatial-view-heading span{color:#55728b;font-size:10px}.spatial-view.is-active .spatial-view-heading{background:#dcecff;box-shadow:inset 0 2px #327bcc}.spatial-view svg{touch-action:none;-webkit-user-select:none;user-select:none;flex:1;width:100%;min-height:0;display:block}.spatial-view svg text{pointer-events:none;paint-order:stroke;stroke:#f8fbfe;stroke-width:3px;stroke-linejoin:round;font-size:11px}.spatial-view svg text:not([fill]){fill:#476783}.spatial-view svg .spatial-axis-label{font-size:12px;font-weight:700}.spatial-view svg circle[data-point]{cursor:move}.spatial-view svg:focus-visible{outline-offset:-3px;outline:2px solid #2a80d7}.spatial-grid{pointer-events:none}.spatial-grid-scale{color:#55728b;background:#f7fbfe;flex-shrink:0;padding:3px 8px;font-size:10px}.spatial-toolbar>span{color:#617b91;font-size:11px}.spatial-properties{border-left:1px solid #d5e2ed;padding:12px;font-size:12px;overflow:auto}.spatial-properties fieldset{border:1px solid #d5e2ed;border-radius:4px;margin:10px 0;padding:9px}.spatial-properties label{align-items:center;gap:6px;margin:6px 0;display:flex}.spatial-properties input:not([type=checkbox]),.spatial-properties select{border:1px solid #b9cfe1;border-radius:3px;width:100%;min-width:0;padding:5px}.spatial-properties button,.spatial-toolbar button{color:#286891;cursor:pointer;background:#f4faff;border:1px solid #bfd4e6;border-radius:4px;padding:5px 8px}.spatial-properties button:disabled,.spatial-toolbar button:disabled{opacity:.4;cursor:default}.spatial-properties button+button{margin-top:5px}.spatial-path-editor>footer{border-top:1px solid #d5e2ed;flex-shrink:0;align-items:center;gap:10px;padding:12px 18px;display:flex}.spatial-path-editor>footer span{margin-right:auto;font-size:12px}.spatial-error{color:#a23a36;background:#fff0ed;padding:8px 18px}@media (max-width:680px){.spatial-main{flex-direction:column;display:flex;overflow:auto}.spatial-views{flex-shrink:0;height:480px}.spatial-view-heading{padding:0 5px}.spatial-view-heading strong{font-size:11px}.spatial-view-heading span{display:none}.spatial-grid-scale{padding:3px 4px;font-size:9px}.spatial-properties{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid;overflow:visible}.spatial-path-editor>footer span{display:none}.spatial-path-editor>footer{justify-content:flex-end}.spatial-path-editor>header p{display:none}}:root{color:#253c58;font-synthesis:none;--orange:#f58b1f;--line:#d8e1ed;--muted:#687c96;--blue:#327bd2;--green:#47aa55;background:#edf2f8;font-family:Yu Gothic UI,Hiragino Kaku Gothic ProN,Meiryo,system-ui,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #6aa9f2}input,select,button{color:inherit}a{color:#226cbd}input[type=number]{font-variant-numeric:tabular-nums}button svg{flex-shrink:0}.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-header{background:var(--orange);color:#fff;flex-shrink:0;align-items:center;gap:28px;height:64px;padding:0 20px;display:flex}.brand{color:#fff;white-space:nowrap;align-items:center;gap:10px;font-size:17px;font-weight:600;text-decoration:none;display:flex}.brand b{font-weight:800}.project-title{flex-direction:column;flex:1;gap:2px;min-width:120px;max-width:350px;display:flex}.project-title input{color:#fff;background:0 0;border:1px solid #0000;border-radius:5px;width:100%;padding:4px 6px;font-size:16px;font-weight:650}.project-title input:focus,.project-title input:hover{background:#ffffff12;border-color:#ffffff70}.project-title span{color:#fff9e9;align-items:center;gap:4px;padding-left:7px;font-size:10px;display:flex}.header-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.button{white-space:nowrap;background:#fff;border:1px solid #cbd7e5;border-radius:5px;justify-content:center;align-items:center;gap:6px;min-height:32px;padding:6px 10px;font-weight:600;transition:background .1s;display:inline-flex}.button:hover:not(:disabled){background:#eef5fe}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.button.primary:hover:not(:disabled){background:#2268b7}.button.secondary{background:#f2f6fc}.header-button{color:#fff;background:#ffffff18;border-color:#ffffff4c;min-height:33px;font-size:12px}.header-button:hover:not(:disabled){background:#ffffff2d}.icon-button{background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;min-width:30px;min-height:30px;padding:7px;display:inline-flex}.icon-button:hover:not(:disabled){background:#e6eff9}.header-help:hover{background:#fff2}.icon-button.danger{color:#c35a57}.workspace-toolbar{border-bottom:1px solid var(--line);background:#fff;flex-shrink:0;align-items:stretch;gap:12px;height:47px;padding:0 12px;display:flex}.mode-tabs{align-items:stretch;gap:3px;display:flex}.mode-tabs button{color:#6a7e96;background:#fff;border:0;border-bottom:3px solid #0000;align-items:center;gap:7px;padding:0 16px;font-weight:650;display:flex}.mode-tabs button.active{color:#2b77c8;background:#f5f9fe;border-bottom-color:#438fe0}.workspace-actions{align-items:center;gap:3px;margin-left:auto;display:flex}.examples{align-items:center;margin-right:8px;display:flex;position:relative}.examples select{appearance:none;background:#f8fafc;border:1px solid #d8e2ee;border-radius:5px;max-width:170px;padding:7px 28px 7px 10px;font-weight:600}.examples>svg{pointer-events:none;position:absolute;right:9px}.export-button{color:#3678bc;margin-left:8px;font-size:12px}.main-workspace{flex:1;grid-template-columns:minmax(520px,56%) minmax(320px,1fr);gap:10px;min-height:0;padding:10px;display:grid}.main-workspace.mode-edit,.main-workspace.mode-print{grid-template-columns:320px minmax(360px,1fr)}.block-panel,.scene-panel,.edit-panel,.print-sidebar{background:#fff;border:1px solid #d5e0ed;border-radius:7px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.block-panel[hidden],.edit-panel[hidden],.print-sidebar[hidden]{display:none}.panel-heading{background:#fbfcfe;border-bottom:1px solid #e4eaf3;flex-shrink:0;justify-content:space-between;align-items:center;gap:5px;height:40px;padding:0 12px;display:flex}.panel-heading>div{align-items:center;gap:7px;display:flex}.panel-heading strong{font-size:12px;font-weight:700}.panel-heading>div>svg{color:#6c85a5}.text-button{color:#6c819b;white-space:nowrap;background:0 0;border:0;border-radius:4px;align-items:center;gap:4px;padding:5px;font-size:11px;font-weight:600;display:inline-flex}.text-button:hover:not(:disabled){color:#3275bd;background:#eaf2fb}.blockly-editor{flex:1;width:100%;min-height:0;position:relative}.blockly-editor .blocklyToolboxDiv{font-family:inherit;font-size:12px}.blocklyTreeRow{height:37px!important;padding-top:8px!important}.blocklyTreeLabel{font-weight:600;font-family:inherit!important;font-size:12px!important}.program-controls{background:#fbfcff;border-top:1px solid #e1e9f3;flex-shrink:0;justify-content:space-between;align-items:center;height:57px;padding:9px 13px;display:flex}.program-hint{color:#7b8ca3;font-size:11px}.run-button{color:#fff;background:#4db75b;border:1px solid #359c46;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:9px 22px;font-size:14px;font-weight:700;display:flex;box-shadow:0 2px #359c46}.run-button:hover{background:#44ab52}.run-button.stop{background:#d85e56;border-color:#b94740;box-shadow:0 2px #b94740}.scene-panel{position:relative}.viewport-controls{gap:2px!important}.viewport-controls .text-button{padding:5px 8px}.scene-stage{flex:1;min-height:0;position:relative;overflow:hidden}.viewport-canvas{position:absolute;inset:0}.viewport-canvas canvas{touch-action:none;display:block}.bed-label{color:#6881a2;pointer-events:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#ffffffc7;border:1px solid #cfdded;border-radius:4px;padding:5px 8px;font-size:10px;position:absolute;bottom:12px;left:15px}.scene-footer{background:#fff;border-top:1px solid #dce6f2;flex-shrink:0;justify-content:space-between;align-items:center;height:47px;padding:0 12px;display:flex}.model-metrics{flex-direction:column;gap:3px;display:flex}.model-metrics strong{font-size:11px}.model-metrics span{color:#8292a6;font-variant-numeric:tabular-nums;font-size:10px}.app-status{color:#7b8ba1;background:#f7f9fc;border-top:1px solid #dce4ef;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;height:26px;padding:0 16px;font-size:10px;display:flex}.app-status>span:first-child{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;display:flex;overflow:hidden}.app-status i{background:#69ad7a;border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.app-status .status-running i{background:#f4aa48}.working-overlay{z-index:2;background:#fffffff2;border:1px solid #cadbef;border-radius:7px;align-items:center;gap:10px;padding:11px 12px;display:flex;position:absolute;top:16px;left:16px;right:16px;box-shadow:0 4px 18px #213f6515}.working-overlay>div{flex-direction:column;flex:1;gap:4px;display:flex}.working-overlay strong{font-size:11px}.working-overlay small{color:#71869e;font-size:10px}.spinner{border:2px solid #d2e0f0;border-top-color:#4b91d7;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:1s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.empty-scene{color:#89a0bb;text-align:center;background:#f6f9fce0;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px;display:flex;position:absolute;inset:0}.empty-scene strong{color:#527293;font-size:15px}.empty-scene span{font-size:12px}.object-list{border-bottom:1px solid var(--line);flex-shrink:0;min-height:90px;max-height:39%;padding:7px;overflow:auto}.object-item{text-align:left;background:#fff;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;width:100%;min-height:34px;margin-bottom:2px;padding:5px 8px;font-size:11px;display:flex}.object-item.selected{color:#236db8;background:#eaf3ff;border-color:#9fc5f0}.object-item:hover{background:#f0f6fe}.object-swatch{border:1px solid #00000015;border-radius:3px;flex-shrink:0;width:17px;height:17px}.object-swatch.is-hole{background-image:repeating-linear-gradient(135deg,#0000,#0000 3px,#ffffffb0 3px 6px)}.object-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.object-item small{color:#8b9ab0;font-size:10px}.empty-object-list,.selection-hint{color:#7e90a8;padding:14px;font-size:11px;line-height:1.9}.count-badge{color:#6a83a4;text-align:center;background:#e7eef7;border-radius:4px;min-width:20px;padding:3px 4px;font-size:10px}.selection-actions{border-bottom:1px solid var(--line);gap:6px;padding:9px;display:flex}.selection-actions .button{flex:1;font-size:11px}.property-panel{flex:1;padding:12px;overflow:auto}.property-heading{justify-content:space-between;align-items:center;gap:5px;padding-bottom:10px;display:flex}.property-heading strong{font-size:12px}.property-heading span{color:#7c8da4;text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:10px;overflow:hidden}.form-field{color:#6a7e98;flex-direction:column;gap:6px;margin-bottom:10px;font-size:11px;display:flex}.form-field input,.form-field select,.rotation-fields input,.rotation-fields select{color:#2a4260;background:#fff;border:1px solid #cbd8e8;border-radius:4px;min-width:0;min-height:31px;padding:7px 8px}.property-panel section{border-top:1px solid #e5ecf4;margin-top:11px;padding-top:10px}.property-panel h3{color:#627a97;align-items:center;gap:5px;margin:0 0 9px;font-size:11px;font-weight:650;display:flex}.property-panel h3 small{margin-left:auto;font-size:10px;font-weight:400}.triple-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.triple-fields label{color:#8394aa;flex-direction:column;gap:4px;font-size:10px;display:flex}.triple-fields input{color:#36506f;background:#fff;border:1px solid #cbd8e8;border-radius:4px;width:100%;min-width:0;padding:7px 5px;font-size:11px}.rotation-fields{align-items:center;gap:5px;display:flex}.rotation-fields select{width:63px;padding:6px 4px;font-size:11px}.rotation-fields input{width:75px;padding:7px 5px;font-size:11px}.rotation-fields span{color:#8497ae;font-size:12px}.rotation-fields .button{margin-left:auto;font-size:11px}.solid-hole{align-items:center;gap:6px;display:flex}.solid-hole button{background:#f9fbfe;border:1px solid #d2deeb;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:5px;min-height:34px;font-size:11px;display:flex}.solid-hole button.active{color:#2d78c6;background:#ebf4ff;border-color:#8ebbea}.solid-hole input{background:#fff;border:1px solid #d2deeb;border-radius:4px;width:33px;height:33px;padding:2px}.solid-dot,.hole-dot{background:#ef8d32;border-radius:50%;width:14px;height:14px;display:inline-block}.hole-dot{background:repeating-linear-gradient(135deg,#9aacbf,#9aacbf 2px,#d5dfe9 2px 4px)}.field-note{color:#8394a9;margin:7px 0 0;font-size:10px;line-height:1.7}.print-sidebar{overflow:auto}.print-panel{padding:13px;overflow:auto}.print-panel h2{align-items:center;gap:7px;margin:0 0 13px;font-size:14px;display:flex}.print-panel h3{border-top:1px solid var(--line);margin:15px 0 10px;padding-top:12px;font-size:12px}.print-panel section{margin-bottom:10px}.field-grid{grid-template-columns:1fr 1fr;gap:0 10px;display:grid}.full-button{width:100%;min-height:36px;display:flex}.print-panel .primary{margin:6px 0}.print-panel p{color:#6d819c;font-size:11px;line-height:1.7}.print-panel progress{width:100%;accent-color:var(--blue);height:8px}.print-panel input[type=range]{accent-color:#ed8b31;width:100%}.print-panel label:has(input[type=checkbox]){align-items:flex-start;gap:6px;font-size:11px;line-height:1.8;display:flex}.print-panel input[type=checkbox]{accent-color:var(--blue);flex-shrink:0}.print-panel .button-group{gap:6px;margin-top:8px;display:flex}.print-panel .button-group>*{flex:1}.print-panel dl{background:#f4f8fd;border:1px solid #dde7f3;border-radius:4px;grid-template-columns:1fr 1fr;gap:8px;margin:11px 0;padding:10px;font-size:11px;display:grid}.print-panel dt{color:#8193aa}.print-panel dd{text-align:right;margin:0;font-weight:600}.print-panel .status{color:#4e8c60;background:#edf7f0;border-radius:4px;padding:8px;font-size:11px}.print-panel .warning{color:#9a763a;background:#fff9eb;border:1px solid #ecd8b2;border-radius:4px;padding:8px;font-size:11px}.print-panel .error{color:#b56a63;background:#fff5f4;border:1px solid #efc8c5;border-radius:4px;padding:8px;font-size:11px}.print-panel a.button{text-decoration:none}.print-panel .muted{color:#8b9bb0;font-size:10px}.print-panel .download-row{gap:6px;margin:10px 0;display:flex}.print-panel .download-row>*{flex:1;font-size:11px}.notice{z-index:20;color:#4275a6;background:#fff;border:1px solid #bbd4ee;border-radius:6px;align-items:center;gap:14px;max-width:min(650px,90vw);padding:9px 9px 9px 15px;font-size:12px;line-height:1.7;display:flex;position:fixed;bottom:40px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #23476d26}.notice.is-error{color:#b1645d;background:#fffaf9;border-color:#e8beba}.notice .icon-button{flex-shrink:0}.modal-backdrop{z-index:30;background:#1b345778;justify-content:center;align-items:center;padding:25px;display:flex;position:fixed;inset:0}.help-modal{background:#fff;border-radius:10px;width:510px;max-width:100%;max-height:90dvh;padding:22px;overflow:auto;box-shadow:0 20px 70px #1932503b}.modal-title{justify-content:space-between;align-items:center;display:flex}.modal-title h2{margin:0;font-size:19px}.help-modal ol{padding-left:21px;font-size:13px;line-height:1.9}.help-modal li{margin-top:15px}.help-modal p{color:#687f9d;margin:6px 0;font-size:12px;line-height:1.9}.help-note{background:#f4f8fe;border:1px solid #d8e5f3;border-radius:4px;padding:11px}.help-modal>.button{margin-top:13px}.hidden-input{display:none!important}@media (max-width:1150px){.app-header{gap:14px;padding:0 12px}.brand{font-size:15px}.header-button{padding:6px 8px;font-size:11px}.header-button svg{display:none}.project-title{max-width:240px}.mode-tabs button{padding:0 10px;font-size:12px}.main-workspace{grid-template-columns:minmax(430px,55%) minmax(280px,1fr)}.program-hint{max-width:230px}.examples select{max-width:135px}}@media (max-width:850px){.app-header{gap:10px;height:56px}.brand span{display:none}.project-title input{font-size:14px}.project-title span{font-size:9px}.header-actions{gap:2px}.header-button{padding:5px}.header-help{display:none}.workspace-toolbar{gap:4px;padding:0 6px}.mode-tabs button{gap:3px;padding:0 7px;font-size:11px}.mode-tabs svg{width:14px}.examples{display:none}.export-button{margin-left:3px;padding:4px;font-size:10px}.main-workspace{grid-template-rows:52% 48%;grid-template-columns:minmax(0,1fr);gap:8px;padding:7px}.main-workspace.mode-edit,.main-workspace.mode-print{grid-template-rows:1fr;grid-template-columns:270px minmax(260px,1fr)}.program-controls{height:47px}.program-hint{font-size:10px}.run-button{padding:6px 15px}.scene-footer{height:40px}.app-status>span:last-child{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.full-button{cursor:pointer;background:#fff;border:1px solid #cbd7e5;border-radius:5px;justify-content:center;align-items:center;padding:8px 10px;font-weight:650;text-decoration:none}.full-button.primary{color:#fff;background:#327bd2;border-color:#327bd2}.full-button.primary:hover:not(:disabled){background:#2268b7}.full-button.secondary{color:#416f9e;background:#f2f6fc}.full-button:disabled{cursor:default}.panel-section{padding-bottom:10px}.field-help{margin:6px 0 10px;color:#8294ad!important;font-size:10px!important;line-height:1.8!important}.checkbox-field{color:#59728f;margin:8px 0}.inline-warning,.inline-error{border-radius:4px;padding:8px 9px;font-size:11px;line-height:1.8}.inline-warning{background:#fff9eb;border:1px solid #ecd8b2;color:#9a763a!important}.inline-error{background:#fff5f4;border:1px solid #efc8c5;color:#b56a63!important}.print-panel .slice-metrics{padding:10px;display:block}.slice-metrics>div{justify-content:space-between;align-items:center;gap:8px;padding:5px 0;display:flex}.pivot-field{color:#8093aa;justify-content:space-between;align-items:center;gap:7px;margin-top:7px;font-size:10px;display:flex}.pivot-field select{background:#fff;border:1px solid #cbd8e8;border-radius:4px;max-width:180px;padding:5px 7px;font-size:11px}.add-shape{border-bottom:1px solid #d8e1ed;gap:7px;padding:9px;display:flex}.add-shape select{background:#f8fbfe;border:1px solid #cbd8e8;border-radius:4px;flex:1;min-width:0;padding:6px 8px;font-size:11px}.add-shape .button{font-size:11px}.editor-shell{flex-direction:column;flex:1;min-height:0;display:flex}.editor-shell[hidden]{display:none}.brand{cursor:pointer;background:0 0;border:0;padding:0}.main-workspace.with-library{grid-template-columns:260px minmax(300px,1fr) 270px}.ungroup-button{text-align:center;justify-content:center;margin:5px 10px}.library-save-button{color:#806043;background:#fffbf2;font-size:11px}.dashboard{background:#f5f7fa;height:100%;overflow:auto}.dashboard-header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:20px;padding:22px max(28px,50vw - 580px);display:flex}.dashboard-brand{color:#315477;align-items:center;gap:12px;display:flex}.dashboard-brand>svg{color:#ef8d32}.dashboard-brand h1{margin:0;font-size:20px;font-weight:550}.dashboard-brand b{font-weight:800}.dashboard-actions{gap:8px;display:flex}.dashboard-start,.dashboard-projects{max-width:1160px;margin:32px auto;padding:0 28px}.dashboard-intro h2{letter-spacing:.01em;margin:0 0 9px;font-size:25px;font-weight:700}.dashboard-intro p{color:#6d8098;margin:0 0 22px;line-height:1.8}.dashboard-create-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.dashboard-create-button{text-align:left;background:#fff;border:1px solid #d4dfea;border-radius:10px;flex-direction:column;align-items:flex-start;padding:12px 20px 24px;transition:box-shadow .15s,transform .15s;display:flex;position:relative;box-shadow:0 2px 6px #2d49680a}.dashboard-create-button:hover{border-color:#8bb4df;transform:translateY(-2px);box-shadow:0 7px 24px #29486c18}.dashboard-create-button.design{border-top:4px solid #4c97ff}.dashboard-create-button.code{border-top:4px solid #f4ab3d}.dashboard-create-button.typescript{border-top:4px solid #758dd8}.dashboard-design-mark{width:100%;height:135px}.dashboard-create-button>span{flex-direction:column;gap:8px;display:flex}.dashboard-create-button strong{font-size:17px}.dashboard-create-button small{color:#74859b;padding-right:20px;font-size:12px;line-height:1.7}.dashboard-create-icon{color:#8ba2bb;position:absolute;bottom:26px;right:19px}.dashboard-projects-heading{align-items:center;gap:15px;margin-bottom:17px;display:flex}.dashboard-projects-heading h2{margin:0;font-size:17px}.dashboard-projects-heading span{color:#8797aa;font-size:12px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:18px;display:grid}.project-card{background:#fff;border:1px solid #d6e0ea;border-radius:9px;overflow:hidden}.project-preview{background:#edf5ff;border:0;width:100%;height:155px;position:relative}.project-preview.code{background:#fff6e9}.project-preview:hover{filter:brightness(.97)}.project-preview .dashboard-design-mark{height:145px}.project-mode{color:#6a8198;background:#fff;border:1px solid #dce4ec;border-radius:20px;padding:4px 8px;font-size:10px;position:absolute;top:9px;right:9px}.project-card-body{padding:14px 15px 8px}.project-card-body h3{margin:0 0 7px;font-size:14px}.project-card-body h3 button{text-align:left;background:0 0;border:0;padding:0;font-weight:700}.project-saved-at,.project-counts{color:#8493a6;margin:6px 0;font-size:11px}.project-card-actions{align-items:center;gap:6px;padding:9px 12px 13px;display:flex}.project-card-actions .button{flex:1;font-size:11px}.dashboard-empty{text-align:center;color:#8295ad;background:#fafdff;border:1px dashed #cbd9e8;border-radius:9px;padding:40px}.dashboard-empty h3{color:#4a6a8b;font-size:15px}.dashboard-empty p{line-height:1.8}.dashboard-empty>.button{margin-top:12px}.dashboard-delete-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.button.danger{color:#fff;background:#cf635e;border-color:#bc534e}.shape-library{background:#fff;border:1px solid #d5e0ed;border-radius:7px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.shape-library-header{color:#fff;background:#327bd2;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.shape-library-header h2{margin:0;font-size:14px}.shape-library-header button{color:#fff;background:#ffffff17;border:1px solid #ffffff60;border-radius:4px;padding:5px 7px;font-size:11px}.shape-category-control,.shape-search{color:#8492a6;flex-direction:column;gap:5px;padding:10px 12px 0;font-size:10px;display:flex}.shape-category-control select,.shape-search input{background:#f9fbfd;border:1px solid #d5dfeb;border-radius:5px;width:100%;padding:8px 9px;font-size:12px}.shape-tag-chips{flex-wrap:wrap;gap:5px;max-height:100px;padding:10px 12px;display:flex;overflow:auto}.shape-tag-chips button{color:#7387a0;background:#f6f9fd;border:1px solid #dde5f0;border-radius:15px;padding:4px 8px;font-size:10px}.shape-tag-chips button[aria-pressed=true]{color:#246bae;background:#e5f0ff;border-color:#a6c9ee}.shape-library-count{color:#8494a9;border-bottom:1px solid #e6edf5;padding:7px 12px;font-size:10px}.shape-library-results{flex:1;padding:9px;overflow:auto}.shape-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.shape-card-wrap{background:#f9fbfe;border:1px solid #e0e7f0;border-radius:6px;min-width:0;position:relative;overflow:hidden}.shape-card{text-align:center;background:0 0;border:0;flex-direction:column;align-items:center;gap:5px;width:100%;padding:12px 5px 9px;display:flex}.shape-card:hover:not(:disabled){background:#eef5ff}.shape-thumb{max-width:100%;height:75px}.shape-card-name{overflow-wrap:anywhere;font-size:11px;line-height:1.5}.shape-card-tags{color:#91a0b1;font-size:9px}.shape-card-count{color:#ad9575;font-size:9px}.shape-favorite{color:#a9b5c4;background:0 0;border:0;padding:3px 5px;font-size:16px;position:absolute;top:2px;right:3px}.shape-favorite[aria-pressed=true]{color:#e2a733}.shape-favorite:hover{background:#fff4d8;border-radius:4px}.code-shape-actions{padding:0 6px 7px}.code-shape-actions button{color:#947047;background:#fff9ed;border:1px solid #ddcfb8;border-radius:4px;width:100%;padding:5px;font-size:10px}.shape-library-empty{color:#7a8ca3;padding:9px;font-size:11px;line-height:1.9}.shape-library-empty button{background:#fff;border:1px solid #d3dfec;border-radius:4px;padding:6px;font-size:11px}.shape-library-hint{color:#9aa8b8;border-top:1px solid #e6edf5;margin:0;padding:8px 12px;font-size:9px;line-height:1.8}.sketch-backdrop{padding:28px}.bezier-editor{background:#fff;border:1px solid #cddbeb;border-radius:9px;flex-direction:column;width:min(1240px,100%);height:min(780px,90dvh);display:flex;overflow:hidden;box-shadow:0 20px 60px #1932503b}.sketch-toolbar{background:#f7faff;border-bottom:1px solid #dce5ef;flex-wrap:wrap;align-items:center;gap:4px;padding:10px;display:flex}.sketch-toolbar button{background:#fff;border:1px solid #d9e4ee;border-radius:4px;align-items:center;gap:4px;min-height:31px;padding:7px 8px;font-size:10px;display:flex}.sketch-toolbar button b{color:#6b8aac;font-size:12px}.sketch-toolbar button[aria-pressed=true]{color:#246bae;background:#dfedfe;border-color:#91bde5}.sketch-toolbar button:last-child{margin-left:auto}.sketch-editor-body{flex:1;grid-template-columns:minmax(300px,1fr) 250px;min-height:0;display:grid}.sketch-canvas-wrap{min-height:0;position:relative;overflow:hidden}.sketch-properties{background:#fcfdff;border-left:1px solid #dce5ef;padding:13px;font-size:11px;overflow:auto}.sketch-properties label{color:#6e859f;flex-direction:column;gap:5px;margin-bottom:10px;display:flex}.sketch-properties input{border:1px solid #cbd8e8;border-radius:4px;width:100%;min-width:0;padding:7px;font-size:11px}.sketch-properties button{background:#fff;border:1px solid #cfdceb;border-radius:4px;padding:7px 8px;font-size:10px}.sketch-properties button.primary{color:#fff;background:#327bd2;border-color:#327bd2;width:100%;padding:10px;font-size:12px}.sketch-template-actions,.sketch-path-actions{flex-wrap:wrap;gap:5px;margin:10px 0;display:flex}.sketch-path-list{flex-direction:column;gap:4px;display:flex}.sketch-path-list button{text-align:left}.sketch-path-list button[aria-pressed=true]{background:#eaf3ff;border-color:#a7c9ee}.sketch-control-fields{border:1px solid #dce5f0;border-radius:5px;margin:13px 0;padding:10px}.sketch-control-fields legend{color:#607b99;font-weight:600}.sketch-help,.sketch-properties>p{color:#8a9ab0;font-size:10px;line-height:1.8}.sketch-properties p[role=alert]{color:#b45e55}.sketch-status{color:#6e87a3;pointer-events:none;background:#fffffff2;border:1px solid #d8e4ef;border-radius:4px;padding:5px 8px;font-size:10px;position:absolute;bottom:9px;left:10px}.code-editor{background:#fcfdff;flex-direction:column;flex:1;min-height:0;display:flex}.code-editor textarea{tab-size:2;resize:none;color:#34506e;white-space:pre;background:#fcfdff;border:0;outline:0;flex:1;width:100%;min-height:0;padding:16px;font-family:Consolas,SFMono-Regular,monospace;font-size:13px;line-height:1.75;overflow:auto}.code-editor-help{color:#8395aa;border-top:1px solid #e4ecf5;padding:8px 14px;font-size:10px;line-height:1.8}.main-workspace.mode-code{grid-template-columns:minmax(450px,55%) minmax(320px,1fr)}.code-panel{background:#fff;border:1px solid #d5e0ed;border-radius:7px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.code-panel[hidden]{display:none}.project-preview img{object-fit:contain;background:#edf4fb;width:100%;height:100%}.code-editor-header{background:#edf3fd;border-bottom:1px solid #dce7f2;justify-content:space-between;align-items:center;padding:8px 12px;font-size:11px;display:flex}.code-editor-header button,.code-editor-examples button{background:#fff;border:1px solid #bfd1e8;border-radius:4px;padding:6px 8px;font-size:10px}.code-editor-source{flex:1;min-height:0;display:flex;overflow:hidden}.code-line-numbers{color:#a0afc0;text-align:right;-webkit-user-select:none;user-select:none;background:#f1f5fa;min-width:40px;margin:0;padding:16px 8px 16px 10px;font-family:Consolas,SFMono-Regular,monospace;font-size:13px;line-height:1.75;overflow:hidden}.code-editor-source textarea{padding-left:12px}.code-editor-status{color:#6f93a5;background:#f8fafc;border-top:1px solid #e1e9f3;padding:8px 13px;font-size:10px}.code-editor-status[role=alert]{color:#b3645c;background:#fff8f6}.code-editor-help{flex-shrink:0;max-height:160px;overflow:auto}.code-editor-help summary{cursor:pointer;color:#627e9d;font-weight:600}.code-editor-help code{color:#42658b;font-size:10px;line-height:1.7;display:block}.code-editor-examples{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.hole-preview-status{color:#5f829c;overflow-wrap:anywhere;pointer-events:auto;background:#ffffffe6;border:1px solid #d3e2ef;border-radius:5px;justify-content:space-between;align-items:center;gap:10px;min-width:0;max-width:100%;padding:7px 10px;font-size:10px;display:flex}.hole-preview-status.is-error{color:#af665d;background:#fff9f4;border-color:#eac8c2}.hole-preview-status .text-button{flex-shrink:0}.working-overlay{z-index:3}.block-panel[aria-busy=true] .blockly-editor{pointer-events:none;opacity:.7}.code-editor textarea:disabled{opacity:.75}.model-toolstrip{background:#f7faff;border-bottom:1px solid #dce5ef;flex-shrink:0;align-items:center;gap:5px;height:39px;padding:5px 10px;display:flex}.model-toolstrip button{background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:7px;padding:5px 9px;font-size:11px;font-weight:650;display:flex}.model-toolstrip button[aria-pressed=true]{color:#226bad;background:#e1edfd;border-color:#a2c6e9}.model-toolstrip button:hover:not(:disabled){background:#edf3fb}.model-toolstrip kbd{color:#93a6bd;font-family:inherit;font-size:9px}.model-toolstrip>span{color:#8c9db1;margin-left:auto;font-size:9px}.drag-number-input{touch-action:none;cursor:ew-resize;background:#fff;border:1px solid #cbd8e8;border-radius:4px;min-width:0;display:flex;position:relative;overflow:hidden}.drag-number-input:after{content:"↔";color:#9bafc5;pointer-events:none;font-size:10px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.drag-number-input input{outline-offset:-2px;cursor:ew-resize;font-variant-numeric:tabular-nums;width:100%;background:0 0!important;border:0!important;padding-right:16px!important}.drag-number-input input:focus{cursor:text}.drag-number-input.is-dragging{background:#edf5ff;border-color:#6da1d5}.drag-number-input:focus-within{border-color:#7caad9}.rotation-fields .drag-number-input{width:78px}.rotation-fields .drag-number-input input{width:100%}.sketch-control-fields .drag-number-input{margin-bottom:2px}.shape-card .shape-thumb{object-fit:contain;width:88px;height:88px}@media (max-width:1150px){.model-toolstrip>span{display:none}.model-toolstrip button{padding:5px 6px}.shape-card .shape-thumb{width:75px;height:75px}.main-workspace.with-library{grid-template-columns:230px minmax(280px,1fr) 230px}.header-button{font-size:10px}.program-hint{max-width:200px}.dashboard-create-button{padding:10px 14px 20px}.dashboard-create-button strong{font-size:15px}.shape-thumb{height:65px}}@media (max-width:850px){.dashboard-header{align-items:flex-start;padding:17px}.dashboard-actions{flex-direction:column}.dashboard-start,.dashboard-projects{padding:0 17px}.dashboard-create-grid{grid-template-columns:1fr}.dashboard-create-button{flex-direction:row;align-items:center;gap:17px}.dashboard-create-button .dashboard-design-mark{width:130px;height:100px}.main-workspace.with-library{grid-template-columns:210px minmax(260px,1fr) 220px;overflow-x:auto}.main-workspace.mode-code{grid-template-rows:52% 48%;grid-template-columns:1fr}.sketch-backdrop{padding:10px}.sketch-editor-body{grid-template-columns:minmax(260px,1fr) 215px}.sketch-toolbar button span{display:none}}.viewport-transform-hint{color:#49617c;background:#ffffffe6;border:1px solid #d6e1ed;border-radius:6px;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 28px);padding:7px 10px;font-size:11px;line-height:1.5;box-shadow:0 2px 8px #2549680b}.viewport-transform-hint.is-active{color:#195d9b;background:#eff7ff;border-color:#75ade2}.viewport-orientation{filter:drop-shadow(0 2px 5px #39577916);-webkit-user-select:none;user-select:none;pointer-events:auto}.viewport-active-overlays{pointer-events:none;position:absolute;inset:0;overflow:hidden}.viewport-quad-grid{pointer-events:none;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:absolute;inset:0}.viewport-pane{outline-offset:-1px;outline:1px solid #a7b9cc;min-width:0;min-height:0;position:relative}.viewport-pane.is-active{box-shadow:inset 0 0 0 2px #3186d6}.viewport-pane-label{z-index:6;color:#49617c;pointer-events:auto;background:#fffffff0;border:1px solid #c7d7e6;border-radius:4px;padding:3px 8px;font-size:11px;position:absolute;top:6px;left:8px}.viewport-pane-label[aria-pressed=true],.quad-view-toggle[aria-pressed=true]{color:#1767af;background:#e2f0ff;border-color:#7bb2e4}.is-quad .viewport-top-overlays{gap:4px;top:34px;left:8px;right:78px}.is-quad .viewport-closeup-controls{gap:3px}.is-quad .viewport-closeup-controls .button{padding:3px 5px;font-size:10px}.is-quad .viewport-orientation{transform-origin:100% 0;transform:scale(.62);top:6px!important;right:6px!important}.is-quad .viewport-transform-hint{padding:4px 6px;font-size:10px;bottom:8px!important;left:8px!important;right:8px!important}.is-quad .keyboard-editing-help{font-size:10px}.scene-stage:has(.is-quad) .empty-scene{pointer-events:none;width:calc(50% - 28px);right:auto}.scene-stage:has(.is-quad) .empty-scene .button{pointer-events:auto}.viewport-axis:disabled{cursor:default;opacity:.4!important}.app-version{white-space:nowrap;font-variant-numeric:tabular-nums;color:#57799f;background:#eff5fc;border:1px solid #d7e3ef;border-radius:4px;flex-shrink:0;align-items:center;padding:3px 6px;font-size:11px;line-height:1.3;display:inline-flex}.app-status .app-version{margin-left:auto;padding:1px 5px;font-size:10px}.dashboard-brand{flex-wrap:wrap}.dashboard-brand .app-version{margin-left:2px}.model-toolstrip{flex-wrap:wrap;height:auto;min-height:39px}.model-toolstrip button{white-space:nowrap}.model-toolstrip .contact-snap-toggle{border-color:#cbd9e8;margin-left:4px}.model-toolstrip .contact-snap-toggle[aria-pressed=true]{color:#176e58;background:#e0f3eb;border-color:#82bea9}.viewport-transform-hint.is-snapped{background:#effaf5;border-color:#65ac92}.contact-snap-hint{color:#176e58;margin-bottom:3px;display:block}.contact-snap-note{color:#667a91;flex-basis:100%;padding:1px 4px 3px;font-size:10px}.contact-snap-limit{color:#667a91;margin-top:3px;font-size:10px;display:block}.scene-heading{flex-wrap:wrap;gap:5px;height:auto;min-height:39px;padding-top:6px;padding-bottom:6px}.scene-heading .viewport-controls{flex-wrap:wrap;gap:4px}.cavity-view-toggle{white-space:nowrap;gap:4px}.cavity-view-toggle[aria-pressed=true]{color:#70429c;background:#efe7fa;border-radius:4px}.cavity-edit-button{color:#70429c;background:#f6f0fc;border-radius:4px;padding:6px}.ai-open-button{white-space:nowrap;color:#4e4b90;background:#f8f7ff;border-color:#cccbe3}.ai-backdrop{z-index:1000;padding:22px}.ai-modal{color:#30455f;background:#fff;border:1px solid #d4dfea;border-radius:14px;flex-direction:column;width:min(1180px,100%);max-height:calc(100vh - 44px);display:flex;overflow:hidden;box-shadow:0 22px 80px #10294640}.ai-modal .modal-title{border-bottom:1px solid #e2e9f0;flex-shrink:0;padding:18px 22px}.ai-modal h2{color:#22384f;align-items:center;gap:9px;margin:0;font-size:19px;display:flex}.ai-modal .modal-title p{color:#6a7c90;margin:5px 0 0;font-size:12px}.ai-layout{grid-template-columns:minmax(310px,400px) minmax(340px,1fr);min-height:0;display:grid;overflow:auto}.ai-conversation{border-right:1px solid #e1e8f0;flex-direction:column;gap:12px;padding:20px;display:flex;overflow:auto}.ai-conversation .form-field{gap:5px;margin:0;font-size:12px}.ai-conversation input,.ai-conversation select,.ai-conversation textarea{box-sizing:border-box;width:100%;font:inherit;color:#233b56;background:#fff;border:1px solid #cbd7e4;border-radius:6px;padding:9px}.ai-conversation textarea{resize:vertical;min-height:76px;line-height:1.6}.ai-conversation small{color:#61738a;font-size:11px;line-height:1.6}.ai-credentials,.ai-data-disclosure,.ai-provider-state{background:#f6f8fc;border:1px solid #dfe6ef;border-radius:8px;padding:11px;font-size:11px;line-height:1.6}.ai-credentials summary,.ai-data-disclosure summary{cursor:pointer;font-size:12px;font-weight:600}.ai-credentials p,.ai-data-disclosure p,.ai-provider-state p{margin:8px 0;line-height:1.65}.ai-data-disclosure pre{background:#fff;border:1px solid #e3e9f0;border-radius:4px;max-height:160px;padding:7px;font-size:10px;overflow:auto}.ai-consent{color:#385475;align-items:flex-start;gap:8px;font-size:11px;line-height:1.6;display:flex}.ai-consent input{flex-shrink:0;width:15px;height:15px;margin-top:2px}.ai-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ai-stage{color:#276b5a;margin:0;font-size:12px;line-height:1.6}.ai-warning{color:#9a4828;overflow-wrap:anywhere;background:#fff5ed;border-radius:6px;margin:0;padding:9px;font-size:12px;line-height:1.6}.ai-usage{color:#65798f;margin:0;font-size:10px;line-height:1.7}.ai-chat-history{flex-direction:column;gap:7px;max-height:180px;display:flex;overflow:auto}.ai-chat-turn{overflow-wrap:anywhere;background:#edf4fc;border-radius:7px;padding:8px 10px;font-size:11px;line-height:1.6}.ai-chat-turn p{margin:3px 0}.ai-chat-turn strong{color:#426a9a;margin-right:3px}.ai-preview-column{flex-direction:column;gap:12px;min-height:0;padding:16px;display:flex;overflow:auto}.ai-preview-heading{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.ai-preview-stage{background:#f4f7fc;border:1px solid #dce6ef;border-radius:9px;flex-shrink:0;height:32vh;min-height:245px;position:relative;overflow:hidden}.ai-preview-stage .viewport-canvas{width:100%;height:100%}.ai-preview-label{background:#fffffff0;border-radius:5px;padding:9px;font-size:11px;position:absolute;bottom:12px;left:12px;right:12px}.ai-plan{border:1px solid #dce6ef;border-radius:7px;padding:10px;font-size:11px;line-height:1.6}.ai-plan-history{max-height:130px;overflow:auto}.ai-plan-history p{color:#647b91;margin:7px 0 0}.ai-plan ol{margin:5px 0 0;padding-left:20px}.ai-plan li{margin:3px 0}.ai-print-checks{background:#f6f9fb;border-radius:7px;padding:10px;font-size:11px;line-height:1.7}.ai-print-checks ul{margin:5px 0 0;padding-left:18px}.ai-apply{border-top:1px solid #e1e8f0;margin-top:auto;padding-top:10px}.ai-apply p{color:#667c91;margin:0 0 10px;font-size:11px;line-height:1.6}.ai-apply .ai-actions{justify-content:flex-end}@media (max-width:850px){.ai-backdrop{padding:8px}.ai-modal{max-height:calc(100vh - 16px)}.ai-layout{grid-template-columns:1fr;overflow:auto}.ai-conversation,.ai-preview-column{overflow:visible}.ai-conversation{border-bottom:1px solid #e1e8f0;border-right:0}.ai-preview-stage{height:280px}}.ratio-lock{color:#617995;background:#f8fbff;border:1px solid #cbd8e8;border-radius:4px;align-items:center;gap:4px;margin-left:auto;padding:3px 5px;font-size:10px;display:inline-flex}.ratio-lock[aria-pressed=true]{color:#256fb8;background:#e7f2ff;border-color:#91bae8}.property-panel h3:has(.ratio-lock) small{margin-left:0}.interaction-settings{color:#617995;background:#fff;border-bottom:1px solid #dce5ef;flex-shrink:0;min-width:0;padding:5px 12px;font-size:11px}.interaction-settings-row{white-space:nowrap;align-items:center;gap:12px;padding:3px 1px;display:flex;overflow-x:auto}.interaction-settings-row>*,.movement-step-field{flex-shrink:0}.interaction-settings-row:has([role=alert]){padding-bottom:54px}.movement-step-settings,.rotation-step-settings{border-left:1px solid #dce5ef;flex-shrink:0;align-items:center;gap:8px;padding-left:12px;display:flex}.control-mode-field,.movement-snap-field,.movement-steps,.movement-step-field{align-items:center;gap:5px;display:flex}.control-mode-field select,.movement-step-field input{color:#36506f;font:inherit;background:#fff;border:1px solid #cbd8e8;border-radius:4px;padding:5px}.movement-step-field{position:relative}.movement-step-field input{width:48px;min-width:0}.movement-step-field input[aria-invalid=true]{background:#fff5f4;border-color:#c74e4e}.movement-step-field small{z-index:15;color:#ad4a44;white-space:normal;background:#fff5f4;border:1px solid #edc0ba;border-radius:4px;width:230px;padding:7px;line-height:1.6;position:absolute;top:30px;left:0}.movement-snap-field{white-space:nowrap}.movement-snap-field input{accent-color:#287bc1;margin:0}.control-mode-hint{color:#8293aa;margin-top:3px;font-size:10px;line-height:1.5;display:block}.viewport-dimensions{pointer-events:none;z-index:4;position:absolute;inset:0;overflow:hidden}.viewport-dimension-lines{pointer-events:none;position:absolute;inset:0;overflow:visible}.viewport-dimension-label{border:1px solid var(--dimension-color);pointer-events:auto;width:98px;height:30px;color:var(--dimension-color);background:#fff;border-radius:5px;align-items:center;gap:3px;padding:3px 5px;font-size:11px;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #1e3b5d22}.viewport-dimension-label input{color:#263b53;text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;width:54px;min-width:0;padding:2px;font-size:12px}.viewport-dimension-label:focus-within{box-shadow:0 0 0 2px #398bea55}.viewport-dimension-label input[aria-invalid=true]{color:#b52c37;background:#ffe9e9}.viewport-dimension-label small{color:#65768a;font-size:9px}.text-number-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px;display:grid}.text-shape-error{color:#ad4a44;overflow-wrap:anywhere;background:#fff5f4;border:1px solid #edc0ba;border-radius:4px;padding:7px;font-size:11px;line-height:1.6}.notice{pointer-events:none}.notice .icon-button{pointer-events:auto}.drag-number-input.is-text-only:after{display:none}.drag-number-input.is-text-only input{padding-right:5px!important}.drag-number-input:has(input[aria-invalid=true]){border-color:#c6515b}.printer-discovery-list{gap:8px;margin:10px 0;padding:0;list-style:none;display:grid}.printer-discovery-list .full-button{text-align:left;overflow-wrap:anywhere;width:100%}.viewport-dimension-label .drag-number-input{border:0;border-radius:2px;flex:1}.viewport-dimension-label .drag-number-input input{padding-right:10px!important}.viewport-dimension-label .drag-number-input:after{font-size:8px;right:0}.movement-step-field .drag-number-input{width:58px}.viewport-rotation-controls .drag-number-input{flex:1;min-width:0}.viewport-top-overlays{z-index:2;pointer-events:none;flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:124px}.recovery-dialog{width:min(1000px,100vw - 32px);max-width:1000px}.recovery-content{grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:18px;margin:16px 0;display:grid}.recovery-list{max-height:340px;overflow:auto}.recovery-point{text-align:left;color:#365372;background:#fff;border:1px solid #d4dfed;border-radius:8px;gap:5px;width:100%;margin-bottom:8px;padding:10px;display:grid}.recovery-point.selected{background:#edf6ff;border-color:#3184df}.recovery-point img{object-fit:contain;background:#f5f8fc;width:100%;height:90px}.recovery-point time,.recovery-point small{font-size:11px}.recovery-preview{min-width:0}.recovery-preview .viewport-canvas{width:100%;height:280px;min-height:280px;margin-top:8px;position:relative;inset:auto}@media (max-width:720px){.recovery-content{grid-template-columns:1fr}.recovery-list{max-height:180px}}.viewport-closeup-controls{pointer-events:none;flex-wrap:wrap;gap:6px;max-width:100%;display:flex}.viewport-closeup-controls .button{white-space:normal;text-align:center;pointer-events:auto;background:#fffffff0;padding:6px 9px;font-size:11px}.fine-step-control{white-space:nowrap;color:#5d7390;align-items:center;gap:5px;font-size:10px;display:inline-flex}.fine-step-control select{color:#36506f;background:#fff;border:1px solid #cbd8e8;border-radius:4px;min-height:27px;padding:3px 4px;font-size:10px}.bed-label{max-width:calc(100% - 30px)}.axis-label-x{color:#b43a49}.axis-label-y{color:#397d36}.shape-settings-panel{flex-direction:column;gap:7px;display:flex}.shape-settings-panel h3{margin-bottom:2px}.shape-setting-field{color:#667f9d;flex-direction:column;gap:4px;font-size:10px;display:flex}.shape-setting-inputs{align-items:center;gap:6px;min-width:0;display:flex}.shape-setting-inputs input[type=range]{accent-color:#327bd2;flex:1;min-width:0}.shape-setting-inputs .drag-number-input{flex:0 0 76px}.shape-setting-inputs .drag-number-input input{background:#fff;border:1px solid #cbd8e8;border-radius:4px;width:100%;min-width:0;padding:5px;font-size:10px}.shape-setting-actions{gap:6px;display:flex}.shape-setting-actions .button{flex:1;min-width:0;font-size:10px}.empty-scene{text-align:left;background:0 0;align-items:flex-start;gap:5px;height:auto;padding:0;inset:56px 128px auto 14px}.empty-scene>svg{display:none}.empty-scene strong{font-size:12px}.empty-scene span{display:none}.empty-scene .button{min-height:28px;margin-top:2px;padding:4px 8px;font-size:11px}.alignment-grid{text-align:center;grid-template-columns:18px repeat(3,minmax(0,1fr));align-items:center;gap:5px;margin:10px 0;display:grid}.alignment-grid small{color:#68788f;white-space:nowrap;font-size:10px}.alignment-axis{display:contents}.alignment-axis b{color:#596b83;font-size:11px}.alignment-axis .button{justify-content:center;min-width:0;padding:5px 8px}.mirror-actions{align-items:center;gap:5px;display:flex}.mirror-actions>span{margin-right:auto;font-size:11px}.mirror-actions .button{padding:5px 10px}.object-visibility-actions{justify-content:space-between;gap:2px;padding:8px 12px 0;display:flex}.object-visibility-actions .text-button{white-space:nowrap;gap:3px;padding:5px 2px;font-size:11px}.object-item.is-hidden .object-label{color:#8290a4}.object-item.is-hidden .object-swatch{opacity:.35}.object-item>svg{color:#72829a;flex-shrink:0}.repeat-launcher{justify-content:center;width:calc(100% - 24px);margin:8px 12px}.locked-notice,.visibility-note{margin:7px 14px}.locked-notice{color:#95652f}.repeat-dialog{color:#24354b;background:#fff;border:1px solid #d2dce9;border-radius:14px;width:min(450px,100vw - 36px);max-height:calc(100vh - 36px);padding:24px;overflow-y:auto;box-shadow:0 20px 80px #152b5055}.repeat-dialog::backdrop{background:#10243a88}.stl-export-choice{border:1px solid #d8e5f3;max-width:calc(100vw - 32px)}.stl-export-choice::backdrop{background:#10243a88}.stl-export-choice h2{margin:0 0 12px;font-size:18px}.stl-export-choice details{margin:12px 0;font-size:12px}.stl-export-choice .dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.repeat-dialog h2{margin:0 0 12px;font-size:20px}.repeat-dialog h3{margin:18px 0 8px;font-size:13px}.repeat-dialog>p{font-size:12px;line-height:1.7}.repeat-dialog .form-field{margin:14px 0}.repeat-dialog .repeat-summary{color:#346795;background:#edf5fd;border-radius:6px;padding:10px}.repeat-dialog footer{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.plane-cut-panel{z-index:6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff5;border:1px solid #9cc8d5;border-radius:8px;width:min(290px,100% - 24px);max-height:calc(100% - 64px);padding:15px;position:absolute;bottom:44px;right:12px;overflow:auto;box-shadow:0 5px 24px #163c5529}.plane-cut-panel h2{margin:0 0 7px;font-size:16px}.plane-cut-panel .cut-object-name{color:#547285;overflow-wrap:anywhere;margin:0 0 12px;font-size:11px}.plane-cut-panel select{background:#fff;border:1px solid #cbd8e8;border-radius:4px;width:100%;padding:7px}.plane-cut-panel input[type=range]{accent-color:#128ca6;width:100%}.plane-cut-panel footer{justify-content:flex-end;gap:6px;margin-top:12px;display:flex}.plane-cut-panel .inline-error{font-size:11px}.cut-launcher{margin:0 0 8px}.cut-plane-marker{pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.main-workspace>.plane-cut-panel{width:auto;min-height:0;max-height:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border-color:#d5e0ed;padding:16px;position:relative;bottom:auto;right:auto}.main-workspace>.plane-cut-panel h2{border-bottom:1px solid #dce7ef;padding-bottom:12px}.main-workspace>.plane-cut-panel .form-field{margin-top:20px}.main-workspace>.plane-cut-panel .field-note{font-size:11px;line-height:1.9}.main-workspace>.plane-cut-panel footer{flex-wrap:wrap;margin-top:24px}.main-workspace>.plane-cut-panel footer button{flex:1}.shape-context-menu{z-index:1000;background:#fff;border:1px solid #cedaeb;border-radius:10px;width:264px;max-height:calc(100vh - 16px);padding:6px;position:fixed;overflow-y:auto;box-shadow:0 12px 36px #233c5d30}.shape-context-menu button{color:#244263;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:7px 9px;font-size:13px;display:flex}.shape-context-menu button>span{color:#2e7cdb;width:14px}.shape-context-menu button:hover:not(:disabled),.shape-context-menu button:focus-visible{outline-offset:-2px;background:#eaf2ff;outline:2px solid #8ab9ef}.shape-context-menu button:disabled{color:#8d9fb6;cursor:default}.shape-context-menu button small{width:100%;padding-left:22px;font-size:10px}.shape-context-menu .menu-separator{border-top:1px solid #e4ebf5;border-radius:0;margin-top:4px;padding-top:10px}.placement-coordinates{z-index:15;color:#244c7a;pointer-events:none;background:#ffffffeb;border:1px solid #6d9edd;border-radius:7px;width:225px;padding:8px 10px;font-size:12px;position:absolute;box-shadow:0 3px 12px #2a456820}.placement-coordinates small{color:#6a819d;margin-top:4px;font-size:10px;display:block}.object-item[draggable=true]{cursor:grab}.update-launcher{z-index:20;background:#fff;font-size:12px;position:fixed;bottom:28px;right:18px;box-shadow:0 3px 12px #24426322}.app-shell:has(.modal-backdrop:not(.update-backdrop)) .update-launcher{visibility:hidden}.update-launcher.has-update{color:#965416;background:#fff7ec;border-color:#e98c29}.update-backdrop{z-index:1200}.update-modal{max-height:calc(100vh - 32px);overflow-y:auto}.update-automatic{align-items:center;gap:8px;margin:16px 0;display:flex}.update-modal progress{width:100%;margin:8px 0;display:block}.update-notes pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;font:inherit;background:#f4f7fc;border-radius:6px;padding:12px;font-size:13px;line-height:1.7;overflow-y:auto}.print-panel .print-requirement-missing{outline-offset:3px;border-radius:5px;outline:2px solid #c43832;scroll-margin:12px}.print-panel .print-requirements{color:#842a25;background:#fff5f4;border:2px solid #c43832;border-radius:6px;margin-top:12px;padding:12px;font-size:12px;line-height:1.8}.print-requirements ul{margin:8px 0;padding-left:20px}.print-requirements li{margin:6px 0}.print-requirements button{color:inherit;font:inherit;text-align:left;text-underline-offset:3px;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;padding:0;text-decoration:underline}.print-requirements button:focus-visible{outline-offset:3px;outline:2px solid #842a25}.print-panel .print-requirements p{color:#842a25;margin:8px 0 0}.edit-panel,.shape-library{position:relative}.edit-panel-scroll{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.shape-actions{flex:none;min-width:0}.shape-actions-heading{margin:0;font-size:12px}.shape-actions-heading>button{width:100%;min-height:36px;color:inherit;text-align:left;font:inherit;cursor:pointer;background:#f3f7fc;border:0;border-bottom:1px solid #d8e1ed;align-items:center;gap:7px;padding:7px 10px;font-weight:600;display:flex}.shape-actions-heading>button:hover:not(:disabled){background:#e9f2fc}.shape-actions-heading>button>small{color:#617995;margin-left:auto;font-size:10px;font-weight:400}.shape-actions-heading svg{flex:none}.shape-actions>[hidden]{display:none}.panel-resize-handle{touch-action:none;outline-offset:-1px;z-index:24;flex-shrink:0}.panel-resize-handle.is-x{cursor:ew-resize;width:8px;position:absolute;top:0;bottom:0;right:0}.shape-library>.panel-resize-handle.is-x{left:0;right:auto}.panel-resize-handle.is-y{cursor:ns-resize;background:#eef3f9;border-block:1px solid #d8e1ed;height:8px;min-height:8px}.panel-resize-handle:hover,.panel-resize-handle:focus-visible{background:#b9d9f6}.dockable-inspector{background:#fff;border-top:1px solid #d8e1ed;flex-direction:column;flex:0 auto;min-width:0;min-height:180px;display:flex;overflow:hidden}.dockable-inspector.is-floating{z-index:28;border:1px solid #b6cbe4;border-radius:7px;flex:none;position:fixed;box-shadow:0 8px 24px #253c5826}.scene-panel .working-overlay,.notice{z-index:29}.inspector-titlebar{touch-action:none;background:#f3f7fc;border-bottom:1px solid #d8e1ed;justify-content:space-between;align-items:center;gap:8px;min-height:38px;padding:6px 9px;display:flex}.is-floating>.inspector-titlebar{cursor:grab}.inspector-titlebar strong{font-size:12px}.inspector-window-actions{gap:2px;display:flex}.inspector-content{flex:1;min-height:0;overflow:auto}.inspector-content .property-panel{padding:12px;font-size:12px;overflow:visible}.inspector-content .form-field,.inspector-content .property-panel h3,.inspector-content .triple-fields label,.inspector-content .triple-fields input{font-size:12px}.shape-library-controls{flex-shrink:0;align-items:center;gap:4px;padding:8px;display:flex}.shape-library-controls select{background:#fff;border:1px solid #cbd8e8;border-radius:5px;flex:1;min-width:0;min-height:34px;padding:6px}.shape-library-controls .icon-button{border:1px solid #d8e1ed;width:34px;height:34px}.shape-library-controls .icon-button[aria-pressed=true],.shape-library-controls .icon-button[aria-expanded=true]{color:#327bd2;background:#e8f3ff;border-color:#8bb8e5}.shape-search[hidden]{display:none}.shape-library .shape-grid{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.shape-library-header{min-height:38px}.shape-library{min-width:0}.shape-library-results{min-height:0}.shape-library .shape-card .shape-thumb{width:92px;max-width:100%;height:92px}.object-list{min-height:72px}.interaction-settings-toggle{align-self:flex-start;gap:6px;min-height:26px;font-size:11px;display:flex}.interaction-settings-toggle span{color:#657c99}.interaction-settings:has(.interaction-settings-toggle){flex-direction:column;gap:4px;padding-block:5px;display:flex}.interaction-settings-row[hidden]{display:none}@media (max-width:859px),(max-height:520px),(max-width:1099px) and (max-height:699px){.app-shell:not(.is-viewer-fullscreen) .main-workspace.with-library{flex-direction:column;display:flex;overflow:auto}.app-shell:not(.is-viewer-fullscreen) .main-workspace.with-library>:not([hidden]){width:100%;min-width:0}.app-shell:not(.is-viewer-fullscreen) .main-workspace.with-library>.edit-panel{flex:0 0 260px;height:260px}.app-shell:not(.is-viewer-fullscreen) .main-workspace.with-library>.scene-panel{flex:none;min-height:340px}.app-shell:not(.is-viewer-fullscreen) .main-workspace.with-library>.scene-panel .scene-stage{flex:1 0 180px;min-height:180px}.app-shell:not(.is-viewer-fullscreen) .main-workspace.with-library>.shape-library:not(.hole-fit-panel){flex:0 0 400px;min-height:280px}.app-shell:not(.is-viewer-fullscreen) .main-workspace.with-library>.hole-fit-panel,.app-shell:not(.is-viewer-fullscreen) .main-workspace.with-library>.plane-cut-panel{flex:none;min-height:0;overflow:visible}.app-shell:not(.is-viewer-fullscreen) .main-workspace.with-library>.edit-panel>.panel-resize-handle.is-x,.app-shell:not(.is-viewer-fullscreen) .main-workspace.with-library>.shape-library>.panel-resize-handle.is-x{display:none}}.app-shell.is-viewer-fullscreen .app-header,.app-shell.is-viewer-fullscreen .workspace-toolbar,.app-shell.is-viewer-fullscreen .interaction-settings,.app-shell.is-viewer-fullscreen .editor-shell>footer{display:none}.app-shell.is-viewer-fullscreen .main-workspace{gap:0;width:100%;height:100%;padding:0;grid-template-columns:minmax(0,1fr)!important}.app-shell.is-viewer-fullscreen .main-workspace>:not(.scene-panel):not(.edit-panel):not([role=dialog]){display:none}.app-shell.is-viewer-fullscreen .scene-panel{border:0;border-radius:0;grid-column:1;width:100%;height:100%}.app-shell.is-viewer-fullscreen .edit-panel{z-index:28;border:0;width:0;height:0;min-height:0;position:fixed;overflow:visible}.app-shell.is-viewer-fullscreen .edit-panel-scroll{overflow:visible}.app-shell.is-viewer-fullscreen .edit-panel-scroll>:not(.dockable-inspector),.app-shell.is-viewer-fullscreen .dockable-inspector.is-docked{display:none}.keyboard-editing-help{color:#253c58;pointer-events:none;background:#f3f7fc;border:1px solid #b6cbe4;border-radius:5px;max-width:100%;padding:6px 8px;font-size:11px}.cut-pose-fields{border:1px solid #d8e1ed;border-radius:5px;margin:10px 0;padding:8px}.app-shell.is-viewer-fullscreen .main-workspace>[role=dialog]{z-index:28;width:340px;max-height:calc(100vh - 80px);position:fixed;top:52px;right:12px;overflow:auto}.property-group-heading{align-items:center;gap:4px;display:flex}.property-group-heading h3{flex:1;margin-block:8px}.property-group>[hidden]{display:none}.web-storage-note{background:#f4f8fe;border:1px solid #cddded;border-radius:8px;margin:0 0 22px;padding:16px 18px;line-height:1.7}.web-storage-note strong{color:#315b88}.web-storage-note p{color:#536f8d;margin:8px 0}.web-storage-note>div{flex-wrap:wrap;gap:20px;display:flex}.web-storage-note a,.web-desktop-print{color:#356b9f}.mode-tabs .web-desktop-print{border-radius:4px;align-items:center;gap:6px;padding:12px;text-decoration:none;display:inline-flex}.help-channel{border-top:1px solid #d6e3ee;margin:12px 0;padding:16px 0}.help-channel p{color:#58728e;line-height:1.7}.help-channel .button{justify-content:center;text-decoration:none;display:inline-flex}.featured-announcement{max-width:1160px;margin:26px auto;padding:0 28px}.announcement-card{background:#fafdff;border:1px solid #d6e1ed;border-radius:8px;margin:14px 0;padding:18px}.announcement-card h3{margin:10px 0 7px;font-size:17px}.announcement-card p{white-space:pre-line;color:#59718b;line-height:1.8}.announcement-card .button{text-decoration:none;display:inline-flex}.announcement-card time{color:#59718b;font-size:12px}.announcement-kind{color:#315b88;background:#edf5ff;border:1px solid #cbdcf0;border-radius:4px;padding:3px 7px;font-size:11px}.announcement-kind--promotion{color:#866015;background:#fff6df;border-color:#ead599}.announcement-new{color:#8a4a09;background:#fff1d8;border-radius:3px;margin-left:7px;padding:2px 5px;font-size:10px}.announcements-dialog{max-width:680px}.announcement-card.is-compact{margin:0}.announcement-card.is-compact p{margin:6px 0 12px}.web-announcements-button{font-size:12px}@media (max-width:620px){.featured-announcement{padding:0 16px}.announcement-card{padding:14px}}.viewport-coordinates{z-index:4;color:#365776;pointer-events:none;background:#fffffff0;border-top:1px solid #d6e3f0;flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:31px;padding:6px 12px;font-size:11px;display:flex;position:absolute;inset:auto 0 0}.cursor-values{font-variant-numeric:tabular-nums;white-space:pre;color:#183b59}.cursor-surface{color:#6b8198;margin-left:auto;font-size:10px}.viewer .bed-label,.bed-label{bottom:42px}.viewport-transform-hint{margin-bottom:32px}.text-font-search{align-items:center;gap:6px;min-width:0;display:flex}.text-font-search input{flex:1;min-width:0}.text-font-search button{color:#315b88;background:#f4f8fe;border:1px solid #cbd9e9;border-radius:4px;flex:none;min-height:32px;padding:4px 8px;font-size:11px}.text-font-results{overflow-wrap:anywhere;margin:0 0 8px}.rail-split-toggle{align-items:center;gap:8px;margin:14px 0;font-weight:600;display:flex}.rail-split-results{background:#f3f7fb;border-radius:5px;margin-top:16px;padding:10px;font-size:12px}.rail-split-results p{margin:7px 0}.rail-fits{color:#256346}.rail-split-settings .form-field{gap:6px}
