*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:SF Mono,Menlo,Monaco,Courier New,monospace;background:#1a1a2e;color:#e0e0e0}#root{display:flex;flex-direction:column}.header{background:#16213e;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2a2a4a}.header h1{font-size:14px;font-weight:600;color:#a78bfa}.connection-status{display:flex;align-items:center;gap:6px;font-size:12px;color:#888}.connection-dot{width:8px;height:8px;border-radius:50%;background:#666}.connection-dot.connected{background:#4ade80}.connection-dot.disconnected{background:#f87171}.main{flex:1;display:flex;overflow:hidden}.sidebar{width:340px;min-width:340px;background:#16213e;border-right:1px solid #2a2a4a;overflow-y:auto;display:flex;flex-direction:column}.sidebar-header{padding:12px 16px;font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #2a2a4a}.tenant-group{border-bottom:1px solid #2a2a4a}.tenant-name{padding:8px 16px;font-size:11px;font-weight:600;color:#a78bfa;text-transform:uppercase;letter-spacing:.5px;background:#1a1a30}.session-item{padding:10px 16px;cursor:pointer;border-bottom:1px solid #1a1a2e;transition:background .15s}.session-item:hover{background:#1e2a4a}.session-item.active{background:#1e3a5f;border-left:3px solid #a78bfa}.session-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.working{background:#4ade80;animation:pulse 1.5s ease-in-out infinite}.status-dot.completed{background:#6b7280}.status-dot.error{background:#f87171}.status-dot.idle{background:#fbbf24;border:1px solid #a3801a}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.session-prompt{font-size:12px;color:#ccc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.session-meta{display:flex;gap:12px;font-size:11px;color:#666}.session-meta .label{color:#888}.session-hint{font-size:11px;color:#9ca3af;font-style:italic;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.delete-btn{display:none;background:none;border:none;color:#666;cursor:pointer;font-size:14px;padding:2px 4px;border-radius:3px;line-height:1;flex-shrink:0}.delete-btn:hover{color:#f87171;background:#f8717126}.session-item:hover .delete-btn{display:inline-block}.content{flex:1;display:flex;flex-direction:column;overflow:hidden}.content-header{padding:12px 20px;background:#16213e;border-bottom:1px solid #2a2a4a}.content-header-top{display:flex;justify-content:space-between;align-items:flex-start}.content-title{font-size:14px;font-weight:600;color:#e0e0e0}.content-cwd{font-size:11px;color:#666;margin-top:4px}.content-session-id{font-size:10px;color:#555;margin-top:4px;font-family:SF Mono,Menlo,Monaco,monospace;cursor:default}.session-actions{display:flex;gap:6px;flex-shrink:0}.retry-btn{background:#a78bfa26;border:1px solid rgba(167,139,250,.3);color:#a78bfa;padding:5px 14px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;flex-shrink:0}.retry-btn:hover{background:#a78bfa40;border-color:#a78bfa}.resume-btn{background:#34d39926;border:1px solid rgba(52,211,153,.3);color:#34d399;padding:5px 14px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;flex-shrink:0}.resume-btn:hover{background:#34d39940;border-color:#34d399}.review-links{display:flex;gap:8px;margin-top:8px}.review-link{font-size:11px;color:#a78bfa;text-decoration:none;padding:3px 10px;border:1px solid rgba(167,139,250,.3);border-radius:4px;background:#a78bfa14;transition:all .15s}.review-link:hover{background:#a78bfa33;border-color:#a78bfa}.log-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#555;font-size:13px}.content-empty{flex:1;display:flex;align-items:center;justify-content:center;color:#555;font-size:14px}.log-container{flex:1;overflow-y:auto;padding:12px 20px}.log-entry{display:flex;gap:12px;padding:4px 0;font-size:12px;line-height:1.6}.log-time{color:#666;flex-shrink:0;min-width:70px}.log-type{flex-shrink:0;min-width:110px;font-weight:600}.log-type.session_start{color:#4ade80}.log-type.tool_use{color:#60a5fa}.log-type.assistant_turn{color:#fbbf24}.log-type.tool_summary{color:#34d399}.log-type.session_end{color:#a78bfa}.log-type.error{color:#f87171}.log-type.bot_message{color:#38bdf8}.log-link{color:#4fc3f7;text-decoration:none}.log-link:hover{text-decoration:underline}.log-detail{color:#aaa}.log-thinking{color:#9ca3af;font-style:italic;margin-left:192px;padding:2px 0;font-size:11px}.phase-progress{display:flex;align-items:center;gap:8px;margin:4px 0 2px}.phase-steps{display:flex;gap:3px;align-items:center}.phase-step{display:flex;align-items:center}.phase-dot{width:8px;height:8px;border-radius:50%;background:#333;transition:all .3s}.phase-step.completed .phase-dot{background:#4ade80}.phase-step.current .phase-dot{background:#a78bfa;box-shadow:0 0 6px #a78bfa80;animation:pulse 1.5s ease-in-out infinite}.phase-step.pending .phase-dot{background:#333}.phase-current-label{font-size:10px;color:#a78bfa;white-space:nowrap}.workflow-progress{padding:12px 20px;background:#16213e;border-bottom:1px solid #2a2a4a}.workflow-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.workflow-progress-title{font-size:12px;font-weight:600;color:#ccc}.workflow-progress-pct{font-size:12px;color:#a78bfa;font-weight:600}.workflow-progress-bar{height:4px;background:#2a2a4a;border-radius:2px;overflow:hidden;margin-bottom:10px}.workflow-progress-fill{height:100%;background:linear-gradient(90deg,#4ade80,#a78bfa);border-radius:2px;transition:width .5s ease}.workflow-phases-detail{display:flex;gap:4px;flex-wrap:wrap}.workflow-phase-item{display:flex;align-items:center;gap:4px;font-size:11px;padding:3px 8px;border-radius:4px;border:1px solid #2a2a4a;background:#1a1a2e;color:#666}.workflow-phase-item.done{color:#4ade80;border-color:#4ade804d;background:#4ade800d}.workflow-phase-item.active{color:#a78bfa;border-color:#a78bfa66;background:#a78bfa1a;font-weight:600}.workflow-phase-icon{font-size:10px}.content-body{flex:1;display:flex;overflow:hidden}.content-body .log-container{flex:1;overflow-y:auto;padding:12px 20px}.artifacts-panel{width:220px;min-width:220px;background:#16213e;border-left:1px solid #2a2a4a;display:flex;flex-direction:column;overflow:hidden}.artifacts-header{padding:10px 12px;font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #2a2a4a;display:flex;justify-content:space-between;align-items:center}.artifacts-count{color:#666;font-size:10px}.artifacts-loading,.artifacts-empty{padding:16px 12px;color:#555;font-size:12px;text-align:center}.artifacts-list{flex:1;overflow-y:auto;padding:4px 0}.artifact-item{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:11px;cursor:pointer;transition:background .15s}.artifact-item:hover{background:#1e2a4a}.artifact-item-active{background:#1e2a4a;border-left:2px solid #4fc3f7;padding-left:10px}.artifact-icon{flex-shrink:0;font-size:13px}.artifact-name{color:#ccc;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artifact-size{color:#555;flex-shrink:0;font-size:10px}.artifacts-panel-expanded{width:480px;min-width:480px}.artifact-viewer{border-top:1px solid #2a2a4a;display:flex;flex-direction:column;flex:2;min-height:0}.artifact-viewer-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#1a1a30;border-bottom:1px solid #2a2a4a}.artifact-viewer-title{font-size:11px;color:#ccc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artifact-viewer-close{background:none;border:none;color:#888;cursor:pointer;font-size:14px;padding:2px 6px;border-radius:3px}.artifact-viewer-close:hover{background:#2a2a4a;color:#fff}.artifact-viewer-body{flex:1;overflow:auto;padding:12px}.artifact-viewer-loading,.artifact-viewer-error{color:#888;font-size:12px;text-align:center;padding:20px}.artifact-viewer-error{color:#e57373}.artifact-viewer-image{max-width:100%;height:auto;border-radius:4px}.artifact-viewer-text{margin:0;font-size:12px;line-height:1.5;color:#ccc;white-space:pre-wrap;word-break:break-word;font-family:SF Mono,Consolas,Monaco,monospace}.artifact-viewer-markdown{font-size:13px;line-height:1.7;color:#ccc}.artifact-viewer-markdown h1,.artifact-viewer-markdown h2,.artifact-viewer-markdown h3,.artifact-viewer-markdown h4{color:#e0e0e0;margin:1em 0 .5em;line-height:1.3}.artifact-viewer-markdown h1{font-size:1.4em;border-bottom:1px solid #2a2a4a;padding-bottom:.3em}.artifact-viewer-markdown h2{font-size:1.2em;border-bottom:1px solid #2a2a4a;padding-bottom:.2em}.artifact-viewer-markdown h3{font-size:1.05em}.artifact-viewer-markdown p{margin:.6em 0}.artifact-viewer-markdown ul,.artifact-viewer-markdown ol{padding-left:1.5em;margin:.5em 0}.artifact-viewer-markdown li{margin:.2em 0}.artifact-viewer-markdown code{background:#1a1a30;padding:.15em .4em;border-radius:3px;font-size:.9em;font-family:SF Mono,Consolas,Monaco,monospace}.artifact-viewer-markdown pre{background:#1a1a30;padding:12px;border-radius:6px;overflow-x:auto;margin:.8em 0}.artifact-viewer-markdown pre code{background:none;padding:0}.artifact-viewer-markdown table{border-collapse:collapse;width:100%;margin:.8em 0;font-size:12px}.artifact-viewer-markdown th,.artifact-viewer-markdown td{border:1px solid #2a2a4a;padding:6px 10px;text-align:left}.artifact-viewer-markdown th{background:#1a1a30;color:#e0e0e0}.artifact-viewer-markdown blockquote{border-left:3px solid #4fc3f7;margin:.8em 0;padding:.3em 1em;color:#aaa}.artifact-viewer-markdown a{color:#4fc3f7;text-decoration:none}.artifact-viewer-markdown a:hover{text-decoration:underline}.artifact-viewer-markdown hr{border:none;border-top:1px solid #2a2a4a;margin:1em 0}.session-summary{padding:8px 20px;background:#1a1a30;border-top:1px solid #2a2a4a;font-size:12px;color:#888;display:flex;gap:20px}.session-summary .stat{display:flex;gap:4px}.session-summary .stat-value{color:#ccc}.header-left{display:flex;align-items:center;gap:24px}.tab-nav{display:flex;gap:2px}.tab-btn{background:none;border:none;color:#888;font-family:inherit;font-size:13px;padding:6px 16px;cursor:pointer;border-radius:4px;transition:all .15s}.tab-btn:hover{color:#ccc;background:#ffffff0d}.tab-btn.active{color:#a78bfa;background:#a78bfa1a;font-weight:600}.chat-page{flex:1;display:flex;overflow:hidden}.chat-sidebar{width:280px;min-width:280px;background:#16213e;border-right:1px solid #2a2a4a;display:flex;flex-direction:column}.chat-sidebar-header{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #2a2a4a}.new-chat-btn{background:#a78bfa26;border:1px solid rgba(167,139,250,.3);color:#a78bfa;width:28px;height:28px;border-radius:6px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.new-chat-btn:hover{background:#a78bfa40;border-color:#a78bfa}.chat-sidebar-list{flex:1;overflow-y:auto}.chat-sidebar-empty{padding:20px 16px;color:#555;font-size:13px;text-align:center}.chat-conv-item{padding:12px 16px;cursor:pointer;border-bottom:1px solid #1a1a2e;transition:background .15s}.chat-conv-item:hover{background:#1e2a4a}.chat-conv-item.active{background:#1e3a5f;border-left:3px solid #a78bfa}.chat-conv-top{display:flex;align-items:center;gap:8px}.chat-conv-title{font-size:13px;color:#ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.chat-conv-preview{font-size:11px;color:#777;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-header{padding:10px 20px;background:#16213e;border-bottom:1px solid #2a2a4a;display:flex;align-items:center;justify-content:space-between}.chat-header-left{display:flex;align-items:center;gap:8px}.chat-header-status{font-size:12px;color:#888}.chat-view{flex:1;overflow:hidden;display:flex;flex-direction:column}.chat-view-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#555;gap:12px}.chat-empty-icon{font-size:48px;opacity:.3}.chat-empty-text{font-size:14px}.chat-messages{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.chat-bubble{max-width:75%;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.6;word-break:break-word}.chat-user{align-self:flex-end;background:#2d4a7a;color:#e0e8f0;border-bottom-right-radius:4px}.chat-assistant{align-self:flex-start;background:#252540;color:#d0d0e0;border-bottom-left-radius:4px}.chat-error{align-self:flex-start;background:#f871711a;border:1px solid rgba(248,113,113,.3);color:#f87171}.chat-bubble-text{white-space:pre-wrap}.chat-progress{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px;color:#888}.progress-dot{width:6px;height:6px;border-radius:50%;background:#4ade80;animation:pulse 1.5s ease-in-out infinite}.chat-usage{display:flex;gap:16px;padding:8px 14px;background:#1a1a30;border-radius:8px;font-size:12px;color:#888;align-self:center}.chat-usage span{color:#aaa}.chat-input-area{padding:12px 20px;background:#16213e;border-top:1px solid #2a2a4a}.chat-input-controls{display:flex;gap:8px;margin-bottom:8px}.chat-select{background:#1a1a2e;border:1px solid #2a2a4a;color:#ccc;padding:6px 10px;border-radius:6px;font-family:inherit;font-size:12px;cursor:pointer;outline:none}.chat-select:focus{border-color:#a78bfa}.chat-input-row{display:flex;gap:8px;align-items:flex-end}.chat-textarea{flex:1;background:#1a1a2e;border:1px solid #2a2a4a;color:#e0e0e0;padding:10px 14px;border-radius:10px;font-family:inherit;font-size:13px;line-height:1.5;resize:none;outline:none;min-height:40px;max-height:200px}.chat-textarea:focus{border-color:#a78bfa}.chat-textarea:disabled{opacity:.5;cursor:not-allowed}.chat-textarea::placeholder{color:#555}.chat-send-btn,.chat-abort-btn{width:40px;height:40px;border:none;border-radius:10px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.chat-send-btn{background:#a78bfa;color:#fff}.chat-send-btn:hover:not(:disabled){background:#8b6fde}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.chat-abort-btn{background:#f87171;color:#fff}.chat-abort-btn:hover{background:#e55555}.chat-attach-btn{width:40px;height:40px;border:1px solid #2a2a4a;border-radius:10px;background:#1a1a2e;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.chat-attach-btn:hover:not(:disabled){border-color:#a78bfa;background:#252540}.chat-attach-btn:disabled{opacity:.3;cursor:not-allowed}.chat-upload-error{background:#f871711a;border:1px solid rgba(248,113,113,.3);color:#f87171;padding:6px 10px;border-radius:6px;font-size:12px;margin-bottom:8px}.chat-attached-files{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.chat-attached-file{display:flex;align-items:center;gap:4px;background:#252540;border:1px solid #2a2a4a;border-radius:6px;padding:4px 8px;font-size:11px;color:#aaa}.attached-file-name{color:#ccc}.attached-file-size{color:#666}.attached-file-remove{background:none;border:none;color:#666;cursor:pointer;font-size:14px;padding:0 2px;line-height:1}.attached-file-remove:hover{color:#f87171}.chat-file-list{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.chat-file-tag{background:#a78bfa1a;border:1px solid rgba(167,139,250,.2);border-radius:4px;padding:2px 6px;font-size:11px;color:#a78bfa}.approval-card{background:#1a1a30;border:1px solid #fbbf24;border-radius:10px;padding:14px 16px;max-width:85%;align-self:flex-start}.approval-card.approval-resolved{border-color:#4b5563;opacity:.7}.approval-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.approval-icon{font-size:18px}.approval-title{font-size:13px;font-weight:600;color:#fbbf24}.approval-badge{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:600}.badge-approved{background:#4ade8026;color:#4ade80}.badge-rejected{background:#f8717126;color:#f87171}.approval-description{font-size:12px;color:#bbb;line-height:1.6;margin-bottom:10px}.approval-diff{background:#0d1117;border:1px solid #2a2a4a;border-radius:6px;padding:10px;margin-bottom:10px;overflow-x:auto;max-height:300px;overflow-y:auto}.approval-diff pre{margin:0;font-size:11px;line-height:1.5;color:#d0d0d0}.approval-diff code{font-family:SF Mono,Menlo,Monaco,monospace}.approval-feedback{margin-bottom:10px}.approval-feedback-input{width:100%;background:#0d1117;border:1px solid #2a2a4a;color:#e0e0e0;padding:8px 10px;border-radius:6px;font-family:inherit;font-size:12px;resize:none;outline:none}.approval-feedback-input:focus{border-color:#fbbf24}.approval-actions{display:flex;gap:8px}.approval-btn{padding:6px 14px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.approve-btn{background:#4ade80;color:#0a1a0a}.approve-btn:hover{background:#3cc070}.reject-btn{background:#f87171;color:#fff}.reject-btn:hover:not(:disabled){background:#e55555}.reject-btn:disabled{opacity:.4;cursor:not-allowed}.reject-no-feedback-btn{background:transparent;border:1px solid #4b5563;color:#9ca3af}.reject-no-feedback-btn:hover{border-color:#f87171;color:#f87171}.chat-assistant .chat-bubble-text h1,.chat-assistant .chat-bubble-text h2,.chat-assistant .chat-bubble-text h3{margin:8px 0 4px;color:#e0e0e0}.chat-assistant .chat-bubble-text h1{font-size:16px}.chat-assistant .chat-bubble-text h2{font-size:14px}.chat-assistant .chat-bubble-text h3{font-size:13px}.chat-assistant .chat-bubble-text p{margin:4px 0}.chat-assistant .chat-bubble-text ul,.chat-assistant .chat-bubble-text ol{margin:4px 0;padding-left:20px}.chat-assistant .chat-bubble-text li{margin:2px 0}.chat-assistant .chat-bubble-text code{font-family:SF Mono,Menlo,Monaco,monospace;background:#0000004d;padding:1px 5px;border-radius:3px;font-size:12px}.chat-assistant .chat-bubble-text pre{background:#0d1117;border:1px solid #2a2a4a;border-radius:6px;padding:10px 12px;overflow-x:auto;margin:6px 0}.chat-assistant .chat-bubble-text pre code{background:none;padding:0;font-size:12px;line-height:1.5;color:#d0d0d0}.chat-assistant .chat-bubble-text blockquote{border-left:3px solid #a78bfa;padding-left:10px;margin:6px 0;color:#9ca3af}.chat-assistant .chat-bubble-text table{border-collapse:collapse;margin:6px 0;font-size:12px}.chat-assistant .chat-bubble-text th,.chat-assistant .chat-bubble-text td{border:1px solid #2a2a4a;padding:4px 8px}.chat-assistant .chat-bubble-text th{background:#1a1a30;font-weight:600}.chat-assistant .chat-bubble-text a{color:#a78bfa;text-decoration:none}.chat-assistant .chat-bubble-text a:hover{text-decoration:underline}.chat-assistant .chat-bubble-text hr{border:none;border-top:1px solid #2a2a4a;margin:8px 0}
