*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #ffffff;--surface: #f8fafc;--surface2: #f1f5f9;--border: #e2e8f0;--border-focus: #94a3b8;--text: #0f172a;--text-muted: #64748b;--accent: #2563eb;--accent-hover: #1d4ed8;--user-bg: #2563eb;--success: #16a34a;--error: #dc2626;--warning: #d97706;--radius: 14px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.05)}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.6}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.app{display:flex;flex-direction:column;height:100vh;max-width:860px;margin:0 auto;padding:0 20px}.header{display:flex;align-items:center;justify-content:space-between;padding:14px 0 12px;border-bottom:1px solid var(--border);gap:12px;flex-wrap:wrap}.header-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:17px;color:var(--text);white-space:nowrap;letter-spacing:-.3px}.header-title .icon{font-size:20px}.repo-config{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.repo-url-wrap{position:relative;display:flex;flex-direction:column}.repo-config input{background:#fff;border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:7px 12px;font-size:13px;width:280px;outline:none;transition:border-color .15s,box-shadow .15s;box-shadow:var(--shadow)}.repo-config input::placeholder{color:#adb5bd}.repo-config input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.repo-config input.input-error{border-color:var(--error)}.repo-parse-error{font-size:11px;color:var(--error);margin-top:3px;padding-left:2px}.repo-set-btn{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:7px 14px;font-size:13px;cursor:pointer;font-weight:600;transition:background .15s;white-space:nowrap;box-shadow:var(--shadow)}.repo-set-btn:hover{background:var(--accent-hover)}.repo-cancel-btn{background:none;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 12px;font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}.repo-cancel-btn:hover{border-color:var(--border-focus);color:var(--text)}.repo-badge{display:inline-flex;align-items:center;gap:6px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;padding:5px 12px;font-size:12.5px;color:var(--accent);font-weight:500}.repo-badge-name{color:#1e40af;font-weight:600}.repo-badge-branch{color:#60a5fa;font-size:11.5px}.repo-badge-edit{background:none;border:none;cursor:pointer;font-size:12px;padding:0 2px;line-height:1;opacity:.7;transition:opacity .15s}.repo-badge-edit:hover{opacity:1}.chat-area{flex:1;overflow-y:auto;padding:24px 0 8px;display:flex;flex-direction:column;gap:2px}.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;text-align:center;padding:40px 20px}.welcome h2{font-size:22px;color:var(--text);font-weight:700;letter-spacing:-.4px}.welcome p{max-width:440px;font-size:14px;color:var(--text-muted);line-height:1.7}.welcome-examples{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;width:100%;max-width:520px}.welcome-example-btn{background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:10px 14px;font-size:13px;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s;box-shadow:var(--shadow);line-height:1.4}.welcome-example-btn:hover{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb14}.welcome-example-btn:last-child:nth-child(odd){grid-column:1 / -1}.message{display:flex;gap:12px;padding:6px 4px;animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.message.user{flex-direction:row-reverse}.message-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;background:var(--surface2);border:1px solid var(--border);margin-top:2px}.message.user .message-avatar{background:var(--user-bg);border-color:transparent}.message-body{max-width:80%;display:flex;flex-direction:column;gap:4px}.message.user .message-body{align-items:flex-end}.message-bubble{padding:10px 14px;border-radius:4px 14px 14px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);line-height:1.65;font-size:14.5px;color:var(--text)}.message.user .message-bubble{background:var(--user-bg);border-color:transparent;border-radius:14px 4px 14px 14px;color:#fff;box-shadow:0 2px 8px #2563eb40}.message-meta{font-size:11px;color:var(--text-muted);padding:0 4px}.tools-used{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.tool-badge{font-size:11px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;padding:2px 8px;color:#3b82f6;display:flex;align-items:center;gap:4px;font-weight:500}.message-bubble p{margin:0 0 8px}.message-bubble p:last-child{margin-bottom:0}.message-bubble ul,.message-bubble ol{padding-left:20px;margin:6px 0}.message-bubble li{margin:3px 0}.message-bubble h1,.message-bubble h2,.message-bubble h3{margin:12px 0 6px;font-weight:700;letter-spacing:-.2px}.message-bubble h1{font-size:17px}.message-bubble h2{font-size:15px}.message-bubble h3{font-size:14px}.message-bubble strong{font-weight:600}.message-bubble hr{border:none;border-top:1px solid var(--border);margin:10px 0}.message-bubble code:not(pre code){background:#f1f5f9;border:1px solid #e2e8f0;padding:1px 5px;border-radius:4px;font-family:JetBrains Mono,Fira Code,SF Mono,monospace;font-size:13px;color:#0f172a}.message.user .message-bubble code:not(pre code){background:#fff3;border-color:#ffffff4d;color:#fff}.code-block-wrapper{margin:10px 0;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow)}.code-block-header{background:var(--surface2);display:flex;align-items:center;justify-content:space-between;padding:6px 12px;font-size:11.5px;color:var(--text-muted);border-bottom:1px solid var(--border);font-family:JetBrains Mono,monospace;letter-spacing:.3px}.code-copy-btn{background:#fff;border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:2px 8px;font-size:11px;cursor:pointer;transition:color .15s,border-color .15s}.code-copy-btn:hover{color:var(--text);border-color:var(--border-focus)}.code-block-wrapper pre{margin:0!important;border-radius:0!important;font-size:13px!important}.input-area{padding:10px 0 18px;border-top:1px solid var(--border)}.input-form{display:flex;gap:8px;align-items:flex-end;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:8px 8px 8px 14px;transition:border-color .15s,box-shadow .15s;box-shadow:var(--shadow-md)}.input-form:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a,var(--shadow-md)}.input-textarea{flex:1;background:none;border:none;outline:none;resize:none;color:var(--text);font-family:inherit;font-size:14.5px;line-height:1.5;max-height:180px;min-height:22px;padding:2px 0}.input-textarea::placeholder{color:#adb5bd}.send-btn{background:var(--accent);color:#fff;border:none;border-radius:9px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;flex-shrink:0;transition:background .15s,transform .1s}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:active:not(:disabled){transform:scale(.93)}.send-btn:disabled{opacity:.35;cursor:not-allowed}.input-hint{font-size:11px;color:var(--text-muted);margin-top:6px;text-align:center}.loading-indicator{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fff;border:1px solid var(--border);border-radius:4px 14px 14px;box-shadow:var(--shadow);font-size:13px;color:var(--text-muted);width:fit-content;max-width:82%}.loading-dots{display:flex;gap:4px}.loading-dots span{width:6px;height:6px;background:var(--accent);border-radius:50%;animation:bounce 1.2s infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.error-banner{background:#fef2f2;border:1px solid #fecaca;color:var(--error);padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;margin:8px 0}.status-bar{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:10px;padding:4px 0}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.status-dot.ok{background:var(--success)}.status-dot.error{background:var(--error)}.status-dot.checking{background:var(--warning);animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}
