.layout{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--background-light);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow);position:sticky;top:0;z-index:100}.header-content{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.logo{display:flex;align-items:center;text-decoration:none;transition:opacity .2s}.logo:hover{opacity:.85}.nav{display:flex;gap:1.5rem;flex:1}.nav-link{color:var(--text-primary);font-weight:500;padding:.5rem 1rem;border-radius:.375rem;transition:background-color .2s}.nav-link:hover{background-color:#f3f4f6}.mobile-menu-toggle{display:none;background:none;border:none;font-size:1.75rem;color:var(--text-primary);cursor:pointer;padding:.5rem;line-height:1}.desktop-header-actions{display:flex;gap:1rem;align-items:center}.mobile-header-actions{display:none}.user-menu{display:flex;align-items:center;gap:.75rem}.user-name{font-weight:600;color:var(--text-primary)}.user-role{color:var(--text-secondary);font-size:.875rem}.student-switcher{position:relative}.active-student-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.5rem 1rem;border-radius:.5rem;font-weight:600;display:flex;align-items:center;gap:.5rem;cursor:pointer;border:none;transition:all .2s}.active-student-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px #667eea4d}.dropdown-arrow{font-size:.75rem;transition:transform .2s}.student-dropdown{position:absolute;top:100%;left:0;margin-top:.5rem;background:#fff;border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 4px 12px #0000001a;min-width:200px;z-index:1000}.student-option{width:100%;padding:.75rem 1rem;text-align:left;background:none;border:none;cursor:pointer;transition:background .2s;color:var(--text-primary);font-weight:500;display:flex;justify-content:space-between;align-items:center}.student-option:hover{background:#f3f4f6}.student-option.active{background:#e0e7ff;color:var(--primary-color)}.manage-students-link{display:block;padding:.75rem 1rem;color:var(--primary-color);font-weight:600;border-top:1px solid var(--border-color);text-decoration:none;transition:background .2s}.manage-students-link:hover{background:#f3f4f6}.btn-primary{background-color:var(--primary-color);color:#fff;padding:.5rem 1.5rem;border-radius:.375rem;font-weight:500;transition:background-color .2s;display:inline-block}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:transparent;color:var(--text-primary);padding:.5rem 1.5rem;border:1px solid var(--border-color);border-radius:.375rem;font-weight:500;transition:all .2s;display:inline-block}.btn-secondary:hover{background-color:#f3f4f6}.main-content{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:2rem}.footer{background:var(--background-light);border-top:1px solid var(--border-color);padding:2rem;color:var(--text-secondary)}.footer-content{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1rem}.footer-content p{margin:0;text-align:center}.footer-social{display:flex;gap:1rem}.social-link{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);text-decoration:none;padding:.5rem 1rem;border-radius:.5rem;transition:all .3s ease;font-size:.95rem;font-weight:500}.social-link:hover{background:linear-gradient(135deg,#fed3731a,#f152451a,#d92e7f1a,#9b36b71a,#515ecf1a);transform:translateY(-2px)}.instagram-link:hover{color:#e1306c}.social-link svg{width:20px;height:20px}.instagram-icon{transition:transform .3s ease}.instagram-link:hover .instagram-icon{transform:scale(1.1)}@media (max-width: 768px){.header-content{padding:.75rem 1rem}.mobile-menu-toggle{display:block}.desktop-header-actions{display:none}.nav{position:fixed;top:0;left:-100%;width:280px;height:100vh;background:var(--background-light);flex-direction:column;gap:0;padding:1rem 0;box-shadow:2px 0 8px #0000001a;transition:left .3s ease;overflow-y:auto;z-index:1000}.nav-open{left:0}.nav-link{padding:1rem 1.5rem;border-radius:0;border-bottom:1px solid var(--border-color)}.mobile-header-actions{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem 1.5rem 1rem;border-top:2px solid var(--border-color);margin-top:1rem}.mobile-user-info{display:flex;flex-direction:column;gap:.25rem;padding-bottom:.75rem}.main-content{padding:1rem}.footer{padding:1.5rem 1rem}.footer-content{gap:.75rem}.social-link{font-size:.875rem;padding:.5rem .75rem}.social-link svg{width:18px;height:18px}}.landing-page{width:100%;max-width:100%;margin:0;padding:0}.hero{background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);color:#fff;padding:6rem 2rem;text-align:center}.hero-content{max-width:900px;margin:0 auto}.hero-title{font-size:4rem;margin-bottom:1rem;font-weight:800;line-height:1.2}.gradient-text{background:linear-gradient(135deg,#fbbf24,#f59e0b,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 4px 12px rgba(0,0,0,.2)}.hero-tagline{font-size:1.75rem;margin-bottom:1.5rem;font-weight:600;opacity:.95}.hero-description{font-size:1.25rem;line-height:1.8;margin-bottom:2.5rem;opacity:.9;max-width:700px;margin-left:auto;margin-right:auto}.hero-actions{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}.btn-primary-large{background:#fff;color:#667eea;padding:1rem 2.5rem;border-radius:.75rem;font-size:1.125rem;font-weight:700;transition:all .3s;box-shadow:0 4px 12px #00000026;text-decoration:none;display:inline-block}.btn-primary-large:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0003}.btn-secondary-large{background:#fff3;color:#fff;padding:1rem 2.5rem;border-radius:.75rem;font-size:1.125rem;font-weight:700;transition:all .3s;border:2px solid white;text-decoration:none;display:inline-block}.btn-secondary-large:hover{background:#ffffff4d;transform:translateY(-2px)}.mission{padding:4rem 2rem;background:#f9fafb;text-align:center}.mission-content{max-width:800px;margin:0 auto}.mission h2{font-size:2.5rem;color:var(--text-primary);margin-bottom:1.5rem}.mission p{font-size:1.25rem;line-height:1.8;color:var(--text-secondary)}.features{padding:5rem 2rem;background:#fff}.features h2{font-size:2.5rem;text-align:center;color:var(--text-primary);margin-bottom:3rem}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:1200px;margin:0 auto}.feature-card{background:var(--background-light);padding:2rem;border-radius:1rem;border:2px solid var(--border-color);transition:all .3s;text-align:center}.feature-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001a;border-color:var(--primary-color)}.feature-icon{font-size:3.5rem;margin-bottom:1rem}.feature-card h3{font-size:1.5rem;color:var(--text-primary);margin-bottom:1rem}.feature-card p{color:var(--text-secondary);line-height:1.6;font-size:1rem}.support-section{padding:5rem 2rem;background:linear-gradient(135deg,#fef3c7,#fde68a)}.support-content{max-width:800px;margin:0 auto;text-align:center}.support-content h2{font-size:2.5rem;color:var(--text-primary);margin-bottom:1.5rem}.support-content>p{font-size:1.25rem;color:var(--text-secondary);margin-bottom:2rem}.support-list{text-align:left;max-width:600px;margin:2rem auto;list-style:none;padding:0}.support-list li{font-size:1.125rem;color:var(--text-primary);margin-bottom:1rem;padding-left:0}.btn-donate{background:#ef4444;color:#fff;padding:1.25rem 3rem;border-radius:.75rem;font-size:1.25rem;font-weight:700;transition:all .3s;box-shadow:0 4px 12px #ef44444d;text-decoration:none;display:inline-block;margin:2rem 0}.btn-donate:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 6px 20px #ef444466}.support-note{font-size:1rem;color:var(--text-secondary);font-style:italic;margin-top:1.5rem}.cta-section{padding:5rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center}.cta-content{max-width:800px;margin:0 auto}.cta-content h2{font-size:2.5rem;margin-bottom:1rem}.cta-content p{font-size:1.25rem;margin-bottom:2.5rem;opacity:.9}.cta-actions{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}@media (max-width: 768px){.hero{padding:4rem 1.5rem}.hero-title{font-size:2.5rem}.hero-tagline{font-size:1.25rem}.hero-description{font-size:1rem}.features h2,.mission h2,.support-content h2,.cta-content h2{font-size:2rem}.features-grid{grid-template-columns:1fr}.hero-actions,.cta-actions{flex-direction:column;align-items:stretch}.btn-primary-large,.btn-secondary-large{width:100%}}.coming-soon{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem;background:linear-gradient(135deg,#f0f9ff,#e0e7ff)}.coming-soon-content{max-width:800px;text-align:center}.coming-soon-icon{font-size:5rem;margin-bottom:1.5rem;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.coming-soon h1{font-size:3.5rem;color:var(--text-primary);margin-bottom:1rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.coming-soon-subtitle{font-size:1.5rem;color:var(--text-secondary);margin-bottom:3rem;line-height:1.6}.progress-section{background:#fff;padding:2.5rem;border-radius:1rem;box-shadow:0 4px 12px #0000001a;margin-bottom:2.5rem}.progress-section h2{font-size:2rem;color:var(--text-primary);margin-bottom:2rem}.features-list{display:flex;flex-direction:column;gap:1.25rem;text-align:left}.feature-item{display:flex;align-items:center;gap:1rem;font-size:1.125rem;color:var(--text-primary)}.check,.progress-icon{font-size:1.5rem;flex-shrink:0}.support-box{background:linear-gradient(135deg,#fef3c7,#fde68a);padding:2.5rem;border-radius:1rem;margin-bottom:2.5rem;border:3px solid #f59e0b}.support-box h2{font-size:2rem;color:var(--text-primary);margin-bottom:1rem}.support-box p{font-size:1.125rem;color:var(--text-secondary);margin-bottom:2rem;line-height:1.6}.btn-donate-large{background:#ef4444;color:#fff;padding:1.25rem 3rem;border-radius:.75rem;font-size:1.25rem;font-weight:700;transition:all .3s;box-shadow:0 4px 12px #ef44444d;text-decoration:none;display:inline-block}.btn-donate-large:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 6px 20px #ef444466}.notify-section{background:#fff;padding:2rem;border-radius:1rem;box-shadow:0 4px 12px #0000001a;margin-bottom:2rem}.notify-section h3{font-size:1.5rem;color:var(--text-primary);margin-bottom:.75rem}.notify-section p{font-size:1rem;color:var(--text-secondary);margin-bottom:1.5rem}.notify-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn-secondary{background:transparent;color:var(--primary-color);padding:.875rem 2rem;border:2px solid var(--primary-color);border-radius:.5rem;font-weight:600;transition:all .3s;text-decoration:none;display:inline-block}.btn-secondary:hover{background:var(--primary-color);color:#fff}.timeline{padding:1.5rem;background:#ffffffb3;border-radius:.75rem;border-left:4px solid var(--primary-color)}.timeline-text{font-size:1rem;color:var(--text-secondary);margin:0}@media (max-width: 768px){.coming-soon{padding:2rem 1rem}.coming-soon-icon{font-size:3.5rem}.coming-soon h1{font-size:2.5rem}.coming-soon-subtitle{font-size:1.125rem}.progress-section,.support-box,.notify-section{padding:1.5rem}.progress-section h2,.support-box h2{font-size:1.5rem}.feature-item{font-size:1rem}.btn-donate-large{width:100%;padding:1rem 2rem}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.auth-card{background:var(--background-light);padding:2.5rem;border-radius:.75rem;box-shadow:var(--shadow-lg);width:100%;max-width:450px}.auth-logo{display:flex;justify-content:center;margin-bottom:1.5rem}.auth-card h2{color:var(--text-primary);font-size:1.875rem;margin-bottom:.5rem;text-align:center}.auth-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:2rem}.role-selection{margin-bottom:2rem}.role-label{font-weight:500;color:var(--text-primary);margin-bottom:1rem;text-align:center}.role-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.role-card{padding:1.5rem;border:2px solid var(--border-color);border-radius:.75rem;text-align:center;cursor:pointer;transition:all .2s;background:#fff}.role-card:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.role-card.selected{border-color:var(--primary-color);background:#6366f10d;box-shadow:0 0 0 3px #6366f11a}.role-icon{font-size:2.5rem;margin-bottom:.5rem}.role-card h3{font-size:1.125rem;color:var(--text-primary);margin-bottom:.25rem}.role-card p{font-size:.875rem;color:var(--text-secondary);margin:0}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:var(--text-primary);font-weight:500;font-size:.875rem}.form-group input,.form-group textarea,.form-group select{padding:.75rem;border:1px solid var(--border-color);border-radius:.375rem;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-color)}.btn-full{width:100%;padding:.875rem;font-size:1rem}.error-message{background-color:#fee2e2;color:#991b1b;padding:.75rem;border-radius:.375rem;font-size:.875rem}.auth-footer{text-align:center;margin-top:1.5rem;color:var(--text-secondary)}.auth-footer a{color:var(--primary-color);font-weight:600}.demo-accounts{margin-top:2rem;padding:1rem;background-color:#f3f4f6;border-radius:.375rem;font-size:.875rem}.demo-title{font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.demo-accounts p{color:var(--text-secondary);margin:.25rem 0}.field-description{font-size:.875rem;color:var(--text-secondary);margin-bottom:.75rem;line-height:1.5}.checkbox-group{display:flex;flex-direction:column;gap:.75rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:.375rem;transition:background-color .2s}.checkbox-label:hover{background-color:#f9fafb}.checkbox-label input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.checkbox-label span{color:var(--text-primary);font-weight:500}.nested-field{margin-top:.75rem;padding-left:2rem}.nested-field input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.375rem;font-size:.875rem}.day-time-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border:1px solid var(--border-color);border-radius:.375rem;background:#f9fafb}.day-name{font-weight:500;color:var(--text-primary)}.time-input{padding:.5rem;border:1px solid var(--border-color);border-radius:.375rem;font-size:.875rem;min-width:120px}.repeat-row{display:flex;gap:1rem;align-items:center}.repeat-number{width:80px;padding:.75rem;border:1px solid var(--border-color);border-radius:.375rem;font-size:1rem}.repeat-unit{flex:1;padding:.75rem;border:1px solid var(--border-color);border-radius:.375rem;font-size:1rem}.days-selector{display:flex;gap:.5rem;margin-bottom:.5rem}.day-button{width:48px;height:48px;border:2px solid var(--border-color);border-radius:.5rem;background:#fff;color:var(--text-primary);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s}.day-button:hover{border-color:var(--primary-color);background:#f3f4f6}.day-button.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.recurrence-summary{margin-top:.75rem;padding:.75rem 1rem;background:#f0f9ff;border-left:3px solid var(--primary-color);color:var(--text-primary);font-size:.875rem;line-height:1.5;border-radius:.375rem}@media (max-width: 640px){.days-selector{gap:.25rem}.day-button{width:40px;height:40px;font-size:.875rem}}.day-time-group{display:flex;flex-direction:column;gap:.75rem}.day-time-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#f9fafb;border-radius:.5rem;gap:1rem}.day-time-row .checkbox-label{flex:1;margin:0;padding:0}.day-name{font-weight:500;min-width:100px}.time-input{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:.375rem;font-size:.875rem;min-width:120px;background:#fff}.time-input:focus{outline:none;border-color:var(--primary-color)}.star-rating{display:flex;gap:.25rem}.star{color:#d1d5db;transition:color .2s}.star.filled{color:#fbbf24}.star.interactive{cursor:pointer}.star.interactive:hover{color:#fbbf24}.star-rating.small .star{font-size:1rem}.star-rating.medium .star{font-size:1.25rem}.star-rating.large .star{font-size:2rem}.course-card{background:var(--background-light);border-radius:.75rem;overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.course-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.course-image{position:relative;width:100%;height:160px;overflow:hidden;background:#e5e7eb}.course-image img{width:100%;height:100%;object-fit:cover}.generated-image{width:100%;height:100%;position:relative}.category-icon-large{font-size:6rem;opacity:.95;animation:float 3s ease-in-out infinite;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.free-badge{position:absolute;top:.75rem;right:.75rem;background:var(--secondary-color);color:#fff;padding:.375rem .875rem;border-radius:1.5rem;font-size:.8125rem;font-weight:600;box-shadow:0 2px 4px #0003;z-index:2}.full-badge{position:absolute;bottom:.75rem;left:.75rem;right:.75rem;background:var(--danger-color);color:#fff;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:700;text-align:center;box-shadow:0 2px 8px #0000004d;z-index:2;text-transform:uppercase;letter-spacing:.5px}.spots-badge{position:absolute;bottom:.75rem;left:.75rem;right:.75rem;background:#f59e0b;color:#fff;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:700;text-align:center;box-shadow:0 2px 8px #0000004d;z-index:2}.course-content{padding:.875rem;display:flex;flex-direction:column;gap:.25rem}.course-category{color:var(--primary-color);font-size:.875rem;font-weight:600;text-transform:uppercase}.course-title{font-size:1.25rem;color:var(--text-primary);font-weight:600;line-height:1.4}.course-description{color:var(--text-secondary);font-size:.875rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-instructor{color:var(--text-secondary);font-size:.875rem;margin-top:.5rem}.course-footer{display:flex;justify-content:space-between;align-items:center;padding-top:.5rem;margin-top:.5rem;border-top:1px solid var(--border-color)}.course-rating{display:flex;align-items:center;gap:.5rem}.rating-count{color:var(--text-secondary);font-size:.875rem}.course-price{font-size:1.25rem;font-weight:700;color:var(--primary-color)}.marketplace{padding:2rem 0}.marketplace-header{text-align:center;margin-bottom:3rem}.marketplace-header h1{font-size:2.5rem;color:var(--text-primary);margin-bottom:.5rem}.marketplace-header .tagline{color:var(--primary-color);font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.marketplace-header .subtitle{color:var(--text-secondary);font-size:1rem}.marketplace-filters{margin-bottom:2rem;display:flex;flex-direction:column;gap:1.5rem}.search-bar input{width:100%;padding:.875rem 1.25rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;background:var(--background-light)}.search-bar input:focus{outline:none;border-color:var(--primary-color)}.category-filters{display:flex;gap:.75rem;flex-wrap:wrap}.category-btn{padding:.5rem 1.25rem;border:1px solid var(--border-color);border-radius:2rem;background:var(--background-light);color:var(--text-primary);font-weight:500;transition:all .2s}.category-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.category-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;align-items:start}.no-results{grid-column:1 / -1;text-align:center;padding:4rem 2rem;color:var(--text-secondary)}@media (max-width: 768px){.marketplace-header h1{font-size:2rem}.courses-grid{grid-template-columns:1fr}}.course-detail{max-width:1200px;margin:0 auto}.course-hero{display:grid;grid-template-columns:1fr 400px;gap:3rem;margin-bottom:3rem}.course-hero-content{display:flex;flex-direction:column;gap:1.5rem}.course-category-badge{display:inline-block;background:var(--primary-color);color:#fff;padding:.5rem 1rem;border-radius:2rem;font-size:.875rem;font-weight:600;text-transform:uppercase;width:fit-content}.course-hero h1{font-size:2.5rem;color:var(--text-primary);line-height:1.2}.course-lead{font-size:1.125rem;color:var(--text-secondary);line-height:1.6}.course-meta{display:flex;flex-direction:column;gap:.75rem}.meta-item{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary)}.schedule-details{flex-direction:column;align-items:flex-start;gap:.5rem}.schedule-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.schedule-day{background:#f3f4f6;padding:.375rem .75rem;border-radius:.375rem;font-size:.875rem;color:var(--text-primary);font-weight:500}.course-enroll-card{background:var(--background-light);padding:2rem;border-radius:.75rem;box-shadow:var(--shadow-lg);height:fit-content;position:sticky;top:100px}.enroll-price{font-size:2.5rem;font-weight:700;color:var(--primary-color);margin-bottom:1.5rem;text-align:center}.enrollment-status{margin-bottom:1.5rem}.enrollment-bar{height:8px;background:#e5e7eb;border-radius:1rem;overflow:hidden;margin-bottom:.5rem}.enrollment-fill{height:100%;background:var(--primary-color);transition:width .3s}.enrollment-text{font-size:.875rem;color:var(--text-secondary);text-align:center}.spots-warning{color:#f59e0b;font-weight:600}.enroll-features{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:.75rem}.feature{color:var(--text-secondary);font-size:.875rem}button:disabled{opacity:.6;cursor:not-allowed}.course-sections{display:flex;flex-direction:column;gap:3rem}.course-section h2{font-size:1.875rem;color:var(--text-primary);margin-bottom:1.5rem}.learning-objectives{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-bottom:1.5rem}.objective-item{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#f9fafb;border-radius:.5rem;transition:background-color .2s}.objective-item:hover{background:#f3f4f6}.objective-icon{color:var(--secondary-color);font-size:1.25rem;font-weight:700;flex-shrink:0}.objective-text{font-size:.95rem;color:var(--text-primary);line-height:1.5}.course-note{background:#eff6ff;border-left:4px solid var(--primary-color);padding:1rem 1.25rem;border-radius:.5rem;margin-top:1.5rem}.course-note p{margin:0;color:var(--text-primary);font-size:.95rem;line-height:1.6}.course-note strong{color:var(--primary-color)}.reviews-list{display:flex;flex-direction:column;gap:1.5rem}.review-item{padding:1.5rem;background:var(--background-light);border-radius:.5rem;border:1px solid var(--border-color)}.review-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.review-author{font-weight:600;color:var(--text-primary)}.review-date{color:var(--text-secondary);font-size:.875rem;margin-top:.25rem}.review-text{color:var(--text-secondary);line-height:1.6}.no-reviews{color:var(--text-secondary);text-align:center;padding:2rem}@media (max-width: 968px){.course-hero{grid-template-columns:1fr}.course-enroll-card{position:static}.course-hero h1{font-size:2rem}}.my-courses-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.my-courses h1{font-size:2rem;color:var(--text-primary);margin:0}.view-toggle{display:flex;gap:.5rem;background:#fff;padding:.25rem;border-radius:.5rem;box-shadow:var(--shadow)}.toggle-btn{padding:.5rem 1.25rem;background:transparent;border:none;border-radius:.375rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.toggle-btn:hover{background:#f3f4f6}.toggle-btn.active{background:var(--primary-color);color:#fff}.courses-list{display:flex;flex-direction:column;gap:1.5rem}.enrolled-course-card{background:var(--background-light);padding:2rem;border-radius:.75rem;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;gap:2rem}.course-info{flex:1}.course-info h3{font-size:1.5rem;color:var(--text-primary);margin-bottom:.5rem}.instructor{color:var(--text-secondary);margin-bottom:.5rem}.session-info{color:var(--text-secondary);font-size:.875rem;margin-bottom:1rem}.progress-section{display:flex;align-items:center;gap:1rem}.progress-bar{flex:1;height:8px;background:#e5e7eb;border-radius:1rem;overflow:hidden}.progress-fill{height:100%;background:var(--primary-color);transition:width .3s}.progress-text{color:var(--text-secondary);font-size:.875rem;white-space:nowrap}@media (max-width: 768px){.enrolled-course-card{flex-direction:column;align-items:stretch}}.student-homework{width:100%}.student-homework h2{font-size:1.75rem;color:var(--text-primary);margin-bottom:1.5rem}.homework-section{margin-bottom:2.5rem}.section-title{font-size:1.5rem;color:var(--text-primary);margin-bottom:1rem;font-weight:600}.homework-list{display:flex;flex-direction:column;gap:1.25rem}.homework-card{background:#fff;border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;transition:box-shadow .2s}.homework-card:hover{box-shadow:0 4px 12px #00000014}.homework-card.overdue{border-left:4px solid #dc2626}.homework-card.completed{background:#f9fafb;border-left:4px solid #10b981}.homework-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.homework-header h4{font-size:1.25rem;color:var(--text-primary);margin:0;flex:1}.due-badge{background:#fef3c7;color:#92400e;padding:.5rem .875rem;border-radius:.5rem;font-size:.875rem;font-weight:500;white-space:nowrap}.due-badge.overdue{background:#fee2e2;color:#991b1b}.due-badge.due-soon{background:#fed7aa;color:#9a3412}.submitted-badge{background:#d1fae5;color:#065f46;padding:.5rem .875rem;border-radius:.5rem;font-size:.875rem;font-weight:500;white-space:nowrap}.homework-description{color:var(--text-secondary);line-height:1.6;margin-bottom:1rem}.homework-meta{display:flex;gap:1.5rem;margin-bottom:1rem;font-size:.875rem;color:var(--text-secondary)}.submit-btn{margin-top:.5rem}.feedback-section{background:#f0fdf4;border:1px solid #86efac;border-radius:.5rem;padding:1rem;margin-bottom:1rem}.feedback-label{font-weight:600;color:var(--text-primary);margin-bottom:.5rem;font-size:.875rem}.feedback-text{color:var(--text-primary);line-height:1.6;margin:0}.pending-feedback{color:var(--text-secondary);font-style:italic;margin-bottom:1rem}.empty-state{text-align:center;color:var(--text-secondary);padding:2rem;font-size:1rem;background:#fff;border:1px dashed var(--border-color);border-radius:.75rem}@media (max-width: 768px){.homework-header{flex-direction:column;align-items:flex-start}.due-badge,.submitted-badge{align-self:flex-start}.homework-card{padding:1.25rem}}.student-resources{width:100%}.student-resources h2{font-size:1.75rem;color:var(--text-primary);margin-bottom:1.5rem}.info-banner{background:#dbeafe;border-left:4px solid #3b82f6;padding:1rem 1.25rem;border-radius:.5rem;margin-bottom:2rem;display:flex;align-items:flex-start;gap:.75rem}.resources-list{display:flex;flex-direction:column;gap:1rem}.resource-card{background:#fff;border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;display:flex;align-items:center;gap:1.25rem;transition:box-shadow .2s}.resource-card:hover{box-shadow:0 4px 12px #00000014}.resource-icon{font-size:2.5rem;flex-shrink:0}.resource-info{flex:1;min-width:0}.resource-info h3{font-size:1.125rem;color:var(--text-primary);margin:0 0 .5rem;word-break:break-word}.resource-meta{display:flex;gap:.5rem;color:var(--text-secondary);font-size:.875rem;flex-wrap:wrap}.resource-actions{display:flex;gap:.75rem;flex-shrink:0}.empty-state{text-align:center;color:var(--text-secondary);padding:3rem;font-size:1rem;background:#fff;border:1px dashed var(--border-color);border-radius:.75rem}@media (max-width: 768px){.resource-card{flex-direction:column;align-items:flex-start;padding:1.25rem}.resource-icon{font-size:2rem}.resource-actions{width:100%;flex-direction:column}.resource-actions button{width:100%}}.student-chat{width:100%}.student-chat h2{font-size:1.75rem;color:var(--text-primary);margin-bottom:1.5rem}.chat-container{background:#fff;border:1px solid var(--border-color);border-radius:.75rem;height:600px;display:flex;flex-direction:column;overflow:hidden}.chat-messages{flex:1;padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.empty-chat{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-style:italic}.chat-message{display:flex;flex-direction:column;max-width:70%;animation:slideIn .2s ease-out}.chat-message.own{align-self:flex-end;align-items:flex-end}.message-header{display:flex;gap:.5rem;align-items:center;margin-bottom:.25rem}.message-sender{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.message-time{font-size:.75rem;color:var(--text-secondary)}.message-content{background:#f3f4f6;padding:.875rem 1.125rem;border-radius:1rem;color:var(--text-primary);line-height:1.5;word-wrap:break-word;white-space:pre-wrap}.chat-message.own .message-content{background:var(--primary-color);color:#fff}.chat-input-container{display:flex;gap:1rem;padding:1.25rem;border-top:1px solid var(--border-color);background:#f9fafb}.chat-input{flex:1;padding:.875rem 1rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:.95rem;font-family:inherit;resize:none;transition:border-color .2s}.chat-input:disabled{background:#f3f4f6;cursor:not-allowed}.send-button{align-self:flex-end;min-width:100px}.chat-messages::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#a1a1a1}@media (max-width: 768px){.chat-container{height:500px}.chat-message{max-width:85%}.chat-input-container{flex-direction:column;padding:1rem}.send-button{width:100%;align-self:stretch}.chat-input{min-height:80px}}.modal-content.confirmation{max-width:400px;padding:3rem 2rem;text-align:center}.confirmation-icon{width:4rem;height:4rem;background:#10b981;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto 1.5rem}.homework-description{color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem}.submission-info{display:flex;gap:1.5rem;margin-bottom:1.5rem;padding:1rem;background:#f9fafb;border-radius:.5rem;font-size:.875rem;color:var(--text-secondary);flex-wrap:wrap}.submission-area,.form-group{margin-bottom:1.5rem}.text-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-family:inherit;font-size:.95rem;resize:vertical;transition:border-color .2s}.text-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e51a}.file-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:.95rem;cursor:pointer}.file-input::-webkit-file-upload-button{background:var(--primary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;font-weight:500;margin-right:1rem}.file-input::-webkit-file-upload-button:hover{background:#5b21b6}.file-selected{margin-top:.5rem;color:var(--text-secondary);font-size:.875rem}.checkmark-info{background:#f0fdf4;border:1px solid #86efac;border-radius:.5rem;padding:1.5rem;text-align:center}.checkmark-info p{margin:0;color:var(--text-primary);font-size:1rem}.info-banner{background:#dbeafe;border-left:4px solid #3b82f6;padding:1rem 1.25rem;border-radius:.5rem;display:flex;align-items:flex-start;gap:.75rem}.info-banner p{margin:0;color:var(--text-primary);font-size:.875rem;line-height:1.6}@media (max-width: 768px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-header,.modal-body,.modal-footer{padding:1.25rem}.submission-info{flex-direction:column;gap:.5rem}.modal-footer{flex-direction:column-reverse}.modal-footer button{width:100%}}.modal-content{background:var(--background-light);border-radius:.75rem;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-body h3{font-size:1.25rem;color:var(--text-primary);margin-bottom:.5rem}.homework-description{color:var(--text-secondary);line-height:1.6;margin-bottom:2rem}.details-section{margin-bottom:2rem}.details-section h4{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-label{font-size:.875rem;color:var(--text-secondary);font-weight:500}.info-value{font-size:.95rem;color:var(--text-primary)}.response-content{background:#fff;border:1px solid var(--border-color);border-radius:.5rem;padding:1.25rem;line-height:1.6;color:var(--text-primary);white-space:pre-wrap}.file-info{background:#fff;border:1px solid var(--border-color);border-radius:.5rem;padding:1rem 1.25rem;display:flex;align-items:center;gap:.75rem}.file-icon{font-size:1.5rem}.file-name{color:var(--text-primary);font-size:.95rem}.feedback-section{background:#f0fdf4;border:1px solid #86efac;border-radius:.5rem;padding:1.5rem;margin-bottom:0}.feedback-section h4{color:#065f46;margin-bottom:1rem}.feedback-content p{color:var(--text-primary);line-height:1.6;margin:0 0 .5rem}.feedback-date{font-size:.875rem;color:var(--text-secondary);font-style:italic}.pending-feedback-box{background:#fef3c7;border:1px solid #fbbf24;border-radius:.5rem;padding:1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.pending-icon{font-size:2rem}.pending-feedback-box p{margin:0;color:var(--text-primary);font-style:italic}@media (max-width: 768px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-header,.modal-body,.modal-footer{padding:1.25rem}.info-grid{grid-template-columns:1fr}.modal-footer button{width:100%}}.student-course-view{max-width:1200px;margin:0 auto;padding:2rem}.student-course-header{margin-bottom:2rem}.back-button{background:none;border:none;color:var(--primary-color);font-size:1rem;cursor:pointer;padding:.5rem 0;margin-bottom:1rem;font-weight:500;display:inline-block;transition:all .2s}.student-course-header h1{font-size:2rem;color:var(--text-primary);margin-bottom:.5rem}.course-instructor{color:var(--text-secondary);font-size:1rem}.tab-button{background:none;border:none;padding:1rem 1.5rem;font-size:1rem;font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;white-space:nowrap;position:relative}.tab-panel{background:var(--background-light);padding:2rem;border-radius:.75rem}.tab-panel h2{font-size:1.75rem;color:var(--text-primary);margin-bottom:1.5rem}.info-banner{background:#dbeafe;border-left:4px solid #3b82f6;padding:1rem 1.25rem;border-radius:.5rem;margin-bottom:1.5rem;display:flex;align-items:flex-start;gap:.75rem}.info-icon{font-size:1.25rem;flex-shrink:0}.info-banner p{margin:0;color:var(--text-primary);font-size:.95rem;line-height:1.6}.empty-state{text-align:center;color:var(--text-secondary);padding:3rem;font-size:1.125rem}@media (max-width: 768px){.student-course-view{padding:1rem}.course-tabs{gap:.25rem}.tab-button{padding:.75rem 1rem;font-size:.875rem}.tab-panel{padding:1.5rem}.tab-panel h2{font-size:1.5rem}}.manage-students{padding:2rem 0}.students-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.students-header h1{font-size:2rem;color:var(--text-primary)}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.student-card{background:var(--background-light);border:2px solid var(--border-color);border-radius:1rem;padding:1.5rem;transition:all .3s}.student-card.active{border-color:var(--primary-color);box-shadow:0 4px 12px #4f46e526}.student-info{display:flex;gap:1rem;margin-bottom:1.5rem}.student-avatar{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;flex-shrink:0}.student-details{flex:1}.student-details h3{font-size:1.25rem;color:var(--text-primary);margin-bottom:.25rem}.student-age{color:var(--text-secondary);font-size:.875rem;margin-bottom:.5rem}.student-profile{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.profile-badge{background:#e0e7ff;color:#4f46e5;padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:500}.student-courses{color:var(--text-secondary);font-size:.875rem}.active-badge{background:var(--primary-color);color:#fff;padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;font-weight:600}.btn-danger{color:var(--danger-color)!important;border-color:var(--danger-color)!important}.btn-danger:hover{background:var(--danger-color)!important;color:#fff!important}@media (max-width: 768px){.students-header{flex-direction:column;align-items:flex-start;gap:1rem}.students-grid{grid-template-columns:1fr}}.instructor-dashboard{max-width:1200px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.dashboard-header h1{font-size:2rem;color:var(--text-primary);margin-bottom:.5rem}.notification-alert{background:#fef3c7;color:#92400e;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;margin-top:.5rem;border-left:4px solid #f59e0b}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:3rem}.stat-card{background:var(--background-light);padding:2rem;border-radius:.75rem;box-shadow:var(--shadow);text-align:center}.stat-label{color:var(--text-secondary);font-size:.875rem}.dashboard-section{margin-bottom:3rem}.dashboard-section h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:1.5rem}.instructor-courses-list{display:flex;flex-direction:column;gap:1rem}.instructor-course-card{background:var(--background-light);padding:1.5rem;border-radius:.75rem;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center}.course-details h3{font-size:1.25rem;color:var(--text-primary);margin-bottom:.5rem}.course-stats{display:flex;gap:1.5rem;color:var(--text-secondary);font-size:.875rem}.full-indicator{color:var(--danger-color);font-weight:600}.course-actions{display:flex;gap:.75rem}.activity-list{background:var(--background-light);border-radius:.75rem;overflow:hidden;box-shadow:var(--shadow)}.activity-item{display:flex;align-items:center;gap:1rem;padding:1.25rem;border-bottom:1px solid var(--border-color);text-decoration:none;color:inherit;transition:all .2s;cursor:pointer}.activity-item:hover{background:#4f46e50d}.activity-item:last-child{border-bottom:none}.activity-icon{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border-radius:50%}.activity-content{flex:1}.activity-title{color:var(--text-primary);font-weight:500}.activity-subtitle,.activity-time{color:var(--text-secondary);font-size:.875rem;margin-top:.25rem}.requests-list{display:flex;flex-direction:column;gap:1rem}.request-item{background:var(--background-light);padding:1.5rem;border-radius:.75rem;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.request-info{flex:1}.request-student{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.request-course{color:var(--text-secondary);font-size:.875rem;margin-bottom:.5rem}.request-profile{display:flex;gap:.5rem;margin-bottom:.5rem}.profile-badge{display:inline-block;padding:.25rem .75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase}.request-time{color:var(--text-secondary);font-size:.875rem}.request-actions{display:flex;gap:.75rem}@media (max-width: 768px){.dashboard-header,.instructor-course-card{flex-direction:column;align-items:stretch;gap:1rem}.course-actions{justify-content:stretch}.course-actions button,.course-actions a{flex:1}}.manage-sessions{max-width:1200px;margin:0 auto;padding:2rem}.sessions-header{margin-bottom:2rem}.back-button{background:none;border:none;color:var(--primary-color);font-size:1rem;cursor:pointer;padding:.5rem 0;margin-bottom:.5rem;font-weight:500}.sessions-header h1{font-size:2rem;color:var(--text-primary);margin-bottom:.5rem}.course-title{color:var(--text-secondary);font-size:1.125rem}.sessions-info-banner{background:#fef3c7;border-left:4px solid #f59e0b;padding:1rem 1.25rem;border-radius:.5rem;margin-bottom:2rem}.sessions-info-banner p{margin:0;color:var(--text-primary);font-size:.95rem;line-height:1.6}.course-meeting-link-section{background:var(--background-light);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;margin-bottom:2rem}.course-meeting-link-section h3{font-size:1.25rem;color:var(--text-primary);margin-bottom:.5rem}.meeting-link-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:1rem}.meeting-link-edit{display:flex;flex-direction:column;gap:1rem}.meeting-link-input{padding:.75rem 1rem;border:2px solid var(--primary-color);border-radius:.5rem;font-size:1rem;font-family:inherit;width:100%}.meeting-link-input:focus{outline:none;box-shadow:0 0 0 3px #4f46e51a}.meeting-link-actions{display:flex;gap:.5rem}.meeting-link-display-section{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.meeting-link-value{flex:1;font-family:monospace;background:#eff6ff;padding:.75rem 1rem;border-radius:.5rem;color:var(--primary-color);word-break:break-all}.course-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.sessions-container{background:var(--background-light);border-radius:.75rem;padding:1.5rem;border:1px solid var(--border-color)}.sessions-container h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:1.5rem}.sessions-list{display:flex;flex-direction:column;gap:1rem}.session-item{display:flex;gap:1.5rem;padding:1.25rem;background:#fff;border-radius:.5rem;border:1px solid var(--border-color);transition:box-shadow .2s}.session-item:hover{box-shadow:0 2px 8px #00000014}.session-date-time{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:120px;padding:.75rem;background:#f9fafb;border-radius:.5rem}.session-date{font-weight:600;color:var(--text-primary);font-size:.95rem;text-align:center}.session-time{color:var(--text-secondary);font-size:.875rem;margin-top:.25rem}.session-attendees{color:var(--primary-color);font-size:.875rem;margin-top:.5rem;font-weight:500}.session-topic-area{flex:1;display:flex;align-items:center}.topic-display{display:flex;align-items:center;gap:1rem;width:100%}.topic-text{flex:1;font-size:1rem;color:var(--text-primary);font-weight:500}.topic-text.empty{color:var(--text-secondary);font-style:italic;font-weight:400}.topic-status{padding:.375rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:500;white-space:nowrap}.topic-status.set{background:#d1fae5;color:#065f46}.topic-status.pending{background:#fef3c7;color:#92400e}.topic-edit{display:flex;flex-direction:column;gap:1rem;width:100%}.edit-fields{display:flex;flex-direction:column;gap:.75rem;width:100%}.topic-input{padding:.75rem 1rem;border:2px solid var(--primary-color);border-radius:.5rem;font-size:1rem;font-family:inherit}.topic-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e51a}.topic-actions{display:flex;gap:.5rem}.topic-info{flex:1;display:flex;flex-direction:column;gap:.5rem}.meeting-link-display{font-size:.875rem;color:var(--primary-color);font-family:monospace;background:#eff6ff;padding:.5rem;border-radius:.375rem}.btn-sm{padding:.5rem 1rem;font-size:.875rem}@media (max-width: 768px){.manage-sessions{padding:1rem}.student-header{flex-direction:column;align-items:flex-start;gap:1rem}.session-item{flex-direction:column;gap:1rem}.session-date-time{width:100%}.topic-edit{flex-direction:column}.topic-actions{width:100%}.topic-actions button{flex:1}}.sessions-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.create-session-section{margin-bottom:2rem;text-align:right}.modal-content{background:var(--background-light);border-radius:.75rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:1.5rem;color:var(--text-primary);margin:0}.close-button{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s}.close-button:hover{background:#0000000d;color:var(--text-primary)}.modal-body{padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:500;color:var(--text-primary);margin-bottom:.5rem;font-size:.95rem}.form-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e51a}.form-hint{margin-top:.5rem;font-size:.875rem;color:var(--text-secondary)}.info-banner-modal{background:#dbeafe;border-left:4px solid #3b82f6;padding:1rem 1.25rem;border-radius:.5rem;display:flex;align-items:flex-start;gap:.75rem;margin-top:1.5rem}.info-banner-modal .info-icon{font-size:1.25rem;flex-shrink:0}.info-banner-modal p{margin:0;color:var(--text-primary);font-size:.875rem;line-height:1.6}.modal-footer{display:flex;gap:1rem;justify-content:flex-end;padding:1.5rem 2rem;border-top:1px solid var(--border-color)}.modal-footer button{min-width:120px}@media (max-width: 768px){.sessions-header-row{flex-direction:column;align-items:flex-start;gap:1rem}.sessions-header-row button{width:100%}.form-row{grid-template-columns:1fr}.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-header,.modal-body,.modal-footer{padding:1.25rem}.modal-footer{flex-direction:column-reverse}.modal-footer button{width:100%}}.header-actions{display:flex;gap:.75rem;align-items:center}.student-actions{display:flex;gap:.5rem}.modal-large{max-width:700px}.day-selector{display:flex;gap:.5rem;flex-wrap:wrap}.day-button{padding:.75rem 1.25rem;border:2px solid var(--border-color);background:#fff;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .2s;color:var(--text-primary);min-width:60px}.day-button:hover{border-color:var(--primary-color);background:#4f46e50d}.day-button.selected{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.schedule-preview{background:#f0fdf4;border:1px solid #86efac;border-radius:.5rem;padding:1.25rem;margin-top:1.5rem}.schedule-preview h4{font-size:1rem;color:var(--text-primary);margin:0 0 .75rem}.schedule-preview p{margin:.5rem 0;color:var(--text-primary);line-height:1.6}.preview-detail{font-size:.875rem;color:var(--text-secondary)}@media (max-width: 768px){.header-actions{flex-direction:column;width:100%}.header-actions button{width:100%}.student-actions{flex-direction:column;width:100%}.student-actions button{width:100%}.day-selector{justify-content:space-between}.day-button{flex:1;min-width:45px;padding:.75rem .5rem;font-size:.875rem}.modal-large{max-width:100%}}.course-students{padding:1rem 0}.course-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:var(--background-light);padding:1.5rem;border-radius:.75rem;border:1px solid var(--border-color);text-align:center}.stat-value{font-size:2.5rem;font-weight:700;color:var(--primary-color);margin-bottom:.5rem}.stat-label{color:var(--text-secondary);font-size:.95rem;font-weight:500}.students-section{margin-top:2rem}.students-header{margin-bottom:1.5rem}.students-header h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:1rem}.info-banner{background:#dbeafe;border-left:4px solid #3b82f6;padding:1rem 1.25rem;border-radius:.5rem}.info-banner p{margin:0;color:#1e40af;font-size:.95rem;line-height:1.6}.students-list{display:flex;flex-direction:column;gap:1rem}.student-card{background:var(--background-light);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;transition:box-shadow .2s}.student-card:hover{box-shadow:0 2px 8px #00000014}.student-info{flex:1}.student-name{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.student-profile{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.profile-badge{background:#dbeafe;color:#1e40af;padding:.25rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:500}.student-next-session{color:var(--primary-color);font-size:.875rem;margin-bottom:.5rem;font-weight:500}.student-progress{color:var(--text-secondary);font-size:.875rem}.student-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn-sm{padding:.5rem 1rem;font-size:.875rem;white-space:nowrap}@media (max-width: 768px){.student-card{flex-direction:column;align-items:flex-start}.student-actions{width:100%}.student-actions .btn-sm{flex:1}}.course-homework{padding:1rem 0}.homework-header{margin-bottom:1.5rem}.homework-header h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:1rem}.assignments-list{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.assignment-card{background:var(--background-light);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem}.assignment-info{flex:1}.assignment-info h3{font-size:1.125rem;color:var(--text-primary);margin-bottom:.5rem}.assignment-meta{display:flex;gap:1.5rem;color:var(--text-secondary);font-size:.875rem;margin-bottom:.75rem}.assignment-stats{display:flex;gap:1rem;flex-wrap:wrap}.stat{font-size:.875rem;padding:.375rem .75rem;border-radius:.375rem;background:#f3f4f6;color:var(--text-primary)}.stat.pending{background:#fef3c7;color:#92400e}.stat.complete{background:#d1fae5;color:#065f46}.assignment-actions{display:flex;gap:.5rem;flex-wrap:wrap}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:.75rem;padding:2rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto}.modal-content h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e51a}.form-group input.error,.form-group textarea.error{border-color:#dc2626}.error-message{color:#dc2626;font-size:.875rem;margin-top:.375rem;display:flex;align-items:center;gap:.25rem}.radio-group{display:flex;flex-direction:column;gap:.75rem}.radio-group label{display:flex;align-items:center;gap:.5rem;font-weight:400;cursor:pointer}.radio-group input[type=radio]{width:auto;cursor:pointer}.modal-actions{display:flex;gap:.75rem;margin-top:1.5rem;justify-content:flex-end}.submissions-header{margin-bottom:2rem}.submissions-header h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:.5rem}.due-date{color:var(--text-secondary);font-size:1rem}.submissions-list{display:flex;flex-direction:column;gap:1.5rem}.submission-card{background:var(--background-light);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem}.submission-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.submitted-date{color:var(--text-secondary);font-size:.875rem}.not-submitted{color:#92400e;font-size:.875rem;font-weight:500}.submission-content{margin-bottom:1.5rem}.file-submission{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9fafb;border-radius:.5rem}.text-submission{padding:1rem;background:#f9fafb;border-radius:.5rem;color:var(--text-primary);line-height:1.6}.feedback-section{display:flex;flex-direction:column;gap:.75rem}.feedback-section label{font-weight:500;color:var(--text-primary)}.feedback-section textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;font-family:inherit;resize:vertical}.feedback-section textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e51a}.feedback-section textarea:disabled{background-color:#f3f4f6;cursor:not-allowed}.feedback-actions{display:flex;align-items:center;gap:1rem}.feedback-confirmation{color:#065f46;background:#d1fae5;padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;font-weight:500;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.feedback-info{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-color)}.feedback-info small{color:var(--text-secondary);font-size:.75rem}@media (max-width: 768px){.assignment-card{flex-direction:column}.assignment-actions{width:100%}.assignment-actions .btn-sm{flex:1}.submission-header{flex-direction:column;align-items:flex-start;gap:.5rem}}.course-resources{padding:1rem 0}.resources-header{margin-bottom:1.5rem}.resources-header h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:1rem}.resources-list{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary);background:var(--background-light);border:1px dashed var(--border-color);border-radius:.75rem}.resource-card{background:var(--background-light);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem}.resource-info{flex:1;display:flex;gap:1rem;align-items:flex-start}.resource-icon{font-size:2rem;flex-shrink:0}.resource-details{flex:1;min-width:0}.resource-details h3{font-size:1.125rem;color:var(--text-primary);margin-bottom:.5rem;word-wrap:break-word}.resource-url{color:var(--primary-color);text-decoration:none;font-size:.875rem;word-break:break-all;display:block;margin-bottom:.5rem}.resource-url:hover{text-decoration:underline}.resource-meta{display:flex;gap:1rem;color:var(--text-secondary);font-size:.875rem;margin-bottom:.5rem;flex-wrap:wrap}.resource-stats{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.5rem}.added-date,.view-stats{font-size:.875rem;color:var(--text-secondary)}.view-stats{font-weight:500}.resource-actions{display:flex;gap:.5rem;flex-wrap:wrap;flex-shrink:0}.file-selected{margin-top:.5rem;padding:.5rem;background:#d1fae5;color:#065f46;border-radius:.375rem;font-size:.875rem}.info-text{margin-top:.5rem;font-size:.875rem;color:var(--text-secondary)}input[type=file]{padding:.5rem 0!important;border:none!important;background:transparent!important}input[type=file]:focus{box-shadow:none!important}input[type=file].error{color:#dc2626}@media (max-width: 768px){.resource-card{flex-direction:column}.resource-info,.resource-actions{width:100%}.resource-actions .btn-sm{flex:1}}.course-chat{padding:1rem 0;display:flex;flex-direction:column;height:calc(100vh - 300px);min-height:500px}.chat-header{margin-bottom:1.5rem}.chat-header h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:1rem}.back-button{background:none;border:none;color:var(--primary-color);font-size:1rem;font-weight:500;cursor:pointer;padding:.5rem 0;margin-bottom:.75rem;display:inline-flex;align-items:center;gap:.25rem;transition:opacity .2s}.back-button:hover{opacity:.8}.back-button:focus{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:.25rem}.chat-messages{flex:1;overflow-y:auto;padding:1.5rem;background:var(--background-light);border:1px solid var(--border-color);border-radius:.75rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:1rem}.no-messages{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-style:italic}.message{display:flex;flex-direction:column;max-width:70%;animation:slideIn .2s ease-out}.instructor-message{align-self:flex-end}.student-message{align-self:flex-start}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem;gap:.75rem}.sender-name{font-weight:600;font-size:.875rem}.instructor-message .sender-name{color:var(--primary-color)}.student-message .sender-name{color:var(--text-primary)}.message-time{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.message-content{padding:.875rem 1rem;border-radius:.75rem;line-height:1.5;word-wrap:break-word}.instructor-message .message-content{background:var(--primary-color);color:#fff;border-bottom-right-radius:.25rem}.student-message .message-content{background:#fff;color:var(--text-primary);border:1px solid var(--border-color);border-bottom-left-radius:.25rem}.chat-input-form{display:flex;gap:.75rem;align-items:center}.chat-input{flex:1;padding:.875rem 1rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;font-family:inherit;transition:border-color .2s}.chat-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e51a}.send-button{padding:.875rem 2rem;white-space:nowrap}.send-button:disabled{opacity:.5;cursor:not-allowed}.send-confirmation{position:fixed;bottom:2rem;right:2rem;background:#065f46;color:#fff;padding:.875rem 1.25rem;border-radius:.5rem;box-shadow:0 4px 12px #00000026;font-weight:500;animation:slideInUp .3s ease-out;z-index:100}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#94a3b8}.chat-thread-list{display:flex;flex-direction:column;gap:.75rem;padding:0}.no-threads{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--text-secondary);font-style:italic}.chat-thread-item{background:#fff;border:1px solid var(--border-color);border-radius:.75rem;padding:1.25rem;cursor:pointer;transition:all .2s}.chat-thread-item:hover{border-color:var(--primary-color);box-shadow:0 2px 8px #4f46e51a;transform:translateY(-1px)}.chat-thread-item:focus{outline:2px solid var(--primary-color);outline-offset:2px}.thread-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.thread-student-info{display:flex;align-items:center;gap:.75rem}.thread-icon{font-size:1.5rem}.thread-student-name{font-weight:600;font-size:1rem;color:var(--text-primary)}.unread-badge{background:#dc2626;color:#fff;padding:.25rem .625rem;border-radius:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.thread-preview{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.thread-last-message{flex:1;color:var(--text-secondary);font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread-time{color:var(--text-secondary);font-size:.75rem;white-space:nowrap}.thread-list-footer{margin-top:1.5rem;padding:1rem;text-align:center;color:var(--text-secondary);font-size:.875rem;font-style:italic}@media (max-width: 768px){.course-chat{height:calc(100vh - 250px);min-height:400px}.message{max-width:85%}.chat-input-form{flex-wrap:wrap}.chat-input{min-width:100%}.send-button{width:100%}.send-confirmation{bottom:1rem;right:1rem;left:1rem;text-align:center}.chat-thread-item{padding:1rem}.thread-preview{flex-direction:column;align-items:flex-start;gap:.25rem}}.manage-course{max-width:1200px;margin:0 auto;padding:2rem}.manage-course-header{margin-bottom:2rem}.back-button{background:none;border:none;color:var(--primary-color);font-size:1rem;cursor:pointer;padding:.5rem 0;margin-bottom:1rem;font-weight:500;display:inline-block}.back-button:hover{text-decoration:underline}.manage-course-header h1{font-size:2rem;color:var(--text-primary);margin-bottom:.5rem}.course-subtitle{color:var(--text-secondary);font-size:1rem}.course-tabs{display:flex;gap:.5rem;border-bottom:2px solid var(--border-color);margin-bottom:2rem;overflow-x:auto;flex-wrap:wrap}.tab-button{background:none;border:none;padding:1rem 1.5rem;font-size:1rem;font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;white-space:nowrap}.tab-button:hover{color:var(--primary-color);background:#4f46e50d}.tab-button.active{color:var(--primary-color);border-bottom-color:var(--primary-color);background:#4f46e50d}.tab-button{position:relative}.notification-badge{position:absolute;top:.5rem;right:.5rem;background:#dc2626;color:#fff;font-size:.75rem;font-weight:600;padding:.125rem .375rem;border-radius:.75rem;min-width:1.25rem;text-align:center;line-height:1.2}.tab-content{min-height:400px}@media (max-width: 768px){.manage-course{padding:1rem}.course-tabs{gap:.25rem}.tab-button{padding:.75rem 1rem;font-size:.875rem}}.student-profile{max-width:800px;margin:0 auto}.profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.profile-header h1{font-size:2rem;color:var(--text-primary);margin-bottom:.5rem}.profile-subtitle{color:var(--text-secondary);font-size:1rem}.profile-form{display:flex;flex-direction:column;gap:2rem}.profile-section{background:var(--background-light);padding:2rem;border-radius:.75rem;border:1px solid var(--border-color)}.profile-section h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:1rem}.section-description{color:var(--text-secondary);font-size:.95rem;line-height:1.6;margin-bottom:1.5rem;padding:1rem;background:#eff6ff;border-left:4px solid var(--primary-color);border-radius:.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}.form-group label{font-weight:500;color:var(--text-primary);font-size:.95rem}.form-group input,.form-group textarea{padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f11a}.form-group input:disabled,.form-group textarea:disabled{background:#f9fafb;color:var(--text-secondary);cursor:not-allowed}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:.5rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#fff;border:1px solid var(--border-color);border-radius:.5rem;cursor:pointer;transition:all .2s}.checkbox-label:hover{background:#f9fafb;border-color:var(--primary-color)}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed}.checkbox-label span{font-size:.95rem;color:var(--text-primary)}.profile-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem}.danger-zone{border-color:#fecaca;background:#fef2f2}.btn-danger{background:#ef4444;color:#fff;padding:.75rem 1.5rem;border-radius:.5rem;border:none;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-danger:hover{background:#dc2626}@media (max-width: 768px){.profile-header{flex-direction:column;align-items:flex-start;gap:1rem}.form-row,.checkbox-grid{grid-template-columns:1fr}.profile-actions{flex-direction:column}.profile-actions button{width:100%}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}:root{--primary-color: #4f46e5;--primary-hover: #4338ca;--secondary-color: #10b981;--danger-color: #ef4444;--text-primary: #1f2937;--text-secondary: #6b7280;--border-color: #e5e7eb;--background-light: #ffffff;--shadow: 0 1px 3px 0 rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1)}button{cursor:pointer;border:none;font-family:inherit}input,textarea,select{font-family:inherit}a{text-decoration:none;color:inherit}
