.header{height:48px;background-color:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0}.header-left{display:flex;align-items:center;gap:12px}.menu-button{width:40px;height:40px;border:none;background-color:transparent;color:var(--text-primary);font-size:20px;cursor:pointer;border-radius:4px;transition:background-color var(--transition-fast);display:flex;align-items:center;justify-content:center}.menu-button:hover{background-color:var(--left-hover)}.menu-button:active{background-color:var(--left-selected)}.header-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.header-right{display:flex;align-items:center;gap:12px}.theme-toggle,.canvas-button,.chat-button{width:40px;height:40px;border:none;background-color:transparent;color:var(--text-primary);font-size:18px;cursor:pointer;border-radius:4px;transition:background-color var(--transition-fast),transform .2s ease;display:flex;align-items:center;justify-content:center}.theme-toggle:hover,.canvas-button:hover,.chat-button:hover{background-color:var(--left-hover)}.theme-toggle:hover svg{transform:rotate(15deg) scale(1.1)}.theme-toggle:active,.canvas-button:active,.chat-button:active{background-color:var(--left-selected)}.theme-toggle:active svg{transform:rotate(0) scale(.95)}.version-badge{font-size:12px;font-weight:500;color:var(--text-secondary);background-color:var(--left-bg);padding:4px 8px;border-radius:4px}.resize-handle{position:absolute;left:0;top:0;bottom:0;width:12px;cursor:col-resize;z-index:10;display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-fast);background-color:#e5e7eb80}.resize-handle:hover,.resize-handle.dragging{background-color:#d1d5dbcc}.resize-handle-line{width:3px;height:60px;background-color:#9ca3af99;border-radius:2px;transition:all var(--transition-fast)}.resize-handle:hover .resize-handle-line,.resize-handle.dragging .resize-handle-line{background-color:#9ca3af;height:80px;width:4px}.resize-handle.dragging{background-color:#d1d5dbe6}.course-tree{padding:0}.course-block{margin-bottom:4px}.course-header{width:100%;display:flex;align-items:center;gap:8px;padding:10px 16px;background-color:transparent;border:none;font-size:14px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:background-color var(--transition-fast);text-align:left}.course-header:hover{background-color:var(--left-hover)}.course-header.expanded{background-color:var(--left-selected);color:var(--text-primary)}.course-icon{font-size:16px;flex-shrink:0}.course-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-count{font-size:12px;opacity:.7;font-weight:400}.course-arrow{font-size:10px;opacity:.7;flex-shrink:0}.course-modules{padding-left:0;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.module-block{margin-bottom:2px}.module-header{width:100%;display:flex;align-items:center;gap:8px;padding:8px 16px 8px 32px;background-color:transparent;border:none;font-size:13px;font-weight:500;color:var(--text-primary);cursor:pointer;transition:background-color var(--transition-fast);text-align:left}.module-header:hover{background-color:var(--left-hover)}.module-header.expanded{background-color:var(--left-selected)}.module-icon{font-size:14px;flex-shrink:0}.module-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-count{font-size:11px;opacity:.6;font-weight:400}.module-arrow{font-size:9px;opacity:.6;flex-shrink:0}.module-lessons{padding-left:0;animation:slideDown .15s ease}.lesson-item{width:100%;display:flex;align-items:center;gap:8px;padding:8px 16px 8px 48px;background-color:transparent;border:none;border-left:3px solid transparent;font-size:13px;font-weight:400;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);text-align:left}.lesson-item:hover{background-color:var(--left-hover)}.lesson-item.active{background-color:var(--left-selected);border-left-color:var(--primary-color);font-weight:500}.lesson-icon{font-size:13px;opacity:.7;flex-shrink:0}.lesson-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-progress{font-size:11px;font-weight:400;color:var(--text-secondary);opacity:.8;flex-shrink:0}.module-progress{font-size:11px;font-weight:400;color:var(--text-secondary);opacity:.7;flex-shrink:0}.course-progress-bar,.module-progress-bar{width:100%;height:3px;background-color:var(--bg-tertiary);border-radius:2px;overflow:hidden;margin-top:2px}.module-progress-bar{height:2px;margin-left:32px;margin-right:16px}.course-progress-fill,.module-progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);transition:width .3s ease;border-radius:2px}.module-progress-fill{background:linear-gradient(90deg,#3b82f6,#2563eb)}.lesson-item-wrapper{display:flex;align-items:stretch;width:100%;position:relative;transition:all var(--transition-fast)}.lesson-item-wrapper.active{background-color:var(--left-selected)}.lesson-item-wrapper.active .lesson-item{border-left-color:var(--primary-color);font-weight:500}.lesson-item-wrapper.completed .lesson-title{opacity:.6;text-decoration:line-through}.lesson-item-wrapper.completed .lesson-icon{opacity:.5}.lesson-checkbox{width:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:transparent;border:none;cursor:pointer;padding:8px 0;margin-left:48px;transition:background-color var(--transition-fast)}.lesson-checkbox:hover{background-color:var(--left-hover)}.lesson-checkbox:active{transform:scale(.95)}.checkbox-icon{font-size:14px;color:var(--text-secondary);transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.lesson-item-wrapper.completed .checkbox-icon{color:#10b981;font-weight:600}.lesson-checkbox:hover .checkbox-icon{color:var(--text-primary);transform:scale(1.1)}.lesson-item-wrapper .lesson-item{flex:1;padding-left:8px;padding-right:16px;margin-left:0}.lesson-item-wrapper .lesson-item.active{background-color:transparent}.left-sidebar{display:flex;flex-direction:column;height:100%;background-color:var(--left-bg)}.left-sidebar-header{padding:20px 16px 16px;border-bottom:1px solid var(--border)}.left-sidebar-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.left-sidebar-content{flex:1;overflow-y:auto;padding:8px 0}.left-sidebar-loading,.left-sidebar-error,.left-sidebar-empty{padding:20px 16px;text-align:center;color:var(--text-secondary);font-size:14px}.left-sidebar-error{color:var(--error)}.left-sidebar-footer{padding:12px 16px;border-top:1px solid var(--border)}.hide-sidebar-btn{width:100%;padding:10px 16px;background-color:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:8px}.hide-sidebar-btn:hover{background-color:var(--left-hover);color:var(--text-primary);border-color:var(--text-secondary)}.hide-sidebar-btn:active{background-color:var(--left-selected)}.left-sidebar-content::-webkit-scrollbar{width:6px}.left-sidebar-content::-webkit-scrollbar-track{background:transparent}.left-sidebar-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.left-sidebar-content::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.lesson-navigation{margin-top:32px;padding-top:16px;border-top:1px solid var(--border)}.lesson-nav-buttons{display:flex;justify-content:space-between;align-items:center;gap:12px}.lesson-nav-btn{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:transparent;border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .2s ease;text-align:left;font-size:13px}.lesson-nav-btn:hover{border-color:var(--primary-color);background-color:var(--left-bg)}.lesson-nav-prev{justify-content:flex-start}.lesson-nav-next{justify-content:flex-end;text-align:right}.lesson-nav-arrow{font-size:14px;color:var(--text-secondary);flex-shrink:0}.lesson-nav-text{display:flex;flex-direction:column;gap:2px;min-width:0}.lesson-nav-label{font-size:10px;font-weight:500;color:var(--text-secondary);letter-spacing:.3px}.lesson-nav-title{font-size:13px;font-weight:400;color:var(--center-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.lesson-nav-placeholder{width:48px}@media (max-width: 1366px){.lesson-nav-buttons{flex-direction:column;align-items:stretch}.lesson-nav-next{text-align:left;justify-content:flex-start}.lesson-nav-placeholder{display:none}}.lesson-viewer{flex:1;overflow-y:auto;background-color:var(--center-bg)}.lesson-empty{display:flex;align-items:center;justify-content:center;min-height:100%;padding:40px}.lesson-empty-content{text-align:center;max-width:400px}.lesson-empty-icon{font-size:64px;display:block;margin-bottom:24px}.lesson-empty h2{font-size:24px;font-weight:600;color:var(--center-heading);margin:0 0 12px}.lesson-empty p{font-size:16px;color:var(--text-secondary);margin:0}.lesson-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:16px}.lesson-loading-spinner{width:40px;height:40px;border:4px solid var(--border);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.lesson-loading p{color:var(--text-secondary);font-size:14px}.lesson-error{padding:40px;text-align:center}.lesson-error p{color:var(--error);font-size:16px}.lesson-content{max-width:900px;margin:0 auto;padding:48px 40px}.lesson-content h1{font-size:36px;font-weight:700;color:var(--center-heading);margin:0 0 12px;line-height:1.2}.lesson-content h2{font-size:28px;font-weight:600;color:var(--center-heading);margin:40px 0 16px;padding-top:8px;border-top:1px solid var(--border)}.lesson-content h2:first-child{margin-top:0;padding-top:0;border-top:none}.lesson-content h3{font-size:22px;font-weight:600;color:var(--center-secondary);margin:32px 0 12px}.lesson-content h4{font-size:18px;font-weight:600;color:var(--center-secondary);margin:24px 0 12px}.lesson-content h5,.lesson-content h6{font-size:16px;font-weight:600;color:var(--center-secondary);margin:20px 0 12px}.lesson-content p{font-size:16px;line-height:1.7;color:var(--center-text);margin:0 0 16px}.lesson-content a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-fast)}.lesson-content a:hover{color:var(--primary-hover);text-decoration:underline}.lesson-content a.artifact-link{color:#667eea;font-weight:500;padding:2px 8px;border-radius:4px;background-color:#667eea1a;border:1px solid rgba(102,126,234,.3);cursor:pointer;transition:all var(--transition-fast)}.lesson-content a.artifact-link:hover{background-color:#667eea33;border-color:#667eea80;text-decoration:none;transform:translateY(-1px)}.lesson-content ul,.lesson-content ol{margin:0 0 16px;padding-left:28px}.lesson-content li{font-size:16px;line-height:1.7;color:var(--center-text);margin-bottom:8px}.lesson-content li::marker{color:var(--primary-color)}.lesson-content .code-block{background-color:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:16px;margin:16px 0;overflow-x:auto;font-family:var(--font-mono);font-size:14px;line-height:1.6}.lesson-content .code-block code{background:none;padding:0;border:none;border-radius:0;font-size:inherit;color:var(--center-text)}.lesson-content .inline-code{background-color:var(--code-bg);border:1px solid var(--border);padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:.9em;color:var(--center-text)}.lesson-content blockquote{margin:16px 0;padding:12px 20px;border-left:4px solid var(--primary-color);background-color:var(--left-bg);color:var(--center-secondary);font-style:italic}.lesson-content blockquote p{margin:0}.lesson-content table{width:100%;border-collapse:collapse;margin:16px 0}.lesson-content th,.lesson-content td{padding:12px;text-align:left;border:1px solid var(--border)}.lesson-content th{background-color:var(--left-bg);font-weight:600;color:var(--center-heading)}.lesson-content hr{border:none;border-top:1px solid var(--border);margin:32px 0}.lesson-content img{max-width:100%;height:auto;border-radius:8px;margin:16px 0}.lesson-progress-action{display:flex;justify-content:center;margin:48px 0 32px;padding:24px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.lesson-complete-button{display:flex;align-items:center;gap:12px;padding:14px 32px;background-color:var(--left-bg);border:2px solid var(--border);border-radius:8px;font-size:16px;font-weight:500;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.lesson-complete-button:hover{background-color:var(--left-hover);border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.lesson-complete-button:active{transform:translateY(0)}.lesson-complete-button.completed{background:linear-gradient(135deg,#10b981,#059669);border-color:#059669;color:#fff}.lesson-complete-button.completed:hover{background:linear-gradient(135deg,#059669,#047857);border-color:#047857}.lesson-complete-button .button-icon{font-size:18px;font-weight:600}.lesson-complete-button .button-text{-webkit-user-select:none;user-select:none}.dashboard{max-width:900px;margin:0 auto;padding:48px 40px}.dashboard-header{text-align:center;margin-bottom:48px}.dashboard-title{font-size:36px;font-weight:700;color:var(--center-heading);margin:0 0 12px;line-height:1.2}.dashboard-subtitle{font-size:18px;color:var(--text-secondary);margin:0}.dashboard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:48px}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:24px;text-align:center;color:#fff;box-shadow:0 4px 12px #667eea33}.stat-value{font-size:32px;font-weight:700;margin-bottom:8px}.stat-label{font-size:14px;opacity:.9}.dashboard-continue{margin-bottom:48px}.dashboard-continue h3{font-size:20px;font-weight:600;color:var(--center-heading);margin:0 0 16px}.continue-button{width:100%;display:flex;align-items:center;gap:16px;padding:20px;background-color:var(--left-bg);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all var(--transition-fast);text-align:left}.continue-button:hover{background-color:var(--left-hover);border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 8px 20px #0000001a}.continue-icon{font-size:24px;flex-shrink:0}.continue-text{flex:1}.continue-title{font-size:16px;font-weight:600;color:var(--center-heading);margin-bottom:4px}.continue-meta{font-size:14px;color:var(--text-secondary)}.dashboard-modules h3{font-size:20px;font-weight:600;color:var(--center-heading);margin:0 0 20px}.module-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:32px}.module-card{background-color:var(--left-bg);border:2px solid var(--border);border-radius:12px;padding:20px;cursor:pointer;transition:all var(--transition-fast);text-align:left}.module-card:hover{background-color:var(--left-hover);border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 8px 20px #0000001a}.module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.module-number{font-size:12px;font-weight:600;color:var(--primary-color);text-transform:uppercase;letter-spacing:.5px}.module-progress{font-size:14px;font-weight:700;color:var(--primary-color)}.module-name{font-size:16px;font-weight:600;color:var(--center-heading);margin-bottom:8px;line-height:1.3}.module-lessons{font-size:14px;color:var(--text-secondary);margin-bottom:12px}.module-progress-bar{height:6px;background-color:var(--border);border-radius:3px;overflow:hidden}.module-progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:3px;transition:width var(--transition-normal)}.dashboard-footer{text-align:center;padding:24px;border-top:1px solid var(--border)}.dashboard-footer p{font-size:14px;color:var(--text-secondary);margin:0}@media (max-width: 1366px){.lesson-content{padding:40px 32px}.lesson-content h1{font-size:32px}.lesson-content h2{font-size:24px}.dashboard{padding:40px 32px}.dashboard-title{font-size:32px}.module-grid{grid-template-columns:1fr}}.interactive-plot{display:flex;flex-direction:column;height:100%;background:#fff}.interactive-plot.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999}.plot-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f9fafb;border-bottom:1px solid #e5e7eb;flex-shrink:0}.plot-toolbar-left{display:flex;align-items:center}.plot-title{font-size:14px;font-weight:500;color:#111827}.plot-toolbar-right{display:flex;gap:8px}.plot-btn{padding:6px 12px;font-size:13px;border:1px solid #e5e7eb;border-radius:4px;background:#fff;color:#6b7280;cursor:pointer;transition:all .2s ease}.plot-btn:hover{background:#f9fafb;color:#111827;border-color:#6366f1}.plot-container{flex:1;overflow:hidden;padding:20px}.plot-chart{width:100%;height:100%}.plot-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center}.plot-empty p:first-child{font-size:48px;margin:0}.plot-empty p:last-child{margin:10px 0 0;color:#999;font-size:14px}.calculator{display:flex;flex-direction:column;gap:30px;padding:20px;background:#fff;height:100%;overflow:auto}.calculator-section-title{font-size:18px;font-weight:600;color:#111827;margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid #e5e7eb}.calculator-inputs{background:#f9fafb;padding:20px;border-radius:8px;border:1px solid #e5e7eb}.calculator-input-group{margin-bottom:24px}.calculator-input-group:last-child{margin-bottom:0}.calculator-label{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:500;color:#111827;margin-bottom:8px}.calculator-unit{font-size:12px;color:#6b7280;font-weight:400}.calculator-controls{display:flex;gap:12px;align-items:center}.calculator-slider{flex:1;height:6px;border-radius:3px;background:#e5e7eb;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.calculator-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#6366f1;cursor:pointer;transition:background .2s}.calculator-slider::-webkit-slider-thumb:hover{background:#5558e3}.calculator-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#6366f1;cursor:pointer;border:none;transition:background .2s}.calculator-slider::-moz-range-thumb:hover{background:#5558e3}.calculator-number{width:80px;padding:6px 10px;font-size:14px;color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:4px;outline:none;transition:border-color .2s}.calculator-number:focus{border-color:#6366f1}.calculator-results{background:#f9fafb;padding:20px;border-radius:8px;border:1px solid #e5e7eb}.calculator-result-item{padding:16px;background:#6366f10d;border-left:3px solid #6366f1;border-radius:6px;margin-bottom:12px}.calculator-result-item:last-child{margin-bottom:0}.calculator-result-label{font-size:13px;font-weight:500;color:#6b7280;margin-bottom:6px}.calculator-result-value{display:flex;align-items:baseline;gap:6px}.calculator-value{font-size:24px;font-weight:600;color:#6366f1}.calculator-error{font-size:16px;color:#ef4444}.calculator-formula{margin-top:8px;padding:8px;background:#f3f4f6;border-radius:4px}.calculator-formula code{font-size:12px;font-family:Monaco,Menlo,monospace;color:#374151}.calculator-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px}.calculator-empty p:first-child{font-size:48px;margin:0}.calculator-empty p:last-child{margin:10px 0 0;color:#999;font-size:14px}.artifact-viewer{width:100%;height:100%;display:flex;flex-direction:column;background:#fff;overflow:hidden}.artifact-viewer-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f9fafb;border-bottom:1px solid #e5e7eb;flex-shrink:0}.artifact-viewer-toolbar-left{display:flex;align-items:center;gap:12px}.artifact-viewer-title{font-size:14px;font-weight:500;color:#111827}.artifact-viewer-toolbar-right{display:flex;align-items:center;gap:8px}.btn-toggle-code,.btn-show-lesson,.btn-close-artifact{padding:6px 12px;font-size:13px;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s ease}.btn-toggle-code{background:#fff;color:#6b7280;border:1px solid #e5e7eb;font-family:Monaco,Menlo,Courier New,monospace;font-size:12px;font-weight:600;padding:6px 10px}.btn-toggle-code:hover{background:#f9fafb;color:#6366f1;border-color:#6366f1}.btn-show-lesson{background:#fff;color:#6366f1;border:1px solid #e5e7eb}.btn-show-lesson:hover{background:#f9fafb;border-color:#6366f1}.btn-close-artifact{background:#fff;color:#6b7280;border:1px solid #e5e7eb;font-size:16px;padding:4px 10px}.btn-close-artifact:hover{background:#f9fafb;color:#111827}.artifact-viewer-content{flex:1;overflow:auto;background:#fff}.artifact-code-view{margin:0;padding:20px;background:#f9fafb;color:#111827;font-family:Monaco,Menlo,Courier New,monospace;font-size:12px;line-height:1.5;overflow:auto;height:100%}.artifact-code-view code{white-space:pre;display:block}.artifact-code-iframe{width:100%;height:100%;border:none;background:#fff}.artifact-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#6b7280;font-size:14px;padding:40px;text-align:center}.artifact-markdown{padding:20px;color:#111827;line-height:1.6}.artifact-images{padding:20px;display:flex;flex-direction:column;gap:16px}.artifact-images img{max-width:100%;height:auto;border-radius:8px}.center-resize-handle{width:8px;height:100%;background:transparent;cursor:col-resize;position:relative;flex-shrink:0;z-index:10;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.center-resize-handle:hover{background:#ffffff0d}.center-resize-handle.dragging{background:#6366f133}.center-resize-handle-line{width:2px;height:40px;background:#fff3;border-radius:1px;transition:background-color .2s ease,height .2s ease}.center-resize-handle:hover .center-resize-handle-line{background:#fff6;height:60px}.center-resize-handle.dragging .center-resize-handle-line{background:#6366f1;height:100%}.center-container{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary, #1a1a1a)}.center-lesson-only{width:100%;height:100%;overflow:auto}.center-split{width:100%;height:100%;display:flex;flex-direction:row;position:relative;overflow:hidden}.center-split-lesson{height:100%;overflow:auto;border-right:1px solid var(--border-color, #333);background:var(--bg-primary, #1a1a1a);transition:width .3s ease-out}.center-split-artifact{height:100%;overflow:auto;background:var(--bg-secondary, #252525);transition:width .3s ease-out}.center-artifact-only{width:100%;height:100%;overflow:auto;background:var(--bg-secondary, #252525)}.center-container *{transition:width .3s ease-out,opacity .2s ease-out}@media (max-width: 1600px){.center-split-lesson{min-width:300px}.center-split-artifact{min-width:400px}}.context-estimate{padding:14px;background:var(--surface, #ffffff);border-radius:8px;border:1px solid var(--border, #e5e7eb);font-size:13px}.context-estimate.loading{display:flex;align-items:center;gap:8px;color:var(--text-secondary, #6b7280)}.context-estimate.error{display:flex;align-items:center;gap:8px;color:var(--error, #ef4444);background:#ef44441a;border-color:var(--error, #ef4444)}.estimate-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.estimate-row:last-child{margin-bottom:0}.estimate-label{color:var(--text-secondary, #6b7280);font-weight:500}.estimate-value{color:var(--text-primary, #111827);font-weight:600}.estimate-tokens{color:var(--primary-color, #6366f1)}.estimate-cost{color:var(--success, #10b981);font-size:12px}.estimate-spinner{width:14px;height:14px;border:2px solid var(--border, #e5e7eb);border-top-color:var(--primary-color, #6366f1);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-icon{font-size:16px}.error-text{font-size:12px}.lesson-tree{max-height:400px;overflow-y:auto;padding:8px;background:var(--surface, #ffffff);border-radius:6px;border:1px solid var(--border, #e5e7eb)}.tree-course{margin-bottom:8px}.tree-course:last-child{margin-bottom:0}.tree-modules{margin-left:20px;margin-top:4px}.tree-module{margin-bottom:4px}.tree-lessons{margin-left:20px;margin-top:4px}.tree-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;transition:background var(--transition-fast)}.tree-item:hover{background:var(--left-hover, #f3f4f6)}.tree-course-header{font-weight:600;font-size:14px}.tree-module-header{font-weight:500;font-size:13px}.tree-lesson{font-size:13px}.tree-expand-btn{background:none;border:none;color:var(--text-secondary, #6b7280);cursor:pointer;padding:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:10px;transition:color var(--transition-fast)}.tree-expand-btn:hover{color:var(--text-primary, #111827)}.tree-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;flex:1;-webkit-user-select:none;user-select:none}.tree-checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px;margin:0}.tree-item-text{display:flex;align-items:center;gap:6px;color:var(--text-primary, #111827)}.tree-emoji{font-size:16px}.tree-name{flex:1}.tree-count{color:var(--text-secondary, #6b7280);font-size:12px;font-weight:400}.tree-lesson-title{color:var(--text-primary, #111827)}.tree-spacer{width:16px}.tree-checkbox-label input[type=checkbox]{accent-color:var(--primary-color, #6366f1)}.lesson-tree::-webkit-scrollbar{width:8px}.lesson-tree::-webkit-scrollbar-track{background:transparent}.lesson-tree::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.lesson-tree::-webkit-scrollbar-thumb:hover{background:#9ca3af}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:var(--surface, #ffffff);border-radius:12px;border:1px solid var(--border, #e5e7eb);max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border, #e5e7eb)}.modal-title{margin:0;font-size:18px;font-weight:600;color:var(--text-primary, #111827)}.modal-close-btn{background:none;border:none;color:var(--text-secondary, #6b7280);font-size:24px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all var(--transition-fast)}.modal-close-btn:hover{background:var(--left-hover, #f3f4f6);color:var(--text-primary, #111827)}.modal-body{padding:24px;overflow-y:auto;flex:1}.context-modes{margin-bottom:24px}.mode-label-container{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.mode-label{font-size:14px;font-weight:600;color:var(--text-primary, #111827)}.mode-description{font-size:13px;font-weight:500;color:var(--primary-color, #6366f1);background:#6366f11a;padding:4px 10px;border-radius:6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode-option{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--surface, #ffffff);border:2px solid var(--border, #e5e7eb);border-radius:8px;cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.mode-option:hover{background:var(--left-hover, #f3f4f6);border-color:var(--primary-color, #6366f1)}.mode-option input[type=radio]{cursor:pointer;margin:0;width:18px;height:18px;accent-color:var(--primary-color, #6366f1)}.mode-option input[type=radio]:checked+span{font-weight:600;color:var(--primary-color, #6366f1)}.mode-option span{font-size:14px;color:var(--text-primary, #111827);transition:all var(--transition-fast)}.custom-selection-section{margin-bottom:24px;padding:16px;background:var(--left-hover, #f9fafb);border-radius:8px;border:1px solid var(--border, #e5e7eb)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-label{font-size:14px;font-weight:600;color:var(--text-primary, #111827)}.clear-selection-btn{background:var(--surface, #ffffff);border:1px solid var(--border, #e5e7eb);color:var(--text-secondary, #6b7280);padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.clear-selection-btn:hover:not(:disabled){background:var(--surface, #ffffff);border-color:var(--primary-color, #6366f1);color:var(--primary-color, #6366f1)}.clear-selection-btn:disabled{opacity:.4;cursor:not-allowed}.estimate-section{margin-top:24px}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid var(--border, #e5e7eb)}.btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:none}.btn-secondary{background:var(--surface, #ffffff);color:var(--text-primary, #111827);border:1px solid var(--border, #e5e7eb)}.btn-secondary:hover{background:var(--left-hover, #f3f4f6);border-color:var(--text-secondary, #6b7280)}.btn-primary{background:var(--primary-color, #6366f1);color:#fff}.btn-primary:hover{background:var(--primary-hover, #5558e3)}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.modal-body::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width: 768px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.mode-options{grid-template-columns:1fr}}.claude-ai-sidebar{display:flex;flex-direction:column;height:100%;background-color:var(--right-bg);color:var(--right-text)}.ai-header{padding:16px;border-bottom:1px solid var(--right-border)}.ai-mode-tabs{display:flex;align-items:center;gap:8px;margin-bottom:12px}.mode-tab{flex:1;padding:8px 12px;background-color:var(--right-surface);border:1px solid var(--right-border);border-radius:6px;color:var(--right-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px}.mode-tab:hover:not(:disabled){background-color:var(--right-hover);border-color:var(--right-accent);color:var(--right-text)}.mode-tab.active{background-color:var(--right-accent);border-color:var(--right-accent);color:#fff;font-weight:600}.mode-tab:disabled{cursor:not-allowed;opacity:.5}.btn-close-sidebar{background:transparent;border:none;color:var(--right-text-secondary);font-size:20px;padding:4px 8px;cursor:pointer;border-radius:4px;transition:all .15s ease;display:flex;align-items:center;justify-content:center;line-height:1}.btn-close-sidebar:hover{background-color:var(--right-hover);color:var(--right-text)}.model-selector{width:100%;padding:8px 12px;background-color:var(--right-surface);border:1px solid var(--right-border);border-radius:6px;color:var(--right-text);font-size:13px;cursor:pointer;transition:border-color .2s ease}.model-selector:hover{border-color:var(--right-accent)}.model-selector:focus{outline:none;border-color:var(--right-accent)}.model-selector:disabled{opacity:.5;cursor:not-allowed}.context-selector{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--right-border);background-color:var(--right-surface)}.context-summary{display:flex;align-items:center;gap:8px;flex:1;font-size:13px}.context-label{color:#999;font-weight:500}.context-value{color:var(--right-text);font-weight:600}.btn-configure-context{background:none;border:1px solid var(--right-border);color:var(--right-text);padding:6px 12px;border-radius:6px;font-size:16px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.btn-configure-context:hover:not(:disabled){background-color:var(--right-accent);border-color:var(--right-accent);transform:translateY(-1px)}.btn-configure-context:disabled{opacity:.4;cursor:not-allowed}.context-option{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;color:var(--right-text);word-wrap:break-word;overflow-wrap:break-word}.context-option input[type=checkbox]{cursor:pointer}.context-info{margin-top:8px;font-size:12px;color:#999}.messages-container{flex:1;overflow-y:auto;padding:16px}.empty-chat{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:#999}.empty-icon{font-size:48px;margin-bottom:16px}.empty-chat h3{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--right-text)}.empty-chat p{font-size:14px;color:#999}.messages-list{display:flex;flex-direction:column;gap:16px}.message{padding:12px 16px;border-radius:8px;font-size:14px;line-height:1.6}.message.user{background-color:var(--right-user-msg);color:var(--right-text);margin-left:20%;align-self:flex-end;border:1px solid var(--right-border)}.message.assistant{background-color:var(--right-surface);color:var(--right-text);margin-right:20%;border:1px solid var(--right-border)}.message.error{background-color:color-mix(in srgb,var(--error) 15%,var(--right-bg));border-color:var(--error);color:var(--right-text)}.message.loading{opacity:.7}.message-images{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.message-image{max-width:200px;max-height:200px;border-radius:6px;border:1px solid var(--right-border);cursor:pointer;transition:transform .2s ease}.message-image:hover{transform:scale(1.05)}.message-content{white-space:pre-wrap;word-wrap:break-word}.message-metadata{display:flex;gap:8px;margin-top:8px;font-size:11px}.model-badge,.tokens-badge{padding:2px 6px;background-color:var(--right-surface);border:1px solid var(--right-border);border-radius:4px;color:var(--right-text-secondary)}.loading-dots{display:flex;gap:4px}.loading-dots span{animation:loading-dot 1.4s infinite;opacity:.3}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loading-dot{0%,80%,to{opacity:.3}40%{opacity:1}}.input-container{padding:16px;border-top:1px solid var(--right-border);background-color:var(--right-surface)}.attached-images{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.image-preview{position:relative;width:100px;height:100px;border:1px solid var(--right-border);border-radius:6px;overflow:hidden;background-color:var(--right-bg)}.image-preview img{width:100%;height:100%;object-fit:cover}.remove-image{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background-color:#ef4444e6;color:#fff;border:none;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s;line-height:1;padding:0}.remove-image:hover{background-color:#dc2626}.message-input{width:100%;padding:12px;background-color:var(--right-bg);border:1px solid var(--right-border);border-radius:6px;color:var(--right-text);font-size:14px;font-family:inherit;resize:vertical;min-height:60px;transition:border-color .2s ease}.message-input:focus{outline:none;border-color:var(--right-accent)}.message-input:disabled{opacity:.5;cursor:not-allowed}.message-input::placeholder{color:#666}.input-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.btn-send{padding:8px 16px;background-color:var(--right-accent);color:var(--right-text);border:1px solid var(--right-border);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.btn-send:hover:not(:disabled){background-color:var(--right-hover)}.btn-send:disabled{opacity:.5;cursor:not-allowed}.messages-container::-webkit-scrollbar{width:8px}.messages-container::-webkit-scrollbar-track{background:var(--right-bg)}.messages-container::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.messages-container::-webkit-scrollbar-thumb:hover{background:#9ca3af}.btn-stats{padding:8px 16px;background-color:var(--right-surface);color:var(--right-text);border:1px solid var(--right-border);border-radius:6px;font-size:18px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.btn-stats:hover{background-color:var(--right-hover);border-color:var(--right-accent)}.stats-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.stats-modal{background-color:var(--right-bg);border:1px solid var(--right-border);border-radius:12px;width:90%;max-width:500px;box-shadow:0 8px 32px #0006}.stats-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--right-border)}.stats-modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--right-text)}.stats-modal-close{background:none;border:none;font-size:32px;color:var(--right-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background-color .2s ease,color .2s ease}.stats-modal-close:hover{background-color:var(--right-surface);color:var(--right-text)}.stats-modal-content{padding:24px;display:flex;flex-direction:column;gap:24px}.stats-section{display:flex;flex-direction:column;gap:12px}.stats-section h4{margin:0;font-size:14px;font-weight:600;color:var(--right-text-secondary);text-transform:uppercase;letter-spacing:.5px}.stats-grid{display:flex;flex-direction:column;gap:8px}.stats-item{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background-color:var(--right-surface);border:1px solid var(--right-border);border-radius:6px}.stats-item.stats-total{background-color:var(--right-accent);border-color:var(--right-accent)}.stats-label{font-size:14px;color:var(--right-text-secondary);font-weight:500}.stats-value{font-size:18px;font-weight:600;color:var(--right-text)}.stats-section>.stats-value{font-size:32px;font-weight:700;color:var(--right-accent)}.ai-tabs{display:flex;gap:8px;padding:8px 16px;border-bottom:1px solid var(--right-border);background-color:var(--right-surface)}.ai-tab{padding:6px 12px;background-color:var(--right-surface);color:var(--right-text);border:1px solid var(--right-border);border-radius:6px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.ai-tab.active{background-color:var(--right-accent);border-color:var(--right-accent)}.ai-tab:hover{background-color:var(--right-hover)}.canvas-container{height:100%;overflow:hidden}.message-actions{margin-top:8px;display:flex;gap:8px}.btn-send-to-canvas{padding:4px 8px;background-color:var(--right-surface);color:var(--right-text);border:1px solid var(--right-border);border-radius:6px;font-size:13px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.btn-send-to-canvas:hover{background-color:var(--right-hover);border-color:var(--right-accent)}.layout{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden}.layout-body{display:flex;flex:1;overflow:hidden}.layout-left{background-color:var(--left-bg);border-right:1px solid var(--border);overflow-y:auto;transition:width var(--transition-slow);flex-shrink:0}.layout-left.closed{width:0!important;border-right:none}.left-content{padding:16px;min-width:350px}.layout-center{flex:1;background-color:var(--center-bg);overflow-y:auto;display:flex;flex-direction:column}.center-content{padding:40px;max-width:900px;margin:0 auto;width:100%}.layout-right{background-color:var(--right-bg);color:var(--right-text);border-left:1px solid var(--right-border);overflow-y:auto;transition:width var(--transition-fast);flex-shrink:0;display:flex;flex-direction:column;position:relative}.layout-right.closed{width:0!important;border-left:none}.right-content{display:flex;flex-direction:column;height:100%;min-width:400px}.right-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--right-border)}.right-header button{background:transparent;border:none;color:var(--right-text);font-size:20px;padding:4px 8px;cursor:pointer;border-radius:4px;transition:background-color var(--transition-fast)}.right-header button:hover{background-color:var(--right-hover)}.reopen-right-sidebar{position:fixed;right:20px;bottom:20px;width:56px;height:56px;border-radius:50%;background-color:var(--primary-color);color:#fff;border:none;font-size:24px;cursor:pointer;box-shadow:var(--shadow-lg);transition:all var(--transition-normal);z-index:1000}.reopen-right-sidebar:hover{background-color:var(--primary-hover);transform:scale(1.1)}.reopen-right-sidebar:active{transform:scale(.95)}@media (max-width: 1366px){.center-content{padding:32px}.left-content,.right-content{min-width:320px}}.layout-left::-webkit-scrollbar-thumb{background:#d1d5db}.layout-right::-webkit-scrollbar-thumb{background:#404040}.layout-right::-webkit-scrollbar-thumb:hover{background:#525252}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:20px}@media (max-width: 768px){.app{padding:10px}}[data-theme=light]{--primary-color: #6366f1;--primary-hover: #5558e3;--secondary-color: #7c3aed;--left-bg: #f9fafb;--left-hover: #f3f4f6;--left-selected: #e5e7eb;--left-border: 3px solid #6366f1;--center-bg: #ffffff;--center-text: #1f2937;--center-heading: #111827;--center-secondary: #374151;--right-bg: #ffffff;--right-surface: #f9fafb;--right-user-msg: #f3f4f6;--right-text: #1f2937;--right-text-secondary: #6b7280;--right-border: #e5e7eb;--right-accent: #9ca3af;--right-hover: #f3f4f6;--background: #f9fafb;--surface: #ffffff;--border: #e5e7eb;--text-primary: #111827;--text-secondary: #6b7280;--error: #ef4444;--success: #10b981;--warning: #f59e0b;--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "Courier New", Courier, monospace;--transition-fast: .1s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--scrollbar-track: transparent;--scrollbar-thumb: #d1d5db;--scrollbar-thumb-hover: #9ca3af;--code-bg: #f3f4f6;--gradient-purple-start: #667eea;--gradient-purple-end: #764ba2;--success-dark: #059669}[data-theme=dark]{--primary-color: #818cf8;--primary-hover: #6366f1;--secondary-color: #a78bfa;--left-bg: #1e293b;--left-hover: #334155;--left-selected: #475569;--left-border: 3px solid #818cf8;--center-bg: #0f172a;--center-text: #e2e8f0;--center-heading: #f1f5f9;--center-secondary: #cbd5e1;--right-bg: #1e293b;--right-surface: #334155;--right-user-msg: #475569;--right-text: #e2e8f0;--right-text-secondary: #94a3b8;--right-border: #475569;--right-accent: #64748b;--right-hover: #475569;--background: #0f172a;--surface: #1e293b;--border: #475569;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--error: #f87171;--success: #34d399;--warning: #fbbf24;--shadow: 0 1px 3px 0 rgb(0 0 0 / .4), 0 1px 2px -1px rgb(0 0 0 / .4);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5), 0 4px 6px -4px rgb(0 0 0 / .5);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "Courier New", Courier, monospace;--transition-fast: .1s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--scrollbar-track: transparent;--scrollbar-thumb: #64748b;--scrollbar-thumb-hover: #94a3b8;--code-bg: #1e293b;--gradient-purple-start: #8b5cf6;--gradient-purple-end: #a78bfa;--success-dark: #10b981}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--text-primary);line-height:1.5;min-width:1366px;overflow-x:auto}code{font-family:var(--font-mono);background-color:var(--code-bg);padding:2px 6px;border-radius:4px;font-size:.9em}pre{font-family:var(--font-mono);background-color:var(--code-bg);padding:16px;border-radius:8px;overflow-x:auto;line-height:1.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}
