:root{--background:#f5f6f4;--foreground:#1f2428;--muted:#687076;--line:#d9dfda;--panel:#ffffff;--panel-subtle:#fafaf7;--accent:#0f766e;--accent-soft:#e4f3ef;--accent-line:#b8d9d1;--warning:#9a3412;--warning-soft:#fff7ed;--warning-line:#fed7aa;--info:#1d4f75;--info-soft:#eff6ff;--info-line:#bfdbfe;--danger:#b42318;--danger-soft:#fff1ef}*{box-sizing:border-box}html{height:100%}body{min-height:100%;margin:0;background:var(--background);color:var(--foreground);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid rgba(15,118,110,.18);outline-offset:2px}button:disabled,textarea:disabled{cursor:not-allowed;opacity:.55}a{color:inherit}.chat-shell,main{min-height:100vh}.chat-shell{display:flex;min-height:100dvh;padding:20px}.chat-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;width:min(1040px,100%);height:calc(100vh - 40px);height:calc(100dvh - 40px);min-height:0;margin:0 auto;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--panel-subtle)}.eyebrow{margin:0 0 3px;color:var(--accent);font-size:.76rem;font-weight:700;letter-spacing:0}h1{margin:0;font-size:1.22rem;line-height:1.15}.header-status{gap:8px;color:var(--muted);font-size:.86rem}.header-actions,.header-status{display:flex;align-items:center;justify-content:flex-end;min-width:0}.header-actions{gap:12px}.header-actions .header-status{flex:1 1}.clear-button{display:inline-grid;place-items:center;width:38px;height:38px;flex:0 0 auto;padding:0;color:var(--foreground);border:1px solid var(--line);border-radius:8px;background:#ffffff}.clear-button:hover:not(:disabled){border-color:#9bb8b3;background:var(--accent-soft)}.header-status code{max-width:240px;overflow:hidden;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}.status-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#93a19a}.status-dot.active{background:var(--accent)}.messages{display:flex;flex-direction:column;gap:12px;min-height:0;padding:18px 20px;overflow-y:auto}.empty-state{display:grid;grid-gap:12px;gap:12px;width:min(640px,100%);margin:auto;padding:26px;color:var(--muted);text-align:left;border:1px dashed var(--line);border-radius:8px;background:var(--panel-subtle)}.empty-state strong{color:var(--foreground);font-size:1.08rem}.suggestion-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:8px;gap:8px;margin-top:6px}.suggestion-button{min-height:42px;padding:9px 11px;color:var(--foreground);text-align:left;border:1px solid var(--line);border-radius:8px;background:#ffffff;font-size:.86rem;line-height:1.45}.suggestion-button:hover:not(:disabled){border-color:#9bb8b3;background:var(--accent-soft)}.message{display:grid;grid-gap:8px;gap:8px;max-width:min(680px,88%);padding:13px 14px;line-height:1.65;border-radius:8px}.message.user{align-self:flex-end;color:#ffffff;background:var(--accent)}.message.assistant{align-self:flex-start;max-width:min(780px,92%);border:1px solid var(--line);background:var(--panel-subtle)}.message-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;color:inherit;font-size:.78rem;font-weight:700}.message.assistant .message-topline{color:var(--muted)}.stream-dot{color:var(--accent);font-weight:700}.message-content{min-width:0}.markdown-content{display:grid;grid-gap:12px;gap:12px;min-width:0;color:var(--foreground)}.message.user .markdown-content{color:#ffffff}.markdown-content :where(p,h3,h4,ul,ol,blockquote,pre,table,hr){margin:0}.markdown-heading{display:flex;align-items:center;gap:8px;margin-top:4px;padding-top:12px;color:#16423d;font-weight:800;letter-spacing:0;line-height:1.35;border-top:1px solid #e3e9e5}.markdown-heading:first-child{margin-top:0;padding-top:0;border-top:0}.markdown-heading:before{flex:0 0 auto;width:4px;height:1.2em;border-radius:999px;background:var(--accent);content:""}.markdown-heading--risk{color:var(--warning)}.markdown-heading--risk:before{background:var(--warning)}.markdown-heading--pattern:before{background:#475569}.markdown-heading--next{color:var(--info)}.markdown-heading--next:before{background:var(--info)}.markdown-content h3{font-size:1.04rem}.markdown-content h4{font-size:.95rem}.markdown-paragraph{line-height:1.78}.markdown-content blockquote,.markdown-content li,.markdown-content p{white-space:pre-wrap}.markdown-content strong{color:#0d5f57;font-weight:800}.message.user .markdown-content strong{color:#ffffff}.markdown-list{display:grid;grid-gap:7px;gap:7px;padding:10px 12px 10px 1.6rem;border:1px solid #e2e8e4;border-left:3px solid var(--accent-line);border-radius:8px;background:#ffffff;line-height:1.7}.markdown-list li::marker{color:var(--accent);font-weight:800}.markdown-heading--risk+:where(.markdown-paragraph,.markdown-list){padding:11px 12px;color:#5f2410;border:1px solid var(--warning-line);border-left:3px solid var(--warning);border-radius:8px;background:var(--warning-soft)}.markdown-heading--risk+.markdown-list{padding-left:1.6rem}.markdown-heading--risk+.markdown-list li::marker,.markdown-heading--risk+:where(.markdown-paragraph,.markdown-list) strong{color:var(--warning)}.markdown-heading--evidence+:where(.markdown-paragraph,.markdown-list),.markdown-heading--pattern+:where(.markdown-paragraph,.markdown-list){padding:11px 12px;border:1px solid #e2e8e4;border-left:3px solid var(--accent-line);border-radius:8px;background:#ffffff}.markdown-heading--evidence+.markdown-list,.markdown-heading--pattern+.markdown-list{padding-left:1.6rem}.markdown-heading--next+.markdown-list,.markdown-heading--next+.markdown-paragraph{padding:11px 12px;border:1px solid var(--info-line);border-left:3px solid var(--info);border-radius:8px;background:var(--info-soft)}.markdown-heading--next+.markdown-list{padding-left:1.6rem}.markdown-heading--next+:where(.markdown-paragraph,.markdown-list) strong{color:var(--info)}.markdown-heading--next+.markdown-list li::marker{color:var(--info)}.markdown-quote{padding:10px 12px;color:var(--muted);border-left:3px solid #9bb8b3;border-radius:0 8px 8px 0;background:#f2f5f2;line-height:1.7}.message.user .markdown-heading--evidence+:where(.markdown-paragraph,.markdown-list),.message.user .markdown-heading--next+:where(.markdown-paragraph,.markdown-list),.message.user .markdown-heading--pattern+:where(.markdown-paragraph,.markdown-list),.message.user .markdown-heading--risk+:where(.markdown-paragraph,.markdown-list),.message.user .markdown-list{color:#ffffff;border-color:rgba(255,255,255,.24) rgba(255,255,255,.24) rgba(255,255,255,.24) rgba(255,255,255,.56);background:rgba(255,255,255,.1)}.message.user .markdown-list li::marker{color:rgba(255,255,255,.88)}.message.user .markdown-heading{color:#ffffff;border-top-color:rgba(255,255,255,.22)}.message.user .markdown-heading:before{background:rgba(255,255,255,.82)}.message.user .markdown-quote{color:rgba(255,255,255,.78);border-left-color:rgba(255,255,255,.45);background:rgba(255,255,255,.1)}.markdown-content a{color:var(--accent);font-weight:700;text-underline-offset:3px}.message.user .markdown-content a{color:#ffffff}.markdown-content code{padding:.12rem .32rem;border-radius:5px;background:#eef3f0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.message.user .markdown-content code{background:rgba(255,255,255,.16)}.markdown-code-block{position:relative;overflow-x:auto;padding:12px;border:1px solid var(--line);border-radius:8px;background:#ffffff;line-height:1.5}.markdown-code-block code{display:block;min-width:max-content;padding:0;background:transparent;white-space:pre}.message.user .markdown-code-block{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.12)}.code-language{display:block;margin-bottom:8px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;font-weight:700}.message.user .code-language{color:rgba(255,255,255,.72)}.markdown-content hr{border:0;border-top:1px solid var(--line)}.message.user .markdown-content hr{border-top-color:rgba(255,255,255,.32)}.markdown-table-wrap{max-width:100%;overflow-x:auto}.markdown-content table{width:100%;min-width:360px;border-collapse:collapse;overflow:hidden;border:1px solid var(--line);border-radius:8px;font-size:.9rem}.markdown-content td,.markdown-content th{padding:8px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.markdown-content th{background:#eef3f0;font-weight:700}.markdown-content tr:last-child td{border-bottom:0}.message.user .markdown-content table,.message.user .markdown-content td,.message.user .markdown-content th{border-color:rgba(255,255,255,.28)}.message.user .markdown-content th{background:rgba(255,255,255,.16)}.thinking-block{display:grid;grid-gap:7px;gap:7px;padding:4px 0 8px 12px;color:var(--muted);border-left:2px solid #9bb8b3}.thinking-block p,.thinking-block span{margin:0;font-size:.88rem;line-height:1.55;white-space:pre-wrap}.thinking-heading{display:flex;align-items:center;gap:7px;color:var(--accent);font-size:.76rem;font-weight:700}.thinking-pulse{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.thinking-heading .thinking-pulse{flex:0 0 auto}@keyframes pulse{50%{opacity:.35;transform:scale(.72)}}.caret{display:inline-block;width:8px;height:1.15em;margin-left:2px;vertical-align:-.2em;border-right:2px solid var(--accent);animation:blink 1s steps(2,start) infinite}@keyframes blink{50%{opacity:0}}.sources{display:grid;grid-gap:8px;gap:8px;margin-top:4px;padding-top:10px;border-top:1px solid var(--line)}.sources>span{color:var(--muted);font-size:.78rem;font-weight:700}.source-row{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#ffffff}.source-row summary{display:grid;grid-gap:2px;gap:2px;cursor:pointer}.source-row strong{font-size:.9rem}.source-row small{color:var(--muted)}.source-row p{margin-top:8px;color:var(--foreground);font-size:.9rem}.image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:10px;gap:10px;margin-top:6px}.image-grid a{display:grid;grid-gap:6px;gap:6px;color:var(--foreground);text-decoration:none}.image-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:6px}.input-image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,128px));grid-gap:8px;gap:8px}.input-image-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid rgba(255,255,255,.36);border-radius:6px}.error-banner{margin:0 18px 12px;padding:11px 13px;color:var(--danger);border:1px solid #f1b5ad;border-radius:8px;background:var(--danger-soft)}.composer{position:-webkit-sticky;position:sticky;bottom:0;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;grid-gap:10px;gap:10px;padding:12px 14px;border-top:1px solid var(--line);background:#ffffff}.composer-field{display:grid;grid-gap:8px;gap:8px;min-width:0}.selected-images{display:flex;flex-wrap:wrap;gap:8px}.selected-image{display:grid;grid-template-columns:44px minmax(0,1fr) 30px;align-items:center;grid-gap:8px;gap:8px;max-width:min(300px,100%);padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--panel-subtle)}.selected-image img{width:44px;height:34px;object-fit:cover;border-radius:6px}.selected-image span{overflow:hidden;color:var(--foreground);font-size:.82rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.selected-image button{display:inline-grid;place-items:center;width:30px;height:30px;min-width:0;min-height:0;padding:0;color:var(--danger);border:1px solid #f1b5ad;border-radius:8px;background:#ffffff}.composer-field textarea{width:100%;min-height:58px;max-height:180px;resize:vertical;padding:12px 13px;color:var(--foreground);border:1px solid var(--line);border-radius:8px;line-height:1.5}.composer-field textarea:focus{border-color:var(--accent);outline:3px solid rgba(15,118,110,.14)}.composer-actions{display:flex;align-items:flex-end;gap:8px}.composer button{display:inline-grid;place-items:center;width:44px;height:44px;min-width:0;min-height:0;padding:0;color:#ffffff;border:0;border-radius:8px;background:var(--foreground);font-weight:700}.composer .secondary-button{color:var(--foreground);border:1px solid var(--line);background:#ffffff}.composer .selected-image button{width:30px;height:30px;min-width:0;min-height:0;padding:0;color:var(--danger);border:1px solid #f1b5ad;background:#ffffff}.composer .icon-button{width:44px;padding:0}.button-icon{width:20px;height:20px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@media (max-width:720px){.chat-shell{padding:0}.chat-panel{height:100vh;height:100dvh;min-height:0;border:0;border-radius:0}.chat-header{align-items:flex-start;flex-direction:column;gap:12px;padding:14px 16px}.header-status{justify-content:flex-start;width:auto}.header-actions{align-items:flex-start;justify-content:space-between;width:100%}.header-status code{max-width:min(100%,280px)}.messages{padding:14px}.message,.message.assistant{max-width:94%}.composer{grid-template-columns:1fr;gap:8px;padding:10px}.composer-actions{justify-content:flex-end}}@media (max-width:480px){.empty-state{padding:18px}.suggestion-list{grid-template-columns:1fr}.message,.message.assistant{max-width:100%}.header-status code{max-width:160px}}