.toast-container[data-v-07ab64c4]{position:fixed;top:calc(var(--safe-area-inset-top, 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-07ab64c4]{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:12px;background:var(--bg-card);border:1px solid var(--border-color);box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;font-size:13px;line-height:1.5;color:var(--text-primary);cursor:pointer;width:100%;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toast-item.success[data-v-07ab64c4]{border-color:var(--success-border);background:linear-gradient(135deg,var(--bg-panel),var(--success-bg-2));color:var(--success-strong)}.toast-item.success .toast-icon[data-v-07ab64c4]{color:var(--success-text)}.toast-item.error[data-v-07ab64c4]{border-color:var(--danger-border);background:linear-gradient(135deg,var(--bg-panel),var(--danger-bg));color:var(--danger-strong)}.toast-item.error .toast-icon[data-v-07ab64c4]{color:var(--danger-text)}.toast-item.warning[data-v-07ab64c4]{border-color:var(--warning-border);background:linear-gradient(135deg,var(--bg-panel),var(--warning-bg-2));color:var(--warning-deep)}.toast-item.warning .toast-icon[data-v-07ab64c4]{color:var(--warning-strong)}.toast-item.info[data-v-07ab64c4]{border-color:var(--border-blue);background:linear-gradient(135deg,var(--bg-panel),var(--color-primary-soft));color:var(--color-primary-deep)}.toast-item.info .toast-icon[data-v-07ab64c4]{color:var(--color-primary-deep)}.toast-icon[data-v-07ab64c4]{flex-shrink:0;margin-top:1px}.toast-msg[data-v-07ab64c4]{flex:1;word-break:break-word}.toast-close[data-v-07ab64c4]{flex-shrink:0;background:none;border:none;color:inherit;opacity:.55;padding:2px;border-radius:4px;display:flex;align-items:center;cursor:pointer;transition:opacity .15s,background .15s}.toast-close[data-v-07ab64c4]:hover{opacity:1;background:#7f7f7f26}.toast-enter-active[data-v-07ab64c4]{transition:all .3s cubic-bezier(.34,1.56,.64,1)}.toast-leave-active[data-v-07ab64c4]{transition:all .2s ease-in}.toast-enter-from[data-v-07ab64c4]{opacity:0;transform:translateY(-16px) scale(.95)}.toast-leave-to[data-v-07ab64c4]{opacity:0;transform:translateY(-8px) scale(.96)}.toast-move[data-v-07ab64c4]{transition:transform .25s ease}.pwa-prompt[data-v-8d035eae]{position:fixed;left:50%;bottom:calc(var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)) + 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-8d035eae]{bottom:calc(var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)) + 132px)}.pwa-icon-wrap[data-v-8d035eae]{color:var(--text-on-color);width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.install-icon[data-v-8d035eae]{color:var(--text-on-primary);background:var(--gradient-btn);box-shadow:0 3px 8px var(--glow-primary)}.update-icon[data-v-8d035eae]{background:var(--gradient-success);box-shadow:0 3px 8px var(--glow-success)}.pwa-body[data-v-8d035eae]{flex:1;min-width:0}.pwa-title[data-v-8d035eae]{font-size:var(--text-sm);font-weight:700;color:var(--text-primary)}.pwa-sub[data-v-8d035eae]{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.pwa-btn[data-v-8d035eae]{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-8d035eae]{background:var(--color-primary);color:var(--text-on-primary);border:none}.pwa-btn.primary[data-v-8d035eae]:hover{background:var(--color-primary-deep);transform:translateY(-1px)}.pwa-btn.ghost[data-v-8d035eae]{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-8d035eae]:hover{color:var(--text-primary);background:var(--bg-panel)}.pwa-slide-enter-from[data-v-8d035eae],.pwa-slide-leave-to[data-v-8d035eae]{opacity:0;transform:translate(-50%,20px)}.pwa-slide-enter-active[data-v-8d035eae],.pwa-slide-leave-active[data-v-8d035eae]{transition:all .25s var(--ease-out)}.update-banner[data-v-b96f530b]{position:fixed;top:calc(10px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)));left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:12px;max-width:min(92vw,420px);padding:10px 12px 10px 14px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 10px 30px #0f172a2e}.update-text[data-v-b96f530b]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--text-primary);white-space:nowrap}.update-icon[data-v-b96f530b]{color:var(--color-primary-deep);flex-shrink:0}.update-actions[data-v-b96f530b]{display:flex;align-items:center;gap:6px}.update-btn[data-v-b96f530b]{border:none;cursor:pointer;border-radius:8px;font-size:12px;font-weight:700}.update-btn-go[data-v-b96f530b]{padding:6px 12px;color:var(--text-on-primary);background:var(--gradient-btn)}.update-btn-close[data-v-b96f530b]{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;color:var(--text-muted)}.update-slide-enter-active[data-v-b96f530b],.update-slide-leave-active[data-v-b96f530b]{transition:all .3s ease}.update-slide-enter-from[data-v-b96f530b],.update-slide-leave-to[data-v-b96f530b]{opacity:0;transform:translate(-50%) translateY(-16px)}.bio-lock-overlay[data-v-0f946f26]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--color-bg, var(--bg-panel));padding-top:var(--safe-area-inset-top, env(safe-area-inset-top, 0px));padding-bottom:var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))}.bio-lock-body[data-v-0f946f26]{display:flex;flex-direction:column;align-items:center;gap:6px;transform:translateY(-8%)}.bio-lock-icon[data-v-0f946f26]{color:var(--text-on-primary);width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:var(--gradient-btn);box-shadow:0 8px 24px var(--glow-primary);margin-bottom:10px}.bio-lock-title[data-v-0f946f26]{font-size:17px;font-weight:700;color:var(--color-text, var(--text-primary))}.bio-lock-sub[data-v-0f946f26]{font-size:13px;color:var(--color-text-secondary, var(--text-muted))}.bio-lock-btn[data-v-0f946f26]{margin-top:18px;padding:10px 34px;border:none;border-radius:12px;font-size:15px;font-weight:600;color:var(--text-on-primary);background:var(--gradient-btn);cursor:pointer}.bio-lock-btn[data-v-0f946f26]:disabled{opacity:.6}.modal-overlay[data-v-ef6a5f32]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);z-index:1000;display:flex;align-items:flex-end;justify-content:center;padding:0}@media(min-width:768px){.modal-overlay[data-v-ef6a5f32]{align-items:center;padding:20px}}.modal-panel[data-v-ef6a5f32]{background:var(--bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:85vh;max-height:85dvh;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;padding-bottom:var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));display:flex;flex-direction:column}@media(min-width:768px){.modal-panel[data-v-ef6a5f32]{border-radius:var(--radius-xl);max-height:80vh;max-height:80dvh}.modal-sm[data-v-ef6a5f32]{max-width:400px}.modal-md[data-v-ef6a5f32]{max-width:520px}.modal-lg[data-v-ef6a5f32]{max-width:720px}.modal-full[data-v-ef6a5f32]{max-width:95vw;max-height:90vh;max-height:90dvh}}.modal-header[data-v-ef6a5f32]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border-color);flex-shrink:0}.modal-title[data-v-ef6a5f32]{font-size:var(--text-md);font-weight:700;color:var(--text-primary)}.modal-close-btn[data-v-ef6a5f32]{width:32px;height:32px;background:var(--bg-panel);border:none;border-radius:var(--radius-full);color:var(--text-secondary);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast);flex-shrink:0}.modal-close-btn[data-v-ef6a5f32]:hover{background:var(--border-color)}.modal-body[data-v-ef6a5f32]{padding:16px 20px;flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain}.modal-footer[data-v-ef6a5f32]{padding:12px 20px 16px;border-top:1px solid var(--border-color);display:flex;gap:10px;justify-content:flex-end;flex-shrink:0}.modal-enter-active[data-v-ef6a5f32],.modal-leave-active[data-v-ef6a5f32]{transition:opacity var(--dur-base) var(--ease-out)}.modal-enter-active .modal-panel[data-v-ef6a5f32],.modal-leave-active .modal-panel[data-v-ef6a5f32]{transition:transform var(--dur-base) var(--ease-out)}.modal-enter-from[data-v-ef6a5f32],.modal-leave-to[data-v-ef6a5f32]{opacity:0}.modal-enter-from .modal-panel[data-v-ef6a5f32],.modal-leave-to .modal-panel[data-v-ef6a5f32]{transform:translateY(40px)}@media(min-width:768px){.modal-enter-from .modal-panel[data-v-ef6a5f32],.modal-leave-to .modal-panel[data-v-ef6a5f32]{transform:scale(.96) translateY(10px)}}.up-head[data-v-35d36f65]{display:flex;flex-direction:column;gap:4px}.up-kicker[data-v-35d36f65]{font-size:11px;font-weight:700;color:var(--color-primary-text);letter-spacing:.3px}.up-title[data-v-35d36f65]{margin:0;font-size:var(--text-lg);font-weight:800;color:var(--text-primary);line-height:1.3}.up-detail[data-v-35d36f65]{margin:0 0 var(--space-3);color:var(--text-secondary);font-size:var(--text-sm);line-height:1.6}.up-highlights[data-v-35d36f65]{list-style:none;margin:0 0 var(--space-4);padding:var(--space-3);border-radius:var(--radius-lg, 14px);background:var(--bg-subtle, var(--color-primary-pale));display:flex;flex-direction:column;gap:8px}.up-highlights li[data-v-35d36f65]{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--text-primary)}.up-highlights svg[data-v-35d36f65]{color:var(--color-primary-text);flex-shrink:0}.up-btn-primary[data-v-35d36f65]{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 18px;border:0;border-radius:999px;background:var(--gradient-btn);color:var(--text-on-primary);font-weight:700;font-size:var(--text-sm);cursor:pointer}.up-btn-primary.secondary[data-v-35d36f65]{background:var(--bg-subtle, var(--bg-panel));color:var(--color-primary-text)}.up-btn-primary[data-v-35d36f65]:disabled{opacity:.6;cursor:default}.up-block[data-v-35d36f65]{width:100%;margin-bottom:10px}.up-btn-ghost[data-v-35d36f65]{height:42px;padding:0 16px;border:1px solid var(--border-color);background:transparent;border-radius:999px;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer}.up-btn-text[data-v-35d36f65]{display:block;width:100%;margin-top:2px;padding:8px;border:0;background:transparent;color:var(--text-muted);font-size:var(--text-sm);cursor:pointer}.up-note[data-v-35d36f65]{margin:0 0 8px;font-size:var(--text-xs);color:var(--text-muted);text-align:center;line-height:1.5}.up-confirm[data-v-35d36f65]{padding:var(--space-3);border-radius:var(--radius-lg, 14px);border:1px solid var(--border-color)}.up-confirm-title[data-v-35d36f65]{margin:0 0 6px;font-weight:700;color:var(--text-primary)}.up-confirm-body[data-v-35d36f65]{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6}.up-confirm-actions[data-v-35d36f65]{display:flex;gap:10px;justify-content:flex-end}.up-status[data-v-35d36f65]{margin:10px 0 0;font-size:var(--text-sm);text-align:center}.up-status.error[data-v-35d36f65]{color:var(--color-wrong)}.up-spinner[data-v-35d36f65]{width:14px;height:14px;border:2px solid var(--bg-card);border-top-color:var(--bg-card);border-radius:50%;animation:up-spin-35d36f65 .8s linear infinite}@keyframes up-spin-35d36f65{to{transform:rotate(360deg)}}.clock-warning[data-v-da54e124]{position:fixed;z-index:2300;left:12px;right:12px;top:calc(12px + env(safe-area-inset-top,0px));padding:14px;border-radius:12px;background:var(--warning-bg-2);color:var(--warning-deep);box-shadow:0 4px 20px #0002}.clock-warning button[data-v-da54e124]{display:block;margin-top:8px;padding:8px 12px;border-radius:8px;border:1px solid currentColor;background:transparent;color:inherit}.dg-body[data-v-da54e124]{margin:0 0 8px;font-weight:700;color:var(--text-primary)}.dg-sub[data-v-da54e124]{margin:0;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6}.dg-btn-ghost[data-v-da54e124]{flex:1;height:42px;border:1px solid var(--border-color);background:transparent;border-radius:999px;color:var(--text-secondary);font-size:var(--text-sm)}.dg-btn-primary[data-v-da54e124]{flex:1;height:42px;border:0;background:var(--gradient-btn);border-radius:999px;color:var(--text-on-primary);font-weight:700;font-size:var(--text-sm)}@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-text: #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;--read-stem: 16px;--read-option: 15px;--read-body: 15px;--option-gap: 10px;--option-pad-y: 13px;--option-pad-x: 16px;--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-text: #60a5fa;--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-text: #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;overscroll-behavior:none}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:100vh;min-height:100dvh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;overscroll-behavior:none}#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-user-select:none;user-select:none;-webkit-touch-callout:none}select{max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::-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)}.drag-scroll{overflow-y:hidden!important;overscroll-behavior-x:contain;touch-action:pan-x pan-y}@media(hover:hover)and (pointer:fine){.drag-scroll{cursor:grab}.drag-scroll.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.drag-scroll.is-dragging *{pointer-events:none}}.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-spacing=normal]{--option-gap: 10px;--option-pad-y: 13px;--option-pad-x: 16px}[data-spacing=large]{--option-gap: 14px;--option-pad-y: 18px;--option-pad-x: 20px}[data-spacing=xlarge]{--option-gap: 18px;--option-pad-y: 22px;--option-pad-x: 24px}[data-font=small]{--read-stem: 14px;--read-option: 14px;--read-body: 13px;--option-gap: 8px;--option-pad-y: 12px;--option-pad-x: 14px}[data-font=normal]{--read-stem: 16px;--read-option: 15px;--read-body: 15px;--option-gap: 10px;--option-pad-y: 13px;--option-pad-x: 16px}[data-font=large]{--read-stem: 20px;--read-option: 19px;--read-body: 18px;--option-gap: 14px;--option-pad-y: 18px;--option-pad-x: 20px}[data-font=xlarge]{--read-stem: 26px;--read-option: 24px;--read-body: 22px;--option-gap: 18px;--option-pad-y: 22px;--option-pad-x: 24px}@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}}:root,[data-theme=light]{--color-scheme: light;--on-bg-text-shadow: none;--theme-color: #eef3fb;--text-on-color: #ffffff;--success-text: #16a34a;--success-strong: #166534;--success-solid: #22c55e;--success-bg: #f0fdf4;--success-bg-2: #dcfce7;--success-border: #bbf7d0;--gradient-success: linear-gradient(135deg, #34d399, #059669);--glow-success: rgba(34, 197, 94, .28);--warning-text: #d97706;--warning-strong: #b45309;--warning-deep: #92400e;--warning-solid: #f59e0b;--warning-bg: #fffbeb;--warning-bg-2: #fef3c7;--warning-border: #fde68a;--gradient-warning: linear-gradient(135deg, #fbbf24, #d97706);--glow-warning: rgba(245, 158, 11, .3);--danger-text: #dc2626;--danger-strong: #b91c1c;--danger-solid: #ef4444;--danger-bg: #fef2f2;--danger-bg-2: #fee2e2;--danger-border: #fecaca;--gradient-danger: linear-gradient(135deg, #f87171, #dc2626);--glow-danger: rgba(229, 84, 98, .28);--ai-text: #7c3aed;--ai-strong: #6d28d9;--ai-solid: #8b5cf6;--ai-bg: #f5f3ff;--ai-bg-2: #ede9fe;--ai-border: #ddd6fe;--gradient-ai: linear-gradient(135deg, #8b5cf6, #6366f1);--glow-ai: rgba(139, 92, 246, .3);--glow-primary: rgba(59, 130, 246, .28);--glow-primary-soft: rgba(73, 128, 226, .12);--surface-header: rgba(244, 247, 253, .92);--surface-tabbar: var(--bg-card);--glass-bg: rgba(255, 255, 255, .92);--glass-border: var(--border-color);--glass-highlight: inset 0 0 0 0 transparent;--glass-shadow: 0 -2px 12px rgba(73, 128, 226, .08);--glass-blur: blur(14px) saturate(140%);--hero-text: #0f172a;--hero-text-2: #18305c;--hero-overlay: radial-gradient(circle at 20% 20%, rgba(255,255,255,.32), transparent 50%), radial-gradient(circle at 80% 5%, rgba(255,255,255,.22), transparent 45%);--hero-chip-bg: rgba(255, 255, 255, .75);--hero-chip-text: #1f2b52;--hero-cta-bg: #0f1f44;--hero-cta-text: #e8f1ff;--hero-cta-shadow: 0 12px 24px rgba(15, 23, 42, .25);--hero-track: rgba(255, 255, 255, .45);--hero-fill: linear-gradient(90deg, #2fa3ff, #2563eb);--hero-select-bg: rgba(255, 255, 255, .85);--hero-select-border: rgba(37, 99, 235, .22);--hero-select-text: #102247;--mode-quick: linear-gradient(135deg, #34d399, #059669);--mode-practice: linear-gradient(135deg, #5f9bf7, #3b82f6);--mode-exam: linear-gradient(135deg, #f59e0b, #d97706);--mode-recite: linear-gradient(135deg, #a78bfa, #7c3aed);--mode-slash: linear-gradient(135deg, #f87171, #dc2626);--mode-fg: #ffffff;--mode-border: 0 solid transparent;--mode-shadow: 0 6px 14px rgba(15, 23, 42, .12);--bank-icon-bg: linear-gradient(135deg, #7fb2ff, #4f8ef5);--bank-icon-fg: #ffffff;--img-filter: none;--font-title: var(--font-body);--bg-texture: none}[data-theme=dark]{--color-scheme: dark;--theme-color: #0f172a;--success-text: #4ade80;--success-strong: #86efac;--success-solid: #22c55e;--success-bg: rgba(34, 197, 94, .14);--success-bg-2: rgba(34, 197, 94, .22);--success-border: rgba(74, 222, 128, .32);--gradient-success: linear-gradient(135deg, #22c55e, #15803d);--glow-success: rgba(0, 0, 0, .3);--warning-text: #fbbf24;--warning-strong: #fcd34d;--warning-deep: #fde68a;--warning-solid: #f59e0b;--warning-bg: rgba(251, 191, 36, .12);--warning-bg-2: rgba(251, 191, 36, .2);--warning-border: rgba(251, 191, 36, .32);--gradient-warning: linear-gradient(135deg, #f59e0b, #b45309);--glow-warning: rgba(0, 0, 0, .3);--danger-text: #f87171;--danger-strong: #fca5a5;--danger-solid: #ef4444;--danger-bg: rgba(248, 113, 113, .13);--danger-bg-2: rgba(248, 113, 113, .2);--danger-border: rgba(248, 113, 113, .35);--gradient-danger: linear-gradient(135deg, #ef4444, #b91c1c);--glow-danger: rgba(0, 0, 0, .3);--ai-text: #a78bfa;--ai-strong: #c4b5fd;--ai-solid: #8b5cf6;--ai-bg: rgba(139, 92, 246, .14);--ai-bg-2: rgba(139, 92, 246, .22);--ai-border: rgba(167, 139, 250, .35);--gradient-ai: linear-gradient(135deg, #7c3aed, #4f46e5);--glow-ai: rgba(0, 0, 0, .3);--glow-primary: rgba(37, 99, 235, .3);--glow-primary-soft: rgba(0, 0, 0, .25);--surface-header: rgba(15, 23, 42, .92);--glass-bg: rgba(23, 32, 51, .94);--glass-shadow: 0 -2px 12px rgba(0, 0, 0, .3);--hero-text: #eef3ff;--hero-text-2: #c8d6f3;--hero-overlay: radial-gradient(circle at 20% 20%, rgba(255,255,255,.14), transparent 50%), radial-gradient(circle at 80% 5%, rgba(255,255,255,.1), transparent 45%);--hero-chip-bg: rgba(255, 255, 255, .14);--hero-chip-text: #e2eaf8;--hero-cta-bg: #e8f1ff;--hero-cta-text: #0f1f44;--hero-cta-shadow: 0 10px 22px rgba(0, 0, 0, .35);--hero-track: rgba(255, 255, 255, .18);--hero-fill: linear-gradient(90deg, #60a5fa, #93c5fd);--hero-select-bg: rgba(15, 23, 42, .45);--hero-select-border: rgba(147, 197, 253, .3);--hero-select-text: #e2eaf8;--mode-shadow: 0 6px 14px rgba(0, 0, 0, .3);--bank-icon-bg: linear-gradient(135deg, #3b82f6, #1d4ed8);--img-filter: brightness(.86) contrast(1.06)}[data-theme=eyecare]{--color-scheme: light;--theme-color: #f0ebe0;--gradient-btn: linear-gradient(120deg, #4e7a5a, #6b9e78);--text-muted: #8a7b5f;--bg-overlay: rgba(44, 36, 22, .32);--shadow-xs: 0 1px 3px rgba(80, 60, 20, .05);--shadow-sm: 0 4px 12px rgba(80, 60, 20, .07);--shadow-md: 0 8px 24px rgba(80, 60, 20, .1);--shadow-lg: 0 16px 40px rgba(80, 60, 20, .14);--color-correct: #4e7a5a;--color-correct-soft: #e9f2ea;--color-wrong: #b4483a;--color-wrong-soft: #f8e9e4;--color-accent: #c08a35;--color-accent-soft: #f6eedd;--color-correct-bg: #e9f2e6;--color-correct-text: #3f7d4f;--color-correct-border: #b9d3b6;--color-wrong-bg: #f8e9e4;--color-wrong-text: #b4483a;--color-wrong-border: #e6bfb4;--color-unanswered-bg: #f6eedd;--color-unanswered-text: #8a5a1c;--color-unanswered-border: #e2cda4;--badge-single-bg: #e4eee5;--badge-single-text: #44704f;--badge-multiple-bg: #e6eef0;--badge-multiple-text: #3f6b78;--badge-judge-bg: #f4ead6;--badge-judge-text: #94641f;--badge-fill-bg: #efe7f1;--badge-fill-text: #7a5c8e;--badge-subjective-bg: #f6e5df;--badge-subjective-text:#a9473a;--mastered-bg: #e9f2e6;--mastered-text: #3f7d4f;--mastered-border: #8fbf9a;--streak-bg: #f6eedd;--streak-text: #94641f;--success-text: #3f7d4f;--success-strong: #2f5e3b;--success-solid: #5a9a66;--success-bg: #e9f2e6;--success-bg-2: #d9e9d5;--success-border: #b9d3b6;--gradient-success: linear-gradient(135deg, #8fbf9a, #5a9a66);--glow-success: rgba(63, 125, 79, .22);--warning-text: #a26d22;--warning-strong: #8a5a1c;--warning-deep: #6e4614;--warning-solid: #d39a3e;--warning-bg: #f6eedd;--warning-bg-2: #efe0c2;--warning-border: #e2cda4;--gradient-warning: linear-gradient(135deg, #e0b462, #c08a35);--glow-warning: rgba(160, 110, 40, .22);--danger-text: #b4483a;--danger-strong: #8f3328;--danger-solid: #c95a4a;--danger-bg: #f8e9e4;--danger-bg-2: #f1d6ce;--danger-border: #e6bfb4;--gradient-danger: linear-gradient(135deg, #d98b7c, #b4483a);--glow-danger: rgba(180, 72, 58, .22);--ai-text: #7a5c8e;--ai-strong: #5f4572;--ai-solid: #8e6fa3;--ai-bg: #f1ebf3;--ai-bg-2: #e6dcea;--ai-border: #d8c9de;--gradient-ai: linear-gradient(135deg, #a58bb8, #7a5c8e);--glow-ai: rgba(122, 92, 142, .22);--glow-primary: rgba(78, 122, 90, .25);--glow-primary-soft: rgba(80, 60, 20, .08);--surface-header: rgba(250, 247, 240, .92);--glass-bg: rgba(253, 252, 249, .94);--glass-shadow: 0 -2px 12px rgba(80, 60, 20, .06);--hero-text: #1f2a1c;--hero-text-2: #33422f;--hero-chip-bg: rgba(255, 255, 255, .75);--hero-chip-text: #2c2416;--hero-cta-bg: #2f4a36;--hero-cta-text: #f3f7f0;--hero-cta-shadow: 0 10px 22px rgba(47, 74, 54, .25);--hero-track: rgba(255, 255, 255, .45);--hero-fill: linear-gradient(90deg, #4e7a5a, #2f5a3c);--hero-select-bg: rgba(255, 255, 255, .8);--hero-select-border: rgba(78, 122, 90, .3);--hero-select-text: #2c2416;--mode-quick: linear-gradient(135deg, #9cc4a5, #5f9070);--mode-practice: linear-gradient(135deg, #9fbccb, #67899c);--mode-exam: linear-gradient(135deg, #dcb873, #b78a3c);--mode-recite: linear-gradient(135deg, #b9a1c6, #8a6c9e);--mode-slash: linear-gradient(135deg, #dc9384, #b0503f);--mode-shadow: 0 6px 14px rgba(80, 60, 20, .14);--bank-icon-bg: linear-gradient(135deg, #9cc4a5, #6b9e78)}[data-theme=cream]{--color-scheme: light;--theme-color: #f5efe6;--color-primary: #c8643c;--color-primary-deep: #a94f2b;--color-primary-text: #a94f2b;--color-primary-dark: #8c3f22;--color-primary-soft: #f6e5d9;--color-primary-pale: #fbf1ea;--color-primary-glass: rgba(200, 100, 60, .1);--gradient-hero: radial-gradient(80% 70% at 100% 0%, rgba(232,162,111,.22) 0%, rgba(232,162,111,0) 70%), linear-gradient(150deg, #3b322a 0%, #2a231d 100%);--gradient-btn: linear-gradient(120deg, #c8643c, #b9582f);--color-correct: #4f8a5b;--color-correct-soft: #edf4ea;--color-wrong: #c0503a;--color-wrong-soft: #fbede6;--color-accent: #c58b35;--color-accent-soft: #f7ecd8;--color-correct-bg: #edf4ea;--color-correct-text: #3f7d4f;--color-correct-border: #a9cdb0;--color-wrong-bg: #fbede6;--color-wrong-text: #b9472f;--color-wrong-border: #e8b7a5;--color-unanswered-bg: #f7ecd8;--color-unanswered-text: #8a5a1c;--color-unanswered-border: #e2cda4;--badge-single-bg: #f6e5d9;--badge-single-text: #a94f2b;--badge-multiple-bg: #e8f0e4;--badge-multiple-text: #4a7a4f;--badge-judge-bg: #f7ecd8;--badge-judge-text: #94641f;--badge-fill-bg: #efe7ef;--badge-fill-text: #7a5a7f;--badge-subjective-bg: #fbe6df;--badge-subjective-text:#b9472f;--mastered-bg: #edf4ea;--mastered-text: #3f7d4f;--mastered-border: #7fae86;--streak-bg: #f7ecd8;--streak-text: #94641f;--bg-app: #f5efe6;--bg-texture: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .35 0 0 0 0 .25 0 0 0 0 .12 0 0 0 .05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--bg-app-gradient: var(--bg-texture), linear-gradient(180deg, #f7f2ea 0%, #f5efe6 50%, #f3ece2 100%);--bg-card: #fffcf7;--bg-card-hover: #faf4ea;--bg-panel: #f8f2e8;--bg-input: #f8f2e8;--bg-sidebar: #fffcf7;--bg-overlay: rgba(43, 36, 28, .35);--text-primary: #2b241c;--text-navy: #3a2f24;--text-secondary: #5f5446;--text-muted: #7d6d59;--text-placeholder: #b5a690;--text-on-primary: #ffffff;--border-color: #eadfce;--border-strong: #ddcdb6;--border-blue: rgba(200, 100, 60, .25);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 14px;--radius-xl: 16px;--radius-2xl: 20px;--shadow-xs: 0 1px 2px rgba(90, 62, 30, .05);--shadow-sm: 0 2px 8px rgba(90, 62, 30, .06);--shadow-md: 0 6px 18px rgba(90, 62, 30, .08);--shadow-lg: 0 12px 30px rgba(90, 62, 30, .12);--shadow-hero: 0 14px 30px rgba(43, 36, 28, .22);--shadow-card: 0 1px 2px rgba(90, 62, 30, .05), 0 6px 18px rgba(90, 62, 30, .04);--shadow-btn: 0 6px 14px rgba(200, 100, 60, .25);--success-text: #3f7d4f;--success-strong: #2f5e3b;--success-solid: #4f8a5b;--success-bg: #edf4ea;--success-bg-2: #dceadb;--success-border: #a9cdb0;--gradient-success: linear-gradient(135deg, #7f9c7b, #4f8a5b);--glow-success: rgba(63, 125, 79, .2);--warning-text: #a0691c;--warning-strong: #8a5a1c;--warning-deep: #6e4614;--warning-solid: #cf9a45;--warning-bg: #f7ecd8;--warning-bg-2: #f0dfbd;--warning-border: #e2cda4;--gradient-warning: linear-gradient(135deg, #dcae5c, #c08a35);--glow-warning: rgba(160, 105, 28, .2);--danger-text: #b9472f;--danger-strong: #8f3322;--danger-solid: #c8553d;--danger-bg: #fbede6;--danger-bg-2: #f5d9cc;--danger-border: #e8b7a5;--gradient-danger: linear-gradient(135deg, #d9826a, #b9472f);--glow-danger: rgba(185, 71, 47, .22);--ai-text: #7a5a7f;--ai-strong: #5e4263;--ai-solid: #8a6f8f;--ai-bg: #f3ecf3;--ai-bg-2: #e8dde9;--ai-border: #dccbdd;--gradient-ai: linear-gradient(135deg, #4a3d33, #2d261f);--glow-ai: rgba(43, 36, 28, .2);--glow-primary: rgba(200, 100, 60, .25);--glow-primary-soft: rgba(90, 62, 30, .08);--surface-header: rgba(245, 239, 230, .94);--glass-bg: rgba(255, 252, 247, .96);--glass-border: #eadfce;--glass-shadow: 0 -1px 0 rgba(90, 62, 30, .04);--hero-text: #f7efe2;--hero-text-2: rgba(247, 239, 226, .66);--hero-overlay: radial-gradient(circle at 85% 0%, rgba(232,162,111,.18), transparent 55%);--hero-chip-bg: rgba(247, 239, 226, .1);--hero-chip-text: #efe4d3;--hero-cta-bg: #f7efe2;--hero-cta-text: #2b241c;--hero-cta-shadow: none;--hero-track: rgba(247, 239, 226, .16);--hero-fill: linear-gradient(90deg, #e8a26f, #d9734a);--hero-select-bg: rgba(247, 239, 226, .08);--hero-select-border: rgba(247, 239, 226, .18);--hero-select-text: #f7efe2;--mode-quick: #7f9c7b;--mode-practice: #c8643c;--mode-exam: #cf9a45;--mode-recite: #8a6f8f;--mode-slash: #b9472f;--mode-shadow: none;--bank-icon-bg: #c8643c;--font-title: "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "Noto Serif SC", serif}[data-theme=glass]{--color-scheme: light;--theme-color: #f2f2f7;--color-primary: #0088ff;--color-primary-deep: #0071e3;--color-primary-text: #0066cc;--color-primary-dark: #0062c4;--color-primary-soft: #e6f2ff;--color-primary-pale: #f2f8ff;--color-primary-glass: rgba(0, 136, 255, .1);--gradient-hero: linear-gradient(165deg, rgba(255, 255, 255, .94) 0%, rgba(255, 255, 255, .72) 100%);--gradient-btn: linear-gradient(180deg, #43a6ff 0%, #0a84ff 48%, #0071e3 100%);--color-correct: #0088ff;--color-correct-soft: #e6f2ff;--color-wrong: #ff383c;--color-wrong-soft: #ffeeee;--color-accent: #ff8d28;--color-accent-soft: #fff3e8;--color-correct-bg: #eaf9ee;--color-correct-text: #248a3d;--color-correct-border: #9fe0b1;--color-wrong-bg: #ffeeee;--color-wrong-text: #d70015;--color-wrong-border: #ffb8b9;--color-unanswered-bg: #fff4e8;--color-unanswered-text: #a14f00;--color-unanswered-border: #ffd2a8;--badge-single-bg: #e6f2ff;--badge-single-text: #0071e3;--badge-multiple-bg: #eaf9ee;--badge-multiple-text: #248a3d;--badge-judge-bg: #fff3e8;--badge-judge-text: #b35a00;--badge-fill-bg: #efeefe;--badge-fill-text: #4a3fd8;--badge-subjective-bg: #ffeeee;--badge-subjective-text:#d70015;--mastered-bg: #eaf9ee;--mastered-text: #248a3d;--mastered-border: #34c759;--streak-bg: #fff3e8;--streak-text: #b35a00;--bg-app: #eef1f8;--bg-app-gradient: radial-gradient(72% 50% at 6% 2%, rgba(118, 172, 255, .46) 0%, rgba(118, 172, 255, 0) 68%) 0 0 / 100% 100% no-repeat, radial-gradient(62% 44% at 96% 14%, rgba(188, 156, 255, .38) 0%, rgba(188, 156, 255, 0) 66%) 0 0 / 100% 100% no-repeat, radial-gradient(58% 42% at 86% 96%, rgba(255, 176, 170, .28) 0%, rgba(255, 176, 170, 0) 66%) 0 0 / 100% 100% no-repeat, radial-gradient(66% 48% at 4% 90%, rgba(140, 190, 255, .3) 0%, rgba(140, 190, 255, 0) 66%) 0 0 / 100% 100% no-repeat, radial-gradient(46% 34% at 50% 48%, rgba(255, 255, 255, .6) 0%, rgba(255, 255, 255, 0) 70%) 0 0 / 100% 100% no-repeat, linear-gradient(180deg, #f6f7fc 0%, #eef1f8 100%);--bg-card: rgba(255, 255, 255, .96);--bg-card-hover: #ffffff;--bg-panel: rgba(118, 118, 128, .09);--bg-input: rgba(118, 118, 128, .11);--bg-sidebar: rgba(255, 255, 255, .6);--bg-overlay: rgba(20, 24, 40, .38);--text-primary: #1d1d1f;--text-navy: #1d1d1f;--text-secondary: #48484a;--text-muted: #6e6e73;--text-placeholder: #aeaeb2;--text-on-primary: #ffffff;--border-color: rgba(60, 60, 67, .1);--border-strong: rgba(60, 60, 67, .2);--border-blue: rgba(0, 136, 255, .3);--radius-sm: 12px;--radius-md: 16px;--radius-lg: 22px;--radius-xl: 26px;--radius-2xl: 30px;--shadow-xs: inset 0 1px 0 rgba(255, 255, 255, .85), 0 1px 2px rgba(20, 30, 60, .04);--shadow-sm: inset 0 1px 0 rgba(255, 255, 255, .9), 0 2px 10px rgba(20, 30, 60, .05);--shadow-md: inset 0 1px 0 rgba(255, 255, 255, .9), 0 10px 28px rgba(20, 30, 60, .09);--shadow-lg: inset 0 1px 0 rgba(255, 255, 255, .9), 0 20px 50px rgba(20, 30, 60, .14);--shadow-hero: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 -1px 0 rgba(255, 255, 255, .4), 0 16px 40px rgba(20, 30, 60, .1);--shadow-card: inset 0 1px 0 rgba(255, 255, 255, .95), 0 1px 2px rgba(20, 30, 60, .03), 0 8px 24px rgba(20, 30, 60, .05);--shadow-btn: inset 0 1px 0 rgba(255, 255, 255, .45), inset 0 -1px 0 rgba(0, 40, 120, .12), 0 8px 20px rgba(0, 122, 255, .3);--success-text: #248a3d;--success-strong: #1b6b2f;--success-solid: #34c759;--success-bg: #eaf9ee;--success-bg-2: #d4f3dc;--success-border: #9fe0b1;--gradient-success: linear-gradient(180deg, #4cd471, #2fb553);--glow-success: rgba(52, 199, 89, .28);--warning-text: #b35a00;--warning-strong: #a14f00;--warning-deep: #7a3d00;--warning-solid: #ff8d28;--warning-bg: #fff3e8;--warning-bg-2: #ffe3c7;--warning-border: #ffd2a8;--gradient-warning: linear-gradient(180deg, #ffa04d, #f57c0a);--glow-warning: rgba(255, 141, 40, .28);--danger-text: #d70015;--danger-strong: #b00012;--danger-solid: #ff383c;--danger-bg: #ffeeee;--danger-bg-2: #ffdcdc;--danger-border: #ffb8b9;--gradient-danger: linear-gradient(180deg, #ff5a5d, #e8262b);--glow-danger: rgba(255, 56, 60, .26);--ai-text: #4a3fd8;--ai-strong: #3b31b8;--ai-solid: #6155f5;--ai-bg: #f0efff;--ai-bg-2: #e3e0ff;--ai-border: #cfcbfb;--gradient-ai: linear-gradient(160deg, #7a6ff7, #5a4ef0);--glow-ai: rgba(97, 85, 245, .28);--glow-primary: rgba(0, 136, 255, .28);--glow-primary-soft: rgba(20, 30, 60, .06);--surface-header: rgba(255, 255, 255, .55);--glass-bg: linear-gradient(180deg, rgba(255, 255, 255, .62) 0%, rgba(255, 255, 255, .36) 100%);--glass-border: rgba(255, 255, 255, .75);--glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 -1px 0 rgba(255, 255, 255, .4), inset 0 18px 30px -18px rgba(255, 255, 255, .95), inset 0 -22px 30px -24px rgba(0, 110, 255, .14);--glass-shadow: 0 14px 40px rgba(20, 30, 70, .16), 0 2px 6px rgba(20, 30, 70, .06);--glass-blur: blur(30px) saturate(190%) brightness(1.03);--glass-blur-sm: blur(18px) saturate(170%);--hero-text: #1d1d1f;--hero-text-2: #6e6e73;--hero-overlay: none;--hero-chip-bg: rgba(118, 118, 128, .12);--hero-chip-text: #1d1d1f;--hero-cta-bg: linear-gradient(180deg, #43a6ff 0%, #0a84ff 48%, #0071e3 100%);--hero-cta-text: #ffffff;--hero-cta-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), inset 0 -1px 0 rgba(0, 40, 120, .12), 0 8px 20px rgba(0, 122, 255, .3);--hero-track: rgba(118, 118, 128, .16);--hero-fill: linear-gradient(90deg, #0a84ff, #43a6ff);--hero-select-bg: rgba(255, 255, 255, .7);--hero-select-border: rgba(60, 60, 67, .1);--hero-select-text: #1d1d1f;--mode-quick: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(236, 240, 250, .9));--mode-practice: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(236, 240, 250, .9));--mode-exam: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(236, 240, 250, .9));--mode-recite: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(236, 240, 250, .9));--mode-slash: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(236, 240, 250, .9));--mode-fg: #0071e3;--mode-border: 1px solid rgba(255, 255, 255, .85);--mode-shadow: inset 0 1px 0 rgba(255, 255, 255, 1), inset 0 -1px 0 rgba(255, 255, 255, .5), 0 2px 6px rgba(20, 30, 60, .08);--bank-icon-bg: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(236, 240, 250, .9));--bank-icon-fg: #0071e3}[data-theme=obsidian]{--color-scheme: dark;--theme-color: #0b0b0e;--color-primary: #d8b26e;--color-primary-deep: #e6c58a;--color-primary-text: #e6c58a;--color-primary-dark: #c99a4e;--color-primary-soft: rgba(216, 178, 110, .14);--color-primary-pale: rgba(216, 178, 110, .08);--color-primary-glass: rgba(216, 178, 110, .12);--gradient-hero: radial-gradient(80% 80% at 100% 0%, rgba(216,178,110,.22) 0%, rgba(216,178,110,0) 70%), linear-gradient(150deg, #26211a 0%, #151310 75%);--gradient-btn: linear-gradient(120deg, #ecd096, #c99a4e);--color-correct: #d8b26e;--color-correct-soft: rgba(216, 178, 110, .14);--color-wrong: #ff8a93;--color-wrong-soft: rgba(255, 125, 135, .1);--color-accent: #e6c58a;--color-accent-soft: rgba(216, 178, 110, .12);--color-correct-bg: rgba(92, 214, 160, .1);--color-correct-text: #5cd6a0;--color-correct-border: rgba(92, 214, 160, .38);--color-wrong-bg: rgba(255, 125, 135, .09);--color-wrong-text: #ff9aa2;--color-wrong-border: rgba(255, 125, 135, .38);--color-unanswered-bg: rgba(216, 178, 110, .12);--color-unanswered-text: #e6c58a;--color-unanswered-border: rgba(216, 178, 110, .3);--badge-single-bg: rgba(216, 178, 110, .14);--badge-single-text: #e6c58a;--badge-multiple-bg: rgba(92, 214, 160, .12);--badge-multiple-text: #7ee0b5;--badge-judge-bg: rgba(240, 180, 90, .12);--badge-judge-text: #f0c27a;--badge-fill-bg: rgba(190, 160, 230, .12);--badge-fill-text: #c9b3ec;--badge-subjective-bg: rgba(255, 125, 135, .12);--badge-subjective-text:#ffa3aa;--mastered-bg: rgba(92, 214, 160, .1);--mastered-text: #5cd6a0;--mastered-border: rgba(92, 214, 160, .4);--streak-bg: rgba(216, 178, 110, .12);--streak-text: #e6c58a;--bg-app: #0b0b0e;--bg-app-gradient: radial-gradient(120% 45% at 50% -8%, rgba(216,178,110,.1) 0%, rgba(216,178,110,0) 62%), #0b0b0e;--bg-card: #16161b;--bg-card-hover: #1c1c22;--bg-panel: #1a1a20;--bg-input: #1a1a20;--bg-sidebar: #121216;--bg-overlay: rgba(0, 0, 0, .6);--text-primary: #f4efe6;--text-navy: #efe6d6;--text-secondary: #bdb5a7;--text-muted: #8a8378;--text-placeholder: #5a554d;--text-on-primary: #1b1508;--border-color: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--border-blue: rgba(216, 178, 110, .3);--shadow-xs: 0 1px 3px rgba(0, 0, 0, .4);--shadow-sm: 0 4px 12px rgba(0, 0, 0, .45);--shadow-md: 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .6);--shadow-hero: 0 0 0 1px rgba(216, 178, 110, .25), 0 20px 40px rgba(0, 0, 0, .5);--shadow-card: 0 0 0 0 transparent;--shadow-btn: 0 8px 20px rgba(216, 178, 110, .2);--success-text: #5cd6a0;--success-strong: #8ee6c0;--success-solid: #2fbf84;--success-bg: rgba(92, 214, 160, .1);--success-bg-2: rgba(92, 214, 160, .18);--success-border: rgba(92, 214, 160, .35);--gradient-success: linear-gradient(135deg, #2fbf84, #1d8a5e);--glow-success: rgba(0, 0, 0, .4);--warning-text: #f0c27a;--warning-strong: #f5d49a;--warning-deep: #f8e2b8;--warning-solid: #e0a040;--warning-bg: rgba(240, 180, 90, .1);--warning-bg-2: rgba(240, 180, 90, .18);--warning-border: rgba(240, 180, 90, .32);--gradient-warning: linear-gradient(135deg, #e0a040, #a8721f);--glow-warning: rgba(0, 0, 0, .4);--danger-text: #ff8a93;--danger-strong: #ffb3b9;--danger-solid: #f0606c;--danger-bg: rgba(255, 125, 135, .09);--danger-bg-2: rgba(255, 125, 135, .16);--danger-border: rgba(255, 125, 135, .35);--gradient-danger: linear-gradient(135deg, #f0606c, #b8323d);--glow-danger: rgba(0, 0, 0, .4);--ai-text: #c9b3ec;--ai-strong: #ddd0f5;--ai-solid: #9f7ae0;--ai-bg: rgba(190, 160, 230, .1);--ai-bg-2: rgba(190, 160, 230, .18);--ai-border: rgba(190, 160, 230, .32);--gradient-ai: radial-gradient(80% 90% at 100% 0%, rgba(216,178,110,.25) 0%, rgba(216,178,110,0) 70%), linear-gradient(125deg, #29231a 0%, #17140f 100%);--glow-ai: rgba(0, 0, 0, .4);--glow-primary: rgba(216, 178, 110, .22);--glow-primary-soft: rgba(0, 0, 0, .35);--surface-header: rgba(11, 11, 14, .9);--glass-bg: rgba(16, 16, 20, .94);--glass-border: rgba(255, 255, 255, .06);--glass-shadow: 0 -1px 0 rgba(255, 255, 255, .03);--hero-text: #f4efe6;--hero-text-2: #b4a487;--hero-overlay: none;--hero-chip-bg: rgba(216, 178, 110, .1);--hero-chip-text: #e6c58a;--hero-cta-bg: linear-gradient(120deg, #ecd096, #c99a4e);--hero-cta-text: #1b1508;--hero-cta-shadow: 0 8px 18px rgba(216, 178, 110, .25);--hero-track: rgba(255, 255, 255, .08);--hero-fill: linear-gradient(90deg, #c99a4e, #f0d79e);--hero-select-bg: rgba(255, 255, 255, .04);--hero-select-border: rgba(216, 178, 110, .25);--hero-select-text: #f4efe6;--mode-quick: linear-gradient(135deg, #2a251c, #1a1712);--mode-practice: linear-gradient(135deg, #2a251c, #1a1712);--mode-exam: linear-gradient(135deg, #2a251c, #1a1712);--mode-recite: linear-gradient(135deg, #2a251c, #1a1712);--mode-slash: linear-gradient(135deg, #2a251c, #1a1712);--mode-fg: #e6c58a;--mode-border: 1px solid rgba(216, 178, 110, .3);--mode-shadow: none;--bank-icon-bg: linear-gradient(135deg, #2a251c, #1a1712);--bank-icon-fg: #e6c58a;--img-filter: brightness(.84) contrast(1.06)}html{color-scheme:var(--color-scheme, light)}.page-title,.page-sub,.header-title,.header-sub,.section-title{text-shadow:var(--on-bg-text-shadow, none)}html[data-theme] .page-title,html[data-theme] .page-heading{font-family:var(--font-title)}html:not([data-img-dim=off]) img:not(.no-dim):not(.viewer-img):not(.preview-img):not(.img-fullscreen-img):not(.brand-logo){filter:var(--img-filter)}input[type=range].theme-range{-webkit-appearance:none;appearance:none;height:28px;background:transparent;cursor:pointer;--range-pct: 50%}input[type=range].theme-range::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary) var(--range-pct),var(--border-strong) var(--range-pct),var(--border-strong) 100%)}input[type=range].theme-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;margin-top:-8px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border-strong);box-shadow:0 2px 6px #0000002e}input[type=range].theme-range::-moz-range-track{height:6px;border-radius:999px;background:var(--border-strong)}input[type=range].theme-range::-moz-range-progress{height:6px;border-radius:999px;background:var(--color-primary)}input[type=range].theme-range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border-strong);box-shadow:0 2px 6px #0000002e}html[data-theme=glass] .page-header,html[data-theme=glass] .home-header{background:transparent}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar{position:absolute;left:18px;right:18px;bottom:calc(10px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));min-height:64px;padding:6px;border-radius:999px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-highlight),var(--glass-shadow);overflow:hidden;isolation:isolate}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;z-index:0;background:radial-gradient(120% 95% at 16% -30%,#fffc,#fff0 55%),radial-gradient(70% 70% at 92% 140%,#007aff29,#007aff00 60%)}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-item{position:relative;z-index:2;padding:4px 0;border-radius:999px;color:#3c3c439e;transition:color .25s ease,transform .35s cubic-bezier(.3,1.4,.4,1)}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-item.active{color:#0071e3}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-item:active .tab-icon-wrap{transform:scale(.86)}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-item .tab-icon-wrap{background:transparent;transform:none}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-item.active .tab-icon-wrap{background:transparent}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-lens{display:block;position:absolute;top:6px;bottom:6px;left:6px;z-index:1;width:calc((100% - 12px) / var(--n, 5));transform:translate(calc(var(--i, 0) * 100%));border-radius:999px;background:linear-gradient(180deg,#fffffff2,#ffffff9e);box-shadow:inset 0 1px #fff,inset 0 -1px #fff9,inset 0 -10px 16px -12px #007aff4d,0 6px 16px #0064ff29,0 1px 2px #0000000d;transition:transform .6s cubic-bezier(.32,1.45,.45,1);pointer-events:none}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-lens.off{opacity:0;transition:opacity .2s ease}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-lens:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:inherit;background:radial-gradient(90% 60% at 30% 0%,#ffffffe6,#fff0 70%)}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-lens.moving{animation:glass-lens-squash .6s cubic-bezier(.2,.8,.3,1)}@keyframes glass-lens-squash{0%{scale:1 1}35%{scale:1.22 .88}70%{scale:.94 1.06}to{scale:1 1}}html[data-theme=glass] .app-layout:not(.is-desktop) .main-content{padding-bottom:calc(88px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))}html[data-theme=glass] .app-layout:not(.is-desktop){position:relative}html[data-theme=glass] .fab{bottom:calc(92px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));background:radial-gradient(120% 120% at 30% 18%,#6ab8ff,#0a84ff 55%,#0062c4);box-shadow:inset 0 1px #ffffff8c,inset 0 -3px 8px #00328c47,0 10px 26px #0071e35c}html[data-theme=glass] .session-header{background:transparent;border-bottom:none;box-shadow:none}html[data-theme=glass] .hdr-back,html[data-theme=glass] .hdr-pill,html[data-theme=glass] .hdr-timer{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur-sm);backdrop-filter:var(--glass-blur-sm);border:1px solid var(--glass-border);box-shadow:inset 0 1px #fffffff2,0 4px 14px #141e461a}html[data-theme=glass] .hdr-back{border-radius:999px}html[data-theme=glass] .session-footer{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-top:1px solid var(--glass-border);box-shadow:inset 0 1px #fffffff2,0 -10px 30px #141e4614}html[data-theme=glass] .nav-btn{background:#ffffff8c;border-color:#ffffffd9;box-shadow:inset 0 1px #fff}html[data-theme=glass] .modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}html[data-theme=glass] .modal-panel{background:#ffffffeb;-webkit-backdrop-filter:blur(36px) saturate(170%);backdrop-filter:blur(36px) saturate(170%);border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px #fff,0 -12px 40px #141e4624}html[data-theme=glass] .modal-header{border-bottom-color:#3c3c4314}html[data-theme=glass] .modal-close-btn{background:#7676801f}html[data-theme=glass] .analysis-box{background:#ffffffb3;border-color:#ffffffe6;box-shadow:inset 0 1px #fff,0 6px 18px #141e3c0d}html[data-theme=glass] .app-card{border-color:#ffffffd9}html[data-theme=glass] .hero-card{border:1px solid rgba(255,255,255,.9)}html[data-theme=glass] .mode-item,html[data-theme=glass] .bank-card,html[data-theme=glass] .question-card,html[data-theme=glass] .stat-card,html[data-theme=glass] .setting-group,html[data-theme=glass] .settings-card{border-color:#ffffffd9}html[data-theme=glass] .hero-cta:active,html[data-theme=glass] .btn-primary:active,html[data-theme=glass] .btn-next:active:not(:disabled),html[data-theme=glass] .mode-item:active:not(:disabled),html[data-theme=glass] .fab:active{transform:scale(.96);transition:transform .12s ease}@media(prefers-reduced-transparency:reduce){html[data-theme=glass]{--glass-bg: rgba(250, 250, 252, .97);--surface-header: rgba(250, 250, 252, .97);--bg-card: #ffffff}html[data-theme=glass] .modal-panel{background:#fff}}@media(prefers-reduced-motion:reduce){html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-lens{transition:none}html[data-theme=glass] .app-layout:not(.is-desktop) .tab-bar .tab-lens.moving{animation:none}}html[data-theme=cream] .app-layout .tab-bar .tab-item.active .tab-icon-wrap{background:transparent}html[data-theme=cream] .app-layout .tab-bar .tab-item.active .tab-label{position:relative;font-weight:700}html[data-theme=cream] .app-layout .tab-bar .tab-item.active .tab-label:after{content:"";position:absolute;left:50%;bottom:-5px;width:16px;height:3px;margin-left:-8px;border-radius:2px;background:var(--color-primary)}
