:root{--bg: #0d0f12;--bg-elev: #14171c;--bg-elev2: #1a1e25;--bg-hover: #21262f;--border: #262c36;--border-soft: #1e242d;--text: #e6e9ee;--text-dim: #9aa3b0;--text-faint: #6b7482;--accent: #6d8bff;--accent-soft: rgba(109, 139, 255, .14);--green: #4ade80;--green-soft: rgba(74, 222, 128, .12);--red: #f87171;--red-soft: rgba(248, 113, 113, .12);--amber: #fbbf24;--amber-soft: rgba(251, 191, 36, .12);--radius: 12px;--radius-sm: 8px;--mono: "SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#2c333e;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#3a4350}::-webkit-scrollbar-track{background:transparent}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit;padding:0}input,textarea,select{font-family:inherit;font-size:inherit;color:var(--text);background:var(--bg-elev2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;outline:none;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{resize:vertical}.app{display:flex;height:100%;overflow:hidden}.main{flex:1;display:flex;flex-direction:column;min-width:0}.sidebar{width:272px;flex-shrink:0;background:var(--bg-elev);border-right:1px solid var(--border-soft);display:flex;flex-direction:column}.sidebar-header{padding:16px 14px 10px;display:flex;align-items:center;gap:10px}.brand{font-weight:700;font-size:15px;letter-spacing:.2px}.brand-dot{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#a78bfa);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff}.new-chat-btn{margin:6px 12px 10px;padding:9px 12px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);font-weight:600;display:flex;align-items:center;gap:8px;transition:background .15s}.new-chat-btn:hover{background:#6d8bff38}.chat-list{flex:1;overflow-y:auto;padding:0 8px}.chat-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-dim);text-align:left;margin-bottom:2px;transition:background .12s,color .12s}.chat-item:hover{background:var(--bg-hover);color:var(--text)}.chat-item.active{background:var(--bg-elev2);color:var(--text)}.chat-item .title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer{border-top:1px solid var(--border-soft);padding:10px 12px;display:flex;flex-direction:column;gap:4px}.nav-btn{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-dim);font-weight:500;transition:background .12s,color .12s}.nav-btn:hover{background:var(--bg-hover);color:var(--text)}.nav-btn.active{color:var(--accent);background:var(--accent-soft)}.topbar{min-height:56px;flex-shrink:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 20px;border-bottom:1px solid var(--border-soft);background:#0d0f12cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar .chat-title{flex:1 1 100px;min-width:60px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .pill,.topbar .select-inline,.topbar .btn{flex-shrink:0}.spacer{flex:1}.workspace-panel{width:320px;max-width:100%;flex-shrink:0;border-left:1px solid var(--border-soft);background:var(--bg-elev);display:flex;flex-direction:column}.workspace-panel-header{padding:14px 16px;display:flex;align-items:center;border-bottom:1px solid var(--border-soft)}@media (max-width: 760px){.workspace-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;width:100%;border-left:none}}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:12.5px;font-weight:600;background:var(--bg-elev2);border:1px solid var(--border);color:var(--text-dim)}.pill.accent{color:var(--accent);border-color:#6d8bff59;background:var(--accent-soft)}.pill.green{color:var(--green);border-color:#4ade804d;background:var(--green-soft)}.pill.red{color:var(--red);border-color:#f871714d;background:var(--red-soft)}.pill.amber{color:var(--amber);border-color:#fbbf244d;background:var(--amber-soft)}.chat-scroll{flex:1;overflow-y:auto;scroll-behavior:smooth}.chat-inner{max-width:820px;margin:0 auto;padding:24px 20px 12px;display:flex;flex-direction:column;gap:18px}.msg{display:flex;gap:12px}.msg .avatar{width:30px;height:30px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;margin-top:2px}.msg.user .avatar{background:var(--bg-elev2);color:var(--text-dim)}.msg.assistant .avatar{background:linear-gradient(135deg,var(--accent),#a78bfa);color:#fff}.msg .body{flex:1;min-width:0}.msg .who{font-size:12px;font-weight:700;color:var(--text-faint);margin-bottom:3px;text-transform:uppercase;letter-spacing:.5px}.msg .content{overflow-wrap:break-word}.msg.user .content{background:var(--bg-elev2);border:1px solid var(--border-soft);border-radius:var(--radius);padding:10px 14px;display:inline-block;max-width:100%}.md p{margin:0 0 10px}.md p:last-child{margin-bottom:0}.md pre{background:#0a0c0f;border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:12px 14px;overflow-x:auto;font-family:var(--mono);font-size:13px}.md code{font-family:var(--mono);font-size:.92em;background:#ffffff12;padding:1.5px 5px;border-radius:5px}.md pre code{background:none;padding:0}.md table{border-collapse:collapse;margin:8px 0;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);padding:6px 11px;text-align:left}.md th{background:var(--bg-elev2)}.md a{color:var(--accent)}.md ul,.md ol{margin:6px 0;padding-left:22px}.md blockquote{border-left:3px solid var(--border);margin:8px 0;padding:2px 14px;color:var(--text-dim)}.md h1,.md h2,.md h3,.md h4{margin:14px 0 8px;line-height:1.3}.md h1{font-size:1.35em}.md h2{font-size:1.2em}.md h3{font-size:1.08em}.run-block{margin-top:10px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--bg-elev);overflow:hidden}.run-header{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:9px 14px;font-size:13px;font-weight:600;color:var(--text-dim);transition:background .12s;text-align:left}.run-header:hover{background:var(--bg-hover)}.run-header .chev{transition:transform .15s;color:var(--text-faint);font-size:11px;flex-shrink:0}.run-header .chev.open{transform:rotate(90deg)}.run-header>span:not(.chev){flex-shrink:0}.run-meta{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--text-faint);font-weight:500}.timeline{border-top:1px solid var(--border-soft);padding:6px 0}.step{display:flex;gap:12px;padding:7px 16px;position:relative}.step .rail{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:14px}.step .dot{width:9px;height:9px;border-radius:50%;margin-top:5px;flex-shrink:0;background:var(--text-faint)}.step.tool-call .dot{background:var(--accent)}.step.tool-result .dot{background:var(--green)}.step.error .dot{background:var(--red)}.step.info .dot{background:var(--amber)}.step .line{flex:1;width:2px;background:var(--border-soft);margin-top:3px}.step:last-child .line{display:none}.step .step-body{flex:1;min-width:0;padding-bottom:5px}.step .step-title{display:flex;align-items:baseline;gap:8px;font-size:13px;font-weight:600}.step .step-time{font-size:11.5px;color:var(--text-faint);font-weight:400;font-family:var(--mono)}.step .tool-name{font-family:var(--mono);color:var(--accent);font-size:12.5px}.step.tool-result .tool-name{color:var(--green)}.step.error .step-title{color:var(--red)}.step-detail{margin-top:5px;background:#0a0c0f;border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:8px 11px;font-family:var(--mono);font-size:12px;color:var(--text-dim);white-space:pre-wrap;word-break:break-word;max-height:240px;overflow-y:auto}.step-toggle{font-size:12px;color:var(--text-faint);margin-top:3px;font-weight:500}.step-toggle:hover{color:var(--accent)}.run-stats{display:flex;gap:14px;padding:8px 16px 10px;border-top:1px solid var(--border-soft);font-size:12px;color:var(--text-faint);flex-wrap:wrap}.run-stats b{color:var(--text-dim);font-weight:600}.live-activity{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--bg-elev);color:var(--text-dim);font-size:13.5px}.pulse{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:pulse 1.4s ease-in-out infinite;flex-shrink:0}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.composer-wrap{flex-shrink:0;padding:12px 20px 18px}.composer{max-width:820px;margin:0 auto;display:flex;align-items:flex-end;gap:10px;background:var(--bg-elev2);border:1px solid var(--border);border-radius:16px;padding:10px 12px;transition:border-color .15s}.composer:focus-within{border-color:var(--accent)}.composer textarea{flex:1;background:none;border:none;padding:4px;max-height:200px;min-height:24px;line-height:1.5}.send-btn{width:36px;height:36px;border-radius:10px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;transition:opacity .15s}.send-btn:disabled{opacity:.35;cursor:default}.composer-hint{max-width:820px;margin:6px auto 0;font-size:11.5px;color:var(--text-faint);text-align:center}.view-scroll{flex:1;overflow-y:auto}.view-inner{max-width:860px;margin:0 auto;padding:28px 24px 60px}.view-inner h1{font-size:20px;margin:0 0 4px}.view-sub{color:var(--text-dim);margin-bottom:22px;font-size:13.5px}.card{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px}.card h3{margin:0 0 10px;font-size:15px}.row{display:flex;gap:12px;align-items:center}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:12.5px;font-weight:600;color:var(--text-dim)}.field .hint{font-size:11.5px;color:var(--text-faint)}.check{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.check input{accent-color:var(--accent);width:15px;height:15px}.btn{padding:9px 16px;border-radius:var(--radius-sm);font-weight:600;background:var(--bg-elev2);border:1px solid var(--border);color:var(--text);transition:background .15s,border-color .15s}.btn:hover{background:var(--bg-hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.1)}.btn.danger{color:var(--red);border-color:#f8717159}.btn.danger:hover{background:var(--red-soft)}.btn.sm{padding:5px 11px;font-size:12.5px}.btn:disabled{opacity:.4;cursor:default}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border-soft);font-size:13.5px}.table th{color:var(--text-faint);font-size:12px;text-transform:uppercase;letter-spacing:.4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#05060899;display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{width:100%;max-width:380px;background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius);padding:20px;box-shadow:0 16px 48px #0006}.modal-card h3{margin:0 0 8px;font-size:16px}.modal-card p{margin:0;color:var(--text-dim);font-size:13.5px}.error-banner{background:var(--red-soft);border:1px solid rgba(248,113,113,.35);color:var(--red);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:14px;font-size:13.5px;white-space:pre-wrap;word-break:break-word}.ok-banner{background:var(--green-soft);border:1px solid rgba(74,222,128,.35);color:var(--green);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:14px;font-size:13.5px}.auth-wrap{height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 60% 45% at 50% 0%,rgba(109,139,255,.09),transparent),var(--bg)}.auth-card{width:380px;background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:18px;padding:30px 28px}.auth-card h1{font-size:19px;margin:14px 0 2px;text-align:center}.auth-card .sub{text-align:center;color:var(--text-dim);font-size:13px;margin-bottom:22px}.auth-logo{width:46px;height:46px;border-radius:14px;margin:0 auto;background:linear-gradient(135deg,var(--accent),#a78bfa);display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:800;color:#fff}.auth-switch{text-align:center;margin-top:16px;font-size:13px;color:var(--text-dim)}.auth-switch button{color:var(--accent);font-weight:600}.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-faint)}.empty .big{font-size:34px}.empty h2{color:var(--text-dim);font-size:17px;margin:0}.combobox{position:relative;width:100%}.combobox input{width:100%}.combobox-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--bg-elev2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px #00000059;max-height:220px;overflow-y:auto;padding:4px}.combobox-option{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:6px;font-size:13.5px;color:var(--text);font-family:var(--mono)}.combobox-option:hover{background:var(--bg-hover)}.select-inline{background:var(--bg-elev2);border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600;color:var(--text-dim);max-width:260px}
