:root{--primary-color: #FF6B6B;--secondary-color: #4ECDC4;--accent-yellow: #FFE66D;--accent-purple: #9B5DE5;--success-green: #00F5D4;--bg-color: #F7FFF7;--text-main: #2D3142;--card-bg: rgba(255,255,255,.9);--font-main: "Nunito", "Noto Sans SC", sans-serif;--font-title: "ZCOOL KuaiLe", cursive}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--font-main);background-color:var(--bg-color);background-image:radial-gradient(var(--accent-yellow) 2px,transparent 2px);background-size:40px 40px;color:var(--text-main);overflow-x:hidden}h1,h2,h3,.nav-btn .text,.mascot{font-family:var(--font-title)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes celebrate{0%{transform:scale(1) rotate(0)}25%{transform:scale(1.2) rotate(-5deg)}50%{transform:scale(1.3) rotate(5deg)}75%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}.sky-elements{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1}.star{position:absolute;font-size:2rem;animation:float 3s ease-in-out infinite;opacity:.6}.star-1{top:10%;left:15%;animation-delay:0s}.star-2{top:20%;right:20%;animation-delay:1s}.star-3{bottom:30%;left:10%;animation-delay:2s}.main-nav{display:flex;justify-content:center;gap:15px;padding:20px;background:#fff;box-shadow:0 8px 32px #0000001a;border-bottom-left-radius:30px;border-bottom-right-radius:30px;position:sticky;top:0;z-index:100;flex-wrap:wrap}.nav-btn{background:#fff;border:3px solid var(--secondary-color);border-radius:20px;padding:10px 20px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 4px 0 var(--secondary-color);color:var(--text-main)}.nav-btn:hover{transform:translateY(-5px);box-shadow:0 8px 0 var(--secondary-color);border-color:var(--primary-color)}.nav-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 4px #d35400}.nav-btn .icon{font-size:1.5rem}.app-section{display:none;padding:30px 20px;max-width:1000px;margin:0 auto;animation:fadeIn .5s ease}.app-section.active{display:block}.header{text-align:center;margin-bottom:20px;background:var(--card-bg);padding:10px 20px;border-radius:20px;box-shadow:0 5px 15px #0000000d;border:4px dashed var(--accent-yellow)}.header .mascot{font-size:2.5rem;margin-bottom:-10px;animation:float 4s infinite ease-in-out;display:inline-block}.header h1{color:var(--primary-color);font-size:1.8rem;margin:5px 0;text-shadow:2px 2px 0px var(--accent-yellow)}.header p{color:#666;font-size:1rem;margin:5px 0;font-weight:700}.hidden{display:none!important}#global-loading{position:fixed;top:0;left:0;width:100%;height:100%;background:#fffc;display:flex;justify-content:center;align-items:center;z-index:1000}.spinner{font-size:5rem;animation:wiggle 1s infinite}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;justify-content:center;align-items:flex-start;padding:40px 10px;overflow-y:auto;z-index:999}.modal-content{background:#2d4232;padding:40px;border-radius:10px;max-width:800px;width:90%;margin:auto;position:relative;box-shadow:0 20px 50px #0006,inset 0 0 20px #00000080;border:15px solid #8B5A2B;text-align:left;animation:popIn .4s cubic-bezier(.175,.885,.32,1.275);color:#fdf6e3;font-family:var(--font-main)}.close-modal-btn{position:absolute;top:15px;right:15px;width:45px;height:45px;border-radius:50%;background:#d32f2f;color:#fff;border:4px solid white;font-size:1.5rem;font-weight:700;cursor:pointer;box-shadow:0 4px 10px #0000004d;display:flex;align-items:center;justify-content:center;z-index:10}.close-modal-btn:hover{transform:scale(1.1)}#modal-title{color:#ffeb3b;font-size:2.2rem;margin-top:0;text-align:center;font-family:var(--font-title);border-bottom:2px dashed rgba(255,255,255,.3);padding-bottom:15px;margin-bottom:20px;letter-spacing:2px}.modal-body-content{font-size:1.2rem;line-height:1.8;letter-spacing:1px}.magic-btn{background:var(--accent-purple);color:#fff;border:none;padding:15px 30px;font-size:1.3rem;border-radius:25px;cursor:pointer;box-shadow:0 6px #5e35b1;font-family:inherit;transition:all .2s;display:inline-block}.magic-btn:active{transform:translateY(6px);box-shadow:0 0 #5e35b1}.magic-btn.alt{background:var(--secondary-color);box-shadow:0 6px #3ab6ae}.magic-btn.small{padding:8px 16px;font-size:1rem}.diff-btn{background:#fff;border:2px solid var(--secondary-color);border-radius:15px;padding:6px 16px;font-size:1rem;cursor:pointer;margin:0 4px;font-family:inherit;transition:all .2s}.diff-btn.active{background:var(--secondary-color);color:#fff}.playful-card{background:#fff;border-radius:20px;padding:20px;text-align:center;cursor:pointer;box-shadow:0 8px 0 var(--secondary-color);border:3px solid var(--secondary-color);transition:all .3s}.playful-card:hover{transform:translateY(-5px);box-shadow:0 13px 0 var(--secondary-color)}.playful-card:active{transform:translateY(8px);box-shadow:0 0 0 var(--secondary-color)}.math-tabs{display:flex;justify-content:center;gap:15px;margin-bottom:30px}.math-tab{background:#fff;border:3px solid var(--secondary-color);border-radius:25px;padding:12px 30px;font-size:1.3rem;font-weight:700;font-family:inherit;color:var(--text-main);cursor:pointer;box-shadow:0 5px 0 var(--secondary-color);transition:all .2s}.math-tab:hover{transform:translateY(-3px);box-shadow:0 8px 0 var(--secondary-color)}.math-tab.active{background:var(--secondary-color);color:#fff;border-color:var(--secondary-color);box-shadow:0 5px #3ab6ae}.practice-controls{display:flex;gap:15px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}.difficulty-controls{margin-bottom:15px}.math-layout{display:flex;gap:20px;text-align:left;margin-top:20px}.math-left-col{flex:2;display:flex;flex-direction:column;align-items:center}.math-right-col{flex:1;background:#fffc;border-radius:15px;padding:20px;max-height:500px;overflow-y:auto;color:#333;box-shadow:0 5px 15px #0000001a}.math-problem-box{width:100%;border:4px solid #8B5A2B;border-radius:10px;padding:20px;background:#2d4232;box-shadow:0 10px 20px #0000004d inset;color:#fff}.math-mobile-back-btn,.math-mobile-question-title{display:none}.problem-display{font-size:2.5rem;margin-bottom:20px;font-weight:700;text-align:center}.vertical-math{font-family:Courier New,monospace;font-size:2.5rem;color:#fff;display:flex;flex-direction:column;align-items:flex-end;margin:0 auto 20px;width:max-content;letter-spacing:8px}.v-row{white-space:pre}.v-op{border-bottom:4px solid white;padding-bottom:4px}.v-line{color:#fff;letter-spacing:2px}.cute-input{font-size:2rem;padding:15px;border-radius:20px;border:4px solid var(--accent-yellow);text-align:center;width:150px;font-family:inherit}.cute-input:focus{outline:none;border-color:var(--primary-color)}.feedback-msg{font-size:1.5rem;margin-top:20px;font-weight:700}.math-stats{display:flex;gap:20px;margin-top:20px;font-size:1.2rem;flex-wrap:wrap;justify-content:center;background:#fff;padding:15px;border-radius:15px}.practice-panel{width:100%;max-width:860px;margin:18px auto 12px;padding:18px;background:#ffffffeb;border:3px solid var(--accent-purple);border-radius:20px;box-shadow:0 8px #5e35b1}.practice-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.practice-panel-header h3{margin:0;color:var(--accent-purple);font-size:1.45rem}.difficulty-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}.difficulty-label{font-weight:800;color:#4a5568;flex-shrink:0}.difficulty-segment{display:flex;gap:8px;flex:1}.difficulty-segment .diff-btn{flex:1;margin:0;min-height:42px}.word-problem-panel{width:100%;max-width:860px;margin:18px auto 8px;padding:18px;background:#ffffffeb;border:3px solid var(--secondary-color);border-radius:20px;box-shadow:0 8px #3ab6ae}.word-problem-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.word-problem-header h3{margin:0;color:var(--primary-color);font-size:1.45rem}.word-grade-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.word-grade-btn{min-height:48px;border:2px solid var(--secondary-color);border-radius:16px;background:#fff;color:var(--text-main);font:inherit;font-weight:800;cursor:pointer;box-shadow:0 4px 0 var(--secondary-color)}.word-grade-btn.active,.word-grade-btn:active{background:var(--secondary-color);color:#fff;transform:translateY(4px);box-shadow:0 0 0 var(--secondary-color)}.word-grade-btn:disabled{cursor:not-allowed;opacity:.65}.word-problem-status{margin-top:12px;min-height:24px;color:#666;font-weight:700;text-align:center}.word-problem-status.loading{color:#2b6cb0}.word-problem-status.ready{color:#258d84}.word-problem-status.error{color:#d32f2f}.word-problem-card{margin-top:14px;padding:16px;border-radius:16px;background:#f8fffd;border:2px dashed var(--accent-yellow)}.word-problem-meta{color:#258d84;font-weight:800;margin-bottom:8px}.word-problem-question{font-size:1.2rem;line-height:1.75;color:#333;font-weight:700;text-align:left}.word-answer-row{display:flex;gap:10px;align-items:center;margin-top:14px}.word-answer-row .cute-input{flex:1;width:auto;font-size:1.3rem;padding:11px}.word-answer-row .magic-btn{flex:0 0 auto}.word-problem-feedback{min-height:30px;margin-top:12px;font-size:1.15rem;font-weight:900;text-align:center}.word-problem-feedback.success{color:#049d89}.word-problem-feedback.error{color:#ff4757}.word-problem-feedback.loading{color:#2b6cb0}.word-problem-solution{margin-top:12px;padding:12px;border-radius:14px;background:#fff;text-align:left}.word-solution-title{margin-bottom:8px;color:var(--accent-purple);font-weight:900}.word-solution-step{margin-top:8px;padding:10px;border-radius:10px;background:#eefaf8;color:#333;line-height:1.55}.photo-mode-box{background:#fff;padding:40px;border-radius:30px;box-shadow:0 15px 0 var(--secondary-color);border:4px solid var(--secondary-color);text-align:center;margin:30px auto;max-width:600px;animation:popIn .3s cubic-bezier(.175,.885,.32,1.275)}.photo-mode-box h2{color:var(--primary-color);font-size:2rem;margin-bottom:20px}.upload-area{border:4px dashed var(--secondary-color);border-radius:20px;padding:40px 20px;cursor:pointer;background:var(--bg-color);transition:all .3s}.upload-area:hover{background:#e0f2f1;border-color:var(--primary-color);transform:scale(1.02)}.upload-icon{font-size:4rem;margin-bottom:15px;animation:float 3s ease-in-out infinite}.upload-area p{font-size:1.5rem;font-weight:700;color:var(--text-main);margin:0}#image-preview-container{margin-top:20px}#image-preview{max-width:100%;max-height:300px;border-radius:15px;border:4px solid var(--accent-yellow);margin-bottom:20px}#english-letters-grid{position:relative;max-height:60vh;overflow-y:auto;padding:10px}.scroll-progress-bar{height:6px;background:#eee;border-radius:3px;margin-bottom:10px}.scroll-progress-fill{height:100%;background:var(--secondary-color);border-radius:3px;width:0;transition:width .1s}.letters-grid-inner{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:15px}.letter-card{padding:15px 10px}.letter-char{font-size:2.5rem;color:var(--primary-color);font-family:var(--font-title);font-weight:700}.letter-emoji{font-size:1.8rem;margin:6px 0}.letter-word{font-size:1rem;font-weight:700;color:#444}.letter-phonetic{font-size:.85rem;color:#888;margin-top:4px}.letter-detail-panel{position:fixed;top:0;right:-100%;width:min(480px,100vw);height:100vh;background:#fff;box-shadow:-5px 0 30px #0003;z-index:500;overflow-y:auto;padding:30px 20px;transition:right .35s ease}.letter-detail-panel.open{right:0}.detail-close-btn{position:absolute;top:15px;right:15px;width:40px;height:40px;border-radius:50%;background:#d32f2f;color:#fff;border:3px solid white;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.detail-header{text-align:center;margin-bottom:20px;padding-top:10px}.detail-char{font-size:5rem;color:var(--primary-color);font-family:var(--font-title);cursor:pointer}.detail-phonetic{font-size:1.5rem;color:#888;cursor:pointer;margin-bottom:10px}.detail-play-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.detail-words-list{display:flex;flex-direction:column;gap:12px}.word-item{background:#f8f9fa;border-radius:12px;padding:12px;border-left:4px solid var(--secondary-color)}.word-emoji{font-size:1.5rem;margin-right:8px}.word-text{font-size:1.2rem;font-weight:700;cursor:pointer;color:var(--primary-color);margin-right:8px}.word-text:hover{text-decoration:underline}.word-chinese{font-size:1rem;color:#666}.word-sentence{margin-top:8px;font-size:.95rem;line-height:1.6}.sentence-cn{display:block;color:#888;font-size:.9rem;margin-top:4px}.play-sentence-btn{background:var(--secondary-color);color:#fff;border:none;border-radius:10px;padding:4px 10px;font-size:.85rem;cursor:pointer;margin-top:6px}.clickable-word{cursor:pointer;border-radius:4px;padding:1px 2px;transition:background .2s}.clickable-word:hover{background:var(--accent-yellow)}.word-highlight{background:var(--accent-yellow)!important;border-radius:4px}.translation-bubble{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#333;color:#fff;padding:4px 10px;border-radius:8px;font-size:.85rem;white-space:nowrap;z-index:100;pointer-events:none}.clicked-word{background:linear-gradient(45deg,gold,#ffed4e)!important;color:#333!important;padding:2px 6px;border-radius:6px;box-shadow:0 2px 8px #ffd70066;transform:scale(1.1);font-weight:700;transition:all .3s ease}.letter-clickable.clicked-word,.phonetic-clickable.clicked-word{background:linear-gradient(45deg,gold,#ffed4e)!important;color:#333!important;padding:4px 8px;border-radius:8px;box-shadow:0 2px 8px #ffd70066;transform:scale(1.05);font-weight:700}.highlight-word{background:var(--accent-yellow)!important;border-radius:4px;padding:1px 3px;transition:background .15s ease}.translation-tooltip{position:fixed;background:#000000d9;color:#fff;padding:6px 12px;border-radius:8px;font-size:1em;font-family:Noto Sans SC,sans-serif;z-index:2000;opacity:0;transition:opacity .3s ease;pointer-events:none;white-space:nowrap;box-shadow:0 2px 10px #0003}.chat-wrapper{margin-top:30px;border:4px dashed var(--secondary-color);border-radius:20px;padding:20px;background:#fff}.chat-messages{height:250px;overflow-y:auto;background:#f0f8ff;border-radius:15px;padding:15px;display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.chat-input-row{display:flex;gap:10px;flex-wrap:wrap}.chat-input-row .cute-input{flex:1;font-size:1rem;padding:12px;width:auto}.msg{padding:10px 15px;border-radius:15px;max-width:80%;word-break:break-word}.tutor-msg{align-self:flex-start;background:#e0f7fa;border-top-left-radius:0}.user-msg{align-self:flex-end;background:var(--accent-yellow);border-top-right-radius:0}.fables-magic-wand{text-align:center;margin-bottom:20px}.category-tabs{display:flex;justify-content:center;gap:10px;margin-bottom:20px;flex-wrap:wrap}.category-btn{background:#fff;border:2px solid var(--secondary-color);border-radius:20px;padding:8px 20px;font-size:1rem;cursor:pointer;font-family:inherit;transition:all .2s}.category-btn.active{background:var(--secondary-color);color:#fff}.fables-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px}.fable-card{padding:15px}.fable-emoji{font-size:2.5rem;margin-bottom:8px}.fable-title{font-size:1.1rem;margin:5px 0;color:var(--text-main)}.fable-preview{font-size:.85rem;color:#888;margin:0}.fable-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0000;display:flex;justify-content:center;align-items:center;z-index:800;padding:20px;transition:background .3s}.fable-overlay.open{background:#0009}.fable-modal{background:#fff;border-radius:20px;padding:30px;max-width:600px;width:100%;max-height:85vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0000004d;animation:popIn .3s ease}.fable-modal-emoji{font-size:3rem;text-align:center}.fable-modal-title{text-align:center;color:var(--primary-color);font-size:1.8rem;margin:10px 0}.fable-story-text{font-size:1.1rem;line-height:2;color:#333;margin:15px 0}.fable-sentence{border-radius:4px;transition:background .2s}.sentence-highlight{background:var(--accent-yellow)}.fable-moral{background:#fff9c4;padding:15px;border-radius:15px;margin:15px 0;font-size:1rem}.fable-actions{text-align:center;margin-top:15px}.dict-top-bar{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;text-align:center}.dict-unit-label{font-size:1.2rem;font-weight:700}.dict-unit-select{padding:10px;border-radius:15px;border:2px solid var(--secondary-color);font-size:1.1rem;font-family:inherit;background:#fff;cursor:pointer}.dict-start-btn{margin:0}.dict-workspace{margin-top:24px;padding:28px;border-radius:20px;background:#fff;box-shadow:0 10px 0 var(--secondary-color);text-align:center}.dict-counter{font-size:1.4rem;color:#666;margin-bottom:10px}.dict-counter-num{color:var(--primary-color);font-weight:700;font-size:1.9rem}.dict-status-msg{color:var(--accent-purple);font-size:1.8rem;margin:18px 0}.dict-countdown{font-size:2.6rem;color:var(--primary-color);font-weight:700;margin:8px 0;min-height:54px}.dict-input-area{margin:14px 0}.dict-canvas-row{display:flex;justify-content:center;gap:10px;align-items:flex-end;flex-wrap:wrap}.dict-canvas-wrapper{position:relative;width:160px;height:160px}.dict-canvas{width:100%;height:100%;border:2px solid var(--secondary-color);border-radius:10px;background:#fff;cursor:crosshair;touch-action:none}.dict-input-actions{margin-top:12px;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.dict-btn-submit{background:var(--success-green)!important;box-shadow:0 6px #00d1b2!important}.dict-btn-clear{background:#ff6b6b!important;box-shadow:0 6px #d35400!important}.dict-btn-replay{background:#ffa502!important;box-shadow:0 6px #e67e22!important}.dict-btn-skip{background:#aaa!important;box-shadow:0 6px #888!important}.dict-btn-next{background:var(--success-green)!important;box-shadow:0 6px #00d1b2!important}.dict-result-msg{font-size:1.4rem;margin-top:10px;min-height:36px}.dict-answer-box{margin:18px 0}.dict-answer-label{font-size:1.15rem;color:#666;margin:0 0 8px}.dict-word-display{font-size:3.4rem;color:var(--success-green);font-weight:700;letter-spacing:10px}.dict-tianzige-row{margin-top:18px;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.dict-actions{margin-top:24px;display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.tianzige-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.tianzige-cell{width:90px;height:90px;border:2px solid #333;position:relative;display:flex;align-items:center;justify-content:center;background:#fff}.tianzige-lines{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.tianzige-h{position:absolute;top:50%;left:0;width:100%;height:1px;background:#0003;border-top:1px dashed rgba(0,0,0,.3)}.tianzige-v{position:absolute;left:50%;top:0;height:100%;width:1px;background:#0003;border-left:1px dashed rgba(0,0,0,.3)}.tianzige-char{font-size:3rem;color:#333;z-index:1}@media(max-width:600px){.math-layout{flex-direction:column}.math-right-col{max-height:300px}.letters-grid-inner{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}.letter-detail-panel{width:100vw}.magic-btn{padding:12px 20px;font-size:1.1rem}.header h1{font-size:1.4rem}.fables-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}@media(max-width:480px){.main-nav{gap:8px;padding:12px}.nav-btn{padding:8px 12px;font-size:1rem}.nav-btn .icon{font-size:1.2rem}.app-section{padding:15px 10px}}@media(max-width:600px){:root{--mobile-nav-height: 78px}html{scroll-padding-bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom))}body{min-width:320px;padding-bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));background-size:32px 32px}button,input,select,textarea{font-size:16px}.sky-elements{opacity:.35}.main-nav{position:fixed;inset:auto 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;box-shadow:0 -8px 26px #00000024;flex-wrap:nowrap}.nav-btn{width:100%;min-width:0;height:58px;padding:6px 4px;border-width:2px;border-radius:16px;box-shadow:0 3px 0 var(--secondary-color);display:flex;flex-direction:column;justify-content:center;gap:2px;font-size:.78rem;line-height:1.1;overflow:hidden}.nav-btn:hover{transform:none;box-shadow:0 3px 0 var(--secondary-color)}.nav-btn.active{box-shadow:0 3px #d35400}.nav-btn .icon{font-size:1.35rem;line-height:1}.nav-btn .text{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-wrapper{width:100%}.app-section{width:100%;max-width:none;padding:12px 10px 18px}.header{margin-bottom:14px;padding:8px 12px;border-width:3px;border-radius:16px}.header .mascot{font-size:2rem;margin-bottom:-6px}.header h1{font-size:1.25rem;line-height:1.25;text-shadow:1px 1px 0 var(--accent-yellow)}.header p{font-size:.92rem}.magic-btn{width:100%;min-width:0;min-height:48px;padding:11px 14px;border-radius:16px;font-size:1rem;line-height:1.2;box-shadow:0 4px #5e35b1;overflow-wrap:anywhere;white-space:normal}.magic-btn.alt{box-shadow:0 4px #3ab6ae}.magic-btn.small{width:auto;min-height:40px}.diff-btn,.category-btn,.math-tab{min-height:44px}.modal-overlay{align-items:stretch;padding:10px}.modal-content{width:100%;max-width:none;max-height:calc(100vh - var(--mobile-nav-height) - 30px);padding:24px 16px 18px;border-width:8px;overflow-y:auto}.close-modal-btn,.detail-close-btn{width:42px;height:42px;top:10px;right:10px}#modal-title{padding-right:42px;font-size:1.45rem;line-height:1.25;letter-spacing:0}.modal-body-content{font-size:1rem;line-height:1.65;letter-spacing:0}#eng-overlay{height:100dvh!important}#eng-detail-panel{top:calc(50% - (var(--mobile-nav-height) / 2))!important;width:calc(100vw - 28px)!important;max-width:none!important;max-height:calc(100dvh - var(--mobile-nav-height) - 28px - env(safe-area-inset-top))!important;padding:18px 14px 14px!important;border-radius:22px!important;overflow-y:auto!important;overscroll-behavior:contain}#eng-detail-panel .eng-close-btn{top:12px!important;right:12px!important;width:38px!important;height:38px!important;font-size:18px!important;z-index:2}#eng-detail-panel .letter-info{margin-bottom:12px!important;padding:0 34px 0 6px}#eng-detail-panel .eng-letter-click{font-size:clamp(3rem,18vw,4rem)!important;line-height:.95}#eng-detail-panel .eng-phonetic-click{display:block!important;margin:6px 0 0!important;font-size:1.15rem!important}#eng-detail-panel .eng-detail-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px!important;margin-top:12px!important}#eng-detail-panel .eng-detail-actions .magic-btn{min-height:44px;padding:9px 8px!important;border-radius:14px;font-size:.9rem!important}#eng-detail-panel .eng-detail-body{padding:12px 8px!important;border-radius:18px!important}#eng-detail-panel .eng-word-chips{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important;margin-bottom:14px!important}#eng-detail-panel .word-chip{justify-content:center;min-width:0;padding:9px 8px!important;border-radius:16px!important;font-size:.98rem!important;line-height:1.15}#eng-detail-panel .word-clickable{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#eng-detail-panel .eng-sentences-list{gap:10px!important}#eng-detail-panel .eng-sentence-card{align-items:flex-start!important;gap:10px!important;padding:10px!important;border-left-width:4px!important}#eng-detail-panel .sentence-text{font-size:.98rem!important;line-height:1.55;word-spacing:.18em!important}#eng-detail-panel .play-btn-sentence{width:34px!important;height:34px!important;margin-top:2px}.math-tabs,.category-tabs,.practice-controls,.difficulty-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.math-tab,.diff-btn,.category-btn{width:100%;min-width:0;margin:0;padding:9px 8px;border-radius:16px;font-size:.98rem;line-height:1.15;overflow-wrap:anywhere;white-space:normal}.math-layout{flex-direction:column;gap:14px;margin-top:12px}.math-problem-box{padding:14px 10px;border-width:3px}body.math-mobile-question-open{overflow:hidden;padding-bottom:0}body.math-mobile-question-open .main-nav{display:none}body.math-mobile-question-open .sky-elements{opacity:.12}.math-problem-box.mobile-question-page{position:fixed;top:var(--math-question-visual-top, 0);right:0;bottom:auto;left:0;z-index:1200;display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr) auto auto;align-content:start;width:100vw;height:var(--math-question-visual-height, 100dvh);min-height:0;max-height:var(--math-question-visual-height, 100dvh);padding:calc(14px + env(safe-area-inset-top)) 18px calc(22px + env(safe-area-inset-bottom));border:0;border-radius:0;background:#2d4232;box-shadow:inset 0 0 34px #00000085;color:#fff;gap:12px;overflow-y:auto;overscroll-behavior:contain}.math-problem-box.mobile-question-page .math-mobile-back-btn{display:inline-flex;align-items:center;justify-content:center;justify-self:start;min-height:42px;padding:8px 14px;border:2px solid rgba(255,255,255,.55);border-radius:999px;background:#ffffff1f;color:#fff;font:inherit;font-weight:800;line-height:1;cursor:pointer}.math-problem-box.mobile-question-page .math-mobile-question-title{display:block;justify-self:center;margin-top:-45px;color:var(--accent-yellow);font-weight:800;font-size:1rem;line-height:42px;pointer-events:none}.math-problem-box.mobile-question-page .problem-display{margin:18px 0 4px;font-size:clamp(2.25rem,12vw,4rem);line-height:1.1}.math-problem-box.mobile-question-page .vertical-math{margin:6px auto 14px;font-size:clamp(3rem,17vw,5rem);letter-spacing:.12em;line-height:1.1}.math-problem-box.mobile-question-page>div[style*="display:flex"]{display:grid!important;grid-template-columns:1fr;align-self:end;width:100%;gap:12px!important;justify-items:stretch}.math-problem-box.mobile-question-page #math-answer-input{width:100%!important;min-height:58px;padding:12px;border-width:4px;border-color:var(--accent-yellow);background:#fff;font-size:1.45rem;scroll-margin-bottom:45dvh}.math-problem-box.mobile-question-page #math-submit-btn,.math-problem-box.mobile-question-page #math-demo-btn,.math-problem-box.mobile-question-page #math-next-btn{width:100%;min-height:54px;margin-top:0!important}.math-problem-box.mobile-question-page #math-feedback{display:flex;align-items:center;justify-content:center;min-height:42px!important;height:auto!important;margin-top:0!important;font-size:1.15rem}.math-problem-box.mobile-question-page #math-demo-steps{max-height:34dvh;margin-top:0!important;font-size:.95rem!important}.math-problem-box.mobile-question-page:focus-within{grid-template-rows:auto auto auto auto auto auto auto;gap:8px}.math-problem-box.mobile-question-page:focus-within .problem-display{margin:8px 0 0;font-size:clamp(1.9rem,10vw,3rem)}.math-problem-box.mobile-question-page:focus-within .vertical-math{margin:0 auto 8px;font-size:clamp(2.35rem,12vw,3.4rem);letter-spacing:.08em}.math-problem-box.mobile-question-page:focus-within>div[style*="display:flex"]{align-self:start}body.math-mobile-keyboard-open .math-problem-box.mobile-question-page{grid-template-rows:auto auto auto auto auto auto auto;padding:calc(8px + env(safe-area-inset-top)) 16px calc(10px + env(safe-area-inset-bottom));gap:6px;overflow:hidden}body.math-mobile-keyboard-open .math-problem-box.mobile-question-page .math-mobile-back-btn{min-height:34px;padding:5px 12px;font-size:.9rem}body.math-mobile-keyboard-open .math-problem-box.mobile-question-page .math-mobile-question-title{margin-top:-40px;font-size:.9rem;line-height:34px}body.math-mobile-keyboard-open .math-problem-box.mobile-question-page .problem-display{margin:2px 0 0;font-size:clamp(1.55rem,8vw,2.25rem);line-height:1}body.math-mobile-keyboard-open .math-problem-box.mobile-question-page .vertical-math{margin:0 auto 4px;font-size:clamp(2rem,10.2vw,3rem);line-height:1.02;letter-spacing:.06em}body.math-mobile-keyboard-open .math-problem-box.mobile-question-page .v-op{border-bottom-width:3px;padding-bottom:2px}body.math-mobile-keyboard-open .math-problem-box.mobile-question-page #math-answer-input{min-height:50px;padding:8px 10px;border-width:3px;font-size:1.25rem}body.math-mobile-keyboard-open .math-problem-box.mobile-question-page #math-submit-btn,body.math-mobile-keyboard-open .math-problem-box.mobile-question-page #math-demo-btn,body.math-mobile-keyboard-open .math-problem-box.mobile-question-page #math-next-btn{min-height:48px;padding-top:9px;padding-bottom:9px}body.math-mobile-keyboard-open .math-problem-box.mobile-question-page #math-feedback{min-height:24px!important;font-size:.98rem}body.math-mobile-demo-open .math-problem-box.mobile-demo-page{grid-template-rows:none;grid-auto-rows:auto;padding:calc(10px + env(safe-area-inset-top)) 16px calc(14px + env(safe-area-inset-bottom));gap:8px;align-content:start;overflow-y:auto}body.math-mobile-demo-open .math-problem-box.mobile-demo-page .math-mobile-back-btn{min-height:36px;padding:6px 12px;font-size:.92rem}body.math-mobile-demo-open .math-problem-box.mobile-demo-page .math-mobile-question-title{margin-top:-42px;line-height:36px;font-size:.92rem}body.math-mobile-demo-open .math-problem-box.mobile-demo-page .problem-display{margin:4px 0 0;font-size:clamp(1.6rem,8.5vw,2.35rem);line-height:1.05}body.math-mobile-demo-open .math-problem-box.mobile-demo-page .vertical-math{margin:0 auto 4px;font-size:clamp(2.05rem,11vw,3.1rem);line-height:1.02;letter-spacing:.06em}body.math-mobile-demo-open .math-problem-box.mobile-demo-page .v-op{border-bottom-width:3px;padding-bottom:2px}body.math-mobile-demo-open .math-problem-box.mobile-demo-page>div[style*="display:flex"]{display:none!important}body.math-mobile-demo-open .math-problem-box.mobile-demo-page #math-feedback{min-height:32px!important;margin-top:0!important;font-size:1rem;line-height:1.25}body.math-mobile-demo-open .math-problem-box.mobile-demo-page #math-demo-btn{display:none!important}body.math-mobile-demo-open .math-problem-box.mobile-demo-page #math-next-btn{min-height:48px;padding-top:9px;padding-bottom:9px}body.math-mobile-demo-open .math-problem-box.mobile-demo-page #math-demo-steps{width:100%;max-height:none;margin-top:0!important;padding:40px 12px 12px!important;border-radius:14px!important;background:#ffffff21!important;overflow-y:auto;font-size:.95rem!important}body.math-mobile-demo-open .math-problem-box.mobile-demo-page #math-demo-close{top:8px!important;right:8px!important;width:32px!important;height:32px!important}.problem-display,.vertical-math{font-size:2rem}.vertical-math{max-width:100%;letter-spacing:5px}.math-problem-box>div[style*="display:flex"]{display:grid!important;grid-template-columns:1fr;gap:10px!important;justify-items:stretch}#math-answer-input{width:100%!important;max-width:none;font-size:1.35rem;padding:12px}#math-submit-btn,#math-demo-btn,#math-next-btn{width:100%}#math-demo-steps{max-height:45vh;overflow-y:auto;font-size:.95rem!important}.math-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;padding:10px;font-size:.96rem}.math-right-col{max-height:220px;padding:14px}.practice-panel{margin:12px 0;padding:14px 10px;border-width:2px;border-radius:16px;box-shadow:0 5px #5e35b1}.practice-panel-header h3{font-size:1.2rem}.difficulty-row{gap:8px;margin-bottom:12px}.difficulty-label{font-size:.95rem}.difficulty-segment{gap:6px}.difficulty-segment .diff-btn{min-height:40px;padding:6px 4px;font-size:.95rem;border-radius:12px;margin:0}.word-problem-panel{margin:12px 0 4px;padding:14px 10px;border-width:2px;border-radius:16px;box-shadow:0 5px #3ab6ae}.word-problem-header{display:grid;grid-template-columns:1fr;gap:8px;text-align:center}.word-problem-header h3{font-size:1.2rem}.word-grade-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.word-grade-btn{min-height:44px;border-radius:14px;font-size:.96rem;box-shadow:0 3px 0 var(--secondary-color)}.word-problem-status{font-size:.95rem;line-height:1.35}.word-problem-card{padding:12px;border-radius:14px}.word-problem-question{font-size:1.05rem;line-height:1.65}.word-answer-row{display:grid;grid-template-columns:1fr;gap:9px}.word-answer-row .cute-input,.word-answer-row .magic-btn{width:100%}.word-problem-feedback{font-size:1rem;line-height:1.35}.word-problem-solution{padding:10px}.word-solution-step{padding:9px;font-size:.95rem}.photo-mode-box{margin:14px 0;padding:18px 12px;border-radius:18px;border-width:3px;box-shadow:0 8px 0 var(--secondary-color)}.photo-mode-box h2{font-size:1.35rem}.upload-area{padding:24px 12px;border-width:3px}.upload-icon{font-size:3rem}.upload-area p{font-size:1.1rem}#image-preview{max-height:230px}#english-letters-grid{max-height:none;overflow:visible;padding:0}.scroll-progress-bar{position:sticky;top:0;z-index:2}.letters-grid-inner{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.playful-card{border-width:2px;border-radius:16px;box-shadow:0 5px 0 var(--secondary-color)}.playful-card:hover{transform:none;box-shadow:0 5px 0 var(--secondary-color)}.letter-card{min-height:124px;padding:10px 6px}.letter-char{font-size:2.2rem}.letter-emoji{font-size:1.55rem}.letter-word,.letter-phonetic{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.letter-detail-panel{width:100vw;padding:52px 14px 24px}.detail-char{font-size:4rem}.detail-play-btns,.word-item div[style*="display:flex"]{display:grid!important;grid-template-columns:1fr}.word-item{padding:11px}.word-text{font-size:1.1rem}.chat-wrapper{margin-top:18px;padding:12px;border-width:3px;border-radius:16px}.chat-messages,#chat-messages{height:46vh!important;min-height:260px;padding:12px!important}.chat-input-row,#english-chat-tutor div[style*="display:flex"]{display:grid!important;grid-template-columns:1fr;gap:9px!important}#chat-input{width:100%!important;min-height:48px}#btn-chat-img,#btn-chat-mic,#btn-chat-send{width:100%;margin:0!important;text-align:center}.msg{max-width:92%;padding:9px 12px}.fables-magic-wand{margin-bottom:14px}.fables-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fable-card{min-height:150px;padding:12px 8px}.fable-emoji{font-size:2.1rem}.fable-title{font-size:1rem;line-height:1.25}.fable-preview{display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical}.fable-overlay{align-items:stretch;padding:10px}.fable-modal{max-height:calc(100vh - var(--mobile-nav-height) - 30px);padding:50px 16px 18px;border-radius:16px}.fable-modal-title{font-size:1.35rem;line-height:1.3}.fable-story-text{font-size:1rem;line-height:1.75}.fable-actions{display:grid;gap:10px}.dict-top-bar{display:grid;grid-template-columns:1fr;gap:8px;text-align:left;padding:0 4px}.dict-unit-label{font-size:1rem}.dict-unit-select{width:100%;min-height:46px;font-size:1rem}.dict-start-btn{width:100%;margin:0}.dict-workspace{margin-top:14px;padding:14px 10px;border-radius:16px;box-shadow:0 6px 0 var(--secondary-color)}.dict-counter{font-size:1rem;margin-bottom:4px}.dict-counter-num{font-size:1.4rem}.dict-status-msg{font-size:1.15rem;line-height:1.35;margin:8px 0}.dict-countdown{font-size:1.8rem;margin:6px 0;min-height:38px}.dict-input-area{margin:8px 0}.dict-canvas-row{gap:8px;align-items:center}.dict-canvas-wrapper{width:min(42vw,150px);height:min(42vw,150px)}.dict-input-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.dict-input-actions .magic-btn{width:100%;margin:0;padding:10px 8px;font-size:.98rem}.dict-result-msg{font-size:1rem;min-height:30px}.dict-answer-box{margin:12px 0}.dict-answer-label{font-size:1rem}.dict-word-display{font-size:2.2rem;letter-spacing:.1em}.dict-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.dict-actions .magic-btn{width:100%;margin:0;padding:10px 6px;font-size:.92rem;line-height:1.2}.tianzige-row{gap:8px}.tianzige-cell{width:min(24vw,86px);height:min(24vw,86px)}.tianzige-char{font-size:2.5rem}#dict-btn-restart{width:100%;margin:0}#dict-learned{margin-top:18px!important}#dict-learned-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}#dict-complete{margin-top:20px!important;padding:18px 10px!important}}
