body{overflow-x:hidden}canvas,img,svg,video{max-width:100%;height:auto}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}@media (max-width:640px){.btn-touch{min-height:44px;min-width:44px}.text-mobile-readable{font-size:16px;line-height:1.5}}@supports (padding:max(0px)){.safe-area-padding{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}}.focus-visible:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}.smooth-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}@media screen and (max-width:767px){input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],select,textarea{font-size:16px}}@media (hover:none) and (pointer:coarse){.card-hover:hover{transform:none}}@media (max-width:640px){.form-mobile-spacing>*+*{margin-top:1rem}}.stack-on-mobile{width:100%}@media (max-width:768px){.stack-on-mobile{flex-direction:column!important;align-items:stretch!important;gap:.75rem}}.responsive-table{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:hsl(var(--primary)) transparent}.responsive-table::-webkit-scrollbar{height:6px}.responsive-table::-webkit-scrollbar-track{background:transparent}.responsive-table::-webkit-scrollbar-thumb{background:hsl(var(--primary));border-radius:9999px}.responsive-table table{min-width:640px}@media (max-width:768px){.responsive-table table{min-width:520px}}@media (max-width:640px){.grid-cols-2,.grid-cols-3,.grid-cols-4,.grid-cols-5,.grid-cols-6,.grid-cols-7,.grid-cols-8{grid-template-columns:repeat(1,minmax(0,1fr))!important}}.dialog-responsive{max-height:90vh;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.dialog-responsive::-webkit-scrollbar{width:6px}.dialog-responsive::-webkit-scrollbar-thumb{background:hsl(var(--primary));border-radius:9999px}@media (max-width:640px){.dialog-responsive{border-radius:1.5rem}}