:root{--bg: #0f1115;--panel: #161922;--panel-2: #1c2029;--border: #272c38;--text: #e6e8ee;--muted: #949aab;--accent: #6c8cff;--danger: #ff6b6b;--ok: #4ade80;--warn: #fbbf24;--radius: 8px;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.55 system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit;cursor:pointer;border:1px solid transparent;border-radius:6px;padding:.45rem .9rem;background:var(--accent);color:#fff}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:var(--panel-2);color:var(--text);border-color:var(--border)}input,textarea,select{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}.app{display:grid;grid-template-columns:240px 1fr;height:100%}.sidebar{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.brand{font-weight:650;letter-spacing:.02em;padding:1rem 1rem .75rem}.new-project{display:flex;gap:.4rem;padding:0 .75rem .75rem}.new-project input{min-width:0;flex:1}.new-project button{padding:.45rem .6rem}.project-list{list-style:none;margin:0;padding:0 .5rem;overflow-y:auto;flex:1}.project-list button{display:flex;align-items:center;gap:.5rem;width:100%;background:none;color:var(--text);text-align:left;padding:.5rem .6rem;border-radius:6px}.project-list button:hover{background:var(--panel-2)}.project-list button.selected{background:var(--panel-2);border-color:var(--border)}.project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hint{color:var(--muted);padding:.5rem .6rem}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.status-dot.running{background:var(--ok)}.status-dot.creating{background:var(--warn)}.status-dot.failed{background:var(--danger)}.busy-pip{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.workspace{display:flex;flex-direction:column;min-width:0;min-height:0}.workspace-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.workspace-header h1{font-size:.95rem;font-weight:600;margin:0}.status-badge{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.1rem .55rem}.status-badge.running{color:var(--ok)}.status-badge.failed{color:var(--danger)}.banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1rem;border-bottom:1px solid var(--border)}.banner.error{background:#ff6b6b1f;color:var(--danger)}.banner.warn{background:#fbbf241f;color:var(--warn)}.banner button{background:none;color:inherit;padding:0 .4rem;font-size:1.1rem}.panes{display:grid;grid-template-columns:minmax(360px,2fr) 3fr;flex:1;min-height:0}.chat{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid var(--border)}.chat-scroll{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.85rem}.empty{color:var(--muted);margin:auto;max-width:28rem;text-align:center}.empty h2{font-size:1rem;color:var(--text);margin-bottom:.4rem}.message{display:flex;flex-direction:column;gap:.5rem}.message.user{align-items:flex-end}.bubble{background:var(--accent);color:#fff;padding:.5rem .8rem;border-radius:12px 12px 2px;max-width:85%;white-space:pre-wrap;overflow-wrap:anywhere}.prose{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.cursor{display:inline-block;width:7px;height:1.05em;background:var(--accent);vertical-align:text-bottom;animation:pulse 1s steps(2) infinite}.thinking{color:var(--muted);font-size:.85rem}.thinking summary{cursor:pointer}.thinking pre{white-space:pre-wrap;margin:.4rem 0 0}.tool{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem .6rem}.tool.tool-error{border-color:var(--danger)}.tool summary{display:flex;align-items:center;gap:.5rem;cursor:pointer;list-style:none}.tool summary::-webkit-details-marker{display:none}.tool code{font-family:var(--mono);font-size:.82rem;color:var(--accent);flex:none}.tool-summary{color:var(--muted);font-family:var(--mono);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.tool-dot{width:7px;height:7px;border-radius:50%;background:var(--muted);flex:none}.tool-dot.running{background:var(--accent);animation:pulse 1s ease-in-out infinite}.tool pre{font-family:var(--mono);font-size:.78rem;background:var(--bg);border-radius:6px;padding:.5rem;margin:.45rem 0 0;max-height:18rem;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.tool-output{color:var(--muted)}.composer{border-top:1px solid var(--border);padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.composer textarea{resize:vertical;width:100%}.composer-actions{display:flex;justify-content:flex-end}.preview{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--panel)}.preview-bar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.55rem .75rem;border-bottom:1px solid var(--border);min-height:3rem}.preview-url{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:6rem}.preview-url:hover{color:var(--accent)}.backends{display:flex;gap:.4rem}.backends a{font-size:.74rem;color:var(--muted);text-decoration:none;border:1px solid var(--border);border-radius:999px;padding:.1rem .55rem}.backends a:hover{color:var(--accent);border-color:var(--accent)}.preview-body{flex:1;min-height:0;background:#fff}.preview-body iframe{width:100%;height:100%;border:0;display:block}.placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;color:var(--muted);background:var(--bg);padding:2rem;text-align:center}.placeholder.error{color:var(--danger)}.placeholder p{margin:0;max-width:32rem}.splash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem}.splash .brand{padding:0;font-size:1.1rem}.splash-pip{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.auth{height:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-card{width:100%;max-width:22rem;display:flex;flex-direction:column;gap:.85rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.auth-head{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.15rem}.auth-head .brand{padding:0;font-size:1.15rem}.auth-tagline{color:var(--muted);margin:0}.auth-error{background:#ff6b6b1f;color:var(--danger);border-radius:6px;padding:.5rem .7rem}.form-row{display:flex;flex-direction:column;gap:.3rem}.form-row label{color:var(--muted);font-size:.8rem}.form-row input{width:100%}.form-row input[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.78rem}.auth-submit{margin-top:.25rem;padding:.55rem .9rem}.auth-switch{color:var(--muted);font-size:.85rem;margin:0;text-align:center}button.link{background:none;border-color:transparent;color:var(--accent);padding:0;font:inherit}button.link:hover:not(:disabled){text-decoration:underline}.account{display:flex;align-items:center;gap:.5rem;border-top:1px solid var(--border);padding:.65rem .75rem}.account-who{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.3}.account-email,.account-org{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-email{font-size:.8rem}.account-org{color:var(--muted);font-size:.72rem}.account-signout{padding:.25rem .5rem;font-size:.75rem;flex:none}@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{display:none}.panes{grid-template-columns:1fr;grid-template-rows:1fr 1fr}}
