.booking-skeleton{display:flex;flex-direction:column;gap:var(--space-4);animation:bookingSkeletonFadeIn .3s ease both}.booking-skeleton__steps{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3) 0}.booking-skeleton__dot{width:10px;height:10px;border-radius:50%;background:var(--color-border-light)}.booking-skeleton__dot--active{width:12px;height:12px;background:var(--color-primary);opacity:.4}.booking-skeleton__line{width:24px;height:2px;background:var(--color-border-light);border-radius:1px}.booking-skeleton__content{display:flex;flex-direction:column;gap:var(--space-3)}.booking-skeleton__bar{background:var(--color-bg-subtle,#f5f5f5);border-radius:var(--radius-sm);position:relative;overflow:hidden}.booking-skeleton__bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.5) 50%,transparent);animation:bookingSkeletonShimmer 1.5s ease-in-out infinite}[dir=rtl] .booking-skeleton__bar:after{animation:bookingSkeletonShimmerRtl 1.5s ease-in-out infinite}.booking-skeleton__title{height:22px;width:55%}.booking-skeleton__subtitle{height:14px;width:40%}.booking-skeleton__calendar{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:var(--border-width) solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-card)}.booking-skeleton__calendar-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--space-2)}.booking-skeleton__calendar-nav{width:28px;height:28px;border-radius:var(--radius-sm)}.booking-skeleton__calendar-month{height:16px;width:100px}.booking-skeleton__calendar-row{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.booking-skeleton__calendar-day{aspect-ratio:1;border-radius:var(--radius-sm)}.booking-skeleton__calendar-day--header{height:14px}.booking-skeleton__slots{display:flex;flex-direction:column;gap:var(--space-2)}.booking-skeleton__slots-label{height:14px;width:100px}.booking-skeleton__slots-row{display:flex;gap:var(--space-2);flex-wrap:wrap}.booking-skeleton__slot{height:38px;width:80px;border-radius:var(--radius-md)}@keyframes bookingSkeletonShimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes bookingSkeletonShimmerRtl{0%{transform:translateX(100%)}to{transform:translateX(-100%)}}@keyframes bookingSkeletonFadeIn{0%{opacity:0}to{opacity:1}}