:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;width:100%}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.home-page{width:100%;overflow-x:hidden}.hero{background:linear-gradient(135deg,#667eeabf,#764ba2bf),url(https://images.unsplash.com/photo-1531482615713-2afd69097998?w=1920&q=85) center/cover;color:#fff;padding:6rem 2rem;text-align:center;min-height:70vh;display:flex;align-items:center;justify-content:center;position:relative}.hero-content{max-width:800px;margin:0 auto;position:relative;z-index:1}.hero h1{font-size:3.5rem;margin-bottom:1rem;font-weight:700;line-height:1.2;text-shadow:2px 2px 8px rgba(0,0,0,.3)}.hero-subtitle{font-size:1.5rem;margin-bottom:1rem;font-weight:500;text-shadow:1px 1px 6px rgba(0,0,0,.3)}.hero-description{font-size:1.2rem;margin-bottom:2.5rem;line-height:1.6;text-shadow:1px 1px 4px rgba(0,0,0,.3)}.hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn{padding:1rem 2.5rem;border-radius:8px;text-decoration:none;font-weight:600;font-size:1.1rem;transition:all .3s ease;display:inline-block;border:none;cursor:pointer}.btn-primary{background:#fff;color:#667eea}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0003}.btn-secondary{background:transparent;color:#fff;border:2px solid white}.btn-secondary:hover{background:#fff;color:#667eea;transform:translateY(-2px)}.btn-large{padding:1.2rem 3rem;font-size:1.2rem}section{padding:5rem 2rem}.section-content{max-width:1200px;margin:0 auto}section h2{font-size:2.5rem;margin-bottom:1rem;text-align:center;color:#2d3748}.section-intro{text-align:center;font-size:1.2rem;color:#4a5568;margin-bottom:3rem}.problem-section{background:#f7fafc}.problem-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:3rem}.problem-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px #0000001a;transition:transform .3s ease}.problem-card:hover{transform:translateY(-5px);box-shadow:0 8px 15px #00000026}.problem-icon{font-size:3rem;margin-bottom:1rem}.problem-card h3{font-size:1.3rem;margin-bottom:1rem;color:#2d3748}.problem-card p{color:#4a5568;line-height:1.6}.solution-section{background:#fff}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-top:3rem}.feature-card{text-align:center;padding:2rem;border:2px solid #e2e8f0;border-radius:12px;transition:all .3s ease}.feature-card:hover{border-color:#667eea;background:#f7fafc;transform:scale(1.05)}.feature-icon{font-size:2.5rem;margin-bottom:1rem}.feature-card h3{font-size:1.2rem;margin-bottom:.5rem;color:#2d3748}.feature-card p{color:#4a5568}.value-section{background:linear-gradient(135deg,#667eea15,#764ba215)}.value-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:3rem;margin-top:3rem}.value-column h3{font-size:1.8rem;margin-bottom:1.5rem;color:#667eea;text-align:center}.value-list{list-style:none;padding:0}.value-list li{display:flex;gap:1rem;margin-bottom:1.5rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.check-icon{background:#48bb78;color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;margin-top:2px}.value-list strong{display:block;color:#2d3748;margin-bottom:.3rem;font-size:1.1rem}.value-list p{color:#4a5568;margin:0;line-height:1.5}.target-section{background:#fff}.promise-box{max-width:800px;margin:2rem auto;padding:3rem;background:linear-gradient(135deg,#667eea15,#764ba215);border-radius:16px;text-align:center;border:2px solid #667eea30}.promise-quote{font-size:1.8rem;font-style:italic;color:#667eea;margin-bottom:1.5rem;line-height:1.6;font-weight:500}.promise-text{font-size:1.2rem;color:#2d3748;line-height:1.8}.target-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:3rem;margin-top:3rem;max-width:800px;margin-left:auto;margin-right:auto}.target-column{background:#f7fafc;padding:2rem;border-radius:12px;border:2px solid #667eea}.target-column h3{font-size:1.5rem;color:#667eea;margin-bottom:1.5rem;text-align:center}.target-column ul{list-style:none;padding:0}.target-column li{padding:.8rem 0;color:#2d3748;font-size:1.1rem;border-bottom:1px solid #e2e8f0}.target-column li:last-child{border-bottom:none}.geography-note{text-align:center;margin-top:2rem;padding:1.5rem;background:#667eea15;border-radius:8px;color:#2d3748;font-size:1.1rem}.cta-section{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center}.cta-section h2{color:#fff;font-size:2.5rem}.cta-section p{font-size:1.2rem;margin-bottom:2.5rem;opacity:.95;max-width:700px;margin-left:auto;margin-right:auto}.cta-buttons{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}.home-footer{background:#2d3748;color:#fff;text-align:center;padding:2rem}.home-footer p{margin:0;opacity:.8}@media(max-width:768px){.hero h1{font-size:2.5rem}.hero-subtitle{font-size:1.2rem}.hero-description{font-size:1rem}section h2{font-size:2rem}.value-grid{grid-template-columns:1fr}.hero-buttons,.cta-buttons{flex-direction:column}.btn{width:100%;max-width:300px}.problem-grid,.features-grid{grid-template-columns:1fr}}@media(max-width:480px){.hero{padding:4rem 1rem}section{padding:3rem 1rem}.hero h1{font-size:2rem}}.auth-container{min-height:80vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-box{background:#fff;padding:2.5rem;border-radius:10px;box-shadow:0 10px 25px #0003;width:100%;max-width:400px}.auth-box h2{margin-bottom:1.5rem;color:#2c3e50;text-align:center}.auth-box form{display:flex;flex-direction:column;gap:1rem}.auth-box input,.auth-box select{padding:.75rem;border:1px solid #ddd;border-radius:5px;font-size:1rem}.auth-box input:focus,.auth-box select:focus{outline:none;border-color:#667eea}.btn-primary{background:#667eea;color:#fff;border:none;padding:.75rem;border-radius:5px;font-size:1rem;cursor:pointer;transition:background .3s}.btn-primary:hover{background:#5568d3}.error{background:#fee;color:#c33;padding:.75rem;border-radius:5px;border-left:4px solid #c33}.success{background:#efe;color:#3c3;padding:.75rem;border-radius:5px;border-left:4px solid #3c3}.auth-link{text-align:center;margin-top:1rem;color:#666}.auth-link a{color:#667eea;text-decoration:none}.auth-link a:hover{text-decoration:underline}@media(max-width:768px){.auth-container{padding:1rem;min-height:calc(100vh - 200px)}.auth-box{padding:1.5rem;max-width:100%}.auth-box h2{font-size:1.5rem}.auth-box input,.auth-box select,.btn-primary{font-size:16px}}@media(max-width:480px){.auth-box{padding:1rem;border-radius:8px}.auth-box h2{font-size:1.3rem;margin-bottom:1rem}.auth-box form{gap:.8rem}}.dashboard{padding:2rem;max-width:1200px;margin:0 auto}.dashboard h1{color:#2c3e50;margin-bottom:2rem}.loading{text-align:center;padding:3rem;font-size:1.2rem;color:#666}.no-profile{background:#fff;padding:3rem;border-radius:10px;text-align:center;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.no-profile h2{color:#2c3e50;margin-bottom:1rem}.no-profile p{color:#666;margin-bottom:2rem;font-size:1.1rem}.profile-summary{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.profile-card{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-top:1rem}.profile-card h3{color:#2c3e50;margin-bottom:1rem}.profile-card p{margin:.5rem 0;color:#555}.quick-actions{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 8px #0000001a}.action-buttons{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}.btn-action{background:#3498db;color:#fff;border:none;padding:1rem 2rem;border-radius:5px;cursor:pointer;font-size:1rem;transition:background .3s}.btn-action:hover{background:#2980b9}.btn-secondary{background:#95a5a6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:5px;cursor:pointer;margin-top:1rem;transition:background .3s}.btn-secondary:hover{background:#7f8c8d}.profile-page{padding:2rem;max-width:800px;margin:0 auto}.profile-page h1{color:#2c3e50;margin-bottom:2rem}.profile-form{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 8px #0000001a}.form-group label{display:block;margin-bottom:.5rem;color:#2c3e50;font-weight:500}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:5px;font-size:1rem;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#667eea}.form-actions{display:flex;gap:1rem;margin-top:2rem}.btn-danger{background:#e74c3c;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:5px;cursor:pointer;font-size:1rem;transition:background .3s}.btn-danger:hover{background:#c0392b}@media(max-width:768px){.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}}.mentor-list-page{padding:2rem;max-width:1400px;margin:0 auto}.mentor-list-page h1{color:#2c3e50;margin-bottom:2rem}.search-bar{margin-bottom:2rem}.search-bar input{width:100%;max-width:600px;padding:1rem;border:1px solid #ddd;border-radius:8px;font-size:1rem}.search-bar input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.mentor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem}.mentor-card{background:#fff;padding:1.5rem;border-radius:10px;box-shadow:0 2px 8px #0000001a;transition:transform .3s,box-shadow .3s}.mentor-card:hover{transform:translateY(-5px);box-shadow:0 4px 16px #00000026}.mentor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #ecf0f1}.mentor-header h3{color:#2c3e50;margin:0}.verified-badge{background:#27ae60;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500}.mentor-info{margin-bottom:1rem}.mentor-info p{margin:.5rem 0;color:#555;font-size:.95rem}.mentor-bio{margin:1rem 0;padding:1rem;background:#f8f9fa;border-radius:6px}.mentor-bio p{color:#666;margin:0;line-height:1.6}.btn-connect{width:100%;background:#667eea;color:#fff;border:none;padding:.75rem;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .3s;margin-top:1rem}.btn-connect:hover{background:#5568d3}.no-results{text-align:center;color:#999;font-size:1.1rem;padding:3rem;grid-column:1 / -1}.match-header{text-align:center;margin-bottom:2rem;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px}.match-header h1{margin:0;font-size:2.5rem}.match-subtitle{margin:.5rem 0 0;font-size:1.1rem;opacity:.95}.mentor-card.ai-matched{position:relative;border:2px solid #667eea;transition:all .3s}.mentor-card.ai-matched:hover{transform:translateY(-8px);box-shadow:0 12px 24px #667eea33}.match-score-badge{position:absolute;top:-12px;right:20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.5rem 1rem;border-radius:20px;font-weight:700;font-size:.9rem;box-shadow:0 4px 12px #667eea4d}.match-reasons{background:#f8f9fa;padding:1rem;border-radius:8px;margin:1rem 0}.match-reasons h4{margin:0 0 .75rem;color:#667eea;font-size:.95rem}.match-reasons ul{list-style:none;padding:0;margin:0}.match-reasons li{padding:.4rem 0;color:#2d3748;font-size:.9rem}.actions{text-align:center;margin:2rem 0;display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn-primary,.btn-secondary{padding:.75rem 2rem;border-radius:8px;font-weight:600;cursor:pointer;border:none;transition:all .2s}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.btn-secondary{background:#fff;color:#667eea;border:2px solid #667eea}.btn-secondary:hover{background:#f8f9fa}.mentor-actions{display:flex;gap:.75rem;margin-top:1rem}.btn-book-session{flex:1;background:linear-gradient(135deg,#27ae60,#229954);color:#fff;border:none;padding:.75rem;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-book-session:hover{transform:translateY(-2px);box-shadow:0 4px 12px #27ae6066}.btn-connect{flex:1;background:#667eea;color:#fff;border:none;padding:.75rem;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;margin-top:0}.btn-connect:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}@media(max-width:768px){.mentor-grid{grid-template-columns:1fr}.mentor-actions{flex-direction:column}}.requests-page{padding:2rem;max-width:1400px;margin:0 auto}.requests-page h1{color:#2c3e50;margin-bottom:2rem}.requests-section{margin-bottom:3rem}.requests-section h2{color:#34495e;margin-bottom:1.5rem;border-bottom:2px solid #ecf0f1;padding-bottom:.5rem}.no-data{text-align:center;color:#999;padding:2rem;background:#fff;border-radius:8px}.no-data a{color:#667eea;cursor:pointer;text-decoration:underline}.requests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.request-card{background:#fff;padding:1.5rem;border-radius:10px;box-shadow:0 2px 8px #0000001a;transition:transform .3s}.request-card:hover{transform:translateY(-3px);box-shadow:0 4px 12px #00000026}.request-card h3{color:#2c3e50;margin-bottom:1rem}.request-card p{margin:.5rem 0;color:#555}.request-date{font-size:.9rem;color:#999;margin-top:1rem;border-top:1px solid #ecf0f1;padding-top:.75rem}.status-pending{color:#f39c12;font-weight:600;text-transform:uppercase;font-size:.9rem}.status-accepted{color:#27ae60;font-weight:600;text-transform:uppercase;font-size:.9rem}.status-rejected{color:#e74c3c;font-weight:600;text-transform:uppercase;font-size:.9rem}.request-actions{display:flex;gap:.75rem;margin-top:1rem}.btn-accept{flex:1;background:#27ae60;color:#fff;border:none;padding:.75rem;border-radius:5px;cursor:pointer;font-weight:500;transition:background .3s}.btn-accept:hover{background:#229954}.btn-reject{flex:1;background:#e74c3c;color:#fff;border:none;padding:.75rem;border-radius:5px;cursor:pointer;font-weight:500;transition:background .3s}.btn-reject:hover{background:#c0392b}.mentorship-card{border-left:4px solid #27ae60}@media(max-width:768px){.requests-grid{grid-template-columns:1fr}}.ai-intake-container{max-width:800px;margin:2rem auto;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;display:flex;flex-direction:column;height:85vh;overflow:hidden}.ai-header{display:flex;align-items:center;gap:1rem;padding:1.5rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.ai-avatar{font-size:3rem;background:#fff;width:65px;height:65px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000026}.ai-header-text h2{margin:0;font-size:1.5rem}.ai-subtitle{margin:.25rem 0 0;font-size:.9rem;opacity:.95}.progress-container{position:relative;height:6px;background:#f0f0f0}.progress-bar{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .4s ease}.progress-text{position:absolute;top:8px;right:1rem;font-size:.75rem;color:#999;font-weight:500}.chat-messages{flex:1;overflow-y:auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem;background:linear-gradient(to bottom,#fafafa,#fff)}.message{display:flex;gap:.75rem;align-items:flex-start;max-width:85%;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end;flex-direction:row-reverse}.message-avatar{font-size:2rem;min-width:40px;height:40px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001a}.message-content{display:flex;flex-direction:column;gap:.25rem}.message-bubble{padding:1rem 1.25rem;border-radius:20px;line-height:1.6;box-shadow:0 2px 8px #0000000f}.message-bubble p{margin:.5rem 0}.message-bubble p:first-child{margin-top:0}.message-bubble p:last-child{margin-bottom:0}.message.ai .message-bubble{background:#f8f9fa;color:#2d3748;border-bottom-left-radius:4px}.message.user .message-bubble{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-bottom-right-radius:4px}.message-time{font-size:.7rem;color:#999;padding:0 .5rem}.message.user .message-time{text-align:right}.typing-indicator{display:flex;gap:.4rem;padding:1.2rem 1.5rem!important;align-items:center}.typing-indicator span{width:8px;height:8px;background:#999;border-radius:50%;animation:typing 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-10px);opacity:1}}.quick-replies{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1.5rem;background:#fafafa;border-top:1px solid #e0e0e0}.quick-reply-btn{padding:.5rem 1rem;background:#fff;border:1px solid #ddd;border-radius:20px;cursor:pointer;font-size:.85rem;transition:all .2s;color:#667eea;font-weight:500}.quick-reply-btn:hover:not(:disabled){background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent;transform:translateY(-1px)}.quick-reply-btn:disabled{opacity:.5;cursor:not-allowed}.chat-input-form{display:flex;gap:.75rem;padding:1.25rem 1.5rem;border-top:1px solid #e0e0e0;background:#fff}.chat-input{flex:1;padding:.875rem 1.25rem;border:2px solid #e0e0e0;border-radius:24px;font-size:1rem;outline:none;transition:border-color .2s}.chat-input:focus{border-color:#667eea}.chat-send-btn{padding:.875rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:24px;cursor:pointer;font-weight:600;transition:all .2s;min-width:80px}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.chat-send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:#f1f1f1}.chat-messages::-webkit-scrollbar-thumb{background:#667eea;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#764ba2}@media(max-width:768px){.ai-intake-container{height:100vh;margin:0;border-radius:0}.ai-header{padding:1rem}.ai-avatar{width:50px;height:50px;font-size:2rem}.chat-messages{padding:1rem}.message{max-width:90%}.quick-replies{padding:.5rem 1rem}.quick-reply-btn{font-size:.8rem;padding:.4rem .8rem}}.booking-list-container{max-width:1400px;margin:2rem auto;padding:2rem}.booking-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.booking-list-header h2{color:#2c3e50;margin:0}.btn-new-booking{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:transform .2s}.btn-new-booking:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.filter-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid #e0e0e0;overflow-x:auto}.filter-tab{padding:.75rem 1.5rem;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-weight:600;color:#7f8c8d;transition:all .3s;white-space:nowrap}.filter-tab:hover{color:#2c3e50;background:#f8f9fa}.filter-tab.active{color:#3498db;border-bottom-color:#3498db}.bookings-grid{display:grid;gap:1.5rem}.booking-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s}.booking-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.booking-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.booking-person h3{color:#2c3e50;margin:0 0 .25rem}.person-email{color:#7f8c8d;font-size:.9rem;margin:0}.booking-badges{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.status-badge,.payment-badge{padding:.4rem .8rem;border-radius:20px;font-size:.85rem;font-weight:600;white-space:nowrap}.status-requested{background:#fff3cd;color:#856404}.status-confirmed{background:#d4edda;color:#155724}.status-completed{background:#d1ecf1;color:#0c5460}.status-cancelled{background:#f8d7da;color:#721c24}.payment-pending{background:#e7f3ff;color:#004085}.payment-paid{background:#d4edda;color:#155724}.payment-refunded{background:#f8d7da;color:#721c24}.booking-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-label{font-size:.85rem;color:#7f8c8d;font-weight:600}.detail-value{font-size:1rem;color:#2c3e50;font-weight:600}.booking-message,.cancellation-reason{background:#f8f9fa;padding:1rem;border-radius:6px;margin:1rem 0;border-left:4px solid #3498db}.cancellation-reason{border-left-color:#e74c3c;background:#fff5f5}.booking-message strong,.cancellation-reason strong{color:#2c3e50;display:block;margin-bottom:.5rem}.booking-message p,.cancellation-reason p{margin:0;color:#34495e}.booking-actions{display:flex;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}.booking-actions button{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .3s;flex:1;min-width:120px}.btn-confirm{background:#27ae60;color:#fff}.btn-confirm:hover{background:#229954;transform:translateY(-2px)}.btn-complete{background:#3498db;color:#fff}.btn-complete:hover{background:#2980b9;transform:translateY(-2px)}.btn-cancel-booking{background:#e74c3c;color:#fff}.btn-cancel-booking:hover{background:#c0392b;transform:translateY(-2px)}.btn-info{background:#95a5a6;color:#fff;cursor:not-allowed}.no-bookings{text-align:center;padding:4rem 2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.no-bookings p{color:#7f8c8d;font-size:1.2rem;margin-bottom:1.5rem}.btn-browse-mentors{padding:1rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:transform .2s}.btn-browse-mentors:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.loading-spinner{text-align:center;padding:4rem;color:#7f8c8d;font-size:1.2rem}@media(max-width:768px){.booking-list-container{padding:1rem}.booking-card-header{flex-direction:column;gap:1rem}.booking-badges{align-items:flex-start}.booking-details-grid{grid-template-columns:1fr}.booking-actions{flex-direction:column}.booking-actions button{width:100%}}.availability-manager{max-width:1200px;margin:2rem auto;padding:2rem}.manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e0e0e0}.manager-header h2{color:#2c3e50;margin:0}.header-actions{display:flex;gap:1rem}.btn-add,.btn-block{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .3s}.btn-add{background:#27ae60;color:#fff}.btn-add:hover{background:#229954;transform:translateY(-2px)}.btn-block{background:#e74c3c;color:#fff}.btn-block:hover{background:#c0392b;transform:translateY(-2px)}.weekly-availability{background:#fff;padding:2rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.weekly-availability h3{color:#2c3e50;margin-bottom:1.5rem}.day-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #e0e0e0}.day-section:last-child{border-bottom:none}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.day-header h4{color:#34495e;margin:0;font-size:1.1rem}.slot-count{background:#3498db;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.day-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.slot-card{background:#f8f9fa;padding:1rem;border-radius:6px;border-left:4px solid #27ae60;display:flex;justify-content:space-between;align-items:center}.slot-card.inactive{opacity:.6;border-left-color:#95a5a6}.slot-time{font-weight:600;color:#2c3e50}.slot-actions{display:flex;gap:.5rem}.btn-toggle{padding:.4rem .8rem;border:none;border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .3s}.btn-toggle.active{background:#d4edda;color:#155724}.btn-toggle.inactive{background:#f8d7da;color:#721c24}.btn-delete-small{background:none;border:none;font-size:1.2rem;cursor:pointer;opacity:.6;transition:opacity .3s}.btn-delete-small:hover{opacity:1}.no-slots{color:#7f8c8d;font-style:italic;padding:1rem;text-align:center}.blocked-dates-section{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.blocked-dates-section h3{color:#2c3e50;margin-bottom:1.5rem}.blocked-dates-list{display:grid;gap:1rem}.blocked-date-card{background:#fff3cd;border-left:4px solid #e74c3c;padding:1rem;border-radius:6px;display:flex;justify-content:space-between;align-items:center}.blocked-info{flex:1}.blocked-date{font-weight:600;color:#2c3e50;margin-bottom:.25rem}.blocked-reason{color:#7f8c8d;font-size:.9rem}.btn-unblock{padding:.5rem 1rem;background:#27ae60;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:background .3s}.btn-unblock:hover{background:#229954}.no-blocked{color:#7f8c8d;font-style:italic;padding:1rem;text-align:center}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:2rem;border-radius:12px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-content h3{color:#2c3e50;margin-bottom:1.5rem}.form-group input,.form-group select{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3498db}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}.btn-cancel,.btn-submit{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .3s}.btn-cancel{background:#95a5a6;color:#fff}.btn-cancel:hover{background:#7f8c8d}.btn-submit{background:#3498db;color:#fff}.btn-submit:hover:not(:disabled){background:#2980b9}.btn-submit:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.manager-header{flex-direction:column;align-items:flex-start;gap:1rem}.day-slots,.form-row{grid-template-columns:1fr}}import{useState,useEffect}from "react"; import{useParams,useNavigate}from "react-router-dom"; import BookingCalendar from "../components/BookingCalendar"; import "./BookMentor.css"; export default function BookMentor(){const{mentorId}= useParams();const navigate = useNavigate();const [mentor,setMentor] = useState(null);const [loading,setLoading] = useState(true);const [error,setError] = useState("");useEffect(() => {fetchMentorDetails();},[mentorId]);const fetchMentorDetails = async () =>{try{const token = localStorage.getItem("token");const response = await fetch(`http://localhost:8000/profiles/mentor/${mentorId}`,{headers: {"Authorization": `Bearer ${token}`}});if (response.ok){const data = await response.json();setMentor(data)}else{setError("Mentor not found")}}catch (err){setError("Error loading mentor details");console.error(err)}finally{setLoading(false)}}const handleBookingCreated = () =>{navigate("/bookings")}if (loading){return (<div className="book-mentor-page"> <div className="loading">Loading mentor details...</div> </div>)}if (error || !mentor){return (<div className="book-mentor-page"> <div className="error-container"> <h2>Error</h2> <p>{error || "Mentor not found"}</p> <button onClick={() => navigate("/mentors")} className="btn-back"> Back to Mentors </button> </div> </div>)}return (<div className="book-mentor-page"> <div className="mentor-info-banner"> <button onClick={() => navigate("/mentors")} className="btn-back-small"> ← Back to Mentors </button> <div className="mentor-summary"> <h1>{mentor.full_name}</h1> <div className="mentor-meta"> <span className="domain">🎯 {mentor.domain}</span> <span className="experience">💼 {mentor.years_of_experience} years</span> <span className="rate">💰 £{mentor.hourly_rate}/hour</span> </div> <p className="bio">{mentor.bio}</p> </div> </div> <BookingCalendar mentorId={parseInt(mentorId)} mentorName={mentor.full_name} hourlyRate={mentor.hourly_rate} onBookingCreated={handleBookingCreated} /> </div>)}.booking-calendar{max-width:1200px;margin:2rem auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.booking-header{text-align:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.booking-header h2{color:#2c3e50;margin-bottom:.5rem}.hourly-rate{font-size:1.5rem;color:#27ae60;font-weight:700}.booking-container{display:grid;gap:2rem}.date-selection h3{color:#2c3e50;margin-bottom:1rem}.date-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:1rem;margin-bottom:2rem}.date-card{padding:1rem;border:2px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;transition:all .3s;text-align:center}.date-card:hover:not(.no-slots){border-color:#3498db;transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.date-card.selected{border-color:#3498db;background:#e3f2fd}.date-card.no-slots{opacity:.5;cursor:not-allowed;background:#f5f5f5}.date-day{font-size:1.5rem;font-weight:700;color:#2c3e50}.date-month{color:#7f8c8d;font-size:.9rem;text-transform:uppercase}.slots-count{margin-top:.5rem;font-size:.85rem;color:#27ae60;font-weight:600}.no-slots-text{margin-top:.5rem;font-size:.85rem;color:#e74c3c}.time-selection{animation:fadeIn .3s}.time-selection h3{color:#2c3e50;margin-bottom:1rem}.time-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.time-slot{padding:1rem;border:2px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;transition:all .3s;text-align:left;font-size:1rem;font-weight:500;color:#2c3e50}.time-slot:hover{border-color:#3498db;background:#f8f9fa}.time-slot.selected{border-color:#3498db;background:#e3f2fd;font-weight:600}.time-slot .duration{display:block;font-size:.85rem;color:#7f8c8d;margin-top:.25rem}.booking-details{background:#f8f9fa;padding:2rem;border-radius:8px;animation:fadeIn .3s}.booking-details h3{color:#2c3e50;margin-bottom:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#2c3e50}.duration-select{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;background:#fff}.message-input{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;font-family:inherit;resize:vertical}.message-input:focus,.duration-select:focus{outline:none;border-color:#3498db}.booking-summary{background:#fff;padding:1.5rem;border-radius:8px;margin:1.5rem 0}.summary-row{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid #e0e0e0}.summary-row:last-child{border-bottom:none}.summary-row.total{font-size:1.25rem;margin-top:.5rem;padding-top:1rem;border-top:2px solid #2c3e50}.summary-row strong{color:#2c3e50}.btn-book{width:100%;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s}.btn-book:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-book:disabled{opacity:.6;cursor:not-allowed}.booking-note{text-align:center;color:#7f8c8d;font-size:.9rem;margin-top:1rem}.error-message{background:#fee;color:#c00;padding:1rem;border-radius:6px;margin-bottom:1rem;border-left:4px solid #c00}.loading-overlay{position:fixed;inset:0;background:#ffffffe6;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.booking-calendar{padding:1rem}.date-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.time-slots{grid-template-columns:1fr}}.book-mentor-page{min-height:100vh;background:#f5f7fa;padding:2rem 0}.mentor-info-banner{max-width:1200px;margin:0 auto 2rem;background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a}.btn-back-small{background:none;border:none;color:#3498db;font-weight:600;cursor:pointer;margin-bottom:1rem;padding:.5rem 0;font-size:1rem;transition:color .3s}.btn-back-small:hover{color:#2980b9}.mentor-summary h1{color:#2c3e50;margin-bottom:1rem}.mentor-meta{display:flex;gap:1.5rem;margin-bottom:1rem;flex-wrap:wrap}.mentor-meta span{padding:.5rem 1rem;background:#f8f9fa;border-radius:20px;font-weight:600;font-size:.9rem}.domain{background:#e3f2fd;color:#1976d2}.experience{background:#f3e5f5;color:#7b1fa2}.rate{background:#e8f5e9;color:#388e3c}.bio{color:#34495e;line-height:1.6;margin:1rem 0 0}.loading,.error-container{max-width:600px;margin:4rem auto;text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.error-container h2{color:#e74c3c;margin-bottom:1rem}.error-container p{color:#7f8c8d;margin-bottom:2rem}.btn-back{padding:.75rem 1.5rem;background:#3498db;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background .3s}.btn-back:hover{background:#2980b9}@media(max-width:768px){.book-mentor-page{padding:1rem 0}.mentor-info-banner{margin:0 1rem 1rem;padding:1.5rem}.mentor-meta{flex-direction:column;gap:.5rem}}.navbar{background:#2c3e50;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a;width:100%;margin:0;box-sizing:border-box}.navbar>div{padding:0 2rem}.nav-brand a{color:#fff;font-size:1.5rem;font-weight:700;text-decoration:none;display:flex;align-items:center;gap:.5rem}.nav-logo{width:40px;height:40px;border-radius:8px}.nav-links{display:flex;gap:1.5rem;align-items:center}.nav-links a{color:#ecf0f1;text-decoration:none;transition:color .3s}.nav-links a:hover{color:#3498db}.btn-logout{background:#e74c3c;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background .3s}.btn-logout:hover{background:#c0392b}@media(max-width:768px){.navbar{padding:1rem;flex-direction:column;gap:1rem}.navbar>div{padding:0}.nav-brand{width:100%;text-align:center}.nav-links{flex-wrap:wrap;justify-content:center;gap:1rem;font-size:.9rem}.nav-links a,.btn-logout{padding:.5rem .8rem;font-size:.9rem}}@media(max-width:480px){.nav-brand a{font-size:1.2rem}.nav-links{font-size:.85rem;gap:.5rem}.nav-links a,.btn-logout{padding:.4rem .6rem;font-size:.85rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background:#f5f7fa}.app{min-height:100vh;display:flex;flex-direction:column}.container{flex:1;width:100%;padding:0;margin:0}.dashboard,.profile-page,.mentor-list-page{padding:2rem;max-width:1400px;margin:0 auto;width:100%}@media(max-width:768px){.dashboard,.profile-page,.mentor-list-page{padding:1rem}}@media(max-width:480px){.dashboard,.profile-page,.mentor-list-page{padding:.5rem}}button{font-family:inherit}a{text-decoration:none;color:inherit}
