.shell[data-v-f989a4d8]{position:relative;z-index:1;max-width:var(--max-w);margin:0 auto;min-height:100vh;padding:20px 16px 40px}.header[data-v-f989a4d8]{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px}.eyebrow[data-v-f989a4d8]{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-faint);margin-bottom:4px}.brand[data-v-f989a4d8]{font-family:var(--font-display);font-size:clamp(32px,6vw,44px);font-weight:700;line-height:1.1;color:var(--color-ink)}.nav-wrap[data-v-f989a4d8]{display:flex;align-items:center;gap:8px}.tabs[data-v-f989a4d8]{display:flex;gap:6px;padding:5px;border-radius:999px;background:#ffffffb3;border:1px solid var(--color-border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.gear[data-v-f989a4d8]{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:50%;background:#ffffffb3;border:1px solid var(--color-border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--color-ink-muted);font-size:18px;transition:background .22s var(--ease-out),color .22s var(--ease-out),transform .22s var(--ease-out)}.gear[data-v-f989a4d8]:hover{color:var(--color-ink);transform:rotate(45deg)}.gear.active[data-v-f989a4d8]{background:var(--color-primary);color:#fff}.tab[data-v-f989a4d8]{padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;color:var(--color-ink-muted);transition:background .22s var(--ease-out),color .22s var(--ease-out),transform .22s var(--ease-out)}.tab[data-v-f989a4d8]:hover{color:var(--color-ink)}.tab.active[data-v-f989a4d8]{background:var(--color-primary);color:#fff;transform:translateY(-1px)}.main[data-v-f989a4d8]{min-height:60vh}@media(max-width:640px){.header[data-v-f989a4d8]{align-items:stretch}.nav-wrap[data-v-f989a4d8]{width:100%}.tabs[data-v-f989a4d8]{flex:1;overflow-x:auto}.tab[data-v-f989a4d8]{flex:1;text-align:center;white-space:nowrap}}.toast[data-v-ace56b66]{position:fixed;left:50%;bottom:12%;z-index:1000;transform:translate(-50%);max-width:min(86vw,360px);padding:12px 18px;border-radius:999px;background:#264653eb;color:#fff;font-size:14px;text-align:center;box-shadow:var(--shadow-soft)}.toast-enter-active[data-v-ace56b66],.toast-leave-active[data-v-ace56b66]{transition:opacity .22s var(--ease-out),transform .22s var(--ease-out)}.toast-enter-from[data-v-ace56b66],.toast-leave-to[data-v-ace56b66]{opacity:0;transform:translate(-50%,8px)}.mask[data-v-b824c0ca]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:grid;place-items:center;padding:24px;background:#26465359;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog[data-v-b824c0ca]{width:min(100%,360px);padding:24px;border-radius:var(--radius-lg);background:var(--color-surface-solid);box-shadow:var(--shadow-soft);animation:pop-in .28s var(--ease-out)}h3[data-v-b824c0ca]{font-family:var(--font-display);font-size:22px;margin-bottom:10px}p[data-v-b824c0ca]{color:var(--color-ink-muted);line-height:1.55;font-size:15px}.actions[data-v-b824c0ca]{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}button[data-v-b824c0ca]{min-width:84px;padding:10px 16px;border-radius:999px;font-weight:600}.ghost[data-v-b824c0ca]{background:var(--color-primary-soft);color:var(--color-primary-dark)}.primary[data-v-b824c0ca]{background:var(--color-primary);color:#fff}.fade-enter-active[data-v-b824c0ca],.fade-leave-active[data-v-b824c0ca]{transition:opacity .2s var(--ease-out)}.fade-enter-from[data-v-b824c0ca],.fade-leave-to[data-v-b824c0ca]{opacity:0}.panel[data-v-8612dbca]{display:grid;gap:16px}.controls[data-v-8612dbca]{display:grid;grid-template-columns:1fr 1fr;gap:10px}label[data-v-8612dbca]{display:grid;gap:6px;padding:12px 14px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}label span[data-v-8612dbca]{font-size:12px;color:var(--color-ink-faint)}select[data-v-8612dbca]{border:none;background:transparent;outline:none;font-weight:600}.actions[data-v-8612dbca]{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.action-placeholder[data-v-8612dbca]{visibility:hidden}.action[data-v-8612dbca]{display:grid;place-items:center;gap:3px;min-height:64px;padding:6px 4px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);font-weight:600;font-size:12px;transition:transform .18s var(--ease-out),background .18s var(--ease-out)}.action[data-v-8612dbca]:active{transform:scale(.97)}.action[data-v-8612dbca]:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.action[data-v-8612dbca]:disabled:active{transform:none}label.disabled[data-v-8612dbca]{opacity:.5;cursor:not-allowed}select[data-v-8612dbca]:disabled{cursor:not-allowed}.action.primary[data-v-8612dbca]{background:var(--color-primary);border-color:transparent;color:#fff;animation:pulse-soft 2.4s infinite}.action.danger[data-v-8612dbca]{background:var(--color-danger);border-color:transparent;color:#fff}.icon[data-v-8612dbca]{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.75;line-height:1}.meta h3[data-v-8612dbca]{font-family:var(--font-display);display:flex;justify-content:center;align-items:baseline;gap:10px;font-size:22px;margin-bottom:10px}.meta .title-text[data-v-8612dbca]{font-size:18px;color:var(--color-primary-dark);margin-bottom:6px;letter-spacing:.04em}.complete-tip[data-v-8612dbca]{text-align:center;color:var(--color-primary-dark);font-size:13px;margin-top:8px;font-weight:600}.meta .pct[data-v-8612dbca]{font-size:14px;font-weight:600;color:var(--color-ink-faint);font-variant-numeric:tabular-nums}.progress[data-v-8612dbca]{height:8px;border-radius:999px;background:#26465314;overflow:hidden}.bar[data-v-8612dbca]{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));transition:width .25s var(--ease-out)}.grid[data-v-8612dbca]{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px}.chip[data-v-8612dbca]{display:grid;place-items:center;min-height:52px;padding:8px;border-radius:14px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-family:var(--font-display);font-size:20px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;animation:pop-in .35s var(--ease-out) both;transition:transform .15s var(--ease-out),background .2s var(--ease-out),color .2s var(--ease-out)}.chip.is-alphabet[data-v-8612dbca]{display:flex;align-items:baseline;gap:2px}.chip.is-alphabet .chip-upper[data-v-8612dbca]{font-size:22px}.chip.is-alphabet .chip-lower[data-v-8612dbca]{font-size:16px;color:var(--color-primary);font-weight:500}.chip.mistake.is-alphabet .chip-lower[data-v-8612dbca]{color:#d63031}.chip[data-v-8612dbca]:hover{transform:scale(1.05)}.chip[data-v-8612dbca]:active{transform:scale(.95)}.chip.mistake[data-v-8612dbca]{background:#ffe5e5;color:#d63031;box-shadow:inset 0 0 0 2px #e17055}.empty[data-v-8612dbca]{padding:36px 16px;text-align:center;color:var(--color-ink-muted);border-radius:var(--radius-md);border:1px dashed var(--color-border);background:#ffffff73}.empty.soft[data-v-8612dbca]{padding:28px 16px}.add-mistake[data-v-8612dbca]{display:grid;grid-auto-flow:column;place-items:center;gap:8px;padding:14px 18px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-accent),#f0932b);color:#fff;font-weight:700;border:none;box-shadow:var(--shadow-soft);transition:transform .18s var(--ease-out)}.add-mistake[data-v-8612dbca]:active{transform:scale(.98)}.add-mistake .icon[data-v-8612dbca]{opacity:.9}.book-tip[data-v-8612dbca]{text-align:center;color:var(--color-ink-muted);font-size:14px;margin-bottom:16px}.book-list[data-v-8612dbca]{display:grid;gap:10px}.book-item[data-v-8612dbca]{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-radius:14px;background:var(--color-primary-soft);border:1px solid var(--color-border);font-weight:600;transition:transform .18s var(--ease-out),background .18s var(--ease-out)}.book-item[data-v-8612dbca]:active{transform:scale(.98)}.book-name[data-v-8612dbca]{color:var(--color-primary-dark)}.book-count[data-v-8612dbca]{font-size:13px;color:var(--color-ink-faint)}.pwd-mask[data-v-8612dbca]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:grid;place-items:center;padding:24px;background:#26465359;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.pwd-dialog[data-v-8612dbca]{width:min(100%,360px);padding:24px;border-radius:var(--radius-lg);background:var(--color-surface-solid);box-shadow:var(--shadow-soft);animation:pop-in .28s var(--ease-out)}.pwd-dialog h3[data-v-8612dbca]{font-family:var(--font-display);font-size:22px;margin-bottom:14px;text-align:center}.pwd-input[data-v-8612dbca]{width:100%;padding:12px 14px;border-radius:14px;background:#ffffffb3;border:1px solid var(--color-border);font-size:18px;letter-spacing:.3em;text-align:center;outline:none;transition:border-color .18s var(--ease-out)}.pwd-input[data-v-8612dbca]:focus{border-color:var(--color-primary)}.pwd-error[data-v-8612dbca]{margin-top:8px;color:#e63946;font-size:13px;text-align:center}.pwd-actions[data-v-8612dbca]{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.pwd-actions button[data-v-8612dbca]{min-width:84px;padding:10px 16px;border-radius:999px;font-weight:600}.pwd-ghost[data-v-8612dbca]{background:var(--color-primary-soft);color:var(--color-primary-dark)}.pwd-primary[data-v-8612dbca]{background:var(--color-primary);color:#fff}.fade-enter-active[data-v-8612dbca],.fade-leave-active[data-v-8612dbca]{transition:opacity .2s var(--ease-out)}.fade-enter-from[data-v-8612dbca],.fade-leave-to[data-v-8612dbca]{opacity:0}.view[data-v-d748a0fc]{display:grid;gap:18px}.hero-card[data-v-d748a0fc]{padding:18px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modes[data-v-d748a0fc]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.mode[data-v-d748a0fc]{padding:12px 10px;border-radius:14px;font-weight:700;background:#ffffffb3;border:1px solid transparent;color:var(--color-ink-muted)}.mode.active[data-v-d748a0fc]{background:var(--color-primary-soft);color:var(--color-primary-dark);border-color:#2a9d8f40}.types[data-v-d748a0fc]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.type[data-v-d748a0fc]{padding:8px 12px;border-radius:999px;background:#ffffffbf;border:1px solid var(--color-border);color:var(--color-ink-muted);font-size:13px;font-weight:600}.type.on[data-v-d748a0fc]{background:var(--color-accent-soft);border-color:transparent;color:var(--color-ink)}.type.clear-btn[data-v-d748a0fc]{background:transparent;border:1px dashed var(--color-danger);color:var(--color-danger)}.type.clear-btn[data-v-d748a0fc]:active{transform:scale(.95)}.hint[data-v-d748a0fc]{margin-bottom:16px;color:var(--color-ink-muted);line-height:1.5;font-size:14px}.generate[data-v-d748a0fc]{width:100%;padding:14px 18px;border-radius:999px;background:linear-gradient(135deg,var(--color-primary),#3bb8a8);color:#fff;font-weight:700;box-shadow:var(--shadow-press);transition:transform .18s var(--ease-out)}.generate[data-v-d748a0fc]:active{transform:scale(.98)}.generate[data-v-d748a0fc]:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.generate[data-v-d748a0fc]:disabled:active{transform:none}.view[data-v-88800ed8]{display:grid;gap:18px}.hero-card[data-v-88800ed8]{padding:18px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modes[data-v-88800ed8]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.mode[data-v-88800ed8]{padding:12px 10px;border-radius:14px;font-weight:700;background:#ffffffb3;border:1px solid transparent;color:var(--color-ink-muted)}.mode.active[data-v-88800ed8]{background:var(--color-primary-soft);color:var(--color-primary-dark);border-color:#2a9d8f40}.toolbar[data-v-88800ed8]{display:flex;justify-content:space-between;align-items:center}.count[data-v-88800ed8]{font-size:13px;color:var(--color-ink-faint)}.toolbar-actions[data-v-88800ed8]{display:flex;gap:6px}.chip[data-v-88800ed8]{padding:6px 12px;border-radius:999px;background:#ffffffb3;border:1px solid var(--color-border);color:var(--color-ink-muted);font-size:12px;font-weight:600}.groups[data-v-88800ed8]{display:grid;gap:10px}.group[data-v-88800ed8]{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);overflow:hidden}.group-header[data-v-88800ed8]{width:100%;display:flex;align-items:center;gap:8px;padding:12px 16px;background:#ffffff80;border:none;font-weight:600;color:var(--color-ink);cursor:pointer}.group-arrow[data-v-88800ed8]{transition:transform .2s ease;font-size:16px;color:var(--color-ink-faint)}.group-arrow.open[data-v-88800ed8]{transform:rotate(90deg)}.group-title[data-v-88800ed8]{flex:1;text-align:left}.group-count[data-v-88800ed8]{font-size:12px;color:var(--color-ink-faint);font-weight:500}.group-body[data-v-88800ed8]{border-top:1px solid var(--color-border);padding:12px}.card-grid[data-v-88800ed8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.read-card[data-v-88800ed8]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:14px 6px;border-radius:var(--radius-md);background:#ffffffbf;border:1px solid var(--color-border);cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease}.read-card[data-v-88800ed8]:hover{background:#2a9d8f0f;border-color:#2a9d8f33}.read-card[data-v-88800ed8]:active{transform:scale(.92);background:#2a9d8f1f}.read-card.playing[data-v-88800ed8]{background:var(--color-primary-soft);border-color:var(--color-primary);box-shadow:0 0 0 2px #2a9d8f33;animation:pulse-glow-88800ed8 1.2s ease-in-out infinite}.card-show[data-v-88800ed8]{font-size:20px;font-weight:700;color:var(--color-ink);font-family:var(--font-display);line-height:1.2}.card-show.is-alphabet[data-v-88800ed8]{display:flex;align-items:baseline;gap:2px}.card-show.is-alphabet .show-upper[data-v-88800ed8]{font-size:22px}.card-show.is-alphabet .show-lower[data-v-88800ed8]{font-size:16px;color:var(--color-ink-muted)}.read-card.playing .card-show.is-alphabet .show-lower[data-v-88800ed8]{color:var(--color-primary)}.read-card.playing .card-show[data-v-88800ed8]{color:var(--color-primary-dark)}.card-icon[data-v-88800ed8]{font-size:11px;color:var(--color-ink-faint)}.read-card.playing .card-icon[data-v-88800ed8]{color:var(--color-primary)}@keyframes pulse-glow-88800ed8{0%,to{box-shadow:0 0 #2a9d8f4d}50%{box-shadow:0 0 0 6px #2a9d8f00}}.view[data-v-0ee99dfb]{display:grid;gap:16px}.header[data-v-0ee99dfb]{text-align:center;margin-bottom:8px}.title[data-v-0ee99dfb]{font-family:var(--font-display);font-size:24px;font-weight:700;margin-bottom:6px}.desc[data-v-0ee99dfb]{color:var(--color-ink-muted);font-size:14px}.book-grid[data-v-0ee99dfb]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.book-card[data-v-0ee99dfb]{display:grid;gap:14px;padding:18px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.book-card-head[data-v-0ee99dfb]{display:flex;justify-content:space-between;align-items:center}.book-card-title[data-v-0ee99dfb]{font-family:var(--font-display);font-size:18px;font-weight:700}.book-badge[data-v-0ee99dfb]{display:grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:#ffe5e5;color:#d63031;font-size:13px;font-weight:700}.book-card-actions[data-v-0ee99dfb]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn[data-v-0ee99dfb]{padding:11px 14px;border-radius:999px;font-weight:600;font-size:14px;border:1px solid var(--color-border);background:var(--color-surface);transition:transform .18s var(--ease-out)}.btn[data-v-0ee99dfb]:active{transform:scale(.97)}.btn.primary[data-v-0ee99dfb]{background:var(--color-primary);color:#fff;border-color:transparent}.btn.danger[data-v-0ee99dfb]{background:#d63031;color:#fff;border-color:transparent}.btn.danger[data-v-0ee99dfb]:disabled{opacity:.45;cursor:not-allowed}.btn.danger-outline[data-v-0ee99dfb]{background:#ffe5e5;color:#d63031;border-color:#fab1a0}.back-btn[data-v-0ee99dfb]{display:grid;grid-auto-flow:column;place-items:center;gap:6px;justify-content:start;padding:10px 16px;border-radius:999px;background:var(--color-surface);border:1px solid var(--color-border);font-weight:600;font-size:14px;transition:transform .18s var(--ease-out)}.back-btn[data-v-0ee99dfb]:active{transform:scale(.97)}.back-btn .icon[data-v-0ee99dfb]{font-size:11px;opacity:.7;text-transform:uppercase}.empty-state[data-v-0ee99dfb]{padding:48px 20px;text-align:center;color:var(--color-ink-muted);border-radius:var(--radius-md);border:1px dashed var(--color-border);background:#ffffff73;font-size:15px}.manage-mask[data-v-0ee99dfb]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:grid;place-items:center;padding:24px;background:#26465359;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.manage-dialog[data-v-0ee99dfb]{width:min(100%,520px);max-height:80vh;display:flex;flex-direction:column;padding:24px;border-radius:var(--radius-lg);background:var(--color-surface-solid);box-shadow:var(--shadow-soft);animation:pop-in .28s var(--ease-out)}.manage-head[data-v-0ee99dfb]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.manage-head h3[data-v-0ee99dfb]{font-family:var(--font-display);font-size:20px}.close-btn[data-v-0ee99dfb]{width:32px;height:32px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:14px;display:grid;place-items:center}.manage-count[data-v-0ee99dfb]{color:var(--color-ink-muted);font-size:13px;margin-bottom:14px}.manage-grid[data-v-0ee99dfb]{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px;padding-bottom:14px}.manage-chip[data-v-0ee99dfb]{display:grid;place-items:center;min-height:48px;padding:6px;border-radius:12px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-family:var(--font-display);font-size:18px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;border:2px solid transparent;transition:all .15s var(--ease-out)}.manage-chip[data-v-0ee99dfb]:hover{transform:scale(1.05)}.manage-chip.selected[data-v-0ee99dfb]{background:#ffe5e5;color:#d63031;border-color:#e17055}.manage-chip.playing[data-v-0ee99dfb]{background:#dfe6e9;color:#2d3436;border-color:#74b9ff;animation:chip-playing-0ee99dfb .6s ease-in-out infinite}@keyframes chip-playing-0ee99dfb{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.manage-mode-tabs[data-v-0ee99dfb]{display:flex;gap:4px;padding:4px;background:var(--color-primary-soft);border-radius:10px;margin-bottom:10px}.mode-tab[data-v-0ee99dfb]{flex:1;padding:8px 12px;border-radius:7px;background:transparent;color:var(--color-primary-dark);font-weight:600;font-size:13px;border:none;transition:all .2s var(--ease-out)}.mode-tab.active[data-v-0ee99dfb]{background:var(--color-surface-solid);box-shadow:0 2px 8px #00000014;color:var(--color-primary-dark)}.mode-tab[data-v-0ee99dfb]:not(.active):hover{background:#ffffff80}.manage-footer[data-v-0ee99dfb]{display:flex;gap:10px;padding-top:14px;border-top:1px solid var(--color-border)}.manage-footer .btn[data-v-0ee99dfb]{flex:1}.fade-enter-active[data-v-0ee99dfb],.fade-leave-active[data-v-0ee99dfb]{transition:opacity .2s var(--ease-out)}.fade-enter-from[data-v-0ee99dfb],.fade-leave-to[data-v-0ee99dfb]{opacity:0}.frac[data-v-da8b3f9f]{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;line-height:1.1;margin:0 2px;color:var(--color-ink);font-family:var(--font-display);font-weight:700}.num[data-v-da8b3f9f],.den[data-v-da8b3f9f]{padding:0 4px;text-align:center;min-width:1.1em}.bar[data-v-da8b3f9f]{display:block;width:100%;height:2px;background:var(--color-ink);border-radius:1px;margin:1px 0}.md[data-v-da8b3f9f]{font-size:18px}.sm[data-v-da8b3f9f]{font-size:15px}.frac-input[data-v-0c2dc8d9]{display:inline-flex;flex-direction:column;align-items:center;gap:2px;vertical-align:middle}.box[data-v-0c2dc8d9]{width:52px;padding:6px 4px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#ffffffe6;text-align:center;font-size:16px;font-weight:600;color:var(--color-ink)}.box[data-v-0c2dc8d9]:focus{outline:none;border-color:#2a9d8f73;box-shadow:0 0 0 3px var(--color-primary-soft)}.bar[data-v-0c2dc8d9]{display:block;width:56px;height:2px;background:var(--color-ink);border-radius:1px}.disabled .box[data-v-0c2dc8d9]{opacity:.75;background:#fff9}.view[data-v-24cfa450]{display:grid;gap:18px}.hero-card[data-v-24cfa450],.sheet-card[data-v-24cfa450]{padding:18px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lead[data-v-24cfa450]{color:var(--color-ink);font-weight:600;margin-bottom:6px}.meta[data-v-24cfa450]{color:var(--color-ink-muted);font-size:13px;margin-bottom:14px}.types-toggle[data-v-24cfa450]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;margin-bottom:12px;border-radius:var(--radius-md);background:#fff9;border:1px solid var(--color-border);font-size:14px;font-weight:600;color:var(--color-ink);transition:background .18s var(--ease-out)}.types-toggle[data-v-24cfa450]:active{background:#ffffffd9}.types-count[data-v-24cfa450]{font-weight:400;color:var(--color-ink-muted);font-size:13px;margin-left:6px}.types-arrow[data-v-24cfa450]{font-size:13px;font-weight:400;color:var(--color-primary-dark)}.types[data-v-24cfa450]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.type[data-v-24cfa450]{padding:8px 12px;border-radius:999px;background:#ffffffbf;border:1px solid var(--color-border);color:var(--color-ink-muted);font-size:13px;font-weight:600;transition:background .18s var(--ease-out),color .18s var(--ease-out),opacity .18s var(--ease-out)}.type.on[data-v-24cfa450]{background:var(--color-accent-soft);border-color:transparent;color:var(--color-ink)}.type.disabled[data-v-24cfa450]{opacity:.4;cursor:not-allowed}.type.clear-btn[data-v-24cfa450]{background:transparent;border:1px dashed var(--color-danger);color:var(--color-danger)}.type.clear-btn[data-v-24cfa450]:active{transform:scale(.95)}.count-row[data-v-24cfa450]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:16px}.count-label[data-v-24cfa450]{font-size:14px;font-weight:600;color:var(--color-ink)}.count-controls[data-v-24cfa450]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.chip-btn[data-v-24cfa450]{min-width:40px;padding:8px 14px;border-radius:999px;background:#fffc;border:1px solid var(--color-border);color:var(--color-ink);font-weight:700;font-size:14px}.chip-btn.primary[data-v-24cfa450]{background:var(--color-primary-soft);border-color:transparent;color:var(--color-primary-dark)}.chip-btn[data-v-24cfa450]:disabled{opacity:.45;cursor:not-allowed}.count-input[data-v-24cfa450]{width:64px;padding:8px 10px;border-radius:12px;border:1px solid var(--color-border);background:#ffffffe6;text-align:center;font-weight:700;color:var(--color-ink)}.count-hint[data-v-24cfa450]{font-size:12px;color:var(--color-ink-faint)}.generate[data-v-24cfa450]{width:100%;padding:14px 18px;border-radius:999px;background:linear-gradient(135deg,var(--color-primary),#3bb8a8);color:#fff;font-weight:700;box-shadow:var(--shadow-press);transition:transform .18s var(--ease-out),opacity .18s var(--ease-out)}.generate[data-v-24cfa450]:active:not(:disabled){transform:scale(.98)}.generate[data-v-24cfa450]:disabled{opacity:.45;cursor:not-allowed}.sheet-head[data-v-24cfa450]{display:flex;align-items:center;gap:12px;margin-bottom:14px}.sheet-title[data-v-24cfa450]{font-family:var(--font-display);font-size:22px;color:var(--color-ink)}.accuracy[data-v-24cfa450]{font-size:14px;font-weight:700;color:var(--color-primary-dark)}.accuracy-big[data-v-24cfa450]{font-size:18px;font-weight:700;color:var(--color-primary-dark);text-align:center;margin:0 0 14px}.sheet-foot[data-v-24cfa450]{display:flex;flex-direction:column;align-items:center;padding-top:16px;margin-top:16px;border-top:1px solid var(--color-border)}.submit-btn[data-v-24cfa450]{width:100%;padding:16px 20px;border-radius:999px;background:linear-gradient(135deg,var(--color-primary),#3bb8a8);color:#fff;font-weight:700;font-size:16px;box-shadow:var(--shadow-press);transition:transform .18s var(--ease-out),opacity .18s var(--ease-out)}.submit-btn[data-v-24cfa450]:active:not(:disabled){transform:scale(.98)}.submit-btn[data-v-24cfa450]:disabled{opacity:.55;cursor:not-allowed;background:var(--color-ink-faint);box-shadow:none}.back-top[data-v-24cfa450]{position:fixed;right:20px;bottom:30px;width:44px;height:44px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:20px;font-weight:700;box-shadow:0 4px 16px #0003;z-index:50;transition:opacity .2s ease,transform .2s ease}.back-top[data-v-24cfa450]:active{transform:scale(.92)}.questions[data-v-24cfa450]{list-style:none;display:grid;gap:12px;padding:0;margin:0}.q-item[data-v-24cfa450]{padding:14px;border-radius:var(--radius-md);background:#ffffffb8;border:1px solid var(--color-border);transition:background .2s var(--ease-out)}.q-item.ok[data-v-24cfa450]{background:var(--color-primary-soft);border-color:transparent}.q-item.bad[data-v-24cfa450]{background:var(--color-danger-soft);border-color:transparent}.q-top[data-v-24cfa450]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.q-no[data-v-24cfa450]{font-weight:800;color:var(--color-ink)}.q-type[data-v-24cfa450]{font-size:12px;padding:3px 8px;border-radius:999px;background:#ffffffb3;color:var(--color-ink-muted)}.q-mark[data-v-24cfa450]{margin-left:auto;font-size:13px;font-weight:700}.q-item.ok .q-mark[data-v-24cfa450]{color:var(--color-primary-dark)}.q-item.bad .q-mark[data-v-24cfa450]{color:var(--color-danger)}.prompt[data-v-24cfa450]{display:flex;flex-wrap:wrap;align-items:center;gap:2px;font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--color-ink);margin-bottom:6px}.prompt-text[data-v-24cfa450]{white-space:pre-wrap}.hint[data-v-24cfa450]{font-size:13px;color:var(--color-ink-muted);margin-bottom:10px}.answer-row[data-v-24cfa450]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.ans-input[data-v-24cfa450]{min-width:120px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#ffffffeb;font-size:16px;font-weight:600;color:var(--color-ink)}.ans-input.narrow[data-v-24cfa450]{min-width:0;width:72px;text-align:center}.ans-input[data-v-24cfa450]:focus{outline:none;border-color:#2a9d8f73;box-shadow:0 0 0 3px var(--color-primary-soft)}.ans-input[data-v-24cfa450]:disabled{opacity:.8}.suffix[data-v-24cfa450]{font-weight:700;color:var(--color-ink)}.qr[data-v-24cfa450]{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--color-ink-muted)}.key[data-v-24cfa450]{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;color:var(--color-ink)}.key-label[data-v-24cfa450]{color:var(--color-ink-muted);font-weight:600}.empty[data-v-24cfa450]{text-align:center;padding:28px 12px;color:var(--color-ink-muted);font-size:14px}.count-up[data-v-868204b2]{display:inline-flex;align-items:baseline;gap:8px;padding:8px 14px;border-radius:999px;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft)}.label[data-v-868204b2]{font-size:12px;color:var(--color-ink-faint)}strong[data-v-868204b2]{font-variant-numeric:tabular-nums;font-size:18px;letter-spacing:.04em}.view[data-v-58ac32d1]{display:grid;gap:16px}.view.celebrate .board[data-v-58ac32d1]{animation:celebrate .55s var(--ease-out)}.toolbar[data-v-58ac32d1]{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.toolbar-actions[data-v-58ac32d1]{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.switch[data-v-58ac32d1]{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--color-surface);border:1px solid var(--color-border);font-size:13px;font-weight:600}.chip-btn[data-v-58ac32d1]{padding:10px 14px;border-radius:999px;background:var(--color-surface);border:1px solid var(--color-border);font-weight:700}.chip-btn.primary[data-v-58ac32d1]{background:var(--color-primary);color:#fff;border-color:transparent}.board-wrap[data-v-58ac32d1]{position:relative;padding:12px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft)}.board[data-v-58ac32d1]{display:grid;grid-template-columns:repeat(9,1fr);gap:0;aspect-ratio:1;border:2px solid var(--color-ink);border-radius:12px;overflow:hidden;background:#fff}.cell[data-v-58ac32d1]{display:grid;place-items:center;aspect-ratio:1;border-right:1px solid rgba(38,70,83,.12);border-bottom:1px solid rgba(38,70,83,.12);font-family:var(--font-display);font-size:clamp(16px,3.6vw,24px);font-weight:700;transition:background .15s var(--ease-out),transform .15s var(--ease-out)}.cell[data-v-58ac32d1]:nth-child(9n){border-right:none}.cell[data-v-58ac32d1]:nth-child(n+73){border-bottom:none}.cell.edge-right[data-v-58ac32d1]{border-right:2px solid var(--color-ink)}.cell.edge-bottom[data-v-58ac32d1]{border-bottom:2px solid var(--color-ink)}.cell.fixed[data-v-58ac32d1]{color:var(--color-ink);background:#f4fbf9}.cell.checked[data-v-58ac32d1]{background:var(--color-primary-soft);transform:scale(.96)}.cell.error[data-v-58ac32d1]{color:var(--color-danger);background:var(--color-danger-soft)}.cell[data-v-58ac32d1]:not(:disabled):active{transform:scale(.94)}.placeholder[data-v-58ac32d1]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--color-ink-muted);pointer-events:none}.sheet-mask[data-v-58ac32d1]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:800;display:flex;align-items:flex-end;justify-content:center;background:#26465347;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sheet[data-v-58ac32d1]{width:min(100%,520px);padding:18px 18px 28px;border-radius:24px 24px 0 0;background:#fff;box-shadow:var(--shadow-soft)}.nums[data-v-58ac32d1]{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.num[data-v-58ac32d1]{min-height:52px;border-radius:14px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:20px;font-weight:700}.num[data-v-58ac32d1]:disabled{opacity:.35}.num.clear[data-v-58ac32d1]{grid-column:span 1;background:var(--color-accent-soft);color:var(--color-ink);font-size:14px}.hard-sheet h3[data-v-58ac32d1]{font-family:var(--font-display);margin-bottom:12px}.hard-item[data-v-58ac32d1]{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 12px;border-radius:14px;margin-bottom:8px;background:#2a9d8f0f;font-weight:700}.hard-item.active[data-v-58ac32d1]{background:var(--color-primary);color:#fff}.hard-item small[data-v-58ac32d1]{font-weight:500;opacity:.75}.close[data-v-58ac32d1]{width:100%;margin-top:8px;padding:12px;border-radius:999px;background:var(--color-ink);color:#fff;font-weight:700}.fade-enter-active[data-v-58ac32d1],.fade-leave-active[data-v-58ac32d1]{transition:opacity .2s var(--ease-out)}.fade-enter-from[data-v-58ac32d1],.fade-leave-to[data-v-58ac32d1]{opacity:0}.view[data-v-52dd34fd]{display:grid;gap:14px}.toolbar[data-v-52dd34fd]{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.toolbar-actions[data-v-52dd34fd]{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.switch[data-v-52dd34fd]{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--color-surface);border:1px solid var(--color-border);font-size:13px;font-weight:600}.chip-btn[data-v-52dd34fd]{padding:10px 14px;border-radius:999px;background:var(--color-surface);border:1px solid var(--color-border);font-weight:700}.chip-btn.primary[data-v-52dd34fd]{background:var(--color-primary);color:#fff;border-color:transparent}.target-bar[data-v-52dd34fd]{padding:12px 16px;border-radius:var(--radius-md);background:linear-gradient(135deg,#2a9d8f29,#e9c46a38);border:1px solid var(--color-border);font-weight:600}.target-bar strong[data-v-52dd34fd]{font-family:var(--font-display);font-size:28px;margin-left:6px}.grid[data-v-52dd34fd]{display:grid;gap:8px;padding:12px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft)}.start-card[data-v-52dd34fd]{display:grid;place-items:center;gap:18px;padding:48px 20px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft)}.start-hint[data-v-52dd34fd]{color:var(--color-ink-muted);font-size:15px;font-weight:600}.start-btn[data-v-52dd34fd]{padding:16px 48px;border-radius:999px;background:var(--color-primary);color:#fff;font-family:var(--font-display);font-size:20px;font-weight:700;border:none;box-shadow:var(--shadow-soft);animation:pulse-soft 2.4s infinite;transition:transform .18s var(--ease-out)}.start-btn[data-v-52dd34fd]:active{transform:scale(.96)}.cell[data-v-52dd34fd]{aspect-ratio:1;border-radius:14px;background:#fff;border:1px solid rgba(38,70,83,.1);font-family:var(--font-display);font-size:clamp(14px,3.2vw,22px);font-weight:700;transition:transform .14s var(--ease-out),background .14s var(--ease-out),color .14s var(--ease-out)}.cell[data-v-52dd34fd]:active{transform:scale(.94)}.cell.done[data-v-52dd34fd]{background:var(--color-primary);color:#fff;border-color:transparent;animation:pop-in .28s var(--ease-out)}.cell.wrong[data-v-52dd34fd]{background:var(--color-danger);color:#fff;border-color:transparent}.sheet-mask[data-v-52dd34fd]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:800;display:flex;align-items:flex-end;justify-content:center;background:#26465347}.sheet[data-v-52dd34fd]{width:min(100%,520px);max-height:70vh;overflow:auto;padding:18px 18px 28px;border-radius:24px 24px 0 0;background:#fff}.sheet h3[data-v-52dd34fd]{font-family:var(--font-display);margin-bottom:12px}.option[data-v-52dd34fd]{width:100%;text-align:left;padding:14px 12px;border-radius:14px;margin-bottom:8px;background:#2a9d8f0f;font-weight:700}.option.active[data-v-52dd34fd]{background:var(--color-primary);color:#fff}.fade-enter-active[data-v-52dd34fd],.fade-leave-active[data-v-52dd34fd]{transition:opacity .2s var(--ease-out)}.fade-enter-from[data-v-52dd34fd],.fade-leave-to[data-v-52dd34fd]{opacity:0}.view[data-v-2106b309]{display:block}.admin-grid[data-v-2106b309],.admin-left[data-v-2106b309],.admin-right[data-v-2106b309]{display:grid;gap:18px}@media(min-width:1024px){.admin-grid[data-v-2106b309]{grid-template-columns:1fr 320px;align-items:start}}.card[data-v-2106b309]{padding:22px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card-head[data-v-2106b309]{margin-bottom:18px}.card-title[data-v-2106b309]{font-family:var(--font-display);font-size:20px;font-weight:700;margin-bottom:6px}.card-desc[data-v-2106b309]{color:var(--color-ink-muted);font-size:14px;line-height:1.5}.info-row[data-v-2106b309]{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:var(--radius-md);background:#ffffff8c;border:1px solid var(--color-border);margin-bottom:10px}.info-label[data-v-2106b309]{font-size:14px;color:var(--color-ink-faint)}.info-value[data-v-2106b309]{font-weight:600;color:var(--color-ink-muted)}.info-value.set[data-v-2106b309]{color:var(--color-primary-dark)}.info-value.mono[data-v-2106b309]{font-family:var(--font-display);letter-spacing:.3em;font-size:16px}.warn-tip[data-v-2106b309]{margin:14px 0;padding:10px 14px;border-radius:var(--radius-md);background:#fff3cd;border:1px solid #ffe08a;color:#856404;font-size:13px;line-height:1.5}.set-field[data-v-2106b309]{display:flex;gap:10px;margin:14px 0}.set-input[data-v-2106b309]{flex:1;padding:12px 14px;border-radius:14px;background:#ffffffb3;border:1px solid var(--color-border);font-size:16px;letter-spacing:.2em;outline:none;transition:border-color .18s var(--ease-out)}.set-input[data-v-2106b309]:focus{border-color:var(--color-primary)}.set-input[data-v-2106b309]:disabled{opacity:.5;cursor:not-allowed;background:#ffffff59}.set-input[data-v-2106b309]::placeholder{letter-spacing:normal;color:var(--color-ink-faint);font-size:13px}.btn-primary[data-v-2106b309]{flex-shrink:0;padding:12px 20px;border-radius:14px;background:var(--color-primary);color:#fff;font-weight:700;transition:transform .18s var(--ease-out)}.btn-primary[data-v-2106b309]:not(:disabled):active{transform:scale(.97)}.btn-primary[data-v-2106b309]:disabled{opacity:.45;cursor:not-allowed}.btn-danger[data-v-2106b309]{width:100%;padding:13px 18px;border-radius:999px;background:#ffe5e5;color:#d63031;font-weight:700;border:1px solid #fab1a0;transition:transform .18s var(--ease-out),background .18s var(--ease-out)}.btn-danger[data-v-2106b309]:not(:disabled):active{transform:scale(.98)}.btn-danger[data-v-2106b309]:disabled{opacity:.45;cursor:not-allowed}.menu-list[data-v-2106b309]{display:grid;gap:8px;margin-bottom:14px}.menu-row[data-v-2106b309]{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius-md);background:#ffffff8c;border:1px solid var(--color-border);transition:opacity .18s var(--ease-out)}.menu-drag[data-v-2106b309]{color:var(--color-ink-faint);font-size:16px;-webkit-user-select:none;user-select:none;opacity:.7}.menu-label[data-v-2106b309]{flex:1;font-weight:600}.menu-actions[data-v-2106b309]{display:flex;align-items:center;gap:6px}.chip-small[data-v-2106b309]{width:32px;height:32px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:14px;font-weight:700;display:grid;place-items:center;transition:transform .15s var(--ease-out)}.chip-small[data-v-2106b309]:not(:disabled):active{transform:scale(.93)}.chip-small[data-v-2106b309]:disabled{opacity:.35;cursor:not-allowed}.switch-tight[data-v-2106b309]{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#ffffffb3;border:1px solid var(--color-border);font-size:13px;font-weight:600;cursor:pointer}.btn-outline[data-v-2106b309]{width:100%;padding:12px 18px;border-radius:999px;background:transparent;border:1.5px dashed var(--color-primary);color:var(--color-primary-dark);font-weight:700;transition:transform .18s var(--ease-out),background .18s var(--ease-out)}.btn-outline[data-v-2106b309]:active{transform:scale(.98);background:#2a9d8f0f}.encourage-row[data-v-2106b309]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding:14px;border-radius:var(--radius-md);background:#ffffff8c;border:1px solid var(--color-border)}.encourage-info[data-v-2106b309]{display:flex;flex-direction:column;gap:4px}.encourage-label[data-v-2106b309]{font-size:14px;font-weight:700;color:var(--color-ink)}.encourage-desc[data-v-2106b309]{font-size:12px;color:var(--color-ink-faint)}.toggle-switch[data-v-2106b309]{flex-shrink:0;width:48px;height:28px;border-radius:999px;background:#00000026;border:none;position:relative;cursor:pointer;transition:background .2s ease}.toggle-switch.on[data-v-2106b309]{background:var(--color-primary)}.toggle-knob[data-v-2106b309]{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0003;transition:transform .2s ease}.toggle-switch.on .toggle-knob[data-v-2106b309]{transform:translate(20px)}.bili-link[data-v-2106b309]{display:flex;align-items:center;gap:12px;padding:16px;border-radius:var(--radius-md);background:#fff9;border:1px solid var(--color-border);text-decoration:none;color:var(--color-ink);transition:background .18s ease,border-color .18s ease,transform .18s ease}.bili-link[data-v-2106b309]:hover{background:#2a9d8f0f;border-color:#2a9d8f33}.bili-link[data-v-2106b309]:active{transform:scale(.98)}.bili-icon[data-v-2106b309]{font-size:28px;flex-shrink:0}.bili-text[data-v-2106b309]{flex:1;display:flex;flex-direction:column;gap:2px}.bili-text strong[data-v-2106b309]{font-size:15px;color:var(--color-ink)}.bili-text small[data-v-2106b309]{font-size:12px;color:var(--color-ink-faint)}.bili-arrow[data-v-2106b309]{font-size:18px;color:var(--color-ink-faint);transition:transform .18s ease}.bili-link:hover .bili-arrow[data-v-2106b309]{transform:translate(3px);color:var(--color-primary)}.wx-donate[data-v-2106b309]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0 4px}.wx-qr[data-v-2106b309]{width:200px;max-width:70vw;height:auto;border-radius:var(--radius-md);box-shadow:0 2px 12px #00000014;background:#fff}.wx-tip[data-v-2106b309]{font-size:13px;color:var(--color-ink-faint)}.wx-fallback[data-v-2106b309]{width:200px;max-width:70vw;height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;border-radius:var(--radius-md);background:#ffffff80;border:1px dashed var(--color-border);color:var(--color-ink-faint);font-size:12px;text-align:center}.wx-fallback-icon[data-v-2106b309]{font-size:32px}.wx-fallback code[data-v-2106b309]{padding:2px 6px;border-radius:4px;background:#0000000d;font-size:11px}.origin-story[data-v-2106b309]{color:var(--color-ink-muted);font-size:14px;line-height:1.7;margin:0}.origin-story .hl[data-v-2106b309]{color:var(--color-primary-dark);font-weight:700;margin:0 2px}:root{--color-primary: #2a9d8f;--color-primary-dark: #1f7a70;--color-primary-soft: rgba(42, 157, 143, .14);--color-accent: #e9c46a;--color-accent-soft: rgba(233, 196, 106, .28);--color-ink: #264653;--color-ink-muted: rgba(38, 70, 83, .68);--color-ink-faint: rgba(38, 70, 83, .42);--color-danger: #e76f51;--color-danger-soft: rgba(231, 111, 81, .16);--color-success: #2a9d8f;--color-surface: rgba(255, 255, 255, .78);--color-surface-solid: #ffffff;--color-border: rgba(38, 70, 83, .12);--color-bg-1: #e8f6f3;--color-bg-2: #f7faf9;--color-bg-3: #dff3ef;--font-ui: "DM Sans", "PingFang SC", "Hiragino Sans GB", sans-serif;--font-display: "LXGW WenKai", "Songti SC", serif;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--shadow-soft: 0 10px 30px rgba(38, 70, 83, .08);--shadow-press: 0 4px 12px rgba(38, 70, 83, .12);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--header-h: 64px;--max-w: 920px;--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;color:var(--color-ink);font-family:var(--font-ui);background:radial-gradient(1200px 600px at 10% -10%,var(--color-bg-3),transparent 55%),radial-gradient(900px 500px at 100% 0%,var(--color-accent-soft),transparent 50%),linear-gradient(180deg,var(--color-bg-1),var(--color-bg-2) 40%,#ffffff);background-attachment:fixed}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background-image:linear-gradient(rgba(38,70,83,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(38,70,83,.035) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(circle at 50% 20%,black,transparent 75%);mask-image:radial-gradient(circle at 50% 20%,black,transparent 75%)}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.page-enter-active,.page-leave-active{transition:opacity .28s var(--ease-out),transform .28s var(--ease-out)}.page-enter-from,.page-leave-to{opacity:0;transform:translateY(8px)}@keyframes pop-in{0%{opacity:0;transform:scale(.92) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes celebrate{0%{transform:scale(.96)}45%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes pulse-soft{0%,to{box-shadow:0 0 #2a9d8f40}50%{box-shadow:0 0 0 8px #2a9d8f00}}
