#root{margin:0 auto;padding:0;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.inline-flex{display:inline-flex}.gap-10{gap:10px}.align-center{align-items:center}button{height:fit-content;width:fit-content}.read-the-docs{color:#888}#nav-bar{display:inline-flex;justify-content:space-evenly;align-items:center;gap:2em}#nav-bar button{transition:none;border:unset}#nav-bar button:hover{filter:drop-shadow(0 0 .8em rgba(100,164,253,.667))}button.primary{background-color:#646cff;color:#fff;border-radius:.5em;padding:.5em 1em}button.primary:hover{background-color:#646cffaa}button.secondary{background-color:#f0f0f0;color:#333;border-radius:.5em;padding:.5em 1em}button.secondary:hover{background-color:#f0f0f0aa}div.container{border:1px red solid;box-sizing:border-box}.flex{display:flex}.flex-col{flex-direction:column}.flex-center{justify-content:center;align-items:center}.padding-10{padding:10px}.conversation-box{background:#23243a;border-radius:12px}.conversation-box__title{margin:0;font-weight:600;font-size:20px}.conversation-box__close{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;font-weight:700;margin-left:12px}.conversation-box__content{padding:12px;color:#e2e3f7}.conversation-box__error button,.conversation-box__loading button{background:#646cff;color:#fff;border-radius:6px;border:none;padding:6px 16px;margin-top:8px}.conversation-box__tts-fallback{color:#646cff;margin-top:10px}.conversation-box__controls{margin-top:10px}@media(max-width:768px){.conversation-box{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;background:#fff;border-radius:0;box-shadow:none}.conversation-box__header{border-radius:0}.conversation-turns{padding:1rem;font-size:1.1rem;line-height:1.6}.playback-controls{position:sticky;bottom:0;background:#fff;border-top:1px solid #eee;padding:1rem}}.conversation-turns{display:flex;flex-direction:column;gap:18px;margin-top:8px}.conversation-turn{display:flex;align-items:flex-start;gap:14px;padding:12px;background:none;border:none;box-shadow:none;transition:background .2s,border .2s;border-radius:8px;position:relative}.conversation-turn:hover{background:#646cff0d}.conversation-turn.current{border-left:4px solid #646cff;background:#646cff14}.conversation-turn.playing{background:#646cff1f;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{background:#646cff1f}50%{background:#646cff2e}}.conversation-turn__speaker{display:inline-block;min-width:32px;height:32px;border-radius:50%;background:#32335a;color:#fff;font-weight:700;font-size:16px;text-align:center;line-height:32px;margin-right:6px}.conversation-turn__content{flex:1;display:flex;flex-direction:column;gap:2px;position:relative}.conversation-turn__text{font-size:18px;color:#e2e3f7;font-weight:500;margin:0}.audio-playing-indicator{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:20px;animation:bounce 1s ease-in-out infinite}.audio-loading-indicator{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:20px;animation:spin 1s linear infinite}@keyframes bounce{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.1)}}@keyframes spin{0%{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}.conversation-turn__translation{font-size:15px;color:#b3b6d4;font-style:italic;margin:0}.vocabulary-card{border:2px solid #38405a;border-radius:8px;padding:1em;background:#232a3a;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;justify-content:space-between;min-width:220px;max-width:320px;margin:.5em;transition:box-shadow .2s,border-color .2s,transform .15s;will-change:box-shadow,border-color,transform;outline:none}.vocabulary-card:hover,.vocabulary-card:focus-within{box-shadow:0 4px 16px #0000002e;border-color:#0078d4}.vocabulary-card:focus-visible{border-color:#ffb300;box-shadow:0 0 0 3px #ffb30055;outline:none;transform:scale(1.01)}.vocabulary-card:active{transform:scale(.98)}@media(hover:hover){.vocabulary-card:hover{box-shadow:0 6px 20px #00000038;border-color:#0078d4;transform:translateY(-2px) scale(1.01)}}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5em}.card-header h3{margin:0;font-size:1.1em;flex:1}.difficulty-badge{font-size:.75em;padding:.25em .5em;border-radius:4px;text-transform:capitalize;font-weight:700;margin-left:8px;color:#fff;white-space:nowrap;cursor:help}.description{flex:1;margin-bottom:.75em;color:#b3c7ff}.metadata{margin:.5em 0 1em;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.word-count{background-color:#ffffff1a;border-radius:4px;padding:.25em .5em;display:inline-flex;align-items:center;margin-right:.5em;margin-bottom:.5em;cursor:help}.count-number{font-weight:700;font-size:.95em;color:#fff;margin-right:4px}.count-label{font-size:.75em;color:#b3c7ff}.tags-container{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:.5em}.tag{background-color:#0078d44d;border-radius:4px;padding:.15em .5em;font-size:.75em;color:#b3c7ff;white-space:nowrap}.card-footer{display:flex;justify-content:flex-end;margin-top:auto}.select-button{background:#0078d4;color:#fff;border:none;border-radius:4px;padding:.5em 1.2em;cursor:pointer;font-size:1em;transition:background .2s;min-width:44px;min-height:44px}.select-button:hover,.select-button:focus{background:#005fa3}.vocab-page-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #38405a}.vocab-page-title{font-size:1.75rem;margin:0 0 .5rem;color:#fffffff2;font-weight:600}.vocab-page-subtitle{font-size:.95rem;margin:0;color:#fff9}.search-section{margin-bottom:1.25rem}.search-box{width:100%;max-width:500px;padding:.75rem 1rem;border-radius:8px;border:2px solid #38405a;background:#232a3a;color:#fff;font-size:1rem;transition:border-color .2s}.search-box:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.filter-section{background:#232a3a80;border:1px solid #38405a;border-radius:8px;padding:1rem;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:1rem}.filter-row{display:flex;align-items:flex-start;gap:1rem}.filter-group{display:flex;align-items:flex-start;gap:.75rem;flex:1}.filter-label{font-size:.875rem;color:#a5b4fc;font-weight:600;min-width:75px;padding-top:.375rem}.filter-chips{display:flex;flex-wrap:wrap;gap:.5rem;flex:1}.filter-chip{background:#667eea26;color:#b3c7ff;border:1px solid rgba(102,126,234,.3);border-radius:20px;padding:.375rem 1rem;font-size:.875rem;cursor:pointer;transition:all .2s;font-weight:500;white-space:nowrap}.filter-chip:hover{background:#667eea40;border-color:#667eea}.filter-chip.selected{background:#667eea;color:#fff;border-color:#667eea}.clear-all-button{background:#ef444426;color:#fca5a5;border:1px solid rgba(239,68,68,.3);padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;align-self:flex-start}.clear-all-button:hover{background:#ef444440;border-color:#ef4444}.empty-state{grid-column:1/-1;text-align:center;color:#b3c7ff;padding:2em 0;font-size:1.1em}@media(max-width:768px){.vocab-page-header{margin-bottom:1rem;padding-bottom:.75rem}.vocab-page-title{font-size:1.5rem}.vocab-page-subtitle{font-size:.875rem}.search-section{margin-bottom:1rem}.search-box{max-width:100%;font-size:.9375rem}.filter-section{padding:.75rem}.filter-row{flex-direction:column;gap:.75rem}.filter-group{flex-direction:column;align-items:flex-start;gap:.5rem}.filter-label{min-width:auto;padding-top:0}.filter-chips{width:100%}.filter-chip{font-size:.8125rem;padding:.3125rem .875rem}.clear-all-button{width:100%;text-align:center}}.progress-container{display:flex;align-items:center;gap:.5em;margin:.5em 0}.progress-bar-bg{flex:1;height:8px;background:#1a2233;border-radius:4px;overflow:hidden;margin-right:.5em}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#4caf50,#ff9800,#f44336);border-radius:4px;transition:width .4s cubic-bezier(.4,2,.6,1)}.progress-label{font-size:.85em;color:#b3c7ff;min-width:2.5em;text-align:right}.select-button{min-width:44px;min-height:44px}@media(max-width:600px){.vocabulary-card{min-width:90vw;max-width:98vw;margin:.5em auto;padding:.7em}}:root{--card-bg: #232a3a;--card-border: #38405a;--card-text: #b3c7ff;--card-accent: #0078d4;--card-warning: #ffb300}@media(prefers-color-scheme:dark){.vocabulary-card{background:var(--card-bg);border-color:var(--card-border);color:var(--card-text)}}.learn-layout{display:flex;flex-direction:column}.learn-subnav{display:flex;gap:.5rem;padding:.75rem 2rem;background:#1a1d2e;border-bottom:2px solid #38405a;box-shadow:0 2px 8px #0000004d;position:sticky;top:60px;z-index:50}.subnav-link{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;color:#ffffffb3;text-decoration:none;border-radius:6px;font-weight:500;font-size:.95rem;transition:all .2s;border-bottom:2px solid transparent}.subnav-link:hover{background:#667eea26;color:#fffffff2}.subnav-link.active{color:#a5b4fc;background:#667eea33;border-bottom-color:#667eea;font-weight:600}.learn-content{flex:1;padding:1.5rem 0;background:#242424;overflow-x:hidden;display:flex;flex-direction:column;height:calc(100vh - 130px)}@media(max-width:768px){.learn-subnav{padding:.5rem 1rem;gap:.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.subnav-link{padding:.4rem .8rem;font-size:.875rem;white-space:nowrap}.learn-content{padding:1rem 0}}@media(max-width:480px){.learn-subnav{padding:.5rem;gap:.25rem}.subnav-link{padding:.35rem .6rem;font-size:.8rem}.learn-content{padding:.75rem 0}}.quizCard{width:100%;min-width:0}.question{margin:var(--space-md) 0;min-height:100px}.question h2{font-size:var(--font-5xl);margin:var(--space-sm) 0;color:var(--text-primary);font-weight:400}.question p{font-size:var(--font-md);color:var(--text-secondary);margin:var(--space-xs) 0}.pinyin{font-size:var(--font-xl);color:var(--text-tertiary);font-style:italic;margin:var(--space-xs) 0}@media(max-width:768px){.question{min-height:80px;margin:var(--space-sm) 0}.question h2{font-size:var(--font-4xl)}.question p{font-size:var(--font-sm)}.pinyin{font-size:var(--font-lg)}}@media(max-width:480px){.question h2{font-size:var(--font-3xl)}}.questionCardHeader{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0}.quizTypeIcon{font-size:var(--font-2xl)}.hintIconButton{background:transparent;border:none;color:var(--text-tertiary);font-size:var(--font-xl);cursor:pointer;padding:.25rem}.questionCardContent{margin-top:var(--space-sm)}.toggle-switch{display:flex;align-items:center;gap:10px}.switch{position:relative;display:inline-block;width:60px;height:34px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#646cff22;border:2px solid transparent;-webkit-transition:.4s;transition:.4s}.switch:hover .slider{border-color:#646cff}.slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:#fff;border:2px solid #646cff;-webkit-transition:.4s;transition:.4s}input:checked+.slider{background-color:#646cff;border-color:#646cff}input:focus+.slider{box-shadow:0 0 1px #646cff}input:checked+.slider:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translate(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%;top:2px;left:2px;bottom:auto;transform:translateY(0)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);border:none;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-sizing:border-box;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{min-width:100px;min-height:36px;padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);border-radius:var(--radius-sm)}.btn-md{min-width:140px;min-height:44px;padding:.875rem var(--space-lg);font-size:var(--font-md);border-radius:var(--radius-md)}.btn-lg{min-width:160px;min-height:52px;padding:var(--space-md) var(--space-xl);font-size:var(--font-lg);border-radius:var(--radius-lg)}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary-border)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-bg);border-color:var(--color-primary)}.btn-secondary:active:not(:disabled){background:var(--color-primary-border)}.btn-loading{position:relative}.btn-content-loading{opacity:.7}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btn-spin .8s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}@media(max-width:768px){.btn-md{min-width:120px;padding:var(--space-sm) var(--space-md);font-size:var(--font-sm)}.btn-lg{min-width:140px;padding:.875rem var(--space-lg);font-size:var(--font-md)}}.pinyinToneInputContainer{background:var(--surface-dark);border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:var(--space-md);position:relative;width:100%}.toneTooltip{position:absolute;bottom:calc(100% + .5rem);left:0;right:0;z-index:10;background:var(--color-primary-bg-medium);border:1px solid var(--color-primary-border-strong);border-radius:var(--radius-md);padding:.875rem var(--space-md);box-shadow:0 4px 12px #00000026;animation:tooltipFadeIn .2s ease-out}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tooltipTitle{font-size:.875rem;font-weight:600;color:var(--color-primary-light);margin:0 0 .5rem}.tooltipText{font-size:.8125rem;color:var(--text-secondary);line-height:1.5;margin:0}.tooltipText strong{color:var(--text-primary);font-weight:600;font-family:monospace}.preview{margin-top:.5rem;color:var(--text-tertiary);font-size:.875rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.preview strong{color:var(--text-primary);font-weight:600}.hintIconButton{background:transparent;border:none;color:var(--text-tertiary);font-size:var(--font-xl);cursor:pointer;padding:.25rem;flex-shrink:0}.hintIconButton:hover{color:var(--text-primary)}.hintIconButton:active{transform:scale(.95)}.hintIconButton:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.chineseCharacterInputContainer{position:relative;width:100%}.inputWrapper{position:relative}.characterCount{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--text-tertiary);background:var(--surface-dark);padding:.25rem .5rem;border-radius:var(--radius-sm);pointer-events:none}.pinyinToggle{margin-top:.5rem;padding:.5rem .75rem;font-size:.75rem;color:var(--text-tertiary);background:var(--surface-light-5);border:1px solid var(--surface-border);border-radius:var(--radius-sm);cursor:not-allowed;opacity:.6}.pinyinToggle:not(:disabled){cursor:pointer;opacity:1}.pinyinToggle:not(:disabled):hover{background:var(--surface-light-10)}.suggestionDropdown{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:var(--surface-overlay);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:200px;overflow-y:auto;z-index:1000}.multipleChoiceContainer{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);width:100%}.multipleChoiceButton{width:100%;height:100%;min-height:80px;padding:var(--space-md) var(--space-lg);background:var(--surface-hover);border:2px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-md);font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:center;display:flex;align-items:center;justify-content:center}.multipleChoiceButton:hover{background:var(--color-primary-bg);border-color:var(--color-primary);transform:translateY(-3px);box-shadow:var(--shadow-md)}.multipleChoiceButton:active{transform:translateY(-1px)}@media(max-width:768px){.multipleChoiceContainer{gap:var(--space-md)}.multipleChoiceButton{min-height:70px;padding:var(--space-sm) var(--space-lg);font-size:var(--font-sm)}.multipleChoiceButton:hover{transform:translateY(-2px)}}@media(max-width:480px){.multipleChoiceContainer{grid-template-columns:1fr;gap:var(--space-sm)}.multipleChoiceButton{min-height:60px;padding:var(--space-sm) var(--space-md)}.multipleChoiceButton:hover{transform:translateY(-2px)}}.answerContent{flex:0 0 200px;max-width:600px;align-self:center;width:100%;display:flex;flex-direction:column}@media(max-width:768px){.answerContent{flex:0 0 180px;max-width:100%}}.feedbackContainer{padding:var(--space-md);border-radius:var(--radius-md);flex:1 0 auto;gap:var(--space-sm)}.feedbackCorrect{background:var(--color-success-bg);border:1px solid var(--color-success-border)}.feedbackIncorrect{background:var(--color-error-bg);border:1px solid var(--color-error-border)}.feedbackText{font-size:var(--font-lg);font-weight:600;margin:0}.feedbackTextCorrect{color:var(--color-success)}.feedbackTextIncorrect{color:var(--color-error)}.answerComparison{margin-bottom:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--surface-light-3);border-radius:var(--radius-md);font-size:var(--font-md);flex-wrap:wrap;gap:var(--space-xs)}.userAnswerWrong del{color:var(--color-error);font-weight:600;text-decoration-thickness:2px;text-decoration-color:var(--color-error)}.comparisonArrow{color:var(--text-muted);font-weight:500}.correctAnswerRight{color:var(--color-success);font-weight:600}.aiFeedbackSection{gap:var(--space-sm)}.aiFeedbackLoading{font-size:var(--font-sm);color:var(--text-tertiary);font-style:italic;margin:0}.aiFeedbackBox{width:100%;max-width:100%;padding:var(--space-md) var(--space-md);background:var(--color-primary-bg-light);border:1px solid var(--color-primary-border);border-radius:var(--radius-md);text-align:left}.aiFeedbackLabel{font-size:var(--font-sm);font-weight:600;color:var(--color-primary);margin:0 0 var(--space-xs) 0}.aiFeedbackText{font-size:var(--font-sm);color:var(--text-primary);margin:0;line-height:1.5;word-wrap:break-word}.quizError{padding:var(--space-2xl) var(--space-xl);min-height:400px}.errorIcon{font-size:var(--font-5xl);margin-bottom:var(--space-lg);opacity:.9}.errorTitle{color:var(--color-error);font-size:var(--font-2xl);font-weight:600;margin:0 0 var(--space-md) 0}.errorMessage{color:var(--text-tertiary);font-size:var(--font-md);margin:0 0 var(--space-xl) 0;max-width:400px;line-height:1.5}.examLayoutContainer{width:100%;display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:0 1rem}.quizMainCard{height:650px;min-width:650px;max-width:900px;width:100%;position:relative;background:var(--surface-overlay);border:1px solid var(--surface-border);border-radius:12px;padding:var(--space-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}.questionCardWrapper{flex:3 0 0;padding-bottom:1.5rem;display:flex;flex-direction:column}.answerInputContainer{flex:2 0 0;padding-top:var(--space-lg);margin-top:auto;gap:var(--space-md);display:flex;flex-direction:column}.answerActionBar{flex:0 0 60px;display:flex;justify-content:flex-end;align-items:center}@media(max-width:768px){.examLayoutContainer{padding:0 .75rem;gap:1rem}.quizMainCard{min-width:unset;height:450px;padding:1rem}.questionCardWrapper{flex:3 0 0;padding-bottom:1rem}.questionCardHeader{margin-bottom:.5rem}.answerInputContainer{flex:2 0 0;padding-top:var(--space-md)}.answerActionBar{flex:0 0 50px}}.mystery-box-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-in}.mystery-box-modal{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;padding:3rem;max-width:500px;width:90%;position:relative;box-shadow:0 20px 60px #0000004d;animation:scaleIn .4s cubic-bezier(.68,-.55,.265,1.55)}.confetti-container{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;pointer-events:none;z-index:1}.confetti{position:absolute;width:10px;height:10px;top:-10px;animation:confettiFall 3s linear infinite}.mystery-box-content{position:relative;z-index:2;text-align:center;color:#fff}.gift-box{margin-bottom:1.5rem;transition:transform .5s ease}.gift-box.revealed{transform:scale(.8) translateY(-20px);opacity:.3}.gift-icon{font-size:5rem;animation:bounce 2s ease-in-out infinite}.reward-reveal{animation:fadeInUp .6s ease-out}.reward-icon{font-size:4rem;margin-bottom:1rem;animation:scaleIn .5s cubic-bezier(.68,-.55,.265,1.55) .3s both}.reward-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.reward-text{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:gold;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.reward-subtitle{font-size:1rem;opacity:.9;margin-bottom:2rem}.close-button{background:#fff;color:#667eea;border:none;border-radius:30px;padding:.875rem 2rem;font-size:1.125rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #0003}.close-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d;background:#f0f0f0}.close-button:active{transform:translateY(0)}@keyframes scaleIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes confettiFall{to{transform:translateY(100vh) rotate(360deg)}}@media(prefers-reduced-motion:reduce){.confetti,.gift-icon{animation:none}.mystery-box-modal{animation:fadeIn .3s ease-in}}@media(max-width:640px){.mystery-box-modal{padding:2rem}.gift-icon{font-size:4rem}.reward-icon{font-size:3rem}.reward-title{font-size:1.5rem}.reward-text{font-size:1.25rem}}.modal-overlay.badge-celebration{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}.modal-content.celebration{position:relative;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:16px;text-align:center;padding:2.5rem 2rem;color:#fff;max-width:400px;width:90%;box-shadow:0 20px 60px #00000080;animation:scaleIn .4s cubic-bezier(.68,-.55,.265,1.55)}.confetti-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;border-radius:16px}.badge-celebration-icon{font-size:5rem;margin-bottom:1rem;animation:bounce 2s infinite;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.badge-celebration-title{font-size:1.5rem;font-weight:700;margin:0 0 .5rem;color:#fff}.badge-celebration-description{font-size:1rem;opacity:.9;margin:0 0 1rem;line-height:1.5}.badge-celebration-multiple{font-size:.9rem;opacity:.8;margin:0 0 1.5rem;font-style:italic}.modal-button.celebrate{background:#fff;color:#667eea;font-weight:600;font-size:1rem;padding:.75rem 2rem;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;width:100%;max-width:250px;margin-top:.5rem}.modal-button.celebrate:active{transform:translateY(0)}@media(max-width:480px){.modal-content.celebration{padding:2rem 1.5rem}.badge-celebration-icon{font-size:4rem}.badge-celebration-title{font-size:1.25rem}.badge-celebration-name{font-size:1.5rem}.badge-celebration-description{font-size:.9rem}}.statsGrid{gap:var(--space-sm);margin-bottom:var(--space-sm)}.statCard{padding:var(--space-sm) var(--space-sm);background:var(--surface-light-5);border-radius:var(--radius-lg);border:1px solid var(--surface-light-10)}.statLabel{font-size:var(--font-xs);color:var(--text-tertiary);margin-bottom:2px;text-transform:uppercase;letter-spacing:.5px}.statValue{font-size:var(--font-xl);color:var(--text-primary);font-weight:700}.xpValue{color:var(--color-xp);text-shadow:0 0 10px rgba(251,191,36,.3)}@media(max-width:768px){.statsGrid{grid-template-columns:1fr}.statValue{font-size:var(--font-xl)}}.resultsTable{margin-top:var(--space-md);width:100%}.detailedResultsTitle{color:var(--text-secondary);margin-bottom:var(--space-md)}.resultsTableWrapper{max-height:350px;overflow-y:auto;scrollbar-gutter:stable;border-radius:var(--radius-md);box-sizing:border-box}.resultsTableWrapper::-webkit-scrollbar{width:var(--radius-md)}.resultsTableWrapper::-webkit-scrollbar-track{background:var(--surface-light-5);border-radius:var(--radius-sm)}.resultsTableWrapper::-webkit-scrollbar-thumb{background:var(--color-primary-border);border-radius:var(--radius-sm)}.resultsTableWrapper::-webkit-scrollbar-thumb:hover{background:var(--color-primary-border-hover)}.resultsTableElement{width:100%;border-collapse:collapse}.resultsTableHeaderRow{border-bottom:1px solid var(--surface-light-20)}.resultsTableBodyRow{border-bottom:1px solid var(--surface-light-10)}.tableHeaderCell{padding:var(--space-xs);text-align:center;color:var(--text-tertiary)}.wordCell,.answerCell,.nextReviewCell,.lapseCountCell{padding:var(--space-xs);text-align:center;color:var(--text-secondary)}.lapseCountCell.leechWarning{color:var(--color-warning);font-weight:600}.wordEnglish{font-size:var(--font-sm);color:var(--text-tertiary)}.userAnswerText{font-size:var(--font-sm)}.correctAnswerHint{font-size:var(--font-sm);color:var(--color-success);margin-top:var(--space-xs)}.resultsRow{border-left:var(--radius-sm) solid transparent;transition:background-color var(--transition-fast)}.resultsRow.incorrect{border-left-color:var(--color-error);background:var(--color-error-bg)}.resultsRow:nth-child(2n){background:var(--surface-light-5)}.resultsRow.incorrect:nth-child(2n){background:#ef44441f}@media(max-width:768px){.resultsTableWrapper{max-height:250px}.resultsTable table{font-size:var(--font-xs)}.resultsTable th,.resultsTable td{padding:var(--space-xs) var(--space-xs)!important}.resultsTable h3{font-size:var(--font-md)!important}}.newBadgesSection{width:100%;margin:var(--space-md) 0;padding:var(--space-lg);background:linear-gradient(135deg,var(--color-primary-bg) 0%,var(--color-primary-bg-light) 100%);border:1px solid var(--color-primary-border);border-radius:var(--radius-lg)}.badgesTitle{font-size:var(--font-xl);font-weight:700;color:var(--text-primary);margin:0 0 var(--space-md) 0;text-align:center}.badgesGrid{display:grid;grid-template-columns:1fr;gap:var(--space-sm)}.badgeCard{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--surface-light-5);border:1px solid var(--surface-light-10);border-radius:var(--radius-md);transition:all var(--transition-fast)}.badgeCard:hover{background:var(--surface-light-8);border-color:var(--color-primary-border)}.badgeIcon{font-size:var(--font-5xl);flex-shrink:0}.badgeInfo{text-align:left;flex:1}.badgeInfo strong{display:block;font-size:var(--font-md);color:var(--text-primary);margin-bottom:var(--space-xs)}.badgeInfo p{margin:0;font-size:var(--font-sm);color:var(--text-tertiary)}.next-quiz-countdown{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;margin:1.5rem 0;color:#fff;transition:all .3s ease}.next-quiz-countdown.expired{background:linear-gradient(135deg,#11998e,#38ef7d);animation:pulse 1.5s ease-in-out infinite}.countdown-icon{font-size:2.5rem;animation:swing 2s ease-in-out infinite}.countdown-inline{font-size:var(--font-sm);font-weight:600;color:var(--text-secondary)}.countdown-content{display:flex;flex-direction:column;gap:.25rem}.countdown-label{font-size:.875rem;font-weight:500;opacity:.9;text-transform:uppercase;letter-spacing:.05em}.countdown-time{font-size:1.875rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}50%{transform:scale(1.02);box-shadow:0 8px 12px -2px #00000026,0 4px 8px -4px #00000026}}@keyframes swing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@media(max-width:640px){.next-quiz-countdown{flex-direction:column;gap:.75rem;padding:1.25rem}.countdown-icon{font-size:2rem}.countdown-time{font-size:1.5rem}}.daily-complete-compact{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);height:40px;padding:0 var(--space-md);margin-bottom:var(--space-sm);background:linear-gradient(135deg,#667eea10,#764ba210);border-bottom:1px solid #667eea30;border-radius:var(--radius-md)}.banner-title{font-size:var(--font-lg);font-weight:600;color:var(--text-primary)}.quizCompleteContainer{padding:var(--space-lg);min-width:700px;margin:0 auto;max-height:calc(100vh - 190px);overflow-y:auto;gap:var(--space-lg)}.completeTitle{font-size:var(--font-3xl);margin-bottom:0;color:var(--text-primary);font-weight:600;position:sticky;top:0;background:var(--background);z-index:10;padding:var(--space-sm) 0;margin-top:calc(var(--space-sm) * -1);box-shadow:0 2px 8px #0000000d}.freezeAlert{margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-info-bg);border:1px solid var(--color-info-border);border-radius:var(--radius-md);color:var(--color-info);font-size:var(--font-sm);text-align:center;font-weight:600}@media(max-width:768px){.quizCompleteContainer{padding:var(--space-md);max-height:calc(100vh - 130px);max-width:100%}.completeTitle{font-size:var(--font-2xl);margin-bottom:0}}.hintPopup{background:var(--surface-dark-alt-2);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:var(--space-lg);max-width:500px;width:90%;box-shadow:var(--shadow-lg)}.hintPopupHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--surface-border)}.hintPopupHeader span{font-size:var(--font-lg);font-weight:600;color:var(--color-primary-light)}.hintPopupContent{gap:var(--space-sm)}.hintText{font-size:var(--font-md);color:var(--text-primary);margin:0;line-height:1.5}.hintText strong{color:var(--color-success);font-weight:600}.dailyReviewContainer{width:100%;min-height:calc(100vh - 190px);padding:2rem 1rem;overflow-x:hidden}.quizContentWrapper{max-width:65%;gap:1.5rem}@media(max-width:768px){.dailyReviewContainer{padding:1rem .75rem}.quizContentWrapper{max-width:95%}}.auth-form-container{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:2rem}.auth-form{background:#1a1a1a;border:2px solid #888888;border-radius:8px;padding:2rem;width:100%;max-width:420px;box-shadow:0 4px 12px #0000004d}.auth-form-title{color:#fff;font-size:2rem;font-weight:600;margin:0 0 1.5rem;text-align:center}.auth-form-field{margin-bottom:1.25rem}.auth-form-label{display:block;color:#b3c7ff;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.auth-form-input{width:100%;padding:.75rem;font-size:1rem;color:#fff;background:#232a3a;border:2px solid #888888;border-radius:6px;transition:border-color .2s ease;box-sizing:border-box}.auth-form-input:focus{outline:none;border-color:#646cff;box-shadow:0 0 0 3px #646cff1a}.auth-form-input:disabled{opacity:.6;cursor:not-allowed}.auth-form-input::placeholder{color:#888}.auth-form-hint{color:#888;font-size:.8rem;margin-top:.25rem}.auth-form-error{background:#f443361a;border:1px solid #f44336;border-radius:6px;color:#ff6b6b;padding:.75rem;margin-bottom:1rem;font-size:.9rem}.auth-form-button{width:100%;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.auth-form-button.primary{background-color:#646cff;color:#fff}.auth-form-button.primary:hover:not(:disabled){background-color:#535bf2;box-shadow:0 4px 12px #646cff4d}.auth-form-button:disabled{opacity:.6;cursor:not-allowed}.auth-form-footer{text-align:center;margin-top:1.5rem;color:#888;font-size:.9rem}.auth-form-link{background:none;border:none;color:#646cff;font-weight:600;cursor:pointer;padding:0;text-decoration:none;transition:color .2s ease}.auth-form-link:hover:not(:disabled){color:#535bf2;text-decoration:underline}.auth-form-link:disabled{opacity:.6;cursor:not-allowed}@media(max-width:480px){.auth-form-container{padding:1rem}.auth-form{padding:1.5rem}.auth-form-title{font-size:1.5rem}}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-navbar{display:flex;align-items:center;gap:2rem;padding:1rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #0000001a;position:sticky;top:0;z-index:100}.navbar-brand{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:600;cursor:default}.navbar-logo{font-size:1.5rem}.navbar-title{color:#fff}.navbar-links{display:flex;gap:.5rem;margin-left:2rem}.navbar-link{color:#ffffffe6;text-decoration:none;padding:.5rem 1rem;border-radius:6px;transition:all .2s;font-weight:500}.navbar-link:hover{background:#ffffff26;color:#fff}.navbar-link.active{background:#ffffff40;color:#fff}.navbar-user{display:flex;align-items:center;gap:1rem;margin-left:auto}.user-name{color:#fffffff2;font-size:.875rem;font-weight:500}.btn-logout,.btn-login{padding:.5rem 1rem;border-radius:6px;border:1px solid rgba(255,255,255,.3);background:#ffffff1a;color:#fff;font-weight:500;cursor:pointer;transition:all .2s}.btn-logout:hover,.btn-login:hover{background:#fff3;border-color:#ffffff80}.app-content{flex:1;display:flex;flex-direction:column}@media(max-width:768px){.app-navbar{flex-wrap:wrap;padding:1rem;gap:1rem}.navbar-links{order:3;flex-basis:100%;margin-left:0;justify-content:space-around;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.2)}.navbar-link{padding:.4rem .8rem;font-size:.9rem}.navbar-user{margin-left:auto}.user-name{display:none}}@media(max-width:480px){.navbar-brand{font-size:1rem}.navbar-logo{font-size:1.25rem}.navbar-links{gap:.25rem}.navbar-link{padding:.35rem .6rem;font-size:.85rem}}.streak-counter{background:#232a3a;border:1px solid #38405a;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000004d}.streak-main{display:flex;align-items:center;gap:16px;margin-bottom:16px}.streak-icon{font-size:48px;line-height:1;min-width:48px;text-align:center}.streak-content{flex:1}.streak-message{font-size:20px;font-weight:600;color:#fffffff2;margin-bottom:4px}.streak-subtitle{font-size:14px;color:#ffffffb3}.streak-active .streak-icon{filter:brightness(1.2) contrast(1.1);animation:flicker 2s ease-in-out infinite}.streak-active .streak-message{color:#10b981}.streak-at-risk .streak-icon{filter:hue-rotate(-20deg) saturate(1.5)}.streak-at-risk .streak-message{color:#ef4444}.streak-broken .streak-icon{filter:grayscale(100%) brightness(.6)}.streak-broken .streak-message{color:#fff9}@keyframes flicker{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.streak-freeze{display:flex;align-items:center;gap:8px;padding:12px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;position:relative}.streak-freeze:hover .freeze-tooltip{opacity:1;visibility:visible}.freeze-icon{font-size:20px;line-height:1}.freeze-count{font-size:14px;font-weight:500;color:#ffffffe6}.freeze-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1f2937;border:1px solid #374151;border-radius:8px;padding:8px 12px;font-size:13px;color:#ffffffe6;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;pointer-events:none;z-index:10;box-shadow:0 4px 12px #0006}.freeze-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#374151}@media(max-width:640px){.streak-counter{padding:16px}.streak-main{gap:12px}.streak-icon{font-size:40px;min-width:40px}.streak-message{font-size:18px}.streak-subtitle{font-size:13px}.freeze-tooltip{white-space:normal;max-width:200px}}.badge-display{background:#232a3a;border:1px solid #38405a;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000004d}.badge-title{font-size:20px;font-weight:600;color:#fffffff2;margin:0 0 16px}.badge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.badge-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:#ffffff0d;border:1px solid #38405a;border-radius:12px;cursor:pointer;transition:all .2s ease;min-height:120px}.badge-item:hover{background:#ffffff14;border-color:#667eea;transform:translateY(-2px)}.badge-item:focus{outline:2px solid #667eea;outline-offset:2px}.badge-icon{font-size:48px;line-height:1}.badge-name{font-size:14px;font-weight:500;color:#ffffffe6;text-align:center}.badge-progress{font-size:12px;color:#fff9;font-weight:500}.badge-earned{border-color:#10b981}.badge-earned:hover{border-color:#34d399;box-shadow:0 0 16px #10b98133}.badge-locked .badge-icon{filter:grayscale(100%) brightness(.5);opacity:.6}.badge-locked .badge-name{color:#ffffff80}.badge-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.badge-modal{background:#1f2937;border:1px solid #374151;border-radius:16px;padding:32px;max-width:500px;width:100%;position:relative;box-shadow:0 20px 60px #00000080;animation:modal-appear .2s ease-out}@keyframes modal-appear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-close{position:absolute;top:16px;right:16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fffc;font-size:20px;transition:all .2s}.modal-close:hover{background:#ffffff26;color:#fff}.modal-icon-container{display:flex;justify-content:center;margin-bottom:16px}.modal-icon{font-size:80px;line-height:1}.modal-title{font-size:24px;font-weight:600;color:#fffffff2;text-align:center;margin:0 0 12px}.modal-description{font-size:15px;line-height:1.6;color:#fffc;text-align:center;margin:0 0 24px}.modal-earned{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:12px}.earned-label{font-size:13px;color:#ffffffb3;text-transform:uppercase;letter-spacing:.5px}.earned-date{font-size:16px;font-weight:600;color:#10b981}.modal-progress{display:flex;flex-direction:column;gap:12px}.progress-info{display:flex;justify-content:space-between;align-items:center}.progress-label{font-size:13px;color:#ffffffb3;text-transform:uppercase;letter-spacing:.5px}.progress-numbers{font-size:14px;font-weight:600;color:#ffffffe6}.progress-bar-container{height:12px;background:#ffffff1a;border-radius:6px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:6px;transition:width .3s ease-in-out}.progress-percent{font-size:14px;color:#667eea;font-weight:600;text-align:center}@media(max-width:640px){.badge-grid{grid-template-columns:repeat(2,1fr);gap:12px}.badge-display{padding:16px}.badge-title{font-size:18px}.badge-item{padding:12px;min-height:100px}.badge-icon{font-size:40px}.badge-name{font-size:13px}.badge-modal{padding:24px}.modal-icon{font-size:64px}.modal-title{font-size:20px}.modal-description{font-size:14px}}.xp-progress-bar{background:#232a3a;border:1px solid #38405a;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000004d}.xp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.xp-level{font-size:18px;font-weight:600;color:#fffffff2}.xp-text{font-size:14px;color:#ffffffb3}.xp-bar-container{height:24px;background:#ffffff1a;border-radius:12px;overflow:hidden;position:relative}.xp-bar-fill{height:100%;background:linear-gradient(90deg,#10b981,#34d399);border-radius:12px;transition:width .3s ease-in-out;box-shadow:0 0 12px #10b98166}@media(max-width:640px){.xp-progress-bar{padding:12px}.xp-level{font-size:16px}.xp-text{font-size:13px}.xp-bar-container{height:20px}}.leech-widget{background:linear-gradient(135deg,#ff6b6b,#ee5a6f);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;color:#fff;box-shadow:0 4px 15px #ff6b6b33}.leech-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.leech-title{font-size:1.25rem;font-weight:700;margin:0;display:flex;align-items:center;gap:.5rem}.leech-badge{background:#ffffff4d;padding:.125rem .5rem;border-radius:12px;font-size:.875rem;font-weight:600}.dismiss-button{background:transparent;border:none;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;opacity:.7;transition:opacity .2s;padding:.25rem .5rem}.dismiss-button:hover{opacity:1}.leech-description{font-size:.875rem;opacity:.9;margin:0 0 1rem}.leech-list{list-style:none;padding:0;margin:0 0 1rem}.leech-item{background:#ffffff26;border-radius:8px;padding:.75rem;margin-bottom:.5rem;transition:background .2s}.leech-item:hover{background:#ffffff40}.leech-item:last-child{margin-bottom:0}.leech-word{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.leech-chinese{font-size:1.125rem;font-weight:600}.leech-pinyin{font-size:.875rem;opacity:.8}.leech-meta{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem}.leech-english{opacity:.9}.leech-count{background:#fff3;padding:.125rem .5rem;border-radius:8px;font-weight:600;font-size:.75rem}.review-button{width:100%;background:#fff;color:#ff6b6b;border:none;border-radius:8px;padding:.75rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0000001a}.review-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;background:#f8f8f8}.review-button:active{transform:translateY(0)}@media(max-width:640px){.leech-widget{padding:1.25rem}.leech-title{font-size:1.125rem}.leech-chinese{font-size:1rem}}.dashboard{max-width:1400px;margin:0 auto;padding:1.5rem;min-height:calc(100vh - 120px);overflow-x:hidden}.dashboard-header{margin-bottom:.75rem}.dashboard-header h1{font-size:1.75rem;margin:0 0 .25rem;color:#fffffff2}.dashboard-header p{color:#fff9;margin:0;font-size:.875rem}.dashboard-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;height:auto;max-height:1080px}.dashboard-left,.dashboard-right{display:flex;flex-direction:column;gap:.875rem;overflow-y:auto;overflow-x:hidden}.dashboard-right h3{font-size:1.125rem;margin:0 0 .5rem;color:#fffffff2}.stats-grid{display:grid;grid-template-columns:1fr;gap:.625rem}.stat-card{display:flex;align-items:center;gap:1rem;padding:.875rem;background:#232a3a;border:1px solid #38405a;border-radius:8px;box-shadow:0 2px 8px #0000004d;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000080;border-color:#667eea}.stat-icon{font-size:2rem}.stat-content{display:flex;flex-direction:column}.stat-label{font-size:.875rem;color:#fff9;margin-bottom:.25rem}.stat-value{font-size:1.25rem;font-weight:600;color:#fffffff2}.actions-grid{display:grid;grid-template-columns:1fr;gap:.625rem}.badges-section{flex:1}.badges-section h3{font-size:1.125rem;margin:0 0 .5rem;color:#fffffff2}.action-card{background:#232a3a;border:1px solid #38405a;border-radius:8px;box-shadow:0 2px 8px #0000004d;transition:all .2s;overflow:hidden}.action-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000080;border-color:#667eea}.action-card-link{display:flex;align-items:center;gap:.75rem;padding:1rem;text-decoration:none;color:inherit;border-left:4px solid}.action-icon{font-size:2rem;flex-shrink:0}.action-content{flex:1}.action-title{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:#fffffff2}.action-description{margin:0;font-size:.875rem;color:#fff9}.action-arrow{font-size:1.5rem;font-weight:700;transition:transform .2s;flex-shrink:0}.action-card:hover .action-arrow{transform:translate(4px)}@media(max-width:1024px){.dashboard-layout{grid-template-columns:1fr;height:auto;max-height:none}.dashboard{height:auto;overflow:visible}.dashboard-left,.dashboard-right{overflow-y:visible}}@media(max-width:768px){.dashboard{padding:1rem;min-height:auto}.dashboard-layout{gap:1rem}.dashboard-left,.dashboard-right{gap:.75rem}.dashboard-header h1{font-size:1.5rem}.action-card-link{padding:.875rem}.action-icon{font-size:1.75rem}.action-title{font-size:1rem}.stat-icon{font-size:1.75rem}}.freeze-actions{margin:1rem 0}.freeze-button{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;padding:.875rem 1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #667eea4d}.freeze-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.freeze-button:disabled{opacity:.6;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .3s}.modal-content{background:#232a3a;border:1px solid #38405a;border-radius:12px;padding:2rem;max-width:400px;width:90%;box-shadow:0 8px 32px #00000080;animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1);position:relative}.modal-content h3{margin:0 0 1rem;font-size:1.25rem;color:#fffffff2}.modal-content p{margin:0 0 1.5rem;color:#ffffffb3;line-height:1.5}.modal-actions{display:flex;gap:.75rem}.modal-button{flex:1;padding:.75rem 1rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.modal-button.confirm{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.modal-button.confirm:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.modal-button.confirm:disabled{opacity:.6;cursor:not-allowed}.modal-button.cancel{background:#38405a;color:#fffc}.modal-button.cancel:hover{background:#4a5270}.modal-overlay.badge-celebration{background:#000000d9}.modal-content.celebration{background:linear-gradient(135deg,#667eea,#764ba2);border:none;text-align:center;padding:2.5rem 2rem;color:#fff}.confetti-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.confetti-piece{position:absolute;width:10px;height:10px;top:-10px;animation:confettiFall 3s linear infinite}@keyframes confettiFall{to{transform:translateY(calc(100vh + 10px)) rotate(360deg)}}.badge-celebration-icon{font-size:5rem;margin-bottom:1rem;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.badge-celebration-title{font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.badge-celebration-name{font-size:1.75rem;font-weight:700;margin:0 0 .5rem;color:gold;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.badge-celebration-description{font-size:1rem;opacity:.9;margin:0 0 2rem}.modal-button.celebrate{background:#fff;color:#667eea;width:100%}.modal-button.celebrate:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ffffff4d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}*,*:before,*:after{box-sizing:border-box}:root{--color-primary: #667eea;--color-primary-dark: #764ba2;--color-primary-light: #a5b4fc;--color-primary-bg: rgba(102, 126, 234, .2);--color-primary-bg-light: rgba(102, 126, 234, .1);--color-primary-bg-medium: rgba(102, 126, 234, .15);--color-primary-border: rgba(102, 126, 234, .3);--color-primary-border-strong: rgba(102, 126, 234, .4);--color-primary-border-hover: rgba(102, 126, 234, .6);--color-success: #10b981;--color-success-bg: rgba(16, 185, 129, .15);--color-success-border: rgba(16, 185, 129, .3);--color-error: #ef4444;--color-error-bg: rgba(239, 68, 68, .15);--color-error-border: rgba(239, 68, 68, .3);--color-warning: #fbbf24;--color-warning-bg: rgba(251, 191, 36, .15);--color-warning-border: rgba(251, 191, 36, .3);--color-info: #66dcff;--color-info-bg: rgba(102, 220, 255, .15);--color-info-border: rgba(102, 220, 255, .3);--color-info-blue: #3b82f6;--color-info-blue-bg: rgba(59, 130, 246, .15);--color-info-blue-border: rgba(59, 130, 246, .3);--color-info-purple: #a855f7;--color-info-purple-bg: rgba(168, 85, 247, .15);--color-info-purple-border: rgba(168, 85, 247, .3);--color-neutral-grey: #9ca3af;--color-neutral-grey-bg: rgba(107, 114, 128, .15);--color-neutral-grey-border: rgba(107, 114, 128, .3);--color-xp: #fbbf24;--surface-dark: #232a3a;--surface-dark-alt: #1a1d2e;--surface-dark-alt-2: #1e293b;--surface-overlay: rgba(35, 42, 58, .3);--surface-hover: rgba(55, 65, 81, .5);--surface-border: #38405a;--surface-light-3: rgba(255, 255, 255, .03);--surface-light-5: rgba(255, 255, 255, .05);--surface-light-8: rgba(255, 255, 255, .08);--surface-light-10: rgba(255, 255, 255, .1);--surface-light-20: rgba(255, 255, 255, .2);--overlay-dark: rgba(0, 0, 0, .7);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .85);--text-tertiary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .5);--text-subtle: rgba(255, 255, 255, .2);--text-ghost: rgba(255, 255, 255, .05);--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 2.5rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 20px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(102, 126, 234, .3);--shadow-lg: 0 6px 16px rgba(102, 126, 234, .4);--transition-fast: .2s ease;--transition-normal: .3s ease;--font-xs: .75rem;--font-sm: .875rem;--font-md: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--font-3xl: 1.75rem;--font-4xl: 2rem;--font-5xl: 2.5rem;--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-success: linear-gradient(90deg, #10b981 0%, #34d399 100%)}.hover-lift{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.hover-lift:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.hover-lift:active:not(:disabled){transform:translateY(0)}.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.card-dark{background:var(--surface-dark);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.card-dark-hover{background:var(--surface-dark);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.card-dark-hover:hover{background:var(--surface-hover);border-color:var(--color-primary-border);box-shadow:var(--shadow-md)}.gradient-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%)}.input-base{background:var(--surface-light-5);border:1px solid var(--surface-border);color:var(--text-primary);font-size:var(--font-lg);padding:.75rem;border-radius:var(--radius-md);width:100%;box-sizing:border-box;font-family:inherit;transition:all var(--transition-fast)}.input-base:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}.input-base::placeholder{color:var(--text-muted)}.alert-success{background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:var(--radius-md);padding:var(--space-md)}.alert-error{background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-md);padding:var(--space-md)}.alert-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);padding:var(--space-md)}.alert-info{background:var(--color-info-bg);border:1px solid var(--color-info-border);border-radius:var(--radius-md);padding:var(--space-md)}.btn-primary{background:var(--gradient-primary);color:#fff;border:none;padding:.75rem 2rem;font-size:var(--font-md);font-weight:600;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary:active{transform:translateY(0)}.btn-primary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-close{position:absolute;background:transparent;border:none;color:var(--text-tertiary);font-size:var(--font-xl);cursor:pointer;padding:.25rem;transition:all var(--transition-fast);line-height:1}.btn-close:hover{background:var(--surface-light-10);border-radius:var(--radius-sm);color:var(--text-primary)}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay-dark);display:flex;align-items:center;justify-content:center;z-index:1000}.progress-container{gap:var(--space-xs);margin-bottom:var(--space-sm)}.progress-text{color:var(--text-primary);font-size:var(--font-sm);font-weight:500}.progress-bar{height:10px;background-color:var(--surface-light-10);border-radius:5px;overflow:hidden}.progress-fill{height:100%;background-color:var(--color-success);transition:width .3s ease-in-out;border-radius:6px}.progress-fill[style*="100%"]{background:var(--gradient-success);box-shadow:0 0 10px #10b98180}.hover-lift-sm{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.hover-lift-sm:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-sm)}.hover-lift-md{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.hover-lift-md:hover:not(:disabled){transform:translateY(-4px);box-shadow:var(--shadow-md)}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover:not(:disabled){transform:scale(1.05)}.card-interactive{background:var(--surface-dark);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast)}.card-interactive:hover{background:var(--surface-hover);border-color:var(--color-primary-border);box-shadow:var(--shadow-md);transform:translateY(-2px)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-opacity{0%,to{opacity:.6}50%{opacity:1}}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.animate-fade-in{animation:fade-in .2s ease-out}.animate-slide-up{animation:slide-up .3s ease-out}.animate-pulse{animation:pulse-opacity 1.5s ease-in-out infinite}.skeleton-loading{background:linear-gradient(90deg,var(--surface-light-5) 0%,var(--surface-light-10) 50%,var(--surface-light-5) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite}.flex-center{display:flex;align-items:center;justify-content:center}.flex-col-center{display:flex;flex-direction:column;align-items:center;justify-content:center}.flex-col{display:flex;flex-direction:column}.grid-2-col{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.grid-3-col{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.w-full{width:100%}.text-center{text-align:center}.transition-all{transition:all var(--transition-fast)}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}html{overflow-x:hidden}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
