:root{--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-right:env(safe-area-inset-right);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left)}.safe-area-pt{padding-top:var(--safe-area-inset-top)}.safe-area-pr{padding-right:var(--safe-area-inset-right)}.safe-area-pb{padding-bottom:var(--safe-area-inset-bottom)}.safe-area-pl{padding-left:var(--safe-area-inset-left)}.h-safe-area-inset-bottom{height:var(--safe-area-inset-bottom)}@media (max-width:768px){.btn,[role=button],button,input[type=button],input[type=reset],input[type=submit]{min-height:44px;min-width:44px;touch-action:manipulation}.booking-card .p-6{padding:1rem}input,select,textarea{min-height:44px;font-size:16px;padding:12px 16px}.time-slot-button{min-height:48px;padding:12px 16px;margin:4px}.service-button{min-height:48px;padding:12px 16px;margin-bottom:8px}.calendar-day{min-height:44px;min-width:44px;touch-action:manipulation}.step-indicator{margin:0 8px}.form-field{margin-bottom:16px}.navbar-item{min-height:48px;padding:12px 16px}@media (hover:none){.btn:hover,[role=button]:hover,button:hover{transform:none}}.scrollable-content{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.modal-content{max-height:90vh;margin:20px}.desktop-only{display:none!important}.mobile-only{display:block!important}}@media (max-width:768px) and (orientation:landscape){.mobile-landscape-compact{padding:8px 16px}.mobile-landscape-hidden{display:none}}@media (max-width:768px){.btn:active,[role=button]:active,button:active{transform:scale(.98);transition:transform .1s ease}}@supports (-webkit-appearance:none){.mobile-full-height{min-height:-webkit-fill-available}body{position:relative;overflow-x:hidden}input,select,textarea{-webkit-appearance:none;border-radius:8px}}@media (max-width:768px){html{-webkit-text-size-adjust:100%;text-size-adjust:100%}*{-webkit-tap-highlight-color:rgba(59,130,246,.15);tap-highlight-color:rgba(59,130,246,.15)}}.has-sticky-button{padding-bottom:80px}@media (max-width:768px){.skeleton{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}}@media (max-width:768px){button:focus,input:focus,select:focus,textarea:focus{outline:2px solid #3b82f6;outline-offset:2px}}@media (max-width:768px){@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.mobile-animated{will-change:transform;transform:translateZ(0)}}