:root{--bg: #faf8f4;--surface: #ffffff;--surface-sunken: #f3efe6;--surface-hover: #efeae0;--border: #e4ded1;--border-soft: #ede8dd;--text: #22201c;--text-muted: #6c6558;--text-faint: #9a9283;--accent: #4f8676;--accent-strong: #3a6b5c;--ink: #26231e;--ink-hover: #3a352e;--ok: #2f7d55;--warn: #9a6a15;--err: #b3261e;--pending: #2563a5;--code-bg: #f7f4ec;--user-bubble: #f0eae0;--shadow-sm: 0 1px 2px rgba(60, 48, 30, .05);--shadow-md: 0 2px 12px rgba(60, 48, 30, .07);--shadow-lg: 0 6px 28px rgba(60, 48, 30, .09);--col: 748px;--radius: 12px;--radius-sm: 8px;--radius-lg: 26px;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}.muted{color:var(--text-muted)}.small{font-size:12px}.pad{padding:10px 16px}code,pre{font-family:var(--mono)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border);border:3px solid transparent;background-clip:content-box;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.app{display:grid;grid-template-columns:1fr 316px;height:100vh;overflow:hidden}.sidebar{display:flex;flex-direction:column;min-height:0;background:var(--surface);border-left:1px solid var(--border)}.sidebar-head{padding:18px 16px 12px}.sidebar-head h2{font-size:14px}.filter-input,.input,.flow-btn{font-family:inherit}.filter-input{width:100%;margin-top:10px;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:13px}.filter-input::placeholder{color:var(--text-faint)}.filter-input:focus{outline:none;border-color:var(--accent);background:var(--surface)}.sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px 10px 12px}.cat{padding:2px 0 8px}.cat-title{display:flex;align-items:center;justify-content:space-between;padding:8px 6px 6px;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-weight:600}.cat-title .count{font-weight:600;color:var(--text-muted);background:var(--surface-sunken);border-radius:999px;padding:1px 8px;letter-spacing:0}.subgroup{margin-top:2px}.subgroup-title{padding:6px 6px 2px;font-size:10.5px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em}.q-list{list-style:none;margin:0;padding:0}.q-item{display:flex;align-items:flex-start;gap:8px;width:100%;text-align:left;padding:9px 10px;margin-bottom:2px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:12.5px;line-height:1.4;transition:background .12s ease,color .12s ease}.q-item:hover{background:var(--surface-hover);color:var(--text)}.q-item.selected{background:var(--surface-sunken);border-color:var(--border);color:var(--text)}.q-text{flex:1}.q-tag{flex-shrink:0;font-size:9.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--text-faint);background:var(--bg);border:1px solid var(--border-soft);border-radius:999px;padding:1px 7px;margin-top:2px}.sidebar-inspector{flex-shrink:0;max-height:42%;overflow-y:auto;border-top:1px solid var(--border);background:var(--bg)}.inspector-title{display:flex;justify-content:space-between;align-items:center;padding:11px 16px 7px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);position:sticky;top:0;background:var(--bg)}.link-btn{background:none;border:none;color:var(--accent-strong);cursor:pointer;font-size:11px;font-family:inherit;letter-spacing:0;text-transform:none}.link-btn:hover{text-decoration:underline}.inspector{padding:0 16px 16px}.inspector-head{padding:4px 0 8px}.case-id{font-family:var(--mono);font-size:11px;color:var(--text-muted)}.chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.chip{font-size:10.5px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:1px 8px;color:var(--text-muted)}.chat{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;height:56px;flex-shrink:0;border-bottom:1px solid var(--border-soft);background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2}.brand{display:flex;align-items:center;gap:10px}.brand-mark{font-size:18px;line-height:1;display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:var(--surface);border:1px solid var(--border)}.brand h1{font-size:15px}.health{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-muted)}.health-dot{width:7px;height:7px;border-radius:999px;background:var(--text-faint)}.health-up .health-dot{background:var(--ok)}.health-down .health-dot{background:var(--err)}.health-unknown .health-dot{background:var(--warn)}.thread{flex:1 1 auto;min-height:0;overflow-y:auto;padding:28px 24px 12px;scroll-behavior:smooth}.empty-state{max-width:var(--col);margin:12vh auto 0;text-align:center;padding:0 8px}.empty-state h2{font-size:27px;font-weight:600;letter-spacing:-.02em;margin-bottom:10px}.empty-state p{font-size:14.5px}.run{max-width:var(--col);margin:0 auto 34px}.msg{margin-bottom:18px}.msg-body{overflow-wrap:anywhere}.msg-user{display:flex;justify-content:flex-end}.msg-user .msg-role{display:none}.msg-user .msg-body{max-width:78%;background:var(--user-bubble);border-radius:20px;padding:10px 16px;white-space:pre-wrap;text-align:left}.msg-assistant .msg-role{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text-muted);margin-bottom:8px}.msg-assistant .msg-role:before{content:"🧬";display:grid;place-items:center;width:24px;height:24px;font-size:13px;border-radius:999px;background:var(--surface);border:1px solid var(--border)}.msg-assistant .msg-body{background:none;border:none;padding:0}.answer-prose{font-size:15px;line-height:1.68}.answer-prose .md-p{margin:0 0 .85em}.answer-prose .md-p:last-child,.answer-prose .md-list:last-child,.answer-prose .md-table:last-child{margin-bottom:0}.answer-prose .md-heading{margin:1.1em 0 .5em;font-weight:650;font-size:15px}.answer-prose .md-list{margin:0 0 .85em;padding-left:1.35em}.answer-prose .md-list li{margin-bottom:.3em}.answer-prose code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.9em;padding:1px 5px;border-radius:5px;background:var(--panel-alt, rgba(127, 127, 127, .14))}.answer-prose .md-table{border-collapse:collapse;margin:0 0 .9em;font-size:14px;display:block;overflow-x:auto;max-width:100%}.answer-prose .md-table th,.answer-prose .md-table td{border:1px solid var(--border, rgba(127, 127, 127, .28));padding:5px 10px;text-align:left;vertical-align:top;white-space:nowrap}.answer-prose .md-table th{font-weight:600;background:var(--panel-alt, rgba(127, 127, 127, .1))}.answer-footer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:12.5px;color:var(--text-muted)}.answer-timing{border-bottom:1px dotted var(--border, rgba(127, 127, 127, .5));cursor:help}.rate{display:flex;align-items:center;gap:6px}.rate-btn{background:none;border:1px solid transparent;border-radius:7px;padding:2px 6px;font-size:14px;line-height:1.2;cursor:pointer;opacity:.65;transition:opacity .12s ease,background .12s ease,border-color .12s ease}.rate-btn:hover{opacity:1;background:var(--panel-alt, rgba(127, 127, 127, .12));border-color:var(--border, rgba(127, 127, 127, .28))}.rate-btn:focus-visible{outline:2px solid var(--accent, #4c8bf5);outline-offset:1px;opacity:1}.rate-thanks{color:var(--text-muted)}.progress{display:flex;align-items:center;gap:9px;color:var(--text-muted)}.dot-spinner{width:12px;height:12px;border-radius:999px;border:2px solid var(--border);border-top-color:var(--accent);display:inline-block;animation:spin .7s linear infinite;vertical-align:-1px}@keyframes spin{to{transform:rotate(360deg)}}.source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:14px}.source-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:12px 13px;min-width:0}.source-panel.status-error{border-color:color-mix(in srgb,var(--warn) 40%,var(--border))}.source-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}.source-head h3{font-size:13.5px}.badge{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;font-size:10.5px;padding:2px 9px;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);white-space:nowrap}.badge-ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,var(--border));background:color-mix(in srgb,var(--ok) 7%,var(--surface))}.badge-error{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,var(--border));background:color-mix(in srgb,var(--warn) 7%,var(--surface))}.badge-pending{color:var(--pending)}.inline-error{color:var(--err);font-size:12.5px}.inline-warn{color:var(--warn);font-size:12.5px}.collapsible{margin-top:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.collapsible>summary{cursor:pointer;padding:9px 12px;font-size:12px;color:var(--text-muted);-webkit-user-select:none;user-select:none;list-style:none}.collapsible>summary:hover{background:var(--surface-hover);color:var(--text)}.collapsible>summary::-webkit-details-marker{display:none}.collapsible>summary:before{content:"▸ ";color:var(--text-faint)}.collapsible[open]>summary:before{content:"▾ "}.collapsible-body{padding:4px 12px 12px}.code-block{background:var(--code-bg);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:10px 12px;overflow-x:auto;font-size:12px;line-height:1.55;margin:6px 0 0;white-space:pre;color:var(--text)}.code-block.json{max-height:320px;overflow-y:auto}.table-scroll{overflow-x:auto;max-height:340px;overflow-y:auto;border:1px solid var(--border-soft);border-radius:var(--radius-sm)}.rowtable{border-collapse:collapse;width:100%;font-size:12px}.rowtable th,.rowtable td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--border-soft);white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}.rowtable thead th{position:sticky;top:0;background:var(--surface-sunken);color:var(--text-muted);font-weight:600}.rowtable tbody tr:hover{background:var(--surface-hover)}.banner{border-radius:var(--radius-sm);padding:10px 12px;font-size:13px}.banner-error{background:color-mix(in srgb,var(--err) 8%,transparent);border:1px solid color-mix(in srgb,var(--err) 35%,var(--border));color:var(--err)}.banner-warn{background:color-mix(in srgb,var(--warn) 8%,transparent);border:1px solid color-mix(in srgb,var(--warn) 35%,var(--border));color:var(--warn);margin-top:16px;text-align:left}.composer{flex-shrink:0;padding:0 24px 14px;background:linear-gradient(to bottom,transparent,var(--bg) 22px,var(--bg))}.composer-inner{max-width:var(--col);margin:0 auto}.composer-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:12px 14px 10px;transition:border-color .15s ease,box-shadow .15s ease}.composer-box:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:var(--shadow-lg)}.input{display:block;width:100%;resize:none;min-height:26px;max-height:220px;overflow-y:auto;background:transparent;border:none;color:var(--text);padding:2px 4px;font-size:15px;line-height:1.55}.input::placeholder{color:var(--text-faint)}.input:focus{outline:none}.composer-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:8px}.composer-controls:has(.flow-select){justify-content:space-between}.flow-select{display:inline-flex;gap:2px;background:var(--surface-sunken);border-radius:999px;padding:3px}.flow-btn{display:inline-flex;align-items:baseline;gap:6px;border:none;background:transparent;color:var(--text-muted);padding:4px 12px;border-radius:999px;cursor:pointer;line-height:1.2;transition:background .12s ease,color .12s ease}.flow-btn:hover:not(:disabled):not(.active){color:var(--text)}.flow-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.flow-btn:disabled{cursor:not-allowed;opacity:.55}.flow-label{font-size:12.5px;font-weight:600}.flow-hint{font-size:10.5px;color:var(--text-faint)}.btn{flex-shrink:0;display:grid;place-items:center;width:34px;height:34px;padding:0;border:none;border-radius:999px;font-size:15px;line-height:1;cursor:pointer;font-family:inherit;transition:background .12s ease,opacity .12s ease}.btn-send{background:var(--ink);color:#fff}.btn-send:hover:not(:disabled){background:var(--ink-hover)}.btn-send:disabled{background:var(--surface-sunken);color:var(--text-faint);cursor:not-allowed}.btn-stop{background:var(--ink);color:#fff;font-size:11px}.btn-stop:hover{background:var(--ink-hover)}.composer-hint{margin:8px 0 0;text-align:center;font-size:11.5px;color:var(--text-faint)}@media (max-width: 1100px){.app{grid-template-columns:1fr 280px}}@media (max-width: 860px){.app{grid-template-columns:1fr;grid-template-rows:1fr auto}.sidebar{max-height:38vh;border-left:none;border-top:1px solid var(--border)}.sidebar-inspector{max-height:30vh}.thread,.composer{padding-left:14px;padding-right:14px}.msg-user .msg-body{max-width:88%}}.flow-tag{display:inline-block;margin-left:2px;padding:1px 8px;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-strong);background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:999px;vertical-align:middle}.res-table-wrap{overflow-x:auto;margin:8px 0}.res-table{width:100%;border-collapse:collapse;font-size:12.5px}.res-table th,.res-table td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--border-soft);white-space:nowrap}.res-table th{color:var(--text-faint);font-weight:600}.res-id{font-family:var(--mono);font-size:11.5px}.res-sql-label{margin-top:10px}.res-badge{display:inline-block;padding:1px 8px;font-size:10.5px;font-weight:700;border-radius:999px}.res-applied{color:#fff;background:var(--ok)}.res-suggested{color:#fff;background:var(--warn)}.res-none{color:var(--text-muted);background:var(--surface-sunken)}
