body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{align-items:center;background:linear-gradient(135deg,#f5f7fa,#e4efe9);display:flex;justify-content:center;margin:0;min-height:100vh;padding:0;position:relative;text-align:center}.auth-card{background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a;margin:0 auto;max-width:90%;padding:2.5rem;width:400px}.auth-container{display:flex;flex-direction:column;gap:1.5rem}.auth-container h2{color:#333;margin-bottom:1.5rem}.auth-container input{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:1rem;margin-bottom:.5rem;padding:.8rem;width:100%}.auth-container button[type=submit]{background-color:#90ee90;border:none;border-radius:4px;color:#333;cursor:pointer;font-size:1rem;margin-top:.5rem;padding:.8rem;transition:background-color .3s;width:100%}.auth-options{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.google-link,.toggle-link{background:none;border:none;color:#90ee90;cursor:pointer;font-size:.9rem;padding:0;text-align:center;text-decoration:underline}.error-message{background-color:#fee;border-radius:4px;color:#f33;font-size:.9rem;margin-bottom:1.5rem;padding:.8rem}.dashboard{display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;height:100vh}.logout-button{background-color:#e74c3c;color:#fff;margin-top:1rem}.logout-button:hover{background-color:#c0392b}.sidebar{background-color:#f0fff4;border-right:1px solid #e2e8f0;box-sizing:border-box;display:flex;flex-direction:column;padding:20px;width:250px}.sidebar-header{border-bottom:1px solid #c6f6d5;margin-bottom:30px;padding-bottom:15px}.sidebar-header h3{color:#2f855a;font-size:1.5rem;margin:0}.sidebar-nav{display:flex;flex-direction:column;gap:8px;width:100%}.sidebar-button{align-items:center;background:#fff;border:2px solid #48bb78;border-radius:6px;box-sizing:border-box;color:#2d3748;cursor:pointer;display:flex;font-weight:500;gap:10px;margin:0;padding:12px 15px;text-align:left;text-decoration:none;transition:all .2s ease;-webkit-user-select:none;user-select:none;width:calc(100% - 4px)}.sidebar-button.active,.sidebar-button:hover{background:#f0fff4;border-color:#2f855a}.sidebar-button.active{color:#2f855a;font-weight:600}.sidebar-icon{flex-shrink:0;font-size:20px;text-align:center;width:24px}.sidebar-text{display:inline}.availability-toggle{border-top:1px solid #c6f6d5;color:#2f855a;font-size:.95rem;margin-top:auto;padding-top:20px}.availability-toggle label{align-items:center;display:flex;gap:10px}.availability-toggle input[type=checkbox]{height:18px;width:18px}.main-content{background:#fff;flex:1 1;overflow-y:auto;padding:30px}.notifications-container{max-width:300px;position:fixed;right:20px;top:20px;z-index:1000}.notification{background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:10px;padding:15px}.notification-actions{display:flex;gap:10px;margin-top:10px}.notification-actions button{border:none;border-radius:4px;cursor:pointer;padding:5px 10px}.notification-actions button:first-child{background:#4caf50;color:#fff}.notification-actions button:last-child{background:#f44336;color:#fff}.notification-timer{background:#eee;border-radius:2px;height:4px;margin-top:10px}.timer-bar{background:#4caf50;border-radius:2px;height:100%;transition:width 1s linear}.student-notifications{left:50%;position:fixed;top:20px;transform:translateX(-50%);z-index:1000}.student-notifications .notification{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:10px;padding:10px 20px;text-align:center}.student-notifications .notification.accepted{border-left:4px solid #4caf50}.student-notifications .notification.rejected{border-left:4px solid #f44336}.pending-request-banner{background:#fff3cd;border-left:4px solid #ffc107;border-radius:4px;margin-bottom:20px;padding:10px}@media (max-width:600px){.sidebar{align-items:center;background-color:#f0fff4;border-right:none;border-top:1px solid #e2e8f0;bottom:0;flex-direction:row;height:auto;justify-content:space-between;left:0;padding:10px 5px;position:fixed;right:0;width:60px;z-index:1000}.sidebar-header{display:none}.sidebar-nav{flex-direction:row;gap:5px;width:auto}.sidebar-button{background:#0000;border:none;border-radius:0;color:#2f855a;justify-content:center;padding:10px 5px;width:48px}.sidebar-button:hover{background:#d1f0d5}.sidebar-button.active{background:#b2e6b1;color:#2f855a;font-weight:600}.availability-toggle,.sidebar-text{display:none}.logout-button{align-items:center;background:#0000;border:none;border-radius:0;color:#2f855a;display:flex;justify-content:center;margin-top:0;padding:10px 5px;width:48px}.logout-button:hover{background:#d1f0d5;color:#1e5631}}.admin-dashboard{display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;height:100vh}.admin-sidebar{background-color:#2d3748;box-sizing:border-box;color:#fff;display:flex;flex-direction:column;padding:20px;width:250px}.admin-sidebar-header{border-bottom:1px solid #4a5568;margin-bottom:30px;padding-bottom:15px}.admin-sidebar-header h3{color:#fff;font-size:1.5rem;margin:0}.admin-sidebar-nav{display:flex;flex-direction:column;gap:8px}.admin-sidebar-button{background:#4a5568;border:none;border-radius:6px;box-sizing:border-box;color:#fff;cursor:pointer;display:block;font-weight:500;overflow:hidden;padding:12px 15px;text-align:left;text-decoration:none;text-overflow:ellipsis;transition:all .2s ease;white-space:nowrap;width:100%}.admin-sidebar-button:hover{background:#667eea}.admin-sidebar-button.active{background:#667eea;font-weight:600}.admin-main-content{background:#f7fafc;flex:1 1;overflow-y:auto;padding:30px}.profile-container{background-color:#f7fff9;border-radius:12px;box-shadow:0 8px 20px #2f855a26;color:#2d3748;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:30px auto;max-width:700px;padding:25px 30px}.profile-container h2{border-bottom:2px solid #48bb78;color:#276749;font-size:2rem;margin-bottom:20px;padding-bottom:8px}.profile-container p{font-size:1.1rem;margin:10px 0}.profile-container strong{color:#2f855a}.profile-pic-wrapper{margin-bottom:20px;text-align:center}.profile-pic{border:3px solid #48bb78;border-radius:50%;box-shadow:0 2px 8px #0000001a;display:inline-block;height:120px;object-fit:cover;width:120px}.courses-section{margin-top:30px}.courses-section h3{border-bottom:1px solid #c6f6d5;color:#276749;font-size:1.6rem;margin-bottom:15px;padding-bottom:6px}.courses-list{list-style:none;padding-left:0}.courses-list li{background:#fff;border:1px solid #48bb78;border-radius:10px;box-shadow:0 2px 6px #2f855a1a;margin-bottom:15px;padding:15px 20px;transition:box-shadow .3s ease}.courses-list li:hover{box-shadow:0 6px 12px #2f855a40}.courses-list p{font-size:1rem;margin:5px 0}.no-courses{color:#718096;font-style:italic;margin-top:10px}.request-session-container{background-color:#f9f9f9;border-radius:8px;box-shadow:0 4px 8px #0000001a;margin:0 auto;max-width:600px;padding:20px}.request-session-container h2{color:#333;font-size:24px;font-weight:600;margin-bottom:20px;text-align:center}.request-session-container .error{color:red;font-size:14px;margin-bottom:20px}.request-session-container button,.request-session-container select{border:1px solid #ddd;border-radius:6px;font-size:16px;margin-bottom:20px;padding:10px;width:100%}.request-session-container button{background-color:#4caf50;border:none;color:#fff;cursor:pointer;transition:background-color .3s ease}.request-session-container button:hover{background-color:#45a049}.request-session-container label{display:block;font-size:16px;font-weight:500;margin-bottom:8px}.request-session-container .course-selection{margin-bottom:20px}.request-session-container .session-type-buttons{display:flex;justify-content:space-between}.request-session-container .session-type-buttons button{background-color:#008cba;border:none;border-radius:6px;color:#fff;cursor:pointer;padding:12px;transition:background-color .3s ease;width:48%}.request-session-container .session-type-buttons button:hover{background-color:#007b8a}.request-session-container .no-courses{color:#666;font-size:16px;text-align:center}.online-session-container{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:auto;max-width:800px;padding:20px}.tutor-list{list-style-type:none;padding:0}.tutor-item{background-color:#f9f9f9;border-radius:8px;box-shadow:0 2px 6px #0000000d;margin:15px 0;padding:20px}.tutor-info-container{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.tutor-details p{color:#333;font-size:15px;margin:6px 0}.tutor-item strong{color:#222;font-size:17px}.tutor-profile-pic-container{flex-shrink:0;margin-left:1rem}.tutor-profile-pic{border:2px solid #ccc;border-radius:50%;height:50px;object-fit:cover;width:50px}.tutor-item button{background-color:#07c;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:700;margin-top:10px;padding:8px 16px;transition:background-color .2s ease-in-out}.tutor-item button:hover{background-color:#005fa3}.declined-request-banner{background-color:#ffebee;border-radius:4px;color:#c62828;margin-bottom:20px;padding:10px;text-align:center}.face-session-container{background-color:#fff;border-radius:12px;box-shadow:0 5px 15px #0000001a;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:auto;max-width:900px;padding:20px}.session-title{color:#333;margin-bottom:20px;text-align:center}.session-info p{color:#555;font-size:16px;margin:4px 0}.map-container{border-radius:10px;box-shadow:0 2px 8px #0003;height:400px;margin:20px 0;overflow:hidden;width:100%}.chat-container{background-color:#fafafa;border:1px solid #ddd;border-radius:10px;margin-top:20px;padding:15px}.chat-messages{background-color:#fff;border:1px solid #ccc;border-radius:8px;height:220px;margin-bottom:10px;overflow-y:auto;padding:10px}.chat-message.self{background-color:#e1f5fe;text-align:right}.chat-message.other,.chat-message.self{border-radius:8px;margin-bottom:6px;padding:5px 10px}.chat-message.other{background-color:#f1f1f1;text-align:left}.chat-input{display:flex;gap:10px}.chat-input input{border:1px solid #ccc;border-radius:6px;flex:1 1;font-size:14px;padding:8px 12px}.chat-input button{background-color:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .2s}.chat-input button:hover{background-color:#0056b3}.end-session-btn{background-color:#ff5252;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;margin-top:20px;padding:10px 20px;transition:background-color .2s}.end-session-btn:hover{background-color:#e04848}.error,.loading{color:#555;font-size:16px;margin-top:50px;text-align:center}.error{color:red}.no-messages{color:#888;font-style:italic}.video-call-room{height:100vh;position:relative}.video-call-loading,.video-call-room{background-color:#1a1a1a;color:#fff;display:flex;flex-direction:column}.video-call-loading{align-items:center;font-size:1.2rem;height:100%;justify-content:center}.video-call-loading:after{animation:dots 1.5s steps(5) infinite;content:"."}@keyframes dots{0%,20%{color:#0000;text-shadow:.25em 0 0 #0000,.5em 0 0 #0000}40%{color:#fff;text-shadow:.25em 0 0 #0000,.5em 0 0 #0000}60%{text-shadow:.25em 0 0 #fff,.5em 0 0 #0000}80%,to{text-shadow:.25em 0 0 #fff,.5em 0 0 #fff}}.video-call-error{align-items:center;background-color:#1a1a1a;display:flex;flex-direction:column;height:100%;justify-content:center;padding:20px;text-align:center}.video-call-error h3{color:#e74c3c;margin-bottom:15px}.video-call-error p{color:#ecf0f1;margin-bottom:20px}.video-call-error button{background-color:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:10px 20px;transition:background-color .3s}.video-call-error button:hover{background-color:#c0392b}.call-status{background-color:#000000b3;border-radius:20px;font-size:.9rem;left:15px;padding:8px 15px;position:absolute;text-transform:capitalize;top:15px;z-index:100}.call-status[data-status=connecting],.call-status[data-status=reconnecting]{color:#f39c12}.call-status[data-status=connected]{color:#2ecc71}.call-status[data-status=disconnected],.call-status[data-status=failed]{color:#e74c3c}.video-container{align-items:center;display:flex;flex-grow:1;justify-content:center;overflow:hidden}.remote-video,.video-container{background-color:#000;position:relative}.remote-video,.remote-video video{height:100%;width:100%}.remote-video video{object-fit:cover}.local-video{aspect-ratio:4/3;border:2px solid #fffc;border-radius:8px;bottom:20px;box-shadow:0 4px 8px #0000004d;max-width:200px;min-width:150px;overflow:hidden;position:absolute;right:20px;transition:transform .3s;width:25%;z-index:10}.local-video:hover{transform:scale(1.05)}.local-video video{background-color:#000;height:100%;object-fit:cover;width:100%}.user-info{background-color:#000000b3;border-radius:20px;bottom:10px;font-size:.9rem;left:10px;padding:8px 15px;position:absolute;z-index:10}.user-info h3{font-size:1rem;margin:0}.user-info p{font-size:.8rem;margin:3px 0 0;opacity:.9}.call-controls{background-color:#2a2a2a;display:flex;gap:15px;justify-content:center;padding:15px}.end-call-button{align-items:center;background-color:#e74c3c;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:500;gap:8px;padding:12px 25px;transition:all .3s}.end-call-button:hover{background-color:#c0392b;transform:translateY(-2px)}.end-call-button:active{transform:translateY(0)}.error{background-color:#000000b3;border-radius:8px;color:#e74c3c;margin:20px;padding:20px;text-align:center}@media (max-width:768px){.local-video{bottom:15px;min-width:120px;right:15px;width:30%}.user-info{font-size:.8rem;padding:6px 12px}.call-status{font-size:.8rem;left:10px;top:10px}.end-call-button{font-size:.9rem;padding:10px 20px}}@media (max-width:480px){.local-video{bottom:10px;min-width:100px;right:10px;width:35%}.call-controls{padding:10px}}.waiting-room{align-items:center;background-color:#f0f4f8;display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;height:100vh;justify-content:center}.waiting-content{background-color:#fff;border-radius:20px;box-shadow:0 8px 20px #0000001a;padding:40px 60px;text-align:center}.waiting-content h2{color:#333;font-size:2rem;margin-bottom:20px}.countdown-box{background-color:#e3f2fd;border:2px solid #90caf9;border-radius:15px;display:inline-block;margin:20px 0;padding:30px}.countdown-number{color:#1976d2;font-size:5rem;font-weight:700}.countdown-label{color:#555;font-size:1.2rem;margin-top:10px}.waiting-content p{color:#666;margin-top:20px}.wallet-container{background-color:#fff;border-radius:10px;box-shadow:0 4px 10px #0000001a;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:40px auto;max-width:600px;padding:30px}.wallet-container h2{color:#333;font-size:28px;margin-bottom:25px;text-align:center}.wallet-section{background-color:#f9f9f9;border:1px solid #eee;border-radius:8px;margin-bottom:35px;padding:20px}.wallet-section h3{border-bottom:1px solid #e0e0e0;color:#444;font-size:20px;margin-bottom:20px;padding-bottom:10px}.wallet-balance{background-color:#f5f5f5;border-radius:8px;color:#555;font-size:20px;font-weight:600;margin-bottom:30px;padding:15px;text-align:center}.wallet-balance strong{color:#333}.input-group{margin-bottom:20px}.input-group label{color:#555;display:block;font-weight:500;margin-bottom:8px}.input-group input,.input-group select{border:1px solid #ddd;border-radius:6px;font-size:15px;padding:12px 15px;transition:border-color .3s;width:100%}.input-group input:focus,.input-group select:focus{border-color:#3f8efc;box-shadow:0 0 0 2px #3f8efc1a;outline:none}.wallet-button{background-color:#3f8efc;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:12px;transition:all .3s ease;width:100%}.wallet-button:hover{background-color:#2d7ae2;transform:translateY(-1px)}.wallet-button:disabled{background-color:#ccc;cursor:not-allowed;transform:none}.wallet-button:active:not(:disabled){transform:translateY(0)}.wallet-notification{align-items:center;animation:fadeIn .3s ease;border-radius:6px;color:#fff;display:flex;font-weight:500;margin-bottom:25px;padding:15px 20px}.wallet-notification.success{background-color:#4caf50}.wallet-notification.error{background-color:#f44336}.wallet-notification:before{background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:20px;margin-right:10px;width:20px}.wallet-notification.success:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E")}.wallet-notification.error:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z'/%3E%3C/svg%3E")}.test-mode-notice{background-color:#fff8e6;border-left:4px solid #ffc107;border-radius:6px;color:#856404;margin-bottom:25px;padding:15px}.test-mode-notice h4{font-size:16px;margin-bottom:10px;margin-top:0}.test-mode-notice p{font-size:14px;margin-bottom:8px}.test-mode-notice ul{font-size:14px;margin-top:5px;padding-left:20px}.test-mode-notice li{margin-bottom:5px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.wallet-container{margin:20px 15px;padding:20px}.wallet-section{padding:15px}.wallet-container h2{font-size:24px}.wallet-section h3{font-size:18px}}
/*# sourceMappingURL=main.9bec1d6a.css.map*/