.hero[data-v-5d972413]{background:linear-gradient(135deg,var(--brand-dark),var(--brand));color:#fff;margin:12px;border-radius:18px;padding:18px;box-shadow:0 8px 24px #2f8fff40;animation:pop-5d972413 .4s ease;text-shadow:0 1px 2px rgba(0,0,0,.18)}.hero-top[data-v-5d972413]{display:flex;justify-content:space-between;align-items:flex-start}.hero-id[data-v-5d972413]{display:flex;align-items:center;gap:10px;cursor:pointer}.ava[data-v-5d972413]{width:44px;height:44px;border-radius:50%;background:#ffffff2e;display:flex;align-items:center;justify-content:center;font-size:24px;overflow:hidden}.ava img[data-v-5d972413]{width:100%;height:100%;object-fit:cover}.link[data-v-5d972413]{background:none;border:none;color:var(--brand);font-size:13px;cursor:pointer}.hero .title[data-v-5d972413]{font-size:22px;font-weight:800}.hero .sub[data-v-5d972413]{font-size:13px;color:#fff;font-weight:500;opacity:1;margin-top:4px}.hero .sub b[data-v-5d972413]{color:#fff}.fam-name[data-v-5d972413]{cursor:pointer;text-decoration:underline dotted rgba(255,255,255,.6);text-underline-offset:3px}.fam-name[data-v-5d972413]:active{color:#ffe9a8}.fam-input[data-v-5d972413]{width:130px;font-size:13px;padding:3px 8px;border:1px solid rgba(255,255,255,.8);border-radius:8px;background:#fffffff2;color:#222;outline:none}.fam-save[data-v-5d972413]{color:#ffe9a8!important;font-weight:700;margin-left:4px}.stat .lab.streak[data-v-5d972413]{font-size:10px;line-height:1.3;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;opacity:.92;margin-top:3px}.hero-actions[data-v-5d972413]{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.checkin[data-v-5d972413]{background:#fff;color:var(--brand);border:none;border-radius:20px;padding:8px 16px;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 3px 10px #0000001f}.checkin[data-v-5d972413]:disabled{opacity:.7;cursor:default}.invite-code[data-v-5d972413]{display:flex;align-items:center;gap:6px;background:#ffffff2e;border:1px dashed rgba(255,255,255,.55);border-radius:20px;padding:5px 12px;font-size:12px;cursor:pointer}.invite-code[data-v-5d972413]:active{background:#ffffff4d}.ic-label[data-v-5d972413]{opacity:.85}.ic-code[data-v-5d972413]{font-weight:800;background:#ffffff38;padding:2px 8px;border-radius:10px}.checkin-hint[data-v-5d972413]{margin-top:12px;background:#ffffff2e;border:1px dashed rgba(255,255,255,.55);border-radius:10px;padding:7px 12px;font-size:12px;cursor:pointer;text-align:center}.checkin-hint[data-v-5d972413]:active{background:#ffffff4d}.checkin-hint.disabled[data-v-5d972413]{opacity:.85;cursor:default}.checkin-hint.disabled[data-v-5d972413]:active{background:#ffffff2e}.continue-btn[data-v-5d972413]{width:100%;margin-top:14px;background:#fff;color:var(--brand);border:none;border-radius:14px;padding:12px;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 3px 10px #00000026}.continue-btn[data-v-5d972413]:active{transform:scale(.98)}.super-card[data-v-5d972413]{background:var(--card, #fff);color:var(--text, #1f2937);margin-top:14px;text-shadow:none}.super-card .card-title[data-v-5d972413]{color:var(--text, #1f2937)}.super-card .muted[data-v-5d972413]{color:var(--muted, #6b7280)}.tpath[data-v-5d972413]{display:flex;flex-direction:column}.tpath-item[data-v-5d972413]{display:flex;align-items:center;gap:12px;padding:12px 8px;border:none;background:none;border-bottom:1px solid var(--line);cursor:pointer;text-align:left}.tpath-item[data-v-5d972413]:last-child{border-bottom:none}.tpath-item[data-v-5d972413]:active{background:var(--bg-soft)}.tp-ico[data-v-5d972413]{font-size:22px;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-soft)}.tp-ico.done[data-v-5d972413]{background:var(--ok-tint, #e6f7ee)}.tp-ico.doing[data-v-5d972413]{background:var(--brand-tint, #eef6ff)}.tp-body[data-v-5d972413]{flex:1}.tp-name[data-v-5d972413]{font-weight:700;font-size:15px}.tp-state[data-v-5d972413]{font-size:12px;color:var(--muted);margin-top:2px}.tp-state.done[data-v-5d972413]{color:var(--ok)}.tp-state.doing[data-v-5d972413]{color:var(--brand)}.tp-arrow[data-v-5d972413]{color:var(--muted);font-size:20px}.stats[data-v-5d972413]{display:flex;gap:10px;margin-top:16px}.stat[data-v-5d972413]{flex:1;background:#ffffff29;border-radius:12px;padding:10px;text-align:center}.stat .num[data-v-5d972413]{font-size:16px;font-weight:800}.stat .lab[data-v-5d972413]{font-size:11px;opacity:.9;margin-top:2px}.badges[data-v-5d972413]{display:flex;flex-wrap:wrap;gap:8px}.ach[data-v-5d972413]{background:var(--warn-tint);color:var(--warn);border-radius:16px;padding:5px 10px;font-size:12px;font-weight:600}.pk-btn[data-v-5d972413]{width:100%;margin-top:12px}.grid[data-v-5d972413]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mod[data-v-5d972413]{position:relative;text-align:left;border:2px solid var(--line);background:var(--bg-soft);border-radius:14px;padding:12px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.mod[data-v-5d972413]:active{transform:scale(.97)}.mod[data-v-5d972413]:hover{border-color:var(--brand);box-shadow:0 6px 16px #2f8fff26}.mi[data-v-5d972413]{font-size:24px}.mn[data-v-5d972413]{font-weight:700;margin-top:4px}.md[data-v-5d972413]{font-size:11px;color:var(--muted);margin-top:2px}.mod-badge[data-v-5d972413]{position:absolute;top:6px;right:6px;background:var(--danger);color:#fff;font-size:10px;padding:1px 6px;border-radius:10px}.toast[data-v-5d972413]{position:fixed;left:50%;bottom:90px;transform:translate(-50%);background:#141823e6;color:#fff;padding:10px 18px;border-radius:22px;font-size:14px;z-index:60}.toast-enter-active[data-v-5d972413],.toast-leave-active[data-v-5d972413]{transition:all .3s ease}.toast-enter-from[data-v-5d972413],.toast-leave-to[data-v-5d972413]{opacity:0;transform:translate(-50%) translateY(10px)}@keyframes pop-5d972413{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.remind-card[data-v-5d972413]{border-left:4px solid var(--brand);background:var(--brand-tint, #eef6ff)}.remind-card.done[data-v-5d972413]{border-left-color:var(--ok);background:var(--ok-tint, #e6f7ee)}.remind-head[data-v-5d972413]{display:flex;flex-direction:column;gap:2px}.remind-title[data-v-5d972413]{font-weight:800;font-size:15px;color:var(--text)}.remind-sub[data-v-5d972413]{font-size:12px;color:var(--muted)}.remind-items[data-v-5d972413]{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.remind-tag[data-v-5d972413]{border:none;background:#fff;color:var(--brand);border-radius:16px;padding:5px 12px;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 1px 4px #0000000f}.remind-tag[data-v-5d972413]:active{transform:scale(.96)}.scan-hero[data-v-5d972413]{display:block;border:2px solid var(--brand);background:var(--brand-tint, #eef6ff);cursor:pointer}.scan-main[data-v-5d972413]{display:flex;align-items:flex-start;gap:12px}.scan-ico[data-v-5d972413]{flex-shrink:0;line-height:1;color:var(--brand)}.scan-info[data-v-5d972413]{flex:1;min-width:0}.scan-title[data-v-5d972413]{font-size:17px;font-weight:800;color:var(--brand)}.scan-desc[data-v-5d972413]{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.5}.scan-progress[data-v-5d972413]{margin-top:6px}.scan-btn[data-v-5d972413]{width:100%;margin-top:12px}.reason-picker[data-v-0f49164f]{margin-top:10px;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;padding:10px}.rp-title[data-v-0f49164f]{font-size:13px;font-weight:700;margin-bottom:8px}.rp-chips[data-v-0f49164f]{display:flex;flex-wrap:wrap;gap:6px}.rp-chip[data-v-0f49164f]{border:1px solid var(--line-strong);background:#fff;border-radius:14px;padding:6px 12px;font-size:13px;cursor:pointer}.rp-chip.on[data-v-0f49164f]{opacity:.6}.rp-done[data-v-0f49164f]{font-size:12px;color:var(--ok);margin-top:6px}.topbar[data-v-291e1ed1]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.seg.sub[data-v-291e1ed1]{display:flex;gap:6px;margin:0 0 12px}.seg.sub button[data-v-291e1ed1]{flex:1;padding:9px;border:1px solid var(--line);background:var(--bg-soft);border-radius:12px;cursor:pointer;font-size:13px}.seg.sub button.on[data-v-291e1ed1]{background:var(--brand);color:#fff;border-color:var(--brand)}.progbar[data-v-291e1ed1]{height:6px;background:var(--line);border-radius:6px;margin:4px 0 14px;overflow:hidden}.progfill[data-v-291e1ed1]{height:100%;background:linear-gradient(90deg,var(--brand),var(--accent));transition:width .25s ease}.flashcard[data-v-291e1ed1]{position:relative;min-height:300px;display:flex;align-items:center;justify-content:center;cursor:pointer;text-align:center;perspective:1000px;transition:transform .3s ease;-webkit-user-select:none;user-select:none}.face[data-v-291e1ed1]{backface-visibility:hidden;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.big[data-v-291e1ed1]{font-size:34px;font-weight:800;color:var(--brand)}.ph[data-v-291e1ed1]{color:var(--muted);margin-top:6px;font-size:15px}.q[data-v-291e1ed1]{font-size:26px;font-weight:800;color:var(--brand);margin-bottom:14px}.speak[data-v-291e1ed1]{position:absolute;top:10px;right:10px;font-size:20px;background:none;border:none;cursor:pointer;z-index:2}.slow[data-v-291e1ed1]{position:absolute;top:10px;right:48px;font-size:18px;background:none;border:none;cursor:pointer;z-index:2}.opts[data-v-291e1ed1]{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.opt[data-v-291e1ed1]{border:2px solid var(--line);background:var(--bg-soft);border-radius:14px;padding:16px 8px;font-size:15px;cursor:pointer}.opt.correct[data-v-291e1ed1]{border-color:var(--ok);background:#e7f7ec;color:var(--ok)}.opt.wrong[data-v-291e1ed1]{border-color:var(--danger);background:#fdecea;color:var(--danger)}.opt.dim[data-v-291e1ed1]{opacity:.5}.fb[data-v-291e1ed1]{margin-top:12px;font-weight:700}.fb.ok[data-v-291e1ed1]{color:var(--ok)}.fb.no[data-v-291e1ed1]{color:var(--danger)}.hint[data-v-291e1ed1]{text-align:center;font-size:12px;margin-top:10px}.topbar[data-v-ec985fc4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.qcard[data-v-ec985fc4]{text-align:center}.prompt[data-v-ec985fc4]{display:flex;align-items:center;justify-content:center;gap:10px}.big[data-v-ec985fc4]{font-size:28px;font-weight:700;color:var(--brand)}.sentence[data-v-ec985fc4]{font-size:13px;margin-top:10px}.speak[data-v-ec985fc4]{background:none;border:none;font-size:22px;cursor:pointer}.speak.big[data-v-ec985fc4]{font-size:18px;padding:14px 20px;border:1px solid var(--line);border-radius:12px}.opts[data-v-ec985fc4]{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.opt[data-v-ec985fc4]{padding:16px 8px;font-size:16px}.opt.correct[data-v-ec985fc4]{background:#e7f7ec;border-color:var(--ok);color:var(--ok);animation:pop-ec985fc4 .3s ease}.opt.wrong[data-v-ec985fc4]{background:#fdecea;border-color:var(--danger);color:var(--danger);animation:shake-ec985fc4 .35s ease}.opt.dim[data-v-ec985fc4]{opacity:.5}.fb[data-v-ec985fc4]{text-align:center;margin-top:14px;font-weight:700;padding:10px;border-radius:12px}.fb.ok[data-v-ec985fc4]{color:var(--ok);background:#e7f7ec}.fb.no[data-v-ec985fc4]{color:var(--danger);background:#fdecea}.auto[data-v-ec985fc4]{font-size:12px;font-weight:400;opacity:.8;margin-top:4px}@keyframes pop-ec985fc4{0%{transform:scale(.9)}60%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes shake-ec985fc4{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.sm[data-v-ec985fc4]{padding:6px 12px;font-size:13px}.topbar[data-v-e834cff6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.tb-title[data-v-e834cff6]{font-size:16px;font-weight:800;flex:1;text-align:center}.diff-label[data-v-e834cff6]{font-size:13px;font-weight:700;margin-bottom:6px}.spell-diff[data-v-e834cff6]{display:flex;flex-wrap:wrap;gap:4px}.dl[data-v-e834cff6]{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:28px;padding:0 3px;border-radius:6px;font-size:18px;font-weight:700;background:var(--bg-soft)}.dl-ok[data-v-e834cff6]{color:var(--ok);background:var(--ok-tint)}.dl-extra[data-v-e834cff6]{color:var(--danger);background:var(--danger-tint)}.dl-miss[data-v-e834cff6]{color:var(--danger);background:var(--danger-tint);border-bottom:2px solid var(--danger)}.lab[data-v-e834cff6]{font-size:13px;color:var(--muted)}.zh[data-v-e834cff6]{font-size:26px;font-weight:800;color:var(--brand);margin-top:6px}.speak[data-v-e834cff6]{background:none;border:none;cursor:pointer;font-size:22px;vertical-align:middle;margin-left:6px}.zh-en[data-v-e834cff6]{color:var(--muted);margin-top:4px}.hint[data-v-e834cff6]{font-size:13px;margin-top:10px}.field[data-v-e834cff6]{width:100%;box-sizing:border-box;padding:14px;font-size:18px;border:1px solid var(--line);border-radius:12px;margin-top:14px;outline:none}.field[data-v-e834cff6]:focus{border-color:var(--brand)}.row[data-v-e834cff6]{display:flex}.link[data-v-e834cff6]{background:none;border:none;color:var(--brand);font-size:13px;margin-top:10px;cursor:pointer;width:100%;text-align:center}.card.ok[data-v-e834cff6]{background:#e7f7ec;border-color:var(--ok)}.card.no[data-v-e834cff6]{background:#fdecea;border-color:var(--danger)}.auto[data-v-e834cff6]{text-align:center;font-size:12px;margin-top:10px}.sm[data-v-e834cff6]{padding:6px 12px;font-size:13px}.topbar[data-v-86431229]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.board[data-v-86431229]{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 12px}.col[data-v-86431229]{display:flex;flex-direction:column;gap:10px}.cell[data-v-86431229]{background:#fff;border:2px solid var(--line, var(--line-strong));border-radius:12px;padding:16px 10px;text-align:center;font-size:16px;cursor:pointer;box-shadow:0 2px 8px #1f24300d;-webkit-user-select:none;user-select:none}.cell.zh[data-v-86431229]{background:var(--bg-soft)}.cell.sel[data-v-86431229]{border-color:var(--brand);box-shadow:0 0 0 3px #2f8fff2e}.cell.ok[data-v-86431229]{border-color:var(--ok);background:#e7f7ec}.cell.no[data-v-86431229]{border-color:var(--danger);background:#fdecea}.wrong-hint[data-v-86431229]{position:fixed;left:50%;top:70px;transform:translate(-50%);background:var(--danger);color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;z-index:60;box-shadow:0 4px 14px #ff3b3066;animation:pop .3s ease}.cell.faded[data-v-86431229]{opacity:.12;transform:scale(.96);pointer-events:none;animation:fadeOut-86431229 .5s ease forwards}@keyframes fadeOut-86431229{0%{opacity:1}to{opacity:.12}}.sm[data-v-86431229]{padding:6px 12px;font-size:13px}.topbar[data-v-c80b9380]{display:flex;align-items:center;gap:8px;padding:14px 16px 0}.topbar .back[data-v-c80b9380]{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text)}.topbar .t[data-v-c80b9380]{font-size:18px;font-weight:700}.hub[data-v-c80b9380]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hub-item[data-v-c80b9380]{position:relative;text-align:left;border:2px solid var(--line);background:var(--bg-soft);border-radius:16px;padding:16px 14px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.hub-item[data-v-c80b9380]:active{transform:scale(.97)}.hub-item[data-v-c80b9380]:hover{border-color:var(--brand);box-shadow:0 6px 16px #2f8fff26}.hub-badge[data-v-c80b9380]{position:absolute;top:8px;right:8px;background:var(--brand-tint);color:var(--brand);font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px}.hi[data-v-c80b9380]{font-size:30px}.hn[data-v-c80b9380]{font-weight:800;font-size:16px;margin-top:6px}.hd[data-v-c80b9380]{font-size:12px;color:var(--muted);margin-top:2px}.hub-go[data-v-c80b9380]{font-size:12px;font-weight:700;color:var(--brand);margin-top:8px}.linkback[data-v-c80b9380]{background:none;border:none;color:var(--muted);font-size:14px;cursor:pointer;padding:8px 16px 0}.modes[data-v-c80b9380]{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.mode[data-v-c80b9380]{text-align:left;border:2px solid var(--line);background:var(--bg-soft);border-radius:14px;padding:12px;cursor:pointer}.mode.active[data-v-c80b9380]{border-color:var(--brand);background:var(--brand-tint)}.mi[data-v-c80b9380]{font-size:22px}.mn[data-v-c80b9380]{font-weight:700;margin-top:4px}.md[data-v-c80b9380]{font-size:12px;color:var(--muted);margin-top:2px}.ranges[data-v-c80b9380]{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.ranges .sm[data-v-c80b9380]{padding:8px 12px;font-size:14px;margin:0;width:auto}.ranges .sm.active[data-v-c80b9380]{background:var(--brand);color:#fff}.pick[data-v-c80b9380]{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.chip[data-v-c80b9380]{border:1px solid var(--line-strong);background:#fff;border-radius:20px;padding:8px 14px;font-size:14px;cursor:pointer}.chip.on[data-v-c80b9380]{background:var(--brand);color:#fff;border-color:var(--brand)}.switch[data-v-c80b9380]{display:flex;align-items:center;gap:8px;font-size:14px;margin-top:12px;cursor:pointer}.topbar[data-v-fc4c9e9c]{display:flex;align-items:center;gap:8px;padding:14px 16px 0}.topbar .back[data-v-fc4c9e9c]{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text)}.topbar .t[data-v-fc4c9e9c]{font-size:18px;font-weight:700}.topbtn[data-v-fc4c9e9c]{margin-left:auto;background:var(--bg-soft);border:1px solid var(--line-strong);border-radius:16px;padding:5px 12px;font-size:12px;font-weight:700;color:var(--brand);cursor:pointer}.undo-btn[data-v-fc4c9e9c]{margin-top:12px;background:none;border:1px dashed var(--line-strong);border-radius:18px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--brand);cursor:pointer}.undo-btn[data-v-fc4c9e9c]:active{background:var(--brand-tint)}.pick[data-v-fc4c9e9c]{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.chip[data-v-fc4c9e9c]{border:1px solid var(--line-strong);background:#fff;border-radius:20px;padding:7px 14px;font-size:14px;cursor:pointer}.chip.on[data-v-fc4c9e9c]{background:var(--brand);color:#fff;border-color:var(--brand)}.progbar[data-v-fc4c9e9c]{height:8px;background:var(--line);border-radius:6px;margin:4px 16px 0;overflow:hidden}.progfill[data-v-fc4c9e9c]{height:100%;background:linear-gradient(90deg,var(--brand),var(--accent));transition:width .25s ease}.progtxt[data-v-fc4c9e9c]{font-size:12px;margin:6px 16px 0}.resume[data-v-fc4c9e9c]{color:var(--ok)}.scan[data-v-fc4c9e9c]{text-align:center;animation:slideIn-fc4c9e9c .3s ease;min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center}.speak.big[data-v-fc4c9e9c]{font-size:22px;background:var(--brand-tint);border:none;border-radius:50%;width:48px;height:48px;cursor:pointer;margin-bottom:8px}.word[data-v-fc4c9e9c]{font-size:36px;font-weight:800;color:var(--brand);cursor:pointer}.ph[data-v-fc4c9e9c]{color:var(--muted);margin-top:4px}.tts-hint[data-v-fc4c9e9c]{color:var(--warn);font-size:12px;margin-top:6px}.zh[data-v-fc4c9e9c]{font-size:20px;margin-top:10px}.hint[data-v-fc4c9e9c]{color:var(--muted);font-size:13px;margin-top:10px;cursor:pointer}.live-counts[data-v-fc4c9e9c]{display:flex;gap:8px;justify-content:center;margin:14px 0 4px}.lc[data-v-fc4c9e9c]{font-size:13px;font-weight:600;border-radius:14px;padding:6px 12px;color:#fff}.lc b[data-v-fc4c9e9c]{font-size:15px}.lc.a[data-v-fc4c9e9c]{background:var(--ok)}.lc.b[data-v-fc4c9e9c]{background:var(--warn)}.lc.c[data-v-fc4c9e9c]{background:var(--danger)}.cls[data-v-fc4c9e9c]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:22px;width:100%}.cb[data-v-fc4c9e9c]{border:none;border-radius:14px;padding:16px 4px;font-size:16px;font-weight:700;cursor:pointer;color:#fff;line-height:1.3;transition:transform .12s ease}.cb small[data-v-fc4c9e9c]{font-weight:400;font-size:12px;opacity:.9}.cb[data-v-fc4c9e9c]:active{transform:scale(.95)}.cb.a[data-v-fc4c9e9c]{background:var(--ok)}.cb.b[data-v-fc4c9e9c]{background:var(--warn)}.cb.c[data-v-fc4c9e9c]{background:var(--danger)}.tip[data-v-fc4c9e9c]{font-size:12px;margin-top:14px}.mutebtn[data-v-fc4c9e9c]{margin-top:10px;background:none;border:1px solid var(--line-strong);border-radius:20px;padding:6px 14px;font-size:13px;cursor:pointer;color:var(--muted)}.cls-counts[data-v-fc4c9e9c]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:14px 0}.cc[data-v-fc4c9e9c]{border:none;border-radius:14px;padding:14px 4px;font-size:14px;font-weight:700;cursor:pointer;color:#fff;line-height:1.4}.cc b[data-v-fc4c9e9c]{font-size:20px}.cc.a[data-v-fc4c9e9c]{background:var(--ok)}.cc.b[data-v-fc4c9e9c]{background:var(--warn)}.cc.c[data-v-fc4c9e9c]{background:var(--danger)}.class-list[data-v-fc4c9e9c]{text-align:left;border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:8px 0 4px;max-height:240px;overflow:auto}.cl-head[data-v-fc4c9e9c]{display:flex;align-items:center;gap:6px;font-size:14px;margin-bottom:8px}.cl-head .link[data-v-fc4c9e9c]{margin-left:auto}.cl-toolbar[data-v-fc4c9e9c]{display:flex;gap:8px;margin-bottom:8px}.cl-search[data-v-fc4c9e9c]{flex:1;padding:8px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;outline:none}.cl-search[data-v-fc4c9e9c]:focus{border-color:var(--brand)}.cl-sort[data-v-fc4c9e9c]{border:1px solid var(--line-strong);background:var(--bg-soft);border-radius:10px;padding:0 12px;font-size:13px;font-weight:700;cursor:pointer;color:var(--brand)}.cw[data-v-fc4c9e9c]{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line);font-size:15px}.cw-play[data-v-fc4c9e9c]{background:none;border:none;cursor:pointer;font-size:16px;flex:none}.cw-en[data-v-fc4c9e9c]{font-weight:700;color:var(--brand)}.cw-zh[data-v-fc4c9e9c]{color:var(--text)}.cw-meta[data-v-fc4c9e9c]{color:var(--muted);font-size:12px;font-style:normal}.cw-cls[data-v-fc4c9e9c]{margin-left:auto;font-size:11px;font-weight:700;padding:1px 8px;border-radius:10px;color:#fff;flex:none}.cw-cls.A[data-v-fc4c9e9c]{background:var(--ok)}.cw-cls.B[data-v-fc4c9e9c]{background:var(--warn)}.cw-cls.C[data-v-fc4c9e9c]{background:var(--danger)}.empty-hint[data-v-fc4c9e9c]{text-align:center;color:var(--muted);font-size:13px;padding:14px 0}.rec-overlay[data-v-fc4c9e9c]{position:fixed;top:0;right:0;bottom:0;left:0;background:#14182373;display:flex;align-items:center;justify-content:center;z-index:70;padding:20px}.rec-card[data-v-fc4c9e9c]{background:#fff;border-radius:20px;padding:22px 18px;width:100%;max-width:360px;box-shadow:var(--shadow-lg);animation:slideIn-fc4c9e9c .25s ease}.rec-title[data-v-fc4c9e9c]{font-size:19px;font-weight:800;text-align:center;color:var(--brand)}.rec-sub[data-v-fc4c9e9c]{font-size:13px;color:var(--muted);text-align:center;margin:8px 0 14px}.rec-tiers[data-v-fc4c9e9c]{display:flex;flex-direction:column;gap:8px}.rec-tier[data-v-fc4c9e9c]{display:flex;align-items:center;justify-content:space-between;border:2px solid var(--line);background:var(--bg-soft);border-radius:14px;padding:12px 14px;cursor:pointer;text-align:left}.rec-tier.rec[data-v-fc4c9e9c]{border-color:var(--brand);background:var(--brand-tint)}.rt-name[data-v-fc4c9e9c]{font-weight:800;font-size:15px}.rt-badge[data-v-fc4c9e9c]{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;background:var(--brand);color:#fff;padding:1px 8px;border-radius:10px}.rt-desc[data-v-fc4c9e9c]{font-size:12px;color:var(--muted)}@keyframes slideIn-fc4c9e9c{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.topbar[data-v-b082ee5d]{display:flex;align-items:center;gap:8px;padding:14px 16px 0}.topbar .back[data-v-b082ee5d]{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text)}.topbar .t[data-v-b082ee5d]{font-size:18px;font-weight:700}.grades[data-v-b082ee5d]{display:flex;gap:8px;padding:12px 16px;flex-wrap:wrap}.gchip[data-v-b082ee5d]{border:1px solid var(--line-strong);background:#fff;border-radius:20px;padding:7px 16px;font-size:14px;cursor:pointer}.gchip.on[data-v-b082ee5d]{background:var(--brand);color:#fff;border-color:var(--brand)}.big[data-v-b082ee5d]{margin:12px}.big-name[data-v-b082ee5d]{font-weight:700;font-size:16px;margin-bottom:8px}.mid[data-v-b082ee5d]{border-top:1px dashed var(--line);padding:10px 0}.mid-name[data-v-b082ee5d]{font-size:13px;color:var(--muted);margin-bottom:8px}.smalls[data-v-b082ee5d]{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.small[data-v-b082ee5d]{border:2px solid var(--line);background:var(--bg-soft);border-radius:12px;padding:10px 2px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;transition:transform .12s ease}.small[data-v-b082ee5d]:active{transform:scale(.95)}.small.done[data-v-b082ee5d]{border-color:var(--ok);background:#e7f7ec}.small.locked[data-v-b082ee5d]{opacity:.45;cursor:not-allowed}.sn[data-v-b082ee5d]{font-size:16px;font-weight:700}.st[data-v-b082ee5d]{font-size:10px;color:var(--warn)}.lk[data-v-b082ee5d]{font-size:12px}.qa[data-v-b082ee5d]{animation:slideIn-b082ee5d .3s ease}.prog[data-v-b082ee5d]{font-size:13px;color:var(--muted);margin-bottom:12px}.prompt[data-v-b082ee5d]{text-align:center;font-size:22px;font-weight:700;color:var(--brand);margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:8px}.speak[data-v-b082ee5d]{background:none;border:none;font-size:20px;cursor:pointer}.opts[data-v-b082ee5d]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fb[data-v-b082ee5d]{text-align:center;margin-top:14px;font-weight:700;padding:10px;border-radius:12px}.fb.ok[data-v-b082ee5d]{color:var(--ok);background:#e7f7ec}.fb.no[data-v-b082ee5d]{color:var(--danger);background:#fdecea}.auto[data-v-b082ee5d]{font-size:12px;font-weight:400;opacity:.85;margin-top:4px}.opt[data-v-b082ee5d]{border:2px solid var(--line);background:var(--bg-soft);border-radius:12px;padding:16px 8px;font-size:16px;cursor:pointer}.opt.correct[data-v-b082ee5d]{background:#e7f7ec;border-color:var(--ok);color:var(--ok);animation:pop-b082ee5d .3s ease}.opt.wrong[data-v-b082ee5d]{background:#fdecea;border-color:var(--danger);color:var(--danger);animation:shake-b082ee5d .35s ease}.opt.dim[data-v-b082ee5d]{opacity:.5}.spellbox[data-v-b082ee5d]{display:flex;flex-direction:column;gap:12px;align-items:center}.spellbox .zh[data-v-b082ee5d]{font-size:18px;color:var(--text)}.spellbox .ph[data-v-b082ee5d]{margin-left:8px;color:var(--muted);font-size:14px}.spellinput[data-v-b082ee5d]{width:100%;max-width:320px;padding:14px 12px;font-size:18px;border:2px solid var(--line);border-radius:12px;text-align:center;outline:none}.spellinput[data-v-b082ee5d]:focus{border-color:var(--brand)}.spellgo[data-v-b082ee5d]{padding:12px 28px;font-size:16px}.yours[data-v-b082ee5d]{font-size:13px;font-weight:400;opacity:.9}.stars-big[data-v-b082ee5d]{font-size:28px;color:var(--warn);letter-spacing:4px}@keyframes pop-b082ee5d{0%{transform:scale(.9)}60%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes shake-b082ee5d{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes slideIn-b082ee5d{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.frog-wrap[data-v-49e727a9]{display:flex;flex-direction:column;align-items:center;gap:8px;animation:frogPop-49e727a9 .5s cubic-bezier(.34,1.56,.64,1) both}.frog-bubble[data-v-49e727a9]{background:#fff;color:var(--text);border:1px solid var(--line);border-radius:16px;padding:8px 14px;font-size:14px;font-weight:700;box-shadow:var(--shadow-sm);position:relative;max-width:200px;text-align:center}.frog-bubble[data-v-49e727a9]:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}@keyframes frogPop-49e727a9{0%{opacity:0;transform:translateY(16px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.topbar[data-v-32c21eaf]{display:flex;align-items:center;gap:8px;padding:14px 16px 0}.topbar .back[data-v-32c21eaf]{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text)}.topbar .t[data-v-32c21eaf]{font-size:18px;font-weight:700}.sc[data-v-32c21eaf]{animation:slideIn-32c21eaf .3s ease;position:relative}.reason-overlay[data-v-32c21eaf]{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}.head[data-v-32c21eaf]{text-align:center}.speak[data-v-32c21eaf]{position:absolute;top:10px;right:10px;font-size:20px;background:var(--brand-tint);border:none;border-radius:50%;width:40px;height:40px;cursor:pointer}.en[data-v-32c21eaf]{font-size:30px;font-weight:800;color:var(--brand)}.en.letters[data-v-32c21eaf]{color:var(--muted);font-weight:700}.ph[data-v-32c21eaf]{color:var(--muted);margin-top:2px;font-size:13px}.ph-hint-btn[data-v-32c21eaf]{margin-left:6px;background:none;border:1px dashed var(--line-strong);border-radius:12px;padding:2px 10px;font-size:12px;cursor:pointer;color:var(--brand)}.ph-hint-box[data-v-32c21eaf]{margin-top:8px;background:var(--brand-tint);border-radius:10px;padding:8px 12px;font-size:13px;color:var(--brand-dark)}.zh[data-v-32c21eaf]{font-size:18px;margin-top:6px}.mem[data-v-32c21eaf]{background:var(--brand-tint);border-radius:12px;padding:10px 12px;margin:10px 0}.mem-block[data-v-32c21eaf]{background:linear-gradient(135deg,#fff7e6,#fff1d6);border:1px solid #ffe0a3;border-radius:14px;padding:12px 14px;margin:12px 0}.mem-head[data-v-32c21eaf]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mem-title[data-v-32c21eaf]{font-size:15px;font-weight:800;color:#b8860b}.mem-method[data-v-32c21eaf]{font-size:12px;padding:2px 8px;border-radius:10px;background:#ffe9b0;color:#8a6d1e}.mem-swap[data-v-32c21eaf]{margin-left:auto;font-size:12px;padding:4px 10px;border:1px solid #ffcf66;border-radius:12px;background:#fff;color:#b8860b;cursor:pointer}.mem-swap[data-v-32c21eaf]:disabled{opacity:.5;cursor:default}.mem-sentence[data-v-32c21eaf]{font-size:15px;line-height:1.5;margin:8px 0 6px;color:#5a4a1e;font-weight:600}.mem-parts[data-v-32c21eaf]{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.mem-part[data-v-32c21eaf]{font-size:12px;background:#fff;border:1px solid #ffe0a3;border-radius:8px;padding:3px 8px;color:#6b5a2a}.mem-part b[data-v-32c21eaf]{color:#b8860b}.mem-part i[data-v-32c21eaf]{font-style:normal;color:#8a7a4a;margin-left:2px}.mem-self[data-v-32c21eaf]{font-style:normal;font-size:10px;background:#f0e0c0;color:#8a6d1e;border-radius:6px;padding:0 4px;margin-left:3px}.mem-note[data-v-32c21eaf]{font-size:12px;color:#8a7a4a;margin:4px 0 0}.lab[data-v-32c21eaf]{font-size:13px;color:var(--muted);margin-bottom:8px}.txt[data-v-32c21eaf]{font-size:14px}.steps[data-v-32c21eaf]{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0}.step[data-v-32c21eaf]{font-size:11px;padding:4px 8px;border-radius:10px;background:var(--bg-soft);color:var(--muted)}.step.on[data-v-32c21eaf]{background:var(--brand);color:#fff}.step.done[data-v-32c21eaf]{background:#e7f7ec;color:var(--ok)}.block[data-v-32c21eaf]{border-top:1px solid var(--line);padding-top:12px}.mic[data-v-32c21eaf]{display:block;margin:6px auto;font-size:16px;padding:14px 22px;border:none;border-radius:16px;background:linear-gradient(135deg,var(--brand-dark),var(--brand));color:#fff;cursor:pointer;box-shadow:0 6px 16px #2f8fff4d}.mic.on[data-v-32c21eaf]{animation:pulse-32c21eaf 1s infinite}.mic.busy[data-v-32c21eaf]{opacity:.8;cursor:default}.mic[data-v-32c21eaf]:disabled{opacity:.6}.opts[data-v-32c21eaf]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.opt[data-v-32c21eaf]{border:2px solid var(--line);background:var(--bg-soft);border-radius:14px;padding:16px 8px;font-size:15px;cursor:pointer}.opt.correct[data-v-32c21eaf]{border-color:var(--ok);background:#e7f7ec;color:var(--ok)}.opt.wrong[data-v-32c21eaf]{border-color:var(--danger);background:#fdecea;color:var(--danger)}.opt.dim[data-v-32c21eaf]{opacity:.5}.answer[data-v-32c21eaf]{min-height:44px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:8px;border:1px dashed var(--line-strong);border-radius:12px;margin-bottom:10px}.ach[data-v-32c21eaf]{font-size:18px;font-weight:700;background:var(--brand-tint);color:var(--brand);border-radius:8px;padding:2px 8px;cursor:pointer}.ph2[data-v-32c21eaf]{color:var(--muted);font-size:13px}.tiles[data-v-32c21eaf]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.tile[data-v-32c21eaf]{font-size:18px;font-weight:700;width:40px;height:44px;border:2px solid var(--line);background:#fff;border-radius:10px;cursor:pointer}.tile.used[data-v-32c21eaf]{opacity:.25;pointer-events:none}.sentence[data-v-32c21eaf]{font-size:17px;margin:8px 0 12px;line-height:1.5}.field[data-v-32c21eaf]{width:100%;box-sizing:border-box;padding:12px;font-size:16px;border:1px solid var(--line);border-radius:12px;outline:none;margin-bottom:12px}.field[data-v-32c21eaf]:focus{border-color:var(--brand)}.fb[data-v-32c21eaf]{text-align:center;margin-top:12px;font-weight:700;padding:10px;border-radius:12px}.fb.ok[data-v-32c21eaf]{color:var(--ok);background:#e7f7ec}.fb.no[data-v-32c21eaf]{color:var(--danger);background:#fdecea}.auto[data-v-32c21eaf]{text-align:center;font-size:12px;margin-top:8px}.link[data-v-32c21eaf]{background:none;border:none;color:var(--brand);font-size:14px;margin-top:10px;cursor:pointer;width:100%}.row2[data-v-32c21eaf]{display:flex;gap:10px;justify-content:center;margin-top:8px}.tip[data-v-32c21eaf]{font-size:12px;text-align:center}.speak.big[data-v-32c21eaf]{display:inline-block;font-size:16px;padding:12px 18px;border:1px solid var(--line);border-radius:14px;background:var(--brand-tint);color:var(--brand);cursor:pointer;margin:6px auto 0}.score[data-v-32c21eaf]{text-align:center;font-weight:700;color:var(--brand);margin-top:8px;font-size:15px}.peek[data-v-32c21eaf]{background:none;border:1px dashed var(--line-strong);border-radius:16px;padding:6px 14px;font-size:13px;cursor:pointer;color:var(--muted);margin:12px auto 0;display:block}.encourage[data-v-32c21eaf]{padding:30px 20px}.enc-title[data-v-32c21eaf]{font-size:22px;font-weight:800;color:var(--brand);margin:8px 0}@keyframes slideIn-32c21eaf{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-32c21eaf{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.menu[data-v-7405f069]{padding:4px 4px 20px}.hero-pk[data-v-7405f069]{background:linear-gradient(135deg,var(--accent-deep),#b3244f);color:#fff;animation:pop-7405f069 .4s ease;text-shadow:0 1px 2px rgba(0,0,0,.18)}.hp-title[data-v-7405f069]{font-size:19px;font-weight:800}.hp-sub[data-v-7405f069]{font-size:13px;opacity:.92;margin-top:4px}.btn.big[data-v-7405f069]{font-size:18px;line-height:1.3;padding:18px;margin:12px;width:calc(100% - 24px)}.sub2[data-v-7405f069]{font-size:12px;font-weight:400;opacity:.9}.invite-card .label[data-v-7405f069]{margin:0 0 10px;font-size:14px;font-weight:700}.tip2[data-v-7405f069]{font-size:12px;color:var(--muted);margin:8px 2px 0}.pick[data-v-7405f069]{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip[data-v-7405f069]{border:1px solid var(--line-strong);background:#fff;border-radius:20px;padding:8px 14px;font-size:14px;cursor:pointer}.chip.on[data-v-7405f069]{background:var(--brand);color:#fff;border-color:var(--brand)}.fs-detail[data-v-7405f069]{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}.reconnect-mask[data-v-7405f069]{position:fixed;top:0;right:0;bottom:0;left:0;background:#1418238c;display:flex;align-items:center;justify-content:center;z-index:80}.reconnect-box[data-v-7405f069]{background:#fff;border-radius:18px;padding:24px;width:calc(100% - 56px);max-width:320px;text-align:center;box-shadow:0 12px 40px #0003}.rm-title[data-v-7405f069]{font-size:15px;font-weight:700;margin:12px 0 16px}.reconnect-box .btn[data-v-7405f069]{width:100%;margin:6px 0}.mid[data-v-7405f069]{padding-top:14vh}.lobby[data-v-7405f069]{padding:6vh 12px 0}.spinner[data-v-7405f069]{width:46px;height:46px;border:5px solid #eee;border-top-color:var(--accent);border-radius:50%;margin:0 auto 16px;animation:spin-7405f069 .8s linear infinite}.mt[data-v-7405f069]{font-size:18px;font-weight:700}.ms[data-v-7405f069]{color:var(--muted);font-size:13px;margin-top:8px}.code-box[data-v-7405f069]{font-size:38px;font-weight:800;letter-spacing:8px;color:var(--accent-deep);background:var(--accent-tint);border:2px dashed var(--accent);border-radius:16px;padding:16px;margin:18px 12px;cursor:pointer;animation:pop-7405f069 .4s ease}.players[data-v-7405f069]{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:16px 0}.pcard[data-v-7405f069]{background:#fff;border:2px solid var(--line);border-radius:12px;padding:8px 14px;font-size:14px}.pcard.me[data-v-7405f069]{border-color:var(--brand);background:var(--brand-tint)}.pcard.host[data-v-7405f069]{border-color:var(--warn)}.pcard .tag[data-v-7405f069]{font-size:11px;background:var(--brand-tint);color:var(--brand);border-radius:8px;padding:1px 6px;margin-left:5px}.pcard .tag.host[data-v-7405f069]{background:var(--warn-tint);color:var(--warn)}.board[data-v-7405f069]{display:flex;flex-wrap:wrap;gap:6px;margin:12px;justify-content:center}.pchip[data-v-7405f069]{display:flex;align-items:center;gap:6px;background:#fff;border:2px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;box-shadow:0 2px 8px #1f24300f;transition:all .2s}.pchip.me[data-v-7405f069]{border-color:var(--brand)}.pchip.lead[data-v-7405f069]{box-shadow:0 0 0 3px #ffd34d}.pchip.answered[data-v-7405f069]{opacity:.6}.pchip .pn[data-v-7405f069]{font-weight:700}.pchip .ps[data-v-7405f069]{font-weight:800;color:var(--brand)}.pchip .tag[data-v-7405f069]{font-size:10px;background:var(--brand-tint);color:var(--brand);border-radius:6px;padding:0 5px}.pchip .dot[data-v-7405f069]{color:var(--ok);font-weight:800}.round-bar[data-v-7405f069]{display:flex;justify-content:space-between;align-items:center;margin:0 14px;font-size:13px;color:var(--muted)}.timer[data-v-7405f069]{height:8px;background:var(--line);border-radius:6px;margin:6px 14px 0;overflow:hidden}.timer-fill[data-v-7405f069]{height:100%;background:linear-gradient(90deg,var(--brand),var(--accent));transition:width .1s linear}.qcard[data-v-7405f069]{margin:14px 12px;background:#fff;border-radius:18px;padding:18px;box-shadow:0 6px 20px #1f243014;animation:fadeUp-7405f069 .3s ease both}.qmode[data-v-7405f069]{font-size:13px;color:var(--muted);text-align:center}.qword[data-v-7405f069]{font-size:30px;font-weight:800;text-align:center;margin:8px 0}.qph[data-v-7405f069]{text-align:center;color:var(--muted);font-size:14px;margin-bottom:14px}.choices[data-v-7405f069]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice[data-v-7405f069]{background:var(--bg-soft);border:2px solid var(--line);border-radius:14px;padding:14px 10px;font-size:15px;cursor:pointer;transition:transform .1s,border-color .12s,background .12s;animation:fadeUp-7405f069 .25s ease both}.choice[data-v-7405f069]:active{transform:scale(.97)}.choice.chosen[data-v-7405f069]{border-color:var(--brand);background:var(--brand-tint)}.choice.correct[data-v-7405f069]{border-color:var(--ok);background:#e7f7ec;color:var(--ok);font-weight:700}.choice.wrong[data-v-7405f069]{border-color:var(--danger);background:#fdecea;color:var(--danger)}.choice[data-v-7405f069]:disabled{cursor:default}.result-banner[data-v-7405f069]{font-size:28px;font-weight:800;padding:16px 28px;border-radius:18px;animation:pop-7405f069 .4s ease}.result-banner.win[data-v-7405f069]{background:#e7f7ec;color:var(--ok)}.result-banner.lose[data-v-7405f069]{background:#fdecea;color:var(--danger)}.result-banner.draw[data-v-7405f069]{background:var(--brand-tint);color:var(--brand)}.final-scores[data-v-7405f069]{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:center;margin-top:16px;font-size:16px}.final-scores .fs b[data-v-7405f069]{color:var(--text)}.final-scores .fs.me[data-v-7405f069]{color:var(--brand);font-weight:800}.toast[data-v-7405f069]{position:fixed;left:50%;bottom:90px;transform:translate(-50%);background:#141823e6;color:#fff;padding:10px 18px;border-radius:22px;font-size:14px;z-index:60}.toast-enter-active[data-v-7405f069],.toast-leave-active[data-v-7405f069]{transition:all .3s ease}.toast-enter-from[data-v-7405f069],.toast-leave-to[data-v-7405f069]{opacity:0;transform:translate(-50%) translateY(10px)}@keyframes pop-7405f069{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes spin-7405f069{to{transform:rotate(360deg)}}@keyframes fadeUp-7405f069{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.topbar[data-v-5bee8e75]{display:flex;align-items:center;gap:8px;padding:14px 16px 0}.topbar .back[data-v-5bee8e75]{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text)}.topbar .t[data-v-5bee8e75]{font-size:18px;font-weight:700}.av-row[data-v-5bee8e75]{display:flex;align-items:center;gap:14px;margin-bottom:12px}.avatar[data-v-5bee8e75]{width:64px;height:64px;border-radius:50%;background:var(--brand-tint);display:flex;align-items:center;justify-content:center;font-size:36px}.emoji-grid[data-v-5bee8e75]{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:8px 0 16px}.emoji[data-v-5bee8e75]{font-size:22px;border:2px solid var(--line);background:var(--bg-soft);border-radius:10px;padding:4px 0;cursor:pointer}.emoji.on[data-v-5bee8e75]{border-color:var(--brand);background:var(--brand-tint)}.field[data-v-5bee8e75]{margin:14px 0}.field>label[data-v-5bee8e75]{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.field.row[data-v-5bee8e75]{display:flex;align-items:center;justify-content:space-between}.field.row>label[data-v-5bee8e75]{margin-bottom:0}.inp[data-v-5bee8e75]{width:100%;box-sizing:border-box;padding:11px 12px;font-size:15px;border:1px solid var(--line);border-radius:12px;outline:none;background:#fff}.inp[data-v-5bee8e75]:focus{border-color:var(--brand)}.area[data-v-5bee8e75]{resize:vertical}.seg[data-v-5bee8e75]{display:flex;gap:8px}.seg button[data-v-5bee8e75]{flex:1;padding:10px;border:1px solid var(--line);background:var(--bg-soft);border-radius:12px;cursor:pointer;font-size:14px}.seg button.on[data-v-5bee8e75]{background:var(--brand);color:#fff;border-color:var(--brand)}.switch[data-v-5bee8e75]{min-width:56px;padding:8px 14px;border-radius:20px;border:1px solid var(--line-strong);background:var(--bg-soft);cursor:pointer;font-size:14px;font-weight:700}.switch.on[data-v-5bee8e75]{background:var(--ok);color:#fff;border-color:var(--ok)}.sep[data-v-5bee8e75]{border:none;border-top:1px dashed var(--line);margin:18px 0 4px}.sec-title[data-v-5bee8e75]{font-size:14px;font-weight:700;color:var(--brand);margin:6px 0 2px}.btn-row[data-v-5bee8e75]{display:flex;gap:10px;margin-top:18px}.btn-row .btn[data-v-5bee8e75]{flex:1}.hint[data-v-5bee8e75]{font-size:12px;color:var(--muted);margin-top:6px}.goal-box[data-v-5bee8e75]{margin-top:10px;padding:10px 12px;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px}.goal-line[data-v-5bee8e75]{font-size:13px;margin-bottom:6px}.goal-line.done[data-v-5bee8e75]{color:var(--ok);font-weight:700}.bar[data-v-5bee8e75]{height:8px;background:var(--line);border-radius:6px;overflow:hidden}.fill[data-v-5bee8e75]{height:100%;background:linear-gradient(90deg,var(--brand),var(--accent));transition:width .3s ease}.me-row[data-v-5bee8e75]{display:flex;align-items:center;gap:14px}.me-info[data-v-5bee8e75]{flex:1}.me-name[data-v-5bee8e75]{font-size:20px;font-weight:800}.me-meta[data-v-5bee8e75]{font-size:13px;color:var(--muted);margin-top:2px}.tabs[data-v-5bee8e75]{margin:12px}.stat-grid[data-v-5bee8e75]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.s-item[data-v-5bee8e75]{text-align:center;background:var(--bg-soft);border-radius:12px;padding:10px 4px}.s-num[data-v-5bee8e75]{font-size:18px;font-weight:800;color:var(--brand)}.s-lab[data-v-5bee8e75]{font-size:11px;color:var(--muted);margin-top:2px}.cal[data-v-5bee8e75]{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-day[data-v-5bee8e75]{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;border-radius:10px;background:var(--bg-soft)}.cal-d[data-v-5bee8e75]{font-size:12px;color:var(--muted)}.cal-dot[data-v-5bee8e75]{width:10px;height:10px;border-radius:50%;background:var(--line)}.cal-day.done[data-v-5bee8e75]{background:var(--ok-tint)}.cal-day.done .cal-d[data-v-5bee8e75]{color:var(--ok);font-weight:700}.cal-day.done .cal-dot[data-v-5bee8e75]{background:var(--ok)}.badge-grid[data-v-5bee8e75]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.badge-item[data-v-5bee8e75]{text-align:center;border:1px solid var(--line);border-radius:14px;padding:14px 8px;background:var(--bg-soft)}.b-ico[data-v-5bee8e75]{font-size:28px}.b-name[data-v-5bee8e75]{font-weight:700;font-size:14px;margin-top:4px}.b-desc[data-v-5bee8e75]{font-size:11px;color:var(--muted);margin-top:2px}.topbar[data-v-561e9084]{display:flex;align-items:center;gap:8px;padding:14px 16px 0}.topbar .back[data-v-561e9084]{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text)}.topbar .t[data-v-561e9084]{font-size:18px;font-weight:700}.list[data-v-561e9084]{padding:8px 12px}.item[data-v-561e9084]{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line)}.play[data-v-561e9084]{background:var(--brand-tint);border:none;border-radius:50%;width:40px;height:40px;font-size:18px;cursor:pointer;flex:none}.info[data-v-561e9084]{flex:1;min-width:0}.en[data-v-561e9084]{font-weight:800;font-size:17px;color:var(--brand)}.pos[data-v-561e9084]{font-size:11px;color:var(--muted);margin-left:4px}.zh[data-v-561e9084]{font-size:14px;margin-top:2px}.ph[data-v-561e9084]{font-size:12px;margin-top:2px}.del[data-v-561e9084]{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;flex:none}.topbar[data-v-5029040a]{display:flex;align-items:center;gap:8px;padding:14px 16px 0}.topbar .back[data-v-5029040a]{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text)}.topbar .t[data-v-5029040a]{font-size:18px;font-weight:700}.chart[data-v-5029040a]{width:100%;height:auto;margin-top:8px}.card-title[data-v-5029040a]{font-weight:700;font-size:14px}.member[data-v-5029040a]{margin-top:12px}.m-head[data-v-5029040a]{display:flex;align-items:center;gap:10px}.ava[data-v-5029040a]{width:44px;height:44px;border-radius:50%;background:var(--brand-tint);display:flex;align-items:center;justify-content:center;font-size:24px}.name[data-v-5029040a]{font-weight:800;font-size:16px}.tag[data-v-5029040a]{font-size:11px;color:var(--muted);margin-left:4px}.stats[data-v-5029040a]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.st[data-v-5029040a]{background:var(--bg-soft);border-radius:12px;padding:8px 4px;text-align:center}.st b[data-v-5029040a]{display:block;font-size:18px;color:var(--brand)}.st span[data-v-5029040a]{font-size:11px;color:var(--muted)}.wrong[data-v-5029040a],.concern[data-v-5029040a]{margin-top:10px}.lbl[data-v-5029040a]{font-size:12px;color:var(--muted);margin-bottom:4px}.wt[data-v-5029040a]{display:inline-block;background:var(--danger-tint);color:var(--danger);border-radius:10px;padding:2px 8px;font-size:12px;margin:0 6px 6px 0}.c[data-v-5029040a]{font-size:13px;color:var(--warn);margin:2px 0}.m-actions[data-v-5029040a]{display:flex;gap:8px;margin-top:12px}.tag.owner[data-v-5029040a]{background:var(--brand-tint);color:var(--brand);font-weight:700}.btn.danger[data-v-5029040a]{background:var(--danger-tint, #fdecea);color:var(--danger, #e5484d);border:1px solid var(--danger, #e5484d)}.topbar[data-v-7e860f38]{display:flex;align-items:center;gap:8px;padding:14px 16px 0}.topbar .back[data-v-7e860f38]{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text)}.topbar .t[data-v-7e860f38]{font-size:18px;font-weight:700}.filter[data-v-7e860f38]{display:flex;flex-direction:column;gap:10px;margin:12px 16px 0}.filter-line[data-v-7e860f38]{display:flex;align-items:center;gap:8px}.filter-line .lbl[data-v-7e860f38]{font-size:13px;color:var(--muted);flex-shrink:0}.filter-line .lbl.mid[data-v-7e860f38]{margin-left:6px}.filter-line .sel[data-v-7e860f38]{flex:1;padding:8px 10px;border-radius:10px;border:1px solid var(--line, #e5e7eb);background:var(--bg-soft, #f5f6f8);color:var(--text);font-size:14px}.filter-count[data-v-7e860f38]{font-size:12px}.card[data-v-7e860f38]{background:var(--card, #fff);border-radius:16px;padding:14px;margin:12px 16px 0;box-shadow:0 1px 3px #0000000a}.card.center[data-v-7e860f38]{text-align:center}.muted[data-v-7e860f38]{color:var(--muted, #8a93a2)}.family[data-v-7e860f38]{cursor:pointer}.f-row[data-v-7e860f38]{display:flex;align-items:center;gap:12px}.rank[data-v-7e860f38]{width:30px;height:30px;border-radius:50%;background:var(--bg-soft, #f0f1f4);color:var(--muted, #8a93a2);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;flex-shrink:0}.rank.top[data-v-7e860f38]{background:var(--brand-tint, #ecf3ff);color:var(--brand, #2f6bff)}.f-main[data-v-7e860f38]{flex:1;min-width:0}.f-name[data-v-7e860f38]{font-weight:800;font-size:16px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.owner-tag[data-v-7e860f38]{font-size:11px;color:var(--muted, #8a93a2);font-weight:600}.f-meta[data-v-7e860f38]{font-size:12px;margin:2px 0 6px}.bar[data-v-7e860f38]{height:8px;border-radius:6px;background:var(--bg-soft, #eef0f3);overflow:hidden}.fill[data-v-7e860f38]{height:100%;border-radius:6px;background:var(--brand, #2f6bff);transition:width .3s}.f-learned[data-v-7e860f38]{font-size:12px;color:var(--muted, #8a93a2);margin-top:4px}.chev[data-v-7e860f38]{color:var(--muted, #8a93a2);font-size:12px;flex-shrink:0}.members[data-v-7e860f38]{margin-top:10px;border-top:1px dashed var(--line, #eee);padding-top:10px}.member[data-v-7e860f38]{display:flex;align-items:center;gap:10px;padding:8px 0}.m-rank[data-v-7e860f38]{width:22px;text-align:center;color:var(--muted, #8a93a2);font-weight:700;font-size:13px;flex-shrink:0}.ava[data-v-7e860f38]{width:38px;height:38px;border-radius:50%;background:var(--brand-tint, #ecf3ff);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.m-main[data-v-7e860f38]{flex:1;min-width:0}.m-name[data-v-7e860f38]{font-weight:700;font-size:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tag[data-v-7e860f38]{font-size:10px;color:var(--muted, #8a93a2);background:var(--bg-soft, #f0f1f4);border-radius:8px;padding:1px 6px}.tag.cls[data-v-7e860f38]{background:var(--brand-tint, #ecf3ff);color:var(--brand, #2f6bff)}.tag.sup[data-v-7e860f38]{background:#fff4e5;color:#d9821a}.m-bar[data-v-7e860f38]{height:6px;border-radius:5px;background:var(--bg-soft, #eef0f3);overflow:hidden;margin:5px 0 4px}.m-fill[data-v-7e860f38]{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--brand, #2f6bff),#6aa0ff)}.m-stats[data-v-7e860f38]{display:flex;gap:12px;font-size:11px;color:var(--muted, #8a93a2);flex-wrap:wrap}.m-stats b[data-v-7e860f38]{color:var(--text)}.loading[data-v-7e860f38]{text-align:center;color:var(--muted, #8a93a2);padding:40px 0}.loading.sm[data-v-7e860f38]{padding:16px 0}.spinner[data-v-7e860f38]{display:inline-block;width:16px;height:16px;border:2px solid var(--muted, #ccc);border-top-color:var(--brand, #2f6bff);border-radius:50%;animation:spin-7e860f38 .8s linear infinite;vertical-align:-3px;margin-right:6px}@keyframes spin-7e860f38{to{transform:rotate(360deg)}}.topbar[data-v-0ed862be]{display:flex;align-items:center;gap:8px;padding:14px 16px 0}.topbar .back[data-v-0ed862be]{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text)}.topbar .t[data-v-0ed862be]{font-size:18px;font-weight:700}.filters[data-v-0ed862be]{padding:12px 16px}.inp[data-v-0ed862be]{width:100%;box-sizing:border-box;padding:11px 12px;font-size:15px;border:1px solid var(--line);border-radius:12px;outline:none;background:#fff}.inp[data-v-0ed862be]:focus{border-color:var(--brand)}.row[data-v-0ed862be]{display:flex;gap:8px;margin-top:8px}.row .inp[data-v-0ed862be]{flex:1}.list[data-v-0ed862be]{padding:8px 12px}.item[data-v-0ed862be]{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line)}.play[data-v-0ed862be]{background:var(--brand-tint);border:none;border-radius:50%;width:40px;height:40px;font-size:18px;cursor:pointer;flex:none}.info[data-v-0ed862be]{flex:1;min-width:0;cursor:pointer}.en[data-v-0ed862be]{font-weight:800;font-size:17px;color:var(--brand)}.pos[data-v-0ed862be]{font-size:11px;color:var(--muted);margin-left:4px}.tag[data-v-0ed862be]{font-size:11px;color:#fff;background:var(--warn);border-radius:8px;padding:0 6px;margin-left:4px}.zh[data-v-0ed862be]{font-size:14px;margin-top:2px}.ph[data-v-0ed862be]{font-size:12px;margin-top:2px}.star[data-v-0ed862be]{background:none;border:none;font-size:20px;cursor:pointer;flex:none;opacity:.35}.star.on[data-v-0ed862be]{opacity:1}.topbar[data-v-65a58f24]{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg, #fff);border-bottom:1px solid var(--line)}.back[data-v-65a58f24]{border:none;background:none;font-size:24px;color:var(--brand);cursor:pointer;padding:0 6px;line-height:1}.tb-title[data-v-65a58f24]{font-size:17px;font-weight:800;flex:1}.tb-sub[data-v-65a58f24]{width:32px}.scan-hero[data-v-65a58f24]{display:block;border:2px solid var(--brand);background:var(--brand-tint, #eef6ff);cursor:pointer}.scan-main[data-v-65a58f24]{display:flex;align-items:flex-start;gap:12px}.scan-ico[data-v-65a58f24]{flex-shrink:0;line-height:1}.scan-info[data-v-65a58f24]{flex:1;min-width:0}.scan-title[data-v-65a58f24]{font-size:17px;font-weight:800;color:var(--brand)}.scan-desc[data-v-65a58f24]{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.5}.scan-progress[data-v-65a58f24]{margin-top:6px}.scan-btn[data-v-65a58f24]{width:100%;margin-top:12px}.path[data-v-65a58f24]{display:flex;flex-direction:column}.path-item[data-v-65a58f24]{display:flex;align-items:center;gap:12px;padding:12px 8px;border:none;background:none;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;transition:background .12s ease}.path-item[data-v-65a58f24]:last-child{border-bottom:none}.path-item[data-v-65a58f24]:active{background:var(--bg-soft)}.path-ico[data-v-65a58f24]{font-size:26px;width:36px;text-align:center;flex-shrink:0}.path-body[data-v-65a58f24]{flex:1}.path-name[data-v-65a58f24]{font-weight:700;font-size:15px}.path-desc[data-v-65a58f24]{font-size:12px;color:var(--muted);margin-top:2px}.path-arrow[data-v-65a58f24]{color:var(--muted);font-size:20px}.grid[data-v-65a58f24]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mod[data-v-65a58f24]{position:relative;text-align:left;border:2px solid var(--line);background:var(--bg-soft);border-radius:14px;padding:12px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.mod[data-v-65a58f24]:active{transform:scale(.97)}.mod[data-v-65a58f24]:hover{border-color:var(--brand);box-shadow:0 6px 16px #2f8fff26}.mi[data-v-65a58f24]{font-size:24px}.mn[data-v-65a58f24]{font-weight:700;margin-top:4px}.md[data-v-65a58f24]{font-size:11px;color:var(--muted);margin-top:2px}.topbar[data-v-982b0be5]{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg, #fff);border-bottom:1px solid var(--line)}.back[data-v-982b0be5]{border:none;background:none;font-size:24px;color:var(--brand);cursor:pointer;padding:0 6px;line-height:1}.tb-title[data-v-982b0be5]{font-size:17px;font-weight:800;flex:1}.tb-sub[data-v-982b0be5]{width:32px}.review-hero[data-v-982b0be5]{display:flex;align-items:center;gap:20px}.ring[data-v-982b0be5]{width:92px;height:92px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--brand) var(--pct, 0%),var(--bg-soft) 0)}.ring-inner[data-v-982b0be5]{width:72px;height:72px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-num[data-v-982b0be5]{font-size:22px;font-weight:800;color:var(--brand);line-height:1}.ring-lab[data-v-982b0be5]{font-size:10px;color:var(--muted);margin-top:3px}.hero-info[data-v-982b0be5]{flex:1}.hero-title[data-v-982b0be5]{font-size:16px;font-weight:800}.hero-sub[data-v-982b0be5]{font-size:12px;color:var(--muted);margin:6px 0 10px}.rev-item[data-v-982b0be5]{display:flex;align-items:center;gap:12px;width:100%;padding:14px 10px;border:none;background:none;border-bottom:1px solid var(--line);cursor:pointer;text-align:left}.rev-item[data-v-982b0be5]:last-child{border-bottom:none}.rev-item[data-v-982b0be5]:active{background:var(--bg-soft)}.rev-ico[data-v-982b0be5]{font-size:26px;width:36px;text-align:center;flex-shrink:0}.rev-body[data-v-982b0be5]{flex:1}.rev-name[data-v-982b0be5]{font-weight:700;font-size:15px}.rev-desc[data-v-982b0be5]{font-size:12px;color:var(--muted);margin-top:2px}.rev-state[data-v-982b0be5]{font-size:12px;color:var(--muted)}.rev-state.ok[data-v-982b0be5]{color:var(--ok)}:root{--brand: #2f8fff;--brand-dark: #1f5fd0;--brand-tint: #eaf1ff;--bg: #f4f6fb;--bg-soft: #f7f9fc;--card: #ffffff;--text: #1d2330;--muted: #5e6b80;--line: #e6e9f0;--line-strong: #dbe0ea;--ok: #1a8a4f;--ok-tint: #e7f7ec;--danger: #c62828;--danger-tint: #fdecea;--warn: #b35900;--warn-tint: #fff3e0;--accent: #ff5e7e;--accent-deep: #d6336c;--accent-tint: #ffe9f0;--font-sans: "Nunito", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Segoe UI", Roboto, sans-serif;--font-en: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 15px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 30px;--fs-4xl: 38px;--r-sm: 10px;--r-md: 14px;--r-lg: 18px;--r-xl: 22px;--r-pill: 999px;--shadow-sm: 0 2px 8px rgba(31, 36, 48, .05);--shadow-md: 0 6px 18px rgba(31, 36, 48, .07);--shadow-lg: 0 12px 30px rgba(31, 36, 48, .1);--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--tabbar-h: 64px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.6;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-overflow-scrolling:touch}::selection{background:var(--brand-tint)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}#app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;overflow-x:hidden}@media (min-width: 520px){#app{box-shadow:0 0 60px #1f243014}}.app-shell{display:flex;flex-direction:column;min-height:100vh;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin:12px;box-shadow:var(--shadow-sm);animation:fadeUp .35s ease both}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;background:var(--brand);color:#fff;border:none;border-radius:var(--r-md);padding:0 16px;font-size:var(--fs-md);font-weight:700;font-family:var(--font-sans);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .15s ease,background .15s ease}.btn:active{background:var(--brand-dark);transform:scale(.98)}.btn:disabled{opacity:.6;cursor:default}.btn.ghost{background:var(--brand-tint);color:var(--brand)}.btn.ghost:active{background:#dde8ff;transform:scale(.98)}.input{width:100%;padding:13px 14px;margin:8px 0;border:1px solid var(--line-strong);border-radius:var(--r-md);font-size:var(--fs-md);background:var(--card);color:var(--text);font-family:var(--font-sans);transition:border-color .15s,box-shadow .15s}.input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.label{font-size:var(--fs-sm);color:var(--muted);margin-top:10px;font-weight:600}.tabbar{position:fixed;left:0;right:0;bottom:0;max-width:480px;margin:0 auto;display:flex;gap:4px;background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:8px 12px calc(8px + env(safe-area-inset-bottom));z-index:40;box-shadow:0 -6px 24px #1f243014}.tabbar button{flex:1;border:none;background:none;color:var(--muted);font-size:11px;font-weight:700;font-family:var(--font-sans);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 0;border-radius:var(--r-md);transition:background .15s,color .15s}.tabbar button svg{flex-shrink:0}.tabbar button .ico{font-size:20px;line-height:1}.tabbar button.active{color:var(--brand);background:var(--brand-tint)}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;padding:14px 16px 10px;background:#f4f6fbd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.topbar .back{background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--text);padding:0 4px}.topbar .t{font-size:var(--fs-xl);font-weight:800}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#14182380;display:flex;align-items:flex-end;justify-content:center;z-index:50;padding-bottom:env(safe-area-inset-bottom)}.modal{background:#fff;width:100%;max-width:480px;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:var(--sp-5) var(--sp-4) calc(var(--sp-6) + env(safe-area-inset-bottom));max-height:88vh;overflow:auto}.modal h3{margin:0 0 10px;font-size:var(--fs-xl);font-weight:800}.modal .hint{color:var(--muted);font-size:var(--fs-xs);margin:6px 0}.modal .row2{display:flex;gap:10px}.modal .row2>*{flex:1}.tag{display:inline-block;background:var(--brand-tint);color:var(--brand);border-radius:var(--r-sm);padding:2px 8px;font-size:var(--fs-xs);font-weight:700;margin-left:6px}.tag.builtin{background:var(--warn-tint);color:var(--warn)}.preview{width:100%;border-collapse:collapse;margin-top:8px;font-size:var(--fs-sm)}.preview td,.preview th{border:1px solid var(--line);padding:8px 10px;text-align:left}.preview th{background:var(--bg-soft);color:var(--muted);font-weight:600}.err{color:var(--danger);font-size:var(--fs-sm);margin:8px 0;font-weight:600}.ok-msg{color:var(--ok);font-size:var(--fs-sm);margin:8px 0;font-weight:600}.title{font-size:var(--fs-2xl);font-weight:800;padding:16px 16px 4px;letter-spacing:.3px}.sub{color:var(--muted);font-size:var(--fs-sm);padding:0 16px 8px}.row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:none}.badge{background:var(--brand-tint);color:var(--brand);border-radius:var(--r-sm);padding:2px 8px;font-size:var(--fs-xs);font-weight:700}.muted{color:var(--muted)}.center{text-align:center}.en{font-family:var(--font-en);font-weight:800;letter-spacing:.5px}.section-title{font-size:var(--fs-sm);font-weight:800;letter-spacing:1px;color:var(--muted);margin:20px 16px 6px}.card.soft{background:var(--bg-soft);border-color:transparent;box-shadow:none}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.card-title{font-size:var(--fs-lg);font-weight:800}.card-sub{color:var(--muted);font-size:var(--fs-xs)}.btn.inline{width:auto;min-width:120px}.btn.sm{min-height:40px;font-size:var(--fs-sm);padding:0 16px;border-radius:var(--r-sm)}.btn.lg{min-height:54px;font-size:var(--fs-lg)}.btn.ok{background:var(--ok)}.btn.ok:active{background:#136b3d}.btn.danger{background:var(--danger)}.btn.danger:active{background:#9e1f1f}.btn.warn{background:var(--warn)}.btn.warn:active{background:#8f4600}.btn.accent{background:var(--accent)}.btn.accent:active{background:var(--accent-deep)}.btn-row{display:flex;gap:10px;margin:12px}.btn-row .btn{margin:0}.badge.ok{background:var(--ok-tint);color:var(--ok)}.badge.danger{background:var(--danger-tint);color:var(--danger)}.badge.warn{background:var(--warn-tint);color:var(--warn)}.badge.accent{background:var(--accent-tint);color:var(--accent-deep)}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--bg-soft);color:var(--muted);border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 12px;font-size:var(--fs-xs);font-weight:700;cursor:pointer;font-family:var(--font-sans);transition:background .15s,color .15s,border-color .15s}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.chip:active{transform:scale(.97)}.pill{border-radius:var(--r-pill);padding:4px 12px;font-size:var(--fs-xs);font-weight:800;display:inline-block}.pill.ok{background:var(--ok-tint);color:var(--ok)}.pill.danger{background:var(--danger-tint);color:var(--danger)}.pill.warn{background:var(--warn-tint);color:var(--warn)}.pill.accent{background:var(--accent-tint);color:var(--accent-deep)}.list{margin:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.list-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);transition:background .12s}.list-item:last-child{border-bottom:none}.list-item:active{background:var(--bg-soft)}.list-item .li-main{flex:1;min-width:0}.list-item .li-title{font-weight:800;font-size:var(--fs-md);display:flex;align-items:center;gap:6px}.list-item .li-sub{color:var(--muted);font-size:var(--fs-xs);margin-top:2px}.list-item .li-action{color:var(--brand);font-weight:800;font-size:var(--fs-sm);flex-shrink:0}.progress{height:10px;background:var(--bg-soft);border-radius:var(--r-pill);overflow:hidden}.progress>i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-dark));border-radius:var(--r-pill);transition:width .4s ease}.progress.ok>i{background:linear-gradient(90deg,var(--ok),#2bbf73)}.progress.warn>i{background:linear-gradient(90deg,var(--warn),#e0902a)}.progress-ring{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--brand) calc(var(--p) * 1%),var(--bg-soft) 0);position:relative;flex-shrink:0}.progress-ring:before{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;background:var(--card);border-radius:50%}.progress-ring .pr-num{position:relative;font-weight:800;font-size:var(--fs-md)}.progress-ring.ok{background:conic-gradient(var(--ok) calc(var(--p) * 1%),var(--bg-soft) 0)}.empty{text-align:center;padding:44px 24px;color:var(--muted)}.empty .em-ico{font-size:42px;opacity:.7}.empty .em-t{font-weight:800;font-size:var(--fs-lg);color:var(--text);margin-top:8px}.empty .em-s{font-size:var(--fs-sm);margin-top:4px}.empty .btn{margin:16px auto 0;max-width:240px}.spinner{width:34px;height:34px;border:3px solid var(--line-strong);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}.spinner.sm{width:20px;height:20px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:56px 24px;color:var(--muted);font-size:var(--fs-sm)}.toast-wrap{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 14px);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:80;pointer-events:none;padding:0 16px}.toast{pointer-events:auto;max-width:440px;width:100%;background:#1d2330f0;color:#fff;padding:12px 16px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:700;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:8px;animation:toastIn .25s ease both}.toast.ok{background:var(--ok)}.toast.danger{background:var(--danger)}.toast.warn{background:var(--warn)}@keyframes toastIn{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:12px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-sm)}.stat .s-num{font-size:var(--fs-2xl);font-weight:800;line-height:1.1}.stat .s-label{color:var(--muted);font-size:var(--fs-xs);margin-top:4px;font-weight:700}.stat.accent .s-num{color:var(--accent-deep)}.stat.ok .s-num{color:var(--ok)}.stat.brand .s-num{color:var(--brand)}.seg{display:flex;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-md);padding:4px;gap:4px;margin:12px}.seg button{flex:1;border:none;background:none;color:var(--muted);font-weight:800;font-size:var(--fs-sm);padding:9px 6px;border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-sans);transition:background .15s,color .15s}.seg button.active{background:var(--card);color:var(--brand);box-shadow:var(--shadow-sm)}.field{margin:14px 0}.field>label{display:block;font-size:var(--fs-sm);font-weight:700;color:var(--muted);margin-bottom:6px}.field .hint{color:var(--muted);font-size:var(--fs-xs);margin-top:6px}.hr{height:1px;background:var(--line);border:none;margin:12px 16px}@media (hover: hover){.card.hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.sidebar{display:none}@media (min-width: 900px){#app{max-width:1080px}.app-shell{flex-direction:row;align-items:flex-start;padding-bottom:0}.app-main{flex:1;min-width:0}.tabbar{display:none}.sidebar{display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;width:240px;flex-shrink:0;padding:28px 16px;background:var(--card);border-right:1px solid var(--line);overflow-y:auto}.sb-user{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.sb-ava{width:64px;height:64px;border-radius:50%;background:var(--brand-tint);display:flex;align-items:center;justify-content:center;font-size:32px;overflow:hidden}.sb-ava img{width:100%;height:100%;object-fit:cover}.sb-name{font-size:18px;font-weight:800;margin-top:4px}.sb-meta{font-size:12px;color:var(--muted)}.sb-exp{width:100%}.sb-label{font-size:12px;color:var(--muted);margin-bottom:5px}.sb-bar{height:8px;border-radius:999px;background:var(--bg-soft);overflow:hidden}.sb-fill{height:100%;border-radius:999px;background:var(--brand);transition:width .3s ease}.sb-fill.ok{background:var(--ok)}.sb-nav{display:flex;flex-direction:column;gap:4px;margin-top:6px}.sb-nav button{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:none;background:none;border-radius:var(--r-md);font-size:15px;font-weight:700;font-family:var(--font-sans);color:var(--muted);cursor:pointer;text-align:left;transition:background .15s,color .15s}.sb-nav button.active{color:var(--brand);background:var(--brand-tint)}.sb-nav button:hover{background:var(--bg-soft)}}
