.lo-shell{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background:var(--surface-base);position:relative}.lo-shell:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 20% 50%,rgba(192,132,252,.03) 0,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(56,189,248,.02) 0,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(232,121,249,.015) 0,transparent 50%);pointer-events:none;z-index:0}.lo-topbar{display:flex;align-items:center;justify-content:space-between;height:38px;min-height:38px;padding:0 var(--space-4);background:var(--glass-bg-solid);border-bottom:1px solid var(--border-subtle);position:relative;z-index:var(--z-sticky);-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-app-region:drag}.lo-topbar-center,.lo-topbar-left,.lo-topbar-right{display:flex;align-items:center;gap:var(--space-3)}.lo-topbar-left{flex:1 1}.lo-topbar-center{flex:0 0 auto}.lo-topbar-right{flex:1 1;justify-content:flex-end}.lo-traffic-lights{display:flex;gap:6px;align-items:center;-webkit-app-region:no-drag}.lo-dot{width:12px;height:12px;border-radius:50%;transition:opacity var(--transition-fast);cursor:default;display:block;text-decoration:none}.lo-dot-red{background:#ff5f57;cursor:pointer}.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{display:flex;align-items:center;gap:var(--space-2);margin-left:var(--space-3)}.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-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.lo-topbar-status{display:flex;align-items:center;gap:var(--space-1)}.lo-status-dot{width:6px;height:6px;border-radius:50%;background:var(--status-success);animation:lo-pulse 3s ease-in-out infinite}.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{flex:1 1;min-height:0;z-index:var(--z-base)}.lo-dock,.lo-shell-body{display:flex;position:relative}.lo-dock{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100%;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-right:1px solid var(--border-subtle);flex-direction:column;overflow:hidden;z-index:var(--z-sidebar);transition:width var(--transition-slow),min-width var(--transition-slow)}.lo-dock:after{content:"";position:absolute;top:0;right:0;width:1px;height:100%;background:linear-gradient(180deg,transparent 0,rgba(192,132,252,.06) 30%,rgba(192,132,252,.06) 70%,transparent);pointer-events:none}.lo-dock-scroll{flex:1 1;overflow-y:auto;overflow-x:hidden;padding:var(--space-4) 0}.lo-dock-scroll::-webkit-scrollbar{width:4px}.lo-dock-scroll::-webkit-scrollbar-track{background:transparent}.lo-dock-scroll::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:2px}.lo-dock-appheader{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4) var(--space-4);text-decoration:none;color:var(--text-primary);transition:opacity var(--transition-fast)}.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{display:flex;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);text-decoration:none;transition:all var(--transition-fast)}.lo-dock-quicklink:hover{color:var(--text-primary);background:var(--surface-elevated)}.lo-dock-quicklink.active{color:var(--accent-purple);background:rgba(192,132,252,.08)}.lo-dock-quickicon{font-size:var(--font-md);width:20px;text-align:center}.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{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);background:none;border:none;cursor:pointer;font:inherit;font-size:var(--font-sm);color:var(--text-secondary);text-align:left;transition:all var(--transition-fast);border-radius:0}.lo-dock-course-btn:hover{color:var(--text-primary);background:var(--surface-elevated)}.lo-dock-course-btn.current{color:var(--accent-purple);background:rgba(192,132,252,.06)}.lo-dock-chevron{font-size:8px;color:var(--text-quaternary);transition:transform var(--transition-fast);flex-shrink:0;width:12px}.lo-dock-chevron.expanded{transform:rotate(90deg)}.lo-dock-course-emoji{font-size:var(--font-sm);flex-shrink:0}.lo-dock-course-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lo-dock-lessons{padding:var(--space-1) 0}.lo-dock-lesson{display:flex;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);text-decoration:none;transition:all var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lo-dock-lesson:hover{color:var(--text-primary);background:var(--surface-elevated)}.lo-dock-lesson.active{color:var(--accent-purple);background:rgba(192,132,252,.06)}.lo-dock-lesson-dot{width:4px;height:4px;border-radius:50%;background:var(--text-quaternary);flex-shrink:0}.lo-dock-lesson.active .lo-dock-lesson-dot{background:var(--accent-purple);box-shadow:0 0 6px rgba(192,132,252,.4)}.lo-dock-lesson-title{overflow:hidden;text-overflow:ellipsis}.lo-dock-toggle{display:none;position:fixed;top:46px;left:var(--space-3);z-index:var(--z-modal);width:36px;height:36px;border-radius:var(--radius-sm);background:var(--glass-bg-strong);-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;align-items:center;justify-content:center;transition:all var(--transition-fast)}.lo-dock-toggle:hover{background:var(--surface-elevated);border-color:var(--border-strong)}.lo-dock-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:calc(var(--z-sidebar) - 1)}.lo-appframe{flex:1 1;min-width:0;overflow-y:auto;overflow-x:hidden;position:relative;z-index:var(--z-base);scroll-behavior:smooth}.lo-appframe::-webkit-scrollbar{width:6px}.lo-appframe::-webkit-scrollbar-track{background:transparent}.lo-appframe::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.lo-appframe::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.lo-statusbar{display:flex;align-items:center;justify-content:space-between;height:24px;min-height:24px;padding:0 var(--space-4);background:var(--glass-bg-solid);border-top:1px solid var(--border-subtle);position:relative;z-index:var(--z-sticky);-webkit-user-select:none;-moz-user-select:none;user-select:none}.lo-statusbar-center,.lo-statusbar-left,.lo-statusbar-right{display:flex;align-items:center;gap:var(--space-3)}.lo-statusbar-left{flex:1 1}.lo-statusbar-center{flex:0 0 auto}.lo-statusbar-right{flex:1 1;justify-content:flex-end}.lo-statusbar-app{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-2xs);color:var(--text-tertiary);font-weight:var(--font-weight-medium)}.lo-statusbar-pulse{width:5px;height:5px;border-radius:50%;background:var(--accent-purple);animation:lo-pulse 3s ease-in-out infinite}.lo-statusbar-xp{font-size:var(--font-2xs);color:var(--accent-purple);font-weight:var(--font-weight-medium)}.lo-statusbar-level{display:flex;align-items:center;gap:3px;font-size:var(--font-2xs);color:var(--text-secondary);cursor:default}.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{width:32px;height:3px;background:var(--border-subtle);border-radius:2px;overflow:hidden;position:relative}.lo-statusbar-level-fill{height:100%;background:var(--accent-purple);border-radius:2px;transition:width .8s var(--ease-out);box-shadow:0 0 4px rgba(192,132,252,.3)}.lo-statusbar-streak{font-size:var(--font-2xs);color:#fb923c;font-weight:var(--font-weight-medium)}.lo-statusbar-hint{letter-spacing:.03em}.lo-statusbar-hint,.lo-statusbar-time{font-size:var(--font-2xs);color:var(--text-quaternary)}.lo-statusbar-time{font-family:var(--font-mono);letter-spacing:.05em}.lo-splitview{display:flex;height:100%;min-height:0}.lo-split-content{flex:1 1;min-width:0;overflow-y:auto;padding:var(--space-8) var(--space-6)}.lo-split-content::-webkit-scrollbar{width:6px}.lo-split-content::-webkit-scrollbar-track{background:transparent}.lo-split-content::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.lo-split-console{width:420px;min-width:360px;max-width:500px;border-left:1px solid var(--border-subtle);display:flex;flex-direction:column;background:var(--surface-sunken);position:relative}.lo-split-console:before{content:"";position:absolute;top:0;left:0;width:1px;height:100%;background:linear-gradient(180deg,transparent 0,rgba(56,189,248,.08) 30%,rgba(192,132,252,.08) 70%,transparent);pointer-events:none}.lo-split-handle{width:4px;cursor:col-resize;background:transparent;transition:background var(--transition-fast);position:relative;flex-shrink:0}.lo-split-handle:hover{background:var(--accent-purple)}.lo-split-console .console-panel{height:100%;border-radius:0;border:none;background:transparent}.lo-split-console .console-header{border-radius:0}.lo-console-toggle{position:absolute;right:0;top:50%;transform:translateY(-50%);width:24px;height:64px;background:var(--glass-bg-strong);border:1px solid var(--border-medium);border-right:none;border-radius:var(--radius-sm) 0 0 var(--radius-sm);color:var(--accent-purple);font-size:var(--font-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);z-index:var(--z-raised)}.lo-console-toggle:hover{background:var(--surface-elevated);width:28px}.lo-console-toggle-icon{animation:lo-pulse 2s ease-in-out infinite}.lo-console-close-row{display:flex;justify-content:flex-end;padding:var(--space-1) var(--space-2);background:var(--surface-sunken);border-bottom:1px solid var(--border-subtle)}.lo-console-close{width:20px;height:20px;border-radius:var(--radius-sm);background:none;border:none;color:var(--text-quaternary);font-size:var(--font-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.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{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.lo-grader-label{font-size:var(--font-2xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;flex:1 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{display:flex;flex-direction:column;gap:4px}.lo-grader-row{display:flex;align-items:center;gap:var(--space-2)}.lo-grader-dim-label{font-size:var(--font-2xs);color:var(--text-quaternary);width:72px;flex-shrink:0}.lo-grader-bar-track{flex:1 1;height:4px;background:var(--border-subtle);border-radius:2px;overflow:hidden}.lo-grader-bar-fill{height:100%;border-radius:2px;transition:width var(--duration-slow) var(--ease-out)}.lo-grader-dim-val{font-size:var(--font-2xs);color:var(--text-quaternary);font-family:var(--font-mono);width:24px;text-align:right}.lo-grader-tip{margin-top:var(--space-2);padding:var(--space-2);background:rgba(192,132,252,.06);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-secondary);display:flex;align-items:flex-start;gap:var(--space-2)}.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{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.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{display:flex;gap:var(--space-2);align-items:stretch}.lo-diff-panel{flex:1 1;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.lo-diff-bad{background:rgba(239,68,68,.04);border-color:rgba(239,68,68,.15)}.lo-diff-good{background:rgba(74,222,128,.04);border-color:rgba(74,222,128,.15)}.lo-diff-panel-label{display:flex;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)}.lo-diff-dot{width:6px;height:6px;border-radius:50%}.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{display:flex;align-items:center;color:var(--text-quaternary);font-size:var(--font-lg);flex-shrink:0}.lo-diff-try{margin-top:var(--space-2);padding:var(--space-1) var(--space-3);background:rgba(192,132,252,.1);border:1px solid rgba(192,132,252,.2);border-radius:var(--radius-sm);color:var(--accent-purple);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);width:100%;text-align:center}.lo-diff-try:hover{background:rgba(192,132,252,.15);border-color:rgba(192,132,252,.3)}.lo-celebration{position:absolute;inset:0;pointer-events:none;z-index:var(--z-overlay);overflow:hidden}.lo-celebration-glow{position:absolute;top:50%;left:50%;width:200px;height:200px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(192,132,252,.2) 0,transparent 70%);animation:lo-celebration-glow-pulse 1s ease-out forwards;border-radius:50%}.lo-celebration-glow-big{width:400px;height:400px;background:radial-gradient(circle,rgba(192,132,252,.25) 0,rgba(56,189,248,.1) 40%,transparent 70%);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{position:absolute;border-radius:50%;animation:lo-particle-fly ease-out forwards}@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{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;color:var(--accent-purple);animation:lo-star-burst 1.5s ease-out forwards}@keyframes lo-star-burst{0%{opacity:0;transform:translate(-50%,-50%) scale(0) rotate(0deg)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.2) rotate(180deg)}60%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(1turn)}to{opacity:0;transform:translate(-50%,-50%) scale(1.5) rotate(540deg)}}.console-panel{display:flex;flex-direction:column;height:100%;background:var(--surface-sunken);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow:hidden;position:relative}.console-header{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;-moz-user-select:none;user-select:none;animation:lo-console-header-in .4s var(--ease-out) both}.console-dots,.console-header{display:flex;align-items:center}.console-dots{gap:5px}.console-dot{width:10px;height:10px;border-radius:50%;opacity:.6}.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;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.console-exercise-bar{padding:var(--space-3);background:rgba(192,132,252,.04);border-bottom:1px solid var(--border-subtle);animation:lo-slide-down .5s var(--ease-out) both}.console-exercise-badge{display:flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-1)}.console-exercise-icon{font-size:var(--font-sm);animation:lo-exercise-glow 2s ease-in-out infinite}.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);background:rgba(192,132,252,.08);border:1px solid rgba(192,132,252,.15);border-radius:var(--radius-sm);color:var(--accent-purple);font-size:var(--font-2xs);cursor:pointer;transition:all var(--transition-fast)}.console-hint-btn:hover{background:rgba(192,132,252,.14);border-color:rgba(192,132,252,.25)}.console-exercise-progress{display:flex;gap:4px;margin-top:var(--space-2)}.console-exercise-pip{width:16px;height:3px;border-radius:2px;background:var(--border-default);transition:all .5s var(--ease-out)}.console-exercise-pip.pip-active{background:var(--accent-purple);box-shadow:0 0 6px rgba(192,132,252,.4);animation:lo-pip-pulse 1.5s ease-in-out infinite}.console-exercise-pip.pip-done{background:var(--status-success);box-shadow:0 0 4px rgba(74,222,128,.3)}.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);background:hsla(0,0%,100%,.02);font-size:var(--font-2xs);line-height:var(--line-normal)}.console-scenario-text{margin:0;white-space:pre-wrap;font-family:var(--font-mono);color:var(--text-secondary)}.console-scenario-debug{border-left-color:var(--status-error);background:rgba(239,68,68,.04)}.console-scenario-analyze{border-left-color:var(--accent-blue);background:rgba(56,189,248,.04)}.console-scenario-rewrite{border-left-color:var(--status-warning);background:rgba(250,204,21,.04)}.console-scenario-compare{border-left-color:var(--text-tertiary);background:hsla(0,0%,100%,.03)}.console-textarea{resize:vertical;min-height:64px;max-height:180px;line-height:var(--line-normal)}.console-history{flex:1 1;overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3);scroll-behavior:smooth}.console-history::-webkit-scrollbar{width:4px}.console-history::-webkit-scrollbar-track{background:transparent}.console-history::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:2px}.console-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-quaternary);font-size:var(--font-xs);gap:var(--space-2);animation:lo-fade-in .6s var(--ease-out) both}.console-empty-icon{font-size:var(--font-2xl);color:var(--accent-purple);opacity:.4;animation:lo-cursor-blink 1.2s steps(2) infinite}.console-empty-hint{color:var(--text-quaternary);font-size:var(--font-2xs)}.console-inline-prompt{background:rgba(192,132,252,.08);border:1px solid rgba(192,132,252,.15);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)}.console-inline-prompt:hover{background:rgba(192,132,252,.14)}.console-msg{display:flex;gap:var(--space-2);animation:lo-msg-enter .35s var(--ease-out) both}.console-msg-avatar{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:var(--font-xs);flex-shrink:0;color:var(--text-quaternary);margin-top:2px}.console-msg-user .console-msg-avatar{color:var(--accent-purple)}.console-msg-assistant .console-msg-avatar{color:var(--status-info);animation:lo-avatar-glow .5s ease-out}.console-msg-content{flex:1 1;min-width:0}.console-msg-label{display:block;font-size:var(--font-2xs);color:var(--text-quaternary);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.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{display:inline-block;color:var(--accent-purple);animation:lo-cursor-blink .8s steps(2) infinite;margin-left:1px;font-weight:var(--font-weight-bold)}.console-typing{display:flex;align-items:center;gap:4px;padding:var(--space-2) var(--space-3);animation:lo-fade-in .3s var(--ease-out) both}.console-typing-dot{width:5px;height:5px;border-radius:50%;background:var(--accent-purple);animation:lo-typing-bounce 1.4s ease-in-out infinite}.console-typing-dot:nth-child(2){animation-delay:.16s}.console-typing-dot:nth-child(3){animation-delay:.32s}.console-input-bar{display:flex;align-items:flex-end;gap:var(--space-2);border-top:1px solid var(--border-subtle);background:var(--glass-bg-solid);animation:lo-slide-up .4s var(--ease-out) .2s both}.console-input,.console-input-bar{padding:var(--space-2) var(--space-3)}.console-input{flex:1 1;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-xs);font-family:var(--font-mono);outline:none;transition:all var(--transition-fast)}.console-input::placeholder{color:var(--text-quaternary)}.console-input:focus{border-color:var(--accent-purple);box-shadow:0 0 0 2px rgba(192,132,252,.12),0 0 12px rgba(192,132,252,.06)}.console-input:disabled{opacity:.5;cursor:not-allowed}.console-send-btn{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--accent-purple);border:none;color:#fff;font-size:var(--font-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.console-send-btn:hover:not(:disabled){background:var(--accent-purple-hover,#a855f7);transform:scale(1.05);box-shadow:0 0 12px rgba(192,132,252,.3)}.console-send-btn:disabled{opacity:.3;cursor:not-allowed;transform:none}.console-complete{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3);margin:var(--space-2) var(--space-3);background:rgba(74,222,128,.06);border:1px solid rgba(74,222,128,.15);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}.console-complete-icon{font-size:var(--font-md);animation:lo-star-spin 2s ease-in-out}.academy-complete-wrap{position:relative}.lo-xp-feedback{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-1) var(--space-3);background:rgba(192,132,252,.1);border:1px solid rgba(192,132,252,.2);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}@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{transform:translateY(0);opacity:.3}30%{transform:translateY(-4px);opacity:1}}@keyframes lo-exercise-glow{0%,to{filter:brightness(1)}50%{filter:brightness(1.4)}}@keyframes lo-pip-pulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes lo-star-spin{0%{transform:rotate(0deg) scale(.5);opacity:0}30%{transform:rotate(180deg) scale(1.2);opacity:1}60%{transform:rotate(1turn) scale(1)}to{transform:rotate(540deg) scale(1);opacity:1}}@keyframes lo-avatar-glow{0%{filter:brightness(1.5)}to{filter:brightness(1)}}.lo-split-console.lo-console-active:before{background:linear-gradient(180deg,transparent 0,rgba(192,132,252,.15) 30%,rgba(56,189,248,.12) 70%,transparent);transition:background .6s ease}.lo-split-console.lo-console-active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0,rgba(192,132,252,.2) 30%,rgba(56,189,248,.2) 70%,transparent);pointer-events:none;animation:lo-glow-sweep 3s ease-in-out infinite}@keyframes lo-glow-sweep{0%,to{opacity:.3}50%{opacity:1}}.lo-split-console.lo-console-typing:before{background:linear-gradient(180deg,transparent 0,rgba(192,132,252,.25) 20%,rgba(56,189,248,.18) 80%,transparent)}.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:.05s}.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:lo-pulse-active 1.2s ease-in-out infinite}.lo-statusbar-pulse.lo-pulse-typing{background:var(--status-info);animation:lo-pulse-typing .6s ease-in-out infinite;box-shadow:0 0 6px rgba(56,189,248,.4)}.lo-statusbar-pulse.lo-pulse-celebrating{animation:lo-pulse-celebrate .8s ease-in-out infinite}.lo-statusbar-activity{font-size:var(--font-2xs);color:var(--text-quaternary);font-family:var(--font-mono);letter-spacing:.03em;animation:lo-fade-in .3s ease both;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}@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%{background:#c084fc;opacity:1;transform:scale(1)}25%{background:#38bdf8}50%{background:#4ade80;transform:scale(1.4)}75%{background:#e879f9}to{background:#c084fc;opacity:1;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:translateX(-20px)}to{opacity:1;transform:translateX(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:"";position:fixed;bottom:24px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(192,132,252,.08) 25%,rgba(56,189,248,.06) 50%,rgba(232,121,249,.08) 75%,transparent);pointer-events:none;z-index:var(--z-sticky);animation:lo-ambient-sweep 8s ease-in-out infinite}@keyframes lo-ambient-sweep{0%,to{opacity:.3;background-position:0 0}50%{opacity:.8;background-position:100% 0}}.lo-dock:after{animation:lo-dock-breathe 6s ease-in-out infinite}@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{position:fixed;top:38px;left:0;bottom:24px;width:var(--sidebar-width);min-width:var(--sidebar-width);transform:translateX(-100%);transition:transform var(--transition-slow);z-index:var(--z-modal)}.lo-dock.lo-dock-open{transform:translateX(0)}.lo-dock-toggle{display:flex}.lo-dock-overlay{display:block}.lo-splitview{flex-direction:column}.lo-split-content{flex:1 1;padding:var(--space-4)}.lo-split-console{width:100%;min-width:100%;max-width:100%;height:50vh;border-left:none;border-top:1px solid var(--border-subtle)}.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{position:relative;overflow:hidden;max-height:70vh}.lo-content-gated .lesson-content{mask-image:linear-gradient(180deg,#000 30%,transparent 85%);-webkit-mask-image:linear-gradient(180deg,#000 30%,transparent 85%);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lesson-gate{position:absolute;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:center;padding:var(--space-6) var(--space-4)}.lesson-gate-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 0,var(--surface-base) 40%);pointer-events:none}.lesson-gate-cta{position:relative;z-index:2;background:var(--glass-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-6);max-width:480px;width:100%;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,.4)}.lesson-gate-icon{font-size:2.5rem;margin-bottom:var(--space-3)}.lesson-gate-title{font-size:var(--text-xl);font-weight:700;color:var(--text-primary);margin:0 0 var(--space-2)}.lesson-gate-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6;margin:0 0 var(--space-5)}.lesson-gate-actions{display:flex;flex-direction:column;gap:var(--space-2);align-items:center}.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{display:flex;flex-direction:column;height:100%;overflow-y:auto;scroll-behavior:smooth}.immersive-lesson::-webkit-scrollbar{width:6px}.immersive-lesson::-webkit-scrollbar-track{background:transparent}.immersive-lesson::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.immersive-content{flex:1 0 auto;padding:var(--space-8) var(--space-8);max-width:800px;width:100%;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:.05s}.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{max-width:800px;width:100%;margin:0 auto;padding:0 var(--space-8);position:relative}.immersive-console-section:before{content:"";position:absolute;top:0;left:var(--space-8);right:var(--space-8);height:1px;background:linear-gradient(90deg,transparent 0,rgba(192,132,252,.2) 20%,rgba(56,189,248,.15) 50%,rgba(192,132,252,.2) 80%,transparent)}.immersive-console-header{padding:var(--space-4) 0 0}.immersive-console-tab{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);background:var(--glass-bg);backdrop-filter:blur(12px);-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)}.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:lo-pulse 2s ease-in-out infinite}.immersive-console-tab-label{font-weight:var(--font-weight-bold);flex:1 1;text-align:left}.immersive-console-tab-count{font-size:var(--font-2xs);color:var(--text-quaternary);background:var(--surface-sunken);padding:2px 8px;border-radius:var(--radius-full)}.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;overflow:hidden;transition:max-height .4s var(--ease-out),opacity .3s ease;opacity:0}.immersive-console-body.expanded{max-height:2000px;opacity:1;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);border-top:none;background:var(--surface-sunken)}.immersive-console-body .console-header{display:none}.immersive-console-active:before{background:linear-gradient(90deg,transparent 0,rgba(192,132,252,.35) 20%,rgba(56,189,248,.25) 50%,rgba(192,132,252,.35) 80%,transparent);transition:background .6s ease}.immersive-console-typing .immersive-console-tab{border-color:rgba(56,189,248,.3);box-shadow:0 0 12px rgba(56,189,248,.08)}.immersive-footer{max-width:800px;width:100%;margin:0 auto;padding:var(--space-6) var(--space-8) var(--space-8);border-top:1px solid var(--border-subtle);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{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;background:var(--surface-base);border-top:1px solid var(--border-subtle);padding-top:var(--space-2)}.immersive-console-expanded .immersive-console-tab{border-color:rgba(192,132,252,.2);background:var(--surface-elevated)}