.lv-booking{max-width:500px;margin:2rem auto 0}
.lv-booking__header{text-align:center;margin-bottom:2rem}
.lv-booking__loading{text-align:center;padding:3rem 1rem;color:var(--lv-muted-foreground)}
.lv-cal{background:var(--lv-background);border:1px solid var(--lv-border);border-radius:0.75rem;padding:1.5rem}
.lv-cal__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}
.lv-cal__month{font-family:var(--lv-font-heading);font-size:1.25rem;font-weight:500}
.lv-cal__nav-btn{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--lv-border);border-radius:50%;cursor:pointer;color:var(--lv-foreground)}
.lv-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0.25rem}
.lv-cal__head{text-align:center;font-size:0.6875rem;font-weight:600;text-transform:uppercase;color:var(--lv-muted-foreground);padding:0.5rem 0}
.lv-cal__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:0.875rem;border-radius:50%;border:none;background:none;color:var(--lv-muted-foreground)}
.lv-cal__day--empty{visibility:hidden}
.lv-cal__day--past{color:var(--lv-border)}
.lv-cal__day--unavailable{opacity:0.4}
.lv-cal__day--available{color:var(--lv-foreground);font-weight:600;cursor:pointer;background:hsl(150,25%,40%,0.08)}
.lv-cal__day--available:hover,.lv-cal__day--selected{background:var(--lv-primary);color:#fff}
.lv-slots{margin-top:1.5rem;padding:1.5rem;background:var(--lv-background);border:1px solid var(--lv-border);border-radius:0.75rem}
.lv-slots__label{font-family:var(--lv-font-heading);font-size:1.125rem;margin:0 0 1rem;text-align:center}
.lv-slots__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:0.5rem}
.lv-slots__btn{padding:0.625rem 0.5rem;font-size:0.875rem;background:var(--lv-muted);border:1px solid var(--lv-border);border-radius:var(--lv-radius);cursor:pointer}
.lv-slots__btn:hover{background:var(--lv-primary);color:#fff}
.lv-slots__back{display:block;margin:1rem auto 0;padding:0.5rem 1rem;font-size:0.8125rem;color:var(--lv-muted-foreground);background:none;border:none;cursor:pointer}
.lv-booking__form-wrap{margin-top:1.5rem}
.lv-booking__selected{margin-bottom:1.25rem}
.lv-booking__selected-info{padding:1rem;background:hsl(150,25%,40%,0.06);border:1px solid hsl(150,25%,40%,0.15);border-radius:var(--lv-radius);text-align:center}
.lv-booking__change{background:none;border:none;color:var(--lv-primary);font-size:0.8125rem;cursor:pointer;text-decoration:underline;margin-left:0.5rem}
.lv-booking__form{display:flex;flex-direction:column;gap:1rem}
.lv-booking__submit{width:100%;margin-top:0.5rem}
.lv-booking__error{padding:0.75rem 1rem;background:hsl(0,84%,60%,0.08);border:1px solid hsl(0,84%,60%,0.2);border-radius:var(--lv-radius);color:hsl(0,70%,45%);font-size:0.875rem;text-align:center}
.lv-booking__success{text-align:center;padding:3rem 1.5rem;background:var(--lv-background);border:1px solid var(--lv-border);border-radius:0.75rem}
.lv-booking__success-icon{color:var(--lv-primary);margin-bottom:1rem}
.lv-booking__success-text{font-size:1rem;margin-bottom:1rem}
.lv-booking__success-details{font-size:1.125rem;color:var(--lv-primary)}
@media(max-width:480px){.lv-slots__grid{grid-template-columns:repeat(3,1fr)}}
