.pat{container-type:inline-size;min-width:0;max-width:100%;color:var(--ds-ink);font-family:var(--ds-font);font-size:var(--ds-text-base);line-height:var(--ds-lh-base);font-variant-numeric:tabular-nums;background:var(--ds-surface)}
.pat *{box-sizing:border-box}
.pat-toolbar,.pat-fill,.pat-job-head,.pat-footer{display:flex;align-items:center;gap:var(--ds-s-3);flex-wrap:wrap}
.pat-toolbar{justify-content:space-between;padding:var(--ds-s-3) var(--ds-s-4);border-bottom:1px solid var(--ds-line)}
.pat-toolbar label{display:flex;align-items:center;gap:var(--ds-s-2)}
.pat button,.pat select,.pat input{font:inherit;color:var(--ds-ink);background:var(--ds-surface);border:1px solid var(--ds-field);border-radius:var(--ds-r-md);min-height:var(--ds-control-h)}
.pat button,.pat select{padding:var(--ds-s-1) var(--ds-s-2)}
.pat button{cursor:pointer}
.pat button:disabled,.pat input:disabled,.pat select:disabled{color:var(--ds-disabled-fg);background:var(--ds-disabled-bg);cursor:default}
.pat :focus-visible{outline:var(--ds-focus-w) solid var(--ds-focus);outline-offset:var(--ds-focus-off)}
.pat-segments{display:flex;flex-wrap:wrap;gap:var(--ds-s-1)}
.pat-segments [aria-pressed=true]{background:var(--ds-action);color:var(--ds-action-fg);border-color:var(--ds-action)}
.pat-job-head{padding:var(--ds-s-4);border-bottom:1px solid var(--ds-line)}
.pat-job-head h2{font-size:var(--ds-text-md);font-weight:var(--ds-w-semi);margin:0 0 var(--ds-s-2);line-height:var(--ds-lh-md)}
.pat-job-head a{color:var(--ds-ink);white-space:nowrap}
.pat-counts{margin-left:auto;color:var(--ds-ink-3);font-size:var(--ds-text-sm)}
.pat-chip,.pat-pill{display:inline-block;padding:var(--ds-s-1) var(--ds-s-2);border-radius:var(--ds-r-sm);background:var(--ds-tint);color:var(--ds-ink-2);font-size:var(--ds-text-sm);white-space:nowrap}
.pat-pill::before{content:"●";color:var(--ds-ink-3);margin-right:var(--ds-s-1)}
.pat-pill.pat-ready::before{color:var(--ds-st-done)}
.pat-pill.pat-bad{background:var(--ds-bad-soft);color:var(--ds-bad-ink)}
.pat-pill.pat-bad::before{color:var(--ds-bad)}
.pat-status .pat-pill{margin-bottom:var(--ds-s-1)}
.pat-scroll{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.pat table{width:100%;border-collapse:collapse;table-layout:fixed}
.pat th,.pat td{text-align:left;vertical-align:middle;padding:var(--ds-s-2);border-bottom:var(--ds-rule-hair) solid var(--ds-rule);overflow-wrap:anywhere}
.pat th{font-size:var(--ds-text-caps);font-weight:var(--ds-w-semi);color:var(--ds-ink-3);text-transform:uppercase;letter-spacing:var(--ds-track-caps);background:var(--ds-wash)}
.pat th.pat-tick{width:var(--ds-s-8)}
.pat th.pat-part{width:24%}
.pat th.pat-used{width:var(--ds-touch-primary)}
.pat th.pat-placed{width:calc(var(--ds-s-10) * 2)}
.pat th.pat-status{width:calc(var(--ds-s-10) * 4)}
.pat td.pat-number,.pat th.pat-number{text-align:right;white-space:nowrap}
.pat-tick input{min-height:var(--ds-ico);width:var(--ds-ico);margin:0;accent-color:var(--ds-action)}
.pat strong{font-weight:var(--ds-w-medium)}
.pat small{display:block;font-size:var(--ds-text-sm);color:var(--ds-ink-3);line-height:var(--ds-lh-sm)}
.pat-places{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-s-1) var(--ds-s-2);min-width:0}
.pat-place{display:inline-flex;align-items:center;gap:var(--ds-s-1);max-width:100%;min-width:0}
.pat .pat-qty{width:var(--ds-touch-h);flex:none;min-width:0;padding:var(--ds-s-1);text-align:right;appearance:textfield}
.pat-qty::-webkit-inner-spin-button,.pat-qty::-webkit-outer-spin-button{appearance:none;margin:0}
.pat-place-label{min-width:0;font-size:var(--ds-text-sm);color:var(--ds-ink-2);overflow-wrap:anywhere}
.pat-place button{flex:none;min-height:var(--ds-control-h);padding:0 var(--ds-s-1);border:0;color:var(--ds-ink-3)}
.pat .pat-free-warning{color:var(--ds-st-late-ink)}
.pat .pat-free-warning:empty{display:none}
.pat-add{min-width:0;max-width:100%}
.pat .pat-add-link{border:0;background:transparent;color:var(--ds-ink-3);font-size:var(--ds-text-sm);padding:0 var(--ds-s-1);text-decoration:underline}
.pat-add select{width:100%;max-width:100%;font-size:var(--ds-text-sm)}
.pat .pat-group th{text-transform:none;letter-spacing:normal;font-size:var(--ds-text-sm);font-weight:var(--ds-w-medium);padding:var(--ds-s-2);background:var(--ds-wash)}
.pat-footer{position:sticky;bottom:0;z-index:2;justify-content:space-between;min-height:var(--ds-actionbar-h);padding:var(--ds-s-3) var(--ds-s-4);background:var(--ds-surface);box-shadow:var(--ds-e-bar)}
.pat .pat-primary{min-height:var(--ds-primary-h);background:var(--ds-action);color:var(--ds-action-fg);border-color:var(--ds-action);font-weight:var(--ds-w-semi);padding:var(--ds-s-2) var(--ds-s-4)}
.pat .pat-primary:disabled{background:var(--ds-disabled-primary-bg);color:var(--ds-disabled-primary-fg);border-color:var(--ds-disabled-primary-bg)}
.pat-error,.pat-empty{padding:var(--ds-s-4);margin:0;color:var(--ds-ink-2)}
.pat-narrow{display:none}
.pat-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.pat-compact .pat-footer{position:static;box-shadow:none;border-top:1px solid var(--ds-line)}
@container(max-width:700px){
.pat-toolbar,.pat-job-head{padding:var(--ds-s-2)}
.pat-fill{align-items:flex-start;flex-direction:column;gap:var(--ds-s-1)}
.pat-counts{margin-left:0;width:100%}
.pat table,.pat thead,.pat tbody{display:block;min-width:0}
.pat thead tr,.pat-row{display:grid;grid-template-columns:var(--ds-ico) minmax(0,1fr) calc(var(--ds-s-10) * 2) minmax(80px,100px);column-gap:var(--ds-s-2);padding:var(--ds-s-2);border-bottom:var(--ds-rule-hair) solid var(--ds-rule)}
.pat thead tr{background:var(--ds-wash)}
.pat th,.pat td{width:auto!important;min-width:0;padding:0;border:0;align-self:start}
.pat .pat-used,.pat .pat-from-head,.pat-wide{display:none}
.pat-narrow{display:inline}
.pat .pat-from{grid-column:2/-1;grid-row:2;margin-top:var(--ds-s-1)}
.pat .pat-status{grid-column:4;grid-row:1}
.pat .pat-placed{grid-column:3;grid-row:1;font-size:var(--ds-text-sm)}
.pat th.pat-placed{white-space:normal;overflow-wrap:normal;font-size:var(--ds-text-caps)}
.pat .pat-part{grid-column:2;grid-row:1}
.pat .pat-tick{grid-column:1;grid-row:1}
.pat-pill{max-width:100%;white-space:normal;padding:var(--ds-s-1);line-height:var(--ds-lh-sm)}
.pat .pat-group{display:block;padding:var(--ds-s-2);background:var(--ds-wash)}
.pat .pat-group th{display:block;padding:0}
.pat-row[hidden]{display:none}
.pat-footer{padding:var(--ds-s-2)}
}
.pat-compact .pat-toolbar button,.pat-compact .pat-toolbar select,.pat-compact .pat-place button{min-height:var(--ds-control-h)}
@media(max-width:759px){
.pat button,.pat select,.pat input,.pat-compact .pat-toolbar button,.pat-compact .pat-toolbar select,.pat-compact .pat-place button{min-height:var(--ds-touch-h);min-width:var(--ds-touch-h)}
.pat input,.pat select{font-size:var(--ds-text-p-body)}
.pat-job-head a{display:inline-flex;align-items:center;min-height:var(--ds-touch-h);min-width:var(--ds-touch-h)}
.pat .pat-tick input{width:var(--ds-touch-h)}
.pat thead tr,.pat-row{grid-template-columns:var(--ds-touch-h) minmax(0,1fr) calc(var(--ds-s-10) * 2) minmax(80px,100px)}
.pat .pat-primary{min-height:var(--ds-touch-primary)}
}
