:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-page-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-branding-side{background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;padding:40px;color:#fff;text-align:center}.branding-content h2{font-size:40px;font-weight:700;margin-bottom:16px}.branding-content p{font-size:18px;opacity:.8;max-width:300px;margin:0 auto}.login-form-side{display:flex;align-items:center;justify-content:center;background:#121212}.login-card{background:#1e1e1e80;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:16px;border:1px solid rgba(255,255,255,.1);padding:40px;width:100%;max-width:400px;box-shadow:0 20px 40px #00000080}.login-header{text-align:center;margin-bottom:32px}.login-header h1{color:#fff;font-size:28px;font-weight:600;margin-bottom:8px}.login-footer{text-align:center;margin-top:32px;padding-top:0;border-top:none}.form-group input{background:transparent;border:none;border-bottom:1px solid #555;border-radius:0;padding:12px 4px;color:#fff;font-size:16px;transition:all .3s ease}.form-group input:focus{outline:none;border-bottom-color:#764ba2;box-shadow:0 4px 12px -6px #764ba2b3}@media (max-width: 800px){.login-page-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr;min-height:100vh}.login-branding-side{display:flex;min-height:200px;align-items:center;padding:20px}.branding-content h2{font-size:32px}.branding-content p{font-size:16px}.login-form-side{background:#121212;align-items:flex-start;padding:40px 20px}}.dashboard-container{min-height:100vh;background:#0f0f0f;color:#fff}.dashboard-header{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border-bottom:1px solid #333;padding:24px}.header-actions{display:flex;align-items:center;gap:24px}.streak-counter{text-align:center;padding:16px 20px;background:#1a1a1a;border-radius:12px;border:1px solid #333}.streak-number{font-size:24px;font-weight:700;color:#ff6b35;margin-bottom:4px}.streak-label{font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.5px}.dashboard-main{max-width:1200px;margin:0 auto;padding:32px 24px}.stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:40px}.stat-card{background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:24px;display:flex;align-items:center;gap:16px;transition:transform .2s,border-color .2s}.stat-card:hover{transform:translateY(-2px);border-color:#667eea}.stat-icon{font-size:32px}.stat-number{font-size:24px;font-weight:700;color:#fff;margin-bottom:4px}.stat-label{font-size:14px;color:#888}.lessons-section{margin-top:40px}.section-header{margin-bottom:24px}.section-header h2{font-size:24px;font-weight:700;margin-bottom:8px}.section-header p{color:#888;font-size:16px}.lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.lesson-card{background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:24px;text-decoration:none;color:inherit;transition:all .2s;display:block}.lesson-card:hover{transform:translateY(-4px);border-color:#667eea;box-shadow:0 8px 32px #667eea33}.lesson-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.lesson-header h3{font-size:18px;font-weight:600;color:#fff;margin:0;flex:1}.lesson-date{color:#888;font-size:12px;background:#2a2a2a;padding:4px 8px;border-radius:4px;margin-left:12px}.lesson-content{margin-bottom:20px}.lesson-summary{color:#ccc;font-size:14px;line-height:1.5;margin:0}.lesson-no-summary{color:#666;font-size:14px;font-style:italic;margin:0}.lesson-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #333}.lesson-materials{color:#888;font-size:12px}.lesson-arrow{color:#667eea;font-size:18px;font-weight:700}.empty-state p{color:#888;font-size:16px;max-width:400px;margin:0 auto}.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0f0f0f;color:#fff}.loading-spinner{width:40px;height:40px;border:3px solid #333;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.header-content{flex-direction:column;gap:20px;text-align:center}.header-actions{flex-direction:column;gap:16px}.stats-section,.lessons-grid{grid-template-columns:1fr}}.processing-indicator{display:flex;align-items:center;gap:10px;padding:1rem;background-color:#3a3a40;border:1px solid #555;border-radius:6px;margin:1rem 0;color:#f0f0f0;font-size:.9rem}.spinner{width:18px;height:18px;border:3px solid #777;border-top-color:#a9a9ff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.material-actions,.upload-form-row{display:flex;gap:10px;align-items:center}.upload-form-row input[type=file]{flex:1}.upload-form-row button{flex-shrink:0}@media (max-width: 600px){.material-actions,.upload-form-row{flex-direction:column;align-items:stretch}.material-actions .button-like,.material-actions .delete-button-small,.material-actions .summary-link{width:100%;text-align:center;padding:.75rem}}.modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-container{background:#2a2a2e;border:1px solid #333;border-radius:12px;width:90%;max-width:700px;box-shadow:0 10px 30px #00000080;animation:slide-down .3s ease-out;display:flex;flex-direction:column;max-height:90vh}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #3a3a3c;flex-shrink:0}.modal-header h2{margin:0;font-size:1.25rem;color:#fff}.modal-close-button{background:none;border:none;color:#888;font-size:2rem;line-height:1;cursor:pointer;padding:0;transition:color .2s}.modal-close-button:hover{color:#fff}.modal-body{padding:1.5rem;overflow-y:auto;flex-grow:1}@keyframes slide-down{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 768px){.modal-container{width:95%}.modal-header,.modal-body{padding:1rem}.modal-header h2{font-size:1.1rem}}.teacher-dashboard-container{min-height:100vh;background:#0f0f0f;color:#fff}.teacher-header{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border-bottom:1px solid #333;padding:24px}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.user-info h1{font-size:28px;font-weight:700;margin-bottom:4px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.user-info p{color:#888;font-size:16px}.logout-button{background:#333;border:1px solid #555;color:#fff;padding:10px 20px;border-radius:8px;cursor:pointer;transition:all .2s}.logout-button:hover{background:#444;border-color:#666}.teacher-nav{background:#1a1a1a;border-bottom:1px solid #333;padding:0 24px}.nav-content{max-width:1200px;margin:0 auto;display:flex;gap:8px}.nav-button{background:none;border:none;color:#888;padding:16px 20px;cursor:pointer;font-size:14px;font-weight:500;border-bottom:2px solid transparent;transition:all .2s}.nav-button:hover{color:#fff}.nav-button.active{color:#667eea;border-bottom-color:#667eea}.teacher-main{max-width:1200px;margin:0 auto;padding:32px 24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.section-header h2{font-size:24px;font-weight:700;color:#fff}.primary-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;padding:12px 20px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.primary-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea4d}.primary-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.student-card{background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:20px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;transition:all .2s}.student-card:hover{transform:translateY(-2px);border-color:#667eea}.student-card-main{display:flex;align-items:center;gap:16px}.student-avatar{width:48px;height:48px;background:#667eea;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0}.student-info h3{font-size:16px;font-weight:600;margin-bottom:4px;color:#fff}.student-email{color:#888;font-size:14px;margin-bottom:8px}.student-stats{display:flex;gap:12px;font-size:12px}.streak{color:#ff6b35}.lessons-count{color:#888}.student-card-actions{display:flex;flex-direction:column;gap:8px;width:auto;border-top:none;padding-top:0;margin-top:0;flex-shrink:0}.student-card-actions button{background:#333;border:1px solid #555;color:#ddd;padding:8px 16px;border-radius:6px;cursor:pointer;transition:background-color .2s;font-size:12px;white-space:nowrap}.student-card-actions button:hover{background-color:#444}.student-card-actions .archive-button{background-color:#422;border-color:#633}.student-card-actions .archive-button:hover{background-color:#533}.student-card.inactive{opacity:.6}.toggle-archive-button{margin-top:2rem;background:none;border:1px solid #444;color:#888;padding:10px 16px;border-radius:8px;cursor:pointer}.toggle-archive-button:hover{background:#2a2a2e;color:#fff}.empty-state{text-align:center;padding:60px 20px;background:#1a1a1a;border:1px solid #333;border-radius:12px}.empty-icon{font-size:48px;margin-bottom:16px}.empty-state h3{font-size:20px;margin-bottom:8px;color:#fff}.empty-state p{color:#888;font-size:16px;max-width:400px;margin:0 auto 24px}.modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#2a2a2e;border:1px solid #333;border-radius:12px;padding:24px 32px;width:90%;max-width:500px}.modal input,.modal select{width:100%;padding:10px;background:#1c1c1e;border:1px solid #444;border-radius:6px;color:#fff;margin-top:8px}.modal label{text-align:left;display:block}.header-stats{display:flex;gap:20px;flex-grow:1;justify-content:center}.header-stats .stat-card{background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:16px;text-align:left;min-width:150px;transition:all .2s}.header-stats .stat-card:hover{transform:translateY(-2px);border-color:#667eea}.header-stats .stat-number{font-size:24px;font-weight:700;color:#fff;display:block;margin-bottom:4px}.header-stats .stat-label{font-size:12px;color:#888;text-transform:uppercase}@media (max-width: 768px){.header-content{flex-direction:column;gap:16px;text-align:center}.header-stats{order:3;width:100%;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:12px}.header-stats .stat-card{flex:1 1 140px;padding:12px}.nav-content{flex-wrap:wrap}.section-header{flex-direction:column;gap:16px;align-items:flex-start}.stats-grid,.students-grid,.lessons-grid{grid-template-columns:1fr}.student-card{background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;transition:all .2s}.student-info{flex-grow:1}.student-card-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0;margin-left:auto}}.lessons-subsection{margin-top:2.5rem;width:100%}.lessons-subsection h3{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #3a3a3c}.list-card{list-style:none;padding:0;display:flex;flex-direction:column;gap:1rem}.list-card li{background-color:#2a2a2e;padding:1rem;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.list-card small{color:#8e8e93}.list-card.accordion li{padding:0;flex-direction:column;align-items:stretch;border:1px solid #3a3a3c}.accordion-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer;transition:background-color .2s ease}.accordion-header:hover{background-color:#3c3c43}.accordion-header span{font-weight:600}.accordion-content{padding:0 1rem 1rem;background-color:#1c1c1e;border-top:1px solid #3a3a3c}.accordion-content ul{list-style:none;padding:0}.lesson-item{padding:.75rem .5rem;border-bottom:1px solid #3a3a3c;font-size:.9rem}.lesson-item:last-child{border-bottom:none}.lesson-item strong{margin-right:1rem}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.overview-card{background-color:#1a1a1a;border:1px solid #333;border-radius:12px;padding:24px;display:flex;align-items:center;gap:20px;transition:transform .2s,border-color .2s}.overview-card:hover{transform:translateY(-4px);border-color:#667eea}.overview-card .card-icon{font-size:32px;background-color:#2a2a2e;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:50%}.overview-card .card-number{font-size:28px;font-weight:700;color:#fff;display:block;line-height:1.1}.overview-card .card-label{font-size:14px;color:#888}@media (max-width: 768px){.overview-grid{grid-template-columns:1fr}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.chatbot-container{width:90%;max-width:500px;height:80vh;max-height:700px;background-color:#2a2a2e;border:1px solid #444;border-radius:12px;box-shadow:0 10px 30px #00000080;display:flex;flex-direction:column;overflow:hidden}.chatbot-header{padding:1rem 1.5rem;border-bottom:1px solid #444;position:relative;flex-shrink:0}.chatbot-header h2{margin:0;color:#fff}.chatbot-header p{margin:5px 0 0;color:#a0a0a0;font-size:.9rem}.close-button{position:absolute;top:10px;right:15px;background:none;border:none;color:#a0a0a0;font-size:2rem;cursor:pointer}.chatbot-body{padding:1.5rem;display:flex;flex-direction:column;gap:1rem;flex-grow:1;overflow-y:auto;min-height:0}.chat-bubble-wrapper{display:flex;width:100%}.chat-bubble{max-width:80%;padding:.75rem 1rem;border-radius:18px;line-height:1.5}.chat-bubble p{margin:0;white-space:pre-wrap}.sender-label{display:block;font-size:.75rem;font-weight:700;margin-bottom:5px;opacity:.8}.chat-bubble-wrapper.ai{justify-content:flex-start}.chat-bubble-wrapper.ai .chat-bubble{background-color:#3e3e42;color:#f0f0f0;border-bottom-left-radius:4px}.chat-bubble-wrapper.user{justify-content:flex-end}.chat-bubble-wrapper.user .chat-bubble{background-color:#5a5aff;color:#fff;border-bottom-right-radius:4px}.chatbot-form{display:flex;padding:1rem;border-top:1px solid #444;gap:10px;flex-shrink:0}.chatbot-form input{flex-grow:1;padding:.75rem;border:1px solid #555;background-color:#333;color:#fff;border-radius:20px}.chatbot-form button{padding:.75rem 1.2rem;border-radius:20px;border:none;background-color:#5a5aff;color:#fff;cursor:pointer}.chatbot-form button:disabled{background-color:#333;cursor:not-allowed}.loading-dots span{opacity:0;animation:blink 1s infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%{opacity:0}50%{opacity:1}to{opacity:0}}.ai-message-content{display:flex;align-items:center;gap:15px}.play-button,.reveal-button{background:#5a5aff;color:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background-color .2s}.reveal-button{width:auto;border-radius:20px;padding:8px 15px;font-size:.8rem;gap:5px}.play-button:hover,.reveal-button:hover{background:#4a4ad8}.ai-message-content p{margin:0}.speaking-form{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;border-top:1px solid #444;min-height:94px;flex-shrink:0}.mic-button{background:#5a5aff;color:#fff;border:none;width:60px;height:60px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.mic-button:hover{background:#4a4ad8}.mic-button.recording{background:#ff4d4d;animation:pulse 1.5s infinite}.recording-status{color:#a0a0a0;font-size:.8rem;margin-top:10px;height:1em}@keyframes pulse{0%{box-shadow:0 0 #ff4d4db3}70%{box-shadow:0 0 0 10px #ff4d4d00}to{box-shadow:0 0 #ff4d4d00}}@media (max-width: 768px){.chatbot-container{width:100%;height:100dvh;max-width:100%;max-height:100%;border-radius:0}.chatbot-header,.chatbot-body{padding:1rem}.chat-bubble{max-width:90%}}@keyframes fadeInSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lesson-detail-container{padding:2rem;max-width:900px;margin:2rem auto;color:#f0f0f0;animation:fadeInSlideUp .5s ease-out forwards}.lesson-header{background:linear-gradient(135deg,#2a2a2e,#1a1a1a);border:1px solid #333;border-radius:12px;padding:2rem;margin-bottom:2.5rem;text-align:center}.lesson-header h1{font-size:2.5rem;margin:0;color:#fff}.lesson-header p{font-size:1rem;color:#a0a0a0;margin-top:.5rem}.ai-summary-section,.materials-section{margin-bottom:2.5rem}.ai-summary-section h2,.materials-section h2{font-size:1.5rem;color:#e0e0e0;border-bottom:1px solid #555;padding-bottom:.5rem;margin-bottom:1.5rem}.ai-summary-section p{line-height:1.6;color:silver}.materials-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.material-card{background-color:#2a2a2e;border:1px solid #444;border-radius:8px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}.material-card:hover{transform:translateY(-5px);box-shadow:0 8px 20px #0006}.card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:#333337;border-bottom:1px solid #444}.card-title{display:flex;align-items:center;gap:.75rem;font-weight:700;font-size:1.1rem}.icon-button{background:none;border:none;color:#a0a0a0;cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s,color .2s}.icon-button:hover{background-color:#4a4a50;color:#fff}.card-body{padding:1.5rem;flex-grow:1;display:flex;flex-direction:column;justify-content:center}.practice-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.practice-buttons button{background-color:#4a4a50;color:#f0f0f0;border:1px solid #666;padding:.75rem;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .2s,transform .1s;text-align:center}.practice-buttons button:hover{background-color:#5a5a60;border-color:#888;transform:scale(1.02)}.status-text{text-align:center;color:#a0a0a0;font-style:italic}.error-text{color:#ff8a8a;font-weight:700}.material-card.processing,.material-card.failed{opacity:.7;background-color:#252528}@media (max-width: 768px){.lesson-detail-container{padding:1rem;margin:1rem auto}.lesson-header h1{font-size:1.8rem}.materials-grid{grid-template-columns:1fr}}.back-link{display:inline-block;margin-bottom:2rem;color:#a0a0a0;text-decoration:none;font-weight:500;transition:color .2s}.back-link:hover{color:#fff}*{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:#0f0f0f;color:#fff;line-height:1.6}.App{min-height:100vh}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:18px;color:#888}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#1a1a1a}::-webkit-scrollbar-thumb{background:#333;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#444}@media (max-width: 768px){body{font-size:14px}}
