.lo-shell{background:var(--surface-base);flex-direction:column;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.lo-shell:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(at 20%,#c084fc08 0%,#0000 50%),radial-gradient(at 80% 20%,#38bdf805 0%,#0000 50%),radial-gradient(at 50% 80%,#e879f904 0%,#0000 50%);width:200%;height:200%;position:fixed;top:-50%;left:-50%}.lo-topbar{height:38px;min-height:38px;padding:0 var(--space-4);background:var(--glass-bg-solid);border-bottom:1px solid var(--border-subtle);z-index:var(--z-sticky);-webkit-user-select:none;user-select:none;-webkit-app-region:drag;justify-content:space-between;align-items:center;display:flex;position:relative}.lo-topbar-left,.lo-topbar-center,.lo-topbar-right{align-items:center;gap:var(--space-3);display:flex}.lo-topbar-left{flex:1}.lo-topbar-center{flex:none}.lo-topbar-right{flex:1;justify-content:flex-end}.lo-traffic-lights{-webkit-app-region:no-drag;align-items:center;gap:6px;display:flex}.lo-dot{width:12px;height:12px;transition:opacity var(--transition-fast);cursor:default;border-radius:50%;text-decoration:none;display:block}.lo-dot-red{cursor:pointer;background:#ff5f57}.lo-dot-red:hover{opacity:.8}.lo-dot-yellow{background:#febc2e}.lo-dot-green{background:#28c840}.lo-traffic-lights:not(:hover) .lo-dot{opacity:.5}.lo-traffic-lights:hover .lo-dot{opacity:1}.lo-topbar-app{align-items:center;gap:var(--space-2);margin-left:var(--space-3);display:flex}.lo-topbar-emoji{font-size:var(--font-sm)}.lo-topbar-appname{font-size:var(--font-xs);font-weight:var(--font-weight-medium);color:var(--text-tertiary);letter-spacing:.02em}.lo-topbar-brand{font-size:var(--font-xs);font-weight:var(--font-weight-bold);color:var(--text-quaternary);letter-spacing:.05em}.lo-topbar-accent{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.lo-topbar-status{align-items:center;gap:var(--space-1);display:flex}.lo-status-dot{background:var(--status-success);border-radius:50%;width:6px;height:6px;animation:3s ease-in-out infinite lo-pulse}.lo-status-text{font-size:var(--font-2xs);color:var(--text-quaternary);text-transform:uppercase;letter-spacing:.08em}@keyframes lo-pulse{0%,to{opacity:.4}50%{opacity:1}}.lo-shell-body{min-height:0;z-index:var(--z-base);flex:1;display:flex;position:relative}.lo-dock{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--glass-bg);height:100%;-webkit-backdrop-filter:blur(var(--glass-blur));border-right:1px solid var(--border-subtle);z-index:var(--z-sidebar);transition:width var(--transition-slow), min-width var(--transition-slow);flex-direction:column;display:flex;position:relative;overflow:hidden}.lo-dock:after{content:"";pointer-events:none;background:linear-gradient(#0000 0%,#c084fc0f 30% 70%,#0000 100%);width:1px;height:100%;position:absolute;top:0;right:0}.lo-dock-scroll{padding:var(--space-4) 0;flex:1;overflow:hidden auto}.lo-dock-scroll::-webkit-scrollbar{width:4px}.lo-dock-scroll::-webkit-scrollbar-track{background:0 0}.lo-dock-scroll::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:2px}.lo-dock-appheader{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4) var(--space-4);color:var(--text-primary);transition:opacity var(--transition-fast);text-decoration:none;display:flex}.lo-dock-appheader:hover{opacity:.8}.lo-dock-appicon{font-size:var(--font-lg)}.lo-dock-appname{font-size:var(--font-sm);font-weight:var(--font-weight-bold);letter-spacing:.02em}.lo-dock-quicknav{padding:0 var(--space-2)}.lo-dock-quicklink{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-secondary);transition:all var(--transition-fast);text-decoration:none;display:flex}.lo-dock-quicklink:hover{color:var(--text-primary);background:var(--surface-elevated)}.lo-dock-quicklink.active{color:var(--accent-purple);background:#c084fc14}.lo-dock-quickicon{font-size:var(--font-md);text-align:center;width:20px}.lo-dock-divider{height:1px;margin:var(--space-3) var(--space-4);background:var(--border-subtle)}.lo-dock-tier{margin-bottom:var(--space-2)}.lo-dock-tier-label{padding:var(--space-2) var(--space-4);font-size:var(--font-2xs);font-weight:var(--font-weight-semibold);color:var(--text-quaternary);text-transform:uppercase;letter-spacing:.1em}.lo-dock-course-btn{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);cursor:pointer;font:inherit;font-size:var(--font-sm);color:var(--text-secondary);text-align:left;transition:all var(--transition-fast);background:0 0;border:none;border-radius:0;display:flex}.lo-dock-course-btn:hover{color:var(--text-primary);background:var(--surface-elevated)}.lo-dock-course-btn.current{color:var(--accent-purple);background:#c084fc0f}.lo-dock-chevron{color:var(--text-quaternary);transition:transform var(--transition-fast);flex-shrink:0;width:12px;font-size:8px}.lo-dock-chevron.expanded{transform:rotate(90deg)}.lo-dock-course-emoji{font-size:var(--font-sm);flex-shrink:0}.lo-dock-course-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lo-dock-lessons{padding:var(--space-1) 0}.lo-dock-lesson{align-items:center;gap:var(--space-2);padding:5px var(--space-3) 5px calc(var(--space-4) + 28px);font-size:var(--font-xs);color:var(--text-tertiary);transition:all var(--transition-fast);white-space:nowrap;text-overflow:ellipsis;text-decoration:none;display:flex;overflow:hidden}.lo-dock-lesson:hover{color:var(--text-primary);background:var(--surface-elevated)}.lo-dock-lesson.active{color:var(--accent-purple);background:#c084fc0f}.lo-dock-lesson-dot{background:var(--text-quaternary);border-radius:50%;flex-shrink:0;width:4px;height:4px}.lo-dock-lesson.active .lo-dock-lesson-dot{background:var(--accent-purple);box-shadow:0 0 6px #c084fc66}.lo-dock-lesson-title{text-overflow:ellipsis;overflow:hidden}.lo-dock-toggle{top:46px;left:var(--space-3);z-index:var(--z-modal);border-radius:var(--radius-sm);background:var(--glass-bg-strong);width:36px;height:36px;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-medium);color:var(--text-primary);font-size:var(--font-lg);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:none;position:fixed}.lo-dock-toggle:hover{background:var(--surface-elevated);border-color:var(--border-strong)}.lo-dock-overlay{z-index:calc(var(--z-sidebar) - 1);background:#00000080;display:none;position:fixed;inset:0}.lo-appframe{min-width:0;z-index:var(--z-base);scroll-behavior:smooth;flex:1;position:relative;overflow:hidden auto}.lo-appframe::-webkit-scrollbar{width:6px}.lo-appframe::-webkit-scrollbar-track{background:0 0}.lo-appframe::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.lo-appframe::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.lo-statusbar{height:24px;min-height:24px;padding:0 var(--space-4);background:var(--glass-bg-solid);border-top:1px solid var(--border-subtle);z-index:var(--z-sticky);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex;position:relative}.lo-statusbar-left,.lo-statusbar-center,.lo-statusbar-right{align-items:center;gap:var(--space-3);display:flex}.lo-statusbar-left{flex:1}.lo-statusbar-center{flex:none}.lo-statusbar-right{flex:1;justify-content:flex-end}.lo-statusbar-app{align-items:center;gap:var(--space-1);font-size:var(--font-2xs);color:var(--text-tertiary);font-weight:var(--font-weight-medium);display:flex}.lo-statusbar-pulse{background:var(--accent-purple);border-radius:50%;width:5px;height:5px;animation:3s ease-in-out infinite lo-pulse}.lo-statusbar-xp{font-size:var(--font-2xs);color:var(--accent-purple);font-weight:var(--font-weight-medium)}.lo-statusbar-level{font-size:var(--font-2xs);color:var(--text-secondary);cursor:default;align-items:center;gap:3px;display:flex}.lo-statusbar-level-emoji{font-size:10px}.lo-statusbar-level-name{font-weight:var(--font-weight-semibold);font-family:var(--font-mono);letter-spacing:.04em}.lo-statusbar-level-bar{background:var(--border-subtle);border-radius:2px;width:32px;height:3px;position:relative;overflow:hidden}.lo-statusbar-level-fill{background:var(--accent-purple);height:100%;transition:width .8s var(--ease-out);border-radius:2px;box-shadow:0 0 4px #c084fc4d}.lo-statusbar-streak{font-size:var(--font-2xs);color:#fb923c;font-weight:var(--font-weight-medium)}.lo-statusbar-hint{font-size:var(--font-2xs);color:var(--text-quaternary);letter-spacing:.03em}.lo-statusbar-time{font-size:var(--font-2xs);color:var(--text-quaternary);font-family:var(--font-mono);letter-spacing:.05em}.lo-splitview{height:100%;min-height:0;display:flex}.lo-split-content{min-width:0;padding:var(--space-8) var(--space-6);flex:1;overflow-y:auto}.lo-split-content::-webkit-scrollbar{width:6px}.lo-split-content::-webkit-scrollbar-track{background:0 0}.lo-split-content::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.lo-split-console{border-left:1px solid var(--border-subtle);background:var(--surface-sunken);flex-direction:column;width:420px;min-width:360px;max-width:500px;display:flex;position:relative}.lo-split-console:before{content:"";pointer-events:none;background:linear-gradient(#0000 0%,#38bdf814 30%,#c084fc14 70%,#0000 100%);width:1px;height:100%;position:absolute;top:0;left:0}.lo-split-handle{cursor:col-resize;width:4px;transition:background var(--transition-fast);background:0 0;flex-shrink:0;position:relative}.lo-split-handle:hover{background:var(--accent-purple)}.lo-split-console .console-panel{background:0 0;border:none;border-radius:0;height:100%}.lo-split-console .console-header{border-radius:0}.lo-console-toggle{background:var(--glass-bg-strong);border:1px solid var(--border-medium);border-radius:var(--radius-sm) 0 0 var(--radius-sm);width:24px;height:64px;color:var(--accent-purple);font-size:var(--font-md);cursor:pointer;transition:all var(--transition-fast);z-index:var(--z-raised);border-right:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.lo-console-toggle:hover{background:var(--surface-elevated);width:28px}.lo-console-toggle-icon{animation:2s ease-in-out infinite lo-pulse}.lo-console-close-row{padding:var(--space-1) var(--space-2);background:var(--surface-sunken);border-bottom:1px solid var(--border-subtle);justify-content:flex-end;display:flex}.lo-console-close{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--text-quaternary);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.lo-console-close:hover{color:var(--text-primary);background:var(--surface-elevated)}.lo-split-footer{border-top:1px solid var(--border-subtle);background:var(--surface-raised);padding:var(--space-3) var(--space-6)}.lo-grader{padding:var(--space-3);margin:var(--space-2) var(--space-3);background:var(--glass-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);animation:glassSlideUp var(--duration-base) var(--ease-out) both}.lo-grader-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.lo-grader-label{font-size:var(--font-2xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;flex:1}.lo-grader-grade{font-size:var(--font-lg);font-weight:var(--font-weight-black);line-height:1}.lo-grader-score{font-size:var(--font-xs);color:var(--text-quaternary);font-family:var(--font-mono)}.lo-grader-bars{flex-direction:column;gap:4px;display:flex}.lo-grader-row{align-items:center;gap:var(--space-2);display:flex}.lo-grader-dim-label{font-size:var(--font-2xs);color:var(--text-quaternary);flex-shrink:0;width:72px}.lo-grader-bar-track{background:var(--border-subtle);border-radius:2px;flex:1;height:4px;overflow:hidden}.lo-grader-bar-fill{height:100%;transition:width var(--duration-slow) var(--ease-out);border-radius:2px}.lo-grader-dim-val{font-size:var(--font-2xs);color:var(--text-quaternary);font-family:var(--font-mono);text-align:right;width:24px}.lo-grader-tip{margin-top:var(--space-2);padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-secondary);align-items:flex-start;gap:var(--space-2);background:#c084fc0f;display:flex}.lo-grader-tip-icon{flex-shrink:0}.lo-diff{padding:var(--space-3);margin:var(--space-2) var(--space-3);background:var(--glass-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);animation:glassSlideUp var(--duration-base) var(--ease-out) both}.lo-diff-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.lo-diff-icon{font-size:var(--font-md)}.lo-diff-title{font-size:var(--font-xs);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.lo-diff-panels{gap:var(--space-2);align-items:stretch;display:flex}.lo-diff-panel{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);flex:1}.lo-diff-bad{background:#ef44440a;border-color:#ef444426}.lo-diff-good{background:#4ade800a;border-color:#4ade8026}.lo-diff-panel-label{align-items:center;gap:var(--space-1);font-size:var(--font-2xs);color:var(--text-quaternary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-1);display:flex}.lo-diff-dot{border-radius:50%;width:6px;height:6px}.lo-diff-dot-bad{background:var(--status-error)}.lo-diff-dot-good{background:var(--status-success)}.lo-diff-text{font-size:var(--font-xs);color:var(--text-secondary);line-height:var(--line-normal);font-family:var(--font-mono)}.lo-diff-arrow{color:var(--text-quaternary);font-size:var(--font-lg);flex-shrink:0;align-items:center;display:flex}.lo-diff-try{margin-top:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);color:var(--accent-purple);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);text-align:center;background:#c084fc1a;border:1px solid #c084fc33;width:100%}.lo-diff-try:hover{background:#c084fc26;border-color:#c084fc4d}.lo-celebration{pointer-events:none;z-index:var(--z-overlay);position:absolute;inset:0;overflow:hidden}.lo-celebration-glow{background:radial-gradient(circle,#c084fc33 0%,#0000 70%);border-radius:50%;width:200px;height:200px;animation:1s ease-out forwards lo-celebration-glow-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lo-celebration-glow-big{background:radial-gradient(circle,#c084fc40 0%,#38bdf81a 40%,#0000 70%);width:400px;height:400px;animation-duration:2s}@keyframes lo-celebration-glow-pulse{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}30%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.5)}}.lo-celebration-particle{border-radius:50%;animation:ease-out forwards lo-particle-fly;position:absolute}@keyframes lo-particle-fly{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(0)}}.lo-celebration-star{color:var(--accent-purple);font-size:48px;animation:1.5s ease-out forwards lo-star-burst;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes lo-star-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(0)rotate(0)}30%{opacity:1;transform:translate(-50%,-50%)scale(1.2)rotate(180deg)}60%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(360deg)}to{opacity:0;transform:translate(-50%,-50%)scale(1.5)rotate(540deg)}}.console-panel{background:var(--surface-sunken);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.console-header{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--glass-bg-solid);border-bottom:1px solid var(--border-subtle);border-radius:var(--radius-lg) var(--radius-lg) 0 0;-webkit-user-select:none;user-select:none;animation:lo-console-header-in .4s var(--ease-out) both;display:flex}.console-dots{align-items:center;gap:5px;display:flex}.console-dot{opacity:.6;border-radius:50%;width:10px;height:10px}.dot-red{background:#ff5f57}.dot-yellow{background:#febc2e}.dot-green{background:#28c840}.console-title{font-size:var(--font-2xs);color:var(--text-quaternary);letter-spacing:.03em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.console-exercise-bar{padding:var(--space-3);border-bottom:1px solid var(--border-subtle);animation:lo-slide-down .5s var(--ease-out) both;background:#c084fc0a}.console-exercise-badge{align-items:center;gap:var(--space-1);margin-bottom:var(--space-1);display:flex}.console-exercise-icon{font-size:var(--font-sm);animation:2s ease-in-out infinite lo-exercise-glow}.console-exercise-label{font-size:var(--font-2xs);font-weight:var(--font-weight-semibold);color:var(--accent-purple);text-transform:uppercase;letter-spacing:.08em}.console-exercise-prompt{font-size:var(--font-xs);color:var(--text-secondary);line-height:var(--line-normal);margin:0}.console-hint-btn{margin-top:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--accent-purple);font-size:var(--font-2xs);cursor:pointer;transition:all var(--transition-fast);background:#c084fc14;border:1px solid #c084fc26}.console-hint-btn:hover{background:#c084fc24;border-color:#c084fc40}.console-exercise-progress{margin-top:var(--space-2);gap:4px;display:flex}.console-exercise-pip{background:var(--border-default);width:16px;height:3px;transition:all .5s var(--ease-out);border-radius:2px}.console-exercise-pip.pip-active{background:var(--accent-purple);animation:1.5s ease-in-out infinite lo-pip-pulse;box-shadow:0 0 6px #c084fc66}.console-exercise-pip.pip-done{background:var(--status-success);box-shadow:0 0 4px #4ade804d}.console-scenario{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border-left:3px solid var(--border-default);font-size:var(--font-2xs);line-height:var(--line-normal);background:#ffffff05}.console-scenario-text{white-space:pre-wrap;font-family:var(--font-mono);color:var(--text-secondary);margin:0}.console-scenario-debug{border-left-color:var(--status-error);background:#ef44440a}.console-scenario-analyze{border-left-color:var(--accent-blue);background:#38bdf80a}.console-scenario-rewrite{border-left-color:var(--status-warning);background:#facc150a}.console-scenario-compare{border-left-color:var(--text-tertiary);background:#ffffff08}.console-textarea{resize:vertical;min-height:64px;max-height:180px;line-height:var(--line-normal)}.console-history{padding:var(--space-3);gap:var(--space-3);scroll-behavior:smooth;flex-direction:column;flex:1;display:flex;overflow-y:auto}.console-history::-webkit-scrollbar{width:4px}.console-history::-webkit-scrollbar-track{background:0 0}.console-history::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:2px}.console-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-quaternary);font-size:var(--font-xs);justify-content:center;align-items:center;gap:var(--space-2);animation:lo-fade-in .6s var(--ease-out) both;flex-direction:column;display:flex}.console-empty-icon{font-size:var(--font-2xl);color:var(--accent-purple);opacity:.4;animation:1.2s steps(2,end) infinite lo-cursor-blink}.console-empty-hint{color:var(--text-quaternary);font-size:var(--font-2xs)}.console-inline-prompt{border-radius:var(--radius-sm);color:var(--accent-purple);font-size:var(--font-2xs);padding:1px var(--space-2);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-mono);background:#c084fc14;border:1px solid #c084fc26}.console-inline-prompt:hover{background:#c084fc24}.console-msg{gap:var(--space-2);animation:lo-msg-enter .35s var(--ease-out) both;display:flex}.console-msg-avatar{width:20px;height:20px;font-size:var(--font-xs);color:var(--text-quaternary);flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:flex}.console-msg-user .console-msg-avatar{color:var(--accent-purple)}.console-msg-assistant .console-msg-avatar{color:var(--status-info);animation:.5s ease-out lo-avatar-glow}.console-msg-content{flex:1;min-width:0}.console-msg-label{font-size:var(--font-2xs);color:var(--text-quaternary);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;display:block}.console-msg-text{font-size:var(--font-xs);color:var(--text-secondary);line-height:var(--line-relaxed);white-space:pre-wrap;word-break:break-word}.console-msg-user .console-msg-text{color:var(--text-primary)}.console-cursor{color:var(--accent-purple);font-weight:var(--font-weight-bold);margin-left:1px;animation:.8s steps(2,end) infinite lo-cursor-blink;display:inline-block}.console-typing{padding:var(--space-2) var(--space-3);animation:lo-fade-in .3s var(--ease-out) both;align-items:center;gap:4px;display:flex}.console-typing-dot{background:var(--accent-purple);border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite lo-typing-bounce}.console-typing-dot:nth-child(2){animation-delay:.16s}.console-typing-dot:nth-child(3){animation-delay:.32s}.console-input-bar{align-items:flex-end;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-subtle);background:var(--glass-bg-solid);animation:lo-slide-up .4s var(--ease-out) .2s both;display:flex}.console-input{background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);color:var(--text-primary);font-size:var(--font-xs);font-family:var(--font-mono);transition:all var(--transition-fast);outline:none;flex:1}.console-input::placeholder{color:var(--text-quaternary)}.console-input:focus{border-color:var(--accent-purple);box-shadow:0 0 0 2px #c084fc1f,0 0 12px #c084fc0f}.console-input:disabled{opacity:.5;cursor:not-allowed}.console-send-btn{border-radius:var(--radius-sm);background:var(--accent-purple);color:#fff;width:32px;height:32px;font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.console-send-btn:hover:not(:disabled){background:var(--accent-purple-hover,#a855f7);transform:scale(1.05);box-shadow:0 0 12px #c084fc4d}.console-send-btn:disabled{opacity:.3;cursor:not-allowed;transform:none}.console-complete{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);margin:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-xs);font-weight:var(--font-weight-semibold);color:var(--status-success);animation:lo-complete-enter .6s var(--ease-spring) both;background:#4ade800f;border:1px solid #4ade8026;display:flex}.console-complete-icon{font-size:var(--font-md);animation:2s ease-in-out lo-star-spin}.academy-complete-wrap{position:relative}.lo-xp-feedback{align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:var(--font-weight-semibold);color:var(--accent-purple);animation:lo-xp-pop .5s var(--ease-spring) both;background:#c084fc1a;border:1px solid #c084fc33;display:inline-flex}@keyframes lo-xp-pop{0%{opacity:0;transform:translateY(4px)scale(.9)}60%{opacity:1;transform:translateY(-2px)scale(1.05)}to{transform:translateY(0)scale(1)}}@keyframes lo-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lo-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes lo-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes lo-msg-enter{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes lo-complete-enter{0%{opacity:0;transform:scale(.9)}60%{opacity:1;transform:scale(1.03)}to{transform:scale(1)}}@keyframes lo-console-header-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes lo-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes lo-typing-bounce{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes lo-exercise-glow{0%,to{filter:brightness()}50%{filter:brightness(1.4)}}@keyframes lo-pip-pulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes lo-star-spin{0%{opacity:0;transform:rotate(0)scale(.5)}30%{opacity:1;transform:rotate(180deg)scale(1.2)}60%{transform:rotate(360deg)scale(1)}to{opacity:1;transform:rotate(540deg)scale(1)}}@keyframes lo-avatar-glow{0%{filter:brightness(1.5)}to{filter:brightness()}}.lo-split-console.lo-console-active:before{background:linear-gradient(#0000 0%,#c084fc26 30%,#38bdf81f 70%,#0000 100%);transition:background .6s}.lo-split-console.lo-console-active:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#c084fc33 30%,#38bdf833 70%,#0000 100%);height:1px;animation:3s ease-in-out infinite lo-glow-sweep;position:absolute;bottom:0;left:0;right:0}@keyframes lo-glow-sweep{0%,to{opacity:.3}50%{opacity:1}}.lo-split-console.lo-console-typing:before{background:linear-gradient(#0000 0%,#c084fc40 20%,#38bdf82e 80%,#0000 100%)}.lo-split-content .lesson-content{animation:lo-lesson-enter .5s var(--ease-out) both}@keyframes lo-lesson-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.lo-split-content .lesson-content>*{animation:lo-stagger-in .4s var(--ease-out) both}.lo-split-content .lesson-content>:first-child{animation-delay:50ms}.lo-split-content .lesson-content>:nth-child(2){animation-delay:.1s}.lo-split-content .lesson-content>:nth-child(3){animation-delay:.15s}.lo-split-content .lesson-content>:nth-child(4){animation-delay:.2s}.lo-split-content .lesson-content>:nth-child(5){animation-delay:.25s}.lo-split-content .lesson-content>:nth-child(n+6){animation-delay:.3s}@keyframes lo-stagger-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.lo-statusbar-pulse.lo-pulse-active{background:var(--accent-purple);animation:1.2s ease-in-out infinite lo-pulse-active}.lo-statusbar-pulse.lo-pulse-typing{background:var(--status-info);animation:.6s ease-in-out infinite lo-pulse-typing;box-shadow:0 0 6px #38bdf866}.lo-statusbar-pulse.lo-pulse-celebrating{animation:.8s ease-in-out infinite lo-pulse-celebrate}.lo-statusbar-activity{font-size:var(--font-2xs);color:var(--text-quaternary);font-family:var(--font-mono);letter-spacing:.03em;text-overflow:ellipsis;white-space:nowrap;max-width:160px;animation:.3s both lo-fade-in;overflow:hidden}@keyframes lo-pulse-active{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes lo-pulse-typing{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}@keyframes lo-pulse-celebrate{0%{opacity:1;background:#c084fc;transform:scale(1)}25%{background:#38bdf8}50%{background:#4ade80;transform:scale(1.4)}75%{background:#e879f9}to{opacity:1;background:#c084fc;transform:scale(1)}}.lo-topbar{animation:lo-shell-topbar .4s var(--ease-out) both}@keyframes lo-shell-topbar{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.lo-dock{animation:lo-shell-dock .5s var(--ease-out) .1s both}@keyframes lo-shell-dock{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.lo-appframe{animation:lo-shell-frame .5s var(--ease-out) .2s both}@keyframes lo-shell-frame{0%{opacity:0}to{opacity:1}}.lo-statusbar{animation:lo-shell-statusbar .4s var(--ease-out) .15s both}@keyframes lo-shell-statusbar{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.lo-shell:after{content:"";pointer-events:none;height:1px;z-index:var(--z-sticky);background:linear-gradient(90deg,#0000 0%,#c084fc14 25%,#38bdf80f 50%,#e879f914 75%,#0000 100%);animation:8s ease-in-out infinite lo-ambient-sweep;position:fixed;bottom:24px;left:0;right:0}@keyframes lo-ambient-sweep{0%,to{opacity:.3;background-position:0 0}50%{opacity:.8;background-position:100% 0}}.lo-dock:after{animation:6s ease-in-out infinite lo-dock-breathe}@keyframes lo-dock-breathe{0%,to{opacity:.3}50%{opacity:.7}}@media (max-width:1024px){.lo-dock{width:240px;min-width:240px}.lo-split-console{width:340px;min-width:300px}}@media (max-width:768px){.lo-dock{width:var(--sidebar-width);min-width:var(--sidebar-width);transition:transform var(--transition-slow);z-index:var(--z-modal);position:fixed;top:38px;bottom:24px;left:0;transform:translate(-100%)}.lo-dock.lo-dock-open{transform:translate(0)}.lo-dock-toggle{display:flex}.lo-dock-overlay{display:block}.lo-splitview{flex-direction:column}.lo-split-content{padding:var(--space-4);flex:1}.lo-split-console{border-left:none;border-top:1px solid var(--border-subtle);width:100%;min-width:100%;max-width:100%;height:50vh}.lo-split-console:before,.lo-split-handle{display:none}}@media (max-width:480px){.lo-topbar-center{display:none}.lo-topbar{padding:0 var(--space-3)}.lo-statusbar-center{display:none}}.lo-content-gated{max-height:70vh;position:relative;overflow:hidden}.lo-content-gated .lesson-content{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-mask-image:linear-gradient(#000 30%,#0000 85%);mask-image:linear-gradient(#000 30%,#0000 85%)}.lesson-gate{z-index:10;padding:var(--space-6) var(--space-4);justify-content:center;display:flex;position:absolute;bottom:0;left:0;right:0}.lesson-gate-overlay{background:linear-gradient(to bottom, transparent 0%, var(--surface-base) 40%);pointer-events:none;position:absolute;inset:0}.lesson-gate-cta{z-index:2;background:var(--glass-bg);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;width:100%;max-width:480px;position:relative;box-shadow:0 8px 32px #0006}.lesson-gate-icon{margin-bottom:var(--space-3);font-size:2.5rem}.lesson-gate-title{font-size:var(--text-xl);color:var(--text-primary);margin:0 0 var(--space-2);font-weight:700}.lesson-gate-desc{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 var(--space-5);line-height:1.6}.lesson-gate-actions{gap:var(--space-2);flex-direction:column;align-items:center;display:flex}.lesson-gate-actions .site-btn-primary{width:100%;max-width:280px}.lesson-gate-actions .site-btn-ghost{font-size:var(--text-sm);color:var(--text-tertiary)}.lesson-gate-note{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--text-tertiary)}.lesson-gate-note a{color:var(--accent-blue);text-decoration:underline}.immersive-lesson{scroll-behavior:smooth;flex-direction:column;height:100%;display:flex;overflow-y:auto}.immersive-lesson::-webkit-scrollbar{width:6px}.immersive-lesson::-webkit-scrollbar-track{background:0 0}.immersive-lesson::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.immersive-content{padding:var(--space-8) var(--space-8);flex:1 0 auto;width:100%;max-width:800px;margin:0 auto}.immersive-lesson-body{animation:lo-lesson-enter .5s var(--ease-out) both}.immersive-lesson-body>*{animation:lo-stagger-in .4s var(--ease-out) both}.immersive-lesson-body>:first-child{animation-delay:50ms}.immersive-lesson-body>:nth-child(2){animation-delay:.1s}.immersive-lesson-body>:nth-child(3){animation-delay:.15s}.immersive-lesson-body>:nth-child(4){animation-delay:.2s}.immersive-lesson-body>:nth-child(5){animation-delay:.25s}.immersive-lesson-body>:nth-child(n+6){animation-delay:.3s}.immersive-console-section{width:100%;max-width:800px;padding:0 var(--space-8);margin:0 auto;position:relative}.immersive-console-section:before{content:"";top:0;left:var(--space-8);right:var(--space-8);background:linear-gradient(90deg,#0000 0%,#c084fc33 20%,#38bdf826 50%,#c084fc33 80%,#0000 100%);height:1px;position:absolute}.immersive-console-header{padding:var(--space-4) 0 0}.immersive-console-tab{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-sm);font-family:var(--font-mono);cursor:pointer;transition:all var(--transition-fast);display:flex}.immersive-console-tab:hover{background:var(--surface-elevated);border-color:var(--border-medium)}.immersive-console-tab-icon{color:var(--accent-purple);font-size:var(--font-md);animation:2s ease-in-out infinite lo-pulse}.immersive-console-tab-label{font-weight:var(--font-weight-bold);text-align:left;flex:1}.immersive-console-tab-count{font-size:var(--font-2xs);color:var(--text-quaternary);background:var(--surface-sunken);border-radius:var(--radius-full);padding:2px 8px}.immersive-console-chevron{color:var(--text-tertiary);transition:transform var(--transition-fast);font-size:var(--font-xs)}.immersive-console-chevron.expanded{transform:rotate(180deg)}.immersive-console-body{max-height:0;transition:max-height .4s var(--ease-out), opacity .3s ease;opacity:0;overflow:hidden}.immersive-console-body.expanded{opacity:1;max-height:2000px;padding-bottom:var(--space-4)}.immersive-console-body .console-panel{border-radius:0 0 var(--radius-md) var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-sunken);border-top:none}.immersive-console-body .console-header{display:none}.immersive-console-active:before{background:linear-gradient(90deg,#0000 0%,#c084fc59 20%,#38bdf840 50%,#c084fc59 80%,#0000 100%);transition:background .6s}.immersive-console-typing .immersive-console-tab{border-color:#38bdf84d;box-shadow:0 0 12px #38bdf814}.immersive-footer{width:100%;max-width:800px;padding:var(--space-6) var(--space-8) var(--space-8);border-top:1px solid var(--border-subtle);margin:0 auto;margin-top:var(--space-6)}@media (max-width:768px){.immersive-content{padding:var(--space-4) var(--space-4)}.immersive-console-section{padding:0 var(--space-4)}.immersive-console-section:before{left:var(--space-4);right:var(--space-4)}.immersive-footer{padding:var(--space-4)}}@media (max-width:480px){.immersive-content{padding:var(--space-3) var(--space-3)}.immersive-console-section{padding:0 var(--space-3)}.immersive-console-section:before{left:var(--space-3);right:var(--space-3)}.immersive-footer{padding:var(--space-3)}}.immersive-console-body.expanded .console-input-bar{z-index:5;background:var(--surface-base);border-top:1px solid var(--border-subtle);padding-top:var(--space-2);position:sticky;bottom:0}.immersive-console-expanded .immersive-console-tab{background:var(--surface-elevated);border-color:#c084fc33}
