.comfy-booking-container{max-width:900px;margin:0 auto;padding:0 1rem}.booking-step{background:#fff;border-radius:16px;padding:2rem;margin-bottom:1.5rem;box-shadow:0 4px 20px rgba(0,0,0,.06);opacity:.5;pointer-events:none;transition:opacity 0.3s,transform 0.3s}.booking-step.active{opacity:1;pointer-events:auto}.booking-step-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.step-number{width:40px;height:40px;background:linear-gradient(135deg,#0000ac 0%,#9999ff 100%);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;flex-shrink:0}.step-title{font-size:1.25rem;font-weight:700;color:#0000ac;margin:0 0 .25rem 0}.step-description{font-size:.9375rem;color:#6b7280;margin:0}.teachers-filters{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:.375rem;flex:1;min-width:160px}.filter-label{font-size:.8125rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.025em}.filter-select{padding:.625rem .875rem;background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;font-size:.9375rem;color:#1f2937;cursor:pointer;transition:border-color 0.2s;appearance:auto}.filter-select:focus{outline:none;border-color:#0000ac}.teachers-no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:#6b7280}.teachers-no-results p{margin:0}.teachers-no-results .text-muted{font-size:.875rem;color:#9ca3af}.teachers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.teacher-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9fafb;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all 0.2s;position:relative}.teacher-card:hover{background:#f3f4f6;border-color:#e5e7eb}.teacher-card.selected{background:#eff6ff;border-color:#0000ac}.teacher-avatar{width:64px;height:64px;background:linear-gradient(135deg,#0000ac 0%,#9999ff 100%);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.25rem;flex-shrink:0;overflow:hidden}.teacher-avatar img{width:100%;height:100%;object-fit:cover}.teacher-info{flex:1;min-width:0}.teacher-name{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 .25rem 0}.teacher-specialty{font-size:.875rem;color:#6b7280;margin:0 0 .5rem 0}.teacher-stats{display:flex;align-items:center;gap:1rem;font-size:.8125rem;color:#6b7280}.teacher-rating{display:flex;align-items:center;gap:.25rem;font-weight:600;color:#1f2937}.teacher-select-indicator{width:28px;height:28px;border:2px solid #e5e7eb;border-radius:50%;display:flex;align-items:center;justify-content:center;color:transparent;transition:all 0.2s}.teacher-card.selected .teacher-select-indicator{background:#0000ac;border-color:#0000ac;color:#fff}.teacher-card--disabled{opacity:.5;cursor:default;pointer-events:none}.teacher-card--disabled .teacher-avatar img{filter:grayscale(100%)}.teacher-unavailable-badge{font-size:.75rem;font-weight:600;color:#9ca3af;background:#f3f4f6;padding:.25rem .75rem;border-radius:20px;white-space:nowrap;flex-shrink:0}.dates-carousel{display:flex;align-items:center;gap:.5rem}.dates-nav{width:40px;height:40px;background:#fff;border:1px solid #e5e7eb;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;transition:all 0.2s;flex-shrink:0}.dates-nav:hover{background:#f3f4f6;color:#0000ac}.dates-container{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:.5rem 0;flex:1}.dates-container::-webkit-scrollbar{display:none}.date-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:70px;padding:.75rem 1rem;background:#f9fafb;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all 0.2s;scroll-snap-align:start}.date-card:hover{background:#f3f4f6;border-color:#e5e7eb}.date-card.selected{background:#0000ac;border-color:#0000ac}.date-day-name{font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase}.date-card.selected .date-day-name{color:rgba(255,255,255,.8)}.date-day{font-size:1.5rem;font-weight:700;color:#1f2937;line-height:1.2}.date-card.selected .date-day{color:#fff}.date-month{font-size:.75rem;color:#6b7280}.date-card.selected .date-month{color:rgba(255,255,255,.8)}.date-card--unavailable{opacity:.35;cursor:not-allowed;pointer-events:none;background:#f3f4f6;border-color:#e5e7eb}.date-card--unavailable .date-day-name,.date-card--unavailable .date-day,.date-card--unavailable .date-month{color:#9ca3af}.time-slots-container{min-height:150px}.time-slots-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;color:#6b7280}.loading-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#0000ac;border-radius:50%;animation:spin 0.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.time-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.75rem}.time-slot{padding:.875rem 1rem;background:#f9fafb;border:2px solid transparent;border-radius:8px;font-size:.9375rem;font-weight:600;color:#1f2937;cursor:pointer;transition:all 0.2s;text-align:center}.time-slot:hover{background:#f3f4f6;border-color:#e5e7eb}.time-slot.selected{background:linear-gradient(135deg,#6ee4d0 0%,#9999ff 100%);border-color:transparent;color:#0000ac}.time-slots-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:#6b7280}.time-slots-empty p{margin:0}.time-slots-empty .text-muted{font-size:.875rem;color:#9ca3af}.booking-summary{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 20px rgba(0,0,0,.08);border:2px solid #0000ac}.summary-title{font-size:1.25rem;font-weight:700;color:#0000ac;margin:0 0 1.5rem 0;text-align:center}.summary-card{background:#f9fafb;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.summary-item{display:flex;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid #e5e7eb}.summary-item:last-child{border-bottom:none}.summary-icon{font-size:1.5rem;width:40px;text-align:center}.summary-content{flex:1}.summary-label{display:block;font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.summary-value{display:block;font-size:1rem;font-weight:600;color:#1f2937}.summary-actions{display:flex;flex-direction:column;gap:.75rem}.btn-confirm-booking{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:1rem;background:linear-gradient(135deg,#0000ac 0%,#9999ff 100%);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform 0.2s,box-shadow 0.2s}.btn-confirm-booking:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,172,.3)}.btn-confirm-booking:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn-modify-booking{width:100%;padding:.875rem;background:transparent;color:#6b7280;border:1px solid #e5e7eb;border-radius:10px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all 0.2s}.btn-modify-booking:hover{background:#f3f4f6;color:#1f2937}.summary-note{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;font-size:.8125rem;color:#6b7280}.summary-note svg{color:#10b981}@media (max-width:767px){.booking-step{padding:1.5rem}.teachers-filters{flex-direction:column;gap:.75rem}.filter-group{min-width:100%}.teachers-grid{grid-template-columns:1fr}.teacher-card{padding:1rem}.teacher-avatar{width:56px;height:56px;font-size:1.125rem}.dates-nav{display:none}.dates-container{padding:.5rem;margin:0 -.5rem}.date-card{min-width:65px;padding:.625rem .75rem}.date-day{font-size:1.25rem}.time-slots-grid{grid-template-columns:repeat(3,1fr);gap:.5rem}.time-slot{padding:.75rem .5rem;font-size:.875rem}.summary-card{padding:1rem}.summary-item{padding:.5rem 0}.summary-icon{font-size:1.25rem;width:32px}}.gcal-embed-container{position:relative;width:100%;border-radius:12px;overflow:hidden;background:#fff;border:2px solid #e5e7eb}.gcal-embed-iframe{width:100%;height:700px;border:none;display:block}.gcal-embed-fallback{padding:.75rem 1rem;text-align:center;background:#f9fafb;border-top:1px solid #e5e7eb}.gcal-embed-link{display:inline-flex;align-items:center;gap:.5rem;color:#0000ac;text-decoration:none;font-size:.9rem;font-weight:500}.gcal-embed-link:hover{text-decoration:underline}@media (max-width:767px){.gcal-embed-iframe{height:600px}}@media (max-width:479px){.booking-step-header{flex-direction:column;text-align:center}.step-number{margin:0 auto}.step-info{text-align:center}.time-slots-grid{grid-template-columns:repeat(2,1fr)}}