:root{color:#21313a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bottom-reserve:calc(74px + env(safe-area-inset-bottom,0px));--page-bg:#f5f7f5;--panel:#fff;--panel-strong:#eaf8ef;--text:#1f2933;--muted:#667085;--line:#dbe8df;--brand:#07c160;--brand-dark:#06ad56;--accent:#10aeff;--blue:#2f78c6;--tint:#e8f8ef;--shadow:0 12px 30px #07c1601a;background:#f7f3ea;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#app{touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;min-height:100%;margin:0}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text}body{background:var(--page-bg)}button,input,textarea{font:inherit}button{box-shadow:none!important}.app-shell{min-height:100vh;background:linear-gradient(180deg, #eefbf4 0%, var(--page-bg) 42%, #e9f8ef 100%);max-width:520px;min-height:100dvh;padding-bottom:74px;padding-bottom:var(--bottom-reserve);margin:0 auto}.page{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));padding:18px 16px 24px}.page-title{color:var(--text);margin:0;font-size:30px;font-weight:800;line-height:1.15}.page-subtitle{color:var(--muted);margin:8px 0 0;font-size:18px;line-height:1.45}.section{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:14px;margin-top:16px;padding:18px}.section-title{margin:0 0 12px;font-size:22px;font-weight:800;line-height:1.25}.muted{color:var(--muted)}.big-action{color:#fff;background:var(--brand);border:0;border-radius:14px;width:100%;min-height:68px;font-size:24px;font-weight:800;box-shadow:0 10px 20px #07c16038}.big-action:active{background:var(--brand-dark)}.big-action.secondary{color:var(--text);border:2px solid var(--brand);box-shadow:none;background:#fff}.big-action.warn{background:var(--accent)}.row{align-items:center;gap:10px;display:flex}.spread{justify-content:space-between;align-items:center;gap:12px;display:flex}.speaker-btn{width:48px;min-width:48px;height:48px;color:var(--brand);background:#fffef9;border:2px solid #07c1602e;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 6px 14px #344c451a}.tag{min-height:32px;color:var(--brand-dark);background:var(--tint);border-radius:999px;align-items:center;padding:4px 10px;font-size:16px;font-weight:700;display:inline-flex}.tag.old{color:#8f3f13;background:#ffe2c1}.tag.danger{color:#a83220;background:#ffe0d9}.word-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.word-card{text-align:left;background:#fffefb;border:2px solid #0000;border-radius:14px;min-height:112px;padding:14px;box-shadow:0 8px 18px #344c451a}.word-card.active{border-color:var(--brand);background:var(--panel-strong)}.word-name{color:var(--text);margin:8px 0;font-size:30px;font-weight:900;line-height:1.15}.word-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:15px;display:flex}.empty-state{border:2px dashed var(--line);color:var(--muted);text-align:center;border-radius:8px;padding:24px 14px;font-size:18px;line-height:1.5}.app-loading{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));place-items:center;display:grid}.app-spinner{border:3px solid #07c16040;border-top-color:#07c160;border-radius:50%;width:34px;height:34px;animation:.8s linear infinite app-spin}@keyframes app-spin{to{transform:rotate(360deg)}}.bottom-tabs{--van-tabbar-height:64px;border-top:1px solid var(--line);max-width:520px;transform:translate(-50%);left:50%!important}.van-tabbar-item{flex-direction:column;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.van-tabbar-item--active{color:var(--brand)}.van-button{border-radius:8px}.van-cell{font-size:18px;line-height:1.45}@media (max-width:360px){.page{padding-left:12px;padding-right:12px}.page-title{font-size:27px}.word-name{font-size:26px}.big-action{font-size:22px}}@keyframes speakerWiggle{0%{transform:scale(1)rotate(0)}25%{transform:scale(1.15)rotate(-7deg)}50%{transform:scale(1.05)rotate(6deg)}75%{transform:scale(1.12)rotate(-4deg)}to{transform:scale(1)rotate(0)}}.speaking svg{transform-origin:50%;animation:.8s ease-in-out infinite speakerWiggle}.auth-loading[data-v-cb4b8bcb]{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));color:var(--muted);place-items:center;font-size:18px;display:grid}.access-block[data-v-cb4b8bcb]{z-index:9999;background:var(--bg,#f7f7f9);place-items:center;padding:24px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.access-block-card[data-v-cb4b8bcb]{text-align:center;max-width:320px}.access-block-title[data-v-cb4b8bcb]{color:var(--text,#222);margin:0 0 12px;font-size:22px;font-weight:600}.access-block-desc[data-v-cb4b8bcb]{color:var(--muted,#888);margin:0;font-size:16px;line-height:1.6}.learn-page[data-v-8f0a25dc]{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));background:#e6f7ee;justify-content:center;align-items:center;padding:20px 0;display:flex}.learn-stack[data-v-8f0a25dc]{width:100%;max-width:488px}.learn-loading[data-v-8f0a25dc]{place-items:center;min-height:240px;display:grid}.learn-spinner[data-v-8f0a25dc]{border:3px solid #07c16040;border-top-color:#07c160;border-radius:50%;width:34px;height:34px;animation:.8s linear infinite learn-spin-8f0a25dc}@keyframes learn-spin-8f0a25dc{to{transform:rotate(360deg)}}.progress-card[data-v-8f0a25dc]{min-height:92px;box-shadow:var(--shadow);background:#ffffffdb;border-radius:20px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin:0 8px 18px;padding:max(10px,min(3vw,18px)) 18px;display:grid}.progress-card.progress-yellow[data-v-8f0a25dc]{background:#fff8df}.progress-card.progress-red[data-v-8f0a25dc]{background:#fff0f0}.progress-number[data-v-8f0a25dc]{color:#fff;background:var(--brand);border-radius:18px;place-items:center;width:max(58px,min(18vw,80px));height:max(58px,min(18vw,80px));font-size:max(38px,min(13vw,58px));font-weight:900;line-height:1;display:grid}.progress-yellow .progress-number[data-v-8f0a25dc]{background:#f59e0b}.progress-red .progress-number[data-v-8f0a25dc]{background:#ef4444}.progress-copy[data-v-8f0a25dc]{gap:8px;display:grid}.progress-copy span[data-v-8f0a25dc]{color:var(--muted);font-size:14px;font-weight:700;line-height:1.2}.progress-copy strong[data-v-8f0a25dc]{color:var(--brand-dark);font-size:22px;font-weight:900;line-height:1.1}.round-pill[data-v-8f0a25dc]{color:#45556f;background:#ffffffdb;border-radius:999px;justify-content:center;align-items:center;min-width:66px;min-height:42px;padding:0 12px;font-size:14px;font-weight:900;display:inline-flex;box-shadow:0 8px 18px #344c4514}.flipbook-entry[data-v-8f0a25dc]{color:var(--brand-dark,#06864a);background:#eaf8ef;border:1px solid #07c16047;border-radius:999px;align-self:center;align-items:center;gap:4px;margin-left:auto;padding:5px 9px;font-size:13px;font-weight:800;display:inline-flex}.flipbook-icon[data-v-8f0a25dc]{object-fit:contain;width:16px;height:16px;line-height:1}.word-band[data-v-8f0a25dc]{width:100%;max-width:488px;box-shadow:var(--shadow);background:#ffffffdb;border-radius:18px;padding:5px 18px 18px}.band-heading[data-v-8f0a25dc]{align-items:center;gap:8px;margin-bottom:12px;display:flex}.page-title[data-v-8f0a25dc]{margin:0;font-size:28px;font-weight:900;line-height:1.12}.band-heading span[data-v-8f0a25dc]{color:#5e6f89;font-size:14px;font-weight:700;line-height:1.2}.word-grid[data-v-8f0a25dc]{gap:max(7px,min(1.4vh,10px))}.word-card[data-v-8f0a25dc]{border:2px solid var(--line);background:#fff;border-radius:10px;height:max(92px,min(14.5vh,115px));min-height:max(92px,min(14.5vh,115px));padding:12px;position:relative;overflow:hidden;box-shadow:0 6px 16px #344c451f}.word-card.active[data-v-8f0a25dc]{background:#eaf8ef;border-color:#07c160}.word-card.status-review.active[data-v-8f0a25dc]{background:#fff8df;border-color:#f59e0b}.word-card.status-mastered.active[data-v-8f0a25dc]{background:#eef6ff;border-color:#3b82f6}.word-card[data-v-8f0a25dc]:active{background:#eaf8ef;border-color:#07c160;transform:scale(.98)}.word-card[data-v-8f0a25dc]:before{content:"";background:#07c16014;border-radius:50%;width:64px;height:64px;position:absolute;top:-22px;right:-18px}.word-meta[data-v-8f0a25dc]{z-index:1;position:absolute;top:5px;left:5px;right:5px}.word-meta svg[data-v-8f0a25dc]{color:#6d7f9d}.word-name[data-v-8f0a25dc]{z-index:0;text-align:center;letter-spacing:0;place-items:center;margin:0;font-size:max(54px,min(16.5vw,70px));font-weight:900;line-height:normal;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.tag[data-v-8f0a25dc]{border:1px solid #07c16024;border-radius:10px;justify-content:center;align-items:center;min-height:22px;padding:1px 6px;font-size:16px;font-weight:500;display:inline-flex;box-shadow:0 6px 14px #07c16014}.tag-review[data-v-8f0a25dc]{color:#b45309;background:#fff7db;border-color:#f59e0b3d}.tag-recognized[data-v-8f0a25dc],.tag-mastered[data-v-8f0a25dc]{color:#2563eb;background:#eef6ff;border-color:#2563eb2e}.graduation-band[data-v-8f0a25dc],.updating-band[data-v-8f0a25dc],.unlock-band[data-v-8f0a25dc]{text-align:center;justify-items:center;gap:10px;padding:26px 18px;display:grid}.unlock-icon[data-v-8f0a25dc]{font-size:56px;line-height:1}.unlock-countdown[data-v-8f0a25dc]{justify-items:center;gap:4px;margin-top:6px;display:grid}.unlock-countdown-label[data-v-8f0a25dc]{color:var(--muted);font-size:14px;font-weight:700}.unlock-countdown-time[data-v-8f0a25dc]{color:#07c160;font-variant-numeric:tabular-nums;letter-spacing:1px;font-size:34px;font-weight:900}.graduation-img[data-v-8f0a25dc]{width:min(300px,80vw);height:auto}.graduation-title[data-v-8f0a25dc]{color:#b8860b}.graduation-text[data-v-8f0a25dc]{color:var(--muted);margin:0;font-size:17px;font-weight:700}.updating-icon[data-v-8f0a25dc]{font-size:56px;line-height:1}@media (max-width:390px){.learn-page[data-v-8f0a25dc]{padding:14px 0}.word-band[data-v-8f0a25dc]{padding:5px 18px 18px}.word-card[data-v-8f0a25dc]{padding:14px}}@media (max-width:380px){.word-name[data-v-8f0a25dc]{transform:translateY(8px)}}.practice-page[data-v-a6cd3430]{background:#e6f7ee}.practice-page .page-subtitle[data-v-a6cd3430]{font-size:17px}.practice-mode-title[data-v-a6cd3430]{font-size:27px}.practice-progress-line[data-v-a6cd3430]{align-items:center;gap:8px;display:flex}.practice-progress-tag[data-v-a6cd3430]{min-height:26px;color:var(--brand-dark);background:#07c1601f;border-radius:8px;align-items:center;padding:3px 10px;font-size:15px;font-weight:900;line-height:1;display:inline-flex}.read-active-page[data-v-a6cd3430]{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));flex-direction:column;justify-content:center;padding-top:0;padding-bottom:8px;display:flex}.read-active-page>header[data-v-a6cd3430],.read-active-page>.read-practice-workspace[data-v-a6cd3430]{transform:none}.read-active-page>header[data-v-a6cd3430],.listen-active-page>header[data-v-a6cd3430]{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.read-active-page>header .page-subtitle[data-v-a6cd3430],.listen-active-page>header .page-subtitle[data-v-a6cd3430]{margin-top:0}.listen-active-page[data-v-a6cd3430]{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));flex-direction:column;justify-content:center;padding-top:0;padding-bottom:8px;display:flex}.listen-active-page>header[data-v-a6cd3430],.listen-active-page>.practice-workspace[data-v-a6cd3430]{transform:none}.write-active-page[data-v-a6cd3430]{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));flex-direction:column;justify-content:center;padding-top:0;padding-bottom:8px;display:flex}.write-active-page>header[data-v-a6cd3430],.write-active-page>.practice-workspace[data-v-a6cd3430]{transform:none}.stroke-header-action[data-v-a6cd3430]{border:2px solid var(--brand);width:86px;min-height:30px;color:var(--text);touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:#fff;border-radius:6px;justify-content:center;align-items:center;margin-left:auto;font-size:16px;font-weight:900;line-height:1;display:inline-flex}.stroke-header-action.stroke-btn-armed[data-v-a6cd3430]{background:var(--brand);color:#fff;transition:transform .15s;transform:scale(1.1)}.practice-home-page[data-v-a6cd3430]{flex-direction:column;justify-content:center;display:flex}.practice-home-page>header[data-v-a6cd3430],.practice-home-page>.practice-list[data-v-a6cd3430]{transform:translateY(-8px)}.practice-list[data-v-a6cd3430]{gap:16px;margin-top:18px;display:grid}.practice-entry[data-v-a6cd3430]{width:100%;min-height:max(96px,min(13.5vh,112px));box-shadow:var(--shadow);text-align:left;background:#fff;border:2px solid #07c1601f;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:max(12px,min(2.4vw,16px));display:grid}.entry-icon[data-v-a6cd3430]{color:#fff;background:var(--brand);border-radius:18px;place-items:center;width:62px;height:62px;display:grid}.entry-copy[data-v-a6cd3430]{gap:8px;min-width:0;display:grid}.entry-copy strong[data-v-a6cd3430]{color:var(--text);white-space:nowrap;font-size:24px;line-height:1.18}.entry-copy em[data-v-a6cd3430]{color:var(--muted);white-space:nowrap;font-size:17px;font-style:normal;line-height:1.35}.entry-status[data-v-a6cd3430]{min-width:64px;color:var(--brand-dark);background:var(--tint);text-align:center;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:6px 10px;font-size:16px;font-weight:900}.entry-status.done[data-v-a6cd3430]{color:#8a5a00;background:#fff2c7}.practice-workspace[data-v-a6cd3430]{margin-top:16px}.back-btn[data-v-a6cd3430]{min-height:48px;color:var(--brand-dark);background:0 0;border:0;align-items:center;gap:6px;font-size:19px;font-weight:900;display:inline-flex}.practice-panel[data-v-a6cd3430]{box-shadow:var(--shadow);background:#fff;border-radius:18px;gap:18px;padding:20px;display:grid}.read-practice-workspace[data-v-a6cd3430]{align-items:stretch;margin-top:22px;display:flex}.read-practice-panel[data-v-a6cd3430]{--read-bottom-h:192px;align-content:start;gap:14px;width:100%;padding:18px}.read-practice-panel .read-word-box[data-v-a6cd3430]{justify-self:center;width:96%;min-height:max(190px,min(32vh,230px))}.read-speaking-panel .read-word-box[data-v-a6cd3430],.read-speaking-panel .step-text[data-v-a6cd3430]{transform:none}.read-practice-panel .hold-talk-slot[data-v-a6cd3430]{width:96%;min-height:var(--read-bottom-h);justify-content:center;justify-self:center;align-items:center;display:flex}.read-practice-panel .hold-talk[data-v-a6cd3430]{width:100%;min-height:130px}.read-practice-panel .record-ready[data-v-a6cd3430]{min-height:var(--read-bottom-h)}.read-practice-panel .side-action[data-v-a6cd3430],.read-practice-panel .center-action[data-v-a6cd3430]{white-space:nowrap}.read-word-box[data-v-a6cd3430]{background:var(--panel-strong);border-radius:18px;justify-content:center;align-items:center;gap:14px;min-height:260px;padding:12px;display:flex;position:relative;overflow:hidden}.single-word.inline[data-v-a6cd3430]{color:var(--text);text-align:center;white-space:nowrap;max-width:100%;font-weight:900;line-height:1.1}.read-speaker[data-v-a6cd3430],.word-speaker[data-v-a6cd3430]{width:72px;height:72px;color:var(--brand-dark);background:#fff;border:2px solid #07c1602e;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 8px 18px #07c1601f}.read-speaker[data-v-a6cd3430]{color:#fff;background:var(--brand);justify-self:center;width:60px;height:60px;position:absolute;top:12px;right:12px;box-shadow:0 12px 24px #07c16038}.read-speaker svg[data-v-a6cd3430]{width:34px;height:34px}.record-ready[data-v-a6cd3430],.word-complete[data-v-a6cd3430]{color:#056b35;text-align:center;background:#dff8e9;border-radius:18px;place-items:center;gap:10px;min-height:250px;padding:22px;display:grid}.record-actions[data-v-a6cd3430]{grid-template-columns:1fr .75fr 1fr;justify-self:center;gap:10px;width:min(88%,300px);display:grid}.record-result-row[data-v-a6cd3430]{justify-content:center;align-items:center;gap:18px;display:flex}.result-circle[data-v-a6cd3430]{border:0;border-radius:50%;place-items:center;width:80px;height:80px;padding:0;display:grid}.result-play[data-v-a6cd3430]{color:#fff;background:linear-gradient(135deg,#1dd879 0%,#07c160 100%);box-shadow:0 10px 20px #07c16040}.result-play[data-v-a6cd3430]:active{transform:scale(.96)}.write-record-actions[data-v-a6cd3430]{margin-top:2px}.write-record-actions .side-action[data-v-a6cd3430],.write-record-actions .center-action[data-v-a6cd3430]{justify-content:center;align-items:center;gap:4px;display:inline-flex}.side-action[data-v-a6cd3430],.center-action[data-v-a6cd3430]{border-radius:14px;min-height:58px;font-size:20px;font-weight:900}.side-action[data-v-a6cd3430]{border:2px solid var(--line);color:var(--text);background:#fff}.side-action-primary[data-v-a6cd3430]{color:#fff;background:var(--brand);border-color:#0000}.center-action[data-v-a6cd3430]{color:#fff;background:var(--brand);border:0}.center-action-muted[data-v-a6cd3430]{border:2px solid var(--line);color:var(--text);background:#fff}.side-action[data-v-a6cd3430]:disabled{color:#b6c0bc;background:#f5f7f5}.record-ready strong[data-v-a6cd3430],.word-complete strong[data-v-a6cd3430]{font-size:30px}.word-complete p[data-v-a6cd3430]{color:#27664a;margin:0;font-size:19px}.listen-panel.wrong[data-v-a6cd3430]{animation:.42s wrongFlash-a6cd3430}.listen-panel[data-v-a6cd3430]{gap:8px;padding:14px}.step-text[data-v-a6cd3430]{color:var(--muted);text-align:center;margin:0;font-size:20px;font-weight:800}.hold-talk[data-v-a6cd3430],.sound-button[data-v-a6cd3430]{color:#fff;min-height:170px;box-shadow:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#1dd879 0%,#07c160 100%);border:0;border-radius:18px;place-items:center;gap:8px;font-size:30px;font-weight:900;display:grid;overflow:hidden}.sound-button[data-v-a6cd3430]{gap:2px;min-height:180px;font-size:42px;line-height:1}.listen-panel .sound-button[data-v-a6cd3430]{justify-self:center;gap:1px;width:100%;min-height:130px;font-size:32px}.hold-talk svg[data-v-a6cd3430]{width:76px;height:76px}.sound-button svg[data-v-a6cd3430]{width:72px;height:72px}.listen-panel .sound-button svg[data-v-a6cd3430]{width:58px;height:58px}.hold-talk.holding[data-v-a6cd3430]{background:linear-gradient(135deg,#ff6b6b 0%,#e5484d 100%);transform:scale(.98)}.hold-talk.holding svg[data-v-a6cd3430]{transform-origin:50%;animation:.7s ease-in-out infinite recordingPulse-a6cd3430}@keyframes recordingPulse-a6cd3430{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.hold-talk.guide-bounce[data-v-a6cd3430],.side-action.guide-bounce[data-v-a6cd3430]{animation:1s ease-in-out infinite guideHoldTalkBounce-a6cd3430}@keyframes guideHoldTalkBounce-a6cd3430{0%,to{transform:scale(1)}50%{transform:scale(1.09)}}.option-list[data-v-a6cd3430]{gap:12px;display:grid}.listen-panel .option-list[data-v-a6cd3430]{gap:8px}.option-btn[data-v-a6cd3430]{border:2px solid var(--line);min-height:92px;color:var(--text);text-align:center;white-space:nowrap;background:#fff;border-radius:15px;place-items:center;padding:8px 12px;font-weight:900;line-height:1.12;display:grid;overflow:hidden}.listen-panel .option-btn[data-v-a6cd3430]{min-height:54px;padding:6px 10px}.option-btn.selected[data-v-a6cd3430]{border-color:var(--brand);background:var(--tint)}.option-btn.correct[data-v-a6cd3430]{color:#056b35;background:#dff8e9;border-color:#07c160;animation:.42s correctPop-a6cd3430}.option-btn.wrong[data-v-a6cd3430]{color:#a30d18;background:#ffe1e1;border-color:#e5484d;animation:.42s wrongShake-a6cd3430}.thumb-feedback[data-v-a6cd3430]{z-index:30;pointer-events:none;background:#fffffff0;border-radius:50%;place-items:center;width:128px;height:128px;font-size:78px;animation:.9s both thumbPop-a6cd3430;display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 45px #07c16047}.feedback[data-v-a6cd3430],.round-complete[data-v-a6cd3430]{border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:56px;font-size:22px;font-weight:900;display:inline-flex}.feedback.correct[data-v-a6cd3430],.round-complete[data-v-a6cd3430]{color:#056b35;background:#dff8e9}.feedback.wrong[data-v-a6cd3430]{color:#a30d18;background:#ffe1e1}.small-repeat[data-v-a6cd3430]{color:#fff;background:var(--brand);border:0;border-radius:999px;min-height:42px;padding:0 16px;font-size:18px;font-weight:900}.character-card[data-v-a6cd3430]{place-items:center;width:100%;display:grid}.write-panel[data-v-a6cd3430]{gap:14px;padding:14px}.write-mode-list[data-v-a6cd3430]{gap:14px;display:grid}.write-mode-card[data-v-a6cd3430]{width:100%;min-height:118px;color:var(--text);text-align:left;background:#fff;border:2px solid #07c16024;border-radius:18px;align-content:center;gap:8px;padding:18px;display:grid;box-shadow:0 10px 22px #1018280f}.write-mode-card.primary[data-v-a6cd3430]{color:#fff;background:linear-gradient(135deg,#1dd879 0%,#07c160 100%);box-shadow:0 12px 24px #07c16038}.write-mode-card strong[data-v-a6cd3430]{font-size:28px;line-height:1.1}.write-mode-card span[data-v-a6cd3430]{opacity:.86;font-size:18px;font-weight:800;line-height:1.35}.hanzi-card[data-v-a6cd3430]{place-items:center;width:100%;display:grid}.hanzi-writer-box[data-v-a6cd3430]{aspect-ratio:1;touch-action:none;background:#fffdf8;border:3px solid #263238;border-radius:14px;width:min(100%,460px);position:relative;overflow:hidden}.hanzi-writer-box[data-v-a6cd3430]:before,.grid-paper[data-v-a6cd3430]:before{content:"";pointer-events:none;z-index:0;background-image:repeating-linear-gradient(#c9cdd3 0,#c9cdd3 10px,#0000 10px,#0000 18px),repeating-linear-gradient(90deg,#c9cdd3 0,#c9cdd3 10px,#0000 10px,#0000 18px);background-position:calc(50% - 1px) 0,0 calc(50% - 1px);background-repeat:no-repeat;background-size:2px 100%,100% 2px;position:absolute;top:0;bottom:0;left:0;right:0}.hanzi-writer-box[data-v-a6cd3430]>*{z-index:1;position:relative}.hanzi-writer-box>svg[data-v-a6cd3430]{width:100%;height:100%;display:block}.completion-page[data-v-a6cd3430]{margin-top:18px}.completion-card[data-v-a6cd3430]{color:#056b35;min-height:520px;box-shadow:var(--shadow);text-align:center;background:linear-gradient(#e7faef 0%,#fff 100%);border-radius:22px;align-content:center;justify-items:center;gap:18px;padding:28px 20px;display:grid}.completion-card h2[data-v-a6cd3430]{color:#056b35;margin:0;font-size:32px;line-height:1.2}.completion-card p[data-v-a6cd3430]{color:#27664a;margin:0;font-size:20px}.completion-card .big-action[data-v-a6cd3430]{max-width:320px;box-shadow:none;overflow:hidden}.completion-card .completion-hint[data-v-a6cd3430]{color:#7fae95;margin-top:6px;font-size:17px}.trophy-pop[data-v-a6cd3430]{background:radial-gradient(circle,#fff9d7 0%,#ffe9a8 70%,#ffd166 100%);border-radius:50%;place-items:center;width:126px;height:126px;font-size:78px;animation:.8s ease-out both trophyPop-a6cd3430;display:grid;box-shadow:0 24px 58px #d9770652}.grid-paper[data-v-a6cd3430]{aspect-ratio:1;touch-action:none;background:#fffdf8;border:3px solid #263238;border-radius:14px;width:min(100%,460px);position:relative;overflow:hidden}.ghost-char[data-v-a6cd3430]{z-index:1;color:#1f293329;pointer-events:none;place-items:center;font-size:max(260px,min(78vw,390px));font-weight:900;line-height:1;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.write-canvas[data-v-a6cd3430]{z-index:2;touch-action:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.nav-row[data-v-a6cd3430]{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.nav-row.three[data-v-a6cd3430]{grid-template-columns:repeat(3,1fr)}.listen-nav[data-v-a6cd3430]{grid-template-columns:repeat(2,1fr);justify-self:center;gap:20px;width:min(86%,300px)}.listen-nav .nav-btn[data-v-a6cd3430]{white-space:nowrap;min-height:50px}.listen-next-btn[data-v-a6cd3430]:not(:disabled){color:#fff;background:var(--brand);border-color:#0000}.nav-btn[data-v-a6cd3430]{border:2px solid var(--line);min-height:58px;color:var(--text);background:#fff;border-radius:14px;justify-content:center;align-items:center;gap:4px;font-size:18px;font-weight:900;display:inline-flex}.nav-btn[data-v-a6cd3430]:disabled,.big-action[data-v-a6cd3430]:disabled{color:#b6c0bc;box-shadow:none;background:#f5f7f5}.big-action[data-v-a6cd3430]{justify-content:center;align-items:center;gap:8px;display:inline-flex}.row>.big-action[data-v-a6cd3430]{flex:1}.write-panel .row[data-v-a6cd3430]{grid-template-columns:repeat(2,1fr);justify-self:center;gap:12px;width:min(88%,300px);display:grid}.write-panel .row>.big-action[data-v-a6cd3430]{flex:none;width:100%;min-height:50px}@media (max-height:740px){.read-active-page[data-v-a6cd3430]{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));justify-content:flex-start;padding-top:max(52px,min(9vh,66px));padding-bottom:6px}.read-practice-workspace[data-v-a6cd3430]{margin-top:12px}.read-practice-panel[data-v-a6cd3430]{--read-bottom-h:170px;gap:8px;padding:12px}.read-practice-panel .read-word-box[data-v-a6cd3430]{min-height:max(168px,min(29vh,200px))}.read-practice-panel .record-ready[data-v-a6cd3430]{min-height:var(--read-bottom-h);padding:14px}.read-speaking-panel .read-word-box[data-v-a6cd3430],.read-speaking-panel .step-text[data-v-a6cd3430]{transform:none}.read-practice-panel .record-actions[data-v-a6cd3430]{gap:8px;width:min(94%,290px)}.read-practice-panel .side-action[data-v-a6cd3430],.read-practice-panel .center-action[data-v-a6cd3430]{min-height:50px;padding:0 8px;font-size:max(16px,min(4.8vw,20px))}}@keyframes correctPop-a6cd3430{0%{transform:scale(.96)}70%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes trophyPop-a6cd3430{0%{opacity:0;transform:scale(0)}45%{opacity:1;transform:scale(1.18)}65%{transform:scale(.92)}82%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes wrongShake-a6cd3430{0%,to{transform:translate(0)}25%{transform:translate(-8px)}50%{transform:translate(8px)}75%{transform:translate(-5px)}}@keyframes wrongFlash-a6cd3430{0%,to{box-shadow:var(--shadow)}50%{box-shadow:0 0 0 5px #e5484d33, var(--shadow)}}@keyframes thumbPop-a6cd3430{0%{opacity:0;transform:translate(-50%,-50%)scale(.45)rotate(-12deg)}30%{opacity:1;transform:translate(-50%,-50%)scale(1.18)rotate(6deg)}62%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}to{opacity:0;transform:translate(-50%,-50%)scale(.78)rotate(0)}}@media (max-width:380px){.write-active-page>header .practice-progress-line[data-v-a6cd3430]{gap:6px;font-size:15px}.write-active-page .practice-progress-tag[data-v-a6cd3430]{padding:3px 8px;font-size:14px}.write-active-page .stroke-header-action[data-v-a6cd3430]{white-space:nowrap;width:70px;font-size:14px}.write-active-page .stroke-header-action svg[data-v-a6cd3430]{width:15px;height:15px}.write-active-page .write-record-actions .side-action[data-v-a6cd3430],.write-active-page .write-record-actions .center-action[data-v-a6cd3430]{white-space:nowrap;min-height:50px;font-size:16px}}@media (max-width:360px){.practice-entry[data-v-a6cd3430]{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;min-height:96px;padding:14px 12px}.entry-icon[data-v-a6cd3430]{border-radius:14px;width:54px;height:54px}.entry-status[data-v-a6cd3430]{min-width:58px;padding:5px 8px;font-size:15px}.single-word.inline[data-v-a6cd3430]{font-size:72px}.ghost-char[data-v-a6cd3430]{font-size:190px}}.practice2-page[data-v-d927047c]{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));background:#e6f7ee;flex-direction:column;justify-content:center;padding:16px 14px 18px;display:flex}.practice2-stack[data-v-d927047c]{gap:max(14px,min(3.5vh,28px));width:100%;display:grid}.practice2-card[data-v-d927047c]{background:#fff;border-radius:18px;width:100%;box-shadow:0 12px 28px #07c1601a}.status-card[data-v-d927047c]{padding:16px 14px 14px}.status-card h1[data-v-d927047c]{color:#10233a;margin:0 0 12px;font-size:22px;font-weight:900;line-height:1.15}.time-grid[data-v-d927047c]{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.time-box[data-v-d927047c]{color:#98a19c;background:#eef3f0;border-radius:13px;align-content:center;place-items:center;gap:5px;min-height:84px;font-size:20px;font-weight:900;display:grid;overflow:hidden}.time-box svg[data-v-d927047c]{border:2px solid;border-radius:50%;width:32px;height:32px;padding:4px}.time-box.active[data-v-d927047c]{color:#fff;box-shadow:none;background:#07c160}.time-box.current[data-v-d927047c]:not(.active){outline-offset:-2px;outline:2px solid #07c16080}.divider[data-v-d927047c]{background:#e7eee9;height:1px;margin:14px 0}.status-row[data-v-d927047c]{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.period-chip[data-v-d927047c],.progress-chip[data-v-d927047c]{border-radius:999px;justify-content:center;align-items:center;min-height:31px;font-size:17px;font-weight:900;display:inline-flex}.period-chip[data-v-d927047c]{color:#f59e0b;background:#fff0d4;min-width:60px}.progress-chip[data-v-d927047c]{color:#07c160;background:#dcf7e8;min-width:60px}.primary-action[data-v-d927047c]{color:#fff;width:100%;min-height:70px;box-shadow:none;background:#07c160;border:0;border-radius:18px;font-size:26px;font-weight:900;line-height:1;overflow:hidden}.primary-action[data-v-d927047c]:active{background:#06ad56}.primary-action.guide-pulse[data-v-d927047c]{transform-origin:50%;width:92%;margin:0 auto;animation:1.6s ease-in-out infinite guidePulse-d927047c;display:block}@keyframes guidePulse-d927047c{0%,to{transform:scale(.97);box-shadow:0 0 #07c16080}50%{transform:scale(1.02);box-shadow:0 0 0 10px #07c16000}}.challenge-card[data-v-d927047c]{padding:14px}.challenge-flow[data-v-d927047c]{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.flow-step[data-v-d927047c]{border-radius:14px;align-content:center;place-items:center;gap:7px;min-height:92px;font-size:16px;font-weight:900;display:grid;position:relative}.flow-step.green[data-v-d927047c]{color:#07c160;background:#e9f9f0}.flow-step.orange[data-v-d927047c]{color:#f59e0b;background:#fff1d6}.flow-arrow[data-v-d927047c]{opacity:.8;border-top:2px solid;border-right:2px solid;width:10px;height:10px;position:absolute;top:50%;right:-15px;transform:translateY(-50%)rotate(45deg)}.challenge-button[data-v-d927047c]{color:#07c160;background:#e9f9f0;border:3px solid #9be4c2;margin-top:14px}.challenge-button[data-v-d927047c]:active{background:#dcf7e8}.challenge-button.disabled[data-v-d927047c]{color:#9aa4b2;background:#eef3f0;border-color:#d8e1dc}html.video-learning-active,html.video-learning-active body{height:100%;overflow:hidden}html.video-learning-active .app-shell{padding-bottom:0;overflow:hidden}.video-shell[data-v-6409224c]{padding:0;display:grid}.video-page[data-v-6409224c]{height:calc(100vh - 64px);height:calc(100dvh - 64px - env(safe-area-inset-bottom,0px));box-shadow:none;background:0 0;border:0;grid-template-rows:1fr;margin:0;padding:0;display:grid}.video-frame[data-v-6409224c],.video-placeholder[data-v-6409224c]{background:radial-gradient(circle,#2d2d2deb 0,#2d2d2deb 110px,#0000 240px),linear-gradient(#171717 0%,#0f0f0f 100%);border-radius:0;width:100%;height:100%;min-height:0;overflow:hidden}.video-frame[data-v-6409224c]{cursor:pointer;display:grid;position:relative}.lesson-video[data-v-6409224c]{object-fit:contain;background:0 0;width:100%;height:100%;min-height:0}.video-placeholder[data-v-6409224c]{color:#fff;text-align:center;place-items:center;padding:20px;font-size:20px;display:grid}.video-loading[data-v-6409224c]{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.video-spinner[data-v-6409224c]{border:4px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:46px;height:46px;margin:-23px 0 0 -23px;animation:.8s linear infinite videoSpin-6409224c;position:absolute;top:50%;left:50%}@keyframes videoSpin-6409224c{to{transform:rotate(360deg)}}.video-play-overlay[data-v-6409224c]{width:96px;height:96px;color:var(--brand);background:#fffffff0;border:0;border-radius:50%;place-items:center;margin:auto;display:grid;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:0 22px 42px #00000059}.video-controls[data-v-6409224c]{color:#fff;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid;position:absolute;bottom:34px;left:14px;right:14px}.control-btn[data-v-6409224c]{color:#fff;background:0 0;border:0;place-items:center;width:28px;height:32px;padding:0;display:grid}.control-indicator[data-v-6409224c]{color:#fff;place-items:center;width:28px;height:32px;display:grid}.volume-control[data-v-6409224c]{grid-template-columns:auto 72px;align-items:center;gap:6px;display:inline-grid}.volume-slider[data-v-6409224c]{accent-color:#fff;background:0 0;width:72px;height:30px;margin:0}.progress-track[data-v-6409224c]{cursor:pointer;touch-action:none;background:0 0;height:30px;padding:13px 0 12px}.progress-track[data-v-6409224c]:before,.progress-track span[data-v-6409224c]{border-radius:999px;height:5px;display:block}.progress-track[data-v-6409224c]:before{content:"";background:#ffffff59;width:100%}.progress-track span[data-v-6409224c]{background:#fff;margin-top:-5px}.rest-overlay[data-v-153efc86]{z-index:50;background:#0f1f338c;place-items:center;padding:24px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.rest-card[data-v-153efc86]{text-align:center;background:#fff;border-radius:22px;gap:16px;width:min(100%,380px);padding:28px 22px;display:grid;box-shadow:0 20px 50px #00000047}.rest-title[data-v-153efc86]{color:#10233a;margin:0 0 4px;font-size:max(24px,min(7vw,30px));font-weight:900}.rest-btn[data-v-153efc86]{color:#fff;border:0;border-radius:18px;justify-content:center;align-items:center;gap:12px;min-height:max(80px,min(14vh,96px));font-size:max(28px,min(8vw,34px));font-weight:900;display:inline-flex}.rest-continue[data-v-153efc86]{background:linear-gradient(135deg,#1dd879 0%,#07c160 100%)}.rest-pause[data-v-153efc86]{background:linear-gradient(135deg,#ffb35c 0%,#f59e0b 100%)}.rest-btn.bounce[data-v-153efc86]{animation:.6s ease-in-out infinite rest-bounce-153efc86}@keyframes rest-bounce-153efc86{0%,to{transform:scale(1)}50%{transform:scale(1.09)}}.test-page[data-v-153efc86]{background:#e6f7ee}.test-page.centered-menu-page[data-v-153efc86]{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));background:#e6f7ee;align-content:center;justify-items:center;gap:10px;display:grid}.centered-menu-page .test-panel[data-v-153efc86]{width:100%}.centered-menu-page .back-btn[data-v-153efc86]{justify-self:start}.centered-menu-page .test-panel[data-v-153efc86]{margin-top:0}.test-page.centered-read-page[data-v-153efc86],.test-page.centered-write-page[data-v-153efc86],.test-page.centered-write-entry[data-v-153efc86]{align-content:center;display:grid;position:relative}.centered-read-page .back-btn[data-v-153efc86],.centered-write-page .back-btn[data-v-153efc86],.centered-write-entry .back-btn[data-v-153efc86]{z-index:1;justify-self:start;position:absolute;top:18px;left:16px;transform:none}.write-page-heading[data-v-153efc86]{text-align:center;color:var(--text);z-index:1;margin:0;font-size:max(22px,min(6vw,26px));font-weight:900;line-height:1.15;position:absolute;top:18px;left:0;right:0}.back-btn[data-v-153efc86]{min-height:44px;color:var(--brand);background:0 0;border:0;align-items:center;gap:6px;font-size:18px;font-weight:800;display:inline-flex}.test-panel[data-v-153efc86],.complete-panel[data-v-153efc86]{box-shadow:var(--shadow);background:#fff;border-radius:18px;gap:18px;margin-top:16px;padding:20px;display:grid}.test-flow-picture[data-v-153efc86]{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:max(4px,min(2vw,8px));padding:2px 0 4px;display:grid}.test-flow-item[data-v-153efc86]{color:#07c160;background:#f8fffb;border:2px solid #60d590;border-radius:50%;align-content:center;justify-self:center;place-items:center;gap:4px;width:max(68px,min(21vw,82px));height:max(68px,min(21vw,82px));font-size:max(15px,min(4.4vw,17px));font-weight:900;line-height:1.1;display:grid}.test-flow-item.orange[data-v-153efc86]{color:#f59e0b;background:#fff8e6;border-color:#f8a90a}.test-flow-arrow[data-v-153efc86]{color:#07c160;stroke-width:3px}.test-flow-arrow.orange[data-v-153efc86]{color:#f59e0b}.read-test-panel[data-v-153efc86],.read-test-panel.comparing[data-v-153efc86]{align-content:center;min-height:max(520px,min(100vh - 170px,720px))}.read-test-panel[data-v-153efc86]{gap:max(12px,min(2vh,18px));margin-top:0;position:relative}.read-test-panel.choice[data-v-153efc86],.read-test-panel.recording[data-v-153efc86]{padding:max(18px,min(4vw,22px));align-content:center;gap:max(16px,min(3vh,26px));min-height:max(500px,min(100vh - 230px,610px));padding-top:max(52px,min(14vw,62px))}.read-test-panel.choice .judge-actions[data-v-153efc86],.read-test-panel.recording .hold-talk[data-v-153efc86]{min-height:max(112px,min(17vh,132px))}.read-test-panel.choice .judge-actions[data-v-153efc86]{align-content:center;gap:12px}.read-test-panel.comparing[data-v-153efc86]{padding:max(18px,min(4vw,22px));gap:12px;min-height:max(500px,min(100vh - 230px,610px));padding-top:max(52px,min(14vw,62px))}.read-choice-title[data-v-153efc86]{color:var(--text);font-size:max(20px,min(7vw,30px));font-weight:800;line-height:1.15;position:absolute;top:18px;left:20px}.complete-panel[data-v-153efc86]{color:#056b35;text-align:center;align-content:center;justify-items:center;min-height:520px}.complete-panel h1[data-v-153efc86]{color:#056b35;margin:0;font-size:32px}.completion-page[data-v-153efc86]{margin-top:18px}.test-page.centered-complete-page[data-v-153efc86]{min-height:calc(100vh - 74px);min-height:calc(100dvh - var(--bottom-reserve));align-content:center;display:grid}.centered-complete-page .completion-page[data-v-153efc86]{margin-top:0}.completion-card[data-v-153efc86]{color:#056b35;min-height:520px;box-shadow:var(--shadow);text-align:center;background:linear-gradient(#e7faef 0%,#fff 100%);border-radius:22px;align-content:center;justify-items:center;gap:18px;padding:28px 20px;display:grid}.completion-card h2[data-v-153efc86]{color:#056b35;margin:0;font-size:32px;line-height:1.2}.completion-card .completion-hint[data-v-153efc86]{color:#7fae95;margin:6px 0 0;font-size:17px}.trophy-pop[data-v-153efc86]{background:radial-gradient(circle,#fff9d7 0%,#ffe9a8 70%,#ffd166 100%);border-radius:50%;place-items:center;width:126px;height:126px;font-size:78px;animation:.8s ease-out both trophyPop-153efc86;display:grid;box-shadow:0 24px 58px #d9770652}@keyframes trophyPop-153efc86{0%{opacity:0;transform:scale(0)}45%{opacity:1;transform:scale(1.18)}65%{transform:scale(.92)}82%{transform:scale(1.04)}to{transform:scale(1)}}.judge-actions[data-v-153efc86],.test-mode-actions[data-v-153efc86]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.challenge-gate-card[data-v-153efc86]{text-align:center;border:2px solid #0000;border-radius:16px;align-content:center;justify-items:center;gap:6px;min-height:132px;padding:18px 16px;display:grid}.challenge-gate-card strong[data-v-153efc86]{white-space:pre-line;font-size:max(20px,min(6vw,26px));font-weight:900;line-height:1.5}.challenge-gate-card .gate-countdown[data-v-153efc86]{font-variant-numeric:tabular-nums;font-size:max(40px,min(13vw,56px));font-weight:900;line-height:1.05}.challenge-gate-card small[data-v-153efc86]{font-size:max(14px,min(3.8vw,16px));font-weight:800}.gate-amber[data-v-153efc86]{color:#b45309;background:#fff6e6;border-color:#ffe0a6}.gate-amber small[data-v-153efc86]{color:#a3742a}.gate-green[data-v-153efc86]{color:#15803d;background:#e9faf1;border-color:#8ee0b3}.gate-green small[data-v-153efc86]{color:#2e9e63}.gate-blue[data-v-153efc86]{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.gate-blue small[data-v-153efc86]{color:#3b6fd4}.gate-red[data-v-153efc86]{color:#c8102e;background:#fff0f0;border-color:#e60012}.gate-red small[data-v-153efc86]{color:#d6435a}.test-mode-card[data-v-153efc86]{min-height:138px;color:var(--text);text-align:center;background:#fff;border:2px solid #07c1602e;border-radius:18px;align-content:center;justify-items:center;gap:10px;padding:18px 12px;display:grid;position:relative}.test-mode-card.active[data-v-153efc86],.test-mode-card[data-v-153efc86]:active{border-color:var(--brand);background:#eefbf4}.test-mode-card.locked[data-v-153efc86]{opacity:.45;filter:grayscale(.4);pointer-events:none}.mode-entry-icon[data-v-153efc86]{color:#fff;background:var(--brand);border-radius:18px;place-items:center;width:62px;height:62px;display:grid}.mode-entry-copy[data-v-153efc86]{place-items:center;gap:0;display:grid}.mode-entry-copy strong[data-v-153efc86]{color:var(--text);font-size:max(28px,min(8vw,34px));font-weight:900;line-height:1.08}.mode-entry-sub[data-v-153efc86]{color:var(--muted);font-size:14px;font-style:normal;font-weight:700}.test-word[data-v-153efc86]{background:var(--panel-strong);min-height:260px;color:var(--text);text-align:center;border-radius:18px;font-size:max(64px,min(72vw,190px));font-weight:900;line-height:1;display:block;position:relative}.test-word span[data-v-153efc86]{line-height:.92;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-55%)}.read-test-panel.choice .test-word[data-v-153efc86],.read-test-panel.recording .test-word[data-v-153efc86]{min-height:max(228px,min(32vh,260px));font-size:max(58px,min(58vw,150px))}.read-test-panel.recording .hold-talk[data-v-153efc86]{width:90%;box-shadow:none;justify-self:center;gap:4px;font-size:max(26px,min(7vw,30px))}.read-test-panel.recording .hold-talk.bounce[data-v-153efc86]{animation:1s ease-in-out infinite guideJudgeBounce-153efc86}.read-test-panel.recording .hold-talk svg[data-v-153efc86]{width:60px;height:60px}.step-text[data-v-153efc86]{color:var(--muted);text-align:center;margin:0;font-size:20px;font-weight:800}.judge-btn[data-v-153efc86]{border-radius:18px;min-height:max(104px,min(16vh,128px));font-size:30px;font-weight:900}.read-test-panel.choice .judge-btn[data-v-153efc86]{border-radius:18px;min-height:86px;font-size:max(24px,min(7vw,30px))}.judge-btn.forgot[data-v-153efc86]{color:#b42318;box-shadow:none;background:#fff2f2;border:2px solid #ffd0d0}.judge-btn.know[data-v-153efc86]{color:#fff;box-shadow:none;background:linear-gradient(135deg,#1dd879 0%,#07c160 100%);border:0}.read-test-panel.choice .judge-btn.bounce[data-v-153efc86]{animation:.6s ease-in-out infinite guideJudgeBounce-153efc86}@keyframes guideJudgeBounce-153efc86{0%,to{transform:scale(1)}50%{transform:scale(1.09)}}.hold-talk[data-v-153efc86],.dictation-speaker[data-v-153efc86]{color:#fff;touch-action:none;background:linear-gradient(135deg,#1dd879 0%,#07c160 100%);border:0;border-radius:18px;place-items:center;gap:8px;min-height:max(146px,min(22vh,176px));font-size:30px;font-weight:900;display:grid;box-shadow:0 12px 24px #07c1603d}.dictation-speaker[data-v-153efc86]{gap:2px;min-height:100px;line-height:1.08}.hold-talk svg[data-v-153efc86]{width:80px;height:80px}.dictation-speaker svg[data-v-153efc86]{width:54px;height:54px}.hold-talk.holding[data-v-153efc86]{background:linear-gradient(135deg,#ff6b6b 0%,#e5484d 100%);transform:scale(.98)}.hold-talk.holding svg[data-v-153efc86]{transform-origin:50%;animation:.7s ease-in-out infinite recordingPulse-153efc86}@keyframes recordingPulse-153efc86{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.word-complete[data-v-153efc86]{color:#056b35;text-align:center;background:#dff8e9;border-radius:18px;place-items:center;gap:14px;min-height:300px;padding:22px;display:grid}.word-complete strong[data-v-153efc86]{font-size:30px}.read-compare-page[data-v-153efc86]{align-content:center;gap:12px;display:grid}.compare-card[data-v-153efc86]{text-align:center;border-radius:18px;align-content:center;justify-items:center;gap:10px;padding:18px 14px;display:grid}.compare-card.correct[data-v-153efc86]{background:var(--panel-strong)}.compare-card.mine[data-v-153efc86]{border:2px solid var(--line);background:#f7faf8;min-height:154px}.compare-card span[data-v-153efc86]{color:var(--muted);font-size:18px;font-weight:900}.compare-card strong[data-v-153efc86]{color:var(--text);font-size:max(58px,min(18vw,96px));font-weight:900;line-height:1.05}.compare-card p[data-v-153efc86]{color:var(--muted);margin:0;font-size:18px;font-weight:800}.compare-speaker[data-v-153efc86]{color:#fff;background:var(--brand);border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:54px;padding:0 18px;font-size:18px;font-weight:900;display:inline-flex}.compare-speaker svg[data-v-153efc86]{width:30px;height:30px}.compare-speaker.secondary[data-v-153efc86]{min-width:188px;min-height:68px;color:var(--brand-dark);background:#fff;border:2px solid #07c16073;font-size:24px}.mine-audio-button[data-v-153efc86]{min-width:min(280px,82vw);min-height:92px;box-shadow:none;padding:0 28px;font-size:max(24px,min(8vw,32px))}.mine-audio-button svg[data-v-153efc86]{width:44px;height:44px}.read-judge-actions[data-v-153efc86]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.read-judge-btn[data-v-153efc86]{border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:86px;font-size:18px;font-weight:900;line-height:1.08;display:inline-flex}.read-judge-btn svg[data-v-153efc86]{width:34px;height:34px}.read-judge-btn.wrong[data-v-153efc86]{color:#b42318;box-shadow:none;background:#fff2f2;border:2px solid #ffd0d0}.read-judge-btn.right[data-v-153efc86]{color:#fff;box-shadow:none;background:linear-gradient(135deg,#1dd879 0%,#07c160 100%);border:0}.read-judge-btn.bounce[data-v-153efc86]{animation:.6s ease-in-out infinite guideJudgeBounce-153efc86}.write-answer-card[data-v-153efc86]{text-align:center;background:#e8f8ef;border-radius:18px;gap:14px;padding:16px 14px 14px;display:grid}.write-answer-card span[data-v-153efc86],.write-answer-card p[data-v-153efc86]{color:#27664a;margin:0;font-size:18px;font-weight:800}.write-answer-card strong[data-v-153efc86]{color:var(--text);font-size:112px;font-weight:900;line-height:1}.write-judge-actions .judge-btn[data-v-153efc86]{border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:86px;font-size:18px;font-weight:900;line-height:1.08;display:inline-flex}.write-judge-actions .judge-btn svg[data-v-153efc86]{width:34px;height:34px}.write-judge-actions .judge-btn.bounce[data-v-153efc86]{animation:.6s ease-in-out infinite guideJudgeBounce-153efc86}.record-actions[data-v-153efc86]{grid-template-columns:1fr 1.2fr 1fr;gap:10px;width:100%;display:grid}.side-action[data-v-153efc86],.center-action[data-v-153efc86],.nav-btn[data-v-153efc86]{border-radius:14px;min-height:58px;font-size:20px;font-weight:900}.side-action[data-v-153efc86],.nav-btn[data-v-153efc86]{border:2px solid var(--line);color:var(--text);background:#fff}.center-action[data-v-153efc86]{color:#fff;background:var(--brand);border:0}.side-action[data-v-153efc86]:disabled,.nav-btn[data-v-153efc86]:disabled{color:#b6c0bc;background:#f5f7f5}.write-test-panel[data-v-153efc86]{gap:14px;padding:14px}.write-test-panel .dictation-speaker[data-v-153efc86]{margin-top:0}.centered-write-entry .write-test-panel[data-v-153efc86]{grid-column:1/-1;align-content:center;gap:max(10px,min(1.6vh,14px));min-height:max(548px,min(100vh - 190px,568px));margin-top:0;padding:14px}.centered-write-entry .dictation-speaker[data-v-153efc86]{border-radius:14px;min-height:max(94px,min(14vh,96px))}.centered-write-entry .grid-paper[data-v-153efc86]{width:min(100%,330px,44vh)}.centered-write-entry .write-test-panel>.row[data-v-153efc86]{grid-template-columns:1fr .72fr 1fr;gap:8px;margin:0 14px;display:grid}.centered-write-entry .write-test-panel>.row .big-action[data-v-153efc86]{border-radius:14px;min-height:56px;padding:0 8px;font-size:max(18px,min(5.4vw,22px))}.write-forgot[data-v-153efc86]{color:#b42318;box-shadow:none;background:#fff2f2;border:2px solid #ffd0d0}.write-reset-inline[data-v-153efc86]{color:var(--text);border:2px solid var(--line);background:#fff;box-shadow:0 6px 12px #0f172a14}.write-test-panel.checking[data-v-153efc86]{align-content:center;gap:12px;min-height:max(500px,min(100vh - 230px,610px))}.write-test-panel.checking .grid-paper[data-v-153efc86]{width:min(100%,340px,48vh)}.write-test-panel.checking .write-answer-card[data-v-153efc86]{gap:12px;padding:14px 12px 12px}.write-test-panel.checking .write-answer-card strong[data-v-153efc86]{font-size:max(86px,min(25vw,118px))}.write-test-panel.checking .write-answer-card span[data-v-153efc86],.write-test-panel.checking .write-answer-card p[data-v-153efc86]{font-size:16px}.grid-paper[data-v-153efc86]{aspect-ratio:1;touch-action:none;background:#fffdf8;border:3px solid #263238;border-radius:14px;justify-self:center;width:min(100%,460px);position:relative;overflow:hidden}.grid-paper[data-v-153efc86]:before{content:"";z-index:0;pointer-events:none;background-image:repeating-linear-gradient(#c9cdd3 0,#c9cdd3 10px,#0000 10px,#0000 18px),repeating-linear-gradient(90deg,#c9cdd3 0,#c9cdd3 10px,#0000 10px,#0000 18px);background-position:calc(50% - 1px) 0,0 calc(50% - 1px);background-repeat:no-repeat;background-size:2px 100%,100% 2px;position:absolute;top:0;bottom:0;left:0;right:0}.write-canvas[data-v-153efc86]{z-index:1;touch-action:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}@media (max-height:700px){.test-page.centered-write-entry[data-v-153efc86],.test-page.centered-write-page[data-v-153efc86]{gap:6px 0;padding-top:8px;padding-bottom:8px}.centered-write-entry .back-btn[data-v-153efc86],.centered-write-page .back-btn[data-v-153efc86]{min-height:36px}.write-page-heading[data-v-153efc86]{font-size:max(21px,min(5.8vw,24px))}.centered-write-entry .write-test-panel[data-v-153efc86]{gap:8px;min-height:0;padding:12px}.centered-write-entry .dictation-speaker[data-v-153efc86]{gap:0;min-height:76px}.centered-write-entry .dictation-speaker svg[data-v-153efc86]{width:44px;height:44px}.centered-write-entry .grid-paper[data-v-153efc86]{width:min(100%,292px,40vh)}.centered-write-entry .write-test-panel>.row[data-v-153efc86]{gap:7px;margin:0 10px}.centered-write-entry .write-test-panel>.row .big-action[data-v-153efc86]{min-height:52px;font-size:max(17px,min(5.2vw,20px))}.write-test-panel.checking[data-v-153efc86]{gap:8px;min-height:0;padding:12px}.write-test-panel.checking .grid-paper[data-v-153efc86]{width:min(100%,312px,47vh)}.write-test-panel.checking .write-answer-card[data-v-153efc86]{gap:8px;padding:12px 12px 10px}.write-test-panel.checking .write-answer-card strong[data-v-153efc86]{font-size:max(72px,min(22vw,92px))}.write-judge-actions .judge-btn[data-v-153efc86]{min-height:72px}}.row[data-v-153efc86]{align-items:center;gap:10px;display:flex}.row>.big-action[data-v-153efc86]{flex:1}.nav-row[data-v-153efc86]{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.nav-btn[data-v-153efc86]{justify-content:center;align-items:center;gap:4px;display:inline-flex}@media (max-width:360px){.judge-actions[data-v-153efc86]{grid-template-columns:1fr}.test-word[data-v-153efc86]{font-size:74px}}.auth-page[data-v-d425f15f]{background:var(--page-bg);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card[data-v-d425f15f]{width:min(100%,360px);box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:16px;padding:32px 20px}.auth-card h1[data-v-d425f15f]{color:var(--text);margin:0;font-size:22px;line-height:1.4}.auth-page[data-v-3af6e74c]{background:var(--page-bg);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card[data-v-3af6e74c]{width:min(100%,360px);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:28px 20px}.auth-card h1[data-v-3af6e74c]{color:var(--text);margin:0 0 10px;font-size:24px}.auth-card p[data-v-3af6e74c]{color:var(--muted);margin:0 0 20px;font-size:16px;line-height:1.5}.error-text[data-v-3af6e74c]{color:#b42318}.skip-btn[data-v-3af6e74c]{margin-top:12px}.login-page[data-v-f989fe03]{background:#e6f7ee;justify-content:center;align-items:center;min-height:100vh;padding:30px 16px;display:flex;position:relative}.redirect-tip[data-v-f989fe03]{color:var(--muted);margin:0;font-size:15px;font-weight:700}.login-back[data-v-f989fe03]{min-height:36px;color:var(--brand);background:0 0;border:0;align-items:center;gap:4px;font-size:18px;font-weight:800;display:inline-flex;position:absolute;top:30px;left:16px}.login-back.ghost[data-v-f989fe03]{color:#07c1608c}.welcome[data-v-f989fe03]{text-align:center;width:100%;max-width:340px;padding:0 8px}.brand-logo[data-v-f989fe03]{background:var(--brand);color:#fff;letter-spacing:.5px;border-radius:20px;justify-content:center;align-items:center;width:84px;height:84px;margin:0 auto 24px;font-size:30px;font-weight:900;display:flex}.welcome-title[data-v-f989fe03]{color:var(--text);margin:0;font-size:26px;font-weight:900}.welcome-sub[data-v-f989fe03]{color:var(--muted);margin:10px 0 0;font-size:15px}.wechat-login[data-v-f989fe03]{color:#fff;background:#07c160;border:0;border-radius:27px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:54px;margin-top:56px;font-size:19px;font-weight:900;display:inline-flex;box-shadow:0 8px 20px #07c1604d}.wechat-login[data-v-f989fe03]:active{background:#06ad56}.wechat-icon[data-v-f989fe03]{flex-shrink:0;display:block}.other-divider[data-v-f989fe03]{color:var(--muted);align-items:center;gap:12px;margin:26px 4px 16px;font-size:13px;display:flex}.other-divider[data-v-f989fe03]:before,.other-divider[data-v-f989fe03]:after{content:"";background:#07c1602e;flex:1;height:1px}.account-entry[data-v-f989fe03]{color:var(--muted);background:0 0;border:0;font-size:15px;font-weight:700}.login-card[data-v-f989fe03]{width:100%;max-width:360px;box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:22px 18px 20px}.login-card h1[data-v-f989fe03]{color:var(--text);margin:0 0 18px;font-size:28px;font-weight:900;line-height:1.2}.mode-tabs[data-v-f989fe03]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.mode-tab[data-v-f989fe03]{min-height:48px;color:var(--muted);background:var(--panel-strong);border:1px solid #07c1602e;border-radius:12px;font-size:17px;font-weight:800}.mode-tab.active[data-v-f989fe03]{color:#fff;background:var(--brand);border-color:var(--brand)}.login-submit[data-v-f989fe03]{border-radius:12px;height:52px;margin-top:18px;font-size:18px;font-weight:900}.zl-layer[data-v-1ff9d7e7]{top:0;left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:2010;background:#f5f6f7;flex-direction:column;display:flex;position:fixed}.zl-slide-enter-from[data-v-1ff9d7e7],.zl-slide-leave-to[data-v-1ff9d7e7]{transform:translate(100%)}.zl-slide-enter-active[data-v-1ff9d7e7],.zl-slide-leave-active[data-v-1ff9d7e7]{transition:transform .25s}.zl-head[data-v-1ff9d7e7]{padding:calc(6px + env(safe-area-inset-top,0px)) 14px 6px;background:#fff;border-bottom:.5px solid #eee;flex-shrink:0;align-items:center;gap:8px;display:flex}.zl-back[data-v-1ff9d7e7]{color:#333;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:36px;padding:0;font-size:22px;display:flex}.zl-title[data-v-1ff9d7e7]{color:#222;font-size:17px;font-weight:600}.zl-count[data-v-1ff9d7e7]{color:var(--zi-color);margin-left:auto;font-size:14px;font-weight:700}.zl-buckets[data-v-1ff9d7e7]{-webkit-overflow-scrolling:touch;background:#fff;border-bottom:.5px solid #eee;flex-shrink:0;gap:8px;padding:10px 14px;display:flex;overflow-x:auto}.zl-bkt[data-v-1ff9d7e7]{color:#555;white-space:nowrap;background:#fff;border:.5px solid #ddd;border-radius:17px;flex-shrink:0;height:34px;padding:0 15px;font-size:14px}.zl-bkt.cur[data-v-1ff9d7e7]{border-color:var(--zi-color);background:var(--zi-color);color:#fff}.zl-scroll[data-v-1ff9d7e7]{-webkit-overflow-scrolling:touch;flex:1;padding:12px 14px 24px;overflow-y:auto}.zl-rline[data-v-1ff9d7e7]{margin-bottom:14px}.zl-rno[data-v-1ff9d7e7]{color:#999;margin:0 2px 8px;font-size:13px}.zl-row[data-v-1ff9d7e7]{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;display:grid}.zl-zi[data-v-1ff9d7e7]{box-sizing:border-box;border:1px solid var(--zi-border);background:var(--zi-bg);min-height:42px;color:var(--zi-color);border-radius:12px;justify-content:center;align-items:center;padding:4px;font-size:26px;font-weight:900;line-height:1.1;display:flex}.zl-zi.sel[data-v-1ff9d7e7]{background:var(--zi-color);border-color:var(--zi-color);color:#fff}.zl-empty[data-v-1ff9d7e7]{text-align:center;color:#999;padding:48px 0;font-size:16px}.zl-actionbar[data-v-1ff9d7e7]{padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:#fff;border-top:.5px solid #eee;flex-shrink:0}.zl-action-btn[data-v-1ff9d7e7]{color:#fff;background:#07c160;border:0;border-radius:12px;width:100%;height:48px;font-size:17px;font-weight:700}.zl-action-char[data-v-1ff9d7e7]{font-size:max(19px,min(2.7vh,22px));font-weight:800}.fb-page[data-v-7ae14511]{min-height:calc(100vh - var(--bottom-reserve,74px));min-height:calc(100dvh - var(--bottom-reserve,74px));background:#e6f7ee;flex-direction:column;display:flex}.fb-page[data-v-7ae14511] svg{flex:none}.fb-head[data-v-7ae14511]{padding:calc(6px + env(safe-area-inset-top,0px)) 12px 6px;background:#fff;border-bottom:.5px solid #eee;align-items:center;gap:8px;display:flex}.fb-icon-btn[data-v-7ae14511]{color:#333;background:0 0;border:0;justify-content:center;align-items:center;width:40px;height:36px;display:flex}.fb-title[data-v-7ae14511]{color:#222;font-size:17px;font-weight:700}.fb-lib-btn[data-v-7ae14511]{color:#06864a;background:#eafaf1;border:1px solid #07c16059;border-radius:999px;height:30px;margin-left:auto;padding:0 14px;font-size:14px;font-weight:700}.fb-lib-pulse[data-v-7ae14511]{animation:.42s fb-lib-pop-7ae14511}@keyframes fb-lib-pop-7ae14511{0%{transform:scale(1)}45%{background:#d5f6e4;transform:scale(1.22)}to{transform:scale(1)}}.fb-center[data-v-7ae14511]{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:40px 24px;display:flex}.fb-muted[data-v-7ae14511]{color:#888;font-size:16px}.fb-empty-icon[data-v-7ae14511]{font-size:52px}.fb-empty-text[data-v-7ae14511]{color:#555;font-size:18px;font-weight:600}.fb-roundbar[data-v-7ae14511]{justify-content:center;align-items:center;gap:18px;padding:14px 16px 4px;display:flex}.fb-round-arrow[data-v-7ae14511]{color:#06864a;background:#fff;border:.5px solid #cfe9d9;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.fb-round-arrow[data-v-7ae14511]:disabled{opacity:.35}.fb-round-label[data-v-7ae14511]{color:#06864a;text-align:center;min-width:84px;font-size:17px;font-weight:800}.fb-pos[data-v-7ae14511]{text-align:center;color:#7a8b82;margin:2px 0 8px;font-size:14px}.fb-card[data-v-7ae14511]{background:#fff;border-radius:18px;width:100%;max-width:480px;margin:0 auto;padding:20px 18px;box-shadow:0 8px 22px #344c4514}.fb-bigrow[data-v-7ae14511]{border-bottom:.5px dashed #e3ece7;align-items:center;gap:12px;padding-bottom:16px;display:flex}.fb-bigchar[data-v-7ae14511]{text-align:center;color:#1a2b22;flex:1;font-size:max(64px,min(10.5vh,88px));font-weight:900;line-height:1}.fb-line[data-v-7ae14511]{border-bottom:.5px solid #f1f5f3;align-items:center;gap:12px;padding:max(7px,min(1.25vh,10.5px)) 2px;display:flex}.fb-line[data-v-7ae14511]:last-child{border-bottom:0}.fb-linetext[data-v-7ae14511]{color:#2b3a33;flex:1}.fb-line.word .fb-linetext[data-v-7ae14511]{font-size:max(26px,min(4.05vh,34px));font-weight:700}.fb-line.sentence .fb-linetext[data-v-7ae14511]{font-size:max(26px,min(4.05vh,34px));font-weight:600;line-height:1.45}.fb-check[data-v-7ae14511]{color:#fff;background:#fff;border:1.5px solid #cdd6d1;border-radius:50%;flex:none;justify-content:center;align-items:center;width:30px;min-width:30px;height:30px;min-height:30px;display:flex}.fb-check.on[data-v-7ae14511]{background:#07c160;border-color:#07c160}.fb-check[data-v-7ae14511] svg{opacity:0}.fb-check.on[data-v-7ae14511] svg{opacity:1}.fb-speak[data-v-7ae14511]{color:#07c160;background:#eafaf1;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.fb-speak.sm[data-v-7ae14511]{width:50px;height:50px}.fb-pager[data-v-7ae14511]{gap:22px;max-width:480px;margin:8px auto 0;padding:0 4px;display:flex}.fb-page-btn[data-v-7ae14511]{color:#2b3a33;background:#fff;border:.5px solid #cfe9d9;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:2px;height:max(46px,min(6.7vh,56px));font-size:max(16px,min(2.3vh,19px));font-weight:600;display:flex}.fb-page-btn[data-v-7ae14511]:disabled{opacity:.4}.fb-primary-btn[data-v-7ae14511]{color:#fff;background:#07c160;border:0;border-radius:12px;height:46px;padding:0 28px;font-size:16px;font-weight:700}.fb-plain-btn[data-v-7ae14511]{color:#06864a;background:#fff;border:.5px solid #cfe9d9;border-radius:10px;height:42px;padding:0 22px;font-size:15px}
