.booking-page{min-height:100vh;background:rgba(255,255,255,.5);font-family:ClashGrotesk-Regular,sans-serif}.booking-container{padding:2rem 1rem}.booking-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem;padding:1rem 1.25rem;background:#ffffff;border-radius:16px}.booking-filter-btn{padding:.75rem 1.5rem;border-radius:25px;border:2px solid #e9ecef;background:#ffffff;color:#718096;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .3s ease;font-family:ClashGrotesk-Regular,sans-serif}.booking-filter-btn:hover{border-color:#14C1EE;color:#14C1EE}.booking-filter-btn.active{background:linear-gradient(145deg,#14C1EE,#FF21A6);color:white;border:0}.booking-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:2rem}.booking-stat-card{background:#ffffff;border-radius:16px;padding:1.25rem;border:1px solid #e0e0e0;text-align:center;transition:all .3s ease}.booking-stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}.booking-stat-value{font-size:1.75rem;font-weight:700;background:linear-gradient(145deg,#14C1EE,#FF21A6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.25rem}.booking-stat-label{font-size:.85rem;color:#718096;font-weight:500}.booking-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));grid-gap:1.5rem;gap:1.5rem}.booking-card{background:#ffffff;border-radius:20px;overflow:hidden;border:1px solid #e0e0e0;transition:all .3s ease;cursor:pointer;position:relative}.booking-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(20,193,238,.15);border-color:#14C1EE}.booking-card-image{position:relative;height:180px;overflow:hidden}.booking-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.booking-card:hover .booking-card-image img{transform:scale(1.05)}.booking-card-placeholder{width:100%;height:100%;background:linear-gradient(145deg,#14C1EE,#FF21A6);color:white;font-size:1rem;font-weight:600;padding:1rem;text-align:center}.booking-card-favorite,.booking-card-placeholder{display:flex;align-items:center;justify-content:center}.booking-card-favorite{position:absolute;top:12px;right:12px;width:40px;height:40px;background:rgba(255,255,255,.95);border:none;border-radius:50%;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:2}.booking-card-favorite:hover{transform:scale(1.1);box-shadow:0 6px 16px rgba(0,0,0,.15)}.booking-card-favorite svg{transition:all .3s ease}.booking-card-favorite.active svg{fill:#FF21A6;color:#FF21A6}.booking-card-status{position:absolute;bottom:12px;left:12px;padding:.5rem 1rem;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2}.booking-card-status.confirmed{background:rgba(20,193,238,.9);color:white}.booking-card-status.pending{background:rgba(255,193,7,.9);color:#1a1a1a}.booking-card-status.completed{background:rgba(40,167,69,.9);color:white}.booking-card-status.cancelled,.booking-card-status.failed{background:rgba(220,53,69,.9);color:white}.booking-card-content{padding:1.25rem}.booking-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.booking-card-title{font-size:1.1rem;font-weight:600;color:#2d3748;margin:0 0 .25rem;line-height:1.3}.booking-card-rating{display:flex;align-items:center;gap:.375rem;background:linear-gradient(145deg,rgba(255,193,7,.1),rgba(255,152,0,.1));padding:.375rem .75rem;border-radius:20px;flex-shrink:0}.booking-card-rating svg{color:#ffc107}.booking-card-rating span{font-size:.85rem;font-weight:600;color:#2d3748}.booking-card-datetime{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding:.875rem 1rem;background:linear-gradient(145deg,rgba(20,193,238,.05),rgba(255,33,166,.05));border-radius:12px}.booking-card-datetime-item{display:flex;align-items:center;gap:.5rem}.booking-card-datetime-item svg{color:#14C1EE}.booking-card-datetime-item span{font-size:.9rem;font-weight:600;color:#2d3748}.booking-card-service{font-size:.9rem;color:#718096;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.booking-card-service-icon{width:28px;height:28px;background:linear-gradient(145deg,rgba(20,193,238,.1),rgba(255,33,166,.1));border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.booking-card-service-icon svg{color:#14C1EE}.booking-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid #f0f0f0}.booking-card-price{display:flex;flex-direction:column}.booking-card-price-current{font-size:1.5rem;font-weight:700;background:linear-gradient(145deg,#14C1EE,#FF21A6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.booking-card-price-original{font-size:.85rem;color:#a0aec0;text-decoration:line-through}.booking-card-payment{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:20px;font-size:.8rem;font-weight:600}.booking-card-payment.paid{background:rgba(40,167,69,.1);color:#28a745}.booking-card-payment.unpaid{background:rgba(220,53,69,.1);color:#dc3545}.booking-empty-state{text-align:center;padding:4rem 2rem;background:#ffffff;border-radius:20px;border:1px solid #e0e0e0}.booking-empty-icon{width:120px;height:120px;margin:0 auto 1.5rem;background:linear-gradient(145deg,rgba(20,193,238,.1),rgba(255,33,166,.1));border-radius:50%;display:flex;align-items:center;justify-content:center}.booking-empty-title{font-size:1.5rem;font-weight:700;color:#2d3748;margin-bottom:.75rem}.booking-empty-description{font-size:1rem;color:#718096;max-width:400px;margin:0 auto 2rem;line-height:1.6}.booking-empty-btn{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2rem;background:linear-gradient(145deg,#14C1EE,#FF21A6);border:none;border-radius:12px;font-weight:600;font-size:1rem;color:white;cursor:pointer;transition:all .3s ease;font-family:ClashGrotesk-Regular,sans-serif;box-shadow:0 4px 16px rgba(20,193,238,.3);text-decoration:none}.booking-empty-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(20,193,238,.4);color:white}.booking-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:#ffffff;border-radius:20px;border:1px solid #e0e0e0}.booking-spinner{width:48px;height:48px;border:3px solid #f0f0f0;border-top-color:#14c1ee;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(1turn)}}.booking-loading-text{color:#718096;font-size:1rem;font-weight:500}.booking-error{text-align:center;padding:3rem 2rem;background:linear-gradient(145deg,rgba(220,53,69,.05),#ffffff);border-radius:20px;border:1px solid rgba(220,53,69,.2)}.booking-error-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:rgba(220,53,69,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#dc3545}.booking-error-title{font-size:1.25rem;font-weight:600;color:#dc3545;margin-bottom:.5rem}.booking-error-message{color:#718096;margin-bottom:1.5rem}.booking-retry-btn{padding:.875rem 1.5rem;background:linear-gradient(145deg,#14C1EE,#FF21A6);border:none;border-radius:12px;font-weight:600;color:white;cursor:pointer;transition:all .3s ease;font-family:ClashGrotesk-Regular,sans-serif}.booking-retry-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(20,193,238,.4)}.booking-pagination-wrapper{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-top:2rem;padding:1.5rem;background:#ffffff;border-radius:16px;border:1px solid #e0e0e0}.booking-pagination-info{font-size:.9rem;color:#718096;font-weight:500}.booking-pagination{gap:.5rem;flex-wrap:wrap}.booking-pagination,.booking-pagination-btn{display:flex;align-items:center;justify-content:center}.booking-pagination-btn{min-width:44px;height:44px;padding:0 1rem;border-radius:12px;border:2px solid #e9ecef;background:#ffffff;color:#2d3748;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .3s ease;font-family:ClashGrotesk-Regular,sans-serif}.booking-pagination-btn:hover:not(:disabled){border-color:#14C1EE;color:#14C1EE;transform:translateY(-2px)}.booking-pagination-btn.active{background:linear-gradient(145deg,#14C1EE,#FF21A6);color:white;border-color:transparent;box-shadow:0 4px 12px rgba(20,193,238,.3)}.booking-pagination-btn:disabled{opacity:.5;cursor:not-allowed}.booking-modal .modal-dialog{max-width:80%;width:80%;margin:1.75rem auto}.booking-modal .modal-content{border:none;border-radius:24px;box-shadow:0 25px 80px rgba(0,0,0,.15),0 10px 30px rgba(20,193,238,.1);overflow:hidden;font-family:ClashGrotesk-Regular,sans-serif;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.booking-modal-header{background:linear-gradient(135deg,#14C1EE,#9B59B6 50%,#FF21A6);padding:1.25rem 1.75rem;position:relative}.booking-modal-header,.booking-modal-header-content{display:flex;justify-content:space-between;align-items:center}.booking-modal-header-content{width:100%}.booking-modal-title{color:white;font-size:1.35rem;font-weight:600;margin:0;letter-spacing:-.02em}.booking-modal-subtitle{color:rgba(255,255,255,.85);font-size:.85rem;margin:.25rem 0 0;font-weight:400}.booking-modal-close{background:rgba(255,255,255,.15);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:12px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s ease;color:white}.booking-modal-close:hover{background:rgba(255,255,255,.25);transform:rotate(90deg)}.booking-modal-body{padding:0;background:#f8fafc;max-height:75vh;overflow-y:auto}.booking-modal-layout{display:grid;grid-template-columns:340px 1fr;min-height:100%}.booking-modal-left{background:#ffffff;padding:1.75rem;border-right:1px solid #e9ecef;display:flex;flex-direction:column}.booking-modal-right{padding:1.75rem;overflow-y:auto;max-height:75vh}.booking-modal-salon{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:0;padding:0;background:transparent;border-radius:0;border:none}.booking-modal-salon-image{width:"100%";height:"100%";border-radius:20px;overflow:hidden;flex-shrink:0;margin-bottom:1.25rem}.booking-modal-salon-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.booking-modal-salon-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#14C1EE,#FF21A6);display:flex;align-items:center;justify-content:center;color:white;font-size:.85rem;font-weight:600;text-align:center;padding:1rem}.booking-modal-salon-info{width:100%;text-align:center}.booking-modal-salon-name{font-size:1.25rem;font-weight:600;background:linear-gradient(135deg,#2d3748,#4a5568);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 .75rem;line-height:1.3}.booking-modal-salon-rating{display:inline-flex;align-items:center;gap:.4rem;background:linear-gradient(135deg,rgba(255,193,7,.15),rgba(255,152,0,.1));padding:.5rem 1rem;border-radius:25px;margin-bottom:.75rem}.booking-modal-salon-rating svg{color:#f59e0b}.booking-modal-salon-rating span{font-size:.85rem;color:#92400e;font-weight:600}.booking-modal-salon-category{font-size:.8rem;color:#64748b;margin:0 0 1rem;display:flex;align-items:center;justify-content:center;gap:.4rem}.booking-modal-salon-category svg{color:#14C1EE}.booking-modal-invoice{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.875rem 1rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;margin-bottom:1.25rem}.booking-modal-invoice strong{font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.booking-modal-invoice code{font-size:.85rem;color:#1e293b;font-weight:600;background:transparent;padding:0;font-family:ClashGrotesk-Regular,sans-serif}.booking-modal-actions{display:flex;flex-direction:column;gap:.625rem;width:100%;margin-top:auto;padding-top:1rem}.booking-modal-action-btn{padding:.75rem 1.25rem;border-radius:12px;font-size:.85rem;font-weight:500;border:none;cursor:pointer;transition:all .25s ease;font-family:ClashGrotesk-Regular,sans-serif;display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%}.booking-modal-action-btn.status{background:linear-gradient(135deg,rgba(20,193,238,.1),rgba(255,33,166,.1));color:#14C1EE;border:1px solid rgba(20,193,238,.2);text-transform:capitalize}.booking-modal-action-btn.status.confirmed{background:linear-gradient(135deg,rgba(20,193,238,.12),rgba(20,193,238,.05));color:#0891b2;border-color:rgba(20,193,238,.25)}.booking-modal-action-btn.status.completed{background:linear-gradient(135deg,rgba(34,197,94,.12),rgba(34,197,94,.05));color:#16a34a;border-color:rgba(34,197,94,.25)}.booking-modal-action-btn.status.pending{background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(245,158,11,.05));color:#d97706;border-color:rgba(245,158,11,.25)}.booking-modal-action-btn.status.cancelled,.booking-modal-action-btn.status.failed{background:linear-gradient(135deg,rgba(239,68,68,.12),rgba(239,68,68,.05));color:#dc2626;border-color:rgba(239,68,68,.25)}.booking-modal-action-btn.cancel{background:transparent;color:#dc2626;border:1.5px solid #fecaca}.booking-modal-action-btn.cancel:hover{background:#fef2f2;border-color:#dc2626}.booking-modal-action-btn.review{background:linear-gradient(135deg,#22c55e,#16a34a);color:white;box-shadow:0 4px 12px rgba(34,197,94,.25)}.booking-modal-action-btn.review:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(34,197,94,.35)}.booking-modal-action-btn.tip{background:linear-gradient(135deg,#14C1EE,#0891b2);color:white;box-shadow:0 4px 12px rgba(20,193,238,.25)}.booking-modal-action-btn.tip:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(20,193,238,.35)}.booking-modal-content-wrapper{display:flex;flex-direction:column;gap:1.25rem}.booking-modal-section{background:#ffffff;border-radius:16px;padding:1.5rem;margin-bottom:0;border:1px solid #e2e8f0;box-shadow:0 1px 3px rgba(0,0,0,.04);transition:box-shadow .25s ease}.booking-modal-section:hover{box-shadow:0 4px 12px rgba(0,0,0,.06)}.booking-modal-section:last-child{margin-bottom:0}.booking-modal-section-title{font-size:.75rem;font-weight:700;color:#14C1EE;text-transform:uppercase;letter-spacing:.75px;margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem;padding-bottom:.75rem;border-bottom:1px solid #f1f5f9}.booking-modal-section-title svg{color:#14C1EE}.booking-modal-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1rem;gap:1rem}.booking-modal-detail-row{display:flex;align-items:center;gap:.875rem;padding:.875rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;border:none;transition:all .2s ease}.booking-modal-detail-row:hover{background:linear-gradient(135deg,#f1f5f9,#e2e8f0)}.booking-modal-detail-row.full-width{grid-column:1/-1}.booking-modal-detail-row:last-child{border-bottom:none;padding-bottom:.875rem}.booking-modal-detail-row:first-child{padding-top:.875rem}.booking-modal-detail-icon{width:40px;height:40px;background:linear-gradient(135deg,#ffffff,#f8fafc);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#14C1EE;box-shadow:0 2px 6px rgba(20,193,238,.12)}.booking-modal-detail-content{flex:1 1;display:flex;flex-direction:column;gap:.125rem}.booking-modal-detail-label{font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-weight:600;display:block}.booking-modal-detail-value{font-size:.95rem;font-weight:600;color:#1e293b;display:block}.booking-modal-services-list{display:flex;flex-direction:column;gap:.75rem}.booking-modal-service-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#ffffff;border-radius:12px;margin-bottom:0;border:1px solid #e2e8f0;transition:all .2s ease}.booking-modal-service-item:hover{border-color:rgba(20,193,238,.3);box-shadow:0 2px 8px rgba(20,193,238,.08)}.booking-modal-service-item:last-child{margin-bottom:0}.booking-modal-service-info{flex:1 1}.booking-modal-service-name{font-size:.95rem;font-weight:600;color:#1e293b;margin-bottom:.25rem}.booking-modal-service-duration{font-size:.8rem;color:#64748b;display:flex;align-items:center;gap:.35rem}.booking-modal-service-duration svg{color:#94a3b8}.booking-modal-service-price{font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,#14C1EE,#FF21A6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.booking-modal-payment-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;padding:1rem 1.25rem}.booking-modal-payment-row{display:flex;justify-content:space-between;align-items:center;padding:.625rem 0;border-bottom:1px dashed #e2e8f0}.booking-modal-payment-row:last-child{border-bottom:none}.booking-modal-payment-row.total{padding-top:.875rem;margin-top:.5rem;border-top:2px solid #e2e8f0;border-bottom:none}.booking-modal-payment-label{font-size:.9rem;color:#64748b;font-weight:500}.booking-modal-payment-label.total{font-weight:700;color:#1e293b;font-size:1rem}.booking-modal-payment-value{font-size:.95rem;font-weight:600;color:#1e293b}.booking-modal-payment-value.discount{color:#16a34a;display:flex;align-items:center;gap:.25rem}.booking-modal-payment-value.total{font-size:1.5rem;background:linear-gradient(135deg,#14C1EE,#FF21A6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.booking-modal-payment-status{display:flex;justify-content:space-between;align-items:center;padding:1rem 0 0;margin-top:.75rem;border-top:1px solid #e2e8f0}.booking-modal-payment-badge{padding:.5rem 1.25rem;border-radius:25px;font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:.35rem}.booking-modal-payment-badge.paid{background:linear-gradient(135deg,rgba(34,197,94,.15),rgba(34,197,94,.08));color:#16a34a}.booking-modal-payment-badge.unpaid{background:linear-gradient(135deg,rgba(239,68,68,.15),rgba(239,68,68,.08));color:#dc2626}.booking-modal-timestamps-section{padding:0}.booking-modal-timestamps{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1rem;gap:1rem}.booking-modal-timestamp-item{display:flex;flex-direction:column;gap:.25rem;padding:.875rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:10px}.booking-modal-timestamp-label{font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.booking-modal-timestamp-value{font-size:.85rem;color:#1e293b;font-weight:500}.booking-modal-notice{padding:1rem 1.25rem;border-radius:14px;display:flex;align-items:flex-start;gap:.875rem;margin-top:0}.booking-modal-notice.warning{background:linear-gradient(135deg,rgba(245,158,11,.08),rgba(251,191,36,.04));border:1px solid rgba(245,158,11,.2)}.booking-modal-notice.danger{background:linear-gradient(135deg,rgba(239,68,68,.08),rgba(248,113,113,.04));border:1px solid rgba(239,68,68,.2)}.booking-modal-notice-icon{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:10px}.booking-modal-notice.warning .booking-modal-notice-icon{color:#d97706;background:rgba(245,158,11,.12)}.booking-modal-notice.danger .booking-modal-notice-icon{color:#dc2626;background:rgba(239,68,68,.12)}.booking-modal-notice-content{flex:1 1;padding-top:.25rem}.booking-modal-notice-title{font-weight:600;font-size:.9rem;margin-bottom:.375rem}.booking-modal-notice.warning .booking-modal-notice-title{color:#b45309}.booking-modal-notice.danger .booking-modal-notice-title{color:#b91c1c}.booking-modal-notice-text{font-size:.825rem;line-height:1.55}.booking-modal-notice.warning .booking-modal-notice-text{color:#92400e}.booking-modal-notice.danger .booking-modal-notice-text{color:#991b1b}.review-modal .modal-content{border:none;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.2);overflow:hidden;font-family:ClashGrotesk-Regular,sans-serif}.review-modal-header{background:linear-gradient(145deg,#14C1EE,#FF21A6);padding:2rem 1.5rem;text-align:center;position:relative}.review-modal-close{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.2);border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:white}.review-modal-close:hover{background:rgba(255,255,255,.3);transform:rotate(90deg)}.review-modal-icon{width:64px;height:64px;background:rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;color:white}.review-modal-title{color:white;font-size:1.5rem;font-weight:600;margin:0 0 .25rem}.review-modal-subtitle{color:rgba(255,255,255,.9);font-size:.9rem;margin:0}.review-modal-body{padding:1.5rem;background:#f8f9fa}.review-rating-section{margin-bottom:1.5rem}.review-rating-label{font-size:.85rem;font-weight:600;color:#2d3748;margin-bottom:.75rem;display:block}.review-stars{display:flex;gap:.5rem;margin-bottom:.5rem}.review-star-btn{background:none;border:none;font-size:2rem;cursor:pointer;transition:all .2s ease;color:#e9ecef;padding:0}.review-star-btn.active{color:#ffc107}.review-star-btn:hover{transform:scale(1.2)}.review-rating-text{font-size:.85rem;color:#718096}.review-comment-section{margin-bottom:1.5rem}.review-comment-label{font-size:.85rem;font-weight:600;color:#2d3748;margin-bottom:.75rem;display:block}.review-textarea{width:100%;min-height:120px;padding:1rem;border:2px solid #e9ecef;border-radius:12px;font-size:.95rem;font-family:ClashGrotesk-Regular,sans-serif;resize:vertical;transition:all .3s ease}.review-textarea:focus{outline:none;border-color:#14C1EE;box-shadow:0 0 0 4px rgba(20,193,238,.1)}.review-textarea::placeholder{color:#a0aec0}.review-error{display:flex;align-items:center;gap:.75rem;padding:1rem;background:linear-gradient(145deg,rgba(220,53,69,.1),#ffffff);border:1px solid #f5c6cb;border-radius:12px;color:#dc3545;font-size:.9rem;margin-bottom:1rem}.review-modal-footer{padding:1.25rem 1.5rem;background:#ffffff;border-top:1px solid #e9ecef;display:flex;gap:1rem}.review-cancel-btn{flex:1 1;padding:.875rem 1.5rem;border-radius:12px;border:2px solid #e9ecef;background:#ffffff;color:#718096;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .3s ease;font-family:ClashGrotesk-Regular,sans-serif}.review-cancel-btn:hover{border-color:#cbd5e0;background:#f8f9fa}.review-submit-btn{flex:2 1;padding:.875rem 1.5rem;border-radius:12px;border:none;background:linear-gradient(145deg,#14C1EE,#FF21A6);color:white;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .3s ease;font-family:ClashGrotesk-Regular,sans-serif;box-shadow:0 4px 12px rgba(20,193,238,.3)}.review-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(20,193,238,.4)}.review-submit-btn:disabled{opacity:.6;cursor:not-allowed}.tip-modal .modal-content{border:none;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.2);overflow:hidden;font-family:ClashGrotesk-Regular,sans-serif}.tip-modal-header{background:linear-gradient(145deg,#14C1EE,#FF21A6);padding:2rem 1.5rem;text-align:center;position:relative}.tip-modal-close{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.2);border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:white}.tip-modal-close:hover{background:rgba(255,255,255,.3);transform:rotate(90deg)}.tip-modal-icon{width:64px;height:64px;background:rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;color:white}.tip-modal-title{color:white;font-size:1.5rem;font-weight:600;margin:0 0 .25rem}.tip-modal-subtitle{color:rgba(255,255,255,.9);font-size:.9rem;margin:0}.tip-modal-body{padding:1.5rem;background:#f8f9fa}.tip-quick-amounts{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.75rem;gap:.75rem;margin-bottom:1.5rem}.tip-quick-btn{padding:.875rem .5rem;border-radius:12px;border:2px solid #e9ecef;background:#ffffff;color:#2d3748;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .3s ease;font-family:ClashGrotesk-Regular,sans-serif}.tip-quick-btn:hover{border-color:#14C1EE;transform:translateY(-2px)}.tip-quick-btn.active{background:linear-gradient(145deg,#14C1EE,#FF21A6);color:white;border-color:transparent}.tip-input-section{margin-bottom:1.5rem}.tip-input-label{font-size:.85rem;font-weight:600;color:#2d3748;margin-bottom:.75rem;display:block}.tip-input-wrapper{display:flex;align-items:center;background:#ffffff;border:2px solid #e9ecef;border-radius:12px;overflow:hidden;transition:all .3s ease}.tip-input-wrapper:focus-within{border-color:#14C1EE;box-shadow:0 0 0 4px rgba(20,193,238,.1)}.tip-currency{padding:0 0 0 1rem;color:#718096}.tip-currency,.tip-input{font-size:1.25rem;font-weight:600}.tip-input{flex:1 1;border:none;outline:none;padding:1rem 1rem 1rem .5rem;color:#2d3748;background:transparent;font-family:ClashGrotesk-Regular,sans-serif}.tip-input::placeholder{color:#a0aec0;font-weight:400}.tip-staff-section{margin-bottom:1.5rem}.tip-staff-select{width:100%;padding:1rem;border:2px solid #e9ecef;border-radius:12px;font-size:.95rem;font-family:ClashGrotesk-Regular,sans-serif;color:#2d3748;background:#ffffff;cursor:pointer;transition:all .3s ease}.tip-staff-select:focus{outline:none;border-color:#14C1EE}.tip-payment-section{margin-bottom:1.5rem}.tip-payment-options{display:flex;gap:1rem}.tip-payment-option{flex:1 1;display:flex;align-items:center;gap:.75rem;padding:1rem;border:2px solid #e9ecef;border-radius:12px;cursor:pointer;transition:all .3s ease;background:#ffffff}.tip-payment-option:hover{border-color:#14C1EE}.tip-payment-option.active{border-color:#14C1EE;background:linear-gradient(145deg,rgba(20,193,238,.05),rgba(255,33,166,.05))}.tip-payment-option input{accent-color:#14C1EE}.tip-payment-option span{font-weight:500;color:#2d3748}.tip-error{display:flex;align-items:center;gap:.75rem;padding:1rem;background:linear-gradient(145deg,rgba(220,53,69,.1),#ffffff);border:1px solid #f5c6cb;border-radius:12px;color:#dc3545;font-size:.9rem;margin-bottom:1rem}.tip-modal-footer{padding:1.25rem 1.5rem;background:#ffffff;border-top:1px solid #e9ecef;display:flex;gap:1rem}.tip-cancel-btn{flex:1 1;padding:.875rem 1.5rem;border-radius:12px;border:2px solid #e9ecef;background:#ffffff;color:#718096;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .3s ease;font-family:ClashGrotesk-Regular,sans-serif}.tip-cancel-btn:hover{border-color:#cbd5e0;background:#f8f9fa}.tip-submit-btn{flex:2 1;padding:.875rem 1.5rem;border-radius:12px;border:none;background:linear-gradient(145deg,#14C1EE,#FF21A6);color:white;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .3s ease;font-family:ClashGrotesk-Regular,sans-serif;box-shadow:0 4px 12px rgba(20,193,238,.3)}.tip-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(20,193,238,.4)}.tip-submit-btn:disabled{opacity:.6;cursor:not-allowed}.modal-backdrop-custom{background-color:rgba(0,0,0,.4)!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media (min-width:1200px){.booking-modal .modal-dialog{max-width:80%;width:80%}}@media (max-width:1199px) and (min-width:992px){.booking-modal .modal-dialog{max-width:90%;width:90%}.booking-modal-layout{grid-template-columns:300px 1fr}}@media (max-width:992px){.booking-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.booking-modal .modal-dialog{max-width:95%;width:95%;margin:1rem auto}.booking-modal-layout{grid-template-columns:1fr}.booking-modal-left{border-right:none;border-bottom:1px solid #e9ecef;padding:1.5rem}.booking-modal-right{max-height:none;padding:1.5rem}.booking-modal-body{max-height:80vh}.booking-modal-salon{flex-direction:row;text-align:left;gap:1.25rem}.booking-modal-salon-image{width:100px;height:100px;margin-bottom:0}.booking-modal-salon-info{text-align:left}.booking-modal-salon-category,.booking-modal-salon-rating{justify-content:flex-start}.booking-modal-invoice{align-items:flex-start}.booking-modal-actions{flex-direction:row;flex-wrap:wrap;margin-top:1rem;padding-top:1rem;border-top:1px solid #e9ecef}.booking-modal-action-btn{width:auto;flex:1 1;min-width:120px}}@media (max-width:768px){.booking-container{padding:1rem}.booking-filters{padding:.875rem 1rem}.booking-filter-btn{padding:.625rem 1.25rem;font-size:.85rem}.booking-grid{grid-template-columns:1fr;gap:1rem}.booking-card-content{padding:1rem}.booking-card-title{font-size:1rem}.booking-card-datetime{flex-direction:column;gap:.5rem;padding:.75rem}.booking-modal .modal-dialog{max-width:100%;width:100%;margin:0;min-height:100vh}.booking-modal .modal-content{border-radius:0;min-height:100vh}.booking-modal-header{padding:1rem 1.25rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.booking-modal-title{font-size:1.15rem}.booking-modal-subtitle{font-size:.8rem}.booking-modal-close{width:38px;height:38px}.booking-modal-body{max-height:calc(100vh - 80px)}.booking-modal-left,.booking-modal-right{padding:1.25rem}.booking-modal-salon{flex-direction:column;align-items:center;text-align:center}.booking-modal-salon-image{width:110px;height:110px;margin-bottom:1rem}.booking-modal-salon-info{text-align:center}.booking-modal-salon-name{font-size:1.1rem}.booking-modal-salon-category,.booking-modal-salon-rating{justify-content:center}.booking-modal-invoice{align-items:center}.booking-modal-actions{flex-direction:column;margin-top:1rem;padding-top:1rem}.booking-modal-action-btn{width:100%}.booking-modal-detail-grid{grid-template-columns:1fr;gap:.75rem}.booking-modal-detail-row.full-width{grid-column:1}.booking-modal-section{padding:1.25rem}.booking-modal-timestamps{grid-template-columns:1fr;gap:.75rem}.booking-pagination{gap:.375rem}.booking-pagination-btn{min-width:40px;height:40px;font-size:.85rem}.tip-quick-amounts{grid-template-columns:repeat(2,1fr)}.review-modal-footer,.tip-modal-footer,.tip-payment-options{flex-direction:column}.review-cancel-btn,.review-submit-btn,.tip-cancel-btn,.tip-submit-btn{flex:none;width:100%}.review-submit-btn,.tip-submit-btn{order:-1}}@media (max-width:480px){.booking-card-image{height:160px}.booking-card-price-current{font-size:1.25rem}.booking-stats{grid-template-columns:repeat(2,1fr)}.booking-modal-section{padding:1rem}.booking-modal-detail-row{gap:.5rem;padding:.75rem}.booking-modal-detail-icon{width:36px;height:36px}.booking-modal-service-item{padding:.875rem 1rem;flex-direction:column;align-items:flex-start;gap:.5rem}.booking-modal-service-price{align-self:flex-end}.booking-modal-payment-value.total{font-size:1.25rem}.booking-modal-notice{padding:.875rem 1rem}.booking-modal-notice-icon{width:32px;height:32px}}