:root{--bg: #0b0f17;--bg-elev: #111725;--bg-soft: #161e2e;--line: #212b3d;--text: #e6ecf5;--text-dim: #94a3b8;--text-faint: #64748b;--accent: #4f8cff;--accent-soft: #1b2a45;--good: #3ecf8e;--warn: #f5a524;--bad: #f87171;--radius: 12px;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{height:100%}body{overflow:hidden;margin:0;background:var(--bg);color:var(--text);font:15px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app{display:grid;grid-template-columns:300px 1fr;height:100vh;height:100dvh;overflow:hidden}.sidebar,.main{min-height:0}.sidebar{background:var(--bg-elev);border-right:1px solid var(--line);padding:18px 16px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.brand{display:flex;align-items:center;gap:11px;flex:none}.brand-mark{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#7c5cff);color:#fff;font-size:17px}.brand-name{font-weight:640;letter-spacing:-.01em}.brand-sub{font-size:12px;color:var(--text-faint);font-family:var(--mono)}.panel{border-top:1px solid var(--line);padding-top:14px;flex:none}.panel.grow{flex:1 1 0;min-height:90px;display:flex;flex-direction:column}.panel-title{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin-bottom:9px;display:flex;align-items:center;justify-content:space-between}.ghost-btn{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:14px;padding:0 2px;border-radius:5px}.ghost-btn:hover{color:var(--text)}.mono{font-family:var(--mono);font-size:11.5px}.link{color:var(--accent);text-decoration:none;word-break:break-all}.link:hover{text-decoration:underline}.facts{margin:10px 0 0;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:12.5px}.facts dt{color:var(--text-faint)}.facts dd{margin:0;text-align:right;font-family:var(--mono);font-size:12px}.chips{display:flex;flex-direction:column;gap:6px}.chip{text-align:left;background:var(--bg-soft);border:1px solid var(--line);color:var(--text-dim);border-radius:9px;padding:7px 10px;font-size:12.5px;cursor:pointer;line-height:1.4;transition:border-color .12s,color .12s}.chip:hover{border-color:var(--accent);color:var(--text)}.files{display:flex;flex-direction:column;gap:6px;overflow-y:auto;min-height:0;flex:1 1 auto}.file-item{display:flex;align-items:center;gap:8px;background:var(--bg-soft);border:1px solid var(--line);border-radius:9px;padding:8px 10px;text-decoration:none;color:var(--text-dim);font-size:12px}.file-item:hover{border-color:var(--accent);color:var(--text)}.file-item .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:11px}.file-item .size{color:var(--text-faint);font-size:11px}.status{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-faint);padding-top:6px;border-top:1px solid var(--line);flex:none}.status .dot{width:7px;height:7px;border-radius:50%;background:var(--warn);flex:none}.status.ok .dot{background:var(--good)}.status.bad .dot{background:var(--bad)}.muted{color:var(--text-faint);font-size:12.5px;margin:0}.main{display:flex;flex-direction:column;min-width:0}.thread{flex:1 1 0;min-height:0;overflow-y:auto;padding:28px 0;scroll-behavior:smooth}.msg{max-width:780px;margin:0 auto 22px;padding:0 28px;display:flex;gap:13px}.msg .avatar{width:27px;height:27px;border-radius:7px;flex:none;display:grid;place-items:center;font-size:12px;font-weight:600}.msg.user .avatar{background:var(--bg-soft);color:var(--text-dim);border:1px solid var(--line)}.msg.bot .avatar{background:linear-gradient(135deg,var(--accent),#7c5cff);color:#fff}.msg .body{min-width:0;flex:1;padding-top:2px}.msg.user .body{color:var(--text)}.welcome{max-width:780px;margin:8vh auto 0;padding:0 28px}.welcome h1{font-size:25px;letter-spacing:-.02em;margin:0 0 8px}.welcome p{color:var(--text-dim);margin:0 0 22px;max-width:56ch}.welcome .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:9px}.body p{margin:0 0 10px}.body p:last-child{margin-bottom:0}.body ul,.body ol{margin:0 0 10px;padding-left:20px}.body li{margin-bottom:3px}.body code{font-family:var(--mono);font-size:12.5px;background:var(--bg-soft);border:1px solid var(--line);padding:1px 5px;border-radius:5px}.body pre{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:12px;overflow-x:auto;margin:0 0 10px}.body pre code{background:none;border:none;padding:0}.body strong{color:#fff;font-weight:620}.body h1,.body h2,.body h3{font-size:15px;margin:16px 0 8px;letter-spacing:-.01em}.table-wrap{overflow-x:auto;margin:0 0 12px;border:1px solid var(--line);border-radius:var(--radius)}.body table{border-collapse:collapse;width:100%;font-size:13px}.body th,.body td{padding:7px 11px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.body th{background:var(--bg-soft);font-weight:600;color:var(--text-dim);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}.body tr:last-child td{border-bottom:none}.body td:not(:first-child){font-family:var(--mono);font-size:12.5px}.trace{display:flex;flex-direction:column;gap:5px;margin-bottom:11px}.trace-item{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-faint);background:var(--bg-soft);border:1px solid var(--line);border-radius:8px;padding:6px 10px;width:fit-content;max-width:100%}.trace-item .spinner{width:11px;height:11px;border-radius:50%;flex:none;border:1.7px solid var(--line);border-top-color:var(--accent);animation:spin .7s linear infinite}.trace-item.done .spinner{border:none;background:none}.trace-item.done:before{content:"\2713";color:var(--good);font-size:12px}.trace-item.done .spinner{display:none}.trace-item.failed:before{content:"\2715";color:var(--bad);font-size:12px}.trace-item.failed .spinner{display:none}@keyframes spin{to{transform:rotate(360deg)}}.attachment{display:inline-flex;align-items:center;gap:10px;background:var(--accent-soft);border:1px solid #2c4a7d;border-radius:var(--radius);padding:10px 13px;margin-top:11px;text-decoration:none;color:var(--text);transition:border-color .12s}.attachment:hover{border-color:var(--accent)}.attachment .xls{width:26px;height:26px;border-radius:6px;background:#1d6f42;color:#fff;display:grid;place-items:center;font-size:10px;font-weight:700;flex:none}.attachment .meta{display:flex;flex-direction:column;min-width:0}.attachment .fname{font-size:12.5px;font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46ch}.attachment .fsize{font-size:11px;color:var(--text-faint)}.error-box{border:1px solid #5a2b2b;background:#2a1616;color:#fecaca;border-radius:var(--radius);padding:10px 13px;font-size:13px}.composer{flex:none;max-width:780px;width:100%;margin:0 auto;padding:0 28px;display:flex;gap:9px;align-items:flex-end}.composer textarea{flex:1;resize:none;max-height:190px;background:var(--bg-elev);border:1px solid var(--line);color:var(--text);border-radius:var(--radius);padding:12px 14px;font:inherit;line-height:1.5;outline:none}.composer textarea:focus{border-color:var(--accent)}.composer button{width:41px;height:41px;flex:none;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;display:grid;place-items:center;transition:opacity .12s}.composer button:disabled{opacity:.4;cursor:not-allowed}.disclaimer{flex:none;max-width:780px;margin:9px auto 16px;padding:0 28px;font-size:11.5px;color:var(--text-faint)}@media(max-width:860px){.app{grid-template-columns:1fr}.sidebar{display:none}.msg,.composer,.disclaimer,.welcome{padding-left:16px;padding-right:16px}}.notice{flex:none;border:1px solid #4a3a12;background:#241d0d;color:#fcd9a0;border-radius:9px;padding:9px 11px;font-size:11.5px;line-height:1.5}.notice strong{color:#fde68a;display:block;margin-bottom:3px}.notice code{font-family:var(--mono);font-size:10.5px;background:#3a2f14;padding:1px 4px;border-radius:4px}.trace-item .elapsed{color:var(--text-faint);font-family:var(--mono);font-size:11px;margin-left:2px}.trace-item.done .elapsed,.trace-item.failed .elapsed{display:none}.retry-btn{display:block;margin-top:9px;background:#3d1f1f;border:1px solid #6b3535;color:#fecaca;border-radius:7px;padding:5px 12px;font:inherit;font-size:12.5px;cursor:pointer}.retry-btn:hover{border-color:#a35252;color:#fff}.composer button.stopping{background:var(--bad)}.new-chat{flex:none;display:flex;align-items:center;justify-content:center;gap:7px;background:var(--bg-soft);border:1px solid var(--line);color:var(--text);border-radius:9px;padding:9px 12px;font:inherit;font-size:13px;cursor:pointer;transition:border-color .12s,background .12s}.new-chat:hover{border-color:var(--accent);background:var(--accent-soft)}.chats-panel{flex:2 1 0}.files-panel{flex:1 1 0}.chat-list{display:flex;flex-direction:column;gap:3px;overflow-y:auto;min-height:0;flex:1 1 auto}.chat-row{display:flex;align-items:center;gap:6px;border-radius:8px;padding:7px 9px;cursor:pointer;color:var(--text-dim);font-size:12.5px;border:1px solid transparent}.chat-row:hover{background:var(--bg-soft);color:var(--text)}.chat-row.active{background:var(--accent-soft);border-color:#2c4a7d;color:var(--text)}.chat-row .t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-row .when{font-size:10.5px;color:var(--text-faint);flex:none}.chat-row .del{flex:none;background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:14px;line-height:1;padding:0 2px;border-radius:4px;opacity:0;transition:opacity .12s}.chat-row:hover .del{opacity:1}.chat-row .del:hover{color:var(--bad)}.chat-row:hover .when{display:none}
