:root{--bg:#0a0a0b;--bg-sidebar:#111113;--bg-chat:#0a0a0b;--bg-input:#18181b;--bg-message-ai:#18181b;--bg-message-user:#2563eb;--bg-tool:#1c1c20;--bg-hover:#1f1f23;--bg-button:#2563eb;--bg-button-hover:#1d4ed8;--text:#a1a1aa;--text-primary:#fafafa;--text-secondary:#71717a;--text-accent:#60a5fa;--text-on-button:#fff;--text-tool:#a78bfa;--text-success:#4ade80;--text-error:#f87171;--border:#27272a;--border-input:#3f3f46;--border-accent:#2563eb;--radius:12px;--radius-sm:8px;--radius-xs:6px;--sans:"Inter", system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", "Fira Code", ui-monospace, monospace;--shadow:0 4px 24px #0006;--transition:.15s ease}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}#app{height:100%;display:flex}.auth-screen{flex-direction:column;justify-content:center;align-items:center;gap:24px;width:100%;height:100%;padding:32px;display:flex}.auth-screen .logo{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:16px;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;font-weight:700;display:flex}.auth-screen h1{color:var(--text-primary);letter-spacing:-.5px;font-size:32px;font-weight:600}.auth-screen p{color:var(--text-secondary);text-align:center;max-width:400px}.btn-google{color:#1f1f1f;border-radius:var(--radius-sm);cursor:pointer;transition:box-shadow var(--transition);background:#fff;border:none;align-items:center;gap:12px;padding:12px 28px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.btn-google:hover{box-shadow:var(--shadow)}.btn-google svg{width:20px;height:20px}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-direction:column;width:280px;min-width:280px;height:100%;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px;display:flex}.sidebar-header h2{color:var(--text-primary);letter-spacing:-.3px;font-size:16px;font-weight:600}.btn-new-chat{background:var(--bg-button);color:var(--text-on-button);border-radius:var(--radius-xs);cursor:pointer;transition:background var(--transition);border:none;padding:6px 14px;font-size:13px;font-weight:500}.btn-new-chat:hover{background:var(--bg-button-hover)}.model-selector{border-bottom:1px solid var(--border);padding:16px 20px}.model-selector label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:8px;font-size:11px;font-weight:600;display:block}.model-selector select{background:var(--bg-input);width:100%;color:var(--text-primary);border:1px solid var(--border-input);border-radius:var(--radius-xs);font-size:14px;font-family:var(--sans);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2371717a' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding:8px 12px}.model-selector select:focus{border-color:var(--border-accent);outline:none}.conversations{flex:1;padding:12px;overflow-y:auto}.conversations::-webkit-scrollbar{width:4px}.conversations::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.conversation-item{border-radius:var(--radius-xs);cursor:pointer;transition:background var(--transition);align-items:center;gap:8px;margin-bottom:2px;padding:10px 14px;display:flex}.conversation-item:hover{background:var(--bg-hover)}.conversation-item.active{background:var(--bg-hover);border-left:2px solid var(--border-accent)}.conv-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.conversation-item.active .conv-title{color:var(--text-primary)}.conv-delete{color:var(--text-secondary);cursor:pointer;opacity:0;transition:opacity var(--transition), color var(--transition);background:0 0;border:none;padding:0 4px;font-size:16px}.conversation-item:hover .conv-delete{opacity:1}.conv-delete:hover{color:var(--text-error)}.sidebar-footer{border-top:1px solid var(--border);align-items:center;gap:12px;padding:16px 20px;display:flex}.user-avatar{object-fit:cover;border-radius:50%;width:32px;height:32px}.user-info{flex:1;min-width:0}.user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.user-email{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.btn-logout{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-xs);transition:color var(--transition), background var(--transition);background:0 0;border:none;padding:6px;display:flex}.btn-logout:hover{color:var(--text-error);background:#f871711a}.chat-main{flex-direction:column;flex:1;min-width:0;display:flex}.messages{scroll-behavior:smooth;flex:1;padding:24px 0;overflow-y:auto}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.message{max-width:800px;margin:0 auto;padding:0 24px}.message+.message{margin-top:24px}.message-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.message-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:600;display:flex}.message-avatar.user{background:var(--bg-message-user);color:#fff}.message-avatar.ai{color:#fff;background:linear-gradient(135deg,#7c3aed,#2563eb)}.message-role{color:var(--text-primary);font-size:13px;font-weight:600}.message-body{color:var(--text-primary);word-wrap:break-word;padding-left:38px;font-size:15px;line-height:1.7}.message-body p+p{margin-top:12px}.message-body a{color:var(--text-accent);text-decoration:underline}.message-body h1,.message-body h2,.message-body h3,.message-body h4{color:var(--text-primary);margin:20px 0 10px;line-height:1.25}.message-body h1{font-size:1.55rem}.message-body h2{font-size:1.35rem}.message-body h3{font-size:1.15rem}.message-body h4{font-size:1rem}.message-body hr{border:0;border-top:1px solid var(--border);margin:18px 0}.message-body ul,.message-body ol{margin:12px 0;padding-left:24px}.message-body li+li{margin-top:6px}.message-body table{border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:var(--radius-sm);table-layout:auto;background:#ffffff05;width:100%;margin:14px 0;font-size:14px;display:table}.message-body thead{background:var(--bg-tool)}.message-body th,.message-body td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 12px}.message-body th{font-weight:600}.message-body th:last-child,.message-body td:last-child{border-right:0}.message-body tr:last-child td{border-bottom:0}.message-body code{font-family:var(--mono);background:var(--bg-tool);border-radius:4px;padding:2px 6px;font-size:13px}.message-body pre{background:var(--bg-tool);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);margin:12px 0;padding:14px 18px;font-size:13px;line-height:1.5;overflow-x:auto}.tool-card{background:var(--bg-tool);border:1px solid var(--border);border-radius:var(--radius-sm);margin:10px 0;overflow:hidden}.tool-stack{margin:10px 0 14px}.tool-stack-summary{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.tool-stack-copy{min-width:0}.tool-stack-title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);font-size:12px;font-weight:700}.tool-stack-meta{color:var(--text-secondary);margin-top:2px;font-size:13px}.tool-stack-cta{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;transition:background var(--transition), border-color var(--transition), color var(--transition);background:0 0;border-radius:999px;flex-shrink:0;padding:7px 12px;font-size:12px;font-weight:600}.tool-stack-cta:hover{background:var(--bg-hover);border-color:var(--text-accent);color:var(--text-accent)}.tool-stack-details{margin-top:10px;padding-top:6px;animation:.18s tool-stack-enter;display:none}.tool-stack.show-details .tool-stack-details{display:block}.tool-card-header{cursor:pointer;transition:background var(--transition);align-items:center;gap:8px;padding:10px 14px;display:flex}.tool-card-header:hover{background:var(--bg-hover)}.tool-card-header-static{cursor:default}.tool-card-header-static:hover{background:0 0}.tool-icon{font-size:14px}.tool-name{font-family:var(--mono);color:var(--text-tool);font-size:13px;font-weight:600}.tool-status{margin-left:auto;font-size:12px}.tool-status.running{color:var(--text-accent)}.tool-status.done{color:var(--text-success)}.tool-status.error{color:var(--text-error)}.tool-step-pill{color:var(--text-secondary);background:#ffffff0f;border-radius:999px;padding:4px 6px;font-size:11px;line-height:1}.tool-card-compact{border-color:#7c3aed3d;margin:0;animation:.22s tool-card-swap;box-shadow:0 10px 24px #0000002e}.tool-card-compact-meta{color:var(--text-secondary);padding:0 14px 12px;font-size:12px}.tool-card-compact .tool-card-body{display:none!important}.tool-card-body{font-family:var(--mono);color:var(--text-secondary);max-height:200px;padding:0 14px 12px;font-size:12px;line-height:1.5;display:none;overflow-y:auto}.tool-card.expanded .tool-card-body{display:block}.tool-card-body pre{white-space:pre-wrap;word-break:break-all;background:0 0;border:none;margin:0;padding:0}.tool-chevron{transition:transform var(--transition);color:var(--text-secondary);font-size:12px}.tool-card.expanded .tool-chevron{transform:rotate(90deg)}@keyframes tool-card-swap{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tool-stack-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.typing-indicator{gap:4px;padding:4px 0;display:inline-flex}.typing-indicator span{background:var(--text-secondary);border-radius:50%;width:6px;height:6px;animation:1.4s infinite typing}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.empty-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:48px;display:flex}.empty-state .logo-big{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;font-weight:700;display:flex}.empty-state h3{color:var(--text-primary);font-size:20px;font-weight:500}.empty-state p{text-align:center;max-width:420px;font-size:14px;line-height:1.6}.suggestions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.suggestion{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;transition:border-color var(--transition), color var(--transition);padding:8px 16px;font-size:13px}.suggestion:hover{border-color:var(--border-accent);color:var(--text-primary)}.input-area{width:100%;max-width:800px;margin:0 auto;padding:16px 24px 24px}.input-wrapper{background:var(--bg-input);border:1px solid var(--border-input);border-radius:var(--radius);transition:border-color var(--transition);align-items:flex-end;gap:10px;padding:10px 14px;display:flex}.input-wrapper:focus-within{border-color:var(--border-accent)}.input-wrapper textarea{color:var(--text-primary);font-family:var(--sans);resize:none;background:0 0;border:none;outline:none;flex:1;max-height:200px;font-size:15px;line-height:1.5}.input-wrapper textarea::placeholder{color:var(--text-secondary)}.btn-send{border-radius:var(--radius-xs);background:var(--bg-button);color:#fff;cursor:pointer;width:36px;height:36px;transition:background var(--transition), opacity var(--transition);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.btn-send:disabled{opacity:.3;cursor:not-allowed}.btn-send:not(:disabled):hover{background:var(--bg-button-hover)}.btn-send svg{width:18px;height:18px}.csr-warning-banner{border-radius:var(--radius-sm);background:linear-gradient(135deg,#fbbf2414,#f59e0b0d);border:1px solid #fbbf244d;border-left:4px solid #f59e0b;gap:14px;margin:12px 0;padding:16px 18px;animation:.3s ease-out csrBannerSlideIn;display:flex}@keyframes csrBannerSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.csr-warning-icon{flex-shrink:0;font-size:24px;line-height:1.2}.csr-warning-content{flex:1;min-width:0}.csr-warning-title{color:#fbbf24;letter-spacing:-.2px;margin-bottom:6px;font-size:14px;font-weight:700}.csr-warning-text{color:var(--text);margin-bottom:10px;font-size:13px;line-height:1.6}.csr-warning-text strong{color:var(--text-primary)}.csr-warning-details{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.csr-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.csr-badge-high{color:#f87171;background:#ef444426;border:1px solid #ef44444d}.csr-badge-medium{color:#fbbf24;background:#fbbf2426;border:1px solid #fbbf244d}.csr-signals{font-family:var(--mono);color:var(--text-secondary);font-size:11px}.csr-warning-help{color:var(--text-secondary);border-radius:var(--radius-xs);background:#0003;padding:10px 12px;font-size:12px;line-height:1.6}.csr-warning-help strong{color:var(--text-accent)}.tool-hints{flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;animation:.2s hintsFadeIn;display:flex}@keyframes hintsFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tool-hints-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;margin-right:4px;font-size:11px;font-weight:600}.tool-hints-label.has-selection{color:var(--text-accent)}.tool-hint-chip{border:1px dashed var(--border);color:var(--text-secondary);font-size:12px;font-family:var(--sans);cursor:pointer;transition:all var(--transition);white-space:nowrap;opacity:.7;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;display:inline-flex}.tool-hint-chip:hover{border-color:var(--border-accent);color:var(--text-accent);background:#2563eb14}.tool-hint-chip.selected{border-color:var(--border-accent);color:var(--text-accent);opacity:1;background:#2563eb26;border-style:solid;font-weight:500}.tool-hint-icon{font-size:13px;line-height:1}.tool-hint-label{line-height:1}@media (width<=768px){.sidebar{display:none}.message{padding:0 16px}.input-area{padding:12px 16px 16px}}
