:root{--secondary-color:#6c90c0;--accent-color:#ff9a3c;--light-text:#666;--border-color:#e1e4e8;--success-color:#28a745;--error-color:#dc3545;--warning-color:#ffc107;--pending-color:#6c757d;--graded-color:#28a745;--font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif}body{line-height:1.6}body,button{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.container{margin:0 auto;max-width:1200px;padding:0 1rem}.loading{color:#666;color:var(--light-text);font-size:1.2rem;height:50vh}.error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:.25rem;color:#dc3545;color:var(--error-color)}.error,.success-message{margin:1rem 0;padding:1rem}.success-message{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:.25rem;color:#28a745}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:.25rem;color:#dc3545;margin:1rem 0}.dashboard-container{margin:0 auto;max-width:1200px;padding:1rem}.dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.dashboard-header h1{color:var(--primary-color)}.create-assignment-button{align-items:center;background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.6rem 1.2rem;text-decoration:none;transition:background-color .2s}.create-assignment-button:hover{background-color:var(--secondary-color)}.dashboard-tabs{border-bottom:1px solid var(--border-color);display:flex;margin-bottom:1.5rem}.dashboard-tab{border-bottom:2px solid #0000;color:var(--light-text);cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.dashboard-tab.active,.dashboard-tab:hover{color:var(--primary-color)}.dashboard-tab.active{border-bottom-color:var(--primary-color)}.dashboard-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-bottom:2rem}.assignment-card{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 6px #0000001a;display:flex;flex-direction:column;overflow:hidden;transition:transform .2s,box-shadow .2s}.assignment-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-3px)}.assignment-card-content{flex:1 1;padding:1.5rem}.assignment-card h2{color:var(--text-color);font-size:1.2rem;margin-bottom:.75rem}.assignment-card-meta{color:var(--light-text);font-size:.9rem;margin-bottom:1rem}.due-date{align-items:center;display:flex;gap:.5rem}.assignment-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--text-color);display:-webkit-box;line-height:1.5;margin-bottom:1.5rem;overflow:hidden}.assignment-card-footer{align-items:center;background-color:#f8f9fa;display:flex;justify-content:space-between;padding:1rem 1.5rem}.assignment-status{border-radius:50px;font-size:.85rem;font-weight:500;padding:.25rem .75rem}.status-active{background-color:#e8f5e9;color:#2e7d32}.status-completed{background-color:#e3f2fd;color:#1565c0}.view-assignment-link{align-items:center;color:var(--primary-color);display:flex;font-size:.9rem;font-weight:500;gap:.5rem;text-decoration:none}.view-assignment-link:hover{text-decoration:underline}.empty-state{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 6px #0000001a;padding:3rem 1rem;text-align:center}.empty-state h2{color:var(--text-color);margin-bottom:1rem}.empty-state p{color:var(--light-text);margin-bottom:1.5rem}.empty-state-button{align-items:center;background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:background-color .2s}.empty-state-button:hover{background-color:var(--secondary-color)}.loading-spinner{align-items:center;display:flex;justify-content:center;padding:3rem}@media screen and (max-width:768px){.dashboard-header{align-items:flex-start;flex-direction:column;gap:1rem}.create-assignment-button{justify-content:center;width:100%}.dashboard-cards{grid-template-columns:1fr}}.mock-data-notice{background-color:#fff3cd;border:1px solid #ffeeba;border-radius:4px;color:#856404;font-size:14px;margin-bottom:20px;padding:10px 15px;text-align:center}.login-container{margin:3rem auto;max-width:480px;padding:1rem}.login-container h1{color:var(--primary-color);margin-bottom:1.5rem;text-align:center}.login-form{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:2rem}.login-button{background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem;transition:background-color .2s;width:100%}.login-button:hover{background-color:var(--secondary-color)}.login-button:disabled{background-color:var(--border-color);cursor:not-allowed}.register-link{color:var(--light-text);font-size:.9rem;margin-top:1.5rem;text-align:center}.register-link a{color:var(--primary-color);font-weight:500;text-decoration:none}.register-link a:hover{text-decoration:underline}.login-demo-accounts{border-top:1px solid var(--border-color);margin-top:2rem;padding-top:1.5rem}.login-demo-accounts h3{color:var(--text-color);font-size:1rem;margin-bottom:1rem;text-align:center}.demo-accounts-list{display:flex;flex-direction:column;gap:.75rem}.demo-account-button{align-items:center;background-color:initial;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;display:flex;font-size:.9rem;justify-content:space-between;padding:.6rem;transition:all .2s}.demo-account-button:hover{background-color:#4a6fa50d;border-color:var(--primary-color)}.demo-account-info{display:flex;flex-direction:column;text-align:left}.demo-account-role{color:var(--light-text);font-size:.8rem}.login-demo-accounts,.login-form{animation:fadeIn .3s ease-out}.register-container{margin:3rem auto;max-width:480px;padding:1rem}.register-container h1{color:var(--primary-color);margin-bottom:1.5rem;text-align:center}.register-form{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:2rem}.form-group input{border:1px solid var(--border-color);border-radius:4px;font-family:var(--font-family);font-size:1rem;padding:.75rem;width:100%}.form-group input:focus{border-color:var(--primary-color);outline:none}.radio-group{display:flex;gap:1.5rem;margin-top:.5rem}.radio-option{align-items:center;display:flex;gap:.5rem}.radio-option input[type=radio]{margin:0;width:auto}.form-error{color:var(--error-color);font-size:.875rem;margin-top:.5rem}.register-button{background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem;transition:background-color .2s;width:100%}.register-button:hover{background-color:var(--secondary-color)}.register-button:disabled{background-color:var(--border-color);cursor:not-allowed}.login-link{color:var(--light-text);font-size:.9rem;margin-top:1.5rem;text-align:center}.login-link a{color:var(--primary-color);font-weight:500;text-decoration:none}.login-link a:hover{text-decoration:underline}.form-success{background-color:#e8f5e9;border-radius:4px;color:#2e7d32;margin-bottom:1.5rem;padding:1rem;text-align:center}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.register-form{animation:fadeIn .3s ease-out}.create-assignment-container{margin:0 auto;max-width:900px;padding:1rem}.create-assignment-container h1{color:var(--primary-color);margin-bottom:1.5rem}.assignment-form{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 6px #0000001a;padding:1.5rem}.assignment-form,.form-group{margin-bottom:1.5rem}.form-group label{color:var(--text-color);display:block;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group textarea{border:1px solid var(--border-color);border-radius:4px;font-family:var(--font-family);font-size:1rem;padding:.75rem;width:100%}.form-group textarea{resize:vertical}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary-color);outline:none}.rubric-section{border-top:1px solid var(--border-color);margin-bottom:2rem;padding-top:1rem}.rubric-section h2{margin-bottom:.5rem}.rubric-help{color:var(--light-text);font-size:.9rem}.rubric-help,.rubric-item{margin-bottom:1.5rem}.rubric-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.rubric-item-header label{color:var(--text-color);font-weight:500}.remove-rubric-button{background-color:initial;border:1px solid var(--error-color);border-radius:4px;color:var(--error-color);cursor:pointer;font-size:.8rem;padding:.25rem .5rem;transition:all .2s}.remove-rubric-button:hover{background-color:var(--error-color);color:#fff}.add-rubric-button{background-color:initial;border:1px dashed var(--primary-color);border-radius:4px;color:var(--primary-color);cursor:pointer;margin-top:1rem;padding:.75rem;text-align:center;transition:all .2s;width:100%}.add-rubric-button:hover{background-color:#4a6fa51a}.form-actions{margin-top:2rem}.cancel-button{background-color:initial;border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:all .2s}.cancel-button:hover{background-color:var(--border-color)}.create-button{background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .2s}.create-button:hover{background-color:var(--secondary-color)}.create-button:disabled{background-color:var(--border-color);cursor:not-allowed}.file-help{color:#666;font-size:.8rem;margin-top:4px}input[type=file]{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;padding:8px;width:100%}input[type=file]:hover{background-color:#f0f0f0}@media screen and (max-width:768px){.form-actions{flex-direction:column-reverse;gap:1rem}.cancel-button,.create-button{width:100%}}.assignment-detail-container{margin:0 auto;max-width:900px;padding:1rem}.assignment-detail-header{margin-bottom:2rem}.assignment-detail-header h1{color:var(--primary-color);margin-bottom:.5rem}.assignment-meta{align-items:center;display:flex;justify-content:space-between;margin-top:.5rem}.assignment-due-date{align-items:center;display:flex;gap:.5rem}.assignment-content{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 6px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.assignment-description{line-height:1.6;margin-bottom:2rem}.rubric-section{margin-top:2rem}.rubric-section h2{color:var(--text-color);margin-bottom:1rem}.rubric-list{display:flex;flex-direction:column;gap:1rem}.rubric-item{background-color:#f8f9fa;border-radius:4px;padding:1rem}.rubric-item h3{color:var(--text-color);font-size:1.1rem;margin-bottom:.5rem}.rubric-description{color:var(--light-text);font-size:.9rem}.submission-section{margin-top:2rem}.submission-section h2{color:var(--text-color);margin-bottom:1rem}.submissions-list{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 6px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.submission-item{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1rem}.submission-item:last-child{border-bottom:none}.submission-info{display:flex;flex-direction:column}.submission-student{font-weight:500;margin-bottom:.25rem}.submission-date{color:var(--light-text);font-size:.85rem}.submission-status{border-radius:50px;font-size:.85rem;font-weight:500;padding:.25rem .75rem}.status-graded{background-color:#e8f5e9;color:#2e7d32}.status-pending{background-color:#fff3e0;color:#e65100}.submission-actions{display:flex;gap:.5rem}.grade-submission-button,.view-submission-button{background-color:initial;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s}.view-submission-button{border:1px solid var(--primary-color);color:var(--primary-color)}.view-submission-button:hover{background-color:#4a6fa51a}.grade-submission-button{border:1px solid var(--success-color);color:var(--success-color)}.grade-submission-button:hover{background-color:#2e7d321a}.submit-assignment-section{background-color:#e8f5e9;border:1px solid #c8e6c9;border-radius:8px;margin-top:2rem;padding:1.5rem}.submit-assignment-section h2{color:#2e7d32;margin-bottom:1rem}.submit-assignment-button{align-items:center;background-color:var(--success-color);border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:background-color .2s}.submit-assignment-button:hover{background-color:#00796b}.ai-grading-note{background-color:#e3f2fd;border:1px solid #bbdefb;margin-top:2rem}.ai-grading-note h3{color:#1565c0;margin-bottom:.5rem}.assignment-actions{display:flex;justify-content:space-between;margin-top:2rem}.back-button{align-items:center;background-color:initial;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;display:inline-flex;font-size:1rem;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s}.back-button:hover{background-color:var(--border-color)}.edit-assignment-button{align-items:center;background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;gap:.5rem;padding:.75rem 1.5rem;transition:background-color .2s}.edit-assignment-button:hover{background-color:var(--secondary-color)}.error-message,.loading-message{padding:2rem;text-align:center}@media screen and (max-width:768px){.assignment-meta{gap:.5rem}.assignment-meta,.submission-item{align-items:flex-start;flex-direction:column}.submission-item{gap:1rem}.submission-actions{width:100%}.grade-submission-button,.view-submission-button{flex:1 1;text-align:center}.assignment-actions{flex-direction:column;gap:1rem}.back-button,.edit-assignment-button{justify-content:center;width:100%}}.assignment-file{border-top:1px solid #eaeaea;margin-top:1.5rem;padding-top:1rem}.assignment-file h3{color:#444;font-size:1.1rem;margin-bottom:.5rem}.download-file-button{margin-bottom:10px}.file-info{color:#666;font-size:.9rem}.file-size{color:#888;margin-left:5px}.analytics-button,.submit-button{align-items:center;background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;display:inline-flex;font-weight:500;gap:8px;padding:.6rem 1.2rem;text-decoration:none;transition:background-color .2s}.analytics-button:hover,.submit-button:hover{background-color:var(--secondary-color)}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.view-analytics-link{align-items:center;color:var(--primary-color);display:inline-flex;font-weight:500;gap:6px;text-decoration:none}.view-analytics-link:hover{text-decoration:underline}.submit-assignment-container{margin:0 auto;max-width:900px;padding:1rem}.submit-assignment-container h1{color:var(--primary-color);margin-bottom:1.5rem}.assignment-details{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 6px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.assignment-details h2{color:var(--text-color);margin-bottom:1rem}.assignment-details .description{line-height:1.6;margin-bottom:1rem}.assignment-details .due-date{color:var(--light-text);font-size:.9rem}.rubric-section{background-color:#f8f9fa;border:1px solid var(--border-color);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.rubric-section h3{color:var(--text-color);margin-bottom:1rem}.rubric-list{list-style-type:none}.rubric-item{border-left:3px solid var(--primary-color);margin-bottom:.5rem;padding-left:1rem}.rubric-key{font-weight:600;text-transform:capitalize}.submission-form{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 6px #0000001a;padding:1.5rem}.submission-form,.submission-form .form-group{margin-bottom:1.5rem}.submission-form label{display:block;font-weight:500;margin-bottom:.5rem}.submission-form textarea{border:1px solid var(--border-color);border-radius:4px;font-family:var(--font-family);font-size:1rem;padding:.75rem;resize:vertical;width:100%}.submission-form textarea:focus{border-color:var(--primary-color);outline:none}.file-help{color:var(--light-text);font-size:.85rem;margin-top:.5rem}.form-actions{display:flex;gap:1rem;justify-content:space-between;margin-top:1.5rem}.preview-button{background-color:#e3f2fd;border:1px solid #2196f3;border-radius:4px;color:#0d47a1;cursor:pointer;flex:1 1;font-size:1rem;padding:.75rem 1rem;transition:all .2s}.preview-button:hover{background-color:#bbdefb}.preview-button:disabled{cursor:not-allowed;opacity:.7}.submit-button{background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;flex:1 1;font-size:1rem;padding:.75rem 1rem;transition:background-color .2s}.submit-button:hover{background-color:var(--secondary-color)}.submit-button:disabled{background-color:#9e9e9e;cursor:not-allowed}.submission-preview{background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;margin-top:2rem;padding:1.5rem}.submission-preview h3{border-bottom:1px solid #e0e0e0;color:#444;margin-bottom:1rem;padding-bottom:.5rem}.preview-content{background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:1.5rem;max-height:300px;overflow-y:auto;padding:1rem}.preview-text{font-family:var(--font-family);line-height:1.5;white-space:pre-wrap}.preliminary-score{margin-top:1.5rem}.preliminary-score h4{color:#444;margin-bottom:1rem}.score-display{align-items:center;display:flex;gap:1.5rem;margin-bottom:1.5rem}.score-circle{background-color:#4caf50;font-size:1.5rem;font-weight:700;height:80px;width:80px}.score-label{font-size:1.25rem;font-weight:500}.preliminary-feedback{background-color:#f9f9f9;border-radius:4px;margin-bottom:1rem;padding:1rem}.preliminary-feedback h4{color:#555;margin-bottom:.5rem}.feedback-details{margin-top:1rem}.feedback-details h5{color:#555;margin-bottom:.5rem}.feedback-details ul{padding-left:1.5rem}.feedback-details li{margin-bottom:.5rem}.preview-note{border-top:1px solid #e0e0e0;color:#555;font-size:.85rem;font-style:italic;margin-top:1rem;padding-top:.5rem}.assignment-file{margin-bottom:1rem;margin-top:1rem}.assignment-file-actions{display:flex;gap:10px;margin-bottom:15px}.view-questions-button{align-items:center;background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-weight:500;gap:8px;padding:8px 16px;text-decoration:none;transition:background-color .2s ease}.view-questions-button:hover{background-color:#388e3c}.assignment-file-preview{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-top:15px;overflow:hidden}.pdf-preview-container{height:500px;width:100%}.pdf-viewer{border:none;height:100%;width:100%}.non-pdf-preview{padding:20px;text-align:center}.file-info{background-color:#f0f0f0;border-radius:4px;display:inline-block;margin-top:10px;padding:8px}.download-file-button{align-items:center;background-color:#4285f4;border-radius:4px;color:#fff;display:inline-flex;font-weight:500;gap:8px;padding:8px 16px;text-decoration:none;transition:background-color .2s ease}.download-file-button:hover{background-color:#3367d6}@media screen and (max-width:768px){.ai-grading-note,.assignment-details,.rubric-section,.submission-form{padding:1rem}.form-actions{flex-direction:column}.preview-button,.submit-button{width:100%}.score-display{align-items:flex-start;flex-direction:column;gap:1rem}}.ai-grading-note{background-color:#e8f5e9;border:1px solid #c8e6c9;border-radius:8px;margin-top:1.5rem;padding:1.5rem}.ai-grading-note h3{color:var(--success-color);margin-bottom:1rem}.ai-grading-note p{margin-bottom:1rem}.ai-grading-note ul{margin-bottom:1rem;margin-left:1.5rem}.ai-grading-note li{margin-bottom:.5rem}.feedback-detail-container{margin:0 auto;max-width:900px;padding:1rem}.feedback-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.header-content h1{color:var(--primary-color);margin-bottom:.5rem}.assignment-title{font-size:1.25rem;font-weight:500;margin-bottom:.5rem}.submission-meta{color:var(--light-text);display:flex;font-size:.9rem;gap:1.5rem}.ai-badge{background-color:#e8f5e9;border-radius:12px;color:#2e7d32;font-size:.75rem;font-weight:500;padding:2px 8px}.score-container{text-align:center}.score-circle{align-items:center;background-color:var(--primary-color);border-radius:50%;box-shadow:0 4px 10px #0000001a;color:#fff;display:flex;flex-direction:column;height:120px;justify-content:center;width:120px}.score-value{font-size:2rem;font-weight:700;line-height:1;margin-bottom:5px}.score-label{font-size:.9rem;opacity:.9}.feedback-content{display:flex;flex-direction:column;gap:2rem;margin-bottom:2rem}.feedback-section{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 6px #0000001a;padding:1.5rem}.feedback-section h2{border-bottom:1px solid #eee;color:var(--text-color);margin-bottom:1rem;padding-bottom:.5rem}.overall-feedback{line-height:1.6}.legacy-feedback-cards,.rubric-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr}@media (min-width:768px){.rubric-cards{grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}}.legacy-feedback-card,.rubric-card{background-color:#f9f9f9;border:1px solid #eee;border-radius:8px;overflow:hidden}.feedback-card-header,.rubric-card-header{align-items:center;background-color:#f5f5f5;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:1rem}.feedback-card-header h3,.rubric-card-header h3{color:var(--text-color);font-size:1.1rem;margin:0}.category-score,.criterion-score{border-radius:4px;font-size:.9rem;font-weight:500;padding:.25rem .75rem}.criterion-score,.criterion-score.score-9{background-color:#e8f5e9;color:#2e7d32}.criterion-score.score-8{background-color:#e3f2fd;color:#1565c0}.criterion-score.score-7{background-color:#e8f5e9;color:#ffa000}.criterion-score.score-6{background-color:#fff8e1;color:#ff8f00}.criterion-score.score-0,.criterion-score.score-1,.criterion-score.score-2,.criterion-score.score-3,.criterion-score.score-4,.criterion-score.score-5{background-color:#ffebee;color:#c62828}.rubric-card-body{padding:1rem}.rubric-comments{line-height:1.5;margin-bottom:1rem}.rubric-improvements h4,.rubric-strengths h4{color:var(--text-color);font-size:.95rem;font-weight:600;margin-bottom:.5rem}.rubric-strengths{background-color:#f1f8e9;border-radius:4px;margin-bottom:1rem;padding:.75rem}.rubric-improvements{background-color:#fff8e1;border-radius:4px;padding:.75rem}.feedback-comments{line-height:1.5;padding:1rem}.improvements-list,.recommendations-list,.strengths-list{list-style:none;padding:0}.improvement-item,.recommendation-item,.strength-item{align-items:flex-start;border-radius:4px;display:flex;gap:.75rem;margin-bottom:.75rem;padding:.5rem}.strength-item{background-color:#f1f8e9}.improvement-item{background-color:#fff8e1}.recommendation-item{background-color:#e3f2fd}.strength-item svg{color:#4caf50;flex-shrink:0;margin-top:2px}.improvement-item svg{color:#ff9800;flex-shrink:0;margin-top:2px}.recommendation-item svg{color:#2196f3;flex-shrink:0;margin-top:2px}.ai-feedback-note{background-color:#e8f5e9;border:1px solid #c8e6c9;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.ai-feedback-note h3{color:var(--success-color);margin-bottom:1rem}.actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.analytics-button,.back-button,.edit-button{border-radius:4px;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;text-align:center;text-decoration:none;transition:all .2s}.back-button{background-color:#f5f5f5;border:1px solid #e0e0e0;color:var(--text-color)}.back-button:hover{background-color:#eee}.edit-button{background-color:var(--primary-color);border:none;color:#fff}.edit-button:hover{background-color:var(--secondary-color)}.analytics-button{align-items:center;background-color:#673ab7;border:none;color:#fff;display:inline-flex;gap:8px}.analytics-button:hover{background-color:#5e35b1}@media screen and (max-width:768px){.feedback-header{flex-direction:column;gap:1.5rem}.header-content{text-align:center;width:100%}.submission-meta{align-items:center;gap:.5rem}.actions,.submission-meta{flex-direction:column}.analytics-button,.back-button,.edit-button{width:100%}}.teacher-analytics-container{margin:0 auto;max-width:1200px;padding:2rem 1rem}.analytics-header{border-bottom:1px solid var(--border-color);margin-bottom:2rem;padding-bottom:1rem}.analytics-header h1{color:var(--primary-color);margin-bottom:.5rem}.assignment-meta{color:var(--light-text);font-size:.9rem}.analytics-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr}@media (min-width:992px){.analytics-grid{grid-template-areas:"distribution submissions" "insights submissions";grid-template-columns:1fr 1fr}.grade-distribution-section{grid-area:distribution}.submissions-section{grid-area:submissions}.insights-section{grid-area:insights}}section{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 6px #0000001a;padding:1.5rem}section h2{border-bottom:1px solid #eee;color:var(--text-color);margin-bottom:1.5rem;padding-bottom:.5rem}.grade-distribution-chart{align-items:center;display:flex;flex-direction:column;gap:1.5rem}.donut-chart{background:#f0f0f0;border-radius:50%;height:200px;position:relative;width:200px}.donut-segment{background:conic-gradient(var(--color) calc((var(--end-percentage) - var(--start-percentage))*1%),#0000 0);height:100%;left:0;top:0;transform:rotate(calc(var(--start-percentage)*3.6deg));transform-origin:center;width:100%}.donut-hole,.donut-segment{border-radius:50%;position:absolute}.donut-hole{background-color:#fff;height:70%;left:50%;top:50%;transform:translate(-50%,-50%);width:70%}.grade-legend{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.legend-item{align-items:center;display:flex;gap:6px}.legend-color{border-radius:3px;height:12px;width:12px}.legend-label{font-size:.85rem}.empty-chart{align-items:center;border:1px dashed #ccc;border-radius:8px;color:var(--light-text);display:flex;font-style:italic;justify-content:center;min-height:150px}.submissions-table-container{max-height:500px;overflow-y:auto}.submissions-table{border-collapse:collapse;width:100%}.submissions-table th{background-color:var(--primary-light);color:var(--text-color);font-weight:500;padding:.75rem;position:sticky;text-align:left;top:0;z-index:1}.submissions-table td{border-bottom:1px solid var(--border-color);padding:.75rem}.submissions-table tbody tr:hover{background-color:#f9f9f9}.pending-row{background-color:#fafafa}.status-badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.status-badge.graded{background-color:#e8f5e9;color:#2e7d32}.status-badge.pending{background-color:#fff8e1;color:#ff8f00}.view-feedback-link{color:var(--primary-color);font-weight:500;text-decoration:none}.view-feedback-link:hover{text-decoration:underline}.batch-actions{display:flex;justify-content:flex-end;margin-top:1.5rem}.batch-grade-button{background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.25rem;transition:background-color .2s}.batch-grade-button:hover{background-color:var(--secondary-color)}.batch-grade-button:disabled{background-color:#e0e0e0;color:#9e9e9e;cursor:not-allowed}.empty-message{color:var(--light-text);font-style:italic;padding:3rem 0;text-align:center}.class-insights{display:flex;flex-direction:column;gap:2rem}.insights-section h3{color:var(--text-color);margin-bottom:1rem}.stat-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.stat-card{background-color:#f5f5f5;border-radius:8px;padding:1rem;text-align:center}.stat-value{color:var(--primary-color);font-size:1.5rem;font-weight:700}.stat-label{color:var(--light-text);font-size:.85rem;margin-top:.25rem}.trends-container{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr}@media (min-width:768px){.trends-container{grid-template-columns:1fr 1fr}}.trend-column h4{color:var(--text-color);margin-bottom:.75rem}.trend-list{padding-left:1.5rem}.trend-list li{margin-bottom:.5rem}.trend-list.strengths li{color:#2e7d32}.trend-list.weaknesses li{color:#c62828}.empty-trend{color:var(--light-text);font-style:italic}.recommendation-card{background-color:#f5f5f5;border-radius:8px;padding:1.25rem}.recommendation-card h4{color:var(--text-color);margin-bottom:.75rem}.recommendation-card p{margin-bottom:1.25rem}.action-list{padding-left:1.5rem}.action-list li{margin-bottom:.5rem}.grading-progress{background-color:#f5f5f5;border-radius:8px;margin-bottom:1.5rem;padding:1rem;text-align:center}.progress-bar{background-color:#e0e0e0;border-radius:4px;height:8px;margin-bottom:.75rem;overflow:hidden}.progress-fill{background-color:var(--primary-color);height:100%;transition:width .3s ease}.error-message{color:#c62828;margin-bottom:1.5rem;padding:1rem}.navbar{background-color:#fff;box-shadow:0 2px 4px #0000001a;justify-content:space-between;padding:.75rem 1.5rem;position:sticky;top:0;z-index:100}.navbar,.navbar-brand,.navbar-logo{align-items:center;display:flex}.navbar-logo{gap:.5rem;text-decoration:none}.logo-text{color:var(--primary-color);font-weight:700}.logo-icon,.logo-text{font-size:1.5rem}.navbar-menu{align-items:center;display:flex;gap:1.5rem}.navbar-welcome{margin-right:.5rem}.navbar-item,.navbar-welcome{color:var(--text-color);font-weight:500}.navbar-item{padding:.5rem;text-decoration:none;transition:color .2s}.navbar-item:hover{color:var(--primary-color)}.auth-buttons{display:flex;gap:1rem}.navbar-button{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.login-button{background-color:initial;border:1px solid var(--primary-color);color:var(--primary-color)}.login-button:hover{background-color:#4a6fa51a}.logout-button,.register-button{background-color:var(--primary-color);color:#fff}.logout-button:hover,.register-button:hover{background-color:var(--secondary-color)}@media screen and (max-width:768px){.navbar{padding:.75rem 1rem}.navbar,.navbar-menu{flex-direction:column;gap:1rem}.navbar-menu{align-items:flex-start;width:100%}.auth-buttons{width:100%}.navbar-button{text-align:center;width:100%}.navbar-welcome{margin-bottom:.5rem;margin-right:0}}@media screen and (min-width:769px){.navbar,.navbar-menu{flex-direction:row}.navbar-menu{align-items:center;width:auto}.auth-buttons,.navbar-button{width:auto}}:root{--primary-color:#4a6fa5;--secondary-color:#3b5683;--success-color:#2e7d32;--error-color:#d32f2f;--text-color:#333;--light-text:#757575;--card-bg:#fff;--border-color:#e0e0e0;--bg-color:#f8f9fa;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f8f9fa;background-color:var(--bg-color);color:#333;color:var(--text-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);line-height:1.5}a{color:#4a6fa5;color:var(--primary-color);text-decoration:none}button{cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family)}.app{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1 1;padding:2rem 0}.error-message{background-color:#ffebee;color:#d32f2f;color:var(--error-color)}.error-message,.success-message{border-radius:4px;margin-bottom:1rem;padding:.75rem 1rem}.success-message{background-color:#e8f5e9;color:#2e7d32;color:var(--success-color)}.loading{align-items:center;display:flex;justify-content:center;min-height:200px}.loading:after{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-top-color:#4a6fa5;border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);content:"";height:32px;width:32px}@keyframes spin{to{transform:rotate(1turn)}}.footer{background-color:#fff;box-shadow:0 -2px 4px #0000000d;color:#757575;color:var(--light-text);font-size:.9rem;padding:1.5rem 0;text-align:center}@media screen and (max-width:768px){.main-content{padding:1.5rem 0}}
/*# sourceMappingURL=main.193b314d.css.map*/