:root{--lg-accent: #007AFF;--lg-accent-2: #5856D6;--lg-accent-grad: linear-gradient(135deg, #007AFF 0%, #5856D6 50%, #AF52DE 100%);--lg-success: #34C759;--lg-danger: #FF3B30;--lg-warn: #FF9500;--glass-bg: rgba(255, 255, 255, .72);--glass-bg-strong: rgba(255, 255, 255, .82);--glass-bg-soft: rgba(255, 255, 255, .5);--glass-border: rgba(255, 255, 255, .92);--glass-border-soft: rgba(0, 0, 0, .05);--glass-blur: blur(28px) saturate(180%);--glass-blur-strong: blur(40px) saturate(200%);--text-primary: #1C1C1E;--text-secondary: #6E6E73;--text-tertiary: #AEAEB2;--text-on-accent: #FFFFFF;--shadow-sm: 0 1px 3px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.03);--shadow-md: 0 2px 8px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.06);--shadow-lg: 0 4px 16px rgba(0,0,0,.04), 0 16px 48px rgba(0,0,0,.08);--shadow-glow: 0 4px 16px rgba(0,122,255,.2), 0 8px 32px rgba(88,86,214,.14);--inner-hi: inset 0 1px 0 rgba(255, 255, 255, .95);--inner-hi-soft: inset 0 1px 0 rgba(255, 255, 255, .7);--r-sm: 12px;--r-md: 18px;--r-lg: 24px;--r-xl: 30px;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--bg-mesh: #FFFFFF;--md-primary: #007AFF;--md-on-primary: #FFFFFF;--md-error: #FF3B30;--md-on-surface: #1C1C1E;--md-on-surface-variant: #6E6E73;--md-surface-container: rgba(255, 255, 255, .7)}[data-theme=dark]{--lg-accent: #0A84FF;--lg-accent-2: #5E5CE6;--lg-accent-grad: linear-gradient(135deg, #0A84FF 0%, #5E5CE6 50%, #BF5AF2 100%);--lg-success: #30D158;--lg-danger: #FF453A;--lg-warn: #FF9F0A;--glass-bg: rgba(28, 28, 30, .72);--glass-bg-strong: rgba(44, 44, 46, .82);--glass-bg-soft: rgba(28, 28, 30, .5);--glass-border: rgba(255, 255, 255, .14);--glass-border-soft: rgba(255, 255, 255, .06);--text-primary: #F5F5F7;--text-secondary: #98989D;--text-tertiary: #636366;--shadow-sm: 0 1px 3px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.25);--shadow-md: 0 2px 8px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.35);--shadow-lg: 0 4px 16px rgba(0,0,0,.4), 0 16px 48px rgba(0,0,0,.45);--shadow-glow: 0 4px 16px rgba(10,132,255,.28), 0 8px 32px rgba(94,92,230,.18);--inner-hi: inset 0 1px 0 rgba(255, 255, 255, .1);--inner-hi-soft: inset 0 1px 0 rgba(255, 255, 255, .06);--bg-mesh: #000000;--md-primary: #0A84FF;--md-on-primary: #FFFFFF;--md-error: #FF453A;--md-on-surface: #F5F5F7;--md-on-surface-variant: #98989D;--md-surface-container: rgba(44, 44, 46, .7)}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:var(--text-primary);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}body{min-height:100dvh;background:var(--bg-mesh);transition:background .5s var(--ease-smooth)}#app{max-width:640px;width:100%;margin:0 auto;padding:0 16px;flex:1;display:none;flex-direction:column}button{font-family:inherit}svg{display:block}.view{display:none;flex:1;padding-bottom:108px;animation:viewIn .45s var(--ease-smooth)}.view.active{display:flex;flex-direction:column}@keyframes viewIn{0%{opacity:0;transform:translateY(16px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-view{min-height:100dvh;display:none;align-items:center;justify-content:center;padding:24px}.auth-view.visible{display:flex}.auth-container{width:100%;max-width:400px;text-align:center;animation:viewIn .5s var(--ease-spring)}.auth-header{margin-bottom:32px}.auth-header h1{font-size:40px;font-weight:800;letter-spacing:-1px;background:var(--lg-accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px}.auth-subtitle{font-size:14px;color:var(--text-secondary)}.auth-tabs{display:flex;margin-bottom:24px;background:var(--glass-bg-soft);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-soft);border-radius:var(--r-lg);padding:5px;box-shadow:var(--inner-hi-soft),var(--shadow-sm)}.auth-tab{flex:1;padding:11px 16px;border:none;border-radius:calc(var(--r-lg) - 5px);background:transparent;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .3s var(--ease-spring)}.auth-tab.active{background:var(--lg-accent-grad);color:var(--text-on-accent);box-shadow:var(--shadow-glow)}.passkey-btn{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;padding:13px 20px;border:1px solid var(--glass-border);border-radius:var(--r-lg);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--lg-accent);font-size:14px;font-weight:600;cursor:pointer;box-shadow:var(--inner-hi),var(--shadow-sm);transition:all .3s var(--ease-spring)}.passkey-btn:hover{transform:translateY(-2px);box-shadow:var(--inner-hi),var(--shadow-md)}.passkey-btn:active{transform:scale(.98)}.passkey-btn svg{flex-shrink:0}.auth-offline-btn{margin-top:22px;font-size:13px;color:var(--text-secondary);cursor:pointer;font-weight:500;text-decoration:underline;text-underline-offset:3px;transition:color .25s}.auth-offline-btn:hover{color:var(--lg-accent)}.user-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;margin:12px 0 4px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-soft);border-radius:var(--r-lg);box-shadow:var(--inner-hi-soft),var(--shadow-sm);position:sticky;top:12px;z-index:50}.user-bar-left,.user-bar-right{display:flex;align-items:center;gap:10px}.user-greeting{font-size:15px;font-weight:600;color:var(--text-primary)}.user-sync-btn,.user-login-entry{display:flex;align-items:center;gap:5px;padding:7px 13px;border-radius:var(--r-md);border:1px solid var(--glass-border-soft);background:var(--glass-bg-soft);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all .3s var(--ease-spring)}.user-sync-btn svg,.user-login-entry svg{width:15px;height:15px;fill:currentColor}.user-sync-btn:hover,.user-login-entry:hover{color:var(--lg-accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.user-login-entry{color:var(--lg-accent)}.user-sync-btn.syncing svg{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dashboard-header{margin:20px 4px 4px}.dashboard-header h1{font-size:30px;font-weight:800;letter-spacing:-.5px;background:var(--lg-accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.stat-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-soft);border-radius:var(--r-lg);padding:18px 12px;text-align:center;box-shadow:var(--inner-hi-soft),var(--shadow-sm);transition:transform .35s var(--ease-spring),box-shadow .35s;animation:viewIn .5s var(--ease-smooth) backwards}.stat-card:nth-child(2){animation-delay:.06s}.stat-card:nth-child(3){animation-delay:.12s}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--inner-hi-soft),var(--shadow-md)}.stat-number{font-size:30px;font-weight:800;background:var(--lg-accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat-label{font-size:12px;color:var(--text-tertiary);margin-top:4px;font-weight:500}.progress-section{margin-top:14px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-soft);border-radius:var(--r-lg);padding:18px;box-shadow:var(--inner-hi-soft),var(--shadow-sm)}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-title{font-size:14px;font-weight:600;color:var(--text-primary)}.progress-percent{font-size:14px;font-weight:700;color:var(--lg-accent)}.progress-bar-track{height:10px;background:#0000000d;border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 3px #0000000f}[data-theme=dark] .progress-bar-track{background:#ffffff14}.progress-bar-fill{height:100%;background:var(--lg-accent-grad);border-radius:999px;transition:width .8s var(--ease-spring);box-shadow:0 0 12px #007aff59}.progress-detail{font-size:12px;color:var(--text-tertiary);margin-top:10px}.progress-next{color:var(--lg-accent);font-weight:600}.qb-stats-bar{display:flex;align-items:center;gap:8px;margin-top:14px;padding:13px 16px;background:var(--glass-bg-soft);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-soft);border-radius:var(--r-md);font-size:13px;color:var(--text-secondary);box-shadow:var(--inner-hi-soft)}.qb-stats-bar svg{width:17px;height:17px;fill:var(--lg-accent);flex-shrink:0}.start-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:18px;padding:17px;border:none;border-radius:var(--r-lg);background:var(--lg-accent-grad);color:var(--text-on-accent);font-size:16px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-glow),var(--inner-hi-soft);transition:all .3s var(--ease-spring);position:relative;overflow:hidden}.start-btn:hover{transform:translateY(-2px);box-shadow:0 12px 32px #007aff4d,var(--inner-hi-soft)}.start-btn:active{transform:scale(.98)}.start-btn svg{width:22px;height:22px;fill:currentColor}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.quick-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border:1px solid var(--glass-border-soft);border-radius:var(--r-lg);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;box-shadow:var(--inner-hi-soft),var(--shadow-sm);transition:all .3s var(--ease-spring)}.quick-btn:hover{transform:translateY(-2px);box-shadow:var(--inner-hi-soft),var(--shadow-md);color:var(--lg-accent)}.quick-btn svg{width:19px;height:19px;fill:currentColor}.roadmap-header{margin:20px 4px 4px}.roadmap-header h2{font-size:24px;font-weight:700;letter-spacing:-.3px}.subject-tabs{display:flex;gap:8px;margin-top:14px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.subject-tabs::-webkit-scrollbar{display:none}.subject-tab{display:flex;align-items:center;gap:7px;padding:9px 16px;border:1px solid var(--glass-border-soft);border-radius:999px;background:var(--glass-bg-soft);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .3s var(--ease-spring);box-shadow:var(--inner-hi-soft)}.subject-tab.active{background:var(--lg-accent-grad);color:var(--text-on-accent);border-color:transparent;box-shadow:var(--shadow-glow)}.subject-tab-count{font-size:11px;padding:1px 7px;border-radius:999px;background:#0000000f}.subject-tab.active .subject-tab-count{background:#ffffff40}#categories-container{margin-top:16px;display:flex;flex-direction:column;gap:14px}.category-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-soft);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--inner-hi-soft),var(--shadow-sm);animation:viewIn .5s var(--ease-smooth) backwards}.category-header{display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer}.category-color{width:6px;height:40px;border-radius:999px;flex-shrink:0}.category-info{flex:1;min-width:0}.category-name{font-size:15px;font-weight:700;color:var(--text-primary)}.category-meta{font-size:12px;color:var(--text-tertiary);margin-top:3px}.category-expand{width:22px;height:22px;fill:var(--text-tertiary);transition:transform .35s var(--ease-spring);flex-shrink:0}.category-card.expanded .category-expand{transform:rotate(180deg)}.nodes-list{display:none;padding:0 12px 12px;flex-direction:column;gap:8px}.category-card.expanded .nodes-list{display:flex;animation:viewIn .4s var(--ease-smooth)}.node-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--glass-bg-soft);border:1px solid var(--glass-border-soft);border-radius:var(--r-md);transition:all .3s var(--ease-spring)}.node-item:hover{background:var(--glass-bg-strong);transform:translate(2px)}.node-item.completed .node-name{color:var(--text-tertiary);text-decoration:line-through}.node-check{width:26px;height:26px;border-radius:50%;border:2px solid var(--text-tertiary);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .3s var(--ease-spring)}.node-check svg{width:15px;height:15px;fill:#fff;opacity:0;transform:scale(.4);transition:all .3s var(--ease-spring)}.node-check.checked{background:var(--lg-success);border-color:var(--lg-success);box-shadow:0 0 12px #34c75959}.node-check.checked svg{opacity:1;transform:scale(1)}.node-info{flex:1;min-width:0;cursor:pointer}.node-name{font-size:14px;font-weight:600;color:var(--text-primary);display:block}.node-meta{display:flex;gap:8px;margin-top:4px;align-items:center}.node-level{font-size:11px;font-weight:600}.node-qp{font-size:11px;color:var(--text-tertiary);padding:1px 7px;background:#0000000a;border-radius:999px}[data-theme=dark] .node-qp{background:#ffffff14}.node-qp.no-q{color:var(--lg-danger)}.node-study-btn{width:38px;height:38px;border-radius:50%;border:none;background:var(--lg-accent-grad);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;box-shadow:var(--shadow-glow);transition:all .3s var(--ease-spring)}.node-study-btn:hover{transform:scale(1.1)}.node-study-btn svg{width:17px;height:17px;fill:#fff;margin-left:2px}.empty-state{text-align:center;padding:60px 20px;background:var(--glass-bg-soft);border:1px solid var(--glass-border-soft);border-radius:var(--r-xl);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.empty-icon{width:48px;height:48px;fill:var(--text-tertiary);margin:0 auto 16px}.empty-title{font-size:16px;font-weight:600;color:var(--text-primary)}.empty-desc{font-size:13px;color:var(--text-tertiary);margin-top:8px}.empty-btn{margin-top:20px}#view-quiz{padding-left:4px;padding-right:4px}.quiz-header{display:flex;align-items:center;justify-content:space-between;padding:12px 0}.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--glass-border-soft);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s var(--ease-spring);box-shadow:var(--inner-hi-soft)}.icon-btn:hover{background:var(--glass-bg-strong);transform:scale(1.05)}.icon-btn svg{width:19px;height:19px;fill:var(--text-secondary)}.quiz-progress-info{display:flex;align-items:center;gap:10px}.quiz-progress-text{font-size:13px;font-weight:600;color:var(--text-secondary)}.quiz-diff-badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}.diff-a{background:#34c75924;color:var(--lg-success)}.diff-b{background:#ff950024;color:var(--lg-warn)}.diff-c{background:#ff3b3024;color:var(--lg-danger)}.quiz-timer{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-secondary);padding:5px 12px;border-radius:999px;background:var(--glass-bg-soft);border:1px solid var(--glass-border-soft)}.quiz-progress-bar{height:5px;background:#0000000d;border-radius:999px;overflow:hidden;margin:6px 0 16px}[data-theme=dark] .quiz-progress-bar{background:#ffffff14}.quiz-progress-fill{height:100%;background:var(--lg-accent-grad);border-radius:999px;transition:width .5s var(--ease-spring)}.quiz-body{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-soft);border-radius:var(--r-xl);padding:22px 18px;box-shadow:var(--inner-hi-soft),var(--shadow-md);animation:viewIn .4s var(--ease-smooth)}.quiz-question{font-size:17px;font-weight:600;line-height:1.6;color:var(--text-primary)}.quiz-image{margin-top:14px;text-align:center}.quiz-image img{max-width:100%;border-radius:var(--r-md)}.quiz-kp-hint{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.kp-tag{font-size:11px;color:var(--lg-accent);background:#007aff1a;padding:3px 9px;border-radius:999px;font-weight:500}.quiz-options{display:flex;flex-direction:column;gap:10px;margin-top:18px}.quiz-option{display:flex;align-items:flex-start;gap:12px;padding:14px;background:var(--glass-bg-soft);border:1.5px solid var(--glass-border-soft);border-radius:var(--r-md);cursor:pointer;transition:all .3s var(--ease-spring)}.quiz-option:hover{background:var(--glass-bg-strong);transform:translate(2px)}.quiz-option.selected{border-color:var(--lg-accent);background:#007aff14;box-shadow:0 0 0 3px #007aff1f}.quiz-option.revealed.correct{border-color:var(--lg-success);background:#34c7591a}.quiz-option.revealed.wrong{border-color:var(--lg-danger);background:#ff3b3014}.option-letter{width:28px;height:28px;border-radius:50%;background:#0000000d;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--text-secondary);flex-shrink:0}[data-theme=dark] .option-letter{background:#ffffff1a}.quiz-option.selected .option-letter{background:var(--lg-accent);color:#fff}.quiz-option.revealed.correct .option-letter{background:var(--lg-success);color:#fff}.quiz-option.revealed.wrong .option-letter{background:var(--lg-danger);color:#fff}.option-text{font-size:14px;line-height:1.5;color:var(--text-primary);padding-top:3px}.quiz-footer{display:flex;align-items:center;gap:10px;margin-top:18px}.quiz-prev-btn,.quiz-tool-btn{display:flex;align-items:center;gap:6px;padding:12px 16px;border:1px solid var(--glass-border-soft);border-radius:var(--r-md);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:all .3s var(--ease-spring);box-shadow:var(--inner-hi-soft)}.quiz-prev-btn svg,.quiz-tool-btn svg{width:17px;height:17px;fill:currentColor}.quiz-prev-btn:hover:not(:disabled),.quiz-tool-btn:hover{color:var(--lg-accent);transform:translateY(-1px)}.quiz-prev-btn:disabled{opacity:.4;cursor:not-allowed}.quiz-submit-btn{flex:1;padding:13px;border:none;border-radius:var(--r-md);background:var(--lg-accent-grad);color:#fff;font-size:15px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-glow);transition:all .3s var(--ease-spring)}.quiz-submit-btn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.quiz-submit-btn:not(:disabled):hover{transform:translateY(-2px)}.result-container{padding:8px 0;animation:viewIn .5s var(--ease-smooth)}.result-circle{width:150px;height:150px;margin:16px auto;border-radius:50%;background:conic-gradient(var(--lg-accent) calc(var(--pct) * 1%),rgba(0,0,0,.05) 0);display:flex;align-items:center;justify-content:center;position:relative;animation:viewIn .6s var(--ease-spring)}[data-theme=dark] .result-circle{background:conic-gradient(var(--lg-accent) calc(var(--pct) * 1%),rgba(255,255,255,.08) 0)}.result-circle-inner{width:118px;height:118px;border-radius:50%;background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--inner-hi)}.result-score{font-size:32px;font-weight:800;background:var(--lg-accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.result-detail{font-size:12px;color:var(--text-tertiary);margin-top:2px}.result-rating-change{margin:8px auto 18px;max-width:320px;text-align:center;padding:14px;background:var(--glass-bg-soft);border:1px solid var(--glass-border-soft);border-radius:var(--r-lg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.result-rating-label{font-size:12px;color:var(--text-tertiary)}.result-rating-value{font-size:17px;font-weight:700;margin-top:6px}.result-rating-value .delta{font-size:13px;margin-left:6px;font-weight:700}.delta.positive{color:var(--lg-success)}.delta.negative{color:var(--lg-danger)}.result-nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:14px;background:var(--glass-bg-soft);border:1px solid var(--glass-border-soft);border-radius:var(--r-lg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);margin-bottom:16px}.result-nav-dot{width:38px;height:38px;border-radius:12px;border:none;font-size:14px;font-weight:700;cursor:pointer;color:#fff;transition:all .3s var(--ease-spring);box-shadow:var(--shadow-sm)}.result-nav-dot.correct{background:linear-gradient(135deg,#34c759,#248a3d)}.result-nav-dot.wrong{background:linear-gradient(135deg,#ff3b30,#d70015)}.result-nav-dot.na{background:#78788c80}.result-nav-dot:hover{transform:translateY(-3px) scale(1.06)}.result-answers{display:flex;flex-direction:column;gap:12px}.result-section-title{font-size:15px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.result-item{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-soft);border-left-width:4px;border-radius:var(--r-md);padding:14px;transition:box-shadow .3s,transform .3s}.result-item.correct{border-left-color:var(--lg-success)}.result-item.wrong{border-left-color:var(--lg-danger)}.result-item.na{border-left-color:var(--text-tertiary)}.result-item.flash{animation:flashHi 1.6s var(--ease-smooth)}@keyframes flashHi{0%,to{box-shadow:var(--inner-hi-soft),var(--shadow-sm)}25%{box-shadow:0 0 0 4px #007aff59,var(--shadow-md);transform:scale(1.015)}60%{box-shadow:0 0 0 4px #007aff33,var(--shadow-md);transform:scale(1.01)}}.result-item-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.result-item-num{width:24px;height:24px;border-radius:50%;background:#0000000d;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--text-secondary)}[data-theme=dark] .result-item-num{background:#ffffff1a}.result-item-status{margin-left:auto;font-weight:800;font-size:16px}.result-item.correct .result-item-status{color:var(--lg-success)}.result-item.wrong .result-item-status{color:var(--lg-danger)}.result-item-question{font-size:14px;line-height:1.55;color:var(--text-primary)}.result-item-answer{font-size:12px;color:var(--lg-danger);margin-top:8px;font-weight:500}.settings-header{margin:20px 4px 4px}.settings-header h2{font-size:24px;font-weight:700;letter-spacing:-.3px}.settings-group{margin-top:16px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-soft);border-radius:var(--r-lg);padding:6px;box-shadow:var(--inner-hi-soft),var(--shadow-sm)}.settings-group-title{font-size:12px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.6px;padding:10px 14px 6px}.settings-item{display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:var(--r-md);cursor:pointer;transition:background .25s}.settings-item:hover{background:var(--glass-bg-soft)}.settings-item svg{width:21px;height:21px;fill:var(--lg-accent);flex-shrink:0}.settings-item-info{flex:1;min-width:0}.settings-item-title{font-size:14px;font-weight:600;color:var(--text-primary)}.settings-item-desc{font-size:12px;color:var(--text-tertiary);margin-top:2px}.toggle{width:46px;height:27px;border-radius:999px;background:#0000001a;position:relative;transition:background .3s var(--ease-smooth);flex-shrink:0}[data-theme=dark] .toggle{background:#ffffff26}.toggle.active{background:var(--lg-accent-grad)}.toggle-knob{width:21px;height:21px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #00000040;transition:transform .3s var(--ease-spring)}.toggle.active .toggle-knob{transform:translate(19px)}.theme-options{display:flex;gap:8px;padding:4px 14px 14px}.theme-opt{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;border:1px solid var(--glass-border-soft);border-radius:var(--r-md);background:var(--glass-bg-soft);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:all .25s var(--ease-spring)}.theme-opt:hover{background:var(--glass-bg)}.theme-opt.active{background:var(--lg-accent-grad);color:#fff;border-color:transparent;box-shadow:var(--shadow-glow)}.theme-opt svg{flex-shrink:0}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:none;justify-content:center;padding:0 16px calc(env(safe-area-inset-bottom,0px) + 14px);z-index:100;pointer-events:none}.nav-inner{display:flex;justify-content:space-around;align-items:center;max-width:280px;width:100%;padding:6px 8px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-soft);border-radius:999px;box-shadow:var(--inner-hi-soft),var(--shadow-sm);pointer-events:auto;animation:navFloat .5s var(--ease-spring)}@keyframes navFloat{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;min-width:56px;cursor:pointer;border:none;background:none;color:var(--text-tertiary);transition:color .3s var(--ease-smooth);-webkit-tap-highlight-color:transparent}.nav-item.active{color:var(--lg-accent)}.nav-icon-wrap{width:42px;height:24px;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all .35s var(--ease-spring)}.nav-item.active .nav-icon-wrap{background:var(--lg-accent-grad);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.nav-icon-wrap svg{width:19px;height:19px;fill:currentColor}.nav-item.active .nav-icon-wrap svg{fill:#fff}.nav-label{font-size:10px;font-weight:600;letter-spacing:.3px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:200;opacity:0;visibility:hidden;transition:opacity .3s var(--ease-smooth),visibility .3s}.modal-overlay.show{opacity:1;visibility:visible}.modal{width:100%;max-width:360px;background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-strong);-webkit-backdrop-filter:var(--glass-blur-strong);border:1px solid var(--glass-border);border-radius:var(--r-xl);padding:26px 22px;box-shadow:var(--inner-hi),var(--shadow-lg);transform:scale(.92) translateY(14px);transition:transform .35s var(--ease-spring)}.modal-overlay.show .modal{transform:scale(1) translateY(0)}.modal-title{font-size:19px;font-weight:700;margin-bottom:18px;color:var(--text-primary)}.dialog-actions{display:flex;gap:10px;margin-top:20px;justify-content:flex-end}.btn-text{padding:10px 20px;border:none;border-radius:var(--r-md);font-size:14px;font-weight:600;cursor:pointer;transition:all .25s var(--ease-spring)}.btn-cancel{background:var(--glass-bg-soft);color:var(--text-secondary);border:1px solid var(--glass-border-soft)}.btn-cancel:hover{background:var(--glass-bg)}.btn-confirm{background:var(--lg-accent-grad);color:#fff;box-shadow:var(--shadow-glow)}.btn-confirm:hover{transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,#ff3b30,#d70015);color:#fff;box-shadow:0 6px 18px #ff3b3040}.btn-danger:hover{transform:translateY(-1px)}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:12px 22px;background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-strong);-webkit-backdrop-filter:var(--glass-blur-strong);border:1px solid var(--glass-border);border-radius:999px;color:var(--text-primary);font-size:13px;font-weight:600;box-shadow:var(--inner-hi),var(--shadow-md);animation:toastIn .4s var(--ease-spring),toastOut .4s var(--ease-smooth) 2.2s forwards}@keyframes toastIn{0%{opacity:0;transform:translateY(-16px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{to{opacity:0;transform:translateY(-12px) scale(.95)}}#confetti-canvas{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:250}.ripple{position:absolute;border-radius:50%;background:#ffffff80;transform:scale(0);animation:rippleAnim .6s var(--ease-smooth);pointer-events:none}@keyframes rippleAnim{to{transform:scale(2.2);opacity:0}}.scratchpad-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff3;z-index:180;display:none}[data-theme=dark] .scratchpad-overlay{background:#0003}.scratchpad-overlay.visible{display:block;animation:viewIn .25s var(--ease-smooth)}#scratchpad-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.scratchpad-toolbar{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-strong);-webkit-backdrop-filter:var(--glass-blur-strong);border:1px solid var(--glass-border);border-radius:999px;box-shadow:var(--inner-hi),var(--shadow-md);z-index:181}.sp-btn{width:40px;height:40px;border-radius:50%;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all .25s var(--ease-spring)}.sp-btn:hover{background:var(--glass-bg-soft);color:var(--lg-accent)}.sp-btn.active{background:var(--lg-accent-grad);color:#fff}.sp-btn svg{width:19px;height:19px;fill:currentColor}.sp-divider{width:1px;height:24px;background:var(--glass-border-soft)}.katex{font-size:1.06em}.katex-display{margin:10px 0;overflow-x:auto;overflow-y:hidden}.form-group{margin-bottom:16px;text-align:left}.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.form-input{width:100%;padding:12px 14px;border:1px solid var(--glass-border-soft);border-radius:var(--r-md);background:var(--glass-bg-soft);color:var(--text-primary);font-size:14px;outline:none;transition:all .25s}.form-input:focus{border-color:var(--lg-accent);box-shadow:0 0 0 3px #007aff26}.color-options{display:flex;gap:10px;flex-wrap:wrap}.color-option{width:34px;height:34px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:all .25s var(--ease-spring)}.color-option.selected{border-color:var(--text-primary);transform:scale(1.12)}.add-node-btn{width:100%;padding:13px;border:1.5px dashed var(--glass-border-soft);border-radius:var(--r-md);background:transparent;color:var(--lg-accent);font-size:14px;font-weight:600;cursor:pointer;transition:all .25s}.add-node-btn:hover{background:#007aff0f}.category-actions{display:flex;gap:8px}@media (max-width: 420px){.stats-row{gap:9px}.stat-number{font-size:26px}.nav-inner{max-width:100%}}
