:root{--bg-deep: #050a18;--bg-card: #0c1229;--bg-elevated: #131c3e;--accent-gold: #f0b429;--accent-blue: #63b3ed;--accent-green: #48bb78;--accent-red: #fc5c65;--accent-purple: #9f7aea;--text-primary: #e2e8f0;--text-secondary: #a0aec0;--text-dim: #7a8599;--border-subtle: rgba(99, 179, 237, .15);--border-accent: rgba(99, 179, 237, .3);--shadow-card: 0 4px 24px rgba(0, 0, 0, .4);--shadow-glow-blue: 0 0 20px rgba(99, 179, 237, .15);--shadow-glow-gold: 0 0 20px rgba(240, 180, 41, .2);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--font-body: "Outfit", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--transition-fast: .15s ease;--transition-med: .3s ease;--transition-slow: .5s ease;--max-width: 480px;--overlay-bg: rgba(5, 10, 24, .9);--navbar-bg: rgba(5, 10, 24, .92);--working-bg: rgba(0, 0, 0, .2);--debug-bg: rgba(0, 0, 0, .9)}[data-theme=light]{--bg-deep: #f5f6fa;--bg-card: #ffffff;--bg-elevated: #edf0f7;--accent-gold: #d4960a;--accent-blue: #2b6cb0;--accent-green: #2f855a;--accent-red: #e53e3e;--accent-purple: #6b46c1;--text-primary: #1a202c;--text-secondary: #4a5568;--text-dim: #667085;--border-subtle: rgba(0, 0, 0, .08);--border-accent: rgba(43, 108, 176, .25);--shadow-card: 0 2px 12px rgba(0, 0, 0, .06);--shadow-glow-blue: 0 0 12px rgba(43, 108, 176, .1);--shadow-glow-gold: 0 0 12px rgba(212, 150, 10, .12);--overlay-bg: rgba(0, 0, 0, .35);--navbar-bg: rgba(245, 246, 250, .92);--working-bg: rgba(0, 0, 0, .04);--debug-bg: rgba(255, 255, 255, .95)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg-deep);color:var(--text-primary);line-height:1.6;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100dvh;display:flex;flex-direction:column}img,svg{display:block;max-width:100%}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}ul,ol{list-style:none}a{color:var(--accent-blue);text-decoration:none}.skip-link{position:absolute;top:-100%;left:50%;transform:translate(-50%);background:var(--accent-blue);color:var(--bg-deep);padding:8px 16px;border-radius:var(--radius-sm);font-weight:600;z-index:9999;transition:top var(--transition-fast)}.skip-link:focus{top:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-container{max-width:var(--max-width);width:100%;margin:0 auto;padding:0 16px;flex:1;display:flex;flex-direction:column;position:relative;z-index:1}.navbar{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border-subtle);margin-bottom:16px;position:sticky;top:0;background:var(--navbar-bg);backdrop-filter:blur(12px);z-index:1100}.navbar-title{margin:0;font-size:1.1rem;font-weight:700;letter-spacing:.5px;display:inline-flex;align-items:center;gap:8px}.navbar-title__btn{background:linear-gradient(135deg,var(--accent-green),var(--accent-blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;border:none;padding:0;margin:0;font:inherit;letter-spacing:inherit;cursor:pointer;transition:filter var(--transition-fast)}.navbar-title__btn:hover{filter:brightness(1.15)}.navbar-title__btn:focus-visible{outline:2px solid var(--accent-blue);outline-offset:4px;border-radius:2px}.navbar-stats{display:flex;gap:16px;align-items:center}.navbar-stat{display:flex;align-items:center;gap:4px;font-size:.85rem;font-weight:500;color:var(--text-secondary)}.navbar-stat .stat-value{font-family:var(--font-mono);font-weight:600;color:var(--accent-gold)}.navbar-stat .stat-icon{font-size:1rem}.navbar-stat--clickable{cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);border:none;background:none;transition:background var(--transition-fast)}.navbar-stat--clickable:hover{background:#ffffff0f}.navbar-btn{padding:6px 10px;border-radius:var(--radius-sm);transition:background var(--transition-fast);font-size:1.1rem}.navbar-btn:hover{background:var(--bg-elevated)}.navbar-offline{display:inline-block;margin-left:.5rem;padding:2px 8px;border-radius:var(--radius-sm);background:#ffb43226;color:#ffb432;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}.update-prompt{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem 1rem;background:var(--bg-elevated);border-top:1px solid rgba(255,255,255,.1);z-index:9999;animation:slideUp .3s ease-out}.update-prompt__text{color:var(--text-primary);font-size:.9rem;font-weight:500}.update-prompt__btn{padding:6px 16px;border-radius:var(--radius-sm);background:var(--accent-blue);color:#fff;font-size:.85rem;font-weight:600;transition:background var(--transition-fast)}.update-prompt__btn:hover{background:var(--accent-green)}.topic-selector{padding-bottom:32px}.mixed-card{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(135deg,#f0b42914,#fc5c650f);border:1.5px solid rgba(240,180,41,.25);border-radius:var(--radius-md);cursor:pointer;width:100%;text-align:left;transition:all var(--transition-fast);margin-bottom:12px}.mixed-card:hover{border-color:var(--accent-gold);box-shadow:var(--shadow-glow-gold);transform:translateY(-1px)}.mixed-card:focus-visible{outline:2px solid var(--accent-gold);outline-offset:2px}.mixed-card__icon{font-size:1.6rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:var(--radius-md);flex-shrink:0}.mixed-card__info{flex:1}.mixed-card__title{font-size:.95rem;font-weight:600;color:var(--accent-gold)}.mixed-card__subtitle{font-size:.78rem;color:var(--text-dim);margin-top:2px}.mixed-card__arrow{color:var(--accent-gold);font-size:1.1rem;flex-shrink:0}.explore-card{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(135deg,#f0c04014,#5b9bd50f);border:1.5px solid rgba(240,192,64,.15);border-radius:var(--radius-md);cursor:pointer;width:100%;text-align:left;transition:all var(--transition-fast);margin-bottom:20px}.explore-card:hover{border-color:#f0c04066;box-shadow:0 0 0 2px #f0c04026;transform:translateY(-1px)}.explore-card:focus-visible{outline:2px solid rgba(240,192,64,.8);outline-offset:2px}.explore-card__icon{font-size:1.6rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#f0c0401f;border-radius:var(--radius-md);flex-shrink:0}.explore-card__info{flex:1}.explore-card__title{font-size:.95rem;font-weight:600;color:var(--accent-gold)}.explore-card__subtitle{font-size:.78rem;color:var(--text-dim);margin-top:2px}.explore-card__arrow{color:var(--accent-gold);font-size:1.1rem;flex-shrink:0}.paper-group{margin-bottom:24px}.paper-heading{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);margin-bottom:12px;padding-left:4px}.topic-list{display:flex;flex-direction:column;gap:8px}.topic-card{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;width:100%;text-align:left}.topic-card:hover:not(.topic-card--locked){border-color:var(--border-accent);box-shadow:var(--shadow-glow-blue);transform:translateY(-1px)}.topic-card:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.topic-card--locked{opacity:.5;cursor:default}[data-theme=light] .topic-card--locked{opacity:.65}.topic-card__icon{font-size:1.6rem;width:40px;text-align:center;flex-shrink:0}.topic-card__info{flex:1;min-width:0}.topic-card__title{font-size:.95rem;font-weight:600;color:var(--text-primary);line-height:1.3}.topic-card__subtitle{font-size:.78rem;color:var(--text-dim);margin-top:2px}.topic-card__stars{display:flex;gap:2px;font-size:.85rem;flex-shrink:0}.topic-card__progress{display:flex;align-items:center;gap:8px;flex-shrink:0;min-width:70px}.topic-card__progress-bar{width:36px;height:6px;background:var(--bg-elevated);border-radius:3px;overflow:hidden}.topic-card__progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-purple));border-radius:3px;transition:width var(--transition-med)}.topic-card__progress-text{font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);white-space:nowrap}.topic-card__badge{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--accent-purple);background:#9f7aea1f;padding:3px 8px;border-radius:6px;flex-shrink:0}.topic-map{padding-bottom:32px}.topic-map__header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.topic-map__back{font-size:1.3rem;padding:4px 8px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.topic-map__back:hover{background:var(--bg-elevated)}.topic-map__title{font-size:1.15rem;font-weight:700}.topic-map__subtitle{font-size:.8rem;color:var(--text-dim)}.level-list{display:flex;flex-direction:column;gap:12px}.level-card{display:flex;align-items:center;gap:14px;padding:16px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;width:100%;text-align:left}.level-card:hover:not(.level-card--locked){border-color:var(--border-accent);box-shadow:var(--shadow-glow-blue);transform:translateY(-1px)}.level-card:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.level-card--locked{opacity:.5;cursor:default}[data-theme=light] .level-card--locked{opacity:.65}.level-card--completed{border-color:#48bb784d}.level-card__icon{font-size:1.5rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:var(--radius-md);flex-shrink:0}.level-card__info{flex:1;min-width:0}.level-card__name{font-size:.95rem;font-weight:600;line-height:1.3}.level-card__subtitle{font-size:.78rem;color:var(--text-dim);margin-top:2px}.level-card__stars{display:flex;gap:2px;font-size:1rem;flex-shrink:0}.level-card__lock{font-size:1.2rem;opacity:.5}.level-card__xp-needed{display:flex;align-items:center;gap:8px;font-size:.7rem;color:var(--text-dim);font-family:var(--font-mono);margin-top:4px}.level-card__xp-bar{width:48px;height:5px;border-radius:3px;background:var(--bg-elevated);overflow:hidden;flex-shrink:0}.level-card__xp-fill{height:100%;border-radius:3px;background:var(--accent-blue);transition:width .3s ease}.level-card__star-wrap{display:flex;flex-direction:column;align-items:center;flex-shrink:0;gap:4px}.level-card__star{opacity:.2;transition:opacity .3s ease}.level-card__star--filled{opacity:1;filter:drop-shadow(0 0 4px rgba(240,180,41,.4))}.level-card__mastery-bar{width:48px;height:4px;background:var(--bg-elevated);border-radius:2px;overflow:hidden}.level-card__mastery-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-green));border-radius:2px;transition:width .4s ease}.level-card__mastery-text{font-size:.7rem;color:var(--text-muted);margin-left:6px}.level-card__mastery-text--done{color:var(--accent-green)}.level-card__discovered{font-size:.68rem;color:var(--text-muted);margin-top:2px;letter-spacing:.02em}.multi-select__hint{font-size:.8rem;color:var(--text-dim);font-style:italic;margin-bottom:12px}.topic-map__hints{margin-top:12px;text-align:center}.topic-map__hint{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.78rem;color:var(--text-dim);margin:0 0 6px;line-height:1.4}.topic-map__hint-icon{font-size:.9rem}.topic-map__star-info-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;font-size:.72rem;color:var(--text-dim);cursor:pointer;padding:2px 0;transition:color var(--transition-fast)}.topic-map__star-info-btn:hover{color:var(--text-secondary)}.topic-map__star-info{margin-top:6px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:.75rem;color:var(--text-secondary);line-height:1.8;animation:fadeInUp .2s ease-out}.topic-map__star-info p{margin:0}.topic-map__progress-callout{display:flex;align-items:center;gap:8px;margin:16px 0 0;padding:10px 14px;background:linear-gradient(135deg,#63b3ed14,#48bb7814);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:.78rem;color:var(--text-secondary);line-height:1.4}.topic-map__progress-icon{font-size:1rem;flex-shrink:0}.topic-map__footnote{font-size:.72rem;color:var(--text-dim);text-align:center;margin:14px 0 0;line-height:1.4}.progress-bar{width:100%;height:6px;background:var(--bg-elevated);border-radius:3px;overflow:hidden;margin-top:8px}.progress-bar__fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-purple));border-radius:3px;transition:width var(--transition-med)}.session{flex:1;display:flex;flex-direction:column;padding-bottom:24px}.session__header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.session__close{font-size:1.3rem;padding:4px 8px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.session__close:hover{background:var(--bg-elevated)}.session__progress-wrap{flex:1}.session__progress-text{font-size:.75rem;color:var(--text-dim);font-family:var(--font-mono);margin-bottom:4px;text-align:right}.session__progress-bar{width:100%;height:10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:5px;overflow:hidden}.session__progress-fill{height:100%;background:linear-gradient(90deg,#4299e1,#48bb78);border-radius:5px;transition:width var(--transition-med)}[data-theme=light] .session__progress-fill{background:linear-gradient(90deg,#3182ce,#38a169)}.progress-dots{display:flex;gap:5px;justify-content:center;margin-top:6px;flex-wrap:wrap}.progress-dots__dot{width:8px;height:8px;border-radius:50%;background:transparent;border:1.5px solid var(--text-dim);transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.progress-dots__dot--correct{background:var(--accent-green);border-color:var(--accent-green)}.progress-dots__dot--wrong{background:var(--accent-red);border-color:var(--accent-red)}.progress-dots__dot--current{border-color:var(--accent-blue);box-shadow:0 0 0 2px #63b3ed59;animation:dot-pulse 1.2s ease-in-out infinite}@keyframes dot-pulse{0%,to{box-shadow:0 0 0 2px #63b3ed59}50%{box-shadow:0 0 0 4px #63b3ed26}}[data-theme=light] .progress-dots__dot--current{border-color:var(--accent-blue);box-shadow:0 0 0 2px #2b6cb040;animation:dot-pulse-light 1.2s ease-in-out infinite}@keyframes dot-pulse-light{0%,to{box-shadow:0 0 0 2px #2b6cb040}50%{box-shadow:0 0 0 4px #2b6cb01a}}.session__xp{font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:var(--accent-gold);min-width:52px;text-align:right}.session__retry-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;background:#f59e0b1f;border:1px solid rgba(245,158,11,.35);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9rem;line-height:1.4}.session__retry-banner-icon{font-size:1.1rem;color:var(--accent-gold);font-weight:700;flex-shrink:0}@media(prefers-reduced-motion:reduce){.session__retry-banner{transition:none}}.worked-example{max-width:480px;margin:0 auto 14px}.worked-example__toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:1px dashed var(--border-subtle);border-radius:var(--radius-md);background:transparent;cursor:pointer;color:var(--text-secondary);font-size:.85rem;transition:background var(--transition-fast),border-color var(--transition-fast)}.worked-example__toggle:hover{background:#63b3ed0f;border-color:var(--accent-blue)}.worked-example__icon{font-size:1rem;flex-shrink:0}.worked-example__label{flex:1;text-align:left}.worked-example__chevron{font-size:.8rem;transition:transform var(--transition-fast);flex-shrink:0}.worked-example__chevron--open{transform:rotate(90deg)}.worked-example__body{margin-top:8px;padding:14px 16px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:.85rem;line-height:1.55;color:var(--text-primary);animation:fadeIn .15s ease-out}.worked-example__title{font-size:.9rem;font-weight:700;margin:0 0 6px;color:var(--text-primary)}.worked-example__formula{font-family:JetBrains Mono,monospace;font-size:.82rem;color:var(--accent-blue);background:#63b3ed14;padding:6px 10px;border-radius:6px;margin-bottom:10px;word-break:break-word}.worked-example__problem{margin:0 0 10px;color:var(--text-secondary);font-style:italic}.worked-example__steps{margin:0 0 10px;padding-left:22px}.worked-example__steps li{margin-bottom:4px;color:var(--text-primary)}.worked-example__steps li::marker{color:var(--accent-blue);font-weight:600}.worked-example__answer{padding:8px 10px;background:#48bb781a;border-left:3px solid var(--accent-green);border-radius:0 6px 6px 0;color:var(--text-primary)}.worked-example__answer strong{color:var(--accent-green)}.diagram-container{max-width:480px;margin:0 auto 12px;padding:12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.diagram-container svg{width:100%;height:auto;display:block}.diagram-loading{height:120px;background:var(--bg-elevated);border-radius:var(--radius-md);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.8}}.diagram-expand-icon,.diagram-expand-btn{position:absolute;bottom:8px;right:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:#00000073;color:#fff;font-size:14px;line-height:1;pointer-events:none;opacity:.7;transition:opacity var(--transition-fast)}.diagram-expand-btn{pointer-events:auto;cursor:pointer;border:1px solid rgba(255,255,255,.2)}.diagram-expand-btn:hover{opacity:1;background:#000000a6}.diagram-container:hover .diagram-expand-icon{opacity:1}.diagram-lightbox{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#000000d9;animation:lightboxFadeIn .2s ease;touch-action:pan-y}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}.diagram-lightbox__close{position:absolute;top:12px;right:12px;z-index:10;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff1f;color:#fff;font-size:20px;cursor:pointer;border:1px solid rgba(255,255,255,.2);transition:background var(--transition-fast)}.diagram-lightbox__close:hover{background:#ffffff40}.diagram-lightbox__content{width:92vw;max-width:720px;max-height:85vh;overflow:auto;background:var(--bg-card);border-radius:var(--radius-md);padding:16px;transition:transform .15s ease,opacity .15s ease}.diagram-lightbox__content svg{width:100%;height:auto;display:block}.question-card{flex:1;display:flex;flex-direction:column;animation:slideInUp var(--transition-med) ease-out}.question-card__prompt{font-size:1.05rem;font-weight:500;line-height:1.55;margin-bottom:20px;color:var(--text-primary)}.question-card__meta{display:flex;align-items:center;gap:8px;margin-bottom:8px}.question-card__spec{font-size:.7rem;font-family:var(--font-mono);color:var(--text-dim)}.question-card__difficulty{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 7px;border-radius:4px}.question-card__difficulty--1{color:var(--accent-green);background:#48bb781f}.question-card__difficulty--2{color:var(--accent-gold);background:#f0b4291f}.question-card__difficulty--3{color:var(--accent-red);background:#fc5c651f}.options-list{display:flex;flex-direction:column;gap:10px}.option-btn{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);font-size:.93rem;line-height:1.45;text-align:left;width:100%;transition:all var(--transition-fast);cursor:pointer}.option-btn:hover:not(.option-btn--answered){border-color:var(--border-accent);background:var(--bg-elevated)}.option-btn:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.option-btn--selected{border-color:var(--accent-blue);background:#63b3ed14}.option-btn--correct{border-color:var(--accent-green);background:#48bb781a}.option-btn--wrong{border-color:var(--accent-red);background:#fc5c6514}.option-btn--answered{cursor:default}.option-btn__letter{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.8rem;font-weight:600;font-family:var(--font-mono);background:var(--bg-elevated);color:var(--text-secondary);flex-shrink:0;transition:all var(--transition-fast)}.option-btn--correct .option-btn__letter{background:var(--accent-green);color:var(--bg-deep)}.option-btn--wrong .option-btn__letter{background:var(--accent-red);color:var(--bg-deep)}.option-btn__text{flex:1}.option-btn__icon{font-size:1.1rem;flex-shrink:0}.option-btn__checkbox{width:22px;height:22px;border:2px solid var(--border-accent);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast);font-size:.75rem}.option-btn--selected .option-btn__checkbox{background:var(--accent-blue);border-color:var(--accent-blue)}.submit-btn{padding:14px 24px;background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));color:#fff;font-weight:600;font-size:.95rem;border-radius:var(--radius-md);transition:all var(--transition-fast);margin-top:16px;width:100%}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 15px #63b3ed4d}.submit-btn:disabled{opacity:.5;cursor:not-allowed}[data-theme=light] .submit-btn:disabled{opacity:.55}.submit-btn--next{background:linear-gradient(135deg,var(--accent-green),#38a169)}.calc-input-wrap{margin-top:8px}.calc-input-container{display:flex;align-items:center;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);padding:0 14px 0 0;transition:border-color var(--transition-fast);max-width:320px}.calc-input-container:focus-within{border-color:var(--accent-blue)}.calc-input-container--correct{border-color:var(--accent-green);border-width:2px}.calc-input-container--wrong{border-color:var(--accent-red);border-style:dashed}.calc-input{flex:1;padding:12px 8px 12px 14px;background:none;border:none;font-family:var(--font-mono);font-size:1rem;color:var(--text-primary);min-width:0}.calc-input:focus{outline:none}.calc-input-unit{font-family:var(--font-mono);font-size:.85rem;color:var(--text-secondary);flex-shrink:0;white-space:nowrap;padding-left:6px;border-left:1px solid var(--border-subtle)}.calc-sf-wrap{display:flex;align-items:center;gap:10px;margin-top:8px}.calc-sf-container{display:flex;align-items:baseline;gap:2px;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);padding:8px 12px;transition:border-color var(--transition-fast)}.calc-sf-container:focus-within{border-color:var(--accent-blue)}.calc-sf-container--correct{border-color:var(--accent-green);border-width:2px}.calc-sf-container--wrong{border-color:var(--accent-red);border-style:dashed}.calc-sf-coeff{width:72px;padding:4px 6px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:1rem;color:var(--text-primary);text-align:center}.calc-sf-coeff:focus{outline:none;border-color:var(--accent-blue)}.calc-sf-times{font-family:var(--font-mono);font-size:.95rem;color:var(--text-secondary);white-space:nowrap;padding:0 2px}.calc-sf-power{width:36px;padding:2px 4px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.8rem;color:var(--text-primary);text-align:center;position:relative;top:-8px}.calc-sf-power:focus{outline:none;border-color:var(--accent-blue)}.calc-sf-unit{font-family:var(--font-mono);font-size:.85rem;color:var(--text-secondary);white-space:nowrap}.fill-blank-sentence{font-size:1.05rem;line-height:1.7;margin-bottom:16px}.fill-blank-input{display:inline-block;width:140px;padding:4px 10px;background:var(--bg-card);border:1.5px solid var(--border-accent);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.95rem;color:var(--text-primary);text-align:center;vertical-align:baseline}.fill-blank-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #63b3ed26}.word-bank-item--draggable:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 10px -4px #63b3ed73;border-color:var(--accent-blue)!important}.word-bank-item--draggable:active:not(:disabled){cursor:grabbing;transform:translateY(0)}.ordering-list{display:flex;flex-direction:column;gap:8px;touch-action:none}.ordering-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);transition:transform .18s ease,opacity .18s ease,border-color var(--transition-fast),background var(--transition-fast);user-select:none;cursor:grab}.ordering-item:active:not(.ordering-item--correct):not(.ordering-item--wrong){cursor:grabbing}.ordering-item:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.ordering-item--placeholder{opacity:.25;border-style:dashed;border-color:var(--accent-blue);background:transparent;cursor:grabbing}.ordering-ghost{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-card);border:2px solid var(--accent-blue);border-radius:var(--radius-md);box-shadow:0 8px 28px #00000040,0 0 0 1px #63b3ed26;transform:translate(-50%,-60%) scale(1.02);user-select:none}.ordering-ghost__rank{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-family:var(--font-mono);font-size:.8rem;font-weight:700;background:var(--accent-blue);color:#fff;flex-shrink:0}.ordering-ghost__text{flex:1;font-size:.9rem;font-weight:500;color:var(--text-primary)}.ordering-item__rank{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-family:var(--font-mono);font-size:.8rem;font-weight:600;background:var(--bg-elevated);color:var(--text-secondary);flex-shrink:0}.ordering-item__text{flex:1;font-size:.9rem}.ordering-item__controls{display:flex;gap:4px}.ordering-item__btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--bg-elevated);font-size:.85rem;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.ordering-item__btn:hover:not(:disabled){background:var(--accent-blue);color:#fff}.ordering-item__btn:active:not(:disabled){transform:scale(.92);background:var(--accent-blue);color:#fff}.ordering-item__btn:disabled{opacity:.5;cursor:default}.ordering-item--correct{border-color:var(--accent-green);position:relative;cursor:default}.ordering-item--correct:after{content:"✓";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.85rem;font-weight:700;color:var(--accent-green)}.ordering-item--wrong{border-color:var(--accent-red);border-style:dashed;position:relative;cursor:default}.ordering-item--wrong:after{content:"✗";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.85rem;font-weight:700;color:var(--accent-red)}[data-theme=light] .ordering-ghost{box-shadow:0 8px 28px #0000001a,0 0 0 1px #4285f433}.matching-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.matching-item{padding:12px;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);font-size:.88rem;text-align:center;cursor:pointer;transition:all var(--transition-fast);min-height:50px;display:flex;align-items:center;justify-content:center}.matching-item:hover:not(.matching-item--matched):not(.matching-item--answered){border-color:var(--border-accent)}@keyframes matchPulse{0%,to{box-shadow:0 0 0 3px #63b3ed4d}50%{box-shadow:0 0 0 5px #63b3ed26}}.matching-item--selected{border-color:var(--accent-blue);background:#63b3ed26;animation:matchPulse 1.5s ease infinite}.matching-column-header{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);text-align:center;padding:8px 0}.category-sort{display:flex;flex-direction:column;gap:12px}.category-sort__items{display:flex;flex-wrap:wrap;gap:8px;min-height:48px;padding:12px;background:var(--bg-elevated);border-radius:var(--radius-md);border:1px dashed var(--border-subtle)}.category-sort__item{padding:8px 14px;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast);user-select:none}.category-sort__item:hover{border-color:var(--border-accent)}.category-sort__item--placed{border-color:var(--accent-blue);background:#63b3ed14}.category-sort__item--dragging{opacity:.5;border-color:var(--accent-blue);transform:scale(.95)}.category-sort__item--correct{border-color:var(--accent-green);background:#48bb781a}.category-sort__item--wrong{border-color:var(--accent-red);border-style:dashed;background:#fc5c651a}.category-sort__item__icon{margin-left:6px;font-weight:700}.category-sort__item--correct .category-sort__item__icon{color:var(--accent-green)}.category-sort__item--wrong .category-sort__item__icon{color:var(--accent-red)}.category-sort__bucket{padding:12px;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);transition:border-color var(--transition-fast),background var(--transition-fast)}.category-sort__bucket--drag-over,.category-sort__items--drag-over{border-color:var(--accent-blue);background:#63b3ed0f}.category-sort__placeholder{font-size:.78rem;color:var(--text-dim);font-style:italic;padding:4px}.category-sort__bucket-header{font-size:.85rem;font-weight:600;margin-bottom:8px;color:var(--accent-blue)}.category-sort__bucket-items{display:flex;flex-wrap:wrap;gap:6px;min-height:36px}.equation-builder{display:flex;flex-direction:column;gap:16px;margin-top:12px}.eq-pool{display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--bg-elevated);border:1px dashed var(--border-subtle);border-radius:var(--radius-md)}.eq-pool-label{font-size:.78rem;color:var(--text-dim)}.eq-pool-items{display:flex;flex-wrap:wrap;gap:8px}.eq-pool-chip{padding:6px 12px;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;font-family:inherit;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),opacity var(--transition-fast);user-select:none;-webkit-user-drag:element}.eq-pool-chip.draggable{cursor:grab}.eq-pool-chip.draggable:active{cursor:grabbing}.eq-pool-chip:hover:not(:disabled){border-color:var(--accent-blue);background:#63b3ed14;transform:translateY(-2px);box-shadow:0 4px 10px -4px #63b3ed73}.eq-pool-chip:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 6px -3px #63b3ed66}.eq-pool-chip.selected{border-color:var(--accent-blue);background:#63b3ed1f;box-shadow:0 0 0 2px #63b3ed40}.eq-pool-chip.dragging{opacity:.4;transform:scale(.95);cursor:grabbing}.eq-pool-chip.placed,.eq-pool-chip:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.eq-equation{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;padding:16px 12px;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md)}.eq-side{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.eq-term{display:flex;align-items:center;gap:4px}.eq-coeff{display:flex;flex-direction:column;align-items:center;gap:0;min-width:22px}.eq-coeff.correct{color:var(--accent-green)}.eq-coeff.incorrect{color:var(--accent-red)}.eq-coeff-btn{width:22px;height:16px;padding:0;background:none;border:none;color:var(--text-dim);font-size:.7rem;line-height:1;cursor:pointer;transition:color var(--transition-fast)}.eq-coeff-btn:hover{color:var(--accent-blue)}.eq-coeff-value{font-size:1.1rem;font-weight:700;line-height:1.2;min-width:14px;text-align:center}.eq-formula-slot{min-width:60px;padding:8px 14px;background:var(--bg-elevated);border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;font-family:inherit;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.eq-formula-slot:hover:not(:disabled){border-color:var(--border-accent)}.eq-formula-slot.empty{color:var(--text-dim);font-weight:400}.eq-formula-slot.droppable{border-style:dashed;border-color:var(--accent-blue);background:#63b3ed0f}.eq-formula-slot.drag-over{border-style:solid;border-color:var(--accent-blue);background:#63b3ed2e;box-shadow:0 0 0 3px #63b3ed40;transform:scale(1.04)}.eq-formula-slot.filled{background:var(--bg-card);border-color:var(--border-accent)}.eq-formula-slot.correct{border-color:var(--accent-green);background:#48bb781a}.eq-formula-slot.incorrect{border-color:var(--accent-red);background:#fc5c651a;border-style:dashed}.eq-state{padding:6px 10px;background:var(--bg-elevated);border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.85rem;font-family:inherit;cursor:pointer;transition:all var(--transition-fast)}.eq-state:hover:not(:disabled){border-color:var(--border-accent)}.eq-state.empty{color:var(--text-dim)}.eq-state.set{color:var(--accent-blue);font-weight:600}.eq-state.correct{border-color:var(--accent-green);color:var(--accent-green);background:#48bb781a}.eq-state.incorrect{border-color:var(--accent-red);color:var(--accent-red);background:#fc5c651a;border-style:dashed}.eq-plus,.eq-arrow{font-size:1.1rem;font-weight:700;color:var(--text-secondary);padding:0 2px;user-select:none}.eq-arrow{font-size:1.3rem;color:var(--accent-blue)}.eq-hint{font-size:.78rem;color:var(--text-dim);font-style:italic;text-align:center}.reset-btn{display:block;margin:10px auto 0;padding:6px 14px;background:none;border:none;color:var(--text-dim);font-size:.78rem;cursor:pointer;transition:color var(--transition-fast)}.reset-btn:hover{color:var(--text-secondary)}.feedback-panel{margin-top:16px;padding:16px;border-radius:var(--radius-md);animation:fadeInUp .3s ease-out}.feedback-panel--correct{background:#48bb781a;border:1px solid rgba(72,187,120,.3);border-left:3px solid var(--accent-green)}.feedback-panel--wrong{background:#fc5c6514;border:1px solid rgba(252,92,101,.25);border-left:3px solid var(--accent-red)}.feedback-panel__header{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:600;font-size:.95rem}.feedback-panel__badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.85rem;font-weight:700;flex-shrink:0}.feedback-panel__badge--correct{background:var(--accent-green);color:#fff}.feedback-panel__badge--wrong{background:var(--accent-red);color:#fff}.feedback-panel__header--correct{color:var(--accent-green)}.feedback-panel__header--wrong{color:var(--accent-red)}.feedback-panel__body{font-size:.88rem;line-height:1.6;color:var(--text-secondary)}.feedback-panel__working{margin-top:10px;padding:10px 12px;background:var(--working-bg);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.82rem;line-height:1.7;white-space:pre-wrap;color:var(--text-secondary)}.feedback-panel__correct-answer{margin-top:8px;font-weight:500;color:var(--accent-green)}.feedback-panel__distractor{margin-top:10px;padding:10px 12px;border-radius:8px;background:#fc5c6514;border-left:3px solid var(--accent-red);color:var(--text-primary);font-size:13.5px;line-height:1.5}.results{display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 0;animation:fadeInUp .5s ease-out}.results__emoji{font-size:3rem;margin-bottom:12px}.results__title{font-size:1.4rem;font-weight:700;margin-bottom:4px}.results__subtitle{font-size:.9rem;color:var(--text-secondary);margin-bottom:24px}.results__stars{display:flex;gap:8px;margin-bottom:24px}.results__star{font-size:2.2rem;opacity:.2;transition:all .4s ease}.results__star--filled{opacity:1;filter:drop-shadow(0 0 6px rgba(240,180,41,.5))}.results__star--filled:nth-child(1){animation:starPop .4s .2s ease-out both}.results__star--filled:nth-child(2){animation:starPop .4s .5s ease-out both}.results__star--filled:nth-child(3){animation:starPop .4s .8s ease-out both}.results__stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;margin-bottom:24px}.results__stat{padding:14px;background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.results__stat-value{font-family:var(--font-mono);font-size:1.3rem;font-weight:700;color:var(--accent-gold)}.results__stat-label{font-size:.75rem;color:var(--text-dim);margin-top:2px}.results__xp-gain{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;color:var(--accent-gold);margin-bottom:24px;animation:fadeInUp .4s 1s ease-out both}.results__type-breakdown{font-size:.8rem;color:var(--text-dim);line-height:1.5;margin-bottom:20px;text-align:center}.results__type-strong{color:var(--accent-green);font-weight:600}.results__type-weak{color:var(--accent-red);font-weight:600}.results__actions{display:flex;flex-direction:column;gap:10px;width:100%}.results__btn{padding:14px 24px;border-radius:var(--radius-md);font-weight:600;font-size:.95rem;transition:all var(--transition-fast);width:100%}.results__btn--primary{background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));color:#fff}.results__btn--secondary{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-primary)}.results__btn:hover{transform:translateY(-1px)}.results__review{width:100%;text-align:left;margin-bottom:16px;animation:fadeInUp .3s ease-out}.results__review-title{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:12px}.results__review-scroll{max-height:40vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.results__review-card{padding:14px;background:var(--bg-card);border:1px solid rgba(252,92,101,.2);border-radius:var(--radius-md);margin-bottom:10px}.results__review-card--correct{border-color:#48bb7833}.results__review-question{font-size:.9rem;font-weight:500;margin-bottom:8px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.results__review-answer{display:flex;align-items:flex-start;gap:6px;font-size:.82rem;line-height:1.5;margin-bottom:4px}.results__review-answer--wrong{color:var(--accent-red)}.results__review-answer--correct{color:var(--accent-green)}.results__review-icon{flex-shrink:0;font-weight:700;width:16px;text-align:center}.results__review-feedback{font-size:.82rem;color:var(--text-secondary);line-height:1.55;margin-top:6px;padding-top:6px;border-top:1px solid var(--border-subtle)}.results__review-accordion{display:flex;align-items:center;width:100%;padding:10px 0;background:none;border:none;color:var(--text-dim);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:color var(--transition-fast)}.results__review-accordion:hover{color:var(--text-secondary)}.results__perfect-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;margin-bottom:16px;background:linear-gradient(135deg,#f5a6231f,#f0b42914);border:1px solid rgba(245,166,35,.3);border-radius:20px;font-size:.82rem;font-weight:600;color:var(--accent-gold);animation:fadeInUp .4s .3s ease-out both}.results__mastery-progress{width:100%;text-align:center;margin-bottom:20px;animation:fadeInUp .4s .6s ease-out both}.results__mastery-label{display:block;font-size:.82rem;color:var(--text-secondary);margin-bottom:8px}.results__mastery-label--done{color:var(--accent-green);font-weight:600}.results__mastery-bar{width:100%;height:8px;background:var(--bg-elevated);border-radius:4px;overflow:hidden;margin-bottom:6px}.results__mastery-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-green));border-radius:4px;transition:width .6s ease}.results__mastery-target{font-size:.72rem;color:var(--text-dim)}.results__star-tooltip{position:relative;width:100%;padding:12px 16px;margin-bottom:16px;background:linear-gradient(135deg,#63b3ed14,#9f7aea14);border:1px solid rgba(99,179,237,.2);border-radius:var(--radius-md);font-size:.8rem;color:var(--text-secondary);line-height:1.5;text-align:left}.results__star-tooltip p{margin:0;padding-right:24px}.results__star-tooltip-close{position:absolute;top:8px;right:8px;background:none;border:none;font-size:.9rem;color:var(--text-dim);cursor:pointer;padding:2px 6px;line-height:1}.welcome-overlay{position:fixed;inset:0;background:var(--overlay-bg);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .4s ease-out}.welcome-content{max-width:380px;padding:32px 24px;text-align:center;animation:fadeInUp .5s .2s ease-out both}.welcome-content__emoji{font-size:3rem;margin-bottom:16px}.welcome-content__title{font-size:1.5rem;font-weight:700;margin-bottom:8px;background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-content__text{font-size:.9rem;color:var(--text-secondary);line-height:1.6;margin-bottom:24px}.welcome-content__features{display:flex;flex-direction:column;gap:10px;margin-bottom:28px;text-align:left}.welcome-content__feature{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--text-secondary)}.welcome-content__feature-icon{font-size:1.2rem}.settings-overlay{position:fixed;inset:70px 0 0;background:var(--overlay-bg);backdrop-filter:blur(8px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.settings-panel{width:100%;max-width:var(--max-width);background:var(--bg-card);border-radius:0 0 var(--radius-xl) var(--radius-xl);padding:24px;animation:slideDown .3s ease-out;max-height:calc(100dvh - 70px);overflow-y:auto}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.settings-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.settings-panel__title{font-size:1.1rem;font-weight:700}.settings-panel__close{font-size:1.3rem;padding:4px 8px;border-radius:var(--radius-sm)}.settings-section{margin-bottom:20px}.settings-section__title{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:10px}.settings-btn{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-elevated);border-radius:var(--radius-md);width:100%;font-size:.9rem;color:var(--text-primary);transition:all var(--transition-fast);margin-bottom:8px}.settings-btn:hover{background:var(--bg-card);border-color:var(--border-accent)}.settings-btn--danger{color:var(--accent-red)}.settings-stat{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border-subtle);font-size:.88rem}.settings-stat__value{font-family:var(--font-mono);font-weight:600;color:var(--accent-gold)}.starfield{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.starfield__star{position:absolute;width:2px;height:2px;background:#fff;border-radius:50%;animation:twinkle var(--duration) var(--delay) infinite ease-in-out}.debug-panel{position:fixed;bottom:0;left:0;right:0;background:var(--debug-bg);padding:8px 12px;font-family:var(--font-mono);font-size:.7rem;color:var(--accent-green);z-index:9999;max-height:150px;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes starPop{0%{opacity:.2;transform:scale(.5)}60%{transform:scale(1.3)}to{opacity:1;transform:scale(1)}}@keyframes twinkle{0%,to{opacity:var(--min-opacity, .2)}50%{opacity:var(--max-opacity, .8)}}@keyframes pulseGreen{0%{box-shadow:0 0 #48bb7866}70%{box-shadow:0 0 0 10px #48bb7800}to{box-shadow:0 0 #48bb7800}}@keyframes xpFloat{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border-accent);color:var(--text-primary);padding:10px 20px;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;box-shadow:var(--shadow-card);z-index:3000;animation:toastIn .25s ease-out,fadeOut .3s ease-in 2.2s forwards;white-space:nowrap;max-width:calc(100vw - 32px)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}@keyframes fadeOut{to{opacity:0}}@media(max-width:420px){.app-container{padding:0 10px}.navbar{padding:10px}.navbar-title{font-size:.95rem}.navbar-stat .stat-value{font-size:.78rem}.topic-card{gap:10px;padding:12px}.topic-card__icon{font-size:1.3rem;width:32px}.topic-card__title{font-size:.85rem}.topic-card__subtitle{font-size:.72rem}.topic-card__progress{min-width:56px;gap:5px}.topic-card__progress-bar{width:28px}.topic-card__progress-text{font-size:.65rem}.topic-card__badge{font-size:.6rem;padding:2px 6px;letter-spacing:.5px}.level-card{gap:10px;padding:12px}.level-card__icon{font-size:1.2rem;width:36px;height:36px}.level-card__name{font-size:.85rem}.level-card__subtitle{font-size:.72rem}.review-card,.mixed-card,.mastery-card,.explore-card{gap:10px;padding:12px}.review-card__icon,.mixed-card__icon,.mastery-card__icon,.explore-card__icon{width:36px;height:36px;font-size:1.3rem}.review-card__title,.mixed-card__title,.explore-card__title{font-size:.85rem}.review-card__subtitle,.mixed-card__subtitle,.explore-card__subtitle{font-size:.72rem}.paper-heading{font-size:.72rem;letter-spacing:1px}.navbar-stats{gap:10px}.question-card__prompt{font-size:.92rem;margin-bottom:14px}.results__emoji{font-size:2.5rem}.results__title{font-size:1.2rem}}@media(max-width:340px){.topic-card{gap:8px;padding:10px}.topic-card__icon{font-size:1.1rem;width:28px}.topic-card__title{font-size:.8rem}.topic-card__progress{min-width:auto}.topic-card__progress-bar{width:24px}.navbar-stats{gap:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.starfield{display:none}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.confirm-overlay{position:fixed;inset:0;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease-out}.confirm-dialog{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;max-width:320px;width:90%;text-align:center}.confirm-dialog__title{font-size:1.05rem;font-weight:600;margin-bottom:8px}.confirm-dialog__text{font-size:.88rem;color:var(--text-secondary);margin-bottom:20px;line-height:1.5}.confirm-dialog__actions{display:flex;gap:10px}.confirm-dialog__btn{flex:1;padding:10px;border-radius:var(--radius-sm);font-weight:600;font-size:.88rem;transition:all var(--transition-fast)}.confirm-dialog__btn--cancel{background:var(--bg-elevated)}.confirm-dialog__btn--confirm{background:var(--accent-red);color:#fff}.settings-toggle{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;cursor:pointer}.settings-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-blue);cursor:pointer}.settings-toggle__label{font-size:.9rem;color:var(--text-primary);font-weight:500}.settings-toggle__hint{width:100%;font-size:.78rem;color:var(--text-dim);line-height:1.5;padding-left:28px}.calc-toolbar{display:flex;gap:8px;margin:10px auto 0;max-width:440px}.calc-toolbar__btn{flex:1;padding:8px 14px;background:#63b3ed14;border:1px solid var(--border-accent);border-radius:var(--radius-sm);color:var(--accent-blue);font-size:.82rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:center;white-space:nowrap}.calc-toolbar__btn:hover{background:#63b3ed2e;border-color:var(--accent-blue)}.calc-toolbar__btn:active{transform:scale(.97);background:#63b3ed40}.calc-toolbar__btn--active{background:#63b3ed2e;border-color:var(--accent-blue)}.calculator-panel{margin:12px auto 0;width:390px;max-width:100%;animation:fadeIn .2s ease-out}.periodic-table-panel{margin:12px auto 0;padding:10px 12px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);animation:fadeIn .2s ease-out}.periodic-table-panel__loading{padding:24px;text-align:center;color:var(--text-dim);font-size:.85rem}.calculator{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px;user-select:none}.calc-display{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:10px;min-height:56px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;overflow:hidden}.calc-display__expr{font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim);word-break:break-all;text-align:right;width:100%;min-height:1.2em}.calc-display__result{font-family:var(--font-mono);font-size:1.3rem;font-weight:600;color:var(--text-primary);text-align:right;width:100%;word-break:break-all}.calc-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.calc-buttons--sci{margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--border-subtle)}.calc-btn{padding:12px 4px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:1.25rem;font-weight:500;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);min-height:48px;display:flex;align-items:center;justify-content:center}.calc-btn:hover{background:var(--bg-elevated);border-color:var(--border-accent)}.calc-btn:active{transform:scale(.95)}.calc-btn--op{background:#63b3ed14;color:var(--accent-blue);font-weight:600}.calc-btn--op:hover{background:#63b3ed2e}.calc-btn--fn{background:var(--bg-elevated);color:var(--text-secondary);font-size:1.05rem}.calc-btn--sci{background:#9f7aea14;color:var(--accent-purple);font-size:1.05rem}.calc-btn--sci:hover{background:#9f7aea2e}.calc-btn--equals{background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));color:#fff;font-weight:700;border-color:transparent}.calc-btn--equals:hover{transform:translateY(-1px);box-shadow:0 2px 8px #63b3ed4d}.equation-sheet{margin:12px auto 0;max-width:440px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px;max-height:300px;overflow-y:auto;animation:fadeIn .2s ease-out}.equation-sheet__section{margin-bottom:14px}.equation-sheet__section:last-child{margin-bottom:0}.equation-sheet__heading{font-size:.78rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-subtle)}.equation-sheet__row{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;gap:12px}.equation-sheet__row--ht{font-weight:600}.equation-sheet__formula{font-family:JetBrains Mono,monospace;font-size:.82rem;color:var(--accent-blue);white-space:nowrap}.equation-sheet__name{font-size:.75rem;color:var(--text-dim);text-align:right}.equation-sheet__ht-badge{display:inline-block;margin-left:4px;padding:1px 4px;border-radius:3px;background:#ed893633;color:#ed8936;font-size:.65rem;font-weight:700;vertical-align:middle}.planets-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:8px 16px}.planets-table-wrap::-webkit-scrollbar{height:6px}.planets-table-wrap::-webkit-scrollbar-track{background:var(--bg-elevated);border-radius:3px}.planets-table-wrap::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:3px}.planets-table{border-collapse:collapse;font-size:11px;color:var(--text-primary);white-space:nowrap;min-width:520px}.planets-table thead tr{border-bottom:2px solid var(--border-subtle)}.planets-table tbody tr{border-bottom:1px solid var(--border-subtle)}.planets-table th{padding:5px 6px;text-align:left;font-weight:600;font-size:10px;color:var(--text-muted);white-space:nowrap}.planets-table td{padding:5px 6px}.planets-table__sticky{position:sticky;left:0;z-index:1;background:var(--bg-elevated)}.planets-table__sticky:after{content:"";position:absolute;top:0;right:-6px;bottom:0;width:6px;pointer-events:none;background:linear-gradient(to right,var(--bg-elevated),transparent)}.planets-table__name{font-weight:600}.planets-table__mono{font-family:JetBrains Mono,monospace}.review-card{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(135deg,#63b3ed14,#9f7aea14);border:1.5px solid var(--border-accent);border-radius:var(--radius-md);cursor:pointer;width:100%;text-align:left;transition:all var(--transition-fast);margin-bottom:20px}.review-card:hover{border-color:var(--accent-blue);box-shadow:var(--shadow-glow-blue);transform:translateY(-1px)}.review-card:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.review-card__icon{font-size:1.6rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:var(--radius-md);flex-shrink:0}.review-card__info{flex:1}.review-card__title{font-size:.95rem;font-weight:600;color:var(--accent-blue);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review-card__due-badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:.7rem;font-weight:700;letter-spacing:.02em;color:#1a1a1a;background:var(--accent-gold);border-radius:999px;text-transform:uppercase}.review-card--has-due{border-color:var(--accent-gold);background:linear-gradient(135deg,#f59e0b14,#63b3ed14)}.review-card--has-due:hover{border-color:var(--accent-gold);box-shadow:0 0 0 2px #f59e0b40}.review-card__subtitle{font-size:.78rem;color:var(--text-dim);margin-top:2px}.review-card__arrow{color:var(--accent-blue);font-size:1.1rem;flex-shrink:0}.review-empty{text-align:center;padding:48px 24px}.review-empty__icon{font-size:2.5rem;margin-bottom:16px}.review-empty__title{font-size:1.1rem;font-weight:600;margin-bottom:8px}.review-empty__text{font-size:.88rem;color:var(--text-secondary);line-height:1.6;margin-bottom:24px}.mastery-card{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(135deg,#48bb7814,#63b3ed0f);border:1.5px solid rgba(72,187,120,.25);border-radius:var(--radius-md);cursor:pointer;width:100%;text-align:left;transition:all var(--transition-fast);margin-bottom:12px}.mastery-card:hover{border-color:var(--accent-green);box-shadow:0 0 20px #48bb7826;transform:translateY(-1px)}.mastery-card:focus-visible{outline:2px solid var(--accent-green);outline-offset:2px}.mastery-card__icon{font-size:1.6rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:var(--radius-md);flex-shrink:0}.mastery-card__info{flex:1}.mastery-card__title{font-size:.95rem;font-weight:600;color:var(--accent-green)}.mastery-card__subtitle{font-size:.78rem;color:var(--text-dim);margin-top:2px}.mastery-card__arrow{color:var(--accent-green);font-size:1.1rem;flex-shrink:0}.spec-mastery{padding-bottom:32px}.spec-mastery__header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.spec-mastery__title{font-size:1.15rem;font-weight:700}.spec-mastery__subtitle{font-size:.8rem;color:var(--text-dim)}.spec-mastery__legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 14px;margin-bottom:18px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);position:sticky;top:0;z-index:5}.spec-mastery__legend-item{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;white-space:nowrap}.spec-mastery__legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.spec-mastery__legend-dot--mastered{background:var(--accent-gold)}.spec-mastery__legend-dot--secure{background:var(--accent-green)}.spec-mastery__legend-dot--developing{background:var(--accent-blue)}.spec-mastery__legend-dot--weak{background:var(--accent-red)}.spec-mastery__legend-dot--not-started{background:var(--text-dim);opacity:.5}.spec-mastery__legend-label{color:var(--text-secondary)}.spec-mastery__legend-count{font-family:var(--font-mono);font-size:.72rem;font-weight:600;color:var(--text-dim)}.spec-mastery__topic{margin-bottom:20px}.spec-mastery__topic-title{font-size:.85rem;font-weight:600;margin-bottom:10px;color:var(--text-secondary)}.spec-mastery__grid{display:flex;flex-wrap:wrap;gap:6px}.spec-mastery__chip{display:flex;flex-direction:column;align-items:center;padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--border-subtle);background:var(--bg-card);min-width:56px;transition:all var(--transition-fast)}.spec-mastery__chip--mastered{border-color:#f0b42966;background:#f0b42914}.spec-mastery__chip--secure{border-color:#48bb7866;background:#48bb7814}.spec-mastery__chip--developing{border-color:#63b3ed4d;background:#63b3ed0f}.spec-mastery__chip--weak{border-color:#fc5c6559;background:#fc5c6514}.spec-mastery__chip--not-started{opacity:.45}[data-theme=light] .spec-mastery__chip--not-started{opacity:.6}.spec-mastery__chip-point{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--text-primary)}.spec-mastery__chip-pct{font-family:var(--font-mono);font-size:.65rem;color:var(--text-dim);margin-top:2px}.spec-mastery__chip--clickable{cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.spec-mastery__chip--clickable:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0003}.spec-mastery__chip--clickable:active{transform:translateY(0)}.spec-practice-modal__overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-out}.spec-practice-modal{background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;max-width:340px;width:100%;animation:slideUp .25s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.spec-practice-modal__header{margin-bottom:16px;text-align:center}.spec-practice-modal__stats{display:flex;justify-content:center;gap:20px;margin-bottom:16px}.spec-practice-modal__stat{text-align:center}.spec-practice-modal__stat-value{display:block;font-size:1.15rem;font-weight:700;color:var(--text-primary)}.spec-practice-modal__stat-label{font-size:.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.spec-practice-modal__desc{text-align:center;font-size:.85rem;color:var(--text-secondary);margin-bottom:20px;line-height:1.5}.spec-practice-modal__actions{display:flex;gap:10px}.spec-practice-modal__btn{flex:1;padding:12px;border-radius:var(--radius-md);font-weight:600;font-size:.9rem;cursor:pointer;transition:all var(--transition-fast);border:none}.spec-practice-modal__btn--cancel{background:var(--bg-elevated);color:var(--text-secondary)}.spec-practice-modal__btn--cancel:hover{background:var(--bg-card)}.spec-practice-modal__btn--start{background:var(--accent-blue);color:#fff}.spec-practice-modal__btn--start:hover{filter:brightness(1.1)}.spec-practice-results{text-align:center;padding:2rem 1rem}.spec-practice-results__header{margin-bottom:24px}.spec-practice-results__title{font-size:1.1rem;font-weight:700;margin:0 0 4px;color:var(--text-primary)}.spec-practice-results__subtitle{font-size:.8rem;color:var(--text-dim);margin:0}.spec-practice-results__percent{display:block;font-size:3rem;font-weight:800;color:var(--accent-blue)}.spec-practice-results__fraction{display:block;font-size:.85rem;color:var(--text-dim);margin-bottom:16px}.spec-practice-results__bar{width:100%;max-width:280px;height:8px;margin:0 auto 24px;background:var(--bg-elevated);border-radius:4px;overflow:hidden}.spec-practice-results__bar-fill{height:100%;background:var(--accent-blue);border-radius:4px}.spec-practice-results__review{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:28px}.spec-practice-results__review-item{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.65rem;font-weight:600}.spec-practice-results__review-item--correct{background:#48bb7826;color:var(--accent-green)}.spec-practice-results__review-item--wrong{background:#f5656526;color:var(--accent-red)}.spec-practice-results__review-num{font-size:.6rem;opacity:.7}.spec-practice-results__review-icon{font-size:.85rem}.spec-practice-results__btn{padding:14px 32px;background:var(--accent-blue);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:.95rem;cursor:pointer;transition:all var(--transition-fast)}.spec-practice-results__btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.hint-btn{display:inline-block;padding:6px 12px;background:none;border:none;color:var(--text-dim);font-size:.8rem;font-weight:500;cursor:pointer;transition:color var(--transition-fast);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}.hint-btn:hover{color:var(--accent-gold);text-decoration-color:var(--accent-gold)}.hint-panel{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;background:#f0b4290f;border:1px solid rgba(240,180,41,.2);border-radius:var(--radius-md);margin-top:10px;animation:fadeInUp .2s ease-out}.hint-panel__icon{flex-shrink:0;font-size:1rem}.hint-panel__body{display:flex;flex-direction:column;gap:6px}.hint-panel__text{font-size:.85rem;line-height:1.5;color:var(--text-secondary)}.hint-used-badge{display:inline-flex;align-items:center;font-size:.72rem;font-weight:600;color:var(--accent-gold);opacity:.8}.hint-confirm{position:absolute;left:50%;transform:translate(-50%);bottom:calc(100% + 6px);z-index:20;width:max-content;max-width:280px;padding:12px 14px;background:var(--bg-card);border:1px solid rgba(240,180,41,.3);border-radius:var(--radius-md);box-shadow:0 4px 20px #00000040;animation:hintConfirmIn .15s ease-out}@keyframes hintConfirmIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.hint-confirm__text{font-size:.82rem;line-height:1.45;color:var(--text-secondary);margin:0 0 10px;text-align:center}.hint-confirm__actions{display:flex;gap:8px;justify-content:center}.hint-confirm__btn{padding:6px 16px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.hint-confirm__btn--cancel{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-subtle)}.hint-confirm__btn--cancel:hover{background:var(--bg-card)}.hint-confirm__btn--confirm{background:#f0b42926;color:var(--accent-gold);border:1px solid rgba(240,180,41,.3)}.hint-confirm__btn--confirm:hover{background:#f0b42940}.tier-selector{display:flex;flex-direction:column;gap:8px}.tier-option{display:flex;flex-direction:column;gap:2px;padding:12px 14px;background:var(--bg-elevated);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:left}.tier-option:hover{border-color:var(--border-accent)}.tier-option--active{border-color:var(--accent-blue);background:#63b3ed14}[data-theme=light] .tier-option--active{background:#2b6cb014}.tier-option__label{font-size:.88rem;font-weight:600}.tier-option__desc{font-size:.7rem;color:var(--text-dim)}.topic-card--subject-only{opacity:.55}.topic-card__subject-badge{display:inline-block;margin-left:6px;padding:1px 6px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;background:#9f7aea26;color:#9f7aea;border-radius:4px;vertical-align:middle}.level-card--subject-only{opacity:.55}.level-card__subject-badge{display:inline-block;margin-left:6px;padding:1px 5px;font-size:.6rem;font-weight:700;background:#9f7aea33;color:#9f7aea;border-radius:4px;vertical-align:middle}.subject-only-banner{padding:10px 14px;margin-bottom:12px;background:#9f7aea1a;border:1px solid rgba(159,122,234,.25);border-radius:var(--radius-md);font-size:.8rem;color:#9f7aea;line-height:1.4}[data-theme=light] .subject-only-banner{background:#805ad514;border-color:#805ad533;color:#6b46c1}[data-theme=light] .topic-card__subject-badge,[data-theme=light] .level-card__subject-badge{background:#805ad51f;color:#6b46c1}.theme-selector{display:flex;gap:8px}.theme-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:var(--bg-elevated);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.theme-option:hover{border-color:var(--border-accent)}.theme-option--active{border-color:var(--accent-blue);background:#63b3ed14}[data-theme=light] .theme-option--active{background:#2b6cb014}.theme-option__label{font-size:.88rem;font-weight:600}.theme-option__desc{font-size:.7rem;color:var(--text-dim)}.settings-toggle{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 0}.settings-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-blue);cursor:pointer;flex-shrink:0}.settings-toggle__label{font-size:.88rem;font-weight:500}.settings-toggle__hint{width:100%;font-size:.75rem;color:var(--text-dim);line-height:1.4;padding-left:26px}.debug-review-card{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(135deg,#fc5c650f,#f0b4290f);border:1.5px solid rgba(252,92,101,.2);border-radius:var(--radius-md);cursor:pointer;width:100%;text-align:left;transition:all var(--transition-fast);margin-bottom:12px}.debug-review-card:hover{border-color:var(--accent-red);transform:translateY(-1px)}.debug-review-card__icon{font-size:1.6rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:var(--radius-md);flex-shrink:0}.debug-review-card__info{flex:1}.debug-review-card__title{font-size:.95rem;font-weight:600;color:var(--accent-red)}.debug-review-card__subtitle{font-size:.78rem;color:var(--text-dim);margin-top:2px}.debug-review-card__arrow{color:var(--accent-red);font-size:1.1rem;flex-shrink:0}.debug-review{padding-bottom:32px}.debug-review__header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.debug-review__title{font-size:1.15rem;font-weight:700}.debug-review__subtitle{font-size:.8rem;color:var(--text-dim)}.debug-review__list{display:flex;flex-direction:column;gap:6px}.debug-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;width:100%;text-align:left;transition:all var(--transition-fast)}.debug-card:hover{border-color:var(--border-accent);transform:translateY(-1px)}.debug-card--diagrams{border-color:#9f7aea40;background:linear-gradient(135deg,#9f7aea0f,#63b3ed0a);margin-bottom:16px}.debug-card--diagrams:hover{border-color:var(--accent-purple)}.debug-card__icon{font-size:1.3rem;flex-shrink:0}.debug-card__info{flex:1}.debug-card__title{font-size:.9rem;font-weight:600}.debug-card__subtitle{font-size:.75rem;color:var(--text-dim);margin-top:2px}.debug-card__arrow{color:var(--text-dim);font-size:1rem;flex-shrink:0}.debug-topic{padding-bottom:32px}.debug-topic__header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.debug-topic__title{font-size:1.05rem;font-weight:700}.debug-topic__subtitle{font-size:.78rem;color:var(--text-dim)}.debug-topic__count{font-size:.78rem;color:var(--text-dim);margin-bottom:12px}.debug-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.debug-filters__search{flex:1;min-width:160px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-primary)}.debug-filters__search:focus{outline:none;border-color:var(--accent-blue)}.debug-filters__type{padding:8px 10px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:.82rem;color:var(--text-primary)}.debug-filters__actions{display:flex;gap:6px}.debug-filters__btn{padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.debug-filters__btn:hover{border-color:var(--border-accent);color:var(--text-primary)}.debug-question-list{display:flex;flex-direction:column;gap:4px}.debug-q{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.debug-q__header{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-card);width:100%;text-align:left;cursor:pointer;transition:background var(--transition-fast);flex-wrap:nowrap;min-height:44px}.debug-q__header:hover{background:var(--bg-elevated)}.debug-q__id{font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--accent-gold);background:#f0b4291a;padding:2px 6px;border-radius:4px;flex-shrink:0;min-width:36px;text-align:center}.debug-q__type{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:4px;flex-shrink:0;background:#63b3ed1a;color:var(--accent-blue)}.debug-q__type--calc{background:#9f7aea1a;color:var(--accent-purple)}.debug-q__type--tf{background:#48bb781a;color:var(--accent-green)}.debug-q__type--ordering{background:#f0b4291a;color:var(--accent-gold)}.debug-q__type--matching{background:#fc5c651a;color:var(--accent-red)}.debug-q__type--multi_select{background:#63b3ed1a;color:var(--accent-blue)}.debug-q__type--category_sort{background:#9f7aea1a;color:var(--accent-purple)}.debug-q__type--fill_blank{background:#48bb781a;color:var(--accent-green)}.debug-q__diff{font-family:var(--font-mono);font-size:.65rem;font-weight:600;padding:2px 5px;border-radius:4px;flex-shrink:0}.debug-q__diff--1{color:var(--accent-green);background:#48bb781a}.debug-q__diff--2{color:var(--accent-gold);background:#f0b4291a}.debug-q__diff--3{color:var(--accent-red);background:#fc5c651a}.debug-q__spec{font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);flex-shrink:0}.debug-q__preview{font-size:.8rem;color:var(--text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.debug-q__chevron{font-size:.8rem;color:var(--text-dim);flex-shrink:0}.debug-q__detail{padding:12px;background:var(--bg-elevated);border-top:1px solid var(--border-subtle)}.debug-q__meta-row{display:flex;flex-wrap:wrap;gap:12px;font-size:.75rem;color:var(--text-dim);margin-bottom:12px;font-family:var(--font-mono)}.debug-q__field{margin-bottom:10px}.debug-q__label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-dim);margin-bottom:4px}.debug-q__value{font-size:.85rem;line-height:1.55;color:var(--text-primary)}.debug-q__correct{color:var(--accent-green);font-weight:500}.debug-q__feedback{color:var(--text-secondary);font-size:.82rem}.debug-q__working{font-family:var(--font-mono);font-size:.78rem;line-height:1.6;color:var(--text-secondary);background:var(--working-bg);padding:10px 12px;border-radius:var(--radius-sm);white-space:pre-wrap;margin:0}.debug-diagrams{padding-bottom:32px}.debug-diagrams__header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.debug-diagrams__title{font-size:1.15rem;font-weight:700}.debug-diagrams__subtitle{font-size:.8rem;color:var(--text-dim)}.debug-diagrams__list{display:flex;flex-direction:column;gap:16px}.debug-diagram-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.debug-diagram-card__header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-card);border-bottom:1px solid var(--border-subtle)}.debug-diagram-card__label{font-size:.88rem;font-weight:600}.debug-diagram-card__name{font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);background:var(--bg-elevated);padding:2px 8px;border-radius:4px}[data-theme=light] .starfield{display:none}[data-theme=light] .option-btn--correct{background:#2f855a1a}[data-theme=light] .option-btn--wrong{background:#e53e3e14}[data-theme=light] .feedback-panel--correct{background:#2f855a14;border-color:#2f855a59;border-left:3px solid var(--accent-green)}[data-theme=light] .feedback-panel--wrong{background:#e53e3e0f;border-color:#e53e3e4d;border-left:3px solid var(--accent-red)}[data-theme=light] ::-webkit-scrollbar-thumb{background:#c4c9d4}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#a0a8b8}[data-theme=light] .navbar-offline{background:#d4960a1f;color:#b07d04}[data-theme=light] .debug-panel{color:var(--accent-green)}[data-theme=light] .calc-btn--op{background:#2b6cb014}[data-theme=light] .calc-btn--sci{background:#6b46c114}.achievement-toast{position:fixed;top:1rem;left:50%;transform:translate(-50%) translateY(-120%);z-index:9999;display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;background:var(--bg-elevated);border:1px solid var(--accent-gold, #f5a623);border-radius:12px;box-shadow:0 8px 32px #0000004d,0 0 0 1px #f5a62333;transition:transform .4s cubic-bezier(.34,1.56,.64,1);max-width:90vw;width:max-content}.achievement-toast--visible{transform:translate(-50%) translateY(0)}.achievement-toast__icon{font-size:2rem;flex-shrink:0;animation:toast-bounce .6s ease .4s both}@keyframes toast-bounce{0%{transform:scale(.3)}50%{transform:scale(1.2)}to{transform:scale(1)}}.achievement-toast__content{display:flex;flex-direction:column;gap:.1rem}.achievement-toast__label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-gold, #f5a623);font-weight:700}.achievement-toast__title{font-size:.95rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:6px}.achievement-toast__tier{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:3px}.achievement-toast__tier--bronze{color:#cd7f32;background:#cd7f3226}.achievement-toast__tier--silver{color:#a0a8b8;background:#a0a8b826}.achievement-toast__tier--gold{color:var(--accent-gold, #f5a623);background:#f5a62326}.achievement-toast__desc{font-size:.75rem;color:var(--text-dim)}.trophy-case{padding:1rem;max-width:600px;margin:0 auto}.trophy-case__header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.trophy-case__title{font-size:1.3rem;font-weight:800;color:var(--text-primary);margin:0}.trophy-case__subtitle{font-size:.82rem;color:var(--text-dim);margin:0}.trophy-case__progress-bar{height:6px;background:var(--bg-elevated);border-radius:3px;overflow:hidden;margin-bottom:1.5rem}.trophy-case__progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-gold, #f5a623),#ffd700);border-radius:3px;transition:width .5s ease}.trophy-category{margin-bottom:1.5rem}.trophy-category__title{font-size:.9rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.trophy-category__count{font-size:.75rem;font-weight:500;color:var(--text-dim)}.trophy-grid{display:flex;flex-direction:column;gap:.5rem}.trophy-card{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border-radius:10px;border:1px solid transparent;transition:background .2s}.trophy-card--unlocked{background:var(--bg-elevated);border-color:#f5a62326}.trophy-card--locked{background:var(--bg-card);opacity:.55}[data-theme=light] .trophy-card--locked{opacity:.65}.trophy-card__icon{font-size:1.5rem;flex-shrink:0;width:2rem;text-align:center}.trophy-card--locked .trophy-card__icon{filter:grayscale(1)}.trophy-card__info{flex:1;min-width:0}.trophy-card__title{font-size:.85rem;font-weight:700;color:var(--text-primary)}.trophy-card--locked .trophy-card__title{color:var(--text-dim)}.trophy-card__desc{font-size:.72rem;color:var(--text-dim);margin-top:.1rem}.trophy-card__date{font-size:.65rem;color:var(--text-dim);white-space:nowrap}.trophy-card__icon-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0}.trophy-card__tier{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:3px;line-height:1.3}.trophy-card__tier--bronze{color:#cd7f32;background:#cd7f321f}.trophy-card__tier--silver{color:#a0a8b8;background:#a0a8b81f}.trophy-card__tier--gold{color:var(--accent-gold, #f5a623);background:#f5a6231f}.trophy-card__new-badge{display:inline-block;font-size:.55rem;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#fff;background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:middle;animation:newBadgePulse 2s ease-in-out infinite}@keyframes newBadgePulse{0%,to{opacity:1}50%{opacity:.7}}.trophy-case__tiers{display:flex;gap:8px;margin-bottom:1.25rem}.trophy-tier-pill{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:12px;font-size:.7rem;font-weight:600;border:1px solid transparent}.trophy-tier-pill__label{opacity:.9}.trophy-tier-pill__count{font-family:var(--font-mono);font-size:.65rem}.trophy-tier-pill--bronze{color:#cd7f32;background:#cd7f3214;border-color:#cd7f3233}.trophy-tier-pill--silver{color:#a0a8b8;background:#a0a8b814;border-color:#a0a8b833}.trophy-tier-pill--gold{color:var(--accent-gold, #f5a623);background:#f5a62314;border-color:#f5a62333}.trophy-nav-card{display:flex;align-items:center;gap:.75rem;width:100%;padding:.85rem 1rem;background:var(--bg-elevated);border:1px solid rgba(245,166,35,.15);border-radius:12px;cursor:pointer;text-align:left;transition:border-color .2s,background .2s;margin-bottom:.5rem}.trophy-nav-card:hover{border-color:#f5a6234d;background:var(--bg-card)}.trophy-nav-card__icon{font-size:1.4rem}.trophy-nav-card__info{flex:1}.trophy-nav-card__title{font-size:.95rem;font-weight:700;color:var(--text-primary)}.trophy-nav-card__subtitle{font-size:.75rem;color:var(--text-dim)}.trophy-nav-card__arrow{font-size:1.2rem;color:var(--text-dim)}[data-theme=light] .achievement-toast{box-shadow:0 8px 32px #0000001a,0 0 0 1px #f5a62326}[data-theme=light] .trophy-card--unlocked,[data-theme=light] .trophy-nav-card{border-color:#f5a62333}@keyframes xpPopFloat{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.8)}15%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}70%{opacity:1;transform:translate(-50%) translateY(-20px) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-40px) scale(.9)}}[data-theme=light] .trophy-card__tier--silver{color:#707a8a}[data-theme=light] .trophy-tier-pill--silver{color:#707a8a;border-color:#707a8a40}.topic-card--mastered{border-color:#f0b42959;box-shadow:0 0 0 1px #f0b4291a}.topic-card--mastered:hover{border-color:#f0b42980;box-shadow:0 2px 12px #f0b42926}.topic-card__crown{font-size:1rem}.topic-card__progress--mastered{gap:4px}.topic-card__progress-text--mastered{color:var(--accent-gold);font-weight:600;font-size:.72rem}[data-theme=light] .topic-card--mastered{border-color:#c8961459;box-shadow:0 0 0 1px #c8961414}.crown-celebration{position:fixed;inset:0;background:#000000bf;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1100;animation:fadeIn .3s ease-out}.crown-celebration__content{max-width:340px;padding:36px 28px;text-align:center;background:var(--bg-card);border:1px solid rgba(240,180,41,.3);border-radius:var(--radius-lg, 16px);box-shadow:0 0 40px #f0b42926;animation:fadeInUp .5s .15s ease-out both}.crown-celebration__icon{font-size:4rem;margin-bottom:12px;animation:crownBounce .6s .4s ease-out both}@keyframes crownBounce{0%{transform:scale(.3) rotate(-20deg);opacity:0}50%{transform:scale(1.2) rotate(5deg)}to{transform:scale(1) rotate(0);opacity:1}}.crown-celebration__title{font-size:1.5rem;font-weight:700;color:var(--accent-gold);margin-bottom:8px}.crown-celebration__topic{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}.crown-celebration__text{font-size:.85rem;color:var(--text-secondary);line-height:1.5;margin-bottom:24px}.crown-celebration__btn{padding:12px 32px;background:linear-gradient(135deg,var(--accent-gold),#d4a017);color:#1a1a2e;font-weight:700;font-size:.95rem;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.crown-celebration__btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #f0b4294d}.migration-notice{position:fixed;bottom:16px;left:50%;transform:translate(-50%);max-width:420px;width:calc(100% - 32px);display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--bg-card);border:1px solid rgba(99,179,237,.3);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000004d;z-index:900;animation:fadeInUp .4s ease-out}.migration-notice__text{flex:1;font-size:.8rem;color:var(--text-secondary);line-height:1.5;margin:0}.migration-notice__text strong{color:var(--accent-blue)}.migration-notice__dismiss{flex-shrink:0;background:none;border:none;font-size:1rem;color:var(--text-dim);cursor:pointer;padding:2px 6px;line-height:1}.migration-notice__dismiss:hover{color:var(--text-primary)}[data-theme=light] .migration-notice{box-shadow:0 8px 24px #0000001a;border-color:#4285f44d}[data-theme=light] .crown-celebration{background:#00000080}[data-theme=light] .crown-celebration__content{border-color:#c896144d;box-shadow:0 0 40px #c896141a}[data-theme=light] .crown-celebration__btn{color:#fff}[data-theme=light] .results__perfect-badge{background:linear-gradient(135deg,#c896141a,#c896140f);border-color:#c896144d}[data-theme=light] .results__star-tooltip{background:linear-gradient(135deg,#4285f40f,#805ad50f);border-color:#4285f433}.frac{display:inline-flex;flex-direction:column;align-items:stretch;vertical-align:-.45em;text-align:center;margin:0 .2em;line-height:1.05;font-feature-settings:"tnum" 1}.frac__num{border-bottom:1px solid currentColor;padding:0 .3em 1px;white-space:nowrap}.frac__den{padding:1px .3em 0;white-space:nowrap}
