:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.35;font-weight:400;color:#1f2522;background:#edf0ee;--surface: #f9faf8;--surface-muted: #eef2ef;--border: #cbd4ce;--border-strong: #8c9a93;--text-muted: #56625c;--teal: #0f766e;--teal-dark: #0b5f59;--rust: #b45309;--rose: #be123c;--blue: #2563eb;--shadow: 0 10px 28px rgb(27 34 30 / .14)}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%;margin:0}body{min-height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr);background:#edf0ee}button,input,a{font:inherit}button,a,label{-webkit-tap-highlight-color:transparent}button:disabled,input:disabled{cursor:not-allowed;opacity:.52}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0;padding:.7rem .85rem .6rem;border-bottom:1px solid var(--border);background:var(--surface)}.app-header h1,.app-header p,.control-section h2,.status-bar span{margin:0}.app-header h1{font-size:1.05rem;font-weight:720;letter-spacing:0}.app-header p{max-width:68vw;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.session-badge,.count-pill{display:inline-flex;align-items:center;justify-content:center;min-height:1.45rem;padding:.12rem .48rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);color:var(--text-muted);font-size:.72rem;white-space:nowrap}.workspace{min-height:0;display:grid;grid-template-columns:minmax(20rem,24rem) minmax(0,1fr)}.sidebar{min-width:0;min-height:0;display:grid;align-content:start;gap:.55rem;padding:.65rem;border-right:1px solid var(--border);background:#f4f6f4;overflow:auto;scrollbar-gutter:stable}.control-section{display:grid;gap:.55rem;padding:.65rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:.55rem;min-width:0}.section-heading h2{font-size:.88rem;font-weight:720}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.command-button,.icon-button,.mini-focus,.mini-download,.part-download{border:1px solid var(--border-strong);background:#fff;color:#1f2522;cursor:pointer;text-decoration:none}.command-button{min-height:2.25rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.4rem .6rem;border-radius:7px;font-weight:650}.command-button svg,.icon-button svg,.part-download svg{width:1rem;height:1rem;flex:0 0 auto}.command-button.primary{border-color:var(--teal-dark);background:var(--teal);color:#fff}.command-button.secondary{border-color:var(--border);color:var(--text-muted)}.file-command{position:relative;overflow:hidden}.file-command input{position:absolute;inset:0;opacity:0;cursor:pointer}.icon-button{width:2rem;height:2rem;display:inline-grid;place-items:center;padding:0;border-radius:7px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin:0}.metric-grid div{min-width:0;display:grid;gap:.12rem;padding:.45rem;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted)}.metric-grid dt,.section-text small{color:var(--text-muted);font-size:.72rem}.metric-grid dd{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:700}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.42rem}.plane-adjustments{display:grid;gap:.55rem}.plane-adjustments[hidden]{display:none}.field-grid label,.range-field{display:grid;gap:.22rem;color:var(--text-muted);font-size:.72rem;font-weight:700}.field-grid input{min-width:0;height:2rem;padding:.25rem .35rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:#1f2522}.range-field{grid-template-columns:auto minmax(0,1fr) 2.4rem;align-items:center;gap:.45rem}.range-field input{width:100%;accent-color:var(--teal)}.range-field output{text-align:right;color:#1f2522}.sections-panel,.parts-panel{min-height:8rem}.sections-list,.parts-list{display:grid;gap:.38rem;min-height:2.2rem}.cut-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;min-width:0;padding:.42rem;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted)}.cut-progress[hidden]{display:none}.cut-progress progress{width:100%;height:.65rem;accent-color:var(--teal)}.cut-progress span{min-width:6.8rem;color:var(--text-muted);font-size:.74rem;font-weight:700;text-align:right;white-space:nowrap}.sections-list:empty:before,.parts-list:empty:before{content:"None";color:var(--text-muted);font-size:.82rem}.section-row,.part-row{min-width:0;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.45rem;padding:.42rem;border:1px solid var(--border);border-radius:7px;background:#fff}.section-row.is-disabled{opacity:.58}.section-swatch{width:.8rem;height:.8rem;border-radius:999px;box-shadow:inset 0 0 0 1px #0003}.section-text{min-width:0;display:grid;gap:.08rem}.section-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.part-row{grid-template-columns:auto minmax(0,1fr) auto auto}.mini-focus,.mini-download{display:inline-flex;align-items:center;justify-content:center;gap:.28rem;min-width:2.25rem;min-height:1.7rem;padding:.18rem .4rem;border-radius:6px;font-size:.75rem;font-weight:760}.mini-focus svg{width:.9rem;height:.9rem}.viewer-panel{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;background:#e6eae7}.viewer-root{position:relative;min-width:0;min-height:0;overflow:hidden}.viewer-root canvas{display:block;width:100%;height:100%}.drop-layer{position:absolute;inset:0;z-index:3;display:grid;place-items:center;pointer-events:none;background:#edf0eed1}.viewer-root.is-dragging .drop-layer,.drop-layer:not([hidden]){display:grid}.drop-layer[hidden]{display:none}.drop-mark{display:inline-flex;align-items:center;gap:.5rem;min-height:2.4rem;padding:.45rem .7rem;border:1px solid var(--border-strong);border-radius:8px;background:#fff;box-shadow:var(--shadow);font-weight:700}.drop-mark svg{width:1rem;height:1rem}.part-overlays{position:absolute;inset:0;z-index:5;pointer-events:none}.part-download{position:absolute;top:0;left:0;min-width:5.4rem;min-height:2rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.32rem .5rem;border-width:2px;border-radius:999px;background:#ffffffeb;box-shadow:var(--shadow);color:#1f2522;font-size:.8rem;font-weight:760;pointer-events:auto;white-space:nowrap}.status-bar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;min-width:0;min-height:2.1rem;padding:.4rem .65rem;border-top:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.8rem}.status-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:900px){body{min-height:100vh}.workspace{grid-template-columns:1fr;grid-template-rows:minmax(18rem,48vh) minmax(0,auto)}.viewer-panel{grid-row:1}.sidebar{grid-row:2;border-right:0;border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}@media(max-width:620px){.app-header{align-items:flex-start}.app-header p{max-width:100%}.workspace{grid-template-rows:minmax(18rem,44vh) minmax(0,auto)}.sidebar,.button-row{grid-template-columns:1fr}}
