@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);@import url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css);.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content.rating-modal{background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;max-width:500px;padding:24px;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.modal-header h3{color:#2d3748;font-size:20px;margin:0}.close-btn{align-items:center;background:none;border:none;color:#718096;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;width:30px}.close-btn:hover{color:#2d3748}.rating-section{margin-bottom:24px}.rating-section label{color:#2d3748;display:block;font-weight:600;margin-bottom:12px}.stars-container{display:flex;gap:4px;margin-bottom:8px}.star{color:#e2e8f0;cursor:pointer;font-size:28px;transition:color .2s ease;-webkit-user-select:none;user-select:none}.star.filled,.star:hover{color:gold}.rating-text{margin-top:8px}.rating-value{color:#667eea;font-size:16px;font-weight:600}.feedback-section{margin-bottom:24px}.feedback-section label{color:#2d3748;display:block;font-weight:600;margin-bottom:8px}.feedback-section textarea{border:2px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:14px;min-height:100px;padding:12px;resize:vertical;width:100%}.feedback-section textarea:focus{border-color:#667eea;outline:none}.feedback-section small{color:#718096;display:block;font-size:12px;margin-top:4px}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.btn-cancel,.btn-submit{border:none;border-radius:6px;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .2s ease}.btn-cancel{background-color:#f7fafc;border:1px solid #e2e8f0;color:#4a5568}.btn-cancel:hover{background-color:#edf2f7}.btn-submit{background-color:#667eea}.btn-submit:hover{background-color:#5a67d8}.btn-cancel:disabled,.btn-submit:disabled{cursor:not-allowed;opacity:.6}.appointment-history{margin:0 auto;max-width:800px;padding:20px}.page-header{margin-bottom:24px}.page-header h2{color:#2d3748;margin:0}.loading,.no-appointments{color:#718096;padding:40px;text-align:center}.appointments-list{display:flex;flex-direction:column;gap:16px}.appointment-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 4px #0000001a;padding:20px}.appointment-info{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.doctor-details h3{color:#2d3748;font-size:18px;margin:0 0 8px}.appointment-date{color:#718096;font-size:14px;margin:0}.appointment-status .status{border-radius:20px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.status.completed{background-color:#c6f6d5;color:#22543d}.status.upcoming{background-color:#bee3f8;color:#2a4365}.status.cancelled{background-color:#fed7d7;color:#742a2a}.appointment-actions{align-items:center;display:flex;justify-content:flex-end}.btn-rate{background-color:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:8px 16px;transition:background-color .2s ease}.btn-rate:hover{background-color:#5a67d8}.rated-indicator{color:#38a169;font-size:14px;font-weight:600}@media (max-width:768px){.modal-content.rating-modal{margin:20px;width:95%}.appointment-info{flex-direction:column;gap:12px}.appointment-actions{justify-content:flex-start}}:root{--primary-color:#06c;--primary-dark:#049;--primary-light:#e6f3ff;--secondary-color:#00b894;--accent-color:#fd79a8;--text-primary:#2d3748;--text-secondary:#4a5568;--text-muted:#718096;--background:#f8fafc;--white:#fff;--border:#e2e8f0;--shadow:0 4px 6px -1px #0000001a;--shadow-lg:0 20px 25px -5px #0000001a;--border-radius:12px;--transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;background:var(--background);color:#2d3748;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.6}.app{display:flex;flex-direction:column;min-height:100vh}.container{margin:0 auto;max-width:1200px;padding:0 24px}.header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);box-shadow:0 1px 3px #0000001a;position:-webkit-sticky;position:sticky;top:0;z-index:100}.nav{height:60px;justify-content:space-between;margin:0 auto;max-width:1200px;padding:8px 24px}.logo,.nav{align-items:center;display:flex}.logo{color:#06c;color:var(--primary-color);font-size:20px;font-weight:700;gap:8px;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.logo:before{content:"⚕️";font-size:24px}.logo:hover{transform:scale(1.05)}.nav-links{align-items:center;display:flex;gap:4px}.nav-link{border-radius:6px;color:#4a5568;color:var(--text-secondary);font-size:14px;font-weight:500;padding:8px 16px;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.nav-link:hover{background:#e6f3ff;background:var(--primary-light)}.nav-link.btn,.nav-link:hover{color:#06c;color:var(--primary-color)}.nav-link.btn{background:none;border:1px solid #06c;border:1px solid var(--primary-color);font-size:13px;letter-spacing:.5px;padding:6px 12px;text-transform:uppercase}.nav-link.btn:hover{background:#06c;background:var(--primary-color);color:#fff;color:var(--white)}.btn-primary{background:linear-gradient(135deg,#06c,#049);background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));border:none;border-radius:6px;color:#fff;color:var(--white);font-size:13px;font-weight:600;letter-spacing:.5px;padding:8px 16px;text-transform:uppercase;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.btn-primary:hover{box-shadow:0 4px 12px #0066cc4d;transform:translateY(-1px)}.form-container{background:#fff;background:var(--white);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--border-radius);box-shadow:0 20px 25px -5px #0000001a;box-shadow:var(--shadow-lg);margin:80px auto;max-width:480px;padding:48px}.form-title{color:#2d3748;color:var(--text-primary);font-size:32px;font-weight:700;margin-bottom:40px;position:relative;text-align:center}.form-title:after{background:linear-gradient(90deg,#06c,#00b894);background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));border-radius:2px;bottom:-12px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.form-group{margin-bottom:24px;position:relative}.form-label{color:#4a5568;color:var(--text-secondary);display:block;font-size:14px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.form-input{background:#fafbfc;border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:10px;font-size:16px;padding:16px 20px;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:100%}.form-input:focus{background:#fff;background:var(--white);border-color:#06c;border-color:var(--primary-color);box-shadow:0 0 0 3px #0066cc1a;outline:none}.btn-submit{background:linear-gradient(135deg,#06c,#049);background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));border:none;border-radius:10px;color:#fff;color:var(--white);cursor:pointer;font-size:16px;font-weight:600;letter-spacing:.5px;padding:16px;text-transform:uppercase;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:100%}.btn-submit:hover{box-shadow:0 20px 25px -5px #0000001a;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.form-link{border-top:1px solid #e2e8f0;border-top:1px solid var(--border);margin-top:24px;padding-top:24px;text-align:center}.form-link a{color:#06c;color:var(--primary-color);font-weight:600;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.form-link a:hover{color:#049;color:var(--primary-dark);text-decoration:underline}.error-message{align-items:center;background:linear-gradient(135deg,#fee2e2,#fecaca);border:1px solid #fca5a5;border-radius:10px;color:#dc2626;display:flex;font-weight:500;gap:8px;justify-content:center;margin-bottom:24px;padding:16px 20px;text-align:center}.error-message:before{content:"⚠️";font-size:18px}.success-message{align-items:center;background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid #6ee7b7;border-radius:10px;color:#059669;display:flex;font-weight:500;gap:8px;justify-content:center;margin-bottom:24px;padding:16px 20px;text-align:center}.success-message:before{content:"✅";font-size:18px}.search-section{background:#fff;background:var(--white);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--border-radius);box-shadow:0 20px 25px -5px #0000001a;box-shadow:var(--shadow-lg);margin:80px auto;max-width:800px;padding:60px 48px;text-align:center}.search-section h2{color:#2d3748;color:var(--text-primary);font-size:36px;font-weight:700;margin-bottom:16px}.search-section p{color:#718096;color:var(--text-muted);font-size:18px;margin-bottom:40px}.search-input{background:#fafbfc;border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:12px;font-size:16px;margin-right:16px;padding:18px 24px;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:70%}.search-input:focus{background:#fff;background:var(--white);border-color:#06c;border-color:var(--primary-color);box-shadow:0 0 0 3px #0066cc1a;outline:none}.btn{background:linear-gradient(135deg,#06c,#049);background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));border:none;border-radius:12px;color:#fff;color:var(--white);cursor:pointer;font-size:16px;font-weight:600;letter-spacing:.5px;padding:18px 32px;text-transform:uppercase;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.btn:hover{transform:translateY(-2px)}.btn:hover,.doctor-profile{box-shadow:0 20px 25px -5px #0000001a;box-shadow:var(--shadow-lg)}.doctor-profile{background:#fff;background:var(--white);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--border-radius);margin:32px auto;max-width:1000px;overflow:hidden;padding:48px;position:relative}.doctor-profile:before{background:linear-gradient(90deg,#06c,#00b894,#fd79a8);background:linear-gradient(90deg,var(--primary-color),var(--secondary-color),var(--accent-color));content:"";height:4px;left:0;position:absolute;right:0;top:0}.doctor-profile h2{align-items:center;color:#2d3748;color:var(--text-primary);display:flex;font-size:28px;font-weight:700;gap:12px;margin-bottom:24px}.doctor-profile h2:before{content:"👨‍⚕️";font-size:32px}.profile-header{align-items:flex-start;display:flex;gap:32px;margin-bottom:40px}.profile-photo{border:4px solid #e6f3ff;border:4px solid var(--primary-light);border-radius:20px;box-shadow:0 4px 6px -1px #0000001a;box-shadow:var(--shadow);height:150px;object-fit:cover;width:150px}.profile-info{flex:1 1}.profile-info h2{color:#2d3748;color:var(--text-primary);font-size:32px;font-weight:700;margin-bottom:16px}.profile-info p{align-items:center;color:#718096;color:var(--text-muted);display:flex;font-size:16px;gap:8px;margin-bottom:8px}.profile-info p strong{color:#4a5568;color:var(--text-secondary);font-weight:600}.clinics-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));margin-top:32px}.clinic-card{background:#fff;background:var(--white);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--border-radius);box-shadow:0 4px 6px -1px #0000001a;box-shadow:var(--shadow);overflow:hidden;padding:32px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.clinic-card:before{background:linear-gradient(90deg,#00b894,#06c);background:linear-gradient(90deg,var(--secondary-color),var(--primary-color));content:"";height:3px;left:0;position:absolute;right:0;top:0}.clinic-card:hover{box-shadow:0 20px 25px -5px #0000001a;box-shadow:var(--shadow-lg);transform:translateY(-4px)}.clinic-card h3{align-items:center;color:#2d3748;color:var(--text-primary);display:flex;font-size:24px;font-weight:700;gap:12px;margin-bottom:16px}.clinic-card h3:before{content:"🏥";font-size:24px}.clinic-card p{align-items:center;color:#718096;color:var(--text-muted);display:flex;gap:8px;margin-bottom:8px}.clinic-map{border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:10px;height:220px;margin-top:20px;overflow:hidden;width:100%}.appointments-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:32px}.appointment-slot{background:#fff;background:var(--white);border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:12px;border-radius:var(--border-radius);font-size:14px;overflow:hidden;padding:24px;position:relative;text-align:left;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.appointment-slot:before{background:#00b894;background:var(--secondary-color);content:"";height:4px;left:0;position:absolute;right:0;top:0}.appointment-slot:hover{border-color:#06c;border-color:var(--primary-color);box-shadow:0 4px 6px -1px #0000001a;box-shadow:var(--shadow);transform:translateY(-2px)}.appointment-slot strong{color:#2d3748;color:var(--text-primary);font-size:16px;font-weight:700}.btn-secondary{background:#fff;background:var(--white);border:2px solid #06c;border:2px solid var(--primary-color);color:#06c;color:var(--primary-color)}.btn-secondary:hover{background:#06c;background:var(--primary-color);color:#fff;color:var(--white)}.btn-success{background:linear-gradient(135deg,#00b894,#00a085);background:linear-gradient(135deg,var(--secondary-color),#00a085)}.btn-success,.btn-warning{color:#fff;color:var(--white)}.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;color:var(--white)}.hidden{display:none}@media (max-width:768px){.container{padding:0 16px}.nav{height:56px;padding:8px 16px}.logo{font-size:18px}.nav-links{gap:2px}.nav-link{font-size:13px;padding:6px 12px}.form-container{margin:40px auto}.doctor-profile,.form-container{padding:32px 24px}.profile-header{flex-direction:column;gap:24px;text-align:center}.appointments-grid,.clinics-grid{grid-template-columns:1fr}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}html{scroll-behavior:smooth}.date-nav-button{transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.date-nav-button:hover:not(.selected){border-color:#06c;border-color:var(--primary-color);box-shadow:0 6px 16px #0066cc26;transform:translateY(-1px)}.date-nav-arrow{transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.date-nav-arrow:hover:not(:disabled){box-shadow:0 4px 12px #0066cc4d;transform:scale(1.1)}.date-nav-arrow:disabled{cursor:not-allowed;opacity:.5}@media (max-width:640px){.date-navigator{flex-direction:column;gap:12px;padding:16px}.date-nav-buttons{flex-wrap:wrap;justify-content:center}.date-nav-button{min-width:100px;padding:12px 16px}}