.login-page{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px;position:relative}.login-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:-1;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.login-card{background:white;border-radius:16px;box-shadow:0 8px 24px #00000026;padding:40px;width:100%;max-width:440px;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:32px}.login-title{font-size:28px;font-weight:700;color:#1e293b;margin:0 0 8px;display:flex;align-items:center;justify-content:center;gap:12px}.title-icon{font-size:32px}.login-subtitle{font-size:16px;color:#64748b;margin:0}.login-tabs{display:flex;gap:8px;margin-bottom:24px;background:#f1f5f9;padding:4px;border-radius:8px}.tab-button{flex:1;padding:12px 24px;border:none;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;background:transparent;color:#64748b;transition:all .2s}.tab-button.active{background:white;color:#3b82f6;box-shadow:0 2px 4px #0000001a}.tab-button:not(.active):hover{color:#1e293b}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;display:flex;align-items:center;gap:8px}.error-icon{font-size:18px}.login-form{display:block}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;color:#334155;margin-bottom:8px}.form-group input{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:15px;transition:all .2s;outline:none}.form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled{background:#f8fafc;cursor:not-allowed;opacity:.6}.submit-button{width:100%;padding:14px 24px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:8px}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.guest-login-section{margin-top:24px;text-align:center}.divider{position:relative;text-align:center;margin:24px 0}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#e2e8f0}.divider span{position:relative;background:white;padding:0 16px;color:#64748b;font-size:14px;font-weight:500}.guest-button{width:100%;padding:14px 24px;background:#64748b;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:12px}.guest-button:hover:not(:disabled){background:#475569;transform:translateY(-2px);box-shadow:0 4px 12px #64748b4d}.guest-button:disabled{opacity:.6;cursor:not-allowed}.guest-icon{font-size:20px}.guest-info{margin-top:12px;font-size:13px;color:#64748b;line-height:1.5}.login-footer{margin-top:24px;padding-top:24px;border-top:1px solid #e2e8f0;text-align:center}.footer-text{font-size:14px;color:#64748b;margin:0}.dark-mode .login-card{background:#1e293b}.dark-mode .login-title{color:#f1f5f9}.dark-mode .login-subtitle{color:#94a3b8}.dark-mode .login-tabs{background:#0f172a}.dark-mode .tab-button{color:#94a3b8}.dark-mode .tab-button.active{background:#334155;color:#3b82f6}.dark-mode .form-group label{color:#e2e8f0}.dark-mode .form-group input{background:#0f172a;border-color:#334155;color:#f1f5f9}.dark-mode .form-group input:focus{border-color:#3b82f6;background:#0f172a}.dark-mode .divider:before{background:#334155}.dark-mode .divider span{background:#1e293b;color:#94a3b8}.dark-mode .guest-button{background:#475569}.dark-mode .guest-button:hover:not(:disabled){background:#64748b}.dark-mode .guest-info{color:#94a3b8}.dark-mode .login-footer{border-top-color:#334155}.dark-mode .footer-text{color:#94a3b8}@media (max-width: 480px){.login-card{padding:24px}.login-title{font-size:24px}.tab-button{padding:10px 16px;font-size:14px}}.code-editor{background:white;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;display:flex;flex-direction:column}.editor-header{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:12px 16px;display:flex;justify-content:space-between;align-items:center}.editor-title{font-weight:600;font-size:14px}.editor-actions{display:flex;gap:8px}.btn-reset,.btn-run{padding:6px 14px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-reset{background:rgba(255,255,255,.2);color:#fff}.btn-reset:hover{background:rgba(255,255,255,.3)}.btn-run{background:#10b981;color:#fff}.btn-run:hover{background:#059669;transform:translateY(-1px)}.code-input{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;padding:16px;border:none;outline:none;resize:none;min-height:200px;background:#f8fafc;color:#1e293b;line-height:1.6}.code-input:focus{background:#f1f5f9}.console-output{border-top:2px solid #e2e8f0;background:#1e293b}.console-header{color:#94a3b8;font-size:12px;font-weight:600;padding:8px 16px;background:#0f172a;text-transform:uppercase;letter-spacing:.5px}.console-content{padding:12px 16px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;color:#e2e8f0;max-height:200px;overflow-y:auto}.console-line{border-left:3px solid #3b82f6;padding:4px 0 4px 12px;margin-bottom:4px}.validation{padding:12px 16px;font-weight:500;display:flex;align-items:center;gap:8px}.validation.correct{background:#10b981;color:#fff}.validation.incorrect{background:#ef4444;color:#fff}.validation .icon{font-size:18px;font-weight:700}.lesson-view{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.lesson-content{background:white;border-radius:16px;padding:32px;box-shadow:0 2px 8px #0000001a;height:fit-content}.lesson-header{margin-bottom:24px}.lesson-number{font-size:14px;color:#64748b;font-weight:500;margin-bottom:8px}.lesson-title{font-size:28px;font-weight:700;color:#1e293b;margin:0;line-height:1.3}.lesson-section{margin-bottom:28px}.section-title{font-size:18px;font-weight:600;color:#334155;margin:0 0 12px;display:flex;align-items:center;gap:8px}.section-text{font-size:16px;color:#475569;line-height:1.7;margin:0}.code-example{background:#1e293b;color:#e2e8f0;padding:20px;border-radius:8px;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.6;overflow-x:auto;margin:0;border:1px solid #334155}.exercise-text{background:#f0f9ff;border-left:4px solid #3b82f6;padding:16px;border-radius:8px;font-weight:500;color:#1e40af}.hints-section{margin:24px 0}.btn-hint{background:#f59e0b;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.btn-hint:hover{background:#d97706;transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.hint-box{background:#fffbeb;border:2px solid #f59e0b;border-radius:12px;padding:20px;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.hint-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:600;color:#92400e}.hint-text{color:#92400e;line-height:1.6;margin:0}.btn-next-hint{background:#f59e0b;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-next-hint:hover{background:#d97706}.lesson-actions{margin-top:24px;padding-top:24px;border-top:1px solid #e2e8f0}.btn-solution{background:#64748b;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.btn-solution:hover{background:#475569;transform:translateY(-2px);box-shadow:0 4px 12px #64748b4d}.editor-panel{display:flex;flex-direction:column;gap:0;position:sticky;top:100px;height:fit-content}.navigation-buttons{display:flex;gap:12px;margin-top:16px;padding:0}.btn-nav{flex:1;padding:14px 24px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.btn-nav:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.btn-nav:active:not(:disabled){transform:translateY(0)}.btn-nav:disabled{background:#cbd5e1;cursor:not-allowed;transform:none;opacity:.6}.completion-banner{margin-top:16px;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:12px;padding:16px;animation:slideIn .3s ease-out}.completion-content{display:flex;align-items:center;justify-content:center;gap:12px;color:#fff}.completion-icon{font-size:24px}.completion-text{font-size:18px;font-weight:600}.dark-mode .lesson-content{background:#1e293b;color:#f1f5f9}.dark-mode .lesson-number{color:#94a3b8}.dark-mode .section-title{color:#cbd5e1}.dark-mode .section-text{color:#94a3b8}.dark-mode .exercise-text{background:#1e3a8a;border-left-color:#3b82f6;color:#93c5fd}.dark-mode .code-example{background:#0f172a;border-color:#334155}.dark-mode .hint-header,.dark-mode .hint-text{color:#fbbf24}.dark-mode .lesson-actions{border-top-color:#334155}.dark-mode .btn-solution{background:#475569}.dark-mode .btn-solution:hover{background:#64748b}.dark-mode .btn-nav:disabled{background:#334155}.dark-mode .completion-banner{background:linear-gradient(135deg,#059669 0%,#047857 100%)}@media (max-width: 1024px){.lesson-view{grid-template-columns:1fr}.editor-panel{position:static}.lesson-content{padding:24px}.lesson-title{font-size:24px}.section-title{font-size:16px}.section-text{font-size:15px}}@media (max-width: 768px){.lesson-content{padding:20px}.lesson-title{font-size:22px}.btn-nav{padding:12px 20px;font-size:14px}.completion-text{font-size:16px}.completion-icon{font-size:20px}.code-example{font-size:13px;padding:16px}}@media (max-width: 480px){.lesson-view{gap:16px;margin-top:16px}.lesson-content{padding:16px}.lesson-title{font-size:20px}.section-title{font-size:15px}.section-text{font-size:14px}.btn-nav{padding:10px 16px;font-size:13px}.completion-text{font-size:14px}}.progress-container{background:white;padding:16px 24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.progress-text{font-size:14px;font-weight:500;color:#475569}.progress-percentage{font-size:14px;font-weight:600;color:#3b82f6}.progress-bar{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6 0%,#8b5cf6 100%);transition:width .3s ease;border-radius:4px}.roadmap-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.roadmap-modal{background:white;border-radius:16px;max-width:700px;width:90%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.roadmap-header{padding:24px 32px;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.roadmap-header h2{margin:0;font-size:24px;color:#1e293b}.close-button{background:none;border:none;font-size:32px;color:#64748b;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.close-button:hover{background:#f1f5f9;color:#1e293b}.roadmap-summary{display:flex;gap:16px;padding:24px 32px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.summary-stat{flex:1;text-align:center;color:#fff}.stat-number{display:block;font-size:32px;font-weight:700;margin-bottom:4px}.stat-label{display:block;font-size:14px;opacity:.9}.roadmap-lessons{overflow-y:auto;padding:16px;flex:1}.roadmap-lesson{display:flex;align-items:center;gap:16px;padding:16px;margin-bottom:8px;background:white;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .2s}.roadmap-lesson:hover{border-color:#667eea;transform:translate(4px);box-shadow:0 4px 12px #667eea26}.roadmap-lesson.current{border-color:#3b82f6;background:#eff6ff}.roadmap-lesson.completed{border-color:#10b981;background:#f0fdf4}.lesson-status{flex-shrink:0}.status-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px}.status-icon.completed{background:#10b981;color:#fff}.status-icon.current{background:#3b82f6;color:#fff}.status-icon.pending{background:#e2e8f0;color:#64748b}.lesson-info{flex:1}.lesson-title{font-size:16px;font-weight:600;color:#1e293b;margin-bottom:4px}.lesson-meta{font-size:14px;color:#64748b}.dark-mode .roadmap-modal{background:#1e293b}.dark-mode .roadmap-header{border-bottom-color:#334155}.dark-mode .roadmap-header h2{color:#f1f5f9}.dark-mode .close-button{color:#94a3b8}.dark-mode .close-button:hover{background:#334155;color:#f1f5f9}.dark-mode .roadmap-lesson{background:#0f172a;border-color:#334155}.dark-mode .roadmap-lesson:hover{border-color:#667eea;background:#1e293b}.dark-mode .roadmap-lesson.current{background:#1e3a8a;border-color:#3b82f6}.dark-mode .roadmap-lesson.completed{background:#064e3b;border-color:#10b981}.dark-mode .lesson-title{color:#f1f5f9}.dark-mode .lesson-meta{color:#94a3b8}@media (max-width: 640px){.roadmap-modal{width:95%;max-height:90vh}.roadmap-header{padding:16px 20px}.roadmap-header h2{font-size:20px}.roadmap-summary{padding:16px 20px}.stat-number{font-size:24px}.stat-label{font-size:12px}.roadmap-lessons,.roadmap-lesson{padding:12px}.lesson-title{font-size:14px}.lesson-meta{font-size:12px}}.App{min-height:100vh;background:linear-gradient(135deg,#e0e7ff 0%,#f3e8ff 100%)}.app-header{background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #0000001a;position:sticky;top:0;z-index:100}.header-content{max-width:1400px;margin:0 auto;padding:20px 24px;display:flex;justify-content:space-between;align-items:center}.app-title{font-size:24px;font-weight:700;color:#1e293b;margin:0;display:flex;align-items:center;gap:12px}.title-icon{font-size:28px}.header-stats{display:flex;align-items:center;gap:12px}.user-email{font-size:14px;color:#64748b;font-weight:500;padding:8px 16px;background:#f1f5f9;border-radius:20px}.stat-badge{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:600}.guest-badge{font-size:14px;color:#92400e;font-weight:600;padding:8px 16px;background:#fef3c7;border-radius:20px;border:2px solid #fbbf24}.icon-button{background:#f1f5f9;border:none;width:40px;height:40px;border-radius:8px;font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.icon-button:hover{background:#e2e8f0;transform:translateY(-1px)}.roadmap-button{background:#3b82f6;color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.roadmap-button:hover{background:#2563eb;transform:translateY(-1px)}.logout-button{background:#ef4444;color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.logout-button:hover{background:#dc2626;transform:translateY(-1px)}.app-container{max-width:1400px;margin:0 auto;padding:0 24px 24px}.loading-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;color:#1e293b}.loader{width:50px;height:50px;border:5px solid rgba(59,130,246,.3);border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen p{margin-top:20px;font-size:18px;font-weight:500;color:#1e293b}.error-screen{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:24px}.error-box{background:white;padding:48px;border-radius:12px;box-shadow:0 4px 16px #0000001a;max-width:500px;text-align:center}.error-box h2{color:#1e293b;margin-bottom:16px}.error-box p{color:#64748b;margin-bottom:12px;line-height:1.6}.error-hint{background:#f1f5f9;padding:12px;border-radius:6px;font-size:14px;font-family:Consolas,Monaco,Courier New,monospace}.error-box code{background:#1e293b;color:#10b981;padding:8px 16px;border-radius:6px;display:inline-block;margin-top:16px;font-size:14px}.btn-retry{margin-top:24px;background:#3b82f6;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.btn-retry:hover{background:#2563eb;transform:translateY(-2px)}.dark-mode{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--border-primary: #334155;--border-secondary: #475569}.dark-mode .guest-badge{background:#422006;border-color:#f59e0b;color:#fbbf24}.dark-mode .icon-button{background:#334155}.dark-mode .icon-button:hover{background:#475569}.dark-mode .roadmap-button{background:#2563eb}.dark-mode .roadmap-button:hover{background:#1d4ed8}.dark-mode .loader{border-color:#3b82f64d;border-top-color:#3b82f6}.dark-mode .loading-screen p{color:var(--text-primary)}@media (max-width: 768px){.app-title{font-size:18px}.title-icon{font-size:22px}.header-content{flex-direction:column;gap:16px}.header-stats{width:100%;justify-content:center;flex-wrap:wrap}.user-email,.stat-badge,.guest-badge{font-size:12px;padding:6px 12px}.icon-button{width:36px;height:36px;font-size:18px}.roadmap-button,.logout-button{font-size:12px;padding:6px 12px}}.dark-mode{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--border-primary: #334155;--border-secondary: #475569;--accent-primary: #667eea;--accent-secondary: #764ba2}.dark-mode body{background:var(--bg-primary);color:var(--text-primary)}.dark-mode .App{background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%)}.dark-mode .app-header{background:rgba(30,41,59,.95);border-bottom:1px solid var(--border-primary)}.dark-mode .app-title{color:var(--text-primary)}.dark-mode .user-email{background:var(--bg-tertiary);color:var(--text-secondary)}.dark-mode .progress-container{background:var(--bg-secondary)}.dark-mode .progress-text,.dark-mode .progress-percentage{color:var(--text-secondary)}.dark-mode .progress-bar{background:var(--bg-tertiary)}.dark-mode .lesson-content{background:var(--bg-secondary);color:var(--text-primary)}.dark-mode .lesson-title{color:var(--text-primary)}.dark-mode .section-title{color:var(--text-secondary)}.dark-mode .section-text{color:var(--text-tertiary)}.dark-mode .exercise-text{background:var(--bg-tertiary);border-left-color:#3b82f6;color:var(--text-secondary)}.dark-mode .code-example{background:#0f172a;color:#e2e8f0;border:1px solid var(--border-primary)}.dark-mode .hint-box{background:#422006;border-color:#f59e0b}.dark-mode .hint-text{color:#fbbf24}.dark-mode .code-editor{background:var(--bg-secondary)}.dark-mode .code-input{background:#0f172a;color:#e2e8f0;border-color:var(--border-primary)}.dark-mode .code-input:focus{border-color:#3b82f6}.dark-mode .console-output{background:#0f172a;border-top-color:var(--border-primary)}.dark-mode .console-header{background:#020617;color:#94a3b8}.dark-mode .btn-nav{background:var(--bg-tertiary);color:var(--text-primary)}.dark-mode .btn-nav:hover:not(:disabled){background:var(--border-secondary)}.dark-mode .btn-solution{background:var(--bg-tertiary);color:var(--text-primary)}.dark-mode .btn-solution:hover{background:var(--border-secondary)}.dark-mode .loading-screen{color:var(--text-primary)}.dark-mode .error-screen .error-box{background:var(--bg-secondary);color:var(--text-primary)}.dark-mode .error-screen h2{color:var(--text-primary)}.dark-mode .error-hint{background:var(--bg-tertiary);color:var(--text-secondary)}
