.code-editor-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;display:flex;flex-direction:column;background:#1e1e2e;visibility:hidden;opacity:0;overflow:hidden;transition:visibility 0s linear .3s,opacity .3s}.code-editor-overlay.active{visibility:visible;opacity:1;transition-delay:0s}.code-editor-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:#181825;border-bottom:1px solid #313244;gap:12px;flex-shrink:0}.code-editor-toolbar-left{display:flex;align-items:center;gap:14px}.code-editor-toolbar-logo{display:flex;align-items:center;gap:10px;color:#cdd6f4;font-weight:700;font-size:1rem;user-select:none}.code-editor-toolbar-logo i{width:22px;height:22px;color:#89b4fa}.code-editor-toolbar-logo .logo-dot{width:8px;height:8px;border-radius:50%;background:#a6e3a1;box-shadow:0 0 6px rgba(166,227,161,.4)}.code-editor-toolbar-divider{width:1px;height:24px;background:#313244}.code-editor-file-name{display:flex;align-items:center;gap:8px;background:#11111b;border:1px solid #313244;border-radius:8px;padding:6px 14px;color:#cdd6f4;font-size:.85rem;font-family:var(--font-code);cursor:pointer;transition:.2s;min-width:180px}.code-editor-file-name:hover{border-color:#89b4fa;background:#1e1e2e}.code-editor-file-name i{width:14px;height:14px;color:#89b4fa}.code-editor-file-name input{background:0 0;border:none;color:#cdd6f4;font-family:inherit;font-size:inherit;width:100%;outline:0}.code-editor-toolbar-center,.code-editor-toolbar-right{display:flex;align-items:center;gap:8px}.code-editor-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid #313244;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:.2s;color:#cdd6f4;background:#181825}.code-editor-btn:hover{background:#313244;border-color:#45475a}.code-editor-btn i{width:16px;height:16px}.code-editor-btn.btn-run{background:linear-gradient(135deg,#a6e3a1,#94e2d5);border-color:transparent;color:#1e1e2e;font-weight:700}.code-editor-btn.btn-run:hover{box-shadow:0 4px 16px rgba(166,227,161,.3);transform:translateY(-1px)}.code-editor-btn.btn-run:active{transform:translateY(0)}.code-editor-btn.btn-clear{color:#f38ba8;border-color:rgba(243,139,168,.3)}.code-editor-btn.btn-clear:hover{background:rgba(243,139,168,.1);border-color:#f38ba8}.code-editor-btn.btn-close{background:rgba(243,139,168,.08);border-color:rgba(243,139,168,.25);color:#f38ba8}.code-editor-btn.btn-close:hover{background:rgba(243,139,168,.15);border-color:#f38ba8}.code-editor-templates-wrapper{position:relative}.code-editor-templates-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:280px;background:#1e1e2e;border:1px solid #313244;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.5);z-index:100;padding:6px;display:none;max-height:400px;overflow-y:auto}.code-editor-templates-dropdown.open{display:block;animation:.2s ease-out editorDropdownIn}@keyframes editorDropdownIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.code-editor-template-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;cursor:pointer;transition:.15s;color:#cdd6f4}.code-editor-template-item:hover{background:#313244}.code-editor-template-item i{width:18px;height:18px;color:#89b4fa;flex-shrink:0}.code-editor-template-item-info{display:flex;flex-direction:column;gap:2px}.code-editor-template-item-name{font-size:.85rem;font-weight:600}.code-editor-template-item-desc{font-size:.75rem;color:#6c7086}.code-editor-template-separator{height:1px;background:#313244;margin:4px 8px}.code-editor-body{display:flex;flex:1;overflow:hidden;position:relative}.code-editor-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.code-editor-panel-header{display:flex;align-items:center;justify-content:space-between;background:#181825;border-bottom:1px solid #313244;flex-shrink:0;overflow:hidden}.code-editor-panel-tabs{display:flex;align-items:center;overflow-x:auto;overflow-y:hidden;flex:1;scrollbar-width:none}.code-editor-panel-tabs::-webkit-scrollbar{height:0}.code-editor-panel-tab{display:flex;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:600;color:#6c7086;cursor:pointer;transition:.15s;border:none;background:0 0;white-space:nowrap;border-right:1px solid #313244;position:relative;flex-shrink:0;min-width:0}.code-editor-panel-tab:hover{color:#cdd6f4;background:rgba(205,214,244,.05)}.code-editor-panel-tab.active{color:#89b4fa;background:rgba(137,180,250,.08);border-bottom:2px solid #89b4fa}.code-editor-panel-tab i{width:14px;height:14px;flex-shrink:0}.code-editor-panel-tab .tab-label{max-width:120px;overflow:hidden;text-overflow:ellipsis}.code-editor-panel-tab .tab-close-btn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font-size:15px;line-height:1;opacity:0;transition:.15s;flex-shrink:0;margin-left:2px}.code-editor-panel-tab.active .tab-close-btn,.code-editor-panel-tab:hover .tab-close-btn{opacity:.5}.code-editor-panel-tab .tab-close-btn:hover{opacity:1;background:rgba(243,139,168,.2);color:#f38ba8}.code-editor-tab-add{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;background:0 0;color:#6c7086;cursor:pointer;transition:.15s;flex-shrink:0;border-radius:6px;margin:0 4px}.code-editor-tab-add:hover{color:#a6e3a1;background:rgba(166,227,161,.1)}.code-editor-tab-add i{width:14px;height:14px}.code-editor-monaco-wrapper{flex:1;overflow:hidden}.code-editor-resize-handle{width:4px;background:#313244;cursor:col-resize;transition:background .2s;flex-shrink:0;position:relative}.code-editor-resize-handle.dragging,.code-editor-resize-handle:hover{background:#89b4fa}.code-editor-resize-handle::after{content:"";position:absolute;top:0;left:-4px;right:-4px;bottom:0}.code-editor-console{width:380px;min-width:200px;max-width:60%;display:flex;flex-direction:column;background:#11111b;overflow:hidden}.code-editor-console-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#181825;border-bottom:1px solid #313244;flex-shrink:0}.code-editor-console-title{display:flex;align-items:center;gap:8px;color:#cdd6f4;font-size:.8rem;font-weight:600}.code-editor-console-title i{width:14px;height:14px;color:#a6e3a1}.code-editor-console-badge{background:#313244;color:#6c7086;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:10px}.code-editor-console-actions{display:flex;align-items:center;gap:4px}.code-editor-console-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;background:0 0;color:#6c7086;cursor:pointer;transition:.15s}.code-editor-console-btn:hover{background:#313244;color:#cdd6f4}.code-editor-console-btn i{width:14px;height:14px}.code-editor-console-output{flex:1;overflow-y:auto;padding:12px 16px;font-family:var(--font-code);font-size:.82rem;line-height:1.6}.code-editor-console-output::-webkit-scrollbar{width:6px}.code-editor-console-output::-webkit-scrollbar-track{background:0 0}.code-editor-console-output::-webkit-scrollbar-thumb{background:#313244;border-radius:3px}.console-line{padding:2px 0;display:flex;align-items:flex-start;gap:8px}.console-line .console-timestamp{color:#45475a;font-size:.75rem;flex-shrink:0;user-select:none}.console-line.log{color:#cdd6f4}.console-line.info{color:#89b4fa}.console-line.warn{color:#f9e2af}.console-line.error{color:#f38ba8}.console-line.success{color:#a6e3a1}.console-line.system{color:#6c7086;font-style:italic}.code-editor-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#6c7086;text-align:center;padding:40px;gap:12px}.code-editor-welcome i{width:40px;height:40px;color:#45475a}.code-editor-welcome p{font-size:.85rem;line-height:1.6}.code-editor-welcome kbd{background:#313244;color:#cdd6f4;padding:2px 8px;border-radius:4px;font-size:.8rem;font-family:inherit;border:1px solid #45475a}.code-editor-statusbar{display:flex;align-items:center;justify-content:space-between;padding:4px 16px;background:#181825;border-top:1px solid #313244;font-size:.75rem;color:#6c7086;flex-shrink:0;gap:16px}.code-editor-statusbar-left,.code-editor-statusbar-right{display:flex;align-items:center;gap:16px}.code-editor-statusbar-item{display:flex;align-items:center;gap:4px}.code-editor-statusbar-item i{width:12px;height:12px}.code-editor-statusbar .status-lang{color:#89b4fa;font-weight:600}#editorEngineStatus{transition:color .3s}#editorEngineStatus.engine-ready,#editorEngineStatus.engine-ready i{color:#a6e3a1}#editorEngineStatus.engine-fallback,#editorEngineStatus.engine-fallback i{color:#f9e2af}.code-editor-bloxi-panel{width:0;min-width:0;overflow:hidden;background:#1e1e2e;border-left:0 solid #313244;display:flex;flex-direction:column;flex-shrink:0;transition:width .3s cubic-bezier(.4, 0, .2, 1),min-width .3s cubic-bezier(.4, 0, .2, 1),border-width .3s}.code-editor-bloxi-panel.open{width:360px;min-width:280px;border-left-width:1px}.code-editor-bloxi-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(135deg,#3b82f6 0,#60a5fa 100%);border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.code-editor-bloxi-title{display:flex;align-items:center;gap:8px;color:#fff;font-weight:700;font-size:.9rem}.code-editor-bloxi-btn{width:28px;height:28px;border-radius:6px;background:rgba(255,255,255,.12);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.code-editor-bloxi-btn:hover{background:rgba(255,255,255,.25)}.code-editor-bloxi-btn i{width:14px;height:14px}.code-editor-bloxi-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#181825}.code-editor-bloxi-messages::-webkit-scrollbar{width:5px}.code-editor-bloxi-messages::-webkit-scrollbar-thumb{background:#313244;border-radius:6px}.code-editor-bloxi-welcome{text-align:center;color:#9ca3af;padding:30px 16px;display:flex;flex-direction:column;align-items:center;gap:8px}.code-editor-bloxi-welcome p{font-size:.82rem;line-height:1.5;margin:0;color:#a6adc8}.code-editor-bloxi-welcome strong{color:#cdd6f4}.code-editor-bloxi-msg{font-size:.82rem;line-height:1.55;padding:10px 14px;border-radius:14px;max-width:90%;word-wrap:break-word;animation:.2s ease-out bloxi-editor-msg-in}.code-editor-bloxi-msg.user{align-self:flex-end;background:#3b82f6;color:#fff;border-radius:14px 14px 4px}.code-editor-bloxi-msg.ai{align-self:flex-start;background:#27273a;color:#cdd6f4;border-radius:14px 14px 14px 4px;border:1px solid #313244}.code-editor-bloxi-msg.ai .bloxi-code-block{background:#11111b;border-radius:8px;padding:10px;margin:6px 0;overflow-x:auto;font-size:.78rem}.code-editor-bloxi-msg.ai .bloxi-inline-code{background:rgba(137,180,250,.12);color:#89b4fa;padding:1px 5px;border-radius:4px;font-family:var(--font-code);font-size:.78rem}.code-editor-bloxi-msg.ai strong{color:#a5b4fc}.code-editor-bloxi-msg.ai .bloxi-md-list{padding-left:16px;margin:4px 0}.code-editor-bloxi-msg.ai .bloxi-md-list li{margin-bottom:2px}.code-editor-bloxi-footer{display:flex;align-items:center;padding:10px 12px;gap:8px;background:#181825;border-top:1px solid #313244;flex-shrink:0}.code-editor-bloxi-footer input{flex:1;padding:8px 14px;background:#11111b;border:1px solid #313244;border-radius:10px;color:#cdd6f4;font-size:.82rem;outline:0;transition:border-color .2s}.code-editor-bloxi-footer input:focus{border-color:#3b82f6}.code-editor-bloxi-footer input::placeholder{color:#6c7086}.code-editor-bloxi-footer button{width:34px;height:34px;border-radius:10px;background:#3b82f6;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .1s;flex-shrink:0}.code-editor-bloxi-footer button:hover{background:#60a5fa;transform:scale(1.05)}.bloxi-typing-dots{display:inline-flex;gap:3px}.bloxi-typing-dots span{display:inline-block;animation:1.4s infinite bloxi-editor-typing;color:#6c7086;font-weight:700;font-size:1.2rem}.bloxi-typing-dots span:nth-child(2){animation-delay:.2s}.bloxi-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes bloxi-editor-msg-in{0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:translateY(0)}}@keyframes bloxi-editor-typing{0%,100%,80%{opacity:.3}40%{opacity:1}}.code-editor-btn.btn-bloxi{background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.25);color:#a5b4fc}.code-editor-btn.btn-bloxi:hover{background:rgba(99,102,241,.25);color:#c7d2fe}@media (max-width:900px){.code-editor-body{flex-direction:column}.code-editor-console{width:100%;max-width:100%;min-width:unset;height:250px;min-height:150px;border-left:none;border-top:1px solid #313244}.code-editor-resize-handle{width:100%;height:4px;cursor:row-resize}.code-editor-toolbar{flex-wrap:wrap;padding:8px 12px}.code-editor-toolbar-left{flex:1;min-width:0}.code-editor-file-name{min-width:120px}.code-editor-btn span{display:none}.code-editor-btn{padding:8px 10px}.code-editor-bloxi-panel.open{width:100%;min-width:100%;position:absolute;top:0;right:0;height:100%;z-index:50}}@media (max-width:600px){.code-editor-toolbar-logo span{display:none}.code-editor-console{height:200px}.code-editor-statusbar{font-size:.7rem;padding:3px 10px}}.course-header-unified .course-editor-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;cursor:pointer;transition:.2s;position:relative}.course-header-unified .course-editor-btn:hover{background:rgba(255,255,255,.25);transform:scale(1.05)}.course-header-unified .course-editor-btn i{width:20px;height:20px}.course-header-unified .course-editor-btn .editor-btn-tooltip{position:absolute;bottom:-32px;left:50%;transform:translateX(-50%);background:#1e1e2e;color:#cdd6f4;font-size:.7rem;font-weight:600;padding:4px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;border:1px solid #313244}.course-header-unified .course-editor-btn:hover .editor-btn-tooltip{opacity:1}