.booking-wizard{margin:0 auto}.booking-steps{display:flex;justify-content:center;gap:.5rem;margin-bottom:3rem;padding:1.5rem;background:var(--color-bg-soft);border-radius:1rem}.step{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--color-text-muted);transition:all .3s ease;white-space:nowrap}.step.active{background:var(--color-primary);color:#fff}.step.active .step-number{background:#fff3;color:#fff}.step.completed{color:var(--color-primary);cursor:pointer}.step.completed .step-number{background:var(--color-primary-100);color:var(--color-primary)}.step.completed:hover{background:var(--color-primary-50, rgba(var(--color-primary-rgb, 99, 91, 255), .08))}.step-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-border);font-weight:600;font-size:.8rem;flex-shrink:0;margin:0}.step-label{line-height:1}@media(max-width:767px){.step-label{display:none}}.booking-step-content{display:none;animation:fadeInUp .4s ease}.booking-step-content.active{display:block}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.step-title{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;color:var(--color-text)}.services-grid{display:grid;grid-template-columns:repeat(var(--services-per-row, 3),1fr);gap:1rem}.service-card{cursor:pointer;display:block}.service-card .service-card-body{padding:1.5rem;border:2px solid var(--color-border);border-radius:.75rem;background:var(--color-bg);transition:all .25s ease}.service-card:hover .service-card-body{border-color:var(--color-primary-200);box-shadow:0 4px 16px color-mix(in srgb,var(--color-primary) 8%,transparent)}.service-card input:checked+.service-card-body{border-color:var(--color-primary);background:var(--color-primary-100);box-shadow:0 0 0 1px var(--color-primary)}.service-name{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.service-desc{font-size:.875rem;color:var(--color-text-muted);line-height:1.6;margin-bottom:1rem}.service-meta{display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;border-top:1px solid var(--color-border)}.service-duration{font-size:.8125rem;color:var(--color-text-muted);display:flex;align-items:center;gap:.375rem}.service-price{font-weight:700;color:var(--color-primary);font-size:1rem}.providers-grid{display:grid;grid-template-columns:repeat(var(--providers-per-row, 4),1fr);gap:1rem}.provider-card{cursor:pointer;display:block}.provider-card .provider-card-body{padding:1.5rem;border:2px solid var(--color-border);border-radius:.75rem;text-align:center;transition:all .25s ease}.provider-card:hover .provider-card-body{border-color:var(--color-primary-200)}.provider-card input:checked+.provider-card-body{border-color:var(--color-primary);background:var(--color-primary-100)}.provider-avatar{width:64px;height:64px;border-radius:50%;background:var(--color-bg-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;overflow:hidden}.provider-avatar img{width:100%;height:100%;object-fit:cover}.provider-avatar i{font-size:1.5rem;color:var(--color-text-muted)}.provider-name{font-size:1rem;font-weight:600;margin:0}.provider-bio{font-size:.8125rem;color:var(--color-text-muted);margin:.25rem 0 0;line-height:1.4}.booking-calendar{background:var(--color-bg);border:1px solid var(--color-border);border-radius:.75rem;padding:1.5rem}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.calendar-title{font-weight:700;font-size:1.125rem}.calendar-nav{background:none;border:1px solid var(--color-border);border-radius:.375rem;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text);transition:all .2s ease}.calendar-nav:hover{background:var(--color-bg-soft);border-color:var(--color-primary);color:var(--color-primary)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.5rem}.calendar-weekdays span{text-align:center;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:.5rem 0}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:default;position:relative;transition:all .2s ease}.calendar-day.empty{visibility:hidden}.calendar-day.past,.calendar-day.unavailable{color:var(--color-border)}.calendar-day.available{cursor:pointer;color:var(--color-text)}.calendar-day.available:after{content:"";position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:#10b981}.calendar-day.available:hover{background:var(--color-primary-100);color:var(--color-primary)}.calendar-day.selected{background:var(--color-primary);color:#fff}.calendar-day.selected:after{background:#fff}.calendar-day.today{font-weight:700;color:var(--color-primary)}.booking-step-error{display:flex;align-items:center;padding:.75rem 1rem;margin-bottom:1.25rem;border-radius:.5rem;background:#ef444414;border:1px solid rgba(239,68,68,.25);color:#dc2626;font-size:.875rem;font-weight:500;animation:fadeInUp .3s ease}.booking-step-error i{flex-shrink:0;font-size:1rem}.slots-title{font-size:1.125rem;font-weight:700;margin-bottom:1rem}.time-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-height:360px;overflow-y:auto}.time-slot{padding:.75rem;border:1px solid var(--color-border);border-radius:.5rem;text-align:center;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease}.time-slot:hover{border-color:var(--color-primary);background:var(--color-primary-100)}.time-slot.selected{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.no-slots{grid-column:1/-1;text-align:center;padding:2rem;color:var(--color-text-muted)}.details-form{background:var(--color-bg);border:1px solid var(--color-border);border-radius:.75rem;padding:1.5rem}.booking-summary{background:var(--color-bg-soft);border-radius:.75rem;padding:1.5rem;position:sticky;top:calc(var(--header-height, 0px) + 1rem)}.summary-title{font-size:1.125rem;font-weight:700;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.summary-item{padding:.625rem 0;border-bottom:1px solid var(--color-border);font-size:.875rem}.summary-item:last-child{border-bottom:none}.summary-item .summary-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:.25rem}.summary-item .summary-value{font-weight:500}.booking-nav{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.confirmation-card{text-align:center;background:var(--color-bg);border:1px solid var(--color-border);border-radius:1rem;padding:3rem}.confirmation-icon{width:80px;height:80px;border-radius:50%;background:#10b98114;color:#10b981;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.confirmation-heading{font-size:1.75rem;font-weight:700;margin-bottom:.75rem}.confirmation-message{color:var(--color-text-muted);margin-bottom:2rem;max-width:480px;margin-left:auto;margin-right:auto;line-height:1.7}.appointment-details{background:var(--color-bg-soft);border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem;text-align:left}.appointment-details h3{font-size:1rem;font-weight:700;margin-bottom:1rem}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media(max-width:576px){.detail-grid{grid-template-columns:1fr}}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.detail-value{font-weight:500}.status-note{font-size:.875rem;color:var(--color-text-muted);font-style:italic;margin-bottom:1.5rem}.confirmation-actions{display:flex;gap:1rem;justify-content:center}.slots-loading{display:flex;align-items:center;justify-content:center;padding:2rem;grid-column:1/-1}.loading-spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.my-bookings .empty-state{text-align:center;padding:4rem 1rem;background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:1rem}.my-bookings .empty-state i{font-size:3rem;color:var(--color-text-muted);margin-bottom:1.5rem}.my-bookings .empty-state h3{font-size:1.25rem;margin-bottom:.5rem}.my-bookings .empty-state p{color:var(--color-text-muted);margin-bottom:1.5rem}.my-bookings .pagination-wrapper{margin-top:2.5rem;display:flex;justify-content:center}@media(max-width:767px){.booking-steps{gap:.25rem;padding:1rem}.step{padding:.5rem .75rem}.services-grid,.providers-grid{grid-template-columns:1fr}.time-slots{grid-template-columns:repeat(2,1fr)}.confirmation-card{padding:2rem 1.5rem}.confirmation-actions{flex-direction:column}}[data-bs-theme=dark] .booking-step-error{color:#fca5a5}[data-bs-theme=dark] .confirmation-icon{color:#6ee7b7}
