@tailwind base;@tailwind components;@tailwind utilities;*{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}button,a,input,textarea,select{transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .1s ease}.preload *{transition:none!important}@layer utilities{.animate-fade-in{animation:fadeIn .3s ease-in}.animate-slide-up{animation:slideUp .3s ease-out}.animate-shake{animation:shake .5s ease-in-out}.animate-pulse-once{animation:pulseOnce .6s ease-in-out}.animate-scale-in{animation:scaleIn .2s ease-out}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes pulseOnce{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes tooltipFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tooltipFadeOut{0%{opacity:1}to{opacity:0}}@keyframes tooltipSlideDown{0%{transform:translateY(-4px)}to{transform:translateY(0)}}@keyframes tooltipSlideUp{0%{transform:translateY(4px)}to{transform:translateY(0)}}@keyframes tooltipSlideLeft{0%{transform:translate(4px)}to{transform:translate(0)}}@keyframes tooltipSlideRight{0%{transform:translate(-4px)}to{transform:translate(0)}}[data-state=delayed-open],[data-state=instant-open]{animation:tooltipFadeIn .15s cubic-bezier(.16,1,.3,1)}[data-state=closed]{animation:tooltipFadeOut .1s ease-out}[data-side=top] .tooltip-movement{animation:tooltipSlideDown .15s cubic-bezier(.16,1,.3,1)}[data-side=bottom] .tooltip-movement{animation:tooltipSlideUp .15s cubic-bezier(.16,1,.3,1)}[data-side=left] .tooltip-movement{animation:tooltipSlideRight .15s cubic-bezier(.16,1,.3,1)}[data-side=right] .tooltip-movement{animation:tooltipSlideLeft .15s cubic-bezier(.16,1,.3,1)}.booking-card{@apply transition-all duration-200 ease-in-out;}.booking-card:hover{@apply shadow-lg -translate-y-0.5 scale-[1.01];}.booking-card:active{@apply scale-[.98];}.empty-slot{@apply transition-all duration-200;}.empty-slot:hover{@apply border-blue-400 shadow-sm bg-blue-50/30 dark:bg-blue-900/10;}.btn-hover{@apply transition-all duration-200 hover:shadow-md hover:-translate-y-0.5;}@layer utilities{.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}}@layer components{.touch-target{@apply min-h-[44px] min-w-[44px];}.btn-touch{@apply min-h-[44px] px-4 py-3 text-base font-medium rounded-lg;@apply transition-all duration-150 ease-out;@apply select-none touch-manipulation;}.btn-touch:active{@apply scale-95;}.btn-icon-touch{@apply min-h-[44px] min-w-[44px] p-2.5 rounded-lg;@apply flex items-center justify-center;@apply transition-all duration-150 ease-out;@apply select-none touch-manipulation;}.btn-icon-touch:active{@apply scale-90;}.card-touch{@apply min-h-[44px] p-4 rounded-xl;@apply transition-all duration-200 ease-out;@apply select-none touch-manipulation cursor-pointer;}.card-touch:active{@apply scale-[.98] shadow-md;}.slot-touch{@apply min-h-[80px] p-4 rounded-lg;@apply transition-all duration-200 ease-out;@apply select-none touch-manipulation cursor-pointer;}.slot-touch:active{@apply scale-[.97] bg-blue-50 dark:bg-blue-900/20;}.modal-close-touch{@apply min-h-[48px] min-w-[48px] p-3 rounded-full;@apply transition-all duration-150 ease-out;@apply select-none touch-manipulation;}.modal-close-touch:active{@apply scale-90 bg-gray-200 dark:bg-slate-600;}}@media(hover:none)and (pointer:coarse){.hover\:shadow-lg:hover{box-shadow:none}.hover\:-translate-y-0\.5:hover{transform:translateY(0)}button:active,.btn-touch:active,.card-touch:active{opacity:.8}}.modal-backdrop{animation:fadeIn .2s ease-in}.modal-content{animation:slideUp .3s ease-out}.modal-enter{animation:modalSlideUp .2s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@layer components{.calendar-grid{display:grid;gap:.75rem}.calendar-grid>*{min-width:0;overflow:hidden}.booking-card{height:90px;overflow:hidden}.empty-slot{height:90px}.outdoor-session-slots{height:calc(270px + 1rem)}}@media(max-width:1024px){.calendar-grid{grid-template-columns:150px repeat(7,minmax(140px,1fr))}}@media(min-width:1024px){.calendar-grid{grid-template-columns:180px repeat(7,minmax(160px,1fr))}}@media(min-width:1440px){.calendar-grid{grid-template-columns:200px repeat(7,minmax(180px,1fr))}}
