.tab-bar[data-v-46b18f9a]{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-46b18f9a]{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-46b18f9a]{color:var(--accent, #1f8a4c);font-weight:600}.tab-icon[data-v-46b18f9a]{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.in-session[data-v-f796c87b]{padding-top:44px}.back-top[data-v-f796c87b]{position:fixed;top:calc(10px + env(safe-area-inset-top));left:14px;z-index:40;border:0;border-radius:16px;background:#ffffffeb;color:#17663f;padding:6px 13px;font-size:14px;font-weight:600;box-shadow:0 2px 10px #0000001f;cursor:pointer;-webkit-tap-highlight-color:transparent}.page-head[data-v-f796c87b]{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.batch-chip[data-v-f796c87b]{padding:5px 12px;border-radius:14px;background:#dff0e4;color:#1f7a4c;font-size:12px}.hint[data-v-f796c87b]{margin:10px 0 0;color:#8a93a6;font-size:13px;line-height:1.6}.home-cards[data-v-f796c87b]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.home-card[data-v-f796c87b]{background:#fff;border-radius:16px;padding:18px 16px;box-shadow:0 4px 20px #1b2a4a14;display:flex;flex-direction:column}.review-card[data-v-f796c87b]{border-top:4px solid #e8734a}.learn-card[data-v-f796c87b]{border-top:4px solid #249a5b}.home-num[data-v-f796c87b]{font-size:42px;font-weight:800;color:#1b2a4a;line-height:1.1}.home-title[data-v-f796c87b]{margin-top:2px;font-size:15px;font-weight:600;color:#2a3346}.home-card .hint[data-v-f796c87b]{flex:1;font-size:12px}.home-card .primary-btn[data-v-f796c87b]{margin-top:12px}.quick-row[data-v-f796c87b]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.ghost-btn[data-v-f796c87b]{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-f796c87b]{width:100%;border:0;border-radius:14px;padding:13px 0;background:linear-gradient(135deg,var(--accent, #1f9d55),var(--accent-light, #34b96f));color:#fff;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 6px 16px #1f9d5540}.primary-btn[data-v-f796c87b]:disabled{opacity:.45;box-shadow:none}.msg[data-v-f796c87b]{margin:12px 4px 0;color:#d63b30;font-size:13px}.progress-wrap[data-v-f796c87b]{margin-top:14px}.progress-bar[data-v-f796c87b]{height:6px;border-radius:3px;background:#e8ebf1;overflow:hidden}.progress-fill[data-v-f796c87b]{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent, #1f9d55),var(--accent-light, #34b96f));transition:width .3s ease}.ratings[data-v-f796c87b]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.rate-btn[data-v-f796c87b]{border:0;border-radius:12px;padding:13px 0;font-size:15px;font-weight:600;cursor:pointer}.rate-btn.danger[data-v-f796c87b]{background:#fdeceb;color:#d63b30}.rate-btn.plain[data-v-f796c87b]{background:#f2f4f8;color:#3c4a66}.rate-btn.primary[data-v-f796c87b]{background:#e5edff;color:#2b5fd9}.rate-btn.success[data-v-f796c87b]{background:#e5f7ec;color:#1f9d55}.rate-btn.disabled[data-v-f796c87b]{opacity:.45}.rate-btn.pending[data-v-f796c87b]{box-shadow:inset 0 0 0 2px #00000059}.learn-actions[data-v-f796c87b]{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px;margin-top:16px}.unknown-btn[data-v-f796c87b]{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-f796c87b]{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px}.dot[data-v-f796c87b]{width:9px;height:9px;border-radius:50%;background:#dceadf}.dot.on[data-v-f796c87b]{background:var(--accent, #1f9d55)}.pass-text[data-v-f796c87b]{margin-left:6px;color:#6f8a7a;font-size:12px}.hint.center[data-v-f796c87b]{text-align:center;color:#b0721a;margin-top:8px}.nav-row[data-v-f796c87b]{display:flex;gap:8px;margin-top:12px}.nav-btn[data-v-f796c87b]{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-f796c87b]:disabled{opacity:.4}.done-box[data-v-f796c87b]{margin-top:40px;text-align:center}.done-emoji[data-v-f796c87b]{font-size:56px}.done-box h3[data-v-f796c87b]{margin:12px 0 4px;color:#1b2a4a}.done-actions[data-v-f796c87b]{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-2ccaa200]{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-2ccaa200]{display:flex;gap:8px;margin-bottom:10px}.filter-btn[data-v-2ccaa200]{border:1px solid #e4e8f0;background:#fff;color:#5a6478;border-radius:14px;padding:5px 13px;font-size:13px;cursor:pointer}.filter-btn.active[data-v-2ccaa200]{background:#1b2a4a;border-color:#1b2a4a;color:#fff}.word-list[data-v-2ccaa200]{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 12px #1b2a4a0d}.word-row[data-v-2ccaa200]{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;padding:13px 14px;border:0;border-bottom:1px solid #f2f4f8;background:#fff;text-align:left;cursor:pointer}.w-main[data-v-2ccaa200]{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.w-head[data-v-2ccaa200]{display:flex;align-items:baseline;gap:8px}.w-word[data-v-2ccaa200]{font-size:21px;font-weight:700;color:#1b2a4a}.w-star[data-v-2ccaa200]{flex-shrink:0;width:18px;color:#d4d9e2;font-size:14px;cursor:pointer}.w-star.on[data-v-2ccaa200]{color:#f0a020}.w-py[data-v-2ccaa200]{color:#a0a8ba;font-size:12px}.w-meaning[data-v-2ccaa200]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5a6478;font-size:13px}.w-tag[data-v-2ccaa200]{flex-shrink:0;padding:2px 8px;border-radius:10px;background:#f2f4f8;color:#8a93a6;font-size:11px;white-space:nowrap}.w-tag.due[data-v-2ccaa200]{background:#fdeceb;color:#d63b30}.empty[data-v-2ccaa200]{padding:30px 0;text-align:center;color:#a0a8ba;font-size:14px;margin:0}.hint[data-v-2e86046a]{margin:8px 0 14px;color:#8a93a6;font-size:13px}.empty-box[data-v-2e86046a]{margin-top:60px;text-align:center;color:#a0a8ba}.word-list[data-v-2e86046a]{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 12px #1b2a4a0d}.word-row[data-v-2e86046a]{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;padding:13px 14px;border:0;border-bottom:1px solid #f2f4f8;background:#fff;text-align:left;cursor:pointer}.w-main[data-v-2e86046a]{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.w-head[data-v-2e86046a]{display:flex;align-items:baseline;gap:8px}.w-word[data-v-2e86046a]{font-size:21px;font-weight:700;color:#1b2a4a}.w-py[data-v-2e86046a]{color:#a0a8ba;font-size:12px}.w-meaning[data-v-2e86046a]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5a6478;font-size:13px}.w-tag[data-v-2e86046a]{flex-shrink:0;padding:2px 8px;border-radius:10px;background:#f2f4f8;color:#8a93a6;font-size:11px;white-space:nowrap}.w-tag.due[data-v-2e86046a]{background:#fdeceb;color:#d63b30}.hint[data-v-379e88b7]{margin:10px 0 0;color:#8a93a6;font-size:13px}.stat-cards[data-v-379e88b7]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}.stat-card[data-v-379e88b7]{background:#fff;border-radius:14px;padding:16px 14px;text-align:center;box-shadow:0 2px 12px #1b2a4a0d}.num[data-v-379e88b7]{font-size:28px;font-weight:700;color:#1b2a4a}.num.small[data-v-379e88b7]{font-size:20px}.label[data-v-379e88b7]{margin-top:4px;color:#8a93a6;font-size:12px}.heatmap-card[data-v-379e88b7]{margin-top:14px;background:#fff;border-radius:14px;padding:16px;box-shadow:0 2px 12px #1b2a4a0d}.heatmap-card h3[data-v-379e88b7]{margin:0 0 12px;font-size:15px;color:#2a3346}.heatmap[data-v-379e88b7]{display:grid;grid-template-columns:repeat(14,1fr);gap:3px}.cell[data-v-379e88b7]{aspect-ratio:1;border-radius:3px;background:#eef1f6}.cell.l1[data-v-379e88b7]{background:#d5e3fb}.cell.l2[data-v-379e88b7]{background:#9cc0f5}.cell.l3[data-v-379e88b7]{background:#5d8fe8}.cell.l4[data-v-379e88b7]{background:#2b5fd9}.legend[data-v-379e88b7]{display:flex;align-items:center;gap:4px;justify-content:flex-end;margin-top:10px;color:#a0a8ba;font-size:11px}.legend .cell[data-v-379e88b7]{width:12px;height:12px;aspect-ratio:auto}.card[data-v-9079c611]{margin-top:12px;background:#fff;border-radius:14px;padding:16px;box-shadow:0 2px 12px #1b2a4a0d}.card h3[data-v-9079c611]{margin:0 0 8px;font-size:15px;color:#2a3346}.hint[data-v-9079c611]{margin:0 0 12px;color:#8a93a6;font-size:13px;line-height:1.7}.input[data-v-9079c611]{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-9079c611]{display:flex;gap:10px;margin-top:6px}.flex[data-v-9079c611]{flex:1}.full[data-v-9079c611]{width:100%;margin-top:10px}.primary-btn[data-v-9079c611]{border:0;border-radius:12px;padding:12px 0;background:linear-gradient(135deg,var(--accent, #1f9d55),var(--accent-light, #34b96f));color:#fff;font-size:14px;font-weight:600;cursor:pointer}.primary-btn[data-v-9079c611]:disabled{opacity:.5}.ghost-btn[data-v-9079c611]{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-9079c611]{display:inline-block}.stepper[data-v-9079c611]{display:flex;align-items:center;gap:20px}.step-btn[data-v-9079c611]{width:44px;height:44px;border:1px solid #dbe1ec;border-radius:50%;background:#fff;color:#1f9d55;font-size:22px;cursor:pointer}.step-num[data-v-9079c611]{min-width:48px;text-align:center;font-size:26px;font-weight:700;color:#1b2a4a}.setting-row[data-v-9079c611]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #f2f4f8}.setting-title[data-v-9079c611]{font-size:15px;font-weight:600;color:#2a3346}.setting-desc[data-v-9079c611]{margin-top:2px;font-size:12px;color:#8a93a6}.switch[data-v-9079c611]{position:relative;flex-shrink:0;width:48px;height:28px;border:0;border-radius:14px;background:#d9dee8;cursor:pointer;transition:background .2s ease}.switch.on[data-v-9079c611]{background:var(--accent, #1f9d55)}.knob[data-v-9079c611]{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:left .2s ease}.switch.on .knob[data-v-9079c611]{left:23px}.user-row[data-v-9079c611]{display:flex;align-items:center;gap:12px;margin-bottom:14px}.avatar[data-v-9079c611]{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent-dark, #17663f),var(--accent, #249a5b));color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}.user-name[data-v-9079c611]{font-size:16px;font-weight:600;color:#2a3346}.msg[data-v-9079c611]{margin:10px 2px 0;font-size:13px}.msg.ok[data-v-9079c611]{color:#1f9d55}.msg.err[data-v-9079c611]{color:#d63b30}.ver-line[data-v-9079c611]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;font-size:15px;color:#2a3d33}.update-btn[data-v-9079c611]{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-9079c611]:disabled{opacity:.6}.hint.warn[data-v-9079c611]{color:#b0721a}.ver-line strong[data-v-9079c611]{color:#17663f}.ver-note[data-v-9079c611]{margin-left:8px;color:#8a93a6;font-size:12px}.ver-tap[data-v-9079c611]{cursor:pointer}.credit[data-v-9079c611]{margin:12px 0 0;color:#a0a8ba;font-size:12px;text-align:center}.theme-modes[data-v-9079c611]{display:flex;gap:8px;margin-top:4px}.mode-btn[data-v-9079c611]{flex:1;border:1px solid #dbe1ec;background:#fff;color:#3c4a66;border-radius:12px;padding:10px 0;font-size:13px;cursor:pointer}.mode-btn.active[data-v-9079c611]{border-color:var(--accent, #1f9d55);color:var(--accent, #1f9d55);background:#1f9d5514}.theme-swatches[data-v-9079c611]{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}.swatch[data-v-9079c611]{width:34px;height:34px;border-radius:50%;border:3px solid transparent;cursor:pointer;padding:0}.swatch.active[data-v-9079c611]{border-color:#1b2a4a}.swatch.custom[data-v-9079c611]{position:relative;overflow:hidden;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.swatch.custom input[data-v-9079c611]{position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;opacity:0;cursor:pointer}.admin-box[data-v-9079c611]{margin-top:12px;border-top:1px dashed #e8ebf1;padding-top:12px}.admin-title[data-v-9079c611]{margin:4px 0 8px;font-size:13px;font-weight:600;color:#2a3346}.admin-stats[data-v-9079c611]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.admin-stats div[data-v-9079c611]{background:#f6f8fc;border-radius:10px;padding:10px 4px;text-align:center}.admin-stats b[data-v-9079c611]{display:block;font-size:18px;color:#1b2a4a}.admin-stats span[data-v-9079c611]{font-size:11px;color:#8a93a6}.bl-row[data-v-9079c611]{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#fdf0ee;border-radius:10px;margin-bottom:6px}.bl-row span[data-v-9079c611]{color:#3c4a66;font-size:14px}.bl-row button[data-v-9079c611]{border:0;background:#fdeceb;color:#d63b30;border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer}.bl-empty[data-v-9079c611]{color:#8a93a6;font-size:13px;margin-bottom:8px}.bl-add[data-v-9079c611]{display:flex;gap:8px;margin-top:8px;align-items:center}.bl-add .input[data-v-9079c611]{margin-bottom:0}.msg.warn[data-v-9079c611]{color:#b0721a}.input.textarea[data-v-9079c611]{resize:vertical;min-height:84px;line-height:1.6;font-family:inherit}.changelog[data-v-9079c611]{margin-top:10px;max-height:320px;overflow-y:auto;-webkit-overflow-scrolling:touch}.cl-item[data-v-9079c611]{padding:10px 0;border-bottom:1px solid #f2f4f8}.cl-item[data-v-9079c611]:last-child{border-bottom:0}.cl-ver[data-v-9079c611]{font-size:14px;font-weight:700;color:#1b2a4a}.cl-note[data-v-9079c611]{margin-left:8px;color:#8a93a6;font-size:12px;font-weight:400}.cl-item ul[data-v-9079c611]{margin:6px 0 0;padding-left:18px;color:#5a6478;font-size:13px;line-height:1.7}.cl-edit[data-v-9079c611]{background:#f8faf9;border-radius:12px;padding:10px;margin-bottom:10px}.cl-edit-row[data-v-9079c611]{display:grid;grid-template-columns:1fr 1.6fr;gap:8px}.cl-edit .input[data-v-9079c611]{margin-bottom:8px}.cl-edit .textarea[data-v-9079c611]{min-height:64px}.app-shell[data-v-b5fe72f7]{min-height:100vh;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.app-header[data-v-b5fe72f7]{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,var(--accent-dark),var(--accent));color:#fff}.app-header h1[data-v-b5fe72f7]{margin:0;font-size:18px;font-weight:700}.sync-chip[data-v-b5fe72f7]{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-b5fe72f7]{background:#d63b3040;border-color:#fff3}.app-main[data-v-b5fe72f7]{max-width:640px;margin:0 auto;padding:0 16px 24px}.welcome-mask[data-v-b5fe72f7]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f2d1e73;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.welcome-box[data-v-b5fe72f7]{width:100%;max-width:340px;background:#fff;border-radius:20px;padding:28px 22px 20px;text-align:center;box-shadow:0 12px 40px #00000040}.welcome-emoji[data-v-b5fe72f7]{font-size:46px}.welcome-box h3[data-v-b5fe72f7]{margin:10px 0 8px;font-size:19px;color:#1b2a4a}.welcome-text[data-v-b5fe72f7]{margin:0 0 18px;color:#5a6478;font-size:14px;line-height:1.8}.welcome-text b[data-v-b5fe72f7]{color:#1f8a4c}.welcome-btn[data-v-b5fe72f7]{display:block;width:100%;box-sizing:border-box;border-radius:14px;padding:12px 0;font-size:15px;font-weight:600;cursor:pointer;margin-bottom:10px}.welcome-btn.primary[data-v-b5fe72f7]{border:0;background:linear-gradient(135deg,#1f9d55,#34b96f);color:#fff}.welcome-btn.ghost[data-v-b5fe72f7]{border:1px solid #dbe1ec;background:#fff;color:#3c4a66}.welcome-hint[data-v-b5fe72f7]{margin:4px 0 0;color:#a0a8ba;font-size:12px}:root{--bg: #eaf6ee;--ink: #17452f;--muted: #6f8a7a;--line: #dceadf;--primary: #1f9d55;--accent: #1f9d55;--accent-dark: #17663f;--accent-light: #34b96f;--card-bg: #ffffff;--text: #2a3d33;--text-strong: #1b2a4a;--text-muted: #8a93a6;--surface-muted: #f6f8fc;--border: #e8ebf1}html[data-theme=dark]{--bg: #10231a;--ink: #d7e3db;--muted: #8fa89a;--line: #2c4438;--card-bg: #1c2f26;--text: #d7e3db;--text-strong: #eef4f0;--text-muted: #8fa89a;--surface-muted: #24382e;--border: #2c4438}*{-webkit-tap-highlight-color:transparent;touch-action:manipulation}html,body{margin:0;padding:0;background:linear-gradient(180deg,#e9f7ee,#d8efdf 55%,#c9e7d2);background-attachment:fixed;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif;-webkit-font-smoothing:antialiased}html[data-theme=dark] body{background:linear-gradient(180deg,#10231a,#0d1d15 55%,#0a1711)}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)}html[data-theme=dark] .card,html[data-theme=dark] .home-card,html[data-theme=dark] .word-card,html[data-theme=dark] .word-list,html[data-theme=dark] .stat-card,html[data-theme=dark] .heatmap-card,html[data-theme=dark] .welcome-box{background:var(--card-bg);box-shadow:0 2px 12px #00000047}html[data-theme=dark] .app-header{background:linear-gradient(135deg,var(--accent-dark),var(--accent))}html[data-theme=dark] .word,html[data-theme=dark] .num,html[data-theme=dark] .word-main .word{color:var(--text-strong)}html[data-theme=dark] .hint,html[data-theme=dark] .label,html[data-theme=dark] .sentence-source,html[data-theme=dark] .source,html[data-theme=dark] .tap-hint,html[data-theme=dark] .ver-note,html[data-theme=dark] .w-tag,html[data-theme=dark] .setting-desc{color:var(--text-muted)}html[data-theme=dark] .meaning,html[data-theme=dark] .definition .meaning,html[data-theme=dark] .user-name,html[data-theme=dark] .setting-title,html[data-theme=dark] .home-title,html[data-theme=dark] .card h3,html[data-theme=dark] .heatmap-card h3{color:var(--text-strong)}html[data-theme=dark] .sentence-box,html[data-theme=dark] .w-row,html[data-theme=dark] .bl-row{background:var(--surface-muted)}html[data-theme=dark] .sentence{color:#c9d8cf}html[data-theme=dark] .example{color:#b7c6bd}html[data-theme=dark] .ghost-btn,html[data-theme=dark] .nav-btn,html[data-theme=dark] .filter-btn,html[data-theme=dark] .step-btn,html[data-theme=dark] .mode-btn,html[data-theme=dark] .welcome-btn.ghost{background:#22382d;border-color:#35513f;color:#d7e3db}html[data-theme=dark] .input,html[data-theme=dark] .search{background:#182b22;border-color:#35513f;color:#eef4f0}html[data-theme=dark] .admin-stats div{background:var(--surface-muted)}html[data-theme=dark] .admin-stats b{color:var(--text-strong)}html[data-theme=dark] .credit{color:var(--text-muted)}html[data-theme=dark] .bl-row{background:#3a2a26}html[data-theme=dark] .cl-edit{background:var(--surface-muted)}html[data-theme=dark] .cl-ver{color:var(--text-strong)}html[data-theme=dark] .cl-item ul{color:#c9d8cf}html[data-theme=dark] .rate-btn.plain{background:#24382e;color:#d7e3db}html[data-theme=dark] .word-row{background:var(--card-bg);border-bottom-color:var(--border)}html[data-theme=dark] .tab-bar{background:#0f1e16f5;border-top-color:var(--border)}html[data-theme=dark] .tab-item{color:var(--text-muted)}html[data-theme=dark] .home-num,html[data-theme=dark] .step-num{color:var(--text-strong)}html[data-theme=dark] .batch-chip{background:#22382d;color:#7fd4a2}html[data-theme=dark] .progress-bar,html[data-theme=dark] .dot{background:var(--border)}html[data-theme=dark] .pass-text,html[data-theme=dark] .pinyin{color:var(--text-muted)}html[data-theme=dark] .definitions{border-top-color:var(--border)}html[data-theme=dark] .definition+.definition{border-top-color:var(--border)}html[data-theme=dark] .pos{background:#243856;color:#9db9ff}html[data-theme=dark] .fav-btn,html[data-theme=dark] .speak-btn{background:#24382e;color:#d7e3db}html[data-theme=dark] .fav-btn.on{background:#3a3018;color:#f0a020}html[data-theme=dark] .rate-btn.danger{background:#3a2624;color:#ff8f85}html[data-theme=dark] .rate-btn.primary{background:#243856;color:#9db9ff}html[data-theme=dark] .rate-btn.success{background:#1f3a2c;color:#5fd68f}html[data-theme=dark] .unknown-btn{background:#3a2624;color:#ff8f85;border-color:#5a3a35}html[data-theme=dark] .back-top{background:#1c2f26eb;color:#7fd4a2}html[data-theme=dark] .switch{background:#35513f}html[data-theme=dark] .update-btn{background:#1f3a2c;color:#5fd68f;border-color:#35513f}html[data-theme=dark] .ver-line strong{color:var(--accent, #7fd4a2)}html[data-theme=dark] .swatch.active{border-color:var(--text-strong)}html[data-theme=dark] .bl-row span{color:var(--text)}html[data-theme=dark] .bl-row button{background:#4a2b26;color:#ff8f85}html[data-theme=dark] .w-word{color:var(--text-strong)}html[data-theme=dark] .w-py{color:var(--text-muted)}html[data-theme=dark] .w-meaning{color:#b7c6bd}html[data-theme=dark] .w-star{color:var(--text-muted)}html[data-theme=dark] .w-tag.due{background:#3a2624;color:#ff8f85}html[data-theme=dark] .cell.l0{background:#24382e}html[data-theme=dark] .filter-btn.active{background:var(--accent, #1f9d55);border-color:var(--accent, #1f9d55);color:#fff}html[data-theme=dark] .done-box h3,html[data-theme=dark] .welcome-box h3,html[data-theme=dark] .drawer .big,html[data-theme=dark] .def-meaning,html[data-theme=dark] .admin-title,html[data-theme=dark] .ver-line{color:var(--text-strong)}html[data-theme=dark] .welcome-text,html[data-theme=dark] .def-example{color:#b7c6bd}html[data-theme=dark] .welcome-hint,html[data-theme=dark] .drawer .py,html[data-theme=dark] .def-source,html[data-theme=dark] .bl-empty{color:var(--text-muted)}html[data-theme=dark] .drawer{background:var(--card-bg)}html[data-theme=dark] .drawer-head{border-bottom-color:var(--border)}html[data-theme=dark] .def-item+.def-item{border-top-color:var(--border)}html[data-theme=dark] .mini-btn{background:#22382d;border-color:#35513f;color:#d7e3db}html[data-theme=dark] .mini-btn.favOn{background:#3a3018;border-color:#5a4a22;color:#f0c56a}html[data-theme=dark] .drawer .tag{background:#243856;color:#9db9ff}html[data-theme=dark] .cl-item{border-bottom-color:var(--border)}::-webkit-scrollbar{width:0;height:0}
