.tab-bar[data-v-bf03c0ad]{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:#fffffff5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid #e8ebf1}.tab-item[data-v-bf03c0ad]{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;border:0;background:none;color:#8a93a6;font-size:11px;cursor:pointer;-webkit-tap-highlight-color:transparent}.tab-item.active[data-v-bf03c0ad]{color:#1f8a4c;font-weight:600}.tab-icon[data-v-bf03c0ad]{width:22px;height:22px}.word-card[data-v-e77c1fb6]{position:relative;margin-top:16px;height:clamp(380px,62vh,500px);display:flex;flex-direction:column;padding:22px 24px 18px;border-radius:16px;background:#fff;box-shadow:0 4px 20px #1b2a4a14;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden}.speak-btn[data-v-e77c1fb6]{position:absolute;top:14px;right:14px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:#eef1f7;color:#1b2a4a;cursor:pointer}.fav-btn[data-v-e77c1fb6]{position:absolute;top:14px;left:14px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:#eef1f7;color:#a0a8ba;font-size:20px;cursor:pointer}.fav-btn.on[data-v-e77c1fb6]{color:#f0a020;background:#fdf3dd}.word-main[data-v-e77c1fb6]{flex-shrink:0;padding-top:14px}.word[data-v-e77c1fb6]{font-size:56px;font-weight:700;letter-spacing:.08em;color:#1b2a4a;line-height:1.2;transition:font-size .22s ease}.revealed .word[data-v-e77c1fb6]{font-size:38px}.pinyin[data-v-e77c1fb6]{margin-top:6px;color:#8a93a6;font-size:16px}.definitions[data-v-e77c1fb6]{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;margin-top:12px;text-align:left;border-top:1px dashed #e8ebf1;padding:12px 4px 4px;opacity:0;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease}.revealed .definitions[data-v-e77c1fb6]{opacity:1;transform:none}.sentence-box[data-v-e77c1fb6]{flex-shrink:0;margin-top:22px;padding:16px;border-radius:12px;background:#f6f8fc;text-align:left}.sentence[data-v-e77c1fb6]{margin:0;color:#3c4a66;font-size:17px;line-height:1.8}.sentence mark[data-v-e77c1fb6]{background:#ffe9a8;color:#8a5a00;border-radius:4px;padding:1px 3px;font-weight:700}.sentence-source[data-v-e77c1fb6]{margin:8px 0 0;color:#a0a8ba;font-size:12px}.definition[data-v-e77c1fb6]{padding:10px 0}.definition+.definition[data-v-e77c1fb6]{border-top:1px solid #f2f4f8}.def-head[data-v-e77c1fb6]{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.pos[data-v-e77c1fb6]{flex-shrink:0;padding:1px 8px;border-radius:8px;background:#eef4ff;color:#2b5fd9;font-size:12px}.meaning[data-v-e77c1fb6]{font-size:17px;font-weight:600;color:#2a3346}.example[data-v-e77c1fb6]{margin:8px 0 2px;color:#5a6478;font-size:15px;line-height:1.7}.source[data-v-e77c1fb6]{margin:0;color:#a0a8ba;font-size:12px}.tap-hint[data-v-e77c1fb6]{flex-shrink:0;margin-top:10px;color:#b6bdcc;font-size:13px}.page-head[data-v-2abfffdf]{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.batch-chip[data-v-2abfffdf]{padding:5px 12px;border-radius:14px;background:#dff0e4;color:#1f7a4c;font-size:12px}.hint[data-v-2abfffdf]{margin:10px 0 0;color:#8a93a6;font-size:13px;line-height:1.6}.home-cards[data-v-2abfffdf]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.home-card[data-v-2abfffdf]{background:#fff;border-radius:16px;padding:18px 16px;box-shadow:0 4px 20px #1b2a4a14;display:flex;flex-direction:column}.review-card[data-v-2abfffdf]{border-top:4px solid #e8734a}.learn-card[data-v-2abfffdf]{border-top:4px solid #249a5b}.home-num[data-v-2abfffdf]{font-size:42px;font-weight:800;color:#1b2a4a;line-height:1.1}.home-title[data-v-2abfffdf]{margin-top:2px;font-size:15px;font-weight:600;color:#2a3346}.home-card .hint[data-v-2abfffdf]{flex:1;font-size:12px}.home-card .primary-btn[data-v-2abfffdf]{margin-top:12px}.quick-row[data-v-2abfffdf]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.ghost-btn[data-v-2abfffdf]{border:1px solid #dbe1ec;background:#fff;color:#3c4a66;border-radius:12px;padding:10px 0;font-size:13px;text-align:center;cursor:pointer}.primary-btn[data-v-2abfffdf]{width:100%;border:0;border-radius:14px;padding:13px 0;background:linear-gradient(135deg,#1f9d55,#34b96f);color:#fff;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 6px 16px #1f9d5547}.primary-btn[data-v-2abfffdf]:disabled{opacity:.45;box-shadow:none}.msg[data-v-2abfffdf]{margin:12px 4px 0;color:#d63b30;font-size:13px}.progress-wrap[data-v-2abfffdf]{margin-top:14px}.progress-bar[data-v-2abfffdf]{height:6px;border-radius:3px;background:#e8ebf1;overflow:hidden}.progress-fill[data-v-2abfffdf]{height:100%;border-radius:3px;background:linear-gradient(90deg,#1f9d55,#34b96f);transition:width .3s ease}.ratings[data-v-2abfffdf]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.rate-btn[data-v-2abfffdf]{border:0;border-radius:12px;padding:13px 0;font-size:15px;font-weight:600;cursor:pointer}.rate-btn.danger[data-v-2abfffdf]{background:#fdeceb;color:#d63b30}.rate-btn.plain[data-v-2abfffdf]{background:#f2f4f8;color:#3c4a66}.rate-btn.primary[data-v-2abfffdf]{background:#e5edff;color:#2b5fd9}.rate-btn.success[data-v-2abfffdf]{background:#e5f7ec;color:#1f9d55}.rate-btn.disabled[data-v-2abfffdf]{opacity:.45}.learn-actions[data-v-2abfffdf]{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px;margin-top:16px}.unknown-btn[data-v-2abfffdf]{border:1px solid #f0c9c4;background:#fdf0ee;color:#d63b30;border-radius:14px;padding:13px 0;font-size:15px;font-weight:600;cursor:pointer}.pass-dots[data-v-2abfffdf]{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px}.dot[data-v-2abfffdf]{width:9px;height:9px;border-radius:50%;background:#dceadf}.dot.on[data-v-2abfffdf]{background:#1f9d55}.pass-text[data-v-2abfffdf]{margin-left:6px;color:#6f8a7a;font-size:12px}.hint.center[data-v-2abfffdf]{text-align:center;color:#b0721a;margin-top:8px}.nav-row[data-v-2abfffdf]{display:flex;gap:8px;margin-top:12px}.nav-btn[data-v-2abfffdf]{flex:1;border:1px solid #e4e8f0;background:#f9fafc;color:#5a6478;border-radius:10px;padding:8px 0;font-size:12px;cursor:pointer}.nav-btn[data-v-2abfffdf]:disabled{opacity:.4}.done-box[data-v-2abfffdf]{margin-top:40px;text-align:center}.done-emoji[data-v-2abfffdf]{font-size:56px}.done-box h3[data-v-2abfffdf]{margin:12px 0 4px;color:#1b2a4a}.done-actions[data-v-2abfffdf]{display:flex;flex-direction:column;gap:10px;margin-top:22px}.drawer-mask[data-v-0d83b214]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#141b2b73;display:flex;align-items:flex-end}.drawer[data-v-0d83b214]{width:100%;max-height:78vh;overflow-y:auto;border-radius:18px 18px 0 0;background:#fff;padding:20px 20px calc(24px + env(safe-area-inset-bottom))}.drawer-head[data-v-0d83b214]{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid #eef1f6}.big[data-v-0d83b214]{font-size:30px;font-weight:700;color:#1b2a4a}.py[data-v-0d83b214]{margin-left:10px;color:#8a93a6;font-size:15px}.head-actions[data-v-0d83b214]{display:flex;gap:8px}.mini-btn[data-v-0d83b214]{border:1px solid #dbe1ec;background:#fff;color:#3c4a66;border-radius:14px;padding:5px 12px;font-size:13px;cursor:pointer}.mini-btn.favOn[data-v-0d83b214]{border-color:#f0d9a8;background:#fdf3dd;color:#b0721a}.drawer-body[data-v-0d83b214]{padding-top:6px}.def-item[data-v-0d83b214]{padding:14px 0}.def-item+.def-item[data-v-0d83b214]{border-top:1px solid #f2f4f8}.def-row[data-v-0d83b214]{display:flex;align-items:baseline;gap:8px}.tag[data-v-0d83b214]{flex-shrink:0;padding:1px 8px;border-radius:8px;background:#eef4ff;color:#2b5fd9;font-size:12px}.def-meaning[data-v-0d83b214]{font-size:16px;font-weight:600;color:#2a3346}.def-example[data-v-0d83b214]{margin:8px 0 2px;color:#5a6478;font-size:14px;line-height:1.7}.def-source[data-v-0d83b214]{margin:0;color:#a0a8ba;font-size:12px}.drawer-enter-active[data-v-0d83b214],.drawer-leave-active[data-v-0d83b214]{transition:opacity .22s ease}.drawer-enter-active .drawer[data-v-0d83b214],.drawer-leave-active .drawer[data-v-0d83b214]{transition:transform .22s ease}.drawer-enter-from[data-v-0d83b214],.drawer-leave-to[data-v-0d83b214]{opacity:0}.drawer-enter-from .drawer[data-v-0d83b214],.drawer-leave-to .drawer[data-v-0d83b214]{transform:translateY(30px)}.search[data-v-3f8751a8]{width:100%;box-sizing:border-box;margin:12px 0 10px;padding:10px 14px;border:1px solid #e4e8f0;border-radius:12px;background:#fff;font-size:14px;color:#2a3346}.filters[data-v-3f8751a8]{display:flex;gap:8px;margin-bottom:10px}.filter-btn[data-v-3f8751a8]{border:1px solid #e4e8f0;background:#fff;color:#5a6478;border-radius:14px;padding:5px 13px;font-size:13px;cursor:pointer}.filter-btn.active[data-v-3f8751a8]{background:#1b2a4a;border-color:#1b2a4a;color:#fff}.word-list[data-v-3f8751a8]{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 12px #1b2a4a0d}.word-row[data-v-3f8751a8]{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;padding:12px 14px;border:0;border-bottom:1px solid #f2f4f8;background:#fff;text-align:left;cursor:pointer}.w-word[data-v-3f8751a8]{font-size:20px;font-weight:700;color:#1b2a4a;width:34px}.w-star[data-v-3f8751a8]{flex-shrink:0;width:18px;color:#d4d9e2;font-size:14px;cursor:pointer}.w-star.on[data-v-3f8751a8]{color:#f0a020}.w-py[data-v-3f8751a8]{color:#a0a8ba;font-size:12px;width:52px}.w-meaning[data-v-3f8751a8]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5a6478;font-size:14px}.w-tag[data-v-3f8751a8]{flex-shrink:0;padding:2px 8px;border-radius:10px;background:#f2f4f8;color:#8a93a6;font-size:11px;white-space:nowrap}.w-tag.due[data-v-3f8751a8]{background:#fdeceb;color:#d63b30}.empty[data-v-3f8751a8]{padding:30px 0;text-align:center;color:#a0a8ba;font-size:14px;margin:0}.hint[data-v-729722b1]{margin:8px 0 14px;color:#8a93a6;font-size:13px}.empty-box[data-v-729722b1]{margin-top:60px;text-align:center;color:#a0a8ba}.word-list[data-v-729722b1]{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 12px #1b2a4a0d}.word-row[data-v-729722b1]{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;padding:13px 14px;border:0;border-bottom:1px solid #f2f4f8;background:#fff;text-align:left;cursor:pointer}.w-word[data-v-729722b1]{font-size:20px;font-weight:700;color:#1b2a4a;width:34px}.w-meaning[data-v-729722b1]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5a6478;font-size:14px}.w-tag[data-v-729722b1]{flex-shrink:0;padding:2px 8px;border-radius:10px;background:#f2f4f8;color:#8a93a6;font-size:11px;white-space:nowrap}.w-tag.due[data-v-729722b1]{background:#fdeceb;color:#d63b30}.hint[data-v-20a1b77d]{margin:10px 0 0;color:#8a93a6;font-size:13px}.stat-cards[data-v-20a1b77d]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}.stat-card[data-v-20a1b77d]{background:#fff;border-radius:14px;padding:16px 14px;text-align:center;box-shadow:0 2px 12px #1b2a4a0d}.num[data-v-20a1b77d]{font-size:28px;font-weight:700;color:#1b2a4a}.label[data-v-20a1b77d]{margin-top:4px;color:#8a93a6;font-size:12px}.heatmap-card[data-v-20a1b77d]{margin-top:14px;background:#fff;border-radius:14px;padding:16px;box-shadow:0 2px 12px #1b2a4a0d}.heatmap-card h3[data-v-20a1b77d]{margin:0 0 12px;font-size:15px;color:#2a3346}.heatmap[data-v-20a1b77d]{display:grid;grid-template-columns:repeat(14,1fr);gap:3px}.cell[data-v-20a1b77d]{aspect-ratio:1;border-radius:3px;background:#eef1f6}.cell.l1[data-v-20a1b77d]{background:#d5e3fb}.cell.l2[data-v-20a1b77d]{background:#9cc0f5}.cell.l3[data-v-20a1b77d]{background:#5d8fe8}.cell.l4[data-v-20a1b77d]{background:#2b5fd9}.legend[data-v-20a1b77d]{display:flex;align-items:center;gap:4px;justify-content:flex-end;margin-top:10px;color:#a0a8ba;font-size:11px}.legend .cell[data-v-20a1b77d]{width:12px;height:12px;aspect-ratio:auto}.card[data-v-8a7b323d]{margin-top:12px;background:#fff;border-radius:14px;padding:16px;box-shadow:0 2px 12px #1b2a4a0d}.card h3[data-v-8a7b323d]{margin:0 0 8px;font-size:15px;color:#2a3346}.hint[data-v-8a7b323d]{margin:0 0 12px;color:#8a93a6;font-size:13px;line-height:1.7}.input[data-v-8a7b323d]{width:100%;box-sizing:border-box;margin-bottom:10px;padding:11px 14px;border:1px solid #e4e8f0;border-radius:12px;background:#f9fafc;font-size:14px}.row[data-v-8a7b323d]{display:flex;gap:10px;margin-top:6px}.flex[data-v-8a7b323d]{flex:1}.full[data-v-8a7b323d]{width:100%;margin-top:10px}.primary-btn[data-v-8a7b323d]{border:0;border-radius:12px;padding:12px 0;background:linear-gradient(135deg,#1f9d55,#34b96f);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.primary-btn[data-v-8a7b323d]:disabled{opacity:.5}.ghost-btn[data-v-8a7b323d]{border:1px solid #dbe1ec;background:#fff;color:#3c4a66;border-radius:12px;padding:11px 0;font-size:14px;text-align:center;cursor:pointer;box-sizing:border-box}.file-label[data-v-8a7b323d]{display:inline-block}.stepper[data-v-8a7b323d]{display:flex;align-items:center;gap:20px}.step-btn[data-v-8a7b323d]{width:44px;height:44px;border:1px solid #dbe1ec;border-radius:50%;background:#fff;color:#1f9d55;font-size:22px;cursor:pointer}.step-num[data-v-8a7b323d]{min-width:48px;text-align:center;font-size:26px;font-weight:700;color:#1b2a4a}.user-row[data-v-8a7b323d]{display:flex;align-items:center;gap:12px;margin-bottom:14px}.avatar[data-v-8a7b323d]{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#17663f,#249a5b);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}.user-name[data-v-8a7b323d]{font-size:16px;font-weight:600;color:#2a3346}.msg[data-v-8a7b323d]{margin:10px 2px 0;font-size:13px}.msg.ok[data-v-8a7b323d]{color:#1f9d55}.msg.err[data-v-8a7b323d]{color:#d63b30}.ver-line[data-v-8a7b323d]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;font-size:15px;color:#2a3d33}.update-btn[data-v-8a7b323d]{flex-shrink:0;border:1px solid #cfe6d8;background:#eef7f1;color:#1f7a4c;border-radius:10px;padding:6px 12px;font-size:12px;cursor:pointer}.update-btn[data-v-8a7b323d]:disabled{opacity:.6}.hint.warn[data-v-8a7b323d]{color:#b0721a}.ver-line strong[data-v-8a7b323d]{color:#17663f}.ver-note[data-v-8a7b323d]{margin-left:8px;color:#8a93a6;font-size:12px}.app-shell[data-v-34357737]{min-height:100vh;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.app-header[data-v-34357737]{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top)) 18px 12px;background:linear-gradient(135deg,#17663f,#249a5b);color:#fff}.app-header h1[data-v-34357737]{margin:0;font-size:18px;font-weight:700}.sync-chip[data-v-34357737]{border:1px solid rgba(255,255,255,.35);background:#ffffff1f;color:#fff;border-radius:14px;padding:5px 12px;font-size:12px;cursor:pointer}.sync-chip.offline[data-v-34357737]{background:#d63b3040;border-color:#fff3}.app-main[data-v-34357737]{max-width:640px;margin:0 auto;padding:0 16px 24px}:root{--bg: #eaf6ee;--ink: #17452f;--muted: #6f8a7a;--line: #dceadf;--primary: #1f9d55}*{-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:linear-gradient(180deg,#e9f7ee,#d8efdf 55%,#c9e7d2);background-attachment:fixed;color:#2a3d33;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif;-webkit-font-smoothing:antialiased}body{overscroll-behavior-y:none}#app{min-height:100vh}button{font-family:inherit}input,textarea{font-family:inherit;outline:none}.page h2{margin:6px 0 0;font-size:20px;color:var(--ink)}::-webkit-scrollbar{width:0;height:0}
