:root{color:#1f1f24;background:#eee;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--olzo-purple: #8d5cc7;--olzo-purple-dark: #7142af;--olzo-lilac: #f3eff8;--olzo-border: #e7e2ed;--olzo-text-muted: #7b7484}*{box-sizing:border-box}body{margin:0}button,textarea{font:inherit}.app-shell{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:16px;background:#eee}.chat-panel{width:min(980px,100%);height:min(860px,calc(100vh - 32px));height:min(860px,calc(100dvh - 32px));display:grid;grid-template-rows:1fr auto auto;background:#fff;border:1px solid rgba(141,92,199,.14);border-radius:8px;box-shadow:0 18px 42px #392d481f;overflow:hidden}.icon-button,.primary-button{border:0;cursor:pointer}.icon-button{width:38px;height:38px;display:grid;place-items:center;color:#fff;background:#ffffff29;border-radius:8px}.icon-button:hover{background:#ffffff3d}.message-list{overflow-y:auto;padding:18px 14px;background:#f7f5fa}.empty-state{min-height:100%;display:grid;place-items:center;align-content:center;gap:12px;color:#5a6e87;color:var(--olzo-text-muted);text-align:center}.empty-state p{max-width:360px;margin:0}.empty-state.error-state{color:#8a2c2c}.message{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;margin-bottom:12px}.message.user{grid-template-columns:minmax(0,1fr) 30px}.message.user .avatar{grid-column:2}.message.user .bubble{grid-row:1;justify-self:end;background:var(--olzo-purple);color:#fff;padding:8px 12px;line-height:1.4}.avatar{width:30px;height:30px;display:grid;place-items:center;background:#fff;color:var(--olzo-purple);border:1px solid var(--olzo-border);border-radius:50%}.bubble{max-width:88%;padding:10px 12px;border-radius:8px;background:#fff;line-height:1.58;box-shadow:0 2px 8px #4131550f;overflow-wrap:anywhere}.message.user .bubble{white-space:pre-wrap}.message-link{color:inherit;text-decoration:underline;text-underline-offset:3px}.message.assistant .message-link{color:var(--olzo-purple-dark)}.bubble p,.bubble ul,.bubble ol,.bubble pre,.bubble blockquote,.bubble table{margin:0 0 10px}.bubble p:last-child,.bubble ul:last-child,.bubble ol:last-child,.bubble pre:last-child,.bubble blockquote:last-child,.bubble table:last-child{margin-bottom:0}.bubble ul,.bubble ol{margin-top:0;margin-bottom:0;padding-left:22px}.bubble li{margin:0;line-height:1.45}.bubble li>p:first-child{display:inline;margin:0}.bubble li>p+p{margin-top:0}.bubble code{padding:2px 4px;background:#8d5cc71a;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.bubble pre{overflow-x:auto;padding:10px;background:#221936;color:#f7fbff;border-radius:8px}.bubble pre code{padding:0;background:transparent;color:inherit}.bubble blockquote{padding-left:10px;color:var(--olzo-text-muted);border-left:3px solid #d7c8e9}.bubble table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}.bubble th,.bubble td{padding:6px 8px;border:1px solid var(--olzo-border)}.notice{margin:0 14px 10px;padding:9px 11px;color:#604584;background:var(--olzo-lilac);border:1px solid var(--olzo-border);border-radius:8px}.notice.error{color:#8a2c2c;background:#fff0f0;border-color:#f4caca}.composer{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 14px 14px;background:#fff;border-top:1px solid var(--olzo-border)}textarea{width:100%;height:48px;min-height:48px;max-height:140px;resize:vertical;padding:11px 12px;color:#1f1f24;border:1px solid var(--olzo-border);border-radius:8px;outline:none;background:#fbfafc}textarea:focus{border-color:var(--olzo-purple);box-shadow:0 0 0 3px #8d5cc724}.primary-button{min-width:96px;height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;color:#fff;background:var(--olzo-purple);border-radius:8px}.primary-button:disabled{cursor:not-allowed;background:#c6b3dd}.spin{animation:spin 1s linear infinite}.inline-loader{margin-left:8px;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:640px){.app-shell{padding:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);background:#fff}.chat-panel{height:100vh;height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:0;border:0}.composer{grid-template-columns:1fr}.primary-button{width:100%}}
