body{font-family:Poppins,Segoe UI,sans-serif;background:linear-gradient(135deg,#3b82f6,#1e3a8a);margin:0;padding:0;height:100vh}.login-container{display:flex;justify-content:center;align-items:center;height:100vh}.login-card{background:#fff;padding:2rem 2.5rem;border-radius:16px;box-shadow:0 6px 20px #00000026;width:100%;max-width:380px;text-align:center;animation:fadeIn .5s ease-in-out}.login-title{font-size:1.4rem;font-weight:600;margin-bottom:1.5rem;color:#1e3a8a}.login-form{display:flex;flex-direction:column;gap:1rem}.input-group{display:flex;flex-direction:column;align-items:flex-start}.input-group label{font-size:.9rem;color:#334155;margin-bottom:.3rem}.input-group input{width:100%;padding:.7rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.95rem;outline:none;transition:border-color .3s}.input-group input:focus{border-color:#3b82f6}.login-button{background-color:#2563eb;color:#fff;border:none;padding:.8rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .3s ease}.login-button:hover{background-color:#1d4ed8}.login-footer{margin-top:1rem;font-size:.85rem;color:#475569}.login-footer a{color:#2563eb;text-decoration:none;font-weight:500}.login-footer a:hover{text-decoration:underline}@keyframes fadeIn{0%{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:translateY(0)}}.teacher-list-container{max-width:1100px;margin:2rem auto;padding:1rem;text-align:center}.teacher-list-container h2{font-size:1.8rem;font-weight:600;margin-bottom:2rem;color:#1e293b}.teacher-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;justify-items:center}.teacher-card{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:1rem;width:220px;cursor:pointer;transition:all .3s ease;text-align:center}.teacher-card:hover{transform:translateY(-5px);box-shadow:0 6px 18px #00000026}.teacher-card img{width:100%;height:200px;object-fit:cover;border-radius:10px;margin-bottom:.8rem}.teacher-card h3{font-size:1.1rem;font-weight:600;color:#334155}.teacher-card p{font-size:.9rem;color:#64748b}html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}.custom-calendar{width:100%;border:1px solid #ddd;border-radius:8px;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.calendar-header{display:flex;justify-content:space-between;padding:10px;background-color:#f9f9f9;border-bottom:1px solid #ddd}.calendar-header button{padding:5px 12px;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9em}.calendar-header button:hover{background-color:#0056b3}.calendar-grid{display:grid;grid-template-columns:80px repeat(7,1fr);background-color:#fff}.grid-cell{border-right:1px solid #eee;border-bottom:1px solid #eee;padding:8px;min-height:45px;box-sizing:border-box;font-size:.85em;position:relative}.grid-cell.header{background-color:#f7f7f7;font-weight:700;text-align:center;padding:10px 5px;min-height:auto;position:sticky;top:0;z-index:10}.grid-cell.time-header{position:sticky;left:0;z-index:11}.grid-cell.time-label{text-align:right;padding-right:10px;font-weight:500;color:#555;background-color:#fcfcfc;position:sticky;left:0;z-index:5}.grid-cell.slot{display:flex;flex-direction:column;justify-content:center;align-items:center;transition:background-color .2s;overflow:hidden}.slot-location{font-weight:700;font-size:.9em}.slot-time-range{font-size:.8em;color:#333}.grid-cell.slot.available{cursor:pointer}.grid-cell.slot.available:hover{opacity:.8;box-shadow:0 0 5px #0003 inset}.grid-cell.slot.unavailable{background-color:#f8f8f8}.grid-cell.slot.past{background-color:#f0f0f0;color:#aaa;cursor:not-allowed}.grid-cell.slot.booked{background-color:#f8f8f8}.dashboard-container{display:flex;height:100vh;background:#f6f8fa;font-family:Poppins,sans-serif}.sidebar{width:260px;background:#1f2937;color:#fff;padding:1.5rem;display:flex;flex-direction:column;border-right:1px solid #374151}.sidebar h2{font-size:1.3rem;margin-bottom:2rem;text-align:center}.sidebar ul{list-style:none;padding:0}.sidebar li{display:flex;align-items:center;gap:10px;padding:.75rem 1rem;margin-bottom:.5rem;cursor:pointer;border-radius:8px;transition:background .3s}.sidebar li.active{background:#2563eb}.sidebar li span{font-size:.95rem}.dashboard-content{flex:1;padding:2rem;overflow-y:auto}.section{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000000d}.appointment-table{width:100%;border-collapse:collapse;margin-top:1rem}.appointment-table th,.appointment-table td{border:1px solid #e5e7eb;padding:.75rem;text-align:left}.appointment-table th{background:#f3f4f6}.schedule-settings{display:flex;flex-direction:column;gap:1rem}.days{display:flex;gap:10px;flex-wrap:wrap}.days button{background:#e5e7eb;border:none;padding:.6rem 1rem;border-radius:6px;cursor:pointer}.days button.selected{background:#2563eb;color:#fff}.save-btn{align-self:flex-start;background:#2563eb;color:#fff;border:none;padding:.7rem 1.5rem;border-radius:6px;cursor:pointer;transition:background .3s}.save-btn:hover{background:#1d4ed8}.profile-section{display:flex;flex-direction:column;gap:1.5rem}.profile-container{display:flex;gap:2rem;align-items:flex-start;flex-wrap:wrap}.profile-image{display:flex;flex-direction:column;align-items:center;gap:.75rem}.profile-image img{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid #2563eb}.upload-btn{background:#2563eb;color:#fff;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer}.profile-info{flex:1;display:flex;flex-direction:column;gap:.75rem}.profile-info label{font-weight:600;color:#374151}.profile-info input{border:1px solid #d1d5db;border-radius:6px;padding:.6rem;font-size:.9rem}.profile-info input:focus{outline:none;border-color:#2563eb}.sidebar ul{padding:0;list-style:none}.sidebar li{margin-bottom:.5rem}.nav-link{display:flex;align-items:center;gap:10px;padding:.75rem 1rem;border-radius:8px;color:#e6eefc;text-decoration:none}.nav-link .icon{font-size:18px}.nav-link:hover{background:#ffffff0f}.nav-link.active{background:#2563eb;color:#fff}.approve-btn{background-color:#4caf50;color:#fff;border:none;padding:.4rem .8rem;border-radius:8px;cursor:pointer;margin-right:.5rem;transition:.2s}.reject-btn{background-color:#f44336;color:#fff;border:none;padding:.4rem .8rem;border-radius:8px;cursor:pointer;transition:.2s}.logout-item{margin-top:2rem;text-align:center}.logout-btn{background-color:#ff4d4f;color:#fff;border:none;padding:10px 20px;border-radius:10px;font-size:16px;cursor:pointer;width:80%;transition:.3s}.logout-btn:hover{background-color:#e63946}.pending-container{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 12px #0000001a}.pending-container h2{margin-bottom:1rem;text-align:center;color:#333}.pending-table{width:100%;border-collapse:collapse}.pending-table th,.pending-table td{padding:.75rem;border-bottom:1px solid #ddd;text-align:center}.approve-btn,.reject-btn,.details-btn,.close-btn{border:none;border-radius:8px;padding:.4rem .8rem;margin:0 .25rem;cursor:pointer;transition:all .2s ease}.details-btn{background-color:#1976d2;color:#fff}.approve-btn{background-color:#4caf50;color:#fff}.reject-btn{background-color:#f44336;color:#fff}.detail-btn{background-color:#17a2b8;color:#fff;border:none;padding:8px 14px;border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .3s ease;margin-right:8px}.details-btn:hover{background-color:#1565c0}.approve-btn:hover{background-color:#45a049}.reject-btn:hover{background-color:#d32f2f}.close-btn{background-color:#999;color:#fff}.close-btn:hover{background-color:#777}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:999}.modal-content{background:#fff;border-radius:12px;padding:2rem;width:90%;max-width:500px;box-shadow:0 6px 20px #0000004d;position:relative}.modal-content h3{margin-bottom:1rem;text-align:center;color:#333}.details-text{background-color:#f8f9fa;padding:1rem;border-radius:8px;margin-top:1rem;font-size:.95rem;line-height:1.4}.modal-buttons{display:flex;justify-content:center;gap:10px;margin-top:1.5rem}.appointment-table{width:100%;border-collapse:collapse;margin-top:15px}.appointment-table th,.appointment-table td{border:1px solid #ddd;padding:10px;text-align:center}.cancel-btn{background-color:#e74c3c;color:#fff;border:none;padding:6px 12px;border-radius:8px;cursor:pointer;transition:.2s}.cancel-btn:hover{background-color:#c0392b}.more-text{color:#007bff;cursor:pointer;font-weight:500}.more-text:hover{text-decoration:underline}.section{padding:20px;background-color:#f8fafc;border-radius:12px;box-shadow:0 2px 6px #00000014;max-width:700px;margin:40px auto;font-family:Inter,sans-serif}.title{font-size:1.8rem;color:#1e293b;margin-bottom:10px}.subtitle{color:#475569;margin-bottom:25px}.past-appointments{display:flex;flex-direction:column;gap:15px}.appointment-card{display:flex;align-items:flex-start;background:#fff;border-left:6px solid transparent;border-radius:10px;padding:16px 20px;transition:.2s ease;box-shadow:0 2px 8px #0000000d}.appointment-card:hover{transform:translateY(-3px);box-shadow:0 4px 10px #0000001a}.appointment-card.completed{border-left-color:#22c55e}.appointment-card.cancelled{border-left-color:#ef4444;background-color:#fef2f2}.appointment-info{display:flex;flex-direction:column;gap:6px;color:#1e293b}.info-line{display:flex;align-items:center;gap:8px;font-size:.95rem}.info-line svg{color:#475569}.section{max-width:750px;margin:40px auto;padding:25px;background-color:#f8fafc;border-radius:12px;box-shadow:0 4px 12px #0000001a;font-family:Inter,sans-serif}h2{text-align:center;color:#1e293b;margin-bottom:25px;font-weight:700}.schedule-settings{display:flex;flex-direction:column;gap:20px;padding:20px;border:1px solid #cbd5e1;border-radius:10px;background-color:#fff}.schedule-settings h3{margin-bottom:12px;color:#1e293b;font-size:1.15em;border-bottom:1px solid #f1f5f9;padding-bottom:5px}.day-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.day-buttons button{padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;cursor:pointer;transition:.2s;font-weight:500}.day-buttons button.selected{background-color:#3b82f6;color:#fff;border-color:#2563eb}.day-buttons button:hover{background-color:#2563eb;color:#fff}.day-actions{display:flex;gap:10px;margin-bottom:20px}.day-actions button{padding:6px 14px;border-radius:8px;border:none;cursor:pointer;background-color:#f1f5f9;transition:.2s;color:#3b82f6;font-weight:600}.day-actions button:hover{background-color:#e2e8f0}.location-selection{margin-bottom:20px}.location-selection select{padding:10px 15px;border-radius:8px;border:1px solid #cbd5e1;width:100%;max-width:300px;font-size:1em;background-color:#fff;appearance:none;cursor:pointer;transition:border-color .2s}.location-selection select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 2px #3b82f633}.time-inputs{display:flex;gap:20px;margin-bottom:20px}.time-inputs div{display:flex;flex-direction:column;flex:1}.time-inputs label{margin-bottom:4px;font-size:.9em;color:#475569}.time-select{padding:10px 15px;border-radius:8px;border:1px solid #cbd5e1;font-size:1em;background-color:#fff;cursor:pointer;transition:border-color .2s}.time-select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 2px #3b82f633}.save-btn{padding:12px 25px;background-color:#22c55e;color:#fff;border:none;border-radius:10px;cursor:pointer;transition:.2s;font-size:1.1em;font-weight:600;width:100%}.save-btn:hover{background-color:#16a34a}.saved-schedules{margin-top:30px}.saved-schedules h3{text-align:center;margin-bottom:20px}.saved-schedules table{width:100%;border-collapse:collapse}.saved-schedules th,.saved-schedules td{border:1px solid #cbd5e1;padding:12px 8px;text-align:center}.saved-schedules th{background-color:#e2e8f0;color:#1e293b;font-weight:600}.saved-schedules td button{background-color:#ef4444;border-radius:6px;padding:4px 8px;font-size:.8em}.section{max-width:750px;margin:40px auto;padding:25px;background-color:#f8fafc;border-radius:15px;box-shadow:0 4px 12px #00000014;font-family:Inter,sans-serif}h2{color:#1e293b;margin-bottom:25px;text-align:center}.profile-container{display:flex;flex-wrap:wrap;gap:30px;justify-content:center}.upload-btn{display:block;margin-top:10px;cursor:pointer;color:#3b82f6;font-weight:500;transition:color .2s}.upload-btn:hover{color:#1e40af}.profile-info{flex:1;min-width:250px}.input-group{display:flex;flex-direction:column;margin-bottom:15px}.input-group label{margin-bottom:5px;font-weight:500;color:#475569}.input-group input{padding:10px;border-radius:8px;border:1px solid #cbd5e1;transition:border-color .2s,box-shadow .2s}.input-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633;outline:none}.save-btn{margin-top:10px;padding:12px 25px;background-color:#3b82f6;color:#fff;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:background-color .2s,transform .2s}.save-btn:hover{background-color:#1e40af;transform:translateY(-2px)}@media (max-width: 600px){.profile-container{flex-direction:column;align-items:center}}.profile-image{position:relative;text-align:center}.profile-image img{width:150px;height:150px;border-radius:50%;object-fit:cover;border:4px solid #3b82f6;transition:transform .3s}.profile-image img:hover{transform:scale(1.05)}.upload-btn{display:block;margin-top:10px;cursor:pointer;color:#fff;font-weight:600;background-color:#3b82f6;padding:6px 12px;border-radius:8px;transition:background-color .2s}.upload-btn:hover{background-color:#1e40af}.profile-image input[type=file]{display:none}.modal{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:99}.modal-content{background:#fff;padding:20px;border-radius:10px;width:320px;text-align:center}.modal-content input{width:90%;padding:8px;margin-top:10px;border-radius:6px;border:1px solid #ccc}.modal-actions{margin-top:15px;display:flex;justify-content:space-between}.modal-actions button{padding:8px 16px;border-radius:8px;border:none;cursor:pointer}.modal-actions button:first-child{background-color:#22c55e;color:#fff}.modal-actions button:last-child{background-color:#ef4444;color:#fff}.password-section{margin-top:30px;background-color:#f1f5f9;padding:20px;border-radius:12px;border:1px solid #cbd5e1}.password-section h3{color:#1e293b;margin-bottom:15px;text-align:center}.password-btn{margin-top:10px;width:100%;padding:12px 25px;background-color:#22c55e;color:#fff;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:background-color .2s,transform .2s}.password-btn:hover{background-color:#16a34a;transform:translateY(-2px)}.my-appointments-page{background-color:#fafafa;min-height:100vh;padding:30px;border-radius:12px}.my-appointments-page h1{color:#222;border-bottom:2px solid #dcdcdc;padding-bottom:12px;font-size:1.8em;font-weight:600;letter-spacing:.5px;margin-bottom:15px}.my-appointments-page p{color:#555;font-size:1rem;margin-bottom:25px;border-left:4px solid #b5b5b5;padding-left:12px;line-height:1.6}.ant-tabs-nav{margin-bottom:25px!important}.ant-tabs-tab{font-size:1.05em;font-weight:500;color:#555!important;transition:all .2s ease-in-out}.ant-tabs-tab:hover{color:#000!important}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#111!important;font-weight:600}.ant-tabs-ink-bar{background:#444!important}.ant-card{width:100%;border:1px solid #e6e6e6!important;border-radius:10px!important;background-color:#fff!important;transition:all .2s ease}.ant-card:hover{box-shadow:0 6px 20px #00000012;transform:translateY(-3px)}.ant-card-head{background-color:#f3f3f3!important;border-bottom:1px solid #e0e0e0!important}.ant-card-head-title{color:#222;font-weight:600}.ant-tag{border-radius:6px;padding:4px 10px;font-size:.95em;font-weight:500}.ant-tag-gold{background-color:#fff7e6;border-color:#ffe58f;color:#8c6d1f}.ant-tag-green{background-color:#f6ffed;border-color:#b7eb8f;color:#135200}.ant-tag-red{background-color:#fff2f0;border-color:#ffccc7;color:#a8071a}.ant-tag-volcano{background-color:#fff2e8;border-color:#ffbb96;color:#873600}.ant-btn-default{border-radius:8px;font-weight:500;border:1px solid #ccc}.ant-btn-default:hover{background-color:#f5f5f5!important;border-color:#999!important}.ant-empty-description{color:#777!important}.ant-list-item{padding:0!important;border:none!important}.my-appointments-page .ant-list-item{border-block-end:none!important;padding:0!important;margin-bottom:8px}
