.calendar-modal-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:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.calendar-modal{background:white;border-radius:16px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);width:90%;max-width:400px;max-height:90vh;overflow:hidden;animation:slideUp .3s ease-out}.calendar-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #f1f5f9;background:#fafbfc}.calendar-modal-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:#1e293b}.calendar-modal-close{background:none;border:none;padding:8px;border-radius:8px;color:#64748b;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.calendar-modal-close:hover{background:#f1f5f9;color:#475569}.calendar-modal-body{padding:24px}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.calendar-nav-button{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:8px;color:#475569;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.calendar-nav-button:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.calendar-nav-button:disabled{opacity:.5;cursor:not-allowed}.calendar-month-year{font-size:18px;font-weight:600;color:#1e293b;margin:0}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px;margin-bottom:12px}.calendar-weekday{text-align:center;font-size:12px;font-weight:500;color:#64748b;padding:8px 4px}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;color:#475569;background:transparent;border:1px solid transparent}.calendar-day:hover:not(.disabled):not(.empty){background:#f1f5f9;border-color:#e2e8f0}.calendar-day.today{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd;font-weight:600}.calendar-day.selected{background:#3b82f6;color:white;border-color:#2563eb;font-weight:600}.calendar-day.selected:hover{background:#2563eb;border-color:#1d4ed8}.calendar-day.disabled{color:#cbd5e1;cursor:not-allowed;background:#f8fafc}.calendar-day.empty{cursor:default}.calendar-modal-footer{padding:20px 24px;border-top:1px solid #f1f5f9;background:#fafbfc}.selected-date-display{text-align:center;font-size:14px;color:#64748b;margin-bottom:16px;padding:12px;background:white;border-radius:8px;border:1px solid #e2e8f0}.calendar-modal-actions{display:flex;gap:12px}.calendar-cancel-btn,.calendar-confirm-btn{flex:1 1;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.calendar-cancel-btn{background:#f8fafc;color:#64748b;border:1px solid #e2e8f0}.calendar-cancel-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.calendar-confirm-btn{background:#3b82f6;color:white;border:1px solid #2563eb}.calendar-confirm-btn:hover:not(:disabled){background:#2563eb;border-color:#1d4ed8}.calendar-confirm-btn:disabled{background:#cbd5e1;border-color:#94a3b8;cursor:not-allowed;opacity:.6}@media (max-width:480px){.calendar-modal{width:95%;margin:20px}.calendar-modal-footer,.calendar-modal-header{padding:16px 20px}.calendar-modal-body{padding:20px}.calendar-day{font-size:13px}}.time-modal-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:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.time-modal{background:white;border-radius:16px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);width:90%;max-width:500px;max-height:90vh;overflow:hidden;animation:slideUp .3s ease-out;display:flex;flex-direction:column}.time-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #f1f5f9;background:#fafbfc;flex-shrink:0}.time-modal-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:#1e293b}.time-modal-close{background:none;border:none;padding:8px;border-radius:8px;color:#64748b;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.time-modal-close:hover{background:#f1f5f9;color:#475569}.time-modal-body{flex:1 1;overflow-y:auto;padding:24px}.time-slots-container{display:flex;flex-direction:column;gap:24px}.time-period-section{display:flex;flex-direction:column;gap:12px}.time-period-title{font-size:16px;font-weight:600;color:#374151;margin:0;padding-bottom:8px;border-bottom:1px solid #e5e7eb}.time-slots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));grid-gap:8px;gap:8px}.time-slot{padding:12px 16px;border:1px solid #e2e8f0;border-radius:8px;background:white;color:#475569;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:center}.time-slot:hover{background:#f8fafc;border-color:#cbd5e1;color:#334155}.time-slot.selected{background:#3b82f6;color:white;border-color:#2563eb;font-weight:600}.time-slot.selected:hover{background:#2563eb;border-color:#1d4ed8}.time-modal-footer{padding:20px 24px;border-top:1px solid #f1f5f9;background:#fafbfc;flex-shrink:0}.selected-time-display{text-align:center;font-size:14px;color:#64748b;margin-bottom:16px;padding:12px;background:white;border-radius:8px;border:1px solid #e2e8f0}.time-modal-actions{display:flex;gap:12px}.time-cancel-btn,.time-clear-btn,.time-confirm-btn{padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.time-clear-btn{background:#fef3c7;color:#92400e;border:1px solid #fbbf24;flex:1 1}.time-clear-btn:hover{background:#fde68a;border-color:#f59e0b}.time-cancel-btn{background:#f8fafc;color:#64748b;border:1px solid #e2e8f0;flex:1 1}.time-cancel-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.time-confirm-btn{background:#3b82f6;color:white;border:1px solid #2563eb;flex:2 1}.time-confirm-btn:hover:not(:disabled){background:#2563eb;border-color:#1d4ed8}.time-confirm-btn:disabled{background:#cbd5e1;border-color:#94a3b8;cursor:not-allowed;opacity:.6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:640px){.time-modal{width:95%;margin:20px;max-height:85vh}.time-modal-footer,.time-modal-header{padding:16px 20px}.time-modal-body{padding:20px}.time-slots-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:6px}.time-slot{padding:10px 12px;font-size:13px}.time-modal-actions{flex-direction:column}.time-cancel-btn,.time-clear-btn,.time-confirm-btn{flex:none}}@media (max-width:480px){.time-slots-grid{grid-template-columns:repeat(3,1fr)}.time-slot{padding:8px 10px;font-size:12px}}.search-filter-bar{background:white;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.08);margin-bottom:24px;transition:all .3s ease}.search-main-bar{padding:16px 20px;gap:0;min-height:64px}.search-field,.search-main-bar{display:flex;align-items:center}.search-field{gap:12px;flex:1 1;position:relative;padding:8px 12px;border-radius:8px;transition:background-color .2s ease}.search-field:hover{background-color:#f8fafc}.search-icon{color:#64748b;font-size:18px;flex-shrink:0}.search-input{border:none;outline:none;background:transparent;font-size:14px;color:#1e293b;flex:1 1;min-width:0}.search-input::placeholder{color:#94a3b8}.search-value{overflow:hidden;text-overflow:ellipsis;flex:1 1}.search-display-value,.search-value{font-size:14px;color:#1e293b;font-weight:500;white-space:nowrap}.search-display-value{pointer-events:none;position:absolute;left:44px;top:50%;transform:translateY(-50%)}.search-divider{width:1px;height:32px;background-color:#e2e8f0;margin:0 8px}.date-field,.time-field{cursor:pointer;min-width:120px;transition:all .2s ease}.date-field:hover,.time-field:hover{background-color:#f0f9ff;border-radius:8px}.date-field:hover .search-display-value,.date-field:hover .search-icon,.time-field:hover .search-display-value,.time-field:hover .search-icon{color:#3b82f6}.service-field{min-width:280px}.service-suggestions{position:absolute;text-align:left;top:100%;left:0;right:0;background:white;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);max-height:200px;overflow-y:auto;z-index:99;margin-top:4px;scrollbar-width:none;-ms-overflow-style:none}.service-suggestions::-webkit-scrollbar{display:none}.service-suggestion-item{padding:12px 16px;cursor:pointer;font-size:14px;color:#374151;border-bottom:1px solid #f3f4f6;transition:background-color .2s ease}.service-suggestion-item:hover{background-color:#f8fafc}.service-suggestion-item:last-child{border-bottom:none}.search-actions{gap:12px;margin-left:16px}.filter-toggle,.search-actions{display:flex;align-items:center}.filter-toggle{justify-content:center;width:44px;height:44px;border:1px solid #e2e8f0;border-radius:12px;background:white;color:#64748b;cursor:pointer;transition:all .2s ease;position:relative;padding-left:10px;padding-right:10px}.filter-toggle:hover{background-color:#f8fafc;border-color:#cbd5e1}.filter-toggle.has-filters{background-color:#3b82f6;border-color:#3b82f6;color:white}.filter-count{position:absolute;top:-6px;right:-6px;background:#ef4444;font-size:10px;font-weight:600;padding:2px 6px;border-radius:10px;min-width:18px;height:18px;justify-content:center}.filter-count,.search-button{color:white;display:flex;align-items:center}.search-button{width:100%;padding:12px 20px;background:#1F2937;align-self:center;border:none;border-radius:12px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;gap:8px}.search-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px rgba(59,130,246,.3)}.search-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:white;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.search-filters{border-top:1px solid #e2e8f0;background-color:#f8fafc;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.filters-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.filters-header h3{margin:0;font-size:16px;font-weight:600;color:#1e293b}.close-filters{background:none;border:none;color:#64748b;cursor:pointer;padding:4px;border-radius:4px;transition:color .2s ease}.close-filters:hover{color:#374151}.filters-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:16px;gap:16px;padding:20px}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group label{font-size:14px;font-weight:500;color:#374151}.filter-select{padding:12px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#ffffff;font-size:14px;color:#1e293b;cursor:pointer;transition:all .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='%2394a3b8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px}.filter-select:hover{background-color:#f8fafc;border-color:#cbd5e1}.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15);background-color:#f0f9ff}.filter-select.sort-button,.filter-select.sort-pill{border-radius:9999px;padding:10px 16px}.filter-select option{color:#1e293b}.filters-actions{display:flex;justify-content:space-between;padding:16px 20px;border-top:1px solid #e2e8f0}.clear-filters-btn{padding:10px 20px;background:transparent;color:#64748b;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.clear-filters-btn:hover{background-color:#f8fafc;color:#374151}.apply-filters-btn{padding:10px 20px;background:#3b82f6;color:white;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.apply-filters-btn:hover{background:#2563eb}.location-field{min-width:250px}.location-icon{cursor:pointer;transition:color .2s ease}.location-icon:hover{color:#3b82f6}.location-suggestions{position:absolute;top:100%;left:0;right:0;background:white;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);max-height:200px;overflow-y:auto;z-index:999999;margin-top:4px;text-align:left;scrollbar-width:none;-ms-overflow-style:none}.location-suggestions::-webkit-scrollbar{display:none}.location-suggestion-item{padding:12px 16px;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background-color .2s ease}.location-suggestion-item:hover{background-color:#f8fafc}.location-suggestion-item:last-child{border-bottom:none}.suggestion-name{font-size:14px;color:#374151;font-weight:500;margin-bottom:2px}.suggestion-address{font-size:12px;color:#6b7280}@media (max-width:768px){.search-main-bar{flex-direction:column;gap:2px;padding:16px;width:80vw}.search-field{width:100%;min-width:unset;border:1px solid #94a3b850;padding:16px 10px}.search-divider{display:none}.search-actions{width:100%;justify-content:center;align-items:center;gap:12px;margin-top:12px;margin-left:0}.filters-content{grid-template-columns:1fr}.filters-actions{flex-direction:column;gap:12px}.apply-filters-btn,.clear-filters-btn{width:100%}}.search-field:focus-within{background-color:#f0f9ff;box-shadow:0 0 0 2px rgba(59,130,246,.1)}.search-input:focus{color:#1e293b}.search-field:not(:focus-within) .search-input:placeholder-shown~.search-display-value{color:#94a3b8}