body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.enhanced-sprite-container{align-items:center;display:flex;flex-direction:column;height:280px;justify-content:center;margin:0 auto;position:relative;top:20%;width:220px}.enhanced-sprite{--sprite-core-from:#fff5f5;--sprite-core-to:#ffdde1;height:140px;position:relative;transition:all .5s cubic-bezier(.175,.885,.32,1.275);width:140px;z-index:10}.enhanced-sprite.points-weak .sprite-core{animation:weak-pulse 1.2s ease-in-out infinite;box-shadow:0 0 18px #ff525273,inset -5px -10px 18px #ff767640,inset 5px 10px 14px #ffffffb3;filter:grayscale(.3) brightness(.85)}.enhanced-sprite.points-hungry .sprite-core{animation:hungry-sway 1.4s ease-in-out infinite;box-shadow:0 0 18px #ffc10766,inset -5px -10px 18px #ffd35b40,inset 5px 10px 14px #ffffffbf;filter:saturate(1.1) brightness(1.05)}.enhanced-sprite.points-celebration .sprite-core{animation:celebration-pop 1s ease-in-out infinite;box-shadow:0 0 22px #00c85373,0 0 32px #ffd70059,inset -5px -10px 20px #ffd66640,inset 5px 10px 16px #ffffffe6;filter:saturate(1.2) brightness(1.1)}@keyframes weak-pulse{0%{transform:translate(-50%,-50%) scale(.98)}50%{transform:translate(-50%,-50%) scale(.94)}to{transform:translate(-50%,-50%) scale(.98)}}@keyframes hungry-sway{0%{transform:translate(-50%,-50%) rotate(-2deg)}50%{transform:translate(-50%,-50%) rotate(2deg)}to{transform:translate(-50%,-50%) rotate(-2deg)}}@keyframes celebration-pop{0%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.06)}to{transform:translate(-50%,-50%) scale(1)}}.sprite-core{background:linear-gradient(135deg,var(--sprite-core-from) 0,var(--sprite-core-to) 100%);border-radius:50% 50% 45% 45%;box-shadow:0 10px 20px #ffb6c14d,inset -5px -10px 20px #ff959533,inset 5px 10px 15px #fffc;height:100%;top:50%;transform:translate(-50%,-50%);width:100%;z-index:5}.sprite-core,.sprite-eyes{left:50%;position:absolute}.sprite-eyes{display:flex;gap:40px;top:40%;transform:translateX(-50%);z-index:7}.eye{background:#434;border-radius:50%;height:22px;position:relative;width:22px}.eye:before{height:8px;left:4px;top:3px;width:8px}.eye:after,.eye:before{background:#fff;border-radius:50%;content:"";position:absolute}.eye:after{bottom:4px;height:4px;opacity:.6;right:4px;width:4px}.sprite-mouth{align-items:center;display:flex;height:25px;justify-content:center;left:50%;position:absolute;top:50%;transform:translateX(-50%);width:40px;z-index:8}.mouth-shape{background:#6d4c41;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.mood-happy .mouth-shape{background:#ff6b81;border-radius:0 0 50px 50px;height:12px;width:24px}.mood-excited .mouth-shape{background:#ff4757;border-radius:0 0 30px 30px;height:15px;overflow:visible;position:relative;width:30px}.mood-excited .tongue{animation:tongue-wiggle .5s ease-in-out infinite;background:#ff7f9d;border-radius:0 0 10px 10px;bottom:-8px;display:block;height:12px;left:50%;position:absolute;transform:translateX(-50%);width:16px}.mood-sad .mouth-shape{background:#7f8c8d;border-radius:2px;height:3px;width:20px}.mood-sad .sprite-mouth:after,.mood-sad .sprite-mouth:before{background:#fff;border:1px solid #dcdde1;border-radius:1px;content:"";height:8px;position:absolute;top:10px;width:6px}.mood-sad .sprite-mouth:before{left:13px}.mood-sad .sprite-mouth:after{right:13px}.mood-thinking .mouth-shape{border-radius:50%;height:10px;width:10px}.stage-egg{--sprite-core-from:#fff5c3;--sprite-core-to:#fad0c4}.stage-child{--sprite-core-from:#e0f7fa;--sprite-core-to:#b2ebf2}.stage-teen{--sprite-core-from:#f3e5f5;--sprite-core-to:#e1bee7}.stage-adult{--sprite-core-from:#e8f5e9;--sprite-core-to:#c8e6c9}.stage-master{--sprite-core-from:#fff;--sprite-core-to:#e3f2fd}.stage-master .sprite-core{border:2px solid #90caf9}@keyframes tongue-wiggle{0%,to{transform:translateX(-50%) rotate(-5deg)}50%{transform:translateX(-50%) rotate(5deg)}}.sprite-status-indicators{display:flex;flex-direction:column;gap:10px;left:30%;position:absolute;top:-40px;transform:translateX(-50%);z-index:20}.status-bubble{align-items:center;animation:bubble-float 3s ease-in-out infinite;background:#fffffff2;border-radius:20px;box-shadow:0 4px 15px #0000001a;display:flex;gap:8px;padding:8px 12px}@keyframes bubble-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.status-bubble span{font-size:1.2rem}.bubble-text{color:#333;font-size:.9rem;font-weight:500}.thinking{background:#2196f3f2;color:#fff}.celebrating{background:#ffc107f2;color:#fff}.learning{background:#4caf50f2;color:#fff}.particles-container{left:0;pointer-events:none;top:0;z-index:1}.particles,.particles-container{height:100%;position:absolute;width:100%}.particles{animation:particles-rotate 20s linear infinite;background:radial-gradient(circle at 50% 50%,#667eea1a 0,#764ba20d 30%,#0000 70%)}@keyframes particles-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.enhanced-sprite-container{height:200px;width:150px}.enhanced-sprite{height:100px;width:100px}.sprite-core{height:70px;width:70px}.sprite-mouth{top:50%}}.algorithm-tutor-container{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:20px;min-height:200px;padding:1rem;position:relative}.question-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;box-shadow:0 15px 30px #0000001a;color:#fff;margin-bottom:1rem;padding:1.5rem;transform-style:preserve-3d}.question-text{font-size:1.2rem;font-weight:700;margin-bottom:1rem}.input-field input{background:#ffffffe6;border:none;border-radius:4px;padding:.5rem;width:100%}.score-card{background:#fff;border-radius:15px;box-shadow:0 15px 40px #00000026;margin-bottom:1rem;padding:1.5rem;position:relative;text-align:center}.score-ring{margin:0 auto;transform:rotate(-90deg)}.score-ring-bg{stroke:#e5e7eb}.score-ring-fill{stroke-dasharray:0 100;stroke-linecap:round;transition:stroke-dasharray 1.5s ease}.score-text{font-size:1.5rem;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.feedback-text{color:#6b7280;font-size:.9rem;margin-top:1rem}.sparkle{background:gold;border-radius:50%;height:4px;opacity:0;position:absolute;transform:scale(0);width:4px}.progress-container{margin-top:1rem;text-align:center}.progress-bar{background:#e5e7eb;border-radius:4px;height:8px;margin-bottom:.5rem;overflow:hidden;position:relative}.progress-fill{background:linear-gradient(90deg,#10b981,#3b82f6);border-radius:4px;height:100%;width:0}.progress-particle{background:#10b981;border-radius:50%;height:6px;opacity:0;position:absolute;width:6px}.progress-text{color:#6b7280}.welcome-card{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:1.5rem;text-align:center}.welcome-card h3{color:#374151;margin:0 0 .5rem}.welcome-card p{color:#6b7280;margin:0}@keyframes talking{0%,to{transform:translateX(-50%) scaleY(1)}50%{transform:translateX(-50%) scaleY(.7)}}.is-talking .sprite-mouth{animation:talking .3s ease-in-out infinite}@keyframes evolve{0%{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.evolving{animation:evolve 1s ease-out}@keyframes floatParticle{0%{opacity:0;transform:translateY(0) rotate(0deg)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-100px) rotate(1turn)}}.particle{animation:floatParticle 3s ease-in-out infinite;animation-delay:var(--delay)}@keyframes gentleFloat{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-10px) rotate(1deg)}75%{transform:translateY(-5px) rotate(-1deg)}}.enhanced-sprite{animation:gentleFloat 4s ease-in-out infinite}@keyframes cuteBlink{0%,90%,to{height:20px;transform:scaleY(1)}95%{height:2px;transform:scaleY(.1)}}.eye{animation:cuteBlink 3s ease-in-out infinite}@keyframes earTwitch{0%,to{transform:rotate(0deg)}50%{transform:rotate(10deg)}}@keyframes heartFloat{0%{opacity:0;transform:translateY(0) rotate(0deg) scale(0)}20%{opacity:1;transform:translateY(-20px) rotate(0deg) scale(1)}to{opacity:0;transform:translateY(-100px) rotate(1turn) scale(0)}}.heart-particle{animation:heartFloat 2s ease-out infinite;color:#ff6b9d;font-size:12px;position:absolute}@keyframes pageFlip{0%,to{transform:rotateY(0deg)}50%{transform:rotateY(180deg)}}@keyframes questionBubble{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes starExplode{0%{opacity:0;transform:scale(0) rotate(0deg)}50%{opacity:1;transform:scale(1) rotate(180deg)}to{opacity:0;transform:scale(0) rotate(1turn)}}@keyframes evolutionFlash{0%,to{opacity:0;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}}.recommendation-page{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.recommendation-header{align-items:center;display:flex;gap:20px;margin-bottom:24px}.recommendation-header h2{font-size:24px;font-weight:600;margin:0}.btn-back{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;padding:8px 16px;transition:all .3s ease}.btn-back:hover{background:#fff3}.recommendation-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #ffffff1a;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.stats-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:32px}.stat-card{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;padding:20px;text-align:center}.stat-card.streak{border-left:4px solid #f97316}.stat-card.time{border-left:4px solid #3b82f6}.stat-card.avg{border-left:4px solid #22c55e}.stat-card.goal{border-left:4px solid #a855f7}.stat-icon{font-size:28px;margin-bottom:8px}.stat-value{margin-bottom:4px}.stat-label{color:#fff9;font-size:12px}.recommendation-section{margin-bottom:32px}.recommendation-section h3{border-bottom:1px solid #ffffff1a;font-size:18px;margin-bottom:16px;padding-bottom:8px}.recommendation-section.weak h3{color:#ef4444}.recommendation-section.review h3{color:#eab308}.recommendation-section.advanced h3{color:#22c55e}.recommendation-section.problems h3{color:#3b82f6}.topic-list{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.topic-card{background:#ffffff0d;border:1px solid #0000;border-radius:10px;cursor:pointer;padding:16px;transition:all .3s ease}.topic-card:hover{background:#ffffff1a;border-color:#fff3;transform:translateY(-2px)}.topic-name{font-size:16px;font-weight:500;margin-bottom:8px}.topic-stats{align-items:center;display:flex;gap:12px}.mastery-badge{border-radius:20px;color:#fff;font-size:12px;padding:4px 10px}.accuracy,.last-practiced{color:#fff9;font-size:13px}.problem-list{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.problem-card{background:#ffffff0d;border-radius:10px;cursor:pointer;padding:16px;transition:all .3s ease}.problem-card:hover{background:#ffffff1a;transform:translateY(-2px)}.problem-header{margin-bottom:8px}.problem-code{color:#3b82f6;font-size:14px;font-weight:500}.difficulty-badge{border-radius:12px;color:#fff;font-size:11px;padding:3px 8px}.problem-title{font-size:15px;line-height:1.4;margin-bottom:6px}.problem-category{color:#ffffff80;font-size:12px}.recommendation-empty{padding:60px 20px;text-align:center}.empty-icon{font-size:64px;margin-bottom:16px}.recommendation-empty h3{font-size:20px;margin-bottom:8px}.recommendation-empty p{color:#fff9}.recommendation-error{color:#ef4444;padding:60px 20px;text-align:center}.recommendation-error button{margin-top:20px}:root{--primary-color:#667eea;--primary-dark:#5a6fd6;--secondary-color:#764ba2;--accent-color:#4ecdc4;--danger-color:#e74c3c;--success-color:#2ecc71;--warning-color:#f39c12;--bg-main:#f4f7f9;--bg-white:#fff;--text-dark:#2c3e50;--text-medium:#546e7a;--text-light:#95a5a6;--border-color:#e0e6ed;--card-shadow:0 4px 15px #0000000d,0 1px 3px #0000001a;--hover-shadow:0 8px 25px #0000001a;--border-radius-lg:16px;--border-radius-md:10px;--border-radius-sm:6px;--header-height:70px}*{box-sizing:border-box}body,html{background-color:#f4f7f9;background-color:var(--bg-main);color:#2c3e50;color:var(--text-dark);font-family:Segoe UI,Roboto,PingFang SC,sans-serif;height:100%;margin:0;padding:0}.app{display:flex;flex-direction:column;overflow:hidden}.app-header-modern{align-items:center;background:#fff;background:var(--bg-white);box-shadow:0 2px 10px #0000000d;display:flex;height:70px;height:var(--header-height);justify-content:space-between;padding:0 24px;z-index:100}.header-brand{gap:12px}.brand-logo,.header-brand{align-items:center;display:flex}.brand-logo{background:#f4f7f9;background:var(--bg-main);border-radius:6px;border-radius:var(--border-radius-sm);font-size:28px;height:40px;justify-content:center;width:40px}.app-header-modern h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));-webkit-background-clip:text;font-size:1.2rem;font-weight:700;margin:0}.app-header{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px 16px 20px;text-align:center}.app-header h1{color:#2c3e50;color:var(--text-dark);font-size:2rem;font-weight:800;margin:0}.app-header p{color:#546e7a;color:var(--text-medium);font-size:1rem;margin:8px 0 0}.header-actions{align-items:center;display:flex;gap:20px}.progress-capsule{align-items:center;background:#f4f7f9;background:var(--bg-main);border-radius:30px;color:#546e7a;color:var(--text-medium);display:flex;font-size:.9rem;gap:10px;padding:8px 16px;position:relative!important;z-index:5!important}.progress-capsule .highlight{color:#667eea;color:var(--primary-color);font-weight:700;margin-left:4px}.db-status-dot{border-radius:50%;height:10px;position:relative;width:10px}.db-status-dot.connected{background:#2ecc71;background:var(--success-color);box-shadow:0 0 0 2px #2ecc7133}.db-status-dot.disconnected{background:#e74c3c;background:var(--danger-color);box-shadow:0 0 0 2px #e74c3c33}.user-menu-container{position:relative;z-index:1000}.user-menu-trigger{align-items:center;background:none;border:none;border-radius:10px;border-radius:var(--border-radius-md);cursor:pointer;display:flex;gap:10px;padding:6px;transition:all .2s}.user-menu-trigger.active,.user-menu-trigger:hover{background:#f4f7f9;background:var(--bg-main)}.avatar-small{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border-radius:50%;color:#fff;display:flex;font-size:16px;font-weight:700;height:36px;justify-content:center;overflow:hidden;width:36px}.avatar-small .avatar-image{border-radius:50%;height:100%;object-fit:cover;width:100%}.user-info-header{align-items:center;display:flex;gap:8px;justify-content:center;margin-bottom:8px}.dropdown-username{font-size:.9rem}.dropdown-username,.user-menu-trigger .username{color:#2c3e50;color:var(--text-dark);font-weight:600}.points-badge{background:linear-gradient(135deg,#667eea,#764ba2);background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border-radius:15px;color:#fff;font-size:.8rem;font-weight:600;margin-left:8px;padding:4px 10px}.dropdown-arrow{color:#95a5a6;color:var(--text-light);font-size:.7rem;transition:transform .2s}.points-status{display:flex;flex-direction:column;gap:4px;margin-top:8px}.points-value{color:#667eea;color:var(--primary-color);font-size:.9rem;font-weight:700}.points-status-indicator{border-radius:10px;font-size:.75rem;font-weight:600;padding:2px 8px}.points-status-indicator.weak{background:#fee;color:#e74c3c;color:var(--danger-color)}.points-status-indicator.hungry{background:#fff3cd;color:#f39c12;color:var(--warning-color)}.points-status-indicator.celebration{background:#d4edda;color:#2ecc71;color:var(--success-color)}.points-status-indicator.normal{background:#e3f2fd;color:#667eea;color:var(--primary-color)}.points-notification{align-items:center;animation:slideInRight .3s ease-out;background:linear-gradient(135deg,#667eea,#764ba2);background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border-radius:10px;border-radius:var(--border-radius-md);box-shadow:0 8px 25px #0000001a;box-shadow:var(--hover-shadow);color:#fff;display:flex;gap:10px;padding:12px 20px;position:fixed;right:20px;top:100px;z-index:10000}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.notification-icon{font-size:1.2rem}.notification-text{font-size:.9rem;font-weight:600}.algorithm-animation-overlay{align-items:center;animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:20000}.algorithm-animation{animation:slideUp .3s ease;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:800px;overflow-y:auto;width:90%}.animation-header{align-items:center;background:#ffffff1a;border-bottom:1px solid #fff3;display:flex;justify-content:space-between;padding:20px 30px}.animation-header h3{color:#fff;font-size:1.5rem;margin:0}.animation-header .close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.animation-header .close-btn:hover{background:#fff3;transform:rotate(90deg)}.animation-content{padding:30px;text-align:center}.algorithm-video{border-radius:10px;box-shadow:0 10px 30px #0000004d;margin-bottom:20px;max-height:500px;width:100%}.animation-description{color:#fff;font-size:1rem;line-height:1.5;margin:0}@media (max-width:768px){.algorithm-animation{margin:10px;width:95%}.animation-header{padding:15px 20px}.animation-content{padding:20px}.algorithm-video{max-height:300px}}.user-menu-trigger.active .dropdown-arrow{transform:rotate(180deg)}.user-dropdown-menu{animation:slideDown .2s ease-out;background:#fff;background:var(--bg-white);border:1px solid #e0e6ed;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--border-radius-md);box-shadow:0 8px 25px #0000001a;box-shadow:var(--hover-shadow);padding:8px;position:absolute;right:0;top:calc(100% + 10px);width:220px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{margin-bottom:8px;padding:8px 12px;text-align:center}.user-role-tag{border-radius:20px;font-size:.75rem;font-weight:600;padding:4px 10px}.user-role-tag.admin{background:#f3e5f5;color:#9c27b0}.user-role-tag.user{background:#e3f2fd;color:#1976d2}.dropdown-item{align-items:center;background:none;border:none;border-radius:6px;border-radius:var(--border-radius-sm);color:#546e7a;color:var(--text-medium);cursor:pointer;display:flex;font-size:.95rem;gap:8px;padding:10px 12px;text-align:left;transition:all .2s;width:100%}.dropdown-item:hover{background:#f4f7f9;background:var(--bg-main);color:#667eea;color:var(--primary-color)}.dropdown-divider{background:#e0e6ed;background:var(--border-color);height:1px;margin:8px 0}.dropdown-item.danger{color:#e74c3c;color:var(--danger-color)}.dropdown-item.danger:hover{background:#fee}.main-content{background:#f4f7f9;background:var(--bg-main);display:flex;flex:1 1;gap:24px;overflow:hidden;padding:24px;position:relative;z-index:5}.left-panel{flex-direction:column;gap:20px;padding-right:4px;position:relative;width:340px;z-index:1}.left-panel,.right-panel{display:flex;overflow-y:auto}.right-panel{border-radius:16px;border-radius:var(--border-radius-lg);flex:1 1;flex-direction:column;padding:24px}.algorithm-tutor,.category-selector,.right-panel,.task-list{background:#fff;background:var(--bg-white);box-shadow:0 4px 15px #0000000d,0 1px 3px #0000001a;box-shadow:var(--card-shadow)}.algorithm-tutor,.category-selector,.task-list{border:1px solid #e0e6ed!important;border:1px solid var(--border-color)!important;border-radius:16px!important;border-radius:var(--border-radius-lg)!important;padding:20px!important;pointer-events:auto!important;position:relative!important;z-index:50!important}.sprite-container-wrapper,.sprite-display{background:#0000!important;min-height:300px;pointer-events:none;position:relative;z-index:1!important}.category-selector h3,.task-list h3{color:#2c3e50;color:var(--text-dark);font-size:1.1rem;margin-bottom:15px;margin-top:0}.category-btn{align-items:center!important;background:#f4f7f9!important;background:var(--bg-main)!important;border:2px solid #0000!important;border-radius:10px!important;border-radius:var(--border-radius-md)!important;color:#546e7a!important;color:var(--text-medium)!important;cursor:pointer!important;display:flex!important;font-weight:500;justify-content:space-between!important;margin-bottom:8px;padding:10px 12px!important;pointer-events:auto!important;position:relative;transition:all .3s!important;-webkit-user-select:none;user-select:none;width:100%;z-index:1000}.category-btn:hover{background:#eef2f7!important}.category-btn.active,.category-btn:hover{border-color:#667eea!important;border-color:var(--primary-color)!important}.category-btn.active{background:#667eea!important;background:var(--primary-color)!important;box-shadow:0 4px 10px #667eea4d!important;color:#fff!important}.category-progress-badge{background:#fff3!important;border-radius:10px;font-size:.8rem;padding:2px 8px}.category-btn:not(.active) .category-progress-badge{background:#e0e6ed!important;background:var(--border-color)!important;color:#546e7a!important;color:var(--text-medium)!important}.task-item{align-items:center!important;background:#fff!important;background:var(--bg-white)!important;border:1px solid #e0e6ed!important;border:1px solid var(--border-color)!important;border-radius:10px!important;border-radius:var(--border-radius-md)!important;cursor:pointer!important;display:flex!important;justify-content:space-between!important;margin-bottom:10px!important;padding:12px!important;pointer-events:auto!important;position:relative;transition:all .2s;-webkit-user-select:none;user-select:none;z-index:1000}.task-item:hover{box-shadow:0 4px 15px #0000000d,0 1px 3px #0000001a;box-shadow:var(--card-shadow);transform:translateY(-2px);z-index:1001}.task-item.active,.task-item:hover{border-color:#667eea!important;border-color:var(--primary-color)!important}.task-item.active{background:#f0f4ff!important;transform:scale(.98)}.task-item.completed{background:#f0fff4!important;border-color:#2ecc71!important;border-color:var(--success-color)!important;opacity:.8}.task-item.completed span:first-child{color:#95a5a6;color:var(--text-light);text-decoration:line-through}.improved-chat-btn{background:linear-gradient(135deg,#667eea,#764ba2)!important;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color))!important;border:none!important;border-radius:10px!important;border-radius:var(--border-radius-md)!important;box-shadow:0 4px 15px #667eea66!important;color:#fff!important;cursor:pointer!important;font-weight:600;padding:14px!important;pointer-events:auto!important;position:relative;transition:all .3s;z-index:5}.improved-chat-btn:hover{box-shadow:0 6px 20px #667eea80!important;transform:translateY(-2px)!important}.fullscreen-panel-mode{background:#f4f7f9;background:var(--bg-main);display:flex;flex-direction:column;height:100vh;z-index:200}.panel-header{align-items:center;background:#fff;background:var(--bg-white);box-shadow:0 2px 10px #0000000d;display:flex;height:70px;justify-content:space-between;padding:0 30px}.panel-header h2{color:#2c3e50;color:var(--text-dark);margin:0}.panel-back-btn{background:#f4f7f9;background:var(--bg-main);border:1px solid #e0e6ed;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--border-radius-md);color:#546e7a;color:var(--text-medium);font-weight:600;padding:8px 20px;transition:all .2s}.panel-back-btn:hover{background:#667eea;background:var(--primary-color);border-color:#667eea;border-color:var(--primary-color);color:#fff}.panel-content-wrapper{flex:1 1;overflow-y:auto;padding:30px}.card-style{background:#fff;background:var(--bg-white);border:none!important;border-radius:16px;border-radius:var(--border-radius-lg);box-shadow:0 4px 15px #0000000d,0 1px 3px #0000001a;box-shadow:var(--card-shadow);margin-bottom:30px;padding:30px}.table-style{border-collapse:initial;border-spacing:0 8px;margin-top:10px;width:100%}.table-style th{border:none;color:#546e7a;color:var(--text-medium);font-weight:600;padding:15px;text-align:left}.table-style tbody tr{background:#fff;background:var(--bg-white);box-shadow:0 2px 8px #00000008;transition:all .2s}.table-style tbody tr:hover{box-shadow:0 4px 15px #0000000d,0 1px 3px #0000001a;box-shadow:var(--card-shadow);transform:scale(1.01)}.table-style td{border:none;padding:15px}.table-style td:first-child{border-bottom-left-radius:6px;border-bottom-left-radius:var(--border-radius-sm);border-top-left-radius:6px;border-top-left-radius:var(--border-radius-sm)}.table-style td:last-child{border-bottom-right-radius:6px;border-bottom-right-radius:var(--border-radius-sm);border-top-right-radius:6px;border-top-right-radius:var(--border-radius-sm)}.learning-progress{background:#fff;background:var(--bg-white);border-radius:var(--border-radius);box-shadow:0 4px 15px #0000000d,0 1px 3px #0000001a;box-shadow:var(--card-shadow);margin-top:20px;padding:20px}.progress-title{border-bottom:2px solid #667eea;border-bottom:2px solid var(--primary-color);color:#2c3e50;color:var(--text-dark);font-size:18px;font-weight:600;margin-bottom:20px;padding-bottom:10px}.progress-chart-section{margin-bottom:24px}.progress-chart-section h4{color:#546e7a;color:var(--text-medium);font-size:14px;margin-bottom:12px}.pie-chart-container{position:relative}.overall-progress-text,.pie-chart-container{align-items:center;display:flex;justify-content:center}.overall-progress-text{flex-direction:column;position:absolute}.progress-number{color:#667eea;color:var(--primary-color);font-size:28px;font-weight:700}.progress-label{color:#95a5a6;color:var(--text-light);font-size:12px}.chart-tooltip{background:#fff;background:var(--bg-white);border:1px solid #e0e6ed;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 15px #0000000d,0 1px 3px #0000001a;box-shadow:var(--card-shadow);padding:10px}.chart-tooltip p{color:#546e7a;color:var(--text-medium);font-size:12px;margin:4px 0}.chapter-list{display:flex;flex-direction:column;gap:12px}.chapter-item{align-items:center;background:#f4f7f9;background:var(--bg-main);border-radius:8px;display:flex;gap:12px;padding:12px;transition:all .3s ease}.chapter-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateX(4px)}.chapter-item.completed{border-left:3px solid #2ecc71;border-left:3px solid var(--success-color)}.chapter-item.in-progress{border-left:3px solid #667eea;border-left:3px solid var(--primary-color)}.chapter-item.not-started{border-left:3px solid #95a5a6;border-left:3px solid var(--text-light);opacity:.7}.chapter-info{display:flex;flex-direction:column;min-width:100px}.chapter-name{color:#2c3e50;color:var(--text-dark);font-size:13px;font-weight:500}.chapter-progress{color:#95a5a6;color:var(--text-light);font-size:11px}.chapter-progress-bar{background:#e0e6ed;background:var(--border-color);border-radius:4px;flex:1 1;height:8px;overflow:hidden}.chapter-progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));border-radius:4px;height:100%;transition:width .5s ease}.chapter-item.completed .chapter-progress-fill{background:#2ecc71;background:var(--success-color)}.chapter-percent{color:#667eea;color:var(--primary-color);font-size:13px;font-weight:600;min-width:40px;text-align:right}.chapter-item.completed .chapter-percent{color:#2ecc71;color:var(--success-color)}.recommendation-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;margin-right:10px;padding:6px 12px;transition:all .3s ease}.recommendation-btn:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}:root{--bg:#f5f7fb;--card:#fff;--accent-start:#6a11cb;--accent-end:#2575fc;--muted:#6b7280;--success:#16a34a;--error:#dc2626}.login-form-container{align-items:center;background:linear-gradient(180deg,#eef2ff,#f8fafc);display:flex;justify-content:center;min-height:100vh;padding:40px 20px}.login-form-card{animation:floatIn .28s ease-out both;background:#fff;background:var(--card);border-left:6px solid #2575fc14;border-radius:14px;box-shadow:0 10px 30px #10182814;max-width:420px;padding:28px;width:100%}@keyframes floatIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.login-form-card h2{color:#0f172a;font-size:22px;margin:0 0 12px}.form-group{margin-bottom:14px}.form-group label{color:#6b7280;color:var(--muted);font-size:13px;margin-bottom:6px}.form-group input{background:#fbfdff;border:1px solid #e6edf3;border-radius:8px;outline:none;padding:10px 12px;transition:box-shadow .15s ease,border-color .15s ease;width:100%}.form-group input:focus{border-color:#2575fc;border-color:var(--accent-end);box-shadow:0 6px 18px #2575fc14}.message{border-radius:8px;font-size:14px;margin-bottom:12px;padding:10px 12px}.message.success{background:#16a34a14;border:1px solid #10b98114;color:#16a34a;color:var(--success)}.message.error{background:#dc26260f;border:1px solid #dc262614;color:#dc2626;color:var(--error)}.submit-btn{background:linear-gradient(90deg,#6a11cb,#2575fc);background:linear-gradient(90deg,var(--accent-start),var(--accent-end));border:none;border-radius:10px;box-shadow:0 8px 20px #2575fc2e;cursor:pointer;font-weight:600;padding:12px 14px;transition:transform .12s ease,box-shadow .12s ease;width:100%}.submit-btn:active{transform:translateY(1px)}.submit-btn:disabled{cursor:not-allowed;opacity:.7}.mode-switch{margin-top:12px;text-align:center}.switch-btn{background:none;border:none;color:#2575fc;color:var(--accent-end);cursor:pointer;font-weight:600;margin-left:8px}.demo-accounts{border-top:1px dashed #eef2ff;margin-top:16px;padding-top:12px}.demo-accounts h4{font-size:14px;margin:0 0 8px}.account-list{color:#6b7280;color:var(--muted);font-size:14px}.account-item{margin-bottom:6px}@media (max-width:480px){.login-form-card{border-radius:10px;padding:18px}.login-form-container{padding:18px}}.enhanced-sprite.skin-skin_gold{--sprite-core-from:#fff6d5;--sprite-core-to:#ffcf40}.enhanced-sprite.skin-skin_sakura{--sprite-core-from:#ffeef5;--sprite-core-to:#ffb7d5}.enhanced-sprite.skin-skin_master{--sprite-core-from:#fff3c4;--sprite-core-to:#ffb300}.enhanced-sprite.skin-skin_master .sprite-core{box-shadow:0 0 24px #ffc10799,0 0 40px #ffd70066,inset -5px -10px 20px #ffb3004d,inset 5px 10px 15px #ffffffd9}.deco-bg{border-radius:16px;inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:0}.deco-bg-bg_stars{background:radial-gradient(circle at 30% 20%,#2b3a67 0,#0b1026 70%)}.deco-bg-bg_stars:after{color:#ffffffb3;content:"✦ ✧ ⋆ ✦ ✧ ⋆ ✦ ✧";font-size:12px;inset:0;letter-spacing:14px;line-height:36px;padding:10px;position:absolute}.deco-bg-bg_library{background:linear-gradient(160deg,#d7b899,#a97e50)}.deco-bg-bg_aurora{background:linear-gradient(135deg,#1d2b64,#24c6dc 45%,#7f53ac)}.deco-accessory{filter:drop-shadow(0 2px 3px rgba(0,0,0,.15));font-size:34px;left:50%;line-height:1;pointer-events:none;position:absolute;transform:translateX(-50%);z-index:20}.deco-accessory-acc_crown{font-size:36px;top:-14px}.deco-accessory-acc_headphone{font-size:44px;top:22%}.deco-accessory-acc_glasses{font-size:32px;top:37%}.deco-accessory-acc_sparkles{animation:sparkle-float 2s ease-in-out infinite;font-size:28px;top:-10px}.deco-accessory-acc_hearts{animation:heart-bounce 1.5s ease-in-out infinite;font-size:26px;top:15px}.deco-accessory-acc_ribbon{animation:gentle-sway 3s ease-in-out infinite;font-size:30px;top:-18px}.deco-accessory-acc_halo{animation:halo-glow 2s ease-in-out infinite;font-size:48px;opacity:.8;top:-8px}.deco-accessory-acc_fire{animation:fire-flicker .6s ease-in-out infinite;font-size:32px;top:5px}@keyframes sparkle-float{0%,to{opacity:.7;transform:translateX(-50%) translateY(0) scale(1)}50%{opacity:1;transform:translateX(-50%) translateY(-8px) scale(1.2)}}@keyframes heart-bounce{0%,to{transform:translateX(-50%) scale(1)}30%{transform:translateX(-50%) scale(1.3)}50%{transform:translateX(-50%) scale(1)}}@keyframes gentle-sway{0%,to{transform:translateX(-50%) rotate(-5deg)}50%{transform:translateX(-50%) rotate(5deg)}}@keyframes halo-glow{0%,to{opacity:.5;transform:translateX(-50%) scale(1)}50%{opacity:.9;transform:translateX(-50%) scale(1.15)}}@keyframes fire-flicker{0%,to{transform:translateX(-50%) scale(1)}25%{transform:translateX(-50%) scale(1.1) rotate(-3deg)}75%{transform:translateX(-50%) scale(.95) rotate(3deg)}}.deco-nameplate{border-radius:999px;box-shadow:0 2px 6px #00000026;color:#fff;font-size:13px;font-weight:600;margin:6px auto 0;padding:3px 14px;text-align:center;width:-webkit-fit-content;width:fit-content}.algorithm-tutor{align-items:center;display:flex;justify-content:center;margin:20px 0;min-height:200px}.tutor-stage{animation:none!important;background:#fff;border:1px solid #e0e0e0;border-radius:15px;box-shadow:0 4px 15px #0000001a;max-width:400px;padding:20px;width:100%}.evaluation-bubble,.idle-bubble,.progress-bubble,.question-bubble{text-align:center}.evaluation-icon,.idle-icon,.progress-icon,.question-icon{display:block;font-size:2rem;margin-bottom:10px}h4{color:#333;font-size:1.2rem}h4,p{margin:10px 0}p{color:#666;line-height:1.5}.feedback{background:#f8f9fa;border-radius:8px;color:#777;font-size:.9rem;margin-top:15px;padding:10px}.progress-container{animation:none!important;background:#f0f0f0;border-radius:12px;height:24px;margin:15px 0;overflow:hidden;position:relative;transition:none!important;width:100%}.progress-bar-bg{background:#f0f0f0;width:100%}.progress-bar-bg,.progress-bar-fill{animation:none!important;border-radius:12px;height:100%;left:0;position:absolute;top:0;transition:none!important}.progress-bar-fill{background:#4caf50;will-change:width}.idle-progress-bar-fill{background:#2196f3}.progress-text{align-items:center;animation:none!important;color:#fff;display:flex;font-size:.9rem;font-weight:700;height:100%;justify-content:center;left:0;position:absolute;top:0;transition:none!important;width:100%;z-index:2}.progress-container[data-progress="0"] .progress-text{color:#666}.progress-label{color:#666;font-size:.9rem;margin-top:5px}@media (max-width:768px){.tutor-stage{max-width:300px;padding:15px}.evaluation-icon,.idle-icon,.progress-icon,.question-icon{font-size:1.5rem}h4{font-size:1rem}.progress-container{height:20px}.progress-text{font-size:.8rem}}.progress-bar-bg *,.progress-bar-fill *,.progress-container *,.progress-text *{animation:none!important;background-image:none!important;box-shadow:none!important;filter:none!important;transform:none!important;transition:none!important}.task-item.has-prerequisite{background:#ff98001a;opacity:.7}.task-item.has-prerequisite:hover{background:#ff980033;opacity:1}.prerequisite-indicator{filter:grayscale(.3);font-size:14px;margin-right:8px}.task-item.completed .prerequisite-indicator{display:none}.code-editor-container{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 10px 30px #0003;display:flex;flex-direction:column;height:100%;padding:20px}.editor-header{align-items:center;border-bottom:2px solid #ffffff1a;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.editor-header h3{color:#fff;font-size:1.5rem;margin:0;text-shadow:2px 2px 4px #0000004d}.editor-info{color:#ffffffe6;display:flex;font-size:.9rem;gap:20px}.difficulty,.time-spent{border-radius:20px;padding:5px 10px}.difficulty,.task-description,.time-spent{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a}.task-description{border-radius:8px;color:#fff;margin-bottom:20px;padding:15px}.task-description p{color:azure;line-height:1.5;margin:0 0 10px}.expected-interface{background:#0003;border-radius:6px;margin-top:10px;padding:10px}.expected-interface code{background:#ffffff1a;border-radius:4px;color:gold;display:block;font-family:Courier New,monospace;margin-top:5px;padding:8px}.code-area{display:flex;flex:1 1;flex-direction:column;margin-bottom:20px}.code-header{align-items:center;color:#fff;display:flex;justify-content:space-between;margin-bottom:10px}.hint-btn{background:#fff3;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .3s ease}.hint-btn:hover{background:#ffffff4d;transform:translateY(-2px)}.hint-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border-radius:8px;color:#fff;margin-bottom:15px;padding:15px}.hint-section h4{color:gold;margin:0 0 10px}.hint-section ul{margin:0;padding-left:20px}.hint-section li{line-height:1.4;margin-bottom:5px}.code-input{background:#0000004d;border:2px solid #ffffff1a;border-radius:8px;color:#fff;flex:1 1;font-family:Courier New,monospace;font-size:14px;line-height:1.5;outline:none;padding:15px;resize:none;transition:border-color .3s ease}.code-input:focus{border-color:#ffffff4d}.code-input::placeholder{color:#ffffff80}.editor-actions{display:flex;gap:15px;margin-bottom:20px}.reset-btn,.submit-btn{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.reset-btn{background:#fff3;color:#fff}.reset-btn:hover:not(:disabled){background:#ffffff4d;transform:translateY(-2px)}.submit-btn{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 15px #667eea66;color:#fff}.submit-btn:hover:not(:disabled){box-shadow:0 6px 20px #667eea99;transform:translateY(-2px)}.reset-btn:disabled,.submit-btn:disabled{cursor:not-allowed;opacity:.5;transform:none!important}.task-tips{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:8px;color:#fff;padding:15px}.task-tips h4{color:gold;margin:0 0 10px}.task-tips ul{margin:0;padding-left:20px}.task-tips li{line-height:1.4;margin-bottom:5px}@media (max-width:768px){.code-editor-container{padding:15px}.editor-header{align-items:flex-start;flex-direction:column;gap:10px}.editor-info{justify-content:space-between;width:100%}.editor-actions{flex-direction:column}}.feedback-overlay{align-items:center;animation:fbFadeIn .2s ease;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:2000}@keyframes fbFadeIn{0%{opacity:0}to{opacity:1}}.feedback-modal{background:#fff;border-radius:16px;box-shadow:0 20px 50px #0003;display:flex;flex-direction:column;gap:12px;max-width:480px;padding:28px;width:90%}.feedback-modal h3{color:#1f2933;font-size:18px;margin:0}.feedback-hint{color:#6b7280;font-size:13px;line-height:1.5;margin:0}.feedback-modal label{color:#374151;font-size:14px;font-weight:600}.feedback-reason{border:1px solid #d2d6dc;border-radius:8px;font-family:inherit;font-size:14px;padding:10px 12px;resize:vertical;width:100%}.feedback-upload-btn{background:#f9fafb;border:1px dashed #9ca3af;border-radius:8px;color:#374151;cursor:pointer;font-size:13px;padding:8px 16px;width:-webkit-fit-content;width:fit-content}.feedback-preview{border-radius:8px;max-height:200px;max-width:100%;object-fit:contain}.feedback-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.fb-cancel{background:#fff;border:1px solid #d2d6dc;border-radius:8px;color:#374151}.fb-cancel,.fb-submit{cursor:pointer;font-size:14px;padding:8px 20px}.fb-submit{background:#2563eb;border:none;border-radius:8px;color:#fff;font-weight:600}.fb-submit:disabled{background:#93c5fd;cursor:not-allowed}.chat-dialog-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.chat-dialog{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0003;display:flex;flex-direction:column;height:80%;max-width:600px;overflow:hidden;width:90%}.chat-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;padding:16px 20px}.chat-header h3{font-size:18px;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;transition:background .2s;width:30px}.close-button:hover{background:#fff3}.chat-messages{background:#f8f9fa;flex:1 1;gap:16px;overflow-y:auto;padding:20px}.chat-messages,.empty-chat{display:flex;flex-direction:column}.empty-chat{align-items:center;color:#666;height:100%;justify-content:center}.empty-chat-icon{font-size:48px;margin-bottom:16px}.message{border-radius:16px;max-width:85%;padding:12px 16px;position:relative}.user-message{align-self:flex-end;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom-right-radius:4px;color:#fff}.sprite-message{align-self:flex-start;background:#fff;border:1px solid #e5e7eb;border-bottom-left-radius:4px;color:#333}.message-header{font-size:12px;font-weight:600;margin-bottom:8px;opacity:.8}.message-content{line-height:1.5;white-space:pre-wrap}.message-time{font-size:11px;margin-top:8px;opacity:.7;text-align:right}.question-container{animation:slideIn .3s ease-out;background:#fffffff2;border-left:4px solid #4f46e5;border-radius:10px;box-shadow:0 3px 10px #00000014;margin-top:12px;padding:16px}.question-header{align-items:center;color:#4f46e5;display:flex;font-size:14px;gap:8px;margin-bottom:12px}.question-icon{font-size:16px}.question-text{color:#1f2937;font-size:15px;font-weight:500;line-height:1.5;margin-bottom:16px}.question-text pre{background-color:#f5f5f5;border-radius:6px;margin:8px 0;overflow-x:auto;padding:12px}.question-text code{background-color:#f0f0f0;border-radius:4px;font-family:Courier New,monospace;font-size:13px;padding:2px 6px}.question-options{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.question-option{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;font-size:14px;gap:12px;padding:12px 16px;position:relative;text-align:left;transition:all .2s ease}.question-option:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af;transform:translateY(-1px)}.question-option:focus:not(:disabled){border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;outline:none}.option-label{color:#6b7280;font-weight:600;min-width:24px}.option-text{flex:1 1}.feedback-icon{font-size:16px;font-weight:700}.question-option.correct{background:linear-gradient(135deg,#10b9811a,#10b9810d);border-color:#10b981}.question-option.correct .feedback-icon{color:#10b981}.question-option.wrong{background:linear-gradient(135deg,#ef44441a,#ef44440d);border-color:#ef4444}.question-option.wrong .feedback-icon{color:#ef4444}.question-option.correct-answer{background:#10b9810d;border-color:#10b981;border-style:dashed}.correct-marker{background:#10b9811a;border-radius:12px;color:#10b981;font-size:12px;font-weight:600;margin-left:8px;padding:2px 8px}.correct-answer-display{text-align:center}.feedback-message{animation:fadeIn .3s ease;border-radius:8px;font-size:14px;margin-top:12px;padding:12px}.correct-feedback{background:#10b9811a;border:1px solid #10b981;color:#065f46}.incorrect-feedback{background:#ef44441a;border:1px solid #ef4444;color:#991b1b}.typing-indicator{align-self:flex-start;display:flex;gap:4px;padding:12px}.typing-dot{animation:typing 1.4s ease-in-out infinite;background:#9ca3af;border-radius:50%;height:8px;width:8px}.typing-dot:first-child{animation-delay:-.32s}.typing-dot:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.chat-input-area{background:#fff;border-top:1px solid #e5e7eb;padding:16px}.chat-input-container{display:flex;gap:8px;margin-bottom:12px}.chat-input{border:2px solid #e5e7eb;border-radius:8px;flex:1 1;font-size:14px;padding:12px 16px;transition:border-color .2s}.chat-input:focus{border-color:#4f46e5;outline:none}.chat-input:disabled{background:#f9fafb;cursor:not-allowed}.send-icon{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;height:44px;justify-content:center;transition:transform .2s,opacity .2s;width:44px}.send-icon:hover:not(:disabled){transform:scale(1.05)}.send-icon:disabled{cursor:not-allowed;opacity:.5}.action-button,.chat-actions{display:flex;gap:8px;justify-content:center}.action-button{align-items:center;border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:10px 16px;transition:all .2s}.action-button.hint{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.action-button.clear{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff}.action-button:hover:not(:disabled){box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.action-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.markdown-content{font-size:14px;line-height:1.6}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{font-weight:600;margin-bottom:8px;margin-top:16px}.markdown-content h1{font-size:18px}.markdown-content h2{font-size:16px}.markdown-content h3{font-size:15px}.markdown-content h4{font-size:14px}.markdown-content p{margin-bottom:12px}.markdown-content ol,.markdown-content ul{margin-bottom:12px;padding-left:20px}.markdown-content li{margin-bottom:4px}.markdown-content code{background-color:#afb8c133;border-radius:4px;font-family:Courier New,monospace;font-size:13px;padding:2px 6px}.markdown-content pre{background-color:#f6f8fa;border-radius:6px;margin:12px 0;overflow-x:auto;padding:12px}.markdown-content pre code{background-color:initial;padding:0}.markdown-content blockquote{border-left:4px solid #e5e7eb;color:#6b7280;margin-left:0;margin-right:0;padding-left:12px}.markdown-content table{border-collapse:collapse;margin-bottom:12px;width:100%}.markdown-content td,.markdown-content th{border:1px solid #e5e7eb;padding:8px;text-align:left}.markdown-content th{background-color:#f9fafb;font-weight:600}.fill-blank-text{font-size:15px;margin-bottom:16px}.fill-blank-input{background-color:#fff;border:2px solid #4f46e5;border-radius:4px;box-sizing:border-box;display:inline-block;font-family:Courier New,monospace;font-size:13px;margin:0 2px;padding:4px 8px;text-align:center;transition:border-color .15s ease,box-shadow .15s ease;vertical-align:middle;width:80px}.fill-blank-input:focus{border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed33;outline:none}.fill-blank-input:disabled{background-color:#f9fafb;border-color:#d1d5db;color:#6b7280}.fill-blank-container{margin-top:12px}.submit-fill-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;flex-shrink:0;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.submit-fill-button:hover:not(:disabled){box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.submit-fill-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.fill-blank-text{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.fill-blank-text>*{flex-shrink:0}.question-type-tag{background:linear-gradient(135deg,#f093fb,#f5576c);border-radius:12px;color:#fff;font-size:12px;font-weight:500;margin-left:8px;padding:2px 8px}.explanation{background:#ffffff80;border-left:3px solid #4f46e5;border-radius:6px;font-size:13px;margin-top:8px;padding:8px}.correct-answer-display{background:#f3f4f6;border-radius:8px;color:#4b5563;font-size:14px;margin-top:12px;padding:12px}.correct-answer-display strong{color:#10b981;margin-left:4px}.answer-feedback{animation:fadeIn .3s ease}.user-message .message-content,.user-message .message-content *{color:#fff!important}.user-message .markdown-content{color:#fff}.user-message .markdown-content code{background-color:#fff3;color:#fff}.user-message .markdown-content pre{background-color:#ffffff1a;color:#fff}@media (max-width:640px){.fill-blank-input{font-size:13px;max-width:80px;min-width:50px;padding:4px 6px}.fill-blank-text{gap:2px}}.feedback-trigger{background:none;border:1px solid #e5e7eb;border-radius:6px;color:#9ca3af;cursor:pointer;font-size:11px;margin-top:4px;padding:2px 8px;transition:all .2s}.feedback-trigger:hover{background:#fef2f2;border-color:#ef4444;color:#ef4444}.evaluation-modal-overlay{align-items:center;animation:evalFadeIn .3s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes evalFadeIn{0%{opacity:0}to{opacity:1}}.evaluation-modal{animation:evalSlideUp .3s ease;background:#fff;border:1px solid #00000014;border-radius:16px;box-shadow:0 20px 60px #00000026;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}@keyframes evalSlideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.modal-header{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:none;border-radius:16px 16px 0 0;padding:20px 30px}.modal-header h2{color:#fff;font-size:1.6rem;margin:0}.close-btn{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:2rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.close-btn:hover{background:#fff3;transform:rotate(90deg)}.modal-content{color:#2c3e50;padding:30px}.task-info{margin-bottom:30px;text-align:center}.task-info h3{color:#2c3e50;font-size:1.3rem;margin:0 0 20px}.overall-score{gap:30px}.overall-score,.score-circle{align-items:center;display:flex;justify-content:center}.score-circle{border-radius:50%;height:120px;position:relative;width:120px}.score-circle:before{background:#fff;border-radius:50%;content:"";height:100px;position:absolute;width:100px}.score-inner{position:relative;text-align:center;z-index:1}.score-value{color:#2c3e50;display:block;font-size:2.5rem;font-weight:700}.score-label{color:#7f8c8d;font-size:1rem}.score-emoji{animation:evalBounce 2s infinite;font-size:3rem}@keyframes evalBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.detailed-scores{background:#f8f9fa;border:1px solid #0000000f;border-radius:12px;margin-bottom:25px;padding:20px}.detailed-scores h4{color:#2c3e50;font-size:1.1rem;margin:0 0 20px}.score-bars{display:flex;flex-direction:column;gap:15px}.score-item{align-items:center;display:flex;gap:15px}.score-item .score-label{color:#2c3e50;font-size:.9rem;font-weight:500;width:80px}.score-bar-container{background:#00000014;border-radius:6px;flex:1 1;height:12px;overflow:hidden}.score-bar{border-radius:6px;height:100%;transition:width 1s ease}.score-item .score-value{color:#2c3e50;font-size:.9rem;font-weight:700;text-align:right;width:50px}.feedback-section{background:#f8f9fa;border:1px solid #0000000f;border-radius:12px;margin-bottom:25px;padding:20px}.feedback-section h4{color:#2c3e50;font-size:1.1rem;margin:0 0 15px}.feedback-content{color:#2c3e50;font-size:.95rem;line-height:1.6;max-height:200px;overflow-y:auto;padding-right:10px}.feedback-content::-webkit-scrollbar{width:6px}.feedback-content::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.feedback-content::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.suggestions-section{background:#f8f9fa;border:1px solid #0000000f;border-radius:12px;margin-bottom:25px;padding:20px}.suggestions-section h4{color:#2c3e50;font-size:1.1rem;margin:0 0 15px}.suggestions-list{list-style:none;margin:0;padding:0}.suggestion-item{align-items:flex-start;background:#fff;border:1px solid #0000000f;border-radius:8px;display:flex;gap:10px;margin-bottom:10px;padding:10px;transition:all .3s ease}.suggestion-item:hover{background:#f0f4ff;transform:translateX(5px)}.suggestion-item:last-child{margin-bottom:0}.suggestion-icon{flex-shrink:0;font-size:1.2rem}.suggestion-item span:last-child{color:#2c3e50;font-size:.9rem;line-height:1.4}.modal-actions{display:flex;gap:15px;justify-content:center}.action-btn{border-radius:25px;font-size:1rem;min-width:120px;padding:12px 30px}.action-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.action-btn.primary:hover{box-shadow:0 5px 15px #667eea4d;transform:translateY(-2px)}.action-btn.secondary{background:#f0f0f0;border:1px solid #0000001a;color:#2c3e50}.action-btn.secondary:hover{background:#e0e0e0;transform:translateY(-2px)}.knowledge-quiz-overlay{align-items:center;animation:evalFadeIn .3s ease;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.knowledge-quiz{animation:evalSlideUp .3s ease;background:#fff;border-radius:16px;box-shadow:0 15px 40px #0003;max-width:400px;padding:25px;width:90%}.quiz-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.quiz-header h3{color:#2c3e50;font-size:1.2rem;margin:0}.quiz-timer{align-items:center;background:#f0f0f0;border-radius:20px;display:flex;gap:5px;padding:8px 15px}.timer-icon{font-size:1rem}.timer-value{color:#e74c3c;font-size:1.2rem;font-weight:700}.timer-unit{color:#7f8c8d;font-size:.9rem}.quiz-content{text-align:center}.quiz-question{color:#2c3e50;font-size:1.05rem;line-height:1.5;margin:0 0 25px}.quiz-options{display:flex;gap:15px;justify-content:center;margin-bottom:20px}.quiz-option-btn{background:#fff;border:2px solid #0000001a;border-radius:25px;color:#2c3e50;cursor:pointer;font-size:1rem;font-weight:600;min-width:120px;padding:12px 30px;transition:all .3s ease}.quiz-option-btn:hover:not(:disabled){background:#f0f4ff;border-color:#667eea;transform:translateY(-2px)}.quiz-option-btn:disabled{cursor:default}.quiz-option-btn.correct{background:#2ecc71;border-color:#2ecc71;color:#fff}.quiz-option-btn.incorrect{background:#e74c3c;border-color:#e74c3c;color:#fff}.quiz-result{align-items:center;border-radius:10px;display:flex;font-weight:600;gap:10px;justify-content:center;margin-top:15px;padding:12px}.quiz-result.correct{background:#2ecc711a;color:#27ae60}.quiz-result.incorrect{background:#e74c3c1a;color:#e74c3c}.result-icon{font-size:1.2rem}@media (max-width:768px){.evaluation-modal{margin:10px;width:95%}.modal-header{padding:15px 20px}.modal-content{padding:20px}.overall-score{flex-direction:column;gap:20px}.score-circle{height:100px;width:100px}.score-circle:before{height:80px;width:80px}.score-value{font-size:2rem}.score-emoji{font-size:2.5rem}.score-item{align-items:flex-start;flex-direction:column;gap:8px}.score-bar-container,.score-item .score-label{width:100%}.score-item .score-value{text-align:left;width:100%}.modal-actions{flex-direction:column}.action-btn{width:100%}.knowledge-quiz{padding:20px;width:95%}.quiz-options{flex-direction:column}.quiz-option-btn{width:100%}}.prerequisite-modal-overlay{align-items:center;animation:fadeIn .3s ease;background-color:#000000d9;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.prerequisite-modal{animation:slideUp .3s ease;background:linear-gradient(135deg,#1a1a2e,#16213e);border:1px solid #ffffff1a;border-radius:16px;box-shadow:0 20px 60px #00000080;max-height:90vh;max-width:800px;overflow-y:auto;padding:24px;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.prerequisite-modal-header{margin-bottom:20px;text-align:center}.prerequisite-modal-header h3{color:#fff;font-size:24px;margin:0 0 8px}.prerequisite-subtitle{color:#a0a0b8;font-size:14px;margin:0}.prerequisite-video-container{background:#000;border-radius:12px;margin-bottom:16px;overflow:hidden}.prerequisite-video{display:block;max-height:450px;width:100%}.prerequisite-video-info{align-items:center;background:#ffffff0d;border-radius:8px;display:flex;gap:8px;margin-bottom:20px;padding:12px 16px}.video-title-label{color:#6b6b80;font-size:14px}.video-title{color:#fff;font-size:14px;font-weight:500}.prerequisite-modal-actions{display:flex;gap:12px;justify-content:center}.btn-skip{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#a0a0b8;cursor:pointer;font-size:14px;padding:12px 24px;transition:all .2s ease}.btn-skip:hover{background:#ffffff26;color:#fff}.btn-watched{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .2s ease}.btn-watched:hover{box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.pending-task-info{align-items:center;border-top:1px solid #ffffff1a;display:flex;gap:8px;justify-content:center;margin-top:16px;padding-top:16px;text-align:center}.pending-label{color:#6b6b80;font-size:14px}.pending-title{color:#667eea;font-size:14px;font-weight:500}.warmup-overlay{align-items:center;animation:warmup-fade .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}@keyframes warmup-fade{0%{opacity:0}to{opacity:1}}.warmup-modal{animation:warmup-pop .22s ease;background:#1e2233;border:1px solid #ffffff1a;border-radius:16px;box-shadow:0 12px 48px #00000073;color:#fff;max-height:80vh;max-width:520px;overflow-y:auto;padding:24px;width:92%}@keyframes warmup-pop{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.warmup-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.warmup-header h2{font-size:20px;font-weight:700;margin:0}.warmup-close{background:#0000;border:none;color:#fff9;cursor:pointer;font-size:20px;line-height:1;padding:4px}.warmup-close:hover{color:#fff}.warmup-subtitle{font-size:13px;margin:0 0 18px;opacity:.75}.warmup-subtitle strong{color:#f6d365;font-size:15px}.warmup-empty{opacity:.8;padding:32px 0;text-align:center}.warmup-list{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.warmup-item{align-items:center;background:#ffffff0d;border:1px solid #ffffff14;border-radius:10px;display:flex;gap:12px;justify-content:space-between;padding:12px 14px}.warmup-item-info{display:flex;flex-direction:column;gap:4px;min-width:0}.warmup-item-title{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warmup-item-meta{align-items:center;display:flex;font-size:11px;gap:10px;opacity:.65}.warmup-item-difficulty{color:#f6d365}.warmup-start-btn{background:linear-gradient(135deg,#4facfe,#00f2fe);border:none;border-radius:8px;color:#fff;cursor:pointer;flex-shrink:0;font-size:13px;font-weight:600;padding:8px 16px;transition:transform .12s ease}.warmup-start-btn:hover{transform:translateY(-1px)}.warmup-footer{display:flex;justify-content:center;margin-top:18px}.warmup-later-btn{background:#0000;border:1px solid #ffffff26;border-radius:8px;color:#fff9;cursor:pointer;font-size:13px;padding:8px 22px}.warmup-later-btn:hover{border-color:#ffffff4d;color:#fff}.review-badge-btn{align-items:center;background:linear-gradient(135deg,#f6d3652e,#f093fb24);border:1px solid #f6d36566;border-radius:10px;color:#f6d365;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;margin-bottom:12px;padding:10px 14px;position:relative;transition:transform .12s ease;width:100%;z-index:50}.review-badge-btn:hover{transform:translateY(-1px)}.review-badge-count{align-items:center;background:#ff5b6a;border-radius:10px;color:#fff;display:inline-flex;font-size:12px;font-weight:700;height:20px;justify-content:center;min-width:20px;padding:0 6px}.admin-panel{background:linear-gradient(135deg,#667eea,#764ba2);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;padding:20px}.admin-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px 30px}.admin-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#333;font-size:28px;font-weight:700;margin:0}.back-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 10px #667eea4d;color:#fff;padding:12px 24px}.back-btn:hover{box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.admin-tabs{background:#fff;border-radius:12px;box-shadow:0 4px 15px #00000014;display:flex;gap:5px;margin-bottom:30px;padding:10px}.tab-btn{background:#0000;border:none;border-radius:8px;color:#666;cursor:pointer;flex:1 1;font-size:15px;font-weight:600;padding:15px 20px;text-align:center;transition:all .3s ease}.tab-btn:hover{background:#f8f9fa;color:#333}.tab-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #667eea4d;color:#fff}.admin-content{background:#fff;border-radius:16px;box-shadow:0 8px 30px #0000001a;min-height:500px;padding:30px;position:relative}.admin-message{animation:slideIn .3s ease;background:linear-gradient(135deg,#d4edda,#c3e6cb);border:2px solid #c3e6cb;border-radius:10px;justify-content:space-between;margin-bottom:25px;padding:15px 20px}.admin-message,.close-message{align-items:center;color:#155724;display:flex}.close-message{background:none;border:none;border-radius:50%;cursor:pointer;font-size:22px;height:28px;justify-content:center;padding:0;transition:background .3s;width:28px}.close-message:hover{background:#0000001a}.loading{color:#666}.loading:after{border:4px solid #f3f3f3;border-top-color:#667eea}.generate-tab{margin:0 auto;max-width:1200px}.generate-tab-layout{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr;margin-top:20px}@media (max-width:900px){.generate-tab-layout{grid-template-columns:1fr}}.generator-section{display:flex;flex-direction:column;gap:20px}.generated-problems-section{background:#fff;border:2px solid #f0f0f0;border-radius:16px;box-shadow:0 4px 20px #00000014;overflow-y:auto;padding:25px}.generated-problems-section h4{border-bottom:2px solid #f0f0f0;color:#333;font-size:18px;font-weight:700;margin-bottom:20px;margin-top:0;padding-bottom:15px}.no-problems-message{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:10px;color:#999;padding:40px 20px;text-align:center}.no-problems-message p{font-size:15px;margin:10px 0}.generated-problems-list{display:flex;flex-direction:column;gap:20px}.generator-intro{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 6px 20px #667eea4d;color:#fff;margin-bottom:30px;padding:30px}.generator-intro p{color:#c3e6cb}.generator-intro h4{font-size:22px;font-weight:700;margin-bottom:20px;margin-top:0}.generator-intro ul{margin:15px 0 0 25px;padding:0}.generator-intro li{line-height:1.6;margin-bottom:10px;padding-left:10px;position:relative}.generator-intro li:before{color:#4caf50;content:"✓";font-weight:700;left:-20px;position:absolute}.generator-form{background:#fff;border:2px solid #f0f0f0;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:30px}.generator-form h4{border-bottom:2px solid #f0f0f0;color:#333;font-size:20px;font-weight:700;margin-bottom:25px;margin-top:0;padding-bottom:10px}.form-group{margin-bottom:25px}.form-group label{color:#333;display:block;font-size:15px;margin-bottom:10px}.form-input,.form-select,.form-textarea{background:#fafafa;border:2px solid #e0e0e0;border-radius:10px;font-family:inherit;font-size:15px;padding:14px 18px;transition:all .3s ease;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-textarea{font-family:Consolas,Monaco,monospace;line-height:1.5;min-height:120px;resize:vertical}.difficulty-slider{-webkit-appearance:none;background:linear-gradient(90deg,#4caf50,#ffc107,#f44336);border-radius:4px;height:8px;margin:15px 0;outline:none;width:100%}.difficulty-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border:3px solid #667eea;border-radius:50%;box-shadow:0 3px 8px #0003;cursor:pointer;height:24px;-webkit-transition:transform .2s;transition:transform .2s;width:24px}.difficulty-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.difficulty-display{color:#ffc107;font-size:20px;font-weight:600;margin-top:15px;text-align:center}.difficulty-text{color:#666;font-size:15px;font-weight:400;margin-left:10px}.generate-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:16px;font-weight:700;margin-top:10px;padding:16px;transition:all .3s ease;width:100%}.generate-btn:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-3px)}.generate-btn:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.generation-status{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:2px solid #bbdefb;border-radius:10px;color:#1976d2;margin:20px 0;padding:20px;text-align:center}.generation-status .spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:40px;margin:0 auto 15px;width:40px}.generation-status p{font-size:15px;font-weight:600;margin:0}.generation-status.success{background:linear-gradient(135deg,#d4edda,#c3e6cb);border:2px solid #c3e6cb;color:#155724}.generation-status.error{background:linear-gradient(135deg,#f8d7da,#f5c6cb);border:2px solid #f5c6cb;color:#721c24}.generated-problem{background:#fff;border:2px solid #f0f0f0;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:30px}.generated-problem h4{border-bottom:2px solid #f0f0f0;color:#333;font-size:20px;font-weight:700;margin-bottom:25px;margin-top:0;padding-bottom:10px}.problem-preview{max-height:600px;overflow-y:auto;padding-right:10px}.problem-preview::-webkit-scrollbar{width:8px}.problem-preview::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.problem-preview::-webkit-scrollbar-thumb{background:#667eea;border-radius:4px}.problem-preview::-webkit-scrollbar-thumb:hover{background:#764ba2}.preview-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:25px;padding-bottom:15px}.preview-header h5{color:#333;flex:1 1;font-size:18px;font-weight:700;margin:0;min-width:200px}.preview-category{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:20px;color:#1976d2;font-size:13px;font-weight:600;letter-spacing:.5px;padding:6px 16px;text-transform:uppercase}.preview-difficulty{color:#ffc107;font-size:18px;font-weight:600}.preview-section{margin-bottom:30px}.preview-section h6{align-items:center;color:#555;display:flex;font-size:16px;font-weight:700;gap:10px;margin:0 0 15px}.preview-section h6:before{color:#667eea;content:"▶";font-size:12px}.preview-section p{color:#444;font-size:15px;line-height:1.7;margin:0 0 15px}.preview-section pre{background:#2d2d2d;border:1px solid #444;border-radius:8px;color:#f8f8f2;font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.5;margin:12px 0;overflow-x:auto;padding:18px}.preview-section ul{margin:10px 0 0 25px;padding:0}.preview-section li{color:#444;line-height:1.6;margin-bottom:10px;padding-left:5px;position:relative}.preview-section li:before{color:#667eea;content:"•";font-weight:700;left:-15px;position:absolute}.example{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin-bottom:10px;padding:12px}.example p{color:#495057;font-size:13px;font-weight:600;margin:0 0 8px}.example pre{background:#e9ecef;border:1px solid #dee2e6;color:#212529;font-size:12px;padding:10px}.preview-actions{border-top:2px solid #f0f0f0;display:flex;gap:15px;margin-top:30px;padding-top:20px}.regenerate-btn,.save-btn{border:none;border-radius:10px;cursor:pointer;flex:1 1;font-size:15px;font-weight:600;padding:14px;transition:all .3s ease}.save-btn{background:linear-gradient(135deg,#4caf50,#45a049);box-shadow:0 4px 15px #4caf504d}.save-btn:hover{box-shadow:0 6px 20px #4caf5066}.regenerate-btn{background:linear-gradient(135deg,#2196f3,#1976d2);box-shadow:0 4px 15px #2196f34d;color:#fff}.regenerate-btn:hover{box-shadow:0 6px 20px #2196f366;transform:translateY(-2px)}.generated-problem-actions{display:flex;flex-wrap:wrap;gap:10px}.generated-problem-actions .action-btn{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;min-width:120px;padding:10px 16px;text-align:center;transition:all .3s ease}.generated-problem-actions .save-btn{background:linear-gradient(135deg,#4caf50,#45a049);box-shadow:0 2px 8px #4caf504d;color:#fff}.generated-problem-actions .save-btn:hover{box-shadow:0 4px 12px #4caf5066;transform:translateY(-2px)}.generated-problem-actions .remove-btn{background:linear-gradient(135deg,#f44336,#d32f2f);box-shadow:0 2px 8px #f443364d;color:#fff}.generated-problem-actions .remove-btn:hover{box-shadow:0 4px 12px #f4433666;transform:translateY(-2px)}.batch-actions{border-top:2px solid #f0f0f0;margin-top:20px;padding-top:20px}.save-all-btn{background:linear-gradient(135deg,#ff9800,#f57c00);border:none;border-radius:10px;box-shadow:0 4px 15px #ff98004d;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:16px;transition:all .3s ease;width:100%}.save-all-btn:hover{box-shadow:0 6px 20px #ff980066;transform:translateY(-2px)}.generator-tips{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:2px solid #bbdefb;border-radius:16px;margin-top:30px;padding:25px}.generator-tips h4{align-items:center;color:#1976d2;display:flex;font-size:18px;font-weight:700;gap:10px;margin-bottom:20px;margin-top:0}.generator-tips h4:before{content:"💡";font-size:20px}.generator-tips ul{margin:0;padding:0 0 0 20px}.generator-tips li{color:#333;line-height:1.6;margin-bottom:12px;padding-left:5px;position:relative}.generator-tips li:before{color:#1976d2;content:"→";font-weight:700;left:-20px;position:absolute}.users-tab h3{border-bottom:2px solid #f0f0f0;color:#333;font-size:22px;font-weight:700;margin-bottom:25px;margin-top:0;padding-bottom:15px}.users-table{background:#fff;border-collapse:collapse;border-radius:12px;box-shadow:0 4px 15px #00000014;overflow:hidden;width:100%}.problems-table thead,.users-table thead{background:linear-gradient(135deg,#667eea,#764ba2)!important}.problems-table thead th,.users-table thead th{color:#f8f8ff}.problems-table th,.users-table th{color:#fff;font-size:14px;font-weight:600;letter-spacing:.5px;padding:18px 15px;text-align:left;text-transform:uppercase}.users-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background .3s}.users-table tbody tr:hover{background:#f8f9fa}.problems-table tbody td,.users-table tbody td{color:#555;font-size:14px;padding:16px 15px;vertical-align:middle}.role-badge{border-radius:20px;display:inline-block;font-size:12px;font-weight:600;letter-spacing:.5px;padding:6px 12px;text-transform:uppercase}.role-badge.admin{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.role-badge.user{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.action-btn{border-radius:6px;font-size:13px;padding:8px 16px}.deactivate-btn{background:linear-gradient(135deg,#f44336,#d32f2f);box-shadow:0 2px 8px #f443364d;color:#fff}.deactivate-btn:hover:not(:disabled){box-shadow:0 4px 12px #f4433666;transform:translateY(-1px)}.deactivate-btn:disabled{cursor:not-allowed;opacity:.5}.problems-tab h3{border-bottom:2px solid #f0f0f0;color:#333;font-size:22px;font-weight:700;margin-bottom:25px;margin-top:0;padding-bottom:15px}.debug-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;margin-bottom:25px;padding:15px 20px}.debug-info p{color:#666;font-family:Consolas,Monaco,monospace;font-size:14px;margin:8px 0}.problems-list{grid-gap:20px;display:grid;gap:20px}.generated-problem-item{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:20px;transition:all .3s ease}.generated-problem-item:hover{background:#fff;border-color:#667eea;box-shadow:0 4px 12px #667eea26}.generated-problem-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:15px}.generated-problem-header h5{color:#333;flex:1 1;font-size:16px;font-weight:700;margin:0;min-width:200px}.problem-source{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;font-size:12px;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.generated-problem-info{border-bottom:1px solid #e9ecef;margin-bottom:15px;padding-bottom:15px}.generated-problem-info p{color:#555;font-size:14px;margin:8px 0}.generated-problem-info strong{color:#333;margin-right:5px}.generated-problem-info p:nth-child(3){word-wrap:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;max-height:4.5em;overflow:hidden;text-overflow:ellipsis;white-space:normal}.problem-item{background:#fff;border:2px solid #f0f0f0;border-radius:12px;box-shadow:0 3px 12px #00000014;padding:25px;transition:all .3s ease}.problem-item:hover{border-color:#667eea;box-shadow:0 6px 20px #0000001f;transform:translateY(-3px)}.problem-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:15px}.problem-header h4{color:#333;flex:1 1;font-size:18px;font-weight:700;margin:0;min-width:200px}.problem-details{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:15px}.detail-section,.problem-details{margin-bottom:15px}.detail-section:last-child{margin-bottom:0}.detail-section h6{align-items:center;color:#555;display:flex;font-size:14px;font-weight:600;gap:8px;margin:0 0 10px}.detail-section h6:before{color:#667eea;content:"▶";font-size:10px}.detail-section pre{background:#2d2d2d;border:1px solid #444;border-radius:6px;color:#f8f8f2;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.4;margin:8px 0;overflow-x:auto;padding:12px}.status-badge{font-size:13px;padding:6px 16px}.status-badge.active{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.status-badge.inactive{background:linear-gradient(135deg,#9e9e9e,#757575);color:#fff}.problem-info{border-bottom:1px solid #f0f0f0;display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px;padding-bottom:15px}.problem-info span{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;color:#666;font-size:14px;padding:6px 12px}.problem-actions{display:flex;flex-wrap:wrap;gap:12px}.toggle-btn{background:linear-gradient(135deg,#2196f3,#1976d2);box-shadow:0 2px 8px #2196f34d;color:#fff}.toggle-btn:hover{box-shadow:0 4px 12px #2196f366;transform:translateY(-1px)}.edit-btn{background:linear-gradient(135deg,#ff9800,#f57c00);box-shadow:0 2px 8px #ff98004d;color:#fff}.edit-btn:hover{box-shadow:0 4px 12px #ff980066;transform:translateY(-1px)}.delete-btn{background:linear-gradient(135deg,#f44336,#d32f2f);box-shadow:0 2px 8px #f443364d;color:#fff}.delete-btn:hover{box-shadow:0 4px 12px #f4433666;transform:translateY(-1px)}.stats-tab h3{border-bottom:2px solid #f0f0f0;color:#333;font-size:22px;font-weight:700;margin-bottom:25px;margin-top:0;padding-bottom:15px}.stats-grid{grid-gap:25px;gap:25px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.stat-card{background:#fff;border:2px solid #f0f0f0;border-radius:16px;box-shadow:0 4px 15px #00000014;overflow:hidden;padding:30px;position:relative;transition:all .3s ease}.stat-card:hover{border-color:#667eea;box-shadow:0 8px 25px #0000001f;transform:translateY(-5px)}.stat-card:before{background:linear-gradient(135deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0}.stat-card:nth-child(2):before{background:linear-gradient(135deg,#4caf50,#45a049)}.stat-card:nth-child(3):before{background:linear-gradient(135deg,#ff9800,#f57c00)}.stat-card h4{align-items:center;color:#333;display:flex;font-size:18px;font-weight:700;gap:10px;margin-bottom:20px;margin-top:0}.stat-card h4:before{content:"📊";font-size:20px}.stat-card p{align-items:center;color:#555;display:flex;font-size:15px;justify-content:space-between;margin:12px 0}.stat-card p span{background:#f8f9fa;border-radius:6px;color:#333;font-size:16px;font-weight:700;padding:4px 12px}.stat-number{color:#007bff;font-size:32px;font-weight:700;margin:10px 0}.stat-number,.stat-sub{display:block;text-align:center}.stat-sub{color:#6c757d;font-size:12px;margin:0}.problems-table{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden}.btn-danger,.btn-success,.btn-warning{border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;padding:6px 12px;transition:all .2s}.btn-success{background:#28a745;color:#fff}.btn-warning{background:#ffc107;color:#212529}.btn-danger{background:#dc3545;color:#fff}.btn-success:hover{background:#218838}.btn-warning:hover{background:#e0a800}.btn-danger:hover{background:#c82333}.admin-actions{display:flex;gap:15px;margin-top:20px}.refresh-btn{background:#6c757d;border:none;border-radius:8px;cursor:pointer;font-weight:500;padding:12px 24px;transition:all .3s}.refresh-btn:hover{background:#5a6268}@media (max-width:768px){.admin-panel{padding:15px}.admin-header{padding:15px;text-align:center}.admin-tabs{flex-direction:column}.tab-btn{width:100%}.admin-content{padding:20px}.users-table{display:block;overflow-x:auto}.users-table td,.users-table th{min-width:100px;white-space:nowrap}.problem-header{align-items:flex-start;flex-direction:column;gap:10px}.problem-actions{justify-content:center}.stats-grid{grid-template-columns:1fr}.preview-actions{flex-direction:column}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-header{align-items:flex-start;flex-direction:column;gap:15px}.admin-tabs{overflow-x:auto;width:100%}table{display:block;overflow-x:auto}}@media (max-width:480px){.admin-header h2{font-size:24px}.generated-problem,.generator-form,.problem-item,.stat-card{padding:20px}.stats-grid{grid-template-columns:1fr}}@keyframes pulse{0%{box-shadow:0 0 0 0 #667eea66}70%{box-shadow:0 0 0 10px #667eea00}to{box-shadow:0 0 0 0 #667eea00}}.pulse{animation:pulse 2s infinite}.text-success{color:#4caf50}.text-warning{color:#ff9800}.text-danger{color:#f44336}.text-info{color:#2196f3}.bg-success{background:#d4edda}.bg-warning{background:#fff3cd}.bg-danger{background:#f8d7da}.bg-info{background:#d1ecf1}.divider{background:linear-gradient(90deg,#0000,#e0e0e0,#0000);height:1px;margin:30px 0}.card-shadow{box-shadow:0 4px 15px #00000014}.card-shadow:hover{box-shadow:0 8px 25px #0000001f}.gradient-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text}.skeleton{animation:loading 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:4px}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{color:#999;padding:60px 20px;text-align:center}.empty-state-icon{font-size:48px;margin-bottom:20px;opacity:.5}.empty-state h4{color:#666;font-size:18px;margin:0 0 10px}.empty-state p{font-size:14px;margin:0}.actions{flex-wrap:wrap;gap:8px}thead{background:#3e648a}th{border-bottom:2px solid #dee2e6;color:#eff29e;font-weight:600;text-align:left}td,th{padding:15px}td{border-bottom:1px solid #e9ecef}tbody tr:hover{background:#f8f9fa}.average-score,.submission-count{font-weight:700;text-align:center}.average-score{color:#1890ff}.completion-rate{color:#52c41a;font-weight:700;text-align:center}.stat-sub{color:#666;font-size:14px;margin-top:5px}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;max-height:80vh;max-width:800px;overflow-y:auto;padding:20px;position:relative}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.modal-header h3{font-size:18px;margin:0}.close-btn{background:none;border:none;color:#999;cursor:pointer;font-size:24px}.close-btn:hover{color:#333}.submission-stats{background:#f5f5f5;border-radius:4px;display:flex;gap:20px;margin-bottom:15px;padding:10px}.submission-stats .stat-item{font-size:14px}.submission-stats .completed{color:#52c41a}.submission-stats .not-completed{color:#ff4d4f}.submissions-table{border-collapse:collapse;width:100%}.submissions-table td,.submissions-table th{border-bottom:1px solid #eee;padding:10px;text-align:left}.submissions-table th{background:#fafafa;font-weight:600}.submissions-table tr:hover{background:#f9f9f9}.status-tag{border-radius:4px;font-size:12px;padding:2px 8px}.status-tag.completed{background:#f6ffed;color:#52c41a}.status-tag.not-completed{background:#fff2f0;color:#ff4d4f}.user-profile{background:var(--bg-main);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;padding:0}.profile-header{align-items:center;background:var(--bg-white);border-radius:0;box-shadow:0 2px 10px #0000000d;display:flex;height:70px;justify-content:space-between;margin-bottom:30px;padding:0 30px}.profile-header h2{color:var(--text-dark);font-size:20px;font-weight:700;margin:0}.back-btn{background:var(--bg-main);border:1px solid var(--border-color);border-radius:var(--border-radius-md);color:var(--text-medium);cursor:pointer;font-size:14px;font-weight:600;padding:8px 20px;transition:all .3s ease}.back-btn:hover{background:var(--primary-color);border-color:var(--primary-color);box-shadow:0 2px 10px #667eea4d;color:#fff;transform:none}.profile-content{display:flex;flex-direction:column;gap:25px;margin:0 auto;max-width:1200px;padding:30px}.user-info-card{align-items:center;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--card-shadow);display:flex;gap:30px;padding:30px;transition:all .3s ease}.user-info-card:hover{box-shadow:var(--hover-shadow);transform:translateY(-2px)}.user-avatar{flex-shrink:0}.avatar-circle{align-items:center;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border-radius:50%;box-shadow:0 4px 15px #667eea4d;color:#fff;display:flex;font-size:48px;font-weight:700;height:120px;justify-content:center;transition:all .3s ease;width:120px}.avatar-circle:hover{box-shadow:0 6px 20px #667eea66;transform:scale(1.05)}.user-details{flex:1 1}.user-details h3{color:var(--text-dark);font-size:24px;font-weight:700;margin:0 0 8px}.user-email{color:var(--text-medium);font-size:16px;margin:0 0 12px}.user-role-badge{border-radius:20px;display:inline-block;font-size:14px;font-weight:600;margin-bottom:12px;padding:6px 16px;transition:all .3s ease}.user-role-badge.admin{background:linear-gradient(135deg,var(--warning-color) 0,#f57c00 100%);color:#fff}.user-role-badge.user{background:linear-gradient(135deg,var(--success-color) 0,#45a049 100%);color:#fff}.join-date{color:var(--text-light);font-size:14px;font-style:italic;margin:0}.progress-stats-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--card-shadow);padding:30px;transition:all .3s ease}.progress-stats-card:hover{box-shadow:var(--hover-shadow);transform:translateY(-2px)}.progress-stats-card h3{color:var(--text-dark);font-size:20px;font-weight:700;gap:10px;margin:0 0 20px}.card-header,.progress-stats-card h3{align-items:center;border-bottom:2px solid var(--border-color);display:flex;padding-bottom:10px}.card-header{justify-content:space-between;margin-bottom:20px}.card-header h3{border-bottom:none;color:var(--text-dark);font-size:20px;font-weight:700;margin:0;padding-bottom:0}.card-icon{font-size:24px;opacity:.7}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:20px}.stat-item{background:var(--bg-main);border:2px solid var(--border-color);border-radius:var(--border-radius-md);overflow:hidden;padding:20px;position:relative;text-align:center;transition:all .3s ease}.stat-item:before{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.stat-item:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #667eea26;transform:translateY(-3px)}.stat-item:hover:before{transform:scaleX(1)}.stat-value{color:var(--primary-color);font-size:32px;font-weight:700;margin-bottom:8px;transition:all .3s ease}.stat-item:hover .stat-value{transform:scale(1.05)}.stat-label{color:var(--text-medium);font-size:14px;font-weight:600}.last-activity{border-top:1px solid var(--border-color);color:var(--text-light);font-size:14px;margin:20px 0 0;padding-top:15px;text-align:center}.detailed-progress-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--card-shadow);padding:30px;transition:all .3s ease}.detailed-progress-card:hover{box-shadow:var(--hover-shadow);transform:translateY(-2px)}.detailed-progress-card h3{align-items:center;border-bottom:2px solid var(--border-color);color:var(--text-dark);display:flex;font-size:20px;font-weight:700;gap:10px;margin:0 0 20px;padding-bottom:10px}.progress-table-container{border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:0 2px 8px #00000008;overflow-x:auto}.progress-table{background:var(--bg-white);border-collapse:collapse;min-width:800px;width:100%}.progress-table thead{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));position:-webkit-sticky;position:sticky;top:0;z-index:10}.progress-table th{border-bottom:2px solid var(--border-color);color:#fff;font-size:14px;font-weight:600;letter-spacing:.5px;padding:15px;text-align:left;text-transform:uppercase;white-space:nowrap}.progress-table tbody tr{border-bottom:1px solid var(--border-color);transition:all .3s ease}.progress-table tbody tr:hover{background:var(--bg-main);box-shadow:0 2px 8px #0000000d;transform:translateY(-1px)}.progress-table td{color:var(--text-medium);font-size:14px;padding:12px 15px;vertical-align:middle;white-space:nowrap}.progress-table tbody tr.even-row{background:var(--bg-white)}.progress-table tbody tr.odd-row{background:var(--bg-main)}.difficulty-stars{color:var(--warning-color);display:inline-flex;font-size:16px;gap:2px}.status-badge{border-radius:20px;box-shadow:0 2px 4px #0000001a;display:inline-block;font-size:12px;font-weight:600;letter-spacing:.5px;padding:6px 14px;text-transform:uppercase;transition:all .3s ease}.status-badge.completed{background:linear-gradient(135deg,var(--success-color) 0,#45a049 100%);color:#fff}.status-badge.in-progress{background:linear-gradient(135deg,var(--primary-color) 0,#1976d2 100%);color:#fff}.status-badge:hover{box-shadow:0 4px 8px #00000026;transform:scale(1.05)}.score-badge{border-radius:20px;box-shadow:0 2px 4px #0000001a;display:inline-block;font-size:12px;font-weight:600;min-width:60px;padding:6px 14px;text-align:center;transition:all .3s ease}.score-badge.excellent{background:linear-gradient(135deg,var(--success-color) 0,#45a049 100%);color:#fff}.score-badge.good{background:linear-gradient(135deg,var(--warning-color) 0,#f57c00 100%);color:#fff}.score-badge.poor{background:linear-gradient(135deg,var(--danger-color) 0,#d32f2f 100%);color:#fff}.score-badge:hover{box-shadow:0 4px 8px #00000026;transform:scale(1.05)}.no-progress{background:var(--bg-main);border:2px dashed var(--border-color);border-radius:var(--border-radius-md);color:var(--text-light);overflow:hidden;padding:60px 20px;position:relative;text-align:center;transition:all .3s ease}.no-progress:hover{background:#f8f9ff;border-color:var(--primary-color);box-shadow:0 4px 12px #667eea1a}.no-progress p{color:var(--text-medium);font-size:16px;margin:0 0 20px}.no-progress-icon{font-size:48px;margin-bottom:16px;transition:all .3s ease}.no-progress:hover .no-progress-icon{transform:scale(1.1) rotate(5deg)}.start-learning-btn{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border:none;border-radius:var(--border-radius-md);box-shadow:0 2px 10px #667eea4d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;overflow:hidden;padding:12px 24px;position:relative;transition:all .3s ease}.start-learning-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.start-learning-btn:hover{box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.start-learning-btn:hover:before{left:100%}.profile-actions{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--card-shadow);display:flex;gap:15px;justify-content:center;margin-top:20px;padding:20px;transition:all .3s ease}.profile-actions:hover{box-shadow:var(--hover-shadow);transform:translateY(-2px)}.action-btn{align-items:center;border:none;border-radius:var(--border-radius-md);box-shadow:0 2px 4px #0000001a;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;overflow:hidden;padding:12px 24px;position:relative;transition:all .3s ease}.action-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.refresh-btn{background:linear-gradient(135deg,var(--primary-color) 0,#1976d2 100%);box-shadow:0 2px 10px #2196f34d;color:#fff}.export-btn{background:linear-gradient(135deg,var(--success-color) 0,#45a049 100%);box-shadow:0 2px 10px #4caf504d;color:#fff}.settings-btn{background:linear-gradient(135deg,var(--warning-color) 0,#f57c00 100%);box-shadow:0 2px 10px #ff98004d;color:#fff}.action-btn:hover{box-shadow:0 4px 15px #0003;transform:translateY(-2px)}.action-btn:hover:before{left:100%}.loading{align-items:center;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--card-shadow);color:var(--text-medium);display:flex;flex-direction:column;font-size:18px;gap:20px;padding:60px;text-align:center}.loading:after{animation:spin 1s linear infinite;border-top:4px solid var(--border-color);border:4px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);content:"";height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.success-message{animation:fadeInOut 3s ease-in-out;background:linear-gradient(135deg,var(--success-color) 0,#45a049 100%);border-radius:var(--border-radius-md);box-shadow:0 2px 10px #4caf504d;color:#fff;font-size:14px;font-weight:600;margin-bottom:20px;overflow:hidden;padding:15px 20px;position:relative;text-align:center}.success-message:before{animation:slideIn 2s ease-in-out;background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes slideIn{0%{left:-100%}to{left:100%}}@keyframes fadeInOut{0%{opacity:0;transform:translateY(-10px)}10%{opacity:1;transform:translateY(0)}90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.user-real-name{font-style:italic;margin:0 0 8px}.user-bio,.user-real-name{color:var(--text-medium);font-size:14px}.user-bio{background:var(--bg-main);border-left:4px solid var(--primary-color);border-radius:var(--border-radius-md);line-height:1.4;margin:10px 0 12px;max-width:500px;padding:10px 15px;transition:all .3s ease}.user-bio:hover{background:#f0f4ff;box-shadow:0 2px 8px #667eea1a}.avatar-image{border-radius:50%;height:100%;object-fit:cover;transition:all .3s ease;width:100%}.avatar-circle:hover .avatar-image{transform:scale(1.1)}.user-location{align-items:center;color:var(--text-medium);display:flex;font-size:14px;gap:6px;margin:8px 0;transition:all .3s ease}.user-location:hover{color:var(--primary-color);transform:translateX(2px)}.user-interests{margin:12px 0}.interests-label{color:var(--text-dark);font-size:14px;font-weight:600;margin-right:10px}.interests-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.interest-tag{background:var(--bg-main);border:1px solid var(--primary-color);border-radius:20px;color:var(--primary-color);font-size:12px;font-weight:600;padding:6px 12px;transition:all .3s ease}.interest-tag:hover{background:var(--primary-color);box-shadow:0 4px 8px #667eea33;color:#fff;transform:translateY(-2px)}.profile-edit-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--card-shadow);margin:0 auto;max-width:800px;padding:30px;transition:all .3s ease}.profile-edit-card:hover{box-shadow:var(--hover-shadow);transform:translateY(-2px)}.profile-edit-card h3{align-items:center;border-bottom:2px solid var(--border-color);color:var(--text-dark);display:flex;font-size:20px;font-weight:700;gap:10px;margin:0 0 20px;padding-bottom:10px}.profile-form{gap:20px}.form-group,.profile-form{display:flex;flex-direction:column}.form-group{gap:8px;position:relative}.form-group label{color:var(--text-medium);font-size:14px;font-weight:600;transition:all .3s ease}.form-group input,.form-group select,.form-group textarea{background:var(--bg-white);border:2px solid var(--border-color);border-radius:var(--border-radius-md);color:var(--text-dark);font-family:inherit;font-size:14px;padding:12px 16px;transition:all .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a;outline:none;transform:translateY(-1px)}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:var(--primary-color)}.form-group textarea{min-height:100px;resize:vertical;transition:all .3s ease}.form-group textarea:focus{min-height:120px}.form-row{display:flex;flex-wrap:wrap;gap:20px}.form-row .form-group{flex:1 1;min-width:200px}.form-hint{color:var(--text-light);font-size:12px;font-style:italic;margin-top:4px;transition:all .3s ease}.form-group:focus-within .form-hint{color:var(--primary-color)}.avatar-group{margin-bottom:10px}.avatar-upload-container{align-items:center;background:var(--bg-main);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);display:flex;flex-direction:column;gap:15px;margin-top:10px;padding:20px;transition:all .3s ease}.avatar-upload-container:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #667eea1a}.avatar-preview{align-items:center;background:var(--bg-white);border:3px dashed var(--border-color);border-radius:50%;display:flex;height:150px;justify-content:center;overflow:hidden;position:relative;transition:all .3s ease;width:150px}.avatar-preview:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #667eea33;transform:scale(1.05)}.avatar-placeholder{color:var(--text-light);font-size:48px;font-weight:700;transition:all .3s ease}.avatar-preview:hover .avatar-placeholder{color:var(--primary-color);transform:scale(1.1)}.avatar-upload-input{display:none}.avatar-upload-btn{align-items:center;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border:none;border-radius:var(--border-radius-md);box-shadow:0 2px 10px #667eea4d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;overflow:hidden;padding:12px 24px;position:relative;transition:all .3s ease}.avatar-upload-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.avatar-upload-btn:hover:not(:disabled){box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.avatar-upload-btn:hover:not(:disabled):before{left:100%}.avatar-upload-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.upload-spinner{animation:spin 1s ease-in-out infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;margin-right:8px;width:16px}.remove-avatar-btn{align-items:center;background:var(--danger-color);border:none;border-radius:50%;box-shadow:0 2px 4px #0003;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;height:24px;justify-content:center;opacity:0;position:absolute;right:5px;top:5px;transition:all .3s ease;visibility:hidden;width:24px}.avatar-preview:hover .remove-avatar-btn{opacity:1;visibility:visible}.remove-avatar-btn:hover{background:#c0392b;box-shadow:0 4px 8px #0000004d;transform:scale(1.1)}.upload-progress-container{margin:10px 0;max-width:300px;width:100%}.upload-progress-bar{background:var(--bg-white);border-radius:4px;box-shadow:inset 0 1px 3px #0000001a;height:8px;overflow:hidden;width:100%}.upload-progress-fill{background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));border-radius:4px;box-shadow:0 0 8px #667eea66;height:100%;transition:width .3s ease}.upload-progress-text{color:var(--primary-color);display:block;margin-top:5px}.upload-error,.upload-progress-text{font-size:12px;font-weight:600;text-align:center}.upload-error{animation:fadeIn .3s ease;background:#e74c3c1a;border-left:4px solid var(--danger-color);border-radius:var(--border-radius-sm);color:var(--danger-color);margin:10px 0;max-width:300px;padding:10px 15px;width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.form-actions{border-top:1px solid var(--border-color);display:flex;gap:15px;justify-content:flex-end;margin-top:10px;padding-top:20px}.cancel-btn{background:var(--bg-main);border:2px solid var(--border-color);border-radius:var(--border-radius-md);color:var(--text-medium);cursor:pointer;font-size:14px;font-weight:600;overflow:hidden;padding:12px 24px;position:relative;transition:all .3s ease}.cancel-btn:before{background:linear-gradient(90deg,#0000,#0000001a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.cancel-btn:hover{background:var(--bg-white);border-color:var(--primary-color);box-shadow:0 4px 8px #0000001a;color:var(--primary-color);transform:translateY(-2px)}.cancel-btn:hover:before{left:100%}.save-btn{align-items:center;background:linear-gradient(135deg,var(--success-color) 0,#45a049 100%);border:none;border-radius:var(--border-radius-md);box-shadow:0 2px 10px #4caf504d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;overflow:hidden;padding:12px 24px;position:relative;transition:all .3s ease}.save-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.save-btn:hover{box-shadow:0 4px 15px #4caf5066;transform:translateY(-2px)}.save-btn:hover:before{left:100%}@media (max-width:768px){.user-profile{padding:0}.profile-header{flex-direction:column;height:auto;text-align:center}.profile-content,.profile-header{gap:15px;padding:15px}.user-info-card{flex-direction:column;gap:20px;padding:20px;text-align:center}.avatar-circle{font-size:40px;height:100px;width:100px}.stats-grid{grid-template-columns:repeat(2,1fr)}.profile-actions{flex-direction:column}.action-btn{justify-content:center;width:100%}.profile-edit-card{padding:20px}.form-actions{flex-direction:column}.cancel-btn,.save-btn{width:100%}.form-row{flex-direction:column}.form-row .form-group{min-width:100%}.avatar-upload-container{padding:15px}.avatar-preview{height:120px;width:120px}.avatar-placeholder{font-size:40px}}@media (max-width:480px){.profile-header h2{font-size:18px}.user-details h3{font-size:20px}.stats-grid{grid-template-columns:1fr}.stat-value{font-size:28px}.progress-table{font-size:12px;min-width:600px}.progress-table td,.progress-table th{padding:8px 10px}.avatar-preview{height:100px;width:100px}.avatar-placeholder{font-size:36px}.form-group input,.form-group select,.form-group textarea{padding:10px 14px}.action-btn,.start-learning-btn{padding:10px 20px}}.dashboard-page{color:var(--text-dark);margin:0 auto;max-width:1200px;min-height:100%;padding:24px}.dashboard-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:24px}.dashboard-card{background:#fff;border:1px solid #00000014;border-radius:14px;box-shadow:0 2px 8px #0000000d;padding:20px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.dashboard-card:hover{box-shadow:0 8px 24px #0000001a;transform:translateY(-3px)}.dashboard-card.streak{border-top:3px solid #ff8a5b}.dashboard-card.solved{border-top:3px solid #43e97b}.dashboard-card.score{border-top:3px solid #f6d365}.dashboard-card.time{border-top:3px solid #4facfe}.card-icon{font-size:32px;margin-bottom:8px}.card-value{font-size:34px;font-weight:700;line-height:1.1}.card-unit{font-size:15px;font-weight:500;margin-left:4px;opacity:.8}.card-label{font-size:13px;margin-top:6px;opacity:.7}.dashboard-section{background:#fff;border:1px solid #00000014;border-radius:14px;box-shadow:0 2px 8px #0000000d;margin-bottom:24px;padding:20px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.section-header h3{font-size:17px;font-weight:600;margin:0}.day-selector{display:flex;gap:8px}.day-btn{background:#f4f7f9;border:1px solid #0000001a;border-radius:8px;color:var(--text-medium);cursor:pointer;font-size:13px;padding:6px 14px;transition:all .2s ease}.day-btn:hover{background:#e9eef2}.day-btn.active{background:linear-gradient(135deg,#4facfe,#00f2fe);border-color:#0000;color:#fff}.dashboard-columns{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr}.dashboard-columns .dashboard-section{margin-bottom:0}.topic-list{display:flex;flex-direction:column;gap:14px}.topic-row{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:1fr 2fr auto}.topic-info{align-items:center;display:flex;gap:8px;min-width:0}.topic-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mastery-badge{border-radius:10px;flex-shrink:0;font-size:11px;padding:2px 8px;white-space:nowrap}.mastery-badge.beginner{background:#ff8a5b33;color:#ff8a5b}.mastery-badge.intermediate{background:#4facfe33;color:#4facfe}.mastery-badge.advanced{background:#43e97b33;color:#43e97b}.mastery-badge.master{background:#f093fb33;color:#f093fb}.topic-bar{background:#00000014;border-radius:4px;height:8px;overflow:hidden}.topic-bar-fill{background:linear-gradient(90deg,#4facfe,#43e97b);border-radius:4px;height:100%;transition:width .4s ease}.topic-accuracy{font-size:13px;font-weight:600;min-width:40px;text-align:right}.dashboard-error,.dashboard-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;opacity:.85;padding:80px 20px}.dashboard-spinner{animation:dashboard-spin .8s linear infinite;border:4px solid #0000001a;border-radius:50%;border-top-color:#4facfe;height:40px;width:40px}@keyframes dashboard-spin{to{transform:rotate(1turn)}}.dashboard-error-icon{font-size:40px}.dashboard-retry-btn{background:linear-gradient(135deg,#4facfe,#00f2fe);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:8px 20px}.dashboard-empty{font-size:14px;opacity:.6;padding:40px 20px;text-align:center}@media (max-width:860px){.dashboard-columns{gap:16px;grid-template-columns:1fr}.dashboard-columns .dashboard-section{margin-bottom:16px}}.leaderboard-page{color:var(--text-dark);margin:0 auto;max-width:760px;min-height:100%;padding:24px}.leaderboard-list{display:flex;flex-direction:column;gap:8px}.leaderboard-row{grid-gap:12px;align-items:center;background:#fff;border:1px solid #00000014;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:grid;gap:12px;grid-template-columns:64px 1fr 96px 96px;padding:12px 16px;transition:transform .15s ease,background .15s ease}.leaderboard-row:not(.header-row):hover{background:#f4f7f9;transform:translateX(3px)}.leaderboard-row.header-row{background:#0000;border:none;font-size:12px;opacity:.6;padding:4px 16px}.leaderboard-row.top{background:linear-gradient(135deg,#f6d36524,#f093fb1a);border-color:#f6d3654d}.leaderboard-row.me{border-color:#4facfe;box-shadow:inset 0 0 0 1px #4facfe}.col-rank{font-size:20px;font-weight:700;text-align:center}.col-user{gap:10px;min-width:0}.col-user,.lb-avatar{align-items:center;display:flex}.lb-avatar{background:linear-gradient(135deg,#4facfe,#00f2fe);border-radius:50%;flex-shrink:0;font-size:15px;font-weight:600;height:36px;justify-content:center;overflow:hidden;width:36px}.lb-avatar img{height:100%;object-fit:cover;width:100%}.lb-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-tag{background:#4facfe;border-radius:8px;color:#fff;display:inline-block;font-size:11px;margin-left:8px;padding:1px 7px;vertical-align:middle}.col-points,.col-solved{font-weight:600;text-align:right}.col-points{color:#e0a800}.leaderboard-empty,.leaderboard-error,.leaderboard-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;opacity:.85;padding:80px 20px;text-align:center}.leaderboard-spinner{animation:leaderboard-spin .8s linear infinite;border:4px solid #0000001a;border-radius:50%;border-top-color:#4facfe;height:40px;width:40px}@keyframes leaderboard-spin{to{transform:rotate(1turn)}}.leaderboard-error-icon{font-size:40px}.leaderboard-retry-btn{background:linear-gradient(135deg,#4facfe,#00f2fe);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:8px 20px}@media (max-width:560px){.leaderboard-row{gap:8px;grid-template-columns:48px 1fr 64px 72px;padding:10px 12px}.col-rank{font-size:16px}}.submissions-page{color:var(--text-dark);margin:0 auto;max-width:900px;min-height:100%;padding:24px}.submissions-list{display:flex;flex-direction:column;gap:12px}.submission-card{background:#fff;border:1px solid #00000014;border-radius:12px;box-shadow:0 2px 8px #0000000d;overflow:hidden;transition:border-color .15s ease}.submission-card.open{border-color:#4facfe66}.submission-summary{align-items:center;cursor:pointer;display:flex;gap:16px;justify-content:space-between;padding:14px 18px;transition:background .15s ease}.submission-summary:hover{background:#00000008}.submission-main{flex:1 1;min-width:0}.submission-title{display:block;font-size:15px;font-weight:600;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.submission-meta{align-items:center;display:flex;flex-wrap:wrap;font-size:12px;gap:8px;opacity:.75}.submission-tag{background:#4facfe1f;border-radius:8px;color:#2d8feb;padding:2px 8px;white-space:nowrap}.submission-tag.difficulty{background:#e0a8001f;color:#c48f00;letter-spacing:1px}.submission-duration,.submission-time{white-space:nowrap}.submission-side{align-items:center;display:flex;flex-shrink:0;gap:12px}.submission-score{font-size:22px;font-weight:700;min-width:44px;text-align:center}.submission-score.high{color:#10b981}.submission-score.mid{color:#d19b00}.submission-score.low{color:#e6653f}.submission-caret{font-size:11px;opacity:.6}.submission-code{background:#f8f9fa;border-top:1px solid #00000014;max-height:420px;overflow:auto}.submission-code pre{color:#2c3e50;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;line-height:1.5;margin:0;padding:16px 18px;white-space:pre}.submission-nocode{font-size:13px;opacity:.6;padding:20px 18px}.submissions-empty,.submissions-error,.submissions-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;opacity:.85;padding:80px 20px;text-align:center}.submissions-spinner{animation:submissions-spin .8s linear infinite;border:4px solid #0000001a;border-radius:50%;border-top-color:#4facfe;height:40px;width:40px}@keyframes submissions-spin{to{transform:rotate(1turn)}}.submissions-error-icon{font-size:40px}.submissions-retry-btn{background:linear-gradient(135deg,#4facfe,#00f2fe);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:8px 20px}@media (max-width:560px){.submission-summary{padding:12px 14px}.submission-score{font-size:18px;min-width:36px}}.badges-page{color:var(--text-dark);margin:0 auto;max-width:900px;min-height:100%;padding:24px}.badges-summary{align-items:center;display:flex;flex-direction:column;gap:4px;margin-bottom:24px}.badges-summary-count{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#f6d365,#f093fb);-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:700}.badges-summary-label{font-size:13px;opacity:.7}.badges-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.badge-card{align-items:center;background:#fff;border:1px solid #00000014;border-radius:14px;box-shadow:0 2px 8px #0000000d;display:flex;flex-direction:column;gap:8px;padding:20px 16px;text-align:center;transition:transform .15s ease,box-shadow .15s ease}.badge-card:hover{transform:translateY(-3px)}.badge-card.earned{background:linear-gradient(135deg,#f6d36524,#f093fb1a);border-color:#f6d36559;box-shadow:0 4px 18px #f6d3651f}.badge-card.locked{opacity:.72}.badge-icon{filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));font-size:44px;line-height:1}.badge-card.locked .badge-icon{filter:grayscale(.4) opacity(.8)}.badge-name{font-size:15px;font-weight:600}.badge-desc{font-size:12px;line-height:1.4;opacity:.7}.badge-status.earned-status{color:#10b981;font-size:12px;font-weight:600;margin-top:4px}.badge-progress{display:flex;flex-direction:column;gap:4px;margin-top:4px;width:100%}.badge-progress-bar{background:#00000014;border-radius:4px;height:6px;overflow:hidden;width:100%}.badge-progress-fill{background:linear-gradient(90deg,#4facfe,#00f2fe);border-radius:4px;height:100%;transition:width .4s ease}.badge-progress-text{font-size:11px;opacity:.65}.badges-error,.badges-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;opacity:.85;padding:80px 20px;text-align:center}.badges-spinner{animation:badges-spin .8s linear infinite;border:4px solid #0000001a;border-radius:50%;border-top-color:#4facfe;height:40px;width:40px}@keyframes badges-spin{to{transform:rotate(1turn)}}.badges-error-icon{font-size:40px}.badges-retry-btn{background:linear-gradient(135deg,#4facfe,#00f2fe);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:8px 20px}@media (max-width:560px){.badges-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.badge-icon{font-size:36px}}.wardrobe-view{background:#f5f7fa;color:#1f2933;min-height:100vh}.wardrobe-view .panel-header{align-items:center;background:#fff;border-bottom:1px solid #e4e7eb;display:flex;justify-content:space-between;padding:16px 24px}.wardrobe-view .panel-title h2{color:#1f2933;font-size:20px;margin:0}.wardrobe-view .panel-actions{align-items:center;display:flex;gap:16px}.wardrobe-points{color:#d48806;font-weight:600}.wardrobe-view .panel-back-btn{background:#fff;border:1px solid #d2d6dc;border-radius:8px;color:#1f2933;cursor:pointer;padding:8px 18px}.wardrobe-view .panel-back-btn:hover{background:#f0f2f5}.wardrobe-tabs{display:flex;gap:8px;padding:16px 24px 0}.wardrobe-tab{background:#e8ebf0;border:none;border-radius:8px 8px 0 0;color:#52606d;cursor:pointer;font-size:14px;padding:8px 20px}.wardrobe-tab.active{background:#fff;color:#2563eb;font-weight:600}.wardrobe-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));padding:24px}.wardrobe-card{align-items:center;background:#fff;border:1px solid #e4e7eb;border-radius:12px;box-shadow:0 1px 3px #0000000f;display:flex;flex-direction:column;gap:8px;padding:18px 14px;text-align:center}.wardrobe-icon{font-size:44px;line-height:1}.wardrobe-name{color:#1f2933;font-size:15px;font-weight:600}.wardrobe-rarity{font-size:12px;font-weight:600}.wardrobe-btn{border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;margin-top:4px;padding:7px 16px;width:100%}.wardrobe-btn.equip{background:#2563eb;color:#fff}.wardrobe-btn.buy{background:#f59e0b;color:#fff}.wardrobe-btn.equipped{background:#e6f4ea;color:#137333;cursor:default}.wardrobe-btn:disabled{cursor:not-allowed;opacity:.55}.wardrobe-locked{display:flex;flex-direction:column;gap:4px;width:100%}.wardrobe-lock-label{color:#7b8794;font-size:12px}.wardrobe-progress{background:#e4e7eb;border-radius:3px;height:6px;overflow:hidden}.wardrobe-progress-fill{background:#2563eb;height:100%}.wardrobe-progress-text{color:#9aa5b1;font-size:11px}.wardrobe-toast{background:#1f2933;border-radius:999px;bottom:32px;box-shadow:0 4px 12px #0003;color:#fff;font-size:14px;left:50%;padding:10px 22px;position:fixed;transform:translateX(-50%);z-index:2000}.sandbox-view{background:#f5f7fa;color:#1f2933;min-height:100vh}.sandbox-view .panel-header{align-items:center;background:#fff;border-bottom:1px solid #e4e7eb;display:flex;justify-content:space-between;padding:16px 24px}.sandbox-view .panel-title h2{font-size:20px;margin:0}.sandbox-view .panel-back-btn{background:#fff;border:1px solid #d2d6dc;border-radius:8px;color:#1f2933;cursor:pointer;padding:8px 18px}.sandbox-view .panel-back-btn:hover{background:#f0f2f5}.sandbox-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:16px;padding:16px 24px}.sandbox-toolbar label{align-items:center;display:flex;font-size:14px;gap:6px}.sandbox-input{min-width:220px}.sandbox-input,.sandbox-select{border:1px solid #d2d6dc;border-radius:8px;font-size:14px;padding:7px 10px}.sandbox-gen-btn{background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:8px 18px}.sandbox-error{color:#d93025;font-size:13px}.speed-label{gap:4px}.speed-slider{accent-color:#2563eb;width:90px}.speed-value{color:#52606d;font-size:12px;min-width:42px}.sandbox-stage{grid-gap:20px;align-items:stretch;display:grid;gap:20px;grid-template-columns:1fr 340px;padding:0 24px}.sandbox-side{display:flex;flex-direction:column;gap:12px}.sort-bar-row{align-items:flex-end;background:#fff;border:1px solid #e4e7eb;border-radius:12px;display:flex;gap:6px;height:320px;padding:16px}.sort-bar{align-items:flex-start;background:#94a3b8;border-radius:4px 4px 0 0;display:flex;flex:1 1;justify-content:center;min-width:12px;position:relative}.sort-bar.active{background:#f59e0b}.sort-bar.comparing{background:#ef4444}.sort-bar.swapping{background:#f97316}.sort-bar.sorted{background:#22c55e}.sort-bar-value{color:#1f2933;font-size:11px;margin-top:-18px}.sandbox-pseudocode{background:#fff;border:1px solid #e4e7eb;border-radius:12px;flex:1 1;font-size:13px;line-height:1.7;margin:0;overflow:auto;padding:16px 16px 16px 36px}.sandbox-pseudocode .active-line{background:#fef3c7;border-radius:4px}.sandbox-pseudocode code{font-family:Fira Code,monospace}.sandbox-metrics{background:#fff;border:1px solid #e4e7eb;border-radius:12px;display:flex;font-size:13px;gap:14px;padding:12px 16px}.metric{align-items:center;display:flex;font-weight:600;gap:6px}.metric-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.metric-dot.comparing{background:#ef4444}.metric-dot.swapping{background:#f97316}.metric-dot.active{background:#f59e0b}.sandbox-desc{background:#eef2ff;border-left:4px solid #2563eb;border-radius:8px;font-size:14px;margin:16px 24px;padding:12px 16px}.sandbox-controls{align-items:center;display:flex;gap:10px;padding:0 24px 24px}.sandbox-controls button{background:#fff;border:1px solid #d2d6dc;border-radius:8px;cursor:pointer;font-size:14px;padding:8px 16px}.sandbox-controls button:hover{background:#f0f2f5}.sandbox-progress{color:#52606d;font-weight:600;margin-left:auto}.history-view{background:#f5f7fa;min-height:100vh}.history-view .panel-header{align-items:center;background:#fff;border-bottom:1px solid #e4e7eb;display:flex;justify-content:space-between;padding:16px 24px}.history-view .panel-header h2{font-size:20px;margin:0}.panel-back-btn{background:#fff;border:1px solid #d2d6dc;border-radius:8px;color:#1f2933;cursor:pointer;padding:8px 18px}.history-tabs{background:#fff;border-bottom:1px solid #e4e7eb;display:flex;gap:4px;padding:12px 24px}.history-tab{background:#0000;border:none;border-radius:8px 8px 0 0;color:#6b7280;cursor:pointer;font-size:14px;padding:8px 20px}.history-tab.active{background:#f5f7fa;color:#2563eb;font-weight:600}.history-content{padding:20px 24px}.history-empty,.history-loading{color:#9ca3af;padding:40px;text-align:center}.chat-history-list{display:flex;flex-direction:column;gap:12px;max-width:700px}.history-msg{border-radius:12px;padding:12px 16px}.history-msg.user{background:#eef2ff}.history-msg.sprite{background:#f0fdf4}.history-role{color:#6b7280;font-size:12px;font-weight:600}.history-msg-content{color:#1f2933;font-size:14px;margin:6px 0}.history-time{color:#9ca3af;font-size:11px}.code-record,.quiz-record{background:#fff;border:1px solid #e4e7eb;border-radius:10px;margin-bottom:10px;padding:14px 16px}.code-record-title,.quiz-record-title{font-weight:600;margin-bottom:6px}.quiz-record-q{color:#374151;font-size:14px;margin-bottom:8px}.quiz-record-time{color:#9ca3af;font-size:11px;margin-top:8px}.code-record-code{background:#1e293b;border-radius:6px;color:#e2e8f0;font-size:12px;max-height:200px;overflow:auto;padding:10px}.code-record-feedback{color:#6b7280;font-size:13px;margin-top:6px}.code-score{color:#2563eb;font-size:12px;margin-left:8px}
/*# sourceMappingURL=main.6362ad55.css.map*/