:root{color-scheme:dark light;--bg: #0e1014;--bg-2: #161a22;--bg-3: #1d2230;--fg: #e8eaee;--fg-dim: #9aa3b2;--border: #2a3142;--accent: #6ea8fe;--accent-2: #4d8df6;--user-bg: #1f2a44;--asst-bg: #16202c;--tool-bg: #20231a;--error: #ff7373;--warn: #f0b657;--ok: #7be38a;--code-bg: #0a0d12;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);font-size:14px;line-height:1.5;overflow:hidden}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}input,textarea,select{background:var(--bg-3);border:1px solid var(--border);border-radius:6px;padding:6px 9px}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}button{background:var(--bg-3);border:1px solid var(--border);border-radius:6px;padding:5px 11px;cursor:pointer;transition:border-color 80ms}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent-2);border-color:var(--accent-2);color:#fff}button.primary:hover:not(:disabled){background:var(--accent)}button.danger{background:transparent;color:var(--error);border-color:var(--error)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--font-mono)}.app{display:grid;grid-template-columns:280px 1fr;grid-template-rows:100vh;width:100vw}.sidebar{background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar header{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.sidebar header h1{margin:0;font-size:15px;font-weight:600;letter-spacing:.02em}.sidebar nav{display:flex;gap:4px;padding:8px 10px;border-bottom:1px solid var(--border);flex-wrap:wrap}.sidebar nav button{padding:4px 9px;font-size:12px;border-radius:999px}.sidebar nav button.active{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.sidebar .panel{flex:1;overflow:hidden;display:flex;flex-direction:column}.sidebar .panel header.sub{padding:8px 12px;display:flex;gap:6px;align-items:center;border-bottom:1px solid var(--border)}.sidebar .panel .scroll{flex:1;overflow:auto}.sidebar .footer{padding:8px 12px;border-top:1px solid var(--border);font-size:11px;color:var(--fg-dim);display:flex;flex-direction:column;gap:4px}.main{display:flex;flex-direction:column;overflow:hidden}.toolbar{padding:10px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--bg-2)}.toolbar .spacer{flex:1}.title-input{background:transparent;border:1px solid transparent;font-size:14px;font-weight:600;padding:4px 6px;flex:1;min-width:100px}.title-input:hover{border-color:var(--border)}.title-input:focus{border-color:var(--accent);background:var(--bg-3)}.messages{flex:1;overflow:auto;padding:16px 0;background:var(--bg);position:relative}.message{max-width:920px;margin:0 auto 14px;padding:0 16px;contain:layout style}.message .bubble{border-radius:10px;padding:12px 16px;border:1px solid var(--border);content-visibility:auto;contain-intrinsic-size:1px 200px}.message.user .bubble{background:var(--user-bg)}.message.assistant .bubble{background:var(--asst-bg)}.message.tool .bubble{background:var(--tool-bg)}.message.system .bubble{background:var(--bg-3);color:var(--fg-dim)}.message .role{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-dim);margin-bottom:4px;display:flex;gap:8px;align-items:center}.message .reasoning{font-size:12px;color:var(--fg-dim);margin-top:6px;padding-top:6px;border-top:1px dashed var(--border);white-space:pre-wrap}.markdown{white-space:normal;word-wrap:break-word}.markdown p{margin:0 0 .7em}.markdown p:last-child{margin-bottom:0}.markdown pre{background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;overflow:auto;font-size:12.5px;margin:6px 0}.markdown code{background:var(--code-bg);padding:1px 4px;border-radius:3px;font-size:.92em}.markdown pre code{background:transparent;padding:0}.markdown ul,.markdown ol{margin:0 0 .7em 1.5em;padding:0}.markdown blockquote{border-left:3px solid var(--border);margin:0 0 .7em;padding:0 .8em;color:var(--fg-dim)}.markdown table{border-collapse:collapse;margin:6px 0}.markdown th,.markdown td{border:1px solid var(--border);padding:4px 8px}.markdown a{word-break:break-all}.composer{border-top:1px solid var(--border);background:var(--bg-2);padding:10px 14px;display:flex;flex-direction:column;gap:8px}.composer .row{display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1;resize:vertical;min-height:70px;max-height:40vh}.composer .meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--fg-dim)}.tool-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:999px;font-size:11px;cursor:pointer;user-select:none}.tool-chip.active{border-color:var(--accent);background:#6ea8fe1f}.tool-chip[data-disabled=true]{opacity:.5;cursor:not-allowed}.attachment-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:4px;font-size:11px}.attachment-chip button{background:transparent;border:0;padding:0 0 0 4px;color:var(--fg-dim);cursor:pointer}.list-item{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-bottom:1px solid var(--border);cursor:pointer}.list-item.active,.list-item:hover{background:var(--bg-3)}.list-item .title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item .preview{font-size:11px;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item .meta{font-size:10.5px;color:var(--fg-dim)}.event-line{font-family:var(--font-mono);font-size:11px;color:var(--fg-dim);margin:2px 16px}.event-line.error{color:var(--error)}.event-line.success{color:var(--ok)}.event-line.tool{color:var(--warn)}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;width:460px;max-width:90vw;padding:18px 20px;display:flex;flex-direction:column;gap:12px;max-height:80vh}.modal h2{margin:0;font-size:16px}.full-page{display:flex;align-items:center;justify-content:center;height:100vh;padding:20px}.login{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:28px 30px;width:360px;display:flex;flex-direction:column;gap:14px}.login h1{margin:0;font-size:18px}.error-banner{background:#ff73731a;border:1px solid var(--error);color:var(--error);padding:6px 10px;border-radius:4px;font-size:12px}.warning-banner{background:#f0b6571f;border:1px solid var(--warn);color:var(--warn);padding:6px 10px;border-radius:4px;font-size:12px}.section-title{font-size:11px;text-transform:uppercase;color:var(--fg-dim);letter-spacing:.06em;padding:8px 14px 4px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;font-size:12px}.kv>div:nth-child(odd){color:var(--fg-dim)}.scroll-y{overflow-y:auto}.scroll-x{overflow-x:auto}.tab-strip{display:flex;gap:0;border-bottom:1px solid var(--border);background:var(--bg-2)}.tab-strip button{border:0;border-radius:0;padding:8px 14px;background:transparent;border-bottom:2px solid transparent}.tab-strip button.active{border-bottom-color:var(--accent);color:var(--fg)}.tab-strip button:hover{border-color:transparent;color:var(--fg)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--fg-dim);gap:8px;padding:20px;text-align:center}.spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--fg-dim);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}select{min-width:140px}.dim{color:var(--fg-dim)}.mono{font-family:var(--font-mono);font-size:12px}.small{font-size:12px}
