.cg-topbar{display:flex;justify-content:space-between;align-items:center;padding:0 var(--spacing-8);height:80px;margin-bottom:var(--spacing-6);background:#fff;border-bottom:2px solid #f0f2ff;color:var(--text-primary);box-shadow:var(--shadow-sm)}.cg-topbar-left{display:flex;align-items:center;gap:var(--spacing-6)}.cg-logo{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background:var(--brand-primary);box-shadow:var(--brand-glow)}.cg-logo-text{display:flex;flex-direction:column}.cg-title{font-size:1.5rem;font-weight:900;letter-spacing:.15em;line-height:1;margin-bottom:4px}.cg-subtitle{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.2em}.cg-topbar-right{display:flex;align-items:center;gap:var(--spacing-6)}.cg-pill{display:flex;align-items:center;gap:10px;padding:8px 18px;border-radius:var(--radius-full);font-size:.85rem;font-weight:700;color:var(--text-primary);background:#f0f2ff;border:1px solid var(--border-subtle)}.cg-status-indicator{display:flex;align-items:center;gap:10px}.cg-status-dot{width:10px;height:10px;border-radius:50%;background:#10b981}.pulse{animation:pulse-animation 2s infinite}@keyframes pulse-animation{0%{box-shadow:0 0 #10b98166}70%{box-shadow:0 0 0 10px #10b98100}to{box-shadow:0 0 #10b98100}}.cg-status-dot.offline{background:#cbd5e1;box-shadow:none}.cg-status-text.connected{color:#10b981}.cg-status-text.disconnected{color:#64748b}.cg-status-text.connecting{color:#f59e0b}.react-split{flex:1;height:100%;position:relative;width:100%}.react-split__pane{height:100%;position:absolute;white-space:normal;width:100%;overflow:hidden}.react-split__sash{height:100%;position:absolute;top:0;transition:background-color .1s;width:100%;z-index:2}.react-split__sash--disabled{pointer-events:none}.react-split__sash--vertical{cursor:col-resize}.react-split__sash--horizontal{cursor:row-resize}.react-split__sash-content{width:100%;height:100%}.react-split__sash-content--active{background-color:#175ede}.react-split--dragging.react-split--vertical{cursor:col-resize}.react-split--dragging.react-split--horizontal{cursor:row-resize}body.react-split--disabled{-webkit-user-select:none;user-select:none}.split-sash-content{width:100%;height:100%}.split-sash-content.split-sash-content-vscode.split-sash-content-active{background-color:#175ede}.cg-split-wrapper{overflow:hidden;border-radius:var(--radius-xl)}.cg-pane-content{height:100%;overflow:hidden;display:flex;flex-direction:column}.sidebar-pane{padding-right:2px}.content-pane{padding:0 4px}.terminal-pane{padding-left:2px}.sash-module_sash__3PRos{background:var(--border-medium)!important;transition:background .2s}.sash-module_sash__3PRos:hover{background:var(--brand-primary)!important}.sash-module_sash-vertical__120S7{cursor:col-resize!important}.cg-topic-card{width:100%;text-align:left;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--spacing-4);margin-bottom:var(--spacing-4);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:120px}.cg-topic-card:hover{transform:translateY(-4px) scale(1.02);border-color:var(--brand-primary);box-shadow:var(--shadow-xl)}.cg-topic-card.active{background:var(--bg-surface-elevated);border-color:var(--brand-primary);box-shadow:0 0 25px #818cf833}.cg-topic-card-body{display:flex;gap:var(--spacing-5);align-items:flex-start;height:100%}.cg-unit-badge{width:48px;height:48px;background:#f8faff;border:1px solid var(--border-medium);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .3s;box-shadow:var(--shadow-sm)}.cg-topic-card.active .cg-unit-badge{background:var(--brand-primary);border-color:var(--brand-primary);transform:scale(1.1)}.cg-unit-num{font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:900;color:var(--brand-primary);letter-spacing:-.05em}.cg-topic-card.active .cg-unit-num{color:#fff}.cg-topic-card-content{flex:1;min-width:0;display:flex;flex-direction:column}.cg-topic-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-2)}.cg-level-indicator{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;padding:4px 10px;border-radius:8px;background:#f1f5f9;color:#475569}.cg-level-indicator.expert{background:#f3e8ff;color:#7c3aed;border:1px solid rgba(124,58,237,.1)}.cg-card-title-container{margin:var(--spacing-1) 0 var(--spacing-2) 0;min-height:2.5rem}.cg-topic-card-title{font-size:.95rem;font-weight:900;color:#1e1b4b;margin:0;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:-.01em}.cg-topic-card.active .cg-topic-card-title{color:var(--brand-primary)}.active-arrow{color:var(--brand-primary);margin-left:auto;transition:transform .3s}.cg-topic-card.active .active-arrow{transform:translate(4px)}.cg-topic-card-summary{font-size:.8rem;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--spacing-3);line-height:1.4}.cg-topic-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.cg-topic-tags{display:flex;gap:6px}.cg-tag{font-size:.65rem;color:var(--text-muted);font-weight:700;background:#f8fafc;padding:2px 8px;border:1px solid #e2e8f0;border-radius:6px}.active-glow{position:absolute;top:0;left:0;width:6px;height:100%;background:var(--brand-primary);box-shadow:4px 0 15px #818cf84d}.cg-sidebar{padding:var(--spacing-6);border-radius:var(--radius-xl);height:calc(100vh - 120px);display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--border-medium)}.cg-sidebar-header{margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-6);border-bottom:2px solid #f0f2ff}.cg-sidebar-title{display:flex;align-items:center;gap:12px;margin-bottom:12px}.cg-sidebar-title h2{font-size:.9rem;font-weight:900;letter-spacing:.15em;margin:0;color:var(--text-primary)}.cg-muted-text{font-size:.85rem;color:#64748b;line-height:1.5}.cg-sidebar-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding-right:4px}.cg-sidebar-list::-webkit-scrollbar{width:5px}.cg-sidebar-list::-webkit-scrollbar-track{background:#f8f9ff}.cg-sidebar-list::-webkit-scrollbar-thumb{background:var(--brand-secondary);border-radius:var(--radius-full)}.cg-sidebar-list::-webkit-scrollbar-thumb:hover{background:var(--brand-primary)}.cg-topic-viewer{padding:var(--spacing-6);border-radius:var(--radius-xl);height:calc(100vh - 120px);overflow-y:auto;color:var(--text-primary);background:var(--bg-surface)}.cg-topic-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-8);border-bottom:1px solid var(--border-medium);padding-bottom:var(--spacing-6)}.cg-topic-title-area h1{font-size:2.25rem;font-weight:800;margin:0 0 var(--spacing-2) 0;letter-spacing:-.025em;color:var(--text-primary)}.cg-divider{height:1px;background:linear-gradient(to right,transparent,var(--border-medium),transparent);margin:var(--spacing-12) 0}.cg-muted-text{color:var(--text-secondary);font-size:1rem}.cg-topic-header-meta{display:flex;align-items:center;gap:var(--spacing-4)}.cg-badge{padding:6px 16px;border-radius:var(--radius-full);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);border:1px solid var(--border-medium)}.cg-topic-markdown{line-height:1.8;font-size:1.0625rem}.cg-heading-h2{font-size:1.75rem;font-weight:800;margin:var(--spacing-12) 0 var(--spacing-6) 0;color:var(--text-primary);position:relative;display:inline-block}.cg-heading-h2:after{content:"";position:absolute;bottom:-4px;left:0;width:40px;height:4px;background:var(--brand-primary);border-radius:var(--radius-full)}.cg-paragraph{margin-bottom:var(--spacing-6);color:var(--text-secondary)}.cg-list{margin-bottom:var(--spacing-8);padding-left:var(--spacing-6)}.cg-list-item{color:var(--text-secondary);margin-bottom:var(--spacing-3);position:relative;list-style:none}.cg-list-item:before{content:"→";position:absolute;left:-24px;color:var(--brand-primary);font-weight:800}.cg-code-block-wrapper{margin:var(--spacing-8) 0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-medium);background:#1e1b4b;box-shadow:var(--shadow-lg)}.cg-code-block-header{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.cg-code-block-lang{font-family:JetBrains Mono,monospace;font-size:.75rem;color:#ffffff80;text-transform:uppercase}.cg-code-block-actions{display:flex;gap:12px}.cg-code-block-actions button{background:transparent;border:none;color:#fff9;cursor:pointer;padding:6px;border-radius:6px;transition:all .2s;display:flex;align-items:center;justify-content:center}.cg-code-block-actions button:hover{background:#ffffff1a;color:#fff}.cg-code-block-actions .run-btn:hover{background:var(--brand-primary);color:#fff}.cg-code-block{margin:0;padding:var(--spacing-6);overflow-x:auto}.cg-code-block code{font-family:JetBrains Mono,monospace;font-size:.95rem;color:#e0e7ff}.cg-inline-code{font-family:JetBrains Mono,monospace;background:#f0f2ff;padding:2px 8px;border-radius:6px;font-size:.9em;color:var(--brand-primary);border:1px solid var(--border-subtle)}.cg-callout{margin:var(--spacing-8) 0;padding:var(--spacing-6);border-radius:var(--radius-lg);border-left:6px solid var(--brand-primary);background:#f8f9ff;box-shadow:var(--shadow-sm);border-top:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.cg-callout-info{border-left-color:#60a5fa}.cg-callout-warning{border-left-color:#fbbf24}.cg-callout-success{border-left-color:#10b981}.cg-callout-tip{border-left-color:#818cf8}.cg-callout-danger{border-left-color:#ef4444}.cg-callout-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.cg-callout-title{font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-primary)}.cg-callout-content{font-size:1rem;color:var(--text-secondary);line-height:1.7}.cg-perspective-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-6);margin:var(--spacing-10) 0}.cg-perspective-column{padding:var(--spacing-8);border-radius:var(--radius-xl);background:#fff;border:1px solid var(--border-medium);display:flex;flex-direction:column;gap:16px;position:relative;overflow:hidden;box-shadow:var(--shadow-md)}.cg-perspective-column:before{content:"";position:absolute;top:0;left:0;width:6px;height:100%}.cg-perspective-column.non-tech:before{background:var(--brand-secondary)}.cg-perspective-column.tech:before{background:var(--brand-primary)}.cg-perspective-label{display:flex;align-items:center;gap:10px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--brand-primary)}.cg-perspective-content{font-size:1rem;color:var(--text-secondary);line-height:1.7}.cg-lab-action{margin:var(--spacing-10) 0;padding:var(--spacing-8);border-radius:var(--radius-xl);border:1px solid rgba(239,68,68,.2);background:#fff5f5;box-shadow:0 8px 24px #ef44440d}.cg-lab-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.cg-lab-title{font-weight:900;font-size:.9rem;letter-spacing:.1em;color:#ef4444;text-transform:uppercase}.cg-concept-card{margin:var(--spacing-10) 0;padding:var(--spacing-8);border-radius:var(--radius-xl);background:#fff;border:1px solid var(--border-medium);box-shadow:var(--shadow-lg)}.cg-concept-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.cg-concept-title{font-size:1.35rem;font-weight:800;margin:0;color:var(--brand-primary)}.cg-concept-content{font-size:1rem;color:var(--text-secondary);line-height:1.8}.cg-step-indicator{display:flex;align-items:center;gap:20px;margin:var(--spacing-10) 0 var(--spacing-4) 0;background:var(--bg-surface-elevated);padding:12px 24px;border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.cg-step-number{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:900;color:#fff;flex-shrink:0;background:var(--brand-primary);box-shadow:var(--brand-glow)}.cg-step-text{font-weight:800;font-size:1.1rem;color:var(--text-primary)}/**
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
* https://github.com/chjj/term.js
* @license MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* Originally forked from (with the author's permission):
*   Fabrice Bellard's javascript vt100 for jslinux:
*   http://bellard.org/jslinux/
*   Copyright (c) 2011 Fabrice Bellard
*   The original design remains. The terminal itself
*   has been extended to include xterm CSI codes, among
*   other features.
*/.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.cg-terminal-wrapper{display:flex;flex-direction:column;height:calc(100vh - 120px);border-radius:var(--radius-xl);overflow:hidden;background:#1e1b4b;border:1px solid var(--border-medium);box-shadow:var(--shadow-xl)}.cg-terminal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.cg-terminal-title{display:flex;align-items:center;gap:12px;font-size:.85rem;font-weight:700;color:#fffc;font-family:JetBrains Mono,monospace;letter-spacing:.05em}.pill-dot{width:10px;height:10px;border-radius:50%;background:#fbbf24;box-shadow:0 0 12px #fbbf2466}.cg-terminal-actions{display:flex;gap:12px}.key-hint{font-size:.7rem;color:#fff6;background:#ffffff0d;padding:4px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.1);font-weight:600}.cg-terminal-surface{flex:1;padding:12px;background:#1e1b4b;overflow:hidden}.cg-terminal-container{height:100%;width:100%}.xterm-cursor{box-shadow:0 0 15px var(--brand-primary)}.xterm-viewport::-webkit-scrollbar{width:8px}.xterm-viewport::-webkit-scrollbar-track{background:#0003}.xterm-viewport::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.xterm-viewport::-webkit-scrollbar-thumb:hover{background:#fff3}:root{--bg-main: #f8f9ff;--bg-surface: #ffffff;--bg-surface-elevated: #f0f2ff;--brand-primary: #818cf8;--brand-primary-hover: #6366f1;--brand-secondary: #c7d2fe;--text-primary: #1e1b4b;--text-secondary: #475569;--text-muted: #94a3b8;--border-subtle: rgba(129, 140, 248, .1);--border-medium: rgba(129, 140, 248, .2);--border-light: rgba(129, 140, 248, .15);--brand-glow: 0 4px 12px rgba(129, 140, 248, .2);--brand-glow-strong: 0 8px 24px rgba(129, 140, 248, .3);--danger-glow: 0 4px 12px rgba(239, 68, 68, .15);--glass-bg: rgba(255, 255, 255, .8);--glass-border: rgba(129, 140, 248, .2);--glass-blur: 16px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(129, 140, 248, .1);--shadow-lg: 0 12px 24px rgba(129, 140, 248, .15);--shadow-xl: 0 20px 40px rgba(129, 140, 248, .2);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-4: 1rem;--spacing-6: 1.5rem;--spacing-8: 2rem}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-md)}.text-gradient{background:linear-gradient(135deg,#1e1b4b,#6366f1);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.brand-gradient{background:linear-gradient(135deg,#818cf8,#c7d2fe)}.cg-sidebar-item.active{background:#f0f2ff;border-left:4px solid var(--brand-primary);box-shadow:var(--brand-glow);color:var(--brand-primary);font-weight:700}.Resizer.vertical{width:2px;background:var(--border-medium);opacity:1;z-index:10;transition:all .2s}.Resizer.vertical:hover{background:var(--brand-primary);width:4px;box-shadow:var(--brand-glow)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg-main);color:var(--text-primary);font-family:Outfit,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}.app-shell{display:flex;flex-direction:column;width:100%;padding:24px;height:100vh;background:radial-gradient(circle at top right,#f8f9ff,#fff)}.card-surface{background:var(--bg-surface);border-radius:var(--radius-xl);border:1px solid var(--border-medium);box-shadow:var(--shadow-lg)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:var(--brand-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--brand-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.animate-fade-in{animation:fadeIn .6s cubic-bezier(.4,0,.2,1) forwards}.animate-slide-in{animation:slideIn .5s cubic-bezier(.4,0,.2,1) forwards}.text-label{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--brand-primary)}
