/* Repeated control taps perform the action; scrolling and pinch zoom remain available. */
:where(button,a,input,select,textarea,summary,label,[role="button"]),
.shop-stepper,.q-step,.store-quantity,.bs-qty{touch-action:manipulation}

@media(any-pointer:coarse),(max-width:760px){
 /* Keep editable text readable at the original page scale on mobile Safari. */
 body input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
 body select,body textarea{font-size:16px!important}
 body .stock-stepper input{font-size:28px!important}
 .shop-stepper,.store-quantity{grid-template-columns:44px minmax(32px,1fr) 44px;gap:4px}
 .shop-stepper .btn,.store-quantity button,.store-quantity input,
 .q-step button,.q-step.small button{min-width:44px;min-height:44px;height:44px}
 .store-quantity input{min-width:0}
 .store-add{min-height:44px}
 .q-step.small{flex-wrap:wrap}
 #balashte-store .bs-qty button,#balashte-store .bs-card-qty .bs-qty button{width:44px;min-width:44px;height:44px;flex-shrink:0}
 #balashte-store .bs-card-qty input{min-height:44px;min-width:32px;flex:1}
 #balashte-store [data-add],#balashte-store .bs-close{min-height:44px}
 .shop-stepper button,.store-quantity button,.q-step button,#balashte-store .bs-qty button{user-select:none;-webkit-user-select:none}
}

@media(max-width:360px){
 /* A full-width product keeps its controls usable on smaller phones. */
 body.store #plant-grid,#balashte-store #plant-grid{grid-template-columns:minmax(0,1fr)}
}
