.tutoring-booking-wrapper{max-width:800px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,sans-serif}.tutoring-booking-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.tutor-info{display:flex;align-items:center;gap:15px}.tutor-details h2{margin:0 0 5px;font-size:24px;color:#1a1a1a}.tutor-rate{margin:0;font-size:18px;color:#666;font-weight:500}.timezone-info{background:#e3f2fd;padding:12px 20px;border-radius:8px;margin-bottom:20px;text-align:center;border-left:4px solid #2196f3}.timezone-info small{color:#1565c0;font-weight:500}.consultation-status{display:flex;flex-direction:column;gap:10px}.status-badge{padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:6px;white-space:nowrap}.status-badge.free-available{background:#d4edda;color:#155724}.status-badge.free-unavailable{background:#fff3cd;color:#856404}.booking-section{margin-bottom:30px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.booking-section h3{margin:0 0 20px;font-size:20px;color:#1a1a1a}.user-info-section{padding:20px;background:#f8f9fa;border-radius:12px;margin-bottom:30px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500;color:#333}.form-group input{width:100%;padding:10px 15px;border:1px solid #ddd;border-radius:8px;font-size:16px;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#007bff}.info-text{margin:10px 0 0;font-size:14px;color:#666;font-style:italic}.date-picker-wrapper{display:block;width:100%}.date-picker-wrapper #datePicker{width:100%}.date-picker-wrapper .flatpickr-calendar{box-shadow:none !important;margin:0 auto;width:100%}.date-picker-wrapper .flatpickr-calendar.inline{position:relative;top:auto;left:auto;display:block}.flatpickr-months .flatpickr-month{height:46px}.flatpickr-current-month{padding:0;height:auto;font-size:100%;width:100%;left:auto;display:flex;justify-content:center}.flatpickr-monthDropdown-months,.flatpickr-year-dropdown{font-size:14px !important;padding:2px 6px !important;border:1px solid #e0e0e0 !important;border-radius:4px !important;background:#fff !important;cursor:pointer !important;margin:0 2px !important;height:35px !important}.flatpickr-year-dropdown{appearance:auto;-webkit-appearance:menulist;-moz-appearance:menulist}.flatpickr-monthDropdown-months:hover,.flatpickr-year-dropdown:hover{border-color:#007bff}.flatpickr-current-month .numInputWrapper .arrowUp,.flatpickr-current-month .numInputWrapper .arrowDown{display:none !important}.slots-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.slots-info{font-size:14px;color:#666}.slots-info span{font-weight:700;color:#007bff;font-size:18px}.slots-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px, 1fr));gap:10px;margin-bottom:15px}.time-slot{padding:12px 8px;border:2px solid #e0e0e0;border-radius:8px;text-align:center;cursor:pointer;transition:all .2s;user-select:none;background:#fff}.time-slot:hover:not(.disabled){border-color:#007bff;background:#f0f8ff;transform:translateY(-2px)}.time-slot.selected{border-color:#007bff;background:#007bff;color:#fff}.time-slot.disabled{opacity:.4;cursor:not-allowed;background:#f5f5f5}.slot-time{font-weight:600;font-size:14px;white-space:nowrap}.slots-loading,.no-slots,.error-message{padding:40px;text-align:center;color:#666}.slots-hint{margin-top:15px;padding:10px;background:#f0f8ff;border-left:4px solid #007bff;border-radius:4px}.slots-hint p{margin:0;font-size:14px;color:#666}.selected-slots-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.selected-slot-item{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background:#f8f9fa;border-radius:8px;border:1px solid #e0e0e0}.slot-datetime{display:flex;gap:15px;align-items:center}.slot-date{font-weight:600;color:#333}.slot-time{color:#666}.remove-slot{background:#dc3545;color:#fff;border:none;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:18px;line-height:1;transition:background .2s}.remove-slot:hover{background:#c82333}.price-summary{padding:15px;background:#f8f9fa;border-radius:8px;border:2px solid #e0e0e0}.price-row{display:flex;justify-content:space-between;align-items:center;font-size:18px}.price-value{font-size:24px;font-weight:700;color:#007bff}.booking-actions{margin-top:30px;text-align:center}.btn-primary{display:inline-flex;align-items:center;justify-content:center;min-width:200px;padding:14px 32px;background:#007bff;color:#fff;border:none;border-radius:8px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s}.btn-primary:hover:not(:disabled){background:#0056b3;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,123,255,.3)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-loader{display:inline-flex;align-items:center;gap:8px}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999}.loader{width:50px;height:50px;border:5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.flatpickr-calendar{box-shadow:0 4px 20px rgba(0,0,0,.15);border-radius:8px}.flatpickr-day.selected{background:#007bff;border-color:#007bff}.flatpickr-day:hover:not(.selected){background:#f0f8ff;border-color:#007bff}.flatpickr-calendar,.flatpickr-innerContainer,.flatpickr-rContainer,.flatpickr-days{width:100%;.dayContainer{width:100%;max-width:100%;.flatpickr-day{width:calc(100% / 7);max-width:100%;height:auto}}}.current-bookings-section{margin-bottom:30px;padding:25px;background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.current-bookings-section h3{margin:0 0 20px;font-size:20px;color:#1a1a1a}.bookings-list{display:flex;flex-direction:column;gap:15px}.booking-item{display:grid;grid-template-columns:auto 1fr auto auto;gap:20px;align-items:center;padding:20px;background:#f8f9fa;border-radius:8px;border-left:4px solid #ddd;transition:all .2s}.booking-item:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}.booking-item.status-pending{border-left-color:#ffc107;background:#fff9e6}.booking-item.status-approved{border-left-color:#28a745;background:#e8f5e9}.booking-item.status-canceled{border-left-color:#dc3545;background:#ffebee;opacity:.7}.booking-item.has-reschedule-proposal{border-left-color:#ff9800;background:#fff3e0;animation:pulseReschedule 2s ease-in-out infinite}@keyframes pulseReschedule{0%,100%{box-shadow:0 2px 8px rgba(255,152,0,.2)}50%{box-shadow:0 4px 16px rgba(255,152,0,.4)}}.booking-date-time{display:flex;flex-direction:column;gap:5px}.booking-date,.booking-time{display:flex;align-items:center;gap:8px;font-size:14px;color:#666}.booking-date .icon,.booking-time .icon{font-size:16px}.reschedule-proposal-notice{margin-top:10px;padding:10px;background:#ff9800;color:#fff;border-radius:6px;font-size:13px;display:flex;align-items:center}.reschedule-proposal-notice .icon{margin-right:5px}.reschedule-proposal-notice strong{display:block;margin-bottom:5px}.reschedule-proposal-notice .proposed-time{font-weight:600;font-size:14px;margin-top:5px}.booking-service{flex:1}.booking-service strong{font-size:16px;color:#333}.booking-status{display:flex;flex-direction:column;gap:5px;align-items:flex-end}.booking-status .status-badge{padding:6px 12px;border-radius:20px;font-size:13px;font-weight:600;white-space:nowrap}.booking-status .status-badge.status-pending{background:#fff3cd;color:#856404}.booking-status .status-badge.status-approved{background:#d4edda;color:#155724}.booking-status .status-badge.status-canceled{background:#f8d7da;color:#721c24}.booking-status .status-note{font-size:12px;color:#999;font-style:italic}.booking-actions{display:flex;gap:10px;flex-direction:column}.booking-actions .btn-sm{padding:8px 16px !important;font-size:14px !important;border-radius:6px !important;border:none !important;cursor:pointer !important;font-weight:600 !important;transition:all .2s !important;text-decoration:none !important;display:inline-block !important}.booking-actions .btn-primary{background:#007bff !important;color:#fff !important}.booking-actions .btn-primary:hover{background:#0056b3 !important}.booking-actions .btn-success{background:#28a745 !important;color:#fff !important}.booking-actions .btn-success:hover{background:#218838 !important}.booking-actions .btn-outline{background:0 0 !important;border:2px solid #dc3545 !important;box-sizing:border-box !important;color:#dc3545 !important}.booking-actions .btn-outline:hover{background:#dc3545 !important;color:#fff !important}.booking-actions .btn-sm:disabled{opacity:.5 !important;cursor:not-allowed !important}@media (max-width:768px){.tutoring-booking-wrapper{padding:10px}.tutoring-booking-header{flex-direction:column;gap:15px;text-align:center}.tutor-info{flex-direction:column}.form-row{grid-template-columns:1fr}.slots-container{grid-template-columns:repeat(auto-fill,minmax(130px, 1fr));gap:8px}.time-slot{padding:10px 6px}.slot-time{font-size:13px}.slots-header{flex-direction:column;gap:10px;align-items:flex-start}.booking-section{padding:15px}.btn-primary{width:100%}.booking-item{grid-template-columns:1fr;gap:15px}.booking-status{align-items:flex-start}.booking-actions{flex-direction:column}.booking-actions .btn-sm{width:100%;text-align:center}.reschedule-proposal-notice{font-size:12px}}@media (max-width:480px){.tutor-details h2{font-size:20px}.slots-container{grid-template-columns:repeat(2,1fr)}.time-slot{padding:10px 4px}.slot-time{font-size:12px}.selected-slot-item{flex-direction:column;gap:10px;align-items:flex-start}.slot-datetime{flex-direction:column;gap:5px;align-items:flex-start}}.tutoring-toast-content .proposed-time{margin:10px 0;padding:10px;background:#fff3cd;border-left:4px solid #ffc107;border-radius:4px}.tutoring-toast-content .proposed-time strong{display:block;margin-bottom:5px;color:#856404}.tutoring-toast-content .cancellation-reason{margin-top:10px;padding:10px;background:#f8d7da;border-left:4px solid #dc3545;border-radius:4px;color:#721c24}.tutoring-actions[data-action-context=customer_reschedule]{margin-top:15px}.tutoring-actions[data-action-context=customer_reschedule] .approve-btn{background:#28a745;border-color:#28a745}.tutoring-actions[data-action-context=customer_reschedule] .reschedule-btn{background:#007bff;border-color:#007bff;color:#fff}.tutoring-actions[data-action-context=customer_reschedule] .cancel-btn{background:0 0;color:#dc3545;border-color:#dc3545}.tutoring-actions[data-action-context=customer_reschedule] .cancel-btn:hover{background:#dc3545;color:#fff}.tutoring-toast-content a.button{display:inline-block;margin-top:10px;padding:8px 16px;background:#007bff;color:#fff;text-decoration:none;border-radius:4px;transition:background .2s}.tutoring-toast-content a.button:hover{background:#0056b3}.reschedule-limit-warning{background:#fff3cd;border-left:4px solid #ffc107;padding:12px;margin:15px 0;border-radius:4px}.reschedule-limit-warning strong{color:#856404;display:block;margin-bottom:5px}.reschedule-limit-warning .limit-text{color:#856404;font-size:14px}.counter-proposal-badge{display:inline-block;padding:4px 10px;background:#ff9800;color:#fff;border-radius:12px;font-size:12px;font-weight:600;margin-left:8px}.reschedule-count{font-size:12px;color:#666;margin-top:5px}.reschedule-count.warning{color:#ff9800;font-weight:600}.reschedule-count.danger{color:#dc3545;font-weight:700}.tutoring-aggregate-notification .booking-count{display:inline}