.ui-select{width:100%;min-width:0;display:inline-flex}.ui-select .ui-select-trigger{border:1px solid var(--line);background:var(--paper-light);width:100%;min-width:0;height:38px;color:var(--ink);text-align:left;white-space:nowrap;justify-content:flex-start;padding:7px 34px 7px 10px;font-size:14px;line-height:22px;position:relative}.ui-select-trigger>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.ui-select-trigger>svg{pointer-events:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.ui-select-trigger:hover{border-color:var(--scroll-thumb-hover)}.ui-select-trigger[aria-invalid=true]{border-color:var(--accent)}.ui-select-trigger[aria-expanded=true]{border-color:var(--ink)}.ui-select-menu{z-index:1100;border:1px solid var(--line);background:var(--paper-light);color:var(--ink);scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent;overscroll-behavior:contain;border-radius:2px;padding:4px;overflow:auto;box-shadow:0 6px 18px #14254b18}button.ui-select-option{text-align:left;white-space:normal;overflow-wrap:anywhere;justify-content:space-between;gap:12px;width:100%;min-height:34px;padding:7px 9px;font-size:14px;line-height:20px;display:flex}.ui-select-option>span{min-width:0}.ui-select-option>svg{flex:none}.ui-select-option.is-active{background:var(--ink-soft)}.ui-select-option[aria-selected=true]{font-weight:600}.ui-select-option:disabled{opacity:.45}.drawing-review{min-width:0;font-size:14px}.drawing-review h3,.drawing-review h4,.drawing-review p{margin:0}.drawing-review h3{font-size:17px}.drawing-review h4,.drawing-review input,.drawing-review select,.drawing-review button{font-size:14px}.drawing-review button{white-space:normal}.drawing-review-top{justify-content:space-between;align-items:start;gap:16px;margin-bottom:16px;display:flex}.drawing-review-top p,.drawing-review-note,.drawing-review-templates>p{color:var(--muted);font-size:13px;line-height:1.6}.drawing-review-top p{margin-top:4px}.drawing-review-space{flex-shrink:0;width:210px}.drawing-review label{flex-direction:column;gap:5px;min-width:0;display:flex}.drawing-review label>span{font-size:13px}.drawing-review-grid{grid-template-columns:minmax(0,1.2fr) minmax(270px,1fr);align-items:start;gap:18px;display:grid}.drawing-review-source,.drawing-review-layers{min-width:0}.drawing-review-source-heading,.drawing-review-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px;display:flex}.drawing-review-source-heading>span,.drawing-review-section-heading>span{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.drawing-review-stage{aspect-ratio:1.3;border:1px solid var(--line);background:var(--paper-light);width:100%;min-height:245px;display:flex;position:relative}.drawing-review-stage svg{width:100%;height:100%;min-height:245px;max-height:440px;display:block}.drawing-review-geometry{stroke:var(--ink);fill:#2146b50d;stroke-width:1.5px}.drawing-review-shape.is-hole .drawing-review-geometry{stroke:#37799a;fill:#37799a15}.drawing-review-shape.is-pocket .drawing-review-geometry{stroke:var(--accent);fill:var(--accent-soft)}.drawing-review-shape.is-stock .drawing-review-geometry{stroke:#65778a;fill:#65778a07;stroke-dasharray:8 4}.drawing-review-shape.is-unknown .drawing-review-geometry,.drawing-review-shape.is-invalid:not(.is-ignore) .drawing-review-geometry{stroke:var(--accent);fill:#c44a2410;stroke-dasharray:5 4}.drawing-review-shape.is-ignore .drawing-review-geometry{stroke:#a5a5a1;fill:#a5a5a10a;stroke-dasharray:2 4}.drawing-review-shape.is-selected .drawing-review-geometry{stroke-width:3px;filter:drop-shadow(0 0 2px #2146b54a)}.drawing-review-shape .drawing-review-geometry.is-open-path{fill:none}.drawing-review-shape .drawing-review-geometry.is-user-closed-area{stroke:none}.drawing-review-closing-edge{stroke:var(--accent);stroke-width:2px;stroke-dasharray:5 4;fill:none;pointer-events:none}.drawing-review-hit{stroke:#0000;fill:#0000;stroke-width:12px;cursor:pointer}.drawing-review-hit:focus-visible{stroke:#2146b565;stroke-width:5px;outline:none}.drawing-review-label{fill:var(--muted);pointer-events:none}.drawing-review-empty{color:var(--muted);text-align:center;position:absolute;top:45%;left:18px;right:18px}.drawing-review-legend{flex-wrap:wrap;gap:8px 13px;margin-top:10px;font-size:12px;display:flex}.drawing-review-legend span{align-items:center;gap:5px;display:inline-flex}.drawing-review-legend span:before{content:"";border-top:2px solid var(--ink);width:14px;display:block}.drawing-review-legend .is-hole:before{border-color:#37799a}.drawing-review-legend .is-pocket:before{border-color:var(--accent)}.drawing-review-legend .is-stock:before{border-color:#65778a;border-top-style:dashed}.drawing-review-legend .is-unknown:before{border-color:var(--accent);border-top-style:dashed}.drawing-review-legend .is-ignore:before{border-color:#a5a5a1;border-top-style:dashed}.drawing-review-layer{border:1px solid var(--line);background:var(--paper-light);margin-bottom:8px;padding:11px 12px 13px}.drawing-review-layer.is-selected{border-color:var(--ink);box-shadow:inset 3px 0 var(--ink)}.drawing-review-layer.is-unresolved .drawing-review-layer-name strong{color:var(--accent)}.drawing-review-layer-name{text-align:left;justify-content:space-between;gap:10px;width:100%;min-height:28px;padding:0 0 8px}.drawing-review-layer-name strong{overflow-wrap:anywhere}.drawing-review-layer-name span{color:var(--muted);flex-shrink:0;font-size:12px}.drawing-review-rule-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.drawing-review-rule-fields>label:only-child,.drawing-review-rule-help{grid-column:1/-1}.drawing-review-unit{align-items:center;display:flex;position:relative}.drawing-review-unit input{padding-right:36px}.drawing-review-unit>span{color:var(--muted);pointer-events:none;font-size:12px;position:absolute;right:9px}.drawing-review-individual{background:var(--ink-soft);border-left:3px solid var(--ink);margin-top:16px;padding:13px}.drawing-review-individual>div:first-child{justify-content:space-between;align-items:center;gap:8px;display:flex}.drawing-review-individual>p{overflow-wrap:anywhere;margin:5px 0 10px;font-size:13px}.drawing-review-individual>p:last-child{margin:10px 0 0}.drawing-review-diagnostics{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.drawing-review-issue{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:7px 0;display:flex}.drawing-review-issue>button:first-child{text-align:left;overflow-wrap:anywhere;flex-direction:column;flex:1;align-items:start;gap:2px;min-width:0;display:flex}.drawing-review-issue-layer{color:var(--muted);font-size:12px}.drawing-review-issue.is-blocking>button:first-child{color:var(--accent)}.drawing-review-ignore-action{border:1px solid var(--line);flex-shrink:0}.drawing-review-reminders{margin-top:10px}.drawing-review-reminders summary{cursor:pointer;color:var(--muted);font-size:13px}.drawing-review-templates{border-top:1px solid var(--line);margin-top:18px;padding-top:13px}.drawing-review-templates summary{cursor:pointer;font-weight:600}.drawing-review-templates>p{margin-top:8px}.drawing-review-template-grid{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:12px;display:grid}.drawing-review-template-grid>button,.drawing-review-template-actions>button{border:1px solid var(--line);min-height:38px}.drawing-review-template-actions{gap:6px;display:flex}@media (width<=760px){.drawing-review-grid{grid-template-columns:minmax(0,1fr)}.drawing-review-stage{aspect-ratio:1.5}.drawing-review-top{flex-wrap:wrap}.drawing-review-space{width:100%}}@media (width<=420px){.drawing-review-geometry-choice{grid-column:1/-1}.drawing-review-template-grid{grid-template-columns:minmax(0,1fr)}.drawing-review-template-grid>button{justify-self:start}.drawing-review-issue{flex-wrap:wrap;gap:4px}.drawing-review-issue>button:first-child{flex-basis:100%}.drawing-review-layer-name{flex-wrap:wrap;gap:2px}}.drawing-review-original-path,.drawing-review-normalized-path{fill:none;pointer-events:none;stroke-width:2px}.drawing-review-original-path{stroke:#b97129;stroke-dasharray:5 3}.drawing-review-normalized-path{stroke:#299366;stroke-width:1.25px}.drawing-review-normalization-records{border:1px solid var(--line);border-radius:8px;margin-top:14px;padding:10px 12px}.drawing-review-normalization-records summary{cursor:pointer;font-size:13px;font-weight:600}.drawing-review-normalization-records>div{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.drawing-review-normalization-records p,.drawing-review-normalization-actions p{font-size:12px;line-height:1.6}.drawing-review-normalization-buttons{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.drawing-review-normalization-buttons button{border:1px solid var(--line);font-size:12px}.drawing-review-placement-actions{flex-wrap:wrap;align-items:end;gap:8px;padding:0 10px 10px;display:flex}.drawing-review-placement-actions label{gap:4px;font-size:12px;display:grid}.drawing-review-placement-actions select{max-width:220px}.drawing-review-object-section{border-top:1px solid var(--line);min-width:0;margin-top:18px;padding-top:14px}.drawing-review-object-list{margin-top:10px}.drawing-review-object-row{border-bottom:1px solid var(--line);overflow-wrap:anywhere;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:9px 0;display:grid}.drawing-review .drawing-review-object-row label{flex-direction:row;align-items:start;gap:8px}.drawing-review-object-row input[type=checkbox]{flex:none;width:16px;height:16px;margin-top:3px}.drawing-review-object-row small{color:var(--muted);grid-column:1/-1;line-height:1.5}.drawing-review-batch{background:var(--paper-light);border:1px solid var(--line);overflow-wrap:anywhere;margin-top:10px;padding:12px}.drawing-review-batch .drawing-review-rule-fields{margin:10px 0}.drawing-review-batch>button,.drawing-review-suggestion>button,.drawing-review-issue-group>button{border:1px solid var(--line);max-width:100%;margin:6px 6px 0 0}.drawing-review-suggestion{overflow-wrap:anywhere;padding:0 12px 12px}.drawing-review-suggestion+.drawing-review-suggestion{border-top:1px solid var(--line);padding-top:12px}.drawing-review-suggestion>strong{font-size:13px;font-weight:600}.drawing-review-suggestion p{color:var(--muted);margin-top:5px;font-size:13px;line-height:1.6}.drawing-review-issue-group{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:10px 0}.drawing-review-issue-group summary{cursor:pointer;color:var(--accent);font-size:13px;line-height:1.6}.drawing-review-layer .drawing-review-note{margin-bottom:8px}.drawing-review input,.drawing-review select{width:100%;min-width:0;max-width:100%}.drawing-review-issue-group .drawing-review-issue{margin-left:8px}.import-preset{gap:5px;min-width:0;margin-top:12px;font-size:13px;display:grid}.import-preset select{width:100%;min-width:0}@media (width<=420px){.drawing-review-rule-fields{grid-template-columns:minmax(0,1fr)}.drawing-review-template-actions{flex-wrap:wrap}.drawing-review-layer-name span{flex-shrink:1}.drawing-review-object-row{gap:4px}.drawing-review-normalization-actions button+button{margin-top:6px;margin-left:0}}.import-preview{flex:1;overflow:hidden}.import-header{border-bottom:1px solid var(--line);flex:none;margin-bottom:16px;padding-bottom:12px}.import-modal .import-header .import-modes{max-width:490px;margin:0 0 10px}.import-header .import-modes button{flex-direction:row;align-items:center;gap:10px;padding:6px 12px}.import-header .import-modes small{font-size:12px}.import-workspace{flex:1;min-height:0;overflow:hidden}.import-workspace>.drawing-review{height:100%}.import-empty-preview{height:100%;min-height:180px;color:var(--muted);text-align:center;place-content:center;font-size:14px;display:grid}.drawing-review-workbench{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.2fr) minmax(360px,1fr);gap:24px;height:100%;min-height:0;display:grid}.drawing-review-source{flex-direction:column;min-height:0;display:flex;overflow:hidden}.drawing-review-source-heading{margin-bottom:8px}.drawing-review-view-tools{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.import-modal .drawing-review-view-tools .ui-select{flex-shrink:0;width:130px;margin:0}.import-modal .drawing-review-view-tools .ui-select-trigger{height:34px;min-height:34px;padding:6px 34px 6px 10px;font-size:14px;line-height:20px}.drawing-review-view-tools>button{border:1px solid var(--line);white-space:nowrap;flex-shrink:0;height:34px;padding:6px 10px;font-size:12px}.drawing-review-view-tools>button:first-of-type{margin-left:auto}.drawing-review-view-tools [aria-pressed=true]{background:var(--ink-soft);border-color:var(--ink)}.drawing-review-source .drawing-review-stage{aspect-ratio:auto;flex:1;min-height:0;overflow:hidden}.drawing-review-stage svg{min-height:0;max-height:none}.drawing-review-shape{transition:opacity .18s}.drawing-review-shape.is-dimmed{opacity:.18}.drawing-review-shape.is-selected .drawing-review-geometry{stroke:var(--accent);stroke-width:2.5px;fill:var(--accent-soft)}.drawing-review-selection-status{min-height:36px;color:var(--muted);overflow-wrap:anywhere;padding-top:10px;font-size:12px;line-height:1.5}.drawing-review-controls{border-left:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;padding-left:24px;display:flex}.drawing-review-tabs{border-bottom:1px solid var(--line);flex:none;gap:4px;margin-bottom:12px;padding-bottom:10px;display:flex}.drawing-review-tabs button{color:var(--muted);padding:8px 10px;font-size:14px}.drawing-review-tabs button[aria-pressed=true]{background:var(--ink-soft);color:var(--ink);font-weight:600}.drawing-review-tabs span{font-variant-numeric:tabular-nums;margin-left:5px}.drawing-review-control-scroll{scrollbar-gutter:stable;overscroll-behavior:contain;flex:1;min-height:0;padding:2px 10px 24px 2px;scroll-padding-block:12px 24px;overflow:hidden scroll}.drawing-review-control-scroll:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.drawing-review [hidden]{display:none!important}.drawing-review-confirm-panel>.drawing-review-note{margin-bottom:12px}.drawing-review-task{border:1px solid var(--line);background:var(--paper-light);margin-bottom:10px}.drawing-review-task-view{text-align:left;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:12px;width:100%;padding:12px;display:grid}.drawing-review-task-view>span{overflow-wrap:anywhere;gap:5px;min-width:0;display:grid}.drawing-review-task-view strong{color:var(--ink);font-size:14px;font-weight:600}.drawing-review-task-view small{color:var(--muted);font-size:12px}.drawing-review-task-view em{color:var(--ink);font-size:12px;font-style:normal}.drawing-review-thumbnail{background:var(--paper);border:1px solid var(--line);width:64px;height:64px}.drawing-review-thumbnail path{stroke:var(--accent);fill:var(--accent-soft);stroke-width:1px}.drawing-review-task-fields{padding:0 12px 12px}.drawing-review-suggestion>.drawing-review-task-fields{padding:10px 0 0}.drawing-review-task-fields>button{border:1px solid var(--ink);margin-top:10px;padding:6px 10px}.drawing-review-task-fields>.drawing-review-note{margin-top:6px}.drawing-review-task-object{margin:0 12px 8px;font-size:13px;display:block}.drawing-review-task>details{padding:0 12px 10px}.drawing-review-task>details>summary{color:var(--muted);cursor:pointer;font-size:12px}.drawing-review-task .drawing-review-issue{flex-wrap:wrap}.drawing-review-task .drawing-review-issue>button:first-child{flex-basis:100%}.drawing-review-individual{margin:0 0 16px}.drawing-review-batch{border-color:var(--ink);background:var(--ink-soft);margin:0 0 16px}.drawing-review-complete{color:var(--ink);background:var(--ink-soft);gap:12px;margin:12px 0;padding:22px 12px;display:grid}.drawing-review-complete button{border-bottom:1px solid var(--ink);justify-self:start;padding:0 0 3px}.drawing-review-more{border-top:1px solid var(--line);margin-top:20px;padding-top:14px;font-size:13px}.drawing-review-more>summary{cursor:pointer;color:var(--muted)}.drawing-review-controls .import-content{display:block}.drawing-review-controls .import-counts{gap:8px 12px}.drawing-review-controls .import-counts>span:last-child{margin-left:0}.drawing-review-controls .import-unit{margin-top:0}.import-preset-options{padding:10px 0;font-size:13px}.import-preset-options summary,.import-result-preview summary{cursor:pointer}.import-result-preview{border-top:1px solid var(--line);margin-top:18px;padding-top:14px;font-size:13px}.import-result-preview .import-visual{margin-top:12px}.import-actions{margin-top:14px;padding-top:12px}@media (width<=760px){.modal.import-modal{width:calc(100vw - 20px);height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);padding:14px}.import-modal .modal-title{margin-bottom:8px}.import-header{margin-bottom:10px;padding-bottom:8px}.import-header .import-modes button{flex-direction:column;align-items:start;gap:0;font-size:12px}.import-header .import-modes small{display:none}.drawing-review-workbench{grid-template-rows:minmax(130px,.8fr) minmax(170px,1fr);grid-template-columns:minmax(0,1fr);gap:12px}.drawing-review-controls{border-left:0;border-top:1px solid var(--line);padding-top:8px;padding-left:0}.drawing-review-source-heading{margin-bottom:4px}.drawing-review-view-tools{margin-bottom:6px}.drawing-review-source .drawing-review-legend{display:none}.drawing-review-selection-status{min-height:0;padding-top:5px;font-size:11px}.drawing-review-tabs{margin-bottom:6px;padding-bottom:6px}.drawing-review-tabs button{padding:6px 5px;font-size:12px}.drawing-review-task-view{grid-template-columns:48px minmax(0,1fr);gap:8px;padding:8px}.drawing-review-thumbnail{width:48px;height:48px}}.drawing-review-preview-tabs{gap:2px;margin-left:auto;display:flex}.drawing-review-preview-tabs button{color:var(--muted);border:1px solid #0000;padding:4px 9px;font-size:12px}.drawing-review-preview-tabs button[aria-pressed=true]{color:var(--ink);border-color:var(--line);background:var(--ink-soft)}.drawing-review .import-source-unit{flex-direction:row;align-items:center;gap:8px;margin:0}.import-modal .drawing-review-view-tools .import-source-unit .ui-select{width:112px;margin:0}.import-source-unit.is-required .ui-select-trigger{border-color:var(--accent)}.drawing-review-result{scrollbar-gutter:stable;flex:1;min-height:0;overflow:auto}.drawing-review-result .import-visual{flex-direction:column;min-height:100%;display:flex}.drawing-review-result .import-board-stage{flex:1;height:auto;min-height:120px;position:relative}.drawing-review-result .import-board-stage svg{min-height:0;max-height:none;position:absolute;inset:0}.drawing-review-result .import-pending-preview{margin-top:6px}.drawing-review-result .import-board-tabs{margin-bottom:6px}.drawing-review-result .import-board-caption,.import-modal .drawing-review-result .import-legend{margin-top:4px}.import-pending-preview summary{cursor:pointer;color:var(--muted);padding:6px 0;font-size:13px}.import-pending-preview[open] summary{margin-bottom:8px}.import-configuration{border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:12px}.import-configuration>summary{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.import-configuration>summary:before{content:"▸"}.import-configuration[open]>summary:before{content:"▾"}.import-configuration>summary span{color:var(--muted);margin-left:auto;font-size:12px}.import-configuration>p{margin-top:8px}.import-configuration-picker{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:10px;display:grid}.import-modal .import-configuration-picker label{flex-direction:row;align-items:center;gap:10px;margin:0}.import-modal .drawing-review-template-grid label{margin:0}.import-modal .drawing-review-view-tools label{margin-bottom:0}.import-configuration-picker label>span{flex:none}.import-configuration-picker button{border:1px solid var(--line);min-height:38px;padding:7px 14px}.import-configuration-management{border-top:1px solid var(--line);margin-top:16px;padding-top:12px;font-size:13px}.import-configuration-management>strong{font-weight:500}.import-configuration-management .drawing-review-template-grid{margin-top:8px}.import-configuration-exclusions{margin-top:12px;font-size:12px}.import-configuration-exclusions strong{font-weight:500}.import-configuration-exclusions ul{margin:6px 0 0;padding:0;list-style:none}.import-configuration-exclusions li{overflow-wrap:anywhere;flex-wrap:wrap;justify-content:space-between;gap:4px 8px;padding:4px 0;display:flex}.import-configuration-exclusions small{color:var(--accent)}.import-configuration-delete{color:var(--accent);margin-top:10px;font-size:12px!important}.import-configuration-message,.drawing-review-action-message{color:var(--muted);overflow-wrap:anywhere;font-size:12px;line-height:1.6;margin-top:8px!important}.drawing-review-action-message{margin-bottom:10px!important}.drawing-review-layer .drawing-review-task-fields{padding:0}.drawing-review-checks{border-top:1px solid var(--line);margin-top:20px;padding-top:14px;font-size:13px}.drawing-review-checks>summary{cursor:pointer;align-items:center;gap:8px;display:flex}.drawing-review-checks>summary:before{content:"▸"}.drawing-review-checks[open]>summary:before{content:"▾"}.drawing-review-checks>summary span{color:var(--muted);margin-left:auto;font-size:12px}.drawing-review-completed-tasks{margin:14px 0;font-size:13px}.drawing-review-completed-tasks summary{color:var(--muted);cursor:pointer}.drawing-review-completed-tasks>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.drawing-review-completed-tasks span{overflow-wrap:anywhere}.drawing-review-completed-tasks button{flex:none;font-size:12px}.import-footer-navigation{justify-content:space-between;align-items:center;gap:12px;display:flex}.import-next-step{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.5}.import-footer-navigation .import-action-buttons{flex:none}@media (width<=760px){.drawing-review-source-heading>span{display:none}.drawing-review-preview-tabs button{padding:2px 7px}.import-modal .drawing-review-view-tools .ui-select{margin-right:0}.import-modal .drawing-review-view-tools .import-source-unit .ui-select{width:96px}.drawing-review .import-source-unit{gap:4px}.drawing-review .import-source-unit>span:not(.ui-select){display:none}.import-configuration{margin-bottom:10px;padding-bottom:8px}.import-footer-navigation{gap:6px}.import-next-step{font-size:12px}.import-footer-navigation .import-action-buttons{gap:4px}.import-footer-navigation .import-action-buttons button{min-width:48px;padding:7px 8px;font-size:12px}.import-footer-navigation .import-action-buttons .primary{min-width:120px}}@media (prefers-reduced-motion:reduce){.drawing-review-shape{transition:none}}.drawing-review-normalization-actions summary{cursor:pointer;color:var(--muted);margin-bottom:8px;font-size:12px}.drawing-review-hit:focus{outline:none}@media (width<=760px){.import-modal .modal-title{margin-bottom:8px}.import-modal .import-file-heading{flex-wrap:nowrap;gap:6px}.import-modal .import-file-heading>div{flex:1}.import-modal .import-file-heading small{display:none}.import-modal .import-file-heading>button{padding:5px 7px;font-size:12px}.import-modal .drawing-review-view-tools{flex-wrap:nowrap;gap:4px}.import-modal .drawing-review-view-tools .ui-select{width:104px}.import-modal .drawing-review-view-tools .ui-select-trigger{height:40px;min-height:40px;padding:8px 34px 8px 8px;font-size:12px;line-height:22px}.import-modal .drawing-review-view-tools>button{height:40px;min-height:40px;padding:8px 5px;font-size:12px}.drawing-review-workbench{grid-template-rows:minmax(160px,.95fr) minmax(180px,1.05fr)}}.drawing-review-individual-list>summary{align-items:center;gap:8px;padding-block:8px;display:flex}.drawing-review-individual-list>summary:before{content:"▸"}.drawing-review-individual-list[open]>summary:before{content:"▾"}.drawing-review-individual-list>summary>span{margin-left:auto}.drawing-review-individual-task{border:1px solid var(--line);background:var(--paper);min-width:0;margin-top:10px;padding:12px}.drawing-review-individual-task>header{grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.drawing-review-individual-task>header .drawing-review-thumbnail{width:44px;height:44px}.drawing-review-individual-task>header>div{gap:4px;min-width:0;display:grid}.drawing-review-individual-task>header strong{font-size:13px}.drawing-review-individual-task>header small{color:var(--muted);font-size:12px;line-height:1.5}.drawing-review-individual-task>header button{border:1px solid var(--line);padding:4px 8px;font-size:12px}.drawing-review-task .drawing-review-issue.is-compact{border:0;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;padding:0;display:flex}.drawing-review-task .drawing-review-issue.is-compact>button:first-child{flex:auto;min-height:24px;padding:0;font-size:12px}.drawing-review-issue.is-compact>button:not(:first-child){color:var(--muted);border:1px solid var(--line);padding:4px 6px;font-size:12px}.drawing-review-individual-task .drawing-review-task-fields{padding:0}.import-modal .drawing-review-rule-fields label{margin:0}.drawing-review-individual-task .drawing-review-task-fields>button{margin-top:12px}.drawing-review-individual-task .drawing-review-normalization-actions{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}@media (width<=420px){.drawing-review-individual-task{padding:10px}}.drawing-review-source-heading{flex-wrap:nowrap;min-height:32px;margin-bottom:8px}.drawing-review-preview-tabs{border:1px solid var(--line);gap:0;margin-left:0}.drawing-review-preview-tabs button{border:0;min-height:30px;padding:5px 14px}.drawing-review-preview-tabs button[aria-pressed=true]{background:var(--ink-soft)}.drawing-review-canvas-hint{white-space:nowrap;font-size:12px!important}.drawing-review-source-canvas{flex:1;min-height:0;display:flex}.drawing-review-source .drawing-canvas,.drawing-review-result .drawing-canvas{aspect-ratio:auto;flex:1;min-height:130px}.drawing-canvas{flex-direction:column;display:flex;position:relative;overflow:hidden}.drawing-canvas-surface{flex:1;width:100%;min-height:0;position:relative}.drawing-canvas-surface>svg{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:100%;min-height:0;max-height:none;position:absolute;inset:0}.drawing-canvas-surface>svg.is-dragging,.drawing-canvas-surface>svg.is-dragging *{cursor:grabbing}.drawing-canvas-surface>svg:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.drawing-canvas .drawing-review-label{font-size:var(--drawing-label-size,11px)}.drawing-canvas-tools{border:1px solid var(--line);background:var(--paper-light);display:flex;position:absolute;bottom:12px;right:12px}.drawing-canvas-tools button{place-items:center;width:34px;height:34px;min-height:34px;padding:0;display:grid}.drawing-canvas-tools button+button{border-left:1px solid var(--line)}.drawing-canvas-tools button svg{flex:none;width:15px;height:15px;min-height:0}.drawing-canvas-tools button:hover,.drawing-canvas-actions>button:hover{background:var(--ink-soft)}.drawing-canvas-actions{border:1px solid var(--line);background:var(--paper-light);align-items:center;gap:8px;padding:6px 8px;display:flex;position:absolute;top:10px;left:10px;right:10px;box-shadow:0 2px 6px #1d2d4810}.drawing-canvas-selection-label{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:100px;font-size:12px;font-weight:600;overflow:hidden}.drawing-canvas-actions .ui-select{flex:1;width:132px;min-width:0;max-width:172px}.drawing-canvas-actions .ui-select-trigger{height:32px;min-height:32px;font-size:12px}.drawing-canvas-actions .ui-select-trigger svg{flex:none;width:14px;height:14px;min-height:0}.drawing-canvas-actions>button{white-space:nowrap;flex:none;min-height:32px;padding:5px 6px;font-size:12px}.drawing-canvas-actions>button:last-child{width:28px;color:var(--muted);margin-left:auto;padding:0;font-size:20px}.drawing-review-canvas-status{min-height:30px;color:var(--muted);flex:none;justify-content:space-between;align-items:center;gap:12px;padding-top:6px;font-size:12px;display:flex}.drawing-review-legend-details{position:relative}.drawing-review-legend-details>summary{cursor:pointer;padding:3px 0 3px 10px;list-style:none}.drawing-review-legend-details>summary::-webkit-details-marker{display:none}.drawing-review-legend-details .drawing-review-legend{z-index:2;background:var(--paper-light);border:1px solid var(--line);gap:10px 16px;width:240px;margin:0 0 6px;padding:12px;display:flex;position:absolute;bottom:100%;right:0}.drawing-review-settings{border-bottom:1px solid var(--line);margin-bottom:12px;padding-bottom:12px}.drawing-review-settings>summary{cursor:pointer;align-items:center;gap:8px;font-size:13px;list-style:none;display:flex}.drawing-review-settings>summary:before{content:"▸"}.drawing-review-settings[open]>summary:before{content:"▾"}.drawing-review-settings>summary>span{color:var(--muted);margin-left:auto;font-size:12px}.drawing-review-settings-fields{flex-wrap:wrap;align-items:end;gap:12px;margin-top:12px;display:flex}.import-modal .drawing-review-settings-fields label{margin:0}.drawing-review-settings-fields .ui-select{min-width:110px}.drawing-review-result .drawing-canvas{min-height:200px}@media (width<=760px){.drawing-review-canvas-hint{display:none}.drawing-review-canvas-status{min-height:24px;padding-top:3px}.drawing-canvas-tools{bottom:8px;right:8px}.drawing-canvas-tools button{width:36px;height:36px;min-height:36px}.drawing-canvas-actions{gap:4px;padding:4px 6px;top:6px;left:6px;right:6px}.drawing-canvas-selection-label{font-size:11px}.drawing-canvas-actions .ui-select{width:90px}}@media (width<=420px){.drawing-canvas-selection-label{max-width:45px}.drawing-canvas-selection-label>span,.drawing-canvas-detail-prefix,.drawing-canvas-actions>.drawing-canvas-ignore{display:none}}.modal.joinery-modal{width:min(1080px,100vw - 36px);max-width:1080px;padding:0;overflow:hidden}.joinery-modal .modal-title{border-bottom:1px solid var(--line);margin:0;padding:16px 22px}.joinery-layout{grid-template-columns:minmax(0,1fr) 320px;height:min(620px,90dvh - 140px);min-height:0;display:grid;overflow:hidden}.joinery-preview{background:var(--paper-light);flex-direction:column;min-width:0;min-height:0;padding:18px 22px 14px;display:flex}.joinery-preview-heading{justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.joinery-preview-heading strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.joinery-preview-heading>span{color:var(--muted);white-space:nowrap;font-size:11px}.joinery-preview>svg{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:1 1 0;width:100%;height:0;min-height:0;margin:10px 0;display:block}.joinery-preview>svg:focus-visible{outline:1px solid var(--ink);outline-offset:2px}.joinery-preview>svg.is-dragging,.joinery-preview>svg.is-dragging *{cursor:grabbing}.joinery-preview svg polygon{stroke-width:1px;vector-effect:non-scaling-stroke;stroke:var(--ink)}.joinery-part{fill:#dfe6f8}.joinery-pocket{fill:#b4c8df}.joinery-hole{fill:var(--paper-light)}.joinery-preview svg .joinery-contour-hit{fill:#0000;stroke:#0000;stroke-width:12px;cursor:pointer}.joinery-contour.is-hovered>polygon:first-child{stroke:var(--accent);stroke-width:2px}.joinery-preview svg .joinery-contour-hit:focus-visible{stroke:var(--ink);stroke-width:3px;stroke-dasharray:3 3;outline:none}.joinery-preview svg .joinery-result{fill:none;stroke:var(--accent);stroke-width:2px}.joinery-preview svg .joinery-original{fill:none;stroke:var(--ink);stroke-dasharray:5 4;stroke-width:1px;opacity:.65}.joinery-corner{cursor:pointer}.joinery-corner-hit{fill:#0000}.joinery-corner-leader{stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke}.joinery-corner-point{fill:var(--ink)}.joinery-corner.is-selected .joinery-corner-point{fill:var(--accent)}.joinery-corner-halo{fill:var(--accent-soft);opacity:0}.joinery-corner-dot{fill:var(--paper-light);stroke:var(--ink);vector-effect:non-scaling-stroke;stroke-width:1.5px}.joinery-corner text{fill:var(--ink);pointer-events:none;font-family:inherit;font-weight:600}.joinery-corner.is-selected .joinery-corner-dot{fill:var(--accent);stroke:var(--accent)}.joinery-corner.is-selected text{fill:var(--paper-light)}.joinery-corner.is-hovered .joinery-corner-halo,.joinery-corner:focus-visible .joinery-corner-halo{opacity:1}.joinery-corner:focus-visible{outline:none}.joinery-corner:focus-visible .joinery-corner-dot{stroke:var(--ink);stroke-width:3px}.joinery-view-tools{border:1px solid var(--line);background:var(--paper-light);align-self:center;align-items:center;gap:6px;margin-bottom:14px;padding:3px;display:flex}.joinery-view-tools>button{white-space:nowrap;gap:6px;min-height:36px;padding:6px 10px;font-size:11px}.joinery-zoom{border-left:1px solid var(--line);align-items:center;margin-left:2px;padding-left:3px;display:flex}.joinery-zoom button{min-width:36px;min-height:36px;padding:6px}.joinery-zoom output{text-align:center;font-variant-numeric:tabular-nums;min-width:48px;font-size:11px}.joinery-preview-caption{color:var(--muted);justify-content:space-between;align-items:center;font-size:10px;display:flex}.joinery-legend{gap:20px;display:flex}.joinery-legend span:before{content:"";border-top:1px dashed var(--ink);vertical-align:middle;width:20px;margin-right:6px;display:inline-block}.joinery-legend span:last-child:before{border-top:2px solid var(--accent)}.joinery-modal .joinery-preview>p{color:var(--muted);margin:8px 0 0;font-size:11px}.joinery-controls{border-left:1px solid var(--line);overscroll-behavior:contain;min-width:0;padding:0 20px;overflow-y:auto}.joinery-setting-section{border-bottom:1px solid var(--line);padding:16px 0}.joinery-setting-section:last-of-type{border-bottom:0}.joinery-setting-section h3{justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px;font-size:13px;font-weight:600;display:flex}.joinery-setting-section h3>span{color:var(--muted);font-size:10px;font-weight:400}.joinery-contour-list{border:1px solid var(--line);overscroll-behavior:contain;max-height:150px;position:relative;overflow-y:auto}.joinery-contour-list>button{text-align:left;border-bottom:1px solid var(--line);border-radius:0;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:48px;padding:7px 10px}.joinery-contour-list>button:last-child{border-bottom:0}.joinery-contour-list>button[aria-pressed=true]{background:var(--ink-soft);box-shadow:inset 3px 0 var(--ink)}.joinery-contour-list>button>span:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.joinery-contour-list strong{font-size:12px;font-weight:500}.joinery-contour-list small{color:var(--muted);font-size:10px}.joinery-contour-count{white-space:nowrap;color:var(--muted);align-items:center;gap:5px;font-size:10px;display:flex}.joinery-contour-list>button[aria-pressed=true] .joinery-contour-count{color:var(--ink)}.joinery-modal .joinery-setting-section>label{flex-direction:row;justify-content:space-between;align-items:center;gap:7px;margin:0;font-size:12px;display:flex}.joinery-modal .joinery-setting-section>label+label{margin-top:12px}.joinery-setting-section>label .input-unit,.joinery-setting-section>label .ui-select{width:150px}.joinery-style{border:0;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px;padding:0;display:grid}.joinery-style legend{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.joinery-style button{border:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:3px;min-width:0;padding:10px}.joinery-style button[aria-pressed=true]{border-color:var(--ink);background:var(--ink-soft)}.joinery-style strong{font-size:13px;font-weight:600}.joinery-style small{color:var(--muted);font-size:10px}.joinery-corner-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.joinery-corner-heading h3{justify-content:flex-start;margin-bottom:0}.joinery-corner-heading small{color:var(--muted);font-size:10px;font-weight:400}.joinery-corner-heading>button{min-height:32px;padding:4px 6px;font-size:11px}.joinery-corner-list{grid-template-columns:1fr 1fr;gap:8px;margin-top:9px;display:grid}.joinery-corner-option{border:1px solid var(--line);align-items:center;min-width:0;display:flex}.joinery-corner-option.is-hovered{border-color:var(--accent);background:var(--accent-soft)}.joinery-modal .joinery-corner-option label{cursor:pointer;white-space:nowrap;flex-direction:row;flex:1;align-items:center;gap:7px;min-width:0;min-height:44px;margin:0;padding:8px;font-size:11px;display:flex}.joinery-corner-option input{width:14px;height:14px;accent-color:var(--accent);flex-shrink:0;margin:0}.joinery-corner-option button{border-left:1px solid var(--line);border-radius:0;flex-shrink:0;gap:3px;min-width:54px;min-height:44px;padding:6px;font-size:10px}.joinery-modal .joinery-note{color:var(--muted);margin:10px 0 0;font-size:11px;line-height:1.7}.joinery-controls .warning{margin:12px 0 16px;font-size:12px;line-height:1.7}.joinery-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;display:flex}.joinery-footer>span{color:var(--muted);font-size:11px}.joinery-footer>div{flex-shrink:0;gap:8px;display:flex}.joinery-footer button{min-height:36px;padding:7px 14px}@media (width>=681px) and (height<=780px){.joinery-contour-list{max-height:100px}.joinery-setting-section{padding:12px 0}}@media (width<=680px){.modal.joinery-modal{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.joinery-modal .modal-title{padding:12px 16px}.joinery-layout{grid-template-columns:1fr;height:auto;max-height:calc(100dvh - 166px);overflow-y:auto}.joinery-preview{padding:12px 16px}.joinery-preview>svg{flex:none;height:240px;min-height:240px;margin:4px 0}.joinery-view-tools{gap:0;margin-bottom:10px;padding:2px}.joinery-view-tools>button{min-height:44px;padding:5px 6px}.joinery-zoom button{min-width:44px;min-height:44px}.joinery-zoom output{min-width:40px}.joinery-controls{border-left:0;border-top:1px solid var(--line);padding:0 16px;overflow:visible}.joinery-contour-list{max-height:148px}.joinery-corner-option button{min-width:44px}.joinery-footer{flex-wrap:wrap;padding:12px 16px}.joinery-footer>div{margin-left:auto}.joinery-footer button{min-height:44px}}.modal.shortcut-modal{width:min(850px,100%)}.shortcut-help .shortcut-intro{margin:0 0 20px}.shortcut-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.shortcut-groups section{min-width:0}.shortcut-groups h3{margin:0 0 12px;font-size:14px;font-weight:600}.shortcut-groups dl{margin:0}.shortcut-groups dl>div{border-bottom:1px solid var(--line);grid-template-columns:155px minmax(0,1fr);align-items:baseline;gap:10px;padding:8px 0;font-size:12px;line-height:1.65;display:grid}.shortcut-groups dd{color:var(--muted);margin:0}.shortcut-groups kbd{font:inherit;padding:1px 5px;display:inline-block}.shortcut-common{grid-column:1/-1}.shortcut-common dl{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;display:grid}.shortcut-mouse{border-top:1px solid var(--line);margin-top:24px;padding-top:10px}.shortcut-mouse p{margin-bottom:0}@media (width<=680px){.shortcut-groups,.shortcut-common dl{grid-template-columns:minmax(0,1fr)}.shortcut-groups dl>div{grid-template-columns:minmax(125px,42%) minmax(0,1fr)}}@font-face{font-family:Woodwork Serif;src:url(/fonts/woodwork-serif-heavy.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--paper:#f7f5ed;--paper-light:#fcfaf4;--ink:#2146b5;--ink-hover:#16358f;--ink-soft:#e9edf7;--accent:#c44a24;--accent-dark:#a43b1c;--accent-soft:#f8eadd;--muted:#68738d;--line:#ced3e0;--shadow:#2146b514;--scroll-thumb:#a5b1ce;--scroll-thumb-hover:#7789b6;--display-font:"Woodwork Serif", "Noto Serif SC", "Songti SC", "STSong", serif;--latin-font:"Times New Roman", "Songti SC", serif;--text-body:14px;--text-caption:12px;color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Noto Sans SC,sans-serif;font-size:var(--text-body);font-synthesis:none;line-height:1.5}*{box-sizing:border-box}.workspace,.workspace *{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}@supports selector(::-webkit-scrollbar){.workspace,.workspace *{scrollbar-width:auto;scrollbar-color:auto}.workspace ::-webkit-scrollbar{width:8px;height:8px}.workspace ::-webkit-scrollbar-track{background:0 0}.workspace ::-webkit-scrollbar-corner{background:0 0}.workspace ::-webkit-scrollbar-thumb{background:var(--scroll-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:2px}.workspace ::-webkit-scrollbar-thumb:hover{background-color:var(--scroll-thumb-hover)}.workspace ::-webkit-scrollbar-thumb:active{background-color:var(--ink)}.workspace ::-webkit-scrollbar-button{display:none}}body{margin:0}button,input,select{font:inherit;font-size:var(--text-body)}button{color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:2px;justify-content:center;align-items:center;gap:6px;min-height:32px;padding:7px 10px;display:inline-flex}button:hover{background:var(--ink-soft)}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:-2px;outline:2px solid}button.primary,button.active{background:var(--ink);color:var(--paper-light)}button.primary:hover,button.active:hover{background:var(--ink-hover)}input,select{background:var(--paper-light);border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);border-radius:2px;padding:9px}input[type=checkbox]{width:auto}small,.hint{font-size:var(--text-caption);color:var(--muted)}.hint{line-height:1.8}.workspace{height:100dvh;position:relative;overflow:hidden}.brand{align-items:center;gap:8px;display:flex}.brand strong{font-size:15px}.brand-mark{object-fit:contain;flex-shrink:0;width:30px;height:30px;display:block}.brand-sub{color:var(--muted)}.file-info{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-info span{color:var(--muted)}.workspace-surface{--left-rail-width:298px;--right-rail-width:386px;--information-top:68px;--canvas-fit-left:326px;--canvas-fit-right:414px;--canvas-fit-top:124px;--canvas-fit-bottom:112px;background-color:var(--paper);background-image:radial-gradient(#2146b50d .5px,#0000 .5px);background-size:6px 6px;position:absolute;inset:0}.workspace-surface.workspace-initial{--canvas-fit-left:16px;--canvas-fit-right:16px}.floating{background:var(--paper-light);border:1px solid var(--line);border-radius:2px;box-shadow:0 2px #2146b507}.parts-panel{left:14px;top:var(--information-top);width:var(--left-rail-width);z-index:3;flex-direction:column;display:flex;position:absolute;bottom:14px;overflow:hidden}.panel-heading{border-bottom:1px solid var(--ink-soft);justify-content:space-between;align-items:center;min-height:44px;padding:10px 12px;display:flex}.panel-heading>button{padding:4px}.panel-heading button span{color:var(--muted);margin-left:4px}.component-search{background:var(--paper);color:var(--muted);border-radius:2px;align-items:center;gap:8px;margin:11px 12px;padding:0 9px;display:flex}.component-search input{font-size:var(--text-body);outline-offset:0;background:0 0;border:0;padding:9px 0}.parts-list{overscroll-behavior:contain;flex:1;padding:0 8px 10px;overflow-y:auto}.part-row{text-align:left;white-space:normal;border:1px solid #0000;justify-content:flex-start;gap:10px;width:100%;margin-bottom:3px;padding:10px 7px;display:flex}.part-row:hover{background:var(--paper)}.thumbnail{flex-shrink:0;place-items:center;width:42px;height:44px;padding:4px;display:grid}.thumbnail svg{width:100%;height:100%;max-height:40px}.part-row-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.part-row strong{font-size:var(--text-body);font-weight:600}.part-row-copy>span{font-size:var(--text-body);color:var(--muted)}.part-row-copy small{font-size:var(--text-caption);color:var(--muted)}.panel-foot{border-top:1px solid var(--ink-soft);font-size:var(--text-caption);color:var(--muted);padding:12px}.canvas-region{position:absolute;inset:0}.drawing{width:100%;height:100%;position:relative;overflow:hidden}.stock-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;padding:0;display:block}.tool-hand .stock-svg{cursor:grab}.tool-hand .stock-svg:active{cursor:grabbing}.part{cursor:pointer}.part-label{pointer-events:none;fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:1px;font-family:inherit}.selected .part-label{stroke-width:3px}.sheet-title{fill:var(--muted);font-size:25px;font-weight:500}.dimension{fill:var(--muted);font-size:22px}.view-switch{top:var(--information-top);left:calc((100% + var(--canvas-fit-left) - var(--canvas-fit-right)) / 2);z-index:2;gap:2px;padding:4px;display:flex;position:absolute;transform:translate(-50%)}.view-switch button{font-size:var(--text-body);min-height:28px;padding:6px 13px}.view-switch .active,.view-switch button.active:hover{background:var(--paper);color:var(--ink)}.inspector{right:15px;top:var(--information-top);width:var(--right-rail-width);max-height:calc(100% - var(--information-top) - 14px);z-index:4;padding-bottom:14px;position:absolute;overflow-y:auto}.inspector>h2,.inspector>.part-dimensions,.inspector>dl,.inspector>.hint,.inspector>.inspector-actions{margin-left:16px;margin-right:16px}.inspector h2{margin-top:20px;font-size:16px;font-weight:500}.inspector-preview{height:100px;padding:10px 32px}.inspector-preview svg{width:100%;height:100%}.part-dimensions{padding-top:12px;font-size:17px}.part-dimensions small{font-size:var(--text-caption)}dl{border-top:1px solid var(--ink-soft);margin-top:18px;padding:10px 0}dl div{justify-content:space-between;padding:7px 0;display:flex}dt{color:var(--muted)}dd{margin:0}.inspector-actions{gap:8px;display:flex}.inspector-actions button{background:var(--paper);font-size:var(--text-body);flex:1}.toolbar-divider{background:var(--ink-soft);width:1px;height:23px;margin:5px 4px}.zoom-controls{right:calc(var(--right-rail-width) + 38px);z-index:2;align-items:center;gap:3px;padding:5px;display:flex;position:absolute;bottom:42px}.zoom-controls button{min-height:28px;padding:6px}.zoom-controls span{text-align:center;min-width:37px;font-size:var(--text-body)}.zoom-controls .active,.zoom-controls button.active:hover{background:var(--ink-soft);color:var(--ink)}.statusbar{z-index:6;pointer-events:none;height:24px;color:var(--muted);font-size:var(--text-caption);background:0 0;border:0;justify-content:space-between;align-items:center;padding:0 2px;display:flex;position:absolute;bottom:6px;left:14px;right:14px}.statusbar button{pointer-events:auto;font-size:var(--text-caption);min-height:0;color:var(--accent);padding:0}.status-help{color:var(--muted);margin-left:14px}.progress-strip{z-index:3;max-width:calc(100% - 40px);font-size:var(--text-body);flex-wrap:wrap;align-items:center;gap:10px;padding:9px 13px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.progress-strip small{font-size:var(--text-caption)}.empty-canvas{height:100%;color:var(--muted);place-items:center;display:grid}.modal-backdrop{background:var(--shadow);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--paper-light);border:1px solid var(--line);width:470px;max-width:100%;max-height:90dvh;box-shadow:0 15px 70px var(--shadow);overscroll-behavior:contain;border-radius:2px;padding:23px;overflow-y:auto}.modal-title{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.modal-title h2{margin:0;font-size:18px;font-weight:500}.modal p{font-size:var(--text-caption);color:var(--muted);line-height:1.85}.modal label{font-size:var(--text-body);color:var(--muted);flex-direction:column;gap:8px;margin-bottom:17px;display:flex}.modal select{appearance:auto}.form-grid,.setting-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.input-unit,.setting-grid label>div{position:relative}.input-unit span,.setting-grid label>div>span{color:var(--muted);pointer-events:none;position:absolute;top:11px;right:12px}.input-unit input,.setting-grid input{padding-right:36px}.modal .wide{width:100%;margin-top:10px}.modal .warning,.warning{color:var(--accent);background:var(--accent-soft);border-radius:2px;padding:10px 12px;line-height:1.7}.shape-preview{background:var(--paper);border-radius:2px;justify-content:space-around;align-items:center;padding:8px;display:flex}.shape-preview svg{width:150px;height:80px}.shape-preview span{font-size:var(--text-caption);color:var(--muted)}.import-result{background:var(--paper);border-radius:2px;margin-top:15px;padding:15px}.import-result p{margin-bottom:0}.drawer-backdrop{justify-content:flex-end;padding:0}.export-drawer{border-radius:0;width:360px;height:100dvh;max-height:100dvh;padding:25px}.help kbd{background:var(--paper);border:1px solid var(--ink-soft);color:var(--ink);border-radius:2px;padding:3px 5px}.mode-select{border-radius:2px;grid-template-columns:minmax(0,1fr);gap:8px;margin-bottom:24px;display:grid}.mode-select button{text-align:left;white-space:normal;min-width:0;font-size:var(--text-body);border:1px solid var(--line);grid-template-columns:112px minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px;display:grid}.mode-select button strong{white-space:nowrap;font-size:14px;font-weight:600}.mode-select button small{color:var(--muted);text-wrap:pretty;font-size:13px;line-height:1.6}.mode-select button.active,.mode-select button.active:hover{background:var(--ink-soft);color:var(--ink);border-color:var(--ink)}.modal.settings-modal{flex-direction:column;width:560px;padding:24px;display:flex;overflow:hidden}.settings-modal .modal-title{flex-shrink:0}.settings-modal .nest-panel{flex-direction:column;min-height:0;display:flex}.settings-modal .settings-scroll{scrollbar-gutter:stable;min-height:0;padding-right:6px;overflow-y:auto}.settings-modal .modal-title h2{font-size:24px}.settings-modal .setting-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-modal label{min-width:0;margin-bottom:0;font-size:14px;line-height:1.5}.settings-modal .input-unit{align-items:center;display:flex}.settings-modal .input-unit input{width:100%;min-width:0;height:40px;font-size:14px}.settings-modal .input-unit span{font-size:13px;top:auto}.settings-modal .settings-group+.settings-group{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.settings-modal .settings-group h3{color:var(--muted);margin:0 0 12px;font-size:13px;font-weight:600}.settings-modal .mode-select{margin-bottom:0}.settings-modal .setting-description{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.settings-modal .rotation.check{margin-top:16px}.settings-modal .rotation-description{margin:5px 0 0 26px}.settings-modal .stop-choice{border:1px solid var(--line);padding:12px}.settings-modal .stop-choice+.stop-choice{margin-top:10px}.settings-modal .stop-choice.selected{border-color:var(--ink)}.settings-modal .stop-choice-label{cursor:pointer;flex-direction:row;align-items:flex-start;gap:8px;display:flex}.settings-modal .stop-choice-label input{width:14px;height:14px;accent-color:var(--ink);flex-shrink:0;margin:4px 0 0;padding:0}.settings-modal .stop-sentence{flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 0 22px;font-size:14px;line-height:1.6;display:flex}.settings-modal .stop-sentence-start{white-space:nowrap;align-items:center;gap:8px;display:flex}.settings-modal .stop-criterion{margin:10px 0 0 22px}.settings-modal .remnant-description{margin-top:10px}.settings-modal .stop-sentence input,.settings-modal .stop-limits input{width:80px;min-width:0;height:38px;padding:6px 8px;font-size:14px}.settings-modal .stop-limits{grid-template-columns:minmax(0,1fr);gap:12px;margin:14px 0 0 22px;display:grid}.settings-modal .stop-limits label{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-modal .stop-limits label>span{align-items:center;gap:8px;display:flex}.settings-modal .search-actions{border-top:1px solid var(--line);flex-shrink:0;margin-top:16px;padding-top:16px}@media (width<=520px){.modal.settings-modal{padding:18px}.settings-modal .mode-select button{grid-template-columns:minmax(0,1fr);gap:4px;padding:10px 12px}.settings-modal .setting-grid{gap:14px 12px}.settings-modal .stop-sentence,.settings-modal .stop-criterion,.settings-modal .stop-limits{margin-left:0}}.nest-panel .section-title{display:none}.rotation.check{flex-direction:row;grid-column:1/-1;align-items:center;display:flex}.search-actions{gap:8px;display:flex}.search-actions .primary{flex:1}.search-status{font-size:var(--text-caption);color:var(--muted);margin-top:15px;line-height:1.7}.issue-list{flex-direction:column;gap:5px;max-height:45vh;display:flex;overflow:auto}.issue-list button{white-space:normal;text-align:left;color:var(--accent);background:var(--accent-soft);justify-content:flex-start}.parts-panel>.brand{flex-shrink:0;padding:16px 16px 12px}.brand-sub{font-size:var(--text-caption)}.floating-tools{z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 4px var(--shadow);background:#fffc;padding:4px;position:absolute;top:12px;left:12px;right:12px}.floating-toolbar{scrollbar-width:thin;overscroll-behavior:contain;justify-content:center;align-items:center;gap:8px;display:flex;overflow-x:auto}.toolbar-group{flex-shrink:0;align-items:center;gap:4px;display:flex}.floating-toolbar button{width:32px;height:32px;min-height:32px;font-size:var(--text-body);flex-shrink:0;padding:6px}.floating-toolbar button svg{flex-shrink:0;width:16px;height:16px}.floating-toolbar .tool-label{display:inline}.floating-toolbar button:has(.tool-label){width:auto;padding:6px 10px}.floating-toolbar .pack-action{width:auto;padding:6px 10px}.floating-toolbar .toolbar-divider{flex-shrink:0;height:20px;margin:0 3px}.secondary-tools{border-left:1px solid var(--ink-soft);padding-left:8px}.secondary-tools button[aria-label=数据分析]{width:auto;padding:6px 10px}.floating-toolbar button:not(.primary).active{background:var(--ink-soft);color:var(--ink)}.analysis-panel{right:15px;top:var(--information-top);width:var(--right-rail-width);z-index:4;flex-direction:column;display:flex;position:absolute;bottom:14px;overflow:hidden}.analysis-panel .panel-heading{flex-shrink:0}.analysis-panel .panel-heading strong span{font-size:var(--text-caption);color:var(--muted);margin-left:6px;font-weight:400}.analysis-body{overscroll-behavior:contain;padding:16px;overflow-y:auto}.utilization-summary{grid-template-columns:1fr 1fr;gap:10px;display:grid}.utilization-summary div{flex-direction:column;gap:7px;display:flex}.utilization-summary span{color:var(--muted);font-size:var(--text-caption)}.utilization-summary strong{letter-spacing:-1px;font-size:26px;font-weight:500}.analysis-note{font-size:var(--text-caption);margin:10px 0 0}.analysis-stats{font-size:var(--text-body);margin:14px 0 0;padding:9px 0}.analysis-stats div{gap:7px;padding:6px 0}.analysis-stats dd{text-align:right}.analysis-body h3{font-size:var(--text-body);margin:20px 0 12px;font-weight:600}.analysis-warning{background:var(--accent-soft);color:var(--accent);white-space:normal;width:100%;font-size:var(--text-body)}.sheet-analysis-list{flex-direction:column;gap:13px;display:flex}.sheet-analysis{border-bottom:1px solid var(--ink-soft);padding-bottom:13px}.sheet-analysis>div:first-child{font-size:var(--text-body);justify-content:space-between;gap:8px;display:flex}.sheet-analysis strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sheet-analysis>div:first-child span{white-space:nowrap;color:var(--muted)}.sheet-analysis>small{font-size:var(--text-caption);margin-top:5px;display:block}.sheet-rates{font-size:var(--text-body);justify-content:space-between;margin-top:10px;display:flex}.utilization-track{background:var(--ink-soft);border-radius:2px;height:4px;margin:7px 0;overflow:hidden}.utilization-track span{background:var(--ink);height:100%;display:block}.comparison-scroll{overflow-x:auto}.comparison-table{border-collapse:collapse;width:100%;font-size:var(--text-body);white-space:nowrap}.comparison-table th,.comparison-table td{text-align:right;border-bottom:1px solid var(--ink-soft);padding:8px 4px;font-weight:400}.comparison-table th:first-child{text-align:left}.comparison-table thead{color:var(--muted)}.comparison-table td small{font-size:var(--text-caption);margin-top:3px;display:block}.comparison-table .active-row{background:var(--paper)}.empty-canvas{text-align:center}.topbar{z-index:8;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;height:42px;padding:0 14px;display:grid;position:absolute;top:12px;left:14px;right:14px}.topbar button{height:32px;padding:6px 9px}.brand{min-width:0}.brand-mark{width:30px;height:30px}.project-title{color:var(--muted);border-left:1px solid var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-body);margin-left:4px;padding-left:10px;overflow:hidden}.edit-tools,.top-actions{align-items:center;gap:4px;display:flex}.edit-tools .active{background:var(--ink-soft);color:var(--ink)}.top-actions{justify-content:flex-end}.more-wrap{position:relative}.more-menu{flex-direction:column;min-width:180px;padding:6px;display:flex;position:absolute;top:37px;right:0}.more-menu button{justify-content:flex-start}.parts-panel{width:var(--left-rail-width);top:var(--information-top);bottom:36px;left:14px}.analysis-panel,.inspector{top:var(--information-top);width:var(--right-rail-width);max-height:none;bottom:36px;right:14px}.inspector{height:auto}.resource-import{border-bottom:1px solid var(--ink-soft);padding:12px}.resource-import .wide{border:1px solid var(--line);width:100%}.resource-tabs{gap:4px;padding:8px 10px 0;display:flex}.resource-tabs button{border-radius:2px;flex:1}.resource-tabs .active{background:var(--paper);color:var(--ink)}.resource-tabs small{color:inherit;opacity:.6}.resource-actions{align-items:center;padding-right:10px;display:flex}.resource-actions .component-search{flex:1;min-width:0;margin-right:3px}.panel-foot{line-height:1.8}.panel-foot span{font-size:var(--text-caption);display:block}.pending-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-left:auto}.part-row-copy small{font-size:var(--text-caption)}.resource-stock{border-bottom:1px solid var(--ink-soft);flex-direction:column;gap:6px;padding:12px 8px;display:flex}.resource-stock>span{color:var(--muted);font-size:var(--text-caption)}.resource-stock>div{justify-content:space-between;display:flex}.resource-stock>div button{font-size:var(--text-body);background:var(--paper)}.resource-empty{text-align:center;color:var(--muted);padding:22px 6px;line-height:1.8}.empty-canvas{padding:var(--canvas-fit-top) var(--canvas-fit-right) var(--canvas-fit-bottom) var(--canvas-fit-left)}.empty-canvas>div{max-width:330px}.empty-canvas h2{color:var(--ink);font-size:20px;font-weight:500}.empty-canvas p{line-height:1.9}.empty-mark{border:1px solid var(--line);width:44px;height:44px;color:var(--muted);border-radius:2px;place-items:center;font-size:22px;display:inline-grid}.candidate-bar{top:72px;left:calc((100% + var(--canvas-fit-left) - var(--canvas-fit-right)) / 2);z-index:3;max-width:calc(100% - var(--canvas-fit-left) - var(--canvas-fit-right) - 12px);font-size:var(--text-body);flex-wrap:wrap;align-items:center;gap:6px;padding:4px 8px;display:flex;position:absolute;transform:translate(-50%)}.candidate-bar button{font-size:var(--text-body)}.overview-secondary{color:var(--muted);font-size:var(--text-caption);justify-content:space-between;padding:15px 0;display:flex}.utilization-summary strong small{font-size:var(--text-caption);letter-spacing:0}.metric-details{border-top:1px solid var(--ink-soft);font-size:var(--text-body);color:var(--muted);margin-top:18px;padding-top:12px}.metric-details summary{cursor:pointer}.candidate-comparison{background:var(--paper);font-size:var(--text-body);border-radius:2px;margin-top:14px;padding:12px}.candidate-comparison p{margin:7px 0}.pending-placement,.duplicate-controls{margin:14px 16px}.pending-placement{background:var(--accent-soft);border-radius:2px;padding:12px}.pending-placement label{font-size:var(--text-body);color:var(--muted);display:block}.pending-placement select{margin:8px 0}.pending-placement>button{width:100%;font-size:var(--text-body)}.duplicate-controls{align-items:flex-end;gap:5px;display:flex}.duplicate-controls label{width:70px;font-size:var(--text-body);color:var(--muted)}.duplicate-controls input{margin-top:6px;padding:7px}.duplicate-controls button{background:var(--paper);font-size:var(--text-body);padding:6px}.source-name{white-space:nowrap;text-overflow:ellipsis;max-width:165px;overflow:hidden}.inspector dl{font-size:var(--text-body)}.inspector dl dd{text-align:right}.import-modes{grid-template-columns:1fr 1fr;gap:8px;margin:16px 0;display:grid}.import-modes button{text-align:left;border:1px solid var(--line);white-space:normal;flex-direction:column;align-items:flex-start;padding:12px;line-height:1.6}.import-modes .active{background:var(--ink-soft);color:var(--ink);border-color:var(--line)}.import-modes small{font-size:var(--text-caption)}.import-preview>label{margin-top:16px}.preview-dimensions{font-size:var(--text-body);color:var(--muted);flex-direction:column;gap:5px;max-height:100px;margin-top:12px;display:flex;overflow:auto}.import-stock{border-bottom:1px solid var(--ink-soft);margin-top:12px;padding-bottom:4px}.import-stock>strong{font-size:var(--text-body);margin-bottom:12px;display:block}.import-stock .form-grid label{flex-direction:column;align-items:stretch}.import-stock input{width:100%}.modal.import-modal{flex-direction:column;width:min(1380px,100vw - 40px);height:min(940px,100dvh - 40px);max-height:calc(100dvh - 40px);padding:20px 24px;display:flex;overflow:hidden}.import-modal .modal-title{flex-shrink:0;margin-bottom:16px}.import-modal .modal-title h2{font-size:24px}.import-preview{flex-direction:column;min-height:0;display:flex}.import-scroll{scrollbar-gutter:stable;min-height:0;padding-right:8px;overflow-y:auto}.import-modal h3{margin:0 0 12px;font-size:14px;font-weight:600}.import-modal label{gap:6px;min-width:0;margin-bottom:12px;font-size:14px}.import-modal input,.import-modal select{width:100%;min-width:0;height:38px;padding:7px 9px;font-size:14px;line-height:22px}.import-modal .input-unit{display:block}.import-modal .input-unit span{font-size:13px;top:9px}.import-modal .import-modes{margin:0 0 16px}.import-modal .import-modes button{font-size:14px}.import-file-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.import-file-heading>div{flex-wrap:wrap;align-items:center;gap:4px 12px;min-width:0;display:flex}.import-file-heading strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.import-file-heading small{color:var(--muted);font-size:12px}.import-file-heading>button{flex-shrink:0;font-size:13px}.import-unit{margin:12px 0;font-size:13px}.import-unit summary,.import-dimensions summary,.import-format summary{cursor:pointer;line-height:1.6}.import-unit summary span,.import-dimensions summary span{color:var(--muted);margin-left:10px}.import-unit>label{max-width:320px;margin-top:12px}.import-counts{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 22px;padding:10px 0 14px;font-size:13px;display:flex}.import-counts strong{color:var(--ink);margin-right:4px;font-size:20px;font-weight:600}.import-counts>span:last-child{margin-left:auto}.import-content{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;display:grid}.import-visual,.import-metadata{min-width:0}.import-board-tabs{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.import-board-tabs button{border:1px solid var(--line);padding:6px 12px;font-size:13px}.import-board-tabs button[aria-pressed=true]{background:var(--ink-soft);border-color:var(--ink)}.import-board-stage{background:var(--paper);border:1px solid var(--line);justify-content:center;height:clamp(240px,90dvh - 410px,360px);display:flex}.import-board-stage svg{width:100%;height:100%}.import-stock-shape{fill:var(--paper-light);stroke:var(--ink);stroke-width:1px;vector-effect:non-scaling-stroke}.import-part-shape{fill:var(--ink-soft);stroke:var(--ink);stroke-width:.75px;vector-effect:non-scaling-stroke}.import-hole-shape{fill:var(--paper-light);stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke}.import-pocket-shape{fill:var(--accent-soft);stroke:var(--accent);stroke-width:.65px;vector-effect:non-scaling-stroke}.import-board-caption{color:var(--muted);justify-content:space-between;gap:8px;margin-top:8px;font-size:13px;display:flex}.import-modal .import-legend{justify-content:center;gap:20px;margin:8px 0 0;font-size:12px;display:flex}.import-legend span:before{content:"";background:var(--ink-soft);border:1px solid var(--ink);width:8px;height:8px;margin-right:6px;display:inline-block}.import-legend .legend-hole:before{background:var(--paper-light);border-color:var(--muted);border-radius:50%}.import-legend .legend-pocket:before{background:var(--accent-soft);border-color:var(--accent)}.import-modal .import-stock{border-bottom:1px solid var(--line);margin-top:0;margin-bottom:6px;padding:0 0 6px}.import-stock-name{text-align:left;justify-content:space-between;gap:10px;width:100%;min-height:20px;margin-bottom:6px;padding:0;font-size:14px;font-weight:600;display:flex}.import-stock-name span{color:var(--muted);font-size:12px;font-weight:400}.import-stock.selected .import-stock-name{color:var(--ink)}.import-modal .form-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px}.import-modal .import-stock label{margin-bottom:0}.import-modal .import-description{margin:10px 0;font-size:13px}.import-modal [aria-invalid=true]{border-color:var(--accent)}.import-modal .import-field-error{color:var(--accent);font-size:12px;line-height:1.5}.import-notices{background:var(--accent-soft);color:var(--accent);margin-bottom:16px;padding:12px;font-size:13px}.import-notices ul{margin:8px 0 0;padding-left:20px;line-height:1.7}.import-dimensions,.import-format{border-top:1px solid var(--line);margin-top:18px;padding-top:14px;font-size:13px}.import-dimensions table{table-layout:fixed;border-collapse:collapse;width:100%;margin-top:12px;font-size:13px}.import-dimensions th,.import-dimensions td{border-bottom:1px solid var(--line);text-align:left;text-overflow:ellipsis;white-space:nowrap;padding:8px 6px;overflow:hidden}.import-dimensions th:first-child{width:28%}.import-dimensions th:last-child{width:25%}.import-modal .import-format p{margin-bottom:0;font-size:13px}.import-part-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.import-part-gallery figure{border:1px solid var(--line);background:var(--paper);min-width:0;margin:0;padding:10px}.import-part-gallery svg{width:100%;height:120px;display:block}.import-part-gallery figcaption{color:var(--muted);gap:4px;margin-top:8px;font-size:12px;display:grid}.import-part-gallery strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.import-visual h3 span{color:var(--muted);margin-left:8px;font-size:12px;font-weight:400}.import-progress{justify-content:space-between;align-items:center;padding:18px 0;font-size:14px;display:flex}.import-actions{border-top:1px solid var(--line);flex-shrink:0;margin-top:16px;padding-top:14px}.import-action-buttons{justify-content:flex-end;gap:10px;display:flex}.import-action-buttons button{min-width:80px;font-size:14px}.import-action-buttons .primary{min-width:160px}.import-modal .import-target{flex-direction:row;align-items:center;gap:12px;font-size:13px;display:flex}.import-target .ui-select{max-width:220px}.import-modal .import-submit-error,.import-modal .import-replace{color:var(--accent);margin:0 0 12px;font-size:13px;line-height:1.6}@media (width<=680px){.modal.import-modal{width:calc(100vw - 20px);height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);padding:14px}.import-content{grid-template-columns:minmax(0,1fr);gap:20px}.import-board-stage{height:300px}.import-counts{gap:8px 16px}.import-counts>span:last-child{flex-basis:100%;margin-left:0}.import-board-caption{font-size:12px}.import-stock-name{flex-wrap:wrap;gap:4px 10px}.import-file-heading{flex-wrap:wrap}.import-file-heading>div{max-width:100%}.import-unit summary{flex-wrap:wrap;gap:2px 8px;display:flex}.import-unit summary span{margin-left:0}.import-dimensions th,.import-dimensions td{padding:8px 3px;font-size:11px}.import-action-buttons button{min-width:64px}.import-action-buttons .primary{min-width:140px}}.modal .check-inline{flex-direction:row;align-items:center}.mobile-navigation{display:none}.statusbar>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding-right:14px;overflow:hidden}.statusbar>button{flex-shrink:0}@media (width>=901px) and (width<=1340px){.zoom-controls{bottom:94px}}@media (width<=1180px){.zoom-controls{bottom:94px;right:calc(var(--right-rail-width) + 38px)}.view-switch button{padding:6px 8px}.topbar{gap:10px}.top-actions button{padding:6px 7px}}@media (width<=900px){.topbar{grid-template-columns:minmax(0,1fr) auto;gap:4px;height:52px;padding:0 6px}.topbar button{min-width:34px;height:40px;padding:6px}.top-actions>button span,.project-title{display:none}.edit-tools{gap:0}.workspace-surface{--information-top:134px;--canvas-fit-left:16px;--canvas-fit-right:16px;--canvas-fit-top:144px;--canvas-fit-bottom:112px}.mobile-navigation{z-index:8;background:var(--paper-light);border:1px solid var(--line);box-shadow:0 3px 12px var(--shadow);border-radius:2px;gap:6px;padding:5px 10px;display:flex;position:absolute;top:74px;left:14px;right:14px}.mobile-navigation button{flex:1;min-height:40px}.workspace-surface>.parts-panel,.workspace-surface>.analysis-panel,.workspace-surface>.inspector{display:none}.workspace-surface.mobile-resources>.parts-panel{display:flex}.workspace-surface>.canvas-region{display:block}.workspace-surface.mobile-info>.analysis-panel{display:flex}.workspace-surface.mobile-info>.inspector{display:block}.parts-panel,.analysis-panel,.inspector{inset:var(--information-top) 14px 36px;width:auto;max-height:none}.canvas-region{inset:0}.zoom-controls{bottom:94px;right:14px}.candidate-bar{top:134px}.part-row{padding:14px 10px}.part-row-copy small{font-size:var(--text-caption)}.inspector-preview{height:140px}.inspector button,.parts-panel button{min-height:40px}.statusbar{height:30px;padding:0 10px}.modal-backdrop{padding:12px}.modal{padding:20px}.modal button{min-height:40px}.drawer-backdrop{padding:0}.export-drawer{width:min(420px,100%)}}@media (width<=370px){.topbar{grid-template-columns:minmax(0,1fr) auto}.brand strong{display:none}.topbar button{min-width:32px}}.resource-tabs button.active:hover,.resource-tabs button.active:focus-visible,.edit-tools button.active:hover,.edit-tools button.active:focus-visible,.import-modes button.active:hover,.import-modes button.active:focus-visible{background:var(--ink-soft);color:var(--ink)}.sheet-analysis>div:first-child span,.comparison-table thead,.inspector dt,.empty-canvas p,.pending-placement p,.candidate-comparison p{font-size:var(--text-caption)}.resource-stock>span:first-of-type,.import-result>p:first-of-type{font-size:var(--text-body)}.modal.stock-modal{flex-direction:column;width:480px;padding:0;display:flex;overflow:hidden}.stock-modal .modal-title{flex-shrink:0;margin:0;padding:18px 22px 14px}.stock-modal .modal-title h2{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stock-form{flex-direction:column;min-height:0;display:flex}.stock-form-body{overscroll-behavior:contain;padding:0 22px 22px;overflow-y:auto}.stock-summary{font-size:var(--text-caption);color:var(--muted);flex-wrap:wrap;gap:6px 16px;padding-bottom:22px;display:flex}.stock-modal .stock-intro{margin:0 0 18px}.stock-size-grid,.stock-property-grid{align-items:start;gap:14px;display:grid}.stock-size-grid{grid-template-columns:1fr 1fr}.stock-property-grid{grid-template-columns:minmax(110px,1fr) minmax(0,2fr)}.stock-modal .stock-field{min-width:0;font-size:var(--text-body);gap:7px;margin:0 0 16px}.stock-property-grid .stock-field{margin-bottom:0}.stock-field input,.stock-field select{width:100%;height:38px;font-size:var(--text-body)}.stock-field input:focus,.stock-field select:focus{outline-offset:-2px;outline:2px solid}.stock-field input[aria-invalid=true],.stock-field select[aria-invalid=true]{border-color:var(--accent)}.stock-modal .field-error{color:var(--accent-dark);font-size:var(--text-caption);line-height:1.5}.stock-modal .stock-impact{font-size:var(--text-caption);margin:16px 0 0;line-height:1.6}.stock-form-footer{border-top:1px solid var(--ink-soft);background:var(--paper-light);flex-shrink:0;justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.stock-form-footer button{min-width:72px;height:34px;font-size:var(--text-body)}@media (width<=520px){.stock-modal .modal-title{padding:16px 18px 12px}.stock-form-body{padding:0 18px 18px}.stock-form-footer{padding:12px 18px}.stock-property-grid{grid-template-columns:minmax(100px,1fr) minmax(0,1.5fr)}}.workspace-surface{--information-top:68px;--canvas-fit-top:124px}.topbar{height:42px;box-shadow:none;border-color:#2146b53d;border-radius:3px;padding:0 12px;top:12px}.topbar button{height:28px;min-height:28px;padding:4px 8px;font-size:12px}.topbar button svg{width:14px;height:14px}.brand{gap:8px}.brand-name{flex-direction:column;gap:0;display:flex}.brand-name strong{font-family:var(--display-font);letter-spacing:1px;font-size:18px;font-weight:900;line-height:1.1}.brand-name small{font-family:var(--latin-font);color:var(--ink);letter-spacing:.7px;font-size:7px;line-height:1.1}.project-title{margin-left:10px;font-size:12px}.edit-tools{gap:4px}.edit-tools button{width:28px}.edit-tools button.active,.edit-tools button.active:hover{color:var(--ink);background:var(--ink-soft)}.top-actions{gap:6px}.top-actions>button{height:28px;padding:4px 9px}.top-actions>button:not(.primary){border:1px solid var(--line)}.more-menu{top:34px}.panel-heading{min-height:57px;padding:14px 16px}.panel-heading>strong,.resource-tabs button,.analysis-body h3{font-family:var(--display-font);font-size:19px;font-weight:900}.panel-heading>strong>span{font-family:-apple-system,PingFang SC,sans-serif}.section-index{font-family:var(--latin-font);color:var(--muted);font-size:19px}.resource-import{padding:15px 14px}.resource-import button{min-height:39px;color:var(--ink);border-color:var(--ink)!important}.resource-import button:hover{color:var(--paper-light);background:var(--ink)}.resource-tabs{gap:0;padding:0 14px}.resource-tabs button{border-bottom:1px solid var(--line);border-radius:0;font-size:17px}.resource-tabs button.active{border-bottom:2px solid var(--ink)}.resource-tabs small{font-family:var(--latin-font);font-size:16px}.component-search{border:1px solid var(--line);background:0 0}.component-search input{font-size:12px}.part-row{border-bottom:1px solid #2146b50b;border-radius:0}.part-row.selected{background:var(--ink-soft);border-color:var(--ink)}.part-row strong{font-family:var(--display-font);font-size:16px;font-weight:900}.part-row-copy>span{font-variant-numeric:tabular-nums;font-size:12px}.thumbnail{background:var(--paper);border:1px solid var(--line)}.panel-foot{background:var(--paper);padding:12px 14px}.resource-empty{padding:27px 10px;font-size:12px}.resource-empty button{color:var(--ink);border-bottom:1px solid var(--line);border-radius:0;font-size:12px}.analysis-body{padding:20px 16px}.utilization-summary strong{font-family:var(--latin-font);letter-spacing:-1.5px;font-size:38px;font-weight:700;line-height:1.2}.utilization-summary{border-bottom:1px solid var(--line);padding-bottom:18px}.utilization-summary>div+div{border-left:1px solid var(--line);padding-left:13px}.studio-guide{margin-top:35px}.section-kicker{font-family:var(--latin-font);letter-spacing:.4px;font-size:10px}.studio-guide h3{margin:12px 0 16px;font-size:21px}.studio-guide p{color:var(--muted);font-size:12px;line-height:2}.studio-guide button{border-bottom:1px solid var(--ink);border-radius:0;padding:7px 0;font-size:12px}.studio-note{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:50px;padding-top:20px;display:flex}.studio-note>span{font-family:var(--display-font);font-size:27px;font-weight:900}.studio-note small{font-size:11px}.view-switch{border-color:var(--line);gap:0;padding:0}.view-switch button{border-radius:0;padding:10px 17px;font-size:12px}.view-switch button+button{border-left:1px solid var(--line)}.view-switch button.active,.view-switch button.active:hover{background:var(--ink);color:var(--paper-light)}.zoom-controls{padding:3px}.zoom-controls span{font-family:var(--latin-font);font-size:15px}.candidate-bar{border-color:var(--ink);top:116px}.statusbar{color:var(--muted);font-size:11px}.statusbar>span:before{content:"";background:var(--accent);width:5px;height:5px;margin-right:8px;display:inline-block}.statusbar>button{color:var(--ink);font-size:11px}.statusbar>button.status-warning{color:var(--accent)}.modal{background:var(--paper-light);border:1px solid var(--ink);box-shadow:8px 8px 0 var(--shadow);border-radius:2px}.modal-title{border-bottom:1px solid var(--line);padding-bottom:16px}.modal-title h2,.inspector h2{font-family:var(--display-font);font-size:27px;font-weight:900}.modal label{color:var(--ink)}input,select{background:var(--paper-light)}input::placeholder{color:var(--muted)}.modal.stock-modal .modal-title{margin-bottom:18px}.modal .warning,.warning{color:var(--accent-dark)}.modal-backdrop{background:#14254b45}.import-modes button.active{background:var(--ink-soft);color:var(--ink);border-color:var(--ink)}.shape-preview{border:1px solid var(--line)}.shape-preview svg>*{fill:var(--ink-soft);stroke:var(--ink);stroke-width:1.5px}.sheet-title{fill:var(--ink);font-family:var(--latin-font);font-weight:700}.dimension{fill:var(--muted);font-family:var(--latin-font)}.part-label{fill:var(--ink);stroke:var(--paper-light);font-family:-apple-system,PingFang SC,sans-serif}.selected .part-label{fill:var(--accent-dark)}.parts-drawing-stage{padding:var(--canvas-fit-top) calc(var(--canvas-fit-right) + 24px) var(--canvas-fit-bottom) calc(var(--canvas-fit-left) + 24px);position:absolute;inset:0;overflow:auto}.parts-drawing-heading{margin-bottom:20px}.drawing-stock-entry{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.drawing-stock-entry h3{margin:0}.parts-drawing-heading h2{font-family:var(--display-font);margin:0 0 8px;font-size:24px}.parts-drawing-heading p{color:var(--muted);margin:0;font-size:12px}.parts-drawing-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;display:grid}.parts-drawing-card{text-align:left;border:1px solid var(--line);background:var(--paper-light);flex-direction:column;align-items:stretch;gap:8px;padding:16px;display:flex}.parts-drawing-card[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.parts-drawing-card svg{width:100%;height:160px;margin-bottom:8px}.parts-drawing-card strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.parts-drawing-card>span{color:var(--muted);font-size:11px}.empty-canvas{padding:118px calc(var(--canvas-fit-right) + 32px) 122px calc(var(--canvas-fit-left) + 32px);text-align:left;color:var(--ink);align-items:center;display:flex;position:absolute;inset:0;overflow-y:auto}.empty-canvas>.welcome-sheet{flex-shrink:0;width:100%;max-width:1050px;margin:auto}.welcome-edition{font-family:var(--latin-font);border-bottom:1px solid var(--ink);justify-content:space-between;gap:12px;padding-bottom:12px;font-size:11px;display:flex}.welcome-edition>span:last-child{color:var(--muted)}.welcome-composition{grid-template-columns:1.1fr 1fr;align-items:center;min-height:430px;display:grid}.welcome-copy{z-index:1;padding:36px 0;position:relative}.welcome-kicker{color:var(--accent);font-size:12px}.welcome-copy h1{font-family:var(--display-font);letter-spacing:-1.5px;margin:19px -70px 24px 0;font-size:clamp(34px,3.55vw,62px);font-weight:900;line-height:1.3}.welcome-copy p{color:var(--muted);white-space:pre-line;font-size:13px;line-height:2}.welcome-actions{flex-wrap:wrap;align-items:center;gap:13px;margin-top:28px;display:flex}.welcome-actions .primary{background:var(--accent);min-height:44px;padding:12px 17px}.welcome-actions .primary:hover{background:var(--accent-dark)}.sample-link{border-bottom:1px solid var(--ink);border-radius:0;padding:7px 0;font-size:12px}.sample-link:hover{color:var(--accent);background:0 0}.welcome-local{color:var(--muted);margin-top:16px;font-size:10px;display:block}.welcome-art{pointer-events:none;min-width:0;padding:10px 0 10px 8px}.joinery-print{width:100%;max-height:460px;display:block;overflow:visible}.print-annotations{font-family:var(--latin-font);letter-spacing:1px;font-size:10px}.welcome-steps{border-top:1px solid var(--ink);grid-template-columns:repeat(3,1fr);gap:18px;padding-top:20px;display:grid}.welcome-steps>div{gap:13px;display:flex}.welcome-steps>div>span{font-family:var(--latin-font);color:var(--accent);font-size:24px;line-height:1.2}.welcome-steps>div>div{flex-direction:column;gap:5px;display:flex}.welcome-steps strong{font-family:var(--display-font);font-size:17px;font-weight:900}.welcome-steps small{font-size:10px}@media (width>=901px) and (width<=1250px){.empty-canvas{padding-left:calc(var(--canvas-fit-left) + 16px);padding-right:calc(var(--canvas-fit-right) + 16px)}.welcome-copy h1{font-size:36px}.welcome-composition{grid-template-columns:1fr;align-items:start;min-height:490px;position:relative}.welcome-copy{padding-top:35px}.welcome-art{opacity:.2;width:190px;position:absolute;top:10px;right:0}.welcome-copy h1{margin-right:0}.welcome-edition>span:last-child{display:none}.welcome-steps{gap:8px}.welcome-steps>div{gap:6px}.welcome-steps strong{font-size:15px}.welcome-steps small{font-size:9px}}@media (width<=900px){.topbar{grid-template-columns:minmax(0,1fr) auto;gap:3px;height:44px;padding:0 8px}.brand{gap:6px}.brand-mark{width:26px;height:26px}.brand-name strong{font-size:18px}.brand-name small{font-size:7px}.topbar .edit-tools{gap:0}.topbar button{height:34px;min-height:34px}.top-actions{gap:2px}.top-actions>button{min-width:32px;padding:6px;border:0!important}.mobile-navigation{border-color:var(--ink);background:var(--paper-light);box-shadow:none;border-radius:2px;gap:0;padding:2px;top:68px}.mobile-navigation button{min-height:36px;font-family:var(--display-font);border-radius:0;font-weight:900}.workspace-surface{--information-top:124px;--canvas-fit-top:180px}.empty-canvas{align-items:flex-start;padding:139px 26px 150px}.welcome-composition{grid-template-columns:1fr 1fr;min-height:0}.welcome-copy h1{font-size:42px}.welcome-art{padding-left:0}.welcome-steps,.welcome-steps>div{gap:8px}.view-switch{top:var(--information-top)}.view-switch button{padding:10px 14px}.zoom-controls{bottom:103px}.candidate-bar{top:176px}}@media (width<=560px){.welcome-edition{font-size:9px}.welcome-edition>span:last-child{display:none}.welcome-composition{grid-template-columns:1fr}.welcome-copy{padding:27px 0 10px}.welcome-copy h1{margin-bottom:18px;margin-right:0;font-size:41px;line-height:1.3}.welcome-copy p{font-size:12px}.welcome-actions{margin-top:22px}.welcome-art{width:76%;margin:9px auto 24px}.joinery-print{max-height:290px}.welcome-steps{grid-template-columns:1fr;gap:15px;padding-top:21px}.welcome-steps>div>div{flex-direction:row;align-items:baseline;gap:12px}.welcome-steps strong{font-size:17px}.welcome-steps small,.welcome-local{font-size:10px}.topbar .edit-tools button{width:29px;min-width:29px;height:34px}.topbar .top-actions button{min-width:29px}.topbar .brand{gap:5px}}@media (width<=370px){.brand-name{display:none}.topbar{grid-template-columns:minmax(0,1fr) auto}.welcome-copy h1{font-size:36px}}@media (height<=730px) and (width>=901px){.empty-canvas{padding-top:111px;padding-bottom:116px}.welcome-composition{min-height:340px}.joinery-print{max-height:330px}.welcome-copy{padding:22px 0}.welcome-copy h1{margin:12px -55px 14px 0;font-size:40px}.welcome-actions{margin-top:18px}}.sheet-outline{fill:var(--paper-light);stroke:var(--ink)}.remnant-outline{fill:var(--ink);fill-opacity:.04;stroke:var(--muted)}.part-outline{fill:#dfe6f8;stroke:var(--ink)}.part-outline.thin{fill:#edf0f8}.selected .part-outline{fill:var(--accent-soft);stroke:var(--accent)}.pocket-outline{fill:#b7c7ef;stroke:var(--ink)}.selected .pocket-outline{fill:#f0c0a6;stroke:var(--accent)}.hole-outline{fill:var(--paper-light);stroke:var(--ink)}.selected .hole-outline{stroke:var(--accent)}.thumbnail .part-outline{fill:var(--ink-soft)}.thumbnail .pocket-outline{fill:#b7c7ef}.thumbnail .hole-outline{fill:var(--paper-light)}.analysis-panel .panel-heading,.inspector .panel-heading,.assembly-inspector .panel-heading{flex-shrink:0;height:57px;min-height:57px;padding:12px 18px}.analysis-body,.inspector-body{overscroll-behavior:contain;flex:1;min-height:0;padding:19px 18px;overflow-y:auto}.inspector{flex-direction:column;padding-bottom:0;display:flex;overflow:hidden}.information-footer{border-top:1px solid var(--line);background:var(--paper);color:var(--muted);flex-shrink:0;margin:0;padding:11px 18px;font-size:10px;line-height:1.6}.placement-count{color:var(--muted);margin:0;padding:14px 0 22px;font-size:11px}.analysis-body h3.analysis-group-title{color:var(--muted);margin:0 0 8px;font:500 12px/1.5 -apple-system,PingFang SC,sans-serif}.sheet-analysis-list{gap:0}.compact-sheet-analysis{border-bottom:1px solid var(--ink-soft);padding:13px 0}.compact-sheet-analysis:last-child{border-bottom:0}.compact-sheet-analysis summary{cursor:pointer;list-style:none}.compact-sheet-analysis summary::-webkit-details-marker{display:none}.panel-disclosure summary::-webkit-details-marker{display:none}.sheet-summary-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.sheet-summary-row strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.sheet-summary-row>span{font:17px var(--latin-font);white-space:nowrap}.sheet-summary-row i{color:var(--muted);margin-left:7px;font:12px sans-serif;display:inline-block}.compact-sheet-analysis[open] .sheet-summary-row i{transform:rotate(90deg)}.compact-sheet-analysis .utilization-track{height:2px;margin:8px 17px 0 0}.analysis-stats{border:0;margin:10px 0 0;padding:4px 0;font-size:12px}.analysis-stats>div{gap:8px;padding:5px 0}.analysis-stats dd{overflow-wrap:anywhere;text-align:right;max-width:65%}.panel-disclosure{border-top:1px solid var(--line);margin-top:21px;padding-top:14px}.panel-disclosure>summary{cursor:pointer;color:var(--ink);justify-content:space-between;align-items:center;font-size:12px;font-weight:400;list-style:none;display:flex}.panel-disclosure>summary:after{content:"＋";color:var(--muted);font-size:14px}.panel-disclosure[open]>summary:after{content:"−"}.panel-disclosure summary:focus-visible,.compact-sheet-analysis summary:focus-visible{outline-offset:-2px;outline:2px solid}.analysis-definition{color:var(--muted);margin:12px 0 0;font-size:11px;line-height:1.9}.analysis-warning{border-left:2px solid var(--accent);color:var(--accent-dark);text-align:left;flex-direction:column;align-items:flex-start;gap:4px;margin:0 0 18px;padding:11px 12px;font-size:12px;display:flex}.analysis-warning>span{font-size:11px}.analysis-tabs{border-bottom:1px solid var(--line);margin-bottom:16px;display:flex}.analysis-tabs button,.analysis-tabs button.active,.analysis-tabs button.active:hover{color:var(--ink);background:0 0;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:8px 0;font-size:12px}.analysis-tabs button.active,.analysis-tabs button.active:hover{border-bottom-color:var(--ink)}.comparison-intro{color:var(--muted);margin:0 0 12px;font-size:12px}.comparison-baseline{align-items:center;gap:8px;margin-bottom:10px;font-size:11px;display:flex}.comparison-baseline select{width:106px;padding:4px 7px;font-size:11px}.comparison-caveat{margin:12px 0;font-size:11px;line-height:1.8}.compact-comparison{white-space:normal;font-size:11px}.compact-comparison th,.compact-comparison td{padding:10px 2px}.compact-comparison td:last-child{font-weight:600}.comparison-insight{border-top:1px solid var(--ink);margin:16px 0;padding:10px 0;font-size:11px}.comparison-insight strong{font:24px var(--latin-font);margin-top:5px;display:block}.candidate-callout{background:var(--ink-soft);margin-top:20px;padding:11px 12px;font-size:11px}.candidate-callout button{min-height:0;padding:5px 0 0;font-size:12px;display:flex}.comparison-details{margin-top:14px;padding-top:12px}.part-summary{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:14px;margin-bottom:22px;display:grid}.part-summary .inspector-preview{border:1px solid var(--line);background:var(--paper);height:124px;padding:8px}.part-summary-text{min-width:0}.part-summary h2{overflow-wrap:anywhere;margin:0 0 3px;font-size:25px}.part-summary .part-dimensions{margin:0;padding:0;font-size:12px}.part-summary .part-dimensions small{font-size:11px}.part-material{flex-wrap:wrap;gap:7px;margin-bottom:15px;display:flex}.part-material span{background:var(--ink-soft);overflow-wrap:anywhere;padding:3px 8px;font-size:11px}.part-location{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;margin-bottom:19px;padding:14px 0;font-size:12px;display:flex}.part-location>span{color:var(--muted);flex-shrink:0}.part-location>strong{overflow-wrap:anywhere;text-align:right}.inspector-body .inspector-actions{margin:0}.inspector-actions button{border:1px solid var(--line);background:0 0;min-height:34px;font-size:12px}.inspector-readonly{color:var(--muted);margin:0 0 16px;font-size:12px;line-height:1.8}.inspector-body .pending-placement{border:1px solid #c44a2433;margin:0 0 19px}.inspector-more{margin-top:13px}.inspector-operations{background:var(--paper);margin-top:10px;padding:13px 12px}.inspector-operations .duplicate-controls{align-items:center;gap:8px;margin:0}.inspector-operations .duplicate-controls label{align-items:center;gap:8px;width:auto;font-size:11px;display:flex}.inspector-operations input{width:57px;margin:0;padding:5px}.inspector-operations button{margin-left:auto;font-size:12px}.inspector-operations .delete-part{color:var(--accent);margin:9px 0 0;padding:7px 0}.analysis-empty .analysis-body{text-align:center}.overview-empty-illustration{place-items:center;height:150px;display:grid}.overview-empty-illustration svg{width:70px;height:84px}.analysis-empty .analysis-body h3{margin:10px 0;font-size:22px}.analysis-empty .hint{margin-top:10px;font-size:12px;line-height:2}.analysis-empty .analysis-body>button{border:1px solid var(--line);width:max-content;margin:22px auto 0;font-size:12px;display:flex}.statusbar{gap:18px}.statusbar>span{text-align:right;padding-right:0}@media (width<=900px){.workspace-surface.mobile-info>.inspector{display:flex}.panel-disclosure>summary,.compact-sheet-analysis summary,.analysis-tabs button{min-height:40px}.statusbar{gap:10px;padding:0}}.workbench-tooltip{z-index:1000;border:1px solid var(--ink);background:var(--paper-light);width:max-content;max-width:min(320px,100vw - 24px);max-height:calc(100dvh - 24px);box-shadow:2px 3px 0 var(--shadow);color:var(--ink);white-space:pre-line;overflow-wrap:anywhere;pointer-events:none;border-radius:2px;padding:8px 11px;font:12px/1.65 -apple-system,PingFang SC,sans-serif;position:fixed}.workbench-tooltip:before{content:"";left:var(--tooltip-arrow);border-top:1px solid var(--ink);border-left:1px solid var(--ink);background:var(--paper-light);width:6px;height:6px;position:absolute;top:-4px;transform:translate(-50%)rotate(45deg)}.workbench-tooltip[data-above=true]:before{top:auto;bottom:-4px;transform:translate(-50%)rotate(225deg)}.part-row-copy{flex:1}.part-row-copy>strong,.part-row-copy>span,.part-row-copy>small,.resource-stock>strong,.resource-stock>small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.canvas-tools{bottom:44px;left:calc((100% + var(--canvas-fit-left) - var(--canvas-fit-right)) / 2);z-index:4;box-shadow:0 3px 10px var(--shadow);border-color:#2146b54d;border-radius:4px;gap:4px;padding:6px;position:absolute;transform:translate(-50%)}.canvas-tools button{border-radius:2px;flex-shrink:0;width:32px;height:32px;min-height:32px;padding:7px}.canvas-tools button svg{width:16px;height:16px}.canvas-tools button.corner-relief-tool{white-space:nowrap;gap:6px;width:auto;padding:7px 10px;font-size:12px}.canvas-tools button.active,.canvas-tools button.active:hover,.canvas-tools button.active:focus-visible{background:var(--ink);color:var(--paper-light)}.canvas-tools button[aria-label=磁吸].active{background:var(--ink-soft);color:var(--ink)}.tool-divider{background:var(--line);width:1px;height:18px;margin:0 2px}@media (width>=901px) and (width<=1100px){.canvas-tools{gap:2px}.canvas-tools button{width:30px;padding:6px}}@media (width<=900px){.canvas-tools button{width:40px;height:40px;min-height:40px}.workspace-surface:has(.candidate-bar){--canvas-fit-top:236px}.workspace-surface:not(.mobile-canvas) .canvas-tools,.workspace-surface:not(.mobile-canvas) .view-switch,.workspace-surface:not(.mobile-canvas) .zoom-controls,.workspace-surface:not(.mobile-canvas) .candidate-bar{display:none}}.analysis-mode{color:var(--muted);white-space:nowrap;font-size:12px}.topbar:has(>.workspace-mode-switch){grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:12px}.topbar:has(>.workspace-mode-switch)>.brand{overflow:hidden}.workspace-mode-switch{border:1px solid var(--line);background:var(--paper-light);justify-self:center;align-items:center;gap:2px;padding:2px;display:flex}.topbar .workspace-mode-switch button{white-space:nowrap;width:104px;color:var(--muted);flex:none;justify-content:center;font-size:12px}.workspace-mode-switch button.active,.workspace-mode-switch button.active:hover{color:var(--ink);background:var(--ink-soft)}.workspace-mode-switch svg{flex-shrink:0}.workspace-mode-short{display:none}.topbar:has(>.workspace-mode-switch)>.top-actions{justify-self:end;min-width:max-content}@media (width<=600px){.topbar:has(>.workspace-mode-switch){column-gap:4px}.topbar .workspace-mode-switch button{width:34px;min-width:34px;padding:4px}.workspace-mode-switch .workspace-mode-label,.workspace-mode-switch svg{display:none}.workspace-mode-short{display:inline}.topbar:has(>.workspace-mode-switch) .top-actions button{width:30px;min-width:30px}}.candidate-bar,.candidate-bar button{font-size:12px}.check-section+.check-section{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.check-section h3{font-size:var(--text-body);margin:0;font-weight:600}.check-section>.primary{width:100%;margin-top:8px}.search-progress-label{text-align:left;flex-direction:column;gap:4px;display:flex}.search-progress-label small{color:var(--muted);font-size:11px;line-height:1.5}.efficiency-chart{border-bottom:1px solid var(--line);margin:0 0 18px;padding-bottom:14px}.efficiency-heading,.efficiency-patience{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.efficiency-heading{font-size:13px}.efficiency-heading small{color:var(--muted);font-size:10px;font-weight:400}.efficiency-heading strong{font-variant-numeric:tabular-nums;font-size:20px}.efficiency-caption{color:var(--muted);margin:2px 0 8px;font-size:10px}.efficiency-chart svg{width:100%;height:auto;display:block;overflow:visible}.efficiency-chart svg text{fill:var(--muted);font-size:9px}.efficiency-grid{stroke:var(--line);stroke-width:1px;stroke-dasharray:2 4}.efficiency-line{stroke:var(--ink);stroke-width:2px;fill:none}.efficiency-dot{fill:var(--ink)}.efficiency-patience{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:5px;font-size:11px}.search-settings{border:0;min-width:0;margin:0;padding:0}.candidate-bar.is-searching{border-color:var(--accent);border-left-width:3px;padding-bottom:16px;overflow:hidden}.candidate-bar.is-searching:after{content:"";background:var(--accent);width:30%;height:2px;animation:1.8s ease-in-out infinite search-activity;position:absolute;bottom:0;left:0}.search-heading{color:var(--accent-dark);align-items:center;gap:7px;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.search-spinner{flex-shrink:0;animation:1.2s linear infinite search-spin}.canvas-tools.is-searching{border-color:var(--line)}.canvas-tools.is-searching button:disabled,.canvas-tools.is-searching button.active:disabled{color:var(--muted);opacity:.4;cursor:not-allowed;background:0 0}.tools-lock{border-right:1px solid var(--line);color:var(--muted);white-space:nowrap;align-items:center;gap:5px;margin-right:2px;padding:0 8px 0 4px;font-size:11px;display:flex}.drawing.is-searching .stock-svg,.drawing.is-searching .part{cursor:default}.drawing.is-searching .sheet-outline{stroke:var(--accent);stroke-dasharray:18 10;animation:1.8s linear infinite search-outline}.trial-part-enter{animation:.24s ease-out trial-enter}@keyframes search-spin{to{transform:rotate(360deg)}}@keyframes search-activity{0%{transform:translate(-100%)}to{transform:translate(334%)}}@keyframes search-outline{to{stroke-dashoffset:-28px}}@keyframes trial-enter{0%{opacity:.15}to{opacity:1}}@media (prefers-reduced-motion:reduce){.search-spinner,.candidate-bar.is-searching:after,.drawing.is-searching .sheet-outline,.trial-part-enter{animation:none}}.import-review-section{border-bottom:1px solid var(--line);margin:12px 0 16px;padding-bottom:10px}.import-review-section>summary{cursor:pointer;font-size:14px}.import-review-section>summary span{color:var(--muted);margin-left:8px;font-size:13px}.import-review-section[open]>summary{margin-bottom:16px}.import-pending-preview{margin-top:20px}.import-pending-preview h3{margin:0 0 12px}.import-pending-metadata{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.import-pending-metadata h3 span{color:var(--muted);font-size:12px;font-weight:400}.import-pending-bulk{text-align:left;width:100%;margin-bottom:12px;font-size:12px}.import-pending-part{border-bottom:1px solid var(--line);padding:12px 0}.import-pending-part>strong,.import-pending-part>small{overflow-wrap:anywhere;display:block}.import-pending-part>small{color:var(--muted);margin:4px 0 10px;font-size:12px}.workspace{--workspace-rail-width:248px;--preview-information-width:304px}.workspace-surface{--left-rail-width:var(--workspace-rail-width);--canvas-fit-left:16px;--canvas-fit-right:16px;--canvas-fit-top:96px;--canvas-fit-bottom:140px}.workspace-surface.workspace-initial{--canvas-fit-top:124px}.assembly-workspace{--assembly-left:var(--workspace-rail-width)}.workspace .workbench-preview{inset:68px 14px 36px calc(var(--workspace-rail-width) + 28px);border:1px solid var(--line);position:absolute;overflow:hidden;container-type:inline-size}.preview-information{width:var(--preview-information-width);z-index:3;flex-direction:column;max-width:calc(100% - 32px);min-height:0;display:flex;position:absolute;top:16px;bottom:156px;right:16px}.workbench-preview .preview-information>:is(.inspector,.analysis-panel,.assembly-inspector){flex-direction:column;flex:1;width:100%;min-height:0;max-height:none;display:flex;position:relative;inset:auto}.preview-information:has(>.assembly-inspector.is-compact){width:224px;max-height:calc(100% - 172px);bottom:auto}.preview-information:empty{display:none}.preview-heading{z-index:1;pointer-events:none;max-width:calc(100% - var(--preview-information-width) - 60px);flex-direction:column;gap:3px;display:flex;position:absolute;top:17px;left:20px}.preview-heading>span:first-child{font-family:var(--latin-font);letter-spacing:.15em;font-size:11px}.preview-heading strong{font-family:var(--display-font);white-space:nowrap;text-overflow:ellipsis;font-size:22px;line-height:1.35;overflow:hidden}.preview-heading>span{color:var(--muted);font-size:11px}.workbench-preview .parts-drawing-stage{padding:20px calc(var(--preview-information-width) + 48px) 140px 20px}.workspace .workbench-preview .canvas-tools{border-radius:2px;gap:2px;padding:5px;bottom:16px;left:50%;box-shadow:0 2px #2146b507}.workbench-preview .canvas-tools button{width:34px;height:34px;min-height:34px}.workbench-preview .canvas-tools button.corner-relief-tool{width:auto}.workbench-preview .canvas-tools button.active,.workbench-preview .canvas-tools button.active:hover,.workbench-preview .canvas-tools button.active:focus-visible{background:var(--ink-soft);color:var(--ink)}.workbench-preview .view-switch{gap:2px;padding:3px;top:auto;bottom:66px;left:50%}.workbench-preview .view-switch button{min-height:28px;padding:5px 7px;font-size:11px}.workbench-preview .view-switch button.active,.workbench-preview .view-switch button.active:hover{background:var(--ink-soft);color:var(--ink)}.workspace .workbench-preview .zoom-controls{bottom:16px;right:16px}.workbench-preview .candidate-bar{top:94px;left:16px;right:calc(var(--preview-information-width) + 48px);width:auto;max-width:none;transform:none}.workspace-surface:has(.candidate-bar){--canvas-fit-top:154px}.workbench-preview .assembly-scene-legend{right:calc(var(--preview-information-width) + 40px)}.workbench-preview:has(.assembly-inspector.is-compact) .assembly-scene-legend{right:258px}.workspace .workbench-preview .assembly-view-cube{width:112px;top:auto;bottom:13px;right:12px}@container (width<=700px){.assembly-tools button span{display:none}}@media (width<=900px){.workspace .workbench-preview{inset:134px 14px 36px}.workspace-surface{--canvas-fit-top:96px;--canvas-fit-bottom:164px}:is(.workbench-preview .preview-information,.workbench-preview .preview-information:has(>.assembly-inspector.is-compact)){width:auto;max-width:none;max-height:none;display:none;inset:0}.workspace-surface.mobile-info .preview-information,.assembly-workspace.mobile-info .preview-information{display:flex}.workbench-preview .preview-information>:is(.inspector,.analysis-panel,.assembly-inspector){box-shadow:none;border:0}.assembly-workspace.mobile-info .assembly-canvas{visibility:visible}.workspace-surface.mobile-info .workbench-preview>:not(.preview-information),.assembly-workspace.mobile-info .workbench-preview>:not(.preview-information){visibility:hidden;pointer-events:none}.workspace-surface.mobile-resources .workbench-preview{visibility:hidden}.preview-heading{max-width:75%}.workbench-preview .parts-drawing-stage{padding:20px 16px 164px}.workspace .workbench-preview .canvas-tools button{width:38px;height:38px;min-height:38px}.workspace .workbench-preview .canvas-tools button.corner-relief-tool{width:auto}.workspace .workbench-preview .zoom-controls{bottom:114px;right:12px}.workbench-preview .candidate-bar{left:12px;right:12px}:is(.workbench-preview .assembly-scene-legend,.workbench-preview:has(.assembly-inspector.is-compact) .assembly-scene-legend){right:10px}.workspace .workbench-preview .assembly-view-cube{width:96px;top:75px;bottom:auto;right:7px}}
