code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:20px;box-shadow:0 20px 40px #0000001a;max-width:400px;padding:40px;text-align:center;width:100%}.login-header h1{color:#333;font-size:2.5rem;margin-bottom:10px}.login-header p{color:#666;font-size:1.1rem;margin-bottom:30px}.login-form{text-align:left}.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-size:1rem;font-weight:600;margin-bottom:8px}.form-group input,.form-group select{border:2px solid #e1e5e9;border-radius:10px;box-sizing:border-box;font-size:1rem;padding:12px 16px;transition:all .3s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input.error,.form-group select.error{border-color:#e74c3c}.error-message{background:#fee;border:1px solid #fcc;border-radius:8px;color:#e74c3c;font-size:.9rem;margin-bottom:20px;padding:10px}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-bottom:20px;padding:14px;transition:all .3s ease;width:100%}.login-button:hover:not(:disabled){box-shadow:0 10px 20px #667eea4d;transform:translateY(-2px)}.login-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.login-footer{color:#666;font-size:.9rem;line-height:1.5}.login-footer p{margin:5px 0}@media (max-width:480px){.login-card{margin:10px;padding:30px 20px}.login-header h1{font-size:2rem}}.dashboard-container{margin:0 auto;max-width:1000px;padding:20px}.dashboard-header{background:#fff;border-radius:20px;box-shadow:0 5px 15px #0000001a;margin-bottom:40px;padding:40px;text-align:center}.dashboard-header h1{color:#333;font-size:2.5rem;margin-bottom:15px}.motivational-message{color:#666;font-size:1.2rem;font-weight:500;margin:0}.stats-overview{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:40px}.stat-card{align-items:center;background:#fff;border-radius:20px;box-shadow:0 5px 15px #0000001a;display:flex;gap:20px;padding:30px;transition:transform .3s ease}.stat-card:hover{transform:translateY(-5px)}.stat-icon{font-size:3rem;line-height:1}.stat-content{flex:1 1}.stat-value{font-size:2.5rem;line-height:1}.progress-section{background:#fff;border-radius:20px;box-shadow:0 5px 15px #0000001a;margin-bottom:40px;padding:40px}.progress-section h2{color:#333;font-size:2rem;margin-bottom:30px;text-align:center}.operations-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.operation-card{background:#f8f9fa;border:2px solid #e9ecef;border-radius:15px;padding:25px;text-align:center;transition:all .3s ease}.operation-card:hover{box-shadow:0 5px 15px #0000001a;transform:translateY(-3px)}.operation-card.empty{border-style:dashed;opacity:.6}.operation-icon{font-size:3rem;margin-bottom:15px}.operation-name{color:#333;font-size:1.3rem;font-weight:600;margin-bottom:20px}.operation-stats{text-align:left}.stat-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px;padding:5px 0}.stat-row:last-child{margin-bottom:0}.stat-row .stat-label{color:#666;font-size:.9rem;font-weight:500}.stat-row .stat-value{color:#333;font-size:1rem;font-weight:600}.stat-row .stat-value.positive{color:#27ae60}.no-data,.stat-row .stat-value.neutral{color:#95a5a6}.no-data{font-size:.9rem;font-style:italic}.recent-sessions{background:#fff;border-radius:20px;box-shadow:0 5px 15px #0000001a;padding:40px}.recent-sessions h2{color:#333;font-size:2rem;margin-bottom:30px;text-align:center}.sessions-list{display:flex;flex-direction:column;gap:15px}.session-item{align-items:center;background:#f8f9fa;border-left:4px solid #667eea;border-radius:10px;display:flex;justify-content:space-between;padding:20px;transition:all .3s ease}.session-item:hover{background:#e9ecef;transform:translateX(5px)}.session-date{color:#333;font-size:1.1rem;font-weight:600}.session-stats{display:flex;flex-wrap:wrap;gap:20px}.session-stats span{background:#fff;border-radius:15px;color:#666;font-size:.9rem;font-weight:500;padding:5px 12px}.session-stats .accuracy{background:#d4edda;color:#27ae60}.session-stats .problems{background:#e3f2fd;color:#667eea}.session-stats .time{background:#fff3cd;color:#f39c12}@media (max-width:768px){.dashboard-header h1{font-size:2rem}.operations-grid,.stats-overview{grid-template-columns:1fr}.session-item{flex-direction:column;gap:15px;text-align:center}.session-stats{justify-content:center}}.welcome-screen{align-items:center;display:flex;justify-content:center;min-height:80vh;padding:20px}.welcome-card{background:#fff;border:3px solid #667eea;border-radius:25px;box-shadow:0 20px 40px #0000001a;max-width:800px;padding:50px;text-align:center;width:100%}.welcome-card h1{color:#333;font-size:2.5rem;font-weight:700;margin-bottom:20px}.welcome-subtitle{color:#666;font-size:1.3rem;font-weight:500;margin-bottom:40px}.welcome-features{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:40px}.feature-item{align-items:flex-start;background:#f8f9fa;border:2px solid #e9ecef;border-radius:15px;display:flex;gap:15px;padding:20px;text-align:left;transition:all .3s ease}.feature-item:hover{border-color:#667eea;box-shadow:0 10px 25px #0000001a;transform:translateY(-5px)}.feature-icon{flex-shrink:0;font-size:2.5rem;line-height:1}.feature-content h3{color:#333;font-size:1.2rem;font-weight:600;margin-bottom:8px}.feature-content p{color:#666;line-height:1.5;margin:0}.welcome-actions{margin-bottom:40px}.start-practicing-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50px;box-shadow:0 10px 25px #667eea4d;color:#fff;cursor:pointer;font-size:1.3rem;font-weight:700;padding:20px 40px;transition:all .3s ease}.start-practicing-button:hover{box-shadow:0 15px 35px #667eea66;transform:translateY(-3px)}.welcome-tips{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #dee2e6;border-radius:20px;padding:30px;text-align:left}.welcome-tips h4{color:#333;font-size:1.3rem;margin-bottom:20px;text-align:center}.welcome-tips ul{list-style:none;margin:0;padding:0}.welcome-tips li{color:#555;font-size:1.1rem;padding:10px 0 10px 30px;position:relative}.welcome-tips li:before{content:"✨";left:0;position:absolute;top:10px}@media (max-width:768px){.welcome-card{padding:30px 20px}.welcome-card h1{font-size:2rem}.welcome-subtitle{font-size:1.1rem}.welcome-features{gap:20px;grid-template-columns:1fr}.feature-item{flex-direction:column;text-align:center}.start-practicing-button{font-size:1.1rem;padding:15px 30px}}@media (max-width:480px){.dashboard-container{padding:10px}.dashboard-header,.operation-card,.progress-section,.recent-sessions,.stat-card{padding:20px}.welcome-card{padding:20px 15px}.welcome-card h1{font-size:1.8rem}}.practice-setup{align-items:center;display:flex;justify-content:center;min-height:60vh;padding:20px}.setup-card{background:#fff;border-radius:20px;box-shadow:0 10px 30px #0000001a;max-width:500px;padding:40px;text-align:center;width:100%}.setup-card h2{color:#333;font-size:2rem;margin-bottom:20px}.setup-card p{color:#666;font-size:1.1rem;margin-bottom:15px}.streak-info{background:#f8f9fa;border-radius:10px;margin:20px 0;padding:15px}.streak-info p{color:#e67e22;font-weight:600;margin:0}.start-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1.2rem;font-weight:600;margin-top:20px;padding:15px 30px;transition:all .3s ease}.start-button:hover{box-shadow:0 10px 20px #667eea4d;transform:translateY(-2px)}.practice-session{margin:0 auto;max-width:600px;padding:20px}.session-header{align-items:center;background:#fff;border-radius:15px;box-shadow:0 5px 15px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.progress-info{flex:1 1;margin-right:20px}.progress-bar{background:#e1e5e9;border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);height:100%;transition:width .3s ease}.progress-text{color:#666;font-size:.9rem;font-weight:600}.streak-display{background:linear-gradient(135deg,#ff6b6b,#ee5a24);border-radius:25px;box-shadow:0 5px 15px #ff6b6b4d;color:#fff;font-size:1.2rem;font-weight:600;padding:10px 20px}.problem-container{background:#fff;border-radius:20px;box-shadow:0 10px 30px #0000001a;padding:40px;text-align:center}.feedback{animation:slideIn .3s ease;border-radius:10px;font-size:1.1rem;font-weight:600;margin-bottom:20px;padding:15px}.feedback.correct{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.feedback.incorrect{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.feedback-details{font-size:.9rem;margin-top:5px;opacity:.8}.problem-card{margin-top:20px}.problem-question{color:#333;font-family:Courier New,monospace;font-size:3rem;font-weight:700;margin-bottom:30px}.answer-form{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.answer-input{border:3px solid #e1e5e9;border-radius:10px;font-size:1.5rem;padding:15px 20px;text-align:center;transition:all .3s ease;width:200px}.answer-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1.2rem;font-weight:600;padding:15px 25px;transition:all .3s ease}.submit-button:hover{box-shadow:0 5px 15px #667eea4d;transform:translateY(-2px)}.session-completed{align-items:center;display:flex;justify-content:center;min-height:60vh;padding:20px}.completion-card{background:#fff;border-radius:20px;box-shadow:0 10px 30px #0000001a;max-width:500px;padding:40px;text-align:center;width:100%}.completion-card h2{color:#333;font-size:2rem;margin-bottom:30px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr);margin-bottom:30px}.stat-item{background:#f8f9fa;border:2px solid #e9ecef;border-radius:15px;padding:20px}.stat-value{color:#667eea;font-size:2rem;margin-bottom:5px}.stat-label{font-size:.9rem}.performance-message{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;color:#fff;font-size:1.1rem;font-weight:600;margin-bottom:30px;padding:20px}.action-buttons{display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.practice-again-button,.view-leaderboard-button{border:none;border-radius:10px;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 25px;transition:all .3s ease}.practice-again-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.view-leaderboard-button{background:#f8f9fa;border:2px solid #e1e5e9;color:#333}.continue-button:hover,.practice-again-button:hover,.view-leaderboard-button:hover{box-shadow:0 5px 15px #0003;transform:translateY(-2px)}.continue-button{background:linear-gradient(135deg,#27ae60,#2ecc71);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.continue-button:hover{box-shadow:0 5px 15px #27ae604d;transform:translateY(-2px)}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:480px){.problem-question{font-size:2rem}.answer-form{flex-direction:column}.answer-input{max-width:200px;width:100%}.stats-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}}.leaderboard-container{margin:0 auto;max-width:800px;padding:20px}.leaderboard-header{background:#fff;border-radius:20px;box-shadow:0 5px 15px #0000001a;margin-bottom:30px;padding:30px;text-align:center}.leaderboard-header h2{color:#333;font-size:2.5rem;margin-bottom:10px}.leaderboard-header p{color:#666;font-size:1.1rem;margin-bottom:20px}.filter-controls{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.filter-controls label{color:#333;font-weight:600}.filter-select{background:#fff;border:2px solid #e1e5e9;border-radius:8px;cursor:pointer;font-size:1rem;padding:8px 12px;transition:all .3s ease}.filter-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.leaderboard-list{background:#fff;border-radius:20px;box-shadow:0 10px 30px #0000001a;margin-bottom:30px;overflow:hidden}.leaderboard-item{align-items:center;border-bottom:1px solid #f1f3f4;display:flex;padding:20px;position:relative;transition:all .3s ease}.leaderboard-item:last-child{border-bottom:none}.leaderboard-item:hover{background:#f8f9fa;transform:translateX(5px)}.leaderboard-item.current-student{background:linear-gradient(135deg,#667eea,#764ba2);border:2px solid #5a6fd8;border-radius:15px;color:#fff;margin:5px}.leaderboard-item.current-student .stat-label,.leaderboard-item.current-student .student-homeroom,.leaderboard-item.current-student .student-name{color:#fff}.rank{font-size:1.5rem;font-weight:700;margin-right:20px;min-width:60px;text-align:center}.student-info{flex:1 1;margin-right:20px}.student-name{align-items:center;color:#333;display:flex;font-size:1.2rem;font-weight:600;gap:10px;margin-bottom:4px}.you-badge{background:#ff6b6b;border-radius:12px;color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.5px;padding:2px 8px;text-transform:uppercase}.student-homeroom{color:#666;font-size:.9rem;font-weight:500}.stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(4,1fr);min-width:400px}.stat-group{text-align:center}.stat-label{color:#666;font-size:.8rem;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.stat-value{color:#333;font-size:1.1rem;font-weight:700}.growth-score{font-size:1.3rem}.streak{font-size:1.1rem}.speed-improvement{color:#27ae60}.sessions{color:#667eea}.practice-bonus{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#27ae60,#2ecc71);-webkit-background-clip:text;background-clip:text;color:#27ae60;font-weight:600}.loading{background:#fff;border-radius:20px;box-shadow:0 5px 15px #0000001a;padding:60px 20px;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:40px;margin:0 auto 20px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-message{background:#fff;border-radius:20px;box-shadow:0 5px 15px #0000001a;padding:40px;text-align:center}.error-message h3{color:#e74c3c;margin-bottom:10px}.error-message p{color:#666;margin-bottom:20px}.retry-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s ease}.retry-button:hover{box-shadow:0 5px 15px #667eea4d;transform:translateY(-2px)}.no-data{color:#666;padding:60px 20px;text-align:center}.no-data p{font-size:1.1rem;margin-bottom:10px}.leaderboard-footer{background:#fff;border-radius:20px;box-shadow:0 5px 15px #0000001a;padding:30px}.legend h4{color:#333;font-size:1.2rem;margin-bottom:15px}.legend ul{list-style:none;margin:0;padding:0}.legend li{color:#666;line-height:1.5;padding:8px 0}.legend strong{color:#333}@media (max-width:768px){.leaderboard-item{flex-direction:column;gap:15px;text-align:center}.stats{grid-template-columns:repeat(2,1fr);min-width:auto;width:100%}.rank,.student-info{margin-bottom:10px;margin-right:0}}@media (max-width:480px){.stats{gap:15px;grid-template-columns:1fr}.leaderboard-header h2{font-size:2rem}.filter-controls{flex-direction:column}}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}.App,body{min-height:100vh}.App{display:flex;flex-direction:column}.app-nav{align-items:center;background:#fff;box-shadow:0 2px 10px #0000001a;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;padding:15px 20px}.nav-brand h1{color:#333;font-size:1.8rem;font-weight:700;margin:0}.nav-links{display:flex;flex-wrap:wrap;gap:10px}.nav-link{background:#0000;border:2px solid #e1e5e9;border-radius:25px;color:#666;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .3s ease}.nav-link:hover{background:#f8f9fa;border-color:#667eea;color:#667eea}.nav-link.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;color:#fff}.nav-user{align-items:center;display:flex;gap:15px}.user-info{background:#f8f9fa;border-radius:20px;color:#333}.logout-button,.user-info{font-size:.9rem;font-weight:600;padding:8px 16px}.logout-button{background:#e74c3c;border:none;border-radius:20px;color:#fff;cursor:pointer;transition:all .3s ease}.logout-button:hover{background:#c0392b;box-shadow:0 3px 10px #e74c3c4d;transform:translateY(-1px)}.app-main{flex:1 1;min-height:calc(100vh - 80px);padding:20px}@media (max-width:768px){.app-nav{flex-direction:column;text-align:center}.nav-links{justify-content:center}.nav-link{font-size:.8rem;padding:8px 16px}.app-main{padding:10px}}@media (max-width:480px){.nav-brand h1{font-size:1.5rem}.nav-links{gap:5px}.nav-link{font-size:.75rem;padding:6px 12px}}
/*# sourceMappingURL=main.5590502c.css.map*/