/* planex2d.org/nesting: the tool in the sheet, beyond the shared style */
.tool{scroll-margin-top:calc(var(--header-h) + 12px)}
.p2d .sheet{background:var(--sheet)}
.p2d .tool-body{background:none;height:680px}
.p2d .app-bar{gap:12px;min-width:0}
.p2d .tool-status{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:.04em}
.tool-actions{display:flex;align-items:center;gap:4px;margin-left:auto;flex:none}
.p2d .btn:disabled{opacity:.45;cursor:default}
.nest-stage{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:0}
.nest-panel{display:flex;flex-direction:column;gap:14px;min-height:0;padding:16px;overflow:auto;border-right:1px solid var(--hair)}
.nest-panel h3{font:500 11.5px/1.2 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-label);margin:0}
.nest-buttons{display:flex;gap:8px;flex-wrap:wrap}
.nest-hint{font-size:13px;color:var(--ink-muted)}
.parts{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.part{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:9px 10px;background:var(--sheet-2);border:1px solid var(--hair);border-radius:4px}
.part.is-reading{display:block;color:var(--ink-muted);font-size:13.5px}
.part-name{font:500 14px/1.3 var(--font-sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.part-size{grid-column:1/-1;font:400 12px/1.3 var(--font-mono);color:var(--ink-muted)}
.part-angles{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;margin-top:4px;font-size:12.5px;color:var(--ink-label)}
.p2d .part-remove{border:0;background:none;color:var(--ink-muted);font-size:16px;line-height:1;cursor:pointer;padding:0 2px}
.nest-panel input[type=text],.nest-panel input[type=number],.nest-panel select{width:100%;min-width:0;height:32px;padding:0 8px;border:1px solid var(--hair-strong);border-radius:4px;background:var(--sheet);color:var(--ink);font:400 13.5px/1 var(--font-mono)}
.roll{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 10px;font-size:13.5px}
.roll .unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;font:400 12.5px/1 var(--font-mono);color:var(--ink-muted)}
.roll .check{grid-column:1/-1;display:flex;align-items:center;gap:9px;cursor:pointer}
.roll .check input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
.nest-run{margin-top:auto;display:grid;gap:8px}
.nest-problem{font-size:13px;color:var(--accent-ink)}
.nest-problem[hidden]{display:none}
.nest-view{position:relative;min-height:0}
.tool-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;visibility:hidden}
.tool-frame.is-visible{visibility:visible}
.nest-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:14px;padding:24px;text-align:center;color:var(--ink-muted);font-size:14.5px}
.nest-empty[hidden],.drop-overlay[hidden]{display:none}
.nest-empty:not(.is-waiting) .loading-mark{display:none}
.drop-overlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;border:1.5px dashed var(--accent);background:color-mix(in srgb,var(--accent-wash) 88%,transparent);font:450 26px/1.1 var(--font-display);color:var(--ink)}
.sheet-area{position:relative}
.sheet-area:fullscreen{background:var(--sheet)}
.sheet-area:fullscreen .tool-body{height:100vh}
.example-figure .geo{fill:none}
.example-figure .node circle{fill:var(--sheet-2);stroke:var(--accent);stroke-width:1.3}
.p2d .example-actions a{text-decoration:none}
@container (max-width:860px){
  .p2d .tool-body{height:auto}
  .nest-stage{grid-template-columns:1fr}
  .nest-panel{border-right:0;border-bottom:1px solid var(--hair);overflow:visible}
  .nest-view{height:460px}
}
.part-extra{grid-column:1/-1;display:flex;align-items:center;gap:14px;margin-top:4px;font-size:12.5px;color:var(--ink-label)}
.part-number{display:flex;align-items:center;gap:8px}
.p2d .part-number input{width:64px}
.part-flip{display:flex;align-items:center;gap:7px;cursor:pointer}
.part-flip input{width:15px;height:15px;margin:0;accent-color:var(--accent)}
.part-total{margin-left:auto;font:500 12px/1 var(--font-mono);color:var(--ink-muted)}
.part.is-selectable{cursor:pointer}
.part.is-selectable:hover{border-color:var(--hair-strong)}
.part.is-selected{border-color:var(--accent);background:var(--accent-wash)}
