*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#1a1a2e,#16213e);min-height:100vh;color:#e0e0e0}.app{max-width:1600px;margin:0 auto;padding:20px}@media (min-width: 1400px){.app{max-width:95%}}@media (min-width: 1800px){.app{max-width:90%}}.header{text-align:center;padding:40px 0}.header h1{font-size:2.5rem;background:linear-gradient(90deg,#00d4ff,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:10px}.header p{color:#888;font-size:1.1rem}.search-section{background:#ffffff0d;border-radius:16px;padding:30px;margin-bottom:30px}.search-box{display:flex;gap:12px}.search-box input{flex:1;padding:14px 20px;border:2px solid rgba(255,255,255,.1);border-radius:12px;background:#0000004d;color:#fff;font-size:1rem;outline:none;transition:border-color .3s}.search-box input:focus{border-color:#00d4ff}.search-box button{padding:14px 28px;background:linear-gradient(90deg,#00d4ff,#7c3aed);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,opacity .2s}.search-box button:hover{transform:translateY(-2px);opacity:.9}.search-box button:disabled{opacity:.5;cursor:not-allowed;transform:none}.loading{text-align:center;padding:40px;color:#00d4ff}.loading-spinner{width:40px;height:40px;border:3px solid rgba(0,212,255,.2);border-top-color:#00d4ff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.code-section{background:#ffffff0d;border-radius:16px;padding:30px;margin-bottom:30px}.code-section h2{color:#00d4ff;margin-bottom:20px;font-size:1.4rem}.code-block{background:#0d1117;border-radius:12px;padding:20px;overflow-x:auto;font-family:Fira Code,monospace;font-size:.9rem;line-height:1.6;max-height:400px;overflow-y:auto}.code-block pre{margin:0;white-space:pre-wrap;word-break:break-word}.quiz-section{background:#ffffff0d;border-radius:16px;padding:30px}.quiz-section h2{color:#7c3aed;margin-bottom:20px;font-size:1.4rem}.chapter-tabs{display:flex;gap:10px;margin-bottom:24px;flex-wrap:wrap}.chapter-tab{padding:10px 20px;background:#ffffff1a;border:none;border-radius:8px;color:#888;cursor:pointer;transition:all .3s}.chapter-tab.active{background:linear-gradient(90deg,#7c3aed,#00d4ff);color:#fff}.question-card{background:#0000004d;border-radius:12px;padding:24px;margin-bottom:20px}.question-card h3{color:#fff;margin-bottom:16px;font-size:1.1rem;line-height:1.5;word-break:break-word}.options{display:flex;flex-direction:column;gap:12px}.option{padding:14px 20px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;color:#e0e0e0;cursor:pointer;transition:all .3s;text-align:left}.option:hover{border-color:#00d4ff;background:#00d4ff1a}.option.selected{border-color:#7c3aed;background:#7c3aed33}.option.correct{border-color:#10b981;background:#10b98133}.option.wrong{border-color:#ef4444;background:#ef444433}.explanation{margin-top:16px;padding:16px;background:#7c3aed1a;border-radius:8px;border-left:4px solid #7c3aed}.explanation h4{color:#7c3aed;margin-bottom:8px}.explanation p{color:#ccc;line-height:1.6}.progress-bar{height:6px;background:#ffffff1a;border-radius:3px;margin-bottom:20px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#00d4ff,#7c3aed);transition:width .3s}.score-display{text-align:center;padding:20px;background:#0000004d;border-radius:12px;margin-top:20px}.score-display h3{font-size:2rem;color:#00d4ff}.error-message{background:#ef44441a;border:1px solid #ef4444;border-radius:12px;padding:20px;color:#ef4444;text-align:center}.results-section{background:#ffffff0d;border-radius:16px;padding:30px;margin-bottom:30px}.results-section h2{color:#00d4ff;margin-bottom:20px;font-size:1.3rem}.repo-list{display:flex;flex-direction:column;gap:12px}.repo-card{background:#0000004d;border:2px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;cursor:pointer;transition:all .3s}.repo-card:hover{border-color:#00d4ff;background:#00d4ff1a;transform:translate(8px)}.repo-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.repo-index{background:linear-gradient(90deg,#00d4ff,#7c3aed);color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600}.repo-header h3{flex:1;color:#fff;font-size:1.1rem}.repo-stars{color:#fbbf24;font-size:.9rem}.repo-desc{color:#aaa;font-size:.9rem;line-height:1.5;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.repo-meta{display:flex;gap:16px;font-size:.8rem}.repo-lang{background:#7c3aed4d;color:#a78bfa;padding:4px 10px;border-radius:12px}.repo-updated{color:#666}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header h2{color:#00d4ff;font-size:1.4rem;display:flex;align-items:center;gap:12px}.repo-stars-small{font-size:.9rem;color:#fbbf24;font-weight:400}.repo-description{color:#888;margin-bottom:16px;line-height:1.6}.reset-btn{padding:10px 20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#ccc;cursor:pointer;transition:all .3s}.reset-btn:hover{background:#fff3;color:#fff}.code-file{margin-bottom:24px}.code-filename{color:#7c3aed;margin-bottom:8px;font-weight:600}.summary-box{background:#00d4ff1a;padding:16px;border-radius:12px;margin-bottom:24px;border-left:4px solid #00d4ff}.summary-box strong{color:#00d4ff}.summary-box p{margin-top:8px;line-height:1.6}.final-score{font-size:1.5rem;margin-top:12px;color:#00d4ff}.score-message{color:#888;margin:12px 0 20px}.score-display .reset-btn{background:linear-gradient(90deg,#00d4ff,#7c3aed);border:none;color:#fff;font-weight:600}.score-display .reset-btn:hover{opacity:.9}.code-layout{display:flex;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.1);height:calc(100vh - 350px);min-height:450px;max-height:800px}.file-sidebar{width:200px;background:#1e1e1e;border-right:1px solid rgba(255,255,255,.1);overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column}.file-sidebar::-webkit-scrollbar{width:6px}.file-sidebar::-webkit-scrollbar-track{background:transparent}.file-sidebar::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.file-item{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;transition:all .2s;border-left:3px solid transparent}.file-item:hover{background:#ffffff0d}.file-item.active{background:#00d4ff1a;border-left-color:#00d4ff}.file-icon{font-size:14px}.file-name{font-size:13px;color:#ccc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-item.active .file-name{color:#00d4ff}.code-editor-wrapper{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.editor-header{background:#252526;color:#888;font-size:12px;padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.editor-header{display:flex;justify-content:space-between;align-items:center}.explain-btn{padding:6px 14px;background:linear-gradient(90deg,#7c3aed,#00d4ff);border:none;border-radius:6px;color:#fff;font-size:12px;cursor:pointer;transition:all .2s}.explain-btn:hover{opacity:.9;transform:scale(1.02)}.explain-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.file-summary{background:#7c3aed26;border-left:3px solid #7c3aed;padding:12px 16px;font-size:14px;color:#e0e0e0;line-height:1.6}.file-explained{color:#10b981;font-size:12px;margin-left:auto}.code-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.code-explanation-panel{background:#1e1e1e;border-top:1px solid rgba(255,255,255,.1);padding:16px;max-height:250px;overflow-y:auto}.code-explanation-panel h4{color:#00d4ff;margin-bottom:12px;font-size:14px}.explanation-section{background:#ffffff08;border-radius:8px;padding:12px;margin-bottom:10px}.explanation-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.explanation-section .section-title{color:#7c3aed;font-weight:600;font-size:13px}.explanation-section .section-lines{color:#666;font-size:12px}.explanation-section p{color:#bbb;font-size:13px;line-height:1.6;margin:0}.file-overview{background:#0000004d;border-radius:12px;padding:20px;margin-bottom:24px}.file-overview h3{color:#00d4ff;font-size:1rem;margin-bottom:16px}.file-overview-list{display:flex;flex-direction:column;gap:10px}.file-overview-item{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;background:#ffffff08;border-radius:8px}.file-overview-name{color:#7c3aed;font-weight:600;font-size:13px;white-space:nowrap;min-width:180px}.file-overview-desc{color:#aaa;font-size:13px;line-height:1.5}.related-files{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:20px;padding:12px 16px;background:#7c3aed1a;border-radius:8px}.related-files-label{color:#888;font-size:13px}.related-file-tag{background:#7c3aed4d;color:#a78bfa;padding:4px 10px;border-radius:12px;font-size:12px}.truefalse-options{flex-direction:row!important;gap:16px}.truefalse-options .option{flex:1;text-align:center}.fillblank-input{display:flex;gap:12px}.fillblank-input input{flex:1;padding:14px 20px;border:2px solid rgba(255,255,255,.1);border-radius:10px;background:#0000004d;color:#fff;font-size:1rem;outline:none;transition:border-color .3s}.fillblank-input input:focus{border-color:#00d4ff}.fillblank-input input:disabled{opacity:.6}.submit-btn{padding:14px 28px;background:linear-gradient(90deg,#00d4ff,#7c3aed);border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s}.submit-btn:hover{opacity:.9}.code-question{display:flex;flex-direction:column;gap:16px}.code-snippet{background:#0d1117;border-radius:8px;padding:16px;font-family:Fira Code,Consolas,monospace;font-size:13px;color:#e0e0e0;overflow-x:auto;white-space:pre-wrap;word-break:break-all;border:1px solid rgba(255,255,255,.1);max-width:100%}.code-hint{color:#fbbf24;font-size:14px;margin-bottom:12px;padding:8px 12px;background:#fbbf241a;border-radius:6px}.code-input{width:100%;padding:14px;border:2px solid rgba(255,255,255,.1);border-radius:8px;background:#0d1117;color:#e0e0e0;font-family:Fira Code,Consolas,monospace;font-size:14px;resize:vertical;outline:none;transition:border-color .3s}.code-input:focus{border-color:#00d4ff}.code-input:disabled{opacity:.6}.ai-feedback{color:#00d4ff;font-style:italic;margin-bottom:8px}.explanation code{background:#0000004d;padding:4px 8px;border-radius:4px;font-family:Fira Code,Consolas,monospace;font-size:13px}.editor-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1e1e1e;color:#888}.editor-loading .loading-spinner{margin-bottom:16px}.editor-container{flex:1;min-height:0;position:relative}.editor-container>div{position:absolute;top:0;left:0;right:0;bottom:0}.editor-actions{display:flex;gap:8px}.chat-btn{padding:6px 14px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#ccc;font-size:12px;cursor:pointer;transition:all .2s}.chat-btn:hover{background:#ffffff26;color:#fff}.chat-btn.active{background:linear-gradient(90deg,#00d4ff,#7c3aed);border-color:transparent;color:#fff}.chat-sidebar{width:350px;background:#1a1a1a;border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;flex-shrink:0}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#252526;border-bottom:1px solid rgba(255,255,255,.1);font-size:14px;color:#ccc}.chat-close{background:none;border:none;color:#888;cursor:pointer;font-size:16px;padding:4px 8px;border-radius:4px;transition:all .2s}.chat-close:hover{background:#ffffff1a;color:#fff}.chat-panel{height:250px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;background:#1a1a1a}.chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px;min-height:0}.chat-welcome{color:#888;font-size:13px;text-align:center;padding:20px}.chat-message{display:flex;gap:10px;align-items:flex-start}.chat-message.user{flex-direction:row-reverse}.chat-avatar{font-size:18px;flex-shrink:0}.chat-content{background:#ffffff0d;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.6;max-width:80%;white-space:pre-wrap}.chat-message.user .chat-content{background:#00d4ff26}.chat-message.assistant .chat-content{background:#7c3aed26}.chat-content.typing{color:#888;font-style:italic}.chat-input-area{display:flex;gap:8px;padding:12px;border-top:1px solid rgba(255,255,255,.1)}.chat-input-area input{flex:1;padding:10px 14px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0000004d;color:#fff;font-size:13px;outline:none}.chat-input-area input:focus{border-color:#00d4ff}.chat-input-area button{padding:10px 20px;background:linear-gradient(90deg,#00d4ff,#7c3aed);border:none;border-radius:8px;color:#fff;font-size:13px;cursor:pointer;transition:opacity .2s}.chat-input-area button:hover{opacity:.9}.chat-input-area button:disabled{opacity:.5;cursor:not-allowed}.code-editor-small{border:2px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;margin-bottom:12px}.code-editor-small:focus-within{border-color:#00d4ff}@media (min-width: 1400px){.code-layout{height:calc(100vh - 300px);max-height:900px}.file-sidebar{width:280px}}@media (min-width: 1800px){.code-layout{height:calc(100vh - 280px);max-height:1000px}.file-sidebar{width:320px}}.sidebar-section{border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-section:last-child{border-bottom:none;flex:1;display:flex;flex-direction:column;min-height:0}.sidebar-title{padding:12px;font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px;background:#0003;position:sticky;top:0;z-index:1;cursor:pointer;display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none;transition:background .2s}.sidebar-title:hover{background:#0006}.collapse-icon{font-size:10px;color:#666}.file-tree{flex:1;overflow-y:auto;min-height:0}.file-tree::-webkit-scrollbar{width:6px}.file-tree::-webkit-scrollbar-track{background:transparent}.file-tree::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.file-item.core{background:#7c3aed0d}.file-item.core .file-icon{color:#fbbf24}.file-item.more{color:#666;font-size:12px;font-style:italic;cursor:default;padding:8px 12px}.file-item.more:hover{background:transparent}.file-item.folder{color:#ccc}.file-item.folder:hover{background:#ffffff0d}.file-item.folder .file-name{font-weight:500}.loading-indicator{color:#00d4ff;font-size:12px;margin-left:auto;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.tour-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:1000}.tour-spotlight{position:fixed;border-radius:8px;box-shadow:0 0 0 9999px #000c,inset 0 0 30px #ffffff1a;border:2px solid #00d4ff;background:#ffffff14;z-index:1001;pointer-events:none;transition:all .3s ease}.tour-tooltip{position:fixed;background:#1e1e2e;border-radius:12px;padding:20px;width:320px;box-shadow:0 10px 40px #00000080;border:1px solid rgba(124,58,237,.3);z-index:1002;animation:tourFadeIn .3s ease}.tour-tooltip:before{content:"";position:absolute;width:12px;height:12px;background:#1e1e2e;border:1px solid rgba(124,58,237,.3);transform:rotate(45deg)}.tour-tooltip.position-right:before{left:-7px;top:30px;border-right:none;border-top:none}.tour-tooltip.position-left:before{right:-7px;top:30px;border-left:none;border-bottom:none}.tour-tooltip.position-bottom:before{top:-7px;left:50%;margin-left:-6px;border-bottom:none;border-right:none}.tour-tooltip.position-top:before{bottom:-7px;left:50%;margin-left:-6px;border-top:none;border-left:none}@keyframes tourFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tour-content h3{color:#00d4ff;font-size:1.3rem;margin-bottom:12px}.tour-content p{color:#ccc;font-size:1rem;line-height:1.7}.tour-actions{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.tour-progress{color:#666;font-size:13px}.tour-buttons{display:flex;gap:12px}.tour-skip{padding:10px 20px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#888;cursor:pointer;font-size:14px;transition:all .2s}.tour-skip:hover{background:#ffffff0d;color:#ccc}.tour-next{padding:10px 24px;background:linear-gradient(90deg,#00d4ff,#7c3aed);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.tour-next:hover{opacity:.9;transform:translateY(-1px)}@media (max-width: 1200px){.chat-sidebar{width:300px}}@media (max-width: 900px){.chat-sidebar{position:fixed;right:0;top:0;bottom:0;width:100%;max-width:400px;z-index:100;box-shadow:-10px 0 30px #00000080}}.header-content{display:flex;justify-content:space-between;align-items:center}.header-title{text-align:center;flex:1}.header-actions{position:absolute;right:20px;top:50%;transform:translateY(-50%)}.header{position:relative}.login-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(90deg,#00d4ff,#7c3aed);border:none;border-radius:8px;color:#fff;font-size:14px;cursor:pointer;transition:all .2s}.login-btn:hover{opacity:.9;transform:translateY(-1px)}.user-menu{position:relative}.user-avatar-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:20px;color:#fff;cursor:pointer;transition:all .2s}.user-avatar-btn:hover{background:#ffffff26}.user-avatar-btn img{width:28px;height:28px;border-radius:50%}.user-dropdown{position:absolute;top:100%;right:0;margin-top:8px;background:#1e1e2e;border:1px solid rgba(255,255,255,.1);border-radius:12px;min-width:200px;box-shadow:0 10px 40px #00000080;z-index:999;overflow:hidden}.user-dropdown .user-info{padding:16px;border-bottom:1px solid rgba(255,255,255,.1)}.user-dropdown .user-name{font-weight:600;color:#fff}.user-dropdown .user-email{font-size:12px;color:#888;margin-top:4px}.user-menu-items{padding:8px 0}.user-menu-items button{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:none;border:none;color:#ccc;font-size:14px;cursor:pointer;transition:all .2s}.user-menu-items button:hover{background:#ffffff0d;color:#fff}.logout-btn{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:none;border:none;border-top:1px solid rgba(255,255,255,.1);color:#ef4444;font-size:14px;cursor:pointer;transition:all .2s}.logout-btn:hover{background:#ef44441a}.auth-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.auth-modal{background:#1e1e2e;border-radius:16px;padding:32px;width:100%;max-width:400px;position:relative;box-shadow:0 20px 60px #00000080}.auth-close{position:absolute;top:16px;right:16px;background:none;border:none;color:#888;cursor:pointer}.auth-close:hover{color:#fff}.auth-modal h2{text-align:center;color:#fff;margin-bottom:24px}.auth-field{display:flex;align-items:center;gap:12px;background:#0000004d;border:2px solid rgba(255,255,255,.1);border-radius:10px;padding:0 16px;margin-bottom:16px;transition:border-color .3s}.auth-field:focus-within{border-color:#00d4ff}.auth-field svg{color:#888;flex-shrink:0}.auth-field input{flex:1;padding:14px 0;background:none;border:none;color:#fff;font-size:15px;outline:none}.auth-field.with-btn{padding-right:8px}.send-code-btn{padding:8px 16px;background:#00d4ff33;border:none;border-radius:6px;color:#00d4ff;font-size:13px;cursor:pointer;white-space:nowrap;transition:all .2s}.send-code-btn:hover:not(:disabled){background:#00d4ff4d}.send-code-btn:disabled{opacity:.5;cursor:not-allowed}.auth-error{color:#ef4444;font-size:14px;text-align:center;margin-bottom:16px}.auth-submit{width:100%;padding:14px;background:linear-gradient(90deg,#00d4ff,#7c3aed);border:none;border-radius:10px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.auth-submit:hover{opacity:.9}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;margin-top:20px}.auth-switch button{background:none;border:none;color:#00d4ff;cursor:pointer;font-size:14px}.auth-switch button:hover{text-decoration:underline}.auth-switch span{color:#666;margin:0 8px}.spin{animation:spin 1s linear infinite}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#1e1e2e;border-radius:16px;padding:32px;width:100%;max-width:500px;max-height:80vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #00000080}.modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:#888;cursor:pointer}.modal-close:hover{color:#fff}.modal-content h2{display:flex;align-items:center;gap:12px;color:#00d4ff;margin-bottom:24px}.loading-small{text-align:center;color:#888;padding:40px}.empty-state{text-align:center;color:#666;padding:40px}.leaderboard-modal{max-width:450px}.leaderboard-tabs{display:flex;gap:8px;margin-bottom:20px}.leaderboard-tabs button{flex:1;padding:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#888;cursor:pointer;transition:all .2s}.leaderboard-tabs button.active{background:linear-gradient(90deg,#00d4ff,#7c3aed);border-color:transparent;color:#fff}.leaderboard-list{display:flex;flex-direction:column;gap:8px}.leaderboard-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ffffff08;border-radius:10px}.leaderboard-item.rank-1{background:#ffd7001a}.leaderboard-item.rank-2{background:#c0c0c01a}.leaderboard-item.rank-3{background:#cd7f321a}.leaderboard-item .rank{width:30px;text-align:center;font-weight:600;color:#888;display:flex;align-items:center;justify-content:center}.leaderboard-item .rank .gold{color:gold}.leaderboard-item .rank .silver{color:silver}.leaderboard-item .rank .bronze{color:#cd7f32}.leaderboard-item .user-info{flex:1;display:flex;align-items:center;gap:10px}.leaderboard-item .avatar{width:32px;height:32px;border-radius:50%}.leaderboard-item .avatar-placeholder{color:#666}.leaderboard-item .name{color:#fff}.leaderboard-item .score{color:#00d4ff;font-weight:600}.history-list{display:flex;flex-direction:column;gap:12px}.history-item{background:#ffffff08;border-radius:10px;padding:16px}.history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.history-header .repo-name{color:#fff;font-weight:600}.history-header .completed-icon{color:#10b981}.history-stats{display:flex;justify-content:space-between;font-size:13px;color:#888;margin-bottom:8px}.history-time{display:flex;align-items:center;gap:4px}.history-progress{height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.history-progress-fill{height:100%;background:linear-gradient(90deg,#00d4ff,#7c3aed)}.history-item .continue-btn{margin-top:12px;width:100%;padding:8px 16px;background:linear-gradient(90deg,#00d4ff,#7c3aed);border:none;border-radius:6px;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:opacity .2s}.history-item .continue-btn:hover{opacity:.9}.login-hint{text-align:center;color:#888;margin-top:16px;font-size:14px}.login-hint button{background:none;border:none;color:#00d4ff;cursor:pointer;font-size:14px;text-decoration:underline}.login-hint button:hover{color:#7c3aed}.auth-success{color:#10b981;font-size:14px;text-align:center;margin-bottom:12px;padding:10px;background:#10b9811a;border-radius:8px}.user-avatar-btn:disabled,.login-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.question-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.question-header h3{flex:1;margin:0}.favorite-btn{background:transparent;border:none;color:#666;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s}.favorite-btn:hover{color:#fbbf24;background:#fbbf241a}.favorite-btn.favorited{color:#fbbf24}.favorites-modal,.wrong-modal{max-width:700px}.favorites-list,.wrong-list{display:flex;flex-direction:column;gap:12px;max-height:60vh;overflow-y:auto}.favorite-item,.wrong-item{background:#ffffff08;border-radius:10px;overflow:hidden}.favorite-header,.wrong-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;cursor:pointer;transition:background .2s}.favorite-header:hover,.wrong-header:hover{background:#ffffff0d}.favorite-info,.wrong-info{display:flex;align-items:center;gap:12px}.favorite-repo,.wrong-repo{color:#00d4ff;font-weight:600}.favorite-chapter,.wrong-chapter{color:#888;font-size:13px}.wrong-count{display:flex;align-items:center;gap:4px;color:#ef4444;font-size:12px}.favorite-actions,.wrong-actions{display:flex;align-items:center;gap:8px;color:#666}.remove-btn{background:transparent;border:none;color:#666;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s}.remove-btn:hover{color:#ef4444;background:#ef44441a}.favorite-content,.wrong-content{padding:0 16px 16px;border-top:1px solid rgba(255,255,255,.05)}.question-text{color:#fff;margin:16px 0 12px;line-height:1.6}.question-options{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.option-item{padding:10px 14px;background:#ffffff08;border-radius:6px;color:#ccc;font-size:14px}.option-item.correct{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.question-code{background:#1e1e1e;padding:12px;border-radius:6px;font-family:monospace;font-size:13px;overflow-x:auto;margin-bottom:12px}.question-answer{color:#10b981;margin-bottom:8px}.wrong-answers{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.your-answer .wrong-text{color:#ef4444}.correct-answer .correct-text{color:#10b981}.question-explanation{color:#888;font-size:14px;line-height:1.6;padding-top:12px;border-top:1px solid rgba(255,255,255,.05)}
