.modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;justify-content:center;align-items:center;animation:.3s ease-out dpm-fade-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes dpm-fade-in{0%{opacity:0}to{opacity:1}}.dpm-modal-content{background:#fff;border-radius:16px;flex-direction:column;width:85vw;max-width:900px;height:90vh;max-height:900px;animation:.3s cubic-bezier(.34,1.56,.64,1) dpm-slide-up;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 50px #0000004d}@media (max-width:768px){.dpm-modal-content{width:95vw;height:92vh}}@keyframes dpm-slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.dpm-header{z-index:10;background:#fff;border-bottom:1px solid #edf2f7;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.dpm-header h2{color:#2d3748;white-space:nowrap;text-overflow:ellipsis;max-width:80%;margin:0;font-size:1.25rem;font-weight:700;overflow:hidden}@media (max-width:480px){.dpm-header{padding:12px 16px}.dpm-header h2{font-size:1.1rem}}.appointments-list-section{margin-top:1.5rem}.dpm-close-button{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.dpm-close-button:hover{color:#1e293b;background:#e2e8f0;transform:rotate(90deg)}.dpm-close-button i{font-size:14px}.dpm-modal-tabs{z-index:9;scrollbar-width:none;background:#f8fafc;border-bottom:2px solid #edf2f7;flex-shrink:0;display:flex;overflow-x:auto}.dpm-modal-tabs::-webkit-scrollbar{display:none}.dpm-modal-tabs .dpm-tab-button{color:#64748b;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:14px 24px;font-size:.95rem;font-weight:600;transition:all .2s;display:flex;position:relative}.dpm-modal-tabs .dpm-tab-button i{font-size:1rem}.dpm-modal-tabs .dpm-tab-button:after{content:"";background:#3b82f6;width:0;height:2px;transition:width .3s;position:absolute;bottom:-2px;left:0}.dpm-modal-tabs .dpm-tab-button:hover{color:#3b82f6;background:#3b82f60d}.dpm-modal-tabs .dpm-tab-button.dpm-active{color:#3b82f6;background:#fff}.dpm-modal-tabs .dpm-tab-button.dpm-active:after{width:100%}@media (max-width:480px){.dpm-modal-tabs .dpm-tab-button{padding:12px 16px;font-size:.85rem}}.dpm-content{scroll-behavior:smooth;background:#fff;flex:1;max-width:100%;padding:24px;overflow-x:hidden;overflow-y:auto}.dpm-content>*{box-sizing:border-box;max-width:100%}@media (max-width:480px){.dpm-content{padding:16px}}.dpm-profile-tab .dpm-profile-header{background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);border-radius:12px;align-items:center;gap:24px;margin-bottom:32px;padding:24px;display:flex}@media (max-width:640px){.dpm-profile-tab .dpm-profile-header{text-align:center;flex-direction:column;padding:20px}}.dpm-profile-tab .dpm-profile-header .dpm-profile-image{border:4px solid #fff;border-radius:50%;flex-shrink:0;width:120px;height:120px;overflow:hidden;box-shadow:0 4px 12px #0000001a}.dpm-profile-tab .dpm-profile-header .dpm-profile-image img{object-fit:cover;width:100%;height:100%}.dpm-profile-tab .dpm-profile-header .dpm-profile-avatar{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:3rem;font-weight:700;display:flex}.dpm-profile-tab .dpm-profile-header .dpm-profile-info h3{color:#1e293b;margin:0 0 8px;font-size:1.5rem}.dpm-profile-tab .dpm-profile-header .dpm-profile-info .dpm-specialization{color:#3b82f6;margin-bottom:12px;font-size:1.1rem;font-weight:600}.dpm-profile-tab .dpm-profile-header .dpm-profile-info .dpm-location,.dpm-profile-tab .dpm-profile-header .dpm-profile-info .dpm-experience{color:#64748b;align-items:center;gap:8px;margin:4px 0;display:flex}@media (max-width:640px){.dpm-profile-tab .dpm-profile-header .dpm-profile-info .dpm-location,.dpm-profile-tab .dpm-profile-header .dpm-profile-info .dpm-experience{justify-content:center}}.dpm-profile-tab .dpm-profile-header .dpm-profile-info .dpm-location i,.dpm-profile-tab .dpm-profile-header .dpm-profile-info .dpm-experience i{color:#3b82f6;width:16px}.dpm-detail-section{margin-bottom:32px}.dpm-detail-section h4{color:#1e293b;border-bottom:2px solid #f1f5f9;margin:0 0 16px;padding-bottom:8px;font-size:1.1rem}.dpm-detail-section .dpm-detail-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;display:grid}.dpm-detail-section .dpm-detail-grid .dpm-detail-item .dpm-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:.8rem;font-weight:700;display:block}.dpm-detail-section .dpm-detail-grid .dpm-detail-item .dpm-value{color:#334155;font-size:1rem;font-weight:500}.dpm-detail-section .dpm-detail-grid .dpm-detail-item.dpm-full-width{grid-column:1/-1}.dpm-services-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:0;list-style:none;display:grid}.dpm-services-list li{color:#475569;background:#f8fafc;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:.95rem;display:flex}.dpm-services-list li i{color:#10b981}.dpm-timings-value{flex-direction:column;gap:8px;display:flex}.dpm-timings-value .dpm-timing-day{background:#f8fafc;border-radius:8px;justify-content:space-between;padding:10px 16px;display:flex}.dpm-timings-value .dpm-timing-day .dpm-day-name{color:#1e293b;font-weight:600}.dpm-timings-value .dpm-timing-day .dpm-time-range{color:#64748b}.dpm-action-buttons{gap:16px;margin-top:24px;display:flex}@media (max-width:480px){.dpm-action-buttons{flex-direction:column}}.dpm-action-buttons button{cursor:pointer;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:8px;height:48px;font-weight:600;transition:all .2s;display:flex}.dpm-action-buttons button.dpm-book-button{color:#fff;background:#3b82f6}.dpm-action-buttons button.dpm-book-button:hover{background:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.dpm-action-buttons button.dpm-contact-button{color:#334155;background:#f1f5f9}.dpm-action-buttons button.dpm-contact-button:hover{background:#e2e8f0}.dpm-appointments-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.dpm-appointment-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.dpm-appointment-card .dpm-appointment-info div{color:#64748b;align-items:center;gap:8px;margin-bottom:4px;font-size:.9rem;display:flex}.dpm-appointment-card .dpm-appointment-info div i{color:#3b82f6;width:16px}.dpm-appointment-card .dpm-appointment-info .booked{color:#ef4444;font-weight:600}.dpm-appointment-card .dpm-appointment-info .available{color:#10b981;font-weight:600}.dpm-appointment-card .dpm-book-slot-button{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:8px;padding:10px;font-weight:600}.dpm-appointment-card .dpm-book-slot-button:hover{background:#2563eb}.dpm-photos-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;display:grid}.dpm-photo-card{background:#fff;border:1px solid #f1f5f9;border-radius:12px;overflow:hidden;box-shadow:0 4px 6px #0000000d}.dpm-photo-card img{object-fit:cover;width:100%;height:200px}.dpm-photo-card .dpm-photo-caption{padding:12px}.dpm-photo-card .dpm-photo-caption h4{color:#1e293b;margin:0;font-size:1rem}.dpm-photo-card .dpm-photo-caption .dpm-photo-description{color:#64748b;margin-top:4px;font-size:.85rem}.dpm-loading{justify-content:center;align-items:center;height:200px;display:flex}.dpm-no-photos,.dpm-no-appointments{text-align:center;color:#94a3b8;padding:40px;font-style:italic}.dpm-appointment-wrapper{box-sizing:border-box;width:100%;max-width:100%;overflow-x:hidden}.dpm-appointment-wrapper *{box-sizing:border-box}.dpm-appointment-wrapper .appointment-grid{max-width:100%;overflow-x:hidden;grid-template-columns:1fr!important;gap:16px!important;display:grid!important}.dpm-appointment-wrapper .booking-mode-info{margin-bottom:16px!important;padding:12px 16px!important}.dpm-appointment-wrapper .booking-mode-info h3{margin-bottom:2px!important;font-size:1rem!important}.dpm-appointment-wrapper .booking-mode-info p{font-size:.85rem!important}.dpm-appointment-wrapper .calendar-section{max-width:100%;overflow-x:hidden}.dpm-appointment-wrapper .calendar-section .custom-calendar{margin:0 auto;overflow-x:hidden;max-width:100%!important;padding:12px!important}.dpm-appointment-wrapper .calendar-section .custom-calendar .react-calendar__navigation{margin-bottom:8px!important}.dpm-appointment-wrapper .calendar-section .custom-calendar .react-calendar__navigation button{min-width:36px!important;padding:6px!important;font-size:.9rem!important}.dpm-appointment-wrapper .calendar-section .custom-calendar .react-calendar__month-view__weekdays{margin-bottom:4px!important;font-size:.7rem!important}.dpm-appointment-wrapper .calendar-section .custom-calendar .react-calendar__tile{padding:8px 4px!important;font-size:.85rem!important}.dpm-appointment-wrapper .calendar-section .queue-info{max-width:100%;margin-top:12px!important;padding:12px!important}.dpm-appointment-wrapper .calendar-section .queue-info h3{margin-bottom:6px!important;font-size:.9rem!important}.dpm-appointment-wrapper .calendar-section .queue-info p{font-size:.8rem!important}.dpm-appointment-wrapper .slots-section,.dpm-appointment-wrapper .queue-section{box-sizing:border-box;width:100%;max-width:100%;overflow-x:hidden;padding:16px!important}.dpm-appointment-wrapper .slots-section h4,.dpm-appointment-wrapper .queue-section h4{margin-bottom:12px!important;font-size:1rem!important}.dpm-appointment-wrapper .time-slots{grid-template-columns:repeat(4,1fr)!important;gap:10px!important;width:100%!important;display:grid!important}@media (max-width:768px){.dpm-appointment-wrapper .time-slots{grid-template-columns:repeat(3,1fr)!important;gap:8px!important}}@media (max-width:640px){.dpm-appointment-wrapper .time-slots{grid-template-columns:repeat(3,1fr)!important}}@media (max-width:480px){.dpm-appointment-wrapper .time-slots{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}}.dpm-appointment-wrapper .time-slots .time-slot{padding:10px 6px!important}.dpm-appointment-wrapper .time-slots .time-slot .slot-time{font-size:.85rem!important}.dpm-appointment-wrapper .time-slots .time-slot.occupied:after{margin-top:2px;font-size:9px!important}.dpm-appointment-wrapper .appointments-table-container{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto;margin-top:12px!important}.dpm-appointment-wrapper .appointments-table-container .appointments-table{width:100%;min-width:100%;max-width:100%}.dpm-appointment-wrapper .appointments-table-container .appointments-table th{white-space:nowrap;padding:10px 12px!important;font-size:.75rem!important}.dpm-appointment-wrapper .appointments-table-container .appointments-table td{padding:10px 12px!important;font-size:.85rem!important}.dpm-appointment-wrapper .appointments-table-container .appointments-table .status-badge{white-space:nowrap;padding:3px 8px!important;font-size:.7rem!important}.dpm-appointment-wrapper .bookings-list{gap:10px!important}.dpm-appointment-wrapper .booking-item{padding:12px!important}.dpm-appointment-wrapper .booking-item .queue-number{width:32px!important;height:32px!important;margin-right:12px!important;font-size:.9rem!important}.dpm-appointment-wrapper .booking-item .booking-info .patient-name{margin-bottom:3px!important;font-size:.95rem!important}.dpm-appointment-wrapper .booking-item .booking-info .booking-details{gap:10px!important;font-size:.8rem!important}.dpm-appointment-wrapper .booking-item .status-badge{padding:3px 10px!important;font-size:.7rem!important}.dpm-appointment-wrapper .queue-filter{gap:6px!important;margin-bottom:12px!important}.dpm-appointment-wrapper .queue-filter .filter-button{padding:6px 12px!important;font-size:.8rem!important}.dpm-appointment-wrapper .appointment-manager{width:100%!important}.dpm-appointment-wrapper .add-patient-button{margin-top:12px!important;padding:12px!important;font-size:.9rem!important}
