:root{--ink:#203747;--muted:#768893;--blue:#176b98;--blue-dark:#155879;--line:#dce5eb;--paper:#fff;--surface:#f5f8fb;--mint:#247c68;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--surface);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}.header{height:90px;max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 64px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-size:21px;letter-spacing:-.5px}.brand svg{width:34px;height:34px;fill:var(--blue)}.brand strong{font-weight:650}.beta{font-size:9px;letter-spacing:1.2px;font-weight:700;background:#e1ebf1;padding:3px 6px;border-radius:4px;color:#54788c;margin-left:3px}.header-right{display:flex;align-items:center;gap:24px}.header-note{font-size:12px;color:var(--muted)}main{max-width:1200px;margin:0 auto;padding:0 30px}.intro{display:flex;justify-content:space-between;padding:57px 0 38px;align-items:center}.eyebrow{font-size:10px;letter-spacing:1.9px;font-weight:700;color:#648194;margin:0 0 12px}.intro h1{font-size:clamp(36px,4vw,54px);font-weight:580;letter-spacing:-2px;line-height:1.12;margin:0 0 20px}.lead{color:#6d808e;font-size:16px;line-height:1.7;margin:0}.intro-note{border-left:1px solid var(--line);padding:5px 0 5px 35px;margin-right:15px;font-size:16px}.intro-note p{margin:5px 0 12px;line-height:1.5}.intro-note>span:last-child{font-size:11px;color:var(--muted)}.small-mark{font-size:32px;color:#78afc8}.steps{display:flex;align-items:center;gap:24px;font-size:12px;margin:0 0 24px}.steps a{color:#728490;text-decoration:none;white-space:nowrap}.steps a.current{color:var(--blue)}.steps b{font-size:10px;margin-right:9px;font-weight:600;color:#7596aa}.steps>span{height:1px;background:var(--line);flex:1}.upload-section{margin-bottom:37px}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;height:218px;border:1.5px dashed #aec6d5;border-radius:15px;background:linear-gradient(115deg,#edf5fa,#f8fcfe);font:inherit;color:var(--ink);cursor:pointer;transition:.18s}.dropzone:hover,.dropzone.drag-over{border-color:var(--blue);background:#e6f3fa;box-shadow:0 0 0 5px #176b9807}.dropzone:disabled{cursor:wait;opacity:.7}.drop-icon{display:grid;place-items:center;width:47px;height:47px;border-radius:12px;background:white;box-shadow:0 4px 12px #1947660a;margin-bottom:8px}.drop-icon svg{width:31px;height:31px;stroke:var(--blue);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.drop-title{font-size:18px;font-weight:600;letter-spacing:-.3px}.drop-subtitle{font-size:13px;color:#6c8798}.drop-subtitle u{color:var(--blue);text-underline-offset:3px}.drop-limits{margin-top:9px;font-size:11px;color:#8a9da9}.upload-status{font-size:12px;color:var(--blue);min-height:0;padding:0 3px}.upload-status:not(:empty){padding-top:9px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:32px;align-items:start}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.section-heading .eyebrow{margin-bottom:5px}h2{font-size:24px;letter-spacing:-.7px;font-weight:600;margin:0}h3{font-size:14px;font-weight:600;margin:0}.count{font-size:13px;vertical-align:middle;background:#e4edf3;padding:3px 8px;border-radius:6px;margin-left:6px;color:#51798e}.subtle{color:var(--muted);font-size:12px}.empty-parts{border:1px solid var(--line);border-radius:13px;min-height:264px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:#f8fafc}.empty-parts p{font-size:14px;margin:10px 0 5px;color:#687f8f}.empty-parts>span:last-child{font-size:12px;line-height:1.8;color:#91a0aa}.empty-symbol{font-size:45px;color:#abc0cc;line-height:1}.parts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.part-card{overflow:hidden;border:1px solid var(--line);background:white;border-radius:12px;transition:border-color .2s}.part-card:hover{border-color:#adc8d8}.part-image{height:163px;position:relative;overflow:hidden;background:#f1f5f9}.part-image img{width:100%;height:100%;object-fit:contain;display:block}.part-number{position:absolute;inset:0;display:grid;place-items:center;font-size:100px;line-height:1;font-weight:700;color:#0c355030;pointer-events:none}.remove-part{position:absolute;top:7px;right:7px;width:24px;height:24px;border:1px solid #d5e0e7;border-radius:50%;background:#fffffff0;color:#8294a1;cursor:pointer;font-size:16px;line-height:20px;display:grid;place-items:center;padding:0}.remove-part:hover{color:#a34d43;border-color:#d3a49f}.part-body{padding:12px}.part-label{color:#3c7b69;font-size:9px;letter-spacing:.9px;font-weight:700;margin-bottom:4px}.part-name{font-size:12px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.repair-tag{color:var(--mint);font-size:10px;margin:4px 0 0}.quantity-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf1f4;margin-top:13px;padding-top:10px;gap:4px}.quantity-row>label{font-size:10px;color:#8798a4}.quantity-control{display:flex;align-items:center}.quantity-control button{width:24px;height:28px;border:1px solid #dce5eb;background:#f8fafc;cursor:pointer;color:#567b90;font-size:15px}.quantity-control button:first-child{border-radius:5px 0 0 5px}.quantity-control button:last-child{border-radius:0 5px 5px 0}.quantity-control input{width:34px;height:28px;border:1px solid #dce5eb;border-left:0;border-right:0;background:white;border-radius:0;text-align:center;font:600 11px var(--font);padding:0;appearance:textfield}.quantity-control input::-webkit-inner-spin-button{-webkit-appearance:none}.settings-panel{background:white;border:1px solid var(--line);border-radius:14px;padding:25px;box-shadow:0 8px 28px #244a6204;position:sticky;top:20px}.settings-panel .eyebrow{margin-bottom:5px}.settings-panel h2{margin-bottom:23px;font-size:23px}.field-label{display:block;font-size:12px;font-weight:550;margin:17px 0 7px}.field-label:first-child{margin-top:0}input,select{font-family:var(--font);font-size:13px;color:var(--ink);outline:none}select{width:100%;height:41px;border:1px solid #d7e2e9;border-radius:7px;background:#fbfcfe;padding:0 10px}.two-fields{display:grid;grid-template-columns:1fr 12px 1fr;gap:9px;align-items:end;margin-top:12px}.two-fields>span{align-self:end;text-align:center;height:37px;line-height:35px;color:#91a3af}.two-fields label,.spacing-fields label{font-size:10px;color:#7f929f}.two-fields input,.spacing-fields input{width:100%;height:39px;border:1px solid #d7e2e9;border-radius:7px;padding:8px 10px;background:#fbfcfe;margin-top:4px}.spacing-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:17px}.field-help{font-size:11px;line-height:1.65;color:#7e919e;margin:10px 0}.no-mirror{font-size:10px;margin-top:0;color:#9aabb6}.job-total{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:23px;padding-top:19px;font-size:12px}.job-total strong{font-size:20px;font-weight:600}.job-total small{font-size:11px;font-weight:400;color:#97a8b2}.button{border:0;border-radius:7px;font-family:var(--font);font-size:12px;font-weight:550;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:39px;padding:10px 15px;transition:.16s}.button.primary{background:var(--blue);color:white;box-shadow:0 3px 7px #1b6c9512}.button.primary:hover{background:var(--blue-dark);transform:translateY(-1px)}.button.secondary{background:#eaf1f6;color:#3e718c;border:1px solid #d8e6ef}.button.secondary:hover{background:#deecf4}.button.quiet{color:#658092;background:transparent;border:1px solid #dce5eb;font-size:11px;min-height:33px;padding:6px 12px}.button:disabled,button:disabled{opacity:.45;cursor:default;transform:none!important}.calculate{width:100%;margin-top:17px;justify-content:space-between;font-size:13px;min-height:45px}.calculate>span:last-child{font-size:19px;font-weight:400}.calculation-note{font-size:10px;color:#8c9daa;line-height:1.8;text-align:center;margin:11px 0 0}.limit-warning{font-size:11px;color:#b46440;margin:10px 0}.pending{background:#edf4f8;border:1px solid #dae7ef;border-radius:9px;padding:15px;margin:14px 0;color:#688494;font-size:12px}.pending .spinner{display:inline-block;width:11px;height:11px;border:1.5px solid #b2cad8;border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite;margin-right:7px;vertical-align:middle}.problems{background:#fffaf3;border:1px solid #eddfc9;border-radius:12px;padding:18px;margin-top:19px}.problem-heading{display:flex;justify-content:space-between;align-items:center;color:#8f6c39;margin-bottom:13px}.problem-heading>span{font-size:9px;color:#a18b6c}.problem-heading h3 span{font-size:11px;margin-left:5px}.problem-group{margin:10px 0 14px;font-size:12px;color:#8c774f}.problem-group p{margin:0 0 7px}.problem-file{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#9a8d77;font-size:11px;margin:5px 0}.problem-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.problem-file button{background:none;border:0;color:#ad9a7a;cursor:pointer;font-size:17px}.problems>.button{background:#f5ead8;border-color:#e9dac0;color:#8f703c;font-size:11px}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:28px}.calculation{margin-top:35px;scroll-margin-top:25px}.progress-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.progress-heading h2{font-size:22px}.progress-track{height:9px;background:#eaf0f5;border-radius:20px;overflow:hidden;margin-top:24px}.progress-fill{width:0;height:100%;background:#4d98bc;border-radius:20px;transition:width .4s}.progress-fill.working{background:repeating-linear-gradient(115deg,#4d98bc 0,#4d98bc 12px,#70afcb 12px,#70afcb 24px);background-size:50px 100%;animation:flow 1.5s linear infinite}.progress-line{display:flex;justify-content:space-between;font-size:12px;color:#7c919e;margin-top:10px;gap:16px}.optimization{display:flex;gap:35px;margin-top:20px;padding-top:18px;border-top:1px solid #e9eff4;font-size:12px;color:#627e8e;flex-wrap:wrap}.optimization strong{display:block;font-size:20px;color:var(--ink);font-weight:550;margin-top:3px}.job-error{color:#a75845;font-size:13px;line-height:1.6;margin-bottom:0}.results{padding-top:52px;scroll-margin-top:25px}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:25px}.result-heading h2{font-size:31px;letter-spacing:-1px}.result-heading .subtle{margin-bottom:0}.success-label{color:#43816d}.sheets-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.sheets-grid.single{grid-template-columns:minmax(0,1fr);max-width:850px;margin:auto}.sheet-card{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.sheet-image{display:block;cursor:zoom-in}.sheet-image img{display:block;width:100%;height:auto;background:white}.sheet-info{padding:20px 23px;border-top:1px solid var(--line)}.sheet-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:14px;font-weight:600}.sheet-title>span{font-size:11px;color:#8ba0ad;font-weight:400}.sheet-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;font-size:10px;color:#8a9da9}.sheet-stats strong{display:block;font-size:16px;font-weight:550;color:#3e6074;margin-top:3px}.sheet-download{margin-top:18px;width:100%}.result-note{font-size:11px;line-height:1.7;color:#8a9daa;text-align:center;max-width:660px;margin:22px auto 0}footer{max-width:1140px;margin:68px auto 0;border-top:1px solid var(--line);padding:23px 0 35px;display:flex;justify-content:space-between;font-size:10px;color:#8a9eaa}footer>span:first-child{font-weight:600;color:#648093}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:100;background:#273e4d;color:white;padding:15px 22px;border-radius:10px;box-shadow:0 6px 30px #0002;font-size:13px;max-width:min(600px,calc(100vw - 30px));line-height:1.6}dialog{border:1px solid var(--line);border-radius:15px;padding:30px;max-width:460px;color:var(--ink);box-shadow:0 15px 70px #183b5030}dialog::backdrop{background:#1a3c5060;backdrop-filter:blur(4px)}dialog p{font-size:13px;line-height:1.8;color:#78909f;margin:16px 0 25px}dialog>div{display:flex;gap:10px;justify-content:flex-end}input:focus,select:focus{border-color:#519bc1;box-shadow:0 0 0 3px #317ea217}button:focus-visible,a:focus-visible{outline:3px solid #77b4d3;outline-offset:4px}[hidden]{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flow{to{background-position:50px 0}}@media(min-width:1500px){main{max-width:1260px}.workspace{grid-template-columns:minmax(0,1fr) 330px}.part-image{height:185px}}@media(max-width:1050px){.header{padding:0 30px}.header-note{display:none}.workspace{gap:22px;grid-template-columns:minmax(0,1fr) 290px}.settings-panel{padding:20px}.parts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intro-note{margin-right:0}.quantity-control input{width:40px}footer{margin-left:30px;margin-right:30px}.steps{gap:12px}}@media(max-width:740px){.header{height:73px;padding:0 20px}.brand{font-size:18px}.brand svg{width:29px;height:29px}.brand .beta{display:none}.header .button{font-size:10px;padding:7px 9px}main{padding:0 20px}.intro{padding:35px 0 29px}.intro h1{font-size:39px;letter-spacing:-1.5px}.intro-note{display:none}.lead{font-size:13px}.steps{gap:7px;font-size:9px;margin-bottom:18px}.steps b{font-size:9px;margin-right:4px}.steps>span{min-width:10px}.dropzone{height:200px}.drop-title{font-size:16px}.drop-subtitle{font-size:12px}.drop-limits{font-size:10px}.workspace{grid-template-columns:1fr;gap:25px}.settings-panel{position:static;padding:23px}.parts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.part-image{height:165px}.settings-panel h2{margin-bottom:15px}.calculation{padding:23px}.progress-heading h2{font-size:18px}.progress-heading .button{font-size:10px;padding:8px 10px}.progress-line{font-size:11px}.optimization{gap:22px}.results{padding-top:35px}.result-heading h2{font-size:26px}.result-heading{align-items:start;flex-direction:column}.result-heading .button{width:100%}.sheets-grid{grid-template-columns:1fr;gap:20px}.sheet-stats{font-size:10px}.sheet-stats strong{font-size:15px}footer{margin:40px 20px 0;padding-bottom:25px;gap:12px;flex-wrap:wrap}footer>span:nth-child(2){display:none}footer>span:last-child{font-size:9px}.problem-heading{align-items:start;gap:10px}.problem-heading>span{max-width:90px;text-align:right}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

@media(max-width:740px){.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.steps a{white-space:normal;line-height:1.5}.steps>span{display:none}}

.part-warnings{font-size:10px;color:#8f7952;margin-top:8px}.part-warnings summary{cursor:pointer}.part-warnings p{margin:5px 0;line-height:1.6}

.file-guide{padding:18px 22px;margin:0 0 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper);font-size:14px;line-height:1.6}.file-guide strong{font-size:16px;font-weight:650}.file-guide p{margin:6px 0 0;color:#536d7d}@media(max-width:740px){.file-guide{padding:16px;font-size:13px}.file-guide strong{font-size:15px}}

.language-picker{display:flex;align-items:center;gap:6px}.language-picker select{font:inherit;font-size:12px;background:white;border:1px solid var(--line);border-radius:7px;padding:7px;max-width:165px;color:var(--ink)}.part-name{unicode-bidi:plaintext}input[type=number],.part-number,.sheet-stats strong{direction:ltr;unicode-bidi:isolate}html[dir=rtl] .intro-note{border-left:0;border-right:1px solid var(--line);padding-left:0;padding-right:35px;margin-left:15px;margin-right:0}html[dir=rtl] .remove-part{right:auto;left:10px}html[dir=rtl] .part-warnings{text-align:right}@media(max-width:740px){.header{height:auto;min-height:85px;padding-top:14px;padding-bottom:14px;gap:14px;flex-wrap:wrap}.header-right{gap:10px;flex-wrap:wrap}.language-picker select{max-width:140px}.progress-line{flex-wrap:wrap;gap:8px}.file-guide,.lead,.field-help,.drop-subtitle{overflow-wrap:anywhere}.steps a{overflow-wrap:anywhere}}

.contact-header{color:var(--blue);text-decoration:none;font-size:23px;line-height:1;padding:7px;border-radius:6px}.contact-header:hover{background:#e1ebf1}.contact-header:focus-visible,.contact-link:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.contact-link{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--blue);text-decoration:none}.contact-link:hover{text-decoration:underline}.contact-link bdi{white-space:nowrap}

.metrika-pixel{position:absolute;left:-9999px}.feedback{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}.feedback[hidden]{display:none}

.saved-sizes{margin-top:9px}.saved-size-note{font-size:10px;color:var(--muted)}.saved-size-list{display:flex;flex-wrap:wrap;gap:6px;max-height:132px;overflow-y:auto;padding:5px 2px}.saved-size{display:flex;max-width:100%;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface);direction:ltr;unicode-bidi:isolate}.saved-size button{border:0;background:transparent;color:var(--blue);font:inherit;font-size:11px;padding:5px 7px;cursor:pointer}.saved-size button:hover{background:#deecf4}.saved-size .size-remove{border-left:1px solid var(--line);font-size:16px;line-height:1;min-width:27px;color:#8d665a}

.intro h1{max-width:690px}.about-nesting{margin-top:58px;padding-top:30px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:38px}.about-nesting h2{font-size:22px;line-height:1.3;margin-bottom:16px}.about-nesting p{color:var(--muted);font-size:13px;line-height:1.8}.about-nesting img{width:100%;height:auto;border:1px solid var(--line);border-radius:10px}.faq details{border-bottom:1px solid var(--line);padding:14px 0}.faq summary{font-size:13px;cursor:pointer;font-weight:600}.site-languages{display:flex;flex-wrap:wrap;gap:9px 17px;margin-top:30px;font-size:12px}.site-languages a{color:var(--blue);text-decoration:none}.site-languages a[aria-current=page]{font-weight:700;text-decoration:underline}@media(max-width:740px){.about-nesting{grid-template-columns:1fr;gap:24px}.intro h1{font-size:35px;overflow-wrap:anywhere}}
