@tailwind base;@tailwind components;@tailwind utilities;body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:linear-gradient(to bottom,#f0f9ff,#e0f2fe);min-height:100vh}.floating-navigation{position:fixed;bottom:0;left:0;right:0;z-index:1000;padding:0 16px 20px;pointer-events:none}.nav-container{max-width:480px;margin:0 auto;pointer-events:auto}.nav-items{position:relative;display:flex;justify-content:space-around;align-items:center;background:#fffffff2;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-radius:24px;padding:8px 12px;box-shadow:0 10px 40px #0000001f,0 4px 12px #00000014,inset 0 1px #fffc;border:1px solid rgba(255,255,255,.6)}.nav-indicator{position:absolute;bottom:4px;left:0;width:20%;height:3px;background:linear-gradient(90deg,#8b5cf6,#ec4899);border-radius:2px;transition:transform .4s cubic-bezier(.34,1.56,.64,1);box-shadow:0 0 12px #8b5cf699}.nav-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:10px 8px;text-decoration:none;transition:all .3s cubic-bezier(.34,1.56,.64,1);cursor:pointer;-webkit-tap-highlight-color:transparent}.nav-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:4px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.icon-bg{position:absolute;width:0;height:0;background:var(--item-color);border-radius:50%;opacity:0;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.nav-icon{position:relative;z-index:1;width:24px;height:24px;color:#64748b;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.nav-label{font-size:11px;font-weight:600;color:#64748b;transition:all .3s cubic-bezier(.34,1.56,.64,1);letter-spacing:.3px}.nav-ripple{position:absolute;width:100%;height:100%;border-radius:16px;background:var(--item-color);opacity:0;transform:scale(.8);transition:all .4s ease-out;pointer-events:none}.nav-item.active .nav-icon-wrapper{transform:translateY(-8px) scale(1.1)}.nav-item.active .icon-bg{width:48px;height:48px;opacity:.15}.nav-item.active .nav-icon{color:var(--item-color);transform:scale(1.1);filter:drop-shadow(0 2px 8px rgba(139,92,246,.3))}.nav-item.active .nav-label{color:var(--item-color);transform:scale(1.05);font-weight:700}.nav-item:hover .nav-icon-wrapper{transform:translateY(-4px) scale(1.05)}.nav-item:hover .icon-bg{width:48px;height:48px;opacity:.1}.nav-item:hover .nav-icon,.nav-item:hover .nav-label{color:var(--item-color)}.nav-item:active .nav-ripple{opacity:.2;transform:scale(1)}.nav-item:active .nav-icon-wrapper{transform:translateY(-6px) scale(1.05)}@media(max-width:375px){.nav-icon-wrapper{width:40px;height:40px}.nav-icon{width:20px;height:20px}.nav-label{font-size:10px}.nav-item{padding:8px 4px}}@media(prefers-color-scheme:dark){.nav-items{background:#1e1e1ef2;border:1px solid rgba(255,255,255,.1)}.nav-icon,.nav-label{color:#94a3b8}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.nav-item.active .icon-bg{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@supports (backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px)){.nav-items{background:#ffffffb3}@media(prefers-color-scheme:dark){.nav-items{background:#1e1e1eb3}}}@media(hover:none){.nav-item:hover .nav-icon-wrapper{transform:none}.nav-item:hover .icon-bg{width:0;height:0;opacity:0}}.install-prompt{position:fixed;bottom:80px;left:1rem;right:1rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:1rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:0 4px 16px #3b82f64d;z-index:1000;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100px);opacity:0}to{transform:translateY(0);opacity:1}}.install-content{display:flex;align-items:center;gap:1rem;flex:1}.install-icon{width:48px;height:48px;background:#fff3;border-radius:.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.install-text h3{font-size:1rem;font-weight:600;margin:0 0 .25rem}.install-text p{font-size:.875rem;margin:0;opacity:.9}.install-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.install-btn{background:#fff;color:#2563eb;border:none;border-radius:.5rem;padding:.5rem 1.5rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #0000001a}.install-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.dismiss-btn{background:#fff3;border:none;border-radius:.5rem;padding:.5rem;color:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.dismiss-btn:hover{background:#ffffff4d}@media(max-width:640px){.install-prompt{flex-direction:column;align-items:stretch}.install-actions{justify-content:space-between;width:100%}.install-btn{flex:1}}.home-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem;padding-bottom:80px}.home-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 1rem;margin-bottom:1rem}.welcome-section h1{font-size:1.75rem;font-weight:700;color:#fff;margin:0 0 .5rem}.welcome-section p{font-size:1rem;color:#ffffffe6;margin:0}.sparkles-icon{color:#fbbf24;animation:sparkle 2s infinite}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(1.2) rotate(180deg);opacity:.8}}.progress-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem}.progress-card{background:#fff;border-radius:1rem;padding:1rem;display:flex;align-items:center;gap:.75rem;box-shadow:0 4px 12px #0000001a;transition:transform .2s}.progress-card:hover{transform:translateY(-2px)}.progress-icon{font-size:2rem}.progress-info{flex:1}.progress-value{font-size:1.25rem;font-weight:700;color:#1f2937}.progress-label{font-size:.75rem;color:#6b7280}.section{margin-bottom:1.5rem}.section-title{font-size:1.25rem;font-weight:600;color:#fff;margin:0 0 1rem;padding:0 .5rem}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.action-card{background:#fff;border-radius:1rem;padding:1.5rem;text-align:center;cursor:pointer;border-left:4px solid;transition:all .3s;box-shadow:0 4px 12px #0000001a}.action-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 8px 24px #00000026}.action-icon{width:64px;height:64px;margin:0 auto .75rem;border-radius:1rem;display:flex;align-items:center;justify-content:center;font-size:2rem}.action-name{font-size:1rem;font-weight:600;color:#1f2937;margin-bottom:.25rem}.action-desc{font-size:.875rem;color:#6b7280}.features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.feature-card{background:#fffffff2;border-radius:1rem;padding:1.5rem;text-align:center;box-shadow:0 4px 12px #0000001a}.feature-icon{margin-bottom:.75rem}.feature-title{font-size:1rem;font-weight:600;color:#1f2937;margin-bottom:.25rem}.feature-desc{font-size:.875rem;color:#6b7280}.daily-task-card{background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 4px 12px #0000001a;margin-bottom:1rem}.task-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;color:#3b82f6}.task-header h3{font-size:1.125rem;font-weight:600;margin:0;color:#1f2937}.task-list{display:flex;flex-direction:column;gap:.75rem}.task-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f9fafb;border-radius:.5rem}.task-item input[type=checkbox]{width:20px;height:20px;cursor:pointer}.task-item span:nth-child(2){flex:1;color:#1f2937;font-size:.875rem}.task-reward{font-weight:600;color:#f59e0b;font-size:.875rem}.test-btn{width:100%;padding:1rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:.75rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #10b9814d}.test-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10b98166}@media(max-width:640px){.home-header{padding:1.5rem .5rem}.progress-cards{grid-template-columns:repeat(3,1fr);gap:.5rem}.progress-card{padding:.75rem;flex-direction:column;text-align:center}.progress-icon{font-size:1.5rem}.progress-value{font-size:1rem}.quick-actions,.features-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.action-card{padding:1rem}.action-icon{width:48px;height:48px;font-size:1.5rem}}.study-page{min-height:100vh;background:linear-gradient(180deg,#f8fafc,#e2e8f0);padding:20px 20px 100px}.study-header{margin-bottom:24px}.header-content{text-align:center;margin-bottom:20px}.header-title{display:flex;align-items:center;justify-content:center;gap:12px;font-size:32px;font-weight:800;color:#1e293b;margin-bottom:8px;letter-spacing:-.5px}.title-emoji{font-size:36px;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.header-subtitle{font-size:15px;color:#64748b;font-weight:500}.stats-bar{display:flex;justify-content:center;gap:16px;padding:12px 20px;background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000f}.stat-item{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#475569}.stat-item svg{color:#3b82f6}.subjects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.subject-card{position:relative;background:#fff;border-radius:20px;padding:20px;overflow:hidden;cursor:pointer;box-shadow:0 4px 12px #00000014,0 2px 4px #0000000a;transition:all .4s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent}.subject-card:active{transform:scale(.96)}.card-gradient{position:absolute;top:0;left:0;right:0;height:100px;opacity:.15;transition:all .4s ease;border-radius:20px 20px 0 0}.decoration-circles{position:absolute;top:0;left:0;right:0;height:100px;overflow:hidden;pointer-events:none}.circle{position:absolute;background:#fff;border-radius:50%;opacity:.2}.circle-1{width:60px;height:60px;top:-20px;right:20px}.circle-2{width:40px;height:40px;top:40px;right:80px}.circle-3{width:30px;height:30px;top:10px;left:20px}.card-content{position:relative;z-index:1}.card-icon-wrapper{position:relative;width:64px;height:64px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center}.icon-bg{position:absolute;width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;opacity:.1;transition:all .3s ease}.card-icon{position:relative;width:32px;height:32px;color:#1e293b;z-index:1;transition:all .3s ease}.icon-emoji{position:absolute;top:-8px;right:-8px;font-size:24px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.card-title{font-size:18px;font-weight:700;color:#1e293b;margin-bottom:6px;text-align:center;letter-spacing:-.3px}.card-description{font-size:12px;color:#64748b;text-align:center;margin-bottom:16px;font-weight:500}.progress-section{margin-top:16px}.progress-bar{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:3px;transition:width .6s cubic-bezier(.34,1.56,.64,1);box-shadow:0 0 8px #3b82f666}.progress-info{display:flex;justify-content:space-between;font-size:11px;font-weight:600}.progress-text{color:#3b82f6}.lessons-count{color:#94a3b8}.card-shimmer{position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);opacity:0;transform:rotate(45deg);transition:opacity .3s ease}.subject-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 12px 24px #0000001f,0 6px 12px #00000014}.subject-card:hover .card-gradient{opacity:.25;height:120px}.subject-card:hover .icon-bg{opacity:.2;transform:scale(1.1) rotate(5deg)}.subject-card:hover .card-icon{transform:scale(1.1) rotate(-5deg);color:#3b82f6}.subject-card:hover .card-shimmer{opacity:1;animation:shimmer 1.5s ease-in-out}@keyframes shimmer{0%{transform:translate(-100%) translateY(-100%) rotate(45deg)}to{transform:translate(100%) translateY(100%) rotate(45deg)}}.quick-actions{display:flex;gap:12px}.action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;border:none;border-radius:16px;font-size:15px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 12px #00000014}.action-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.action-btn.secondary{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.btn-icon{font-size:20px}.action-btn:hover{transform:translateY(-4px);box-shadow:0 8px 20px #00000026}.action-btn:active{transform:translateY(-2px)}@media(max-width:375px){.subjects-grid{gap:12px}.subject-card{padding:16px}.card-icon-wrapper{width:56px;height:56px}.card-icon{width:28px;height:28px}.card-title{font-size:16px}.card-description{font-size:11px}}@media(min-width:768px){.study-page{max-width:600px;margin:0 auto}.subjects-grid{grid-template-columns:repeat(2,1fr);gap:20px}}@media(prefers-color-scheme:dark){.study-page{background:linear-gradient(180deg,#1e293b,#0f172a)}.subject-card{background:#1e293b;box-shadow:0 4px 12px #0000004d}.stats-bar{background:#1e293b}.card-title{color:#f1f5f9}.card-description{color:#94a3b8}.header-title{color:#f1f5f9}}.word-card-container{display:flex;flex-direction:column;align-items:center;gap:30px;padding:20px;max-width:500px;margin:0 auto}.word-card{width:100%;height:450px;position:relative;cursor:pointer;perspective:1000px}.word-card .card-front,.word-card .card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:20px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 10px 40px #00000026;transition:transform .6s ease}.card-front{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;transform:rotateY(0)}.word-card.flipped .card-front{transform:rotateY(180deg)}.card-back{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;transform:rotateY(-180deg)}.word-card.flipped .card-back{transform:rotateY(0)}.word-header{display:flex;justify-content:flex-end}.speak-btn{background:#fff3;border:none;border-radius:50%;width:60px;height:60px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;color:#fff}.speak-btn:hover{background:#ffffff4d;transform:scale(1.1)}.speak-btn svg{width:28px;height:28px}.word-main{text-align:center}.word-text{font-size:48px;font-weight:700;margin:0;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.phonetic{font-size:24px;margin:10px 0;opacity:.9;font-style:italic}.sentences-section{flex:1;overflow-y:auto;max-height:200px;margin:20px 0}.load-sentences-btn{width:100%;padding:15px;background:#ffffff40;border:2px dashed rgba(255,255,255,.5);border-radius:15px;color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:8px}.load-sentences-btn:hover:not(:disabled){background:#ffffff59;border-color:#fff;transform:translateY(-2px)}.load-sentences-btn:disabled{opacity:.6;cursor:not-allowed}.sentences-list{display:flex;flex-direction:column;gap:8px}.sentence{background:#fff3;padding:10px 12px;border-radius:10px;font-size:14px;line-height:1.5;border-left:3px solid rgba(255,255,255,.5);text-align:left}.meaning-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.part-of-speech{display:inline-block;background:#ffffff4d;padding:5px 15px;border-radius:20px;font-size:14px;margin-bottom:10px}.meaning{font-size:32px;font-weight:700;margin:10px 0}.theme-tag{margin-top:15px;padding:8px 16px;background:#ffffff40;border-radius:20px;font-size:14px}.word-footer{text-align:center}.hint{font-size:14px;opacity:.9;margin:0;padding:8px 16px;background:#fff3;border-radius:20px;display:inline-block;white-space:nowrap;animation:hintPulse 2s ease-in-out infinite}@keyframes hintPulse{0%,to{opacity:.9;transform:scale(1)}50%{opacity:.7;transform:scale(1.02)}}.action-buttons{display:flex;gap:20px;width:100%}.action-btn{flex:1;padding:15px 30px;border:none;border-radius:15px;font-size:16px;font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;transition:all .3s;box-shadow:0 5px 15px #0000001a}.action-btn.need-review{background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff}.action-btn.mastered{background:linear-gradient(135deg,#51cf66,#37b24d);color:#fff}.action-btn:hover{transform:translateY(-3px);box-shadow:0 8px 20px #0003}.action-btn span{font-size:14px}.sentences-section::-webkit-scrollbar{width:6px}.sentences-section::-webkit-scrollbar-track{background:#ffffff1a;border-radius:10px}.sentences-section::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:10px}.sentences-section::-webkit-scrollbar-thumb:hover{background:#ffffff80}@media(max-width:600px){.word-card{height:400px}.word-text{font-size:36px}.phonetic{font-size:20px}.meaning{font-size:28px}.action-buttons{flex-direction:column}.speak-btn{width:55px;height:55px}.speak-btn svg{width:26px;height:26px}}.word-card-container{max-width:600px;margin:0 auto;width:100%}.word-card{max-width:500px;margin:0 auto}.action-buttons{max-width:500px;margin:0 auto;width:100%}.card-front,.card-back{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}@media(max-width:768px){.word-card-container,.word-card,.action-buttons{max-width:100%}}.word-card-container{display:flex!important;flex-direction:column!important;align-items:center!important;max-width:600px!important;margin:0 auto!important;width:100%!important}.word-card{max-width:500px!important;margin:0 auto!important;width:100%!important}.action-buttons{display:flex!important;max-width:500px!important;margin:0 auto!important;width:100%!important}.encouragement-toast{position:fixed;top:30%;left:50%;transform:translate(-50%);z-index:10000;pointer-events:none}.toast-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px 40px;border-radius:50px;font-size:32px;font-weight:700;box-shadow:0 10px 40px #667eea80;text-shadow:2px 2px 4px rgba(0,0,0,.2);animation:pulse .5s ease-in-out}.word-import-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.word-import-modal{background:#fff;border-radius:20px;width:90%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.import-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:2px solid #f0f0f0}.import-header h2{font-size:24px;color:#2c3e50;margin:0}.close-btn{background:none;border:none;cursor:pointer;color:#7f8c8d;transition:all .2s;padding:8px;border-radius:8px}.close-btn:hover{background:#f0f0f0;color:#2c3e50}.import-mode-tabs{display:flex;gap:8px;padding:16px 28px;border-bottom:2px solid #f0f0f0}.mode-tab{flex:1;padding:12px 20px;border:2px solid #e0e0e0;border-radius:12px;background:#fff;cursor:pointer;font-size:15px;font-weight:600;color:#7f8c8d;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease}.mode-tab:hover{border-color:#667eea;color:#667eea;transform:translateY(-2px)}.mode-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea}.import-content{padding:24px 28px;overflow-y:auto;max-height:300px}.manual-import{display:flex;flex-direction:column;gap:16px}.import-hint{background:#e8f5e9;color:#2e7d32;padding:12px 16px;border-radius:8px;font-size:14px;border-left:4px solid #4caf50;margin:0}.word-textarea{width:100%;padding:16px;border:2px solid #e0e0e0;border-radius:12px;font-size:16px;font-family:Arial,sans-serif;resize:vertical;transition:all .3s ease}.word-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.parse-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;padding:14px 24px;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .3s ease;align-self:flex-end}.parse-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.parse-btn:disabled{background:#bdc3c7;cursor:not-allowed}.csv-import{display:flex;flex-direction:column;gap:16px}.upload-area{border:2px dashed #667eea;border-radius:16px;padding:40px;text-align:center;background:linear-gradient(135deg,#667eea10,#764ba210)}.upload-icon{color:#667eea;margin-bottom:16px}.upload-area h3{font-size:20px;color:#2c3e50;margin:0 0 8px}.upload-area p{color:#7f8c8d;font-size:14px;margin:0 0 20px}.upload-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;padding:12px 32px;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .3s ease}.upload-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.template-btn{background:#fff;color:#667eea;border:2px solid #667eea;border-radius:12px;padding:12px 24px;font-size:15px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .3s ease;align-self:center}.template-btn:hover{background:#667eea;color:#fff}.words-preview{padding:0 28px 24px;display:flex;flex-direction:column;gap:16px;flex:1;overflow:hidden}.preview-header{display:flex;justify-content:space-between;align-items:center}.preview-header h3{font-size:18px;color:#2c3e50;margin:0}.fetch-btn{background:linear-gradient(135deg,#6bcf7f,#4fd166);color:#fff;border:none;border-radius:12px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .3s ease}.fetch-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #6bcf7f66}.fetch-btn:disabled{background:#bdc3c7;cursor:not-allowed}.words-list{overflow-y:auto;display:flex;flex-direction:column;gap:12px;max-height:300px;padding-right:8px}.words-list::-webkit-scrollbar{width:6px}.words-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.words-list::-webkit-scrollbar-thumb{background:#667eea;border-radius:10px}.word-item{background:#f8f9fa;border:2px solid #e0e0e0;border-radius:12px;padding:16px;position:relative;transition:all .3s ease}.word-item.success{border-color:#6bcf7f;background:#f0fdf4}.word-item:hover{box-shadow:0 4px 12px #0000001a}.word-main{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin-bottom:12px}.word-details{display:grid;grid-template-columns:1fr 2fr;gap:12px}.word-input,.translation-input,.phonetic-input,.example-input{padding:10px 12px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;transition:all .2s}.word-input{font-weight:600;color:#2c3e50}.translation-input{color:#34495e}.phonetic-input{font-family:Courier New,monospace;color:#667eea}.example-input{color:#7f8c8d;font-style:italic}.word-input:focus,.translation-input:focus,.phonetic-input:focus,.example-input:focus{outline:none;border-color:#667eea;background:#fff}.remove-word-btn{position:absolute;top:12px;right:12px;background:#ff4757;color:#fff;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.remove-word-btn:hover{background:#ee5a6f;transform:scale(1.1)}.import-footer{display:flex;gap:12px;padding:20px 28px;border-top:2px solid #f0f0f0}.cancel-btn{flex:1;background:#fff;color:#7f8c8d;border:2px solid #e0e0e0;border-radius:12px;padding:14px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.cancel-btn:hover{border-color:#7f8c8d;color:#2c3e50}.import-confirm-btn{flex:2;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;padding:14px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease}.import-confirm-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.import-confirm-btn:disabled{background:#bdc3c7;cursor:not-allowed}@media(max-width:768px){.word-import-modal{width:95%;max-height:95vh}.import-header,.import-mode-tabs,.import-content,.words-preview,.import-footer{padding-left:20px;padding-right:20px}.word-main,.word-details{grid-template-columns:1fr}.import-footer{flex-direction:column}.cancel-btn,.import-confirm-btn{flex:1}}.audio-listening-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.audio-listening-modal{background:#fff;border-radius:24px;width:90%;max-width:900px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-bottom:2px solid #f0f0f0;background:linear-gradient(135deg,#667eea10,#764ba210)}.modal-header h2{font-size:26px;color:#2c3e50;margin:0}.modal-content{flex:1;overflow-y:auto;padding:32px}.upload-area{border:3px dashed #667eea;border-radius:20px;padding:60px;text-align:center;background:linear-gradient(135deg,#667eea05,#764ba205);cursor:pointer;transition:all .3s ease}.upload-area:hover{border-color:#764ba2;background:linear-gradient(135deg,#667eea10,#764ba210);transform:scale(1.02)}.upload-icon{color:#667eea;margin-bottom:20px}.upload-area h3{font-size:22px;color:#2c3e50;margin:0 0 12px}.upload-area p{color:#7f8c8d;margin:0 0 24px}.upload-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:16px;padding:14px 32px;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .3s ease}.upload-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.audio-player-section{text-align:center}.audio-info{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:32px;padding:24px;background:#f8f9fa;border-radius:16px}.audio-icon{color:#667eea}.file-info h4{margin:0 0 4px;color:#2c3e50;font-size:18px}.file-info p{margin:0;color:#7f8c8d;font-size:14px}.play-btn{background:linear-gradient(135deg,#6bcf7f,#4fd166);color:#fff;border:none;border-radius:50px;padding:16px 40px;font-size:18px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:12px;margin-bottom:20px;transition:all .3s ease}.play-btn:hover{transform:scale(1.05);box-shadow:0 8px 24px #6bcf7f66}.analyze-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:16px;padding:14px 32px;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .3s ease}.analyze-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.analyzing-section{text-align:center;padding:60px}.spinning{color:#667eea;animation:spin 1.5s linear infinite;margin-bottom:24px}.analyzing-section h3{font-size:22px;color:#2c3e50;margin:0 0 12px}.analyzing-section p{color:#7f8c8d;font-size:16px}.listening-practice{display:flex;flex-direction:column;gap:24px}.audio-control{background:linear-gradient(135deg,#667eea10,#764ba210);padding:20px;border-radius:16px;text-align:center}.control-btn{background:linear-gradient(135deg,#6bcf7f,#4fd166);color:#fff;border:none;border-radius:12px;padding:12px 28px;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .3s ease}.control-btn:hover{transform:scale(1.05)}.ai-transcript{background:#f8f9fa;border-radius:16px;overflow:hidden}.ai-transcript summary{padding:16px 20px;cursor:pointer;font-weight:600;color:#667eea;-webkit-user-select:none;user-select:none;background:#fff;border-bottom:2px solid #f0f0f0}.ai-transcript summary:hover{background:#f8f9fa}.transcript-content{padding:20px}.transcript-content h4{margin:0 0 8px;color:#2c3e50;font-size:16px}.english-text{line-height:1.8;color:#34495e;margin-bottom:20px;white-space:pre-line}.chinese-text{line-height:1.8;color:#7f8c8d;margin-bottom:20px;white-space:pre-line}.ai-info{display:flex;gap:12px;flex-wrap:wrap}.difficulty-tag{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 16px;border-radius:12px;font-size:13px;font-weight:600}.keywords{background:#e8f5e9;color:#2e7d32;padding:6px 16px;border-radius:12px;font-size:13px}.questions-section h3{font-size:20px;color:#2c3e50;margin-bottom:16px}.question-card{background:#fff;border:2px solid #e0e0e0;border-radius:16px;padding:24px;margin-bottom:16px;transition:all .3s ease}.question-card:hover{box-shadow:0 4px 16px #0000001a}.question-header{display:flex;justify-content:space-between;margin-bottom:16px}.q-number{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 14px;border-radius:12px;font-weight:700;font-size:14px}.q-type{color:#7f8c8d;font-size:13px;font-weight:600}.q-text{font-size:17px;color:#2c3e50;margin:0 0 8px;font-weight:500}.q-text-cn{font-size:15px;color:#7f8c8d;margin:0 0 20px;font-style:italic}.options{display:flex;flex-direction:column;gap:12px}.option-btn{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:14px 16px;text-align:left;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:12px;font-size:15px;color:#2c3e50}.option-btn:hover{border-color:#667eea;transform:translate(4px)}.option-btn.selected{background:linear-gradient(135deg,#667eea10,#764ba210);border-color:#667eea;font-weight:600}.opt-label{background:#f0f0f0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;font-size:13px;flex-shrink:0}.option-btn.selected .opt-label{background:#667eea;color:#fff}.tf-options{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tf-btn{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:16px;cursor:pointer;transition:all .3s ease;font-size:16px;font-weight:600;color:#2c3e50}.tf-btn:hover{border-color:#667eea;transform:scale(1.05)}.tf-btn.selected{background:linear-gradient(135deg,#667eea10,#764ba210);border-color:#667eea}.submit-btn{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:16px;padding:16px;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #667eea66}.submit-btn:disabled{background:#bdc3c7;cursor:not-allowed}.results-section{text-align:center}.score-display{margin-bottom:32px}.score-circle{width:140px;height:140px;margin:0 auto 20px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 12px 32px #667eea66;animation:popIn .6s cubic-bezier(.68,-.55,.265,1.55)}.score{font-size:52px;font-weight:800;color:#fff}.label{font-size:18px;color:#fff;font-weight:600}.answers-review{text-align:left;margin-bottom:24px}.review-card{background:#f8f9fa;border-radius:12px;padding:20px;margin-bottom:16px;border-left:4px solid #e0e0e0}.review-card.correct{border-left-color:#6bcf7f;background:#f0fdf4}.review-card.wrong{border-left-color:#ff4757;background:#fff5f5}.review-header{display:flex;justify-content:space-between;margin-bottom:12px;font-weight:700}.correct-badge{color:#2e7d32}.wrong-badge{color:#c62828}.review-question{font-size:16px;color:#2c3e50;margin-bottom:12px}.ai-explanation{background:#fff3cd;padding:16px;border-radius:8px;margin-top:12px}.ai-explanation strong{color:#856404;display:block;margin-bottom:8px}.ai-explanation p{color:#856404;margin:0 0 8px;line-height:1.6}.correct-ans{font-weight:600!important}.retry-btn{background:linear-gradient(135deg,#6bcf7f,#4fd166);color:#fff;border:none;border-radius:16px;padding:14px 32px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.retry-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6bcf7f66}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.modal-content{padding:20px}.tf-options{grid-template-columns:1fr}.upload-area{padding:40px 20px}}.story-library{min-height:100vh;background:linear-gradient(135deg,#ffecd2,#fcb69f,#ff9a9e);padding:20px}.story-library-view{max-width:1200px;margin:0 auto}.library-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.library-header h2{font-size:32px;color:#2c3e50;margin:0}.create-story-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:16px;padding:14px 28px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease}.create-story-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea66}.stories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.story-card{background:#fff;border-radius:20px;overflow:hidden;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #00000014}.story-card:hover{transform:translateY(-8px);box-shadow:0 12px 32px #00000026}.story-cover{background:linear-gradient(135deg,#667eea,#764ba2);height:180px;display:flex;align-items:center;justify-content:center;position:relative}.story-emoji{font-size:72px}.like-btn{position:absolute;top:12px;right:12px;background:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:#7f8c8d}.like-btn:hover,.like-btn.liked{color:#ff4757;transform:scale(1.1)}.story-info{padding:20px}.story-info h3{font-size:20px;color:#2c3e50;margin:0 0 8px}.story-title-cn{font-size:14px;color:#7f8c8d;margin:0 0 16px}.story-meta{display:flex;justify-content:space-between;align-items:center}.difficulty-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;color:#fff}.difficulty-badge.easy{background:#6bcf7f}.difficulty-badge.medium{background:#ffd93d;color:#2c3e50}.difficulty-badge.hard{background:#ff6b6b}.story-date{display:flex;align-items:center;gap:4px;font-size:12px;color:#7f8c8d}.empty-library{text-align:center;padding:80px 20px}.empty-icon{color:#bdc3c7;margin-bottom:20px}.empty-library h3{font-size:24px;color:#7f8c8d;margin:0 0 12px}.empty-library p{font-size:16px;color:#95a5a6}.story-create-view{max-width:700px;margin:0 auto}.create-header{display:flex;align-items:center;gap:16px;margin-bottom:32px}.create-header h2{font-size:28px;color:#2c3e50;margin:0}.back-btn{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:10px 20px;font-size:15px;font-weight:600;color:#7f8c8d;cursor:pointer;transition:all .3s ease}.back-btn:hover{border-color:#667eea;color:#667eea}.create-form{background:#fff;border-radius:20px;padding:40px;box-shadow:0 8px 24px #0000001a}.form-group{margin-bottom:28px}.form-group label{display:block;font-size:16px;font-weight:600;color:#2c3e50;margin-bottom:12px}.form-group input{width:100%;padding:14px 18px;border:2px solid #e0e0e0;border-radius:12px;font-size:16px;transition:all .3s ease}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.option-buttons{display:flex;gap:12px}.option-btn{flex:1;padding:12px 20px;border:2px solid #e0e0e0;border-radius:12px;background:#fff;font-size:15px;font-weight:600;color:#7f8c8d;cursor:pointer;transition:all .3s ease}.option-btn:hover{border-color:#667eea;color:#667eea}.option-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea}.generate-btn{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:16px;padding:18px;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .3s ease;margin-top:32px}.generate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #667eea66}.generate-btn:disabled{background:#bdc3c7;cursor:not-allowed}.spinning{animation:spin 1s linear infinite}.story-reading-view{max-width:900px;margin:0 auto}.reading-header{display:flex;justify-content:space-between;margin-bottom:24px}.story-content{background:#fff;border-radius:24px;padding:48px;box-shadow:0 8px 24px #0000001a}.story-header{text-align:center;margin-bottom:40px}.story-emoji-large{font-size:96px;display:block;margin-bottom:20px}.story-header h1{font-size:36px;color:#2c3e50;margin:0 0 12px}.title-cn{font-size:20px;color:#7f8c8d;margin:0}.reading-controls{display:flex;justify-content:center;margin-bottom:32px}.read-aloud-btn{background:linear-gradient(135deg,#6bcf7f,#4fd166);color:#fff;border:none;border-radius:50px;padding:14px 32px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease}.read-aloud-btn:hover{transform:scale(1.05);box-shadow:0 6px 20px #6bcf7f66}.story-text{margin-bottom:40px}.story-text h3{font-size:20px;color:#2c3e50;margin:32px 0 16px}.english-text{font-size:17px;line-height:2;color:#34495e;white-space:pre-line}.chinese-text{font-size:16px;line-height:2;color:#7f8c8d;white-space:pre-line}.vocabulary-section{background:#f8f9fa;padding:24px;border-radius:16px;margin-bottom:32px}.vocabulary-section h3{font-size:20px;color:#2c3e50;margin:0 0 16px}.vocab-list{display:flex;flex-wrap:wrap;gap:12px}.vocab-tag{background:#fff;color:#667eea;padding:8px 16px;border-radius:20px;font-size:15px;font-weight:600;border:2px solid #667eea}.questions-section{background:#e8f5e9;padding:24px;border-radius:16px}.questions-section h3{font-size:20px;color:#2c3e50;margin:0 0 20px}.question-item{background:#fff;padding:16px 20px;border-radius:12px;margin-bottom:12px;border-left:4px solid #6bcf7f}.question{font-size:16px;color:#2c3e50;font-weight:600;margin:0 0 8px}.answer{font-size:15px;color:#2e7d32;margin:0}@media(max-width:768px){.story-content{padding:32px 24px}.stories-grid{grid-template-columns:1fr}.create-form{padding:28px 20px}.option-buttons{flex-direction:column}}.ai-tutor-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s ease}.ai-tutor-container{background:#fff;border-radius:24px;width:90%;max-width:800px;height:85vh;overflow:hidden;box-shadow:0 24px 48px #0003;display:flex;flex-direction:column;animation:slideUp .4s cubic-bezier(.34,1.56,.64,1)}.tutor-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px 24px;display:flex;justify-content:space-between;align-items:center}.tutor-info{display:flex;align-items:center;gap:16px}.tutor-avatar{width:56px;height:56px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tutor-info h3{margin:0 0 4px;font-size:20px;font-weight:700}.tutor-status{margin:0;font-size:14px;opacity:.9}.tutor-controls{display:flex;gap:12px}.control-btn{background:#fff3;border:none;color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center}.control-btn:hover{background:#ffffff4d;transform:scale(1.1)}.close-btn{background:#fff3;border:none;color:#fff;font-size:28px;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;line-height:1}.messages-area{flex:1;padding:24px;overflow-y:auto;background:linear-gradient(135deg,#f9fafb,#e0e7ff);display:flex;flex-direction:column;gap:20px}.message{display:flex;gap:12px;animation:messageSlide .4s ease}.message.user{flex-direction:row-reverse}.message-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;box-shadow:0 4px 12px #667eea4d}.message-avatar.user-avatar{background:linear-gradient(135deg,#f093fb,#f5576c);font-size:20px}.emoji{font-size:24px}.message-content{max-width:70%;background:#fff;padding:16px 20px;border-radius:16px;box-shadow:0 2px 8px #00000014}.message.user .message-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.content-cn{margin:0 0 8px;font-size:16px;line-height:1.6;color:#1f2937}.message.user .content-cn{color:#fff}.content-en{margin:0;font-size:14px;color:#6b7280;font-style:italic;line-height:1.5}.message.user .content-en{color:#ffffffe6}.words-showcase{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.word-bubble{padding:8px 16px;background:linear-gradient(135deg,#e0e7ff,#ddd6fe);border-radius:20px;color:#667eea;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s}.word-bubble:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.examples-list{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:10px}.example-item{padding:12px 16px;background:#f9fafb;border-left:3px solid #667eea;border-radius:8px;font-size:14px;color:#4b5563;line-height:1.6}.next-step-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 28px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:24px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #667eea4d;align-self:center;margin-top:12px;animation:pulse 2s infinite}.next-step-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea66}.input-area{padding:20px 24px;background:#fff;border-top:1px solid #e5e7eb;display:flex;gap:12px}.message-input{flex:1;padding:14px 20px;border:2px solid #e5e7eb;border-radius:24px;font-size:15px;outline:none;transition:all .3s}.message-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.send-btn{width:48px;height:48px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #667eea4d}.send-btn:hover{transform:scale(1.1);box-shadow:0 6px 16px #667eea66}@keyframes messageSlide{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.messages-area::-webkit-scrollbar{width:6px}.messages-area::-webkit-scrollbar-track{background:transparent}.messages-area::-webkit-scrollbar-thumb{background:#c7d2fe;border-radius:3px}.messages-area::-webkit-scrollbar-thumb:hover{background:#a5b4fc}@media(max-width:768px){.ai-tutor-container{width:100%;height:100vh;border-radius:0}.message-content{max-width:85%}.tutor-header{padding:16px 20px}.tutor-info h3{font-size:18px}.messages-area{padding:20px 16px}}.textbook-analyzer-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s ease}.textbook-analyzer-modal{background:#fff;border-radius:24px;width:90%;max-width:900px;max-height:90vh;overflow:hidden;box-shadow:0 24px 48px #0003;animation:slideUp .4s cubic-bezier(.34,1.56,.64,1)}.modal-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:24px 32px;display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0;font-size:28px;font-weight:700}.close-btn{background:#fff3;border:none;color:#fff;font-size:32px;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;line-height:1}.close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.modal-content{padding:32px;max-height:calc(90vh - 96px);overflow-y:auto}.upload-section{padding:48px 0}.upload-area{border:3px dashed #c7d2fe;border-radius:16px;padding:64px 32px;text-align:center;background:linear-gradient(135deg,#f9fafb,#e0e7ff);transition:all .3s}.upload-area:hover{border-color:#667eea;background:linear-gradient(135deg,#e0e7ff,#ddd6fe)}.upload-area svg{color:#667eea;margin-bottom:24px}.upload-area h3{font-size:24px;color:#1f2937;margin:0 0 12px}.upload-area p{color:#6b7280;margin:0 0 32px;font-size:16px}.upload-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #667eea4d}.upload-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea66}.analyzing-section{text-align:center;padding:64px 32px}.analyzing-section svg.spinning{color:#667eea;animation:spin 1s linear infinite;margin-bottom:24px}.analyzing-section h3{font-size:24px;color:#1f2937;margin:0 0 48px}.analyzing-steps{display:flex;flex-direction:column;gap:16px;max-width:400px;margin:0 auto}.step{display:flex;align-items:center;gap:12px;padding:16px 24px;background:#f3f4f6;border-radius:12px;color:#9ca3af;transition:all .3s}.step.active{background:#e0e7ff;color:#667eea}.step svg{flex-shrink:0}.analysis-result{animation:fadeIn .5s ease}.book-info{display:flex;align-items:center;gap:24px;padding:24px;background:linear-gradient(135deg,#e0e7ff,#ddd6fe);border-radius:16px;margin-bottom:32px}.book-cover{width:80px;height:80px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#667eea;box-shadow:0 4px 12px #0000001a}.book-details h3{margin:0 0 8px;font-size:24px;color:#1f2937}.book-details p{margin:0 0 8px;color:#4b5563;font-size:16px}.page-count{display:inline-block;padding:4px 12px;background:#fff;border-radius:8px;font-size:14px;color:#667eea;font-weight:600}.units-list h4{font-size:20px;color:#1f2937;margin:0 0 20px}.units-list{display:flex;flex-direction:column;gap:16px}.unit-card{background:#fff;border:2px solid #e5e7eb;border-radius:16px;padding:20px;cursor:pointer;transition:all .3s}.unit-card:hover{border-color:#667eea;transform:translateY(-4px);box-shadow:0 8px 24px #667eea26}.unit-header h5{margin:0 0 4px;font-size:18px;color:#1f2937}.unit-title-cn{margin:0 0 16px;color:#6b7280;font-size:14px}.unit-topics{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.topic-tag{padding:6px 12px;background:linear-gradient(135deg,#e0e7ff,#ddd6fe);color:#667eea;border-radius:8px;font-size:13px;font-weight:600}.unit-stats{display:flex;gap:24px;font-size:14px;color:#6b7280;padding-top:12px;border-top:1px solid #e5e7eb}.unit-detail{animation:slideIn .4s ease}.back-btn{background:#f3f4f6;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-size:15px;color:#4b5563;margin-bottom:24px;transition:all .3s}.back-btn:hover{background:#e5e7eb}.unit-content h3{margin:0 0 8px;font-size:26px;color:#1f2937}.unit-subtitle{margin:0 0 32px;color:#6b7280;font-size:16px}.section{margin-bottom:32px}.section h4{font-size:18px;color:#1f2937;margin:0 0 16px}.key-points{list-style:none;padding:0;margin:0}.key-points li{padding:12px 16px 12px 48px;background:#f9fafb;border-left:4px solid #667eea;border-radius:8px;margin-bottom:12px;position:relative;color:#4b5563}.key-points li:before{content:"✓";position:absolute;left:16px;color:#667eea;font-weight:700;font-size:18px}.vocab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.vocab-item{padding:10px 16px;background:linear-gradient(135deg,#e0e7ff,#ddd6fe);border-radius:8px;text-align:center;font-weight:600;color:#667eea;font-size:15px}.grammar-list{display:flex;flex-direction:column;gap:12px}.grammar-item{padding:14px 20px;background:#fff;border:2px solid #e5e7eb;border-radius:8px;color:#4b5563;font-size:15px}.start-learning-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #667eea4d;margin-top:32px}.start-learning-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea66}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideIn{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:768px){.textbook-analyzer-modal{width:95%;max-height:95vh}.modal-header{padding:20px 24px}.modal-header h2{font-size:22px}.modal-content{padding:24px 20px}.vocab-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.unit-stats{flex-direction:column;gap:8px}}.listening-training{width:100%;min-height:100vh;padding-bottom:80px}.mode-header h2{font-size:28px;margin:10px 0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.mode-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#667eea1a,#764ba21a);opacity:0;transition:opacity .3s ease}.mode-card:hover{transform:translateY(-5px);box-shadow:0 12px 24px #667eea4d}.feature-tag{background:#667eea1a;color:#667eea;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:500}.word-mode{border-color:#4caf50}.word-mode:hover{border-color:#4caf50;box-shadow:0 12px 24px #4caf504d}.sentence-mode{border-color:#2196f3}.sentence-mode:hover{border-color:#2196f3;box-shadow:0 12px 24px #2196f34d}.dialogue-mode{border-color:#ff9800}.dialogue-mode:hover{border-color:#ff9800;box-shadow:0 12px 24px #ff98004d}.passage-mode{border-color:#9c27b0}.passage-mode:hover{border-color:#9c27b0;box-shadow:0 12px 24px #9c27b04d}.training-view{padding:20px;max-width:600px;margin:0 auto}.training-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.training-progress{display:flex;flex-direction:column;align-items:flex-end}.score-text{font-size:13px;color:#667eea;font-weight:500}.audio-player-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;padding:32px;margin-bottom:24px;text-align:center;box-shadow:0 8px 24px #667eea4d}.audio-wave{height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:20px;gap:12px}.audio-icon{color:#fff;opacity:.9}.wave-bars{display:flex;gap:6px;align-items:center;height:60px}.wave-bars span{width:4px;background:#fff;border-radius:4px;animation:wave 1s ease-in-out infinite}.wave-bars span:nth-child(1){animation-delay:0s}.wave-bars span:nth-child(2){animation-delay:.1s}.wave-bars span:nth-child(3){animation-delay:.2s}.wave-bars span:nth-child(4){animation-delay:.3s}.wave-bars span:nth-child(5){animation-delay:.4s}@keyframes wave{0%,to{height:20px}50%{height:60px}}.current-speaker{color:#fff;font-size:15px;font-weight:600;padding:6px 16px;background:#fff3;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:speakerPulse 1.5s ease-in-out infinite;border:1px solid rgba(255,255,255,.3)}@keyframes speakerPulse{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.audio-controls{display:flex;flex-direction:column;align-items:center;gap:12px}.play-btn{background:#fff;color:#667eea;border:none;border-radius:50px;padding:12px 32px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease;box-shadow:0 4px 12px #0000001a}.play-btn:hover{transform:scale(1.05);box-shadow:0 6px 16px #00000026}.play-btn.playing{background:#fff3;color:#fff}.play-count{color:#fff;font-size:13px;opacity:.9}.hint-box{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:12px 16px;color:#fff;font-size:14px;margin-top:16px;border:1px solid rgba(255,255,255,.3)}.answer-area{background:#fff;border-radius:20px;padding:24px;box-shadow:0 4px 16px #00000014}.input-area{margin-bottom:24px}.input-label{display:block;font-size:15px;font-weight:600;color:#333;margin-bottom:12px}.answer-input{width:100%;padding:16px;border:2px solid #e0e0e0;border-radius:12px;font-size:16px;transition:all .3s ease;font-family:Courier New,monospace}.answer-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.answer-input:disabled{background:#f5f5f5;cursor:not-allowed}.options-area{margin-bottom:24px}.question-text{font-size:17px;font-weight:600;color:#333;margin-bottom:8px}.question-translation{font-size:13px;color:#666;margin-bottom:20px}.option-btn{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:16px;text-align:left;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:12px;font-size:15px;color:#333}.option-btn:hover:not(:disabled){border-color:#667eea;background:#667eea0d}.option-btn.selected{border-color:#667eea;background:#667eea1a}.option-btn.correct{border-color:#4caf50;background:#4caf501a}.option-btn.wrong{border-color:#f44336;background:#f443361a}.option-btn:disabled{cursor:not-allowed}.option-label{background:#667eea;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.option-btn.correct .option-label{background:#4caf50}.option-btn.wrong .option-label{background:#f44336}.result-card{background:#fff;border-radius:16px;padding:24px;margin-bottom:20px;text-align:center;border:2px solid;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.correct-result{border-color:#4caf50;background:#4caf500d}.wrong-result{border-color:#f44336;background:#f443360d}.result-icon{font-size:48px;margin-bottom:12px}.result-card h3{font-size:20px;margin:8px 0}.correct-answer{font-size:16px;font-weight:600;color:#333;margin:12px 0;padding:12px;background:#00000008;border-radius:8px;font-family:Courier New,monospace}.translation-text{color:#666;font-size:14px;margin-top:8px}.action-buttons{display:flex;gap:12px}.submit-btn,.next-btn{flex:1;padding:16px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease}.submit-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #667eea4d}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.next-btn{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.result-title{font-size:28px;margin:16px 0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.result-stats{display:flex;justify-content:center;align-items:center;gap:24px;margin:32px 0;padding:24px;background:#667eea0d;border-radius:16px}.stat-value{font-size:32px;font-weight:700;color:#667eea;margin-bottom:4px}.retry-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.change-mode-btn{background:#fff;color:#667eea;border:2px solid #667eea}.retry-btn:hover,.change-mode-btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px #667eea33}.back-btn{background:transparent;border:none;color:#667eea;font-size:16px;font-weight:600;cursor:pointer;padding:8px 16px;transition:all .3s ease}.back-btn:hover{background:#667eea1a;border-radius:8px}@media(max-width:480px){.mode-cards{grid-template-columns:1fr}.result-container{padding:32px 24px}.result-stats{gap:16px}}.speaking-practice{width:100%;min-height:100vh;padding-bottom:80px}.mode-selection{padding:20px}.mode-header{text-align:center;margin-bottom:30px}.mode-header h2{font-size:28px;margin:10px 0;background:linear-gradient(135deg,#f093fb,#f5576c);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.mode-subtitle{color:#666;font-size:14px}.mode-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:600px;margin:0 auto}.mode-card{background:#fff;border-radius:16px;padding:20px;cursor:pointer;transition:all .3s ease;border:2px solid transparent;position:relative;overflow:hidden}.mode-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#f093fb1a,#f5576c1a);opacity:0;transition:opacity .3s ease}.mode-card:hover{transform:translateY(-5px);box-shadow:0 12px 24px #f093fb4d}.mode-card:hover:before{opacity:1}.mode-icon{font-size:48px;margin-bottom:12px;position:relative;z-index:1}.mode-card h3{font-size:18px;margin:8px 0;color:#333;position:relative;z-index:1}.mode-desc{color:#666;font-size:13px;margin:8px 0;position:relative;z-index:1}.mode-features{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap;position:relative;z-index:1}.feature-tag{background:#f093fb1a;color:#f5576c;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:500}.repeat-mode{border-color:#ff6b6b}.repeat-mode:hover{border-color:#ff6b6b;box-shadow:0 12px 24px #ff6b6b4d}.dialogue-mode{border-color:#4ecdc4}.dialogue-mode:hover{border-color:#4ecdc4;box-shadow:0 12px 24px #4ecdc44d}.topic-mode{border-color:#ffd93d}.topic-mode:hover{border-color:#ffd93d;box-shadow:0 12px 24px #ffd93d4d}.practice-view{padding:20px;max-width:600px;margin:0 auto}.practice-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.practice-progress{display:flex;flex-direction:column;align-items:flex-end}.progress-text{font-size:16px;font-weight:600;color:#333}.score-text{font-size:13px;color:#f5576c;font-weight:500}.demo-card{background:linear-gradient(135deg,#f093fb,#f5576c);border-radius:20px;padding:32px;margin-bottom:24px;text-align:center;box-shadow:0 8px 24px #f093fb4d}.demo-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.demo-label{background:#fff3;color:#fff;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.difficulty-badge{background:#ffffff4d;color:#fff;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600}.difficulty-badge.easy{background:#4caf504d}.difficulty-badge.medium{background:#ff98004d}.difficulty-badge.hard{background:#f443364d}.target-text{font-size:28px;font-weight:700;color:#fff;margin:16px 0;line-height:1.4}.phonetic-text{font-size:16px;color:#ffffffe6;font-style:italic;margin:8px 0}.translation-text{font-size:15px;color:#fffc;margin:12px 0 24px}.demo-btn{background:#fff;color:#f5576c;border:none;border-radius:50px;padding:12px 32px;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .3s ease;box-shadow:0 4px 12px #0000001a}.demo-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 16px #00000026}.demo-btn.playing{background:#fff3;color:#fff}.demo-btn:disabled{opacity:.6;cursor:not-allowed}.recording-card{background:#fff;border-radius:20px;padding:32px;margin-bottom:24px;box-shadow:0 4px 16px #00000014}.recording-status{min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:24px}.status-idle{text-align:center}.mic-icon{color:#f5576c;opacity:.5;margin-bottom:16px}.status-idle p{color:#666;font-size:15px}.status-recording{text-align:center}.recording-pulse{position:relative;display:inline-block;margin-bottom:20px}.recording-pulse:before,.recording-pulse:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border:3px solid #f5576c;border-radius:50%;animation:pulse 2s ease-out infinite}.recording-pulse:after{animation-delay:1s}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(2);opacity:0}}.mic-icon-active{color:#f5576c;animation:bounce 1s ease-in-out infinite}.status-recording p{color:#f5576c;font-size:16px;font-weight:600;margin:8px 0}.recording-hint{font-size:13px!important;color:#999!important;font-weight:400!important}.status-result{width:100%}.transcript-box{background:#f093fb0d;border-radius:16px;padding:20px;border:2px solid rgba(240,147,251,.2)}.transcript-box h4{font-size:14px;color:#666;margin-bottom:12px}.user-transcript{font-size:18px;color:#333;font-weight:600;line-height:1.6;font-family:Courier New,monospace}.recording-controls{display:flex;justify-content:center;gap:12px}.record-btn,.stop-btn{padding:16px 32px;border:none;border-radius:50px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease}.record-btn{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;box-shadow:0 4px 16px #f093fb4d}.record-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #f093fb66}.record-btn:disabled{opacity:.5;cursor:not-allowed}.stop-btn{background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff;box-shadow:0 4px 16px #ff6b6b4d}.stop-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ff6b6b66}.result-card{background:#fff;border-radius:20px;padding:32px;box-shadow:0 4px 16px #00000014;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-content{text-align:center;margin-bottom:24px}.result-icon{font-size:64px;margin-bottom:16px;animation:popIn .5s cubic-bezier(.68,-.55,.265,1.55)}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.result-content h3{font-size:24px;margin:12px 0;background:linear-gradient(135deg,#f093fb,#f5576c);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.score-display{font-size:48px;font-weight:700;color:#f5576c;margin:16px 0}.score-hint{color:#666;font-size:14px;margin-top:8px}.retry-hint{color:#666;font-size:14px;margin-top:12px}.next-btn{width:100%;padding:16px;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease}.next-btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px #4caf504d}.result-view{padding:40px 20px;display:flex;align-items:center;justify-content:center;min-height:70vh}.result-container{background:#fff;border-radius:24px;padding:40px;text-align:center;max-width:480px;width:100%;box-shadow:0 8px 32px #0000001a}.result-badge{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:64px;margin:0 auto 24px;animation:popIn .5s cubic-bezier(.68,-.55,.265,1.55)}.result-badge.excellent{background:linear-gradient(135deg,gold,orange)}.result-badge.good{background:linear-gradient(135deg,#4caf50,#45a049)}.result-badge.pass{background:linear-gradient(135deg,#2196f3,#1976d2)}.result-badge.fail{background:linear-gradient(135deg,#ff9800,#f57c00)}.result-title{font-size:28px;margin:16px 0;background:linear-gradient(135deg,#f093fb,#f5576c);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.result-stats{display:flex;justify-content:center;align-items:center;gap:24px;margin:32px 0;padding:24px;background:#f093fb0d;border-radius:16px}.stat-value{font-size:32px;font-weight:700;color:#f5576c;margin-bottom:4px}.stat-label{font-size:13px;color:#666}.stat-divider{width:1px;height:40px;background:#e0e0e0}.result-actions{display:flex;flex-direction:column;gap:12px;margin-top:32px}.retry-btn,.change-mode-btn,.exit-btn{padding:16px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px}.retry-btn{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.change-mode-btn{background:#fff;color:#f5576c;border:2px solid #f5576c}.exit-btn{background:transparent;color:#999;border:none}.retry-btn:hover,.change-mode-btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px #f093fb33}.back-btn{background:transparent;border:none;color:#f5576c;font-size:16px;font-weight:600;cursor:pointer;padding:8px 16px;transition:all .3s ease}.back-btn:hover{background:#f093fb1a;border-radius:8px}.coming-soon-view{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.coming-soon-card h2{font-size:32px;margin-bottom:16px;background:linear-gradient(135deg,#f093fb,#f5576c);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.coming-soon-card .back-btn{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;border:none;border-radius:12px;padding:14px 32px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.coming-soon-card .back-btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px #f093fb4d}@media(max-width:480px){.mode-cards{grid-template-columns:1fr}.result-container{padding:32px 24px}.result-stats{gap:16px}.target-text{font-size:24px}}.reading-comprehension{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e8f0fe);padding:20px}.mode-selection{max-width:1000px;margin:0 auto}.difficulty-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:30px}.difficulty-card{background:#fff;border-radius:20px;padding:32px;text-align:center;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #00000014;border:3px solid transparent}.difficulty-card:hover{transform:translateY(-8px);box-shadow:0 12px 24px #00000026}.difficulty-card.easy{border-color:#a8e6cf}.difficulty-card.easy:hover{background:linear-gradient(135deg,#a8e6cf,#dcedc1)}.difficulty-card.medium{border-color:#ffd3b6}.difficulty-card.medium:hover{background:linear-gradient(135deg,#ffd3b6,#ffaaa5)}.difficulty-card.hard{border-color:#ff8b94}.difficulty-card.hard:hover{background:linear-gradient(135deg,#ff8b94,#ffaaa5)}.difficulty-icon{font-size:56px;margin-bottom:16px}.difficulty-card h3{font-size:24px;color:#2c3e50;margin-bottom:12px}.difficulty-desc{color:#7f8c8d;font-size:14px;margin-bottom:20px}.difficulty-features{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.reading-view{max-width:900px;margin:0 auto;display:flex;flex-direction:column;height:100vh;overflow:hidden}.reading-top-bar{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#fff;border-bottom:2px solid #f0f0f0;flex-shrink:0}.reading-info{display:flex;gap:12px;align-items:center}.difficulty-badge{padding:6px 16px;border-radius:20px;font-size:14px;font-weight:600;color:#fff}.difficulty-badge.easy{background:linear-gradient(135deg,#a8e6cf,#56ab2f)}.difficulty-badge.medium{background:linear-gradient(135deg,#ffd3b6,#ff8008)}.difficulty-badge.hard{background:linear-gradient(135deg,#ff8b94,#e94057)}.word-count{background:#fff;padding:6px 16px;border-radius:20px;font-size:14px;color:#555;box-shadow:0 2px 8px #0000001a}.passage-section{background:#fff;flex-shrink:0;transition:all .3s ease;border-bottom:2px solid #f0f0f0;box-shadow:0 2px 8px #0000000d}.passage-section.expanded{max-height:50vh;overflow-y:auto}.passage-section.collapsed{max-height:60px;overflow:hidden}.passage-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;cursor:pointer;background:linear-gradient(135deg,#667eea10,#764ba210);border-bottom:1px solid #e0e0e0;transition:all .2s ease}.passage-header:hover{background:linear-gradient(135deg,#667eea20,#764ba220)}.passage-header-left{display:flex;align-items:center;gap:12px}.passage-header-left h3{margin:0;font-size:18px;color:#2c3e50;font-weight:700}.toggle-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:20px;padding:8px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.toggle-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #667eea66}.passage-body{padding:24px 20px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.passage-content{font-size:16px;line-height:1.8;color:#34495e;text-align:justify;margin-bottom:20px;letter-spacing:.3px}.passage-translation{margin-top:16px;padding:16px;background:#f8f9fa;border-radius:12px;border-left:4px solid #3498db}.passage-translation summary{cursor:pointer;font-weight:600;color:#3498db;-webkit-user-select:none;user-select:none;padding:4px}.passage-translation summary:hover{color:#2980b9}.passage-translation p{margin-top:12px;line-height:1.8;color:#555;font-size:14px}.questions-scroll-section{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f8f9fa}.questions-header{display:flex;align-items:center;gap:8px;padding:16px 20px;background:#fff;border-bottom:2px solid #f0f0f0;font-size:18px;font-weight:700;color:#2c3e50;flex-shrink:0}.answer-progress{margin-left:auto;font-size:14px;color:#7f8c8d;font-weight:500}.questions-list{flex:1;overflow-y:auto;padding:16px 20px 100px}.questions-list::-webkit-scrollbar{width:8px}.questions-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.questions-list::-webkit-scrollbar-thumb{background:#667eea;border-radius:10px}.questions-list::-webkit-scrollbar-thumb:hover{background:#764ba2}.question-card{background:#fff;border-radius:16px;padding:24px;margin-bottom:20px;box-shadow:0 2px 12px #0000000f;transition:all .3s ease}.question-card:hover{box-shadow:0 4px 20px #0000001a}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.question-number{font-weight:700;color:#3498db;font-size:14px}.question-type{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;color:#fff}.question-type.choice{background:linear-gradient(135deg,#667eea,#764ba2)}.question-type.true-false{background:linear-gradient(135deg,#f093fb,#f5576c)}.question-text{font-size:16px;color:#2c3e50;margin-bottom:8px;font-weight:500;line-height:1.6}.question-translation{font-size:14px;color:#7f8c8d;margin-bottom:16px;font-style:italic}.options-list{display:flex;flex-direction:column;gap:12px}.option-btn{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:16px;text-align:left;cursor:pointer;transition:all .3s ease;font-size:15px;color:#2c3e50;display:flex;align-items:center;gap:12px}.option-btn:hover:not(:disabled){border-color:#3498db;background:#f0f8ff;transform:translate(4px)}.option-btn.selected{border-color:#3498db;background:linear-gradient(135deg,#e3f2fd,#bbdefb);font-weight:600}.option-btn.correct{border-color:#27ae60;background:linear-gradient(135deg,#d4edda,#c3e6cb);color:#155724}.option-btn.wrong{border-color:#e74c3c;background:linear-gradient(135deg,#f8d7da,#f5c6cb);color:#721c24}.option-btn:disabled{cursor:not-allowed;opacity:.9}.option-label{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:#f0f0f0;border-radius:50%;font-weight:700;font-size:14px;flex-shrink:0}.option-btn.selected .option-label{background:#3498db;color:#fff}.option-btn.correct .option-label{background:#27ae60;color:#fff}.option-btn.wrong .option-label{background:#e74c3c;color:#fff}.true-false-options{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tf-btn{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:20px;cursor:pointer;transition:all .3s ease;font-size:16px;font-weight:600;color:#2c3e50}.tf-btn:hover:not(:disabled){border-color:#3498db;transform:scale(1.05)}.tf-btn.selected{border-color:#3498db;background:linear-gradient(135deg,#e3f2fd,#bbdefb)}.tf-btn.correct{border-color:#27ae60;background:linear-gradient(135deg,#d4edda,#c3e6cb);color:#155724}.tf-btn.wrong{border-color:#e74c3c;background:linear-gradient(135deg,#f8d7da,#f5c6cb);color:#721c24}.tf-btn:disabled{cursor:not-allowed;opacity:.9}.answer-explanation{margin-top:16px;padding:12px 16px;background:#fff3cd;border-left:4px solid #ffc107;border-radius:8px;font-size:14px;color:#856404}.submit-bar{position:sticky;bottom:0;left:0;right:0;background:#fff;border-top:2px solid #f0f0f0;padding:16px 20px;text-align:center;box-shadow:0 -4px 12px #00000014;z-index:10}.submit-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:30px;padding:16px 48px;font-size:18px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .3s ease;box-shadow:0 4px 15px #667eea66}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.submit-btn:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none}.submit-hint{margin-top:12px;color:#7f8c8d;font-size:14px}.result-summary{background:#fff;border-radius:20px;padding:32px 20px;margin:16px 20px 80px;text-align:center;box-shadow:0 8px 24px #0000001f;animation:slideUp .5s ease}.result-content{margin-bottom:24px}.result-content h3{font-size:24px;color:#2c3e50;margin-bottom:8px}.result-stats{font-size:15px;color:#7f8c8d}.result-actions{display:flex;gap:12px;justify-content:center}.retry-btn,.change-level-btn{padding:12px 28px;border-radius:30px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;border:none;display:inline-flex;align-items:center;gap:8px}.retry-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 15px #667eea66}.retry-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.change-level-btn{background:#fff;color:#667eea;border:2px solid #667eea}.change-level-btn:hover{background:#667eea;color:#fff}.back-btn:hover{border-color:#3498db;color:#3498db;transform:translate(-4px)}@media(max-width:768px){.reading-comprehension{padding:0}.difficulty-cards{grid-template-columns:1fr;padding:0 16px}.reading-view{height:100vh}.passage-section.expanded{max-height:40vh}.passage-body{padding:20px 16px}.passage-content{font-size:15px;line-height:1.7}.questions-list{padding:12px 16px 100px}.question-card{padding:20px 16px}.true-false-options{grid-template-columns:1fr}.result-actions{flex-direction:column}.retry-btn,.change-level-btn{width:100%;justify-content:center}.submit-btn{padding:14px 36px;font-size:16px}}@media(min-width:769px)and (max-width:1024px){.passage-section.expanded{max-height:45vh}}.writing-practice{min-height:100vh;background:linear-gradient(135deg,#ffecd2,#fcb69f)}.mode-selection{max-width:1000px;margin:0 auto;padding:20px}.mode-header{text-align:center;margin-bottom:40px}.mode-header h2{font-size:32px;color:#2c3e50;margin:20px 0 10px}.mode-subtitle{color:#7f8c8d;font-size:16px}.writing-modes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:30px}.writing-mode-card{background:#fff;border-radius:20px;padding:32px;text-align:center;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #00000014;border:3px solid transparent}.writing-mode-card:hover{transform:translateY(-8px);box-shadow:0 12px 24px #00000026}.writing-mode-card.spelling{border-color:#ffd93d}.writing-mode-card.spelling:hover{background:linear-gradient(135deg,#ffd93d20,#ffed4e20)}.writing-mode-card.sentence{border-color:#6bcf7f}.writing-mode-card.sentence:hover{background:linear-gradient(135deg,#6bcf7f20,#4fd166 20)}.writing-mode-card.essay{border-color:#ee9ca7}.writing-mode-card.essay:hover{background:linear-gradient(135deg,#ee9ca720,#ffdde120)}.mode-icon{font-size:56px;margin-bottom:16px}.writing-mode-card h3{font-size:24px;color:#2c3e50;margin-bottom:12px}.mode-desc{color:#7f8c8d;font-size:14px;margin-bottom:20px}.mode-features{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.feature-tag{background:#ecf0f1;color:#34495e;padding:6px 12px;border-radius:12px;font-size:12px;font-weight:500}.writing-view{max-width:800px;margin:0 auto;padding:20px;min-height:100vh}.writing-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.progress-info,.word-counter{background:#fff;padding:8px 20px;border-radius:20px;font-weight:600;color:#555;box-shadow:0 2px 8px #0000001a}.spelling-card{background:#fff;border-radius:20px;padding:40px;box-shadow:0 4px 20px #0000001a}.word-audio-section{text-align:center;margin-bottom:32px}.play-audio-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:50px;padding:16px 40px;font-size:18px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:12px;transition:all .3s ease;box-shadow:0 4px 15px #667eea66}.play-audio-btn:hover{transform:scale(1.05);box-shadow:0 6px 20px #667eea99}.phonetic{margin-top:20px;font-size:20px;color:#667eea;font-family:Courier New,monospace}.translation{margin-top:8px;font-size:18px;color:#7f8c8d}.hint-section{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#fff3cd;border-radius:12px;margin-bottom:24px;color:#856404;font-size:15px}.input-section{margin-bottom:24px}.spelling-input{width:100%;padding:16px 20px;font-size:20px;border:2px solid #e0e0e0;border-radius:12px;text-align:center;transition:all .3s ease;font-weight:600;letter-spacing:2px}.spelling-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.spelling-input:disabled{background:#f8f9fa;cursor:not-allowed}.sentence-card{background:#fff;border-radius:20px;padding:40px;box-shadow:0 4px 20px #0000001a}.prompt-section{text-align:center;margin-bottom:24px}.prompt-section h3{font-size:22px;color:#2c3e50;margin-bottom:16px}.chinese-prompt{font-size:24px;color:#34495e;font-weight:600;padding:20px;background:#f8f9fa;border-radius:12px;border-left:4px solid #6bcf7f}.textarea-section{margin-bottom:24px}.sentence-textarea{width:100%;padding:16px 20px;font-size:18px;border:2px solid #e0e0e0;border-radius:12px;transition:all .3s ease;font-family:Arial,sans-serif;resize:vertical}.sentence-textarea:focus{outline:none;border-color:#6bcf7f;box-shadow:0 0 0 3px #6bcf7f1a}.sentence-textarea:disabled{background:#f8f9fa;cursor:not-allowed}.essay-card{background:#fff;border-radius:20px;padding:40px;box-shadow:0 4px 20px #0000001a}.topic-section{margin-bottom:24px}.topic-section h3{font-size:26px;color:#2c3e50;margin-bottom:12px}.essay-prompt{font-size:16px;color:#555;line-height:1.8;padding:16px;background:#f8f9fa;border-radius:12px;border-left:4px solid #ee9ca7}.keywords-section{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#e8f5e9;border-radius:12px;margin-bottom:24px;flex-wrap:wrap;color:#2e7d32}.keywords-list{display:flex;gap:8px;flex-wrap:wrap}.keyword-tag{background:#fff;color:#2e7d32;padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600;border:1px solid #2e7d32}.essay-textarea-section{margin-bottom:24px}.essay-textarea{width:100%;padding:20px;font-size:16px;border:2px solid #e0e0e0;border-radius:12px;transition:all .3s ease;font-family:Arial,sans-serif;line-height:1.8;resize:vertical}.essay-textarea:focus{outline:none;border-color:#ee9ca7;box-shadow:0 0 0 3px #ee9ca71a}.essay-textarea:disabled{background:#f8f9fa;cursor:not-allowed}.check-btn,.submit-essay-btn{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:30px;padding:16px;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease;box-shadow:0 4px 15px #667eea66}.check-btn:hover:not(:disabled),.submit-essay-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.check-btn:disabled,.submit-essay-btn:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none}.back-btn{background:#fff;border:2px solid #e0e0e0;border-radius:30px;padding:10px 24px;font-size:15px;font-weight:600;color:#555;cursor:pointer;transition:all .3s ease}.back-btn:hover{border-color:#667eea;color:#667eea;transform:translate(-4px)}.result-section{margin-top:24px;animation:slideUp .5s ease}.result-badge{padding:16px;border-radius:12px;text-align:center;font-size:20px;font-weight:700;margin-bottom:20px}.result-badge.correct{background:linear-gradient(135deg,#d4edda,#c3e6cb);color:#155724}.result-badge.wrong{background:linear-gradient(135deg,#f8d7da,#f5c6cb);color:#721c24}.result-badge.partial{background:linear-gradient(135deg,#fff3cd,#ffeeba);color:#856404}.correct-answer-box{padding:16px;background:#f8f9fa;border-radius:12px;margin-bottom:16px;border-left:4px solid #667eea}.correct-answer-box p{margin:8px 0;font-size:16px;color:#2c3e50}.answer-comparison{display:grid;gap:16px;margin-bottom:20px}.user-answer-box,.correct-answer-box{padding:16px;border-radius:12px}.user-answer-box{background:#e3f2fd;border-left:4px solid #2196f3}.user-answer-box strong,.correct-answer-box strong{display:block;margin-bottom:8px;color:#2c3e50}.user-answer-box p,.correct-answer-box p{font-size:16px;color:#34495e;line-height:1.6}.next-btn{width:100%;background:linear-gradient(135deg,#6bcf7f,#4fd166);color:#fff;border:none;border-radius:30px;padding:16px;font-size:18px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #6bcf7f66}.next-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6bcf7f99}.essay-result-section{margin-top:24px;animation:slideUp .5s ease}.score-display{text-align:center;margin-bottom:32px}.score-circle{width:120px;height:120px;margin:0 auto 20px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 24px #667eea66;animation:popIn .6s cubic-bezier(.68,-.55,.265,1.55)}.score-number{font-size:48px;font-weight:800;color:#fff;line-height:1}.score-label{font-size:16px;color:#fff;font-weight:600}.score-display h3{font-size:24px;color:#2c3e50;margin-top:16px}.feedback-list{background:#f8f9fa;border-radius:12px;padding:20px;margin-bottom:24px}.feedback-item{padding:12px;margin-bottom:8px;background:#fff;border-radius:8px;font-size:15px;color:#2c3e50;border-left:3px solid #667eea}.feedback-item:last-child{margin-bottom:0}.essay-actions{display:flex;gap:12px}.retry-btn,.done-btn{flex:1;padding:14px;border-radius:30px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;border:none;display:flex;align-items:center;justify-content:center;gap:8px}.retry-btn{background:#fff;color:#667eea;border:2px solid #667eea}.retry-btn:hover{background:#667eea;color:#fff}.done-btn{background:linear-gradient(135deg,#6bcf7f,#4fd166);color:#fff;box-shadow:0 4px 15px #6bcf7f66}.done-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6bcf7f99}@keyframes popIn{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}@media(max-width:768px){.writing-practice{padding:0}.mode-selection{padding:16px}.writing-modes-grid{grid-template-columns:1fr}.writing-view{padding:16px}.spelling-card,.sentence-card,.essay-card{padding:24px 20px}.essay-actions{flex-direction:column}.retry-btn,.done-btn{width:100%}}.english-page{min-height:100vh;background:linear-gradient(180deg,#dbeafe,#bfdbfe,#93c5fd);padding-bottom:100px}.loading-state{display:flex;align-items:center;justify-content:center;min-height:100vh}.loading-spinner{text-align:center}.loading-icon{color:#3b82f6;animation:bounce 1.5s ease-in-out infinite;margin-bottom:16px}.loading-spinner p{font-size:16px;color:#1e40af;font-weight:600}.english-header{position:sticky;top:0;z-index:100;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(59,130,246,.2);padding:12px 20px;box-shadow:0 2px 12px #0000000d}.back-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#dbeafe;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;color:#1e40af}.back-btn:hover{background:#bfdbfe;transform:scale(1.05)}.title-flag{font-size:28px;animation:wave 2s ease-in-out infinite}@keyframes wave{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.header-title h1{font-size:20px;font-weight:800;color:#1e40af;margin:0}.home-view{padding:24px 20px;max-width:600px;margin:0 auto}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px}.quick-start-section{margin-bottom:32px}.quick-start-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick-btn{background:#fff;border:none;border-radius:16px;padding:20px 16px;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.quick-btn:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001f}.quick-btn svg{color:#667eea}.quick-btn span{font-size:15px;font-weight:700;color:#1f2937}.quick-btn p{font-size:12px;color:#6b7280;margin:0}.quick-btn.story{background:linear-gradient(135deg,#ffecd2,#fcb69f)}.quick-btn.story:hover{background:linear-gradient(135deg,#fcb69f,#ff9a9e)}.learning-modules-section{margin-bottom:32px}.modules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.module-card{background:#fff;border-radius:16px;padding:20px;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0000000f;position:relative;overflow:hidden}.module-card:hover{transform:translateY(-6px);box-shadow:0 8px 24px #0000001f}.module-icon{width:56px;height:56px;background:linear-gradient(135deg,#e0e7ff,#ddd6fe);border-radius:14px;display:flex;align-items:center;justify-content:center;color:#667eea;margin-bottom:12px}.module-card h3{font-size:16px;font-weight:700;color:#1f2937;margin:0 0 6px}.module-card p{font-size:13px;color:#6b7280;margin:0 0 10px}.module-badge{display:inline-block;padding:4px 10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px;font-size:11px;font-weight:600}.stat-card{background:#fff;border-radius:16px;padding:20px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 12px #00000014;transition:all .3s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001f}.stat-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:12px;flex-shrink:0}.stat-card.mastered .stat-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af}.stat-card.streak .stat-icon{background:linear-gradient(135deg,#fed7aa,#fdba74);color:#c2410c}.stat-value{font-size:28px;font-weight:800;line-height:1;margin-bottom:4px}.stat-card.mastered .stat-value{color:#1e40af}.stat-card.streak .stat-value{color:#c2410c}.stat-label{font-size:13px;color:#6b7280;font-weight:600}.random-learn-btn{width:100%;display:flex;align-items:center;gap:16px;padding:20px 24px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:20px;cursor:pointer;transition:all .4s cubic-bezier(.34,1.56,.64,1);box-shadow:0 8px 24px #667eea66;margin-bottom:32px;position:relative;overflow:hidden}.random-learn-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.random-learn-btn:hover:before{left:100%}.random-learn-btn:hover{transform:translateY(-4px);box-shadow:0 12px 32px #667eea80}.random-learn-btn:active{transform:translateY(-2px)}.btn-icon{color:#fff;flex-shrink:0}.btn-content{flex:1;text-align:left;display:flex;flex-direction:column;gap:4px}.btn-title{font-size:18px;font-weight:700;color:#fff;display:block}.btn-subtitle{font-size:13px;color:#ffffffe6;display:block}.categories-section{margin-top:32px}.section-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700;color:#1e40af;margin-bottom:16px}.categories-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.category-card{position:relative;background:#fff;border-radius:16px;padding:20px;cursor:pointer;overflow:hidden;transition:all .3s ease;box-shadow:0 2px 8px #0000000f;-webkit-tap-highlight-color:transparent}.category-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 8px 20px #0000001f}.category-card:active{transform:translateY(-4px) scale(1.01)}.category-bg{position:absolute;top:0;right:0;width:80px;height:80px;border-radius:50%;opacity:.15;transition:all .3s ease}.category-card.color-0 .category-bg{background:linear-gradient(135deg,#667eea,#764ba2)}.category-card.color-1 .category-bg{background:linear-gradient(135deg,#f093fb,#f5576c)}.category-card.color-2 .category-bg{background:linear-gradient(135deg,#4facfe,#00f2fe)}.category-card.color-3 .category-bg{background:linear-gradient(135deg,#43e97b,#38f9d7)}.category-card.custom-category{border:2px solid #f59e0b;background:linear-gradient(135deg,#fef3c7,#fde68a)}.category-card.custom-category .category-bg{background:linear-gradient(135deg,#f59e0b,#d97706);opacity:.2}.category-card.custom-category:hover{border-color:#d97706;box-shadow:0 8px 20px #f59e0b4d}.category-card.custom-category .category-content h3{color:#92400e;font-weight:800}.category-card.custom-category .category-content p{color:#b45309}.category-card.custom-category .category-arrow{color:#d97706}.category-card:hover .category-bg{opacity:.25;transform:scale(1.3)}.category-content{position:relative;z-index:1}.category-card h3{font-size:16px;font-weight:700;color:#1f2937;margin-bottom:6px}.category-card p{font-size:13px;color:#6b7280;font-weight:500}.category-arrow{position:absolute;bottom:16px;right:16px;font-size:20px;color:#d1d5db;transition:all .3s ease;z-index:1}.category-card:hover .category-arrow{color:#3b82f6;transform:translate(4px)}.learning-view{padding:24px 20px;max-width:600px;margin:0 auto}.progress-card{background:#fff;border-radius:20px;padding:20px;margin-bottom:24px;box-shadow:0 4px 16px #0000001a}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;font-weight:600}.progress-text{display:flex;align-items:center;gap:6px;color:#1e40af}.star-icon{color:#fbbf24}.stats-text{display:flex;gap:12px}.mastered-badge{color:#10b981}.review-badge{color:#ef4444}.progress-bar-wrapper{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:4px;transition:width .5s cubic-bezier(.34,1.56,.64,1);position:relative;box-shadow:0 0 12px #3b82f680}.progress-shimmer{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 2s infinite}.word-card-container{margin-bottom:20px}.exit-btn{width:100%;padding:16px;background:#6b7280;color:#fff;border:none;border-radius:16px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #00000026}.exit-btn:hover{background:#4b5563;transform:translateY(-2px);box-shadow:0 6px 16px #0003}.exit-btn:active{transform:translateY(0)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:40px 20px;text-align:center}.empty-icon{font-size:80px;margin-bottom:24px;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.empty-state h3{font-size:24px;color:#1f2937;margin:0 0 12px;font-weight:700}.empty-state p{font-size:16px;color:#6b7280;margin:0 0 32px}.back-to-home{padding:14px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #667eea4d}.back-to-home:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea66}@media(max-width:375px){.stats-grid{gap:10px}.stat-card{padding:16px}.stat-icon{width:42px;height:42px}.stat-value{font-size:24px}.categories-grid{gap:10px}.category-card{padding:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){.english-page{background:linear-gradient(180deg,#1e3a8a,#1e40af,#3b82f6)}.stat-card,.category-card,.progress-card{background:#1e293b}.category-card h3{color:#f1f5f9}.category-card p{color:#94a3b8}}.speaking-view,.reading-view,.writing-view{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.coming-soon-card{background:#fff;border-radius:24px;padding:48px 32px;text-align:center;max-width:400px;width:100%;box-shadow:0 8px 32px #0000001a;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.coming-soon-card h2{font-size:32px;margin-bottom:16px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.coming-soon-card p{font-size:16px;color:#666;margin-bottom:32px}.coming-soon-card .back-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;padding:14px 32px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.coming-soon-card .back-btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px #667eea4d}.camera-upload-container{padding:1rem}.upload-buttons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}.upload-button-card.upload-only{grid-column:1 / -1;max-width:500px;margin:0 auto}.upload-button-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:160px;padding:2rem 1.5rem;border-radius:1.25rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 12px #00000014}.upload-button-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffff1a,#fff0);opacity:0;transition:opacity .3s}.upload-button-card:hover:before{opacity:1}.upload-button-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 12px 32px #00000026}.upload-button-card:active{transform:translateY(-2px) scale(.98)}.upload-button-card.camera{background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 4px 12px #667eea66}.upload-button-card.camera:hover{box-shadow:0 12px 32px #667eea80}.upload-button-card.gallery{background:linear-gradient(135deg,#f093fb,#f5576c);border:none;box-shadow:0 4px 12px #f093fb66}.upload-button-card.gallery:hover{box-shadow:0 12px 32px #f093fb80}.upload-button-icon{width:72px;height:72px;margin-bottom:1rem;color:#fff;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.upload-button-card:hover .upload-button-icon{animation:bounce .6s ease-in-out}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.upload-button-text{font-size:1.25rem;font-weight:700;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2);letter-spacing:.5px}.upload-button-hint{font-size:.9rem;color:#fffffff2;margin-top:.5rem;font-weight:500}.ai-info-card{background:linear-gradient(135deg,#667eea15,#764ba215);border-left:4px solid #667eea;border-radius:.75rem;padding:1rem;margin-top:1rem}.ai-info-text{font-size:.95rem;color:#374151;line-height:1.6}.ai-info-text strong{color:#667eea;font-weight:600}.image-preview-container{position:relative;border-radius:1rem;overflow:hidden;box-shadow:0 8px 24px #0000001f}.preview-image{width:100%;max-height:60vh;object-fit:contain;background:#f9fafb}.clear-preview-btn{position:absolute;top:.75rem;right:.75rem;padding:.625rem;background:#ef4444f2;color:#fff;border:none;border-radius:50%;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #ef444466}.clear-preview-btn:hover{background:#dc2626;transform:scale(1.1)}.clear-preview-btn:active{transform:scale(.95)}.confirm-recognize-btn{width:100%;padding:1rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:.75rem;font-size:1.125rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;transition:all .3s;box-shadow:0 4px 12px #10b9814d}.confirm-recognize-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.confirm-recognize-btn:active{transform:translateY(0)}.recognizing-container{text-align:center;padding:3rem 1.5rem;background:#fff;border-radius:1rem;box-shadow:0 4px 12px #0000001a}.recognizing-spinner{display:inline-block;width:60px;height:60px;border:4px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}.recognizing-title{margin-top:1.5rem;font-size:1.125rem;font-weight:600;color:#1f2937}.recognizing-subtitle{margin-top:.5rem;font-size:.95rem;color:#6b7280}.error-alert{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-left:4px solid #ef4444;border-radius:.75rem;padding:1rem;margin-bottom:1rem;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.error-text{color:#991b1b;font-size:.95rem;line-height:1.5}@media(max-width:640px){.upload-button-card{min-height:120px;padding:1rem}.upload-button-icon{width:48px;height:48px}.upload-button-text{font-size:1rem}}@media(prefers-color-scheme:dark){.ai-info-card{background:#667eea1a}.ai-info-text{color:#e5e7eb}.recognizing-container{background:#1f2937}.recognizing-title{color:#f3f4f6}.recognizing-subtitle{color:#9ca3af}}.message-bubble{display:flex;gap:.75rem;margin-bottom:1rem;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.message-bubble.ai{align-items:flex-start;flex-direction:row}.message-bubble.student{align-items:flex-start;flex-direction:row-reverse}.message-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.message-bubble.ai .message-avatar{background:#fff;box-shadow:0 2px 8px #0000001a}.message-bubble.student .message-avatar{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 8px #00000026}.message-content{max-width:75%;display:flex;flex-direction:column}.message-text{padding:.875rem 1.125rem;border-radius:1rem;font-size:.95rem;line-height:1.6;white-space:pre-wrap;word-wrap:break-word;position:relative}.message-bubble.ai .message-text{background:#fff;color:#1f2937;border-top-left-radius:.25rem;box-shadow:0 2px 8px #0000001a}.message-bubble.student .message-text{background:#fffffff2;color:#1f2937;border-top-right-radius:.25rem;box-shadow:0 2px 8px #00000026}.evaluation-badge{display:inline-flex;align-items:center;gap:.375rem;margin-top:.5rem;padding:.375rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:600;width:fit-content}.message-bubble.ai .evaluation-badge{align-self:flex-start}.message-bubble.student .evaluation-badge{align-self:flex-end}.evaluation-badge.good{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.evaluation-badge.partial{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.evaluation-badge.insufficient{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.message-timestamp{font-size:.75rem;color:#ffffffb3;margin-top:.25rem;-webkit-user-select:none;user-select:none}.message-bubble.ai .message-timestamp{text-align:left}.message-bubble.student .message-timestamp{text-align:right}@keyframes typing{0%{width:0}to{width:100%}}.message-text.typing{overflow:hidden;white-space:nowrap;animation:typing 1s steps(40,end)}.typing-cursor{display:inline-block;margin-left:2px;animation:blink .7s infinite;color:#667eea;font-weight:700}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@media(max-width:640px){.message-content{max-width:85%}.message-avatar{width:36px;height:36px;font-size:1.25rem}.message-text{padding:.75rem 1rem;font-size:.9rem}.evaluation-badge{padding:.25rem .625rem;font-size:.75rem}}.message-bubble:focus-within{outline:2px solid rgba(255,255,255,.5);outline-offset:4px;border-radius:1rem}.progress-tracker{padding:.75rem 1rem;background:#fffffff2;border-radius:.75rem;box-shadow:0 2px 6px #00000014;margin:0 1rem .75rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.progress-section{margin-bottom:.5rem}.progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.375rem}.progress-label{font-size:.75rem;font-weight:600;color:#6b7280}.progress-value{font-size:.875rem;font-weight:700;color:#667eea}.progress-bar-container{height:6px;background:#e5e7eb;border-radius:9999px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:9999px;transition:width .5s ease-out}.understanding-section{margin-bottom:.5rem}.understanding-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.375rem}.understanding-label{font-size:.75rem;font-weight:600;color:#6b7280}.understanding-value{font-size:.875rem;font-weight:700}.understanding-bar-container{height:6px;background:#e5e7eb;border-radius:9999px;overflow:hidden;margin-bottom:.25rem}.understanding-bar-fill{height:100%;border-radius:9999px;transition:width .5s ease-out,background-color .3s ease}.understanding-status{font-size:.7rem;font-weight:600;display:inline-block}.milestones{display:flex;justify-content:space-between;align-items:center;gap:.25rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.milestone{flex:1;height:24px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#9ca3af;background:#f3f4f6;border-radius:.375rem;transition:all .3s ease}.milestone.completed{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 4px #10b9814d}.milestone.current{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 6px #667eea66;transform:scale(1.1);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1.1);opacity:1}50%{transform:scale(1.15);opacity:.9}}@media(max-width:640px){.progress-tracker{padding:.625rem .875rem;margin:0 .75rem .625rem}.progress-label,.understanding-label{font-size:.7rem}.progress-value,.understanding-value{font-size:.8rem}.progress-bar-container,.understanding-bar-container{height:5px}.milestone{height:20px;font-size:.65rem}}.progress-bars{display:flex;flex-direction:column;gap:1rem}.progress-item{display:flex;flex-direction:column;gap:.5rem}.progress-label{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;font-weight:600}.label-text{display:flex;align-items:center;gap:.375rem;color:#374151}.label-icon{font-size:1rem}.label-value{color:#6b7280;font-weight:500}.progress-bar-container{height:10px;background:#e5e7eb;border-radius:9999px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;border-radius:9999px;transition:width .5s ease-out,background .3s ease;position:relative;overflow:hidden}.progress-item.steps .progress-bar-fill{background:linear-gradient(90deg,#667eea,#764ba2)}.progress-item.understanding .progress-bar-fill.low{background:linear-gradient(90deg,#ef4444,#dc2626)}.progress-item.understanding .progress-bar-fill.medium{background:linear-gradient(90deg,#f59e0b,#d97706)}.progress-item.understanding .progress-bar-fill.high{background:linear-gradient(90deg,#10b981,#059669)}.progress-bar-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff0,#ffffff4d,#fff0);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.milestone-indicators{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;padding:0 .25rem}.milestone-dot{width:12px;height:12px;border-radius:50%;background:#e5e7eb;transition:all .3s ease;position:relative}.milestone-dot.completed{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 0 8px #10b98180;animation:pulse 1.5s ease-in-out infinite}.milestone-dot.current{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 0 12px #667eea99;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.8}}.milestone-dot:after{content:attr(data-label);position:absolute;bottom:-20px;left:50%;transform:translate(-50%);font-size:.7rem;color:#6b7280;white-space:nowrap;opacity:0;transition:opacity .2s}.milestone-dot:hover:after{opacity:1}.progress-tracker.compact{padding:.75rem;margin:0 .5rem .5rem}.progress-tracker.compact .progress-bars{gap:.75rem}.progress-tracker.compact .progress-bar-container{height:8px}.progress-tracker.compact .milestone-dot{width:10px;height:10px}@media(max-width:640px){.progress-tracker{padding:.875rem;margin:0 .75rem .75rem}.progress-label{font-size:.8rem}.label-icon{font-size:.9rem}.progress-bar-container{height:8px}.milestone-dot{width:10px;height:10px}.milestone-dot:after{font-size:.65rem;bottom:-18px}}@media(prefers-color-scheme:dark){.progress-tracker{background:#1f2937;box-shadow:0 2px 8px #0000004d}.label-text{color:#e5e7eb}.label-value{color:#9ca3af}.progress-bar-container{background:#374151}.milestone-dot{background:#4b5563}.milestone-dot:after{color:#9ca3af}}.mic-guide-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease-out;padding:1rem}.mic-guide-modal{background:#fff;border-radius:16px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.mic-guide-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;border-bottom:2px solid #e5e7eb;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-radius:16px 16px 0 0;position:relative}.mic-guide-icon{width:48px;height:48px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mic-guide-header h2{margin:0;font-size:1.25rem;font-weight:600;flex:1}.mic-guide-close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.mic-guide-close:hover{background:#ffffff4d}.mic-guide-content{padding:1.5rem}.guide-section{margin-bottom:1.5rem}.guide-section h3{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:#1f2937}.guide-section.highlight{background:#fef3c7;border:2px solid #fbbf24;border-radius:12px;padding:1rem}.guide-section.highlight h3{color:#92400e}.guide-section.highlight p{margin:.5rem 0 0;color:#78350f;line-height:1.6}.solution-box{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;padding:1.25rem;margin-bottom:1rem;display:flex;gap:1rem}.solution-box.primary{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#3b82f6}.solution-number{width:36px;height:36px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.solution-box.primary .solution-number{background:linear-gradient(135deg,#3b82f6,#2563eb)}.solution-content{flex:1}.solution-content h4{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:#1f2937}.solution-content p{margin:0 0 .75rem;color:#4b5563;line-height:1.5;font-size:.9rem}.open-external-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s;box-shadow:0 4px 12px #10b9814d}.open-external-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10b98166}.open-external-btn:active{transform:translateY(0)}.url-box{display:flex;gap:.5rem;align-items:center;background:#fff;padding:.75rem;border-radius:8px;border:1px solid #d1d5db;margin-bottom:.5rem}.url-box code{flex:1;font-family:Monaco,Courier New,monospace;font-size:.85rem;color:#1f2937;word-break:break-all}.copy-btn{padding:.5rem 1rem;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.copy-btn:hover{background:#5568d3}.help-text{font-size:.8rem;color:#6b7280;margin:0!important}.browser-guide{background:#fff;padding:1rem;border-radius:8px;border:1px solid #e5e7eb;margin-bottom:.75rem}.browser-guide h4{margin:0 0 .75rem;font-size:.95rem;font-weight:600;color:#1f2937}.browser-guide ol{margin:0;padding-left:1.5rem;color:#4b5563}.browser-guide li{margin-bottom:.5rem;line-height:1.5;font-size:.9rem}.guide-tip{background:#f0f9ff;border:1px solid #bfdbfe;border-radius:8px;padding:1rem;font-size:.9rem;color:#1e40af;line-height:1.6}.guide-tip strong{color:#1e3a8a}.current-protocol{display:inline-block;background:#dbeafe;padding:.125rem .5rem;border-radius:4px;font-family:Monaco,Courier New,monospace;font-size:.85rem;color:#1e40af;margin-left:.5rem}.mic-guide-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end}.close-guide-btn{padding:.75rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.close-guide-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}@media(max-width:640px){.mic-guide-modal{max-height:95vh}.mic-guide-header{padding:1rem}.mic-guide-header h2{font-size:1.1rem}.mic-guide-content{padding:1rem}.solution-box{flex-direction:column}.url-box{flex-direction:column;align-items:stretch}.copy-btn{width:100%}}.input-area{padding:.75rem 1rem;background:#fff;border-top:1px solid rgba(0,0,0,.1);box-shadow:0 -2px 8px #0000000a}.quick-replies{display:flex;gap:.5rem;margin-bottom:.625rem;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:thin}.quick-replies::-webkit-scrollbar{height:3px}.quick-replies::-webkit-scrollbar-track{background:#f3f4f6}.quick-replies::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.quick-reply-btn{padding:.375rem .875rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:9999px;font-size:.8rem;color:#374151;cursor:pointer;white-space:nowrap;transition:all .2s;flex-shrink:0}.quick-reply-btn:hover{background:#e5e7eb;border-color:#d1d5db;transform:translateY(-1px)}.quick-reply-btn:active{transform:translateY(0)}.input-controls{display:flex;flex-direction:column;gap:.5rem}.message-input{width:100%;min-height:60px;max-height:120px;padding:.75rem;border:2px solid #e5e7eb;border-radius:12px;font-size:.95rem;font-family:inherit;line-height:1.5;resize:vertical;outline:none;transition:all .2s;background:#f9fafb}.message-input:focus{border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.message-input.listening{border-color:#10b981;background:#10b9810d;box-shadow:0 0 0 3px #10b9811a}.message-input::placeholder{color:#9ca3af}.message-input:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.speech-error{padding:.625rem .875rem;background:#fef2f2;border:1px solid #fecaca;border-left:4px solid #ef4444;border-radius:8px;color:#991b1b;font-size:.85rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;line-height:1.5;animation:slideDown .3s ease-out}.speech-error:before{content:"⚠️";font-size:1rem;flex-shrink:0}.permission-help-btn{padding:.375rem .75rem;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.375rem;white-space:nowrap;transition:all .2s;flex-shrink:0}.permission-help-btn:hover{background:#dc2626;transform:translateY(-1px)}.action-buttons{display:flex;gap:.5rem;align-items:center}.voice-btn{padding:.625rem 1rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:12px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem;box-shadow:0 2px 6px #10b9814d}.voice-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.voice-btn:active:not(:disabled){transform:translateY(0)}.voice-btn.listening{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 2px 6px #ef44444d;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 2px 6px #ef44444d}50%{box-shadow:0 4px 16px #ef444499}}.voice-btn:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;box-shadow:none}.voice-text{font-size:.85rem}.hint-btn{padding:.625rem 1rem;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;border:none;border-radius:12px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem;box-shadow:0 2px 6px #fbbf244d;white-space:nowrap}.hint-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #fbbf2466}.hint-btn:active:not(:disabled){transform:translateY(0)}.hint-btn:disabled,.hint-btn.disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;box-shadow:none}.hint-icon{font-size:1rem}.hint-text{font-size:.85rem}.send-btn{flex:1;padding:.625rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 2px 8px #667eea4d;white-space:nowrap}.send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.send-btn:active:not(:disabled){transform:translateY(0)}.send-btn:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;box-shadow:none}.send-icon,.loading-icon{font-size:1rem}.hint-warning{padding:.5rem .75rem;background:#fef3c7;border:1px solid #fde68a;border-radius:8px;color:#92400e;font-size:.85rem;text-align:center}@media(max-width:640px){.input-area{padding:.625rem}.quick-replies{gap:.375rem;margin-bottom:.5rem}.quick-reply-btn{padding:.375rem .75rem;font-size:.8rem}.message-input{min-height:50px;padding:.625rem;font-size:.9rem}.action-buttons{gap:.375rem}.voice-btn,.hint-btn{padding:.5rem .75rem;font-size:.85rem}.voice-text,.hint-text{display:none}.send-btn{padding:.5rem 1rem;font-size:.9rem}.speech-error{padding:.375rem .625rem;font-size:.8rem}}@media(prefers-color-scheme:dark){.input-area{background:#1f2937;border-top-color:#ffffff1a}.quick-reply-btn{background:#374151;border-color:#4b5563;color:#e5e7eb}.quick-reply-btn:hover{background:#4b5563;border-color:#6b7280}.message-input{background:#374151;border-color:#4b5563;color:#e5e7eb}.message-input:focus{background:#1f2937;border-color:#667eea}.message-input.listening{background:#10b9811a;border-color:#10b981}.message-input::placeholder{color:#6b7280}.speech-error{background:#dc26261a;border-color:#dc26264d;color:#fca5a5}.hint-warning{background:#fbbf241a;border-color:#fbbf244d;color:#fde68a}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.skeleton-line,.skeleton-avatar,.skeleton-content,.skeleton-bar,.skeleton-stat,.skeleton-title,.skeleton-image,.skeleton-text,.skeleton-icon,.skeleton-badge,.skeleton-status,.skeleton-model-content{background:linear-gradient(90deg,#f0f0f0,#e0e0e0 20%,#f0f0f0 40% 100%);background-size:1000px 100%;animation:shimmer 2s infinite linear;border-radius:8px}.message-skeleton{display:flex;gap:.75rem;margin-bottom:1rem;padding:1rem}.message-skeleton.ai{justify-content:flex-start}.message-skeleton.user{justify-content:flex-end}.skeleton-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0}.skeleton-content{display:flex;flex-direction:column;gap:.5rem;max-width:70%}.skeleton-line{height:14px;border-radius:4px}.skeleton-line.long{width:100%}.skeleton-line.medium{width:75%}.skeleton-line.short{width:50%}.chat-skeleton{padding:1rem;display:flex;flex-direction:column;gap:1.5rem}.progress-skeleton{padding:1rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f}.skeleton-bar{height:8px;border-radius:4px;margin-bottom:1rem}.skeleton-stats{display:flex;gap:1rem;justify-content:space-around}.skeleton-stat{height:40px;flex:1;border-radius:8px}.question-card-skeleton{padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;gap:1rem}.skeleton-title{height:24px;width:60%;border-radius:6px}.skeleton-image{height:200px;width:100%;border-radius:8px}.skeleton-text{height:16px;border-radius:4px}.skeleton-text.long{width:90%}.skeleton-text.medium{width:70%}.models-skeleton{padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f}.skeleton-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.skeleton-icon{width:32px;height:32px;border-radius:8px}.skeleton-models{display:flex;flex-direction:column;gap:1rem}.model-skeleton{padding:1rem;border:1px solid #e5e7eb;border-radius:10px}.skeleton-model-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.skeleton-badge{height:24px;width:100px;border-radius:12px}.skeleton-status{height:20px;width:80px;border-radius:10px}.skeleton-model-content{display:flex;flex-direction:column;gap:.5rem;padding:.5rem 0}.card-skeleton{padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;gap:.75rem}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:1rem}.spinner{width:40px;height:40px;border:4px solid rgba(102,126,234,.2);border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.loading-spinner.small .spinner{width:24px;height:24px;border-width:3px}.loading-spinner.large .spinner{width:60px;height:60px;border-width:5px}.spinner-text{font-size:.9rem;color:#6b7280;margin:0}.loading-dots{display:inline-flex;gap:.25rem;align-items:center}.loading-dots .dot{width:6px;height:6px;background:#667eea;border-radius:50%;animation:dotBounce 1.4s infinite ease-in-out both}.loading-dots .dot:nth-child(1){animation-delay:-.32s}.loading-dots .dot:nth-child(2){animation-delay:-.16s}@keyframes dotBounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}@media(max-width:640px){.skeleton-content{max-width:85%}.skeleton-image{height:150px}.models-skeleton{padding:1rem}.loading-spinner{padding:1.5rem}}@media(prefers-color-scheme:dark){.skeleton-line,.skeleton-avatar,.skeleton-content,.skeleton-bar,.skeleton-stat,.skeleton-title,.skeleton-image,.skeleton-text,.skeleton-icon,.skeleton-badge,.skeleton-status,.skeleton-model-content{background:linear-gradient(90deg,#374151,#4b5563 20%,#374151 40% 100%)}.progress-skeleton,.question-card-skeleton,.models-skeleton,.card-skeleton{background:#1f2937}.model-skeleton{border-color:#4b5563}.spinner{border-color:#667eea4d;border-top-color:#667eea}.spinner-text{color:#9ca3af}}.error-notification{position:fixed;top:1rem;right:1rem;max-width:400px;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;display:flex;gap:1rem;padding:1rem;z-index:9999;transition:all .3s ease;border-left:4px solid #ef4444}.error-notification.visible{opacity:1;transform:translateY(0)}.error-notification.hidden{opacity:0;transform:translateY(-20px);pointer-events:none}.error-icon-container{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.error-icon{color:#fff}.error-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.error-header{display:flex;justify-content:space-between;align-items:flex-start}.error-title{margin:0;font-size:.95rem;font-weight:600;color:#1f2937}.error-close{padding:.25rem;background:none;border:none;color:#9ca3af;cursor:pointer;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.error-close:hover{background:#f3f4f6;color:#6b7280}.error-message{margin:0;font-size:.875rem;color:#4b5563;line-height:1.5}.error-details{margin:0;font-size:.8rem;color:#6b7280;font-family:Monaco,Courier New,monospace;background:#f9fafb;padding:.5rem;border-radius:6px;word-break:break-word}.error-suggestions{margin-top:.5rem;padding:.75rem;background:#fef3c7;border-radius:8px;border:1px solid #fde68a}.suggestions-title{margin:0 0 .5rem;font-size:.8rem;font-weight:600;color:#92400e}.error-suggestions ul{margin:0;padding-left:1.25rem;font-size:.8rem;color:#78350f}.error-suggestions li{margin-bottom:.25rem}.error-retry-btn{margin-top:.5rem;padding:.5rem 1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;justify-content:center;transition:all .2s;align-self:flex-start}.error-retry-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.error-retry-btn:active{transform:translateY(0)}@media(max-width:640px){.error-notification{top:.5rem;right:.5rem;left:.5rem;max-width:none}.error-icon-container{width:36px;height:36px}.error-title{font-size:.9rem}.error-message,.error-details{font-size:.8rem}}@media(prefers-color-scheme:dark){.error-notification{background:#1f2937;border-left-color:#ef4444}.error-title{color:#f9fafb}.error-message{color:#d1d5db}.error-details{background:#374151;color:#9ca3af}.error-close{color:#6b7280}.error-close:hover{background:#374151;color:#9ca3af}.error-suggestions{background:#fbbf2426;border-color:#fbbf244d}.suggestions-title{color:#fcd34d}.error-suggestions ul{color:#fde68a}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-notification{animation:slideInDown .3s ease-out}.socratic-chat{display:flex;flex-direction:column;height:calc(100vh - 64px);background:linear-gradient(135deg,#667eea,#764ba2);overflow-y:auto;overflow-x:hidden;position:relative;padding-bottom:1rem;scroll-behavior:smooth}.socratic-chat::-webkit-scrollbar{width:10px;background:#ffffff1a}.socratic-chat::-webkit-scrollbar-track{background:#ffffff0d;border-radius:5px}.socratic-chat::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:5px;border:2px solid rgba(255,255,255,.1)}.socratic-chat::-webkit-scrollbar-thumb:hover{background:#ffffff80}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#fff;box-shadow:0 2px 6px #00000014;z-index:10}.back-button{padding:.375rem .875rem;background:#f3f4f6;border:none;border-radius:.5rem;font-size:.85rem;color:#374151;cursor:pointer;transition:all .2s}.back-button:hover{background:#e5e7eb}.chat-title{font-size:1.1rem;font-weight:700;color:#1f2937;margin:0}.header-spacer{width:70px}.question-card-collapsible{margin:.75rem 1rem .5rem;background:#fff;border-radius:.75rem;box-shadow:0 2px 6px #00000014;overflow:visible;max-height:none}.question-card-summary{display:flex;align-items:center;justify-content:space-between;padding:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-bottom:2px solid #3b82f6;transition:background .2s;font-weight:600}.question-card-summary:hover{background:linear-gradient(135deg,#bfdbfe,#93c5fd)}.question-card-summary::-webkit-details-marker{display:none}.question-label{font-size:.9rem;font-weight:700;color:#1e40af;display:flex;align-items:center;gap:.5rem}.collapse-hint{font-size:.75rem;color:#6b7280;font-weight:500;background:#ffffffb3;padding:.25rem .5rem;border-radius:4px}.question-card-content{padding:1rem;background:#f9fafb;max-height:400px;overflow-y:auto}.question-card-content::-webkit-scrollbar{width:6px}.question-card-content::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.question-card-content::-webkit-scrollbar-thumb{background:#3b82f6;border-radius:3px}.question-card-content::-webkit-scrollbar-thumb:hover{background:#2563eb}.question-text{font-size:1rem;color:#1f2937;line-height:1.6;white-space:pre-wrap;font-weight:500;padding:.5rem;background:#fff;border-radius:8px;border-left:4px solid #3b82f6}.question-image{width:100%;max-height:300px;object-fit:contain;margin-top:.75rem;border-radius:.5rem;border:2px solid #e5e7eb;background:#fff;padding:.5rem}.question-card-collapsible[open] .question-card-summary:before{content:"▼";margin-right:.5rem;font-size:.7rem;color:#6b7280;transition:transform .2s}.question-card-collapsible:not([open]) .question-card-summary:before{content:"▶";margin-right:.5rem;font-size:.7rem;color:#6b7280}.conversation-section-label{display:flex;flex-direction:column;align-items:center;padding:.75rem 1rem .5rem;gap:.25rem}.label-icon{font-size:1.5rem;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.label-text{font-size:.95rem;font-weight:600;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.label-hint{font-size:.8rem;color:#ffffffe6;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.2)}.messages-container{flex:0 0 auto;overflow-y:visible;overflow-x:hidden;padding:1.25rem 1.25rem 2rem;min-height:250px;background:#fffffff2;margin:0 1rem 1rem;border-radius:1rem;box-shadow:0 4px 12px #0000001a,inset 0 1px 3px #0000000d;border:2px solid rgba(255,255,255,.8);position:relative}.messages-container::-webkit-scrollbar{width:10px;background:#0000000d;border-radius:5px}.messages-container::-webkit-scrollbar-track{background:#0000000d;border-radius:5px;margin:.5rem 0}.messages-container::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:5px;border:2px solid rgba(255,255,255,.5)}.messages-container::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#5568d3,#65408b);border-color:#fffc}.thinking-indicator{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem;animation:fadeIn .3s ease-in}.thinking-avatar{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.thinking-bubble{background:#fff;padding:1rem;border-radius:.25rem 1rem 1rem;display:flex;align-items:center;gap:.75rem}.thinking-dots{display:flex;gap:.25rem}.thinking-dots span{width:8px;height:8px;border-radius:50%;background:#667eea;animation:bounce 1.4s infinite ease-in-out}.thinking-dots span:nth-child(1){animation-delay:-.32s}.thinking-dots span:nth-child(2){animation-delay:-.16s}.thinking-text{font-size:.9rem;color:#6b7280}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.socratic-chat-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.loading-spinner{width:60px;height:60px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:1.5rem;font-size:1.25rem;font-weight:600;color:#fff}.loading-subtext{margin-top:.5rem;font-size:.9rem;color:#fffc}.socratic-chat-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2)}.error-icon{font-size:4rem;margin-bottom:1rem}.socratic-chat-error h3{font-size:1.5rem;color:#fff;margin-bottom:.5rem}.socratic-chat-error p{font-size:1rem;color:#ffffffe6;margin-bottom:2rem;text-align:center}.error-back-btn,.error-retry-btn{padding:.75rem 2rem;margin:.5rem;border:none;border-radius:.75rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.error-back-btn{background:#fff;color:#667eea}.error-retry-btn{background:#10b981;color:#fff}.socratic-summary{height:100vh;overflow-y:auto;padding:2rem 1rem;background:linear-gradient(135deg,#667eea,#764ba2)}.celebration-header{text-align:center;margin-bottom:2rem}.celebration-icon{font-size:4rem;animation:bounce 1s infinite}.celebration-title{font-size:2rem;font-weight:700;color:#fff;margin:1rem 0 .5rem}.celebration-subtitle{font-size:1rem;color:#ffffffe6}.summary-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2rem}.stat-item{background:#fff;padding:1.5rem;border-radius:1rem;text-align:center;box-shadow:0 4px 12px #0000001a}.stat-icon{font-size:2rem;margin-bottom:.5rem}.stat-label{display:block;font-size:.85rem;color:#6b7280;margin-bottom:.25rem}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:#1f2937}.summary-section{background:#fff;padding:1.5rem;border-radius:1rem;margin-bottom:1rem;box-shadow:0 4px 12px #0000001a}.section-title{font-size:1.1rem;font-weight:600;color:#1f2937;margin-bottom:1rem}.encouragement-text,.knowledge-text,.performance-text{font-size:1rem;color:#374151;line-height:1.6}.next-steps-list{list-style:none;padding:0;margin:0}.next-step-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f9fafb;border-radius:.5rem;margin-bottom:.5rem}.step-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#667eea;color:#fff;border-radius:50%;font-size:.85rem;font-weight:700;flex-shrink:0}.step-text{font-size:.95rem;color:#374151}.similar-questions-list{list-style:none;padding:0;margin:0}.similar-question-item{padding:.75rem;background:#f9fafb;border-radius:.5rem;margin-bottom:.5rem;font-size:.95rem;color:#374151;border-left:3px solid #667eea}.summary-actions{display:flex;gap:1rem;margin-top:2rem}.summary-btn{flex:1;padding:1rem;border:none;border-radius:1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.summary-btn.primary{background:#fff;color:#667eea}.summary-btn.secondary{background:#fff3;color:#fff;border:2px solid white}.summary-btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0003}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.summary-stats{grid-template-columns:repeat(2,1fr)}.stat-item{padding:1rem}.stat-icon{font-size:1.5rem}.stat-value{font-size:1.25rem}}.continuous-tutor{display:flex;flex-direction:column;height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.progress-navigation{background:#fff;padding:1rem;box-shadow:0 2px 8px #0000001a;z-index:10}.progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.progress-title{font-size:1.1rem;font-weight:700;color:#1f2937}.progress-count{font-size:.9rem;font-weight:600;color:#667eea;background:#f0f4ff;padding:.25rem .75rem;border-radius:9999px}.question-tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:.75rem;scrollbar-width:thin}.question-tabs::-webkit-scrollbar{height:4px}.question-tabs::-webkit-scrollbar-track{background:#f3f4f6;border-radius:2px}.question-tabs::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.question-tab{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;border:2px solid #e5e7eb;border-radius:.75rem;background:#fff;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.question-tab:hover:not(:disabled){border-color:#667eea;background:#f0f4ff;transform:translateY(-2px)}.question-tab.current{border-color:#667eea;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.question-tab.completed{border-color:#10b981;background:linear-gradient(135deg,#10b981,#059669);color:#fff}.question-tab.locked{opacity:.4;cursor:not-allowed;border-color:#e5e7eb;background:#f9fafb}.tab-icon{display:flex;align-items:center}.tab-text{font-size:.875rem;font-weight:600}.overall-progress{height:6px;background:#e5e7eb;border-radius:9999px;overflow:hidden}.overall-progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);border-radius:9999px;transition:width .5s ease-out}.current-question-area{flex:1;overflow:hidden}.completion-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.completion-card{background:#fff;padding:3rem 2rem;border-radius:1.5rem;text-align:center;max-width:400px;margin:0 1rem;box-shadow:0 20px 60px #0000004d;animation:slideUp .4s ease-out}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.completion-icon{font-size:4rem;margin-bottom:1rem;animation:bounce 1s ease-in-out infinite}.completion-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.75rem}.completion-text{font-size:1rem;color:#6b7280;margin-bottom:2rem;line-height:1.6}.completion-button{width:100%;padding:.875rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:.75rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #667eea4d}.completion-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.completion-button:active{transform:translateY(0)}@media(max-width:640px){.progress-navigation{padding:.75rem}.progress-title{font-size:1rem}.progress-count{font-size:.8rem;padding:.2rem .6rem}.question-tab{padding:.5rem .75rem}.tab-text{font-size:.8rem}.completion-card{padding:2rem 1.5rem}.completion-title{font-size:1.25rem}}.learning-history{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem 1rem 5rem}.history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.history-header h1{font-size:1.5rem;font-weight:700;color:#fff;margin:0}.back-btn,.export-btn{padding:.5rem;background:#fff3;border:none;border-radius:.5rem;color:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.25rem}.back-btn:hover,.export-btn:hover{background:#ffffff4d}.stats-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem}.stat-card{background:#fff;padding:1rem;border-radius:1rem;display:flex;align-items:center;gap:.75rem;box-shadow:0 4px 12px #0000001a}.stat-icon{font-size:1.75rem}.stat-info{flex:1}.stat-value{font-size:1.5rem;font-weight:700;color:#1f2937}.search-bar{background:#fff;padding:.75rem 1rem;border-radius:1rem;display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;box-shadow:0 2px 8px #0000001a}.search-bar input{flex:1;border:none;outline:none;font-size:.95rem}.search-bar svg{color:#9ca3af}.sessions-list{display:flex;flex-direction:column;gap:.75rem}.session-card{background:#fff;padding:1rem;border-radius:1rem;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #0000001a}.session-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.session-question{font-size:.95rem;font-weight:600;color:#1f2937;margin-bottom:.5rem;line-height:1.4}.session-meta{display:flex;gap:1rem;margin-bottom:.5rem}.meta-item{display:flex;align-items:center;gap:.25rem;font-size:.8rem;color:#6b7280}.meta-item svg{width:.875rem;height:.875rem}.session-tags{display:flex;gap:.5rem;flex-wrap:wrap}.tag{padding:.25rem .625rem;background:#f3f4f6;border-radius:9999px;font-size:.75rem;color:#6b7280}.empty-state{text-align:center;padding:3rem 1rem;color:#fff}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state p{margin:.5rem 0;font-size:1rem}.empty-hint{opacity:.7;font-size:.9rem!important}.history-footer{position:fixed;bottom:0;left:0;right:0;padding:1rem;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(0,0,0,.1)}.clear-all-btn{width:100%;padding:.875rem;background:#ef4444;color:#fff;border:none;border-radius:.75rem;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s}.clear-all-btn:hover{background:#dc2626}.confirm-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.confirm-dialog{background:#fff;padding:1.5rem;border-radius:1rem;max-width:400px;width:100%;box-shadow:0 8px 32px #0003}.confirm-dialog h3{margin:0 0 .75rem;font-size:1.25rem;color:#1f2937}.confirm-dialog p{margin:0 0 1.5rem;color:#6b7280;line-height:1.5}.confirm-actions{display:flex;gap:.75rem}.cancel-btn,.confirm-btn{flex:1;padding:.75rem;border:none;border-radius:.5rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn{background:#f3f4f6;color:#374151}.confirm-btn{background:#ef4444;color:#fff}.confirm-btn:hover{background:#dc2626}.learning-history-detail{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.delete-btn{padding:.5rem 1rem;background:#ef4444e6;color:#fff;border:none;border-radius:.5rem;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:.375rem;transition:all .2s}.delete-btn:hover{background:#dc2626}.detail-content{display:flex;flex-direction:column;gap:1rem}.detail-section{background:#fff;padding:1.25rem;border-radius:1rem;box-shadow:0 4px 12px #0000001a}.detail-section h3{margin:0 0 1rem;font-size:1.1rem;color:#1f2937}.question-text{font-size:1rem;color:#374151;line-height:1.6;white-space:pre-wrap}.question-image{width:100%;max-height:300px;object-fit:contain;margin-top:1rem;border-radius:.5rem;border:2px solid #e5e7eb}.messages-list{display:flex;flex-direction:column;gap:.75rem;max-height:500px;overflow-y:auto}.message-item{padding:.75rem;border-radius:.75rem;background:#f9fafb}.message-item.ai{background:#eff6ff;border-left:3px solid #3b82f6}.message-item.student{background:#f0fdf4;border-left:3px solid #10b981}.message-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.message-role{font-size:.8rem;font-weight:600;color:#6b7280}.message-time{font-size:.75rem;color:#9ca3af}.message-content{font-size:.9rem;color:#374151;line-height:1.5;white-space:pre-wrap}.summary-stats{display:flex;gap:1rem;margin-bottom:1rem}.stat{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:#f3f4f6;border-radius:.5rem;font-size:.85rem;color:#374151}.stat svg{width:1rem;height:1rem;color:#6b7280}.summary-text{display:flex;flex-direction:column;gap:.75rem}.summary-text p{margin:0;font-size:.9rem;color:#374151;line-height:1.6}.summary-text strong{color:#1f2937}@media(max-width:640px){.stats-cards{grid-template-columns:1fr}.stat-card{padding:.875rem}.session-meta{flex-wrap:wrap;gap:.5rem}}.math-page{min-height:100vh;background:linear-gradient(180deg,#fef3c7,#fde68a,#fbbf24);padding-bottom:100px}.math-header{position:sticky;top:0;z-index:100;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(251,191,36,.2);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 12px #0000000d}.header-content{display:flex;align-items:center;gap:12px}.back-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#fef3c7;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;color:#92400e}.back-btn:hover{background:#fde68a;transform:scale(1.05)}.header-title{display:flex;align-items:center;gap:8px}.title-icon{font-size:28px;animation:rotate 4s linear infinite}@keyframes rotate{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.header-title h1{font-size:20px;font-weight:800;color:#92400e;margin:0}.history-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#a855f7,#ec4899);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #a855f74d}.history-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #a855f766}.input-selection-page{padding:24px 20px;max-width:600px;margin:0 auto}.page-title{text-align:center;margin-bottom:32px}.page-title h2{font-size:24px;font-weight:800;color:#92400e;margin-bottom:8px}.page-title p{font-size:15px;color:#b45309;font-weight:500}.input-methods{display:grid;gap:16px;margin-bottom:24px}.input-method-card{position:relative;background:#fff;border-radius:20px;padding:24px;cursor:pointer;overflow:hidden;transition:all .4s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 16px #0000001a;-webkit-tap-highlight-color:transparent}.input-method-card:active{transform:scale(.97)}.card-glow{position:absolute;top:0;left:0;right:0;height:100%;opacity:0;transition:opacity .3s ease;pointer-events:none}.input-method-card.manual .card-glow{background:linear-gradient(135deg,#3b82f6,#2563eb)}.input-method-card.camera .card-glow{background:linear-gradient(135deg,#a855f7,#9333ea)}.input-method-card.upload .card-glow{background:linear-gradient(135deg,#10b981,#059669)}.input-method-card:hover .card-glow{opacity:.1}.card-icon{position:relative;z-index:1;width:64px;height:64px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;border-radius:16px;transition:all .3s ease}.input-method-card.manual .card-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af}.input-method-card.camera .card-icon{background:linear-gradient(135deg,#f3e8ff,#e9d5ff);color:#7c3aed}.input-method-card.upload .card-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#047857}.input-method-card:hover .card-icon{transform:scale(1.1) rotate(5deg)}.input-method-card h3{position:relative;z-index:1;font-size:18px;font-weight:700;color:#1f2937;margin-bottom:8px;text-align:center}.input-method-card p{position:relative;z-index:1;font-size:14px;color:#6b7280;text-align:center;margin-bottom:12px}.card-badge{position:relative;z-index:1;display:inline-block;padding:4px 12px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;border-radius:12px;font-size:12px;font-weight:700;margin:0 auto;display:block;width:fit-content;box-shadow:0 2px 8px #fbbf244d}.tip-card{display:flex;gap:12px;padding:16px;background:#ffffffe6;border-left:4px solid #f59e0b;border-radius:12px;box-shadow:0 2px 8px #00000014}.tip-icon{flex-shrink:0;color:#f59e0b}.tip-card p{font-size:14px;color:#92400e;margin:0;line-height:1.6}.manual-input-page,.upload-page,.questions-page{padding:24px 20px;max-width:600px;margin:0 auto}.input-card{background:#fff;border-radius:20px;padding:20px;box-shadow:0 8px 24px #0000001f}.question-textarea{width:100%;height:300px;padding:16px;border:2px solid #e5e7eb;border-radius:12px;resize:none;font-size:15px;line-height:1.6;transition:border-color .3s ease;font-family:inherit}.question-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a}.input-actions{display:flex;gap:12px;margin-top:16px}.submit-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #3b82f64d}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.submit-btn:disabled{background:linear-gradient(135deg,#d1d5db,#9ca3af);cursor:not-allowed;box-shadow:none}.cancel-btn{padding:14px 24px;background:#f3f4f6;color:#374151;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.cancel-btn:hover{background:#e5e7eb}.input-tips{margin-top:16px;font-size:13px;color:#6b7280}.input-tips p{margin:4px 0}.image-preview-card{background:#fff;border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:0 4px 12px #00000014}.image-preview-card h3{font-size:14px;font-weight:700;color:#6b7280;margin-bottom:12px}.preview-image{width:100%;max-height:300px;object-fit:contain;border-radius:12px;border:2px solid #e5e7eb}.success-banner{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-left:4px solid #3b82f6;border-radius:12px;margin-bottom:16px}.banner-icon{flex-shrink:0;color:#1e40af}.success-banner div{display:flex;flex-direction:column;gap:4px}.success-banner strong{font-size:16px;font-weight:700;color:#1e40af}.success-banner span{font-size:14px;color:#1e40af}.questions-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.question-item{background:#fff;border-radius:16px;padding:16px;box-shadow:0 2px 8px #0000000f}.question-number{font-size:14px;font-weight:700;color:#3b82f6;margin-bottom:8px}.question-content{font-size:15px;color:#374151;line-height:1.6;white-space:pre-wrap}.model-selection-card{background:#fff;border-radius:20px;padding:20px;box-shadow:0 8px 24px #0000001f}.model-selection-card h3{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700;color:#1f2937;margin-bottom:16px}.model-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.model-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;background:#fff;border:2px solid #e5e7eb;border-radius:16px;cursor:pointer;transition:all .3s ease;-webkit-tap-highlight-color:transparent}.model-btn:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001f}.model-btn.multi{grid-column:span 2;background:linear-gradient(135deg,#667eea,#764ba2);border-color:transparent;color:#fff}.model-btn.multi:hover{box-shadow:0 8px 24px #667eea66}.model-btn.claude{border-color:#a855f7}.model-btn.claude:hover{border-color:#a855f7;background:#faf5ff}.model-btn.gpt{border-color:#10b981}.model-btn.gpt:hover{border-color:#10b981;background:#f0fdf4}.model-btn.gemini{border-color:#ef4444}.model-btn.gemini:hover{border-color:#ef4444;background:#fef2f2}.model-emoji{font-size:32px}.model-name{font-size:15px;font-weight:700;color:inherit}.model-desc{font-size:12px;color:inherit;opacity:.8}.model-btn.multi .model-name,.model-btn.multi .model-desc{color:#fff}.model-tip{display:flex;gap:8px;padding:12px;background:#fef3c7;border-radius:12px}.model-tip svg{flex-shrink:0;color:#f59e0b}.model-tip p{font-size:12px;color:#92400e;margin:0;line-height:1.5}@media(max-width:375px){.model-grid{gap:8px}.model-btn{padding:16px 12px}.model-emoji{font-size:28px}.model-name{font-size:14px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.tutor-assistant-container{display:flex;flex-direction:column;height:calc(100vh - 60px);background:#f9fafb}.messages-container{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.typing-indicator{display:flex;align-items:center;gap:.25rem;padding:1rem;background:#fff;border-radius:1rem;align-self:flex-start;box-shadow:0 2px 8px #0000001a}.typing-dot{width:8px;height:8px;border-radius:50%;background:#3b82f6;animation:typingBounce 1.4s infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-10px)}}.input-container{padding:1rem;background:#fff;border-top:1px solid #e5e7eb}.input-wrapper{display:flex;align-items:flex-end;gap:.5rem;max-width:1200px;margin:0 auto}.voice-btn{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:none;background:#f3f4f6;color:#6b7280;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.voice-btn:hover{background:#e5e7eb}.voice-btn.listening{background:#ef4444;color:#fff;animation:pulse 1s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.message-input{flex:1;min-height:40px;max-height:120px;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:1.25rem;font-size:.875rem;font-family:inherit;resize:none;outline:none;transition:border-color .2s}.message-input:focus{border-color:#3b82f6}.message-input:disabled{background:#f3f4f6;cursor:not-allowed}.send-btn{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #3b82f666}.send-btn:disabled{opacity:.5;cursor:not-allowed}.send-btn .sparkle{animation:spin 1s linear infinite}@media(max-width:640px){.tutor-assistant-container{height:calc(100vh - 140px)}.messages-container,.input-container{padding:.75rem}}.chinese-page{min-height:100vh;background:linear-gradient(135deg,#fef3c7,#fde68a);padding:1rem;padding-bottom:80px}.chinese-header{text-align:center;padding:2rem 1rem;margin-bottom:1.5rem}.chinese-header h1{font-size:1.75rem;font-weight:700;color:#78350f;margin:0 0 .5rem}.chinese-header p{font-size:.875rem;color:#92400e;margin:0}.chinese-menu{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.menu-card{background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 4px 12px #0000001a}.menu-card.writing{border-top:4px solid #f59e0b}.menu-card.reading{border-top:4px solid #10b981}.card-header{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;color:#78350f}.card-header h2{font-size:1.25rem;font-weight:600;margin:0}.card-desc{font-size:.875rem;color:#6b7280;margin:0 0 1rem}.writing-form,.reading-form{display:flex;flex-direction:column;gap:1rem}.topic-input{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;transition:all .2s}.topic-input:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b1a}.writing-types{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.type-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;border:2px solid #e5e7eb;border-radius:.75rem;background:#fff;cursor:pointer;transition:all .2s}.type-btn:hover{border-color:#f59e0b;background:#fef3c7}.type-btn.active{border-color:#f59e0b;background:linear-gradient(135deg,#fef3c7,#fde68a);box-shadow:0 2px 8px #f59e0b4d}.type-icon{font-size:1.5rem}.type-name{font-size:.875rem;font-weight:500;color:#1f2937}.reading-textarea{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:.875rem;font-family:inherit;resize:vertical;transition:all .2s}.reading-textarea:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.start-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1.5rem;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.start-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b66}.start-btn:disabled{opacity:.5;cursor:not-allowed}.hint-box{background:#fff;border-radius:1rem;padding:1.5rem;border-left:4px solid #3b82f6;box-shadow:0 2px 8px #00000014}.hint-box h3{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 .75rem}.hint-box ul{list-style:none;padding:0;margin:0}.hint-box li{padding:.5rem 0;color:#4b5563;font-size:.875rem;line-height:1.5}.hint-box li:before{content:"→ ";color:#3b82f6;font-weight:700;margin-right:.5rem}.chinese-tutor{min-height:100vh;background:#fff}.tutor-header{display:flex;align-items:center;gap:1rem;padding:1rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:10}.back-btn{background:#fff;border:none;border-radius:.5rem;padding:.5rem;cursor:pointer;transition:all .2s;color:#78350f}.back-btn:hover{background:#fef3c7}.header-info h2{font-size:1.125rem;font-weight:600;color:#78350f;margin:0}.header-info p{font-size:.875rem;color:#92400e;margin:.25rem 0 0}@media(max-width:640px){.chinese-header{padding:1.5rem 1rem}.writing-types{grid-template-columns:1fr}.menu-card{padding:1rem}}.science-page{min-height:100vh;background:linear-gradient(135deg,#dbeafe,#bfdbfe);padding:1rem;padding-bottom:80px}.science-header{text-align:center;padding:2rem 1rem;margin-bottom:1.5rem}.science-header h1{font-size:1.75rem;font-weight:700;color:#1e3a8a;margin:0 0 .5rem}.science-header p{font-size:.875rem;color:#3b82f6;margin:0}.categories-grid{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:1.5rem}.category-section{background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 4px 12px #00000014}.category-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:3px solid}.category-icon{font-size:1.5rem}.category-header h2{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0}.experiments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}.experiment-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9fafb;border-radius:.75rem;border-left:4px solid;cursor:pointer;transition:all .2s}.experiment-card:hover{background:#fff;transform:translate(4px);box-shadow:0 4px 12px #0000001a}.exp-emoji{font-size:2rem;flex-shrink:0}.exp-info{flex:1}.exp-info h3{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 .25rem}.exp-info p{font-size:.875rem;color:#6b7280;margin:0}.exp-play{color:#3b82f6;flex-shrink:0}.ai-helper-card{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:1rem;padding:1.5rem;margin-bottom:1rem;box-shadow:0 4px 12px #0000001a}.helper-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;color:#78350f}.helper-header h3{font-size:1.125rem;font-weight:600;margin:0}.helper-header p{font-size:.875rem;color:#92400e;margin:0}.ask-btn{width:100%;padding:.75rem 1.5rem;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.ask-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b66}.science-tips{background:#fff;border-radius:1rem;padding:1.5rem;border-left:4px solid #10b981;box-shadow:0 2px 8px #00000014}.science-tips h3{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 1rem}.science-tips ul{list-style:none;padding:0;margin:0}.science-tips li{padding:.5rem 0;color:#4b5563;font-size:.875rem;line-height:1.5}.science-tips li:before{content:"→ ";color:#10b981;font-weight:700;margin-right:.5rem}.science-tutor{min-height:100vh;background:#fff}.tutor-header{display:flex;align-items:center;gap:1rem;padding:1rem;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:10;background:#fff}.tutor-header.ai-header{background:linear-gradient(135deg,#fef3c7,#fde68a)}.back-btn{background:#fff;border:none;border-radius:.5rem;padding:.5rem;cursor:pointer;transition:all .2s;color:#1f2937;box-shadow:0 2px 4px #0000001a}.back-btn:hover{background:#f3f4f6}.header-info{display:flex;align-items:center;gap:.75rem;flex:1}.header-badge{width:48px;height:48px;border-radius:.75rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 2px 8px #00000026}.ai-icon{color:#f59e0b}.header-info h2{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0}.header-info p{font-size:.875rem;color:#6b7280;margin:.25rem 0 0}@media(max-width:640px){.science-header{padding:1.5rem 1rem}.experiments-grid{grid-template-columns:1fr}.category-section{padding:1rem}}.games-page{min-height:100vh;background:linear-gradient(135deg,#fde68a,#fbbf24);padding:1rem;padding-bottom:80px}.games-header{text-align:center;padding:2rem 1rem;margin-bottom:1.5rem}.trophy-icon{color:#f59e0b;margin-bottom:.5rem;animation:bounce 2s infinite}.games-header h1{font-size:1.75rem;font-weight:700;color:#78350f;margin:.5rem 0}.games-header p{font-size:.875rem;color:#92400e;margin:0}.games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.game-card{background:#fff;border-radius:1rem;padding:1.5rem;border-left:4px solid;cursor:pointer;transition:all .3s;display:flex;flex-direction:column;gap:1rem;box-shadow:0 4px 12px #0000001a}.game-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.game-card-icon{width:64px;height:64px;border-radius:1rem;display:flex;align-items:center;justify-content:center;font-size:2rem}.game-card-content h3{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}.game-card-content p{font-size:.875rem;color:#6b7280;margin:0}.game-play-btn{padding:.75rem;border-radius:.5rem;color:#fff;text-align:center;font-weight:600;transition:all .2s}.game-play-btn:hover{transform:scale(1.05)}.games-stats{background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 4px 12px #0000001a}.games-stats h3{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 1rem}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.stat-item{text-align:center}.stat-icon{color:#f59e0b;margin-bottom:.5rem}.stat-value{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.25rem}.stat-label{font-size:.75rem;color:#6b7280}.game-container{min-height:100vh;background:#fff;display:flex;flex-direction:column}.game-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;color:#fff;position:sticky;top:0;z-index:10}.game-back-btn{background:#fff3;border:none;border-radius:.5rem;padding:.5rem;color:#fff;cursor:pointer;transition:all .2s}.game-back-btn:hover{background:#ffffff4d}.game-title{display:flex;align-items:center;gap:.5rem;flex:1;justify-content:center}.game-icon{font-size:1.5rem}.game-title h2{font-size:1.25rem;font-weight:600;margin:0}.game-score{display:flex;align-items:center;gap:.5rem;background:#fff3;padding:.5rem 1rem;border-radius:1rem;font-weight:600}.quiz-game{flex:1;padding:2rem;display:flex;flex-direction:column;gap:2rem}.quiz-progress{text-align:center;font-size:.875rem;color:#6b7280}.quiz-question{font-size:1.5rem;font-weight:600;color:#1f2937;text-align:center;padding:2rem;background:#f9fafb;border-radius:1rem}.quiz-options{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.quiz-option{padding:1.5rem;border:2px solid #e5e7eb;border-radius:.75rem;background:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.quiz-option:hover:not(:disabled){border-color:#3b82f6;transform:scale(1.05)}.quiz-option.correct{background:#d1fae5;border-color:#10b981}.quiz-option.wrong{background:#fee2e2;border-color:#ef4444}.quiz-complete{text-align:center;font-size:1.5rem;font-weight:600;color:#10b981;animation:celebrate .5s}@keyframes celebrate{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.memory-game{flex:1;padding:2rem}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;max-width:500px;margin:0 auto}.memory-card{aspect-ratio:1;background:#3b82f6;border-radius:.75rem;cursor:pointer;position:relative;transform-style:preserve-3d;transition:transform .3s}.memory-card.flipped{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:.75rem;backface-visibility:hidden;font-size:2rem}.card-front{background:#3b82f6;color:#fff;font-weight:700}.card-back{background:#fff;transform:rotateY(180deg)}.puzzle-game{flex:1;padding:2rem}.puzzle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:400px;margin:0 auto}.puzzle-piece{aspect-ratio:1;background:#3b82f6;color:#fff;font-size:2rem;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:.5rem;cursor:pointer;transition:all .2s}.puzzle-piece:hover:not(.empty){background:#2563eb;transform:scale(1.05)}.puzzle-piece.empty{background:#e5e7eb;cursor:default}.typing-game{flex:1;padding:2rem;display:flex;flex-direction:column;gap:2rem;align-items:center}.typing-target{font-size:1.25rem;font-family:monospace;color:#1f2937;background:#f9fafb;padding:2rem;border-radius:.75rem;text-align:center;max-width:600px}.typing-input{width:100%;max-width:600px;padding:1rem;font-size:1.125rem;font-family:monospace;border:2px solid #e5e7eb;border-radius:.5rem;outline:none;transition:border-color .2s}.typing-input:focus{border-color:#3b82f6}.typing-progress{font-size:.875rem;color:#6b7280}.game-complete{text-align:center;font-size:1.5rem;font-weight:600;color:#10b981;padding:2rem;animation:celebrate .5s}@media(max-width:640px){.games-grid,.quiz-options{grid-template-columns:1fr}.memory-grid{grid-template-columns:repeat(4,1fr);gap:.5rem}.stats-grid{grid-template-columns:repeat(3,1fr);gap:.5rem}}.learning-calendar{background:#fff;padding:25px;border-radius:20px;box-shadow:0 5px 20px #0000001a;margin-bottom:30px}.calendar-title{font-size:20px;color:#333;margin-bottom:20px;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;margin-bottom:15px}.calendar-day{aspect-ratio:1;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;border:2px solid transparent}.calendar-day:hover{transform:scale(1.1);border-color:#667eea;box-shadow:0 4px 12px #667eea4d}.day-label{font-size:14px;font-weight:700}.day-week{font-size:10px;opacity:.7}.calendar-day.level-0{background:#ebedf0;color:#999}.calendar-day.level-1{background:#c6e48b;color:#2d5016}.calendar-day.level-2{background:#7bc96f;color:#1a4d0f}.calendar-day.level-3{background:#239a3b;color:#fff}.calendar-legend{display:flex;align-items:center;justify-content:center;gap:5px;font-size:12px;color:#666}.legend-item{width:20px;height:20px;border-radius:4px}.legend-item.level-0{background:#ebedf0}.legend-item.level-1{background:#c6e48b}.legend-item.level-2{background:#7bc96f}.legend-item.level-3{background:#239a3b}@media(max-width:768px){.calendar-grid{grid-template-columns:repeat(7,1fr);gap:5px}.day-label{font-size:12px}.day-week{font-size:8px}}.achievement-grid-container{background:#fff;padding:30px;border-radius:20px;box-shadow:0 5px 20px #0000001a}.achievements-title{font-size:28px;text-align:center;color:#333;margin-bottom:20px}.achievements-stats{text-align:center;margin-bottom:30px}.stat-item{display:inline-flex;align-items:baseline;gap:5px;padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:25px}.stat-number{font-size:32px;font-weight:700}.stat-text{font-size:16px}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.achievement-card{background:#f8f9fa;padding:20px;border-radius:15px;display:flex;gap:15px;transition:all .3s;border:2px solid transparent}.achievement-card.unlocked{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;box-shadow:0 5px 20px #f093fb66}.achievement-card.unlocked:hover{transform:translateY(-5px);box-shadow:0 10px 30px #f093fb80}.achievement-card.locked{opacity:.6}.achievement-card.locked:hover{transform:translateY(-3px);border-color:#667eea}.achievement-icon-wrapper{position:relative;flex-shrink:0}.achievement-icon{font-size:48px;width:70px;height:70px;display:flex;align-items:center;justify-content:center;background:#fff3;border-radius:50%}.achievement-card.locked .achievement-icon{filter:grayscale(100%);opacity:.5}.unlock-badge{position:absolute;bottom:-5px;right:-5px;width:25px;height:25px;background:#4caf50;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;border:3px solid white;box-shadow:0 2px 8px #0003}.achievement-info{flex:1}.achievement-name{font-size:18px;font-weight:700;margin:0 0 5px}.achievement-card.unlocked .achievement-name{color:#fff}.achievement-desc{font-size:14px;margin:0 0 10px;opacity:.9}.achievement-progress{display:flex;align-items:center;gap:10px}.progress-bar-mini{flex:1;height:8px;background:#0000001a;border-radius:10px;overflow:hidden}.progress-fill-mini{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:10px;transition:width .3s ease}.progress-text{font-size:12px;font-weight:700;color:#667eea}@media(max-width:768px){.achievement-grid{grid-template-columns:1fr}.achievement-card{flex-direction:column;text-align:center}.achievement-icon-wrapper{margin:0 auto}}.storybook-create{max-width:1000px;margin:0 auto;padding:20px}.create-header{text-align:center;margin-bottom:30px}.create-header h2{font-size:32px;color:#333;margin-bottom:10px}.create-header p{font-size:16px;color:#666}.theme-section{background:#fff;padding:25px;border-radius:20px;margin-bottom:25px;box-shadow:0 5px 15px #0000001a}.theme-section h3{font-size:20px;color:#333;margin-bottom:20px}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:15px}.theme-card{background:#f8f9fa;padding:20px;border-radius:15px;text-align:center;cursor:pointer;transition:all .3s;border:3px solid transparent}.theme-card:hover{transform:translateY(-5px);box-shadow:0 5px 15px #0000001a}.theme-card.selected{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea}.theme-icon{font-size:36px;margin-bottom:10px}.theme-name{font-size:14px;font-weight:700}.style-section{background:#fff;padding:30px;border-radius:20px;margin-bottom:25px;box-shadow:0 5px 20px #00000014}.style-section h3{font-size:22px;color:#333;margin-bottom:20px;font-weight:700}.style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:15px}.style-card{background:linear-gradient(135deg,#f5f7fa,#e0e7ff);padding:25px 15px;border-radius:15px;text-align:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:3px solid transparent;position:relative;overflow:hidden}.style-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#f093fb1a,#f5576c1a);opacity:0;transition:opacity .3s}.style-card:hover:before{opacity:1}.style-card:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 10px 25px #667eea26;border-color:#667eea4d}.style-card.selected{background:linear-gradient(135deg,#f093fb,#f5576c);border-color:#f5576c;color:#fff;transform:translateY(-3px);box-shadow:0 8px 25px #f5576c66}.style-card.selected:before{opacity:0}.style-emoji{font-size:40px;margin-bottom:10px;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.style-card.selected .style-emoji{filter:drop-shadow(0 3px 6px rgba(255,255,255,.3));animation:bounce .5s ease}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.style-name{font-size:15px;font-weight:600;line-height:1.4}.style-card.selected .style-name{text-shadow:0 2px 4px rgba(0,0,0,.1)}.style-hint{text-align:center;color:#666;font-size:14px;margin:15px 0 0;padding:12px;background:#f8f9fa;border-radius:10px}.scene-count-section{background:#fff;padding:30px;border-radius:20px;margin-bottom:25px;box-shadow:0 5px 20px #00000014}.scene-count-section h3{font-size:22px;color:#333;margin-bottom:20px;font-weight:700}.scene-count-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.scene-count-card{background:linear-gradient(135deg,#f5f7fa,#e0e7ff);padding:20px;border-radius:15px;text-align:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:3px solid transparent}.scene-count-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #667eea26;border-color:#667eea4d}.scene-count-card.selected{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea;box-shadow:0 8px 25px #667eea66}.scene-count-value{font-size:20px;font-weight:700;margin-bottom:8px}.scene-count-desc{font-size:14px;opacity:.9;margin-bottom:5px}.scene-count-time{font-size:12px;opacity:.8}.words-section{background:#fff;padding:25px;border-radius:20px;margin-bottom:25px;box-shadow:0 5px 15px #0000001a}.words-section h3{font-size:20px;color:#333;margin-bottom:10px}.hint{font-size:14px;color:#666;margin-bottom:20px}.words-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.word-chip{background:#f0f0f0;padding:12px 16px;border-radius:25px;text-align:center;cursor:pointer;transition:all .3s;font-weight:500;border:2px solid transparent}.word-chip:hover{background:#e0e0e0;transform:scale(1.05)}.word-chip.selected{background:linear-gradient(135deg,#51cf66,#37b24d);color:#fff;border-color:#37b24d}.progress-container{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:30px;border-radius:20px;margin:25px 0;box-shadow:0 8px 30px #667eea59}.progress-header{font-size:20px;font-weight:700;margin-bottom:20px;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.2)}.progress-bar{background:#ffffff40;height:35px;border-radius:20px;overflow:hidden;margin-bottom:15px;box-shadow:inset 0 2px 4px #0000001a}.progress-fill{background:linear-gradient(90deg,#51cf66,#37b24d);height:100%;transition:width .8s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;font-weight:700;border-radius:20px;box-shadow:0 2px 8px #37b24d66}.progress-text{text-align:center;font-size:15px;opacity:.95;font-weight:500}.progress-spinner{text-align:center;padding:25px 0}.progress-spinner .spinner{font-size:56px;animation:rotate 2s linear infinite;display:inline-block;margin-bottom:15px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-success{text-align:center;font-size:24px;font-weight:700;padding:25px 0;animation:fadeInScale .5s ease}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.empty-state{text-align:center;padding:40px;color:#999}.empty-state p{margin:5px 0}.error-message{background:#fff3cd;border:2px solid #ffc107;padding:15px;border-radius:10px;color:#856404;text-align:center;margin-bottom:20px}.cost-hint{text-align:center;color:#666;font-size:14px;margin-top:15px;padding:12px;background:#fff3cd;border-radius:10px;border:2px solid #ffc107}.generate-btn{width:100%;max-width:400px;display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto;padding:20px 40px;background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;border:none;border-radius:50px;font-size:20px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 5px 20px #f5576c4d}.generate-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 30px #f5576c66}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.loading-spinner{animation:spin 1s linear infinite}@media(max-width:768px){.storybook-create{padding:15px}.create-header h2{font-size:24px;margin-bottom:8px}.create-header p{font-size:14px}.theme-section{padding:20px 15px;margin-bottom:20px}.theme-section h3{font-size:18px;margin-bottom:15px}.theme-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px}.theme-card{padding:15px 10px}.theme-icon{font-size:28px;margin-bottom:8px}.theme-name{font-size:13px}.style-section{padding:20px 15px;margin-bottom:20px}.style-section h3{font-size:18px;margin-bottom:15px}.style-grid{grid-template-columns:repeat(2,1fr);gap:12px}.style-card{padding:20px 10px}.style-emoji{font-size:32px;margin-bottom:8px}.style-name{font-size:13px}.style-hint{font-size:13px;padding:10px;margin:12px 0 0}.scene-count-section{padding:20px 15px;margin-bottom:20px}.scene-count-section h3{font-size:18px;margin-bottom:15px}.scene-count-grid{grid-template-columns:1fr;gap:12px}.scene-count-card{padding:15px}.scene-count-value{font-size:18px}.scene-count-desc{font-size:13px}.scene-count-time{font-size:11px}.words-section{padding:20px 15px;margin-bottom:20px}.words-section h3{font-size:18px}.hint{font-size:13px;margin-bottom:15px}.words-grid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr));gap:8px}.word-chip{padding:10px 12px;font-size:14px}.progress-container{padding:20px 15px;margin:20px 0}.progress-header{font-size:18px;margin-bottom:15px}.progress-bar{height:28px}.progress-text{font-size:14px}.progress-spinner .spinner{font-size:48px}.progress-success{font-size:20px;padding:20px 0}.cost-hint{font-size:13px;padding:10px;margin-top:12px}.generate-btn{max-width:100%;padding:16px 30px;font-size:18px}}@media(max-width:375px){.storybook-create{padding:12px}.create-header h2{font-size:20px}.create-header p{font-size:13px}.theme-section{padding:15px 12px}.theme-section h3{font-size:16px}.theme-grid{grid-template-columns:repeat(2,1fr);gap:8px}.theme-card{padding:12px 8px}.theme-icon{font-size:24px}.theme-name{font-size:12px}.style-section{padding:15px 12px}.style-section h3{font-size:16px}.style-grid{grid-template-columns:1fr;gap:10px}.style-card{padding:18px 10px}.style-emoji{font-size:28px}.style-name{font-size:12px}.style-hint{font-size:12px;padding:8px}.scene-count-section{padding:15px 12px}.scene-count-section h3{font-size:16px}.scene-count-card{padding:12px}.scene-count-value{font-size:16px}.scene-count-desc{font-size:12px}.words-section{padding:15px 12px}.words-section h3{font-size:16px}.words-grid{grid-template-columns:repeat(auto-fill,minmax(75px,1fr));gap:6px}.word-chip{padding:8px 10px;font-size:13px}.progress-container{padding:15px 12px}.progress-header{font-size:16px}.progress-bar{height:24px}.progress-text{font-size:13px}.progress-spinner .spinner{font-size:40px}.progress-success{font-size:18px}.generate-btn{padding:14px 25px;font-size:16px}.cost-hint{font-size:12px;padding:8px}}@media(min-width:769px)and (max-width:1024px){.style-grid{grid-template-columns:repeat(3,1fr);gap:15px}.scene-count-grid{grid-template-columns:repeat(3,1fr)}}.storybook-reader{position:fixed;inset:0;background:linear-gradient(135deg,#667eea,#764ba2);z-index:1000;display:flex;flex-direction:column;padding:20px 20px 120px;overflow-y:auto;box-sizing:border-box}.close-reader-btn{position:absolute;top:20px;right:20px;width:40px;height:40px;background:#ffffff4d;border:none;border-radius:50%;color:#fff;font-size:24px;cursor:pointer;transition:all .3s;z-index:10}.close-reader-btn:hover{background:#ffffff80;transform:scale(1.1)}.story-title{text-align:center;color:#fff;margin-bottom:20px}.story-title h2{font-size:32px;margin:0;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.book-container{flex:1;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;touch-action:pan-y}.book-page{background:#fff;max-width:800px;width:100%;border-radius:20px;box-shadow:0 20px 60px #0000004d;overflow:hidden;animation:pageFlip .5s ease-out;position:relative}@keyframes pageFlip{0%{transform:rotateY(-10deg);opacity:.8}to{transform:rotateY(0);opacity:1}}.page-image{position:relative;width:100%;height:400px;background:#f0f0f0;overflow:hidden}.page-image img{width:100%;height:100%;object-fit:cover;transition:opacity .3s ease}.page-number{position:absolute;bottom:10px;right:10px;background:#0009;color:#fff;padding:5px 15px;border-radius:20px;font-size:14px;z-index:2}.image-loading-skeleton{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#e3e8f7,#d4d9e8);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1}.skeleton-pulse{width:120px;height:120px;background:linear-gradient(90deg,#fff0,#fff6,#fff0);border-radius:50%;animation:skeletonPulse 1.5s ease-in-out infinite;position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:20px}.skeleton-pulse:before{content:"🖼️";font-size:60px;animation:iconFloat 2s ease-in-out infinite}@keyframes skeletonPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.skeleton-text{font-size:16px;color:#667eea;font-weight:600;animation:textFade 1.5s ease-in-out infinite}@keyframes textFade{0%,to{opacity:.5}50%{opacity:1}}.page-text-container{padding:30px;min-height:120px}.page-text{display:flex;align-items:center;justify-content:center;margin-bottom:15px}.page-text p{font-size:20px;line-height:1.8;color:#333;text-align:center;margin:0}.highlight-word{background:linear-gradient(135deg,#ffd93d,#ffb347);padding:2px 6px;border-radius:5px;font-weight:700;color:#333}.translate-btn{display:block;margin:0 auto 15px;padding:10px 25px;background:linear-gradient(135deg,#51cf66,#37b24d);color:#fff;border:none;border-radius:25px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 3px 10px #37b24d4d}.translate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #37b24d66}.translate-btn:disabled{opacity:.6;cursor:not-allowed}.translation-text{background:#51cf661a;border-left:4px solid #51cf66;padding:15px 20px;border-radius:10px;font-size:18px;line-height:1.8;color:#333;text-align:center;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.reader-controls{display:flex;justify-content:center;gap:20px;padding:20px}.control-btn{padding:15px 30px;border:none;border-radius:50px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s;background:#fff;color:#667eea;box-shadow:0 5px 15px #0003}.control-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 20px #0000004d}.control-btn:disabled{opacity:.3;cursor:not-allowed}.read-btn{background:linear-gradient(135deg,#51cf66,#37b24d);color:#fff}.reading-progress{height:8px;background:#ffffff4d;border-radius:10px;overflow:hidden;margin-top:10px}.progress-fill{height:100%;background:linear-gradient(90deg,#ffd93d,#ff6b6b);transition:width .3s ease;border-radius:10px}@media(max-width:768px){.storybook-reader{padding:10px 10px 100px}.close-reader-btn{top:10px;right:10px;width:36px;height:36px;font-size:20px}.story-title{margin-bottom:15px}.story-title h2{font-size:22px;padding:0 50px}.book-container{padding:10px}.book-page{border-radius:15px}.page-image{height:280px}.skeleton-pulse{width:100px;height:100px}.skeleton-pulse:before{font-size:50px}.skeleton-text{font-size:14px}.page-text-container{padding:20px 15px;min-height:100px}.page-text p{font-size:16px;line-height:1.7}.translate-btn{font-size:13px;padding:8px 20px}.translation-text{font-size:15px;padding:12px 15px;line-height:1.7}.reader-controls{flex-direction:row;gap:10px;padding:15px 10px;flex-wrap:wrap}.control-btn{flex:1;min-width:100px;padding:12px 15px;font-size:14px}.reading-progress{height:6px;margin:5px 10px 0}.book-page:after{content:"👈 滑动翻页 👉";position:absolute;bottom:15px;left:50%;transform:translate(-50%);font-size:12px;color:#ffffffb3;background:#00000080;padding:5px 15px;border-radius:15px;pointer-events:none;animation:fadeInOut 4s ease-in-out infinite;z-index:5}@keyframes fadeInOut{0%,to{opacity:0}25%,75%{opacity:1}}}@media(max-width:375px){.story-title h2{font-size:18px;padding:0 45px}.page-image{height:220px}.skeleton-pulse{width:80px;height:80px}.skeleton-pulse:before{font-size:40px}.skeleton-text{font-size:12px}.page-text-container{padding:15px 12px}.page-text p{font-size:14px;line-height:1.6}.translate-btn{font-size:12px;padding:7px 15px}.translation-text{font-size:13px;padding:10px 12px}.control-btn{font-size:13px;padding:10px 12px;min-width:90px}.highlight-word{padding:1px 4px;font-size:14px}}@media(min-width:769px)and (max-width:1024px){.book-page{max-width:700px}.page-image{height:350px}.page-text p{font-size:18px}.translation-text{font-size:17px}}@media(min-width:1440px){.book-page{max-width:900px}.page-image{height:480px}.page-text p{font-size:22px}.translation-text{font-size:20px}}.storybook-library{max-width:1200px;margin:0 auto;padding:20px}.library-header{text-align:center;margin-bottom:30px}.library-header h2{font-size:32px;color:#333;margin-bottom:10px}.library-header p{font-size:16px;color:#666}.empty-library{text-align:center;padding:80px 20px;background:#fff;border-radius:20px;box-shadow:0 5px 15px #0000001a}.empty-icon{font-size:80px;margin-bottom:20px}.empty-library h3{font-size:24px;color:#333;margin-bottom:10px}.empty-library p{font-size:16px;color:#666}.storybook-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:25px}.storybook-card{position:relative;background:#fff;border-radius:15px;overflow:hidden;cursor:pointer;transition:all .3s;box-shadow:0 5px 15px #0000001a}.storybook-card:hover{transform:translateY(-10px);box-shadow:0 15px 35px #0003}.delete-btn{position:absolute;top:10px;right:10px;z-index:10;background:#ffffffe6;border:none;border-radius:50%;width:35px;height:35px;font-size:16px;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center}.delete-btn:hover{background:#ff6b6b;transform:scale(1.1)}.book-cover{position:relative;width:100%;height:200px;overflow:hidden;background:#f0f0f0}.book-cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.storybook-card:hover .book-cover img{transform:scale(1.1)}.theme-badge{position:absolute;bottom:10px;left:10px;background:#ffffffe6;padding:5px 12px;border-radius:20px;font-size:20px}.book-info{padding:20px}.book-title{font-size:18px;color:#333;margin:0 0 15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-meta{display:flex;gap:15px;margin-bottom:10px;font-size:14px;color:#666}.word-count,.scene-count{display:flex;align-items:center;gap:5px}.book-date{font-size:12px;color:#999}.hover-overlay{position:absolute;inset:0;background:#667eeaf2;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.storybook-card:hover .hover-overlay{opacity:1}.read-icon{font-size:60px;margin-bottom:10px}.read-text{font-size:18px;font-weight:700;color:#fff}@media(max-width:768px){.storybook-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px}.book-cover{height:150px}.book-info{padding:15px}.book-title{font-size:16px}}.parent-dashboard{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:1rem;padding-bottom:80px}.parent-dashboard.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:#6b7280}.loading-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;background:#fff;padding:1.5rem;border-radius:1rem;box-shadow:0 2px 8px #00000014}.header-title h1{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0 0 .25rem}.header-title p{font-size:.875rem;color:#6b7280;margin:0}.refresh-btn{background:#f3f4f6;border:none;border-radius:.5rem;padding:.5rem;cursor:pointer;transition:all .2s;color:#6b7280}.refresh-btn:hover{background:#e5e7eb;transform:rotate(180deg)}.time-range-tabs{display:flex;gap:.5rem;margin-bottom:1rem;background:#fff;padding:.5rem;border-radius:.75rem;box-shadow:0 2px 4px #0000000d}.time-range-tabs button{flex:1;padding:.5rem 1rem;border:none;border-radius:.5rem;background:transparent;color:#6b7280;font-weight:500;cursor:pointer;transition:all .2s}.time-range-tabs button.active{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 8px #3b82f64d}.time-range-tabs button:hover:not(.active){background:#f3f4f6}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem}.stat-card{background:#fff;border-radius:1rem;padding:1.25rem;display:flex;align-items:center;gap:1rem;box-shadow:0 2px 8px #00000014;transition:transform .2s,box-shadow .2s}.stat-icon{width:48px;height:48px;border-radius:.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card.blue .stat-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af}.stat-card.green .stat-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46}.stat-card.orange .stat-icon{background:linear-gradient(135deg,#fed7aa,#fdba74);color:#92400e}.stat-card.red .stat-icon{background:linear-gradient(135deg,#fecaca,#fca5a5);color:#991b1b}.stat-content{flex:1}.stat-value{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0 0 .25rem}.stat-label{font-size:.875rem;color:#6b7280;margin:0}.chart-card{background:#fff;border-radius:1rem;padding:1.5rem;margin-bottom:1rem;box-shadow:0 2px 8px #00000014}.chart-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;color:#1f2937}.chart-header h3{font-size:1.125rem;font-weight:600;margin:0}.empty-chart{height:200px;display:flex;align-items:center;justify-content:center;color:#9ca3af}.activity-card{background:#fff;border-radius:1rem;padding:1.5rem;margin-bottom:1rem;box-shadow:0 2px 8px #00000014}.activity-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;color:#1f2937}.activity-header h3{font-size:1.125rem;font-weight:600;margin:0}.activity-list{display:flex;flex-direction:column;gap:.75rem}.activity-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f9fafb;border-radius:.75rem;transition:background .2s}.activity-item:hover{background:#f3f4f6}.activity-icon{width:32px;height:32px;border-radius:.5rem;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;display:flex;align-items:center;justify-content:center;flex-shrink:0}.activity-content{flex:1}.activity-title{font-size:.875rem;font-weight:500;color:#1f2937;margin:0 0 .25rem}.activity-time{font-size:.75rem;color:#9ca3af;margin:0}.activity-badge{background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}.empty-activity{padding:2rem;text-align:center;color:#9ca3af}.suggestion-card{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:1rem;padding:1.5rem;box-shadow:0 2px 8px #00000014}.suggestion-card h3{font-size:1.125rem;font-weight:600;color:#78350f;margin:0 0 1rem}.suggestion-card ul{list-style:none;padding:0;margin:0}.suggestion-card li{padding:.75rem;background:#fffc;border-radius:.5rem;margin-bottom:.5rem;color:#92400e;font-size:.875rem;line-height:1.5}.suggestion-card li:last-child{margin-bottom:0}.suggestion-card li:before{content:"• ";color:#f59e0b;font-weight:700;margin-right:.5rem}@media(max-width:640px){.parent-dashboard{padding:.75rem}.dashboard-header{padding:1rem}.stats-grid{grid-template-columns:1fr}.stat-card{padding:1rem}.stat-value{font-size:1.25rem}.chart-card,.activity-card,.suggestion-card{padding:1rem}}.recharts-tooltip-wrapper{z-index:100}.recharts-default-tooltip{border-radius:.5rem!important}.wrong-questions-page{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding-bottom:80px}.wq-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:10;box-shadow:0 2px 4px #0000000d}.wq-back-btn,.wq-refresh-btn{background:none;border:none;color:#6b7280;cursor:pointer;padding:.5rem;border-radius:.5rem;transition:background .2s}.wq-back-btn:hover,.wq-refresh-btn:hover{background:#f3f4f6}.wq-title{font-size:1.25rem;font-weight:700;color:#1f2937;margin:0}.wq-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;padding:1rem}.stat-card{background:#fff;border-radius:1rem;padding:1rem;text-align:center;box-shadow:0 2px 8px #00000014;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.stat-card.total{border-top:4px solid #3b82f6}.stat-card.unmastered{border-top:4px solid #f59e0b}.stat-card.mastered{border-top:4px solid #10b981}.stat-number{font-size:2rem;font-weight:700;color:#1f2937;margin-bottom:.25rem}.stat-label{font-size:.875rem;color:#6b7280}.wq-filters{display:flex;gap:.75rem;padding:0 1rem 1rem}.filter-group{flex:1;display:flex;align-items:center;gap:.5rem;background:#fff;padding:.75rem;border-radius:.75rem;box-shadow:0 2px 4px #0000000d;color:#6b7280}.filter-select{flex:1;border:none;outline:none;font-size:.875rem;color:#1f2937;font-weight:500;background:transparent;cursor:pointer}.wq-list{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.75rem}.wq-loading,.wq-empty{text-align:center;padding:3rem 1rem;color:#6b7280}.empty-icon{font-size:3rem;margin-bottom:1rem}.empty-text{font-size:1rem;font-weight:500}.wq-card{background:#fff;border-radius:1rem;padding:1rem;box-shadow:0 2px 8px #00000014;transition:all .3s;border-left:4px solid #f59e0b}.wq-card.mastered{border-left-color:#10b981;opacity:.8}.wq-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.wq-question{font-size:1rem;color:#1f2937;margin-bottom:.75rem;line-height:1.6;font-weight:500}.wq-info{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.info-item{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#6b7280}.attempts-badge{background:#fef3c7;color:#92400e;padding:.25rem .5rem;border-radius:.375rem;font-weight:600;font-size:.75rem}.wq-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.knowledge-tag{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}.wq-answers{background:#f9fafb;border-radius:.5rem;padding:.75rem;margin-bottom:.75rem}.answer-row{display:flex;gap:.5rem;margin-bottom:.5rem;font-size:.875rem}.answer-row:last-child{margin-bottom:0}.answer-label{font-weight:600;min-width:5rem}.answer-row.wrong .answer-label{color:#dc2626}.answer-row.correct .answer-label{color:#10b981}.answer-value{flex:1;color:#4b5563}.wq-actions{display:flex;gap:.5rem}.action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:600;border:none;cursor:pointer;transition:all .2s}.action-btn.redo{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.action-btn.redo:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.action-btn.master{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.action-btn.master:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.action-btn.delete{background:#fee2e2;color:#dc2626;flex:0 0 auto;padding:.5rem}.action-btn.delete:hover{background:#fecaca}@media(max-width:640px){.wq-stats{grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.75rem}.stat-number{font-size:1.5rem}.wq-filters{flex-direction:column}.wq-actions{flex-wrap:wrap}.action-btn{font-size:.8rem;padding:.4rem .75rem}}
