:root{--primary-50: #FFF1F3;--primary-100: #FFE4E9;--primary-200: #FECDD6;--primary-300: #FDA4B8;--primary-400: #FB7193;--primary-500: #F43F6F;--primary-600: #E11D5B;--primary-700: #BE124A;--primary-800: #9F1244;--primary-900: #881340;--accent-50: #FFFBEB;--accent-100: #FEF3C7;--accent-200: #FDE68A;--accent-300: #FCD34D;--accent-400: #FBBF24;--accent-500: #F59E0B;--accent-600: #D97706;--success-50: #F0FDF4;--success-100: #DCFCE7;--success-300: #86EFAC;--success-400: #4ADE80;--success-500: #22C55E;--success-600: #16A34A;--danger-50: #FFF5F5;--danger-100: #FFE0E0;--danger-400: #F87171;--danger-500: #EF4444;--danger-600: #DC2626;--info-50: #F0F9FF;--info-100: #E0F2FE;--info-400: #38BDF8;--info-500: #0EA5E9;--gray-50: #FEFCF9;--gray-100: #FBF6F0;--gray-200: #F0E6DB;--gray-300: #DDD0C3;--gray-400: #B0A090;--gray-500: #8B7B6B;--gray-600: #6B5C50;--gray-700: #4A3F36;--gray-800: #332B24;--gray-900: #1E1812;--bg-gradient: linear-gradient(145deg, #FFF5F0 0%, #FFF0F5 30%, #FFF8E7 70%, #FFF5F0 100%);--bg-page: #FFF5F0;--bg-card: #FFFCF8;--bg-nav: rgba(255, 248, 240, .95);--font-family: "Nunito", -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(180, 120, 80, .06);--shadow-md: 0 4px 8px -1px rgba(180, 120, 80, .08), 0 2px 4px -2px rgba(180, 120, 80, .04);--shadow-lg: 0 10px 20px -3px rgba(180, 120, 80, .1), 0 4px 8px -4px rgba(180, 120, 80, .06);--shadow-xl: 0 20px 30px -5px rgba(180, 120, 80, .12), 0 8px 12px -6px rgba(180, 120, 80, .06);--shadow-glow: 0 0 20px rgba(244, 63, 111, .12);--shadow-card: 0 4px 16px rgba(244, 63, 111, .06), 0 1px 4px rgba(180, 120, 80, .05);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--nav-height: 68px}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-10px) rotate(2deg)}66%{transform:translateY(-5px) rotate(-1deg)}}@keyframes sparkle{0%,to{opacity:1;transform:scale(1) rotate(0)}50%{opacity:.6;transform:scale(1.3) rotate(180deg)}}@keyframes slideInRight{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes checkmark{0%{stroke-dashoffset:50}to{stroke-dashoffset:0}}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes confetti-sway{0%,to{transform:translate(0)}25%{transform:translate(30px)}75%{transform:translate(-30px)}}@keyframes fillProgress{0%{width:0}}@keyframes rainbow{0%{border-color:#7c3aed}25%{border-color:#f59e0b}50%{border-color:#10b981}75%{border-color:#3b82f6}to{border-color:#7c3aed}}@keyframes ripple{0%{box-shadow:0 0 #7c3aed66}to{box-shadow:0 0 0 20px #7c3aed00}}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.15)}28%{transform:scale(1)}42%{transform:scale(1.15)}70%{transform:scale(1)}}.animate-bounce{animation:bounce 1s ease infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-sparkle{animation:sparkle 1.5s ease-in-out infinite}.animate-slide-in{animation:slideInRight .4s ease-out}.animate-slide-up{animation:slideInUp .4s ease-out}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-pop-in{animation:popIn .4s cubic-bezier(.34,1.56,.64,1)}.animate-shake{animation:shake .5s ease-in-out}.animate-ripple{animation:ripple 1.5s ease-out infinite}.animate-heartbeat{animation:heartbeat 1.5s ease-in-out infinite}.animate-rainbow{animation:rainbow 3s linear infinite}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-lg);font-family:var(--font-family);font-size:var(--font-size-lg);font-weight:700;cursor:pointer;transition:all var(--transition-normal);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.95)}.btn-primary{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:#fff;box-shadow:0 4px 14px #7c3aed59}.btn-primary:hover{box-shadow:0 6px 20px #7c3aed73;transform:translateY(-2px)}.btn-accent{background:linear-gradient(135deg,var(--accent-400),var(--accent-500));color:#fff;box-shadow:0 4px 14px #f59e0b59}.btn-success{background:linear-gradient(135deg,var(--success-400),var(--success-500));color:#fff;box-shadow:0 4px 14px #10b98159}.btn-outline{background:var(--bg-card);color:var(--primary-600);border:2px solid var(--primary-200)}.btn-outline:hover{border-color:var(--primary-400);background:var(--primary-50)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-xl);border-radius:var(--radius-xl)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);border-radius:var(--radius-md)}.btn-icon{width:48px;height:48px;padding:0;border-radius:var(--radius-full);font-size:var(--font-size-xl)}.btn-block{display:flex;width:100%}.card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-card);transition:all var(--transition-normal)}.card:hover{box-shadow:var(--shadow-lg)}.card-colorful{border:2px solid transparent;position:relative;overflow:hidden}.card-colorful:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.card-purple:before{background:linear-gradient(90deg,var(--primary-400),var(--primary-600))}.card-orange:before{background:linear-gradient(90deg,var(--accent-400),var(--accent-500))}.card-green:before{background:linear-gradient(90deg,var(--success-400),var(--success-500))}.card-blue:before{background:linear-gradient(90deg,var(--info-400),var(--info-500))}.card-pink:before{background:linear-gradient(90deg,var(--danger-400),#EC4899)}.progress-bar{width:100%;height:12px;background:var(--gray-100);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--primary-400),var(--primary-600));transition:width var(--transition-slow);animation:fillProgress 1s ease-out}.progress-fill.success{background:linear-gradient(90deg,var(--success-400),var(--success-500))}.progress-fill.accent{background:linear-gradient(90deg,var(--accent-400),var(--accent-500))}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700}.badge-primary{background:var(--primary-100);color:var(--primary-700)}.badge-success{background:var(--success-100);color:var(--success-600)}.badge-accent{background:var(--accent-100);color:var(--accent-600)}.badge-danger{background:var(--danger-100);color:var(--danger-600)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fadeIn .2s ease-out}.modal-content{background:var(--bg-card);border-radius:var(--radius-2xl);padding:var(--space-8);max-width:420px;width:100%;animation:popIn .3s cubic-bezier(.34,1.56,.64,1);text-align:center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-4);text-align:center;color:var(--gray-400)}.empty-state .empty-icon{font-size:4rem;margin-bottom:var(--space-4);animation:float 3s ease-in-out infinite}.empty-state .empty-text{font-size:var(--font-size-lg);font-weight:600}.stars{display:flex;gap:var(--space-1);font-size:var(--font-size-2xl)}.stars .star{opacity:.2;transition:all var(--transition-normal)}.stars .star.active{opacity:1;animation:popIn .3s ease-out}.toast{position:fixed;top:var(--space-4);left:50%;transform:translate(-50%);background:var(--gray-800);color:#fff;padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:600;z-index:2000;animation:slideInUp .3s ease-out,fadeIn .3s ease-out;box-shadow:var(--shadow-xl)}.toast.success{background:var(--success-500)}.toast.error{background:var(--danger-500)}.tabs{display:flex;background:var(--gray-100);border-radius:var(--radius-lg);padding:3px;gap:2px}.tab-item{flex:1;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);background:transparent;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:700;color:var(--gray-500);cursor:pointer;transition:all var(--transition-normal);text-align:center}.tab-item.active{background:var(--bg-card);color:var(--primary-600);box-shadow:var(--shadow-sm)}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3000;overflow:hidden}.confetti-piece{position:absolute;width:10px;height:10px;top:-10px;border-radius:2px;animation:confetti-fall 3s ease-in forwards}.page-container{min-height:100vh;padding-bottom:calc(var(--nav-height) + var(--space-4));background:var(--bg-page)}.page{padding:var(--space-4);max-width:480px;margin:0 auto;animation:fadeIn .3s ease-out;transition:max-width .3s ease}.page-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);padding-top:var(--space-2)}.page-header .back-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:var(--bg-card);border-radius:var(--radius-md);font-size:var(--font-size-xl);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.page-header .back-btn:active{transform:scale(.9)}.page-header h1{font-size:var(--font-size-2xl);font-weight:800;color:var(--gray-800);margin:0}.home-page .welcome-card{background:linear-gradient(135deg,var(--primary-500),var(--primary-700));color:#fff;border-radius:var(--radius-2xl);padding:var(--space-6);margin-bottom:var(--space-6);position:relative;overflow:hidden}.home-page .welcome-card:after{content:"";position:absolute;top:-30%;right:-20%;width:200px;height:200px;background:#ffffff14;border-radius:50%}.home-page .welcome-card .greeting{font-size:var(--font-size-lg);opacity:.9;margin-bottom:var(--space-1)}.home-page .welcome-card .student-name{font-size:var(--font-size-3xl);font-weight:900;margin-bottom:var(--space-3)}.home-page .welcome-card .streak-info{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-base);background:#ffffff26;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);width:fit-content}.home-page .continue-card{background:linear-gradient(135deg,var(--accent-400),var(--accent-500));color:#fff;border-radius:var(--radius-xl);padding:var(--space-5);margin-bottom:var(--space-6);display:flex;align-items:center;gap:var(--space-4);cursor:pointer;transition:all var(--transition-normal);text-decoration:none}.home-page .continue-card:active{transform:scale(.98)}.home-page .continue-card .continue-icon{width:52px;height:52px;background:#ffffff40;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.home-page .continue-card .continue-text{flex:1;min-width:0}.home-page .continue-card .continue-label{font-size:var(--font-size-sm);opacity:.85}.home-page .continue-card .continue-title{font-size:var(--font-size-lg);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-page .continue-card .continue-arrow{font-size:1.5rem;flex-shrink:0}.home-page .section-title{font-size:var(--font-size-xl);font-weight:800;color:var(--gray-800);margin-bottom:var(--space-4)}.home-page .quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-6)}.home-page .quick-link{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-2);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);cursor:pointer;text-decoration:none;transition:all var(--transition-bounce);border:2px solid transparent}.home-page .quick-link:active{transform:scale(.92)}.home-page .quick-link:hover{border-color:var(--primary-200);transform:translateY(-4px)}.home-page .quick-link .link-icon{font-size:2rem;line-height:1}.home-page .quick-link .link-label{font-size:var(--font-size-sm);font-weight:700;color:var(--gray-700)}.home-page .stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-6)}.stat-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-4);box-shadow:var(--shadow-card);text-align:center}.stat-card .stat-value{font-size:var(--font-size-3xl);font-weight:900;color:var(--primary-600);line-height:1.2}.stat-card .stat-label{font-size:var(--font-size-sm);color:var(--gray-500);font-weight:600;margin-top:var(--space-1)}.syllabus-page .unit-section{margin-bottom:var(--space-6)}.syllabus-page .unit-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);background:linear-gradient(135deg,var(--primary-50),var(--primary-100));border-radius:var(--radius-lg);border-left:4px solid var(--primary-500)}.syllabus-page .unit-header .unit-number{font-size:var(--font-size-sm);font-weight:800;color:var(--primary-600);text-transform:uppercase}.syllabus-page .unit-header .unit-title{font-size:var(--font-size-base);font-weight:700;color:var(--gray-700)}.lesson-list{display:flex;flex-direction:column;gap:var(--space-2)}.lesson-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-normal);text-decoration:none;color:inherit}.lesson-item:active{transform:scale(.98)}.lesson-item:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.lesson-item.locked{opacity:.5;pointer-events:none}.lesson-item.completed{border-left:3px solid var(--success-400)}.lesson-item .lesson-number{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:800;flex-shrink:0;background:var(--primary-100);color:var(--primary-600)}.lesson-item.completed .lesson-number{background:var(--success-100);color:var(--success-600)}.lesson-item .lesson-info{flex:1;min-width:0}.lesson-item .lesson-title{font-size:var(--font-size-base);font-weight:700;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-item .lesson-subtitle{font-size:var(--font-size-xs);color:var(--gray-400);margin-top:2px}.lesson-item .lesson-stars{font-size:var(--font-size-sm);flex-shrink:0}.lesson-sticky-top{position:sticky;top:0;z-index:10;background:var(--bg-page);padding:var(--space-2) var(--space-4) var(--space-2);margin:0 calc(-1 * var(--space-4));box-shadow:0 4px 12px #0000000f}.lesson-sticky-top .lesson-illustration{text-align:center;margin-bottom:var(--space-2)}.lesson-sticky-top .lesson-img{max-height:280px;max-width:100%;width:auto;display:block;margin:0 auto;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);object-fit:contain}.lesson-title-bar{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border-radius:var(--radius-lg);color:#fff;font-size:var(--font-size-sm)}.lesson-title-badge{font-weight:800;opacity:.85;flex-shrink:0}.lesson-title-text{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-title-cn{opacity:.75;font-size:var(--font-size-xs);flex-shrink:0}.lesson-page .tabs{margin-bottom:var(--space-4)}.dialogue-list{display:flex;flex-direction:column;gap:var(--space-3)}.dialogue-bubble{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);max-width:85%;cursor:pointer;transition:all var(--transition-normal);position:relative}.dialogue-bubble:active{transform:scale(.98)}.dialogue-bubble.speaker-a{background:var(--primary-100);align-self:flex-start;border-bottom-left-radius:4px}.dialogue-bubble.speaker-b{background:var(--accent-100);align-self:flex-end;border-bottom-right-radius:4px}.dialogue-bubble.playing{box-shadow:0 0 0 3px var(--primary-400);animation:pulse 1s ease-in-out infinite}.dialogue-bubble .speaker-label{font-size:var(--font-size-xs);font-weight:800;color:var(--primary-600);margin-bottom:var(--space-1)}.dialogue-bubble.speaker-b .speaker-label{color:var(--accent-600)}.dialogue-bubble .en-text{font-size:var(--font-size-lg);font-weight:700;color:var(--gray-800);margin-bottom:var(--space-1)}.dialogue-bubble .cn-text{font-size:var(--font-size-sm);color:var(--gray-500)}.vocab-list{display:flex;flex-direction:column;gap:var(--space-3)}.vocab-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:var(--space-3);cursor:pointer;transition:all var(--transition-normal)}.vocab-card:active{transform:scale(.98)}.vocab-card .vocab-word{font-size:var(--font-size-xl);font-weight:800;color:var(--primary-700)}.vocab-card .vocab-phonetic{font-size:var(--font-size-sm);color:var(--gray-400)}.vocab-card .vocab-cn{font-size:var(--font-size-base);color:var(--gray-600)}.vocab-card .play-icon{margin-left:auto;font-size:1.5rem;flex-shrink:0}.speed-control{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);justify-content:center}.speed-btn{padding:var(--space-1) var(--space-3);border:2px solid var(--gray-200);border-radius:var(--radius-full);background:var(--bg-card);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:700;color:var(--gray-500);cursor:pointer;transition:all var(--transition-normal)}.speed-btn.active{border-color:var(--primary-500);background:var(--primary-50);color:var(--primary-600)}.speaking-page .sentence-display{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);text-align:center;box-shadow:var(--shadow-card);margin-bottom:var(--space-6)}.speaking-page .sentence-en{font-size:var(--font-size-2xl);font-weight:800;color:var(--gray-800);margin-bottom:var(--space-2);line-height:1.4}.speaking-page .sentence-cn{font-size:var(--font-size-base);color:var(--gray-400)}.speaking-page .record-area{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.record-btn{width:80px;height:80px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:#fff;font-size:2rem;cursor:pointer;transition:all var(--transition-normal);box-shadow:0 4px 20px #7c3aed4d}.record-btn.recording{background:linear-gradient(135deg,var(--danger-400),var(--danger-500));animation:ripple 1.5s ease-out infinite;box-shadow:0 4px 20px #f43f5e4d}.speaking-page .result-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);text-align:center;box-shadow:var(--shadow-card);margin-top:var(--space-4)}.speaking-page .score-display{font-size:var(--font-size-4xl);font-weight:900;margin-bottom:var(--space-2)}.speaking-page .score-display.excellent{color:var(--success-500)}.speaking-page .score-display.good{color:var(--accent-500)}.speaking-page .score-display.try-again{color:var(--danger-400)}.speaking-page .recognized-text{font-size:var(--font-size-base);color:var(--gray-600);margin-top:var(--space-3);padding:var(--space-3);background:var(--gray-50);border-radius:var(--radius-md)}.reading-page .passage{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-card);margin-bottom:var(--space-6);font-size:var(--font-size-lg);line-height:1.8;color:var(--gray-700)}.reading-page .question-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-card);margin-bottom:var(--space-4)}.reading-page .question-num{font-size:var(--font-size-sm);font-weight:800;color:var(--primary-600);margin-bottom:var(--space-2)}.reading-page .question-text{font-size:var(--font-size-lg);font-weight:700;color:var(--gray-800);margin-bottom:var(--space-4)}.option-list{display:flex;flex-direction:column;gap:var(--space-2)}.option-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:2px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);font-size:var(--font-size-base);font-weight:600;color:var(--gray-700)}.option-item:active{transform:scale(.98)}.option-item:hover{border-color:var(--primary-300);background:var(--primary-50)}.option-item.selected{border-color:var(--primary-500);background:var(--primary-50);color:var(--primary-700)}.option-item.correct{border-color:var(--success-400);background:var(--success-50);color:var(--success-600)}.option-item.wrong{border-color:var(--danger-400);background:var(--danger-50);color:var(--danger-500);animation:shake .5s}.option-item .option-letter{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--gray-100);font-size:var(--font-size-sm);font-weight:800;flex-shrink:0}.option-item.selected .option-letter{background:var(--primary-500);color:#fff}.option-item.correct .option-letter{background:var(--success-500);color:#fff}.option-item.wrong .option-letter{background:var(--danger-500);color:#fff}.notes-page .note-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);margin-bottom:var(--space-3);border-left:4px solid var(--accent-400)}.notes-page .note-lesson{font-size:var(--font-size-xs);font-weight:700;color:var(--primary-600);margin-bottom:var(--space-1)}.notes-page .note-content{font-size:var(--font-size-base);color:var(--gray-700);line-height:1.6}.notes-page .note-time{font-size:var(--font-size-xs);color:var(--gray-400);margin-top:var(--space-2)}.notes-page .note-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.note-editor{width:100%;min-height:120px;border:2px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-4);font-family:var(--font-family);font-size:var(--font-size-base);resize:vertical;outline:none;transition:border-color var(--transition-normal)}.note-editor:focus{border-color:var(--primary-400)}.progress-page .calendar-heatmap{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:var(--space-6)}.heatmap-cell{aspect-ratio:1;border-radius:3px;background:var(--gray-100)}.heatmap-cell.level-1{background:var(--primary-100)}.heatmap-cell.level-2{background:var(--primary-200)}.heatmap-cell.level-3{background:var(--primary-400)}.heatmap-cell.level-4{background:var(--primary-600)}.progress-page .chart-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-card);margin-bottom:var(--space-4)}.progress-page .chart-title{font-size:var(--font-size-lg);font-weight:800;color:var(--gray-800);margin-bottom:var(--space-4)}.quiz-page .quiz-progress{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.quiz-page .quiz-counter{font-size:var(--font-size-sm);font-weight:700;color:var(--gray-500);white-space:nowrap}.quiz-page .quiz-timer{font-size:var(--font-size-sm);font-weight:700;color:var(--accent-600);padding:var(--space-1) var(--space-3);background:var(--accent-50);border-radius:var(--radius-full)}.quiz-page .quiz-question{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-card);margin-bottom:var(--space-4)}.quiz-page .quiz-question .question-type{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;margin-bottom:var(--space-3)}.quiz-page .type-choice{background:var(--primary-100);color:var(--primary-600)}.quiz-page .type-fill{background:var(--accent-100);color:var(--accent-600)}.quiz-page .type-listen{background:var(--info-100);color:var(--info-500)}.quiz-page .type-order{background:var(--success-100);color:var(--success-600)}.quiz-page .fill-input{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--gray-200);border-radius:var(--radius-lg);font-family:var(--font-family);font-size:var(--font-size-lg);font-weight:600;outline:none;transition:border-color var(--transition-normal);text-align:center}.quiz-page .fill-input:focus{border-color:var(--primary-400)}.quiz-result{text-align:center;padding:var(--space-8) var(--space-4)}.quiz-result .result-emoji{font-size:5rem;margin-bottom:var(--space-4);animation:popIn .5s cubic-bezier(.34,1.56,.64,1)}.quiz-result .result-score{font-size:var(--font-size-4xl);font-weight:900;color:var(--primary-600);margin-bottom:var(--space-2)}.quiz-result .result-label{font-size:var(--font-size-xl);font-weight:700;color:var(--gray-600);margin-bottom:var(--space-6)}.quiz-result .result-details{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-6)}.step-indicator{display:flex;align-items:center;justify-content:center;gap:0;margin:var(--space-4) 0 var(--space-5);overflow-x:auto;padding:var(--space-2) 0}.step-dot{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;flex-shrink:0;transition:all var(--transition-normal)}.step-dot-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;background:var(--gray-100);color:var(--gray-400);border:2px solid var(--gray-200);transition:all var(--transition-normal)}.step-dot.active .step-dot-circle{background:var(--primary-500);color:#fff;border-color:var(--primary-500);box-shadow:0 0 0 4px #7c3aed26;transform:scale(1.1)}.step-dot.done .step-dot-circle{background:var(--success-500);color:#fff;border-color:var(--success-500)}.step-dot-label{font-size:10px;font-weight:700;color:var(--gray-400);white-space:nowrap}.step-dot.active .step-dot-label{color:var(--primary-600)}.step-dot.done .step-dot-label{color:var(--success-600)}.step-line{width:20px;height:2px;background:var(--gray-200);margin:0 2px 18px;flex-shrink:0}.step-line.done{background:var(--success-400)}.step-header{text-align:center;margin-bottom:var(--space-4)}.step-badge{display:inline-block;padding:2px 10px;font-size:var(--font-size-xs);font-weight:800;color:var(--primary-600);background:var(--primary-50);border-radius:var(--radius-full);margin-bottom:var(--space-2)}.step-title{display:block;font-size:var(--font-size-xl);font-weight:800;color:var(--gray-800);margin-bottom:var(--space-1)}.step-desc{font-size:var(--font-size-sm);color:var(--gray-400);margin:0}.step-nav{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--gray-100)}.step-content{min-height:200px}.tip-box{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--primary-50),#f0f0ff);border-left:4px solid var(--primary-400);font-size:var(--font-size-sm);color:var(--gray-600);line-height:1.6}.dictation-item{transition:all var(--transition-normal)}.dictation-item input:focus{border-color:var(--primary-400)!important;outline:none}.recite-card{transition:all var(--transition-normal)}.recite-card:hover{box-shadow:var(--shadow-md)}.quiz-options{display:flex;flex-direction:column;gap:var(--space-2)}.quiz-option-btn{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--gray-200);border-radius:var(--radius-lg);background:var(--bg-card);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:600;color:var(--gray-700);cursor:pointer;text-align:left;transition:all var(--transition-normal)}.quiz-option-btn:hover{border-color:var(--primary-300);background:var(--primary-50)}.quiz-option-btn:active{transform:scale(.98)}.quiz-option-btn.correct{border-color:var(--success-400);background:var(--success-50);color:var(--success-600)}.quiz-option-btn.wrong{border-color:var(--danger-400);background:var(--danger-50);color:var(--danger-500);animation:shake .5s}.quiz-option-btn:disabled{cursor:not-allowed;opacity:.7}.review-card{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-radius:var(--radius-xl);padding:var(--space-5);margin-bottom:var(--space-4);border:2px solid #f9a8d4}.review-card .review-title{font-weight:800;color:#be185d;font-size:var(--font-size-lg);margin-bottom:var(--space-3)}.review-list{display:flex;flex-direction:column;gap:var(--space-2)}.review-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-card);border-radius:var(--radius-lg);text-decoration:none;color:var(--gray-700);font-weight:600;font-size:var(--font-size-sm);transition:all var(--transition-normal)}.review-item:hover{transform:translate(4px)}.review-item .review-badge{padding:2px 8px;background:#f472b6;color:#fff;border-radius:var(--radius-full);font-size:10px;font-weight:800}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background:var(--bg-gradient);background-attachment:fixed;color:var(--gray-800);line-height:1.6;overflow-x:hidden;min-height:100vh}a{text-decoration:none;color:inherit}button{font-family:var(--font-family)}img{max-width:100%;display:block}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-height);background:var(--bg-nav);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(180,120,80,.08);display:flex;align-items:center;justify-content:space-around;padding:0 var(--space-4);padding-bottom:env(safe-area-inset-bottom,0px);z-index:100;box-shadow:0 -4px 20px #0000000a}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);transition:all var(--transition-normal);-webkit-tap-highlight-color:transparent;min-width:60px}.nav-item .nav-icon{font-size:1.4rem;line-height:1;transition:transform var(--transition-bounce)}.nav-item .nav-label{font-size:var(--font-size-xs);font-weight:700;color:var(--gray-400);transition:color var(--transition-normal)}.nav-item.active .nav-icon{transform:scale(1.15)}.nav-item.active .nav-label{color:var(--primary-600)}.nav-item.active{background:var(--primary-50)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:var(--radius-full)}@media (min-width: 768px){.page{max-width:720px;padding:var(--space-6)}.bottom-nav{max-width:720px;left:50%;transform:translate(-50%);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.dialogue-bubble{max-width:75%}.lesson-page .lesson-hero{padding:var(--space-8)}}@media (min-width: 1024px){.page{max-width:960px;padding:var(--space-5) var(--space-6)}.page-container{padding-bottom:var(--space-4);padding-top:calc(var(--nav-height) + var(--space-4))}.bottom-nav{top:0;bottom:auto;left:0;right:0;max-width:100%;transform:none;border-radius:0;border-top:none;border-bottom:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px #0000000a;justify-content:center;gap:var(--space-6)}.nav-item{flex-direction:row;gap:var(--space-2);padding:var(--space-2) var(--space-4)}.lesson-sticky-top{top:var(--nav-height);margin:0 calc(-1 * var(--space-6));padding-left:var(--space-6);padding-right:var(--space-6)}.lesson-sticky-top .lesson-img{max-height:260px;max-width:400px}.lesson-title-bar{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-4)}.home-page .welcome-card{padding:var(--space-4) var(--space-5)}.home-page .welcome-card .student-name{font-size:var(--font-size-2xl)}.home-page .continue-card{padding:var(--space-4)}.home-page .quick-links{grid-template-columns:repeat(4,1fr)}.stat-card{padding:var(--space-3)}.stat-card .stat-value{font-size:var(--font-size-2xl)}.dialogue-bubble{max-width:65%;padding:var(--space-2) var(--space-3)}.dialogue-bubble .en-text{font-size:var(--font-size-base)}.dialogue-list{gap:var(--space-3)}.lesson-list,.vocab-list{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.step-dot-circle{width:38px;height:38px;font-size:.95rem}.step-line{width:28px}.step-title{font-size:var(--font-size-lg)}.btn-block{max-width:400px;margin-left:auto;margin-right:auto}.card{padding:var(--space-3) var(--space-4)}.quiz-options{display:grid;grid-template-columns:repeat(2,1fr)}.option-list{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.quiz-result .result-details{max-width:600px;margin-left:auto;margin-right:auto}.speed-control{gap:var(--space-3)}.record-btn{width:68px;height:68px;font-size:1.6rem}.note-editor{max-width:600px}}@media (min-width: 1280px){.page{max-width:1060px}.home-page .quick-links{grid-template-columns:repeat(5,1fr)}.lesson-illustration img{max-width:400px!important}}
