.booking-progress{display:flex;align-items:center;justify-content:center;gap:0;padding:24px 0}.progress-step{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;z-index:1}.step-circle{width:40px;height:40px;border-radius:50%;background:#e9ecef;color:#6c757d;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:15px;transition:all .3s ease;border:2px solid #e9ecef}.progress-step.active .step-circle{background:#1F3D3A;color:#fff;border-color:#1F3D3A;box-shadow:0 0 0 4px rgb(31 61 58 / .15)}.progress-step.completed .step-circle{background:#34A853;color:#fff;border-color:#34A853}.step-label{font-size:12px;font-weight:500;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.progress-step.active .step-label,.progress-step.completed .step-label{color:#1F3D3A}.progress-line{flex:1;height:2px;background:#e9ecef;margin:0 8px;margin-bottom:22px;min-width:40px;max-width:80px;position:relative}.service-select-card{background:#fff;border:2px solid #e9ecef;border-radius:12px;padding:20px;cursor:pointer;transition:all .25s ease;height:100%}.service-select-card:hover{border-color:#1F3D3A;box-shadow:0 4px 16px rgb(31 61 58 / .1);transform:translateY(-2px)}.service-select-card.selected{border-color:#1F3D3A;background:rgb(31 61 58 / .04);box-shadow:0 0 0 3px rgb(31 61 58 / .12)}.service-card-icon{width:44px;height:44px;border-radius:10px;background:rgb(31 61 58 / .08);display:flex;align-items:center;justify-content:center;margin-bottom:12px;color:#1F3D3A}.service-card-icon svg{width:20px;height:20px}.service-select-card h6{margin-bottom:6px;font-size:15px;font-weight:600}.service-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:12px;border-top:1px solid #f0f0f0;margin-top:8px;font-size:13px;color:#6c757d}.service-meta span{display:flex;align-items:center;gap:4px}.service-price{font-weight:600;color:#1F3D3A}.clinician-select-card{background:#fff;border:2px solid #e9ecef;border-radius:12px;padding:24px;text-align:center;cursor:pointer;transition:all .25s ease;height:100%}.clinician-select-card:hover{border-color:#1F3D3A;box-shadow:0 4px 16px rgb(31 61 58 / .1);transform:translateY(-2px)}.clinician-select-card.selected{border-color:#1F3D3A;background:rgb(31 61 58 / .04);box-shadow:0 0 0 3px rgb(31 61 58 / .12)}.clinician-avatar{width:80px;height:80px;border-radius:50%;overflow:hidden;margin:0 auto 12px;border:3px solid #f0f0f0}.clinician-avatar img{width:100%;height:100%;object-fit:cover}.clinician-select-card h6{margin-bottom:4px;font-weight:600}.booking-calendar-wrapper{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:20px}.booking-cal-header h5{font-weight:600;color:#1F3D3A}.booking-calendar-table{width:100%;border-collapse:separate;border-spacing:4px}.booking-calendar-table th{text-align:center;font-size:12px;font-weight:600;color:#6c757d;text-transform:uppercase;padding:8px 0}.booking-calendar-table td{text-align:center;padding:10px 0;border-radius:8px;font-size:14px;font-weight:500;cursor:default;transition:all .2s ease}.booking-calendar-table td.cal-day{cursor:pointer}.booking-calendar-table td.cal-day:hover:not(.past):not(.no-slots){background:rgb(31 61 58 / .08)}.booking-calendar-table td.cal-day.today{border:2px solid #1F3D3A}.booking-calendar-table td.cal-day.past{color:#ccc;cursor:not-allowed}.booking-calendar-table td.cal-day.no-slots{color:#ccc;cursor:not-allowed;text-decoration:line-through}.booking-calendar-table td.cal-day.has-slots{color:#1F3D3A;font-weight:600}.booking-calendar-table td.cal-day.has-slots::after{content:'';display:block;width:5px;height:5px;border-radius:50%;background:#34A853;margin:2px auto 0}.booking-calendar-table td.cal-day.selected{background:#1F3D3A;color:#fff}.booking-calendar-table td.cal-day.selected::after{background:#fff}.booking-calendar-table td.empty{cursor:default}#time-slots-panel{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:20px;min-height:280px}#time-slots-panel h6{font-weight:600;color:#1F3D3A}.time-slots-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.time-slot-btn{background:#fff;border:2px solid #e9ecef;border-radius:8px;padding:10px 8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:center;color:#333}.time-slot-btn:hover{border-color:#1F3D3A;background:rgb(31 61 58 / .04)}.time-slot-btn.selected{background:#1F3D3A;color:#fff;border-color:#1F3D3A}.booking-summary-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:24px}.booking-summary-card h5{font-weight:600;color:#1F3D3A}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #f5f5f5}.summary-row:last-child{border-bottom:none}.summary-row.total{border-top:2px solid #e9ecef;margin-top:4px;padding-top:16px}.summary-label{font-size:14px;color:#6c757d}.summary-value{font-size:14px;font-weight:600;color:#333}.summary-row.total .summary-label,.summary-row.total .summary-value{font-size:16px;color:#1F3D3A}.booking-auth-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:24px}.btn-google-signin{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:10px 16px;background:#fff;border:1px solid #ddd;border-radius:8px;font-size:14px;font-weight:500;color:#333;cursor:pointer;transition:all .2s ease;text-decoration:none}.btn-google-signin:hover{background:#f8f9fa;border-color:#bbb;box-shadow:0 1px 4px rgb(0 0 0 / .1);color:#333}.divider-text{text-align:center;position:relative;overflow:hidden}.divider-text span{display:inline-block;position:relative;padding:0 12px;font-size:12px;color:#999;background:#f8f9fa}.divider-text::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:#ddd}#booking-auth-tabs{display:flex;background:#e9ecef;border-radius:8px;padding:3px}.auth-tab{flex:1;padding:8px;border:none;background:#fff0;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;color:#666}.auth-tab.active{background:#fff;color:#1F3D3A;box-shadow:0 1px 3px rgb(0 0 0 / .1)}.booking-auth-form .form-control{font-size:14px;padding:10px 12px;border-radius:8px}.success-checkmark{animation:scaleIn .4s ease}@keyframes scaleIn{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.account-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:32px;box-shadow:0 2px 12px rgb(0 0 0 / .04)}.account-sidebar{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:20px;box-shadow:0 2px 12px rgb(0 0 0 / .04)}.account-nav{list-style:none;padding:0;margin:0}.account-nav li{margin-bottom:2px}.account-nav a{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;color:#333;font-size:14px;font-weight:500;transition:all .2s ease;text-decoration:none}.account-nav a:hover,.account-nav a.active{background:rgb(31 61 58 / .06);color:#1F3D3A}.account-nav a svg{width:18px;height:18px}.quick-action-card{background:#fff;border:1px solid #e9ecef;border-radius:10px;padding:20px;text-align:center;transition:all .2s ease}.quick-action-card:hover{border-color:#1F3D3A;box-shadow:0 4px 12px rgb(31 61 58 / .08);transform:translateY(-1px)}.quick-action-card a{text-decoration:none;color:inherit}.client-booking-card{background:#fff;border:1px solid #e9ecef;border-radius:10px;padding:16px 20px;margin-bottom:12px;display:flex;align-items:center;gap:16px;transition:all .2s ease}.client-booking-card:hover{box-shadow:0 2px 8px rgb(0 0 0 / .06)}.booking-date-col{text-align:center;min-width:54px;padding:8px 12px;background:rgb(31 61 58 / .06);border-radius:8px}.booking-date-col .month{font-size:11px;font-weight:600;text-transform:uppercase;color:#1F3D3A;letter-spacing:.5px}.booking-date-col .day{font-size:22px;font-weight:700;color:#1F3D3A;line-height:1.1}.status-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.status-badge.pending{background:#fff3cd;color:#856404}.status-badge.confirmed{background:#d4edda;color:#155724}.status-badge.completed{background:#d1ecf1;color:#0c5460}.status-badge.cancelled{background:#f8d7da;color:#721c24}.status-badge.no-show{background:#e2e3e5;color:#383d41}.schedule-calendar{width:100%;border-collapse:separate;border-spacing:4px}.schedule-calendar th{text-align:center;font-size:12px;font-weight:600;color:#6c757d;text-transform:uppercase;padding:8px 0;background:#f8f9fa;border-radius:6px}.schedule-calendar td.cal-day{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:8px;min-height:80px;vertical-align:top;cursor:pointer;transition:all .2s ease;position:relative}.schedule-calendar td.cal-day:hover{background:#f8f9fa;border-color:#1F3D3A}.schedule-calendar td.cal-day.today{border:2px solid #1F3D3A}.schedule-calendar td.cal-day.unavailable{background:#fef2f2;border-color:#fecaca}.schedule-calendar td.cal-day.available{background:#f0fdf4;border-color:#bbf7d0}.schedule-calendar td.cal-day .day-num{font-size:13px;font-weight:600;color:#333}.booking-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin:1px}.booking-dot.pending{background:#ffc107}.booking-dot.confirmed{background:#34A853}.booking-dot.completed{background:#17a2b8}.booking-dot.cancelled{background:#dc3545}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:4px}.cal-context-menu{position:fixed;z-index:9999;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 16px rgb(0 0 0 / .12);padding:6px 0;min-width:180px;display:none}.cal-context-menu .ctx-item{display:block;width:100%;padding:8px 16px;font-size:13px;color:#333;background:none;border:none;text-align:left;cursor:pointer;transition:background .15s}.cal-context-menu .ctx-item:hover{background:#f5f5f5;color:#1F3D3A}.weekly-schedule-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.weekly-schedule-grid .day-col{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:12px;text-align:center;min-height:120px}.weekly-schedule-grid .day-col h6{font-size:12px;font-weight:600;text-transform:uppercase;color:#6c757d;margin-bottom:10px}.time-slot-badge{display:inline-block;background:rgb(31 61 58 / .08);color:#1F3D3A;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:500;margin:2px}.time-slot-badge .remove-slot{margin-left:4px;cursor:pointer;color:#dc3545;font-weight:700}.override-list{list-style:none;padding:0;margin:0}.override-list li{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#fff;border:1px solid #e9ecef;border-radius:8px;margin-bottom:6px;font-size:13px}.upcoming-bookings-list{list-style:none;padding:0;margin:0}.upcoming-bookings-list li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f0f0f0}.upcoming-bookings-list li:last-child{border-bottom:none}@media (max-width:768px){.booking-progress{gap:0;padding:16px 0}.progress-line{min-width:20px}.step-label{font-size:10px}.step-circle{width:32px;height:32px;font-size:13px}.time-slots-grid{grid-template-columns:repeat(3,1fr)}.weekly-schedule-grid{grid-template-columns:repeat(2,1fr)}.client-booking-card{flex-direction:column;align-items:flex-start}}@media (max-width:480px){.time-slots-grid{grid-template-columns:repeat(2,1fr)}.weekly-schedule-grid{grid-template-columns:1fr}}.payment-tabs{display:flex;gap:10px;margin-bottom:16px}.payment-tab{flex:1;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;display:flex;align-items:center;gap:8px;font-weight:500;color:#555;transition:all 0.2s ease}.payment-tab:hover{border-color:#1F3D3A;color:#1F3D3A}.payment-tab.active{border-color:#1F3D3A;background:#f0f7f6;color:#1F3D3A}.payment-tab i{width:20px;height:20px}.payment-section{min-height:120px}.stripe-card-field{padding:14px;border:2px solid #e0e0e0;border-radius:8px;background:#fff;transition:border-color 0.2s ease}.stripe-card-field:focus-within,.stripe-card-field.StripeElement--focus{border-color:#1F3D3A;box-shadow:0 0 0 3px rgb(31 61 58 / .1)}.stripe-card-field.StripeElement--invalid{border-color:#dc3545}#stripe-pay-btn{width:100%;padding:12px 24px;background:#1F3D3A;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;transition:background 0.2s ease}#stripe-pay-btn:hover{background:#2a524e}#stripe-pay-btn:disabled{opacity:.6;cursor:not-allowed}.pay-summary-card{background:#f8f9fa;border-radius:8px;padding:16px;margin-bottom:20px}.pay-summary-card .summary-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.pay-summary-card .summary-row+.summary-row{border-top:1px solid #e9ecef}.pay-summary-card .summary-label{color:#666;font-size:14px}.pay-summary-card .summary-value{font-weight:500;color:#333;font-size:14px}.secure-payment-badge{display:flex;align-items:center;justify-content:center;gap:6px;color:#888;font-size:12px;margin-top:16px}.secure-payment-badge i{width:14px;height:14px;color:#28a745}#paypal-button-container{min-height:50px}@media (max-width:480px){.payment-tabs{flex-direction:column}}.profile-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.profile-stat-card{background:#f8f9fa;border-radius:10px;padding:20px;text-align:center;border:1px solid #eee}.profile-stat-number{font-size:28px;font-weight:700;color:#1F3D3A;line-height:1}.profile-stat-label{font-size:13px;color:#888;margin-top:4px}.profile-section-card{background:#fff;border:1px solid #eee;border-radius:10px;padding:24px;margin-bottom:20px}.profile-section-card h6{font-weight:600;margin-bottom:16px;color:#1F3D3A}.profile-info-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f0f0f0}.profile-info-row:last-child{border-bottom:none}.profile-info-label{font-size:13px;color:#888;font-weight:500}.profile-info-value{font-weight:500;color:#333}@media (max-width:768px){.profile-stats-grid{grid-template-columns:1fr}.profile-info-row{flex-direction:column;align-items:flex-start;gap:4px}}.finance-stat-card{border:none;border-radius:10px;box-shadow:0 2px 8px rgb(0 0 0 / .06);transition:transform 0.2s ease,box-shadow 0.2s ease}.finance-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgb(0 0 0 / .1)}.finance-stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.finance-stat-icon i,.finance-stat-icon svg{width:22px;height:22px}.bg-light-success{background-color:rgb(40 167 69 / .12)!important}.bg-light-warning{background-color:rgb(255 193 7 / .12)!important}.bg-light-danger{background-color:rgb(220 53 69 / .12)!important}.bg-light-info{background-color:rgb(23 162 184 / .12)!important}.bg-light-success i,.bg-light-success svg{color:#28a745}.bg-light-warning i,.bg-light-warning svg{color:#ffc107}.bg-light-danger i,.bg-light-danger svg{color:#dc3545}.bg-light-info i,.bg-light-info svg{color:#17a2b8}.finance-stat-number{font-size:24px;font-weight:700;margin-bottom:2px}.finance-stat-label{font-size:13px;color:#888;margin-bottom:4px}@media (max-width:768px){.finance-stat-number{font-size:20px}}
