.touch-manipulation{touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.scroll-smooth{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.product-grid{display:grid;grid-auto-rows:minmax(300px,max-content);gap:.5rem;align-items:stretch}.product-grid>*{display:flex;height:100%}@media (min-width: 640px){.product-grid{gap:.75rem;grid-auto-rows:minmax(320px,max-content)}}@media (min-width: 1024px){.product-grid{gap:1rem;grid-auto-rows:minmax(340px,max-content)}}@media (max-width: 768px){.touch-target{min-height:44px;min-width:44px}button,.btn,[role=button]{min-height:44px;padding:12px 16px}input[type=text],input[type=number],input[type=email],input[type=tel],textarea,select{min-height:44px;font-size:16px;padding:12px 16px}.card-interactive{transition:all .2s ease}.card-interactive:active{transform:scale(.98);box-shadow:0 2px 8px #0000001a}.grid-responsive{grid-template-columns:repeat(2,1fr);gap:8px}.dialog-mobile{max-width:95vw;max-height:90vh;margin:auto}.no-horizontal-scroll{overflow-x:hidden;max-width:100vw}button:focus,input:focus,select:focus,textarea:focus{outline:2px solid #3b82f6;outline-offset:2px}}@media (min-width: 768px) and (max-width: 1024px){.grid-responsive{grid-template-columns:repeat(3,1fr);gap:12px}button,.btn,[role=button]{min-height:40px;padding:10px 16px}input[type=text],input[type=number],input[type=email],input[type=tel],textarea,select{min-height:40px;padding:10px 12px}}@media (min-width: 1024px){.grid-responsive{grid-template-columns:repeat(4,1fr);gap:16px}.hover-desktop:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}}.loading-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.state-success{border-color:#10b981;background-color:#10b9811a}.state-error{border-color:#ef4444;background-color:#ef44441a}@media print{.no-print{display:none!important}.print-only{display:block!important}body{font-size:12px;line-height:1.4}}@media (prefers-contrast: high){.card,button{border-width:2px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-color-scheme: dark){.card-interactive:active{box-shadow:0 2px 8px #ffffff1a}}
