@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;800&family=Open+Sans:wght@400;500;600&display=swap";@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Open+Sans:wght@400;500;600&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .25s}.navbar{width:100%;background-color:#2c3e50;color:#fff;padding:0;box-shadow:0 2px 4px #0000001a;position:sticky;top:0;z-index:100}.nav-container{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:1400px;margin:0 auto;padding:1rem 2rem}.nav-logo h2{margin:0;color:#fff;font-size:1.5rem;font-weight:700}.nav-menu{display:flex;gap:2rem}.nav-link{color:#fff;text-decoration:none;font-weight:500;font-size:1rem;padding:.5rem 1rem;border-radius:4px;transition:background-color .3s ease}.nav-link:hover{background-color:#34495e;text-decoration:none}.nav-link.active{background-color:#3498db}.user-info{color:#fff;font-size:.9rem;margin-right:1rem}.logout-btn{background-color:#e74c3c;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:1rem}.logout-btn:hover{background-color:#c0392b}@media (max-width: 768px){.nav-container{padding:1rem;flex-direction:column;gap:1rem}.nav-menu{gap:1rem}.nav-logo h2{font-size:1.25rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Open Sans,sans-serif;color:#1a1a40}.home-container{min-height:100vh;background:linear-gradient(180deg,#ffe8d6,#fff)}.home-nav{background:#fff;box-shadow:0 2px 10px #0000001a;padding:.6rem 0;position:sticky;top:0;z-index:100}.nav-content{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex;justify-content:space-between;align-items:center}.logo-section .school-logo{color:#ff6b35;font-size:1.6rem;font-weight:800;font-family:Poppins,sans-serif;margin:0}.school-tagline{color:#6b7280;font-size:.8rem;margin:0}.nav-links{display:flex;gap:1.5rem;align-items:center}.nav-link{color:#1a1a40;text-decoration:none;padding:.4rem .8rem;border-radius:25px;transition:all .3s ease;font-weight:500;position:relative}.nav-link:hover{color:#ff6b35}.nav-link:hover:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:80%;height:2px;background:#ff6b35;animation:underlineGrow .3s ease}@keyframes underlineGrow{0%{width:0}to{width:80%}}.signup-link{background:#ff6b35;color:#fff;border:2px solid #FF6B35}.signup-link:hover{background:transparent;color:#ff6b35}.signup-link:hover:after{display:none}.hero-section{padding:6rem 2rem 4rem;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;min-height:80vh;text-align:center}.hero-content{color:#1a1a40}.hero-title{font-size:3.5rem;font-weight:800;font-family:Poppins,sans-serif;line-height:1.1;margin-bottom:1rem}.highlight{background:linear-gradient(45deg,#ff6b35,#ff8e53);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 2s ease-in-out infinite alternate}@keyframes shimmer{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(10deg)}}.hero-subtitle{font-size:1.4rem;margin-bottom:1.5rem;color:#6b7280}.hero-description{font-size:1.1rem;line-height:1.6;margin-bottom:2rem;color:#6b7280}.tech-features{display:flex;justify-content:center;gap:2rem;margin:2rem 0;flex-wrap:wrap}.feature-item{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:#1a1a40;padding:.5rem 1rem;background:#ff6b351a;border-radius:25px;transition:all .3s ease}.feature-item:hover{background:#ff6b3533;transform:translateY(-2px)}.feature-icon{font-size:1.2rem}.hero-buttons{display:flex;gap:1rem}.btn{padding:1rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .3s ease;display:inline-block;text-align:center}.btn-primary{background:#ff6b35;color:#fff;box-shadow:0 4px 15px #ff6b354d;border:2px solid #FF6B35;border-radius:25px;font-family:Poppins,sans-serif}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff6b3566;background:transparent;color:#ff6b35}.btn-secondary{background:transparent;color:#ff6b35;border:2px solid #FF6B35;border-radius:25px;font-family:Poppins,sans-serif}.btn-secondary:hover{background:#ff6b35;color:#fff;transform:translateY(-2px)}.hero-image{display:flex;justify-content:center;align-items:center}.hero-illustration{font-size:4rem;text-align:center;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:3rem;border:1px solid rgba(255,255,255,.2)}.courses-section{background:#fff;padding:4rem 2rem;text-align:center}.courses-grid{display:flex;justify-content:center;gap:1rem;margin:2rem 0;flex-wrap:wrap}.course-btn{border:2px solid #FF6B35;background:transparent;color:#1a1a40;padding:.75rem 1.5rem;border-radius:25px;font-weight:600;font-family:Poppins,sans-serif;cursor:pointer;transition:all .3s ease;font-size:.95rem}.course-btn:hover,.course-btn.active{background:#ff6b35;color:#fff;transform:translateY(-2px);box-shadow:0 4px 15px #ff6b354d}.course-details{margin-top:3rem;max-width:600px;margin-left:auto;margin-right:auto}.course-info h3{color:#1a1a40;font-family:Poppins,sans-serif;font-weight:600;margin-bottom:1rem}.course-info p{color:#6b7280;line-height:1.6;margin-bottom:1rem}.course-features{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.course-tag{background:#ff6b351a;color:#ff6b35;padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.85rem}.features-section,.school-info-section,.how-it-works-section,.login-section{background:#fff;padding:4rem 2rem}.features-section{background:#f8f9fa}.section-content{max-width:1200px;margin:0 auto}.section-title{text-align:center;font-size:2.5rem;color:#1a1a40;font-family:Poppins,sans-serif;font-weight:800;margin-bottom:1rem}.section-subtitle{text-align:center;font-size:1.2rem;color:#6b7280;margin-bottom:3rem}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.feature-card{background:#fff;border-radius:12px;padding:2rem;text-align:center;box-shadow:0 4px 20px #0000001a;transition:transform .3s ease,box-shadow .3s ease}.feature-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #00000026}.feature-icon{font-size:3rem;margin-bottom:1rem}.feature-card h3{color:#333;font-size:1.5rem;margin-bottom:1rem}.feature-card ul{list-style:none;padding:0;margin:1.5rem 0;text-align:left}.feature-card li{color:#666;margin:.5rem 0;padding-left:1rem;position:relative}.feature-card li:before{content:"✓";position:absolute;left:0;color:#28a745;font-weight:700}.feature-btn{background:#ff6b35;color:#fff;padding:.75rem 1.5rem;border-radius:25px;text-decoration:none;font-weight:600;font-family:Poppins,sans-serif;transition:all .3s ease;display:inline-block;margin-top:1rem;border:2px solid #FF6B35}.feature-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #ff6b354d;background:transparent;color:#ff6b35}.school-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.info-card{text-align:center;padding:2rem}.info-icon{font-size:3rem;margin-bottom:1rem}.info-card h3{color:#333;font-size:1.5rem;margin-bottom:1rem}.info-card p{color:#666;line-height:1.6}.steps-container{display:flex;justify-content:space-between;gap:2rem}.step{flex:1;text-align:center;position:relative}.step:after{content:"→";position:absolute;right:-1rem;top:50%;transform:translateY(-50%);font-size:2rem;color:#007bff}.step:last-child:after{display:none}.step-number{width:60px;height:60px;border-radius:50%;background:linear-gradient(45deg,#007bff,#0056b3);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;margin:0 auto 1rem}.step-content h3{color:#333;margin-bottom:.5rem}.step-content p{color:#666}.login-section{background:#f8f9fa}.login-description{text-align:center;color:#666;font-size:1.1rem;margin-bottom:3rem}.login-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem}.login-card{background:#fff;border-radius:12px;padding:2rem;text-align:center;text-decoration:none;color:inherit;box-shadow:0 4px 20px #0000001a;transition:all .3s ease;border:3px solid transparent}.login-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #00000026;text-decoration:none;color:inherit}.teacher-login:hover{border-color:#007bff}.student-login:hover{border-color:#28a745}.parent-login:hover{border-color:#ffc107}.login-icon{font-size:3rem;margin-bottom:1rem}.login-card h3{color:#333;font-size:1.5rem;margin-bottom:1rem}.login-card p{color:#666;line-height:1.5}.home-footer{background:#333;color:#fff;padding:3rem 2rem 1rem}.footer-content{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}.footer-section h3,.footer-section h4{margin-bottom:1rem;color:#fff}.footer-section p{color:#ccc;line-height:1.5;margin:.5rem 0}.footer-section ul{list-style:none;padding:0}.footer-section ul li{margin:.5rem 0}.footer-section ul li a{color:#ccc;text-decoration:none;transition:color .3s ease}.footer-section ul li a:hover{color:#007bff}.footer-bottom{max-width:1200px;margin:2rem auto 0;padding-top:2rem;border-top:1px solid #555;text-align:center;color:#999}@media (max-width: 768px){.nav-content{padding:0 1rem;flex-direction:column;gap:1rem}.hero-section{grid-template-columns:1fr;gap:2rem;padding:2rem 1rem;text-align:center}.hero-title{font-size:2.5rem}.hero-buttons{justify-content:center;flex-wrap:wrap}.steps-container{flex-direction:column;text-align:center}.step:after{display:none}.features-grid,.school-info-grid,.login-options{grid-template-columns:1fr}.section-title{font-size:2rem}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width: 480px){.hero-title{font-size:2rem}.section-title{font-size:1.5rem}.feature-card,.info-card,.login-card{padding:1.5rem}}.dashboard-container{min-height:calc(100vh - 80px);width:100%;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem 1rem;display:flex;align-items:center;justify-content:center}.dashboard-content{width:100%;max-width:1400px;text-align:center;color:#fff}.dashboard-content h1{font-size:3rem;margin-bottom:1rem;font-weight:700}.subtitle{font-size:1.25rem;margin-bottom:3rem;opacity:.9}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-bottom:3rem}.feature-card{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:2rem;transition:transform .3s ease}.feature-card:hover{transform:translateY(-5px)}.feature-card h3{font-size:1.5rem;margin-bottom:1rem}.feature-card p{opacity:.9;line-height:1.6}.cta-section{margin-top:2rem}.cta-section p{font-size:1.25rem;margin-bottom:2rem}.cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn{padding:1rem 2rem;border:none;border-radius:6px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .3s ease;min-width:120px}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover{background-color:#0056b3;transform:translateY(-2px)}.btn-secondary{background-color:transparent;color:#fff;border:2px solid white}.btn-secondary:hover{background-color:#fff;color:#667eea;transform:translateY(-2px)}.dashboard-header{text-align:center;margin-bottom:2rem;color:#fff}.dashboard-header h1{font-size:2.5rem;margin-bottom:.5rem}.dashboard-header p{font-size:1.1rem;opacity:.9}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:3rem;max-width:1200px;margin-left:auto;margin-right:auto}.dashboard-card{background:#fffffff2;border-radius:12px;padding:1.5rem;text-align:center;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 4px 20px #0000001a}.dashboard-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #00000026}.dashboard-card h3{color:#333;font-size:1.3rem;margin-bottom:.75rem}.dashboard-card p{color:#666;margin-bottom:1.25rem;line-height:1.5}.card-btn{background-color:#007bff;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .3s ease;width:100%}.card-btn:hover{background-color:#0056b3}.dashboard-overview{background:#fffffff2;border-radius:12px;padding:2rem;max-width:1200px;margin:0 auto;box-shadow:0 4px 20px #0000001a}.dashboard-overview h3{color:#333;text-align:center;margin-bottom:1.5rem;font-size:1.5rem}.overview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.stat-item{text-align:center;padding:1rem;background:#f8f9fa;border-radius:8px;border-left:4px solid #007bff}.stat-number{display:block;font-size:2rem;font-weight:700;color:#007bff;margin-bottom:.5rem}.stat-label{display:block;font-size:.9rem;color:#666;font-weight:500}@media (max-width: 768px){.dashboard-container{padding:1rem}.dashboard-content h1,.dashboard-header h1{font-size:2rem}.features-grid,.dashboard-grid{grid-template-columns:1fr;gap:1rem}.feature-card,.dashboard-card,.dashboard-overview{padding:1.25rem}.overview-stats{grid-template-columns:repeat(2,1fr)}.cta-buttons{flex-direction:column;align-items:center}.child-info-card{margin-bottom:1.5rem}}.child-info-card{background:#fffffff2;border-radius:12px;padding:2rem;margin-bottom:2rem;max-width:1200px;margin-left:auto;margin-right:auto;box-shadow:0 4px 20px #0000001a}.child-info-card h3{color:#333;font-size:1.4rem;margin-bottom:1.5rem;text-align:center}.child-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.detail-item{background:#f8f9fa;padding:1rem;border-radius:8px;border-left:4px solid #007bff}.detail-item strong{color:#333;display:block;margin-bottom:.25rem;font-size:.9rem}.view-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;color:#fff}.view-header h2{margin:0}.assignment-create-container{padding:2rem;max-width:800px;margin:0 auto}.assignment-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 10px #0000001a}.assignment-form h2{color:#333;margin-bottom:1.5rem;text-align:center}.form-group textarea{resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.btn-save{padding:.75rem 1.5rem;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-save:hover{background-color:#218838}.assignment-list-container{padding:2rem;max-width:1200px;margin:0 auto}.btn-create{padding:.75rem 1.5rem;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500}.btn-create:hover{background-color:#0056b3}.assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.assignment-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s}.assignment-header h3{color:#333;margin:0;flex:1;margin-right:1rem}.status-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:uppercase}.status-active{background-color:#d4edda;color:#155724}.status-overdue{background-color:#f8d7da;color:#721c24}.status-completed{background-color:#cce7ff;color:#004085}.assignment-details{margin-bottom:1rem}.assignment-details p{margin:.5rem 0;color:#666}.subject{font-weight:500;color:#007bff}.due-date{font-weight:500}.assignment-stats{display:flex;gap:2rem;margin:1rem 0;padding:1rem;background-color:#f8f9fa;border-radius:4px}.stat{text-align:center}.stat-number{display:block;font-size:1.5rem;font-weight:700;color:#007bff}.stat-label{font-size:.875rem;color:#666}.assignment-actions button{flex:1;padding:.5rem;border:none;border-radius:4px;cursor:pointer;font-size:.875rem}.btn-edit{background-color:#ffc107;color:#212529}.btn-edit:hover{background-color:#e0a800}.btn-view{background-color:#17a2b8;color:#fff}.btn-view:hover{background-color:#138496}.btn-delete{background-color:#dc3545;color:#fff}.btn-delete:hover{background-color:#c82333}@media (max-width: 768px){.assignments-grid{grid-template-columns:1fr}.list-header{flex-direction:column;gap:1rem;align-items:stretch}.assignment-actions{flex-direction:column}}.assignment-create-wrapper{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#e6f0ff,#f1f5f9);padding:var(--space-6)}.assignment-create-container{max-width:900px;margin:0 auto}.form-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-8);padding:var(--space-6);background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200)}.header-content h1{margin:0 0 var(--space-2) 0;background:linear-gradient(135deg,var(--primary-blue) 0%,var(--primary-blue-dark) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-content p{margin:0;color:var(--gray-600)}.assignment-form-card{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--gray-200);overflow:hidden}.form-grid{padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-8)}.form-section{position:relative}.section-title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--gray-800);margin:0 0 var(--space-6) 0;padding-bottom:var(--space-3);border-bottom:2px solid var(--gray-200);position:relative}.section-title:after{content:"";position:absolute;bottom:-2px;left:0;width:60px;height:2px;background:linear-gradient(90deg,var(--primary-blue) 0%,var(--primary-blue-light) 100%)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.form-label{display:block;font-weight:var(--font-semibold);color:var(--gray-800);margin-bottom:var(--space-3);font-size:var(--text-base)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-4);border:2px solid var(--gray-300);border-radius:var(--radius-lg);font-size:var(--text-base);background:var(--white);transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 4px var(--accent-blue),var(--shadow-md);transform:translateY(-1px)}.form-input.error,.form-textarea.error,.form-select.error{border-color:var(--status-error);box-shadow:0 0 0 4px var(--status-error-bg)}.form-textarea{resize:vertical;line-height:1.6}.form-hint{font-size:var(--text-sm);color:var(--gray-500);margin-top:var(--space-2);font-style:italic}.form-error{color:var(--status-error);font-size:var(--text-sm);font-weight:var(--font-medium);margin-top:var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.form-error:before{content:"⚠️";font-size:var(--text-xs)}.checkbox-group{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.form-checkbox{width:20px;height:20px;accent-color:var(--primary-blue);cursor:pointer}.checkbox-label{font-weight:var(--font-medium);color:var(--gray-700);cursor:pointer;margin:0}.attachment-area{border:2px dashed var(--gray-300);border-radius:var(--radius-lg);transition:all var(--transition-base)}.attachment-area:hover{border-color:var(--primary-blue);background:var(--accent-blue-light)}.attachment-placeholder{padding:var(--space-8);text-align:center;color:var(--gray-500)}.attachment-icon{font-size:3rem;margin-bottom:var(--space-3);opacity:.6}.link-button{background:none;border:none;color:var(--primary-blue);text-decoration:underline;cursor:pointer;font-weight:var(--font-medium);padding:0}.link-button:hover{color:var(--primary-blue-dark)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-4);padding:var(--space-6) var(--space-8);background:linear-gradient(135deg,var(--gray-50) 0%,var(--accent-blue-light) 100%);border-top:1px solid var(--gray-200);margin:0 -2rem -2rem;margin-top:var(--space-6)}.loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--white);border-radius:50%;border-top-color:transparent;animation:spin 1s ease-in-out infinite;margin-right:var(--space-2)}.form-select[name=priority]{position:relative}.form-select[name=priority][value=high]{border-left:4px solid var(--status-error)}.form-select[name=priority][value=medium]{border-left:4px solid var(--status-warning)}.form-select[name=priority][value=low]{border-left:4px solid var(--status-success)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-lg);min-height:52px;font-weight:var(--font-semibold)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.form-section:not(:last-child):after{content:"";display:block;width:60px;height:2px;background:linear-gradient(90deg,var(--gray-300) 0%,transparent 100%);margin:var(--space-8) 0 0 0}@media (max-width: 768px){.assignment-create-wrapper{padding:var(--space-4)}.form-header{flex-direction:column;gap:var(--space-4);align-items:flex-start}.header-content h1{font-size:var(--text-2xl)}.form-row{grid-template-columns:1fr;gap:var(--space-4)}.form-grid{padding:var(--space-6)}.form-actions{flex-direction:column-reverse;margin:0 -1.5rem -1.5rem;padding:var(--space-6)}.form-actions .btn{width:100%}}@media (max-width: 480px){.section-title{font-size:var(--text-lg)}.attachment-placeholder{padding:var(--space-6)}.attachment-icon{font-size:2rem}}.form-input:focus+.form-hint,.form-textarea:focus+.form-hint,.form-select:focus+.form-hint{color:var(--primary-blue)}.form-success{background:var(--status-success-bg);border:1px solid var(--status-success);color:var(--status-success);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-6);display:flex;align-items:center;gap:var(--space-2)}.form-success:before{content:"✅"}.form-section{position:relative;background:linear-gradient(135deg,transparent 0%,rgba(37,99,235,.02) 100%);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid transparent;transition:all var(--transition-base)}.form-section:hover{border-color:#2563eb1a;background:linear-gradient(135deg,transparent 0%,rgba(37,99,235,.05) 100%)}.form-group.valid .form-input,.form-group.valid .form-textarea,.form-group.valid .form-select{border-color:var(--status-success)}.form-group.valid:after{content:"✓";position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--status-success);font-weight:700}.communication-create-container{padding:2rem;max-width:900px;margin:0 auto}.communication-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 10px #0000001a}.communication-form h2{color:#333;margin-bottom:1.5rem;text-align:center}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;box-sizing:border-box}.form-group textarea{resize:vertical;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#28a745;box-shadow:0 0 0 2px #28a74540}.checkbox-group{display:flex;align-items:center;gap:.5rem}.checkbox-group input[type=checkbox]{width:auto;margin:0}.checkbox-group label{margin:0;font-weight:400;cursor:pointer}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.btn-cancel{padding:.75rem 1.5rem;background-color:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-cancel:hover{background-color:#545b62}.btn-send{padding:.75rem 1.5rem;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-send:hover{background-color:#218838}.communication-list-container{padding:2rem;max-width:1200px;margin:0 auto}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.list-header h2{color:#333;margin:0}.btn-send-new{padding:.75rem 1.5rem;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500}.btn-send-new:hover{background-color:#218838}.message-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s}.message-info{display:flex;align-items:flex-start;gap:.75rem}.recipient{color:#666;margin:0;font-size:.9rem}.priority-low{background-color:#d4edda;color:#155724}.status-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.status-delivered{background-color:#cce7ff;color:#004085}.status-read{background-color:#d4edda;color:#155724}.status-pending-ack{background-color:#fff3cd;color:#856404}.status-acknowledged{background-color:#d4edda;color:#155724}.message-preview{color:#666;line-height:1.5;margin:0}.message-meta{display:flex;gap:1rem;margin:1rem 0;font-size:.875rem;color:#666}.acknowledgment-required{color:#28a745;font-weight:500}.btn-view-message{background-color:#17a2b8;color:#fff}.btn-view-message:hover{background-color:#138496}.btn-remind{background-color:#ffc107;color:#212529}.btn-remind:hover{background-color:#e0a800}.btn-reply{background-color:#28a745;color:#fff}.btn-reply:hover{background-color:#218838}.loading-text,.no-users-text{font-size:.8rem;color:#666;margin-top:5px;font-style:italic}.loading-spinner{display:inline-block;width:12px;height:12px;border:2px solid #ffffff;border-radius:50%;border-top-color:transparent;animation:spin 1s linear infinite;margin-right:5px}@keyframes spin{to{transform:rotate(360deg)}}.char-counter{text-align:right;font-size:.8rem;color:#666;margin-top:5px}.checkbox-group small{display:block;color:#666;font-size:.8rem;margin-top:2px}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.message-header{flex-direction:column;gap:1rem}.message-status{align-items:flex-start;flex-direction:row}.message-meta{flex-direction:column;gap:.5rem}.message-actions{flex-direction:column}}.message-inbox-container{padding:20px;max-width:1200px;margin:0 auto}.inbox-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #e0e0e0}.header-content{display:flex;align-items:center;gap:15px}.unread-badge{background-color:#dc3545;color:#fff;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:700}.btn-compose{background-color:#007bff;color:#fff;border:none;padding:10px 20px;border-radius:5px;cursor:pointer}.btn-compose:hover{background-color:#0056b3}.loading{text-align:center;padding:40px;color:#666}.teacher-dashboard{display:flex;min-height:100vh;background-color:#f5f7fa;font-family:Open Sans,sans-serif}.teacher-profile{display:flex;align-items:center;gap:1rem}.profile-avatar{width:60px;height:60px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center}.dashboard-content,.view-content{padding:2rem;max-width:1200px}.content-header{margin-bottom:2rem;display:flex;justify-content:space-between;align-items:flex-start}.dashboard-sections{display:grid;gap:2rem}.btn-primary{background-color:#2563eb;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;font-family:Open Sans,sans-serif}.btn-primary:hover{background-color:#1d4ed8;transform:translateY(-1px)}.status-pending{background-color:#fef3c7;color:#d97706}.status-submitted{background-color:#d1fae5;color:#047857}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.quick-actions .btn-primary,.quick-actions .btn-secondary{padding:1rem;justify-self:stretch;text-align:center}@media (max-width: 1024px){.teacher-dashboard{flex-direction:column}.sidebar{width:100%;position:relative}.sidebar-nav{display:flex;overflow-x:auto;padding:0}.nav-item{flex-shrink:0;border-right:none;border-bottom:3px solid transparent}.nav-item.active{border-right:none;border-bottom-color:#2563eb}}@media (max-width: 768px){.dashboard-content,.view-content{padding:1rem}.content-header{flex-direction:column;align-items:stretch;gap:1rem}.content-header h1{font-size:1.5rem}.quick-actions{grid-template-columns:1fr}.assignments-table{font-size:.75rem}.assignments-table th,.assignments-table td{padding:.5rem}}.parent-view-container{padding:2rem;max-width:1400px;margin:0 auto;width:100%}.view-header{display:flex;align-items:center;margin-bottom:2rem;gap:1rem}.view-header h2{color:#333;margin:0}.btn-back{padding:.5rem 1rem;background-color:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-back:hover{background-color:#545b62}.assignments-overview,.messages-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.overview-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;text-align:center}.overview-card h3{font-size:2rem;margin:0 0 .5rem;font-weight:700}.overview-card p{margin:0;color:#666;font-size:.9rem}.overview-card.pending h3{color:#ffc107}.overview-card.completed h3{color:#28a745}.overview-card.overdue h3{color:#dc3545}.overview-card.urgent h3{color:#fd7e14}.overview-card.total h3{color:#6c757d}.overview-card.grade h3{color:#007bff}.overview-card.unread h3{color:#17a2b8}.overview-card.acknowledged h3{color:#28a745}.overview-card.response-needed h3{color:#fd7e14}.assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem}.assignment-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s;border-left:4px solid #ddd}.assignment-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.assignment-card.status-pending{border-left-color:#ffc107}.assignment-card.status-completed{border-left-color:#28a745}.assignment-card.status-overdue{border-left-color:#dc3545}.assignment-card.status-urgent{border-left-color:#fd7e14}.assignment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.assignment-info{display:flex;align-items:flex-start;gap:.75rem;flex:1}.subject-icon{font-size:1.5rem}.assignment-info h3{color:#333;margin:0 0 .25rem;font-size:1.1rem}.subject-teacher{color:#666;margin:0;font-size:.9rem}.due-info{text-align:right}.due-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;background-color:#f8f9fa;color:#495057;display:block;margin-bottom:.5rem}.status-info{display:flex;flex-direction:column;gap:.25rem}.submission-status{font-size:.8rem;color:#666}.grade{font-size:.9rem;font-weight:700;color:#007bff}.assignment-content{margin:1rem 0}.description{color:#666;line-height:1.5;margin-bottom:1rem}.assignment-details{font-size:.875rem;color:#666}.assignment-details p{margin:.25rem 0}.teacher-feedback{background-color:#f8f9fa;padding:1rem;border-radius:4px;border-left:3px solid #007bff;margin-top:1rem}.teacher-feedback strong{color:#333;display:block;margin-bottom:.5rem}.teacher-feedback p{color:#666;margin:0;font-style:italic}.assignment-actions{display:flex;gap:.5rem;margin-top:1rem}.assignment-actions button{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;flex:1}.btn-view-details{background-color:#17a2b8;color:#fff}.btn-view-details:hover{background-color:#138496}.btn-contact-teacher{background-color:#007bff;color:#fff}.btn-contact-teacher:hover{background-color:#0056b3}.messages-list{display:flex;flex-direction:column;gap:1rem}.message-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s;border-left:4px solid #ddd}.message-card.unread{border-left-color:#007bff;background-color:#f8f9ff}.message-card.requires-acknowledgment{border-left-color:#fd7e14;background-color:#fff8f3}.message-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.message-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.message-info{display:flex;align-items:flex-start;gap:.75rem;flex:1}.message-icon{font-size:1.5rem}.message-details h3{color:#333;margin:0 0 .25rem;font-size:1.1rem}.sender{color:#666;margin:0 0 .25rem;font-size:.9rem}.date{color:#888;margin:0;font-size:.8rem}.message-status{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.priority-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:uppercase}.priority-normal{background-color:#cce7ff;color:#004085}.priority-high{background-color:#fff3cd;color:#856404}.priority-urgent{background-color:#f8d7da;color:#721c24}.unread-badge{background-color:#007bff;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.acknowledgment-badge{background-color:#fd7e14;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.acknowledged-badge{background-color:#28a745;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.message-content{margin:1rem 0}.message-text{color:#666;line-height:1.5;margin:0 0 1rem}.acknowledgment-section{background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;padding:1rem;margin-top:1rem}.acknowledgment-section h4{color:#856404;margin:0 0 .5rem;font-size:.95rem}.acknowledgment-section p{color:#856404;margin:0 0 1rem;font-size:.9rem}.message-actions{display:flex;gap:.5rem;margin-top:1rem}.message-actions button{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.875rem}.btn-acknowledge{background-color:#fd7e14;color:#fff;flex:1}.btn-acknowledge:hover{background-color:#e8690b}.btn-acknowledge:disabled{background-color:#28a745;cursor:not-allowed}.btn-reply{background-color:#007bff;color:#fff;flex:1}.btn-reply:hover{background-color:#0056b3}.btn-mark-read{background-color:#17a2b8;color:#fff}.btn-mark-read:hover{background-color:#138496}.btn-mark-read:disabled{background-color:#6c757d;cursor:not-allowed}.empty-state{text-align:center;padding:3rem;color:#666}.empty-state p{margin:.5rem 0}.progress-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.student-summary h3{color:#333;margin:0 0 .5rem;font-size:1.5rem}.student-summary p{color:#666;margin:.25rem 0}.overall-gpa{text-align:center}.gpa-display{display:flex;flex-direction:column;align-items:center}.gpa-number{font-size:3rem;font-weight:700;color:#007bff;line-height:1}.gpa-label{font-size:.9rem;color:#666;margin-top:.25rem}.progress-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem;margin-bottom:2rem}.subject-progress-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s}.subject-progress-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.subject-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.subject-info{display:flex;align-items:center;gap:.75rem}.subject-info h3{color:#333;margin:0 0 .25rem;font-size:1.1rem}.teacher-name{color:#666;margin:0;font-size:.9rem}.grade-display{text-align:right}.current-grade{font-size:1.5rem;font-weight:700;display:block}.percentage{font-size:.9rem;color:#666}.progress-bar{width:100%;height:8px;background-color:#e9ecef;border-radius:4px;overflow:hidden;margin:1rem 0}.progress-fill{height:100%;transition:width .3s ease}.subject-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;margin:1rem 0;font-size:.875rem}.stat-item{display:flex;justify-content:space-between;color:#666}.trend-improving{color:#28a745}.trend-declining{color:#dc3545}.trend-stable{color:#6c757d}.recent-scores{margin:1rem 0}.recent-scores strong{display:block;margin-bottom:.5rem;color:#333;font-size:.9rem}.scores-list{display:flex;gap:.5rem;flex-wrap:wrap}.score-badge{padding:.25rem .5rem;border-radius:12px;color:#fff;font-size:.8rem;font-weight:500}.upcoming-tests{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.upcoming-tests h3{color:#333;margin:0 0 1rem}.tests-list{display:flex;flex-direction:column;gap:.75rem}.test-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f8f9fa;border-radius:4px;border-left:3px solid #007bff}.test-info{display:flex;flex-direction:column;gap:.25rem}.test-subject{font-weight:500;color:#333}.test-type{font-size:.8rem;color:#666}.test-date{font-weight:500;color:#007bff}.calendar-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.calendar-controls{display:flex;gap:1rem}.month-selector,.year-selector{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.calendar-info p{color:#666;margin:0}.event-legend{display:flex;gap:2rem;margin-bottom:2rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#666}.legend-dot{width:12px;height:12px;border-radius:50%}.legend-dot.event-meeting{background-color:#007bff}.legend-dot.event-exam{background-color:#dc3545}.legend-dot.event-school{background-color:#28a745}.legend-dot.event-holiday{background-color:#6c757d}.legend-dot.event-academic{background-color:#fd7e14}.upcoming-events-section,.all-events-section{margin-bottom:2rem}.upcoming-events-section h3,.all-events-section h3{color:#333;margin-bottom:1rem}.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.calendar-event-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s;border-left:4px solid #ddd}.calendar-event-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.calendar-event-card.event-meeting{border-left-color:#007bff}.calendar-event-card.event-exam{border-left-color:#dc3545}.calendar-event-card.event-school{border-left-color:#28a745}.calendar-event-card.event-holiday{border-left-color:#6c757d}.calendar-event-card.event-academic{border-left-color:#fd7e14}.calendar-event-card.important{box-shadow:0 2px 12px #ffc1074d}.event-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.event-icon{font-size:1.5rem;margin-right:.75rem}.event-date-info h4{color:#333;margin:0 0 .25rem;font-size:1.1rem}.event-date,.event-time{color:#666;margin:.1rem 0;font-size:.9rem}.important-badge{background-color:#ffc107;color:#856404;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.event-details{margin:1rem 0}.event-description{color:#666;line-height:1.5;margin-bottom:.5rem}.event-location,.event-time{color:#666;font-size:.875rem;margin:.25rem 0}.event-actions{display:flex;gap:.5rem}.event-actions button{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;flex:1}.btn-event-details{background-color:#17a2b8;color:#fff}.btn-event-details:hover{background-color:#138496}.btn-add-calendar{background-color:#28a745;color:#fff}.btn-add-calendar:hover{background-color:#218838}.events-timeline{position:relative;padding-left:2rem}.events-timeline:before{content:"";position:absolute;left:1rem;top:0;bottom:0;width:2px;background-color:#e9ecef}.timeline-event{position:relative;padding:1rem 0 1rem 1rem;border-left:2px solid transparent}.timeline-marker{position:absolute;left:-8px;top:1.5rem;width:12px;height:12px;border-radius:50%;background-color:#007bff}.timeline-event.event-meeting .timeline-marker{background-color:#007bff}.timeline-event.event-exam .timeline-marker{background-color:#dc3545}.timeline-event.event-school .timeline-marker{background-color:#28a745}.timeline-event.event-holiday .timeline-marker{background-color:#6c757d}.timeline-event.event-academic .timeline-marker{background-color:#fd7e14}.timeline-content{background:#fff;padding:1rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.timeline-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.timeline-icon{font-size:1.2rem}.timeline-header h4{color:#333;margin:0;flex:1}.timeline-date{color:#666;font-size:.9rem}.timeline-description{color:#666;margin:.5rem 0;line-height:1.5}.timeline-location,.timeline-time{color:#666;font-size:.875rem;margin:.25rem 0}@media (max-width: 768px){.parent-view-container{padding:1rem}.assignments-grid,.subjects-grid,.events-grid{grid-template-columns:1fr}.assignment-header,.message-header,.subject-header{flex-direction:column;gap:1rem}.progress-header{flex-direction:column;gap:1rem;text-align:center}.calendar-header{flex-direction:column;gap:1rem}.event-legend{gap:1rem}.message-status,.due-info{align-items:flex-start;flex-direction:row;gap:.5rem}.assignment-actions,.message-actions,.event-actions{flex-direction:column}.assignments-overview,.messages-overview,.progress-overview{grid-template-columns:repeat(2,1fr)}.subject-stats{grid-template-columns:1fr}.test-item{flex-direction:column;align-items:flex-start;gap:.5rem}}.student-dashboard{display:flex;min-height:100vh;background-color:#f5f7fa;font-family:Open Sans,sans-serif}.sidebar{width:280px;background:#fff;border-right:1px solid #E5E7EB;box-shadow:0 1px 3px #0000001a;flex-shrink:0}.sidebar-header{padding:2rem 1.5rem 1.5rem;border-bottom:1px solid #F3F4F6}.student-profile{display:flex;align-items:center;gap:1rem}.profile-avatar{width:60px;height:60px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#2563eb,#1d4ed8);display:flex;align-items:center;justify-content:center}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-info h3{font-family:Poppins,sans-serif;font-weight:600;color:#1f2937;font-size:1.125rem;margin:0 0 .25rem}.profile-info p{color:#6b7280;font-size:.875rem;margin:0}.sidebar-nav{padding:1rem 0}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;color:#6b7280;text-decoration:none;font-weight:500;transition:all .2s ease;border-right:3px solid transparent}.nav-item:hover{background-color:#f9fafb;color:#374151}.nav-item.active{background-color:#e6f0ff;color:#2563eb;border-right-color:#2563eb}.nav-icon{font-size:1.25rem;width:24px;display:flex;justify-content:center}.nav-label{font-size:.9rem}.main-content{flex:1;overflow-y:auto}.dashboard-layout{display:grid;grid-template-columns:1fr 320px;gap:2rem;padding:2rem;max-width:1400px}.left-content{min-width:0}.dashboard-content,.view-content{display:flex;flex-direction:column;gap:2rem}.content-header{margin-bottom:1rem}.content-header h1{font-family:Poppins,sans-serif;font-weight:700;color:#1f2937;font-size:2rem;margin:0 0 .5rem}.content-header p{color:#6b7280;font-size:1rem;margin:0}.section-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;padding:1.5rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{font-family:Poppins,sans-serif;font-weight:600;color:#1f2937;font-size:1.25rem;margin:0}.btn-secondary{background-color:#f3f4f6;color:#374151;border:1px solid #D1D5DB;padding:.5rem 1rem;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;font-family:Open Sans,sans-serif}.btn-secondary:hover{background-color:#e5e7eb;transform:translateY(-1px)}.btn-back{background:none;border:none;color:#6b7280;font-size:.875rem;cursor:pointer;padding:.5rem;transition:color .2s ease}.btn-back:hover{color:#374151}.assignments-table{overflow-x:auto}.assignments-table table{width:100%;border-collapse:collapse}.assignments-table th{text-align:left;padding:.75rem 1rem;font-weight:600;color:#374151;border-bottom:1px solid #E5E7EB;font-size:.875rem}.assignments-table td{padding:1rem;border-bottom:1px solid #F3F4F6;color:#6b7280;font-size:.875rem}.assignments-table tbody tr:hover{background-color:#f9fafb}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.status-in-progress{background-color:#fef3c7;color:#d97706}.status-not-started{background-color:#fee2e2;color:#dc2626}.status-completed{background-color:#d1fae5;color:#047857}.announcements-list{display:grid;gap:1rem}.announcement-card{border:1px solid #E5E7EB;border-radius:8px;padding:1rem;background:#fafafa;transition:all .2s ease}.announcement-card:hover{border-color:#d1d5db;background:#f9fafb}.announcement-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.announcement-header h3{font-family:Poppins,sans-serif;font-weight:500;color:#1f2937;font-size:1rem;margin:0}.announcement-date{color:#6b7280;font-size:.75rem;font-weight:500}.announcement-card p{color:#4b5563;font-size:.875rem;line-height:1.5;margin:0}.right-progress{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;padding:1.5rem;height:fit-content;position:sticky;top:2rem}.progress-panel h2{font-family:Poppins,sans-serif;font-weight:600;color:#1f2937;font-size:1.25rem;margin:0 0 1.5rem}.progress-list{display:flex;flex-direction:column;gap:1.5rem}.progress-item{display:flex;flex-direction:column;gap:.5rem}.progress-info{display:flex;justify-content:space-between;align-items:center}.subject-name{font-weight:500;color:#374151;font-size:.875rem}.progress-percentage{font-weight:600;color:#2563eb;font-size:.875rem}.progress-bar{height:8px;background-color:#f3f4f6;border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .3s ease;background-color:#2563eb}@media (max-width: 1024px){.dashboard-layout{grid-template-columns:1fr;gap:1rem}.right-progress{position:static}}@media (max-width: 768px){.student-dashboard{flex-direction:column}.sidebar{width:100%;position:relative}.sidebar-nav{display:flex;overflow-x:auto;padding:0}.nav-item{flex-shrink:0;border-right:none;border-bottom:3px solid transparent}.nav-item.active{border-right:none;border-bottom-color:#2563eb}.dashboard-layout{padding:1rem}.content-header h1{font-size:1.5rem}.assignments-table{font-size:.75rem}.assignments-table th,.assignments-table td{padding:.5rem}.progress-list{gap:1rem}}.loading{display:flex;justify-content:center;align-items:center;padding:2rem;color:#6b7280}.error{background-color:#fee2e2;border:1px solid #FECACA;color:#dc2626;padding:1rem;border-radius:8px;margin:1rem 0}.main-content::-webkit-scrollbar{width:8px}.main-content::-webkit-scrollbar-track{background:#f3f4f6}.main-content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.main-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width: 1200px){.dashboard-layout{grid-template-columns:1fr 280px}}@media (max-width: 992px){.dashboard-layout{grid-template-columns:1fr}.progress-panel{max-width:none}.progress-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5;padding:20px}.login-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;width:100%;max-width:400px}.login-form h2{text-align:center;color:#333;margin-bottom:1.5rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.login-btn{width:100%;padding:.75rem;background-color:#007bff;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;margin-top:1rem}.login-btn:hover{background-color:#0056b3}.login-form p{text-align:center;margin-top:1rem;color:#666}.login-form a{color:#007bff;text-decoration:none}.error-message{background-color:#f8d7da;color:#721c24;padding:.75rem;border-radius:4px;margin-top:1rem;border:1px solid #f5c6cb}.signup-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5;padding:20px}.signup-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;width:100%;max-width:450px}.signup-form h2{text-align:center;color:#333;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:#555;font-weight:500}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:#28a745;box-shadow:0 0 0 2px #28a74540}.form-group input.error{border-color:#dc3545}.error{color:#dc3545;font-size:.875rem;margin-top:.25rem;display:block}.signup-btn{width:100%;padding:.75rem;background-color:#28a745;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;margin-top:1rem}.signup-btn:hover{background-color:#218838}.signup-form p{text-align:center;margin-top:1rem;color:#666}.signup-form a{color:#28a745;text-decoration:none}.signup-form a:hover{text-decoration:underline}:root{--primary-blue: #2563EB;--primary-blue-dark: #1D4ED8;--primary-blue-light: #3B82F6;--accent-blue: #E6F0FF;--accent-blue-light: #F0F7FF;--white: #FFFFFF;--gray-50: #F9FAFB;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-600: #4B5563;--gray-700: #374151;--gray-800: #1F2937;--gray-900: #111827;--status-success: #10B981;--status-success-bg: #D1FAE5;--status-warning: #F59E0B;--status-warning-bg: #FEF3C7;--status-error: #EF4444;--status-error-bg: #FEE2E2;--status-info: #3B82F6;--status-info-bg: #DBEAFE;--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading: "Poppins", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}body{font-family:var(--font-primary);color:var(--gray-700);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--gray-50)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-4xl{font-size:var(--text-4xl)}.font-light{font-weight:var(--font-light)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.font-heading{font-family:var(--font-heading)}.text-primary{color:var(--primary-blue)}.text-gray-500{color:var(--gray-500)}.text-gray-600{color:var(--gray-600)}.text-gray-700{color:var(--gray-700)}.text-gray-800{color:var(--gray-800)}.bg-white{background-color:var(--white)}.bg-gray-50{background-color:var(--gray-50)}.bg-primary{background-color:var(--primary-blue)}.card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);border:1px solid var(--gray-200);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-header{margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--gray-200)}.card-title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--gray-800);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);font-weight:var(--font-medium);font-size:var(--text-sm);line-height:1.25;text-decoration:none;cursor:pointer;transition:all var(--transition-base);border:1px solid transparent;min-height:40px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--primary-blue);color:var(--white);border-color:var(--primary-blue)}.btn-primary:hover:not(:disabled){background-color:var(--primary-blue-dark);border-color:var(--primary-blue-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--white);color:var(--gray-700);border-color:var(--gray-300)}.btn-secondary:hover:not(:disabled){background-color:var(--gray-50);border-color:var(--gray-400)}.btn-danger{background-color:var(--status-error);color:var(--white);border-color:var(--status-error)}.btn-success{background-color:var(--status-success);color:var(--white);border-color:var(--status-success)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-base);min-height:48px}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);min-height:32px}.form-group{margin-bottom:var(--space-6)}.form-label{display:block;font-weight:var(--font-medium);color:var(--gray-700);margin-bottom:var(--space-2);font-size:var(--text-sm)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--text-base);background-color:var(--white);transition:all var(--transition-base)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px var(--accent-blue)}.form-textarea{resize:vertical;min-height:120px}.form-error{color:var(--status-error);font-size:var(--text-sm);margin-top:var(--space-1)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.05em}.badge-success{background-color:var(--status-success-bg);color:var(--status-success)}.badge-warning{background-color:var(--status-warning-bg);color:var(--status-warning)}.badge-error{background-color:var(--status-error-bg);color:var(--status-error)}.badge-info{background-color:var(--status-info-bg);color:var(--status-info)}.badge-gray{background-color:var(--gray-100);color:var(--gray-600)}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-6)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}@media (max-width: 768px){.container{padding:0 var(--space-4)}}.App{min-height:100vh;width:100vw;display:flex;flex-direction:column;background-color:var(--gray-50)}.main-content{flex:1;width:100%;background-color:var(--gray-50)}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;font-family:var(--font-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--gray-50);overflow-x:hidden}#root{width:100%;min-height:100vh}.loading-container{display:flex;justify-content:center;align-items:center;height:100vh;background-color:var(--gray-50)}.loading-spinner{padding:var(--space-4);font-size:var(--text-lg);color:var(--gray-600);animation:pulse 2s ease-in-out infinite alternate}@keyframes pulse{0%{opacity:.6}to{opacity:1}}
