.nesting-app{background:#f6f7f9;border-inline:1px solid #e5e7eb;grid-template-columns:356px minmax(0,1fr);max-width:1680px;min-height:calc(100vh - 65px);margin:0 auto;display:grid}.nesting-sidebar{background:#fff;border-right:1px solid #e2e5e9;max-height:calc(100vh - 65px);padding:24px 20px;position:sticky;top:65px;overflow-y:auto}.sidebar-heading,.setup-title,.parts-list-heading,.part-row-header,.workspace-toolbar,.status-block,.workspace-actions,.progress-row,.drawing-labels,.dialog-actions{align-items:center;display:flex}.sidebar-heading,.setup-title,.workspace-toolbar,.drawing-labels{justify-content:space-between}.sidebar-heading{margin-bottom:24px}.sidebar-heading h2{letter-spacing:-.03em;margin:3px 0 0;font-size:1.3rem}.section-kicker{color:#6b7280;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:650}.part-total{color:#4b5563;border:1px solid #d9dde3;border-radius:999px;padding:5px 9px;font-size:.74rem;font-weight:650}.setup-section{border-top:1px solid #e7e9ed;padding:21px 0}.setup-section h3{letter-spacing:.01em;margin:0;font-size:.84rem}.setup-title{margin-bottom:12px}.setup-title>span{color:#8a929e;font-size:.72rem}.quiet-action{color:#4f46e5;cursor:pointer;font:inherit;background:0 0;border:0;padding:6px 0;font-size:.74rem;font-weight:650}.quiet-action:disabled{color:#adb2ba;cursor:not-allowed}.file-input,.nesting-app .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.drop-zone{color:#737b87;text-align:center;border:1px dashed #c8ccd3;border-radius:9px;justify-items:center;gap:7px;padding:25px 14px;transition:border-color .15s,background .15s;display:grid}.drop-zone.is-dragging{background:#f7f7ff;border-color:#4f46e5}.drop-zone svg,.workspace-actions svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:20px;height:20px}.drop-zone strong{color:#20242a;font-size:.86rem}.drop-zone span{font-size:.74rem}.drop-zone .compact{margin-top:7px}.parts-list-heading{gap:9px;margin-bottom:10px}.parts-list-heading>span{color:#626a75;flex:1;min-width:0;font-size:.7rem;font-weight:600}.parts-listbox{gap:8px;min-height:24px;padding:1px;display:grid}.parts-list-empty-space{min-height:20px}.part-row{cursor:default;background:#fbfbfc;border:1px solid #e1e4e9;border-radius:8px;outline:none;padding:10px;transition:border-color .12s,background .12s,box-shadow .12s;position:relative}.part-row:before{content:"";background:0 0;border-radius:0 3px 3px 0;width:3px;position:absolute;inset:6px auto 6px -1px}.part-row:hover{border-color:#cbd0d8}.part-row:focus-visible{border-color:#7068e8;box-shadow:0 0 0 3px #4f46e524}.part-row.is-selected{background:#f4f3ff;border-color:#9892ef}.part-row.is-selected:before{background:#4f46e5}.part-row.has-error{background:snow;border-color:#e9a7ad}.part-row-header{gap:8px;min-width:0}.part-name{flex:1;gap:2px;min-width:0;display:grid}.part-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.part-name span{overflow-wrap:anywhere;color:#7b838e;font-size:.66rem}.file-type{color:#4f46e5;letter-spacing:.04em;background:#eae9ff;border-radius:4px;flex:none;padding:5px 6px;font-size:.56rem;font-weight:750}.remove-file{color:#737b87;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;width:30px;height:30px;font-size:1.15rem}.remove-file:hover:not(:disabled){color:#16181c;background:#e8e8f3}.selection-checkbox{cursor:pointer;flex:none;place-items:center;width:24px;height:24px;position:relative;display:inline-grid!important}.selection-checkbox input{z-index:1;opacity:0;cursor:pointer;position:absolute;inset:3px;width:18px!important;height:18px!important}.checkbox-shape{background:#fff;border:1px solid #aeb4be;border-radius:4px;width:18px;height:18px}.selection-checkbox input:checked+.checkbox-shape,.selection-checkbox input:indeterminate+.checkbox-shape{background:#4f46e5;border-color:#4f46e5}.selection-checkbox input:checked+.checkbox-shape:after{content:"";border-bottom:2px solid #fff;border-left:2px solid #fff;width:8px;height:4px;display:block;transform:translate(4px,4px)rotate(-45deg)}.selection-checkbox input:indeterminate+.checkbox-shape:after{content:"";background:#fff;border-radius:2px;width:8px;height:2px;display:block;transform:translate(4px,7px)}.selection-checkbox input:focus-visible+.checkbox-shape{outline-offset:2px;outline:3px solid #4f46e540}.selection-checkbox input:disabled+.checkbox-shape{opacity:.5;cursor:not-allowed}.part-controls{border-top:1px solid #e2e4eb;grid-template-columns:.68fr 1.32fr;gap:9px;margin-top:11px;padding-top:10px;display:grid}.part-controls .conditional-field{grid-column:1/-1}.nesting-app label{color:#59616c;gap:5px;font-size:.69rem;font-weight:600;display:grid}.nesting-app input,.nesting-app select{color:#1d2025;width:100%;min-width:0;height:38px;font:inherit;background:#fff;border:1px solid #ccd1d8;border-radius:6px;outline:0;padding:0 9px;font-size:.76rem;transition:border-color .12s,box-shadow .12s}.nesting-app input:focus,.nesting-app select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.nesting-app input:disabled,.nesting-app select:disabled{color:#8f96a0;cursor:not-allowed;background:#f1f2f4}.nesting-app input[aria-invalid=true]{border-color:#c84b56}.nesting-app small{color:#b42332;font-size:.65rem;font-weight:500;line-height:1.35}.selection-toolbar{background:#f6f5ff;border:1px solid #d9d6ff;border-radius:8px;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:10px;padding:10px;display:grid}.selection-toolbar>strong{color:#312e81;grid-column:1/-1;font-size:.72rem}.toolbar-action{color:#4f46e5;cursor:pointer;text-align:left;background:0 0;border:0;min-height:34px;padding:0;font-size:.69rem;font-weight:650}.toolbar-action:last-child{text-align:right}.toolbar-action.danger-text{color:#a32e3b}.material-fields{grid-template-columns:1fr 1fr;gap:12px 9px;display:grid}.unit-field{align-items:center;display:flex;position:relative}.unit-field input{padding-right:35px}.unit-field>span{color:#8b929c;pointer-events:none;font-size:.65rem;font-weight:550;position:absolute;right:9px}.field-error .unit-field input{border-color:#c84b56}.optimization-section{padding-bottom:0}.optimization-section h3{margin-bottom:12px}.primary-button,.secondary-button,.stop-button,.danger-button{cursor:pointer;min-height:44px;font:inherit;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:0 15px;font-size:.79rem;font-weight:650;transition:transform .12s,background .12s,border-color .12s;display:inline-flex}.primary-button{color:#fff;background:#4f46e5;border:1px solid #4f46e5}.primary-button:hover:not(:disabled){background:#4338ca;border-color:#4338ca;transform:translateY(-1px)}.secondary-button{color:#2f343b;background:#fff;border:1px solid #ccd1d8}.secondary-button:hover:not(:disabled){background:#f4f5f7;border-color:#b9bec6}.stop-button,.danger-button{color:#a32e3b;background:#fff;border:1px solid #b53a47}.stop-button:hover,.danger-button:hover{background:#fff3f4}.primary-button:disabled,.secondary-button:disabled,.stop-button:disabled{opacity:.42;cursor:not-allowed;transform:none}.compact{min-height:36px;padding-inline:12px}.optimize-button{width:100%}.configuration-note{color:#858d98;text-align:center;margin:9px 0 0;font-size:.67rem;line-height:1.45}.inline-message{border-radius:6px;margin:0 0 10px;padding:9px 10px;font-size:.71rem;line-height:1.45}.error-message{color:#9e2633;background:#fff3f4;border:1px solid #f0c4c8}.nesting-workspace{min-width:0;padding:20px}.workspace-toolbar{gap:18px;min-height:44px;margin-bottom:14px}.status-block{gap:10px;min-width:0}.status-block>div{gap:2px;min-width:0;display:grid}.status-block strong{font-size:.83rem}.status-block span:not(.status-dot){color:#717986;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.status-dot{background:#aeb4bd;border-radius:50%;flex:none;width:8px;height:8px;box-shadow:0 0 0 4px #aeb4bd29}.status-validating,.status-running{background:#4f46e5;animation:1s ease-in-out infinite alternate status-pulse;box-shadow:0 0 0 4px #4f46e51f}.status-completed{background:#168653;box-shadow:0 0 0 4px #1686531f}.status-stopped,.status-error{background:#c2414e;box-shadow:0 0 0 4px #c2414e1f}.workspace-actions{flex:none;gap:7px}.workspace-actions button{min-height:40px}.workspace-actions svg{width:16px;height:16px}.metrics-bar{background:#fff;border:1px solid #e1e4e8;border-radius:8px 8px 0 0;grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.metric{border-right:1px solid #e7e9ed;min-width:0;padding:12px 15px}.metric:last-child{border-right:0}.metric span{color:#7b838e;margin-bottom:4px;font-size:.64rem;font-weight:600;display:block}.metric strong{font-size:.92rem;font-weight:650}.progress-row{background:#fff;border:1px solid #e1e4e8;border-radius:8px 8px 0 0;gap:12px;padding:9px 14px}.progress-track{background:#e7e8ec;border-radius:999px;flex:1;height:3px;overflow:hidden}.progress-track span{border-radius:inherit;background:#4f46e5;height:100%;transition:width .18s;display:block}.progress-row strong{color:#646c77;text-align:right;width:32px;font-size:.67rem}.elapsed-time{color:#747c87;text-align:right;min-width:78px;font-size:.67rem}.preview-stage{background-color:#fafbfc;background-image:linear-gradient(#eef0f3 1px,#0000 1px),linear-gradient(90deg,#eef0f3 1px,#0000 1px);background-size:24px 24px;border:1px solid #e1e4e8;border-radius:8px;place-items:center;min-height:calc(100vh - 143px);padding:28px;display:grid;overflow:hidden}.metrics-bar+.preview-stage,.progress-row+.preview-stage{border-top:0;border-radius:0 0 8px 8px}.metrics-bar+.preview-stage{min-height:calc(100vh - 208px)}.app-empty-state,.ready-state{text-align:center;max-width:490px}.app-empty-state h2,.ready-state h2{letter-spacing:-.035em;margin:0 0 9px;font-size:clamp(1.4rem,3vw,2rem)}.app-empty-state p,.ready-state p{color:#707884;margin:0 auto 20px;font-size:.86rem;line-height:1.55}.ready-state span{color:#4f46e5;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;font-size:.69rem;font-weight:700;display:inline-block}.preview-result{width:100%;height:calc(100vh - 265px);min-height:480px;position:relative}.preview-controls{z-index:2;background:#fff;border:1px solid #dfe2e7;border-radius:8px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;top:0;right:0;box-shadow:0 4px 14px #1e232d0d}.preview-controls button{color:#424852;cursor:pointer;background:0 0;border:0;border-radius:5px;min-height:34px;padding:0 9px;font-size:.7rem;font-weight:620}.preview-controls button:hover{background:#f0f1f4}.preview-controls span{color:#737b87;text-align:center;min-width:42px;font-size:.66rem}.drawing-viewport{place-items:center;width:100%;height:100%;padding:50px 22px 22px;display:grid;overflow:auto}.drawing-wrap{transform-origin:50%;width:min(100%,860px);transition:transform .14s}.drawing-labels{color:#747c87;margin-bottom:7px;font-size:.66rem}.nesting-drawing{filter:drop-shadow(0 10px 18px #1e232d14);width:100%;max-height:calc(100vh - 330px);overflow:visible}.material-outline{fill:#fff;stroke:#aeb4bd;stroke-width:2px;vector-effect:non-scaling-stroke}.placement polygon{stroke:#333842;stroke-width:1.2px;vector-effect:non-scaling-stroke}.placement text{fill:#242832;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:14px;font-weight:650}.placement-0 polygon{fill:#dfe7ff}.placement-1 polygon{fill:#e7e1fa}.placement-2 polygon{fill:#dcefe9}.placement-3 polygon{fill:#f1e8d7}.placement-4 polygon{fill:#e1e9ef}.placement-5 polygon{fill:#eee0e6}.used-line{stroke:#4f46e5;stroke-width:1.5px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.result-warning{color:#704b16;background:#fffaf0;border:1px solid #efd5ae;border-radius:7px;align-items:baseline;gap:12px;margin-top:10px;padding:10px 13px;font-size:.73rem;display:flex}.result-warning span{color:#866b43}.export-status{color:#167148;text-align:right;margin:9px 0 0;font-size:.72rem}.remove-dialog{color:#1b1d21;background:#fff;border:1px solid #dfe2e7;border-radius:10px;width:min(440px,100% - 32px);padding:26px;box-shadow:0 22px 65px #14182033}.remove-dialog::backdrop{background:#181b216b}.remove-dialog h2{letter-spacing:-.03em;margin:0;font-size:1.3rem}.remove-dialog p{color:#68707b;margin:10px 0 24px;font-size:.85rem;line-height:1.6}.dialog-actions{justify-content:flex-end;gap:8px}@keyframes status-pulse{to{opacity:.45}}@media (width<=1080px){.nesting-app{grid-template-columns:330px minmax(0,1fr)}.metrics-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.metric:nth-child(3){border-right:0}.metric:nth-child(-n+3){border-bottom:1px solid #e7e9ed}}@media (width<=760px){.nesting-app{border:0;display:block}.nesting-sidebar{border-bottom:1px solid #e2e5e9;border-right:0;max-height:none;padding:22px 18px;position:static}.nesting-workspace{padding:14px}.preview-stage,.metrics-bar+.preview-stage{min-height:520px;padding:14px}.preview-result{height:500px;min-height:0}.drawing-viewport{padding-inline:5px}.preview-controls{width:100%;margin-bottom:8px;position:static;overflow-x:auto}.preview-controls button{white-space:nowrap;min-height:42px}.drawing-viewport{height:calc(100% - 55px)}.workspace-toolbar{flex-direction:column;align-items:flex-start}.workspace-actions{width:100%}.workspace-actions .primary-button{margin-left:auto}}@media (width<=520px){.material-fields,.part-controls{grid-template-columns:1fr}.part-controls .conditional-field{grid-column:auto}.selection-toolbar{grid-template-columns:1fr}.selection-toolbar>strong{grid-column:auto}.toolbar-action:last-child{text-align:left}.workspace-actions{grid-template-columns:1fr;display:grid}.workspace-actions .primary-button{margin-left:0}.metrics-bar{grid-template-columns:1fr 1fr}.metric,.metric:nth-child(3){border-bottom:1px solid #e7e9ed;border-right:1px solid #e7e9ed}.metric:nth-child(2n){border-right:0}.metric:last-child{border-bottom:0}.progress-row{flex-wrap:wrap}.progress-track{flex-basis:calc(100% - 48px)}.elapsed-time{text-align:left;width:100%}.result-warning{flex-direction:column;align-items:flex-start;gap:3px}}@media (prefers-reduced-motion:reduce){.status-validating,.status-running{animation:none}.primary-button,.secondary-button,.drop-zone,.progress-track span,.drawing-wrap{transition:none}}
