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}.welcome-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.welcome-card{background:#fff;border-radius:15px;box-shadow:0 10px 30px #0003;max-width:600px;padding:40px;text-align:center;width:100%}.welcome-card h1{color:#333;font-size:2.5rem;margin-bottom:10px}.welcome-subtitle{color:#666;font-size:1.2rem;margin-bottom:30px}.role-selection{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:30px}.role-card{background:#f8f9fa;border:2px solid #0000;border-radius:10px;cursor:pointer;padding:25px 15px;transition:all .3s ease}.role-card:hover{border-color:#667eea;box-shadow:0 5px 15px #0000001a;transform:translateY(-5px)}.role-icon{font-size:2.5rem;margin-bottom:10px}.role-card h3{color:#333;margin-bottom:8px}.role-card p{color:#666;font-size:.9rem;margin:0}.admin-note{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;color:#856404;padding:15px}.admin-note p{font-size:.9rem;margin:0}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:15px;box-shadow:0 10px 30px #0003;max-width:400px;padding:40px;position:relative;width:100%}.back-button{align-items:center;color:#667eea;display:flex;font-size:.9rem;font-weight:600;gap:5px;left:20px;position:absolute;text-decoration:none;top:20px}.back-button:hover{color:#764ba2}.login-header{margin-bottom:30px;margin-top:10px;text-align:center}.login-header h2{color:#333;font-size:1.8rem;margin-bottom:10px}.login-header p{color:#666;margin:0}.form-group,.login-form{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px}.form-input{border:2px solid #e1e5e9;border-radius:8px;box-sizing:border-box;font-size:16px;padding:12px 16px;transition:border-color .3s ease;width:100%}.form-input:focus{border-color:#667eea;outline:none}.login-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:transform .2s ease;width:100%}.login-btn:hover{transform:translateY(-2px)}.error-message{background-color:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:.9rem;margin-bottom:20px;padding:12px}.demo-credentials{background-color:#f8f9fa;border-left:4px solid #667eea;border-radius:8px;margin-top:30px;padding:20px}.demo-credentials h4{color:#333;font-size:.9rem;margin:0 0 10px}.demo-credentials p{color:#666;font-size:.8rem;margin:5px 0}.student-dashboard{background:linear-gradient(135deg,#eeeff1,#dad6de);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh}.student-header{align-items:center;background:linear-gradient(135deg,#a9b6ec,#bd8ced);box-shadow:0 2px 10px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.header-left h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-weight:700}.header-left p{color:#666}.student-email{color:#0c0909!important;font-size:18px!important;margin-top:2px!important}.logout-btn{background:linear-gradient(135deg,#080707,#0e0c0c);border:none;border-radius:25px;box-shadow:0 4px 15px #ff6b6b4d;font-weight:600}.logout-btn:hover{box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.student-nav{background:#fff;border-bottom:1px solid #e1e5e9;display:flex;gap:0;padding:0 2rem}.nav-btn{font-weight:500;overflow:hidden;padding:1.2rem 2rem;position:relative}.nav-btn:before{background:linear-gradient(135deg,#667eea,#764ba2);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .3s ease;width:100%;z-index:-1}.nav-btn:hover{background:#667eea1a}.nav-btn.active{background:#667eea0d;border-bottom-color:#f1f3fc;color:#e1e3ef;font-weight:600}.student-content{margin:0 auto;max-width:1400px;padding:2rem}.tab-content h2{color:#fff;font-size:2rem;font-weight:700;margin-bottom:2rem;text-align:center;text-shadow:0 2px 10px #0003}.detailed-attendance{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.course-attendance-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:2rem;position:relative;transition:all .3s ease}.register-btn{background-color:#a7a7ef;color:#000;font-size:19px;font-weight:25px}.course-attendance-card:before{background:linear-gradient(135deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0}.course-attendance-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-5px)}.course-attendance-header{align-items:flex-start;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1.5rem}.course-attendance-header h3{color:#333;flex:1 1;font-size:1.3rem;font-weight:600;margin:0}.attendance-summary{text-align:right}.attendance-percentage{color:#667eea;display:block;font-size:2rem;font-weight:700;margin-bottom:.5rem}.attendance-stats{background:#f8f9fa;border-radius:15px;color:#666;display:inline-block;font-size:.9rem;padding:.5rem 1rem}.session-details{margin-bottom:2rem}.session-details h4{align-items:center;color:#333;display:flex;font-size:1.1rem;font-weight:600;gap:.5rem;margin-bottom:1rem}.session-details h4:before{content:"📅";font-size:1.2rem}.sessions-list{display:flex;flex-direction:column;gap:.75rem;max-height:200px;overflow-y:auto;padding-right:.5rem}.sessions-list::-webkit-scrollbar{width:6px}.sessions-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.sessions-list::-webkit-scrollbar-thumb{background:#667eea;border-radius:10px}.session-item{align-items:center;background:#f8f9fa;border-left:4px solid #0000;border-radius:12px;display:flex;justify-content:space-between;padding:1rem;transition:all .3s ease}.session-item:hover{background:#e9ecef;transform:translateX(5px)}.session-date{color:#333;font-weight:500}.attendance-status{border-radius:20px;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:.4rem 1rem;text-transform:uppercase}.attendance-status.present{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.attendance-status.absent{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.attendance-status.late{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.attendance-breakdown{grid-gap:1rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #ffffff80;border-radius:15px;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);padding:1.5rem}.breakdown-item{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000000d;display:flex;justify-content:space-between;padding:.75rem}.breakdown-item .label{color:#555;font-weight:500}.breakdown-item .value{border-radius:15px;font-size:.9rem;font-weight:700;padding:.3rem .8rem}.value.present{background:#d4edda;color:#155724}.value.absent{background:#f8d7da;color:#721c24}.value.late{background:#fff3cd;color:#856404}.value.total{background:#667eea;color:#fff}.no-sessions{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:12px;color:#6c757d;font-style:italic;padding:2rem;text-align:center}.detailed-results{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(500px,1fr))}.course-results-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:2.5rem;position:relative;transition:all .3s ease}.course-results-card:before{background:linear-gradient(135deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0}.course-results-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-5px)}.course-results-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem}.course-results-header h3{color:#333;flex:1 1;font-size:1.4rem;font-weight:600;margin:0}.overall-grade{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem;text-align:right}.grade-label{color:#666;font-size:.9rem;font-weight:500}.grade-value{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;box-shadow:0 4px 15px #667eea4d;color:#fff;font-size:2rem;font-weight:700;padding:.5rem 1.5rem}.total-marks-display{background:#f8f9fa;border-radius:12px;color:#666;font-size:.9rem;font-weight:500;padding:.3rem 1rem}.assessment-details{margin-bottom:2.5rem}.assessment-details h4{align-items:center;color:#333;display:flex;font-size:1.2rem;font-weight:600;gap:.5rem;margin-bottom:1.5rem}.assessment-details h4:before{content:"📊";font-size:1.3rem}.assessments-list{display:flex;flex-direction:column;gap:1rem;max-height:300px;overflow-y:auto;padding-right:.5rem}.assessments-list::-webkit-scrollbar{width:6px}.assessments-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.assessments-list::-webkit-scrollbar-thumb{background:#667eea;border-radius:10px}.assessment-item{align-items:center;background:#f8f9fa;border-left:4px solid #667eea;border-radius:15px;display:flex;justify-content:space-between;padding:1.2rem;transition:all .3s ease}.assessment-item:hover{background:#e9ecef;box-shadow:0 4px 12px #0000001a;transform:translateX(5px)}.assessment-info{display:flex;flex:1 1;flex-direction:column;gap:.5rem}.assessment-type{border-radius:12px;display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.5px;padding:.3rem .8rem;text-transform:uppercase;width:-webkit-fit-content;width:fit-content}.assessment-type.quiz{background:#007bff;color:#fff}.assessment-type.assignment{background:#28a745;color:#fff}.assessment-type.mid{background:#ffc107;color:#212529}.assessment-type.final{background:#dc3545;color:#fff}.assessment-title{color:#333;font-size:1rem;font-weight:600}.assessment-date{color:#666;font-size:.8rem}.assessment-marks{align-items:center;display:flex;font-weight:600;gap:.5rem}.marks-obtained{color:#333;font-size:1.2rem}.marks-separator{color:#999}.marks-total{color:#666}.marks-percentage{background:#667eea1a;border-radius:10px;color:#667eea;font-size:.8rem;padding:.2rem .6rem}.marks-breakdown{margin-bottom:2rem}.marks-breakdown h4{align-items:center;color:#333;display:flex;font-size:1.2rem;font-weight:600;gap:.5rem;margin-bottom:1.5rem}.marks-breakdown h4:before{content:"🎯";font-size:1.3rem}.marks-grid{display:flex;flex-direction:column;gap:1.2rem}.mark-item{background:#fff;border:1px solid #f0f0f0;border-radius:15px;box-shadow:0 4px 15px #00000014;overflow:hidden;padding:1.5rem;position:relative;transition:all .3s ease}.mark-item:before{background:#667eea;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.mark-item:hover{box-shadow:0 6px 20px #0000001f;transform:translateY(-2px)}.mark-item.total{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.mark-item.total .mark-label,.mark-item.total .mark-value{color:#fff}.mark-label{color:#333;font-size:1rem;font-weight:600;margin-bottom:.5rem}.mark-value{color:#667eea;font-size:1.3rem;font-weight:700;margin-bottom:.8rem}.weight-info{color:#666;font-size:.8rem;font-style:italic;margin-bottom:.8rem}.mark-bar{background:#e9ecef;height:8px;overflow:hidden}.mark-bar,.mark-fill{border-radius:10px;position:relative}.mark-fill{height:100%;transition:width .8s ease-in-out}.mark-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.mark-fill.quiz{background:linear-gradient(135deg,#007bff,#0056b3)}.mark-fill.assignment{background:linear-gradient(135deg,#28a745,#1e7e34)}.mark-fill.mid{background:linear-gradient(135deg,#ffc107,#e0a800)}.mark-fill.final{background:linear-gradient(135deg,#dc3545,#c82333)}.mark-fill.total{background:linear-gradient(135deg,#fff,#fffc)}.grade-explanation{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #ffffff80;border-radius:15px;padding:1.5rem}.grade-explanation h4{align-items:center;color:#333;display:flex;font-size:1.1rem;font-weight:600;gap:.5rem;margin-bottom:1rem}.grade-explanation h4:before{content:"📈";font-size:1.2rem}.grade-scale{grid-gap:.8rem;display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.grade-scale span{background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000000d;color:#333;font-size:.9rem;font-weight:500;padding:.8rem;text-align:center;transition:all .3s ease}.grade-scale span:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.no-assessments,.no-data{background:#ffffffe6;border:2px dashed #dee2e6;border-radius:15px;color:#6c757d;font-size:1.1rem;font-style:italic;padding:3rem 2rem;text-align:center}@media (max-width:768px){.student-content{padding:1rem}.detailed-attendance,.detailed-results{grid-template-columns:1fr}.course-attendance-header,.course-results-header{align-items:flex-start;flex-direction:column;gap:1rem}.attendance-summary,.overall-grade{align-items:flex-start;text-align:left}.attendance-breakdown{grid-template-columns:1fr}.assessment-item{align-items:flex-start;flex-direction:column;gap:1rem}.assessment-marks{align-self:flex-end}.student-nav{overflow-x:auto;padding:0 1rem}.nav-btn{font-size:.85rem;padding:1rem 1.2rem;white-space:nowrap}.grade-scale{grid-template-columns:repeat(2,1fr)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.course-attendance-card,.course-results-card{animation:fadeInUp .6s ease-out}.assessment-item,.mark-item,.session-item{cursor:pointer}.loading{align-items:center;color:#667eea;display:flex;font-size:1.2rem;height:200px;justify-content:center}.status{border-radius:20px;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:.4rem 1rem;text-transform:uppercase}.status.good{border:1px solid #c3e6cb}.status.debar{border:1px solid #f5c6cb}.status.bad{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.courses-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:20px 0;overflow:hidden}.courses-section h2{background:#f8f9fa;border-bottom:1px solid #e9ecef;color:#2d3748;font-size:1.25rem;font-weight:600;margin:0;padding:16px 20px}.courses-table{border-collapse:collapse;font-size:.9rem;width:100%}.courses-table th{background:#f8f9fa;border-bottom:2px solid #e9ecef;color:#4a5568;font-weight:600;padding:12px 16px;text-align:left}.courses-table td{border-bottom:1px solid #e9ecef;padding:12px 16px}.courses-table tr:last-child td{border-bottom:none}.courses-table tr:hover{background:#f8f9fa}.course-name{color:#2d3748;font-weight:600}.teacher-name{color:#718096;font-size:.85rem}.attendance-high{color:#38a169;font-weight:600}.attendance-medium{color:#dd6b20;font-weight:600}.attendance-low{color:#e53e3e;font-weight:600}.grade-excellent,.grade-good{color:#38a169;font-weight:600}.grade-poor{color:#e53e3e;font-weight:600}.course-status{background:#e2e8f0;border-radius:4px;color:#4a5568;font-size:.8rem;font-weight:500;padding:4px 8px}@media (max-width:768px){.courses-table{font-size:.8rem}.courses-table td,.courses-table th{padding:8px 12px}.courses-section{border-radius:6px;margin:15px 0}}.courses-table tr{transition:background-color .2s ease}.course-status{transition:all .2s ease}.course-status:hover{background:#cbd5e0}.logout-btn{color:#000!important}.teacher-dashboard{background:#ced0d7;min-height:100vh}.teacher-header{align-items:center;background:linear-gradient(135deg,#b4beec,#423851);box-shadow:0 2px 10px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.teacher-header .header-left h1{font-size:1.8rem;font-weight:600;margin:0}.teacher-header .header-left p{color:#000;font-size:.9rem;margin:5px 0 0;opacity:.9}.teacher-nav{background:#fff;border-bottom:1px solid #e1e5e9;display:flex;gap:0;padding:0 2rem}.nav-btn{color:#000!important}.nav-btn:hover{color:#333!important}.nav-btn.active{color:#667eea!important}.teacher-content{margin:0 auto;max-width:1400px;padding:2rem}.courses-list{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.course-card{background:#fff;border-left:4px solid #667eea;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:1.5rem}.course-card h3{color:#333;font-size:1.1rem;margin-bottom:1rem}.course-card p{color:#666;font-size:.9rem;margin-bottom:.5rem}.course-actions{margin-top:1rem}.action-btn{font-size:.9rem;transition:all .3s ease}.action-btn.primary{background:#667eea;color:#fff}.action-btn.primary:hover{background:#5a6fd8;transform:translateY(-2px)}.course-selection-card{background:#fff;border:2px solid #0000;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:1.5rem;text-align:center;transition:all .3s ease}.course-selection-card:hover{border-color:#667eea;transform:translateY(-2px)}.course-selection-card h4{color:#333;margin-bottom:1rem}.select-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:background .3s ease}.select-btn:hover{background:#5a6fd8}.courses-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:1.5rem}.attendance-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.back-btn{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:.75rem 1.5rem;transition:background .3s ease}.back-btn:hover{background:#5a6268}.session-management{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem;padding:1.5rem}.session-form{align-items:end;display:flex;gap:1rem}.date-input{border:2px solid #e1e5e9;border-radius:6px;font-size:1rem;padding:.75rem}.add-session-btn{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:background .3s ease}.add-session-btn:hover{background:#218838}.sessions-list{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem;padding:1.5rem}.session-card{background:#f8f9fa;border:1px solid #e1e5e9;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.session-header{align-items:center;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:1rem}.session-id{color:#6c757d;font-family:monospace;font-size:.8rem}.attendance-marking table{border-collapse:collapse;width:100%}.attendance-marking th{background:#e9ecef;color:#333;font-weight:600;padding:1rem;text-align:left}.attendance-marking td{border-bottom:1px solid #dee2e6;padding:1rem}.attendance-buttons{display:flex;gap:.5rem}.attendance-btn{border:2px solid #dee2e6;border-radius:4px;cursor:pointer;font-weight:600;padding:.5rem 1rem;transition:all .3s ease}.attendance-btn.present{background:#f8f9fa;color:#28a745}.attendance-btn.present.active{background:#28a745;border-color:#28a745;color:#fff}.attendance-btn.absent{background:#f8f9fa;color:#dc3545}.attendance-btn.absent.active{background:#dc3545;border-color:#dc3545;color:#fff}.attendance-btn.late{background:#f8f9fa;color:#ffc107}.attendance-btn.late.active{background:#ffc107;border-color:#ffc107;color:#212529}.attendance-summary{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:1.5rem}.summary-table{border-collapse:collapse;width:100%}.summary-table th{background:#f8f9fa;color:#333;font-weight:600;padding:1rem;text-align:left}.summary-table td{border-bottom:1px solid #dee2e6;padding:1rem}.present-count{color:#28a745;font-weight:600}.absent-count{color:#dc3545;font-weight:600}.late-count{color:#ffc107;font-weight:600}.percentage.good{color:#28a745;font-weight:600}.percentage.warning{color:#ffc107;font-weight:600}.percentage.poor{color:#dc3545;font-weight:600}.marks-header{justify-content:space-between;margin-bottom:2rem}.header-actions,.marks-header{align-items:center;display:flex}.header-actions{gap:1rem}.save-all-btn{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:background .3s ease}.save-all-btn:hover{background:#218838}.marks-management{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem;padding:1.5rem}.marks-table-container{overflow-x:auto}.marks-table{border-collapse:collapse;min-width:1000px;width:100%}.marks-table th{background:#f8f9fa;color:#333;font-weight:600;padding:1rem;text-align:left;white-space:nowrap}.marks-table td{border-bottom:1px solid #dee2e6;padding:.75rem;vertical-align:middle}.marks-input{border:2px solid #e1e5e9;border-radius:4px;font-size:.9rem;padding:.5rem;text-align:center;width:80px}.marks-input:focus{border-color:#667eea;outline:none}.total-marks{color:#333;font-weight:600}.grade{border-radius:4px;display:inline-block;font-size:.8rem;font-weight:600;min-width:40px;padding:.5rem .75rem;text-align:center}.grade.a-plus{background:#d4edda;color:#155724}.grade.a{background:#cce7ff;color:#004085}.grade.b{background:#fff3cd;color:#856404}.grade.c{background:#ffeaa7;color:#856404}.grade.d{background:#f8d7da;color:#721c24}.grade.f{background:#f5c6cb;color:#721c24}.save-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:.5rem 1rem;transition:background .3s ease}.save-btn:hover{background:#0056b3}.marks-summary{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:1.5rem}.summary-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.student-summary{background:#f8f9fa;border-left:4px solid #667eea;border-radius:6px;padding:1rem}.no-data-card{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:3rem;text-align:center}.no-data-card h3{color:#333;margin-bottom:1rem}.no-data-card p{color:#666;margin-bottom:.5rem}.no-sessions,.no-students{color:#666;font-style:italic;padding:2rem;text-align:center}@media (max-width:768px){.teacher-content{padding:1rem}.teacher-nav{overflow-x:auto;padding:0 1rem}.nav-btn{font-size:.85rem;padding:.75rem 1rem;white-space:nowrap}.attendance-header,.marks-header{align-items:flex-start;flex-direction:column;gap:1rem}.header-actions{justify-content:space-between;width:100%}.session-form{align-items:stretch;flex-direction:column}.courses-grid{grid-template-columns:1fr}}.policy-notice{background:#e3f2fd;border:1px solid #2196f3;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.policy-notice h4{color:#1976d2;margin:0 0 .5rem}.policy-notice ul{margin:0;padding-left:1.5rem}.policy-notice li{margin-bottom:.25rem}.assessment-management{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem;padding:1.5rem}.assessment-form{grid-gap:1rem;align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.assessment-date,.assessment-marks,.assessment-title,.assessment-type{border:2px solid #e1e5e9;border-radius:6px;font-size:.9rem;padding:.75rem}.add-assessment-btn{background:#17a2b8;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:background .3s ease}.add-assessment-btn:hover{background:#138496}.assessments-list{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem;padding:1.5rem}.assessments-grid{grid-gap:1.5rem;display:grid;gap:1.5rem}.assessment-header{align-items:center}.assessment-type-badge{border-radius:4px;font-size:.7rem;font-weight:600;margin-right:.5rem;padding:.25rem .5rem}.assessment-type-badge.quiz{background:#007bff;color:#fff}.assessment-type-badge.assignment{background:#28a745;color:#fff}.assessment-type-badge.mid{background:#ffc107;color:#212529}.assessment-type-badge.final{background:#dc3545;color:#fff}.assessment-date{color:#6c757d;font-size:.9rem}.assessment-marks-table{margin-top:1rem}.assessment-marks-table table{border-collapse:collapse;width:100%}.assessment-marks-table th{background:#e9ecef;color:#333;font-size:.8rem;font-weight:600;padding:.75rem;text-align:left}.assessment-marks-table td{border-bottom:1px solid #dee2e6;font-size:.8rem;padding:.75rem}.overall-marks{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:1.5rem}.overall-marks-table table{border-collapse:collapse;width:100%}.overall-marks-table th{background:#f8f9fa;color:#333;font-weight:600;padding:1rem;text-align:left}.overall-marks-table td{border-bottom:1px solid #dee2e6;padding:1rem}.status.good{background:#d4edda;color:#155724}.status.debar,.status.good{border-radius:12px;font-size:.8rem;font-weight:600;padding:.25rem .5rem}.status.debar{background:#f8d7da;color:#721c24}.no-assessments{color:#6c757d;font-style:italic;padding:2rem;text-align:center}.delete-assessment-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:.5rem 1rem;transition:all .3s ease}.delete-assessment-btn:hover{background:#c82333;transform:translateY(-1px)}.assessment-header{align-items:flex-start;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:1rem}.assessment-title-section{flex:1 1}.assessment-title-section h4{align-items:center;display:flex;gap:.5rem;margin:0 0 .5rem}.no-marks-warning{color:#dc3545;font-size:.7rem;font-weight:600;margin-top:.25rem}.weighting-info{background:#e8f5e8;border:1px solid #28a745;border-radius:8px;margin-top:1.5rem;padding:1rem}.weighting-info h4{color:#155724;font-size:1rem;margin:0 0 1rem}.weight-breakdown{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.weight-item{align-items:center;background:#fff;border-radius:4px;display:flex;justify-content:space-between;padding:.5rem}.weight-type{color:#333;font-weight:600}.weight-percentage{color:#28a745;font-weight:600}.assessment-card{background:#f8f9fa;border:1px solid #e1e5e9;border-radius:8px;padding:1.5rem;position:relative}@media (max-width:768px){.assessment-header{flex-direction:column;gap:1rem}.delete-assessment-btn{align-self:flex-end}}.admin-dashboard{background:#f5f6fa;min-height:100vh}.admin-header{align-items:center;background:linear-gradient(135deg,#a9b6ec,#bd8ced);box-shadow:0 2px 10px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.header-left h1{font-size:1.8rem;font-weight:600;margin:0}.header-left p{color:#000;font-size:.9rem;font-size:20px;margin:5px 0 0;opacity:.9}.logout-btn{border-radius:8px;font-size:.9rem;padding:.75rem 1.5rem;transition:all .3s ease}.admin-nav{background:#fff;border-bottom:1px solid #e1e5e9;display:flex;gap:0;padding:0 2rem}.nav-btn{background:none;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:.95rem;padding:1rem 1.5rem;transition:all .3s ease}.nav-btn:hover{background:#f8f9fa;color:#333}.nav-btn.active{background:#f8f9fa;border-bottom-color:#667eea;color:#667eea}.admin-content{margin:0 auto;max-width:1200px;padding:2rem}.tab-content h2{color:#333;font-size:1.5rem;margin-bottom:1.5rem}.form-card{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem;padding:2rem}.form-card h3{color:#333;font-size:1.2rem;margin-bottom:1.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column}.form-group label{color:#333;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select{border:2px solid #e1e5e9;border-radius:6px;font-size:.95rem;padding:.75rem;transition:border-color .3s ease}.form-group input:focus,.form-group select:focus{border-color:#667eea;outline:none}.submit-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 2rem;transition:transform .2s ease}.submit-btn:hover{transform:translateY(-2px)}.list-card{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:2rem}.list-card h3{color:#333;font-size:1.2rem;margin-bottom:1.5rem}.no-data{color:#666;font-style:italic;padding:2rem;text-align:center}.data-table{background:#fff;border-collapse:collapse;width:100%}.data-table th{background:#f8f9fa;color:#333;font-weight:600;text-align:left}.data-table td,.data-table th{border-bottom:1px solid #e1e5e9;padding:1rem}.data-table td{color:#555}.data-table tr:hover{background:#f8f9fa}.remove-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem 1rem;transition:all .3s ease}.remove-btn:hover{background:#c82333;transform:translateY(-1px)}.remove-btn:disabled{background:#6c757d;cursor:not-allowed;transform:none}.teacher-email{color:#666;font-size:.8rem;margin-top:2px}.not-assigned{color:#dc3545;font-size:.9rem;font-style:italic}.enrolled-count{background:#e9ecef;border-radius:12px;color:#495057;font-size:.8rem;font-weight:600;padding:.25rem .5rem}.enrolled-count.has-students{background:#d4edda;color:#155724}.password-cell{background:#f8f9fa;border-radius:4px;font-family:monospace}.assigned-course{color:#495057;font-size:.8rem;padding:.25rem 0}.no-courses{color:#6c757d;font-size:.9rem;font-style:italic}.warning-text{color:#dc3545;font-size:.75rem;font-weight:600;margin-top:.25rem}.courses-list{max-width:300px}.student-course{border-bottom:1px solid #f1f3f4;font-size:.8rem;padding:.25rem 0}.student-course:last-child{border-bottom:none}.course-teacher{color:#666;display:block;font-size:.75rem;margin-top:2px}@media (max-width:768px){.admin-content{padding:1rem}.form-row{grid-template-columns:1fr}.admin-nav{overflow-x:auto;padding:0 1rem}.nav-btn{font-size:.85rem;padding:.75rem 1rem;white-space:nowrap}.data-table{font-size:.8rem}.remove-btn{font-size:.75rem;padding:.4rem .8rem}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f5f6fa;color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.App,.layout{min-height:100vh}.layout{display:flex;flex-direction:column}.layout-content{display:flex;flex:1 1}.header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1rem 2rem}.header h1{font-size:1.5rem;font-weight:600}.header-right{align-items:center;display:flex;gap:1rem}.logout-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background .3s ease}.logout-btn:hover{background:#ffffff4d}.sidebar{background:#fff;box-shadow:2px 0 10px #0000001a;padding:2rem 0;width:250px}.sidebar-nav{display:flex;flex-direction:column}.nav-link{border-left:4px solid #0000;color:#333;padding:1rem 2rem;text-decoration:none;transition:all .3s ease}.nav-link:hover{background-color:#f8f9fa;color:#667eea}.nav-link.active{background-color:#667eea;border-left-color:#764ba2;color:#fff}.main-content{background-color:#f8f9fa;flex:1 1;padding:2rem}.dashboard-header{margin-bottom:2rem}.dashboard-header h1{color:#333;margin-bottom:.5rem}.dashboard-header p{color:#666;font-size:1.1rem}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{background:#fff;border-left:4px solid #667eea;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:1.5rem;text-align:center}.stat-card h3{color:#666;font-size:.9rem;letter-spacing:.5px;margin-bottom:.5rem;text-transform:uppercase}.stat-number{color:#333;font-size:2rem;font-weight:700;margin:0}.action-buttons{display:flex;flex-wrap:wrap;gap:1rem}.action-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:transform .2s ease}.action-btn:hover{transform:translateY(-2px)}.quick-actions,.recent-activities,.today-schedule{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.quick-actions h3,.recent-activities h3,.today-schedule h3{color:#333;margin-bottom:1rem}.schedule-item{border-bottom:1px solid #eee;padding:.5rem 0}.schedule-item:last-child{border-bottom:none}.recent-activities ul{list-style:none}.recent-activities li{border-bottom:1px solid #eee;color:#666;padding:.5rem 0}.recent-activities li:last-child{border-bottom:none}@media (max-width:768px){.layout-content{flex-direction:column}.sidebar{order:2;width:100%}.main-content{order:1}.stats-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}}.hero-section,.homepage{min-height:100vh}.hero-section{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:center;padding:2rem;text-align:center}.hero-content h1{font-size:3rem;font-weight:700;margin-bottom:1rem}.hero-content p{font-size:1.2rem;margin-bottom:2rem;opacity:.9}.cta-button{background:#fff;border-radius:50px;box-shadow:0 4px 15px #0003;color:#667eea;display:inline-block;font-size:1.1rem;font-weight:600;padding:1rem 2rem;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease}.cta-button:hover{box-shadow:0 6px 20px #0000004d;transform:translateY(-3px)}
/*# sourceMappingURL=main.dc4b0efa.css.map*/