:root{--ms-booking-surface: rgba(255, 255, 255, .03);--ms-booking-muted: rgba(255, 255, 255, .02);--ms-booking-border: rgba(255, 255, 255, .06);--ms-booking-border-2: rgba(255, 255, 255, .08);--ms-booking-border-3: rgba(255, 255, 255, .1);--ms-booking-row-border: rgba(255, 255, 255, .05);--ms-booking-control-bg: rgba(255, 255, 255, .05);--ms-booking-input-bg: rgba(255, 255, 255, .05);--ms-booking-faint: rgba(255, 255, 255, .2);--ms-booking-faint-2: rgba(255, 255, 255, .1);--ms-gold-tint-5: rgba(201, 150, 46, .05);--ms-gold-tint-10: rgba(201, 150, 46, .1);--ms-gold-tint-15: rgba(201, 150, 46, .15);--ms-gold-tint-20: rgba(201, 150, 46, .2);--ms-green-bg: rgba(34, 197, 94, .1);--ms-green-bg-hover: rgba(34, 197, 94, .2);--ms-green-border: rgba(34, 197, 94, .2);--ms-green-border-hover: rgba(34, 197, 94, .4);--ms-green-label: rgba(34, 197, 94, .7);--ms-purple-tint: rgba(168, 85, 247, .1);--ms-purple-border: rgba(168, 85, 247, .2);--ms-purple-label: rgba(168, 85, 247, .7);--ms-error: #ef4444;--ms-error-bg: rgba(239, 68, 68, .1);--ms-error-border: rgba(239, 68, 68, .2);--ms-success: #22c55e;--ms-success-bg: rgba(34, 197, 94, .1);--ms-success-border: rgba(34, 197, 94, .2);--ms-info: #3b82f6;--ms-info-bg: rgba(59, 130, 246, .1);--ms-info-border: rgba(59, 130, 246, .2)}[data-theme=light]{--ms-booking-surface: rgba(0, 0, 0, .03);--ms-booking-muted: rgba(0, 0, 0, .02);--ms-booking-border: rgba(0, 0, 0, .08);--ms-booking-border-2: rgba(0, 0, 0, .1);--ms-booking-border-3: rgba(0, 0, 0, .12);--ms-booking-row-border: rgba(0, 0, 0, .06);--ms-booking-control-bg: rgba(0, 0, 0, .05);--ms-booking-input-bg: rgba(255, 255, 255, .7);--ms-booking-faint: rgba(0, 0, 0, .4);--ms-booking-faint-2: rgba(0, 0, 0, .25);--ms-gold-tint-5: rgba(138, 90, 28, .05);--ms-gold-tint-10: rgba(138, 90, 28, .1);--ms-gold-tint-15: rgba(138, 90, 28, .15);--ms-gold-tint-20: rgba(138, 90, 28, .2);--ms-green-bg: rgba(34, 197, 94, .12);--ms-green-bg-hover: rgba(34, 197, 94, .22);--ms-green-border: rgba(34, 197, 94, .25);--ms-green-border-hover: rgba(34, 197, 94, .45);--ms-green-label: rgba(34, 197, 94, .75);--ms-purple-tint: rgba(168, 85, 247, .12);--ms-purple-border: rgba(168, 85, 247, .25);--ms-purple-label: rgba(168, 85, 247, .75);--ms-error: #dc2626;--ms-error-bg: rgba(220, 38, 38, .1);--ms-error-border: rgba(220, 38, 38, .25);--ms-success: #15803d;--ms-success-bg: rgba(21, 128, 61, .1);--ms-success-border: rgba(21, 128, 61, .25);--ms-info: #1d4ed8;--ms-info-bg: rgba(29, 78, 216, .1);--ms-info-border: rgba(29, 78, 216, .25)}.booking-container{max-width:900px;margin:0 auto;padding:2rem 1rem}.booking-steps{display:flex;justify-content:center;gap:.5rem;margin-bottom:3rem}.booking-step{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:9999px;font-size:.8rem;font-weight:500;color:var(--ms-muted);background:var(--ms-booking-surface);border:1px solid var(--ms-booking-border);transition:all .3s ease}.booking-step.active{color:var(--ms-gold);background:var(--ms-gold-tint-10);border-color:var(--ms-border)}.booking-step.completed{color:var(--ms-ivory);background:var(--ms-gold-tint-15);border-color:var(--ms-gold)}.booking-step-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.75rem;font-weight:700;background:var(--ms-booking-border-3);color:var(--ms-muted);flex-shrink:0}.booking-step.active .booking-step-number,.booking-step.completed .booking-step-number{background:var(--ms-gold);color:var(--ms-black)}.booking-step-content{display:none}.booking-step-content.active{display:block;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.booking-section-title{font-family:Cinzel,Georgia,serif;font-size:1.5rem;color:var(--ms-gold);text-align:center;margin-bottom:.5rem}.booking-section-subtitle{text-align:center;color:var(--ms-muted);font-size:.9rem;margin-bottom:2rem}.booking-products{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:768px){.booking-products{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.booking-products{grid-template-columns:1fr}}.booking-product-card{background:var(--ms-booking-surface);border:1px solid var(--ms-booking-border-2);border-radius:1rem;padding:1.5rem;text-align:center;cursor:pointer;transition:all .3s ease;position:relative}.booking-product-card:hover{background:var(--ms-gold-tint-5);border-color:var(--ms-border);transform:translateY(-2px)}.booking-product-card.selected{border-color:var(--ms-gold);background:var(--ms-gold-tint-10);box-shadow:0 0 20px var(--ms-glow)}.booking-product-card.featured{border-color:var(--ms-gold);background:var(--ms-gold-tint-5)}.booking-product-icon{width:64px;height:64px;margin:0 auto 1rem;object-fit:contain}.booking-product-name{font-family:Cinzel,Georgia,serif;font-size:1rem;color:var(--ms-ivory);margin-bottom:.5rem;line-height:1.3}.booking-product-desc{font-size:.8rem;color:var(--ms-muted);margin-bottom:1rem;line-height:1.5}.booking-product-price{font-family:Cinzel,Georgia,serif;font-size:1.25rem;color:var(--ms-gold);font-weight:600}.booking-product-badge{position:absolute;top:-.5rem;right:-.5rem;background:var(--ms-gold);color:var(--ms-black);font-size:.65rem;font-weight:700;padding:.2rem .6rem;border-radius:9999px;text-transform:uppercase}.booking-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.booking-calendar-title{font-family:Cinzel,Georgia,serif;font-size:1.1rem;color:var(--ms-gold)}.booking-calendar-nav{display:flex;gap:.5rem}.booking-calendar-nav button{background:var(--ms-booking-control-bg);border:1px solid var(--ms-booking-border-3);color:var(--ms-muted);padding:.4rem .8rem;border-radius:.5rem;cursor:pointer;font-size:.8rem;transition:all .2s}.booking-calendar-nav button:hover{background:var(--ms-gold-tint-10);border-color:var(--ms-border);color:var(--ms-gold)}.booking-calendar-nav button:disabled{opacity:.3;cursor:not-allowed}.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:1rem}.booking-calendar-day-header{text-align:center;font-size:.75rem;color:var(--ms-muted);padding:.5rem 0;font-weight:600;text-transform:uppercase}.booking-calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:.5rem;font-size:.85rem;color:var(--ms-ivory);background:var(--ms-booking-surface);cursor:default;transition:all .2s;position:relative;min-height:60px}.booking-calendar-day.available{cursor:pointer;background:var(--ms-green-bg);border:1px solid var(--ms-green-border)}.booking-calendar-day.available:hover{background:var(--ms-green-bg-hover);border-color:var(--ms-green-border-hover);transform:scale(1.05)}.booking-calendar-day.selected{background:var(--ms-gold-tint-20);border:2px solid var(--ms-gold);transform:scale(1.05)}.booking-calendar-day.booked{background:var(--ms-booking-muted);color:var(--ms-booking-faint);text-decoration:line-through}.booking-calendar-day.cleansing{background:var(--ms-purple-tint);border:1px solid var(--ms-purple-border);color:var(--ms-purple);cursor:help}.booking-calendar-day.other-month{color:var(--ms-booking-faint-2)}.booking-calendar-day .day-number{font-weight:600;font-size:.9rem}.booking-calendar-day .day-label{font-size:.6rem;margin-top:2px;text-align:center;line-height:1.1}.booking-calendar-day.available .day-label{color:var(--ms-green-label)}.booking-calendar-day.cleansing .day-label{color:var(--ms-purple-label)}.booking-form{max-width:600px;margin:0 auto}.booking-form-group{margin-bottom:1.5rem}.booking-form-label{display:block;font-size:.85rem;color:var(--ms-ivory);margin-bottom:.5rem;font-weight:500}.booking-form-label .required{color:var(--ms-red);margin-left:2px}.booking-form-input,.booking-form-textarea{width:100%;background:var(--ms-booking-input-bg);border:1px solid var(--ms-booking-border-3);border-radius:.75rem;padding:.75rem 1rem;color:var(--ms-ivory);font-size:.9rem;font-family:Inter,system-ui,sans-serif;transition:all .2s;outline:none}.booking-form-input:focus,.booking-form-textarea:focus{border-color:var(--ms-gold);background:var(--ms-gold-tint-5);box-shadow:0 0 15px var(--ms-glow)}.booking-form-input.error,.booking-form-textarea.error{border-color:var(--ms-red)}.booking-form-textarea{min-height:100px;resize:vertical}.booking-form-error{font-size:.75rem;color:var(--ms-error);margin-top:.3rem}.booking-form-checkbox{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem;cursor:pointer}.booking-form-checkbox input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--ms-gold);flex-shrink:0}.booking-form-checkbox label{font-size:.85rem;color:var(--ms-muted);cursor:pointer;line-height:1.5}.booking-form-checkbox label a{color:var(--ms-gold);text-decoration:underline}.booking-buttons{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}.booking-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 2rem;border-radius:.75rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;border:none;font-family:Inter,system-ui,sans-serif}.booking-btn-primary{background:linear-gradient(135deg,var(--ms-gold),var(--ms-gold-soft));color:var(--ms-black)}.booking-btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 20px var(--ms-glow)}.booking-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.booking-btn-secondary{background:var(--ms-booking-control-bg);color:var(--ms-muted);border:1px solid var(--ms-booking-border-3)}.booking-btn-secondary:hover{background:var(--ms-booking-border-3);color:var(--ms-ivory)}.booking-spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--ms-booking-faint);border-top-color:var(--ms-gold);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.booking-message{padding:1rem 1.5rem;border-radius:.75rem;margin-bottom:1.5rem;font-size:.9rem;text-align:center}.booking-message.error{background:var(--ms-error-bg);border:1px solid var(--ms-error-border);color:var(--ms-error)}.booking-message.success{background:var(--ms-success-bg);border:1px solid var(--ms-success-border);color:var(--ms-success)}.booking-message.info{background:var(--ms-info-bg);border:1px solid var(--ms-info-border);color:var(--ms-info)}.booking-summary{background:var(--ms-booking-surface);border:1px solid var(--ms-booking-border-2);border-radius:1rem;padding:1.5rem;margin-bottom:2rem}.booking-summary-title{font-family:Cinzel,Georgia,serif;font-size:1.1rem;color:var(--ms-gold);margin-bottom:1rem}.booking-summary-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--ms-booking-row-border);font-size:.9rem}.booking-summary-row:last-child{border-bottom:none}.booking-summary-label{color:var(--ms-muted)}.booking-summary-value{color:var(--ms-ivory);font-weight:500}.booking-summary-total{font-family:Cinzel,Georgia,serif;font-size:1.3rem;color:var(--ms-gold);font-weight:700;padding-top:.75rem;border-top:2px solid var(--ms-border);margin-top:.5rem}.booking-result{text-align:center;padding:3rem 1rem;max-width:600px;margin:0 auto}.booking-result-icon{font-size:4rem;margin-bottom:1.5rem}.booking-result-title{font-family:Cinzel,Georgia,serif;font-size:2rem;color:var(--ms-gold);margin-bottom:1rem}.booking-result-text{color:var(--ms-muted);font-size:1rem;line-height:1.8;margin-bottom:2rem}.booking-result-details{background:var(--ms-booking-surface);border:1px solid var(--ms-booking-border-2);border-radius:1rem;padding:1.5rem;margin-bottom:2rem;text-align:left}.booking-result-details .detail-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--ms-booking-row-border);font-size:.9rem}.booking-result-details .detail-row:last-child{border-bottom:none}.booking-result-details .detail-label{color:var(--ms-muted)}.booking-result-details .detail-value{color:var(--ms-ivory);font-weight:500}@media(max-width:768px){.booking-container{padding:1rem .75rem}.booking-steps{gap:.25rem}.booking-step{padding:.4rem .6rem;font-size:.7rem}.booking-step-text{display:none}.booking-section-title{font-size:1.25rem}.booking-buttons{flex-direction:column}.booking-btn{width:100%;justify-content:center}.booking-calendar-day{min-height:45px;font-size:.75rem}.booking-calendar-day .day-label{font-size:.5rem}}
