.toast-container[data-v-dbfc8b25]{position:fixed;top:calc(env(safe-area-inset-top,0px) + 16px);left:50%;transform:translate(-50%);z-index:10000;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;width:92vw;max-width:420px}.toast-item[data-v-dbfc8b25]{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:12px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e5e7eb);box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;font-size:13px;line-height:1.5;color:var(--text-primary, #1a1a2e);cursor:pointer;width:100%;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toast-item.success[data-v-dbfc8b25]{border-color:#bbf7d0;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.toast-item.success .toast-icon[data-v-dbfc8b25]{color:#16a34a}.toast-item.error[data-v-dbfc8b25]{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.toast-item.error .toast-icon[data-v-dbfc8b25]{color:#dc2626}.toast-item.warning[data-v-dbfc8b25]{border-color:#fed7aa;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.toast-item.warning .toast-icon[data-v-dbfc8b25]{color:#d97706}.toast-item.info[data-v-dbfc8b25]{border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.toast-item.info .toast-icon[data-v-dbfc8b25]{color:#2563eb}.toast-icon[data-v-dbfc8b25]{flex-shrink:0;margin-top:1px}.toast-msg[data-v-dbfc8b25]{flex:1;word-break:break-word}.toast-close[data-v-dbfc8b25]{flex-shrink:0;background:none;border:none;color:var(--text-muted, #9ca3af);padding:2px;border-radius:4px;display:flex;align-items:center;cursor:pointer;transition:background .15s}.toast-close[data-v-dbfc8b25]:hover{background:#0000000f}.toast-enter-active[data-v-dbfc8b25]{transition:all .3s cubic-bezier(.34,1.56,.64,1)}.toast-leave-active[data-v-dbfc8b25]{transition:all .2s ease-in}.toast-enter-from[data-v-dbfc8b25]{opacity:0;transform:translateY(-16px) scale(.95)}.toast-leave-to[data-v-dbfc8b25]{opacity:0;transform:translateY(-8px) scale(.96)}.toast-move[data-v-dbfc8b25]{transition:transform .25s ease}@media(prefers-color-scheme:dark){.toast-item[data-v-dbfc8b25]{box-shadow:0 8px 32px #0006,0 2px 8px #0003}.toast-item.success[data-v-dbfc8b25]{background:linear-gradient(135deg,#052e16,#064e2e);border-color:#166534}.toast-item.error[data-v-dbfc8b25]{background:linear-gradient(135deg,#450a0a,#7f1d1d);border-color:#991b1b}.toast-item.warning[data-v-dbfc8b25]{background:linear-gradient(135deg,#451a03,#78350f);border-color:#92400e}.toast-item.info[data-v-dbfc8b25]{background:linear-gradient(135deg,#0c1a3a,#1e3a5f);border-color:#1e40af}}.pwa-prompt[data-v-0a93c873]{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 72px);transform:translate(-50%);z-index:9000;width:min(92vw,420px);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 8px 28px #1e2d4f26}.update-prompt[data-v-0a93c873]{bottom:calc(env(safe-area-inset-bottom) + 132px)}.pwa-icon-wrap[data-v-0a93c873]{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.install-icon[data-v-0a93c873]{background:linear-gradient(135deg,#5f9bf7,#3b82f6);box-shadow:0 3px 8px #3b82f64d}.update-icon[data-v-0a93c873]{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 3px 8px #10b9814d}.pwa-body[data-v-0a93c873]{flex:1;min-width:0}.pwa-title[data-v-0a93c873]{font-size:var(--text-sm);font-weight:700;color:var(--text-primary)}.pwa-sub[data-v-0a93c873]{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.pwa-btn[data-v-0a93c873]{flex-shrink:0;padding:7px 14px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:700;cursor:pointer;transition:all var(--dur-fast)}.pwa-btn.primary[data-v-0a93c873]{background:var(--color-primary);color:#fff;border:none}.pwa-btn.primary[data-v-0a93c873]:hover{background:var(--color-primary-deep, #3b82f6);transform:translateY(-1px)}.pwa-btn.ghost[data-v-0a93c873]{background:none;color:var(--text-muted);border:none;width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center}.pwa-btn.ghost[data-v-0a93c873]:hover{color:var(--text-primary);background:var(--bg-panel)}.pwa-slide-enter-from[data-v-0a93c873],.pwa-slide-leave-to[data-v-0a93c873]{opacity:0;transform:translate(-50%,20px)}.pwa-slide-enter-active[data-v-0a93c873],.pwa-slide-leave-active[data-v-0a93c873]{transition:all .25s var(--ease-out)}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/Poppins-Medium-CWICHMj6.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/Poppins-SemiBold-DJVo7c07.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/Poppins-Bold-g9MkRaG0.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/Poppins-ExtraBold-RSA_nwT2.woff2) format("woff2")}:root,[data-theme=light]{--color-primary: #5f9bf7;--color-primary-deep: #2563eb;--color-primary-dark: #1d5ed2;--color-primary-soft: #eaf2ff;--color-primary-pale: #f0f6ff;--color-primary-glass: rgba(95, 155, 247, .12);--gradient-hero: linear-gradient(135deg, #7eb5ff 0%, #5f9bf7 60%, #5c8af0 100%);--gradient-btn: linear-gradient(120deg, #3b82f6, #60a5fa);--color-correct: #3b82f6;--color-correct-soft: #eaf2ff;--color-wrong: #e55462;--color-wrong-soft: #fef0f1;--color-accent: #f59e0b;--color-accent-soft: #fef9ec;--color-correct-bg: #f0fdf4;--color-correct-text: #16a34a;--color-correct-border: #86efad;--color-wrong-bg: #fef0f1;--color-wrong-text: #e55462;--color-wrong-border: rgba(229, 84, 98, .3);--color-unanswered-bg: #fefce8;--color-unanswered-text: #a16207;--color-unanswered-border: #fde047;--badge-single-bg: #e8f1ff;--badge-single-text: #2563eb;--badge-multiple-bg: #edf9f0;--badge-multiple-text: #16a34a;--badge-judge-bg: #fff7e6;--badge-judge-text: #d97706;--badge-fill-bg: #f3f0ff;--badge-fill-text: #7c3aed;--badge-subjective-bg: #fef0f1;--badge-subjective-text:#e55462;--mastered-bg: #f0fdf4;--mastered-text: #16a34a;--mastered-border: #22c55e;--streak-bg: #fff7e6;--streak-text: #d97706;--bg-app: #eef3fb;--bg-app-gradient: linear-gradient(180deg, #f4f7fd 0%, #eef3fb 40%, #f6f8fc 100%);--bg-card: #ffffff;--bg-card-hover: #f8fbff;--bg-panel: #f8fbff;--bg-input: #f8fbff;--bg-sidebar: #ffffff;--bg-overlay: rgba(15, 23, 42, .3);--text-primary: #1e2d4f;--text-navy: #1f2b52;--text-secondary: #4b5680;--text-muted: #7c8aad;--text-placeholder: #b0bdcf;--text-on-primary: #ffffff;--border-color: #e6ecf5;--border-strong: #dbe4f4;--border-blue: rgba(37, 99, 235, .18);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 22px;--radius-2xl: 26px;--radius-full: 9999px;--shadow-xs: 0 1px 3px rgba(16, 24, 40, .04);--shadow-sm: 0 4px 12px rgba(73, 128, 226, .1);--shadow-md: 0 8px 24px rgba(73, 128, 226, .14);--shadow-lg: 0 16px 40px rgba(73, 128, 226, .2);--shadow-hero: 0 18px 40px rgba(73, 128, 226, .28);--shadow-card: 0 8px 26px rgba(16, 24, 40, .05);--shadow-btn: 0 12px 28px rgba(59, 130, 246, .25);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 28px;--tab-bar-height: 62px;--sidebar-width: 220px;--content-max: 640px;--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--font-display: "Poppins", -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-body: -apple-system, "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", monospace}[data-theme=dark]{--color-primary: #60a5fa;--color-primary-deep: #3b82f6;--color-primary-dark: #2563eb;--color-primary-soft: rgba(96, 165, 250, .14);--color-primary-pale: rgba(96, 165, 250, .08);--color-primary-glass: rgba(96, 165, 250, .15);--gradient-hero: linear-gradient(135deg, #2d5fa8 0%, #1e4080 60%, #1a3570 100%);--gradient-btn: linear-gradient(120deg, #2563eb, #3b82f6);--color-correct: #60a5fa;--color-correct-soft: rgba(96, 165, 250, .14);--color-wrong: #f87171;--color-wrong-soft: rgba(248, 113, 113, .12);--color-accent: #fbbf24;--color-accent-soft: rgba(251, 191, 36, .12);--color-correct-bg: rgba(34, 197, 94, .15);--color-correct-text: #4ade80;--color-correct-border: rgba(74, 222, 128, .3);--color-wrong-bg: rgba(248, 113, 113, .15);--color-wrong-text: #fca5a5;--color-wrong-border: rgba(248, 113, 113, .3);--color-unanswered-bg: rgba(251, 191, 36, .12);--color-unanswered-text: #fbbf24;--color-unanswered-border: rgba(251, 191, 36, .3);--badge-single-bg: rgba(96, 165, 250, .18);--badge-single-text: #93c5fd;--badge-multiple-bg: rgba(74, 222, 128, .15);--badge-multiple-text: #4ade80;--badge-judge-bg: rgba(251, 191, 36, .15);--badge-judge-text: #fbbf24;--badge-fill-bg: rgba(167, 139, 250, .15);--badge-fill-text: #a78bfa;--badge-subjective-bg: rgba(252, 165, 165, .15);--badge-subjective-text:#fca5a5;--mastered-bg: rgba(34, 197, 94, .15);--mastered-text: #4ade80;--mastered-border: rgba(74, 222, 128, .4);--streak-bg: rgba(251, 191, 36, .12);--streak-text: #fbbf24;--bg-app: #0f172a;--bg-app-gradient: linear-gradient(180deg, #0f172a 0%, #131e35 40%, #0f172a 100%);--bg-card: #1e293b;--bg-card-hover: #243347;--bg-panel: #1a2438;--bg-input: #1a2438;--bg-sidebar: #172033;--bg-overlay: rgba(0, 0, 0, .55);--text-primary: #e2eaf8;--text-navy: #ccd8f0;--text-secondary: #8fa3c8;--text-muted: #64748b;--text-placeholder: #475569;--text-on-primary: #ffffff;--border-color: rgba(51, 70, 100, .8);--border-strong: rgba(71, 95, 140, .7);--border-blue: rgba(96, 165, 250, .2);--shadow-xs: 0 1px 3px rgba(0,0,0,.25);--shadow-sm: 0 4px 12px rgba(0,0,0,.3);--shadow-md: 0 8px 24px rgba(0,0,0,.4);--shadow-lg: 0 16px 40px rgba(0,0,0,.5);--shadow-hero: 0 18px 40px rgba(0,0,0,.45);--shadow-card: 0 8px 26px rgba(0,0,0,.3);--shadow-btn: 0 12px 28px rgba(37, 99, 235, .3)}[data-theme=eyecare]{--color-primary: #6b9e78;--color-primary-deep: #4e7a5a;--color-primary-dark: #3d6147;--color-primary-soft: #eff7f1;--color-primary-pale: #f5faf6;--color-primary-glass: rgba(107, 158, 120, .12);--gradient-hero: linear-gradient(135deg, #8fbf9a 0%, #6b9e78 60%, #5f9070 100%);--gradient-btn: linear-gradient(120deg, #6b9e78, #8fbf9a);--bg-app: #f0ebe0;--bg-app-gradient: linear-gradient(180deg, #f5f0e8 0%, #ede8dc 40%, #f0ebe0 100%);--bg-card: #fdfcf9;--bg-card-hover: #f7f4ee;--bg-panel: #f7f4ee;--bg-input: #f7f4ee;--bg-sidebar: #fdfcf9;--text-primary: #2c2416;--text-navy: #3a3020;--text-secondary: #5c503a;--text-muted: #9c8e72;--text-placeholder:#c4b89a;--border-color: #ddd4c0;--border-strong: #c8bda4;--border-blue: rgba(107, 158, 120, .25);--shadow-hero: 0 18px 40px rgba(80, 60, 20, .18);--shadow-card: 0 8px 26px rgba(80, 60, 20, .06);--shadow-btn: 0 12px 28px rgba(107, 158, 120, .25)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-app-gradient);background-attachment:fixed;min-height:100dvh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#app{height:100vh;height:100dvh;overflow:hidden}a{color:var(--color-primary);text-decoration:none}img{max-width:100%;height:auto;display:block}button{cursor:pointer;font-family:var(--font-body)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid var(--border-color)}.app-panel{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md)}.hover-lift{transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);cursor:pointer}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.hover-lift:active{transform:translateY(0);transition-duration:var(--dur-fast)}.font-display{font-family:var(--font-display)}.font-number{font-family:var(--font-display);font-variant-numeric:tabular-nums}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-correct{color:var(--color-correct)}.text-wrong{color:var(--color-wrong)}.text-primary-c{color:var(--color-primary)}.text-muted-c{color:var(--text-muted)}[data-font=small]{--text-xs: 10px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--text-3xl: 26px}[data-font=normal]{--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 28px}[data-font=large]{--text-xs: 12px;--text-sm: 15px;--text-base: 17px;--text-md: 18px;--text-lg: 20px;--text-xl: 22px;--text-2xl: 26px;--text-3xl: 30px}[data-font=xlarge]{--text-xs: 13px;--text-sm: 16px;--text-base: 19px;--text-md: 20px;--text-lg: 22px;--text-xl: 24px;--text-2xl: 28px;--text-3xl: 32px}[data-spacing=normal]{--option-gap: 8px;--option-pad-y: 13px;--option-pad-x: 16px}[data-spacing=large]{--option-gap: 11px;--option-pad-y: 16px;--option-pad-x: 18px}[data-spacing=xlarge]{--option-gap: 14px;--option-pad-y: 18px;--option-pad-x: 20px}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.anim-fade-up{animation:fadeUp var(--dur-slow) var(--ease-out) both}.anim-fade-in{animation:fadeIn var(--dur-base) var(--ease-out) both}.skeleton{background:linear-gradient(90deg,var(--border-color) 0%,var(--bg-card-hover, #f0f5ff) 50%,var(--border-color) 100%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
