:root{--ground: #101013;--panel: #16161b;--raised: #1d1d24;--line: rgba(255,255,255,.08);--line-strong: rgba(255,255,255,.14);--ink: #ece9e2;--muted: #8f8a7f;--faint: #605c54;--accent: #c0a062;--good: #7aa46f;--warn: #d2a24c;--bad: #c46f66;--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--brand-primary: var(--accent);--brand-bg: var(--ground);--brand-ink: var(--ink)}:root[data-theme=light]{--ground: #f7f5f0;--panel: #fff;--raised: #f0ede6;--line: rgba(0,0,0,.09);--line-strong: rgba(0,0,0,.16);--ink: #23211c;--muted: #6b665c;--faint: #a49e92}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ground);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--brand-primary)}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.btn{border:1px solid var(--line-strong);background:var(--raised);color:var(--ink);border-radius:9px;padding:8px 14px;font-size:13px}.btn:hover{border-color:var(--brand-primary)}.btn.primary{background:var(--brand-primary);color:#12100a;border-color:transparent;font-weight:600}.btn.ghost{background:transparent}.center{min-height:100%;display:grid;place-items:center;padding:24px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;max-width:440px;width:100%}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border-radius:4px;font-weight:600;white-space:nowrap}.tag.rob{color:#a9d69f;background:#7aa46f29}.tag.spo{color:#e6c583;background:#d2a24c26}.tag.myt{color:#e39a92;background:#c46f6629}.spinner{width:22px;height:22px;border:2px solid var(--line-strong);border-top-color:var(--brand-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation:none}}.app{height:100%;display:flex;flex-direction:column}.picker{max-width:900px;margin:0 auto;padding:40px 20px}.picker h1{font-family:var(--serif);font-weight:600;font-size:24px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:20px}.project-tile{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--panel);cursor:pointer;text-align:left}.project-tile:hover{border-color:var(--brand-primary)}.project-tile .pt-logo{height:34px;margin-bottom:10px;object-fit:contain}.project-tile .pt-name{font-family:var(--serif);font-size:18px;font-weight:600}.project-tile .pt-tone{font-size:12.5px;color:var(--muted);margin-top:4px}.workspace{height:100%;display:grid;grid-template-columns:244px 1fr;background:var(--brand-bg)}.ws-rail{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--panel);min-height:0}.ws-main{display:flex;flex-direction:column;min-height:0;min-width:0}.ws-brand{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 14px 14px;border-bottom:1px solid var(--line);text-align:center}.ws-brand img.logo{max-width:130px;max-height:40px;object-fit:contain}.ws-brand .wm{display:flex;flex-direction:column;align-items:flex-end}.ws-brand .name{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--brand-primary)}.ws-brand .by{height:15px;opacity:.7;margin-top:3px}.rail-scroll{flex:1;overflow-y:auto;min-height:0}.rail-head{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);padding:14px 14px 6px}.thread{display:flex;gap:9px;padding:9px 14px;cursor:pointer;border-left:2px solid transparent;align-items:flex-start;width:100%;text-align:left;background:none;border-top:0;border-right:0;border-bottom:0;color:var(--ink)}.thread:hover{background:#ffffff08}.thread.active{background:color-mix(in srgb,var(--brand-primary) 8%,transparent);border-left-color:var(--brand-primary)}.thread .st{margin-top:5px;width:7px;height:7px;border-radius:50%;flex:none}.st.live{background:var(--good);box-shadow:0 0 6px #7aa46fb3}.st.sleep{background:var(--faint)}.thread .tt{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread .meta{font-size:10.5px;color:var(--faint)}.rail-foot{border-top:1px solid var(--line);padding:10px 14px;display:flex;gap:8px;align-items:center}.newchat{margin:8px 14px}.chat-top{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--brand-bg);z-index:3}.chat-top .title{font-weight:600;font-size:13.5px}.chat-top .back{display:none}.msgs{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;min-height:0}.msg{display:flex;gap:12px;max-width:760px}.msg .who{width:26px;height:26px;border-radius:7px;flex:none;display:grid;place-items:center;font-size:12px;font-weight:700}.msg.user .who{background:var(--raised);color:var(--muted)}.msg.assistant .who{background:color-mix(in srgb,var(--brand-primary) 16%,transparent);color:var(--brand-primary);border:1px solid var(--line);font-family:var(--serif)}.bubble{font-size:13.5px;white-space:pre-wrap;word-break:break-word}.bubble .know{margin-top:12px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:color-mix(in srgb,var(--brand-primary) 5%,transparent)}.bubble .know .kh{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-primary);margin-bottom:6px}.msg.assistant .bubble{white-space:normal}.md-h{font-weight:700;color:var(--ink);line-height:1.3;text-wrap:balance}.md-h1{font-family:var(--serif);font-size:19px;margin:16px 0 8px}.md-h2{font-size:16px;margin:15px 0 7px}.md-h3{font-size:14px;margin:13px 0 6px;color:var(--brand-primary)}.md-h4{font-size:13px;margin:11px 0 5px}.md-h:first-child{margin-top:0}.md-p{margin:0 0 9px;white-space:pre-wrap}.md-p:last-child{margin-bottom:0}.md-ul,.md-ol{margin:4px 0 10px}.md-ol{padding-left:22px}.md-ol li,.md-ul li{margin:3px 0}.md-ul{list-style:none;padding-left:4px}.md-ul li{position:relative;padding-left:16px}.md-ul li:before{content:"•";position:absolute;left:2px;color:var(--brand-primary)}.md-code{font-family:var(--mono);font-size:12px;background:var(--raised);padding:1px 5px;border-radius:4px;color:var(--brand-primary)}.md-quote{border-left:3px solid var(--line-strong);padding:2px 0 2px 12px;margin:8px 0;color:var(--muted)}.md-hr{border:0;border-top:1px solid var(--line);margin:12px 0}.md-cite{font-family:var(--mono);font-size:11.5px;color:var(--brand-primary);background:color-mix(in srgb,var(--brand-primary) 9%,transparent);padding:1px 6px;border-radius:4px}.know-body .md-p{margin-bottom:4px;font-size:12.5px}.bubble.thinking{display:flex;align-items:center;gap:4px}.bubble.thinking .dot{width:6px;height:6px;border-radius:50%;background:var(--brand-primary);opacity:.4;animation:think 1.2s infinite}.bubble.thinking .dot:nth-child(2){animation-delay:.2s}.bubble.thinking .dot:nth-child(3){animation-delay:.4s}@keyframes think{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion: reduce){.bubble.thinking .dot{animation:none}}.debug-panel{display:flex;flex-wrap:wrap;gap:14px;padding:8px 18px;background:var(--raised);border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;color:var(--muted)}.debug-panel b{color:var(--ink)}.debug-panel b.ok{color:var(--good)}.btn.tb{padding:3px 8px;font-size:12px;border-color:transparent;background:transparent}.btn.tb:hover{background:#ffffff0f;border-color:var(--line)}.bubble{position:relative}.msg-actions{position:absolute;top:-8px;right:-6px;display:flex;gap:4px;opacity:0;transition:opacity .12s}.msg:hover .msg-actions{opacity:1}.msg-actions button{width:24px;height:24px;border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:12px}.msg-actions button:hover{color:var(--brand-primary);border-color:var(--brand-primary)}.modal.lib{width:620px}.lib-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.lib-body{padding:10px 12px;margin:2px 0 8px;border:1px solid var(--line);border-radius:8px;background:var(--raised);font-size:12.5px;max-height:300px;overflow-y:auto}.fld{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;font-size:12.5px}.fld input,.fld select,.fld textarea{background:var(--raised);border:1px solid var(--line-strong);border-radius:8px;color:var(--ink);padding:8px 10px;font:inherit;font-size:13px}.fld textarea{resize:vertical;font-family:var(--mono);font-size:12px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--raised);color:var(--ink);border:1px solid var(--line-strong);padding:10px 18px;border-radius:10px;font-size:13px;z-index:50;box-shadow:0 12px 30px -12px #000000b3}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;z-index:40;padding:20px}.modal{background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;padding:20px;width:480px;max-width:100%;max-height:80vh;overflow-y:auto}.share-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.composer{display:flex;gap:10px;align-items:flex-end;padding:12px 18px;border-top:1px solid var(--line);position:sticky;bottom:0;background:var(--brand-bg)}.composer textarea{flex:1;resize:none;background:var(--raised);border:1px solid var(--line-strong);border-radius:12px;color:var(--ink);padding:11px 13px;font:inherit;font-size:13.5px;max-height:160px}.composer .send{width:40px;height:40px;border-radius:10px;background:var(--brand-primary);color:#12100a;border:0;font-weight:700;flex:none}.composer .clip{width:40px;height:40px;border-radius:10px;background:var(--raised);border:1px solid var(--line-strong);color:var(--muted);font-size:16px;flex:none}.composer .clip:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.attached{display:flex;flex-wrap:wrap;gap:6px;padding:8px 18px 0}.attached .chip{display:inline-flex;align-items:center;gap:6px;background:var(--raised);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:12px}.attached .chip button{border:0;background:none;color:var(--muted);font-size:11px;padding:0}@media (max-width: 820px){.workspace{grid-template-columns:1fr}.ws-rail{display:none}.workspace.show-rail .ws-rail{display:flex;position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;width:100%}.chat-top .back{display:inline-flex}.msgs{padding:14px 10px}.composer{padding:10px}}
