:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef2f4;color:#152024;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}#root{height:auto;min-height:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-rows:auto minmax(0,1fr);position:relative;height:100%;min-height:0;background:#eef2f4}.drop-overlay{position:fixed;inset:12px;z-index:90;display:grid;place-items:center;border:1px dashed rgba(8,121,157,.46);border-radius:8px;background:#edf7fa38;pointer-events:none}.drop-overlay-box{display:grid;justify-items:center;gap:6px;min-width:min(280px,calc(100vw - 48px));border:1px solid rgba(8,121,157,.28);border-radius:8px;padding:14px 18px;color:#123540;background:#ffffffe6;box-shadow:0 14px 34px #11222a2e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.drop-overlay-box svg{color:#08799d}.drop-overlay-box strong{font-size:13px;font-weight:820;line-height:1.2}.drop-overlay-box span{color:#596b72;font-size:11px;font-weight:680}.topbar{position:relative;z-index:30;min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 20px;border-bottom:1px solid #d7dee2;background:#fff}.brand-block,.panel-title,.toolbar-title,.top-actions,.view-controls{display:flex;align-items:center}.brand-block{gap:12px;min-width:0}.brand-title{display:grid;min-width:0;padding-left:2px}.brand-title h1{color:#17262b;white-space:nowrap}.brand-logo{display:block;width:auto;max-width:min(330px,46vw);max-height:54px;object-fit:contain}h1,h2,p{margin:0}h1{font-size:18px;font-weight:720;line-height:1.15;letter-spacing:0}.brand-block p{margin-top:3px;color:#637178;font-size:12px;line-height:1.2}.top-actions{gap:8px;flex-wrap:wrap;justify-content:flex-end}.workspace{display:grid;grid-template-columns:minmax(0,1fr);min-height:0;padding:0}.inspector,.results{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}.panel,.metrics-panel,.warning-panel{border:1px solid #d3dce1;border-radius:8px;background:#fff}.panel-title,.toolbar-title{gap:8px;color:#203035}.panel-title{padding:15px 16px 10px}.panel-title h2{font-size:13px;font-weight:760;line-height:1.2;letter-spacing:0}.catalog-picker{display:grid;gap:8px;padding:0 14px 12px}.catalog-control{display:grid;grid-template-columns:92px minmax(0,1fr) 32px;align-items:center;gap:8px}.catalog-control label{color:#33434a;font-size:12px;font-weight:650}.catalog-control select{width:100%;height:32px;border:1px solid #c9d3d8;border-radius:6px;padding:0 9px;color:#111b1f;background:#fbfcfd;font-size:13px;outline:none}.catalog-control select:focus{border-color:#1682a7;box-shadow:0 0 0 3px #1682a71f}.catalog-control select:disabled{color:#7b888e;background:#eef3f5}.catalog-source{color:#617078;font-size:11px;line-height:1.35}.catalog-source--error{color:#9a5d00}.catalog-source a{color:#0d7193;font-weight:700;text-decoration:none}.catalog-reference{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}.catalog-reference div{min-width:0;border:1px solid #d7e1e6;border-radius:7px;padding:7px;background:#f8fafb}.catalog-reference dt{color:#66757c;font-size:10px;font-weight:760;line-height:1}.catalog-reference dd{margin:6px 0 0;color:#132126;font-size:12px;font-weight:760;line-height:1.05;font-variant-numeric:tabular-nums}.catalog-detail-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:30px;border:1px solid #c9d9e0;border-radius:6px;color:#0b6f91;background:#f5fbfd;font-size:12px;font-weight:740;line-height:1.2;text-decoration:none}.catalog-detail-link:hover,.catalog-detail-link:focus-visible{border-color:#98c9da;background:#ecf8fc;outline:none}.input-grid{display:grid;gap:8px;padding:0 14px 14px}.param-row{display:grid;grid-template-columns:minmax(92px,1fr) 108px 32px;align-items:center;gap:8px;min-height:34px}.param-name{color:#33434a;font-size:12px;font-weight:650}.param-row input{width:100%;height:32px;border:1px solid #c9d3d8;border-radius:6px;padding:0 9px;color:#111b1f;background:#fbfcfd;font-size:13px;font-variant-numeric:tabular-nums;outline:none}.param-row input:focus{border-color:#1682a7;box-shadow:0 0 0 3px #1682a71f}.unit{color:#728087;font-size:11px}.segmented.labeled{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px 15px}.segmented.labeled.series-control{align-items:flex-start;padding-bottom:12px}.series-control .segment-options{justify-content:flex-end;flex-wrap:wrap;max-width:220px}.segmented.labeled>span{color:#46575f;font-size:12px;font-weight:650}.segment-options{display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid #cbd7dd;border-radius:7px;background:#f4f7f8}.segment-options button{min-width:52px;height:28px;border:0;border-radius:5px;padding:0 10px;color:#52626a;background:transparent;font-size:12px;font-weight:680}.series-control .segment-options button{flex:0 0 auto;min-width:42px}.segment-options button.active{color:#063447;background:#fff;box-shadow:0 1px 2px #0f1e261f}.language-switch{display:inline-flex;align-items:center;height:34px;gap:2px;border:1px solid #cbd7dd;border-radius:7px;padding:2px;background:#f4f7f8}.language-switch button{min-width:34px;height:28px;border:0;border-radius:5px;padding:0 8px;color:#52626a;background:transparent;font-size:12px;font-weight:760}.language-switch button.active{color:#063447;background:#fff;box-shadow:0 1px 2px #0f1e261f}.logic-disclosure{display:grid;gap:6px;padding:0 14px 14px}.logic-disclosure-toggle{display:inline-flex;align-items:center;justify-self:start;gap:5px;min-height:22px;border:0;padding:0;color:#74838a;background:transparent;font-size:11px;font-weight:680;line-height:1.2;text-decoration:none}.logic-disclosure-toggle:hover,.logic-disclosure-toggle:focus-visible{color:#23424d;outline:none;text-decoration:underline;text-underline-offset:3px}.logic-disclosure-body{border-top:1px solid #edf2f4}.logic-disclosure .logic-list{padding:2px 0 0}.logic-list{display:grid;gap:0;margin:0;padding:0 14px 14px}.logic-list div,.detail-list div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:31px;border-top:1px solid #eef2f4}.logic-list dt,.detail-list span{color:#5f6e75;font-size:11px;font-weight:650;text-transform:uppercase}.logic-list dd,.detail-list strong{margin:0;color:#152024;font-size:12px;font-weight:720;text-align:right}.model-stage{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;overflow:hidden;border:0;border-radius:0;background:#f5f7f8}.model-stage--maximized{position:fixed;inset:0;z-index:80;min-width:0;min-height:0;box-shadow:0 18px 48px #101e2647}.stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:6px 12px;border-bottom:1px solid #d5dee3;background:#ffffffeb}.view-controls{gap:8px}.file-input{display:none}.upload-pill,.upload-status{display:inline-flex;align-items:center;min-width:0;max-width:260px;height:24px;margin-left:4px;border:1px solid #cbd7dd;border-radius:999px;padding:0 6px 0 9px;overflow:hidden;color:#34505a;background:#f6fafb;font-size:11px;font-weight:720;line-height:1;text-overflow:ellipsis;white-space:nowrap}.upload-pill button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:18px;height:18px;margin-left:5px;border:0;border-radius:50%;padding:0;color:#51656d;background:transparent}.upload-pill button:hover,.upload-pill button:focus-visible{color:#102127;background:#e4ecef;outline:none}.upload-status--loading{color:#6c5500;border-color:#e5d18a;background:#fff9df}.upload-status--error{color:#8a3300;border-color:#e9b48d;background:#fff1e8}.viewer-shell{position:relative;width:100%;height:100%;min-height:0;overflow:hidden}.viewer-canvas{position:absolute;inset:0;z-index:1}.viewer-canvas canvas{display:block;width:100%;height:100%}.viewer-canvas .icon-button.viewer-reset-view{position:absolute;left:var(--view-reset-left, 12px);top:var(--view-reset-top, 12px);z-index:2;width:44px;height:44px;box-shadow:0 2px 8px #0002}.viewer-canvas.measure-active canvas{cursor:crosshair}.viewer-canvas.entity-select-active canvas{cursor:pointer}.viewer-watermark{position:absolute;inset:0;z-index:2;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='92' height='58' viewBox='0 0 92 58'%3E%3Ctext x='8' y='22' fill='%23273940' fill-opacity='0.18' font-family='Inter, Arial, sans-serif' font-size='11' font-weight='760' transform='rotate(-24 8 22)'%3EKSM%3C/text%3E%3Ctext x='52' y='50' fill='%23273940' fill-opacity='0.14' font-family='Inter, Arial, sans-serif' font-size='10' font-weight='760' transform='rotate(-24 52 50)'%3EKSM%3C/text%3E%3C/svg%3E");background-repeat:repeat;background-size:92px 58px;opacity:.4;mix-blend-mode:multiply}.cad2d-viewer-shell{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;background:#000}.viewer-shell--imported,.cad2d-viewer-shell{display:grid;grid-template-rows:auto minmax(0,1fr)}.viewer-shell--imported:not(.viewer-shell--sintering){grid-template-rows:minmax(0,1fr)}.viewer-shell--imported.viewer-shell--sintering .viewer-canvas,.viewer-shell--imported.viewer-shell--sintering .envelope-svg,.viewer-shell--imported.viewer-shell--sintering .sinter-annotation-svg,.viewer-shell--imported.viewer-shell--sintering .sinter-selection-popover,.viewer-shell--imported.viewer-shell--sintering .floating-panels{grid-area:1 / 1 / -1 / -1}@media(min-width:821px){.viewer-shell--sintering{--sinter-right-rail-width: min(360px, 32vw)}.viewer-shell--sintering .envelope-readout,.viewer-shell--sintering .sinter-annotation-rail{box-sizing:border-box;width:var(--sinter-right-rail-width)}}.viewer-shell--imported .viewer-canvas,.cad2d-viewer-shell .cad2d-viewer-canvas{position:absolute;inset:0;grid-area:2 / 1;min-width:0;min-height:0}.viewer-shell--imported:not(.viewer-shell--sintering) .viewer-canvas,.viewer-shell--imported:not(.viewer-shell--sintering) .envelope-svg{grid-area:1 / 1}.envelope-overlay{display:contents;color:#086e81;pointer-events:none}.envelope-readout{position:relative;grid-area:1 / 1;z-index:3;width:fit-content;margin:8px 12px;max-width:calc(100% - 24px);padding:8px 10px;border-left:2px solid currentColor;background:#f5f7f8f0;font-size:11px;line-height:1.5;font-variant-numeric:tabular-nums}.envelope-readout--right{display:flex;align-items:flex-start;gap:10px;margin-left:auto}.viewer-shell--imported:not(.viewer-shell--sintering) .envelope-readout{position:absolute;top:12px;right:12px;left:auto;width:fit-content;max-width:min(430px,calc(100% - 24px));margin:0;border:1px solid rgba(67,112,122,.28);border-left:2px solid currentColor;border-radius:6px;box-shadow:0 5px 16px #172b321f}.envelope-readout-body{min-width:0}.envelope-readout-actions{display:flex;align-items:flex-start;pointer-events:auto}.sinter-report-action-wrap{position:relative;display:flex;align-items:flex-start}.sinter-report-icon{display:inline-flex;width:34px;height:34px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid #78aab4;border-radius:5px;color:#086e81;background:#fff;cursor:pointer}.sinter-report-icon:hover:not(:disabled),.sinter-report-icon:focus-visible{border-color:#087f9a;background:#eaf5f7}.sinter-report-icon.is-done{color:#247048;border-color:#76ac8b;background:#eef8f1}.sinter-report-icon:disabled{cursor:wait}.sinter-report-action-status,.sinter-report-action-error{position:absolute;top:39px;right:0;width:max-content;max-width:220px;padding:5px 7px;border:1px solid #78af8c;border-radius:4px;color:#247048;background:#eef8f1;box-shadow:0 4px 14px #14281b26;font-size:10px;line-height:1.4;white-space:nowrap}.sinter-report-action-error{border-color:#d2a36b;color:#8b4e1a;background:#fff7e9;white-space:normal}.envelope-readout strong{display:block;font-size:11px;font-weight:650}.envelope-metrics{padding-top:4px;border-top:1px solid rgba(70,133,142,.18)}.envelope-readout .envelope-metrics>div{display:grid;gap:1px}.envelope-metric-main{display:flex;gap:5px}.envelope-metric-detail{max-width:280px;color:#a04f25;font-size:9px;line-height:1.35}.envelope-preview-note{max-width:320px;margin:6px 0 0;padding-top:6px;border-top:1px solid rgba(152,92,21,.22);color:#89571b;line-height:1.45}.grinding-controls{padding:0 14px 12px;font-size:12px}.entity-controls{padding:0 14px 14px;font-size:12px}.entity-panel-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;color:#61757d;line-height:1.45}.entity-panel-intro span{flex:1}.entity-panel-intro strong{flex:0 0 auto;color:#08748a;white-space:nowrap}.entity-panel-actions{display:flex;gap:6px;padding-bottom:8px;border-bottom:1px solid #e4eaed}.entity-list{list-style:none;max-height:280px;margin:0;padding:0;overflow:auto;scrollbar-width:thin}.entity-list li{border-bottom:1px solid #e4eaed}.entity-list li.selected{background:#e9f5f7}.entity-list label{position:relative;display:flex;align-items:center;gap:9px;min-height:50px;padding:7px 8px;color:#35515a;cursor:pointer}.entity-list input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.entity-list label>svg{flex:0 0 auto;color:#6d8188}.entity-list li.selected label>svg{color:#07839b}.entity-list label>span{min-width:0;display:grid;gap:2px}.entity-list strong,.entity-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-list strong{color:#203238;font-size:12px}.entity-list small{color:#718187;font-size:10px}.entity-guard,.entity-message{margin:9px 0 0;line-height:1.45}.entity-guard{color:#9a5b17}.entity-message{color:#27704c}.entity-delete-button{display:flex;width:100%;min-height:36px;margin-top:10px;align-items:center;justify-content:center;gap:7px;border:1px solid #a83c32;border-radius:5px;color:#fff;background:#a83c32;font:inherit;font-weight:650;cursor:pointer}.entity-delete-button:hover:not(:disabled){background:#8f3028}.sinter-controls{padding:0 12px 12px;font-size:12px}.sinter-contact{display:flex;align-items:center;gap:8px}.sinter-contact-status{flex:1;color:#50686f;font-size:11px;text-align:right}.sinter-source,.sinter-furnace{display:flex;margin-top:10px}.sinter-source button,.sinter-furnace button{flex:1;min-width:0}.sinter-view-toggles{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 10px}.panel-detail-toggle{display:flex;width:100%;min-width:0;align-items:center;justify-content:space-between;gap:10px;border:0;padding:7px 0;color:#263b43;background:transparent;text-align:left;cursor:pointer}.panel-detail-toggle>span{display:grid;min-width:0;gap:2px}.panel-detail-toggle strong{font-size:12px}.panel-detail-toggle small{color:#6c7f86;font-size:10px;line-height:1.35;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.panel-detail-toggle>svg{flex:0 0 auto;color:#60777f;transition:transform .16s ease}.panel-detail-toggle[aria-expanded=true]>svg{transform:rotate(180deg)}.sinter-detail-toggle{margin-top:10px;border-top:1px solid #e2e8eb;border-bottom:1px solid #e2e8eb}.sinter-note{color:#718188;font-size:10px;margin:8px 0;line-height:1.5}.sinter-auto-gap{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:10px;padding:9px 10px;border-left:3px solid #087f9a;background:#e9f4f6;color:#395962;font-variant-numeric:tabular-nums}.sinter-auto-gap strong{color:#08748a;font-size:14px}.sinter-settings fieldset>.sinter-number{margin-top:10px}.sinter-summary dd{overflow-wrap:anywhere}.sinter-weights{max-height:220px;overflow-y:auto}.sinter-weights .sinter-weight-group{flex-wrap:wrap}.sinter-weights .sinter-weight-group dd{font-size:11px}.sinter-weights .sinter-weight-group dt{display:inline-flex;align-items:center;gap:4px}.sinter-weights .is-weight-warning{margin-inline:-5px;padding-inline:5px;border-left:2px solid #bb5b32;color:#9b4828;background:#fff1eb}.sinter-weight-total{border-top:1px solid #dce4e7;color:#08748a}.sinter-multi-stack-weight{color:#075b6a}.sinter-stack-quantity-label{display:inline-flex;align-items:baseline;gap:4px}.sinter-stack-quantity-button{appearance:none;border:0;border-bottom:1px dotted currentColor;padding:0;background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:default}.sinter-stack-quantity-button:hover,.sinter-stack-quantity-button:focus-visible{color:#087f9a;border-bottom-style:solid;outline:none}.sinter-stack-quantity-input{width:58px;min-width:0;height:24px;border:1px solid #83aab2;border-radius:4px;padding:2px 5px;background:#fff;color:#075b6a;font:inherit;font-variant-numeric:tabular-nums}.sinter-stack-quantity-input:focus{border-color:#087f9a;outline:2px solid rgba(8,127,154,.16)}.sinter-annotation-svg{position:absolute;inset:0;grid-area:2 / 1;z-index:4;width:100%;height:100%;pointer-events:none;overflow:hidden;color:#075b6a}.sinter-annotation-svg path{fill:none;stroke:currentColor;stroke-width:1}.sinter-annotation-svg .sinter-mark{stroke-width:2}.sinter-annotation-svg .sinter-mark--important{stroke:#08748a}.sinter-annotation-rail{position:absolute;grid-area:2 / 1;top:12px;right:12px;bottom:12px;width:194px;z-index:5;overflow-y:auto;overscroll-behavior:contain;padding:0 4px 0 8px;scrollbar-width:thin;font-size:11px;font-variant-numeric:tabular-nums}.sinter-annotation-rail>div{border-left:2px solid #83aab2;background:#f5f7f8ed;padding:5px 7px;margin-bottom:7px;overflow-wrap:anywhere}.sinter-annotation-rail span,.sinter-annotation-rail strong{display:block;line-height:1.5}.sinter-annotation-rail span{color:#526a73}.sinter-annotation-rail strong{color:#075b6a;font-size:11px;font-weight:650}.sinter-annotation-rail .sinter-annotation-weight{display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline;justify-content:space-between;border-color:#b1bdc2}.sinter-annotation-rail .is-important{border-color:#08748a;background:#e9f4f6f2}.sinter-annotation-rail .is-selected{border-color:#d79400;background:#fff3cf;box-shadow:inset 0 0 0 1px #f0b42957}.sinter-annotation-rail .is-selected strong{color:#8a5900}.sinter-annotation-rail .is-weight-warning{border-color:#bb5b32;color:#9b4828;background:#fff1ebed}.sinter-annotation-rail .is-weight-warning strong{color:#9b4828}.sinter-annotation-rail .sinter-annotation-total{border-color:#08748a}.sinter-annotation-rail .sinter-multi-stack-weight{border-color:#075b6a;background:#e9f4f6f2}.viewer-canvas.sinter-select-active canvas{cursor:pointer}.sinter-selection-popover{position:absolute;grid-area:2 / 1;top:0;left:0;z-index:7;width:300px;max-height:calc(100% - 16px);overflow:auto;pointer-events:auto;padding:11px 12px;border:1px solid #d9a227;border-left-width:4px;border-radius:6px;background:#fffcf2f7;box-shadow:0 8px 24px #1c343c29;color:#24434c;font-size:11px;font-variant-numeric:tabular-nums}.sinter-selection-popover header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid rgba(182,132,21,.24)}.sinter-selection-popover header strong{color:#7b5600;font-size:13px}.sinter-selection-popover header span{color:#8a7442}.sinter-selection-popover dl{margin:7px 0 0}.sinter-selection-popover dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:3px 0}.sinter-selection-popover dt{color:#65747a}.sinter-selection-popover dd{margin:0;color:#173f49;font-weight:650;text-align:right}.sinter-selection-popover p{margin:8px 0;color:#68787e;line-height:1.5}.sinter-plan-wrap{margin-top:8px;padding-top:7px;border-top:1px solid rgba(182,132,21,.2);color:#68787e}.sinter-plate-plan{display:block;width:100%;height:auto;margin-top:5px;border:1px solid #c6d2d5;background:#eef3f4}.sinter-edit-grinding{width:100%;justify-content:center;border-color:#d9a227;background:#fff;color:#765300}@media(max-width:820px){.sinter-annotation-rail{width:134px;top:6px;right:4px;bottom:6px;padding-left:4px;font-size:10px}.sinter-annotation-rail strong{font-size:10px}.sinter-annotation-rail>div{padding:3px 4px;margin-bottom:5px}.sinter-selection-popover{width:min(260px,calc(100% - 150px));min-width:210px;padding:8px 9px}.viewer-shell:has([data-panel=sintering]) .sinter-annotation-rail{bottom:calc(48% + 20px)}}html[data-theme=dark]{color-scheme:dark;--dark-bg: #0d1012;--dark-canvas: #101416;--dark-surface: #151a1d;--dark-raised: #1b2225;--dark-hover: #232c30;--dark-border: #354247;--dark-border-soft: #293338;--dark-text: #e8eef0;--dark-muted: #aab8bd;--dark-accent: #59bfd4;--dark-accent-bg: #18363e;background:var(--dark-bg);color:var(--dark-text)}html[data-theme=dark] body,html[data-theme=dark] .app-shell,html[data-theme=dark] .workspace,html[data-theme=dark] .model-stage{color:var(--dark-text);background:var(--dark-bg)}html[data-theme=dark] .topbar,html[data-theme=dark] .stage-toolbar,html[data-theme=dark] .open-cad-header{border-color:var(--dark-border);color:var(--dark-text);background:#0d1012fa}html[data-theme=dark] .brand-logo{padding:0;background:transparent}html[data-theme=dark] .brand-title h1,html[data-theme=dark] .panel-title,html[data-theme=dark] .toolbar-title,html[data-theme=dark] .floating-panel-header,html[data-theme=dark] .catalog-modal-title h2,html[data-theme=dark] .metric-card strong,html[data-theme=dark] .logic-list dd,html[data-theme=dark] .detail-list strong,html[data-theme=dark] .catalog-reference dd,html[data-theme=dark] .measure-readout dd,html[data-theme=dark] .measure-title{color:var(--dark-text)}html[data-theme=dark] .brand-block p,html[data-theme=dark] .catalog-source,html[data-theme=dark] .catalog-reference dt,html[data-theme=dark] .param-name,html[data-theme=dark] .segmented.labeled>span,html[data-theme=dark] .logic-list dt,html[data-theme=dark] .detail-list span,html[data-theme=dark] .metric-card span,html[data-theme=dark] .metric-card small,html[data-theme=dark] .unit,html[data-theme=dark] .sinter-note,html[data-theme=dark] .sinter-contact-status,html[data-theme=dark] .sinter-number>span,html[data-theme=dark] .sinter-number small,html[data-theme=dark] .sinter-summary dt,html[data-theme=dark] .grinding-comparison dt,html[data-theme=dark] .grinding-material-legend,html[data-theme=dark] .grinding-preview small,html[data-theme=dark] .grinding-loading,html[data-theme=dark] .open-cad-title span,html[data-theme=dark] .open-cad-state,html[data-theme=dark] .open-cad-source-link,html[data-theme=dark] .history-heading small,html[data-theme=dark] .history-file small,html[data-theme=dark] .history-footer,html[data-theme=dark] .history-message,html[data-theme=dark] .measure-empty{color:var(--dark-muted)}html[data-theme=dark] .panel-detail-toggle{color:var(--dark-text)}html[data-theme=dark] .panel-detail-toggle small,html[data-theme=dark] .panel-detail-toggle>svg{color:var(--dark-muted)}html[data-theme=dark] .sinter-detail-toggle{border-color:var(--dark-border-soft)}html[data-theme=dark] .envelope-metric-detail{color:#ffc0a4}html[data-theme=dark] .panel,html[data-theme=dark] .metrics-panel,html[data-theme=dark] .floating-panel,html[data-theme=dark] .history-popover,html[data-theme=dark] .catalog-modal{border-color:var(--dark-border);color:var(--dark-text);background:#151a1dfa;box-shadow:0 12px 34px #00000052}html[data-theme=dark] .floating-panel-header,html[data-theme=dark] .history-heading,html[data-theme=dark] .catalog-modal-header,html[data-theme=dark] .history-footer,html[data-theme=dark] .logic-disclosure-body,html[data-theme=dark] .logic-list div,html[data-theme=dark] .detail-list div,html[data-theme=dark] .metric-card,html[data-theme=dark] .grinding-face-list li,html[data-theme=dark] .grinding-selection-heading,html[data-theme=dark] .grinding-comparison,html[data-theme=dark] .entity-panel-actions,html[data-theme=dark] .entity-list li,html[data-theme=dark] .grinding-comparison .grinding-increase--first,html[data-theme=dark] .green-body-settings,html[data-theme=dark] .sinter-settings fieldset,html[data-theme=dark] .sinter-summary,html[data-theme=dark] .sinter-weight-total,html[data-theme=dark] .sinter-legend{border-color:var(--dark-border-soft)}html[data-theme=dark] .entity-panel-intro,html[data-theme=dark] .entity-list small{color:var(--dark-muted)}html[data-theme=dark] .entity-list strong,html[data-theme=dark] .entity-list label{color:var(--dark-text)}html[data-theme=dark] .entity-list li.selected{background:var(--dark-accent-bg)}html[data-theme=dark] .entity-list li.selected label>svg,html[data-theme=dark] .entity-panel-intro strong{color:var(--dark-accent)}html[data-theme=dark] .metric-card,html[data-theme=dark] .catalog-reference div{background:var(--dark-raised)}html[data-theme=dark] input:not([type=checkbox]),html[data-theme=dark] select,html[data-theme=dark] .sinter-settings select,html[data-theme=dark] .sinter-number input,html[data-theme=dark] .sinter-stack-quantity-input,html[data-theme=dark] .green-body-settings input,html[data-theme=dark] .grinding-face-allowance input{border-color:#506067;color:var(--dark-text);background:#101619}html[data-theme=dark] input:disabled,html[data-theme=dark] select:disabled,html[data-theme=dark] .sinter-number input:disabled{color:#7f9096;background:#20282b}html[data-theme=dark] .icon-button.subtle,html[data-theme=dark] .history-file,html[data-theme=dark] .history-confirm button,html[data-theme=dark] .export-menu-list,html[data-theme=dark] .export-menu-list button,html[data-theme=dark] .catalog-modal-header{border-color:var(--dark-border);color:var(--dark-text);background:var(--dark-surface)}html[data-theme=dark] .icon-button.subtle:hover:not(:disabled),html[data-theme=dark] .icon-button.subtle:focus-visible,html[data-theme=dark] .history-file:hover,html[data-theme=dark] .history-file:focus-visible,html[data-theme=dark] .export-menu-list button:hover,html[data-theme=dark] .export-menu-list button:focus-visible{background:var(--dark-hover)}html[data-theme=dark] .icon-button.selected,html[data-theme=dark] .segment-options button.active,html[data-theme=dark] .language-switch button.active,html[data-theme=dark] .measure-mode button.active,html[data-theme=dark] .cad2d-measure-mode button.active{border-color:#3f9db1;color:#bcebf3;background:var(--dark-accent-bg);box-shadow:none}html[data-theme=dark] .segment-options,html[data-theme=dark] .language-switch,html[data-theme=dark] .measure-mode,html[data-theme=dark] .cad2d-measure-mode{border-color:var(--dark-border);background:#101619}html[data-theme=dark] .segment-options button,html[data-theme=dark] .language-switch button,html[data-theme=dark] .measure-mode button,html[data-theme=dark] .cad2d-measure-mode button,html[data-theme=dark] .logic-disclosure-toggle{color:var(--dark-muted)}html[data-theme=dark] .catalog-detail-link{border-color:#3c6670;color:#8dd8e8;background:#1b3036}html[data-theme=dark] .catalog-detail-link:hover,html[data-theme=dark] .catalog-detail-link:focus-visible{border-color:#58a9bc;background:#213d44}html[data-theme=dark] .upload-pill,html[data-theme=dark] .upload-status{border-color:var(--dark-border);color:#c2d2d7;background:var(--dark-raised)}html[data-theme=dark] .upload-status--loading{border-color:#806d36;color:#f0d98b;background:#302c1d}html[data-theme=dark] .upload-status--error,html[data-theme=dark] .cad2d-status--error{border-color:#8b513d;color:#ffb294;background:#36231e}html[data-theme=dark] .viewer-watermark{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='92' height='58' viewBox='0 0 92 58'%3E%3Ctext x='8' y='22' fill='%23d8e1e5' fill-opacity='0.16' font-family='Inter, Arial, sans-serif' font-size='11' font-weight='760' transform='rotate(-24 8 22)'%3EKSM%3C/text%3E%3Ctext x='52' y='50' fill='%23d8e1e5' fill-opacity='0.11' font-family='Inter, Arial, sans-serif' font-size='10' font-weight='760' transform='rotate(-24 52 50)'%3EKSM%3C/text%3E%3C/svg%3E");opacity:.45;mix-blend-mode:screen}html[data-theme=dark] .envelope-readout,html[data-theme=dark] .sinter-annotation-rail>div,html[data-theme=dark] .cad2d-status,html[data-theme=dark] .measure-overlay,html[data-theme=dark] .cad2d-measure-panel{border-color:var(--dark-border);color:var(--dark-text);background:#151a1deb}html[data-theme=dark] .envelope-overlay,html[data-theme=dark] .sinter-annotation-svg,html[data-theme=dark] .sinter-annotation-rail strong,html[data-theme=dark] .sinter-summary .sinter-total,html[data-theme=dark] .grinding-comparison .grinding-increase,html[data-theme=dark] .grinding-comparison .grinding-increase dd,html[data-theme=dark] .mobile-panel-toggle{color:var(--dark-accent)}html[data-theme=dark] .envelope-dimension text{stroke:var(--dark-canvas)}html[data-theme=dark] .sinter-annotation-rail span{color:var(--dark-muted)}html[data-theme=dark] .sinter-auto-gap,html[data-theme=dark] .sinter-annotation-rail .is-important,html[data-theme=dark] .sinter-annotation-rail .sinter-multi-stack-weight{color:#b7dce3;background:#18363ef0}html[data-theme=dark] .sinter-selection-popover,html[data-theme=dark] .sinter-annotation-rail .is-selected{border-color:#c8962d;color:#eee3c5;background:#302a1cf7}html[data-theme=dark] .sinter-selection-popover header strong,html[data-theme=dark] .sinter-annotation-rail .is-selected strong{color:#f2c867}html[data-theme=dark] .sinter-selection-popover header span,html[data-theme=dark] .sinter-selection-popover dt,html[data-theme=dark] .sinter-selection-popover p,html[data-theme=dark] .sinter-plan-wrap{color:#c4b994}html[data-theme=dark] .sinter-selection-popover dd{color:#dcebee}html[data-theme=dark] .sinter-weights .is-weight-warning,html[data-theme=dark] .sinter-annotation-rail .is-weight-warning{border-color:#d2774e;color:#ffc0a4;background:#472319f5}html[data-theme=dark] .sinter-annotation-rail .is-weight-warning strong{color:#ffc0a4}html[data-theme=dark] .sinter-report-icon{border-color:#477783;color:#8bd5e5;background:#13272c}html[data-theme=dark] .sinter-report-icon:hover:not(:disabled){border-color:#62a7b6;background:#19343a}html[data-theme=dark] .sinter-report-icon.is-done,html[data-theme=dark] .sinter-report-action-status{border-color:#4e8965;color:#9bdbb3;background:#172d20}html[data-theme=dark] .sinter-report-action-error{border-color:#8b5c3e;color:#ffc09d;background:#3a251c}html[data-theme=dark] .warning-panel,html[data-theme=dark] .cache-notice,html[data-theme=dark] .history-confirm,html[data-theme=dark] .open-cad-fallback-banner{border-color:#806c37;color:#efd58a;background:#302b1d}html[data-theme=dark] .warning-panel .panel-title,html[data-theme=dark] .warning-panel p,html[data-theme=dark] .sinter-warning,html[data-theme=dark] .envelope-preview-note{color:#e8c56d}html[data-theme=dark] .drop-overlay{border-color:#59bfd485;background:#12252a57}html[data-theme=dark] .drop-overlay-box,html[data-theme=dark] .open-cad-drop{border-color:#397f8e;color:#c9edf3;background:#1d3035f0}html[data-theme=dark] .drop-overlay-box span{color:var(--dark-muted)}html[data-theme=dark] .open-cad-workspace{color:var(--dark-text);background:var(--dark-bg)}html[data-theme=dark] .mobile-number-arrows button{border-color:#506067;color:#b9c8cd;background:#283034}html[data-theme=dark] .mobile-number-arrows button:active:not(:disabled){color:#c9f2f7;background:#1d4149}html[data-theme=dark] .mobile-panel-summary{color:var(--dark-muted)}.sinter-check{display:flex;align-items:center;gap:6px;margin:10px 0;line-height:1.4}.sinter-check input{accent-color:#087f9a}.sinter-check small{margin-left:auto;color:#708087;font-size:10px}.sinter-tabs{display:flex;margin:12px 0}.sinter-tabs button{flex:1}.sinter-settings fieldset{border:0;border-bottom:1px solid #e2e8eb;padding:0 0 12px;margin:0 0 12px;min-width:0}.sinter-settings legend{font-weight:650;margin-bottom:8px}.sinter-settings select{width:100%;height:32px;border:1px solid #c9d3d8;border-radius:4px;padding:0 8px;background:#fff;margin-bottom:10px}.sinter-layout-preset{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:-2px 0 8px}.sinter-layout-preset .icon-button{min-width:88px;height:28px;justify-content:center}.sinter-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sinter-fields.three{grid-template-columns:repeat(3,minmax(0,1fr))}.sinter-number{display:block;min-width:0}.sinter-number>span{display:block;margin-bottom:5px;color:#566970;font-size:11px}.sinter-number>div{display:flex;gap:4px;align-items:center}.sinter-number input{width:100%;min-width:0;height:32px;padding:0 5px;border:1px solid #c9d3d8;border-radius:4px;background:#fff;font-variant-numeric:tabular-nums}.sinter-number input:disabled{background:#edf1f3;color:#63757b}.sinter-number small{color:#708087;font-size:10px;flex:0 0 auto}.sinter-quick-settings{margin:12px 0}.sinter-quick-settings>.sinter-number{display:grid;grid-template-columns:minmax(0,1fr) 136px;align-items:center;gap:12px}.sinter-quick-settings>.sinter-number>span{margin:0;font-size:inherit;font-weight:600}.number-input-control{display:block;width:100%;min-width:0}.number-input-control>input{display:block;min-width:0}.mobile-number-arrows{display:none}.sinter-direction{display:flex;gap:8px;align-items:center;justify-content:space-between}.sinter-summary{border-top:1px solid #dce4e7;margin:12px 0 0;padding:8px 0 0;font-variant-numeric:tabular-nums}.sinter-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:4px 0}.sinter-summary dt{color:#62767e}.sinter-summary dd{margin:0;font-weight:650;text-align:right}.sinter-summary .sinter-total{color:#08748a;padding:8px 0}.sinter-total dd{font-size:18px}.sinter-warning{color:#985c15;line-height:1.5;margin:10px 0}.warning-detail{display:flex;align-items:flex-start;gap:6px}.warning-detail>svg{flex:0 0 auto;margin-top:2px}.warning-detail>span{display:grid;gap:1px}.warning-detail strong{font-size:10px;line-height:1.3}.warning-detail small{font-size:9px;line-height:1.45}.sinter-legend{display:flex;gap:12px;color:#677b83;border-top:1px solid #e2e8eb;padding-top:8px;margin-top:8px;font-size:10px}.sinter-legend span{display:flex;align-items:center;gap:4px}.sinter-legend i{width:9px;height:9px;border:1px solid #97a5ac}.sinter-legend .plate{background:#c8ced0}.sinter-legend .pillar{background:#4b555a}.sinter-pdf-button{display:flex;width:100%;min-height:38px;margin-top:12px;align-items:center;justify-content:center;gap:7px;border:1px solid #087f9a;border-radius:5px;color:#fff;background:#087f9a;font:inherit;font-weight:650;cursor:pointer}.sinter-pdf-button:hover:not(:disabled){background:#066d84}.sinter-pdf-button:disabled{cursor:wait;opacity:.7}.sinter-report-status{margin:8px 0 0;color:#247048;text-align:center}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.config-page-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px;background:#0f191e94;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.config-page{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(940px,100%);max-height:min(900px,calc(100dvh - 36px));border:1px solid #c9d4d9;border-radius:8px;color:#21363e;background:#f8fafb;box-shadow:0 20px 60px #0b191f4d;overflow:hidden}.config-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid #dbe3e6;background:#fff}.config-page-header h2{font-size:18px}.config-page-header p,.config-section-heading p,.config-weight-limit p{margin-top:5px;color:#61757d;font-size:11px;line-height:1.5}.config-page-body{min-height:0;padding:0 20px 20px;overflow:auto;overscroll-behavior:contain}.config-section{padding:18px 0;border-bottom:1px solid #dce4e7}.config-section:last-of-type{border-bottom:0}.config-section h3,.config-field-group h3{margin:0 0 10px;font-size:13px}.pillar-height-list{display:flex;flex-wrap:wrap;gap:7px}.pillar-height-list>span{display:inline-flex;height:30px;align-items:center;gap:5px;padding:0 4px 0 9px;border:1px solid #c8d4d9;border-radius:4px;color:#31525d;background:#fff;font-size:11px;font-variant-numeric:tabular-nums}.pillar-height-list button{display:inline-flex;width:23px;height:23px;align-items:center;justify-content:center;border:0;color:#6c7c82;background:transparent}.pillar-height-add{display:grid;grid-template-columns:minmax(120px,180px) auto auto;align-items:center;gap:7px;margin-top:10px}.pillar-height-add input{width:100%;height:34px;border:1px solid #c4d0d5;border-radius:4px;padding:0 8px}.pillar-height-add small{color:#6b7d84}.config-furnace-tabs{width:min(420px,100%);margin-bottom:18px}.config-furnace-tabs button{flex:1}.config-field-group{padding:15px 0;border-top:1px solid #e1e8ea}.config-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.config-field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.config-number{display:block;min-width:0}.config-number>span{display:block;margin-bottom:5px;color:#566970;font-size:11px}.config-number>div{display:flex;align-items:center;gap:6px}.config-number input{width:100%;height:36px;padding:0 8px;border:1px solid #c4d0d5;border-radius:4px;background:#fff;font-variant-numeric:tabular-nums}.config-number small{flex:0 0 auto;color:#6b7d84}.config-weight-limit .sinter-check{font-weight:650}.config-error{margin-top:10px;padding:9px 11px;border-left:3px solid #b95034;color:#8e3c28;background:#fff0eb;font-size:12px}.config-page-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid #d7e0e4;background:#fff}.config-page-footer>div{display:flex;gap:8px}html[data-theme=dark] .config-page{border-color:var(--dark-border);color:var(--dark-text);background:var(--dark-bg)}html[data-theme=dark] .config-page-header,html[data-theme=dark] .config-page-footer{border-color:var(--dark-border);background:var(--dark-surface)}html[data-theme=dark] .config-section,html[data-theme=dark] .config-field-group{border-color:var(--dark-border-soft)}html[data-theme=dark] .config-page-header p,html[data-theme=dark] .config-section-heading p,html[data-theme=dark] .config-weight-limit p,html[data-theme=dark] .config-number>span,html[data-theme=dark] .config-number small{color:var(--dark-muted)}html[data-theme=dark] .pillar-height-list>span{border-color:var(--dark-border);color:var(--dark-text);background:var(--dark-raised)}html[data-theme=dark] .pillar-height-list button{color:var(--dark-muted)}html[data-theme=dark] .config-error{color:#ffc0a4;background:#3a251c}.grinding-material-legend{display:flex;align-items:center;gap:7px;color:#536b73}.grinding-material-legend i{width:12px;height:12px;border-radius:2px;border:1px solid #1092a8}.green-body-settings{display:grid;gap:8px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #e4eaed}.green-body-settings .number-setting-row{display:grid;grid-template-columns:minmax(0,1fr) 80px 48px;align-items:center;gap:8px}.green-body-settings input{width:100%;height:32px;border:1px solid #c9d3d8;border-radius:4px;padding:0 8px}.green-body-settings input[aria-invalid=true]{border-color:#ae432f}.green-face-allowance{display:flex;justify-content:space-between;grid-column:1 / -1;color:#4b7453;font-size:11px}.simulation-stage button{min-width:56px}.grinding-face-allowance{display:grid;grid-template-columns:minmax(0,1fr) 80px 24px;align-items:center;gap:8px}.grinding-face-allowance input{width:100%;height:32px;border:1px solid #c9d3d8;border-radius:4px;padding:0 8px}.grinding-uniform{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:8px;margin-top:12px}.grinding-uniform .grinding-face-allowance{grid-template-columns:minmax(0,1fr) 68px 20px;gap:6px}.grinding-uniform input[aria-invalid=true]{border-color:#ba4434}.grinding-preview{display:flex;align-items:center;gap:6px;margin-top:12px}.grinding-preview small{color:#708087;margin-left:auto}.grinding-selection-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid #e4eaed;padding-top:4px;margin-top:12px}.grinding-selection-heading .panel-detail-toggle{flex:1}.grinding-selection-heading strong{font-size:12px}.grinding-face-list{list-style:none;padding:0;margin:0;max-height:280px;overflow:auto;scrollbar-width:thin}.grinding-face-list li{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #e5ecef}.grinding-face-heading{display:flex;align-items:center;justify-content:space-between;grid-column:1 / -1;gap:8px}.grinding-face-list strong{text-align:right;font-weight:600}.grinding-loading{margin-top:10px;color:#647980;font-size:12px}.grinding-face-list .square,.grinding-selection-heading .square{border:0}.grinding-error{margin-top:8px;color:#a34024;font-size:10px;line-height:1.45}.grinding-comparison{margin:10px 0 0;padding-top:8px;border-top:1px solid #e4eaed}.grinding-comparison>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:4px 0}.grinding-comparison dt{color:#667880}.grinding-comparison dd{margin:0;font-weight:650}.grinding-comparison .grinding-increase{color:#08748a}.grinding-comparison .grinding-increase--first{margin-top:4px;border-top:1px solid #dce7ea;padding-top:8px}.grinding-comparison .grinding-increase dt{color:#3f6973}.grinding-comparison .grinding-increase dd{color:#075d73;font-size:13px}.envelope-readout dl{display:flex;flex-wrap:wrap;gap:3px 14px;margin:3px 0 0}.envelope-readout dl>div{display:flex;gap:5px}.envelope-readout dd{margin:0;font-weight:700;overflow-wrap:anywhere}.envelope-svg{position:absolute;inset:0;grid-area:2 / 1;z-index:3;min-width:0;min-height:0;width:100%;height:100%;overflow:hidden}.envelope-svg path{fill:none;stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke}.envelope-outline{stroke-dasharray:5 4;opacity:.5}.envelope-dimension text{fill:currentColor;stroke:#f5f7f8;stroke-width:4px;stroke-linejoin:round;paint-order:stroke;font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}.envelope-overlay--2d{color:#5ee3ee}.envelope-overlay--2d .envelope-readout{background:#121d21eb}.envelope-overlay--2d .envelope-dimension text{stroke:#121d21}.cad2d-viewer-shell.measure-active{cursor:crosshair}.cad2d-viewer-canvas{position:absolute;inset:0;z-index:1}.cad2d-viewer-canvas canvas{display:block}.cad2d-viewer-canvas .ml-cli-container{display:none!important}.cad2d-watermark{position:absolute;inset:0;z-index:2;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='108' height='68' viewBox='0 0 108 68'%3E%3Ctext x='10' y='27' fill='%23d8e1e5' fill-opacity='0.10' font-family='Inter, Arial, sans-serif' font-size='12' font-weight='760' transform='rotate(-24 10 27)'%3EKSM%3C/text%3E%3Ctext x='62' y='58' fill='%23d8e1e5' fill-opacity='0.07' font-family='Inter, Arial, sans-serif' font-size='11' font-weight='760' transform='rotate(-24 62 58)'%3EKSM%3C/text%3E%3C/svg%3E");background-repeat:repeat;background-size:108px 68px;opacity:.32}.cad2d-status{position:absolute;left:50%;top:18px;z-index:5;max-width:calc(100% - 32px);transform:translate(-50%);border:1px solid #d4dde2;border-radius:8px;padding:8px 11px;color:#30454d;background:#ffffffeb;box-shadow:0 8px 20px #1220261f;font-size:12px;font-weight:720;line-height:1.3;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cad2d-status--error{border-color:#e9b48d;color:#8a3300;background:#fff1e8f0}.cad2d-measure-svg{position:absolute;grid-area:2 / 1;inset:0;z-index:4;width:100%;height:100%;pointer-events:none}.cad2d-measure-svg line{stroke:#08799d;stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}.cad2d-measure-svg circle{fill:#fff;stroke:#08799d;stroke-width:2;vector-effect:non-scaling-stroke}.cad2d-area-path{fill:#00a6d62e;stroke:#00a6d6;stroke-width:2;vector-effect:non-scaling-stroke}.cad2d-area-path.secondary{fill:#f0b42929;stroke:#f0b429}.cad2d-hover-marker circle{fill:#08799d24;stroke:#00a6d6;stroke-width:2}.cad2d-hover-marker line{stroke:#00a6d6;stroke-width:1.5;stroke-dasharray:2 3}.cad2d-snap-guide{position:absolute;grid-area:2 / 1;z-index:5;transform:translate(12px,-50%);max-width:min(220px,calc(100% - 24px));border:1px solid rgba(8,121,157,.32);border-radius:6px;padding:4px 7px;color:#063447;background:#ecfafdeb;box-shadow:0 6px 16px #0d212729;font-size:11px;font-weight:760;line-height:1.2;white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cad2d-snap-guide--missed{border-color:#7c8d9459;color:#52666d;background:#ffffffc2;box-shadow:none}.cad2d-measure-panel{position:absolute;left:12px;bottom:12px;z-index:5;width:min(320px,calc(100% - 24px));border:1px solid rgba(154,170,177,.55);border-radius:8px;padding:10px 11px;color:#162429;background:#ffffffe6;box-shadow:0 10px 24px #15202421;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cad2d-measure-mode{display:inline-flex;gap:2px;margin-top:8px;margin-bottom:8px;border:1px solid #cbd7dd;border-radius:7px;padding:2px;background:#f4f7f8}.cad2d-measure-mode button{min-width:52px;height:26px;border:0;border-radius:5px;padding:0 10px;color:#52626a;background:transparent;font-size:11px;font-weight:760}.cad2d-measure-mode button.active{color:#063447;background:#fff;box-shadow:0 1px 2px #0f1e261f}.cad2d-measure-clear{display:inline-flex;align-items:center;justify-content:center;height:24px;margin-top:8px;border:1px solid #cbd7dd;border-radius:6px;padding:0 9px;color:#37525b;background:#f6fafb;font-size:11px;font-weight:760;line-height:1}.cad2d-measure-snaps{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.cad2d-measure-snaps span{display:inline-flex;align-items:center;max-width:100%;min-height:20px;border:1px solid rgba(8,121,157,.2);border-radius:999px;padding:2px 7px;color:#0b5c75;background:#e5f6fbd1;font-size:11px;font-weight:720;line-height:1.2}.cad2d-measure-clear:hover,.cad2d-measure-clear:focus-visible{color:#063447;background:#e9f4f7;outline:none}.measure-overlay{position:absolute;left:12px;bottom:12px;z-index:5;min-width:190px;max-width:min(300px,calc(100% - 24px));border:1px solid rgba(154,170,177,.55);border-radius:8px;padding:10px 11px;color:#162429;background:#ffffffe0;box-shadow:0 10px 24px #15202421;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.measure-title{color:#253840;font-size:12px;font-weight:760;line-height:1.2}.measure-empty{display:block;margin-top:7px;color:#617078;font-size:11px;font-weight:650;line-height:1.3}.measure-mode{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;margin-top:9px;padding:2px;border:1px solid #cbd7dd;border-radius:7px;background:#f4f7f8eb}.measure-mode button{height:24px;border:0;border-radius:5px;padding:0 6px;color:#52626a;background:transparent;font-size:11px;font-weight:760}.measure-mode button.active{color:#063447;background:#fff;box-shadow:0 1px 2px #0f1e261f}.measure-selections{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.measure-selections span{display:inline-flex;align-items:center;min-height:20px;border:1px solid #cbd7dd;border-radius:999px;padding:0 8px;color:#365059;background:#f5f9fbe0;font-size:10px;font-weight:760;line-height:1}.measure-readout{display:grid;gap:5px;margin:8px 0 0}.measure-readout div{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.measure-readout dt{color:#66757c;font-size:10px;font-weight:760;text-transform:uppercase}.measure-readout dd{margin:0;color:#101b1f;font-size:12px;font-weight:760;font-variant-numeric:tabular-nums}.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;border:1px solid #cbd7dd;border-radius:7px;padding:0 12px;font-size:12px;font-weight:720;line-height:1;text-decoration:none;cursor:pointer}.icon-button.primary{border-color:#08799d;color:#fff;background:#087fa6}.icon-button.subtle{color:#294149;background:#fff}.icon-button.compact{height:32px;padding:0 10px}.icon-button.square{width:32px;height:32px;padding:0}.icon-button.selected{border-color:#0b83aa;color:#07516a;background:#e8f7fb}.export-menu{position:relative;display:inline-flex}.export-trigger[aria-expanded=true]{border-color:#075d7b;background:#076f92}.export-menu-list{position:absolute;top:calc(100% + 6px);right:0;z-index:20;display:grid;min-width:132px;overflow:hidden;border:1px solid #cbd7dd;border-radius:7px;background:#fff;box-shadow:0 12px 28px #15202429}.export-menu-list button{height:34px;border:0;padding:0 12px;color:#203035;background:#fff;font-size:12px;font-weight:720;text-align:left}.export-menu-list button:hover,.export-menu-list button:focus-visible{background:#edf6f9;outline:none}.wire-dot{width:12px;height:12px;border:2px solid currentColor;border-radius:3px;background:linear-gradient(45deg,transparent 42%,currentColor 44%,currentColor 56%,transparent 58%),linear-gradient(-45deg,transparent 42%,currentColor 44%,currentColor 56%,transparent 58%)}.catalog-modal-backdrop{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:28px;background:#0a12166b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.catalog-modal{display:grid;grid-template-rows:56px minmax(0,1fr);width:min(1180px,100%);height:min(840px,100%);overflow:hidden;border:1px solid rgba(205,217,222,.92);border-radius:8px;background:#fff;box-shadow:0 24px 70px #0f1c2259}.catalog-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:0 12px 0 16px;border-bottom:1px solid #d7e0e5;background:#fff}.catalog-modal-title{min-width:0}.catalog-modal-title span{display:block;color:#6a7880;font-size:10px;font-weight:760;line-height:1;text-transform:uppercase}.catalog-modal-title h2{margin-top:5px;overflow:hidden;color:#142126;font-size:15px;font-weight:780;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.catalog-modal-actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}.catalog-detail-frame{width:100%;height:100%;border:0;background:#fff}.metrics-panel{padding-bottom:14px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 14px 12px}.metric-card{min-width:0;border:1px solid #d7e1e6;border-radius:8px;padding:11px;background:#fbfcfd}.metric-card span{display:block;color:#607077;font-size:11px;font-weight:760;line-height:1}.metric-card strong{display:block;margin-top:7px;color:#101b1f;font-size:19px;font-weight:760;line-height:1.05;font-variant-numeric:tabular-nums}.metric-card small{display:block;margin-top:7px;color:#6b7a81;font-size:10px;line-height:1.25}.detail-list{display:grid;padding:0 14px}.warning-panel{border-color:#e8c06d;background:#fffaf0}.warning-panel .panel-title{color:#8a5a00}.warning-panel p{padding:0 14px 12px;color:#6d4a06;font-size:12px;line-height:1.45}body{overflow:hidden;height:100dvh}.toolbar-title{flex:1;min-width:0}.upload-pill,.upload-status{max-width:100%;margin:0;border-radius:4px}.upload-pill>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.panel-controls{display:flex;align-items:center;gap:6px;flex:0 0 auto}.simulation-flow{display:flex;align-items:center;gap:6px}.view-controls{flex:0 0 auto}.floating-panels{position:absolute;inset:0;z-index:10;pointer-events:none;min-width:0;min-height:0}.viewer-shell--imported .floating-panels,.cad2d-viewer-shell .floating-panels{grid-area:2 / 1}.viewer-shell--imported:not(.viewer-shell--sintering) .floating-panels{grid-area:1 / 1}.floating-panel{position:absolute;top:0;left:0;width:min(var(--panel-width),calc(100% - 24px));max-height:calc(100% - 24px);display:flex;flex-direction:column;border:1px solid #cbd5da;border-radius:8px;background:#fffffff7;box-shadow:0 5px 18px #1422281f;overflow:hidden;pointer-events:auto}.floating-panel.is-dragging{z-index:2;box-shadow:0 8px 24px #14222833}.floating-panel-header{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 14px;border-bottom:1px solid #e2e8eb;flex:0 0 auto;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.floating-panel.is-dragging .floating-panel-header{cursor:grabbing}.floating-panel-header h2{flex:1;font-size:13px;line-height:1.2}.panel-grip{color:#829298}.floating-panel-header .icon-button{border:0;background:transparent}.mobile-panel-summary{display:none}.floating-panel-content{min-height:0;overflow:auto;overscroll-behavior:contain;padding-top:12px;scrollbar-width:thin}.floating-panel .metrics-panel,.floating-panel .warning-panel{border:0;border-radius:0}.floating-panel .metrics-panel{padding:0}.floating-panel .metric-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0 14px}.floating-panel .metric-card{border:0;border-bottom:1px solid #e5eaec;border-radius:0;padding:10px 0;background:transparent}.floating-panel .metric-card:first-child{padding-top:0}.floating-panel .metric-card:last-child{border-bottom:0}.floating-panel .metric-card strong{font-size:19px;line-height:1.25;overflow-wrap:anywhere}.floating-panel .detail-list{padding-bottom:12px}.floating-panel .catalog-reference div{border:0;border-radius:0;border-left:1px solid #dce3e6;background:transparent;padding:4px 6px}.floating-panel .catalog-reference dd{overflow-wrap:anywhere;line-height:1.25}.cache-notice{position:absolute;bottom:12px;left:50%;transform:translate(-50%);width:max-content;max-width:calc(100% - 24px);display:flex;align-items:center;gap:8px;border:1px solid #d9bf71;border-radius:6px;background:#fff8e4;padding:6px 8px 6px 12px;color:#654b10;font-size:12px;line-height:1.5;pointer-events:auto;z-index:3}.cache-notice .icon-button{flex:0 0 auto;background:transparent;border:0}.history-menu{position:relative;display:inline-flex}.history-popover{position:absolute;right:0;top:calc(100% + 8px);width:380px;max-width:calc(100vw - 24px);max-height:min(520px,calc(100dvh - 190px));display:flex;flex-direction:column;border:1px solid #ccd7dc;border-radius:8px;color:#203035;background:#fff;box-shadow:0 12px 32px #1422282e;overflow:hidden;z-index:50}.history-heading{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 14px;border-bottom:1px solid #e3e9ec;flex:0 0 auto}.history-heading strong{flex:1;font-size:13px}.history-heading small{color:#64767e;font-size:11px}.history-heading .icon-button{border:0}.history-list{list-style:none;padding:0;margin:0;overflow:auto;overscroll-behavior:contain;min-height:0}.history-list li{display:flex;align-items:center;gap:4px;padding-right:8px;border-bottom:1px solid #edf0f2}.history-file{display:flex;align-items:center;gap:10px;min-width:0;flex:1;padding:12px 14px;text-align:left;background:#fff;border:0;color:#233b45}.history-file:hover,.history-file:focus-visible{background:#f0f7f9}.history-file>svg{flex-shrink:0;color:#33718c}.history-file>span{display:grid;gap:6px;min-width:0}.history-file strong{font-size:12px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-file small{font-size:11px;color:#677980;line-height:1.4}.history-list .square{flex:0 0 auto;border:0}.history-footer,.history-message{padding:12px 14px;font-size:11px;color:#65757d;flex:0 0 auto}.history-footer{border-top:1px solid #e4eaed;background:#f8fafb}.history-confirm{padding:12px 14px;border-bottom:1px solid #ead6a3;background:#fff9e9;font-size:12px;flex:0 0 auto}.history-confirm p{margin-bottom:10px}.history-confirm button{padding:6px 12px;margin-right:8px;border:1px solid #c5ced3;border-radius:4px;background:#fff}.open-cad-workspace{width:100%;height:100%;min-height:0;display:grid;grid-template-rows:54px minmax(0,1fr);color:#20343d;background:#eef3f5;overflow:hidden}.open-cad-header{position:relative;z-index:20;display:flex;align-items:center;gap:8px;min-width:0;padding:7px 12px;border-bottom:1px solid #ccd8dd;background:#fff}.open-cad-title{display:grid;gap:1px;min-width:150px;max-width:min(420px,34vw);margin-right:auto}.open-cad-title strong{font-size:13px;line-height:1.2}.open-cad-title span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#62747c;font-size:11px}.open-cad-state{display:inline-flex;align-items:center;gap:5px;min-width:0;color:#62747c;font-size:11px;white-space:nowrap}.open-cad-state--ready{color:#12657b}.open-cad-source-link{color:#516972;font-size:10px;text-decoration:none;white-space:nowrap}.open-cad-source-link:hover{color:#08708d;text-decoration:underline}.open-cad-body{position:relative;min-height:0;overflow:hidden;background:#1e1e1e}.open-cad-frame{display:block;width:100%;height:100%;border:0;background:#1e1e1e}.open-cad-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;color:#d8e2e6;background:#1e1e1e;font-size:13px}.open-cad-spinner{width:22px;height:22px;border:3px solid #3e4b50;border-top-color:#43a8c4;border-radius:50%;animation:open-cad-spin .8s linear infinite}@keyframes open-cad-spin{to{transform:rotate(360deg)}}.open-cad-fallback-banner{position:absolute;z-index:12;top:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:8px 12px;border:1px solid #d9b97a;border-radius:6px;color:#61480d;background:#fff9e8;box-shadow:0 5px 18px #19252b24;font-size:12px}.open-cad-body>.viewer-canvas{width:100%;height:100%}.open-cad-drop{position:fixed;z-index:80;inset:66px 12px 12px;display:flex;align-items:center;justify-content:center;gap:10px;border:2px dashed #1685a3;color:#075d76;background:#eef8fbf0;pointer-events:none}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid #1682a7;outline-offset:2px}@media(min-width:821px)and (max-width:1240px){.brand-logo{max-width:235px}.brand-title h1{font-size:14px}.topbar{gap:12px;padding:10px 14px}.top-actions{gap:6px}.top-actions>.icon-button:not([title="在线打开 CAD 文件"]):not([title="Open CAD file online"]) span,.history-trigger span{display:none}}@media(max-width:820px){.config-page-backdrop{padding:0}.config-page{width:100%;height:100%;max-height:none;border:0;border-radius:0}.config-page-header{padding:14px 16px}.config-page-header p{max-width:280px}.config-page-body{padding:0 16px 16px}.config-field-grid,.config-field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.config-number input,.pillar-height-add input{height:40px}.config-page-footer{padding:10px 12px}.config-page-footer .icon-button{min-width:38px}.config-page-footer>.icon-button span{display:none}.open-cad-workspace{grid-template-rows:50px minmax(0,1fr)}.open-cad-header{gap:5px;padding:6px 8px}.open-cad-header .icon-button{min-width:36px;padding-inline:9px}.open-cad-header .icon-button>span{display:none}.open-cad-title{min-width:0;max-width:none;flex:1;margin-right:0}.open-cad-title strong{font-size:12px}.open-cad-title span{font-size:10px}.open-cad-state,.open-cad-source-link{display:none}.open-cad-fallback-banner{top:6px;width:calc(100% - 16px)}.open-cad-drop{inset:58px 8px 8px}.number-input-control{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:stretch}.number-input-control>input{border-radius:4px 0 0 4px!important}.mobile-number-arrows{display:grid;grid-template-rows:1fr 1fr;min-width:30px;height:40px}.mobile-number-arrows button{display:flex;width:30px;min-width:30px;height:20px;align-items:center;justify-content:center;border:1px solid #aebfc6;border-left:0;padding:0;color:#31515b;background:#f5f8f9;touch-action:manipulation}.mobile-number-arrows button:first-child{border-radius:0 4px 0 0;border-bottom:0}.mobile-number-arrows button:last-child{border-radius:0 0 4px}.mobile-number-arrows button:active:not(:disabled){color:#075d73;background:#dff1f5}.mobile-number-arrows button:disabled{color:#9ba8ad;background:#edf1f3}.topbar{align-items:stretch;flex-direction:column;padding:8px 12px;gap:8px;min-height:0}.brand-block{justify-content:space-between;gap:10px}.brand-logo{max-width:210px;max-height:44px}.brand-title h1{white-space:normal;font-size:12px;line-height:1.4}.top-actions{width:100%;gap:6px;justify-content:flex-start;flex-wrap:nowrap}.top-actions .icon-button{padding:0 8px;gap:4px}.top-actions>.icon-button span,.history-trigger span,.export-trigger span,.export-trigger>svg:last-child{display:none}.top-actions>button[title="在线打开 CAD 文件"] span,.top-actions>button[title="Open CAD file online"] span{display:inline;font-size:11px}.language-switch{margin-right:auto}.language-switch button{min-width:25px;padding:0 5px;font-size:11px}.stage-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;padding:6px 12px}.toolbar-title{grid-column:1 / -1}.toolbar-title:empty{display:none}.panel-controls{grid-column:1 / -1;width:100%;flex-wrap:wrap}.panel-controls .icon-button{min-width:64px;height:28px}.panel-controls .simulation-flow{width:100%}.simulation-flow>.icon-button{flex:1 1 0;min-width:0;padding:0 7px}.simulation-flow .simulation-stage{flex:0 0 auto;margin-left:0}.view-controls{grid-column:1 / -1;width:100%;justify-content:space-between;gap:5px}.view-controls .segment-options{flex:1}.view-controls .segment-options button{flex:1;min-width:0;padding:0 7px;font-size:11px}.view-controls .icon-button{flex:0 0 auto;padding:0 8px;gap:4px;font-size:11px}.view-controls button[title=最大化视窗] span,.view-controls button[title=退出最大化视窗] span,.view-controls button[title="Maximize viewport"] span,.view-controls button[title="Exit maximized viewport"] span,.view-controls button[title="选择点/线/面测量"] span,.view-controls button[title="Measure points, edges, and faces"] span,.view-controls button[title=切换边线显示] span:not(.wire-dot),.view-controls button[title="Toggle wire edges"] span:not(.wire-dot){display:none}.upload-pill,.upload-status{height:24px;max-width:100%}.floating-panel{inset:auto 12px 10px;width:auto;max-height:52%;transform:none!important}.floating-panel-header{min-height:42px;padding:3px 8px 3px 12px;cursor:default;touch-action:auto}.floating-panel-content{padding-top:10px}.floating-panel .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px}.floating-panel .metric-card{padding:0 0 10px}.floating-panel .metric-card strong{font-size:16px}.floating-panel .metric-card small{line-height:1.4}.floating-panel--metrics{max-height:44%}.floating-panel--dimensions{max-height:55%}.floating-panel--entities{max-height:58%}.floating-panel--grinding{max-height:48%}.floating-panel--sintering{left:8px;right:8px;bottom:8px;max-height:52%}.floating-panel--sintering.is-mobile-expanded{height:min(72%,620px);max-height:calc(100% - 16px)}.floating-panel--sintering.is-mobile-collapsed{height:auto;max-height:none}.floating-panel--sintering.is-mobile-collapsed .floating-panel-header{border-bottom:0}.floating-panel--sintering.is-mobile-collapsed .floating-panel-header h2{flex:0 0 auto;white-space:nowrap}.mobile-panel-summary{display:block;min-width:0;flex:1;overflow:hidden;color:#526a73;font-size:10px;font-variant-numeric:tabular-nums;text-align:right;text-overflow:ellipsis;white-space:nowrap}.mobile-panel-toggle{flex:0 0 auto;color:#08748a}.floating-panel--sintering.is-mobile-expanded .floating-panel-content{flex:1;padding-top:12px}.floating-panel--sintering.is-mobile-expanded .sinter-controls{padding:0 14px 18px;font-size:13px}.floating-panel--sintering.is-mobile-expanded .sinter-tabs button{min-height:36px;font-size:12px}.floating-panel--sintering.is-mobile-expanded .sinter-number>span{font-size:12px}.floating-panel--sintering.is-mobile-expanded .sinter-number input,.floating-panel--sintering.is-mobile-expanded .sinter-settings select{height:40px;font-size:14px}.floating-panel--sintering.is-mobile-expanded .sinter-fields.three{grid-template-columns:repeat(2,minmax(0,1fr))}.viewer-shell:has(.floating-panel--sintering.is-mobile-expanded) .sinter-annotation-rail{bottom:calc(72% + 16px)}.viewer-shell:has(.floating-panel--sintering.is-mobile-collapsed) .sinter-annotation-rail{bottom:58px}.panel-controls .simulation-stage button{height:26px;padding:0 10px;font-size:11px}.cache-notice{bottom:auto;top:8px}.history-menu{position:static}.history-popover{top:calc(100% + 4px);left:12px;right:12px;width:auto;max-height:min(440px,calc(100dvh - 210px))}.model-stage--maximized{inset:0}.catalog-modal-backdrop{padding:10px}.catalog-modal{grid-template-rows:auto minmax(0,1fr);width:100%;height:100%}.catalog-modal-header{align-items:flex-start;flex-direction:column;padding:12px}.catalog-modal-actions{width:100%}.catalog-modal-actions .icon-button:first-child{flex:1}}@media(max-width:460px){.config-field-grid{grid-template-columns:1fr}.top-actions{gap:4px}.top-actions .icon-button{min-width:32px;padding-inline:7px}.top-actions>button[title="在线打开 CAD 文件"] span,.top-actions>button[title="Open CAD file online"] span{display:none}}
