.scheduling-container{max-width:800px;margin:0 auto;padding:var(--space-xl);background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.scheduling-header{text-align:center;margin-bottom:var(--space-xs);padding-bottom:var(--space-lg);border-bottom:1px solid var(--gray-200)}.appointment-type-title{color:var(--primary-blue);margin-bottom:var(--space-sm);padding-top:var(--space-lg);padding-left:var(--space-sm);padding-right:var(--space-sm)}.appointment-type-info{color:var(--gray-600);font-size:.95rem;line-height:1.5;padding-left:var(--space-sm);padding-right:var(--space-sm)}.appointment-duration{display:inline-block;background:var(--light-blue);color:var(--primary-blue);padding:4px 12px;border-radius:var(--radius-sm);font-weight:500;font-size:.9rem;margin-top:var(--space-sm);padding-left:var(--space-sm);padding-right:var(--space-sm)}.scheduling-grid{display:grid;grid-template-columns:2fr 1fr;gap:0;align-items:start}.calendar-section{background:var(--gray-50);border-radius:var(--radius-md);padding:var(--space-xl);box-sizing:border-box}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);width:100%}.calendar-month-year{font-size:1.25rem;font-weight:600;color:var(--dark-blue)}.calendar-nav{display:flex;gap:var(--space-sm)}.calendar-nav-btn{background:var(--white);border:1px solid var(--primary-blue);border-radius:50%;width:50px;height:50px;min-height:36px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:var(--primary-blue);font-weight:600;font-size:18px;flex-shrink:0;z-index:10;box-shadow:0 2px 4px #0000001a}.calendar-nav-btn:hover{background:var(--primary-blue);color:var(--white);border-color:var(--primary-blue);opacity:.9;transform:translateY(-1px)}.calendar-nav-btn:disabled,.calendar-nav-btn.disabled{background:var(--gray-100);color:var(--gray-400);border-color:var(--gray-300);cursor:not-allowed;opacity:.6;box-shadow:none}.calendar-nav-btn:disabled:hover,.calendar-nav-btn.disabled:hover{background:var(--gray-100);color:var(--gray-400);border-color:var(--gray-300);transform:none;opacity:.6}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);background:transparent;border-radius:var(--radius-sm);aspect-ratio:7/6;width:100%;max-width:100%;box-sizing:border-box}.calendar-day-header{background:var(--gray-100);color:var(--gray-600);padding:10px 8px;text-align:center;font-size:.85rem;font-weight:600;letter-spacing:.5px}.calendar-day{background:var(--white);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;font-weight:500;position:relative;aspect-ratio:1}.calendar-day.available{position:relative}.calendar-day.available:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:32px;height:32px;border:2px solid var(--primary-blue);border-radius:50%;z-index:1}.calendar-day.available:hover:before{background:var(--primary-blue)}.calendar-day.available span{position:relative;z-index:2}.calendar-day.available:hover span{color:var(--white)}.calendar-day.available:hover:not(.selected):before{background:var(--primary-blue)}.calendar-day.available:hover:not(.selected) span{color:var(--white);font-weight:400}.calendar-day.selected:hover:before{background:var(--primary-blue)}.calendar-day.selected:hover span{color:var(--white);font-weight:600}.calendar-day.selected:before{background:var(--primary-blue)}.calendar-day.selected span{color:var(--white);font-weight:600}.calendar-day.unavailable{color:var(--gray-400);cursor:not-allowed;background:var(--gray-100)}.calendar-day.today{position:relative}.calendar-day.today span{color:var(--warm-orange);font-weight:600}.calendar-day-empty{background:transparent;pointer-events:none;opacity:0;cursor:default;aspect-ratio:1}.timeslots-section{background:var(--white);border-radius:var(--radius-md);height:500px;display:flex;flex-direction:column}.timeslots-header{padding:var(--space-lg) var(--space-lg) var(--space-sm) var(--space-lg);background:var(--gray-50);border-radius:var(--radius-md) var(--radius-md) 0 0}.timeslots-date{font-weight:600;color:var(--dark-blue);margin-bottom:4px}.timeslots-count{font-size:.9rem;color:var(--gray-600)}.timeslots-list{flex:1;padding:var(--space-sm) var(--space-md) var(--space-md) var(--space-md);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}.timeslots-list::-webkit-scrollbar{width:6px}.timeslots-list::-webkit-scrollbar-track{background:transparent}.timeslots-list::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}.timeslots-list::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.timeslot-item{background:var(--light-blue);border:1px solid var(--primary-blue);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:8px;cursor:pointer;transition:all .2s ease;text-align:center;font-weight:500;color:var(--primary-blue)}.timeslot-item:hover{background:var(--primary-blue);color:var(--white);transform:translateY(-1px);box-shadow:0 4px 12px #4f7fc44d}.timeslot-item.selected{background:var(--primary-blue);color:var(--white);box-shadow:0 4px 12px #4f7fc466}.timeslots-empty{padding:var(--space-xl);text-align:center;color:var(--gray-500);font-style:italic}.timeslots-empty-icon{font-size:2rem;margin-bottom:var(--space-md);color:var(--gray-400)}@media(max-width:768px){.scheduling-container{margin:0 var(--space-md);padding:var(--space-md)}.scheduling-grid{grid-template-columns:1fr;gap:var(--space-xxs)}.calendar-section{padding:var(--space-lg);order:1}.timeslots-section{order:2;height:300px}.timeslots-list{display:grid;grid-template-columns:repeat(auto-fill,80px);gap:var(--space-xs);justify-content:center;align-content:start}.timeslot-item{width:80px;height:80px;padding:0;font-size:.85rem;margin-bottom:0;display:flex;align-items:center;justify-content:center}.calendar-day{font-size:.9rem}.calendar-month-year{font-size:1.1rem}.calendar-nav-btn{width:44px;height:44px}.calendar-day.available:before{width:30px;height:30px}}@media(max-width:480px){.scheduling-container{margin:0 var(--space-xxs);padding:var(--space-md)}.calendar-section{padding:var(--space-md);order:1}.calendar-day{font-size:.85rem}.calendar-day-header{padding:8px 4px;font-size:.8rem}.timeslots-list{grid-template-columns:repeat(auto-fill,65px);row-gap:0;column-gap:var(--space-xs)}.timeslot-item{width:65px;height:55px;padding:0;font-size:.85rem;margin-bottom:var(--space-xs);display:flex;align-items:center;justify-content:center}.calendar-day.available:before{width:28px;height:28px}}@media(max-width:360px){.calendar-day.available:before{width:24px;height:24px}.calendar-section{padding:var(--space-xs);order:1}}.scheduling-loading{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--gray-500)}.scheduling-error{background:var(--error-light);border:1px solid var(--error-color);border-radius:var(--radius-md);padding:var(--space-lg);margin:var(--space-lg) 0;color:var(--error-color);text-align:center}.calendar-day,.timeslot-item{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.timeslots-section{animation:slideInRight .4s ease-out}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.booking-form-section{max-width:600px;margin:var(--space-xl) auto 0;padding:var(--space-xxl);background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);animation:slideInUp .4s ease-out;box-shadow:var(--shadow-sm)}.booking-form-header{text-align:center;margin-bottom:var(--space-xl)}.booking-form-title{color:var(--primary-blue);font-size:1.5rem;font-weight:700;margin-bottom:var(--space-sm)}.booking-form-subtitle{color:var(--gray-600);font-size:.95rem;line-height:1.5}.booking-form{max-width:600px;margin:0 auto}.form-group{margin-bottom:var(--space-lg)}.form-label{display:block;margin-bottom:var(--space-sm);font-weight:600;color:var(--text-primary);font-size:16px;text-align:left}.required{color:#dc2626}.form-input,.form-textarea{width:100%;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;font-size:16px;font-family:inherit;background-color:#fff;transition:border-color .3s ease;box-sizing:border-box}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--primary-blue)}.form-input.error,.form-textarea.error{border-color:#dc2626}.form-textarea{min-height:180px;resize:none;font-family:inherit}.checkbox-group{margin-bottom:var(--space-lg)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--space-sm);cursor:pointer;font-size:15px;line-height:1.5;text-align:left}.checkbox-input{margin:2px 0 0;width:18px;height:18px;flex-shrink:0;cursor:pointer}.checkbox-text{color:var(--text-primary);flex:1;text-align:left}.checkbox-text a{color:var(--primary-blue);text-decoration:none}.checkbox-text a:hover{text-decoration:underline}.privacy-note{font-size:14px;color:var(--text-secondary);margin-bottom:var(--space-lg)}.privacy-note a{color:var(--primary-blue);text-decoration:none}.privacy-note a:hover{text-decoration:underline}.text-center{text-align:center}.error-message{color:#dc2626;font-size:14px;margin-top:4px;display:none}.error-message.show{display:block}@media(max-width:768px){.booking-form-section{margin:var(--space-lg) auto 0;padding:var(--space-lg)}.booking-form{max-width:100%}.form-input,.form-textarea{padding:10px 14px}.booking-form-title{font-size:1.1rem}.booking-form-subtitle{font-size:.9rem}}.success-message-section{max-width:700px;margin:var(--space-xl) auto 0;padding:var(--space-xxl);background:var(--white);border:2px solid var(--primary-blue);border-radius:var(--radius-lg);text-align:center;animation:slideInUp .6s ease-out}.success-content{max-width:600px;margin:0 auto}.success-icon{font-size:4rem;margin-bottom:var(--space-lg);display:block}.success-title{color:var(--primary-blue);font-size:2rem;font-weight:700;margin-bottom:var(--space-md);line-height:1.2}.success-description{color:var(--gray-700);font-size:1.1rem;line-height:1.6;margin-bottom:var(--space-xl)}.success-appointment-details{background:var(--light-blue);padding:var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-xl);text-align:left}.appointment-summary h4{color:var(--primary-blue);font-size:1.1rem;font-weight:600;margin-bottom:var(--space-md);text-align:center}.appointment-summary p{margin-bottom:var(--space-sm);color:var(--gray-700);font-size:.95rem;line-height:1.5}.appointment-summary p:last-child{margin-bottom:0}.success-next-steps{background:var(--gray-50);padding:var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-xl);text-align:left}.success-next-steps h4{color:var(--dark-blue);font-size:1.1rem;font-weight:600;margin-bottom:var(--space-md);text-align:center}.success-next-steps ul{list-style:none;padding:0;margin:0}.success-next-steps li{padding:var(--space-sm) 0;color:var(--gray-700);font-size:.95rem;line-height:1.5}.success-contact{background:var(--warm-orange);color:var(--white);padding:var(--space-lg);border-radius:var(--radius-md);font-size:.95rem;line-height:1.6}.success-contact strong{display:block;margin-bottom:var(--space-sm);font-weight:600}.success-contact a{color:var(--white);text-decoration:underline;font-weight:500}.success-contact a:hover{text-decoration:none}@media(max-width:768px){.success-message-section{margin-top:var(--space-lg);padding:var(--space-lg)}.success-title{font-size:1.6rem}.success-description{font-size:1rem}.success-appointment-details,.success-next-steps,.success-contact{padding:var(--space-md)}}@media(max-width:480px){.success-icon{font-size:3rem}.success-title{font-size:1.4rem}.success-description{font-size:.95rem}.appointment-summary h4,.success-next-steps h4{font-size:1rem}.success-next-steps li{font-size:.9rem}}.success-warnings{background:#fef3c7;border:2px solid #f59e0b;border-radius:var(--radius-md);padding:var(--space-lg);margin-top:var(--space-lg)}.success-warnings h4{margin:0 0 var(--space-sm) 0;color:#92400e;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:var(--space-xs)}.success-warnings ul{margin:0;padding-left:var(--space-lg);list-style-type:disc}.success-warnings li{color:#78350f;margin-bottom:var(--space-xs);line-height:1.5}.success-warnings li:last-child{margin-bottom:0}@media(max-width:768px){.success-warnings{padding:var(--space-md);margin-top:var(--space-md)}.success-warnings h4{font-size:.95rem}.success-warnings ul{padding-left:var(--space-md)}.success-warnings li{font-size:.9rem}}.booking-error-container{margin:var(--space-lg) 0;display:none}.booking-error-message{display:flex;align-items:flex-start;gap:var(--space-md);background:#fef2f2;border:2px solid #dc2626;border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.error-icon{font-size:1.5rem;flex-shrink:0;margin-top:2px}.error-content{flex:1}.error-content h4{margin:0 0 var(--space-sm) 0;color:#dc2626;font-size:1.1rem;font-weight:600}.error-content p{margin:0 0 var(--space-md) 0;color:#7f1d1d;line-height:1.5}.contact-info{background:#dc26260d;border:1px solid rgba(220,38,38,.2);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);margin-top:var(--space-sm)}.contact-info strong{color:#7f1d1d;font-size:.9rem;display:block;margin-bottom:var(--space-xs)}.contact-email{color:var(--primary-blue)!important;text-decoration:none;font-weight:500;padding:4px 8px;background:#4f7fc41a;border-radius:var(--radius-xs);display:inline-block;transition:all .2s ease}.contact-email:hover{background:#4f7fc433;text-decoration:underline}@media(max-width:768px){.booking-error-message{flex-direction:column;gap:var(--space-sm);padding:var(--space-md)}.error-icon{font-size:1.25rem}.error-content h4{font-size:1rem}.contact-info{padding:var(--space-xs) var(--space-sm)}}@media(max-width:480px){.booking-error-container{margin:var(--space-md) 0}.booking-error-message{padding:var(--space-sm)}.error-content h4{font-size:.95rem}.error-content p{font-size:.9rem}.contact-info strong{font-size:.85rem}}
