:root{--primary:#2563eb;--primary-light:#eff6ff;--bg:#f1f5f9;--text:#1e293b;--text-muted:#64748b;--border:#e2e8f0;--radius:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:16px}body{color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5}#root{width:100%;max-width:100%;margin:0}input,select,button{font-family:inherit}input[type=number]{-moz-appearance:textfield}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.app-gate{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.gate-card{text-align:center;background:#fff;border-radius:12px;max-width:400px;padding:2.5rem 2rem;box-shadow:0 4px 24px #00000014}.gate-card h2{color:var(--text);margin:1rem 0 .5rem;font-size:1.25rem;font-weight:700}.gate-card p{color:var(--text-muted);font-size:.9rem;line-height:1.5}.gate-spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;margin:0 auto 1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border);z-index:100;background:#fff;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000a}.header-left{align-items:center;gap:.75rem;display:flex}.logo{flex-shrink:0}.app-header h1{color:var(--text);margin:0;font-size:1.25rem;font-weight:700;line-height:1.2}.subtitle{color:var(--text-muted);margin:0;font-size:.75rem}.header-toggles{align-items:center;gap:1rem;display:flex}.header-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.35rem;display:flex}.header-toggle input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.header-toggle span{color:var(--text-muted);white-space:nowrap;font-size:.75rem;font-weight:500}.app-main{flex:1;grid-template-columns:320px 1fr 340px;gap:0;display:grid;overflow:hidden}.input-panel{border-right:1px solid var(--border);background:#fff;height:calc(100vh - 57px);padding:1rem;overflow-y:auto}.panel-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.panel-header h2{color:var(--text);margin:0;font-size:.95rem;font-weight:700}.unit-toggle{border:1px solid var(--border);border-radius:6px;display:flex;overflow:hidden}.unit-toggle button{color:var(--text-muted);cursor:pointer;background:#fff;border:none;padding:.25rem .75rem;font-size:.75rem;font-weight:600;transition:all .15s}.unit-toggle button.active{background:var(--primary);color:#fff}.unit-toggle button:not(.active):hover{background:var(--bg)}.input-section{border:1px solid var(--border);border-radius:8px;margin-bottom:.75rem;overflow:hidden}.input-section h3{color:var(--text);background:var(--bg);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;margin:0;padding:.6rem .75rem;font-size:.8rem;font-weight:600;display:flex}.section-icon{border-radius:2px;width:10px;height:10px;display:inline-block}.sheet-icon{background:#94a3b8}.model-icon{background:#059669}.margin-icon{background:#d97706}.print-icon{background:#2563eb}.preset-row{padding:.5rem .75rem 0}.preset-row select{border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:#fff;border-radius:6px;padding:.35rem .5rem;font-size:.75rem}.input-row{align-items:flex-end;gap:.35rem;padding:.5rem .75rem .75rem;display:flex}.input-row label{flex:1}.input-grid-4{grid-template-columns:1fr 1fr;gap:.4rem .6rem;padding:.5rem .75rem .75rem;display:grid}.input-section label span:first-child{color:var(--text-muted);margin-bottom:.2rem;font-size:.7rem;font-weight:500;display:block}.input-with-unit{border:1px solid var(--border);border-radius:6px;align-items:center;transition:border-color .15s;display:flex;overflow:hidden}.input-with-unit:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px #2563eb1a}.input-with-unit input{font-variant-numeric:tabular-nums;border:none;outline:none;width:100%;min-width:0;padding:.4rem .5rem;font-size:.8rem}.input-with-unit input::-webkit-inner-spin-button{opacity:0}.input-with-unit input:hover::-webkit-inner-spin-button{opacity:1}.input-with-unit .unit{color:var(--text-muted);flex-shrink:0;padding:.4rem .4rem .4rem 0;font-size:.7rem;font-weight:500}.swap-btn{border:1px solid var(--border);width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-self:flex-end;align-items:center;margin-bottom:.05rem;transition:all .15s;display:flex}.swap-btn:hover{border-color:var(--primary);color:var(--primary);background:#eff6ff}.preview-area{background:var(--bg);justify-content:center;align-items:center;height:calc(100vh - 57px);padding:1.5rem;display:flex;overflow:hidden}.layout-preview{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.layout-svg{width:100%;max-width:100%;height:100%;max-height:100%}.results-panel{border-left:1px solid var(--border);background:#fff;height:calc(100vh - 57px);padding:1rem;overflow-y:auto}.results-panel h2{color:var(--text);margin:0 0 1rem;font-size:.95rem;font-weight:700}.result-cards{flex-direction:column;gap:.6rem;display:flex}.result-card{border:1px solid var(--border);border-radius:8px;padding:.75rem;transition:all .15s}.result-card.primary{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#93c5fd}.result-value{color:var(--primary);font-variant-numeric:tabular-nums;margin-bottom:.2rem;font-size:2rem;font-weight:800;line-height:1}.result-value-sm{color:var(--text);font-variant-numeric:tabular-nums;margin-bottom:.15rem;font-size:1rem;font-weight:700;line-height:1.2}.result-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.result-detail{color:var(--text-muted);margin-top:.15rem;font-size:.72rem}.waste-bar{background:#fee2e2;border-radius:3px;height:6px;margin-top:.5rem;overflow:hidden}.waste-bar-fill{border-radius:3px;height:100%;transition:width .3s}.waste-low .result-value{color:#059669}.waste-low .waste-bar-fill{background:#10b981}.waste-medium .result-value{color:#d97706}.waste-medium .waste-bar-fill{background:#f59e0b}.waste-high .result-value{color:#dc2626}.waste-high .waste-bar-fill{background:#ef4444}.strategy-card{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.strategy-badge{color:#6d28d9;text-transform:uppercase;letter-spacing:.04em;background:#ede9fe;border-radius:4px;padding:.2rem .6rem;font-size:.72rem;font-weight:700;display:inline-block}.orientation-breakdown{gap:.35rem;display:flex}.orient-chip{border-radius:4px;padding:.15rem .5rem;font-size:.68rem;font-weight:600}.orient-normal{color:#065f46;background:#d1fae5}.orient-rotated{color:#1e3a5f;background:#dbeafe}.alternatives-section{margin-top:1rem}.alternatives-section h3{color:var(--text);margin:0 0 .5rem;font-size:.8rem;font-weight:600}.alternatives-list{flex-direction:column;gap:.3rem;display:flex}.alt-btn{border:1px solid var(--border);cursor:pointer;text-align:left;background:#fff;border-radius:6px;align-items:center;gap:.6rem;width:100%;padding:.5rem .6rem;transition:all .15s;display:flex}.alt-btn:hover{border-color:var(--primary);background:#eff6ff}.alt-btn.alt-active{border-color:var(--primary);background:#eff6ff;box-shadow:0 0 0 2px #2563eb26}.alt-count{color:var(--primary);text-align:center;font-variant-numeric:tabular-nums;min-width:2rem;font-size:1.1rem;font-weight:800}.alt-info{flex:1;min-width:0}.alt-strategy{color:var(--text);font-size:.7rem;font-weight:600;display:block}.alt-details{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.65rem;display:block;overflow:hidden}.alt-waste{color:var(--text-muted);white-space:nowrap;font-size:.7rem;font-weight:600}.legend{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1rem}.legend h3{color:var(--text);margin:0 0 .5rem;font-size:.8rem;font-weight:600}.legend-items{flex-direction:column;gap:.35rem;display:flex}.legend-item{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.72rem;display:flex}.legend-color{border:1px solid #0000001a;border-radius:2px;flex-shrink:0;width:16px;height:12px;display:inline-block}.gripper-legend{background:repeating-linear-gradient(45deg,#fee2e2,#fee2e2 2px,#fca5a5 2px 4px)}.margin-legend{background:repeating-linear-gradient(-45deg,#fef3c7,#fef3c7 2px,#fcd34d 2px 4px)}.pose-normal-legend{background:#6ee7b7;border-color:#059669}.pose-rotated-legend{background:#93c5fd;border-color:#2563eb}.usable-legend{background:#fff;border-color:#cbd5e1}.cmyk-legend{background:linear-gradient(90deg,#00aeef 25%,#ec008c 25% 50%,#fff200 50% 75%,#1a1a1a 75%)}.crop-legend{background:#fff;border-width:1px;border-color:#1e293b;position:relative}.crop-legend:before,.crop-legend:after{content:"";background:#1e293b;position:absolute}.crop-legend:before{width:5px;height:1px;top:1px;left:1px}.crop-legend:after{width:1px;height:4px;top:1px;left:1px}@media (width<=1200px){.app-main{grid-template-columns:280px 1fr 300px}}@media (width<=960px){.app-main{grid-template-rows:auto auto auto;grid-template-columns:1fr;overflow:visible}.input-panel,.results-panel{border-left:none;border-right:none;border-bottom:1px solid var(--border);height:auto}.preview-area{height:50vh;min-height:300px}}@media (width<=640px){.app-header{flex-direction:column;align-items:flex-start;gap:.5rem;padding:.6rem 1rem}.header-toggles{justify-content:flex-start;gap:.75rem;width:100%}.app-header h1{font-size:1.1rem}.subtitle{font-size:.68rem}.input-panel,.results-panel{padding:.75rem}.preview-area{height:40vh;min-height:250px;padding:.75rem}.input-row{flex-wrap:wrap}.result-value{font-size:1.6rem}.alt-btn{padding:.4rem .5rem}}@media (width<=380px){.app-header{padding:.5rem .75rem}.input-grid-4{grid-template-columns:1fr 1fr;gap:.3rem .4rem;padding:.4rem .5rem .6rem}.input-section h3{padding:.5rem .6rem;font-size:.75rem}.preview-area{height:35vh;min-height:220px}}@supports (padding:env(safe-area-inset-top)){.app-header{padding-top:calc(.75rem + env(safe-area-inset-top));padding-left:calc(1.5rem + env(safe-area-inset-left));padding-right:calc(1.5rem + env(safe-area-inset-right))}.input-panel,.results-panel{padding-left:calc(1rem + env(safe-area-inset-left));padding-right:calc(1rem + env(safe-area-inset-right))}.results-panel:last-child{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}}@media print{.input-panel{display:none}.app-header{position:static}.app-main{grid-template-columns:1fr 280px}.preview-area{height:auto}}
