.booking-container{background:#fff;font-family:Inter,sans-serif;margin:0 auto;max-width:1000px;min-height:100vh;padding:40px 20px}.booking-header{margin-bottom:40px;text-align:center}.booking-header h1{color:#5b21b6;font-size:2rem;margin-bottom:25px}.booking-logo-container{background-color:#5b21b6;border-radius:8px;margin-bottom:20px;padding:20px;text-align:center;width:100%}.booking-logo{height:auto;max-width:400px}.provider-profession{color:#6b7280;font-size:1.1rem;font-weight:400;margin-bottom:20px;margin-top:-5px}.calendar-name{color:#6b7280;font-size:.95rem;margin-bottom:20px;margin-top:10px}.booking-content{padding:20px 0}.section-title{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 24px;text-align:center}.sessions-list-container{margin:0 auto;max-width:800px}.sessions-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr}.session-card{align-items:stretch;background:#fff;border:2px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;gap:0;overflow:hidden;transition:all .2s}.session-card:hover{border-color:#5b21b6;box-shadow:0 4px 16px #5b21b626}.session-card.past{opacity:.6}.session-card.full{background:#f9fafb}.session-date-block{align-items:center;background:#5b21b6;color:#fff;display:flex;flex-direction:column;flex-shrink:0;justify-content:center;padding:20px 10px;width:100px}.date-day{font-size:2.5rem;font-weight:700;line-height:1}.date-month{font-size:.85rem;font-weight:600;letter-spacing:.5px;margin-top:4px;opacity:.95;text-transform:uppercase}.session-content{display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:20px 24px}.session-title{color:#1f2937;font-size:2.2rem;font-weight:700;margin:0 0 8px}.session-meta{color:#4b5563;font-size:.95rem;margin-bottom:12px}.meta-item{margin-bottom:4px}.meta-item strong{color:#1f2937;font-weight:600}.session-availability{margin-top:8px}.availability-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.875rem;font-weight:600;padding:6px 14px}.availability-badge.available{background:#d1fae5;color:#065f46}.availability-badge.full{background:#fee2e2;color:#991b1b}.session-right{flex-direction:column;gap:16px;justify-content:center;min-width:180px;padding:20px 24px}.session-right,.session-time{align-items:center;display:flex}.session-time{color:#4b5563;font-size:1rem;font-weight:500;gap:8px}.time-icon{font-size:1.1rem}.btn-reserve{background:#5b21b6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;min-width:120px;padding:12px 28px;transition:all .2s;white-space:nowrap}.btn-reserve:hover:not(.disabled){background:#6d28d9;box-shadow:0 4px 12px #5b21b64d;transform:translateY(-1px)}.btn-reserve.disabled{background:#d1d5db;color:#6b7280;cursor:not-allowed}.empty-state{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:60px 20px;text-align:center}.empty-icon{font-size:4rem;margin-bottom:16px;opacity:.5}.empty-message{color:#6b7280;font-size:1.125rem;margin:0}.error-state,.loading-state{margin:60px auto;max-width:600px;padding:60px 20px;text-align:center}.spinner{animation:spin .8s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#7c3aed;height:50px;margin:0 auto 20px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.error-state h2{color:#dc2626;margin-bottom:12px}.error-state p{color:#6b7280;font-size:1.125rem}@media (max-width:768px){.session-card{gap:16px;grid-template-columns:1fr}.session-date-badge{flex-direction:row;gap:12px;height:60px;justify-content:center;width:100%}.date-month{margin-top:0}.booking-title{font-size:1.5rem}.btn-reserve{padding:14px;width:100%}.sessions-filters{padding:0 15px}.filter-btn{font-size:.875rem;padding:8px 16px}}