:root{--ink: #1a2e24;--muted: #5c6f66;--line: #d8e0db;--paper: #f4f1ea;--panel: #fffcf7;--forest: #1f4d3a;--forest-hover: #16382b;--sage: #e7efe9;--accent: #2f6f4e;--danger: #b42318;color:var(--ink);background:var(--paper);font-family:DM Sans,system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden}.app-shell{max-width:880px;margin:0 auto;height:100%;max-height:100dvh;display:flex;flex-direction:column;padding:16px 20px 20px;gap:12px}.app-shell.no-header{padding:0;max-width:none;gap:0}.app-shell.no-header .chat-panel{border:none;border-radius:0;box-shadow:none}.app-header{display:flex;align-items:center;gap:12px;flex-shrink:0;padding:4px 4px 2px}.brand-mark,.avatar{width:40px;height:40px;border-radius:12px;object-fit:contain;background:#fff;flex-shrink:0;display:block}.avatar{width:28px;height:28px;border-radius:8px;margin-top:2px}.brand-copy h1{margin:0;font-size:1.35rem;letter-spacing:-.02em;line-height:1.15}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;color:var(--accent);font-weight:600}.subtitle{margin:2px 0 0;color:var(--muted);font-size:.88rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35em .7em}.tagline{margin:0;font-size:.8rem;line-height:1.35}.tagline:before{content:"·";margin-right:.7em}.chat-panel{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 40px #1f4d3a14;overflow:hidden}.chat-window{flex:1;min-height:0;overflow-y:auto;padding:20px 20px 8px}.message{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.message.user{justify-content:flex-end}.message.assistant{justify-content:flex-start}.bubble{max-width:min(72ch,86%);padding:12px 14px;border-radius:16px;overflow-wrap:anywhere}.message.user .bubble{background:var(--forest);color:#f6fbf7;border-bottom-right-radius:4px;white-space:pre-wrap}.message.user .bubble p{margin:0}.message.assistant .bubble{background:var(--sage);border:1px solid #d3e3d9;border-bottom-left-radius:4px}.bubble.markdown{white-space:normal}.bubble.markdown>*:first-child{margin-top:0}.bubble.markdown>*:last-child{margin-bottom:0}.bubble.markdown p,.bubble.markdown ul,.bubble.markdown ol{margin:0 0 .65em}.bubble.markdown p:last-child,.bubble.markdown ul:last-child,.bubble.markdown ol:last-child{margin-bottom:0}.bubble.markdown ul,.bubble.markdown ol{padding-left:1.2em}.bubble.markdown li{margin:.2em 0}.bubble.markdown li+li{margin-top:.15em}.bubble.markdown strong{font-weight:700}.bubble.markdown a{color:var(--accent);font-weight:600;text-underline-offset:2px}.bubble.markdown a:hover{color:var(--forest)}.status-line{display:inline-flex;align-items:center;gap:8px;margin:6px 0 0;color:var(--muted);font-size:.92rem}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}.composer{display:flex;align-items:flex-end;gap:10px;flex-shrink:0;padding:12px 16px 16px;border-top:1px solid var(--line);background:#fbfaf6}.composer textarea{flex:1;border:1px solid var(--line);border-radius:20px;padding:12px 16px;font-size:1rem;font-family:inherit;line-height:1.4;background:#fff;color:var(--ink);resize:none;overflow-y:hidden;min-height:48px;max-height:160px}.composer textarea:focus{outline:2px solid #8fb9a0;outline-offset:1px;border-color:var(--accent)}.composer button{border:none;border-radius:999px;padding:0 20px;height:48px;flex-shrink:0;background:var(--forest);color:#fff;font-weight:600;font-family:inherit;cursor:pointer}.composer button:hover:not(:disabled){background:var(--forest-hover)}.composer button:disabled,.composer textarea:disabled{opacity:.6;cursor:not-allowed}.error{color:var(--danger);margin:0 20px 8px;font-size:.9rem}
