:root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-elevated: #2d333b;--border: #30363d;--border-subtle: #21262d;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #6e7681;--text-link: #58a6ff;--accent-blue: #1f6feb;--accent-blue-hover: #388bfd;--accent-green: #238636;--accent-green-text: #3fb950;--accent-red: #da3633;--accent-red-text: #f85149;--accent-yellow: #9e6a03;--accent-yellow-text: #d29922;--accent-purple: #6e40c9;--accent-purple-text: #bc8cff;--status-ready: #3fb950;--status-busy: #d29922;--status-error: #f85149;--status-init: #58a6ff;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", "monospace";--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#3d444d}.mono{font-family:var(--font-mono)}.text-muted{color:var(--text-secondary)}.text-error{color:var(--accent-red-text)}.text-success{color:var(--accent-green-text)}.text-warning{color:var(--accent-yellow-text)}.text-info{color:var(--text-link)}.app-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-body{display:flex;flex:1;overflow:hidden}.session-sidebar{display:flex;flex-direction:column;width:180px;min-width:160px;background:var(--bg-secondary);border-right:1px solid var(--border);flex-shrink:0;overflow:hidden}.session-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 6px;border-bottom:1px solid var(--border);flex-shrink:0}.session-sidebar-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.session-list{list-style:none;padding:4px 0;margin:0;flex:1;overflow-y:auto}.session-list-empty{padding:12px 10px;font-size:11px;color:var(--text-muted);font-style:italic}.session-item{display:flex;align-items:center;padding:2px 4px 2px 6px;gap:2px;position:relative}.session-item:hover{background:var(--bg-hover)}.session-item--active{background:var(--bg-selected, rgba(88, 166, 255, .08))}.session-item-name{display:flex;align-items:center;gap:4px;flex:1;min-width:0;background:none;border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;padding:4px 2px;text-align:left;border-radius:3px;width:100%}.session-item--active .session-item-name{color:var(--text-primary);font-weight:500}.session-item-name:hover{color:var(--text-primary)}.session-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-item-active-badge{font-size:8px;color:var(--accent-green-text, #56d364)}.session-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--text-muted)}.session-status-dot--ready{background:var(--accent-green-text, #56d364)}.session-status-dot--error{background:var(--text-error, #f85149)}.session-status-dot--initializing{background:var(--accent-yellow, #e3b341)}.session-status-dot--busy{background:var(--accent-blue-hover, #79c0ff)}.session-status-dot--terminated{background:var(--text-muted)}.session-item-actions{display:none;align-items:center;gap:1px;flex-shrink:0}.session-item:hover .session-item-actions{display:flex}.session-action-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:2px 4px;border-radius:3px;line-height:1}.session-action-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.session-action-btn--danger:hover{color:var(--text-error, #f85149)}.session-rename-input{flex:1;min-width:0;background:var(--bg-input, var(--bg-primary));border:1px solid var(--accent-blue-hover);border-radius:3px;color:var(--text-primary);font-size:12px;padding:2px 4px;outline:none;width:100%}.session-sidebar-footer{padding:6px 10px;border-top:1px solid var(--border);flex-shrink:0}.btn-xs{font-size:12px;padding:2px 8px;line-height:1.4}.app-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border);min-height:48px;flex-shrink:0}.app-header-title{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-sm)}.app-header-title .logo{color:var(--accent-blue-hover)}.app-content{display:flex;flex:1;overflow:hidden;gap:0}.panel-left{display:flex;flex-direction:column;width:420px;min-width:320px;max-width:50%;border-right:1px solid var(--border);overflow:hidden;flex-shrink:0}.panel-right{display:flex;flex-direction:column;flex:1;overflow:hidden;min-width:0}.panel-section{display:flex;flex-direction:column;overflow:hidden}.panel-section.terminal-section{flex:1;min-height:200px;border-bottom:1px solid var(--border)}.panel-section.files-section{height:40%;min-height:150px;border-bottom:1px solid var(--border)}.panel-section.github-section{height:180px;min-height:120px;flex-shrink:0}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;min-height:36px}.panel-header-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);display:flex;align-items:center;gap:var(--spacing-xs)}.panel-header-actions{display:flex;gap:var(--spacing-xs);align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:5px 12px;border-radius:var(--radius-md);border:1px solid transparent;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap;font-family:var(--font-sans)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.btn-primary:hover:not(:disabled){background:var(--accent-blue-hover);border-color:var(--accent-blue-hover)}.btn-secondary{background:transparent;color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);border-color:#3d444d}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent;padding:3px 6px;font-size:11px}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{background:transparent;color:var(--accent-red-text);border-color:var(--accent-red)}.btn-danger:hover:not(:disabled){background:#da36331a}.btn-sm{padding:3px 8px;font-size:12px}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:500;font-family:var(--font-mono)}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-ready{background:#3fb95026;color:var(--status-ready)}.status-ready .status-dot{background:var(--status-ready)}.status-busy{background:#d2992226;color:var(--status-busy);animation:pulse 1.5s infinite}.status-busy .status-dot{background:var(--status-busy);animation:pulse-dot 1.5s infinite}.status-error{background:#f8514926;color:var(--status-error)}.status-error .status-dot{background:var(--status-error)}.status-initializing{background:#58a6ff26;color:var(--status-init)}.status-initializing .status-dot{background:var(--status-init);animation:pulse-dot 1s infinite}.status-terminated{background:#6e768126;color:var(--text-muted)}.status-terminated .status-dot{background:var(--text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes pulse-dot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}}.chat-messages{flex:1;overflow-y:auto;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.chat-message{display:flex;flex-direction:column;gap:4px;max-width:100%}.chat-message-user{align-items:flex-end}.chat-message-assistant{align-items:flex-start}.chat-bubble{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);max-width:85%;word-wrap:break-word;font-size:13px;line-height:1.6}.chat-message-user .chat-bubble{background:var(--accent-blue);color:#fff;border-bottom-right-radius:var(--radius-sm)}.chat-message-assistant .chat-bubble{background:var(--bg-tertiary);color:var(--text-primary);border-bottom-left-radius:var(--radius-sm);border:1px solid var(--border)}.chat-meta{font-size:10px;color:var(--text-muted);padding:0 4px}.chat-bubble pre,.chat-bubble code{font-family:var(--font-mono);font-size:12px}.chat-bubble pre{background:var(--bg-secondary);padding:var(--spacing-sm);border-radius:var(--radius-sm);overflow-x:auto;margin:4px 0;border:1px solid var(--border)}.chat-bubble p{margin:4px 0}.chat-bubble ul,.chat-bubble ol{padding-left:20px;margin:4px 0}.chat-input-area{padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--border);background:var(--bg-secondary);display:flex;flex-direction:column;gap:var(--spacing-sm)}.chat-input-row{display:flex;gap:var(--spacing-sm);align-items:flex-end}.chat-textarea{flex:1;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:13px;padding:var(--spacing-sm);resize:none;outline:none;min-height:36px;max-height:120px;transition:border-color .15s}.chat-textarea:focus{border-color:var(--accent-blue)}.chat-textarea::placeholder{color:var(--text-muted)}.loading-dots{display:flex;gap:4px;padding:var(--spacing-sm) var(--spacing-md);align-items:center}.loading-dots span{width:6px;height:6px;background:var(--text-secondary);border-radius:50%;animation:loading-bounce 1.2s infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loading-bounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.1);opacity:1}}.terminal-output{flex:1;overflow-y:auto;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-mono);font-size:12px;line-height:1.6;background:var(--bg-primary);color:var(--text-primary)}.terminal-entry{margin-bottom:var(--spacing-md);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--spacing-sm)}.terminal-entry:last-child{border-bottom:none}.terminal-prompt{color:var(--accent-green-text);margin-bottom:2px;display:flex;align-items:center;gap:var(--spacing-sm)}.terminal-prompt-symbol{color:var(--accent-blue-hover)}.terminal-command{color:var(--text-primary);font-weight:500}.terminal-stdout{color:var(--text-primary);white-space:pre-wrap;word-wrap:break-word}.terminal-stderr{color:var(--accent-red-text);white-space:pre-wrap;word-wrap:break-word}.terminal-exit-code{font-size:10px;margin-top:2px;color:var(--text-muted)}.terminal-exit-ok{color:var(--accent-green-text)}.terminal-exit-fail{color:var(--accent-red-text)}.terminal-meta{font-size:10px;color:var(--text-muted);margin-bottom:2px}.terminal-truncated{font-size:11px;color:var(--accent-yellow-text);margin-top:2px}.terminal-input-area{padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--border);background:var(--bg-secondary);display:flex;gap:var(--spacing-sm);align-items:center}.terminal-input-prefix{color:var(--accent-green-text);font-family:var(--font-mono);font-size:13px;flex-shrink:0}.terminal-input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-family:var(--font-mono);font-size:13px}.terminal-input::placeholder{color:var(--text-muted)}.terminal-empty{color:var(--text-muted);font-size:12px;padding:var(--spacing-lg);text-align:center;font-family:var(--font-mono)}.file-panel{display:flex;overflow:hidden;flex:1}.file-tree{width:220px;min-width:180px;border-right:1px solid var(--border);overflow-y:auto;background:var(--bg-secondary);flex-shrink:0}.file-viewer{flex:1;overflow-y:auto;background:var(--bg-primary);display:flex;flex-direction:column}.file-entry{display:flex;align-items:center;gap:var(--spacing-xs);padding:4px var(--spacing-md);cursor:pointer;font-size:12px;font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s}.file-entry:hover{background:var(--bg-tertiary);color:var(--text-primary)}.file-entry.active{background:#1f6feb26;color:var(--text-link)}.file-entry.is-dir{color:var(--text-link)}.file-entry.is-hidden{opacity:.6}.file-icon{flex-shrink:0;font-size:11px}.file-content-header{padding:var(--spacing-sm) var(--spacing-md);font-size:11px;color:var(--text-secondary);border-bottom:1px solid var(--border);font-family:var(--font-mono);background:var(--bg-secondary);display:flex;align-items:center;gap:var(--spacing-sm)}.file-content-pre{padding:var(--spacing-md);font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--text-primary);white-space:pre-wrap;word-wrap:break-word;flex:1;overflow-y:auto}.file-empty{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted);font-size:12px;font-family:var(--font-mono);padding:var(--spacing-xl);text-align:center}.github-panel{padding:var(--spacing-sm) var(--spacing-md);overflow-y:auto;flex:1}.github-row{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);font-size:12px}.github-label{color:var(--text-muted);width:80px;flex-shrink:0;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.github-value{color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.github-link{color:var(--text-link);text-decoration:none}.github-link:hover{text-decoration:underline}.github-issues-list{margin-top:var(--spacing-sm);display:flex;flex-direction:column;gap:2px;max-height:100px;overflow-y:auto}.github-issue-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:3px var(--spacing-sm);border-radius:var(--radius-sm);font-size:11px;cursor:pointer;transition:background .1s}.github-issue-item:hover{background:var(--bg-tertiary)}.issue-status-badge{padding:1px 6px;border-radius:10px;font-size:10px;font-weight:500;flex-shrink:0}.issue-todo{background:#0075ca33;color:#58a6ff}.issue-in-progress{background:#9e6a0333;color:#d29922}.issue-done{background:#23863633;color:#3fb950}.issue-unknown{background:#6e768133;color:#6e7681}.alert{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.alert-error{background:#da36331a;border:1px solid rgba(218,54,51,.3);color:var(--accent-red-text)}.alert-warning{background:#9e6a031a;border:1px solid rgba(158,106,3,.3);color:var(--accent-yellow-text)}.alert-info{background:#58a6ff1a;border:1px solid rgba(88,166,255,.3);color:var(--text-link)}.alert-close{background:none;border:none;cursor:pointer;color:inherit;padding:0;opacity:.7}.alert-close:hover{opacity:1}.welcome-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-lg);padding:var(--spacing-xl);color:var(--text-secondary);font-size:13px;text-align:center}.welcome-state h2{color:var(--text-primary);font-size:18px;margin-bottom:var(--spacing-sm)}.welcome-state .welcome-hint{color:var(--text-muted);font-size:12px}.mock-badge{padding:1px 6px;background:#9e6a0333;color:var(--accent-yellow-text);border-radius:10px;font-size:10px;font-weight:500}.spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.streaming-badge{padding:1px 6px;background:#3fb95033;color:var(--accent-green-text);border-radius:10px;font-size:10px;font-weight:500;animation:pulse 1.2s infinite}.streaming-bubble{border-color:var(--accent-green)!important}.streaming-cursor{display:inline-block;width:2px;height:14px;background:var(--accent-green-text);margin-left:2px;vertical-align:text-bottom;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.code-editor-container{display:flex;flex-direction:column;flex:1;overflow:hidden;background:#0d1117}.code-editor-toolbar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;min-height:32px}.code-editor-filename{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);font-weight:500}.code-editor-body{flex:1;overflow:hidden;position:relative;min-height:0}.code-editor-body .monaco-editor,.code-editor-body .monaco-diff-editor{position:absolute!important;top:0;right:0;bottom:0;left:0}.btn.btn-active{background:var(--accent-blue, #1f6feb);color:#fff;border-color:var(--accent-blue, #1f6feb)}.code-editor-footer{padding:var(--spacing-xs) var(--spacing-md);background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0}
