.batting-layout{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.3fr);gap:1.25rem;align-items:start}.batting-layout>*{min-width:0}.batting-layout .panel{padding:1rem}.batting-row{border-bottom:1px solid var(--line);padding:.8rem 0}.batting-row legend{font-size:.95rem;margin:0}.batting-row .fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.batting-row .group-field{grid-column:span 2}.batting-row .actions{gap:.3rem;margin-top:.5rem}.batting-row button{padding:.45rem .65rem}.batting-layout .check{margin:.75rem 0;font-weight:400}.batting-layout .actions{margin-bottom:.8rem}.batting-board{display:block;width:100%;height:auto;max-height:650px;background:var(--surface);border:1px solid var(--control-border);margin:.75rem 0}.batting-board .stock-piece{cursor:grab;touch-action:none;stroke:var(--ink);stroke-width:1;vector-effect:non-scaling-stroke}.batting-board .chosen{stroke-width:3;stroke-dasharray:5 2}.batting-board text{pointer-events:none;fill:#292725;font-family:system-ui,sans-serif}.batting-board .target{fill:white;stroke:#292725;stroke-width:2;vector-effect:non-scaling-stroke}.batting-board .issue{pointer-events:none;fill:url(#batting-hatch);stroke:#a12d28;stroke-width:.3}.batting-board .outline{pointer-events:none;fill:none;stroke:#292725;stroke-dasharray:4 2;stroke-width:2;vector-effect:non-scaling-stroke}.batting-layout .piece-fields{grid-template-columns:1fr 1fr}.batting-layout .piece-list{display:flex;gap:.4rem;flex-wrap:wrap}.batting-layout .piece-list button[aria-pressed=true]{border:2px solid var(--ink)}.batting-layout .hint{margin:.4rem 0}.batting-layout #batting-error:empty{display:none}.batting-layout .ready{color:var(--success)}.batting-layout .table-wrap{max-width:100%;overflow:auto}.batting-layout td{overflow-wrap:anywhere}.batting-layout h3{margin-top:1rem}.batting-files{margin-top:1rem}.batting-layout input[type=file]{max-width:100%}.batting-layout .result-detail{overflow-wrap:anywhere}
@media(max-width:850px){.batting-layout{grid-template-columns:minmax(0,1fr)}.batting-layout .batting-row .fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:360px){.batting-row .fields{grid-template-columns:1fr 1fr!important}.batting-row .group-field{grid-column:auto}.batting-layout .panel{padding:.75rem}}
@media print{#batting-inputs,.batting-edit,.batting-files,#batting-notice,.help,.intro,.breadcrumbs{display:none!important}.batting-layout{display:block}.batting-layout .panel{border:0;padding:0}.batting-board{max-height:600px;break-inside:avoid}.batting-layout button{display:none!important}.batting-layout .table-wrap{overflow:visible}.batting-layout tr{break-inside:avoid}body.batting-invalid #batting-output{display:none!important}body.batting-invalid #batting-tool:after{content:'No validated cutting plan. Return to the planner to complete the inputs and layout.'}.batting-board .stock-piece{fill:white!important}.batting-layout .ready{color:black}}

.batting-layout label .batting-unit-text{display:inline;font:inherit;color:inherit}.batting-input-content{margin-top:1rem}.batting-layout #batting-inputs>summary{font-size:1.3rem;line-height:1.3}.batting-layout #batting-inputs:not([open]){align-self:start}
