:root{--color-primary: #667eea;--color-accent: #764ba2;--gradient-brand: linear-gradient(135deg, #667eea, #764ba2);--color-error: #e53e3e;--color-success: #38a169;--color-warning: #dd6b20;--color-text: #333;--color-text-secondary: #666;--color-text-muted: #999;--color-border: #e2e8f0;--color-bg: #f5f5f5;--color-bg-tinted: #f8f9ff;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--content-max-width: 600px;--font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg)}.app{display:flex;flex-direction:column;height:100vh;max-width:800px;margin:0 auto;background:#fff;box-shadow:0 0 20px #0000001a}.nav-bar{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid #e0e0e0;background:#fff;min-height:44px;gap:8px}.nav-home-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;border-radius:8px;color:#555;cursor:pointer;flex-shrink:0;transition:all .2s}.nav-home-btn:hover{background:#f0f0f0;color:#333}.nav-center{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font-size:.95rem;font-weight:600;background:linear-gradient(90deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-logo{flex-shrink:0}.nav-breadcrumb{font-size:.8rem;color:#666}.nav-user-menu{position:relative;flex-shrink:0}.nav-user-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:1px solid #ddd;border-radius:50%;color:#555;cursor:pointer;transition:all .2s}.nav-user-btn:hover{background:#f0f0f0;border-color:#ccc;color:#333}.nav-dropdown{position:absolute;top:42px;right:0;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:160px;z-index:100;overflow:hidden}.nav-actions{display:flex;gap:4px;flex-shrink:0}.nav-action-btn{padding:4px 10px;background:#f5f5f5;color:#555;border:1px solid #e0e0e0;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s}.nav-action-btn:hover{background:#eee;border-color:#ccc;color:#333}.progress-bar{padding:1rem;background:#fafafa;border-bottom:1px solid #e0e0e0}.progress-info{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.875rem;color:#666;font-weight:500}.progress-track,.mastery-track{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .3s ease}.mastery-fill{height:100%;background:linear-gradient(90deg,#f093fb,#f5576c);transition:width .3s ease}.chat-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.message{max-width:75%;padding:.875rem 1rem;border-radius:12px;line-height:1.5;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.teacher{align-self:flex-start;background:#f0f0f0;color:#333}.message.student{align-self:flex-end;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.message-content p{margin:0 0 .5rem}.message-content p:last-child{margin-bottom:0}.message-content ul,.message-content ol{margin:.25rem 0 .5rem;padding-left:1.25rem}.message-content li{margin-bottom:.2rem}.message-content strong{font-weight:600}.message-content em{font-style:italic}.message-content code{background:#00000012;padding:1px 5px;border-radius:4px;font-size:.9em}.message.student .message-content code{background:#fff3}.message-content blockquote{margin:.5rem 0;padding:.25rem .75rem;border-left:3px solid rgba(0,0,0,.15);opacity:.85}.message.student .message-content blockquote{border-left-color:#fff6}.message-content h1,.message-content h2,.message-content h3{margin:.5rem 0 .25rem;font-size:1em;font-weight:600}.message-content table{border-collapse:collapse;margin:.5rem 0;font-size:.9em}.message-content th,.message-content td{border:1px solid rgba(0,0,0,.12);padding:.3rem .6rem}.message.student .message-content th,.message.student .message-content td{border-color:#ffffff40}.message-content hr{border:none;border-top:1px solid rgba(0,0,0,.1);margin:.5rem 0}.message.loading{padding:1rem}.typing-indicator{display:flex;gap:4px}.typing-indicator span{width:8px;height:8px;background:#999;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.hints-container{margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e0e0e0}.hints-toggle{background:none;border:none;color:#667eea;cursor:pointer;font-size:.875rem;font-weight:500;padding:.25rem 0}.hints-toggle:hover{color:#764ba2}.hints{list-style:none;margin-top:.5rem;padding-left:0}.hints li{padding:.5rem;background:#f9f9f9;border-left:3px solid #667eea;margin-bottom:.5rem;border-radius:4px;font-size:.875rem;color:#555}.input-form{display:flex;align-items:center;gap:.25rem;padding:.375rem .375rem .375rem 1rem;margin:.5rem .75rem;border:1px solid #ddd;border-radius:24px;background:#fff;transition:border-color .2s}.input-form:focus-within{border-color:#667eea}.input-form.recording{border-color:#e53e3e;box-shadow:0 0 0 2px #e53e3e26}.input-field{flex:1;min-width:0;padding:.5rem 0;border:none;border-radius:0;font-size:1rem;outline:none;background:transparent}.input-field:disabled{background:transparent;cursor:not-allowed}.mic-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;background:#f0f0f0;color:#666;border:none;border-radius:50%;cursor:pointer;transition:all .2s}.mic-button:hover:not(:disabled){background:#e8e8e8;color:#333}.mic-button:disabled{opacity:.5;cursor:not-allowed}.mic-button.recording{background:#e53e3e;color:#fff;animation:pulse-recording 1.5s ease-in-out infinite}.mic-button.transcribing{background:#667eea;color:#fff;animation:spin-icon 1.2s linear infinite}@keyframes pulse-recording{0%,to{box-shadow:0 0 #e53e3e66}50%{box-shadow:0 0 0 8px #e53e3e00}}@keyframes spin-icon{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.send-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;padding:0;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:50%;cursor:pointer;transition:opacity .2s}.send-button:hover:not(:disabled){opacity:.9}.send-button:disabled{opacity:.3;cursor:not-allowed}.send-button-wide{width:100%;padding:12px;font-size:1rem;font-weight:500;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:opacity .2s}.send-button-wide:hover:not(:disabled){opacity:.9}.send-button-wide:disabled{opacity:.5;cursor:not-allowed}.summary-card{padding:2rem;text-align:center;background:#fafafa;border-top:1px solid #e0e0e0}.summary-card h2{color:#667eea;margin-bottom:1.5rem}.summary-content{text-align:left;background:#fff;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 2px 8px #0000000d}.summary-content p{margin-bottom:1rem;line-height:1.6}.summary-content ul{margin:.5rem 0 1rem 1.5rem}.summary-content li{margin-bottom:.5rem;line-height:1.6}.restart-button{padding:.875rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:opacity .2s}.restart-button:hover{opacity:.9}.selection-container{flex:1;padding:2rem;overflow-y:auto}.selection-step{max-width:600px;margin:0 auto}.selection-step h2{margin-bottom:1.5rem;color:#333;font-size:1.5rem}.selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.selection-card{padding:1.5rem;background:#fff;border:2px solid #e0e0e0;border-radius:12px;font-size:1rem;font-weight:500;color:#333;cursor:pointer;transition:all .2s;text-align:center}.selection-card:hover{border-color:#667eea;background:#f8f9ff;transform:translateY(-2px);box-shadow:0 4px 12px #667eea26}.back-button{margin-bottom:1rem;padding:.5rem 1rem;background:transparent;border:1px solid #ccc;border-radius:6px;font-size:.9rem;color:#666;cursor:pointer;transition:all .2s}.back-button:hover{background:#f5f5f5;border-color:#999}.breadcrumb{display:flex;align-items:center;gap:6px;margin-bottom:1rem;font-size:.85rem;flex-wrap:wrap}.breadcrumb-link{background:none;border:none;color:#667eea;cursor:pointer;font-size:.85rem;padding:2px 0;font-family:inherit}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-sep{color:#999;font-size:.9rem}.breadcrumb-current{color:#333;font-weight:600}.learning-path{display:flex;flex-direction:column;gap:0}.learning-path-item{display:flex;align-items:flex-start;gap:14px;padding:16px 14px;background:#fff;border:none;border-bottom:1px solid #f0f0f0;cursor:pointer;text-align:left;width:100%;transition:background .15s;font-family:inherit}.learning-path-item:first-child{border-radius:12px 12px 0 0}.learning-path-item:last-child{border-radius:0 0 12px 12px;border-bottom:none}.learning-path-item:only-child{border-radius:12px}.learning-path-item:hover{background:#f8f9ff}.learning-path-number{flex-shrink:0;padding-top:2px}.step-circle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:.85rem;font-weight:700;border:2px solid #e0e0e0;background:#fff;color:#999}.step-circle--completed{background:#38a169;border-color:#38a169;color:#fff}.step-circle--in_progress{background:#f6e05e;border-color:#ecc94b;color:#744210}.step-circle--not_started{background:#fff;border-color:#e0e0e0;color:#999}.learning-path-item--completed{border-left:3px solid #38a169}.learning-path-item--in_progress{border-left:3px solid #ecc94b}.learning-path-item--not_started{border-left:3px solid transparent}.learning-path-content{flex:1;min-width:0}.learning-path-title{font-size:1rem;font-weight:600;color:#333;line-height:1.3}.learning-path-summary{font-size:.85rem;color:#666;margin-top:4px;line-height:1.4}.learning-path-meta{font-size:.75rem;color:#999;margin-top:4px;display:flex;align-items:center;gap:8px}.info-toggle{color:#667eea;font-weight:600;cursor:pointer}.info-toggle:hover{text-decoration:underline}.learning-path-arrow{flex-shrink:0;font-size:1.4rem;color:#ccc;padding-top:4px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f5f5;padding:1rem}.auth-container{width:100%;max-width:420px;background:#fff;border-radius:16px;padding:2rem;box-shadow:0 0 20px #0000001a}.auth-logo{text-align:center;margin-bottom:2rem}.auth-logo-icon{margin-bottom:.75rem}.auth-logo h1{font-size:1.8rem;color:#333;margin-bottom:.5rem}.auth-tagline{color:#666;font-size:1rem}.auth-title{font-size:1.5rem;color:#333;margin-bottom:.5rem}.auth-subtitle{color:#666;font-size:.9rem;margin-bottom:1.5rem}.auth-error{background:#fff5f5;color:#e53e3e;padding:12px;border-radius:8px;font-size:.9rem;margin-bottom:1rem;border:1px solid #fed7d7}.password-rules{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:2px}.password-rules li{font-size:.8rem;display:flex;align-items:center;gap:6px;transition:color .2s}.password-rules .rule-pass{color:#38a169}.password-rules .rule-fail{color:#999}.rule-icon{font-size:.75rem;width:14px;text-align:center}.password-mismatch{font-size:.8rem;color:#e53e3e;margin-top:4px}.auth-success{background:#f0fff4;color:#38a169;padding:12px;border-radius:8px;font-size:.9rem;margin-bottom:1rem;border:1px solid #c6f6d5}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-field{display:flex;flex-direction:column;gap:4px}.auth-field label{font-size:.85rem;font-weight:500;color:#555}.auth-field input,.auth-field select,.auth-field textarea{padding:12px;border:1px solid #ddd;border-radius:8px;font-size:1rem;outline:none;transition:border-color .2s;font-family:inherit}.auth-field input:focus,.auth-field select:focus,.auth-field textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.auth-field input:disabled,.auth-field select:disabled,.auth-field textarea:disabled{background:#f7f7f7;color:#666}.auth-buttons{display:flex;flex-direction:column;gap:.75rem}.auth-btn{padding:14px;border:none;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;text-align:center}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.auth-btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.auth-btn-phone{background:#25d366;color:#fff}.auth-btn-phone:hover{background:#20bd5a}.auth-btn-email{background:#667eea;color:#fff}.auth-btn-email:hover{background:#5a6fd6}.auth-btn-google{background:#fff;color:#333;border:2px solid #e0e0e0}.auth-btn-google:hover{border-color:#4285f4;background:#f8f9ff}.auth-btn-outline{background:#fff;color:#333;border:2px solid #e0e0e0}.auth-btn-outline:hover{border-color:#667eea;background:#f8f9ff}.auth-btn-outline.selected{border-color:#667eea;background:#f0f3ff;color:#667eea}.auth-btn-danger{background:#fff;color:#e53e3e;border:2px solid #fed7d7}.auth-btn-danger:hover{background:#fff5f5}.auth-back-btn{background:none;border:none;color:#667eea;font-size:.9rem;cursor:pointer;padding:4px 0;margin-bottom:1rem;font-weight:500}.auth-back-btn:hover{color:#764ba2}.auth-links{display:flex;flex-direction:column;gap:.5rem;align-items:center;margin-top:1rem}.auth-link{background:none;border:none;color:#667eea;font-size:.9rem;cursor:pointer;padding:4px}.auth-link:hover{color:#764ba2;text-decoration:underline}.auth-link:disabled{color:#999;cursor:default}.auth-footer{text-align:center;margin-top:1.5rem;font-size:.75rem;color:#999}.app-content{flex:1;padding:24px;overflow-y:auto}.app-content-inner{max-width:var(--content-max-width);margin:0 auto}.nav-dropdown-item{display:block;width:100%;padding:10px 16px;border:none;background:none;text-align:left;font-size:.9rem;cursor:pointer;color:var(--color-text);font-family:inherit}.nav-dropdown-item:hover{background:var(--color-bg-tinted)}.nav-dropdown-item--danger{color:var(--color-error)}.page-title{font-size:1.5rem;font-weight:600;color:var(--color-text);margin-bottom:.5rem}.page-subtitle{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:1.5rem}.content-back-link{display:inline-block;background:none;border:none;color:var(--color-primary);font-size:.9rem;cursor:pointer;padding:4px 0;margin-bottom:1rem;font-weight:500;font-family:inherit}.content-back-link:hover{color:var(--color-accent)}.page-loading{text-align:center;padding:2rem;color:var(--color-text-muted)}.page-empty-state{text-align:center;padding:3rem 1rem}.page-empty-state-icon{font-size:2.5rem;margin-bottom:1rem}.page-empty-state-title{font-size:1.1rem;color:var(--color-text);margin-bottom:8px}.page-empty-state-desc{color:var(--color-text-muted);margin-bottom:20px}.mode-filter-group{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.mode-filter-btn{padding:4px 12px;border-radius:16px;font-size:.8rem;cursor:pointer;border:1px solid var(--color-border);background:#fff;color:var(--color-text-secondary);font-family:inherit}.mode-filter-btn--active{border:2px solid var(--color-primary);background:var(--color-primary);color:#fff}.mode-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:500;color:#fff;margin-left:8px}.exam-review-date{font-size:.8rem;color:#718096;margin-bottom:12px}.exam-review-score{text-align:center;margin:12px 0 16px}.exam-review-score-value{font-size:2rem;font-weight:700}.exam-review-score-pct{font-size:.9rem;color:#718096}.exam-review-questions{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.exam-review-question{border:1px solid var(--color-border);border-radius:10px;padding:12px;background:#fafafa}.exam-review-question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.exam-review-question-num{font-weight:600;font-size:.9rem}.exam-review-question-score{font-weight:700;font-size:.9rem}.exam-review-question-text{font-size:.85rem;color:#2d3748;margin-bottom:6px}.exam-review-answer{font-size:.8rem;color:#4a5568;margin-bottom:4px}.exam-review-rationale{font-size:.8rem;color:#718096;font-style:italic;border-top:1px solid var(--color-border);padding-top:6px;margin-top:6px}.exam-review-next-steps{margin-bottom:12px}.exam-review-next-steps ul{padding-left:1.5rem}.otp-container{display:flex;gap:8px;justify-content:center;margin:1.5rem 0}.otp-input{width:48px;height:56px;text-align:center;font-size:1.5rem;font-weight:600;border:2px solid #ddd;border-radius:10px;outline:none;transition:border-color .2s}.otp-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.onboarding-progress{display:flex;gap:8px;justify-content:center;margin-bottom:2rem}.onboarding-dot{width:10px;height:10px;border-radius:50%;background:#e0e0e0;transition:background .3s}.onboarding-dot.active{background:#667eea;transform:scale(1.2)}.onboarding-dot.completed{background:#4caf50}.onboarding-step{text-align:center;display:flex;flex-direction:column;gap:16px}.onboarding-input{text-align:center;font-size:1.2rem;padding:14px}.onboarding-textarea{text-align:left;font-size:1rem}.grade-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:1rem}.grade-btn{padding:16px;border:2px solid #e0e0e0;border-radius:10px;background:#fff;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all .2s}.grade-btn:hover{border-color:#667eea;background:#f8f9ff}.grade-btn.selected{border-color:#667eea;background:#667eea;color:#fff}.board-list{display:flex;flex-direction:column;gap:10px;margin-top:1rem}.done-step{padding:2rem 0}.skip-btn{margin-top:8px;display:block;width:100%;text-align:center}.profile-header{margin-bottom:1rem}.profile-actions{display:flex;gap:.75rem}.profile-actions .auth-btn{flex:1}.profile-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #eee}.profile-section h3{font-size:.9rem;color:#666;margin-bottom:.5rem}.profile-info{font-size:.85rem;color:#999}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:1.5rem}.stat-card{background:#f8f9ff;border-radius:10px;padding:14px;text-align:center}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:#667eea}.stat-label{display:block;font-size:.75rem;color:#888;margin-top:2px}.session-list{display:flex;flex-direction:column;gap:10px}.session-card{background:#fafafa;border-radius:10px;padding:14px;border:1px solid #eee}.session-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.session-topic{font-weight:500;color:#333}.session-mastery{font-weight:700;font-size:.9rem}.session-card-meta{display:flex;gap:12px;font-size:.8rem;color:#888}.session-subject{background:#f0f3ff;color:#667eea;padding:2px 8px;border-radius:4px;font-weight:500}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid #eee;font-size:.85rem;color:#666}.reportcard-stats-line{font-size:.9rem;color:#888;margin-bottom:1.5rem}.reportcard-section{margin-bottom:1.5rem}.reportcard-section-title{font-size:.85rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.reportcard-subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.reportcard-subject-card{padding:16px;background:#fff;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;transition:all .2s;text-align:left;display:flex;flex-direction:column;gap:8px}.reportcard-subject-card:hover{border-color:#667eea;background:#f8f9ff;transform:translateY(-2px);box-shadow:0 4px 12px #667eea26}.reportcard-subject-card-header{display:flex;justify-content:space-between;align-items:center}.reportcard-subject-name{font-weight:600;font-size:1rem;color:#333}.reportcard-subject-meta{font-size:.8rem;color:#888}.coverage-bar{height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden}.coverage-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .3s ease}.reportcard-coverage{font-size:.8rem;font-weight:600;color:#667eea}.reportcard-exam-score{font-size:.8rem;font-weight:600;color:#38a169;background:#f0fff4;padding:2px 8px;border-radius:10px}.reportcard-subject-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.reportcard-chapter-section{background:#fff;border:1px solid #eee;border-radius:10px;padding:14px;margin-bottom:10px}.reportcard-chapter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.reportcard-chapter-name{font-weight:600;font-size:.95rem;color:#333}.reportcard-topic-list{display:flex;flex-direction:column;gap:8px}.reportcard-topic-row{display:flex;flex-direction:column;gap:4px}.reportcard-topic-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px 0;background:none;border:none;cursor:pointer;text-align:left}.reportcard-topic-name{font-size:.9rem;color:#333;font-weight:500}.reportcard-topic-right{display:flex;align-items:center;gap:8px}.reportcard-topic-detail{padding:6px 0 4px;display:flex;align-items:center;gap:12px}.reportcard-topic-meta{font-size:.8rem;color:#888;margin:8px 0}.practice-again-btn{padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:opacity .2s;margin-top:4px}.practice-again-btn:hover:not(:disabled){opacity:.9}.practice-again-btn:disabled{opacity:.5;cursor:not-allowed}.topic-status{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;font-weight:600;padding:2px 6px;border-radius:8px;margin-left:8px}.topic-status.studied{color:#38a169;background:#f0fff4}.topic-status.not_started{color:#888;background:#f5f5f5}.virtual-teacher-view{position:fixed;top:0;left:0;right:0;bottom:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1a1a2e;overflow:hidden}.vt-close-btn{position:absolute;top:12px;right:12px;z-index:10;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:50%;color:#fffc;cursor:pointer;transition:all .2s}.vt-close-btn:hover{background:#fff3;color:#fff}.vt-avatar-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;width:100%;padding:1rem}.teacher-gif{width:350px;max-width:85%;border-radius:16px;transition:box-shadow .3s ease}.teacher-gif.speaking{box-shadow:0 0 20px #667eea66,0 0 40px #764ba233;animation:teacher-glow 2s ease-in-out infinite}@keyframes teacher-glow{0%,to{box-shadow:0 0 20px #667eea66,0 0 40px #764ba233}50%{box-shadow:0 0 30px #667eea99,0 0 60px #764ba24d}}.teacher-subtitle{margin-top:1rem;max-width:90%;padding:10px 20px;background:#0000008c;border-radius:8px;color:#fff;font-size:1.05rem;line-height:1.6;text-align:center}.teacher-subtitle p{margin:0 0 .4rem}.teacher-subtitle p:last-child{margin-bottom:0}.vt-typing-indicator{padding:16px 0 24px}.vt-typing-indicator .typing-indicator span{background:#fff9}.vt-input-area{width:100%;padding:0 .75rem .75rem;animation:vt-fade-in .4s ease}.vt-input-area .input-form{border-color:#fff3;background:#ffffff14}.vt-input-area .input-form:focus-within{border-color:#667eea99}.vt-input-area .input-field{color:#fff}.vt-input-area .input-field::placeholder{color:#fff6}.vt-input-area .mic-button{background:#ffffff1f;color:#ffffffb3}.vt-input-area .mic-button:hover:not(:disabled){background:#fff3;color:#fff}@keyframes vt-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.audio-play-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:6px;padding:0;background:#0000000f;border:none;border-radius:50%;color:#666;cursor:pointer;transition:all .2s;flex-shrink:0}.audio-play-btn:hover{background:#0000001f;color:#333}.audio-play-btn.playing{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;animation:audio-pulse 1.5s ease-in-out infinite}@keyframes audio-pulse{0%,to{box-shadow:0 0 #667eea66}50%{box-shadow:0 0 0 6px #667eea00}}.vt-toggle{padding:4px 10px;background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background .2s}.vt-toggle:hover{background:#ffffff59}.enrichment-progress{margin-bottom:1.5rem}.enrichment-progress-bar{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;margin-bottom:.4rem}.enrichment-progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:3px;transition:width .3s ease}.enrichment-progress-text{font-size:.8rem;color:#888}.enrichment-migration-banner{background:#fffbeb;border:1px solid #f6e05e;border-radius:10px;padding:1rem;margin-bottom:1rem}.enrichment-migration-banner p{font-size:.9rem;margin-bottom:.5rem;color:#744210}.enrichment-section{border:1px solid #e2e8f0;border-radius:10px;margin-bottom:.75rem;overflow:hidden;transition:border-color .2s}.enrichment-section-open{border-color:#667eea}.enrichment-section-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;background:none;border:none;cursor:pointer;font-size:.95rem;font-family:inherit;text-align:left;color:#333}.enrichment-section-header:hover{background:#f8f9fa}.enrichment-section-title{display:flex;align-items:center;gap:.5rem;font-weight:500}.enrichment-section-dot{width:8px;height:8px;border-radius:50%;background:#e2e8f0;flex-shrink:0}.enrichment-section-dot-filled{background:#38a169}.enrichment-section-arrow{font-size:.7rem;color:#999}.enrichment-section-body{padding:0 1rem 1rem}.enrichment-section-helper{font-size:.85rem;color:#888;margin-bottom:.75rem;line-height:1.4}.enrichment-save-all{display:flex;align-items:center;gap:1rem;margin-top:1.5rem;margin-bottom:1rem}.enrichment-save-all-btn{padding:.65rem 2rem;font-size:1rem}.enrichment-save-msg{font-size:.9rem;font-weight:500}.enrichment-save-success{color:#38a169}.enrichment-save-error{color:#e74c3c}.enrichment-chips{display:flex;flex-wrap:wrap;gap:.5rem}.enrichment-chip{padding:.45rem .85rem;border:1px solid #d1d5db;border-radius:20px;background:#fff;font-size:.85rem;font-family:inherit;cursor:pointer;transition:all .15s;color:#555}.enrichment-chip:hover{border-color:#667eea;color:#667eea}.enrichment-chip-selected{background:#667eea;border-color:#667eea;color:#fff}.enrichment-chip-selected:hover{background:#5a6fd6;color:#fff}.enrichment-chip-add{border-style:dashed;color:#888}.enrichment-chip-custom{display:inline-flex}.enrichment-chip-custom input{padding:.4rem .75rem;border:1px solid #667eea;border-radius:20px;font-size:.85rem;outline:none;width:160px;font-family:inherit}.enrichment-tag-input{display:flex;flex-direction:column;gap:.5rem}.enrichment-tags{display:flex;flex-wrap:wrap;gap:.4rem}.enrichment-tag{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;background:#edf2f7;border-radius:12px;font-size:.8rem;color:#4a5568}.enrichment-tag button{background:none;border:none;cursor:pointer;color:#a0aec0;font-size:.7rem;padding:0;margin-left:.2rem}.enrichment-tag-input input{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;font-family:inherit}.enrichment-char-count{font-size:.75rem;color:#aaa;text-align:right}.enrichment-open-textbox{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.enrichment-open-textbox-title{font-size:.95rem;font-weight:500;color:#555;margin-bottom:.25rem}.enrichment-open-textbox-helper{font-size:.82rem;color:#888;margin-bottom:.75rem}.enrichment-open-textbox textarea{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;font-family:inherit;resize:vertical;min-height:80px}.enrichment-open-textbox textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea26}.enrichment-session-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.enrichment-session-title{font-size:.95rem;font-weight:500;color:#555;margin-bottom:.75rem}.enrichment-personality-card{margin-top:1.5rem;padding:1.25rem;background:linear-gradient(135deg,#f0f4ff,#faf0ff);border-radius:12px;border:1px solid #e2e0f0}.enrichment-personality-card h3{font-size:1rem;color:#4a3d8f;margin-bottom:.75rem}.enrichment-personality-content{display:flex;flex-direction:column;gap:.75rem}.enrichment-personality-field strong{display:block;font-size:.8rem;color:#6b5fa5;margin-bottom:.2rem}.enrichment-personality-field p{font-size:.85rem;color:#555;line-height:1.5;margin:0}.enrichment-personality-updated{font-size:.75rem;color:#aaa;margin-top:.75rem}.enrichment-personality-generating{text-align:center}.enrichment-personality-generating p{font-size:.85rem;color:#888}.enrichment-personality-failed{text-align:center;border-color:#e74c3c}.enrichment-personality-failed h3{color:#e74c3c}.enrichment-personality-failed p{font-size:.85rem;color:#888;margin-bottom:1rem}.enrichment-personality-empty{text-align:center}.enrichment-personality-empty p{font-size:.9rem;color:#888}.enrichment-cta{display:flex;align-items:center;gap:.75rem;padding:1rem;margin-top:1.5rem;background:linear-gradient(135deg,#f0f4ff,#faf0ff);border:1px solid #d6d0f0;border-radius:12px;transition:transform .15s,box-shadow .15s}.enrichment-cta:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea26}.enrichment-cta-content h3{font-size:.95rem;color:#4a3d8f;margin-bottom:.25rem}.enrichment-cta-content p{font-size:.8rem;color:#888;margin:0}.enrichment-cta-arrow{font-size:1.2rem;color:#667eea;flex-shrink:0}.enrichment-home-prompt{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;margin-bottom:1rem;background:linear-gradient(135deg,#f0f4ff,#faf0ff);border:1px solid #d6d0f0;border-radius:10px;cursor:pointer;font-size:.85rem;color:#4a3d8f;transition:transform .15s}.enrichment-home-prompt:hover{transform:translateY(-1px)}.enrichment-home-dismiss{background:none;border:none;color:#999;cursor:pointer;font-size:.9rem;padding:.2rem .4rem;border-radius:4px;flex-shrink:0}.enrichment-home-dismiss:hover{background:#0000000d}.focus-carousel{position:fixed;top:0;left:0;right:0;bottom:0;z-index:100;background:#fff;display:flex;flex-direction:column}.focus-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0;flex-shrink:0}.focus-exit-btn{background:#f0f0f0;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#555;transition:background .15s}.focus-exit-btn:hover{background:#e0e0e0}.focus-header-right{display:flex;align-items:center;gap:12px}.focus-audio-btn{background:#f0f0f0;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#555;transition:background .15s,color .15s}.focus-audio-btn:hover{background:#e0e0e0}.focus-audio-btn.playing{background:var(--color-primary);color:#fff}.focus-audio-btn.playing:hover{background:#5568d0}.focus-counter{font-size:.85rem;color:#999;font-weight:500}.focus-track-container{flex:1;overflow:hidden;touch-action:pan-y}.focus-track{display:flex;height:100%;will-change:transform}.focus-slide{flex:0 0 100vw;width:100vw;overflow-y:auto;padding:24px 20px 32px;-webkit-overflow-scrolling:touch}.focus-tutor-msg{font-size:1.3rem;line-height:1.8;color:#222;padding:8px 0}.focus-tutor-msg p{margin-bottom:1em}.focus-tutor-msg strong{color:#333;font-weight:700}.focus-tutor-msg ul,.focus-tutor-msg ol{margin-left:1.2em;margin-bottom:1em}.focus-tutor-msg li{margin-bottom:.5em}.focus-tutor-msg h1,.focus-tutor-msg h2,.focus-tutor-msg h3{margin-top:.5em;margin-bottom:.5em}.focus-student-msg{background:#eef2ff;border-radius:12px;padding:14px 16px;margin-top:16px;font-size:1.05rem;line-height:1.6;color:#333}.focus-student-label{font-size:.75rem;font-weight:600;color:#667eea;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.focus-typing{display:flex;justify-content:center;padding:20px 0}.focus-input-area{border-top:1px solid #e2e8f0;padding:12px 16px;background:#fff;flex-shrink:0}.focus-input-area .input-form{margin:0}.toggle-switch{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#ccc;border-radius:26px;transition:background .25s}.toggle-slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .25s}.toggle-switch input:checked+.toggle-slider{background:var(--color-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.toggle-switch input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}:root{line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;height:100vh}
