:root{--primary: #6366f1;--primary-dark: #4f46e5;--secondary: #8b5cf6;--success: #22c55e;--warning: #f59e0b;--error: #ef4444;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--gray-50);color:var(--gray-900);line-height:1.5}.app{min-height:100vh;display:flex;flex-direction:column}.nav{background:#fff;border-bottom:1px solid var(--gray-200);padding:1rem 2rem;display:flex;align-items:center;gap:2rem;position:sticky;top:0;z-index:100}.nav-brand a{font-size:1.25rem;font-weight:700;color:var(--gray-900);text-decoration:none}.nav-links{display:flex;gap:.5rem}.nav-link{padding:.5rem 1rem;border-radius:var(--radius-sm);color:var(--gray-600);text-decoration:none;font-weight:500;transition:all .15s}.nav-link:hover{color:var(--primary);background:var(--gray-100)}.nav-link.active{color:var(--primary);background:#eef2ff}.main{flex:1;display:flex;flex-direction:column}.chat-container{flex:1;display:flex;flex-direction:column;max-width:900px;margin:0 auto;width:100%;padding:1rem}.chat-container.loading{justify-content:center;align-items:center}.loading-spinner{text-align:center;color:var(--gray-500)}.spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.spinner.small{width:20px;height:20px;border-width:2px;display:inline-block;margin-right:.5rem}@keyframes spin{to{transform:rotate(360deg)}}.messages{flex:1;overflow-y:auto;padding:1rem 0;display:flex;flex-direction:column;gap:1rem}.message{display:flex;gap:.75rem;max-width:85%}.message.user{align-self:flex-end;flex-direction:row-reverse}.message-avatar{width:36px;height:36px;border-radius:50%;background:var(--gray-100);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.message.assistant .message-avatar{background:#eef2ff}.message-content{background:#fff;padding:.875rem 1rem;border-radius:var(--radius);box-shadow:var(--shadow)}.message.user .message-content{background:var(--primary);color:#fff}.message-text{font-size:.9375rem}.message-text strong{font-weight:600}.slots-container{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.slot-card{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:.75rem 1rem;cursor:pointer;transition:all .15s;text-align:left;font-family:inherit}.slot-card:hover{border-color:var(--primary);background:#f5f3ff}.slot-date{font-weight:600;font-size:.875rem;color:var(--gray-800)}.slot-time{font-size:.8125rem;color:var(--gray-600)}.slot-duration{font-size:.75rem;color:var(--gray-400);margin-top:.25rem}.typing-indicator{display:flex;gap:4px;padding:.5rem 0}.typing-indicator span{width:8px;height:8px;background:var(--gray-400);border-radius:50%;animation:typing 1.4s infinite both}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.quick-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 0;border-top:1px solid var(--gray-200)}.quick-actions button{padding:.5rem .875rem;background:#fff;border:1px solid var(--gray-200);border-radius:9999px;font-size:.8125rem;cursor:pointer;transition:all .15s;color:var(--gray-700);font-family:inherit}.quick-actions button:hover{border-color:var(--primary);color:var(--primary)}.chat-input-form{display:flex;gap:.75rem;padding-top:.75rem;border-top:1px solid var(--gray-200)}.chat-input{flex:1;padding:.875rem 1rem;border:1px solid var(--gray-200);border-radius:var(--radius);font-size:.9375rem;outline:none;transition:border-color .15s;font-family:inherit}.chat-input:focus{border-color:var(--primary)}.send-button{padding:.875rem 1.5rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-weight:600;cursor:pointer;transition:background .15s;font-family:inherit}.send-button:hover:not(:disabled){background:var(--primary-dark)}.send-button:disabled{opacity:.5;cursor:not-allowed}.calendar-container{flex:1;display:flex;flex-direction:column;padding:1.5rem;max-width:1200px;margin:0 auto;width:100%}.calendar-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.calendar-title{flex:1}.calendar-title h2{font-size:1.5rem;font-weight:700}.week-range{color:var(--gray-500);font-size:.875rem}.nav-button,.today-button{padding:.5rem 1rem;border:1px solid var(--gray-200);background:#fff;border-radius:var(--radius-sm);cursor:pointer;font-weight:500;transition:all .15s;font-family:inherit}.nav-button:hover,.today-button:hover{border-color:var(--primary);color:var(--primary)}.calendar-content{display:grid;grid-template-columns:1fr 300px;gap:1.5rem;flex:1}@media (max-width: 900px){.calendar-content{grid-template-columns:1fr}}.week-view{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;background:#fff;border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.day-column{min-height:200px;border-radius:var(--radius-sm);padding:.5rem;cursor:pointer;transition:all .15s}.day-column:hover{background:var(--gray-50)}.day-column.selected{background:#eef2ff;box-shadow:inset 0 0 0 2px var(--primary)}.day-column.weekend{background:var(--gray-50)}.day-column.today .day-number{background:var(--primary);color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center}.day-header{text-align:center;margin-bottom:.5rem}.day-name{font-size:.75rem;text-transform:uppercase;color:var(--gray-500);font-weight:600}.day-number{font-size:1.125rem;font-weight:600}.day-events{display:flex;flex-direction:column;gap:.25rem}.no-events,.weekend-label{font-size:.75rem;color:var(--gray-400);text-align:center;padding:1rem 0}.mini-event{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-event-time{font-weight:500;margin-right:.25rem}.availability-panel{background:#fff;border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.availability-panel h3{margin-bottom:1rem;font-size:1.125rem}.availability-panel.loading{display:flex;align-items:center;justify-content:center;color:var(--gray-500)}.blocked-notice{background:#fef3c7;border:1px solid #f59e0b;border-radius:var(--radius-sm);padding:1rem;color:#92400e}.blocked-notice p{margin-top:.5rem;font-size:.875rem}.availability-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.stat{text-align:center;padding:1rem;background:var(--gray-50);border-radius:var(--radius-sm)}.stat-value{font-size:1.5rem;font-weight:700;color:var(--primary)}.stat-label{font-size:.75rem;color:var(--gray-500);margin-top:.25rem}.day-schedule h4{font-size:.875rem;color:var(--gray-500);margin-bottom:.75rem}.schedule-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--gray-100)}.schedule-time{font-size:.8125rem;color:var(--gray-500);min-width:110px}.schedule-title{font-size:.875rem}.calendar-legend{display:flex;justify-content:center;gap:1.5rem;padding:1rem;margin-top:1rem;font-size:.8125rem;color:var(--gray-600)}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.5rem}.booking-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;padding:2rem}.booking-page.loading,.booking-page.error{flex-direction:column;color:#fff}.booking-page .spinner{border-color:#ffffff4d;border-top-color:#fff}.error-icon{font-size:4rem;margin-bottom:1rem}.booking-page.error h2{color:#fff;margin-bottom:.5rem}.back-link{color:#fff;margin-top:1rem}.booking-container{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:600px;width:100%;padding:2rem}.booking-header{text-align:center;margin-bottom:2rem}.booking-header h1{font-size:1.75rem;margin-bottom:.5rem}.booking-header p{color:var(--gray-600)}.duration-badge{display:inline-block;background:var(--gray-100);padding:.5rem 1rem;border-radius:9999px;font-size:.875rem;margin-top:1rem}.slots-selection h3{margin-bottom:1rem}.date-tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:1rem;margin-bottom:1rem}.date-tab{display:flex;flex-direction:column;align-items:center;padding:.75rem 1rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:#fff;cursor:pointer;transition:all .15s;min-width:60px;font-family:inherit}.date-tab:hover{border-color:var(--primary)}.date-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.date-day{font-size:.75rem;text-transform:uppercase}.date-num{font-size:1.25rem;font-weight:700}.slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.booking-slot{padding:.75rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:#fff;cursor:pointer;transition:all .15s;font-weight:500;font-family:inherit}.booking-slot:hover{border-color:var(--primary);color:var(--primary)}.booking-slot.selected{background:var(--primary);border-color:var(--primary);color:#fff}.select-date-hint,.no-slots-message{text-align:center;padding:2rem;color:var(--gray-500)}.booking-form-container{animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.booking-form-container h3{margin-bottom:1rem}.selected-time{background:#eef2ff;padding:1rem;border-radius:var(--radius-sm);margin-bottom:1.5rem;text-align:center}.selected-time strong{display:block;color:var(--primary)}.selected-time span{color:var(--gray-600);font-size:.875rem}.booking-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:.875rem;font-weight:500;color:var(--gray-700)}.form-group input,.form-group textarea{padding:.75rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.9375rem;outline:none;transition:border-color .15s;font-family:inherit}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary)}.form-actions{display:flex;gap:1rem;margin-top:.5rem}.cancel-button{flex:1;padding:.875rem;border:1px solid var(--gray-200);background:#fff;border-radius:var(--radius-sm);cursor:pointer;font-weight:500;font-family:inherit}.submit-button{flex:2;padding:.875rem;border:none;background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;transition:background .15s;font-family:inherit}.submit-button:hover:not(:disabled){background:var(--primary-dark)}.submit-button:disabled{opacity:.5;cursor:not-allowed}.error-message{background:#fef2f2;border:1px solid var(--error);color:var(--error);padding:1rem;border-radius:var(--radius-sm);margin-top:1rem}.confirmation-view{text-align:center;padding:2rem 0}.confirmation-icon{font-size:4rem;margin-bottom:1rem}.confirmation-view h2{color:var(--success);margin-bottom:.5rem}.confirmation-view>p{color:var(--gray-600);margin-bottom:2rem}.confirmation-details{background:var(--gray-50);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}.detail-row{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid var(--gray-200)}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--gray-500)}.detail-value{font-weight:500}.detail-value.code{font-family:monospace;background:var(--gray-200);padding:.25rem .5rem;border-radius:4px}.confirmation-note{font-size:.875rem;color:var(--gray-500)}.booking-footer{text-align:center;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--gray-200);font-size:.8125rem;color:var(--gray-400)}
