.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.login-card{background:#fff;border-radius:16px;padding:2.5rem;width:100%;max-width:400px;box-shadow:0 25px 50px -12px #00000040}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{font-size:2rem;color:var(--primary);margin-bottom:.5rem}.login-header p{color:var(--gray-500)}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--gray-700)}.error-message{background:#fef2f2;border:1px solid #fecaca;color:var(--danger);padding:.75rem 1rem;border-radius:8px;font-size:.875rem}.login-btn{width:100%;margin-top:.5rem}.practice-page{min-height:100vh;background:var(--gray-50)}.practice-content{max-width:1400px;margin:0 auto;padding:2rem}.session-progress{font-weight:500;color:var(--gray-700)}.loading-card,.error-card,.complete-card{background:#fff;border-radius:16px;padding:3rem;text-align:center;max-width:500px;margin:0 auto;box-shadow:0 1px 3px #0000001a}.complete-card h2{color:var(--success);margin-bottom:.5rem}.session-stats{display:flex;justify-content:center;gap:2rem;margin:1.5rem 0;font-size:1.125rem;color:var(--gray-700)}.practice-layout{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 1024px){.practice-layout{grid-template-columns:1fr 350px}}.question-panel{display:flex;flex-direction:column;gap:1rem}.concept-badge{background:var(--primary);color:#fff;padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;display:inline-block;align-self:flex-start}.question-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 1px 3px #0000001a}.question-card h2{font-size:1rem;color:var(--gray-500);margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.question-text{font-size:1.25rem;line-height:1.6;color:var(--gray-900);margin-bottom:2rem}.answer-form{display:flex;flex-direction:column;gap:1rem}.answer-input{font-size:1.125rem;padding:1rem}.answer-actions{display:flex;gap:1rem}.result-card{padding:1.5rem;border-radius:12px;text-align:center}.result-card.correct{background:#ecfdf5;border:1px solid #a7f3d0}.result-card.incorrect{background:#fef2f2;border:1px solid #fecaca}.result-card h3{font-size:1.25rem;margin-bottom:.5rem}.result-card.correct h3{color:var(--success)}.result-card.incorrect h3{color:var(--danger)}.xp-earned{color:var(--warning);font-weight:600;font-size:1.125rem;margin-top:.5rem}.result-actions{display:flex;justify-content:center;gap:1rem;margin-top:1rem}.tutor-panel{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;height:fit-content;max-height:600px}.tutor-panel h3{font-size:1rem;color:var(--gray-700);margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-200)}.tutor-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;padding:.5rem 0;min-height:200px;max-height:400px}.tutor-message{padding:.75rem 1rem;border-radius:12px;max-width:90%}.tutor-message.ai{background:var(--gray-100);align-self:flex-start}.tutor-message.student{background:var(--primary);color:#fff;align-self:flex-end}.message-sender{font-size:.75rem;font-weight:500;display:block;margin-bottom:.25rem;opacity:.7}.tutor-message p{font-size:.9rem;line-height:1.5}.typing{font-style:italic;opacity:.7}.tutor-form{display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--gray-200)}.tutor-form .input{flex:1;font-size:.9rem;padding:.5rem .75rem}.tutor-form .btn{padding:.5rem 1rem}.dashboard-content{max-width:1200px;margin:0 auto;padding:2rem}.user-name{font-weight:500;color:var(--gray-700)}.welcome-section{text-align:center;padding:3rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;color:#fff;margin-bottom:2rem}.welcome-section h2{font-size:2rem;margin-bottom:.5rem}.welcome-section p{opacity:.9;margin-bottom:1.5rem}.practice-btn{background:#fff;color:var(--primary);padding:1rem 2rem;font-size:1.125rem}.practice-btn:hover{background:var(--gray-100)}.stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:#fff;border-radius:12px;padding:1.5rem;text-align:center;box-shadow:0 1px 3px #0000001a}.stat-value{font-size:2.5rem;font-weight:700;color:var(--primary)}.stat-label{color:var(--gray-500);font-size:.875rem;margin-top:.25rem}.mastery-section h3{margin-bottom:1rem;font-size:1.25rem}.mastery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.mastery-card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000001a}.mastery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.lesson-number{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.verified-badge{background:var(--success);color:#fff;font-size:.625rem;padding:.125rem .5rem;border-radius:9999px;text-transform:uppercase;font-weight:600}.mastery-card h4{font-size:.95rem;margin-bottom:.75rem;color:var(--gray-900)}.mastery-card .progress-bar{margin-bottom:.5rem}.mastery-stats{display:flex;justify-content:space-between;font-size:.75rem;color:var(--gray-500)}.teacher-dashboard{min-height:100vh;background:var(--gray-50)}.teacher-content{max-width:1200px;margin:0 auto;padding:2rem}.tab-nav{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid var(--gray-200);padding-bottom:.5rem}.tab-btn{padding:.75rem 1.5rem;border:none;background:transparent;color:var(--gray-500);font-weight:500;font-size:1rem;border-radius:8px 8px 0 0;transition:all .2s}.tab-btn:hover{color:var(--gray-700);background:var(--gray-100)}.tab-btn.active{color:var(--primary);background:#fff;box-shadow:0 -2px 0 var(--primary) inset}.loading-state{text-align:center;padding:3rem;color:var(--gray-500)}.students-tab h2,.tests-tab h2{margin-bottom:1.5rem}.students-table,.tests-table{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000001a}table{width:100%;border-collapse:collapse}th{text-align:left;padding:1rem;background:var(--gray-50);font-weight:600;font-size:.875rem;color:var(--gray-700);border-bottom:1px solid var(--gray-200)}td{padding:1rem;border-bottom:1px solid var(--gray-100)}tr:last-child td{border-bottom:none}tr:hover{background:var(--gray-50)}.student-name{display:flex;align-items:center;gap:.75rem}.student-name .xp-badge{font-size:.75rem;padding:.125rem .5rem}.accuracy{font-weight:600;padding:.25rem .5rem;border-radius:4px}.accuracy.high{color:var(--success);background:#ecfdf5}.accuracy.medium{color:var(--warning);background:#fffbeb}.accuracy.low{color:var(--danger);background:#fef2f2}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.graded{background:#ecfdf5;color:var(--success)}.status-badge.pending{background:#fffbeb;color:var(--warning)}.no-tests{text-align:center;padding:3rem;color:var(--gray-500);background:#fff;border-radius:12px}.app{min-height:100vh}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.25rem;color:var(--gray-500)}.card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;font-size:1rem;border:none;transition:all .2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--gray-100);color:var(--gray-700)}.btn-secondary:hover{background:var(--gray-200)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.input{width:100%;padding:.75rem 1rem;border:1px solid var(--gray-300);border-radius:8px;font-size:1rem;transition:border-color .2s}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.header{background:#fff;border-bottom:1px solid var(--gray-200);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.header h1{font-size:1.5rem;color:var(--primary)}.header-actions{display:flex;align-items:center;gap:1rem}.xp-badge{display:inline-flex;align-items:center;gap:.25rem;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;padding:.25rem .75rem;border-radius:9999px;font-weight:600;font-size:.875rem}.progress-bar{height:8px;background:var(--gray-200);border-radius:9999px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:9999px;transition:width .3s ease}.progress-bar-fill.low{background:var(--danger)}.progress-bar-fill.medium{background:var(--warning)}.progress-bar-fill.high{background:var(--success)}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #4f46e5;--primary-dark: #4338ca;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-500: #6b7280;--gray-700: #374151;--gray-900: #111827}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--gray-50);color:var(--gray-900);line-height:1.5}button{cursor:pointer;font-family:inherit}input,textarea{font-family:inherit}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
