@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Serif+SC:wght@500;600;700&family=Noto+Sans+SC:wght@400;500;700&display=swap";.app-footer[data-v-61903b81]{padding:24px 16px 32px;background:var(--bg-card);border-top:1px solid var(--surface-border);margin-top:auto}.footer-inner[data-v-61903b81]{max-width:1400px;margin:0 auto;text-align:center}.footer-links[data-v-61903b81]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-bottom:12px}.footer-link[data-v-61903b81]{font-size:var(--font-size-sm);color:var(--text-secondary);text-decoration:none;transition:color var(--transition-fast);padding:4px 8px;border-radius:var(--radius-admin-sm)}.footer-link[data-v-61903b81]:hover{color:var(--color-primary);background:var(--surface-muted)}.footer-divider[data-v-61903b81]{color:var(--text-disabled);font-size:var(--font-size-xs);-webkit-user-select:none;user-select:none}.footer-copy[data-v-61903b81]{font-size:var(--font-size-xs);color:var(--text-disabled);line-height:1.6}@media (max-width: 768px){.app-footer[data-v-61903b81]{padding:20px 16px 28px}.footer-links[data-v-61903b81]{gap:8px}.footer-link[data-v-61903b81]{font-size:var(--font-size-xs);padding:4px 6px;min-height:var(--touch-min);display:inline-flex;align-items:center}}.admin-layout[data-v-7ebecf73]{min-height:100vh;background:var(--bg-cream)}.admin-sidebar[data-v-7ebecf73]{background:var(--bg-sidebar);border-right:1px solid var(--surface-border);display:flex;flex-direction:column;transition:width var(--transition);overflow:hidden;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-overlay-mask[data-v-7ebecf73]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:99}.sidebar-header[data-v-7ebecf73]{display:flex;align-items:center;gap:12px;padding:20px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--surface-border)}.logo-icon[data-v-7ebecf73]{font-size:24px;flex-shrink:0}.logo-text[data-v-7ebecf73]{font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary);white-space:nowrap;letter-spacing:.02em}.sidebar-menu[data-v-7ebecf73]{flex:1;border-right:none!important;background:transparent!important;padding-top:12px}.sidebar-menu .el-menu-item[data-v-7ebecf73]{margin:4px 12px;border-radius:var(--radius-admin);font-size:var(--font-size-base);color:var(--text-primary);transition:all var(--transition-fast)}.sidebar-menu .el-menu-item[data-v-7ebecf73]:hover{background:var(--surface-active)!important;color:var(--text-primary)!important}.sidebar-menu .el-menu-item.is-active[data-v-7ebecf73]{background:linear-gradient(135deg,var(--color-primary),var(--color-success))!important;color:var(--text-primary)!important;font-weight:700;box-shadow:var(--shadow-card)}.menu-icon[data-v-7ebecf73]{font-size:18px;width:20px;text-align:center}.sidebar-footer[data-v-7ebecf73]{padding:16px;border-top:1px solid var(--surface-border)}.sidebar-dots[data-v-7ebecf73]{display:flex;justify-content:center;gap:8px;opacity:.4}.footer-dot[data-v-7ebecf73]{width:8px;height:8px;border-radius:50%;background:var(--macaron-blue)}.footer-dot[data-v-7ebecf73]:nth-child(2){background:var(--macaron-pink)}.footer-dot[data-v-7ebecf73]:nth-child(3){background:var(--macaron-yellow)}.footer-dot[data-v-7ebecf73]:nth-child(4){background:var(--macaron-mint)}.sidebar-user[data-v-7ebecf73]{display:flex;align-items:center;gap:10px}.sidebar-user-avatar[data-v-7ebecf73]{font-size:28px;flex-shrink:0}.sidebar-user-info[data-v-7ebecf73]{flex:1;min-width:0}.sidebar-user-name[data-v-7ebecf73]{display:block;font-size:var(--font-size-sm);font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-plan[data-v-7ebecf73]{display:block;font-size:var(--font-size-xs);color:var(--text-link)}.sidebar-user-income[data-v-7ebecf73]{font-size:var(--font-size-xs);font-weight:700;color:var(--color-accent);white-space:nowrap}.admin-main-wrapper[data-v-7ebecf73]{margin-left:var(--v3c05305a);transition:margin-left var(--transition);min-height:100vh;display:flex;flex-direction:column}.admin-header[data-v-7ebecf73]{display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--bg-card);border-bottom:1px solid var(--surface-border);position:sticky;top:0;z-index:50}.header-left[data-v-7ebecf73],.header-right[data-v-7ebecf73]{display:flex;align-items:center;gap:16px}.collapse-btn[data-v-7ebecf73]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-admin);font-size:16px;color:var(--text-secondary);transition:background var(--transition-fast);background:transparent;border:none;cursor:pointer}.collapse-btn[data-v-7ebecf73]:hover{background:var(--surface-hover)}.usage-indicator[data-v-7ebecf73]{display:flex;align-items:center;gap:8px;cursor:default}.usage-bar[data-v-7ebecf73]{width:80px;height:6px;background:var(--surface-active);border-radius:3px;overflow:hidden}.usage-fill[data-v-7ebecf73]{height:100%;border-radius:3px;background:var(--macaron-mint);transition:width var(--transition)}.usage-fill.warning[data-v-7ebecf73]{background:var(--macaron-yellow)}.usage-fill.danger[data-v-7ebecf73]{background:var(--color-danger)}.usage-text[data-v-7ebecf73]{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap}.plan-badge[data-v-7ebecf73]{padding:4px 12px;border-radius:20px;font-size:var(--font-size-xs);font-weight:700;background:var(--surface-active);color:var(--text-link)}.header-icon-btn[data-v-7ebecf73]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-admin);background:transparent;border:none;cursor:pointer;position:relative;transition:background var(--transition-fast)}.header-icon-btn[data-v-7ebecf73]:hover{background:var(--surface-hover)}.notif-icon[data-v-7ebecf73]{font-size:18px}.notif-badge[data-v-7ebecf73]{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 5px;background:var(--color-danger);color:#fff;border-radius:9px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.user-menu[data-v-7ebecf73]{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:var(--radius-admin);cursor:pointer;position:relative;transition:background var(--transition-fast)}.user-menu[data-v-7ebecf73]:hover{background:var(--surface-hover)}.user-avatar[data-v-7ebecf73]{font-size:28px;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.user-name[data-v-7ebecf73]{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.user-arrow[data-v-7ebecf73]{font-size:10px;color:var(--text-secondary)}.user-dropdown[data-v-7ebecf73]{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-card);border-radius:var(--radius-admin);box-shadow:var(--shadow-popup);min-width:140px;padding:4px;z-index:200;border:1px solid var(--surface-border)}.dropdown-item[data-v-7ebecf73]{padding:10px 16px;border-radius:var(--radius-admin-sm);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast)}.dropdown-item[data-v-7ebecf73]:hover{background:var(--surface-hover)}.header-login-btn[data-v-7ebecf73]{padding:8px 20px;background:linear-gradient(135deg,var(--color-primary),var(--color-success));color:var(--text-primary);border:none;border-radius:var(--radius-admin);font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.admin-content[data-v-7ebecf73]{padding:0;background:transparent;flex:1}.admin-content-inner[data-v-7ebecf73]{max-width:1600px;margin:0 auto;padding:24px;position:relative}@media (max-width: 768px){.admin-sidebar[data-v-7ebecf73]{width:220px!important;transform:translate(-100%)}.admin-sidebar.mobile-open[data-v-7ebecf73]{transform:translate(0)}.admin-main-wrapper[data-v-7ebecf73]{margin-left:0!important}.admin-content-inner[data-v-7ebecf73]{padding:16px}.header-right .usage-indicator[data-v-7ebecf73],.header-right .plan-badge[data-v-7ebecf73]{display:none}}.student-layout[data-v-ede37e11]{min-height:100vh;background:var(--bg-cream);display:flex;flex-direction:column}.student-topbar[data-v-ede37e11]{display:flex;align-items:center;gap:12px;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top,0));background:var(--bg-card);border-bottom:1px solid var(--surface-border);position:sticky;top:0;z-index:100}.topbar-back[data-v-ede37e11]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--surface-hover);border:none;border-radius:var(--radius-student-sm);font-size:18px;color:var(--text-primary);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast)}.topbar-back[data-v-ede37e11]:hover{background:var(--surface-active)}.topbar-title[data-v-ede37e11]{flex:1;font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary);text-align:center;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-parent-btn[data-v-ede37e11]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--surface-hover);border-radius:var(--radius-student-sm);font-size:20px;text-decoration:none;flex-shrink:0;transition:background var(--transition-fast)}.topbar-parent-btn[data-v-ede37e11]:hover{background:var(--surface-active)}.student-content[data-v-ede37e11]{flex:1;padding-bottom:var(--gap-sm);min-height:100vh;position:relative}@media (min-width: 900px){.student-content[data-v-ede37e11]{width:100%;max-width:920px;align-self:center}}.student-content.has-tabbar[data-v-ede37e11]{padding-bottom:calc(var(--tabbar-height) + var(--gap-sm))}.tabbar[data-v-ede37e11]{position:fixed;bottom:0;left:0;right:0;height:var(--tabbar-height);background:var(--bg-card);border-top:1px solid var(--surface-border);display:flex;align-items:stretch;z-index:100;padding-bottom:env(safe-area-inset-bottom,0);box-shadow:0 -2px 12px var(--surface-muted)}.tabbar-indicator[data-v-ede37e11]{position:absolute;top:0;height:4px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--macaron-blue),var(--macaron-mint));transition:left var(--transition, .3s cubic-bezier(.4, 0, .2, 1));z-index:1;box-shadow:0 2px 8px var(--shadow-card)}.tabbar-item[data-v-ede37e11]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 16px;text-decoration:none!important;color:var(--text-secondary);min-width:0;min-height:var(--touch-min);position:relative;border-radius:var(--radius-student-sm);transition:color var(--transition-fast),background var(--transition-fast)}.tabbar-item.active[data-v-ede37e11]{color:var(--text-primary)}.tab-icon[data-v-ede37e11]{font-size:24px;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.tabbar-item.active .tab-icon[data-v-ede37e11]{transform:scale(1.2)}.tab-label[data-v-ede37e11]{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em;transition:font-weight var(--transition-fast)}.tabbar-item.active .tab-label[data-v-ede37e11]{font-weight:800}.tabbar-item[data-v-ede37e11]:active{transform:scale(.93);background:var(--surface-hover)}.page-slide-enter-active[data-v-ede37e11],.page-slide-leave-active[data-v-ede37e11]{transition:opacity var(--transition),transform var(--transition)}.page-slide-leave-active[data-v-ede37e11]{position:absolute;inset-inline:0;pointer-events:none}.page-slide-enter-from[data-v-ede37e11]{opacity:0;transform:translate(30px)}.page-slide-leave-to[data-v-ede37e11]{opacity:0;transform:translate(-20px)}.empty-state[data-v-c2a9c4f6]{text-align:center;padding:48px 24px}.empty-icon[data-v-c2a9c4f6]{font-size:64px;display:block;margin-bottom:16px;opacity:.6}.empty-state h3[data-v-c2a9c4f6]{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:8px;font-weight:700}.empty-state p[data-v-c2a9c4f6]{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:16px}.empty-action[data-v-c2a9c4f6]{display:inline-block;padding:12px 24px;background:linear-gradient(135deg,var(--color-primary),var(--color-success));color:var(--text-primary);border:none;border-radius:var(--radius-admin);font-size:var(--font-size-base);font-weight:700;cursor:pointer;transition:all var(--transition-fast)}.empty-action[data-v-c2a9c4f6]:hover{transform:translateY(-1px);box-shadow:var(--shadow-card-hover)}.error-state[data-v-2c24aea8]{text-align:center;padding:48px 24px}.error-icon[data-v-2c24aea8]{font-size:64px;display:block;margin-bottom:16px;opacity:.6}.error-state h3[data-v-2c24aea8]{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:8px;font-weight:700}.error-state p[data-v-2c24aea8]{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:16px}.error-retry[data-v-2c24aea8]{display:inline-block;padding:12px 24px;background:var(--color-warning);color:var(--color-warning-text);border:none;border-radius:var(--radius-admin);font-size:var(--font-size-base);font-weight:700;cursor:pointer;transition:all var(--transition-fast)}.error-retry[data-v-2c24aea8]:hover{transform:translateY(-1px);box-shadow:var(--shadow-card-hover)}.confirm-overlay[data-v-5883886b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;animation:fade-in-5883886b .2s ease}.confirm-card[data-v-5883886b]{background:var(--bg-card);border-radius:var(--radius);padding:32px 24px;max-width:380px;width:100%;text-align:center;box-shadow:var(--shadow-popup);animation:scale-in-5883886b .25s ease}.confirm-icon[data-v-5883886b]{font-size:48px;display:block;margin-bottom:12px}.confirm-card h3[data-v-5883886b]{font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary);margin-bottom:8px}.confirm-card p[data-v-5883886b]{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:24px;line-height:1.6}.confirm-actions[data-v-5883886b]{display:flex;gap:12px}.confirm-cancel[data-v-5883886b]{flex:1;padding:12px;background:var(--bg-beige);color:var(--text-secondary);border:none;border-radius:var(--radius-admin);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.confirm-cancel[data-v-5883886b]:hover{background:var(--surface-active)}.confirm-ok[data-v-5883886b]{flex:1;padding:12px;background:var(--color-primary);color:var(--text-primary);border:none;border-radius:var(--radius-admin);font-size:var(--font-size-base);font-weight:700;cursor:pointer;transition:all var(--transition-fast)}.confirm-ok.danger[data-v-5883886b]{background:var(--color-danger);color:#fff}.confirm-ok.warning[data-v-5883886b]{background:var(--color-warning);color:var(--color-warning-text)}.confirm-ok[data-v-5883886b]:hover{transform:translateY(-1px)}@keyframes fade-in-5883886b{0%{opacity:0}to{opacity:1}}@keyframes scale-in-5883886b{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.ip-character[data-v-dd78d6c6]{display:inline-flex;align-items:center;position:relative;flex-shrink:0}.sm[data-v-dd78d6c6]{width:40px;height:40px}.md[data-v-dd78d6c6]{width:56px;height:56px}.lg[data-v-dd78d6c6]{width:80px;height:80px}.ip-svg[data-v-dd78d6c6]{width:100%;height:100%;display:block;transform-origin:center bottom;filter:drop-shadow(0 4px 6px rgba(0,0,0,.12))}.waving[data-v-dd78d6c6]{animation:ip-wave-dd78d6c6 .9s ease-in-out infinite}@keyframes ip-wave-dd78d6c6{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.ip-speech[data-v-dd78d6c6]{position:absolute;width:max-content;background:var(--bg-card);border:2px solid var(--surface-border);border-radius:var(--radius-student-sm);padding:8px 14px;max-width:200px;box-shadow:var(--shadow-card);animation:speech-in-dd78d6c6 .3s ease;z-index:10}.ip-speech.top[data-v-dd78d6c6]{bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px}.ip-speech.right[data-v-dd78d6c6]{left:100%;top:0;margin-left:12px}.speech-text[data-v-dd78d6c6]{font-size:var(--font-size-sm);color:var(--text-primary);white-space:normal;word-break:break-word;font-weight:600;line-height:1.4}@keyframes speech-in-dd78d6c6{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.waving[data-v-dd78d6c6]{animation:none}}.skeleton-card[data-v-6d9bd800]{background:var(--bg-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card)}.skeleton-card.card .skeleton-cover[data-v-6d9bd800]{aspect-ratio:16 / 10}.skeleton-card.list[data-v-6d9bd800]{display:flex;gap:12px;padding:12px}.skeleton-card.list .skeleton-cover[data-v-6d9bd800]{width:60px;height:60px;border-radius:var(--radius-sm);flex-shrink:0}.skeleton-card.table[data-v-6d9bd800]{display:flex;align-items:center;gap:12px;padding:8px 12px}.skeleton-card.table .skeleton-cover[data-v-6d9bd800]{width:32px;height:32px;border-radius:50%;flex-shrink:0}.skeleton-body[data-v-6d9bd800]{padding:12px 16px 16px}.skeleton-line[data-v-6d9bd800]{height:14px;margin-bottom:8px}.skeleton-line[data-v-6d9bd800]:last-child{margin-bottom:0}.w-80[data-v-6d9bd800]{width:80%}.w-60[data-v-6d9bd800]{width:60%}.w-40[data-v-6d9bd800]{width:40%}.skeleton[data-v-6d9bd800]{background:linear-gradient(110deg,var(--skeleton-base) 30%,var(--skeleton-shine) 50%,var(--skeleton-base) 70%);background-size:200% 100%;animation:skeleton-shimmer-6d9bd800 1.6s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer-6d9bd800{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.skeleton[data-v-6d9bd800]{animation:none;background:var(--surface-hover)}}.pdf-viewer[data-v-8416a57f]{width:100%;height:100%;background:#525659;overflow:hidden;position:relative}.pdf-pages[data-v-8416a57f]{width:100%;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0;box-sizing:border-box}.pdf-pages[data-v-8416a57f] .pdf-slot{width:100%;display:flex;justify-content:center;contain:layout paint}.pdf-pages[data-v-8416a57f] .pdf-page{background:#fff;box-shadow:0 2px 8px #0006;display:block}.pdf-status[data-v-8416a57f]{color:#ffffffe6;font-size:var(--font-size-sm, 14px);display:flex;align-items:center;gap:8px;padding:24px}.pdf-spinner[data-v-8416a57f]{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:pdf-spin-8416a57f .8s linear infinite}@keyframes pdf-spin-8416a57f{to{transform:rotate(360deg)}}.pdf-fallback[data-v-8416a57f]{width:100%;height:100%;border:0;background:#fff}.pdf-progress-chip[data-v-8416a57f]{position:absolute;right:12px;bottom:12px;padding:4px 10px;border-radius:999px;background:#0000008c;color:#ffffffeb;font-size:var(--font-size-sm, 14px);pointer-events:none}.tpl-minimal-list[data-v-4e11ed06]{background:var(--tpl-bg);color:var(--tpl-text);font-size:var(--tpl-font)}.ml-list[data-v-4e11ed06]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--tpl-gap)}.ml-row[data-v-4e11ed06]{width:100%;display:flex;align-items:center;gap:calc(var(--tpl-gap));padding:var(--tpl-gap);background:var(--tpl-card-bg);border:1px solid var(--tpl-line);border-radius:var(--tpl-radius);cursor:pointer;text-align:left;color:inherit;font:inherit;box-shadow:var(--tpl-shadow);transition:transform var(--transition-fast),background var(--transition-fast)}.ml-row[data-v-4e11ed06]:hover:not(:disabled){transform:translateY(-1px)}.ml-row[data-v-4e11ed06]:disabled{cursor:not-allowed;opacity:.5}.ml-mark[data-v-4e11ed06]{flex:0 0 auto;width:1.4em;text-align:center;font-weight:800;color:var(--tpl-accent-deep)}.is-done .ml-mark[data-v-4e11ed06]{color:var(--teal)}.is-current .ml-mark[data-v-4e11ed06]{color:var(--tpl-accent)}.ml-title[data-v-4e11ed06]{flex:1;font-weight:600}.is-current .ml-title[data-v-4e11ed06]{font-weight:800}.ml-dur[data-v-4e11ed06]{flex:0 0 auto;font-size:.85em;color:var(--tpl-text-soft)}.tpl-explore-path[data-v-1f3598d8]{background:var(--tpl-bg);color:var(--tpl-text);font-size:var(--tpl-font);padding:var(--tpl-gap)}.ep-list[data-v-1f3598d8]{list-style:none;margin:0;padding:0}.ep-node[data-v-1f3598d8]{position:relative;display:grid;grid-template-columns:var(--tpl-node-size) 1fr;gap:var(--tpl-gap);padding-bottom:var(--tpl-gap)}.ep-rail[data-v-1f3598d8]{position:absolute;left:calc(var(--tpl-node-size) / 2);top:0;bottom:0;width:3px;transform:translate(-50%);display:flex;justify-content:center}.ep-seg[data-v-1f3598d8]{position:absolute;top:var(--tpl-node-size);bottom:0;width:3px;background:var(--tpl-line)}.ep-seg.lit[data-v-1f3598d8]{background:var(--tpl-accent)}.ep-node:last-child .ep-seg[data-v-1f3598d8]{display:none}.ep-dot[data-v-1f3598d8]{position:relative;z-index:1;width:var(--tpl-node-size);height:var(--tpl-node-size);border-radius:50%;border:2px solid var(--tpl-line);background:var(--tpl-node-bg);color:var(--tpl-text-soft);display:grid;place-items:center;font-size:calc(var(--tpl-node-size) * .42);cursor:pointer;box-shadow:var(--tpl-shadow);transition:transform var(--transition-fast)}.ep-dot[data-v-1f3598d8]:disabled{cursor:not-allowed;opacity:.45}.is-done .ep-dot[data-v-1f3598d8]{background:var(--tpl-node-bg-done);border-color:var(--teal);color:var(--teal)}.is-current .ep-dot[data-v-1f3598d8]{background:var(--tpl-node-bg-current);border-color:var(--tpl-accent);color:var(--tpl-accent-deep);animation:ep-pulse-1f3598d8 1.6s ease-in-out infinite}@keyframes ep-pulse-1f3598d8{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.ep-body[data-v-1f3598d8]{padding-top:calc((var(--tpl-node-size) - 1.6em) / 2)}.ep-idx[data-v-1f3598d8]{font-size:.78em;color:var(--tpl-text-soft);letter-spacing:.04em}.ep-title[data-v-1f3598d8]{font-weight:700;margin-top:2px}.is-current .ep-title[data-v-1f3598d8]{color:var(--tpl-accent-deep)}.ep-dur[data-v-1f3598d8]{font-size:.82em;color:var(--tpl-text-soft);margin-top:2px}.tpl-picture-book[data-v-1c4cf1f5]{background:var(--tpl-bg);color:var(--tpl-text);font-size:var(--tpl-font)}.pb-stage[data-v-1c4cf1f5]{background:var(--tpl-card-bg);border:1px solid var(--tpl-line);border-radius:calc(var(--tpl-radius) + 6px);box-shadow:var(--tpl-shadow);padding:var(--tpl-gap);display:flex;flex-direction:column;gap:var(--tpl-gap)}.pb-banner[data-v-1c4cf1f5]{position:relative;aspect-ratio:16 / 9;border-radius:var(--tpl-radius);background:var(--tpl-node-bg-current);display:grid;place-items:center;overflow:hidden}.pb-emoji[data-v-1c4cf1f5]{font-size:clamp(48px,18vw,96px);filter:drop-shadow(0 6px 10px rgba(0,0,0,.12))}.pb-orb[data-v-1c4cf1f5]{position:absolute;width:60%;aspect-ratio:1;border-radius:50%;background:#ffffff80;bottom:-40%;right:-20%}.pb-idx[data-v-1c4cf1f5]{font-size:.8em;color:var(--tpl-text-soft);letter-spacing:.04em}.pb-title[data-v-1c4cf1f5]{font-family:var(--font-family-heading);font-weight:700;font-size:1.25em;margin-top:2px}.pb-dur[data-v-1c4cf1f5]{font-size:.85em;color:var(--tpl-text-soft);margin-top:4px}.pb-stars[data-v-1c4cf1f5]{display:flex;gap:6px;font-size:1.5em}.pb-star[data-v-1c4cf1f5]{color:var(--tpl-line);cursor:pointer;transition:transform var(--transition-fast)}.pb-star.lit[data-v-1c4cf1f5]{color:var(--amber)}.pb-star.now[data-v-1c4cf1f5]{color:var(--tpl-accent-deep);transform:scale(1.2)}.pb-nav[data-v-1c4cf1f5]{display:flex;gap:var(--tpl-gap)}.pb-turn[data-v-1c4cf1f5]{flex:1;padding:.7em 1em;border-radius:999px;border:1px solid var(--tpl-line);background:var(--tpl-node-bg);color:var(--tpl-text);font:inherit;font-weight:700;cursor:pointer}.pb-turn[data-v-1c4cf1f5]:disabled{opacity:.4;cursor:not-allowed}.pb-turn-primary[data-v-1c4cf1f5]{background:var(--tpl-accent-deep);color:#fff;border-color:transparent}.tpl-card-stack[data-v-3213866b]{background:var(--tpl-bg);color:var(--tpl-text);font-size:var(--tpl-font);padding:var(--tpl-gap)}.cs-stage[data-v-3213866b]{position:relative;display:flex;justify-content:center}.cs-card[data-v-3213866b]{background:var(--tpl-card-bg);border:1px solid var(--tpl-line);border-radius:calc(var(--tpl-radius) + 8px);box-shadow:var(--tpl-shadow);overflow:hidden}.cs-card-behind[data-v-3213866b]{position:absolute;inset:10px -6px auto 14px;bottom:-10px;opacity:.5;display:flex;align-items:center;gap:8px;padding:10px 14px;z-index:0}.cs-card-front[data-v-3213866b]{position:relative;z-index:1;width:100%}.cs-banner[data-v-3213866b]{position:relative;aspect-ratio:16 / 9;background:var(--tpl-node-bg-current);display:grid;place-items:center}.cs-emoji[data-v-3213866b]{font-size:clamp(40px,15vw,80px)}.cs-orb[data-v-3213866b]{position:absolute;width:55%;aspect-ratio:1;border-radius:50%;background:#ffffff73;bottom:-38%;left:-16%}.cs-body[data-v-3213866b]{padding:var(--tpl-gap);display:flex;flex-direction:column;gap:4px}.cs-idx[data-v-3213866b]{font-size:.8em;color:var(--tpl-text-soft)}.cs-title[data-v-3213866b]{font-weight:800;font-size:1.15em}.cs-dur[data-v-3213866b]{font-size:.85em;color:var(--tpl-text-soft)}.cs-go[data-v-3213866b]{margin-top:8px;align-self:flex-start;padding:.6em 1.2em;border:none;border-radius:999px;background:var(--tpl-accent-deep);color:#fff;font:inherit;font-weight:700;cursor:pointer}.cs-go[data-v-3213866b]:disabled{background:var(--tpl-node-bg);color:var(--tpl-text-soft);cursor:not-allowed}.cs-nav[data-v-3213866b]{display:flex;align-items:center;justify-content:center;gap:var(--tpl-gap);margin-top:var(--tpl-gap)}.cs-turn[data-v-3213866b]{width:40px;height:40px;border-radius:50%;border:1px solid var(--tpl-line);background:var(--tpl-card-bg);color:var(--tpl-text);font-size:20px;cursor:pointer}.cs-turn[data-v-3213866b]:disabled{opacity:.4;cursor:not-allowed}.cs-dots[data-v-3213866b]{display:flex;gap:6px}.cs-dot[data-v-3213866b]{width:7px;height:7px;border-radius:50%;background:var(--tpl-line)}.cs-dot.done[data-v-3213866b]{background:var(--teal)}.cs-dot.on[data-v-3213866b]{background:var(--tpl-accent);transform:scale(1.4)}.tpl-audio-first[data-v-6a752547]{background:var(--tpl-bg);color:var(--tpl-text);font-size:var(--tpl-font)}.af-now[data-v-6a752547]{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--tpl-gap);padding:var(--tpl-gap);background:var(--tpl-card-bg);border:1px solid var(--tpl-line);border-radius:var(--tpl-radius);box-shadow:var(--tpl-shadow)}.af-cover[data-v-6a752547]{width:calc(var(--tpl-node-size) * .9);height:calc(var(--tpl-node-size) * .9);border-radius:14px;background:var(--tpl-node-bg-current);display:grid;place-items:center;font-size:calc(var(--tpl-node-size) * .42)}.af-idx[data-v-6a752547]{font-size:.78em;color:var(--tpl-text-soft)}.af-title[data-v-6a752547]{font-weight:800;font-size:1.1em;margin-top:2px}.af-dur[data-v-6a752547]{font-size:.82em;color:var(--tpl-text-soft);margin-top:2px}.af-play[data-v-6a752547]{width:calc(var(--tpl-node-size) * 1.1);height:calc(var(--tpl-node-size) * 1.1);border-radius:50%;border:none;background:var(--tpl-accent-deep);color:#fff;font-size:calc(var(--tpl-node-size) * .5);cursor:pointer;box-shadow:0 6px 18px #0000002e;transition:transform var(--transition-fast)}.af-play[data-v-6a752547]:hover:not(:disabled){transform:scale(1.05)}.af-play[data-v-6a752547]:disabled{background:var(--tpl-node-bg);color:var(--tpl-text-soft);cursor:not-allowed}.af-list[data-v-6a752547]{list-style:none;margin:var(--tpl-gap) 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.af-row[data-v-6a752547]{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:transparent;border:none;border-radius:var(--tpl-radius);color:inherit;font:inherit;text-align:left;cursor:pointer}.af-row[data-v-6a752547]:hover:not(:disabled){background:var(--tpl-node-bg)}.af-row[data-v-6a752547]:disabled{opacity:.45;cursor:not-allowed}.af-mark[data-v-6a752547]{width:1.4em;text-align:center;color:var(--tpl-accent-deep);font-weight:800}.is-done .af-mark[data-v-6a752547]{color:var(--teal)}.af-row-title[data-v-6a752547]{flex:1}.is-current .af-row-title[data-v-6a752547]{font-weight:800;color:var(--tpl-accent-deep)}.af-row-dur[data-v-6a752547]{font-size:.85em;color:var(--tpl-text-soft)}.tpl-interactive-cards[data-v-bc94213d]{background:var(--tpl-bg);color:var(--tpl-text);font-size:var(--tpl-font)}.ic-card[data-v-bc94213d]{background:var(--tpl-card-bg);border:1px solid var(--tpl-line);border-radius:calc(var(--tpl-radius) + 6px);box-shadow:var(--tpl-shadow);padding:var(--tpl-gap);display:flex;flex-direction:column;gap:var(--tpl-gap)}.ic-idx[data-v-bc94213d]{font-size:.78em;color:var(--tpl-text-soft);letter-spacing:.04em}.ic-title[data-v-bc94213d]{font-weight:800;font-size:1.2em;margin-top:2px}.ic-dur[data-v-bc94213d]{font-size:.82em;color:var(--tpl-text-soft);margin-top:2px}.ic-stage[data-v-bc94213d]{min-height:180px;border-radius:var(--tpl-radius);background:var(--tpl-node-bg);display:grid;place-items:center;padding:var(--tpl-gap)}.ic-placeholder[data-v-bc94213d]{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--tpl-text-soft)}.ic-ph-emoji[data-v-bc94213d]{font-size:40px}.ic-ph-text[data-v-bc94213d]{font-size:.85em}.ic-progress[data-v-bc94213d]{height:6px;border-radius:999px;background:var(--tpl-line);overflow:hidden}.ic-progress-fill[data-v-bc94213d]{height:100%;background:var(--tpl-accent);transition:width var(--transition)}.ic-nav[data-v-bc94213d]{display:flex;gap:var(--tpl-gap)}.ic-turn[data-v-bc94213d]{flex:1;padding:.7em 1em;border-radius:999px;border:1px solid var(--tpl-line);background:var(--tpl-node-bg);color:var(--tpl-text);font:inherit;font-weight:700;cursor:pointer}.ic-turn[data-v-bc94213d]:disabled{opacity:.4;cursor:not-allowed}.ic-turn-primary[data-v-bc94213d]{background:var(--tpl-accent-deep);color:#fff;border-color:transparent}:root,[data-skin=sunny]{--tpl-bg: var(--paper);--tpl-card-bg: var(--bg-card);--tpl-node-bg: var(--surface-hover);--tpl-node-bg-done: color-mix(in srgb, var(--teal) 22%, var(--bg-card));--tpl-node-bg-current: color-mix(in srgb, var(--amber) 26%, var(--bg-card));--tpl-accent: var(--amber);--tpl-accent-deep: var(--amber-deep);--tpl-text: var(--ink);--tpl-text-soft: var(--ink-soft);--tpl-line: var(--surface-border);--tpl-radius: var(--radius-student-sm);--tpl-font: var(--font-size-base);--tpl-gap: var(--gap-xs);--tpl-node-size: 56px;--tpl-shadow: var(--shadow-card)}[data-skin=night]{--tpl-bg: #2a2733;--tpl-card-bg: #3a3540;--tpl-node-bg: #4a4452;--tpl-node-bg-done: #3f5e57;--tpl-node-bg-current: #5a4632;--tpl-accent: var(--amber);--tpl-accent-deep: var(--amber);--tpl-text: #f3ecdd;--tpl-text-soft: #c4bcc8;--tpl-line: rgba(255, 255, 255, .12);--tpl-radius: 14px;--tpl-font: 19.2px;--tpl-gap: 14px;--tpl-node-size: 60px;--tpl-shadow: 0 8px 24px rgba(0, 0, 0, .3)}[data-skin=travel]{--tpl-bg: #ffffff;--tpl-card-bg: #ffffff;--tpl-node-bg: #f0f0f5;--tpl-node-bg-done: #d8eee4;--tpl-node-bg-current: #fde7bd;--tpl-accent: var(--teal);--tpl-accent-deep: var(--teal);--tpl-text: #1a1a2e;--tpl-text-soft: #4a4a5e;--tpl-line: rgba(0, 0, 0, .15);--tpl-radius: 10px;--tpl-font: 17px;--tpl-gap: 20px;--tpl-node-size: 72px;--tpl-shadow: 0 2px 8px rgba(0, 0, 0, .08)}[data-skin=challenge]{--tpl-bg: var(--amber-soft);--tpl-card-bg: #ffffff;--tpl-node-bg: #ffffff;--tpl-node-bg-done: color-mix(in srgb, var(--amber) 30%, #fff);--tpl-node-bg-current: color-mix(in srgb, var(--berry) 18%, #fff);--tpl-accent: var(--amber);--tpl-accent-deep: var(--amber-deep);--tpl-text: var(--ink);--tpl-text-soft: #7a5b12;--tpl-line: rgba(206, 131, 20, .22);--tpl-radius: 18px;--tpl-font: var(--font-size-base);--tpl-gap: 12px;--tpl-node-size: 58px;--tpl-shadow: 0 8px 24px rgba(206, 131, 20, .25)}.tpl-renderer[data-v-8ef6e694]{border-radius:var(--tpl-radius, 12px);overflow:hidden}.tpl-selector[data-v-7445991e]{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap, 24px)}@media (max-width: 768px){.tpl-selector[data-v-7445991e]{grid-template-columns:1fr}}.ts-controls[data-v-7445991e]{display:flex;flex-direction:column;gap:var(--gap-sm, 16px)}.ts-step-title[data-v-7445991e]{font-weight:700;margin-bottom:8px}.ts-options[data-v-7445991e]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ts-opt[data-v-7445991e]{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border:2px solid var(--surface-border);border-radius:12px;background:var(--bg-card);cursor:pointer;font:inherit}.ts-opt.on[data-v-7445991e]{border-color:var(--amber-deep);background:var(--amber-soft)}.ts-opt-emoji[data-v-7445991e]{font-size:24px}.ts-opt-label[data-v-7445991e]{font-size:12px;font-weight:600}.ts-opt-soon[data-v-7445991e]{font-size:10px;color:var(--text-soft, var(--ink-soft))}.ts-opt-reco[data-v-7445991e],.ts-swatch-reco[data-v-7445991e]{position:absolute;top:-6px;right:-6px;font-size:14px}.ts-swatches[data-v-7445991e]{display:flex;gap:12px}.ts-swatch[data-v-7445991e]{position:relative;width:48px;height:48px;border-radius:50%;border:3px solid var(--surface-border);cursor:pointer}.ts-swatch.on[data-v-7445991e]{border-color:var(--ink)}.ts-swatch-check[data-v-7445991e]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.4)}.ts-preview-title[data-v-7445991e]{font-size:13px;font-weight:700;color:var(--text-soft, var(--ink-soft));margin-bottom:8px}.gate-overlay[data-v-b4119d6d]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:3000;padding:24px;animation:fade-in-b4119d6d .2s ease}.gate-card[data-v-b4119d6d]{position:relative;background:var(--bg-card);border-radius:var(--r-hero);padding:28px 24px 20px;max-width:340px;width:100%;text-align:center;box-shadow:var(--shadow-popup);animation:scale-in-b4119d6d .25s ease}.gate-x[data-v-b4119d6d]{position:absolute;top:8px;right:12px;background:none;border:none;font-size:26px;line-height:1;color:var(--text-secondary);cursor:pointer;min-width:36px;min-height:36px}.gate-icon[data-v-b4119d6d]{font-size:44px;display:block;margin-bottom:8px}.gate-card h2[data-v-b4119d6d]{font-size:var(--font-size-xl);font-weight:800;color:var(--text-primary);margin:0 0 6px}.gate-hint[data-v-b4119d6d]{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0 0 18px;line-height:1.5}.gate-dots[data-v-b4119d6d]{display:flex;gap:14px;justify-content:center;margin-bottom:6px}.gate-dot[data-v-b4119d6d]{width:16px;height:16px;border-radius:50%;border:2px solid var(--surface-border);background:transparent;transition:all var(--transition-fast)}.gate-dot.filled[data-v-b4119d6d]{background:var(--ink);border-color:var(--ink)}.gate-dots.shake[data-v-b4119d6d]{animation:shake-x-b4119d6d .42s ease}.gate-error[data-v-b4119d6d]{color:var(--color-danger-text);font-size:var(--font-size-sm);margin:4px 0 8px;font-weight:600}.gate-error-placeholder[data-v-b4119d6d]{color:transparent;font-size:var(--font-size-sm);margin:4px 0 8px}.gate-keypad[data-v-b4119d6d]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 18px}.gate-key[data-v-b4119d6d]{height:52px;border:1px solid var(--surface-border);background:var(--bg-cream);border-radius:var(--radius-student-sm);font-size:20px;font-weight:700;color:var(--ink);cursor:pointer;transition:background var(--transition-fast);min-height:var(--touch-min)}.gate-key[data-v-b4119d6d]:hover{background:var(--surface-hover)}.gate-key[data-v-b4119d6d]:active{background:var(--surface-active)}.gate-key-ghost[data-v-b4119d6d]{font-size:14px;color:var(--text-secondary)}.gate-key[data-v-b4119d6d]:disabled{opacity:.4;cursor:not-allowed}.gate-actions[data-v-b4119d6d]{display:flex;gap:10px}.gate-input[data-v-b4119d6d]{width:100%;padding:12px 14px;font-size:var(--font-size-base);border:2px solid var(--surface-border);border-radius:var(--radius-student-sm);background:var(--bg-cream);color:var(--text-primary);outline:none;box-sizing:border-box;margin:4px 0 8px;transition:border-color var(--transition-fast);min-height:var(--touch-min)}.gate-input[data-v-b4119d6d]:focus{border-color:var(--color-primary)}.gate-input[data-v-b4119d6d]:disabled{opacity:.6}.gate-success[data-v-b4119d6d]{color:var(--color-success-text);font-size:var(--font-size-sm);margin:4px 0 8px;font-weight:600}.gate-forgot[data-v-b4119d6d]{display:block;width:100%;margin-top:12px;background:none;border:none;color:var(--text-link);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;min-height:var(--touch-min);transition:opacity var(--transition-fast)}.gate-forgot[data-v-b4119d6d]:hover{opacity:.7}.gate-forgot-link[data-v-b4119d6d]{display:block;width:100%;margin-top:6px;background:none;border:none;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;min-height:var(--touch-min);transition:opacity var(--transition-fast)}.gate-forgot-link[data-v-b4119d6d]:hover{opacity:.7}.gate-cancel[data-v-b4119d6d]{flex:1;padding:12px;background:var(--bg-beige);color:var(--text-secondary);border:none;border-radius:var(--radius-student-sm);font-size:var(--font-size-base);font-weight:600;cursor:pointer;min-height:var(--touch-min)}.gate-ok[data-v-b4119d6d]{flex:1.4;padding:12px;background:var(--ink);color:var(--text-inverse);border:none;border-radius:var(--radius-student-sm);font-size:var(--font-size-base);font-weight:700;cursor:pointer;min-height:var(--touch-min)}.gate-ok[data-v-b4119d6d]:disabled{background:var(--ink-faint);cursor:not-allowed;opacity:.6}@keyframes fade-in-b4119d6d{0%{opacity:0}to{opacity:1}}@keyframes scale-in-b4119d6d{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes shake-x-b4119d6d{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.selector-trigger[data-v-36ee8c14]{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 4px;background:var(--surface-hover);border:1px solid var(--surface-border);border-radius:var(--radius-student-sm);cursor:pointer;transition:all var(--transition-fast);font-family:inherit;line-height:1}.selector-trigger[data-v-36ee8c14]:hover{background:var(--surface-active)}.selector-empty[data-v-36ee8c14]{border-style:dashed}.trigger-avatar[data-v-36ee8c14]{font-size:20px;line-height:1}.trigger-name[data-v-36ee8c14]{font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary)}.trigger-arrow[data-v-36ee8c14]{font-size:12px;color:var(--text-secondary);margin-left:2px}.selector-overlay[data-v-36ee8c14]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.selector-popup[data-v-36ee8c14]{width:100%;max-width:340px;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-popup);overflow:hidden}.popup-header[data-v-36ee8c14]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px}.popup-header h3[data-v-36ee8c14]{font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary);margin:0}.popup-close[data-v-36ee8c14]{background:none;border:none;font-size:18px;color:var(--text-secondary);cursor:pointer;min-width:var(--touch-min);min-height:var(--touch-min);display:flex;align-items:center;justify-content:center}.popup-list[data-v-36ee8c14]{padding:4px 12px}.popup-item[data-v-36ee8c14]{display:flex;align-items:center;gap:12px;width:100%;padding:12px;background:none;border:2px solid transparent;border-radius:var(--radius-student-sm);cursor:pointer;transition:all var(--transition-fast);min-height:var(--touch-min)}.popup-item[data-v-36ee8c14]:hover{background:var(--surface-hover)}.popup-item.active[data-v-36ee8c14]{background:var(--surface-hover);border-color:var(--color-primary)}.item-avatar[data-v-36ee8c14]{font-size:28px;flex-shrink:0}.item-name[data-v-36ee8c14]{flex:1;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);text-align:left}.item-check[data-v-36ee8c14]{font-size:18px;font-weight:800;color:var(--color-primary);flex-shrink:0}.popup-add[data-v-36ee8c14]{display:block;text-align:center;padding:14px;font-size:var(--font-size-sm);font-weight:600;color:var(--text-link);text-decoration:none;border-top:1px solid var(--surface-border);transition:background var(--transition-fast)}.popup-add[data-v-36ee8c14]:hover{background:var(--surface-hover);text-decoration:none}.stu-topbar-brand[data-v-1bd8044d]{font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary)}.stu-topbar-auth[data-v-1bd8044d]{margin-left:auto;display:inline-flex;align-items:center;gap:8px}.stu-topbar-link[data-v-1bd8044d]{padding:8px 14px;font-size:var(--font-size-sm);font-weight:700;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-student-sm);min-height:var(--touch-min);display:inline-flex;align-items:center;transition:background var(--transition-fast)}.stu-topbar-link[data-v-1bd8044d]:hover{background:var(--surface-hover)}.stu-topbar-btn[data-v-1bd8044d]{padding:8px 18px;font-size:var(--font-size-sm);font-weight:700;color:var(--text-inverse);background:var(--ink);text-decoration:none;border-radius:var(--radius-student-sm);min-height:var(--touch-min);display:inline-flex;align-items:center;transition:background var(--transition-fast)}.stu-topbar-btn[data-v-1bd8044d]:hover{background:var(--surface-active)}.stu-topbar-parent[data-v-1bd8044d]{margin-left:auto;display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:var(--surface-muted);border:none;border-radius:var(--radius-student-sm);cursor:pointer;font-family:inherit;transition:background var(--transition-fast)}.stu-topbar-parent[data-v-1bd8044d]:hover{background:var(--surface-hover)}.stu-topbar-parent-text[data-v-1bd8044d]{font-size:var(--font-size-xs);font-weight:700;color:var(--text-secondary)}.stu-topbar-back[data-v-1bd8044d]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--surface-hover);border:none;border-radius:var(--radius-student-sm);font-size:18px;color:var(--text-primary);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast)}.stu-topbar-back[data-v-1bd8044d]:hover{background:var(--surface-active)}.stu-topbar-title[data-v-1bd8044d]{flex:1;font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stu-topbar-icon-btn[data-v-1bd8044d]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--surface-hover);border:none;border-radius:var(--radius-student-sm);font-size:20px;flex-shrink:0;cursor:pointer;transition:background var(--transition-fast)}.stu-topbar-icon-btn[data-v-1bd8044d]:hover{background:var(--surface-active)}.stu-topbar-tag[data-v-1bd8044d]{font-size:var(--font-size-xs);font-weight:700;color:var(--amber-deep);background:var(--amber-soft);padding:4px 10px;border-radius:var(--radius-student-sm);flex-shrink:0}.stu-topbar-exit[data-v-1bd8044d]{background:var(--surface-hover);border:none;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;padding:6px 14px;border-radius:var(--radius-student-sm);flex-shrink:0;transition:background var(--transition-fast)}.stu-topbar-exit[data-v-1bd8044d]:hover{background:var(--surface-active)}.child-switching .student-content[data-v-1bd8044d]>*{transition:opacity .15s ease;opacity:.6}.exit-hint[data-v-1bd8044d]{position:fixed;bottom:calc(var(--tabbar-height) + 20px);left:50%;transform:translate(-50%);padding:10px 20px;background:var(--ink);color:var(--text-inverse);font-size:var(--font-size-sm);border-radius:var(--radius-student-sm);z-index:999;box-shadow:var(--shadow-card)}:root{--ink: #2a2733;--ink-soft: #6e6779;--ink-faint: #756c80;--paper: #fbf7ef;--paper-2: #f3ecdd;--paper-sunk: #efe6d2;--amber: #f5a524;--amber-deep: #ce8314;--amber-soft: #fbe7bd;--teal: #0e7c7b;--berry: #c8406a;--macaron-blue: #a8d8ea;--macaron-pink: #ffd1dc;--macaron-yellow: #ffe5b4;--macaron-mint: #b5ead7;--macaron-lavender: #d5c6e0;--macaron-peach: #ffdab9;--age-low: #f4e3dc;--age-mid: #f4eccf;--age-high: #dce7e6;--color-blue: var(--macaron-blue);--color-pink: var(--macaron-pink);--color-yellow: var(--macaron-yellow);--color-mint: var(--macaron-mint);--color-primary: var(--amber-deep);--color-accent: var(--amber);--color-warning: #b8860b;--color-success: #2e9e6e;--color-danger: #c0392b;--color-info: var(--macaron-lavender);--color-success-text: #1f7a55;--color-danger-text: #c0392b;--color-warning-text: #8a6508;--bg-cream: var(--paper);--bg-beige: var(--paper-2);--bg-card: #ffffff;--bg-sidebar: #fff8f0;--bg-dark: #1a1a2e;--text-primary: var(--ink);--text-secondary: var(--ink-soft);--text-disabled: var(--ink-faint);--text-inverse: #ffffff;--text-link: var(--teal);--radius-student: 16px;--radius-student-sm: 12px;--radius-admin: 8px;--radius-admin-sm: 6px;--radius: var(--radius-student);--radius-sm: var(--radius-student-sm);--r-hero: 22px;--r-tag: 7px;--gap-xs: 8px;--gap-sm: 16px;--gap: 24px;--gap-lg: 32px;--gap-xl: 48px;--touch-min: 48px;--touch-ideal: 56px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-2xl: 28px;--font-size-3xl: 36px;--transition-fast: .15s ease;--transition: .25s ease;--transition-slow: .4s ease;--shadow-card: 0 1px 2px rgba(42, 39, 51, .04), 0 8px 24px -12px rgba(42, 39, 51, .18);--shadow-card-hover: 0 1px 2px rgba(42, 39, 51, .04), 0 16px 30px -16px rgba(42, 39, 51, .28);--shadow-popup: 0 8px 30px rgba(0, 0, 0, .12);--shadow-hero: 0 2px 4px rgba(206, 131, 20, .18), 0 18px 40px -18px rgba(206, 131, 20, .45);--surface-border: rgba(42, 39, 51, .1);--surface-hover: rgba(42, 39, 51, .04);--surface-active: rgba(42, 39, 51, .08);--surface-muted: rgba(42, 39, 51, .03);--skeleton-base: rgba(42, 39, 51, .06);--skeleton-shine: rgba(42, 39, 51, .12);--section-toddler: var(--age-low);--section-kid: var(--age-mid);--section-tween: var(--age-high);--section-free: var(--macaron-mint);--sidebar-width: 220px;--sidebar-collapsed: 64px;--header-height: 56px;--tabbar-height: 64px;--font-family: "Plus Jakarta Sans", "Nunito", "Noto Sans SC", system-ui, -apple-system, sans-serif;--font-family-heading: "Fraunces", "Noto Serif SC", "Nunito", system-ui, -apple-system, serif;--font-family-mono: "JetBrains Mono", "Fira Code", monospace}.admin-layout,.admin-layout *{--radius: var(--radius-admin);--radius-sm: var(--radius-admin-sm)}body[data-role=creator-pro]{--bg-sidebar: #fffbf5;--bg-cream: #fff8f0;--color-primary: #7bc8a4;--color-accent: #ffb3b3;--shadow-card: 0 2px 16px rgba(181, 234, 215, .25);--shadow-card-hover: 0 6px 24px rgba(181, 234, 215, .35);--radius-admin: 10px;--radius-admin-sm: 8px;--surface-border: rgba(181, 234, 215, .2);--surface-hover: rgba(181, 234, 215, .12);--surface-active: rgba(181, 234, 215, .2);--surface-muted: rgba(181, 234, 215, .08);--skeleton-base: rgba(181, 234, 215, .12);--skeleton-shine: rgba(181, 234, 215, .28)}body[data-role=creator-pro] .admin-layout{--radius: 10px;--radius-sm: 8px}body[data-role=operator]{--bg-sidebar: #f5f6f8;--bg-cream: #f8f9fb;--color-primary: #5b8abf;--color-accent: #e88a8a;--shadow-card: 0 2px 8px rgba(91, 138, 191, .12);--shadow-card-hover: 0 4px 16px rgba(91, 138, 191, .2);--radius-admin: 6px;--radius-admin-sm: 4px;--text-primary: #3a3a3c;--text-secondary: #64656a;--surface-border: rgba(91, 138, 191, .15);--surface-hover: rgba(91, 138, 191, .08);--surface-active: rgba(91, 138, 191, .15);--surface-muted: rgba(91, 138, 191, .05);--skeleton-base: rgba(91, 138, 191, .1);--skeleton-shine: rgba(91, 138, 191, .22)}body[data-role=operator] .admin-layout{--radius: 6px;--radius-sm: 4px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-cream);line-height:1.6;min-height:100vh}body.student-app{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}body.student-app input,body.student-app textarea,body.student-app .legal-page{user-select:text;-webkit-user-select:text}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline}ul,ol{list-style:none}img,svg{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit;border:none;outline:none;background:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid var(--ink)!important;outline-offset:2px;border-radius:2px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-disabled);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.page-container{min-height:100vh;max-width:960px;margin:0 auto;padding:var(--gap-sm)}.page-container-wide{min-height:100vh;max-width:1280px;margin:0 auto;padding:var(--gap-sm)}.card{background:var(--bg-card);border-radius:var(--radius);padding:var(--gap-sm);box-shadow:var(--shadow-card);transition:transform var(--transition),box-shadow var(--transition)}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover)}.course-card{background:linear-gradient(135deg,var(--bg-card) 60%,var(--macaron-blue) 180%);border-radius:var(--radius);padding:var(--gap-sm);box-shadow:var(--shadow-card);border-top:4px solid var(--macaron-blue);transition:transform var(--transition),box-shadow var(--transition);cursor:pointer}.course-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-xs);padding:12px 28px;border-radius:var(--radius);font-size:var(--font-size-base);font-weight:700;letter-spacing:.02em;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);min-height:var(--touch-min);min-width:var(--touch-min)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:var(--text-primary);box-shadow:0 2px 8px #a8d8ea66}.btn-primary:hover{box-shadow:0 4px 16px #a8d8ea99}.btn-pink{background:var(--color-accent);color:var(--text-primary);box-shadow:0 2px 8px #ffd1dc66}.btn-pink:hover{box-shadow:0 4px 16px #ffd1dc99}.btn-danger{background:var(--color-danger);color:var(--text-inverse)}.btn-outline{background:transparent;border:2px solid var(--color-primary);color:var(--text-primary)}.btn-text{background:transparent;color:var(--text-secondary);padding:8px 16px}.tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:9999px;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em}.tag-age{background:var(--macaron-pink);color:var(--text-primary)}.tag-trial{background:var(--macaron-mint);color:var(--text-primary)}.tag-owned{background:var(--macaron-blue);color:var(--text-primary)}.section-title{display:flex;align-items:center;gap:var(--gap-xs);font-size:var(--font-size-xl);font-weight:800;color:var(--text-primary);margin-bottom:var(--gap-sm)}.section-title .icon{font-size:var(--font-size-2xl)}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--gap-sm);padding:var(--gap-xl) var(--gap-sm);color:var(--text-secondary)}.loading-spinner:before{content:"";width:40px;height:40px;border:4px solid var(--color-primary);border-top-color:var(--color-accent);border-radius:50%;animation:bounce-soft .8s ease-in-out infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--gap-sm);padding:var(--gap-xl) var(--gap-sm);color:var(--text-secondary);text-align:center}.empty-state .icon{font-size:48px;opacity:.6}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--gap-sm);padding:var(--gap-xl) var(--gap-sm);color:var(--text-secondary);text-align:center}.error-state .icon{font-size:48px}.progress-fill{height:8px;background:var(--color-primary);border-radius:4px;transition:width var(--transition)}@keyframes star-pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}@keyframes bounce-soft{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.page-fade-enter-active,.page-fade-leave-active{transition:opacity var(--transition),transform var(--transition)}.page-fade-leave-active{position:absolute;inset-inline:0;pointer-events:none}.page-fade-enter-from{opacity:0;transform:translateY(10px)}.page-fade-leave-to{opacity:0;transform:translateY(-6px)}.tab-fade-enter-active,.tab-fade-leave-active{transition:opacity var(--transition-fast)}.tab-fade-enter-from,.tab-fade-leave-to{opacity:0}.skeleton{background:linear-gradient(90deg,var(--bg-beige) 25%,rgba(168,216,234,.2) 50%,var(--bg-beige) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,rgba(255,255,255,.4) 0%,transparent 70%);opacity:0;transition:opacity .4s}.btn-ripple:active:after{opacity:1;transition:opacity 0s}.card-lift{transition:transform var(--transition),box-shadow var(--transition)}.card-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}@keyframes count-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.count-animate{animation:count-up .5s ease both}@keyframes bounce-in{0%{transform:scale(0);opacity:0}50%{transform:scale(1.15)}70%{transform:scale(.95)}to{transform:scale(1);opacity:1}}.bounce-in{animation:bounce-in .5s ease both}@keyframes confetti-fall{0%{transform:translateY(-100%) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes pulse-glow{0%,to{box-shadow:0 0 #a8d8ea66}50%{box-shadow:0 0 0 12px #a8d8ea00}}.pulse-glow{animation:pulse-glow 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.float-anim{animation:float 3s ease-in-out infinite}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.wiggle:hover{animation:wiggle .5s ease}@keyframes icon-pop{0%{transform:scale(1)}30%{transform:scale(1.3)}60%{transform:scale(.9)}to{transform:scale(1.15)}}.icon-pop{animation:icon-pop .35s ease}@keyframes fade-in-up-stagger{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.stagger-item{opacity:0;animation:fade-in-up-stagger .4s ease forwards}@keyframes rainbow-sweep{0%{background-position:-200% center}to{background-position:200% center}}@keyframes heart-float{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-60px) scale(1.5);opacity:0}}@keyframes dot-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.dot-bounce:nth-child(1){animation-delay:-.32s}.dot-bounce:nth-child(2){animation-delay:-.16s}.dot-bounce:nth-child(3){animation-delay:0s}@keyframes spin-in{0%{transform:rotate(-180deg) scale(0);opacity:0}to{transform:rotate(0) scale(1);opacity:1}}@media (max-width: 768px){.hide-mobile{display:none!important}}@media (min-width: 769px){.hide-desktop{display:none!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--color-blue: var(--macaron-blue);--color-pink: var(--macaron-pink);--color-yellow: var(--macaron-yellow);--color-mint: var(--macaron-mint);--radius: var(--radius-student);--radius-sm: var(--radius-student-sm)}body{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}h1,h2,h3,.welcome-greeting,.section-title,.page-title{font-family:var(--font-family-heading)}.course-card{background:linear-gradient(135deg,var(--bg-card) 0%,var(--bg-beige) 100%);border-radius:var(--radius);overflow:hidden;position:relative}.course-card:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--amber)}@keyframes star-pop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.4);opacity:1}to{transform:scale(1);opacity:1}}.star-complete{animation:star-pop .4s ease-out}@keyframes bounce-soft{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.loading-spinner .emoji{font-size:48px;animation:bounce-soft 1.2s ease-in-out infinite}.empty-state .empty-icon{font-size:64px;margin-bottom:var(--gap-sm);opacity:.6}.empty-state h3{font-size:var(--font-size-lg);margin-bottom:var(--gap-xs);color:var(--text-primary)}.error-state .error-icon{font-size:64px;margin-bottom:var(--gap-sm)}.error-state h3{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:var(--gap-xs)}.error-state p{color:var(--text-secondary);margin-bottom:var(--gap-sm)}.error-state .retry-btn{background:var(--macaron-yellow);color:var(--text-primary);padding:10px 24px;border-radius:var(--radius);font-weight:600;border:none;cursor:pointer}.maintenance-banner{text-align:center;padding:var(--gap);background:var(--macaron-yellow);border-radius:var(--radius);margin:var(--gap-sm) 0}.maintenance-banner .m-icon{font-size:36px;margin-bottom:var(--gap-xs)}.maintenance-banner p{font-size:var(--font-size-base);color:var(--text-primary);font-weight:600}.course-card{border-top:0}.btn-primary{background:var(--ink);color:var(--text-inverse);box-shadow:0 2px 8px #2a27332e}.btn-primary:hover{box-shadow:0 4px 16px #2a273347}.btn-primary:disabled{background:var(--ink-faint);color:var(--text-inverse);opacity:.55;cursor:not-allowed}.btn-pink{background:var(--amber-deep);color:var(--text-inverse);box-shadow:0 2px 8px #ce831440}.btn-pink:hover{box-shadow:0 4px 16px #ce831459}.btn-outline{border:2px solid var(--amber-deep);color:var(--ink)}.tag-age{background:var(--age-low);color:var(--ink)}.tag-trial{background:var(--berry);color:var(--text-inverse)}.tag-owned{background:var(--age-high);color:var(--ink)}.progress-fill{background:var(--teal)}.skeleton{background:linear-gradient(90deg,var(--bg-beige) 25%,var(--skeleton-shine) 50%,var(--bg-beige) 75%)}
